summaryrefslogtreecommitdiffstats
path: root/doc/user
diff options
context:
space:
mode:
Diffstat (limited to 'doc/user')
-rw-r--r--doc/user/.cvsignore51
-rw-r--r--doc/user/Makefile.am166
-rw-r--r--doc/user/bsp.t318
-rw-r--r--doc/user/c_user.texi165
-rw-r--r--doc/user/clock.t438
-rw-r--r--doc/user/concepts.t361
-rw-r--r--doc/user/conf.t2028
-rw-r--r--doc/user/datatypes.t311
-rw-r--r--doc/user/dirstat.texi42
-rw-r--r--doc/user/dpmem.t364
-rw-r--r--doc/user/event.t343
-rw-r--r--doc/user/example.texi88
-rw-r--r--doc/user/fatal.t172
-rw-r--r--doc/user/glossary.texi771
-rw-r--r--doc/user/init.t416
-rw-r--r--doc/user/intr.t469
-rw-r--r--doc/user/io.t741
-rw-r--r--doc/user/mp.t621
-rw-r--r--doc/user/msg.t834
-rw-r--r--doc/user/overview.t532
-rw-r--r--doc/user/part.t453
-rw-r--r--doc/user/preface.texi192
-rw-r--r--doc/user/region.t665
-rw-r--r--doc/user/rtemsarc.gifbin0 -> 7653 bytes
-rw-r--r--doc/user/rtemsarc.pngbin0 -> 5698 bytes
-rw-r--r--doc/user/rtemspie.eps2164
-rw-r--r--doc/user/rtemspie.gifbin0 -> 31070 bytes
-rw-r--r--doc/user/rtemspie.pngbin0 -> 31984 bytes
-rw-r--r--doc/user/rtmon.t1183
-rw-r--r--doc/user/schedule.t407
-rw-r--r--doc/user/sem.t832
-rw-r--r--doc/user/signal.t389
-rw-r--r--doc/user/states.eps13822
-rw-r--r--doc/user/states.gifbin0 -> 31256 bytes
-rw-r--r--doc/user/states.pngbin0 -> 22036 bytes
-rw-r--r--doc/user/task.t1770
-rw-r--r--doc/user/timer.t729
-rw-r--r--doc/user/userext.t727
38 files changed, 32564 insertions, 0 deletions
diff --git a/doc/user/.cvsignore b/doc/user/.cvsignore
new file mode 100644
index 0000000000..5ebbd7c65d
--- /dev/null
+++ b/doc/user/.cvsignore
@@ -0,0 +1,51 @@
+bsp.texi
+clock.texi
+concepts.texi
+conf.texi
+c_user
+c_user-?
+c_user-??
+c_user.aux
+c_user.cp
+c_user.cps
+c_user.dvi
+c_user.fn
+c_user.fns
+c_user*.html
+c_user.ky
+c_user.log
+c_user.pdf
+c_user.pg
+c_user.ps
+c_user.toc
+c_user.tp
+c_user.vr
+datatypes.texi
+dpmem.texi
+event.texi
+fatal.texi
+index.html
+init.texi
+intr.texi
+io.texi
+Makefile
+Makefile.in
+mdate-sh
+mp.texi
+msg.texi
+overview.texi
+part.texi
+region.texi
+rtems_footer.html
+rtems_header.html
+rtemspie.pdf
+rtmon.texi
+schedule.texi
+sem.texi
+signal.texi
+stamp-vti
+states.pdf
+task.texi
+timer.texi
+userext.texi
+version.texi
diff --git a/doc/user/Makefile.am b/doc/user/Makefile.am
new file mode 100644
index 0000000000..1869ef34b1
--- /dev/null
+++ b/doc/user/Makefile.am
@@ -0,0 +1,166 @@
+#
+# COPYRIGHT (c) 1988-2002.
+# On-Line Applications Research Corporation (OAR).
+# All rights reserved.
+#
+# $Id$
+#
+
+PROJECT = c_user
+EDITION = 1
+
+include $(top_srcdir)/project.am
+include $(top_srcdir)/main.am
+
+FILES = bsp.texi dirstat.texi example.texi glossary.texi preface.texi
+
+GENERATED_FILES = overview.texi concepts.texi datatypes.texi init.texi \
+ task.texi intr.texi clock.texi timer.texi sem.texi msg.texi event.texi \
+ signal.texi part.texi region.texi dpmem.texi io.texi fatal.texi \
+ schedule.texi rtmon.texi bsp.texi userext.texi conf.texi mp.texi
+
+COMMON_FILES += $(top_srcdir)/common/cpright.texi
+
+info_TEXINFOS = c_user.texi
+c_user_TEXINFOS = $(FILES) $(COMMON_FILES) $(GENERATED_FILES)
+
+PNG_FILES = rtemsarc.png rtemspie.png states.png
+
+EPS_IMAGES = rtemspie.eps states.eps
+$(PROJECT).dvi: $(EPS_IMAGES)
+
+PDF_IMAGES = rtemspie.pdf states.pdf
+CLEANFILES += $(PDF_IMAGES)
+
+if USE_HTML
+html_project_DATA += $(PNG_FILES)
+endif
+
+overview.texi: overview.t
+ $(BMENU2) -p "Preface" \
+ -u "Top" \
+ -n "Key Concepts" < $< > $@
+
+concepts.texi: concepts.t
+ $(BMENU2) -p "Overview Manual Organization" \
+ -u "Top" \
+ -n "RTEMS Data Types" < $< > $@
+
+datatypes.texi: datatypes.t
+ $(BMENU2) -p "Key Concepts Memory Management" \
+ -u "Top" \
+ -n "Initialization Manager" < $< > $@
+
+init.texi: init.t
+ $(BMENU2) -p "RTEMS Data Types List of Data Types" \
+ -u "Top" \
+ -n "Task Manager" < $< > $@
+
+task.texi: task.t
+ $(BMENU2) -p "Initialization Manager SHUTDOWN_EXECUTIVE - Shutdown RTEMS" \
+ -u "Top" \
+ -n "Interrupt Manager" < $< > $@
+
+intr.texi: intr.t
+ $(BMENU2) -p "Task Manager TASK_VARIABLE_DELETE - Remove per task variable" \
+ -u "Top" \
+ -n "Clock Manager" < $< > $@
+
+clock.texi: clock.t
+ $(BMENU2) \
+ -p "Interrupt Manager INTERRUPT_IS_IN_PROGRESS - Is an ISR in Progress" \
+ -u "Top" \
+ -n "Timer Manager" < $< > $@
+
+timer.texi: timer.t
+ $(BMENU2) -p "Clock Manager CLOCK_TICK - Announce a clock tick" \
+ -u "Top" \
+ -n "Semaphore Manager" < $< > $@
+
+sem.texi: sem.t
+ $(BMENU2) -p "Timer Manager TIMER_RESET - Reset an interval timer" \
+ -u "Top" \
+ -n "Message Manager" < $< > $@
+
+msg.texi: msg.t
+ $(BMENU2) -p "Semaphore Manager SEMAPHORE_FLUSH - Unblock all tasks waiting on a semaphore" \
+ -u "Top" \
+ -n "Event Manager" < $< > $@
+
+event.texi: event.t
+ $(BMENU2) \
+ -p "Message Manager MESSAGE_QUEUE_FLUSH - Flush all messages on a queue" \
+ -u "Top" \
+ -n "Signal Manager" < $< > $@
+
+signal.texi: signal.t
+ $(BMENU2) -p "Event Manager EVENT_RECEIVE - Receive event condition" \
+ -u "Top" \
+ -n "Partition Manager" < $< > $@
+
+part.texi: part.t
+ $(BMENU2) -p "Signal Manager SIGNAL_SEND - Send signal set to a task" \
+ -u "Top" \
+ -n "Region Manager" < $< > $@
+
+region.texi: region.t
+ $(BMENU2) \
+-p "Partition Manager PARTITION_RETURN_BUFFER - Return buffer to a partition" \
+ -u "Top" \
+ -n "Dual-Ported Memory Manager" < $< > $@
+
+dpmem.texi: dpmem.t
+ $(BMENU2) \
+ -p "Region Manager REGION_GET_SEGMENT_SIZE - Obtain size of a segment" \
+ -u "Top" \
+ -n "I/O Manager" < $< > $@
+
+io.texi: io.t
+ $(BMENU2) -p "Dual-Ported Memory Manager PORT_INTERNAL_TO_EXTERNAL - Convert internal to external address" \
+ -u "Top" \
+ -n "Fatal Error Manager" < $< > $@
+
+fatal.texi: fatal.t
+ $(BMENU2) -p "I/O Manager IO_CONTROL - Special device services" \
+ -u "Top" \
+ -n "Scheduling Concepts" < $< > $@
+
+schedule.texi: schedule.t
+ $(BMENU2) \
+-p "Fatal Error Manager FATAL_ERROR_OCCURRED - Invoke the fatal error handler" \
+ -u "Top" \
+ -n "Rate Monotonic Manager" < $< > $@
+
+rtmon.texi: rtmon.t
+ $(BMENU2) -p "Scheduling Concepts Task State Transitions" \
+ -u "Top" \
+ -n "Board Support Packages" < $< > $@
+
+bsp.texi: bsp.t
+ $(BMENU2) -p "Rate Monotonic Manager RATE_MONOTONIC_GET_STATUS - Obtain status information on period" \
+ -u "Top" \
+ -n "User Extensions Manager" < $< > $@
+
+userext.texi: userext.t
+ $(BMENU2) -p "Board Support Packages Heterogeneous Systems" \
+ -u "Top" \
+ -n "Configuring a System" < $< > $@
+
+conf.texi: conf.t
+ $(BMENU2) -p "User Extensions Manager EXTENSION_DELETE - Delete a extension set" \
+ -u "Top" \
+ -n "Multiprocessing Manager" < $< > $@
+
+mp.texi: mp.t
+ $(BMENU2) -p "Configuring a System Sizing the RTEMS RAM Workspace" \
+ -u "Top" \
+ -n "Directive Status Codes" < $< > $@
+
+noinst_DATA = states.gif rtemspie.gif
+
+EXTRA_DIST = bsp.t concepts.t clock.t datatypes.t conf.t dpmem.t event.t \
+ fatal.t init.t intr.t io.t mp.t msg.t overview.t part.t region.t rtmon.t \
+ sem.t schedule.t signal.t task.t timer.t userext.t $(PNG_FILES) \
+ $(EPS_IMAGES) $(noinst_DATA)
+
+CLEANFILES += c_user.info c_user.info-? c_user.info-??
diff --git a/doc/user/bsp.t b/doc/user/bsp.t
new file mode 100644
index 0000000000..e0b0434d12
--- /dev/null
+++ b/doc/user/bsp.t
@@ -0,0 +1,318 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@chapter Board Support Packages
+
+@cindex Board Support Packages
+@cindex BSPs
+
+@section Introduction
+
+@cindex BSP, definition
+
+A board support package (BSP) is a collection of
+user-provided facilities which interface RTEMS and an
+application with a specific hardware platform. These facilities
+may include hardware initialization, device drivers, user
+extensions, and a Multiprocessor Communications Interface
+(MPCI). However, a minimal BSP need only support processor
+reset and initialization and, if needed, a clock tick.
+
+@section Reset and Initialization
+
+An RTEMS based application is initiated or
+re-initiated when the processor is reset. This initialization
+code is responsible for preparing the target platform for the
+RTEMS application. Although the exact actions performed by the
+initialization code are highly processor and target dependent,
+the logical functionality of these actions are similar across a
+variety of processors and target platforms.
+
+Normally, the application's initialization is
+performed at two separate times: before the call to
+@code{@value{DIRPREFIX}initialize_executive}
+(reset application initialization) and
+after @code{@value{DIRPREFIX}initialize_executive}
+in the user's initialization tasks
+(local and global application initialization). The order of the
+startup procedure is as follows:
+
+@enumerate
+@item Reset application initialization.
+@item Call to @code{@value{DIRPREFIX}initialize_executive}
+@item Local and global application initialization.
+@end enumerate
+
+The reset application initialization code is executed
+first when the processor is reset. All of the hardware must be
+initialized to a quiescent state by this software before
+initializing RTEMS. When in quiescent state, devices do not
+generate any interrupts or require any servicing by the
+application. Some of the hardware components may be initialized
+in this code as well as any application initialization that does
+not involve calls to RTEMS directives.
+
+The processor's Interrupt Vector Table which will be
+used by the application may need to be set to the required value
+by the reset application initialization code. Because
+interrupts are enabled automatically by RTEMS as part of the
+@code{@value{DIRPREFIX}initialize_executive} directive,
+the Interrupt Vector Table MUST
+be set before this directive is invoked to insure correct
+interrupt vectoring. The processor's Interrupt Vector Table
+must be accessible by RTEMS as it will be modified by the
+@code{@value{DIRPREFIX}interrupt_catch} directive.
+On some CPUs, RTEMS installs it's
+own Interrupt Vector Table as part of initialization and thus
+these requirements are met automatically. The reset code which
+is executed before the call to @code{@value{DIRPREFIX}initialize_executive}
+has the following requirements:
+
+@itemize @bullet
+@item Must not make any RTEMS directive calls.
+
+@item If the processor supports multiple privilege levels,
+must leave the processor in the most privileged, or supervisory,
+state.
+
+@item Must allocate a stack of at least @code{@value{RPREFIX}MINIMUM_STACK_SIZE}
+bytes and initialize the stack pointer for the
+@code{@value{DIRPREFIX}initialize_executive} directive.
+
+@item Must initialize the processor's Interrupt Vector Table.
+
+@item Must disable all maskable interrupts.
+
+@item If the processor supports a separate interrupt stack,
+must allocate the interrupt stack and initialize the interrupt
+stack pointer.
+@end itemize
+
+The @code{@value{DIRPREFIX}initialize_executive} directive does not return to
+the initialization code, but causes the highest priority
+initialization task to begin execution. Initialization tasks
+are used to perform both local and global application
+initialization which is dependent on RTEMS facilities. The user
+initialization task facility is typically used to create the
+application's set of tasks.
+
+@subsection Interrupt Stack Requirements
+
+The worst-case stack usage by interrupt service
+routines must be taken into account when designing an
+application. If the processor supports interrupt nesting, the
+stack usage must include the deepest nest level. The worst-case
+stack usage must account for the following requirements:
+
+@itemize @bullet
+@item Processor's interrupt stack frame
+
+@item Processor's subroutine call stack frame
+
+@item RTEMS system calls
+
+@item Registers saved on stack
+
+@item Application subroutine calls
+@end itemize
+
+The size of the interrupt stack must be greater than
+or equal to the constant @code{@value{RPREFIX}MINIMUM_STACK_SIZE}.
+
+@subsection Processors with a Separate Interrupt Stack
+
+Some processors support a separate stack for
+interrupts. When an interrupt is vectored and the interrupt is
+not nested, the processor will automatically switch from the
+current stack to the interrupt stack. The size of this stack is
+based solely on the worst-case stack usage by interrupt service
+routines.
+
+The dedicated interrupt stack for the entire
+application is supplied and initialized by the reset and
+initialization code of the user's board support package. Since
+all ISRs use this stack, the stack size must take into account
+the worst case stack usage by any combination of nested ISRs.
+
+@subsection Processors without a Separate Interrupt Stack
+
+Some processors do not support a separate stack for
+interrupts. In this case, without special assistance every
+task's stack must include enough space to handle the task's
+worst-case stack usage as well as the worst-case interrupt stack
+usage. This is necessary because the worst-case interrupt
+nesting could occur while any task is executing.
+
+On many processors without dedicated hardware managed
+interrupt stacks, RTEMS manages a dedicated interrupt stack in
+software. If this capability is supported on a CPU, then it is
+logically equivalent to the processor supporting a separate
+interrupt stack in hardware.
+
+@section Device Drivers
+
+Device drivers consist of control software for
+special peripheral devices and provide a logical interface for
+the application developer. The RTEMS I/O manager provides
+directives which allow applications to access these device
+drivers in a consistent fashion. A Board Support Package may
+include device drivers to access the hardware on the target
+platform. These devices typically include serial and parallel
+ports, counter/timer peripherals, real-time clocks, disk
+interfaces, and network controllers.
+
+For more information on device drivers, refer to the
+I/O Manager chapter.
+
+@subsection Clock Tick Device Driver
+
+Most RTEMS applications will include a clock tick
+device driver which invokes the @code{@value{DIRPREFIX}clock_tick}
+directive at regular intervals. The clock tick is necessary if
+the application is to utilize timeslicing, the clock manager, the
+timer manager, the rate monotonic manager, or the timeout option on blocking
+directives.
+
+The clock tick is usually provided as an interrupt
+from a counter/timer or a real-time clock device. When a
+counter/timer is used to provide the clock tick, the device is
+typically programmed to operate in continuous mode. This mode
+selection causes the device to automatically reload the initial
+count and continue the countdown without programmer
+intervention. This reduces the overhead required to manipulate
+the counter/timer in the clock tick ISR and increases the
+accuracy of tick occurrences. The initial count can be based on
+the microseconds_per_tick field in the RTEMS Configuration
+Table. An alternate approach is to set the initial count for a
+fixed time period (such as one millisecond) and have the ISR
+invoke @code{@value{DIRPREFIX}clock_tick}
+on the microseconds_per_tick boundaries.
+Obviously, this can induce some error if the configured
+microseconds_per_tick is not evenly divisible by the chosen
+clock interrupt quantum.
+
+It is important to note that the interval between
+clock ticks directly impacts the granularity of RTEMS timing
+operations. In addition, the frequency of clock ticks is an
+important factor in the overall level of system overhead. A
+high clock tick frequency results in less processor time being
+available for task execution due to the increased number of
+clock tick ISRs.
+
+@section User Extensions
+
+RTEMS allows the application developer to augment
+selected features by invoking user-supplied extension routines
+when the following system events occur:
+
+@itemize @bullet
+@item Task creation
+@item Task initiation
+@item Task reinitiation
+@item Task deletion
+@item Task context switch
+@item Post task context switch
+@item Task begin
+@item Task exits
+@item Fatal error detection
+@end itemize
+
+User extensions can be used to implement a wide variety of
+functions including execution profiling, non-standard
+coprocessor support, debug support, and error detection and
+recovery. For example, the context of a non-standard numeric
+coprocessor may be maintained via the user extensions. In this
+example, the task creation and deletion extensions are
+responsible for allocating and deallocating the context area,
+the task initiation and reinitiation extensions would be
+responsible for priming the context area, and the task context
+switch extension would save and restore the context of the
+device.
+
+For more information on user extensions, refer to the
+User Extensions chapter.
+
+@section Multiprocessor Communications Interface (MPCI)
+
+RTEMS requires that an MPCI layer be provided when a
+multiple node application is developed. This MPCI layer must
+provide an efficient and reliable communications mechanism
+between the multiple nodes. Tasks on different nodes
+communicate and synchronize with one another via the MPCI. Each
+MPCI layer must be tailored to support the architecture of the
+target platform.
+
+For more information on the MPCI, refer to the
+Multiprocessing Manager chapter.
+
+@subsection Tightly-Coupled Systems
+
+A tightly-coupled system is a multiprocessor
+configuration in which the processors communicate solely via
+shared global memory. The MPCI can simply place the RTEMS
+packets in the shared memory space. The two primary
+considerations when designing an MPCI for a tightly-coupled
+system are data consistency and informing another node of a
+packet.
+
+The data consistency problem may be solved using
+atomic "test and set" operations to provide a "lock" in the
+shared memory. It is important to minimize the length of time
+any particular processor locks a shared data structure.
+
+The problem of informing another node of a packet can
+be addressed using one of two techniques. The first technique
+is to use an interprocessor interrupt capability to cause an
+interrupt on the receiving node. This technique requires that
+special support hardware be provided by either the processor
+itself or the target platform. The second technique is to have
+a node poll for arrival of packets. The drawback to this
+technique is the overhead associated with polling.
+
+@subsection Loosely-Coupled Systems
+
+A loosely-coupled system is a multiprocessor
+configuration in which the processors communicate via some type
+of communications link which is not shared global memory. The
+MPCI sends the RTEMS packets across the communications link to
+the destination node. The characteristics of the communications
+link vary widely and have a significant impact on the MPCI
+layer. For example, the bandwidth of the communications link
+has an obvious impact on the maximum MPCI throughput.
+
+The characteristics of a shared network, such as
+Ethernet, lend themselves to supporting an MPCI layer. These
+networks provide both the point-to-point and broadcast
+capabilities which are expected by RTEMS.
+
+@subsection Systems with Mixed Coupling
+
+A mixed-coupling system is a multiprocessor
+configuration in which the processors communicate via both
+shared memory and communications links. A unique characteristic
+of mixed-coupling systems is that a node may not have access to
+all communication methods. There may be multiple shared memory
+areas and communication links. Therefore, one of the primary
+functions of the MPCI layer is to efficiently route RTEMS
+packets between nodes. This routing may be based on numerous
+algorithms. In addition, the router may provide alternate
+communications paths in the event of an overload or a partial
+failure.
+
+@subsection Heterogeneous Systems
+
+Designing an MPCI layer for a heterogeneous system
+requires special considerations by the developer. RTEMS is
+designed to eliminate many of the problems associated with
+sharing data in a heterogeneous environment. The MPCI layer
+need only address the representation of thirty-two (32) bit
+unsigned quantities.
+
+For more information on supporting a heterogeneous
+system, refer the Supporting Heterogeneous Environments in the
+Multiprocessing Manager chapter.
diff --git a/doc/user/c_user.texi b/doc/user/c_user.texi
new file mode 100644
index 0000000000..4ade92d03d
--- /dev/null
+++ b/doc/user/c_user.texi
@@ -0,0 +1,165 @@
+\input texinfo @c -*-texinfo-*-
+@c %**start of header
+@setfilename c_user.info
+@syncodeindex vr fn
+@synindex ky cp
+@paragraphindent 0
+@c %**end of header
+
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@c
+@c Master file for the C User's Guide
+@c
+
+@c Joel's Questions
+@c
+@c 1. Why does paragraphindent only impact makeinfo?
+@c 2. Why does paragraphindent show up in HTML?
+@c
+
+@include version.texi
+@include common/setup.texi
+@include common/rtems.texi
+
+@ifset use-ascii
+@dircategory RTEMS On-Line Manual
+@direntry
+* RTEMS C User: (c_user). The C User's Guide.
+@end direntry
+@end ifset
+
+@c @syncodeindex fn cp
+@c variable substitution info:
+@c
+@set is-C
+@clear is-Ada
+@set LANGUAGE C
+@set STRUCTURE structure
+@set ROUTINE function
+@set OR |
+@set RPREFIX RTEMS_
+@set DIRPREFIX rtems_
+@c the language is @value{LANGUAGE}
+@c NOTE: don't use underscore in the name
+@c
+
+@c
+@c Title Page Stuff
+@c
+
+@c
+@c I don't really like having a short title page. --joel
+@c
+@c @shorttitlepage RTEMS Applications C User's Guide
+
+@setchapternewpage odd
+@settitle RTEMS C User's Guide
+@titlepage
+@finalout
+
+@title RTEMS C User's Guide
+@subtitle Edition @value{EDITION}, for RTEMS @value{VERSION}
+@sp 1
+@subtitle @value{UPDATED}
+@author On-Line Applications Research Corporation
+@page
+@include common/cpright.texi
+@end titlepage
+
+@c This prevents a black box from being printed on "overflow" lines.
+@c The alternative is to rework a sentence to avoid this problem.
+
+@include preface.texi
+@include overview.texi
+@include concepts.texi
+@include datatypes.texi
+@include init.texi
+@include task.texi
+@include intr.texi
+@include clock.texi
+@include timer.texi
+@include sem.texi
+@include msg.texi
+@include event.texi
+@include signal.texi
+@include part.texi
+@include region.texi
+@include dpmem.texi
+@include io.texi
+@include fatal.texi
+@include schedule.texi
+@include rtmon.texi
+@include bsp.texi
+@include userext.texi
+@include conf.texi
+@include mp.texi
+@include dirstat.texi
+@include example.texi
+@include glossary.texi
+@ifinfo
+@node Top, Preface, (dir), (dir)
+@top c_user
+
+This is the online version of the RTEMS C User's Guide.
+
+@menu
+* Preface::
+* Overview::
+* Key Concepts::
+* RTEMS Data Types::
+* Initialization Manager::
+* Task Manager::
+* Interrupt Manager::
+* Clock Manager::
+* Timer Manager::
+* Semaphore Manager::
+* Message Manager::
+* Event Manager::
+* Signal Manager::
+* Partition Manager::
+* Region Manager::
+* Dual-Ported Memory Manager::
+* I/O Manager::
+* Fatal Error Manager::
+* Scheduling Concepts::
+* Rate Monotonic Manager::
+* Board Support Packages::
+* User Extensions Manager::
+* Configuring a System::
+* Multiprocessing Manager::
+* Directive Status Codes::
+* Example Application::
+* Glossary::
+* Command and Variable Index::
+* Concept Index::
+@end menu
+
+@end ifinfo
+@c
+@c
+@c Need to copy the emacs stuff and "trailer stuff" (index, toc) into here
+@c
+
+@node Command and Variable Index, Concept Index, Glossary, Top
+@unnumbered Command and Variable Index
+
+@printindex fn
+
+@c There are currently no Command and Variable Index entries.
+
+@node Concept Index, , Command and Variable Index, Top
+@unnumbered Concept Index
+
+@c There are currently no Concept Index entries.
+@printindex cp
+
+@contents
+@bye
+
diff --git a/doc/user/clock.t b/doc/user/clock.t
new file mode 100644
index 0000000000..24721ebe8c
--- /dev/null
+++ b/doc/user/clock.t
@@ -0,0 +1,438 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@chapter Clock Manager
+
+@cindex clock
+
+@section Introduction
+
+The clock manager provides support for time of day
+and other time related capabilities. The directives provided by
+the clock manager are:
+
+@itemize @bullet
+@item @code{@value{DIRPREFIX}clock_set} - Set system date and time
+@item @code{@value{DIRPREFIX}clock_get} - Get system date and time information
+@item @code{@value{DIRPREFIX}clock_tick} - Announce a clock tick
+@end itemize
+
+@section Background
+
+@subsection Required Support
+
+For the features provided by the clock manager to be
+utilized, periodic timer interrupts are required. Therefore, a
+real-time clock or hardware timer is necessary to create the
+timer interrupts. The @code{@value{DIRPREFIX}clock_tick}
+directive is normally called
+by the timer ISR to announce to RTEMS that a system clock tick
+has occurred. Elapsed time is measured in ticks. A tick is
+defined to be an integral number of microseconds which is
+specified by the user in the Configuration Table.
+
+@subsection Time and Date Data Structures
+
+The clock facilities of the clock manager operate
+upon calendar time. These directives utilize the following date
+and time @value{STRUCTURE} for the native time and date format:
+
+
+@ifset is-C
+@findex rtems_time_of_day
+@example
+struct rtems_tod_control @{
+ rtems_unsigned32 year; /* greater than 1987 */
+ rtems_unsigned32 month; /* 1 - 12 */
+ rtems_unsigned32 day; /* 1 - 31 */
+ rtems_unsigned32 hour; /* 0 - 23 */
+ rtems_unsigned32 minute; /* 0 - 59 */
+ rtems_unsigned32 second; /* 0 - 59 */
+ rtems_unsigned32 ticks; /* elapsed between seconds */
+@};
+
+typedef struct rtems_tod_control rtems_time_of_day;
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+type Time_Of_Day is
+ record
+ Year : RTEMS.Unsigned32; -- year, A.D.
+ Month : RTEMS.Unsigned32; -- month, 1 .. 12
+ Day : RTEMS.Unsigned32; -- day, 1 .. 31
+ Hour : RTEMS.Unsigned32; -- hour, 0 .. 23
+ Minute : RTEMS.Unsigned32; -- minute, 0 .. 59
+ Second : RTEMS.Unsigned32; -- second, 0 .. 59
+ Ticks : RTEMS.Unsigned32; -- elapsed ticks between seconds
+ end record;
+@end example
+@end ifset
+
+
+The native date and time format is the only format
+supported when setting the system date and time using the
+@code{@value{DIRPREFIX}clock_get} directive. Some applications
+expect to operate on a "UNIX-style" date and time data structure. The
+@code{@value{DIRPREFIX}clock_get} directive can optionally return
+the current date and time in the
+following @value{STRUCTURE}:
+
+@ifset is-C
+@example
+@group
+typedef struct @{
+ rtems_unsigned32 seconds; /* seconds since RTEMS epoch*/
+ rtems_unsigned32 microseconds; /* since last second */
+@} rtems_clock_time_value;
+@end group
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+type Clock_Time_Value is
+ record
+ Seconds : Unsigned32;
+ Microseconds : Unsigned32;
+ end record;
+@end example
+@end ifset
+
+The seconds field in this @value{STRUCTURE} is the number of
+seconds since the RTEMS epoch of January 1, 1988.
+
+@subsection Clock Tick and Timeslicing
+
+@cindex timeslicing
+
+Timeslicing is a task scheduling discipline in which
+tasks of equal priority are executed for a specific period of
+time before control of the CPU is passed to another task. It is
+also sometimes referred to as the automatic round-robin
+scheduling algorithm. The length of time allocated to each task
+is known as the quantum or timeslice.
+
+The system's timeslice is defined as an integral
+number of ticks, and is specified in the Configuration Table.
+The timeslice is defined for the entire system of tasks, but
+timeslicing is enabled and disabled on a per task basis.
+
+The @code{@value{DIRPREFIX}clock_tick}
+directive implements timeslicing by
+decrementing the running task's time-remaining counter when both
+timeslicing and preemption are enabled. If the task's timeslice
+has expired, then that task will be preempted if there exists a
+ready task of equal priority.
+
+@subsection Delays
+
+@cindex delays
+
+A sleep timer allows a task to delay for a given
+interval or up until a given time, and then wake and continue
+execution. This type of timer is created automatically by the
+@code{@value{DIRPREFIX}task_wake_after}
+and @code{@value{DIRPREFIX}task_wake_when} directives and, as a result,
+does not have an RTEMS ID. Once activated, a sleep timer cannot
+be explicitly deleted. Each task may activate one and only one
+sleep timer at a time.
+
+@subsection Timeouts
+
+@cindex timeouts
+
+Timeouts are a special type of timer automatically
+created when the timeout option is used on the
+@code{@value{DIRPREFIX}message_queue_receive},
+@code{@value{DIRPREFIX}event_receive},
+@code{@value{DIRPREFIX}semaphore_obtain} and
+@code{@value{DIRPREFIX}region_get_segment} directives.
+Each task may have one and only one timeout active at a time.
+When a timeout expires, it unblocks the task with a timeout status code.
+
+@section Operations
+
+@subsection Announcing a Tick
+
+RTEMS provides the @code{@value{DIRPREFIX}clock_tick} directive which is
+called from the user's real-time clock ISR to inform RTEMS that
+a tick has elapsed. The tick frequency value, defined in
+microseconds, is a configuration parameter found in the
+Configuration Table. RTEMS divides one million microseconds
+(one second) by the number of microseconds per tick to determine
+the number of calls to the
+@code{@value{DIRPREFIX}clock_tick} directive per second. The
+frequency of @code{@value{DIRPREFIX}clock_tick}
+calls determines the resolution
+(granularity) for all time dependent RTEMS actions. For
+example, calling @code{@value{DIRPREFIX}clock_tick}
+ten times per second yields a higher
+resolution than calling @code{@value{DIRPREFIX}clock_tick}
+two times per second. The @code{@value{DIRPREFIX}clock_tick}
+directive is responsible for maintaining both
+calendar time and the dynamic set of timers.
+
+@subsection Setting the Time
+
+The @code{@value{DIRPREFIX}clock_set} directive allows a task or an ISR to
+set the date and time maintained by RTEMS. If setting the date
+and time causes any outstanding timers to pass their deadline,
+then the expired timers will be fired during the invocation of
+the @code{@value{DIRPREFIX}clock_set} directive.
+
+@subsection Obtaining the Time
+
+The @code{@value{DIRPREFIX}clock_get} directive allows a task or an ISR to
+obtain the current date and time or date and time related
+information. The current date and time can be returned in
+either native or UNIX-style format. Additionally, the
+application can obtain date and time related information such as
+the number of seconds since the RTEMS epoch, the number of ticks
+since the executive was initialized, and the number of ticks per
+second. The information returned by the
+@code{@value{DIRPREFIX}clock_get} directive is
+dependent on the option selected by the caller. This
+is specified using one of the following constants
+associated with the enumerated type
+@code{@value{DIRPREFIX}clock_get_options}:
+
+@findex rtems_clock_get_options
+
+@itemize @bullet
+@item @code{@value{RPREFIX}CLOCK_GET_TOD} - obtain native style date and time
+
+@item @code{@value{RPREFIX}CLOCK_GET_TIME_VALUE} - obtain UNIX-style
+date and time
+
+@item @code{@value{RPREFIX}CLOCK_GET_TICKS_SINCE_BOOT} - obtain number of ticks
+since RTEMS was initialized
+
+@item @code{@value{RPREFIX}CLOCK_GET_SECONDS_SINCE_EPOCH} - obtain number
+of seconds since RTEMS epoch
+
+@item @code{@value{RPREFIX}CLOCK_GET_TICKS_PER_SECOND} - obtain number of clock
+ticks per second
+
+@end itemize
+
+Calendar time operations will return an error code if
+invoked before the date and time have been set.
+
+@section Directives
+
+This section details the clock manager's directives.
+A subsection is dedicated to each of this manager's directives
+and describes the calling sequence, related constants, usage,
+and status codes.
+
+@c
+@c
+@c
+@page
+@subsection CLOCK_SET - Set system date and time
+
+@subheading CALLING SEQUENCE:
+
+@cindex set the time of day
+
+@ifset is-C
+@findex rtems_clock_set
+@example
+rtems_status_code rtems_clock_set(
+ rtems_time_of_day *time_buffer
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Clock_Set (
+ Time_Buffer : in RTEMS.Time_Of_Day;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - date and time set successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{time_buffer} is NULL@*
+@code{@value{RPREFIX}INVALID_TIME_OF_DAY} - invalid time of day
+
+@subheading DESCRIPTION:
+
+This directive sets the system date and time. The
+date, time, and ticks in the time_buffer @value{STRUCTURE} are all
+range-checked, and an error is returned if any one is out of its
+valid range.
+
+@subheading NOTES:
+
+Years before 1988 are invalid.
+
+The system date and time are based on the configured
+tick rate (number of microseconds in a tick).
+
+Setting the time forward may cause a higher priority
+task, blocked waiting on a specific time, to be made ready. In
+this case, the calling task will be preempted after the next
+clock tick.
+
+Re-initializing RTEMS causes the system date and time
+to be reset to an uninitialized state. Another call to
+@code{@value{DIRPREFIX}clock_set} is required to re-initialize
+the system date and time to application specific specifications.
+
+@c
+@c
+@c
+@page
+@subsection CLOCK_GET - Get system date and time information
+
+@cindex obtain the time of day
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_clock_get
+@example
+rtems_status_code rtems_clock_get(
+ rtems_clock_get_options option,
+ void *time_buffer
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Clock_Get (
+ Option : in RTEMS.Clock_Get_Options;
+ Time_Buffer : in RTEMS.Address;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - current time obtained successfully@*
+@code{@value{RPREFIX}NOT_DEFINED} - system date and time is not set@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{time_buffer} is NULL
+
+@subheading DESCRIPTION:
+
+This directive obtains the system date and time. If
+the caller is attempting to obtain the date and time (i.e.
+option is set to either @code{@value{RPREFIX}CLOCK_GET_SECONDS_SINCE_EPOCH},
+@code{@value{RPREFIX}CLOCK_GET_TOD}, or
+@code{@value{RPREFIX}CLOCK_GET_TIME_VALUE}) and the date and time
+has not been set with a previous call to
+@code{@value{DIRPREFIX}clock_set}, then the
+@code{@value{RPREFIX}NOT_DEFINED} status code is returned.
+The caller can always obtain the number of ticks per second (option is
+@code{@value{RPREFIX}CLOCK_GET_TICKS_PER_SECOND}) and the number of
+ticks since the executive was initialized option is
+@code{@value{RPREFIX}CLOCK_GET_TICKS_SINCE_BOOT}).
+
+The @code{option} argument may taken on any value of the enumerated
+type @code{rtems_clock_get_options}. The data type expected for
+@code{time_buffer} is based on the value of @code{option} as
+indicated below:
+
+@findex rtems_clock_get_options
+@ifset is-C
+@itemize @bullet
+@item @code{@value{RPREFIX}CLOCK_GET_TOD} - (rtems_time_of_day *)
+
+@item @code{@value{RPREFIX}CLOCK_GET_TIME_VALUE} - (rtems_clock_time_value *)
+
+@item @code{@value{RPREFIX}CLOCK_GET_TICKS_SINCE_BOOT} - (rtems_interval *)
+
+@item @code{@value{RPREFIX}CLOCK_GET_SECONDS_SINCE_EPOCH} - (rtems_interval *)
+
+@item @code{@value{RPREFIX}CLOCK_GET_TICKS_PER_SECOND} - (rtems_interval *)
+
+@end itemize
+@end ifset
+
+@ifset is-Ada
+@itemize @bullet
+@item @code{@value{RPREFIX}CLOCK_GET_TOD} - Address of an variable of
+type RTEMS.Time_Of_Day
+
+@item @code{@value{RPREFIX}CLOCK_GET_TIME_VALUE} - Address of an variable of
+type RTEMS.Clock_Time_Value
+
+@item @code{@value{RPREFIX}CLOCK_GET_TICKS_SINCE_BOOT} - Address of an
+variable of type RTEMS.Interval
+
+@item @code{@value{RPREFIX}CLOCK_GET_SECONDS_SINCE_EPOCH} - Address of an
+variable of type RTEMS.Interval
+
+@item @code{@value{RPREFIX}CLOCK_GET_TICKS_PER_SECOND} - Address of an
+variable of type RTEMS.Interval
+
+@end itemize
+@end ifset
+
+@subheading NOTES:
+
+This directive is callable from an ISR.
+
+This directive will not cause the running task to be
+preempted. Re-initializing RTEMS causes the system date and
+time to be reset to an uninitialized state. Another call to
+@code{@value{DIRPREFIX}clock_set} is required to re-initialize the
+system date and time to application specific specifications.
+
+@c
+@c
+@c
+@page
+@subsection CLOCK_TICK - Announce a clock tick
+
+@cindex clock tick
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_clock_tick
+@example
+rtems_status_code rtems_clock_tick( void );
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Clock_Tick (
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - clock tick processed successfully
+
+@subheading DESCRIPTION:
+
+This directive announces to RTEMS that a system clock
+tick has occurred. The directive is usually called from the
+timer interrupt ISR of the local processor. This directive
+maintains the system date and time, decrements timers for
+delayed tasks, timeouts, rate monotonic periods, and implements
+timeslicing.
+
+@subheading NOTES:
+
+This directive is typically called from an ISR.
+
+The microseconds_per_tick and ticks_per_timeslice
+parameters in the Configuration Table contain the number of
+microseconds per tick and number of ticks per timeslice,
+respectively.
+
diff --git a/doc/user/concepts.t b/doc/user/concepts.t
new file mode 100644
index 0000000000..adf8986e62
--- /dev/null
+++ b/doc/user/concepts.t
@@ -0,0 +1,361 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@c
+@c The following figure was replaced with an ASCII equivalent.
+@c Figure 2-1 Object ID Composition
+@c
+
+@chapter Key Concepts
+
+@section Introduction
+
+The facilities provided by RTEMS are built upon a
+foundation of very powerful concepts. These concepts must be
+understood before the application developer can efficiently
+utilize RTEMS. The purpose of this chapter is to familiarize
+one with these concepts.
+
+@section Objects
+
+@cindex objects
+
+RTEMS provides directives which can be used to
+dynamically create, delete, and manipulate a set of predefined
+object types. These types include tasks, message queues,
+semaphores, memory regions, memory partitions, timers, ports,
+and rate monotonic periods. The object-oriented nature of RTEMS
+encourages the creation of modular applications built upon
+re-usable "building block" routines.
+
+All objects are created on the local node as required
+by the application and have an RTEMS assigned ID. All objects
+have a user-assigned name. Although a relationship exists
+between an object's name and its RTEMS assigned ID, the name and
+ID are not identical. Object names are completely arbitrary and
+selected by the user as a meaningful "tag" which may commonly
+reflect the object's use in the application. Conversely, object
+IDs are designed to facilitate efficient object manipulation by
+the executive.
+
+@subsection Object Names
+
+@cindex object name
+@findex rtems_object_name
+
+An object name is an unsigned thirty-two bit entity
+associated with the object by the user. The data type
+@code{@value{DIRPREFIX}name} is used to store object names.
+
+@findex rtems_build_name
+
+Although not required by RTEMS, object names are often
+composed of four ASCII characters which help identify that object.
+For example, a task which causes a light to blink might be
+called "LITE". The @code{@value{DIRPREFIX}build_name} routine
+is provided to build an object name from four ASCII characters.
+@ifset is-C
+The following example illustrates this:
+
+@example
+rtems_object_name my_name;
+
+my_name = rtems_build_name( 'L', 'I', 'T', 'E' );
+@end example
+@end ifset
+
+However, it is not required that the application use ASCII
+characters to build object names. For example, if an
+application requires one-hundred tasks, it would be difficult to
+assign meaningful ASCII names to each task. A more convenient
+approach would be to name them the binary values one through
+one-hundred, respectively.
+
+@subsection Object IDs
+
+@cindex object ID
+@cindex object ID composition
+@findex rtems_id
+
+@need 3000
+
+An object ID is a unique unsigned thirty-two bit
+entity composed of three parts: object class, node, and index.
+The data type @code{@value{DIRPREFIX}id} is used to store object IDs.
+
+
+@ifset use-ascii
+@example
+@group
+ 31 26 25 16 15 0
+ +-----------+------------------+-------------------------------+
+ | | | |
+ | Class | Node | Index |
+ | | | |
+ +-----------+------------------+-------------------------------+
+@end group
+@end example
+@end ifset
+
+@ifset use-tex
+@sp 1
+@tex
+\centerline{\vbox{\offinterlineskip\halign{
+\strut#&
+\hbox to 0.50in{\enskip#}&
+\hbox to 0.50in{\enskip#}&
+#&
+\hbox to 0.50in{\enskip#}&
+\hbox to 0.50in{\enskip#}&
+#&
+\hbox to 1.00in{\enskip#}&
+\hbox to 1.00in{\enskip#}&
+#\cr
+\multispan{9}\cr
+\multispan{2}31\hfil&\multispan{2}\hfil26\enskip&
+ \multispan{1}\enskip25\hfil&\multispan{2}\hfil16\enskip&
+ \multispan{1}\enskip15\hfil&\multispan{2}\hfil0\cr
+&&&&&&&&&\cr
+}}\hfil}
+\centerline{\vbox{\offinterlineskip\halign{
+\strut\vrule#&
+\hbox to 0.50in{\enskip#}&
+\hbox to 0.50in{\enskip#}&
+\vrule#&
+\hbox to 0.50in{\enskip#}&
+\hbox to 0.50in{\enskip#}&
+\vrule#&
+\hbox to 0.50in{\enskip#}&
+\hbox to 0.50in{\enskip#}&
+\vrule#\cr
+\multispan{9}\cr
+\noalign{\hrule}
+&&&&&&&&&\cr
+&\multispan{2}\hfil Class\hfil&&
+ \multispan{2}\hfil Node\hfil&&
+ \multispan{2}\hfil Index\hfil&\cr
+&&&&&&&&&\cr
+\noalign{\hrule}
+}}\hfil}
+@end tex
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=6 WIDTH="60%" BORDER=0>
+<TR><TD ALIGN=left><STRONG>31</STRONG></TD>
+ <TD ALIGN=right><STRONG>26</STRONG></TD>
+ <TD ALIGN=left><STRONG>25</STRONG></TD>
+ <TD ALIGN=right><STRONG>16</STRONG></TD>
+ <TD ALIGN=left><STRONG>15</STRONG></TD>
+ <TD ALIGN=right><STRONG>0</STRONG></TD></TR>
+ </TABLE>
+</CENTER>
+<CENTER>
+ <TABLE COLS=6 WIDTH="60%" BORDER=2>
+<TR><TD ALIGN=center COLSPAN=2>Class</TD>
+ <TD ALIGN=center COLSPAN=2>Node</TD>
+ <TD ALIGN=center COLSPAN=2>Index</TD></TD>
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+
+The most significant six bits are the object class. The next
+ten bits are the number of the node on which this object was
+created. The node number is always one (1) in a single
+processor system. The least significant sixteen bits form an
+identifier within a particular object type. This identifier,
+called the object index, ranges in value from 1 to the maximum
+number of objects configured for this object type.
+
+
+The three components of an object ID make it possible
+to quickly locate any object in even the most complicated
+multiprocessor system. Object ID's are associated with an
+object by RTEMS when the object is created and the corresponding
+ID is returned by the appropriate object create directive. The
+object ID is required as input to all directives involving
+objects, except those which create an object or obtain the ID of
+an object.
+
+The object identification directives can be used to
+dynamically obtain a particular object's ID given its name.
+This mapping is accomplished by searching the name table
+associated with this object type. If the name is non-unique,
+then the ID associated with the first occurrence of the name
+will be returned to the application. Since object IDs are
+returned when the object is created, the object identification
+directives are not necessary in a properly designed single
+processor application.
+
+In addition, services are provided to portably examine the
+three subcomponents of an RTEMS ID. These services are
+prototyped as follows:
+
+@cindex obtaining class from object ID
+@cindex obtaining node from object ID
+@cindex obtaining index from object ID
+@cindex get class from object ID
+@cindex get node from object ID
+@cindex get index from object ID
+@findex rtems_get_class
+@findex rtems_get_node
+@findex rtems_get_index
+
+@example
+rtems_unsigned32 rtems_get_class( rtems_id );
+rtems_unsigned32 rtems_get_node( rtems_id );
+rtems_unsigned32 rtems_get_index( rtems_id );
+@end example
+
+An object control block is a data structure defined
+by RTEMS which contains the information necessary to manage a
+particular object type. For efficiency reasons, the format of
+each object type's control block is different. However, many of
+the fields are similar in function. The number of each type of
+control block is application dependent and determined by the
+values specified in the user's Configuration Table. An object
+control block is allocated at object create time and freed when
+the object is deleted. With the exception of user extension
+routines, object control blocks are not directly manipulated by
+user applications.
+
+@section Communication and Synchronization
+
+@cindex communication and synchronization
+
+In real-time multitasking applications, the ability
+for cooperating execution threads to communicate and synchronize
+with each other is imperative. A real-time executive should
+provide an application with the following capabilities:
+
+@itemize @bullet
+@item Data transfer between cooperating tasks
+@item Data transfer between tasks and ISRs
+@item Synchronization of cooperating tasks
+@item Synchronization of tasks and ISRs
+@end itemize
+
+Most RTEMS managers can be used to provide some form
+of communication and/or synchronization. However, managers
+dedicated specifically to communication and synchronization
+provide well established mechanisms which directly map to the
+application's varying needs. This level of flexibility allows
+the application designer to match the features of a particular
+manager with the complexity of communication and synchronization
+required. The following managers were specifically designed for
+communication and synchronization:
+
+@itemize @bullet
+@item Semaphore
+@item Message Queue
+@item Event
+@item Signal
+@end itemize
+
+The semaphore manager supports mutual exclusion
+involving the synchronization of access to one or more shared
+user resources. Binary semaphores may utilize the optional
+priority inheritance algorithm to avoid the problem of priority
+inversion. The message manager supports both communication and
+synchronization, while the event manager primarily provides a
+high performance synchronization mechanism. The signal manager
+supports only asynchronous communication and is typically used
+for exception handling.
+
+@section Time
+
+@cindex time
+
+The development of responsive real-time applications
+requires an understanding of how RTEMS maintains and supports
+time-related operations. The basic unit of time in RTEMS is
+known as a tick. The frequency of clock ticks is completely
+application dependent and determines the granularity and
+accuracy of all interval and calendar time operations.
+
+@findex rtems_interval
+
+By tracking time in units of ticks, RTEMS is capable
+of supporting interval timing functions such as task delays,
+timeouts, timeslicing, the delayed execution of timer service
+routines, and the rate monotonic scheduling of tasks. An
+interval is defined as a number of ticks relative to the current
+time. For example, when a task delays for an interval of ten
+ticks, it is implied that the task will not execute until ten
+clock ticks have occurred.
+All intervals are specified using data type
+@code{@value{DIRPREFIX}interval}.
+
+A characteristic of interval timing is that the
+actual interval period may be a fraction of a tick less than the
+interval requested. This occurs because the time at which the
+delay timer is set up occurs at some time between two clock
+ticks. Therefore, the first countdown tick occurs in less than
+the complete time interval for a tick. This can be a problem if
+the clock granularity is large.
+
+The rate monotonic scheduling algorithm is a hard
+real-time scheduling methodology. This methodology provides
+rules which allows one to guarantee that a set of independent
+periodic tasks will always meet their deadlines -- even under
+transient overload conditions. The rate monotonic manager
+provides directives built upon the Clock Manager's interval
+timer support routines.
+
+Interval timing is not sufficient for the many
+applications which require that time be kept in wall time or
+true calendar form. Consequently, RTEMS maintains the current
+date and time. This allows selected time operations to be
+scheduled at an actual calendar date and time. For example, a
+task could request to delay until midnight on New Year's Eve
+before lowering the ball at Times Square.
+The data type @code{@value{DIRPREFIX}time_of_day} is used to specify
+calendar time in RTEMS services.
+@xref{Clock Manager Time and Date Data Structures, , Time and Date Data Structures}.
+@findex rtems_time_of_day
+
+Obviously, the directives which use intervals or wall
+time cannot operate without some external mechanism which
+provides a periodic clock tick. This clock tick is typically
+provided by a real time clock or counter/timer device.
+
+@section Memory Management
+
+@cindex memory management
+
+RTEMS memory management facilities can be grouped
+into two classes: dynamic memory allocation and address
+translation. Dynamic memory allocation is required by
+applications whose memory requirements vary through the
+application's course of execution. Address translation is
+needed by applications which share memory with another CPU or an
+intelligent Input/Output processor. The following RTEMS
+managers provide facilities to manage memory:
+
+@itemize @bullet
+@item Region
+
+@item Partition
+
+@item Dual Ported Memory
+@end itemize
+
+RTEMS memory management features allow an application
+to create simple memory pools of fixed size buffers and/or more
+complex memory pools of variable size segments. The partition
+manager provides directives to manage and maintain pools of
+fixed size entities such as resource control blocks.
+Alternatively, the region manager provides a more general
+purpose memory allocation scheme that supports variable size
+blocks of memory which are dynamically obtained and freed by the
+application. The dual-ported memory manager provides executive
+support for address translation between internal and external
+dual-ported RAM address space.
diff --git a/doc/user/conf.t b/doc/user/conf.t
new file mode 100644
index 0000000000..c931c4ea65
--- /dev/null
+++ b/doc/user/conf.t
@@ -0,0 +1,2028 @@
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@c The following macros from confdefs.h have not been discussed in this
+@c chapter:
+@c
+@c CONFIGURE_NEWLIB_EXTENSION - probably not needed
+@c CONFIGURE_MALLOC_REGION - probably not needed
+@c CONFIGURE_LIBIO_SEMAPHORES - implicitly discussed.
+@c CONFIGURE_INTERRUPT_STACK_MEMORY
+@c CONFIGURE_GNAT_RTEMS
+@c CONFIGURE_GNAT_MUTEXES
+@c CONFIGURE_GNAT_KEYS
+@c CONFIGURE_MAXIMUM_ADA_TASKS
+@c CONFIGURE_MAXIMUM_FAKE_ADA_TASKS
+@c CONFIGURE_ADA_TASKS_STACK
+@c
+@c In addition, there should be examples of defining your own
+@c Device Driver Table, Init task table, etc.
+@c
+@c Regardless, this is a big step up. :)
+@c
+
+@chapter Configuring a System
+
+@section Introduction
+
+RTEMS must be configured for an application. This configuration
+information encompasses a variety of information including
+the length of each clock tick, the maximum number of each RTEMS
+object that can be created, the application initialization tasks,
+and the device drivers in the application. This information
+is placed in data structures that are given to RTEMS at
+system initialization time. This chapter details the
+format of these data structures as well as a simpler
+mechanism to automate the generation of these structures.
+
+
+@section Automatic Generation of System Configuration
+
+@cindex confdefs.h
+@findex confdefs.h
+
+RTEMS provides the @code{confdefs.h} C language header file that
+based on the setting of a variety of macros can automatically
+produce nearly all of the configuration tables required
+by an RTEMS application. Rather than building the individual
+tables by hand, the application simply specifies the values
+for the configuration parameters it wishes to set. In the following
+example, the configuration information for a simple system with
+a message queue and a time slice of 50 milliseconds is configured:
+
+@example
+@group
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+
+#define CONFIGURE_MICROSECONDS_PER_TICK 1000 /* 1 millisecond */
+#define CONFIGURE_TICKS_PER_TIMESLICE 50 /* 50 milliseconds */
+
+#define CONFIGURE_MAXIMUM_TASKS 4
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+@end group
+@end example
+
+This system will begin execution with the single initialization task
+named @code{Init}. It will be configured to have both a console
+device driver (for standard I/O) and a clock tick device driver.
+
+For each configuration parameter in the configuration tables, the
+macro corresponding to that field is discussed. Most systems
+can be easily configured using the @code{confdefs.h} mechanism.
+
+The @code{CONFIGURE_INIT} constant must be defined in order to
+make @code{confdefs.h} instantiate the configuration data
+structures. This can only be defined in one source file per
+application that includes @code{confdefs.h} or the symbol
+table will be instantiated multiple times and linking errors
+produced.
+
+The user should be aware that the defaults are intentionally
+set as low as possible. By default, no application resources
+are configured. The @code{confdefs.h} file ensures that
+at least one application tasks or thread is configured
+and that at least one of the initialization task/thread
+tables is configured.
+
+The @code{confdefs.h} file estimates the amount of
+memory required for the RTEMS Executive Workspace. This
+estimate is only as accurate as the information given
+to @code{confdefs.h} and may be either too high or too
+low for a variety of reasons. Some of the reasons that
+@code{confdefs.h} may reserve too much memory for RTEMS
+are:
+
+@itemize @bullet
+@item All tasks/threads are assumed to be floating point.
+@end itemize
+
+Conversely, there are many more reasons, the resource
+estimate could be too low:
+
+@itemize @bullet
+@item Task/thread stacks greater than minimum size must be
+accounted for explicitly by developer.
+
+@item Memory for messages is not included.
+
+@item Device driver requirements are not included.
+
+
+@item Network stack requirements are not included.
+
+@item Requirements for add-on libraries are not included.
+@end itemize
+
+In general, @code{confdefs.h} is very accurate when given
+enough information. However, it is quite easy to use
+a library and not account for its resources.
+
+The following subsection list all of the constants which can be
+set by the user.
+
+@subsection Library Support Definitions
+
+This section defines the file system and IO library
+related configuration parameters supported by
+@code{confdefs.h}.
+
+@itemize @bullet
+@findex CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS
+@item @code{CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS} is set to the
+maximum number of files that can be concurrently open. Libio requires
+a Classic RTEMS semaphore for each file descriptor as well as one
+global one. The default value is 3 file descriptors which is
+enough to support standard input, output, and error output.
+
+@findex CONFIGURE_TERMIOS_DISABLED
+@item @code{CONFIGURE_TERMIOS_DISABLED} is defined if the
+software implementing POSIX termios functionality is
+not going to be used by this application. By default, this
+is not defined and resources are reserved for the
+termios functionality.
+
+@findex CONFIGURE_NUMBER_OF_TERMIOS_PORTS
+@item @code{CONFIGURE_NUMBER_OF_TERMIOS_PORTS} is set to the
+number of ports using the termios functionality. Each
+concurrently active termios port requires resources.
+By default, this is set to 1 so a console port can be
+used.
+
+@findex CONFIGURE_HAS_OWN_MOUNT_TABLE
+@item @code{CONFIGURE_HAS_OWN_MOUNT_TABLE} is defined when the
+application provides their own filesystem mount table. The
+mount table is an array of @code{rtems_filesystem_mount_table_t}
+entries pointed to by the global variable
+@code{rtems_filesystem_mount_table}. The number of
+entries in this table is in an integer variable named
+@code{rtems_filesystem_mount_table_t}.
+
+@findex CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
+@item @code{CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM} is defined
+if the application wishes to use the full functionality
+IMFS. By default, the miniIMFS is used. The miniIMFS
+is a minimal functionality subset of the In-Memory
+FileSystem (IMFS). The miniIMFS is comparable
+in functionality to the pseudo-filesystem name space provided
+before RTEMS release 4.5.0. The miniIMFS supports
+only directories and device nodes and is smaller in executable
+code size than the full IMFS.
+
+@findex STACK_CHECKER_ON
+@item @code{STACK_CHECKER_ON} is defined when the application
+wishes to enable run-time stack bounds checking. This increases
+the time required to create tasks as well as adding overhead
+to each context switch. By default, this is not defined and
+thus stack checking is disabled.
+
+@end itemize
+
+@subsection Basic System Information
+
+This section defines the general system configuration parameters supported by
+@code{confdefs.h}.
+
+@itemize @bullet
+@findex CONFIGURE_HAS_OWN_CONFIGURATION_TABLE
+@item @code{CONFIGURE_HAS_OWN_CONFIGURATION_TABLE} should only be defined
+if the application is providing their own complete set of configuration
+tables.
+
+@findex CONFIGURE_INTERRUPT_STACK_MEMORY
+@item @code{CONFIGURE_INTERRUPT_STACK_MEMORY} is set to the
+size of the interrupt stack. The interrupt stack size is
+usually set by the BSP but since this memory is allocated
+from the RTEMS Ram Workspace, it must be accounted for. The
+default for this field is RTEMS_MINIMUM_STACK_SIZE. [NOTE:
+At this time, changing this constant does NOT change the
+size of the interrupt stack, only the amount of memory
+reserved for it.]
+
+@findex CONFIGURE_EXECUTIVE_RAM_WORK_AREA
+@item @code{CONFIGURE_EXECUTIVE_RAM_WORK_AREA} is the base
+address of the RTEMS RAM Workspace. By default, this value
+is NULL indicating that the BSP is to determine the location
+of the RTEMS RAM Workspace.
+
+@findex CONFIGURE_MICROSECONDS_PER_TICK
+@item @code{CONFIGURE_MICROSECONDS_PER_TICK} is the length
+of time between clock ticks. By default, this is set to
+10000 microseconds.
+
+@findex CONFIGURE_TICKS_PER_TIMESLICE
+@item @code{CONFIGURE_TICKS_PER_TIMESLICE} is the number
+of ticks per each task's timeslice. By default, this is
+50.
+
+@findex CONFIGURE_MEMORY_OVERHEAD
+@item @code{CONFIGURE_MEMORY_OVERHEAD} is set to the number of
+bytes the applications wishes to add to the requirements calculated
+by @code{confdefs.h}. The default value is 0.
+
+@findex CONFIGURE_EXTRA_TASK_STACKS
+@item @code{CONFIGURE_EXTRA_TASK_STACKS} is set to the number of
+bytes the applications wishes to add to the task stack requirements
+calculated by @code{confdefs.h}. This parameter is very important.
+If the application creates tasks with stacks larger then the
+minimum, then that memory is NOT accounted for by @code{confdefs.h}.
+The default value is 0.
+
+@end itemize
+
+NOTE: The required size of the Executive RAM Work Area is calculated
+automatically when using the @code{confdefs.h} mechanism.
+
+@subsection Device Driver Table
+
+This section defines the configuration parameters related
+to the automatic generation of a Device Driver Table. As
+@code{confdefs.h} only is aware of a small set of
+standard device drivers, the generated Device Driver
+Table is suitable for simple applications with no
+custom device drivers.
+
+@itemize @bullet
+@findex CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE
+@item @code{CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE} is defined if
+the application wishes to provide their own Device Driver Table.
+The table generated is an array of @code{rtems_driver_address_table}
+entries named @code{Device_drivers}. By default, this is not
+defined indicating the @code{confdefs.h} is providing the
+device driver table.
+
+@findex CONFIGURE_MAXIMUM_DRIVERS
+@item @code{CONFIGURE_MAXIMUM_DRIVERS} is defined
+as the number of device drivers per node. By default, this is
+set to 10.
+
+@findex CONFIGURE_MAXIMUM_DEVICES
+@item @code{CONFIGURE_MAXIMUM_DEVICES} is defined
+to the number of individual devices that may be registered
+in the system. By default, this is set to 20.
+
+@findex CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+@item @code{CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER}
+is defined
+if the application wishes to include the Console Device Driver.
+This device driver is responsible for providing standard input
+and output using "/dev/console". By default, this is not
+defined.
+
+@findex CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+@item @code{CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER}
+is defined
+if the application wishes to include the Console Device Driver.
+This device driver is responsible for providing standard input
+and output using "/dev/console". By default, this is not
+defined.
+
+@findex CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
+@item @code{CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER}
+is defined if the application wishes to include the Timer Driver.
+This device driver is used to benchmark execution times
+by the RTEMS Timing Test Suites. By default, this is not
+defined.
+
+@c @item @code{CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER}
+@c is defined
+@c if the application wishes to include the Real-Time Clock Driver.
+@c By default, this is not defined.
+
+@findex CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
+@item @code{CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER}
+is defined if the application wishes to include the Stub Device Driver.
+This device driver simply provides entry points that return
+successful and is primarily a test fixture.
+By default, this is not defined.
+
+@end itemize
+
+@subsection Multiprocessing Configuration
+
+This section defines the multiprocessing related
+system configuration parameters supported by @code{confdefs.h}.
+This class of Configuration Constants are only applicable if
+@code{CONFIGURE_MP_APPLICATION} is defined.
+
+@itemize @bullet
+@findex CONFIGURE_HAS_OWN_MULTIPROCESING_TABLE
+@item @code{CONFIGURE_HAS_OWN_MULTIPROCESING_TABLE} is defined
+if the application wishes to provide their own Multiprocessing
+Configuration Table. The generated table is named
+@code{Multiprocessing_configuration}. By default, this
+is not defined.
+
+@findex CONFIGURE_MP_NODE_NUMBER
+@item @code{CONFIGURE_MP_NODE_NUMBER} is the node number of
+this node in a multiprocessor system. The default node number
+is @code{NODE_NUMBER} which is set directly in RTEMS test Makefiles.
+
+@findex CONFIGURE_MP_MAXIMUM_NODES
+@item @code{CONFIGURE_MP_MAXIMUM_NODES} is the maximum number
+of nodes in a multiprocessor system. The default is 2.
+
+@findex CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
+@item @code{CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS}
+is the maximum number
+of concurrently active global objects in a multiprocessor
+system. The default is 32.
+
+@findex CONFIGURE_MP_MAXIMUM_PROXIES
+@item @code{CONFIGURE_MP_MAXIMUM_PROXIES} is the maximum number
+of concurrently active thread/task proxies in a multiprocessor
+system. The default is 32.
+
+@findex CONFIGURE_MP_MPCI_TABLE_POINTER
+@item @code{CONFIGURE_MP_MPCI_TABLE_POINTER} is the pointer
+to the MPCI Configuration Table. The default value of
+this field is @code{&MPCI_table}.
+@end itemize
+
+@subsection Classic API Configuration
+
+This section defines the Classic API related
+system configuration parameters supported by @code{confdefs.h}.
+
+@itemize @bullet
+@findex CONFIGURE_MAXIMUM_TASKS
+@item @code{CONFIGURE_MAXIMUM_TASKS} is the maximum number of
+Classic API tasks that can be concurrently active.
+The default for this field is 0.
+
+@findex CONFIGURE_MAXIMUM_TIMERS
+@item @code{CONFIGURE_MAXIMUM_TIMERS} is the maximum number of
+Classic API timers that can be concurrently active.
+The default for this field is 0.
+
+@findex CONFIGURE_MAXIMUM_SEMAPHORES
+@item @code{CONFIGURE_MAXIMUM_SEMAPHORES} is the maximum number of
+Classic API semaphores that can be concurrently active.
+The default for this field is 0.
+
+@findex CONFIGURE_MAXIMUM_MESSAGE_QUEUES
+@item @code{CONFIGURE_MAXIMUM_MESSAGE_QUEUES} is the maximum number of
+Classic API message queues that can be concurrently active.
+The default for this field is 0.
+
+@findex CONFIGURE_MAXIMUM_PARTITIONS
+@item @code{CONFIGURE_MAXIMUM_PARTITIONS} is the maximum number of
+Classic API partitions that can be concurrently active.
+The default for this field is 0.
+
+@findex CONFIGURE_MAXIMUM_REGIONS
+@item @code{CONFIGURE_MAXIMUM_REGIONS} is the maximum number of
+Classic API regions that can be concurrently active.
+The default for this field is 0.
+
+@findex CONFIGURE_MAXIMUM_PORTS
+@item @code{CONFIGURE_MAXIMUM_PORTS} is the maximum number of
+Classic API ports that can be concurrently active.
+The default for this field is 0.
+
+@findex CONFIGURE_MAXIMUM_PERIODS
+@item @code{CONFIGURE_MAXIMUM_PERIODS} is the maximum number of
+Classic API rate monotonic periods that can be concurrently active.
+The default for this field is 0.
+
+@findex CONFIGURE_MAXIMUM_USER_EXTENSIONS
+@item @code{CONFIGURE_MAXIMUM_USER_EXTENSIONS} is the maximum number of
+Classic API user extensions that can be concurrently active.
+The default for this field is 0.
+
+@end itemize
+
+@subsection Classic API Initialization Tasks Table Configuration
+
+The @code{confdefs.h} configuration system can automatically
+generate an Initialization Tasks Table named
+@code{Initialization_tasks} with a single entry. The following
+parameters control the generation of that table.
+
+@itemize @bullet
+@findex CONFIGURE_RTEMS_INIT_TASKS_TABLE
+@item @code{CONFIGURE_RTEMS_INIT_TASKS_TABLE} is defined
+if the user wishes to use a Classic RTEMS API Initialization
+Task Table. The application may choose to use the initialization
+tasks or threads table from another API. By default, this
+field is not defined as the user MUST select their own
+API for initialization tasks.
+
+@findex CONFIGURE_HAS_OWN_INIT_TASK_TABLE
+@item @code{CONFIGURE_HAS_OWN_INIT_TASK_TABLE} is defined
+if the user wishes to define their own Classic API Initialization
+Tasks Table. This table should be named @code{Initialization_tasks}.
+By default, this is not defined.
+
+@findex CONFIGURE_INIT_TASK_NAME
+@item @code{CONFIGURE_INIT_TASK_NAME} is the name
+of the single initialization task defined by the
+Classic API Initialization Tasks Table. By default
+the value is @code{rtems_build_name( 'U', 'I', '1', ' ' )}.
+
+@findex CONFIGURE_INIT_TASK_STACK_SIZE
+@item @code{CONFIGURE_INIT_TASK_STACK_SIZE}
+is the stack size
+of the single initialization task defined by the
+Classic API Initialization Tasks Table. By default
+the value is @code{RTEMS_MINIMUM_STACK_SIZE}.
+
+@findex CONFIGURE_INIT_TASK_PRIORITY
+@item @code{CONFIGURE_INIT_TASK_PRIORITY}
+is the initial priority
+of the single initialization task defined by the
+Classic API Initialization Tasks Table. By default
+the value is 1 which is the highest priority
+in the Classic API.
+
+@findex CONFIGURE_INIT_TASK_ATTRIBUTES
+@item @code{CONFIGURE_INIT_TASK_ATTRIBUTES}
+is the task attributes
+of the single initialization task defined by the
+Classic API Initialization Tasks Table. By default
+the value is @code{RTEMS_DEFAULT_ATTRIBUTES}.
+
+@findex CONFIGURE_INIT_TASK_ENTRY_POINT
+@item @code{CONFIGURE_INIT_TASK_ENTRY_POINT}
+is the entry point (a.k.a. function name)
+of the single initialization task defined by the
+Classic API Initialization Tasks Table. By default
+the value is @code{Init}.
+
+@findex CONFIGURE_INIT_TASK_INITIAL_MODES
+@item @code{CONFIGURE_INIT_TASK_INITIAL_MODES}
+is the initial execution mode
+of the single initialization task defined by the
+Classic API Initialization Tasks Table. By default
+the value is @code{RTEMS_NO_PREEMPT}.
+
+@findex CONFIGURE_INIT_TASK_ARGUMENTS
+@item @code{CONFIGURE_INIT_TASK_ARGUMENTS}
+is the task argument
+of the single initialization task defined by the
+Classic API Initialization Tasks Table. By default
+the value is 0.
+
+@end itemize
+
+
+@subsection POSIX API Configuration
+
+The parameters in this section are used to configure resources
+for the RTEMS POSIX API. They are only relevant if the POSIX API
+is enabled at configure time using the @code{--enable-posix} option.
+
+@itemize @bullet
+@findex CONFIGURE_MAXIMUM_POSIX_THREADS
+@item @code{CONFIGURE_MAXIMUM_POSIX_THREADS} is the maximum number of
+POSIX API threads that can be concurrently active.
+The default is 0.
+
+@findex CONFIGURE_MAXIMUM_POSIX_MUTEXES
+@item @code{CONFIGURE_MAXIMUM_POSIX_MUTEXES} is the maximum number of
+POSIX API mutexes that can be concurrently active.
+The default is 0.
+
+@findex CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES
+@item @code{CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES} is the maximum number of
+POSIX API condition variables that can be concurrently active.
+The default is 0.
+
+@findex CONFIGURE_MAXIMUM_POSIX_KEYS
+@item @code{CONFIGURE_MAXIMUM_POSIX_KEYS} is the maximum number of
+POSIX API keys that can be concurrently active.
+The default is 0.
+
+@findex CONFIGURE_MAXIMUM_POSIX_TIMERS
+@item @code{CONFIGURE_MAXIMUM_POSIX_TIMERS} is the maximum number of
+POSIX API timers that can be concurrently active.
+The default is 0.
+
+@findex CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
+@item @code{CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS} is the maximum number of
+POSIX API queued signals that can be concurrently active.
+The default is 0.
+
+@findex CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
+@item @code{CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES} is the maximum number of
+POSIX API message queues that can be concurrently active.
+The default is 0.
+
+@findex CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
+@item @code{CONFIGURE_MAXIMUM_POSIX_SEMAPHORES} is the maximum number of
+POSIX API semaphores that can be concurrently active.
+The default is 0.
+
+@end itemize
+
+@subsection POSIX Initialization Threads Table Configuration
+
+The @code{confdefs.h} configuration system can automatically
+generate a POSIX Initialization Threads Table named
+@code{POSIX_Initialization_threads} with a single entry. The following
+parameters control the generation of that table.
+
+@itemize @bullet
+@findex CONFIGURE_POSIX_INIT_THREAD_TABLE
+@item @code{CONFIGURE_POSIX_INIT_THREAD_TABLE}
+is defined
+if the user wishes to use a POSIX API Initialization
+Threads Table. The application may choose to use the initialization
+tasks or threads table from another API. By default, this
+field is not defined as the user MUST select their own
+API for initialization tasks.
+
+@findex CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE
+@item @code{CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE}
+is defined if the user wishes to define their own POSIX API Initialization
+Threads Table. This table should be named @code{POSIX_Initialization_threads}.
+By default, this is not defined.
+
+@findex CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT
+@item @code{CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT}
+is the entry point (a.k.a. function name)
+of the single initialization thread defined by the
+POSIX API Initialization Threads Table. By default
+the value is @code{POSIX_Init}.
+
+@findex CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE
+@item @code{CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE}
+is the stack size of the single initialization thread defined by the
+POSIX API Initialization Threads Table. By default
+the value is @code{RTEMS_MINIMUM_STACK_SIZE * 2}.
+
+@end itemize
+
+@subsection ITRON API Configuration
+
+The parameters in this section are used to configure resources
+for the RTEMS ITRON API. They are only relevant if the POSIX API
+is enabled at configure time using the @code{--enable-itron} option.
+
+@itemize @bullet
+@findex CONFIGURE_MAXIMUM_ITRON_TASKS
+@item @code{CONFIGURE_MAXIMUM_ITRON_TASKS}
+is the maximum number of
+ITRON API tasks that can be concurrently active.
+The default is 0.
+
+@findex CONFIGURE_MAXIMUM_ITRON_SEMAPHORES
+@item @code{CONFIGURE_MAXIMUM_ITRON_SEMAPHORES}
+is the maximum number of
+ITRON API semaphores that can be concurrently active.
+The default is 0.
+
+@findex CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS
+@item @code{CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS}
+is the maximum number of
+ITRON API eventflags that can be concurrently active.
+The default is 0.
+
+@findex CONFIGURE_MAXIMUM_ITRON_MAILBOXES
+@item @code{CONFIGURE_MAXIMUM_ITRON_MAILBOXES}
+is the maximum number of
+ITRON API mailboxes that can be concurrently active.
+The default is 0.
+
+@findex CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS
+@item @code{CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS}
+is the maximum number of
+ITRON API message buffers that can be concurrently active.
+The default is 0.
+
+@findex CONFIGURE_MAXIMUM_ITRON_PORTS
+@item @code{CONFIGURE_MAXIMUM_ITRON_PORTS}
+is the maximum number of
+ITRON API ports that can be concurrently active.
+The default is 0.
+
+@findex CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS
+@item @code{CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS}
+is the maximum number of
+ITRON API memory pools that can be concurrently active.
+The default is 0.
+
+@findex CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS
+@item @code{CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS}
+is the maximum number of
+ITRON API fixed memory pools that can be concurrently active.
+The default is 0.
+
+@end itemize
+
+@subsection ITRON Initialization Task Table Configuration
+
+The @code{confdefs.h} configuration system can automatically
+generate an ITRON Initialization Tasks Table named
+@code{ITRON_Initialization_tasks} with a single entry. The following
+parameters control the generation of that table.
+
+@itemize @bullet
+@findex CONFIGURE_ITRON_INIT_TASK_TABLE
+@item @code{CONFIGURE_ITRON_INIT_TASK_TABLE} is defined
+if the user wishes to use a ITRON API Initialization
+Tasks Table. The application may choose to use the initialization
+tasks or threads table from another API. By default, this
+field is not defined as the user MUST select their own
+API for initialization tasks.
+
+@findex CONFIGURE_ITRON_HAS_OWN_INIT_TASK_TABLE
+@item @code{CONFIGURE_ITRON_HAS_OWN_INIT_TASK_TABLE}
+is defined if the user wishes to define their own ITRON API Initialization
+Tasks Table. This table should be named @code{ITRON_Initialization_tasks}.
+By default, this is not defined.
+
+@findex CONFIGURE_ITRON_INIT_TASK_ENTRY_POINT
+@item @code{CONFIGURE_ITRON_INIT_TASK_ENTRY_POINT}
+is the entry point (a.k.a. function name)
+of the single initialization task defined by the
+ITRON API Initialization Tasks Table. By default
+the value is @code{ITRON_Init}.
+
+@findex CONFIGURE_ITRON_INIT_TASK_ATTRIBUTES
+@item @code{CONFIGURE_ITRON_INIT_TASK_ATTRIBUTES}
+is the attribute set
+of the single initialization task defined by the
+ITRON API Initialization Tasks Table. By default
+the value is @code{TA_HLNG}.
+
+@findex CONFIGURE_ITRON_INIT_TASK_PRIORITY
+@item @code{CONFIGURE_ITRON_INIT_TASK_PRIORITY}
+is the initial priority
+of the single initialization task defined by the
+ITRON API Initialization Tasks Table. By default
+the value is @code{1} which is the highest priority
+in the ITRON API.
+
+@findex CONFIGURE_ITRON_INIT_TASK_STACK_SIZE
+@item @code{CONFIGURE_ITRON_INIT_TASK_STACK_SIZE}
+is the stack size of the single initialization task defined by the
+ITRON API Initialization Tasks Table. By default
+the value is @code{RTEMS_MINIMUM_STACK_SIZE}.
+
+@end itemize
+
+@subsection Ada Tasks
+
+This section defines the system configuration parameters supported
+by @code{confdefs.h} related to configuring RTEMS to support
+a task using Ada tasking with GNAT.
+
+@itemize @bullet
+@findex CONFIGURE_GNAT_RTEMS
+@item @code{CONFIGURE_GNAT_RTEMS} is defined to inform
+RTEMS that the GNAT Ada run-time is to be used by the
+application. This configuration parameter is critical
+as it makes @code{confdefs.h} configure the resources
+(mutexes and keys) used implicitly by the GNAT run-time.
+By default, this parameter is not defined.
+
+@findex CONFIGURE_MAXIMUM_ADA_TASKS
+@item @code{CONFIGURE_MAXIMUM_ADA_TASKS} is the
+number of Ada tasks that can be concurrently active
+in the system. By default, when @code{CONFIGURE_GNAT_RTEMS}
+is defined, this is set to 20.
+
+@findex CONFIGURE_MAXIMUM_FAKE_ADA_TASKS
+@item @code{CONFIGURE_MAXIMUM_FAKE_ADA_TASKS} is
+the number of "fake" Ada tasks that can be concurrently
+active in the system. A "fake" Ada task is a non-Ada
+task that makes calls back into Ada code and thus
+implicitly uses the Ada run-time.
+
+@end itemize
+
+@section Configuration Table
+
+@cindex Configuration Table
+@cindex RTEMS Configuration Table
+
+The RTEMS Configuration Table is used to tailor an
+application for its specific needs. For example, the user can
+configure the number of device drivers or which APIs may be used.
+THe address of the user-defined Configuration Table is passed as an
+argument to the @code{@value{DIRPREFIX}initialize_executive}
+directive, which MUST be the first RTEMS directive called.
+The RTEMS Configuration Table
+is defined in the following @value{LANGUAGE} @value{STRUCTURE}:
+
+@ifset is-C
+@findex rtems_configuration_table
+@example
+@group
+typedef struct @{
+ void *work_space_start;
+ rtems_unsigned32 work_space_size;
+ rtems_unsigned32 maximum_extensions;
+ rtems_unsigned32 microseconds_per_tick;
+ rtems_unsigned32 ticks_per_timeslice;
+ rtems_unsigned32 maximum_devices;
+ rtems_unsigned32 maximum_drivers;
+ rtems_unsigned32 number_of_device_drivers;
+ rtems_driver_address_table *Device_driver_table;
+ rtems_unsigned32 number_of_initial_extensions;
+ rtems_extensions_table *User_extension_table;
+ rtems_multiprocessing_table *User_multiprocessing_table;
+ rtems_api_configuration_table *RTEMS_api_configuration;
+ posix_api_configuration_table *POSIX_api_configuration;
+@} rtems_configuration_table;
+@end group
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+type Configuration_Table is
+ record
+ Work_Space_Start : RTEMS.Address;
+ Work_Space_Size : RTEMS.Unsigned32;
+ Maximum_Extensions : RTEMS.Unsigned32;
+ Microseconds_Per_Tick : RTEMS.Unsigned32;
+ Ticks_Per_Timeslice : RTEMS.Unsigned32;
+ Maximum_Devices : RTEMS.Unsigned32;
+ Number_Of_Device_Drivers : RTEMS.Unsigned32;
+ Device_Driver_Table :
+ RTEMS.Driver_Address_Table_Pointer;
+ Number_Of_Initial_Extensions : RTEMS.Unsigned32;
+ User_Extension_Table : RTEMS.Extensions_Table_Pointer;
+ User_Multiprocessing_Table :
+ RTEMS.Multiprocessing_Table_Pointer;
+ RTEMS_API_Configuration :
+ RTEMS.API_Configuration_Table_Pointer;
+ POSIX_API_Configuration :
+ RTEMS.POSIX_API_Configuration_Table_Pointer;
+ end record;
+
+type Configuration_Table_Pointer is access all Configuration_Table;
+@end example
+@end ifset
+
+@table @b
+@item work_space_start
+is the address of the RTEMS RAM Workspace.
+This area contains items such as the
+various object control blocks (TCBs, QCBs, ...) and task stacks.
+If the address is not aligned on a four-word boundary, then
+RTEMS will invoke the fatal error handler during
+@code{@value{DIRPREFIX}initialize_executive}.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_EXECUTIVE_RAM_WORK_AREA}
+which defaults to @code{NULL}. Normally, this field should be
+configured as @code{NULL} as BSPs will assign memory for the
+RTEMS RAM Workspace as part of system initialization.
+
+@item work_space_size
+is the calculated size of the
+RTEMS RAM Workspace. The section Sizing the RTEMS RAM Workspace
+details how to arrive at this number.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_EXECUTIVE_RAM_SIZE}
+and is calculated based on the other system configuration settings.
+
+@item microseconds_per_tick
+is number of microseconds per clock tick.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_MICROSECONDS_PER_TICK}.
+If not defined by the application, then the
+@code{CONFIGURE_MICROSECONDS_PER_TICK} macro defaults to 10000
+(10 milliseconds).
+
+@item ticks_per_timeslice
+is the number of clock ticks for a timeslice.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_TICKS_PER_TIMESLICE}.
+
+@item maximum_devices
+is the maximum number of devices that can be registered.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_MAXIMUM_DEVICES}.
+
+@item maximum_drivers
+is the maximum number of device drivers that can be registered.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_MAXIMUM_DRIVERS}.
+This value is set to @code{maximum_devices} if it is greater
+than @code{maximum_drivers}.
+
+@item number_of_device_drivers
+is the number of device drivers for the system. There should be
+the same number of entries in the Device Driver Table. If this field
+is zero, then the @code{User_driver_address_table} entry should be NULL.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field is calculated
+automatically based on the number of entries in the
+Device Driver Table. This calculation is based on the assumption
+that the Device Driver Table is named @code{Device_drivers}
+and defined in C. This table may be generated automatically
+for simple applications using only the device drivers that correspond
+to the following macros:
+
+@itemize @bullet
+
+@item @code{CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER}
+@item @code{CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER}
+@item @code{CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER}
+@item @code{CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER}
+@item @code{CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER}
+
+@end itemize
+
+Note that network device drivers are not configured in the
+Device Driver Table.
+
+@item Device_driver_table
+is the address of the Device Driver Table. This table contains the entry
+points for each device driver. If the number_of_device_drivers field is zero,
+then this entry should be NULL. The format of this table will be
+discussed below.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the Device Driver Table is assumed to be
+named @code{Device_drivers} and defined in C. If the application is providing
+its own Device Driver Table, then the macro
+@code{CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE} must be defined to indicate
+this and prevent @code{confdefs.h} from generating the table.
+
+@item number_of_initial_extensions
+is the number of initial user extensions. There should be
+the same number of entries as in the User_extension_table. If this field
+is zero, then the User_driver_address_table entry should be NULL.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_NUMBER_OF_INITIAL_EXTENSIONS}
+which is set automatically by @code{confdefs.h} based on the size
+of the User Extensions Table.
+
+@item User_extension_table
+is the address of the User
+Extension Table. This table contains the entry points for the
+static set of optional user extensions. If no user extensions
+are configured, then this entry should be NULL. The format of
+this table will be discussed below.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the User Extensions Table is named
+@code{Configuration_Initial_Extensions} and defined in
+confdefs.h. It is initialized based on the following
+macros:
+
+@itemize @bullet
+
+@item @code{CONFIGURE_INITIAL_EXTENSIONS}
+@item @code{STACK_CHECKER_EXTENSION}
+
+@end itemize
+
+The application may configure one or more initial user extension
+sets by setting the @code{CONFIGURE_INITIAL_EXTENSIONS} macro. By
+defining the @code{STACK_CHECKER_EXTENSION} macro, the task stack bounds
+checking user extension set is automatically included in the
+application.
+
+@item User_multiprocessing_table
+is the address of the Multiprocessor Configuration Table. This
+table contains information needed by RTEMS only when used in a multiprocessor
+configuration. This field must be NULL when RTEMS is used in a
+single processor configuration.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the Multiprocessor Configuration Table
+is automatically generated when the @code{CONFIGURE_MP_APPLICATION}
+is defined. If @code{CONFIGURE_MP_APPLICATION} is not defined, the this
+entry is set to NULL. The generated table has the name
+@code{Multiprocessing_configuration}.
+
+@item RTEMS_api_configuration
+is the address of the RTEMS API Configuration Table. This table
+contains information needed by the RTEMS API. This field should be
+NULL if the RTEMS API is not used. [NOTE: Currently the RTEMS API
+is required to support support components such as BSPs and libraries
+which use this API.] This table is built automatically and this
+entry filled in, if using the @code{confdefs.h} application
+configuration mechanism. The generated table has the name
+@code{Configuration_RTEMS_API}.
+
+@item POSIX_api_configuration
+is the address of the POSIX API Configuration Table. This table
+contains information needed by the POSIX API. This field should be
+NULL if the POSIX API is not used. This table is built automatically
+and this entry filled in, if using the @code{confdefs.h} application
+configuration mechanism. The @code{confdefs.h} application
+mechanism will fill this field in with the address of the
+@code{Configuration_POSIX_API} table of POSIX API is configured
+and NULL if the POSIX API is not configured.
+
+@end table
+
+@section RTEMS API Configuration Table
+
+@cindex RTEMS API Configuration Table
+
+The RTEMS API Configuration Table is used to configure the
+managers which constitute the RTEMS API for a particular application.
+For example, the user can configure the maximum number of tasks for
+this application. The RTEMS API Configuration Table is defined in
+the following @value{LANGUAGE} @value{STRUCTURE}:
+
+@ifset is-C
+@findex rtems_api_configuration_table
+@example
+@group
+typedef struct @{
+ rtems_unsigned32 maximum_tasks;
+ rtems_unsigned32 maximum_timers;
+ rtems_unsigned32 maximum_semaphores;
+ rtems_unsigned32 maximum_message_queues;
+ rtems_unsigned32 maximum_partitions;
+ rtems_unsigned32 maximum_regions;
+ rtems_unsigned32 maximum_ports;
+ rtems_unsigned32 maximum_periods;
+ rtems_unsigned32 number_of_initialization_tasks;
+ rtems_initialization_tasks_table *User_initialization_tasks_table;
+@} rtems_api_configuration_table;
+@end group
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+type API_Configuration_Table is
+ record
+ Maximum_Tasks : RTEMS.Unsigned32;
+ Maximum_Timers : RTEMS.Unsigned32;
+ Maximum_Semaphores : RTEMS.Unsigned32;
+ Maximum_Message_queues : RTEMS.Unsigned32;
+ Maximum_Partitions : RTEMS.Unsigned32;
+ Maximum_Regions : RTEMS.Unsigned32;
+ Maximum_Ports : RTEMS.Unsigned32;
+ Maximum_Periods : RTEMS.Unsigned32;
+ Number_Of_Initialization_Tasks : RTEMS.Unsigned32;
+ User_Initialization_Tasks_Table :
+ RTEMS.Initialization_Tasks_Table_Pointer;
+ end record;
+
+type API_Configuration_Table_Pointer is
+ access all API_Configuration_Table;
+@end example
+@end ifset
+
+@table @b
+@item maximum_tasks
+is the maximum number of tasks that
+can be concurrently active (created) in the system including
+initialization tasks.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_MAXIMUM_TASKS}.
+If not defined by the application, then the @code{CONFIGURE_MAXIMUM_TASKS}
+macro defaults to 10.
+
+@item maximum_timers
+is the maximum number of timers
+that can be concurrently active in the system.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_MAXIMUM_TIMERS}.
+If not defined by the application, then the @code{CONFIGURE_MAXIMUM_TIMERS}
+macro defaults to 0.
+
+@item maximum_semaphores
+is the maximum number of
+semaphores that can be concurrently active in the system.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_MAXIMUM_SEMAPHORES}.
+If not defined by the application, then the @code{CONFIGURE_MAXIMUM_SEMAPHORES}
+macro defaults to 0.
+
+@item maximum_message_queues
+is the maximum number of
+message queues that can be concurrently active in the system.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_MAXIMUM_MESSAGE_QUEUES}.
+If not defined by the application, then the
+@code{CONFIGURE_MAXIMUM_MESSAGE_QUEUES} macro defaults to 0.
+
+@item maximum_partitions
+is the maximum number of
+partitions that can be concurrently active in the system.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_MAXIMUM_PARTITIONS}.
+If not defined by the application, then the @code{CONFIGURE_MAXIMUM_PARTITIONS}
+macro defaults to 0.
+
+@item maximum_regions
+is the maximum number of regions
+that can be concurrently active in the system.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_MAXIMUM_REGIONS}.
+If not defined by the application, then the @code{CONFIGURE_MAXIMUM_REGIONS}
+macro defaults to 0.
+
+@item maximum_ports
+is the maximum number of ports into
+dual-port memory areas that can be concurrently active in the
+system.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_MAXIMUM_PORTS}.
+If not defined by the application, then the @code{CONFIGURE_MAXIMUM_PORTS}
+macro defaults to 0.
+
+@item number_of_initialization_tasks
+is the number of initialization tasks configured. At least one
+RTEMS initialization task or POSIX initializatin must be configured
+in order for the user's application to begin executing.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the user must define the
+@code{CONFIGURE_RTEMS_INIT_TASKS_TABLE} to indicate that there
+is one or more RTEMS initialization task. If the application
+only has one RTEMS initialization task, then the automatically
+generated Initialization Task Table will be sufficient. The following
+macros correspond to the single initialization task:
+
+@itemize @bullet
+
+@item @code{CONFIGURE_INIT_TASK_NAME} - is the name of the task.
+If this macro is not defined by the application, then this defaults
+to the task name of @code{"UI1 "} for User Initialization Task 1.
+
+@item @code{CONFIGURE_INIT_TASK_STACK_SIZE} - is the stack size
+of the single initialization task. If this macro is not defined
+by the application, then this defaults to @code{RTEMS_MINIMUM_STACK_SIZE}.
+
+@item @code{CONFIGURE_INIT_TASK_PRIORITY} - is the initial priority
+of the single initialization task. If this macro is not defined
+by the application, then this defaults to 1.
+
+@item @code{CONFIGURE_INIT_TASK_ATTRIBUTES} - is the attributes
+of the single initialization task. If this macro is not defined
+by the application, then this defaults to @code{RTEMS_DEFAULT_ATTRIBUTES}.
+
+@item @code{CONFIGURE_INIT_TASK_ENTRY_POINT} - is the entry point
+of the single initialization task. If this macro is not defined
+by the application, then this defaults to the C language routine
+@code{Init}.
+
+@item @code{CONFIGURE_INIT_TASK_INITIAL_MODES} - is the initial execution
+modes of the single initialization task. If this macro is not defined
+by the application, then this defaults to @code{RTEMS_NO_PREEMPT}.
+
+@item @code{CONFIGURE_INIT_TASK_ARGUMENTS} - is the argument passed to the
+of the single initialization task. If this macro is not defined
+by the application, then this defaults to 0.
+
+
+@end itemize
+
+
+has the option to have
+ value for this field corresponds
+to the setting of the macro @code{}.
+
+@item User_initialization_tasks_table
+is the address of the Initialization Task Table. This table contains the
+information needed to create and start each of the
+initialization tasks. The format of this table will be discussed below.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_EXECUTIVE_RAM_WORK_AREA}.
+
+@end table
+
+@section POSIX API Configuration Table
+
+@cindex POSIX API Configuration Table
+
+The POSIX API Configuration Table is used to configure the
+managers which constitute the POSIX API for a particular application.
+For example, the user can configure the maximum number of threads for
+this application. The POSIX API Configuration Table is defined in
+the following @value{LANGUAGE} @value{STRUCTURE}:
+
+@ifset is-C
+@findex posix_initialization_threads_table
+@findex posix_api_configuration_table
+@example
+@group
+typedef struct @{
+ void *(*thread_entry)(void *);
+@} posix_initialization_threads_table;
+
+typedef struct @{
+ int maximum_threads;
+ int maximum_mutexes;
+ int maximum_condition_variables;
+ int maximum_keys;
+ int maximum_timers;
+ int maximum_queued_signals;
+ int number_of_initialization_tasks;
+ posix_initialization_threads_table *User_initialization_tasks_table;
+@} posix_api_configuration_table;
+@end group
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+ type POSIX_Thread_Entry is access procedure (
+ Argument : in RTEMS.Address
+ );
+
+ type POSIX_Initialization_Threads_Table_Entry is
+ record
+ Thread_Entry : RTEMS.POSIX_Thread_Entry;
+ end record;
+
+ type POSIX_Initialization_Threads_Table is array
+ ( RTEMS.Unsigned32 range <> ) of
+ RTEMS.POSIX_Initialization_Threads_Table_Entry;
+
+ type POSIX_Initialization_Threads_Table_Pointer is access all
+ POSIX_Initialization_Threads_Table;
+
+ type POSIX_API_Configuration_Table_Entry is
+ record
+ Maximum_Threads : Interfaces.C.Int;
+ Maximum_Mutexes : Interfaces.C.Int;
+ Maximum_Condition_Variables : Interfaces.C.Int;
+ Maximum_Keys : Interfaces.C.Int;
+ Maximum_Timers : Interfaces.C.Int;
+ Maximum_Queued_Signals : Interfaces.C.Int;
+ Number_Of_Initialization_Tasks : Interfaces.C.Int;
+ User_Initialization_Tasks_Table :
+ RTEMS.POSIX_Initialization_Threads_Table_Pointer;
+ end record;
+
+ type POSIX_API_Configuration_Table is array
+ ( RTEMS.Unsigned32 range <> ) of
+ RTEMS.POSIX_API_Configuration_Table_Entry;
+
+ type POSIX_API_Configuration_Table_Pointer is access all
+ RTEMS.POSIX_API_Configuration_Table;
+@end example
+@end ifset
+
+@table @b
+@item maximum_threads
+is the maximum number of threads that
+can be concurrently active (created) in the system including
+initialization threads.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_MAXIMUM_POSIX_THREADS}.
+If not defined by the application, then the
+@code{CONFIGURE_MAXIMUM_POSIX_THREADS} macro defaults to 10.
+
+@item maximum_mutexes
+is the maximum number of mutexes that can be concurrently
+active in the system.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_MAXIMUM_POSIX_MUTEXES}.
+If not defined by the application, then the
+@code{CONFIGURE_MAXIMUM_POSIX_MUTEXES} macro defaults to 0.
+
+@item maximum_condition_variables
+is the maximum number of condition variables that can be
+concurrently active in the system.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES}.
+If not defined by the application, then the
+@code{CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES} macro defaults to 0.
+
+@item maximum_keys
+is the maximum number of keys that can be concurrently active in the system.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_MAXIMUM_POSIX_KEYS}.
+If not defined by the application, then the
+@code{CONFIGURE_MAXIMUM_POSIX_KEYS} macro defaults to 0.
+
+@item maximum_timers
+is the maximum number of POSIX timers that can be concurrently active
+in the system.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_MAXIMUM_POSIX_TIMERS}.
+If not defined by the application, then the
+@code{CONFIGURE_MAXIMUM_POSIX_TIMERS} macro defaults to 0.
+
+@item maximum_queued_signals
+is the maximum number of queued signals that can be concurrently
+pending in the system.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS}.
+If not defined by the application, then the
+@code{CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS} macro defaults to 0.
+
+@item number_of_initialization_threads
+is the number of initialization threads configured. At least one
+initialization threads must be configured.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the user must define the
+@code{CONFIGURE_POSIX_INIT_THREAD_TABLE} to indicate that there
+is one or more POSIX initialization thread. If the application
+only has one POSIX initialization thread, then the automatically
+generated POSIX Initialization Thread Table will be sufficient. The following
+macros correspond to the single initialization task:
+
+@itemize @bullet
+
+@item @code{CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT} - is the entry
+point of the thread. If this macro is not defined by the application,
+then this defaults to the C routine @code{POSIX_Init}.
+
+@item @code{CONFIGURE_POSIX_INIT_TASK_STACK_SIZE} - is the stack size
+of the single initialization thread. If this macro is not defined
+by the application, then this defaults to
+@code{(RTEMS_MINIMUM_STACK_SIZE * 2)}.
+
+@end itemize
+
+@item User_initialization_threads_table
+is the address of the Initialization Threads Table. This table contains the
+information needed to create and start each of the initialization threads.
+The format of each entry in this table is defined in the
+@code{posix_initialization_threads_table} @value{STRUCTURE}.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the address of the @code{POSIX_Initialization_threads} structure.
+
+@end table
+
+@section CPU Dependent Information Table
+
+@cindex CPU Dependent Information Table
+
+The CPU Dependent Information Table is used to
+describe processor dependent information required by RTEMS.
+This table is generally used to supply RTEMS with information
+only known by the Board Support Package. The contents of this
+table are discussed in the CPU Dependent Information Table
+chapter of the Applications Supplement document for a specific
+target processor.
+
+The @code{confdefs.h} mechanism does not support generating this
+table. It is normally filled in by the Board Support Package.
+
+@section Initialization Task Table
+
+@cindex Initialization Tasks Table
+
+The Initialization Task Table is used to describe
+each of the user initialization tasks to the Initialization
+Manager. The table contains one entry for each initialization
+task the user wishes to create and start. The fields of this
+data structure directly correspond to arguments to the
+@code{@value{DIRPREFIX}task_create} and
+@code{@value{DIRPREFIX}task_start} directives. The number of entries is
+found in the @code{number_of_initialization_tasks} entry in the
+Configuration Table.
+
+The format of each entry in the
+Initialization Task Table is defined in the following @value{LANGUAGE}
+@value{STRUCTURE}:
+
+@ifset is-C
+@findex rtems_initialization_tasks_table
+@example
+typedef struct @{
+ rtems_name name;
+ rtems_unsigned32 stack_size;
+ rtems_task_priority initial_priority;
+ rtems_attribute attribute_set;
+ rtems_task_entry entry_point;
+ rtems_mode mode_set;
+ rtems_task_argument argument;
+@} rtems_initialization_tasks_table;
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+type Initialization_Tasks_Table_Entry is
+ record
+ Name : RTEMS.Name; -- task name
+ Stack_Size : RTEMS.Unsigned32; -- task stack size
+ Initial_Priority : RTEMS.Task_priority; -- task priority
+ Attribute_Set : RTEMS.Attribute; -- task attributes
+ Entry_Point : RTEMS.Task_Entry; -- task entry point
+ Mode_Set : RTEMS.Mode; -- task initial mode
+ Argument : RTEMS.Unsigned32; -- task argument
+ end record;
+
+type Initialization_Tasks_Table is array
+ ( RTEMS.Unsigned32 range <> ) of
+ RTEMS.Initialization_Tasks_Table_Entry;
+
+type Initialization_Tasks_Table_Pointer is access all
+ Initialization_Tasks_Table;
+@end example
+@end ifset
+
+@table @b
+@item name
+is the name of this initialization task.
+
+@item stack_size
+is the size of the stack for this initialization task.
+
+@item initial_priority
+is the priority of this initialization task.
+
+@item attribute_set
+is the attribute set used during creation of this initialization task.
+
+@item entry_point
+is the address of the entry point of this initialization task.
+
+@item mode_set
+is the initial execution mode of this initialization task.
+
+@item argument
+is the initial argument for this initialization task.
+
+@end table
+
+A typical declaration for an Initialization Task Table might appear as follows:
+
+@ifset is-C
+@example
+rtems_initialization_tasks_table
+Initialization_tasks[2] = @{
+ @{ INIT_1_NAME,
+ 1024,
+ 1,
+ DEFAULT_ATTRIBUTES,
+ Init_1,
+ DEFAULT_MODES,
+ 1
+
+ @},
+ @{ INIT_2_NAME,
+ 1024,
+ 250,
+ FLOATING_POINT,
+ Init_2,
+ NO_PREEMPT,
+ 2
+
+ @}
+@};
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+Initialization_Tasks : aliased
+ RTEMS.Initialization_Tasks_Table( 1 .. 2 ) := (
+ (INIT_1_NAME,
+ 1024,
+ 1,
+ RTEMS.Default_Attributes,
+ Init_1'Access,
+ RTEMS.Default_Modes,
+ 1),
+ (INIT_2_NAME,
+ 1024,
+ 250,
+ RTEMS.Floating_Point,
+ Init_2'Access,
+ RTEMS.No_Preempt,
+ 2)
+);
+@end example
+@end ifset
+
+@section Driver Address Table
+
+@cindex Device Driver Table
+
+The Device Driver Table is used to inform the I/O Manager of the set of
+entry points for each device driver configured in the system. The table
+contains one entry for each device driver required by the application.
+The number of entries is defined in the number_of_device_drivers entry
+in the Configuration Table. This table is copied to the Device Drive
+Table during the IO Manager's initialization giving the entries in this
+table the lower major numbers. The format of each entry in the Device
+Driver Table is defined in the following @value{LANGUAGE}
+@value{STRUCTURE}:
+
+@ifset is-C
+@findex rtems_driver_address_table
+@example
+typedef struct @{
+ rtems_device_driver_entry initialization;
+ rtems_device_driver_entry open;
+ rtems_device_driver_entry close;
+ rtems_device_driver_entry read;
+ rtems_device_driver_entry write;
+ rtems_device_driver_entry control;
+@} rtems_driver_address_table;
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+type Driver_Address_Table_Entry is
+ record
+ Initialization : RTEMS.Device_Driver_Entry;
+ Open : RTEMS.Device_Driver_Entry;
+ Close : RTEMS.Device_Driver_Entry;
+ Read : RTEMS.Device_Driver_Entry;
+ Write : RTEMS.Device_Driver_Entry;
+ Control : RTEMS.Device_Driver_Entry;
+ end record;
+
+type Driver_Address_Table is array ( RTEMS.Unsigned32 range <> ) of
+ RTEMS.Driver_Address_Table_Entry;
+
+type Driver_Address_Table_Pointer is access all Driver_Address_Table;
+@end example
+@end ifset
+
+@table @b
+@item initialization
+is the address of the entry point called by
+@code{@value{DIRPREFIX}io_initialize}
+to initialize a device driver and its associated devices.
+
+@item open
+is the address of the entry point called by @code{@value{DIRPREFIX}io_open}.
+
+@item close
+is the address of the entry point called by @code{@value{DIRPREFIX}io_close}.
+
+@item read
+is the address of the entry point called by @code{@value{DIRPREFIX}io_read}.
+
+@item write
+is the address of the entry point called by @code{@value{DIRPREFIX}io_write}.
+
+@item control
+is the address of the entry point called by @code{@value{DIRPREFIX}io_control}.
+
+@end table
+
+Driver entry points configured as NULL will always
+return a status code of @code{@value{RPREFIX}SUCCESSFUL}. No user code will be
+executed in this situation.
+
+A typical declaration for a Device Driver Table might appear as follows:
+
+@ifset is-C
+@example
+rtems_driver_address_table Driver_table[2] = @{
+ @{ tty_initialize, tty_open, tty_close, /* major = 0 */
+ tty_read, tty_write, tty_control
+ @},
+ @{ lp_initialize, lp_open, lp_close, /* major = 1 */
+ NULL, lp_write, lp_control
+ @}
+@};
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+@end example
+@end ifset
+
+More information regarding the construction and
+operation of device drivers is provided in the I/O Manager
+chapter.
+
+@section User Extensions Table
+
+@cindex User Extensions Table
+
+The User Extensions Table is used to inform RTEMS of
+the optional user-supplied static extension set. This table
+contains one entry for each possible extension. The entries are
+called at critical times in the life of the system and
+individual tasks. The application may create dynamic extensions
+in addition to this single static set. The format of each entry
+in the User Extensions Table is defined in the following @value{LANGUAGE}
+@value{STRUCTURE}:
+
+@ifset is-C
+@example
+typedef User_extensions_routine rtems_extension;
+typedef User_extensions_thread_create_extension
+ rtems_task_create_extension;
+typedef User_extensions_thread_delete_extension
+ rtems_task_delete_extension;
+typedef User_extensions_thread_start_extension
+ rtems_task_start_extension;
+typedef User_extensions_thread_restart_extension
+ rtems_task_restart_extension;
+typedef User_extensions_thread_switch_extension
+ rtems_task_switch_extension;
+typedef User_extensions_thread_begin_extension
+ rtems_task_begin_extension;
+typedef User_extensions_thread_exitted_extension
+ rtems_task_exitted_extension;
+typedef User_extensions_fatal_extension rtems_fatal_extension;
+
+typedef User_extensions_Table rtems_extensions_table;
+
+typedef struct @{
+ rtems_task_create_extension thread_create;
+ rtems_task_start_extension thread_start;
+ rtems_task_restart_extension thread_restart;
+ rtems_task_delete_extension thread_delete;
+ rtems_task_switch_extension thread_switch;
+ rtems_task_begin_extension thread_begin;
+ rtems_task_exitted_extension thread_exitted;
+ rtems_fatal_extension fatal;
+@} User_extensions_Table;
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+type Extensions_Table_Entry is
+ record
+ Thread_Create : RTEMS.Thread_Create_Extension;
+ Thread_Start : RTEMS.Thread_Start_Extension;
+ Thread_Restart : RTEMS.Thread_Restart_Extension;
+ Thread_Delete : RTEMS.Thread_Delete_Extension;
+ Thread_Switch : RTEMS.Thread_Switch_Extension;
+ Thread_Post_Switch : RTEMS.Thread_Post_Switch_Extension;
+ Thread_Begin : RTEMS.Thread_Begin_Extension;
+ Thread_Exitted : RTEMS.Thread_Exitted_Extension;
+ Fatal : RTEMS.Fatal_Error_Extension;
+ end record;
+@end example
+@end ifset
+
+@table @b
+
+@item thread_create
+is the address of the
+user-supplied subroutine for the TASK_CREATE extension. If this
+extension for task creation is defined, it is called from the
+task_create directive. A value of NULL indicates that no
+extension is provided.
+
+@item thread_start
+is the address of the user-supplied
+subroutine for the TASK_START extension. If this extension for
+task initiation is defined, it is called from the task_start
+directive. A value of NULL indicates that no extension is
+provided.
+
+@item thread_restart
+is the address of the user-supplied
+subroutine for the TASK_RESTART extension. If this extension
+for task re-initiation is defined, it is called from the
+task_restart directive. A value of NULL indicates that no
+extension is provided.
+
+@item thread_delete
+is the address of the user-supplied
+subroutine for the TASK_DELETE extension. If this RTEMS
+extension for task deletion is defined, it is called from the
+task_delete directive. A value of NULL indicates that no
+extension is provided.
+
+@item thread_switch
+is the address of the user-supplied
+subroutine for the task context switch extension. This
+subroutine is called from RTEMS dispatcher after the current
+task has been swapped out but before the new task has been
+swapped in. A value of NULL indicates that no extension is
+provided. As this routine is invoked after saving the current
+task's context and before restoring the heir task's context, it
+is not necessary for this routine to save and restore any
+registers.
+
+@item thread_begin
+is the address of the user-supplied
+subroutine which is invoked immediately before a task begins
+execution. It is invoked in the context of the beginning task.
+A value of NULL indicates that no extension is provided.
+
+@item thread_exitted
+is the address of the user-supplied
+subroutine which is invoked when a task exits. This procedure
+is responsible for some action which will allow the system to
+continue execution (i.e. delete or restart the task) or to
+terminate with a fatal error. If this field is set to NULL, the
+default RTEMS TASK_EXITTED handler will be invoked.
+
+@item fatal
+is the address of the user-supplied
+subroutine for the FATAL extension. This RTEMS extension of
+fatal error handling is called from the
+@code{@value{DIRPREFIX}fatal_error_occurred}
+directive. If the user's fatal error handler returns or if this
+entry is NULL then the default RTEMS fatal error handler will be
+executed.
+
+@end table
+
+A typical declaration for a User Extension Table
+which defines the TASK_CREATE, TASK_DELETE, TASK_SWITCH, and
+FATAL extension might appear as follows:
+
+@ifset is-C
+@example
+rtems_extensions_table User_extensions = @{
+ task_create_extension,
+ NULL,
+ NULL,
+ task_delete_extension,
+ task_switch_extension,
+ NULL,
+ NULL,
+ fatal_extension
+@};
+@end example
+@end ifset
+
+@ifset is-Ada
+User_Extensions : RTEMS.Extensions_Table := (
+ Task_Create_Extension'Access,
+ null,
+ null,
+ Task_Delete_Extension'Access,
+ Task_Switch_Extension'Access,
+ null,
+ null,
+ Fatal_Extension'Access
+);
+@example
+
+@end example
+@end ifset
+
+More information regarding the user extensions is
+provided in the User Extensions chapter.
+
+@section Multiprocessor Configuration Table
+
+@cindex Multiprocessor Configuration Table
+
+The Multiprocessor Configuration Table contains
+information needed when using RTEMS in a multiprocessor
+configuration. Many of the details associated with configuring
+a multiprocessor system are dependent on the multiprocessor
+communications layer provided by the user. The address of the
+Multiprocessor Configuration Table should be placed in the
+@code{User_multiprocessing_table} entry in the primary Configuration
+Table. Further details regarding many of the entries in the
+Multiprocessor Configuration Table will be provided in the
+Multiprocessing chapter.
+
+
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the macro @code{CONFIGURE_MP_APPLICATION} must
+be defined to automatically generate the Multiprocessor Configuration Table.
+If @code{CONFIGURE_MP_APPLICATION}, is not defined, then a NULL pointer
+is configured as the address of this table.
+
+The format of the Multiprocessor Configuration Table is defined in
+the following @value{LANGUAGE} @value{STRUCTURE}:
+
+@ifset is-C
+@example
+typedef struct @{
+ rtems_unsigned32 node;
+ rtems_unsigned32 maximum_nodes;
+ rtems_unsigned32 maximum_global_objects;
+ rtems_unsigned32 maximum_proxies;
+ rtems_mpci_table *User_mpci_table;
+@} rtems_multiprocessing_table;
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+type Multiprocessing_Table is
+ record
+ Node : RTEMS.Unsigned32;
+ Maximum_Nodes : RTEMS.Unsigned32;
+ Maximum_Global_Objects : RTEMS.Unsigned32;
+ Maximum_Proxies : RTEMS.Unsigned32;
+ User_MPCI_Table : RTEMS.MPCI_Table_Pointer;
+ end record;
+
+type Multiprocessing_Table_Pointer is access all Multiprocessing_Table;
+@end example
+@end ifset
+
+@table @b
+@item node
+is a unique processor identifier
+and is used in routing messages between nodes in a
+multiprocessor configuration. Each processor must have a unique
+node number. RTEMS assumes that node numbers start at one and
+increase sequentially. This assumption can be used to advantage
+by the user-supplied MPCI layer. Typically, this requirement is
+made when the node numbers are used to calculate the address of
+inter-processor communication links. Zero should be avoided as
+a node number because some MPCI layers use node zero to
+represent broadcasted packets. Thus, it is recommended that
+node numbers start at one and increase sequentially.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_MP_NODE_NUMBER}.
+If not defined by the application, then the @code{CONFIGURE_MP_NODE_NUMBER}
+macro defaults to the value of the @code{NODE_NUMBER} macro which is
+set on the compiler command line by the RTEMS Multiprocessing Test Suites.
+
+
+@item maximum_nodes
+is the number of processor nodes in the system.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_MP_MAXIMUM_NODES}.
+If not defined by the application, then the @code{CONFIGURE_MP_MAXIMUM_NODES}
+macro defaults to the value 2.
+
+@item maximum_global_objects
+is the maximum number of global objects which can exist at any
+given moment in the entire system. If this parameter is not the
+same on all nodes in the system, then a fatal error is generated
+to inform the user that the system is inconsistent.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS}.
+If not defined by the application, then the
+@code{CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS} macro defaults to the value 32.
+
+
+@item maximum_proxies
+is the maximum number of proxies which can exist at any given moment
+on this particular node. A proxy is a substitute task control block
+which represent a task residing on a remote node when that task blocks
+on a remote object. Proxies are used in situations in which delayed
+interaction is required with a remote node.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_MP_MAXIMUM_PROXIES}.
+If not defined by the application, then the @code{CONFIGURE_MP_MAXIMUM_PROXIES}
+macro defaults to the value 32.
+
+
+@item User_mpci_table
+is the address of the Multiprocessor Communications Interface
+Table. This table contains the entry points of user-provided functions
+which constitute the multiprocessor communications layer. This table
+must be provided in multiprocessor configurations with all
+entries configured. The format of this table and details
+regarding its entries can be found in the next section.
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the value for this field corresponds
+to the setting of the macro @code{CONFIGURE_MP_MPCI_TABLE_POINTER}.
+If not defined by the application, then the
+@code{CONFIGURE_MP_MPCI_TABLE_POINTER} macro defaults to the
+address of the table named @code{MPCI_table}.
+
+
+@end table
+
+@section Multiprocessor Communications Interface Table
+
+@cindex Multiprocessor Communications Interface Table
+
+This table defines the set of callouts that must be provided by
+an Multiprocessor Communications Interface implementation.
+
+When using the @code{confdefs.h} mechanism for configuring
+an RTEMS application, the name of this table is assumed
+to be @code{MPCI_table} unless the application sets
+the @code{CONFIGURE_MP_MPCI_TABLE_POINTER} when configuring a
+multiprocessing system.
+
+The format of this table is defined in
+the following @value{LANGUAGE} @value{STRUCTURE}:
+
+@ifset is-C
+@example
+typedef struct @{
+ rtems_unsigned32 default_timeout; /* in ticks */
+ rtems_unsigned32 maximum_packet_size;
+ rtems_mpci_initialization_entry initialization;
+ rtems_mpci_get_packet_entry get_packet;
+ rtems_mpci_return_packet_entry return_packet;
+ rtems_mpci_send_entry send;
+ rtems_mpci_receive_entry receive;
+@} rtems_mpci_table;
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+type MPCI_Table is
+ record
+ Default_Timeout : RTEMS.Unsigned32; -- in ticks
+ Maximum_Packet_Size : RTEMS.Unsigned32;
+ Initialization : RTEMS.MPCI_Initialization_Entry;
+ Get_Packet : RTEMS.MPCI_Get_Packet_Entry;
+ Return_Packet : RTEMS.MPCI_Return_Packet_Entry;
+ Send : RTEMS.MPCI_Send_Entry;
+ Receive : RTEMS.MPCI_Receive_Entry;
+ end record;
+
+type MPCI_Table_Pointer is access all MPCI_Table;
+@end example
+@end ifset
+
+@table @b
+@item default_timeout
+is the default maximum length of time a task should block waiting for
+a response to a directive which results in communication with a remote node.
+The maximum length of time is a function the user supplied
+multiprocessor communications layer and the media used. This
+timeout only applies to directives which would not block if the
+operation were performed locally.
+
+@item maximum_packet_size
+is the size in bytes of the longest packet which the MPCI layer is capable
+of sending. This value should represent the total number of bytes available
+for a RTEMS interprocessor messages.
+
+@item initialization
+is the address of the entry point for the initialization procedure of the
+user supplied multiprocessor communications layer.
+
+@item get_packet
+is the address of the entry point for the procedure called by RTEMS to
+obtain a packet from the user supplied multiprocessor communications layer.
+
+@item return_packet
+is the address of the entry point for the procedure called by RTEMS to
+return a packet to the user supplied multiprocessor communications layer.
+
+@item send
+is the address of the entry point for the procedure called by RTEMS to
+send an envelope to another node. This procedure is part of the user
+supplied multiprocessor communications layer.
+
+@item receive
+is the address of the entry point for the
+procedure called by RTEMS to retrieve an envelope containing a
+message from another node. This procedure is part of the user
+supplied multiprocessor communications layer.
+
+@end table
+
+More information regarding the required functionality of these
+entry points is provided in the Multiprocessor chapter.
+
+@section Determining Memory Requirements
+
+Since memory is a critical resource in many real-time
+embedded systems, the RTEMS Classic API was specifically designed to allow
+unused managers to be forcibly excluded from the run-time environment.
+This allows the application designer the flexibility to tailor
+RTEMS to most efficiently meet system requirements while still
+satisfying even the most stringent memory constraints. As
+result, the size of the RTEMS executive is application
+dependent. A Memory Requirements worksheet is provided in the
+Applications Supplement document for a specific target
+processor. This worksheet can be used to calculate the memory
+requirements of a custom RTEMS run-time environment. To insure
+that enough memory is allocated for future versions of RTEMS,
+the application designer should round these memory requirements
+up. The following Classic API managers may be optionally excluded:
+
+@itemize @bullet
+@item signal
+@item region
+@item dual ported memory
+@item event
+@item multiprocessing
+@item partition
+@item timer
+@item semaphore
+@item message
+@item rate monotonic
+@end itemize
+
+RTEMS is designed to be built and installed as a library
+that is linked into the application. As such, much of
+RTEMS is implemented in such a way that there is a single
+entry point per source file. This avoids having the
+linker being forced to pull large object files in their
+entirety into an application when the application references
+a single symbol.
+
+RTEMS based applications must somehow provide memory
+for RTEMS' code and data space. Although RTEMS' data space must
+be in RAM, its code space can be located in either ROM or RAM.
+In addition, the user must allocate RAM for the RTEMS RAM
+Workspace. The size of this area is application dependent and
+can be calculated using the formula provided in the Memory
+Requirements chapter of the Applications Supplement document
+for a specific target processor.
+
+All private RTEMS data variables and routine names used by
+RTEMS begin with the underscore ( _ ) character followed by an
+upper-case letter. If RTEMS is linked with an application, then
+the application code should NOT contain any symbols which begin
+with the underscore character and followed by an upper-case
+letter to avoid any naming conflicts. All RTEMS directive names
+should be treated as reserved words.
+
+@section Sizing the RTEMS RAM Workspace
+
+The RTEMS RAM Workspace is a user-specified block of
+memory reserved for use by RTEMS. The application should NOT
+modify this memory. This area consists primarily of the RTEMS
+data structures whose exact size depends upon the values
+specified in the Configuration Table. In addition, task stacks
+and floating point context areas are dynamically allocated from
+the RTEMS RAM Workspace.
+
+The @code{confdefs.h} mechanism calcalutes the size
+of the RTEMS RAM Workspace automatically. It assumes that
+all tasks are floating point and that all will be allocated
+the miminum stack space. This calculation also automatically
+includes the memory that will be allocated for internal use
+by RTEMS. The following macros may be set
+by the application to make the calculation
+of memory required more accurate:
+
+@itemize @bullet
+
+@item @code{CONFIGURE_MEMORY_OVERHEAD}
+@item @code{CONFIGURE_EXTRA_TASK_STACKS}
+
+@end itemize
+
+The starting address of the RTEMS RAM Workspace must
+be aligned on a four-byte boundary. Failure to properly align
+the workspace area will result in the
+@code{@value{DIRPREFIX}fatal_error_occurred}
+directive being invoked with the
+@code{@value{RPREFIX}INVALID_ADDRESS} error code.
+
+A worksheet is provided in the @b{Memory Requirements}
+chapter of the Applications Supplement document for a specific
+target processor to assist the user in calculating the minimum
+size of the RTEMS RAM Workspace for each application. The value
+calculated with this worksheet is the minimum value that should
+be specified as the @code{work_space_size} parameter of the
+Configuration Table.
+
+The allocation of objects can operate in two modes. The default mode
+has an object number ceiling. No more than the specified number of
+objects can be allocated from the RTEMS RAM Workspace. The number of objects
+specified in the particular API Configuration table fields are
+allocated at initialisation. The second mode allows the number of
+objects to grow to use the available free memory in the RTEMS RAM Workspace.
+
+The auto-extending mode can be enabled individually for each object
+type by using the macro @code{rtems_resource_unlimited}. This takes a value
+as a parameter, and is used to set the object maximum number field in
+an API Configuration table. The value is an allocation unit size. When
+RTEMS is required to grow the object table it is grown by this
+size. The kernel will return the object memory back to the RTEMS RAM Workspace
+when an object is destroyed. The kernel will only return an allocated
+block of objects to the RTEMS RAM Workspace if at least half the allocation
+size of free objects remain allocated. RTEMS always keeps one
+allocation block of objects allocated. Here is an example of using
+@code{rtems_resource_unlimited}:
+
+@example
+#define CONFIGURE_MAXIMUM_TASKS rtems_resource_unlimited(5)
+@end example
+
+The user is cautioned that future versions of RTEMS may not have the
+same memory requirements per object. Although the value calculated is
+suficient for a particular target processor and release of RTEMS,
+memory usage is subject to change across versions and target
+processors. The user is advised to allocate somewhat more memory than
+the worksheet recommends to insure compatibility with future releases
+for a specific target processor and other target processors. To avoid
+problems, the user should recalculate the memory requirements each
+time one of the following events occurs:
+
+@itemize @bullet
+@item a configuration parameter is modified,
+@item task or interrupt stack requirements change,
+@item task floating point attribute is altered,
+@item RTEMS is upgraded, or
+@item the target processor is changed.
+@end itemize
+
+Failure to provide enough space in the RTEMS RAM
+Workspace will result in the
+@code{@value{DIRPREFIX}fatal_error_occurred} directive
+being invoked with the appropriate error code.
diff --git a/doc/user/datatypes.t b/doc/user/datatypes.t
new file mode 100644
index 0000000000..d842786676
--- /dev/null
+++ b/doc/user/datatypes.t
@@ -0,0 +1,311 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@chapter RTEMS Data Types
+
+@section Introduction
+
+This chapter contains a complete list of the RTEMS primitive
+data types in alphabetical order. This is intended to be
+an overview and the user is encouraged to look at the appropriate
+chapters in the manual for more information about the
+usage of the various data types.
+
+@section List of Data Types
+
+The following is a complete list of the RTEMS primitive
+data types in alphabetical order:
+
+@itemize @bullet
+
+@findex rtems_address
+@item @code{@value{DIRPREFIX}address} is the data type used to manage
+addresses. It is equivalent to
+@ifset is-C
+a "void *" pointer.
+@end ifset
+@ifset is-Ada
+the System.Address data type.
+@end ifset
+
+@findex rtems_asr
+@item @code{@value{DIRPREFIX}asr} is the return type for an
+RTEMS ASR.
+
+@findex rtems_asr_entry
+@item @code{@value{DIRPREFIX}asr_entry} is the address of
+the entry point to an RTEMS ASR.
+
+@findex rtems_attribute
+@item @code{@value{DIRPREFIX}attribute} is the data type used
+to manage the attributes for RTEMS objects. It is primarily
+used as an argument to object create routines to specify
+characteristics of the new object.
+
+@findex rtems_boolean
+@item @code{@value{DIRPREFIX}boolean} may only take on the
+values of @code{TRUE} and @code{FALSE}.
+
+@findex rtems_context
+@item @code{@value{DIRPREFIX}context} is the CPU dependent
+data structure used to manage the integer and system
+register portion of each task's context.
+
+@findex rtems_context_fp
+@item @code{@value{DIRPREFIX}context_fp} is the CPU dependent
+data structure used to manage the floating point portion of
+each task's context.
+
+@findex rtems_device_driver
+@item @code{@value{DIRPREFIX}device_driver} is the
+return type for a RTEMS device driver routine.
+
+@findex rtems_device_driver_entry
+@item @code{@value{DIRPREFIX}device_driver_entry} is the
+entry point to a RTEMS device driver routine.
+
+@findex rtems_device_major_number
+@item @code{@value{DIRPREFIX}device_major_number} is the
+data type used to manage device major numbers.
+
+@findex rtems_device_minor_number
+@item @code{@value{DIRPREFIX}device_minor_number} is the
+data type used to manage device minor numbers.
+
+@findex rtems_double
+@item @code{@value{DIRPREFIX}double} is the RTEMS data
+type that corresponds to double precision floating point
+on the target hardware.
+
+@findex rtems_event_set
+@item @code{@value{DIRPREFIX}event_set} is the data
+type used to manage and manipulate RTEMS event sets
+with the Event Manager.
+
+@findex rtems_extension
+@item @code{@value{DIRPREFIX}extension} is the return type
+for RTEMS user extension routines.
+
+@findex rtems_fatal_extension
+@item @code{@value{DIRPREFIX}fatal_extension} is the
+entry point for a fatal error user extension handler routine.
+
+@findex rtems_id
+@item @code{@value{DIRPREFIX}id} is the data type used
+to manage and manipulate RTEMS object IDs.
+
+@findex rtems_interrupt_frame
+@item @code{@value{DIRPREFIX}interrupt_frame} is the
+data structure that defines the format of the interrupt
+stack frame as it appears to a user ISR. This data
+structure may not be defined on all ports.
+
+@findex rtems_interrupt_level
+@item @code{@value{DIRPREFIX}interrupt_level} is the
+data structure used with the @code{@value{DIRPREFIX}interrupt_disable},
+@code{@value{DIRPREFIX}interrupt_enable}, and
+@code{@value{DIRPREFIX}interrupt_flash} routines. This
+data type is CPU dependent and usually corresponds to
+the contents of the processor register containing
+the interrupt mask level.
+
+@findex rtems_interval
+@item @code{@value{DIRPREFIX}interval} is the data
+type used to manage and manipulate time intervals.
+Intervals are non-negative integers used to measure
+the length of time in clock ticks.
+
+@findex rtems_isr
+@item @code{@value{DIRPREFIX}isr} is the return type
+of a function implementing an RTEMS ISR.
+
+@findex rtems_isr_entry
+@item @code{@value{DIRPREFIX}isr_entry} is the address of
+the entry point to an RTEMS ISR. It is equivalent to the
+entry point of the function implementing the ISR.
+
+@findex rtems_mp_packet_classes
+@item @code{@value{DIRPREFIX}mp_packet_classes} is the
+enumerated type which specifies the categories of
+multiprocessing messages. For example, one of the
+classes is for messages that must be processed by
+the Task Manager.
+
+@findex rtems_mode
+@item @code{@value{DIRPREFIX}mode} is the data type
+used to manage and dynamically manipulate the execution
+mode of an RTEMS task.
+
+@findex rtems_mpci_entry
+@item @code{@value{DIRPREFIX}mpci_entry} is the return type
+of an RTEMS MPCI routine.
+
+@findex rtems_mpci_get_packet_entry
+@item @code{@value{DIRPREFIX}mpci_get_packet_entry} is the address of
+the entry point to the get packet routine for an MPCI implementation.
+
+@findex rtems_mpci_initialization_entry
+@item @code{@value{DIRPREFIX}mpci_initialization_entry} is the address of
+the entry point to the initialization routine for an MPCI implementation.
+
+@findex rtems_mpci_receive_packet_entry
+@item @code{@value{DIRPREFIX}mpci_receive_packet_entry} is the address of
+the entry point to the receive packet routine for an MPCI implementation.
+
+@findex rtems_mpci_return_packet_entry
+@item @code{@value{DIRPREFIX}mpci_return_packet_entry} is the address of
+the entry point to the return packet routine for an MPCI implementation.
+
+@findex rtems_mpci_send_packet_entry
+@item @code{@value{DIRPREFIX}mpci_send_packet_entry} is the address of
+the entry point to the send packet routine for an MPCI implementation.
+
+@findex rtems_mpci_table
+@item @code{@value{DIRPREFIX}mpci_table} is the data structure
+containing the configuration information for an MPCI.
+
+@findex rtems_option
+@item @code{@value{DIRPREFIX}option} is the data type
+used to specify which behavioral options the caller desires.
+It is commonly used with potentially blocking directives to specify
+whether the caller is willing to block or return immediately with an error
+indicating that the resource was not available.
+
+@findex rtems_packet_prefix
+@item @code{@value{DIRPREFIX}packet_prefix} is the data structure
+that defines the first bytes in every packet sent between nodes
+in an RTEMS multiprocessor system. It contains routing information
+that is expected to be used by the MPCI layer.
+
+@findex rtems_signal_set
+@item @code{@value{DIRPREFIX}signal_set} is the data
+type used to manage and manipulate RTEMS signal sets
+with the Signal Manager.
+
+@findex rtems_signed8
+@item @code{@value{DIRPREFIX}signed8} is the data
+type that corresponds to signed eight bit integers.
+This data type is defined by RTEMS in a manner that
+ensures it is portable across different target processors.
+
+@findex rtems_signed16
+@item @code{@value{DIRPREFIX}signed16} is the data
+type that corresponds to signed sixteen bit integers.
+This data type is defined by RTEMS in a manner that
+ensures it is portable across different target processors.
+
+@findex rtems_signed32
+@item @code{@value{DIRPREFIX}signed32} is the data
+type that corresponds to signed thirty-two bit integers.
+This data type is defined by RTEMS in a manner that
+ensures it is portable across different target processors.
+
+@findex rtems_signed64
+@item @code{@value{DIRPREFIX}signed64} is the data
+type that corresponds to signed sixty-four bit integers.
+This data type is defined by RTEMS in a manner that
+ensures it is portable across different target processors.
+
+@findex rtems_single
+@item @code{@value{DIRPREFIX}single} is the RTEMS data
+type that corresponds to single precision floating point
+on the target hardware.
+
+@findex rtems_status_codes
+@item @code{@value{DIRPREFIX}status_codes} is the
+@findex rtems_task
+@item @code{@value{DIRPREFIX}task} is the return type for an
+RTEMS Task.
+
+@findex rtems_task_argument
+@item @code{@value{DIRPREFIX}task_argument} is the data
+type for the argument passed to each RTEMS task.
+
+@findex rtems_task_begin_extension
+@item @code{@value{DIRPREFIX}task_begin_extension} is the
+entry point for a task beginning execution user extension handler routine.
+
+@findex rtems_task_create_extension
+@item @code{@value{DIRPREFIX}task_create_extension} is the
+entry point for a task creation execution user extension handler routine.
+
+@findex rtems_task_delete_extension
+@item @code{@value{DIRPREFIX}task_delete_extension} is the
+entry point for a task deletion user extension handler routine.
+
+@findex rtems_task_entry
+@item @code{@value{DIRPREFIX}task_entry} is the address of
+the entry point to an RTEMS ASR. It is equivalent to the
+entry point of the function implementing the ASR.
+
+@findex rtems_task_exitted_extension
+@item @code{@value{DIRPREFIX}task_exitted_extension} is the
+entry point for a task exitted user extension handler routine.
+
+@findex rtems_task_priority
+@item @code{@value{DIRPREFIX}task_priority} is the data type
+used to manage and manipulate task priorities.
+
+@findex rtems_task_restart_extension
+@item @code{@value{DIRPREFIX}task_restart_extension} is the
+entry point for a task restart user extension handler routine.
+
+@findex rtems_task_start_extension
+@item @code{@value{DIRPREFIX}task_start_extension} is the
+entry point for a task start user extension handler routine.
+
+@findex rtems_task_switch_extension
+@item @code{@value{DIRPREFIX}task_switch_extension} is the
+entry point for a task context switch user extension handler routine.
+
+@findex rtems_tcb
+@item @code{@value{DIRPREFIX}tcb} is the data structure associated
+with each task in an RTEMS system.
+
+@findex rtems_time_of_day
+@item @code{@value{DIRPREFIX}time_of_day} is the data structure
+used to manage and manipulate calendar time in RTEMS.
+
+@findex rtems_timer_service_routine
+@item @code{@value{DIRPREFIX}timer_service_routine} is the
+return type for an RTEMS Timer Service Routine.
+
+@findex rtems_timer_service_routine_entry
+@item @code{@value{DIRPREFIX}timer_service_routine_entry} is the address of
+the entry point to an RTEMS TSR. It is equivalent to the
+entry point of the function implementing the TSR.
+
+@findex rtems_unsigned8
+@item @code{@value{DIRPREFIX}unsigned8} is the data
+type that corresponds to unsigned eight bit integers.
+This data type is defined by RTEMS in a manner that
+ensures it is portable across different target processors.
+
+@findex rtems_unsigned16
+@item @code{@value{DIRPREFIX}unsigned16} is the data
+type that corresponds to unsigned sixteen bit integers.
+This data type is defined by RTEMS in a manner that
+ensures it is portable across different target processors.
+
+@findex rtems_unsigned32
+@item @code{@value{DIRPREFIX}unsigned32} is the data
+type that corresponds to unsigned thirty-two bit integers.
+This data type is defined by RTEMS in a manner that
+ensures it is portable across different target processors.
+
+@findex rtems_unsigned64
+@item @code{@value{DIRPREFIX}unsigned64} is the data
+type that corresponds to unsigned sixty-four bit integers.
+This data type is defined by RTEMS in a manner that
+ensures it is portable across different target processors.
+
+@findex rtems_vector_number
+@item @code{@value{DIRPREFIX}vector_number} is the data
+type used to manage and manipulate interrupt vector numbers.
+
+@end itemize
diff --git a/doc/user/dirstat.texi b/doc/user/dirstat.texi
new file mode 100644
index 0000000000..094bcf2b13
--- /dev/null
+++ b/doc/user/dirstat.texi
@@ -0,0 +1,42 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@ifinfo
+@node Directive Status Codes, Example Application, Multiprocessing Manager MULTIPROCESSING_ANNOUNCE - Announce the arrival of a packet, Top
+@end ifinfo
+@chapter Directive Status Codes
+@table @b
+@item @code{@value{RPREFIX}SUCCESSFUL} - successful completion
+@item @code{@value{RPREFIX}TASK_EXITTED} - returned from a task
+@item @code{@value{RPREFIX}MP_NOT_CONFIGURED} - multiprocessing not configured
+@item @code{@value{RPREFIX}INVALID_NAME} - invalid object name
+@item @code{@value{RPREFIX}INVALID_ID} - invalid object id
+@item @code{@value{RPREFIX}TOO_MANY} - too many
+@item @code{@value{RPREFIX}TIMEOUT} - timed out waiting
+@item @code{@value{RPREFIX}OBJECT_WAS_DELETED} - object was deleted while waiting
+@item @code{@value{RPREFIX}INVALID_SIZE} - invalid specified size
+@item @code{@value{RPREFIX}INVALID_ADDRESS} - invalid address specified
+@item @code{@value{RPREFIX}INVALID_NUMBER} - number was invalid
+@item @code{@value{RPREFIX}NOT_DEFINED} - item not initialized
+@item @code{@value{RPREFIX}RESOURCE_IN_USE} - resources outstanding
+@item @code{@value{RPREFIX}UNSATISFIED} - request not satisfied
+@item @code{@value{RPREFIX}INCORRECT_STATE} - task is in wrong state
+@item @code{@value{RPREFIX}ALREADY_SUSPENDED} - task already in state
+@item @code{@value{RPREFIX}ILLEGAL_ON_SELF} - illegal for calling task
+@item @code{@value{RPREFIX}ILLEGAL_ON_REMOTE_OBJECT} - illegal for remote object
+@item @code{@value{RPREFIX}CALLED_FROM_ISR} - invalid environment
+@item @code{@value{RPREFIX}INVALID_PRIORITY} - invalid task priority
+@item @code{@value{RPREFIX}INVALID_CLOCK} - invalid time buffer
+@item @code{@value{RPREFIX}INVALID_NODE} - invalid node id
+@item @code{@value{RPREFIX}NOT_CONFIGURED} - directive not configured
+@item @code{@value{RPREFIX}NOT_OWNER_OF_RESOURCE} - not owner of resource
+@item @code{@value{RPREFIX}NOT_IMPLEMENTED} - directive not implemented
+@item @code{@value{RPREFIX}INTERNAL_ERROR} - RTEMS inconsistency detected
+@item @code{@value{RPREFIX}NO_MEMORY} - could not get enough memory
+@end table
+
diff --git a/doc/user/dpmem.t b/doc/user/dpmem.t
new file mode 100644
index 0000000000..b842b519b2
--- /dev/null
+++ b/doc/user/dpmem.t
@@ -0,0 +1,364 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@chapter Dual-Ported Memory Manager
+
+@cindex ports
+@cindex dual ported memory
+
+@section Introduction
+
+The dual-ported memory manager provides a mechanism
+for converting addresses between internal and external
+representations for multiple dual-ported memory areas (DPMA).
+The directives provided by the dual-ported memory manager are:
+
+@itemize @bullet
+@item @code{@value{DIRPREFIX}port_create} - Create a port
+@item @code{@value{DIRPREFIX}port_ident} - Get ID of a port
+@item @code{@value{DIRPREFIX}port_delete} - Delete a port
+@item @code{@value{DIRPREFIX}port_external_to_internal} - Convert external to internal address
+@item @code{@value{DIRPREFIX}port_internal_to_external} - Convert internal to external address
+@end itemize
+
+@section Background
+
+@cindex dual ported memory, definition
+@cindex external addresses, definition
+@cindex internal addresses, definition
+
+A dual-ported memory area (DPMA) is an contiguous
+block of RAM owned by a particular processor but which can be
+accessed by other processors in the system. The owner accesses
+the memory using internal addresses, while other processors must
+use external addresses. RTEMS defines a port as a particular
+mapping of internal and external addresses.
+
+There are two system configurations in which
+dual-ported memory is commonly found. The first is
+tightly-coupled multiprocessor computer systems where the
+dual-ported memory is shared between all nodes and is used for
+inter-node communication. The second configuration is computer
+systems with intelligent peripheral controllers. These
+controllers typically utilize the DPMA for high-performance data
+transfers.
+
+@section Operations
+
+@subsection Creating a Port
+
+The @code{@value{DIRPREFIX}port_create} directive creates a port into a DPMA
+with the user-defined name. The user specifies the association
+between internal and external representations for the port being
+created. RTEMS allocates a Dual-Ported Memory Control Block
+(DPCB) from the DPCB free list to maintain the newly created
+DPMA. RTEMS also generates a unique dual-ported memory port ID
+which is returned to the calling task. RTEMS does not
+initialize the dual-ported memory area or access any memory
+within it.
+
+@subsection Obtaining Port IDs
+
+When a port is created, RTEMS generates a unique port
+ID and assigns it to the created port until it is deleted. The
+port ID may be obtained by either of two methods. First, as the
+result of an invocation of the
+@code{@value{DIRPREFIX}port_create} directive, the task
+ID is stored in a user provided location. Second, the port ID
+may be obtained later using the
+@code{@value{DIRPREFIX}port_ident} directive. The port
+ID is used by other dual-ported memory manager directives to
+access this port.
+
+@subsection Converting an Address
+
+The @code{@value{DIRPREFIX}port_external_to_internal} directive is used to
+convert an address from external to internal representation for
+the specified port.
+The @code{@value{DIRPREFIX}port_internal_to_external} directive is
+used to convert an address from internal to external
+representation for the specified port. If an attempt is made to
+convert an address which lies outside the specified DPMA, then
+the address to be converted will be returned.
+
+@subsection Deleting a DPMA Port
+
+A port can be removed from the system and returned to
+RTEMS with the @code{@value{DIRPREFIX}port_delete} directive. When a port is deleted,
+its control block is returned to the DPCB free list.
+
+@section Directives
+
+This section details the dual-ported memory manager's
+directives. A subsection is dedicated to each of this manager's
+directives and describes the calling sequence, related
+constants, usage, and status codes.
+
+@c
+@c
+@c
+@page
+@subsection PORT_CREATE - Create a port
+
+@cindex create a port
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_port_create
+@example
+rtems_status_code rtems_port_create(
+ rtems_name name,
+ void *internal_start,
+ void *external_start,
+ rtems_unsigned32 length,
+ rtems_id *id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Port_Create (
+ Name : in RTEMS.Name;
+ Internal_Start : in RTEMS.Address;
+ External_Start : in RTEMS.Address;
+ Length : in RTEMS.Unsigned32;
+ ID : out RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - port created successfully@*
+@code{@value{RPREFIX}INVALID_NAME} - invalid task name@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - address not on four byte boundary@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{id} is NULL@*
+@code{@value{RPREFIX}TOO_MANY} - too many DP memory areas created
+
+@subheading DESCRIPTION:
+
+This directive creates a port which resides on the
+local node for the specified DPMA. The assigned port id is
+returned in id. This port id is used as an argument to other
+dual-ported memory manager directives to convert addresses
+within this DPMA.
+
+For control and maintenance of the port, RTEMS
+allocates and initializes an DPCB from the DPCB free pool. Thus
+memory from the dual-ported memory area is not used to store the
+DPCB.
+
+@subheading NOTES:
+
+The internal_address and external_address parameters
+must be on a four byte boundary.
+
+This directive will not cause the calling task to be
+preempted.
+
+@c
+@c
+@c
+@page
+@subsection PORT_IDENT - Get ID of a port
+
+@cindex get ID of a port
+@cindex obtain ID of a port
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_port_ident
+@example
+rtems_status_code rtems_port_ident(
+ rtems_name name,
+ rtems_id *id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Port_Ident (
+ Name : in RTEMS.Name;
+ ID : out RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - port identified successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{id} is NULL@*
+@code{@value{RPREFIX}INVALID_NAME} - port name not found
+
+@subheading DESCRIPTION:
+
+This directive obtains the port id associated with
+the specified name to be acquired. If the port name is not
+unique, then the port id will match one of the DPMAs with that
+name. However, this port id is not guaranteed to correspond to
+the desired DPMA. The port id is used to access this DPMA in
+other dual-ported memory area related directives.
+
+@subheading NOTES:
+
+This directive will not cause the running task to be
+preempted.
+
+@c
+@c
+@c
+@page
+@subsection PORT_DELETE - Delete a port
+
+@cindex delete a port
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_port_delete
+@example
+rtems_status_code rtems_port_delete(
+ rtems_id id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Port_Delete (
+ ID : in RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - port deleted successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid port id
+
+@subheading DESCRIPTION:
+
+This directive deletes the dual-ported memory area
+specified by id. The DPCB for the deleted dual-ported memory
+area is reclaimed by RTEMS.
+
+@subheading NOTES:
+
+This directive will not cause the calling task to be
+preempted.
+
+The calling task does not have to be the task that
+created the port. Any local task that knows the port id can
+delete the port.
+
+@c
+@c
+@c
+@page
+@subsection PORT_EXTERNAL_TO_INTERNAL - Convert external to internal address
+
+@cindex convert external to internal address
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_port_external_to_internal
+@example
+rtems_status_code rtems_port_external_to_internal(
+ rtems_id id,
+ void *external,
+ void **internal
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Port_External_To_Internal (
+ ID : in RTEMS.ID;
+ External : in RTEMS.Address;
+ Internal : out RTEMS.Address;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{internal} is NULL@*
+@code{@value{RPREFIX}SUCCESSFUL} - successful conversion
+
+@subheading DESCRIPTION:
+
+This directive converts a dual-ported memory address
+from external to internal representation for the specified port.
+If the given external address is invalid for the specified
+port, then the internal address is set to the given external
+address.
+
+@subheading NOTES:
+
+This directive is callable from an ISR.
+
+This directive will not cause the calling task to be
+preempted.
+
+@c
+@c
+@c
+@page
+@subsection PORT_INTERNAL_TO_EXTERNAL - Convert internal to external address
+
+@cindex convert internal to external address
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_port_internal_to_external
+@example
+rtems_status_code rtems_port_internal_to_external(
+ rtems_id id,
+ void *internal,
+ void **external
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Port_Internal_To_External (
+ ID : in RTEMS.ID;
+ Internal : in RTEMS.Address;
+ External : out RTEMS.Address;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{external} is NULL@*
+@code{@value{RPREFIX}SUCCESSFUL} - successful conversion
+
+@subheading DESCRIPTION:
+
+This directive converts a dual-ported memory address
+from internal to external representation so that it can be
+passed to owner of the DPMA represented by the specified port.
+If the given internal address is an invalid dual-ported address,
+then the external address is set to the given internal address.
+
+@subheading NOTES:
+
+This directive is callable from an ISR.
+
+This directive will not cause the calling task to be
+preempted.
+
diff --git a/doc/user/event.t b/doc/user/event.t
new file mode 100644
index 0000000000..13d5af980f
--- /dev/null
+++ b/doc/user/event.t
@@ -0,0 +1,343 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@chapter Event Manager
+
+@cindex events
+
+@section Introduction
+
+The event manager provides a high performance method
+of intertask communication and synchronization. The directives
+provided by the event manager are:
+
+@itemize @bullet
+@item @code{@value{DIRPREFIX}event_send} - Send event set to a task
+@item @code{@value{DIRPREFIX}event_receive} - Receive event condition
+@end itemize
+
+@section Background
+
+@subsection Event Sets
+
+@cindex event flag, definition
+@cindex event set, definition
+@findex rtems_event_set
+
+An event flag is used by a task (or ISR) to inform
+another task of the occurrence of a significant situation.
+Thirty-two event flags are associated with each task. A
+collection of one or more event flags is referred to as an event
+set. The data type @code{@value{DIRPREFIX}event_set} is used to manage
+event sets.
+
+The application developer should remember the following
+key characteristics of event operations when utilizing the event
+manager:
+
+@itemize @bullet
+@item Events provide a simple synchronization facility.
+
+@item Events are aimed at tasks.
+
+@item Tasks can wait on more than one event simultaneously.
+
+@item Events are independent of one another.
+
+@item Events do not hold or transport data.
+
+@item Events are not queued. In other words, if an event is
+sent more than once to a task before being received, the second and
+subsequent send operations to that same task have no effect.
+@end itemize
+
+An event set is posted when it is directed (or sent) to a task. A
+pending event is an event that has been posted but not received. An event
+condition is used to specify the event set which the task desires to receive
+and the algorithm which will be used to determine when the request is
+satisfied. An event condition is satisfied based upon one of two
+algorithms which are selected by the user. The
+@code{@value{RPREFIX}EVENT_ANY} algorithm states that an event condition
+is satisfied when at least a single requested event is posted. The
+@code{@value{RPREFIX}EVENT_ALL} algorithm states that an event condition
+is satisfied when every requested event is posted.
+
+@subsection Building an Event Set or Condition
+
+@cindex event condition, building
+@cindex event set, building
+
+An event set or condition is built by a bitwise OR of
+the desired events. The set of valid events is @code{@value{RPREFIX}EVENT_0} through
+@code{@value{RPREFIX}EVENT_31}. If an event is not explicitly specified in the set or
+condition, then it is not present. Events are specifically
+designed to be mutually exclusive, therefore bitwise OR and
+addition operations are equivalent as long as each event appears
+exactly once in the event set list.
+
+For example, when sending the event set consisting of
+@code{@value{RPREFIX}EVENT_6}, @code{@value{RPREFIX}EVENT_15}, and @code{@value{RPREFIX}EVENT_31},
+the event parameter to the @code{@value{DIRPREFIX}event_send}
+directive should be @code{@value{RPREFIX}EVENT_6 @value{OR}
+@value{RPREFIX}EVENT_15 @value{OR} @value{RPREFIX}EVENT_31}.
+
+@subsection Building an EVENT_RECEIVE Option Set
+
+In general, an option is built by a bitwise OR of the
+desired option components. The set of valid options for the
+@code{@value{DIRPREFIX}event_receive} directive are listed
+in the following table:
+
+@itemize @bullet
+@item @code{@value{RPREFIX}WAIT} - task will wait for event (default)
+@item @code{@value{RPREFIX}NO_WAIT} - task should not wait
+@item @code{@value{RPREFIX}EVENT_ALL} - return after all events (default)
+@item @code{@value{RPREFIX}EVENT_ANY} - return after any events
+@end itemize
+
+Option values are specifically designed to be
+mutually exclusive, therefore bitwise OR and addition operations
+are equivalent as long as each option appears exactly once in
+the component list. An option listed as a default is not
+required to appear in the option list, although it is a good
+programming practice to specify default options. If all
+defaults are desired, the option @code{@value{RPREFIX}DEFAULT_OPTIONS} should be
+specified on this call.
+
+This example demonstrates the option parameter needed
+to poll for all events in a particular event condition to
+arrive. The option parameter passed to the
+@code{@value{DIRPREFIX}event_receive} directive should be either
+@code{@value{RPREFIX}EVENT_ALL @value{OR} @value{RPREFIX}NO_WAIT}
+or @code{@value{RPREFIX}NO_WAIT}. The option parameter can be set to
+@code{@value{RPREFIX}NO_WAIT} because @code{@value{RPREFIX}EVENT_ALL} is the
+default condition for @code{@value{DIRPREFIX}event_receive}.
+
+@section Operations
+
+@subsection Sending an Event Set
+
+The @code{@value{DIRPREFIX}event_send} directive allows a task (or an ISR) to
+direct an event set to a target task. Based upon the state of
+the target task, one of the following situations applies:
+
+@itemize @bullet
+@item Target Task is Blocked Waiting for Events
+
+@itemize -
+
+@item If the waiting task's input event condition is
+satisfied, then the task is made ready for execution.
+
+@item If the waiting task's input event condition is not
+satisfied, then the event set is posted but left pending and the
+task remains blocked.
+
+@end itemize
+
+@item Target Task is Not Waiting for Events
+
+@itemize -
+@item The event set is posted and left pending.
+@end itemize
+
+@end itemize
+
+@subsection Receiving an Event Set
+
+The @code{@value{DIRPREFIX}event_receive} directive is used by tasks to
+accept a specific input event condition. The task also
+specifies whether the request is satisfied when all requested
+events are available or any single requested event is available.
+If the requested event condition is satisfied by pending
+events, then a successful return code and the satisfying event
+set are returned immediately. If the condition is not
+satisfied, then one of the following situations applies:
+
+@itemize @bullet
+@item By default, the calling task will wait forever for the
+event condition to be satisfied.
+
+@item Specifying the @code{@value{RPREFIX}NO_WAIT} option forces an immediate return
+with an error status code.
+
+@item Specifying a timeout limits the period the task will
+wait before returning with an error status code.
+@end itemize
+
+@subsection Determining the Pending Event Set
+
+A task can determine the pending event set by calling
+the @code{@value{DIRPREFIX}event_receive} directive with a value of
+@code{@value{RPREFIX}PENDING_EVENTS} for the input event condition.
+The pending events are returned to the calling task but the event
+set is left unaltered.
+
+@subsection Receiving all Pending Events
+
+A task can receive all of the currently pending
+events by calling the @code{@value{DIRPREFIX}event_receive}
+directive with a value of @code{@value{RPREFIX}ALL_EVENTS}
+for the input event condition and
+@code{@value{RPREFIX}NO_WAIT @value{OR} @value{RPREFIX}EVENT_ANY}
+for the option set. The pending events are returned to the
+calling task and the event set is cleared. If no events are
+pending then the @code{@value{RPREFIX}UNSATISFIED} status code will be returned.
+
+@section Directives
+
+This section details the event manager's directives.
+A subsection is dedicated to each of this manager's directives
+and describes the calling sequence, related constants, usage,
+and status codes.
+
+@c
+@c
+@c
+@page
+@subsection EVENT_SEND - Send event set to a task
+
+@cindex send event set to a task
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_event_send
+@example
+rtems_status_code rtems_event_send (
+ rtems_id id,
+ rtems_event_set event_in
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Event_Send (
+ ID : in RTEMS.ID;
+ Event_In : in RTEMS.Event_Set;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - event set sent successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid task id
+
+@subheading DESCRIPTION:
+
+This directive sends an event set, event_in, to the
+task specified by id. If a blocked task's input event condition
+is satisfied by this directive, then it will be made ready. If
+its input event condition is not satisfied, then the events
+satisfied are updated and the events not satisfied are left
+pending. If the task specified by id is not blocked waiting for
+events, then the events sent are left pending.
+
+@subheading NOTES:
+
+Specifying @code{@value{RPREFIX}SELF} for id results in the event set being
+sent to the calling task.
+
+Identical events sent to a task are not queued. In
+other words, the second, and subsequent, posting of an event to
+a task before it can perform an @code{@value{DIRPREFIX}event_receive}
+has no effect.
+
+The calling task will be preempted if it has
+preemption enabled and a higher priority task is unblocked as
+the result of this directive.
+
+Sending an event set to a global task which does not
+reside on the local node will generate a request telling the
+remote node to send the event set to the appropriate task.
+
+@c
+@c
+@c
+@page
+@subsection EVENT_RECEIVE - Receive event condition
+
+@cindex receive event condition
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_event_receive
+@example
+rtems_status_code rtems_event_receive (
+ rtems_event_set event_in,
+ rtems_option option_set,
+ rtems_interval ticks,
+ rtems_event_set *event_out
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Event_Receive (
+ Event_In : in RTEMS.Event_Set;
+ Option_Set : in RTEMS.Option;
+ Ticks : in RTEMS.Interval;
+ Event_Out : out RTEMS.Event_Set;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - event received successfully@*
+@code{@value{RPREFIX}UNSATISFIED} - input event not satisfied (@code{@value{RPREFIX}NO_WAIT})@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{event_out} is NULL@*
+@code{@value{RPREFIX}TIMEOUT} - timed out waiting for event
+
+@subheading DESCRIPTION:
+
+This directive attempts to receive the event
+condition specified in event_in. If event_in is set to
+@code{@value{RPREFIX}PENDING_EVENTS}, then the current pending events are returned in
+event_out and left pending. The @code{@value{RPREFIX}WAIT} and @code{@value{RPREFIX}NO_WAIT} options in the
+option_set parameter are used to specify whether or not the task
+is willing to wait for the event condition to be satisfied.
+@code{@value{RPREFIX}EVENT_ANY} and @code{@value{RPREFIX}EVENT_ALL} are used in the option_set parameter are
+used to specify whether a single event or the complete event set
+is necessary to satisfy the event condition. The event_out
+parameter is returned to the calling task with the value that
+corresponds to the events in event_in that were satisfied.
+
+If pending events satisfy the event condition, then
+event_out is set to the satisfied events and the pending events
+in the event condition are cleared. If the event condition is
+not satisfied and @code{@value{RPREFIX}NO_WAIT} is specified, then event_out is set to
+the currently satisfied events. If the calling task chooses to
+wait, then it will block waiting for the event condition.
+
+If the calling task must wait for the event condition
+to be satisfied, then the timeout parameter is used to specify
+the maximum interval to wait. If it is set to @code{@value{RPREFIX}NO_TIMEOUT}, then
+the calling task will wait forever.
+
+@subheading NOTES:
+
+This directive only affects the events specified in
+event_in. Any pending events that do not correspond to any of
+the events specified in event_in will be left pending.
+
+The following event receive option constants are defined by
+RTEMS:
+
+@itemize @bullet
+@item @code{@value{RPREFIX}WAIT} task will wait for event (default)
+@item @code{@value{RPREFIX}NO_WAIT} task should not wait
+@item @code{@value{RPREFIX}EVENT_ALL} return after all events (default)
+@item @code{@value{RPREFIX}EVENT_ANY} return after any events
+@end itemize
+
+A clock tick is required to support the functionality of this directive.
diff --git a/doc/user/example.texi b/doc/user/example.texi
new file mode 100644
index 0000000000..edbe5a2257
--- /dev/null
+++ b/doc/user/example.texi
@@ -0,0 +1,88 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@ifinfo
+@node Example Application, Glossary, Directive Status Codes, Top
+@end ifinfo
+@chapter Example Application
+
+@example
+/*
+ * This file contains an example of a simple RTEMS
+ * application. It instantiates the RTEMS Configuration
+ * Information using confdef.h and contains two tasks:
+ * a * user initialization task and a simple task.
+ *
+ * This example assumes that a board support package exists.
+ */
+
+#include <rtems.h>
+
+rtems_task user_application(rtems_task_argument argument);
+
+rtems_task init_task(
+ rtems_task_argument ignored
+)
+@{
+ rtems_id tid;
+ rtems_status_code status;
+ rtems_name name;
+
+ name = rtems_build_name( 'A', 'P', 'P', '1' )
+
+ status = rtems_task_create(
+ name, 1, RTEMS_MINIMUM_STACK_SIZE,
+ RTEMS_NO_PREEMPT, RTEMS_FLOATING_POINT, &tid
+ );
+ if ( status != RTEMS_STATUS_SUCCESSFUL ) @{
+ printf( "rtems_task_create failed with status of %d.\n", status );
+ exit( 1 );
+ @}
+
+ status = rtems_task_start( tid, user_application, 0 );
+ if ( status != RTEMS_STATUS_SUCCESSFUL ) @{
+ printf( "rtems_task_start failed with status of %d.\n", status );
+ exit( 1 );
+ @}
+
+ status = rtems_task_delete( SELF ); /* should not return */
+ printf( "rtems_task_delete returned with status of %d.\n", status );
+ exit( 1 );
+@}
+
+
+rtems_task user_application(rtems_task_argument argument)
+@{
+ /* application specific initialization goes here */
+
+ while ( 1 ) @{ /* infinite loop */
+
+ /* APPLICATION CODE GOES HERE
+ *
+ * This code will typically include at least one
+ * directive which causes the calling task to
+ * give up the processor.
+ */
+ @}
+@}
+
+#define CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER /* for stdio */
+#define CONFIGURE_TEST_NEEDS_CLOCK_DRIVER /* for time services */
+
+#define CONFIGURE_MAXIMUM_TASKS 2
+
+#define CONFIGURE_INIT_TASK_NAME rtems_build_name( 'E', 'X', 'A', 'M' )
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+#define CONFIGURE_INIT
+
+#include <confdefs.h>
+@end example
+
+
+
diff --git a/doc/user/fatal.t b/doc/user/fatal.t
new file mode 100644
index 0000000000..9127f98b09
--- /dev/null
+++ b/doc/user/fatal.t
@@ -0,0 +1,172 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@chapter Fatal Error Manager
+
+@cindex fatal errors
+
+@section Introduction
+
+The fatal error manager processes all fatal or
+irrecoverable errors. The directive provided by the fatal error
+manager is:
+
+@itemize @bullet
+@item @code{@value{DIRPREFIX}fatal_error_occurred} - Invoke the fatal error handler
+@end itemize
+
+@section Background
+
+@cindex fatal error detection
+@cindex fatal error processing
+@cindex fatal error user extension
+
+The fatal error manager is called upon detection of
+an irrecoverable error condition by either RTEMS or the
+application software. Fatal errors can be detected from three
+sources:
+
+@itemize @bullet
+@item the executive (RTEMS)
+@item user system code
+@item user application code
+@end itemize
+
+RTEMS automatically invokes the fatal error manager
+upon detection of an error it considers to be fatal. Similarly,
+the user should invoke the fatal error manager upon detection of
+a fatal error.
+
+Each status or dynamic user extension set may include
+a fatal error handler. The fatal error handler in the static
+extension set can be used to provide access to debuggers and
+monitors which may be present on the target hardware. If any
+user-supplied fatal error handlers are installed, the fatal
+error manager will invoke them. If no user handlers are
+configured or if all the user handler return control to the
+fatal error manager, then the RTEMS default fatal error handler
+is invoked. If the default fatal error handler is invoked, then
+the system state is marked as failed.
+
+Although the precise behavior of the default fatal
+error handler is processor specific, in general, it will disable
+all maskable interrupts, place the error code in a known
+processor dependent place (generally either on the stack or in a
+register), and halt the processor. The precise actions of the
+RTEMS fatal error are discussed in the Default Fatal Error
+Processing chapter of the Applications Supplement document for
+a specific target processor.
+
+@section Operations
+
+@subsection Announcing a Fatal Error
+
+@findex _Internal_errors_What_happened
+
+The @code{@value{DIRPREFIX}fatal_error_occurred} directive is invoked when a
+fatal error is detected. Before invoking any user-supplied
+fatal error handlers or the RTEMS fatal error handler, the
+@code{@value{DIRPREFIX}fatal_error_occurred}
+directive stores useful information in the
+variable @code{_Internal_errors_What_happened}. This @value{STRUCTURE}
+contains three pieces of information:
+
+@itemize @bullet
+@item the source of the error (API or executive core),
+
+@item whether the error was generated internally by the
+executive, and a
+
+@item a numeric code to indicate the error type.
+@end itemize
+
+The error type indicator is dependent on the source
+of the error and whether or not the error was internally
+generated by the executive. If the error was generated
+from an API, then the error code will be of that API's
+error or status codes. The status codes for the RTEMS
+API are in cpukit/rtems/include/rtems/rtems/status.h. Those
+for the POSIX API can be found in <errno.h>.
+
+The @code{@value{DIRPREFIX}fatal_error_occurred} directive is responsible
+for invoking an optional user-supplied fatal error handler
+and/or the RTEMS fatal error handler. All fatal error handlers
+are passed an error code to describe the error detected.
+
+Occasionally, an application requires more
+sophisticated fatal error processing such as passing control to
+a debugger. For these cases, a user-supplied fatal error
+handler can be specified in the RTEMS configuration table. The
+User Extension Table field fatal contains the address of the
+fatal error handler to be executed when the
+@code{@value{DIRPREFIX}fatal_error_occurred}
+directive is called. If the field is set to NULL or if the
+configured fatal error handler returns to the executive, then
+the default handler provided by RTEMS is executed. This default
+handler will halt execution on the processor where the error
+occurred.
+
+@section Directives
+
+This section details the fatal error manager's
+directives. A subsection is dedicated to each of this manager's
+directives and describes the calling sequence, related
+constants, usage, and status codes.
+
+@c
+@c
+@c
+@page
+@subsection FATAL_ERROR_OCCURRED - Invoke the fatal error handler
+
+@cindex announce fatal error
+@cindex fatal error, announce
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_fatal_error_occurred
+@example
+void volatile rtems_fatal_error_occurred(
+ rtems_unsigned32 the_error
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Fatal_Error_Occurred (
+ The_Error : in RTEMS.Unsigned32
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES
+
+NONE
+
+@subheading DESCRIPTION:
+
+This directive processes fatal errors. If the FATAL
+error extension is defined in the configuration table, then the
+user-defined error extension is called. If configured and the
+provided FATAL error extension returns, then the RTEMS default
+error handler is invoked. This directive can be invoked by
+RTEMS or by the user's application code including initialization
+tasks, other tasks, and ISRs.
+
+@subheading NOTES:
+
+This directive supports local operations only.
+
+Unless the user-defined error extension takes special
+actions such as restarting the calling task, this directive WILL
+NOT RETURN to the caller.
+
+The user-defined extension for this directive may
+wish to initiate a global shutdown.
diff --git a/doc/user/glossary.texi b/doc/user/glossary.texi
new file mode 100644
index 0000000000..f9e8d6f7ea
--- /dev/null
+++ b/doc/user/glossary.texi
@@ -0,0 +1,771 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@ifinfo
+@node Glossary, Command and Variable Index, Example Application, Top
+@end ifinfo
+@chapter Glossary
+
+@table @b
+@item active
+A term used to describe an object
+which has been created by an application.
+
+@item aperiodic task
+A task which must execute only at
+irregular intervals and has only a soft deadline.
+
+@item application
+In this document, software which makes
+use of RTEMS.
+
+@item ASR
+see Asynchronous Signal Routine.
+
+@item asynchronous
+Not related in order or timing to
+other occurrences in the system.
+
+@item Asynchronous Signal Routine
+Similar to a hardware
+interrupt except that it is associated with a task and is run in
+the context of a task. The directives provided by the signal
+manager are used to service signals.
+
+@item awakened
+A term used to describe a task that has
+been unblocked and may be scheduled to the CPU.
+
+@item big endian
+A data representation scheme in which
+the bytes composing a numeric value are arranged such that the
+most significant byte is at the lowest address.
+
+@item bit-mapped
+A data encoding scheme in which each bit
+in a variable is used to represent something different. This
+makes for compact data representation.
+
+@item block
+A physically contiguous area of memory.
+
+@item blocked
+The task state entered by a task which has
+been previously started and cannot continue execution until the
+reason for waiting has been satisfied.
+
+@item broadcast
+To simultaneously send a message to a
+logical set of destinations.
+
+@item BSP
+see Board Support Package.
+
+@item Board Support Package
+A collection of device
+initialization and control routines specific to a particular
+type of board or collection of boards.
+
+@item buffer
+A fixed length block of memory allocated
+from a partition.
+
+@item calling convention
+The processor and compiler
+dependent rules which define the mechanism used to invoke
+subroutines in a high-level language. These rules define the
+passing of arguments, the call and return mechanism, and the
+register set which must be preserved.
+
+@item Central Processing Unit
+This term is equivalent to
+the terms processor and microprocessor.
+
+@item chain
+A data structure which allows for efficient
+dynamic addition and removal of elements. It differs from an
+array in that it is not limited to a predefined size.
+
+@item coalesce
+The process of merging adjacent holes into
+a single larger hole. Sometimes this process is referred to as
+garbage collection.
+
+@item Configuration Table
+A table which contains
+information used to tailor RTEMS for a particular application.
+
+@item context
+All of the processor registers and
+operating system data structures associated with a task.
+
+@item context switch
+Alternate term for task switch.
+Taking control of the processor from one task and transferring
+it to another task.
+
+@item control block
+A data structure used by the
+executive to define and control an object.
+
+@item core
+When used in this manual, this term refers to
+the internal executive utility functions. In the interest of
+application portability, the core of the executive should not be
+used directly by applications.
+
+@item CPU
+An acronym for Central Processing Unit.
+
+@item critical section
+A section of code which must be
+executed indivisibly.
+
+@item CRT
+An acronym for Cathode Ray Tube. Normally used
+in reference to the man-machine interface.
+
+@item deadline
+A fixed time limit by which a task must
+have completed a set of actions. Beyond this point, the results
+are of reduced value and may even be considered useless or
+harmful.
+
+@item device
+A peripheral used by the application that
+requires special operation software. See also device driver.
+
+@item device driver
+Control software for special
+peripheral devices used by the application.
+
+@item directives
+RTEMS' provided routines that provide
+support mechanisms for real-time applications.
+
+@item dispatch
+The act of loading a task's context onto
+the CPU and transferring control of the CPU to that task.
+
+@item dormant
+The state entered by a task after it is
+created and before it has been started.
+
+@item Device Driver Table
+A table which contains the
+entry points for each of the configured device drivers.
+
+@item dual-ported
+A term used to describe memory which
+can be accessed at two different addresses.
+
+@item embedded
+An application that is delivered as a
+hidden part of a larger system. For example, the software in a
+fuel-injection control system is an embedded application found
+in many late-model automobiles.
+
+@item envelope
+A buffer provided by the MPCI layer to
+RTEMS which is used to pass messages between nodes in a
+multiprocessor system. It typically contains routing
+information needed by the MPCI. The contents of an envelope are
+referred to as a packet.
+
+@item entry point
+The address at which a function or task
+begins to execute. In C, the entry point of a function is the
+function's name.
+
+@item events
+A method for task communication and
+synchronization. The directives provided by the event manager
+are used to service events.
+
+@item exception
+A synonym for interrupt.
+
+@item executing
+The task state entered by a task after it
+has been given control of the CPU.
+
+@item executive
+In this document, this term is used to
+referred to RTEMS. Commonly, an executive is a small real-time
+operating system used in embedded systems.
+
+@item exported
+An object known by all nodes in a
+multiprocessor system. An object created with the GLOBAL
+attribute will be exported.
+
+@item external address
+The address used to access
+dual-ported memory by all the nodes in a system which do not own
+the memory.
+
+@item FIFO
+An acronym for First In First Out.
+
+@item First In First Out
+A discipline for manipulating entries in a data structure.
+
+@item floating point coprocessor
+A component used in
+computer systems to enhance performance in mathematically
+intensive situations. It is typically viewed as a logical
+extension of the primary processor.
+
+@item freed
+A resource that has been released by the
+application to RTEMS.
+
+@item global
+An object that has been created with the
+GLOBAL attribute and exported to all nodes in a multiprocessor
+system.
+
+@item handler
+The equivalent of a manager, except that it
+is internal to RTEMS and forms part of the core. A handler is a
+collection of routines which provide a related set of functions.
+For example, there is a handler used by RTEMS to manage all
+objects.
+
+@item hard real-time system
+A real-time system in which a
+missed deadline causes the worked performed to have no value or
+to result in a catastrophic effect on the integrity of the
+system.
+
+@item heap
+A data structure used to dynamically allocate
+and deallocate variable sized blocks of memory.
+
+@item heterogeneous
+A multiprocessor computer system composed of dissimilar processors.
+
+@item homogeneous
+A multiprocessor computer system composed of a single type of processor.
+
+@item ID
+An RTEMS assigned identification tag used to
+access an active object.
+
+@item IDLE task
+A special low priority task which assumes
+control of the CPU when no other task is able to execute.
+
+@item interface
+A specification of the methodology used
+to connect multiple independent subsystems.
+
+@item internal address
+The address used to access
+dual-ported memory by the node which owns the memory.
+
+@item interrupt
+A hardware facility that causes the CPU
+to suspend execution, save its status, and transfer control to a
+specific location.
+
+@item interrupt level
+A mask used to by the CPU to
+determine which pending interrupts should be serviced. If a
+pending interrupt is below the current interrupt level, then the
+CPU does not recognize that interrupt.
+
+@item Interrupt Service Routine
+An ISR is invoked by the
+CPU to process a pending interrupt.
+
+@item I/O
+An acronym for Input/Output.
+
+@item ISR
+An acronym for Interrupt Service Routine.
+
+@item kernel
+In this document, this term is used as a
+synonym for executive.
+
+@item list
+A data structure which allows for dynamic
+addition and removal of entries. It is not statically limited
+to a particular size.
+
+@item little endian
+A data representation scheme in which
+the bytes composing a numeric value are arranged such that the
+least significant byte is at the lowest address.
+
+@item local
+An object which was created with the LOCAL
+attribute and is accessible only on the node it was created and
+resides upon. In a single processor configuration, all objects
+are local.
+
+@item local operation
+The manipulation of an object which
+resides on the same node as the calling task.
+
+@item logical address
+An address used by an application.
+In a system without memory management, logical addresses will
+equal physical addresses.
+
+@item loosely-coupled
+A multiprocessor configuration
+where shared memory is not used for communication.
+
+@item major number
+The index of a device driver in the
+Device Driver Table.
+
+@item manager
+A group of related RTEMS' directives which
+provide access and control over resources.
+
+@item memory pool
+Used interchangeably with heap.
+
+@item message
+A sixteen byte entity used to communicate
+between tasks. Messages are sent to message queues and stored
+in message buffers.
+
+@item message buffer
+A block of memory used to store
+messages.
+
+@item message queue
+An RTEMS object used to synchronize
+and communicate between tasks by transporting messages between
+sending and receiving tasks.
+
+@item Message Queue Control Block
+A data structure associated with each message queue used by RTEMS
+to manage that message queue.
+
+@item minor number
+A numeric value passed to a device
+driver, the exact usage of which is driver dependent.
+
+@item mode
+An entry in a task's control block that is
+used to determine if the task allows preemption, timeslicing,
+processing of signals, and the interrupt disable level used by
+the task.
+
+@item MPCI
+An acronym for Multiprocessor Communications
+Interface Layer.
+
+@item multiprocessing
+The simultaneous execution of two
+or more processes by a multiple processor computer system.
+
+@item multiprocessor
+A computer with multiple CPUs
+available for executing applications.
+
+@item Multiprocessor Communications Interface Layer
+A set
+of user-provided routines which enable the nodes in a
+multiprocessor system to communicate with one another.
+
+@item Multiprocessor Configuration Table
+The data structure defining the characteristics of the multiprocessor
+target system with which RTEMS will communicate.
+
+@item multitasking
+The alternation of execution amongst a
+group of processes on a single CPU. A scheduling algorithm is
+used to determine which process executes at which time.
+
+@item mutual exclusion
+A term used to describe the act of
+preventing other tasks from accessing a resource simultaneously.
+
+@item nested
+A term used to describe an ASR that occurs
+during another ASR or an ISR that occurs during another ISR.
+
+@item node
+A term used to reference a processor running
+RTEMS in a multiprocessor system.
+
+@item non-existent
+The state occupied by an uncreated or
+deleted task.
+
+@item numeric coprocessor
+A component used in computer
+systems to enhance performance in mathematically intensive
+situations. It is typically viewed as a logical extension of
+the primary processor.
+
+@item object
+In this document, this term is used to refer
+collectively to tasks, timers, message queues, partitions,
+regions, semaphores, ports, and rate monotonic periods. All
+RTEMS objects have IDs and user-assigned names.
+
+@item object-oriented
+A term used to describe systems
+with common mechanisms for utilizing a variety of entities.
+Object-oriented systems shield the application from
+implementation details.
+
+@item operating system
+The software which controls all
+the computer's resources and provides the base upon which
+application programs can be written.
+
+@item overhead
+The portion of the CPUs processing power
+consumed by the operating system.
+
+@item packet
+A buffer which contains the messages passed
+between nodes in a multiprocessor system. A packet is the
+contents of an envelope.
+
+@item partition
+An RTEMS object which is used to allocate
+and deallocate fixed size blocks of memory from an dynamically
+specified area of memory.
+
+@item Partition Control Block
+A data structure associated
+with each partition used by RTEMS to manage that partition.
+
+@item pending
+A term used to describe a task blocked
+waiting for an event, message, semaphore, or signal.
+
+@item periodic task
+A task which must execute at regular
+intervals and comply with a hard deadline.
+
+@item physical address
+The actual hardware address of a
+resource.
+
+@item poll
+A mechanism used to determine if an event has
+occurred by periodically checking for a particular status.
+Typical events include arrival of data, completion of an action,
+and errors.
+
+@item pool
+A collection from which resources are
+allocated.
+
+@item portability
+A term used to describe the ease with
+which software can be rehosted on another computer.
+
+@item posting
+The act of sending an event, message,
+semaphore, or signal to a task.
+
+@item preempt
+The act of forcing a task to relinquish the
+processor and dispatching to another task.
+
+@item priority
+A mechanism used to represent the relative
+importance of an element in a set of items. RTEMS uses priority
+to determine which task should execute.
+
+@item priority inheritance
+An algorithm that calls for
+the lower priority task holding a resource to have its priority
+increased to that of the highest priority task blocked waiting
+for that resource. This avoids the problem of priority
+inversion.
+
+@item priority inversion
+A form of indefinite
+postponement which occurs when a high priority tasks requests
+access to shared resource currently allocated to low priority
+task. The high priority task must block until the low priority
+task releases the resource.
+
+@item processor utilization
+The percentage of processor
+time used by a task or a set of tasks.
+
+@item proxy
+An RTEMS control structure used to represent,
+on a remote node, a task which must block as part of a remote
+operation.
+
+@item Proxy Control Block
+A data structure associated
+with each proxy used by RTEMS to manage that proxy.
+
+@item PTCB
+An acronym for Partition Control Block.
+
+@item PXCB
+An acronym for Proxy Control Block.
+
+@item quantum
+The application defined unit of time in
+which the processor is allocated.
+
+@item queue
+Alternate term for message queue.
+
+@item QCB
+An acronym for Message Queue Control Block.
+
+@item ready
+A task occupies this state when it is
+available to be given control of the CPU.
+
+@item real-time
+A term used to describe systems which are
+characterized by requiring deterministic response times to
+external stimuli. The external stimuli require that the
+response occur at a precise time or the response is incorrect.
+
+@item reentrant
+A term used to describe routines which do
+not modify themselves or global variables.
+
+@item region
+An RTEMS object which is used to allocate
+and deallocate variable size blocks of memory from a dynamically
+specified area of memory.
+
+@item Region Control Block
+A data structure associated
+with each region used by RTEMS to manage that region.
+
+@item registers
+Registers are locations physically
+located within a component, typically used for device control or
+general purpose storage.
+
+@item remote
+Any object that does not reside on the local
+node.
+
+@item remote operation
+The manipulation of an object
+which does not reside on the same node as the calling task.
+
+@item return code
+Also known as error code or return
+value.
+
+@item resource
+A hardware or software entity to which
+access must be controlled.
+
+@item resume
+Removing a task from the suspend state. If
+the task's state is ready following a call to the
+@code{@value{DIRPREFIX}task_resume}
+directive, then the task is available for scheduling.
+
+@item return code
+A value returned by RTEMS directives to
+indicate the completion status of the directive.
+
+@item RNCB
+An acronym for Region Control Block.
+
+@item round-robin
+A task scheduling discipline in which
+tasks of equal priority are executed in the order in which they
+are made ready.
+
+@item RS-232
+A standard for serial communications.
+
+@item running
+The state of a rate monotonic timer while
+it is being used to delineate a period. The timer exits this
+state by either expiring or being canceled.
+
+@item schedule
+The process of choosing which task should
+next enter the executing state.
+
+@item schedulable
+A set of tasks which can be guaranteed
+to meet their deadlines based upon a specific scheduling
+algorithm.
+
+@item segments
+Variable sized memory blocks allocated
+from a region.
+
+@item semaphore
+An RTEMS object which is used to
+synchronize tasks and provide mutually exclusive access to
+resources.
+
+@item Semaphore Control Block
+A data structure associated
+with each semaphore used by RTEMS to manage that semaphore.
+
+@item shared memory
+Memory which is accessible by
+multiple nodes in a multiprocessor system.
+
+@item signal
+An RTEMS provided mechanism to communicate
+asynchronously with a task. Upon reception of a signal, the ASR
+of the receiving task will be invoked.
+
+@item signal set
+A thirty-two bit entity which is used to
+represent a task's collection of pending signals and the signals
+sent to a task.
+
+@item SMCB
+An acronym for Semaphore Control Block.
+
+@item soft real-time system
+A real-time system in which a
+missed deadline does not compromise the integrity of the system.
+
+@item sporadic task
+A task which executes at irregular
+intervals and must comply with a hard deadline. A minimum
+period of time between successive iterations of the task can be
+guaranteed.
+
+@item stack
+A data structure that is managed using a Last
+In First Out (LIFO) discipline. Each task has a stack
+associated with it which is used to store return information
+and local variables.
+
+@item status code
+Also known as error code or return
+value.
+
+@item suspend
+A term used to describe a task that is not
+competing for the CPU because it has had a
+@code{@value{DIRPREFIX}task_suspend} directive.
+
+@item synchronous
+Related in order or timing to other
+occurrences in the system.
+
+@item system call
+In this document, this is used as an
+alternate term for directive.
+
+@item target
+The system on which the application will
+ultimately execute.
+
+@item task
+A logically complete thread of execution. The
+CPU is allocated among the ready tasks.
+
+@item Task Control Block
+A data structure associated with
+each task used by RTEMS to manage that task.
+
+@item task switch
+Alternate terminology for context
+switch. Taking control of the processor from one task and given
+to another.
+
+@item TCB
+An acronym for Task Control Block.
+
+@item tick
+The basic unit of time used by RTEMS. It is a
+user-configurable number of microseconds. The current tick
+expires when the @code{@value{DIRPREFIX}clock_tick}
+directive is invoked.
+
+@item tightly-coupled
+A multiprocessor configuration
+system which communicates via shared memory.
+
+@item timeout
+An argument provided to a number of
+directives which determines the maximum length of time an
+application task is willing to wait to acquire the resource if
+it is not immediately available.
+
+@item timer
+An RTEMS object used to invoke subprograms at
+a later time.
+
+@item Timer Control Block
+A data structure associated
+with each timer used by RTEMS to manage that timer.
+
+@item timeslicing
+A task scheduling discipline in which
+tasks of equal priority are executed for a specific period of
+time before being preempted by another task.
+
+@item timeslice
+The application defined unit of time in
+which the processor is allocated.
+
+@item TMCB
+An acronym for Timer Control Block.
+
+@item transient overload
+A temporary rise in system
+activity which may cause deadlines to be missed. Rate Monotonic
+Scheduling can be used to determine if all deadlines will be met
+under transient overload.
+
+@item user extensions
+Software routines provided by the
+application to enhance the functionality of RTEMS.
+
+@item User Extension Table
+A table which contains the
+entry points for each user extensions.
+
+@item User Initialization Tasks Table
+A table which
+contains the information needed to create and start each of the
+user initialization tasks.
+
+@item user-provided
+Alternate term for user-supplied.
+This term is used to designate any software routines which must
+be written by the application designer.
+
+@item user-supplied
+Alternate term for user-provided.
+This term is used to designate any software routines which must
+be written by the application designer.
+
+@item vector
+Memory pointers used by the processor to
+fetch the address of routines which will handle various
+exceptions and interrupts.
+
+@item wait queue
+The list of tasks blocked pending the
+release of a particular resource. Message queues, regions, and
+semaphores have a wait queue associated with them.
+
+@item yield
+When a task voluntarily releases control of the processor.
+
+@end table
+
diff --git a/doc/user/init.t b/doc/user/init.t
new file mode 100644
index 0000000000..24625e4b6b
--- /dev/null
+++ b/doc/user/init.t
@@ -0,0 +1,416 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@chapter Initialization Manager
+
+@section Introduction
+
+The initialization manager is responsible for
+initiating and shutting down RTEMS. Initiating RTEMS involves
+creating and starting all configured initialization tasks, and
+for invoking the initialization routine for each user-supplied
+device driver. In a multiprocessor configuration, this manager
+also initializes the interprocessor communications layer. The
+directives provided by the initialization manager are:
+
+@itemize @bullet
+@item @code{@value{DIRPREFIX}initialize_executive} - Initialize RTEMS
+@item @code{@value{DIRPREFIX}initialize_executive_early} - Initialize RTEMS and do NOT Start Multitasking
+@item @code{@value{DIRPREFIX}initialize_executive_late} - Complete Initialization and Start Multitasking
+@item @code{@value{DIRPREFIX}shutdown_executive} - Shutdown RTEMS
+@end itemize
+
+@section Background
+
+@subsection Initialization Tasks
+
+@cindex initialization tasks
+
+Initialization task(s) are the mechanism by which
+RTEMS transfers initial control to the user's application.
+Initialization tasks differ from other application tasks in that
+they are defined in the User Initialization Tasks Table and
+automatically created and started by RTEMS as part of its
+initialization sequence. Since the initialization tasks are
+scheduled using the same algorithm as all other RTEMS tasks,
+they must be configured at a priority and mode which will insure
+that they will complete execution before other application tasks
+execute. Although there is no upper limit on the number of
+initialization tasks, an application is required to define at
+least one.
+
+A typical initialization task will create and start
+the static set of application tasks. It may also create any
+other objects used by the application. Initialization tasks
+which only perform initialization should delete themselves upon
+completion to free resources for other tasks. Initialization
+tasks may transform themselves into a "normal" application task.
+This transformation typically involves changing priority and
+execution mode. RTEMS does not automatically delete the
+initialization tasks.
+
+@subsection The System Initialization Task
+
+The System Initialization Task is responsible for
+initializing all device drivers. As a result, this task has a
+higher priority than all other tasks to insure that no
+application tasks executes until all device drivers are
+initialized. After device initialization in a single processor
+system, this task will delete itself.
+
+The System Initialization Task must have enough stack
+space to successfully execute the initialization routines for
+all device drivers and, in multiprocessor configurations, the
+Multiprocessor Communications Interface Layer initialization
+routine. The CPU Configuration Table contains a field which
+allows the application or BSP to increase the default amount of
+stack space allocated for this task.
+
+In multiprocessor configurations, the System
+Initialization Task does not delete itself after initializing
+the device drivers. Instead it transforms itself into the
+Multiprocessing Server which initializes the Multiprocessor
+Communications Interface Layer, verifies multiprocessor system
+consistency, and processes all requests from remote nodes.
+
+@subsection The Idle Task
+
+The Idle Task is the lowest priority task in a system
+and executes only when no other task is ready to execute. This
+task consists of an infinite loop and will be preempted when any
+other task is made ready to execute.
+
+@subsection Initialization Manager Failure
+
+The @code{@value{DIRPREFIX}ifatal_error_occurred} directive will be called
+from @code{@value{DIRPREFIX}initialize_executive}
+for any of the following reasons:
+
+@itemize @bullet
+@item If either the Configuration Table or the CPU Dependent
+Information Table is not provided.
+
+@item If the starting address of the RTEMS RAM Workspace,
+supplied by the application in the Configuration Table, is NULL
+or is not aligned on a four-byte boundary.
+
+@item If the size of the RTEMS RAM Workspace is not large
+enough to initialize and configure the system.
+
+@item If the interrupt stack size specified is too small.
+
+@item If multiprocessing is configured and the node entry in
+the Multiprocessor Configuration Table is not between one and
+the maximum_nodes entry.
+
+@item If a multiprocessor system is being configured and no
+Multiprocessor Communications Interface is specified.
+
+@item If no user initialization tasks are configured. At
+least one initialization task must be configured to allow RTEMS
+to pass control to the application at the end of the executive
+initialization sequence.
+
+@item If any of the user initialization tasks cannot be
+created or started successfully.
+@end itemize
+
+@section Operations
+
+@subsection Initializing RTEMS
+
+The @code{@value{DIRPREFIX}initialize_executive}
+directive is called by the
+board support package at the completion of its initialization
+sequence. RTEMS assumes that the board support package
+successfully completed its initialization activities. The
+@code{@value{DIRPREFIX}initialize_executive}
+directive completes the initialization
+sequence by performing the following actions:
+
+@itemize @bullet
+@item Initializing internal RTEMS variables;
+@item Allocating system resources;
+@item Creating and starting the System Initialization Task;
+@item Creating and starting the Idle Task;
+@item Creating and starting the user initialization task(s); and
+@item Initiating multitasking.
+@end itemize
+
+This directive MUST be called before any other RTEMS
+directives. The effect of calling any RTEMS directives before
+@code{@value{DIRPREFIX}initialize_executive}
+is unpredictable. Many of RTEMS actions
+during initialization are based upon the contents of the
+Configuration Table and CPU Dependent Information Table. For
+more information regarding the format and contents of these
+tables, please refer to the chapter Configuring a System.
+
+The final step in the initialization sequence is the
+initiation of multitasking. When the scheduler and dispatcher
+are enabled, the highest priority, ready task will be dispatched
+to run. Control will not be returned to the board support
+package after multitasking is enabled until
+@code{@value{DIRPREFIX}shutdown_executive}
+the directive is called.
+
+The @code{@value{DIRPREFIX}initialize_executive}
+directive provides a
+conceptually simple way to initialize RTEMS. However, in
+certain cases, this mechanism cannot be used. The
+@code{@value{DIRPREFIX}initialize_executive_early}
+and @code{@value{DIRPREFIX}initialize_executive_late}
+directives are provided as an alternative mechanism for
+initializing RTEMS. The
+@code{@value{DIRPREFIX}initialize_executive_early} directive
+returns to the caller BEFORE initiating multitasking. The
+@code{@value{DIRPREFIX}initialize_executive_late}
+directive is invoked to start
+multitasking. It is critical that only one of the RTEMS
+initialization sequences be used in an application.
+
+@subsection Shutting Down RTEMS
+
+The @code{@value{DIRPREFIX}shutdown_executive} directive is invoked by the
+application to end multitasking and return control to the board
+support package. The board support package resumes execution at
+the code immediately following the invocation of the
+@code{@value{DIRPREFIX}initialize_executive} directive.
+
+@section Directives
+
+This section details the initialization manager's
+directives. A subsection is dedicated to each of this manager's
+directives and describes the calling sequence, related
+constants, usage, and status codes.
+
+@page
+@subsection INITIALIZE_EXECUTIVE - Initialize RTEMS
+
+@cindex initialize RTEMS
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_initialize_executive
+@example
+void rtems_initialize_executive(
+ rtems_configuration_table *configuration_table,
+ rtems_cpu_table *cpu_table
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Initialize_Executive (
+ Configuration_Table : in RTEMS.Configuration_Table_Pointer;
+ CPU_Table : in RTEMS.CPU_Table_Pointer
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+
+NONE
+
+@subheading DESCRIPTION:
+
+This directive is called when the board support
+package has completed its initialization to allow RTEMS to
+initialize the application environment based upon the
+information in the Configuration Table, CPU Dependent
+Information Table, User Initialization Tasks Table, Device
+Driver Table, User Extension Table, Multiprocessor Configuration
+Table, and the Multiprocessor Communications Interface (MPCI)
+Table. This directive starts multitasking and does not return
+to the caller until the @code{@value{DIRPREFIX}shutdown_executive}
+directive is invoked.
+
+@subheading NOTES:
+
+This directive MUST be the first RTEMS directive
+called and it DOES NOT RETURN to the caller until the
+@code{@value{DIRPREFIX}shutdown_executive}
+is invoked.
+
+This directive causes all nodes in the system to
+verify that certain configuration parameters are the same as
+those of the local node. If an inconsistency is detected, then
+a fatal error is generated.
+
+The application must use only one of the two
+initialization sequences:
+@code{@value{DIRPREFIX}initialize_executive} or
+@code{@value{DIRPREFIX}initialize_executive_early} and
+@code{@value{DIRPREFIX}initialize_executive_late}. The
+@code{@value{DIRPREFIX}initialize_executive}
+directive is logically equivalent to invoking
+@code{@value{DIRPREFIX}initialize_executive_early} and
+@code{@value{DIRPREFIX}initialize_executive_late}
+with no intervening actions.
+
+@page
+@subsection INITIALIZE_EXECUTIVE_EARLY - Initialize RTEMS and do NOT Start Multitasking
+
+@cindex initialize RTEMS
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_initialize_executive_early
+@example
+rtems_interrupt_level rtems_initialize_executive_early(
+ rtems_configuration_table *configuration_table,
+ rtems_cpu_table *cpu_table
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Initialize_Executive_Early(
+ Configuration_Table : in RTEMS.Configuration_Table_Pointer;
+ CPU_Table : in RTEMS.Cpu_Table;
+ Level : out RTEMS.ISR_Level
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+
+NONE
+
+@subheading DESCRIPTION:
+
+This directive is called when the board support
+package has completed its initialization to allow RTEMS to
+initialize the application environment based upon the
+information in the Configuration Table, CPU Dependent
+Information Table, User Initialization Tasks Table, Device
+Driver Table, User Extension Table, Multiprocessor Configuration
+Table, and the Multiprocessor Communications Interface (MPCI)
+Table. This directive returns to the caller after completing
+the basic RTEMS initialization but before multitasking is
+initiated. The interrupt level in place when the directive is
+invoked is returned to the caller. This interrupt level should
+be the same one passed to
+@code{@value{DIRPREFIX}initialize_executive_late}.
+
+@subheading NOTES:
+
+The application must use only one of the two
+initialization sequences:
+@code{@value{DIRPREFIX}initialize_executive} or
+@code{@value{DIRPREFIX}initialize_executive_early} and
+@code{@value{DIRPREFIX}initialize_executive_late}.
+
+@page
+@subsection INITIALIZE_EXECUTIVE_LATE - Complete Initialization and Start Multitasking
+
+@cindex initialize RTEMS
+@cindex start multitasking
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_initialize_executive_late
+@example
+void rtems_initialize_executive_late(
+ rtems_interrupt_level bsp_level
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Initialize_Executive_Late(
+ BSP_Level : in RTEMS.ISR_Level
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+
+NONE
+
+@subheading DESCRIPTION:
+
+This directive is called after the
+@code{@value{DIRPREFIX}initialize_executive_early}
+directive has been called to complete
+the RTEMS initialization sequence and initiate multitasking.
+The interrupt level returned by the
+@code{@value{DIRPREFIX}initialize_executive_early}
+directive should be in bsp_level and this value is restored as
+part of this directive returning to the caller after the
+@code{@value{DIRPREFIX}shutdown_executive}
+directive is invoked.
+
+@subheading NOTES:
+
+This directive MUST be the second RTEMS directive
+called and it DOES NOT RETURN to the caller until the
+@code{@value{DIRPREFIX}shutdown_executive} is invoked.
+
+This directive causes all nodes in the system to
+verify that certain configuration parameters are the same as
+those of the local node. If an inconsistency is detected, then
+a fatal error is generated.
+
+The application must use only one of the two
+initialization sequences:
+@code{@value{DIRPREFIX}initialize_executive} or
+@code{@value{DIRPREFIX}initialize_executive_early} and
+@code{@value{DIRPREFIX}initialize_executive_late}.
+
+
+
+@page
+@subsection SHUTDOWN_EXECUTIVE - Shutdown RTEMS
+
+@cindex shutdown RTEMS
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_shutdown_executive
+@example
+void rtems_shutdown_executive(
+ rtems_unsigned32 result
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Shutdown_Executive(
+ result : in RTEMS.Unsigned32
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+
+NONE
+
+@subheading DESCRIPTION:
+
+This directive is called when the application wishes
+to shutdown RTEMS and return control to the board support
+package. The board support package resumes execution at the
+code immediately following the invocation of the
+@code{@value{DIRPREFIX}initialize_executive} directive.
+
+@subheading NOTES:
+
+This directive MUST be the last RTEMS directive
+invoked by an application and it DOES NOT RETURN to the caller.
+
+This directive should not be invoked until the
+executive has successfully completed initialization.
diff --git a/doc/user/intr.t b/doc/user/intr.t
new file mode 100644
index 0000000000..e9efbbd0c8
--- /dev/null
+++ b/doc/user/intr.t
@@ -0,0 +1,469 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@chapter Interrupt Manager
+
+@section Introduction
+
+Any real-time executive must provide a mechanism for
+quick response to externally generated interrupts to satisfy the
+critical time constraints of the application. The interrupt
+manager provides this mechanism for RTEMS. This manager permits
+quick interrupt response times by providing the critical ability
+to alter task execution which allows a task to be preempted upon
+exit from an ISR. The interrupt manager includes the following
+directive:
+
+@itemize @bullet
+@item @code{@value{DIRPREFIX}interrupt_catch} - Establish an ISR
+@item @code{@value{DIRPREFIX}interrupt_disable} - Disable Interrupts
+@item @code{@value{DIRPREFIX}interrupt_enable} - Enable Interrupts
+@item @code{@value{DIRPREFIX}interrupt_flash} - Flash Interrupt
+@item @code{@value{DIRPREFIX}interrupt_is_in_progress} - Is an ISR in Progress
+@end itemize
+
+@section Background
+
+@subsection Processing an Interrupt
+
+@cindex interrupt processing
+
+The interrupt manager allows the application to
+connect a function to a hardware interrupt vector. When an
+interrupt occurs, the processor will automatically vector to
+RTEMS. RTEMS saves and restores all registers which are not
+preserved by the normal @value{LANGUAGE} calling convention
+for the target
+processor and invokes the user's ISR. The user's ISR is
+responsible for processing the interrupt, clearing the interrupt
+if necessary, and device specific manipulation.
+
+@findex rtems_vector_number
+
+The @code{@value{DIRPREFIX}interrupt_catch}
+directive connects a procedure to
+an interrupt vector. The vector number is managed using
+the @code{@value{DIRPREFIX}vector_number} data type.
+
+The interrupt service routine is assumed
+to abide by these conventions and have a prototype similar to
+the following:
+
+@ifset is-C
+@findex rtems_isr
+
+@example
+rtems_isr user_isr(
+ rtems_vector_number vector
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure User_ISR (
+ vector : in RTEMS.Vector_Number
+);
+@end example
+@end ifset
+
+The vector number argument is provided by RTEMS to
+allow the application to identify the interrupt source. This
+could be used to allow a single routine to service interrupts
+from multiple instances of the same device. For example, a
+single routine could service interrupts from multiple serial
+ports and use the vector number to identify which port requires
+servicing.
+
+To minimize the masking of lower or equal priority
+level interrupts, the ISR should perform the minimum actions
+required to service the interrupt. Other non-essential actions
+should be handled by application tasks. Once the user's ISR has
+completed, it returns control to the RTEMS interrupt manager
+which will perform task dispatching and restore the registers
+saved before the ISR was invoked.
+
+The RTEMS interrupt manager guarantees that proper
+task scheduling and dispatching are performed at the conclusion
+of an ISR. A system call made by the ISR may have readied a
+task of higher priority than the interrupted task. Therefore,
+when the ISR completes, the postponed dispatch processing must
+be performed. No dispatch processing is performed as part of
+directives which have been invoked by an ISR.
+
+Applications must adhere to the following rule if
+proper task scheduling and dispatching is to be performed:
+
+@itemize @b{ }
+
+@item @b{The interrupt manager must be used for all ISRs which
+may be interrupted by the highest priority ISR which invokes an
+RTEMS directive.}
+
+@end itemize
+
+Consider a processor which allows a numerically low
+interrupt level to interrupt a numerically greater interrupt
+level. In this example, if an RTEMS directive is used in a
+level 4 ISR, then all ISRs which execute at levels 0 through 4
+must use the interrupt manager.
+
+Interrupts are nested whenever an interrupt occurs
+during the execution of another ISR. RTEMS supports efficient
+interrupt nesting by allowing the nested ISRs to terminate
+without performing any dispatch processing. Only when the
+outermost ISR terminates will the postponed dispatching occur.
+
+@subsection RTEMS Interrupt Levels
+
+@cindex interrupt levels
+
+Many processors support multiple interrupt levels or
+priorities. The exact number of interrupt levels is processor
+dependent. RTEMS internally supports 256 interrupt levels which
+are mapped to the processor's interrupt levels. For specific
+information on the mapping between RTEMS and the target
+processor's interrupt levels, refer to the Interrupt Processing
+chapter of the Applications Supplement document for a specific
+target processor.
+
+@subsection Disabling of Interrupts by RTEMS
+
+@cindex disabling interrupts
+
+During the execution of directive calls, critical
+sections of code may be executed. When these sections are
+encountered, RTEMS disables all maskable interrupts before the
+execution of the section and restores them to the previous level
+upon completion of the section. RTEMS has been optimized to
+insure that interrupts are disabled for a minimum length of
+time. The maximum length of time interrupts are disabled by
+RTEMS is processor dependent and is detailed in the Timing
+Specification chapter of the Applications Supplement document
+for a specific target processor.
+
+Non-maskable interrupts (NMI) cannot be disabled, and
+ISRs which execute at this level MUST NEVER issue RTEMS system
+calls. If a directive is invoked, unpredictable results may
+occur due to the inability of RTEMS to protect its critical
+sections. However, ISRs that make no system calls may safely
+execute as non-maskable interrupts.
+
+@section Operations
+
+@subsection Establishing an ISR
+
+The @code{@value{DIRPREFIX}interrupt_catch}
+directive establishes an ISR for
+the system. The address of the ISR and its associated CPU
+vector number are specified to this directive. This directive
+installs the RTEMS interrupt wrapper in the processor's
+Interrupt Vector Table and the address of the user's ISR in the
+RTEMS' Vector Table. This directive returns the previous
+contents of the specified vector in the RTEMS' Vector Table.
+
+@subsection Directives Allowed from an ISR
+
+Using the interrupt manager insures that RTEMS knows
+when a directive is being called from an ISR. The ISR may then
+use system calls to synchronize itself with an application task.
+The synchronization may involve messages, events or signals
+being passed by the ISR to the desired task. Directives invoked
+by an ISR must operate only on objects which reside on the local
+node. The following is a list of RTEMS system calls that may be
+made from an ISR:
+
+@itemize @bullet
+@item Task Management
+
+@itemize -
+@item task_get_note, task_set_note, task_suspend, task_resume
+@end itemize
+
+@item Clock Management
+
+@itemize -
+@item clock_get, clock_tick
+@end itemize
+
+@item Message, Event, and Signal Management
+
+@itemize -
+@item message_queue_send, message_queue_urgent
+@item event_send
+@item signal_send
+@end itemize
+
+@item Semaphore Management
+
+@itemize -
+@item semaphore_release
+@end itemize
+
+@item Dual-Ported Memory Management
+
+@itemize -
+@item port_external_to_internal, port_internal_to_external
+@end itemize
+
+@item IO Management
+
+@itemize -
+@item io_initialize, io_open, io_close, io_read, io_write, io_control
+@end itemize
+
+@item Fatal Error Management
+
+@itemize -
+@item fatal_error_occurred
+@end itemize
+
+@item Multiprocessing
+
+@itemize -
+@item multiprocessing_announce
+@end itemize
+@end itemize
+
+@section Directives
+
+This section details the interrupt manager's
+directives. A subsection is dedicated to each of this manager's
+directives and describes the calling sequence, related
+constants, usage, and status codes.
+
+@c
+@c
+@c
+@page
+@subsection INTERRUPT_CATCH - Establish an ISR
+
+@cindex establish an ISR
+@cindex install an ISR
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_interrupt_catch
+@example
+rtems_status_code rtems_interrupt_catch(
+ rtems_isr_entry new_isr_handler,
+ rtems_vector_number vector,
+ rtems_isr_entry *old_isr_handler
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Interrupt_Catch (
+ New_ISR_handler : in RTEMS.Address;
+ Vector : in RTEMS.Vector_Number;
+ Old_ISR_Handler : out RTEMS.Address;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - ISR established successfully@*
+@code{@value{RPREFIX}INVALID_NUMBER} - illegal vector number@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - illegal ISR entry point or invalid @code{old_isr_handler}
+
+@subheading DESCRIPTION:
+
+This directive establishes an interrupt service
+routine (ISR) for the specified interrupt vector number. The
+@code{new_isr_handler} parameter specifies the entry point of the ISR.
+The entry point of the previous ISR for the specified vector is
+returned in @code{old_isr_handler}.
+
+To release an interrupt vector, pass the old handler's address obtained
+when the vector was first capture.
+
+@subheading NOTES:
+
+This directive will not cause the calling task to be preempted.
+
+@c
+@c
+@c
+@page
+@subsection INTERRUPT_DISABLE - Disable Interrupts
+
+@cindex disable interrupts
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_interrupt_disable
+@example
+void rtems_interrupt_disable(
+ rtems_interrupt_level level
+);
+
+/* this is implemented as a macro and sets level as a side-effect */
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+function Interrupt_Disable
+return RTEMS.ISR_Level;
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+
+NONE
+
+@subheading DESCRIPTION:
+
+This directive disables all maskable interrupts and returns
+the previous @code{level}. A later invocation of the
+@code{@value{DIRPREFIX}interrupt_enable} directive should be used to
+restore the interrupt level.
+
+@subheading NOTES:
+
+This directive will not cause the calling task to be preempted.
+
+@ifset is-C
+@b{This directive is implemented as a macro which modifies the @code{level}
+parameter.}
+@end ifset
+
+@c
+@c
+@c
+@page
+@subsection INTERRUPT_ENABLE - Enable Interrupts
+
+@cindex enable interrupts
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_interrupt_enable
+@example
+void rtems_interrupt_enable(
+ rtems_interrupt_level level
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Interrupt_Enable (
+ Level : in RTEMS.ISR_Level
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+
+NONE
+
+@subheading DESCRIPTION:
+
+This directive enables maskable interrupts to the @code{level}
+which was returned by a previous call to
+@code{@value{DIRPREFIX}interrupt_disable}.
+Immediately prior to invoking this directive, maskable interrupts should
+be disabled by a call to @code{@value{DIRPREFIX}interrupt_disable}
+and will be enabled when this directive returns to the caller.
+
+@subheading NOTES:
+
+This directive will not cause the calling task to be preempted.
+
+
+@c
+@c
+@c
+@page
+@subsection INTERRUPT_FLASH - Flash Interrupts
+
+@cindex flash interrupts
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_interrupt_flash
+@example
+void rtems_interrupt_flash(
+ rtems_interrupt_level level
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Interrupt_Flash (
+ Level : in RTEMS.ISR_Level
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+
+NONE
+
+@subheading DESCRIPTION:
+
+This directive temporarily enables maskable interrupts to the @code{level}
+which was returned by a previous call to
+@code{@value{DIRPREFIX}interrupt_disable}.
+Immediately prior to invoking this directive, maskable interrupts should
+be disabled by a call to @code{@value{DIRPREFIX}interrupt_disable}
+and will be redisabled when this directive returns to the caller.
+
+@subheading NOTES:
+
+This directive will not cause the calling task to be preempted.
+
+@c
+@c
+@c
+@page
+@subsection INTERRUPT_IS_IN_PROGRESS - Is an ISR in Progress
+
+@cindex is interrupt in progress
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_interrupt_is_in_progress
+@example
+rtems_boolean rtems_interrupt_is_in_progress( void );
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+function Interrupt_Is_In_Progress
+return RTEMS.Boolean;
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+
+NONE
+
+@subheading DESCRIPTION:
+
+This directive returns @code{TRUE} if the processor is currently
+servicing an interrupt and @code{FALSE} otherwise. A return value
+of @code{TRUE} indicates that the caller is an interrupt service
+routine, @b{NOT} a task. The directives available to an interrupt
+service routine are restricted.
+
+@subheading NOTES:
+
+This directive will not cause the calling task to be preempted.
+
diff --git a/doc/user/io.t b/doc/user/io.t
new file mode 100644
index 0000000000..a22ef09a8f
--- /dev/null
+++ b/doc/user/io.t
@@ -0,0 +1,741 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@chapter I/O Manager
+
+@cindex device drivers
+@cindex IO Manager
+
+@section Introduction
+
+The input/output interface manager provides a
+well-defined mechanism for accessing device drivers and a
+structured methodology for organizing device drivers. The
+directives provided by the I/O manager are:
+
+@itemize @bullet
+@item @code{@value{DIRPREFIX}io_initialize} - Initialize a device driver
+@item @code{@value{DIRPREFIX}io_register_name} - Register a device name
+@item @code{@value{DIRPREFIX}io_lookup_name} - Look up a device name
+@item @code{@value{DIRPREFIX}io_open} - Open a device
+@item @code{@value{DIRPREFIX}io_close} - Close a device
+@item @code{@value{DIRPREFIX}io_read} - Read from a device
+@item @code{@value{DIRPREFIX}io_write} - Write to a device
+@item @code{@value{DIRPREFIX}io_control} - Special device services
+@end itemize
+
+@section Background
+
+@subsection Device Driver Table
+
+@cindex Device Driver Table
+
+Each application utilizing the RTEMS I/O manager must specify the
+address of a Device Driver Table in its Configuration Table. This table
+contains each device driver's entry points that is to be initialised by
+RTEMS during initialization. Each device driver may contain the
+following entry points:
+
+@itemize @bullet
+@item Initialization
+@item Open
+@item Close
+@item Read
+@item Write
+@item Control
+@end itemize
+
+If the device driver does not support a particular
+entry point, then that entry in the Configuration Table should
+be NULL. RTEMS will return
+@code{@value{RPREFIX}SUCCESSFUL} as the executive's and
+zero (0) as the device driver's return code for these device
+driver entry points.
+
+Applications can register and unregister drivers with the RTEMS I/O
+manager avoiding the need to have all drivers statically defined and
+linked into this table.
+
+The @file{confdefs.h} entry @code{CONFIGURE_MAXIMUM_DRIVERS} configures
+the number of driver slots available to the application.
+
+@subsection Major and Minor Device Numbers
+
+@cindex major device number
+@cindex minor device number
+
+Each call to the I/O manager must provide a device's
+major and minor numbers as arguments. The major number is the
+index of the requested driver's entry points in the Device
+Driver Table, and is used to select a specific device driver.
+The exact usage of the minor number is driver specific, but is
+commonly used to distinguish between a number of devices
+controlled by the same driver.
+
+@findex rtems_device_major_number
+@findex rtems_device_minor_number
+
+The data types @code{@value{DIRPREFIX}device_major_number} and
+@code{@value{DIRPREFIX}device_minor_number} are used to
+manipulate device major and minor numbers, respectively.
+
+@subsection Device Names
+
+@cindex device names
+
+The I/O Manager provides facilities to associate a
+name with a particular device. Directives are provided to
+register the name of a device and to look up the major/minor
+number pair associated with a device name.
+
+@subsection Device Driver Environment
+
+Application developers, as well as device driver
+developers, must be aware of the following regarding the RTEMS
+I/O Manager:
+
+@itemize @bullet
+@item A device driver routine executes in the context of the
+invoking task. Thus if the driver blocks, the invoking task
+blocks.
+
+@item The device driver is free to change the modes of the
+invoking task, although the driver should restore them to their
+original values.
+
+@item Device drivers may be invoked from ISRs.
+
+@item Only local device drivers are accessible through the I/O
+manager.
+
+@item A device driver routine may invoke all other RTEMS
+directives, including I/O directives, on both local and global
+objects.
+
+@end itemize
+
+Although the RTEMS I/O manager provides a framework
+for device drivers, it makes no assumptions regarding the
+construction or operation of a device driver.
+
+@subsection Runtime Driver Registration
+
+@cindex runtime driver registration
+
+Board support package and application developers can select wether a
+device driver is statically entered into the default device table or
+registered at runtime.
+
+Dynamic registration helps applications where:
+
+@enumerate
+@item The BSP and kernel libraries are common to a range of applications
+for a specific target platform. An application may be built upon a
+common library with all drivers. The application selects and registers
+the drivers. Uniform driver name lookup protects the application.
+@item The type and range of drivers may vary as the application probes a
+bus during initialization.
+@item Support for hot swap bus system such as Compact PCI.
+@item Support for runtime loadable driver modules.
+@end enumerate
+
+@subsection Device Driver Interface
+
+@cindex device driver interface
+
+When an application invokes an I/O manager directive,
+RTEMS determines which device driver entry point must be
+invoked. The information passed by the application to RTEMS is
+then passed to the correct device driver entry point. RTEMS
+will invoke each device driver entry point assuming it is
+compatible with the following prototype:
+
+@ifset is-C
+@example
+rtems_device_driver io_entry(
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void *argument_block
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+function IO_Entry (
+ Major : in RTEMS.Device_Major_Number;
+ Minor : in RTEMS.Device_Major_Number;
+ Argument_Block : in RTEMS.Address
+) return RTEMS.Status_Code;
+@end example
+@end ifset
+
+The format and contents of the parameter block are
+device driver and entry point dependent.
+
+It is recommended that a device driver avoid
+generating error codes which conflict with those used by
+application components. A common technique used to generate
+driver specific error codes is to make the most significant part
+of the status indicate a driver specific code.
+
+@subsection Device Driver Initialization
+
+RTEMS automatically initializes all device drivers
+when multitasking is initiated via the
+@code{@value{DIRPREFIX}initialize_executive}
+directive. RTEMS initializes the device drivers by invoking
+each device driver initialization entry point with the following
+parameters:
+
+@table @asis
+@item major
+the major device number for this device driver.
+
+@item minor
+zero.
+
+@item argument_block
+will point to the Configuration Table.
+
+@end table
+
+The returned status will be ignored by RTEMS. If the driver
+cannot successfully initialize the device, then it should invoke
+the fatal_error_occurred directive.
+
+@section Operations
+
+@subsection Register and Lookup Name
+
+The @code{@value{DIRPREFIX}io_register} directive associates a name with the
+specified device (i.e. major/minor number pair). Device names
+are typically registered as part of the device driver
+initialization sequence. The @code{@value{DIRPREFIX}io_lookup}
+directive is used to
+determine the major/minor number pair associated with the
+specified device name. The use of these directives frees the
+application from being dependent on the arbitrary assignment of
+major numbers in a particular application. No device naming
+conventions are dictated by RTEMS.
+
+@subsection Accessing an Device Driver
+
+The I/O manager provides directives which enable the
+application program to utilize device drivers in a standard
+manner. There is a direct correlation between the RTEMS I/O
+manager directives
+@code{@value{DIRPREFIX}io_initialize},
+@code{@value{DIRPREFIX}io_open},
+@code{@value{DIRPREFIX}io_close},
+@code{@value{DIRPREFIX}io_read},
+@code{@value{DIRPREFIX}io_write}, and
+@code{@value{DIRPREFIX}io_control}
+and the underlying device driver entry points.
+
+@section Directives
+
+This section details the I/O manager's directives. A
+subsection is dedicated to each of this manager's directives and
+describes the calling sequence, related constants, usage, and
+status codes.
+
+@c
+@c
+@c
+@page
+@subsection IO_REGISTER_DRIVER - Register a device driver
+
+@cindex register a device driver
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_io_register_driver
+@example
+rtems_status_code rtems_io_register_driver(
+ rtems_device_major_number major,
+ rtems_driver_address_table *driver_table,
+ rtems_device_major_number *registered_major
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+No Ada implementation.
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - successfully registered@*
+@code{@value{RPREFIX}INVALID_NUMBER} - invalid major device number@*
+@code{@value{RPREFIX}TOO_MANY} - no available major device table slot@*
+@code{@value{RPREFIX}RESOURCE_IN_USE} - major device number entry in use
+
+@subheading DESCRIPTION:
+
+This directive attempts to add a new device driver to the Device Driver
+Table. The user can specify a specific major device number via the
+directive's @code{major} parameter, or let the registration routine find
+the next available major device number by specifing a major number of
+@code{0}. The selected major device number is returned via the
+@code{registered_major} directive parameter. The directive automatically
+allocation major device numbers from the highest value down.
+
+This directive automatically invokes the IO_INITIALIZE directive if
+the driver address table has an initialization and open entry.
+
+The directive returns @value{RPREFIX}TOO_MANY if Device Driver Table is
+full, and @value{RPREFIX}RESOURCE_IN_USE if a specific major device
+number is requested and it is already in use.
+
+@subheading NOTES:
+
+The Device Driver Table size is specified in the Configuration Table
+condiguration. This needs to be set to maximum size the application
+requires.
+
+
+@c
+@c
+@c
+@page
+@subsection IO_UNREGISTER_DRIVER - Unregister a device driver
+
+@cindex unregister a device driver
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_io_unregister_driver
+@example
+rtems_status_code rtems_io_register_driver(
+ rtems_device_major_number major
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+No Ada implementation.
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - successfully registered@*
+@code{@value{RPREFIX}INVALID_NUMBER} - invalid major device number
+
+@subheading DESCRIPTION:
+
+This directive removes a device driver from the Device Driver Table.
+
+@subheading NOTES:
+
+Currently no specific checks are made and the driver is not closed.
+
+
+@c
+@c
+@c
+@page
+@subsection IO_INITIALIZE - Initialize a device driver
+
+@cindex initialize a device driver
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_io_initialize
+@example
+rtems_status_code rtems_io_initialize(
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void *argument
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure IO_Initialize (
+ Major : in RTEMS.Device_Major_Number;
+ Minor : in RTEMS.Device_Minor_Number;
+ Argument : in RTEMS.Address;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - successfully initialized@*
+@code{@value{RPREFIX}INVALID_NUMBER} - invalid major device number
+
+@subheading DESCRIPTION:
+
+This directive calls the device driver initialization
+routine specified in the Device Driver Table for this major
+number. This directive is automatically invoked for each device
+driver when multitasking is initiated via the
+initialize_executive directive.
+
+A device driver initialization module is responsible
+for initializing all hardware and data structures associated
+with a device. If necessary, it can allocate memory to be used
+during other operations.
+
+@subheading NOTES:
+
+This directive may or may not cause the calling task
+to be preempted. This is dependent on the device driver being
+initialized.
+
+@c
+@c
+@c
+@page
+@subsection IO_REGISTER_NAME - Register a device
+
+@cindex register device
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_io_register_name
+@example
+rtems_status_code rtems_io_register_name(
+ char *name,
+ rtems_device_major_number major,
+ rtems_device_minor_number minor
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure IO_Register_Name (
+ Name : in String;
+ Major : in RTEMS.Device_Major_Number;
+ Minor : in RTEMS.Device_Minor_Number;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - successfully initialized@*
+@code{@value{RPREFIX}TOO_MANY} - too many devices registered
+
+@subheading DESCRIPTION:
+
+This directive associates name with the specified
+major/minor number pair.
+
+@subheading NOTES:
+
+This directive will not cause the calling task to be
+preempted.
+
+@c
+@c
+@c
+@page
+@subsection IO_LOOKUP_NAME - Lookup a device
+
+@cindex lookup device major and minor number
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_io_lookup_name
+@example
+rtems_status_code rtems_io_lookup_name(
+ const char *name,
+ rtems_driver_name_t *device_info
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure IO_Lookup_Name (
+ Name : in String;
+ Device_Info : out RTEMS.Driver_Name_t_Pointer;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - successfully initialized@*
+@code{@value{RPREFIX}UNSATISFIED} - name not registered
+
+@subheading DESCRIPTION:
+
+This directive returns the major/minor number pair
+associated with the given device name in @code{device_info}.
+
+@subheading NOTES:
+
+This directive will not cause the calling task to be
+preempted.
+
+@c
+@c
+@c
+@page
+@subsection IO_OPEN - Open a device
+
+@cindex open a devive
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_io_open
+@example
+rtems_status_code rtems_io_open(
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void *argument
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure IO_Open (
+ Major : in RTEMS.Device_Major_Number;
+ Minor : in RTEMS.Device_Minor_Number;
+ Argument : in RTEMS.Address;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - successfully initialized@*
+@code{@value{RPREFIX}INVALID_NUMBER} - invalid major device number
+
+@subheading DESCRIPTION:
+
+This directive calls the device driver open routine
+specified in the Device Driver Table for this major number. The
+open entry point is commonly used by device drivers to provide
+exclusive access to a device.
+
+@subheading NOTES:
+
+This directive may or may not cause the calling task
+to be preempted. This is dependent on the device driver being
+invoked.
+
+@c
+@c
+@c
+@page
+@subsection IO_CLOSE - Close a device
+
+@cindex close a device
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_io_close
+@example
+rtems_status_code rtems_io_close(
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void *argument
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure IO_Close (
+ Major : in RTEMS.Device_Major_Number;
+ Minor : in RTEMS.Device_Minor_Number;
+ Argument : in RTEMS.Address;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - successfully initialized@*
+@code{@value{RPREFIX}INVALID_NUMBER} - invalid major device number
+
+@subheading DESCRIPTION:
+
+This directive calls the device driver close routine
+specified in the Device Driver Table for this major number. The
+close entry point is commonly used by device drivers to
+relinquish exclusive access to a device.
+
+@subheading NOTES:
+
+This directive may or may not cause the calling task
+to be preempted. This is dependent on the device driver being
+invoked.
+
+@c
+@c
+@c
+@page
+@subsection IO_READ - Read from a device
+
+@cindex read from a device
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_io_read
+@example
+rtems_status_code rtems_io_read(
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void *argument
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure IO_Read (
+ Major : in RTEMS.Device_Major_Number;
+ Minor : in RTEMS.Device_Minor_Number;
+ Argument : in RTEMS.Address;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - successfully initialized@*
+@code{@value{RPREFIX}INVALID_NUMBER} - invalid major device number
+
+@subheading DESCRIPTION:
+
+This directive calls the device driver read routine
+specified in the Device Driver Table for this major number.
+Read operations typically require a buffer address as part of
+the argument parameter block. The contents of this buffer will
+be replaced with data from the device.
+
+@subheading NOTES:
+
+This directive may or may not cause the calling task
+to be preempted. This is dependent on the device driver being
+invoked.
+
+@c
+@c
+@c
+@page
+@subsection IO_WRITE - Write to a device
+
+@cindex write to a device
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_io_write
+@example
+rtems_status_code rtems_io_write(
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void *argument
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure IO_Write (
+ Major : in RTEMS.Device_Major_Number;
+ Minor : in RTEMS.Device_Minor_Number;
+ Argument : in RTEMS.Address;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - successfully initialized@*
+@code{@value{RPREFIX}INVALID_NUMBER} - invalid major device number
+
+@subheading DESCRIPTION:
+
+This directive calls the device driver write routine
+specified in the Device Driver Table for this major number.
+Write operations typically require a buffer address as part of
+the argument parameter block. The contents of this buffer will
+be sent to the device.
+
+@subheading NOTES:
+
+This directive may or may not cause the calling task
+to be preempted. This is dependent on the device driver being
+invoked.
+
+@c
+@c
+@c
+@page
+@subsection IO_CONTROL - Special device services
+
+@cindex special device services
+@cindex IO Control
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_io_control
+@example
+rtems_status_code rtems_io_control(
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void *argument
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure IO_Control (
+ Major : in RTEMS.Device_Major_Number;
+ Minor : in RTEMS.Device_Minor_Number;
+ Argument : in RTEMS.Address;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - successfully initialized@*
+@code{@value{RPREFIX}INVALID_NUMBER} - invalid major device number
+
+@subheading DESCRIPTION:
+
+This directive calls the device driver I/O control
+routine specified in the Device Driver Table for this major
+number. The exact functionality of the driver entry called by
+this directive is driver dependent. It should not be assumed
+that the control entries of two device drivers are compatible.
+For example, an RS-232 driver I/O control operation may change
+the baud rate of a serial line, while an I/O control operation
+for a floppy disk driver may cause a seek operation.
+
+@subheading NOTES:
+
+This directive may or may not cause the calling task
+to be preempted. This is dependent on the device driver being
+invoked.
+
+
+
diff --git a/doc/user/mp.t b/doc/user/mp.t
new file mode 100644
index 0000000000..7114151593
--- /dev/null
+++ b/doc/user/mp.t
@@ -0,0 +1,621 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@chapter Multiprocessing Manager
+
+@cindex multiprocessing
+
+@section Introduction
+
+In multiprocessor real-time systems, new
+requirements, such as sharing data and global resources between
+processors, are introduced. This requires an efficient and
+reliable communications vehicle which allows all processors to
+communicate with each other as necessary. In addition, the
+ramifications of multiple processors affect each and every
+characteristic of a real-time system, almost always making them
+more complicated.
+
+RTEMS addresses these issues by providing simple and
+flexible real-time multiprocessing capabilities. The executive
+easily lends itself to both tightly-coupled and loosely-coupled
+configurations of the target system hardware. In addition,
+RTEMS supports systems composed of both homogeneous and
+heterogeneous mixtures of processors and target boards.
+
+A major design goal of the RTEMS executive was to
+transcend the physical boundaries of the target hardware
+configuration. This goal is achieved by presenting the
+application software with a logical view of the target system
+where the boundaries between processor nodes are transparent.
+As a result, the application developer may designate objects
+such as tasks, queues, events, signals, semaphores, and memory
+blocks as global objects. These global objects may then be
+accessed by any task regardless of the physical location of the
+object and the accessing task. RTEMS automatically determines
+that the object being accessed resides on another processor and
+performs the actions required to access the desired object.
+Simply stated, RTEMS allows the entire system, both hardware and
+software, to be viewed logically as a single system.
+
+@section Background
+
+@cindex multiprocessing topologies
+
+RTEMS makes no assumptions regarding the connection
+media or topology of a multiprocessor system. The tasks which
+compose a particular application can be spread among as many
+processors as needed to satisfy the application's timing
+requirements. The application tasks can interact using a subset
+of the RTEMS directives as if they were on the same processor.
+These directives allow application tasks to exchange data,
+communicate, and synchronize regardless of which processor they
+reside upon.
+
+The RTEMS multiprocessor execution model is multiple
+instruction streams with multiple data streams (MIMD). This
+execution model has each of the processors executing code
+independent of the other processors. Because of this
+parallelism, the application designer can more easily guarantee
+deterministic behavior.
+
+By supporting heterogeneous environments, RTEMS
+allows the systems designer to select the most efficient
+processor for each subsystem of the application. Configuring
+RTEMS for a heterogeneous environment is no more difficult than
+for a homogeneous one. In keeping with RTEMS philosophy of
+providing transparent physical node boundaries, the minimal
+heterogeneous processing required is isolated in the MPCI layer.
+
+@subsection Nodes
+
+@cindex nodes, definition
+
+A processor in a RTEMS system is referred to as a
+node. Each node is assigned a unique non-zero node number by
+the application designer. RTEMS assumes that node numbers are
+assigned consecutively from one to the @code{maximum_nodes}
+configuration parameter. The node
+number, node, and the maximum number of nodes, maximum_nodes, in
+a system are found in the Multiprocessor Configuration Table.
+The maximum_nodes field and the number of global objects,
+maximum_global_objects, is required to be the same on all nodes
+in a system.
+
+The node number is used by RTEMS to identify each
+node when performing remote operations. Thus, the
+Multiprocessor Communications Interface Layer (MPCI) must be
+able to route messages based on the node number.
+
+@subsection Global Objects
+
+@cindex global objects, definition
+
+All RTEMS objects which are created with the GLOBAL
+attribute will be known on all other nodes. Global objects can
+be referenced from any node in the system, although certain
+directive specific restrictions (e.g. one cannot delete a remote
+object) may apply. A task does not have to be global to perform
+operations involving remote objects. The maximum number of
+global objects is the system is user configurable and can be
+found in the maximum_global_objects field in the Multiprocessor
+Configuration Table. The distribution of tasks to processors is
+performed during the application design phase. Dynamic task
+relocation is not supported by RTEMS.
+
+@subsection Global Object Table
+
+@cindex global objects table
+
+RTEMS maintains two tables containing object
+information on every node in a multiprocessor system: a local
+object table and a global object table. The local object table
+on each node is unique and contains information for all objects
+created on this node whether those objects are local or global.
+The global object table contains information regarding all
+global objects in the system and, consequently, is the same on
+every node.
+
+Since each node must maintain an identical copy of
+the global object table, the maximum number of entries in each
+copy of the table must be the same. The maximum number of
+entries in each copy is determined by the
+maximum_global_objects parameter in the Multiprocessor
+Configuration Table. This parameter, as well as the
+maximum_nodes parameter, is required to be the same on all
+nodes. To maintain consistency among the table copies, every
+node in the system must be informed of the creation or deletion
+of a global object.
+
+@subsection Remote Operations
+
+@cindex MPCI and remote operations
+
+When an application performs an operation on a remote
+global object, RTEMS must generate a Remote Request (RQ) message
+and send it to the appropriate node. After completing the
+requested operation, the remote node will build a Remote
+Response (RR) message and send it to the originating node.
+Messages generated as a side-effect of a directive (such as
+deleting a global task) are known as Remote Processes (RP) and
+do not require the receiving node to respond.
+
+Other than taking slightly longer to execute
+directives on remote objects, the application is unaware of the
+location of the objects it acts upon. The exact amount of
+overhead required for a remote operation is dependent on the
+media connecting the nodes and, to a lesser degree, on the
+efficiency of the user-provided MPCI routines.
+
+The following shows the typical transaction sequence
+during a remote application:
+
+@enumerate
+
+@item The application issues a directive accessing a
+remote global object.
+
+@item RTEMS determines the node on which the object
+resides.
+
+@item RTEMS calls the user-provided MPCI routine
+GET_PACKET to obtain a packet in which to build a RQ message.
+
+@item After building a message packet, RTEMS calls the
+user-provided MPCI routine SEND_PACKET to transmit the packet to
+the node on which the object resides (referred to as the
+destination node).
+
+@item The calling task is blocked until the RR message
+arrives, and control of the processor is transferred to another
+task.
+
+@item The MPCI layer on the destination node senses the
+arrival of a packet (commonly in an ISR), and calls the
+@code{@value{DIRPREFIX}multiprocessing_announce}
+directive. This directive readies the Multiprocessing Server.
+
+@item The Multiprocessing Server calls the user-provided
+MPCI routine RECEIVE_PACKET, performs the requested operation,
+builds an RR message, and returns it to the originating node.
+
+@item The MPCI layer on the originating node senses the
+arrival of a packet (typically via an interrupt), and calls the RTEMS
+@code{@value{DIRPREFIX}multiprocessing_announce} directive. This directive
+readies the Multiprocessing Server.
+
+@item The Multiprocessing Server calls the user-provided
+MPCI routine RECEIVE_PACKET, readies the original requesting
+task, and blocks until another packet arrives. Control is
+transferred to the original task which then completes processing
+of the directive.
+
+@end enumerate
+
+If an uncorrectable error occurs in the user-provided
+MPCI layer, the fatal error handler should be invoked. RTEMS
+assumes the reliable transmission and reception of messages by
+the MPCI and makes no attempt to detect or correct errors.
+
+@subsection Proxies
+
+@cindex proxy, definition
+
+A proxy is an RTEMS data structure which resides on a
+remote node and is used to represent a task which must block as
+part of a remote operation. This action can occur as part of the
+@code{@value{DIRPREFIX}semaphore_obtain} and
+@code{@value{DIRPREFIX}message_queue_receive} directives. If the
+object were local, the task's control block would be available
+for modification to indicate it was blocking on a message queue
+or semaphore. However, the task's control block resides only on
+the same node as the task. As a result, the remote node must
+allocate a proxy to represent the task until it can be readied.
+
+The maximum number of proxies is defined in the
+Multiprocessor Configuration Table. Each node in a
+multiprocessor system may require a different number of proxies
+to be configured. The distribution of proxy control blocks is
+application dependent and is different from the distribution of
+tasks.
+
+@subsection Multiprocessor Configuration Table
+
+The Multiprocessor Configuration Table contains
+information needed by RTEMS when used in a multiprocessor
+system. This table is discussed in detail in the section
+Multiprocessor Configuration Table of the Configuring a System
+chapter.
+
+@section Multiprocessor Communications Interface Layer
+
+The Multiprocessor Communications Interface Layer
+(MPCI) is a set of user-provided procedures which enable the
+nodes in a multiprocessor system to communicate with one
+another. These routines are invoked by RTEMS at various times
+in the preparation and processing of remote requests.
+Interrupts are enabled when an MPCI procedure is invoked. It is
+assumed that if the execution mode and/or interrupt level are
+altered by the MPCI layer, that they will be restored prior to
+returning to RTEMS.
+
+@cindex MPCI, definition
+
+The MPCI layer is responsible for managing a pool of
+buffers called packets and for sending these packets between
+system nodes. Packet buffers contain the messages sent between
+the nodes. Typically, the MPCI layer will encapsulate the
+packet within an envelope which contains the information needed
+by the MPCI layer. The number of packets available is dependent
+on the MPCI layer implementation.
+
+@cindex MPCI entry points
+
+The entry points to the routines in the user's MPCI
+layer should be placed in the Multiprocessor Communications
+Interface Table. The user must provide entry points for each of
+the following table entries in a multiprocessor system:
+
+@itemize @bullet
+@item initialization initialize the MPCI
+@item get_packet obtain a packet buffer
+@item return_packet return a packet buffer
+@item send_packet send a packet to another node
+@item receive_packet called to get an arrived packet
+@end itemize
+
+A packet is sent by RTEMS in each of the following situations:
+
+@itemize @bullet
+@item an RQ is generated on an originating node;
+@item an RR is generated on a destination node;
+@item a global object is created;
+@item a global object is deleted;
+@item a local task blocked on a remote object is deleted;
+@item during system initialization to check for system consistency.
+@end itemize
+
+If the target hardware supports it, the arrival of a
+packet at a node may generate an interrupt. Otherwise, the
+real-time clock ISR can check for the arrival of a packet. In
+any case, the
+@code{@value{DIRPREFIX}multiprocessing_announce} directive must be called
+to announce the arrival of a packet. After exiting the ISR,
+control will be passed to the Multiprocessing Server to process
+the packet. The Multiprocessing Server will call the get_packet
+entry to obtain a packet buffer and the receive_entry entry to
+copy the message into the buffer obtained.
+
+@subsection INITIALIZATION
+
+The INITIALIZATION component of the user-provided
+MPCI layer is called as part of the @code{@value{DIRPREFIX}initialize_executive}
+directive to initialize the MPCI layer and associated hardware.
+It is invoked immediately after all of the device drivers have
+been initialized. This component should be adhere to the
+following prototype:
+
+@ifset is-C
+@findex rtems_mpci_entry
+@example
+@group
+rtems_mpci_entry user_mpci_initialization(
+ rtems_configuration_table *configuration
+);
+@end group
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure User_MPCI_Initialization (
+ Configuration : in RTEMS.Configuration_Table_Pointer
+);
+@end example
+@end ifset
+
+where configuration is the address of the user's
+Configuration Table. Operations on global objects cannot be
+performed until this component is invoked. The INITIALIZATION
+component is invoked only once in the life of any system. If
+the MPCI layer cannot be successfully initialized, the fatal
+error manager should be invoked by this routine.
+
+One of the primary functions of the MPCI layer is to
+provide the executive with packet buffers. The INITIALIZATION
+routine must create and initialize a pool of packet buffers.
+There must be enough packet buffers so RTEMS can obtain one
+whenever needed.
+
+@subsection GET_PACKET
+
+The GET_PACKET component of the user-provided MPCI
+layer is called when RTEMS must obtain a packet buffer to send
+or broadcast a message. This component should be adhere to the
+following prototype:
+
+@ifset is-C
+@example
+@group
+rtems_mpci_entry user_mpci_get_packet(
+ rtems_packet_prefix **packet
+);
+@end group
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure User_MPCI_Get_Packet (
+ Packet : access RTEMS.Packet_Prefix_Pointer
+);
+@end example
+@end ifset
+
+where packet is the address of a pointer to a packet.
+This routine always succeeds and, upon return, packet will
+contain the address of a packet. If for any reason, a packet
+cannot be successfully obtained, then the fatal error manager
+should be invoked.
+
+RTEMS has been optimized to avoid the need for
+obtaining a packet each time a message is sent or broadcast.
+For example, RTEMS sends response messages (RR) back to the
+originator in the same packet in which the request message (RQ)
+arrived.
+
+@subsection RETURN_PACKET
+
+The RETURN_PACKET component of the user-provided MPCI
+layer is called when RTEMS needs to release a packet to the free
+packet buffer pool. This component should be adhere to the
+following prototype:
+
+@ifset is-C
+@example
+@group
+rtems_mpci_entry user_mpci_return_packet(
+ rtems_packet_prefix *packet
+);
+@end group
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure User_MPCI_Return_Packet (
+ Packet : in RTEMS.Packet_Prefix_Pointer
+);
+@end example
+@end ifset
+
+where packet is the address of a packet. If the
+packet cannot be successfully returned, the fatal error manager
+should be invoked.
+
+@subsection RECEIVE_PACKET
+
+The RECEIVE_PACKET component of the user-provided
+MPCI layer is called when RTEMS needs to obtain a packet which
+has previously arrived. This component should be adhere to the
+following prototype:
+
+@ifset is-C
+@example
+@group
+rtems_mpci_entry user_mpci_receive_packet(
+ rtems_packet_prefix **packet
+);
+@end group
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure User_MPCI_Receive_Packet (
+ Packet : access RTEMS.Packet_Prefix_Pointer
+);
+@end example
+@end ifset
+
+where packet is a pointer to the address of a packet
+to place the message from another node. If a message is
+available, then packet will contain the address of the message
+from another node. If no messages are available, this entry
+packet should contain NULL.
+
+@subsection SEND_PACKET
+
+The SEND_PACKET component of the user-provided MPCI
+layer is called when RTEMS needs to send a packet containing a
+message to another node. This component should be adhere to the
+following prototype:
+
+@ifset is-C
+@example
+@group
+rtems_mpci_entry user_mpci_send_packet(
+ rtems_unsigned32 node,
+ rtems_packet_prefix **packet
+);
+@end group
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure User_MPCI_Send_Packet (
+ Node : in RTEMS.Unsigned32;
+ Packet : access RTEMS.Packet_Prefix_Pointer
+);
+@end example
+@end ifset
+
+where node is the node number of the destination and packet is the
+address of a packet which containing a message. If the packet cannot
+be successfully sent, the fatal error manager should be invoked.
+
+If node is set to zero, the packet is to be
+broadcasted to all other nodes in the system. Although some
+MPCI layers will be built upon hardware which support a
+broadcast mechanism, others may be required to generate a copy
+of the packet for each node in the system.
+
+@c XXX packet_prefix structure needs to be defined in this document
+Many MPCI layers use the @code{packet_length} field of the
+@code{@value{DIRPREFIX}packet_prefix} portion
+of the packet to avoid sending unnecessary data. This is especially
+useful if the media connecting the nodes is relatively slow.
+
+The to_convert field of the MP_packet_prefix portion of the packet indicates
+how much of the packet (in @code{@value{DIRPREFIX}unsigned32}'s) may require
+conversion in a heterogeneous system.
+
+@subsection Supporting Heterogeneous Environments
+
+@cindex heterogeneous multiprocessing
+
+Developing an MPCI layer for a heterogeneous system
+requires a thorough understanding of the differences between the
+processors which comprise the system. One difficult problem is
+the varying data representation schemes used by different
+processor types. The most pervasive data representation problem
+is the order of the bytes which compose a data entity.
+Processors which place the least significant byte at the
+smallest address are classified as little endian processors.
+Little endian byte-ordering is shown below:
+
+
+@example
+@group
++---------------+----------------+---------------+----------------+
+| | | | |
+| Byte 3 | Byte 2 | Byte 1 | Byte 0 |
+| | | | |
++---------------+----------------+---------------+----------------+
+@end group
+@end example
+
+Conversely, processors which place the most
+significant byte at the smallest address are classified as big
+endian processors. Big endian byte-ordering is shown below:
+
+@example
+@group
++---------------+----------------+---------------+----------------+
+| | | | |
+| Byte 0 | Byte 1 | Byte 2 | Byte 3 |
+| | | | |
++---------------+----------------+---------------+----------------+
+@end group
+@end example
+
+Unfortunately, sharing a data structure between big
+endian and little endian processors requires translation into a
+common endian format. An application designer typically chooses
+the common endian format to minimize conversion overhead.
+
+Another issue in the design of shared data structures
+is the alignment of data structure elements. Alignment is both
+processor and compiler implementation dependent. For example,
+some processors allow data elements to begin on any address
+boundary, while others impose restrictions. Common restrictions
+are that data elements must begin on either an even address or
+on a long word boundary. Violation of these restrictions may
+cause an exception or impose a performance penalty.
+
+Other issues which commonly impact the design of
+shared data structures include the representation of floating
+point numbers, bit fields, decimal data, and character strings.
+In addition, the representation method for negative integers
+could be one's or two's complement. These factors combine to
+increase the complexity of designing and manipulating data
+structures shared between processors.
+
+RTEMS addressed these issues in the design of the
+packets used to communicate between nodes. The RTEMS packet
+format is designed to allow the MPCI layer to perform all
+necessary conversion without burdening the developer with the
+details of the RTEMS packet format. As a result, the MPCI layer
+must be aware of the following:
+
+@itemize @bullet
+@item All packets must begin on a four byte boundary.
+
+@item Packets are composed of both RTEMS and application data.
+All RTEMS data is treated as thirty-two (32) bit unsigned
+quantities and is in the first @code{@value{RPREFIX}MINIMUM_UNSIGNED32S_TO_CONVERT}
+thirty-two (32) quantities of the packet.
+
+@item The RTEMS data component of the packet must be in native
+endian format. Endian conversion may be performed by either the
+sending or receiving MPCI layer.
+
+@item RTEMS makes no assumptions regarding the application
+data component of the packet.
+@end itemize
+
+@section Operations
+
+@subsection Announcing a Packet
+
+The @code{@value{DIRPREFIX}multiprocessing_announce} directive is called by
+the MPCI layer to inform RTEMS that a packet has arrived from
+another node. This directive can be called from an interrupt
+service routine or from within a polling routine.
+
+@section Directives
+
+This section details the additional directives
+required to support RTEMS in a multiprocessor configuration. A
+subsection is dedicated to each of this manager's directives and
+describes the calling sequence, related constants, usage, and
+status codes.
+
+@c
+@c
+@c
+@page
+@subsection MULTIPROCESSING_ANNOUNCE - Announce the arrival of a packet
+
+@cindex announce arrival of package
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_multiprocessing_announce
+@example
+void rtems_multiprocessing_announce( void );
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Multiprocessing_Announce;
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+
+NONE
+
+@subheading DESCRIPTION:
+
+This directive informs RTEMS that a multiprocessing
+communications packet has arrived from another node. This
+directive is called by the user-provided MPCI, and is only used
+in multiprocessor configurations.
+
+@subheading NOTES:
+
+This directive is typically called from an ISR.
+
+This directive will almost certainly cause the
+calling task to be preempted.
+
+This directive does not generate activity on remote nodes.
diff --git a/doc/user/msg.t b/doc/user/msg.t
new file mode 100644
index 0000000000..03d2150e3c
--- /dev/null
+++ b/doc/user/msg.t
@@ -0,0 +1,834 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@chapter Message Manager
+
+@cindex messages
+@cindex message queues
+
+@section Introduction
+
+The message manager provides communication and
+synchronization capabilities using RTEMS message queues. The
+directives provided by the message manager are:
+
+@itemize @bullet
+@item @code{@value{DIRPREFIX}message_queue_create} - Create a queue
+@item @code{@value{DIRPREFIX}message_queue_ident} - Get ID of a queue
+@item @code{@value{DIRPREFIX}message_queue_delete} - Delete a queue
+@item @code{@value{DIRPREFIX}message_queue_send} - Put message at rear of a queue
+@item @code{@value{DIRPREFIX}message_queue_urgent} - Put message at front of a queue
+@item @code{@value{DIRPREFIX}message_queue_broadcast} - Broadcast N messages to a queue
+@item @code{@value{DIRPREFIX}message_queue_receive} - Receive message from a queue
+@item @code{@value{DIRPREFIX}message_queue_get_number_pending} - Get number of messages pending on a queue
+@item @code{@value{DIRPREFIX}message_queue_flush} - Flush all messages on a queue
+@end itemize
+
+@section Background
+
+@subsection Messages
+
+A message is a variable length buffer where
+information can be stored to support communication. The length
+of the message and the information stored in that message are
+user-defined and can be actual data, pointer(s), or empty.
+
+@subsection Message Queues
+
+A message queue permits the passing of messages among
+tasks and ISRs. Message queues can contain a variable number of
+messages. Normally messages are sent to and received from the
+queue in FIFO order using the @code{@value{DIRPREFIX}message_queue_send}
+directive. However, the @code{@value{DIRPREFIX}message_queue_urgent}
+directive can be used to place
+messages at the head of a queue in LIFO order.
+
+Synchronization can be accomplished when a task can
+wait for a message to arrive at a queue. Also, a task may poll
+a queue for the arrival of a message.
+
+The maximum length message which can be sent is set
+on a per message queue basis.
+
+@subsection Building a Message Queue Attribute Set
+
+@cindex message queue attributes
+
+In general, an attribute set is built by a bitwise OR
+of the desired attribute components. The set of valid message
+queue attributes is provided in the following table:
+
+@itemize @bullet
+@item @code{@value{RPREFIX}FIFO} - tasks wait by FIFO (default)
+@item @code{@value{RPREFIX}PRIORITY} - tasks wait by priority
+@item @code{@value{RPREFIX}LOCAL} - local message queue (default)
+@item @code{@value{RPREFIX}GLOBAL} - global message queue
+@end itemize
+
+
+An attribute listed as a default is not required to
+appear in the attribute list, although it is a good programming
+practice to specify default attributes. If all defaults are
+desired, the attribute @code{@value{RPREFIX}DEFAULT_ATTRIBUTES}
+should be specified on this call.
+
+This example demonstrates the attribute_set parameter
+needed to create a local message queue with the task priority
+waiting queue discipline. The attribute_set parameter to the
+@code{@value{DIRPREFIX}message_queue_create} directive could be either
+@code{@value{RPREFIX}PRIORITY} or
+@code{@value{RPREFIX}LOCAL @value{OR} @value{RPREFIX}PRIORITY}.
+The attribute_set parameter can be set to @code{@value{RPREFIX}PRIORITY}
+because @code{@value{RPREFIX}LOCAL} is the default for all created
+message queues. If a similar message queue were to be known globally, then the
+attribute_set parameter would be
+@code{@value{RPREFIX}GLOBAL @value{OR} @value{RPREFIX}PRIORITY}.
+
+@subsection Building a MESSAGE_QUEUE_RECEIVE Option Set
+
+In general, an option is built by a bitwise OR of the
+desired option components. The set of valid options for the
+@code{@value{DIRPREFIX}message_queue_receive} directive are
+listed in the following table:
+
+@itemize @bullet
+@item @code{@value{RPREFIX}WAIT} - task will wait for a message (default)
+@item @code{@value{RPREFIX}NO_WAIT} - task should not wait
+@end itemize
+
+An option listed as a default is not required to
+appear in the option OR list, although it is a good programming
+practice to specify default options. If all defaults are
+desired, the option @code{@value{RPREFIX}DEFAULT_OPTIONS} should
+be specified on this call.
+
+This example demonstrates the option parameter needed
+to poll for a message to arrive. The option parameter passed to
+the @code{@value{DIRPREFIX}message_queue_receive} directive should
+be @code{@value{RPREFIX}NO_WAIT}.
+
+@section Operations
+
+@subsection Creating a Message Queue
+
+The @code{@value{DIRPREFIX}message_queue_create} directive creates a message
+queue with the user-defined name. The user specifies the
+maximum message size and maximum number of messages which can be
+placed in the message queue at one time. The user may select
+FIFO or task priority as the method for placing waiting tasks in
+the task wait queue. RTEMS allocates a Queue Control Block
+(QCB) from the QCB free list to maintain the newly created queue
+as well as memory for the message buffer pool associated with
+this message queue. RTEMS also generates a message queue ID
+which is returned to the calling task.
+
+For GLOBAL message queues, the maximum message size
+is effectively limited to the longest message which the MPCI is
+capable of transmitting.
+
+@subsection Obtaining Message Queue IDs
+
+When a message queue is created, RTEMS generates a
+unique message queue ID. The message queue ID may be obtained
+by either of two methods. First, as the result of an invocation
+of the @code{@value{DIRPREFIX}message_queue_create} directive, the
+queue ID is stored in a user provided location. Second, the queue
+ID may be obtained later using the @code{@value{DIRPREFIX}message_queue_ident}
+directive. The queue ID is used by other message manager
+directives to access this message queue.
+
+@subsection Receiving a Message
+
+The @code{@value{DIRPREFIX}message_queue_receive} directive attempts to
+retrieve a message from the specified message queue. If at
+least one message is in the queue, then the message is removed
+from the queue, copied to the caller's message buffer, and
+returned immediately along with the length of the message. When
+messages are unavailable, one of the following situations
+applies:
+
+@itemize @bullet
+@item By default, the calling task will wait forever for the
+message to arrive.
+
+@item Specifying the @code{@value{RPREFIX}NO_WAIT} option forces an immediate return
+with an error status code.
+
+@item Specifying a timeout limits the period the task will
+wait before returning with an error status.
+@end itemize
+
+If the task waits for a message, then it is placed in
+the message queue's task wait queue in either FIFO or task
+priority order. All tasks waiting on a message queue are
+returned an error code when the message queue is deleted.
+
+@subsection Sending a Message
+
+Messages can be sent to a queue with the
+@code{@value{DIRPREFIX}message_queue_send} and
+@code{@value{DIRPREFIX}message_queue_urgent} directives. These
+directives work identically when tasks are waiting to receive a
+message. A task is removed from the task waiting queue,
+unblocked, and the message is copied to a waiting task's
+message buffer.
+
+When no tasks are waiting at the queue,
+@code{@value{DIRPREFIX}message_queue_send} places the
+message at the rear of the message queue, while
+@code{@value{DIRPREFIX}message_queue_urgent} places the message at the
+front of the queue. The message is copied to a message buffer
+from this message queue's buffer pool and then placed in the
+message queue. Neither directive can successfully send a
+message to a message queue which has a full queue of pending
+messages.
+
+@subsection Broadcasting a Message
+
+The @code{@value{DIRPREFIX}message_queue_broadcast} directive sends the same
+message to every task waiting on the specified message queue as
+an atomic operation. The message is copied to each waiting
+task's message buffer and each task is unblocked. The number of
+tasks which were unblocked is returned to the caller.
+
+@subsection Deleting a Message Queue
+
+The @code{@value{DIRPREFIX}message_queue_delete} directive removes a message
+queue from the system and frees its control block as well as the
+memory associated with this message queue's message buffer pool.
+A message queue can be deleted by any local task that knows the
+message queue's ID. As a result of this directive, all tasks
+blocked waiting to receive a message from the message queue will
+be readied and returned a status code which indicates that the
+message queue was deleted. Any subsequent references to the
+message queue's name and ID are invalid. Any messages waiting
+at the message queue are also deleted and deallocated.
+
+@section Directives
+
+This section details the message manager's
+directives. A subsection is dedicated to each of this manager's
+directives and describes the calling sequence, related
+constants, usage, and status codes.
+
+@c
+@c
+@c
+@page
+@subsection MESSAGE_QUEUE_CREATE - Create a queue
+
+@cindex create a message queue
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_message_queue_create
+@example
+rtems_status_code rtems_message_queue_create(
+ rtems_name name,
+ rtems_unsigned32 count,
+ rtems_unsigned32 max_message_size,
+ rtems_attribute attribute_set,
+ rtems_id *id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Message_Queue_Create (
+ Name : in RTEMS.Name;
+ Count : in RTEMS.Unsigned32;
+ Max_Message_Size : in RTEMS.Unsigned32;
+ Attribute_Set : in RTEMS.Attribute;
+ ID : out RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - queue created successfully@*
+@code{@value{RPREFIX}INVALID_NAME} - invalid task name@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{id} is NULL@*
+@code{@value{RPREFIX}INVALID_NUMBER} - invalid message count@*
+@code{@value{RPREFIX}INVALID_SIZE} - invalid message size@*
+@code{@value{RPREFIX}TOO_MANY} - too many queues created@*
+@code{@value{RPREFIX}MP_NOT_CONFIGURED} - multiprocessing not configured@*
+@code{@value{RPREFIX}TOO_MANY} - too many global objects
+
+@subheading DESCRIPTION:
+
+This directive creates a message queue which resides
+on the local node with the user-defined name specified in name.
+For control and maintenance of the queue, RTEMS allocates and
+initializes a QCB. Memory is allocated from the RTEMS Workspace
+for the specified count of messages, each of max_message_size
+bytes in length. The RTEMS-assigned queue id, returned in id,
+is used to access the message queue.
+
+Specifying @code{@value{RPREFIX}PRIORITY} in attribute_set causes tasks
+waiting for a message to be serviced according to task priority.
+When @code{@value{RPREFIX}FIFO} is specified, waiting tasks are serviced in First
+In-First Out order.
+
+@subheading NOTES:
+
+This directive will not cause the calling task to be
+preempted.
+
+The following message queue attribute constants are
+defined by RTEMS:
+
+@itemize @bullet
+@item @code{@value{RPREFIX}FIFO} - tasks wait by FIFO (default)
+@item @code{@value{RPREFIX}PRIORITY} - tasks wait by priority
+@item @code{@value{RPREFIX}LOCAL} - local message queue (default)
+@item @code{@value{RPREFIX}GLOBAL} - global message queue
+@end itemize
+
+Message queues should not be made global unless
+remote tasks must interact with the created message queue. This
+is to avoid the system overhead incurred by the creation of a
+global message queue. When a global message queue is created,
+the message queue's name and id must be transmitted to every
+node in the system for insertion in the local copy of the global
+object table.
+
+For GLOBAL message queues, the maximum message size
+is effectively limited to the longest message which the MPCI is
+capable of transmitting.
+
+The total number of global objects, including message
+queues, is limited by the maximum_global_objects field in the
+configuration table.
+
+@c
+@c
+@c
+@page
+@subsection MESSAGE_QUEUE_IDENT - Get ID of a queue
+
+@cindex get ID of a message queue
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_message_queue_ident
+@example
+rtems_status_code rtems_message_queue_ident(
+ rtems_name name,
+ rtems_unsigned32 node,
+ rtems_id *id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Message_Queue_Ident (
+ Name : in RTEMS.Name;
+ Node : in RTEMS.Unsigned32;
+ ID : out RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - queue identified successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{id} is NULL@*
+@code{@value{RPREFIX}INVALID_NAME} - queue name not found@*
+@code{@value{RPREFIX}INVALID_NODE} - invalid node id
+
+@subheading DESCRIPTION:
+
+This directive obtains the queue id associated with
+the queue name specified in name. If the queue name is not
+unique, then the queue id will match one of the queues with that
+name. However, this queue id is not guaranteed to correspond to
+the desired queue. The queue id is used with other message
+related directives to access the message queue.
+
+@subheading NOTES:
+
+This directive will not cause the running task to be
+preempted.
+
+If node is @code{@value{RPREFIX}SEARCH_ALL_NODES}, all nodes are searched
+with the local node being searched first. All other nodes are
+searched with the lowest numbered node searched first.
+
+If node is a valid node number which does not
+represent the local node, then only the message queues exported
+by the designated node are searched.
+
+This directive does not generate activity on remote
+nodes. It accesses only the local copy of the global object
+table.
+
+@c
+@c
+@c
+@page
+@subsection MESSAGE_QUEUE_DELETE - Delete a queue
+
+@cindex delete a message queue
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_message_queue_delete
+@example
+rtems_status_code rtems_message_queue_delete(
+ rtems_id id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Message_Queue_Delete (
+ ID : in RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - queue deleted successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid queue id@*
+@code{@value{RPREFIX}ILLEGAL_ON_REMOTE_OBJECT} - cannot delete remote queue
+
+@subheading DESCRIPTION:
+
+This directive deletes the message queue specified by
+id. As a result of this directive, all tasks blocked waiting to
+receive a message from this queue will be readied and returned a
+status code which indicates that the message queue was deleted.
+If no tasks are waiting, but the queue contains messages, then
+RTEMS returns these message buffers back to the system message
+buffer pool. The QCB for this queue as well as the memory for
+the message buffers is reclaimed by RTEMS.
+
+@subheading NOTES:
+
+The calling task will be preempted if its preemption
+mode is enabled and one or more local tasks with a higher
+priority than the calling task are waiting on the deleted queue.
+The calling task will NOT be preempted if the tasks that are
+waiting are remote tasks.
+
+The calling task does not have to be the task that
+created the queue, although the task and queue must reside on
+the same node.
+
+When the queue is deleted, any messages in the queue
+are returned to the free message buffer pool. Any information
+stored in those messages is lost.
+
+When a global message queue is deleted, the message
+queue id must be transmitted to every node in the system for
+deletion from the local copy of the global object table.
+
+Proxies, used to represent remote tasks, are
+reclaimed when the message queue is deleted.
+
+@c
+@c
+@c
+@page
+@subsection MESSAGE_QUEUE_SEND - Put message at rear of a queue
+
+@cindex send message to a queue
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_message_queue_send
+@example
+rtems_status_code rtems_message_queue_send(
+ rtems_id id,
+ void *buffer,
+ rtems_unsigned32 size
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Message_Queue_Send (
+ ID : in RTEMS.ID;
+ Buffer : in RTEMS.Address;
+ Size : in RTEMS.Unsigned32;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - message sent successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid queue id@*
+@code{@value{RPREFIX}INVALID_SIZE} - invalid message size@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{buffer} is NULL@*
+@code{@value{RPREFIX}UNSATISFIED} - out of message buffers@*
+@code{@value{RPREFIX}TOO_MANY} - queue's limit has been reached
+
+@subheading DESCRIPTION:
+
+This directive sends the message buffer of size bytes
+in length to the queue specified by id. If a task is waiting at
+the queue, then the message is copied to the waiting task's
+buffer and the task is unblocked. If no tasks are waiting at the
+queue, then the message is copied to a message buffer which is
+obtained from this message queue's message buffer pool. The
+message buffer is then placed at the rear of the queue.
+
+@subheading NOTES:
+
+The calling task will be preempted if it has
+preemption enabled and a higher priority task is unblocked as
+the result of this directive.
+
+Sending a message to a global message queue which
+does not reside on the local node will generate a request to the
+remote node to post the message on the specified message queue.
+
+If the task to be unblocked resides on a different
+node from the message queue, then the message is forwarded to
+the appropriate node, the waiting task is unblocked, and the
+proxy used to represent the task is reclaimed.
+
+@c
+@c
+@c
+@page
+@subsection MESSAGE_QUEUE_URGENT - Put message at front of a queue
+
+@cindex put message at front of queue
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_message_queue_urgent
+@example
+rtems_status_code rtems_message_queue_urgent(
+ rtems_id id,
+ void *buffer,
+ rtems_unsigned32 size
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Message_Queue_Urgent (
+ ID : in RTEMS.ID;
+ Buffer : in RTEMS.Address;
+ Size : in RTEMS.Unsigned32;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - message sent successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid queue id@*
+@code{@value{RPREFIX}INVALID_SIZE} - invalid message size@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{buffer} is NULL@*
+@code{@value{RPREFIX}UNSATISFIED} - out of message buffers@*
+@code{@value{RPREFIX}TOO_MANY} - queue's limit has been reached
+
+@subheading DESCRIPTION:
+
+This directive sends the message buffer of size bytes
+in length to the queue specified by id. If a task is waiting on
+the queue, then the message is copied to the task's buffer and
+the task is unblocked. If no tasks are waiting on the queue,
+then the message is copied to a message buffer which is obtained
+from this message queue's message buffer pool. The message
+buffer is then placed at the front of the queue.
+
+@subheading NOTES:
+
+The calling task will be preempted if it has
+preemption enabled and a higher priority task is unblocked as
+the result of this directive.
+
+Sending a message to a global message queue which
+does not reside on the local node will generate a request
+telling the remote node to post the message on the specified
+message queue.
+
+If the task to be unblocked resides on a different
+node from the message queue, then the message is forwarded to
+the appropriate node, the waiting task is unblocked, and the
+proxy used to represent the task is reclaimed.
+
+@c
+@c
+@c
+@page
+@subsection MESSAGE_QUEUE_BROADCAST - Broadcast N messages to a queue
+
+@cindex broadcast message to a queue
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_message_queue_broadcast
+@example
+rtems_status_code rtems_message_queue_broadcast(
+ rtems_id id,
+ void *buffer,
+ rtems_unsigned32 size,
+ rtems_unsigned32 *count
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Message_Queue_Broadcast (
+ ID : in RTEMS.ID;
+ Buffer : in RTEMS.Address;
+ Size : in RTEMS.Unsigned32;
+ Count : out RTEMS.Unsigned32;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - message broadcasted successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid queue id@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{buffer} is NULL@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{count} is NULL@*
+@code{@value{RPREFIX}INVALID_SIZE} - invalid message size
+
+@subheading DESCRIPTION:
+
+This directive causes all tasks that are waiting at
+the queue specified by id to be unblocked and sent the message
+contained in buffer. Before a task is unblocked, the message
+buffer of size byes in length is copied to that task's message
+buffer. The number of tasks that were unblocked is returned in
+count.
+
+@subheading NOTES:
+
+The calling task will be preempted if it has
+preemption enabled and a higher priority task is unblocked as
+the result of this directive.
+
+The execution time of this directive is directly
+related to the number of tasks waiting on the message queue,
+although it is more efficient than the equivalent number of
+invocations of @code{@value{DIRPREFIX}message_queue_send}.
+
+Broadcasting a message to a global message queue
+which does not reside on the local node will generate a request
+telling the remote node to broadcast the message to the
+specified message queue.
+
+When a task is unblocked which resides on a different
+node from the message queue, a copy of the message is forwarded
+to the appropriate node, the waiting task is unblocked, and the
+proxy used to represent the task is reclaimed.
+
+@c
+@c
+@c
+@page
+@subsection MESSAGE_QUEUE_RECEIVE - Receive message from a queue
+
+@cindex receive message from a queue
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_message_queue_receive
+@example
+rtems_status_code rtems_message_queue_receive(
+ rtems_id id,
+ void *buffer,
+ rtems_unsigned32 *size,
+ rtems_unsigned32 option_set,
+ rtems_interval timeout
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Message_Queue_Receive (
+ ID : in RTEMS.ID;
+ Buffer : in RTEMS.Address;
+ Option_Set : in RTEMS.Option;
+ Timeout : in RTEMS.Interval;
+ Size : out RTEMS.Unsigned32;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - message received successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid queue id@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{buffer} is NULL@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{count} is NULL@*
+@code{@value{RPREFIX}UNSATISFIED} - queue is empty@*
+@code{@value{RPREFIX}TIMEOUT} - timed out waiting for message@*
+@code{@value{RPREFIX}OBJECT_WAS_DELETED} - queue deleted while waiting
+
+@subheading DESCRIPTION:
+
+This directive receives a message from the message
+queue specified in id. The @code{@value{RPREFIX}WAIT} and @code{@value{RPREFIX}NO_WAIT} options of the
+options parameter allow the calling task to specify whether to
+wait for a message to become available or return immediately.
+For either option, if there is at least one message in the
+queue, then it is copied to buffer, size is set to return the
+length of the message in bytes, and this directive returns
+immediately with a successful return code.
+
+If the calling task chooses to return immediately and
+the queue is empty, then a status code indicating this condition
+is returned. If the calling task chooses to wait at the message
+queue and the queue is empty, then the calling task is placed on
+the message wait queue and blocked. If the queue was created
+with the @code{@value{RPREFIX}PRIORITY} option specified, then
+the calling task is inserted into the wait queue according to
+its priority. But, if the queue was created with the
+@code{@value{RPREFIX}FIFO} option specified, then the
+calling task is placed at the rear of the wait queue.
+
+A task choosing to wait at the queue can optionally
+specify a timeout value in the timeout parameter. The timeout
+parameter specifies the maximum interval to wait before the
+calling task desires to be unblocked. If it is set to
+@code{@value{RPREFIX}NO_TIMEOUT}, then the calling task will wait forever.
+
+@subheading NOTES:
+
+The following message receive option constants are
+defined by RTEMS:
+
+@itemize @bullet
+@item @code{@value{RPREFIX}WAIT} - task will wait for a message (default)
+@item @code{@value{RPREFIX}NO_WAIT} - task should not wait
+@end itemize
+
+Receiving a message from a global message queue which
+does not reside on the local node will generate a request to the
+remote node to obtain a message from the specified message
+queue. If no message is available and @code{@value{RPREFIX}WAIT} was specified, then
+the task must be blocked until a message is posted. A proxy is
+allocated on the remote node to represent the task until the
+message is posted.
+
+A clock tick is required to support the timeout functionality of
+this directive.
+
+@c
+@c
+@c
+@page
+@subsection MESSAGE_QUEUE_GET_NUMBER_PENDING - Get number of messages pending on a queue
+
+@cindex get number of pending messages
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_message_queue_get_number_pending
+@example
+rtems_status_code rtems_message_queue_get_number_pending(
+ rtems_id id,
+ rtems_unsigned32 *count
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Message_Queue_Get_Number_Pending (
+ ID : in RTEMS.ID;
+ Count : out RTEMS.Unsigned32;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - number of messages pending returned successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{count} is NULL@*
+@code{@value{RPREFIX}INVALID_ID} - invalid queue id
+
+@subheading DESCRIPTION:
+
+This directive returns the number of messages pending on this
+message queue in count. If no messages are present
+on the queue, count is set to zero.
+
+@subheading NOTES:
+
+Getting the number of pending messages on a global message queue which
+does not reside on the local node will generate a request to the
+remote node to actually obtain the pending message count for
+the specified message queue.
+
+
+@c
+@c
+@c
+@page
+@subsection MESSAGE_QUEUE_FLUSH - Flush all messages on a queue
+
+@cindex flush messages on a queue
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_message_queue_flush
+@example
+rtems_status_code rtems_message_queue_flush(
+ rtems_id id,
+ rtems_unsigned32 *count
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Message_Queue_Flush (
+ ID : in RTEMS.ID;
+ Count : out RTEMS.Unsigned32;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - message queue flushed successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{count} is NULL@*
+@code{@value{RPREFIX}INVALID_ID} - invalid queue id
+
+@subheading DESCRIPTION:
+
+This directive removes all pending messages from the
+specified queue id. The number of messages removed is returned
+in count. If no messages are present on the queue, count is set
+to zero.
+
+@subheading NOTES:
+
+Flushing all messages on a global message queue which
+does not reside on the local node will generate a request to the
+remote node to actually flush the specified message queue.
+
diff --git a/doc/user/overview.t b/doc/user/overview.t
new file mode 100644
index 0000000000..031fa86d31
--- /dev/null
+++ b/doc/user/overview.t
@@ -0,0 +1,532 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@c
+@c This chapter is missing the following figures:
+@c
+@c Figure 1-1 RTEMS Application Architecture
+@c Figure 1-2 RTEMS Internal Architecture
+@c
+
+@chapter Overview
+
+@section Introduction
+
+RTEMS, Real-Time Executive for Multiprocessor Systems, is a
+real-time executive (kernel) which provides a high performance
+environment for embedded military applications including the
+following features:
+
+@itemize @bullet
+@item multitasking capabilities
+@item homogeneous and heterogeneous multiprocessor systems
+@item event-driven, priority-based, preemptive scheduling
+@item optional rate monotonic scheduling
+@item intertask communication and synchronization
+@item priority inheritance
+@item responsive interrupt management
+@item dynamic memory allocation
+@item high level of user configurability
+@end itemize
+
+This manual describes the usage of RTEMS for
+applications written in the @value{LANGUAGE} programming language. Those
+implementation details that are processor dependent are provided
+in the Applications Supplement documents. A supplement
+document which addresses specific architectural issues that
+affect RTEMS is provided for each processor type that is
+supported.
+
+@section Real-time Application Systems
+
+Real-time application systems are a special class of
+computer applications. They have a complex set of
+characteristics that distinguish them from other software
+problems. Generally, they must adhere to more rigorous
+requirements. The correctness of the system depends not only on
+the results of computations, but also on the time at which the
+results are produced. The most important and complex
+characteristic of real-time application systems is that they
+must receive and respond to a set of external stimuli within
+rigid and critical time constraints referred to as deadlines.
+Systems can be buried by an avalanche of interdependent,
+asynchronous or cyclical event streams.
+
+Deadlines can be further characterized as either hard
+or soft based upon the value of the results when produced after
+the deadline has passed. A deadline is hard if the results have
+no value or if their use will result in a catastrophic event.
+In contrast, results which are produced after a soft deadline
+may have some value.
+
+Another distinguishing requirement of real-time
+application systems is the ability to coordinate or manage a
+large number of concurrent activities. Since software is a
+synchronous entity, this presents special problems. One
+instruction follows another in a repeating synchronous cycle.
+Even though mechanisms have been developed to allow for the
+processing of external asynchronous events, the software design
+efforts required to process and manage these events and tasks
+are growing more complicated.
+
+The design process is complicated further by
+spreading this activity over a set of processors instead of a
+single processor. The challenges associated with designing and
+building real-time application systems become very complex when
+multiple processors are involved. New requirements such as
+interprocessor communication channels and global resources that
+must be shared between competing processors are introduced. The
+ramifications of multiple processors complicate each and every
+characteristic of a real-time system.
+
+@section Real-time Executive
+
+Fortunately, real-time operating systems or real-time
+executives serve as a cornerstone on which to build the
+application system. A real-time multitasking executive allows
+an application to be cast into a set of logical, autonomous
+processes or tasks which become quite manageable. Each task is
+internally synchronous, but different tasks execute
+independently, resulting in an asynchronous processing stream.
+Tasks can be dynamically paused for many reasons resulting in a
+different task being allowed to execute for a period of time.
+The executive also provides an interface to other system
+components such as interrupt handlers and device drivers.
+System components may request the executive to allocate and
+coordinate resources, and to wait for and trigger synchronizing
+conditions. The executive system calls effectively extend the
+CPU instruction set to support efficient multitasking. By
+causing tasks to travel through well-defined state transitions,
+system calls permit an application to demand-switch between
+tasks in response to real-time events.
+
+By proper grouping of responses to stimuli into
+separate tasks, a system can now asynchronously switch between
+independent streams of execution, directly responding to
+external stimuli as they occur. This allows the system design
+to meet critical performance specifications which are typically
+measured by guaranteed response time and transaction throughput.
+The multiprocessor extensions of RTEMS provide the features
+necessary to manage the extra requirements introduced by a
+system distributed across several processors. It removes the
+physical barriers of processor boundaries from the world of the
+system designer, enabling more critical aspects of the system to
+receive the required attention. Such a system, based on an
+efficient real-time, multiprocessor executive, is a more
+realistic model of the outside world or environment for which it
+is designed. As a result, the system will always be more
+logical, efficient, and reliable.
+
+By using the directives provided by RTEMS, the
+real-time applications developer is freed from the problem of
+controlling and synchronizing multiple tasks and processors. In
+addition, one need not develop, test, debug, and document
+routines to manage memory, pass messages, or provide mutual
+exclusion. The developer is then able to concentrate solely on
+the application. By using standard software components, the
+time and cost required to develop sophisticated real-time
+applications is significantly reduced.
+
+@section RTEMS Application Architecture
+
+One important design goal of RTEMS was to provide a
+bridge between two critical layers of typical real-time systems.
+As shown in the following figure, RTEMS serves as a buffer between the
+project dependent application code and the target hardware.
+Most hardware dependencies for real-time applications can be
+localized to the low level device drivers.
+
+@ifset use-ascii
+@example
+@group
+ +-----------------------------------------------------------+
+ | Application Dependent Software |
+ | +----------------------------------------+ |
+ | | Standard Application Components | |
+ | | +-------------+---+ |
+ | +---+-----------+ | | |
+ | | Board Support | | RTEMS | |
+ | | Package | | | |
+ +----+---------------+--------------+-----------------+-----|
+ | Target Hardware |
+ +-----------------------------------------------------------+
+@end group
+@end example
+@end ifset
+
+@ifset use-tex
+@sp 1
+@tex
+\centerline{\vbox{\offinterlineskip\halign{
+\vrule#&
+\hbox to 0.50in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 0.50in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 0.75in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 0.75in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 0.75in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 0.75in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 0.50in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 0.50in{\enskip\hfil#\hfil}&
+\vrule#\cr
+\multispan{17}\hrulefill\cr
+% to force all columns to desired width
+& \enskip && \enskip && \enskip && \enskip &&
+ \enskip && \enskip &&\enskip &&\enskip &\cr
+% For debugging columns
+%& \enskip 0&& \enskip 1&& \enskip 2&& \enskip 3&&
+% \enskip 4&& \enskip 5&&\enskip 6&&\enskip 7&\cr
+\strut&\multispan{15}&\cr
+&\multispan{15}\hfil Application Dependent Software\hfil&\cr
+\strut&\multispan{15}&\cr
+&\multispan{2}&&\multispan{8}\hrulefill &\multispan{2}&\cr
+\strut&\multispan{2}&&&\multispan{7}&&\multispan{2}&&\cr
+&\multispan{2}&&&\multispan{7}\hfil Standard Application Components\hfil&
+ &\multispan{2}&&\cr
+\strut&\multispan{2}&&&\multispan{7}&&\multispan{2}&&\cr
+&&\multispan{5}\hrulefill&&\multispan{7}\hrulefill&&\cr
+\strut&&&\multispan{3} &&&&\multispan{5}&&&\cr
+&&&\multispan{3}\hfil Device\hfil&&&&\multispan{5}\hfil RTEMS\hfil&&&\cr
+&&&\multispan{3}\hfil Drivers\hfil&&&&\multispan{5}&&&\cr
+\strut&&&\multispan{3} &&&&\multispan{5}&&&\cr
+\multispan{17}\hrulefill\cr
+\strut&\multispan{15}&\cr
+&\multispan{15}\hfil Target Hardware\hfil&\cr
+\strut&\multispan{15}&\cr
+\multispan{17}\hrulefill\cr
+}}\hfil}
+@end tex
+@end ifset
+
+@ifset use-html
+@html
+<IMG SRC="rtemsarc.png" WIDTH=500 HEIGHT=300 ALT="RTEMS Application Architecture">
+@end html
+@end ifset
+
+The RTEMS I/O interface manager provides an efficient tool for incorporating
+these hardware dependencies into the system while simultaneously
+providing a general mechanism to the application code that
+accesses them. A well designed real-time system can benefit
+from this architecture by building a rich library of standard
+application components which can be used repeatedly in other
+real-time projects.
+
+@section RTEMS Internal Architecture
+
+RTEMS can be viewed as a set of layered components that work in
+harmony to provide a set of services to a real-time application
+system. The executive interface presented to the application is
+formed by grouping directives into logical sets called resource managers.
+Functions utilized by multiple managers such as scheduling,
+dispatching, and object management are provided in the executive
+core. The executive core depends on a small set of CPU dependent routines.
+Together these components provide a powerful run time
+environment that promotes the development of efficient real-time
+application systems. The following figure illustrates this organization:
+
+@ifset use-ascii
+@example
+@group
+ +-----------------------------------------------+
+ | RTEMS Executive Interface |
+ +-----------------------------------------------+
+ | RTEMS Core |
+ +-----------------------------------------------+
+ | CPU Dependent Code |
+ +-----------------------------------------------+
+@end group
+@end example
+@end ifset
+
+@ifset use-tex
+@c for now use the ascii version
+@c @example
+@c @group
+@c +-----------------------------------------------+
+@c | RTEMS Executive Interface |
+@c +-----------------------------------------------+
+@c | RTEMS Core |
+@c +-----------------------------------------------+
+@c | CPU Dependent Code |
+@c +-----------------------------------------------+
+@c @end group
+@c @end example
+@image{rtemspie,4in,3in}
+@tex
+@end tex
+@end ifset
+
+@ifset use-html
+@html
+<IMG SRC="rtemspie.png" WIDTH=500 HEIGHT=300 ALT="RTEMS Architecture">
+@end html
+@end ifset
+Subsequent chapters present a detailed description of the capabilities
+provided by each of the following RTEMS managers:
+
+@itemize @bullet
+@item initialization
+@item task
+@item interrupt
+@item clock
+@item timer
+@item semaphore
+@item message
+@item event
+@item signal
+@item partition
+@item region
+@item dual ported memory
+@item I/O
+@item fatal error
+@item rate monotonic
+@item user extensions
+@item multiprocessing
+@end itemize
+
+@section User Customization and Extensibility
+
+As thirty-two bit microprocessors have decreased in
+cost, they have become increasingly common in a variety of
+embedded systems. A wide range of custom and general-purpose
+processor boards are based on various thirty-two bit processors.
+RTEMS was designed to make no assumptions concerning the
+characteristics of individual microprocessor families or of
+specific support hardware. In addition, RTEMS allows the system
+developer a high degree of freedom in customizing and extending
+its features.
+
+RTEMS assumes the existence of a supported
+microprocessor and sufficient memory for both RTEMS and the
+real-time application. Board dependent components such as
+clocks, interrupt controllers, or I/O devices can be easily
+integrated with RTEMS. The customization and extensibility
+features allow RTEMS to efficiently support as many environments
+as possible.
+
+@section Portability
+
+The issue of portability was the major factor in the
+creation of RTEMS. Since RTEMS is designed to isolate the
+hardware dependencies in the specific board support packages,
+the real-time application should be easily ported to any other
+processor. The use of RTEMS allows the development of real-time
+applications which can be completely independent of a particular
+microprocessor architecture.
+
+@section Memory Requirements
+
+Since memory is a critical resource in many real-time
+embedded systems, RTEMS was specifically designed to allow
+unused managers to be excluded from the run-time environment.
+This allows the application designer the flexibility to tailor
+RTEMS to most efficiently meet system requirements while still
+satisfying even the most stringent memory constraints. As a
+result, the size of the RTEMS executive is application
+dependent. A worksheet is provided in the Memory Requirements
+chapter of the Applications Supplement document for a specific
+target processor. The worksheet is used to calculate the memory
+requirements of a custom RTEMS run-time environment. The
+following managers may be optionally excluded:
+
+@itemize @bullet
+@item clock
+@item timer
+@item semaphore
+@item message
+@item event
+@item signal
+@item partition
+@item region
+@item dual ported memory
+@item I/O
+@item rate monotonic
+@item fatal error
+@item multiprocessing
+@end itemize
+
+RTEMS utilizes memory for both code and data space.
+Although RTEMS' data space must be in RAM, its code space can be
+located in either ROM or RAM.
+
+@section Audience
+
+This manual was written for experienced real-time
+software developers. Although some background is provided, it
+is assumed that the reader is familiar with the concepts of task
+management as well as intertask communication and
+synchronization. Since directives, user related data
+structures, and examples are presented in @value{LANGUAGE}, a basic
+understanding of the @value{LANGUAGE} programming language
+is required to fully
+understand the material presented. However, because of the
+similarity of the Ada and C RTEMS implementations, users will
+find that the use and behavior of the two implementations is
+very similar. A working knowledge of the target processor is
+helpful in understanding some of RTEMS' features. A thorough
+understanding of the executive cannot be obtained without
+studying the entire manual because many of RTEMS' concepts and
+features are interrelated. Experienced RTEMS users will find
+that the manual organization facilitates its use as a reference
+document.
+
+@section Conventions
+
+The following conventions are used in this manual:
+
+@itemize @bullet
+@item Significant words or phrases as well as all directive
+names are printed in bold type.
+
+@item Items in bold capital letters are constants defined by
+RTEMS. Each language interface provided by RTEMS includes a
+file containing the standard set of constants, data types, and
+@value{STRUCTURE} definitions which can be incorporated into the user
+application.
+
+@item A number of type definitions are provided by RTEMS and
+can be found in rtems.h.
+
+@item The characters "0x" preceding a number indicates that
+the number is in hexadecimal format. Any other numbers are
+assumed to be in decimal format.
+@end itemize
+
+@section Manual Organization
+
+This first chapter has presented the introductory and
+background material for the RTEMS executive. The remaining
+chapters of this manual present a detailed description of RTEMS
+and the environment, including run time behavior, it creates for
+the user.
+
+A chapter is dedicated to each manager and provides a
+detailed discussion of each RTEMS manager and the directives
+which it provides. The presentation format for each directive
+includes the following sections:
+
+@itemize @bullet
+@item Calling sequence
+@item Directive status codes
+@item Description
+@item Notes
+@end itemize
+
+The following provides an overview of the remainder
+of this manual:
+
+@table @asis
+@item Chapter 2
+Key Concepts: presents an
+introduction to the ideas which are common across multiple RTEMS
+managers.
+
+@item Chapter 3:
+Initialization Manager: describes the functionality and directives
+provided by the Initialization Manager.
+
+@item Chapter 4:
+Task Manager: describes the functionality and directives provided
+by the Task Manager.
+
+@item Chapter 5:
+Interrupt Manager: describes the functionality and directives
+provided by the Interrupt Manager.
+
+@item Chapter 6:
+Clock Manager: describes the functionality and directives
+provided by the Clock Manager.
+
+@item Chapter 7
+Timer Manager: describes the functionality and directives provided
+by the Timer Manager.
+
+@item Chapter 8:
+Semaphore Manager: describes the functionality and directives
+provided by the Semaphore Manager.
+
+@item Chapter 9:
+Message Manager: describes the functionality and directives
+provided by the Message Manager.
+
+@item Chapter 10:
+Event Manager: describes the
+functionality and directives provided by the Event Manager.
+
+@item Chapter 11:
+Signal Manager: describes the
+functionality and directives provided by the Signal Manager.
+
+@item Chapter 12:
+Partition Manager: describes the
+functionality and directives provided by the Partition Manager.
+
+@item Chapter 13:
+Region Manager: describes the
+functionality and directives provided by the Region Manager.
+
+@item Chapter 14:
+Dual-Ported Memory Manager: describes
+the functionality and directives provided by the Dual-Ported
+Memory Manager.
+
+@item Chapter 15:
+I/O Manager: describes the
+functionality and directives provided by the I/O Manager.
+
+@item Chapter 16:
+Fatal Error Manager: describes the functionality and directives
+provided by the Fatal Error Manager.
+
+@item Chapter 17:
+Scheduling Concepts: details the RTEMS scheduling algorithm and
+task state transitions.
+
+@item Chapter 18:
+Rate Monotonic Manager: describes the functionality and directives
+provided by the Rate Monotonic Manager.
+
+@item Chapter 19:
+Board Support Packages: defines the
+functionality required of user-supplied board support packages.
+
+@item Chapter 20:
+User Extensions: shows the user how to
+extend RTEMS to incorporate custom features.
+
+@item Chapter 21:
+Configuring a System: details the process by which one tailors RTEMS
+for a particular single-processor or multiprocessor application.
+
+@item Chapter 22:
+Multiprocessing Manager: presents a
+conceptual overview of the multiprocessing capabilities provided
+by RTEMS as well as describing the Multiprocessing
+Communications Interface Layer and Multiprocessing Manager
+directives.
+
+@item Chapter 23:
+Directive Status Codes: provides a definition of each of the
+directive status codes referenced in this manual.
+
+@item Chapter 24:
+Example Application: provides a template for simple RTEMS applications.
+
+@item Chapter 25:
+Glossary: defines terms used throughout this manual.
+
+@end table
+
+
diff --git a/doc/user/part.t b/doc/user/part.t
new file mode 100644
index 0000000000..eef41e6308
--- /dev/null
+++ b/doc/user/part.t
@@ -0,0 +1,453 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@chapter Partition Manager
+
+@cindex partitions
+
+@section Introduction
+
+The partition manager provides facilities to
+dynamically allocate memory in fixed-size units. The directives
+provided by the partition manager are:
+
+@itemize @bullet
+@item @code{@value{DIRPREFIX}partition_create} - Create a partition
+@item @code{@value{DIRPREFIX}partition_ident} - Get ID of a partition
+@item @code{@value{DIRPREFIX}partition_delete} - Delete a partition
+@item @code{@value{DIRPREFIX}partition_get_buffer} - Get buffer from a partition
+@item @code{@value{DIRPREFIX}partition_return_buffer} - Return buffer to a partition
+@end itemize
+
+@section Background
+
+@subsection Partition Manager Definitions
+
+@cindex partition, definition
+
+A partition is a physically contiguous memory area
+divided into fixed-size buffers that can be dynamically
+allocated and deallocated.
+
+@cindex buffers, definition
+
+Partitions are managed and maintained as a list of
+buffers. Buffers are obtained from the front of the partition's
+free buffer chain and returned to the rear of the same chain.
+When a buffer is on the free buffer chain, RTEMS uses eight
+bytes of each buffer as the free buffer chain. When a buffer is
+allocated, the entire buffer is available for application use.
+Therefore, modifying memory that is outside of an allocated
+buffer could destroy the free buffer chain or the contents of an
+adjacent allocated buffer.
+
+@subsection Building a Partition Attribute Set
+
+@cindex partition attribute set, building
+
+In general, an attribute set is built by a bitwise OR
+of the desired attribute components. The set of valid partition
+attributes is provided in the following table:
+
+@itemize @bullet
+@item @code{@value{RPREFIX}LOCAL} - local task (default)
+@item @code{@value{RPREFIX}GLOBAL} - global task
+@end itemize
+
+Attribute values are specifically designed to be
+mutually exclusive, therefore bitwise OR and addition operations
+are equivalent as long as each attribute appears exactly once in
+the component list. An attribute listed as a default is not
+required to appear in the attribute list, although it is a good
+programming practice to specify default attributes. If all
+defaults are desired, the attribute
+@code{@value{RPREFIX}DEFAULT_ATTRIBUTES} should be
+specified on this call. The attribute_set parameter should be
+@code{@value{RPREFIX}GLOBAL} to indicate that the partition
+is to be known globally.
+
+@section Operations
+
+@subsection Creating a Partition
+
+The @code{@value{DIRPREFIX}partition_create} directive creates a partition
+with a user-specified name. The partition's name, starting
+address, length and buffer size are all specified to the
+@code{@value{DIRPREFIX}partition_create} directive.
+RTEMS allocates a Partition Control
+Block (PTCB) from the PTCB free list. This data structure is
+used by RTEMS to manage the newly created partition. The number
+of buffers in the partition is calculated based upon the
+specified partition length and buffer size, and returned to the
+calling task along with a unique partition ID.
+
+@subsection Obtaining Partition IDs
+
+When a partition is created, RTEMS generates a unique
+partition ID and assigned it to the created partition until it
+is deleted. The partition ID may be obtained by either of two
+methods. First, as the result of an invocation of the
+@code{@value{DIRPREFIX}partition_create} directive, the partition
+ID is stored in a user provided location. Second, the partition
+ID may be obtained later using the @code{@value{DIRPREFIX}partition_ident}
+directive. The partition ID is used by other partition manager directives
+to access this partition.
+
+@subsection Acquiring a Buffer
+
+A buffer can be obtained by calling the
+@code{@value{DIRPREFIX}partition_get_buffer} directive.
+If a buffer is available, then
+it is returned immediately with a successful return code.
+Otherwise, an unsuccessful return code is returned immediately
+to the caller. Tasks cannot block to wait for a buffer to
+become available.
+
+@subsection Releasing a Buffer
+
+Buffers are returned to a partition's free buffer
+chain with the @code{@value{DIRPREFIX}partition_return_buffer} directive. This
+directive returns an error status code if the returned buffer
+was not previously allocated from this partition.
+
+@subsection Deleting a Partition
+
+The @code{@value{DIRPREFIX}partition_delete} directive allows a partition to
+be removed and returned to RTEMS. When a partition is deleted,
+the PTCB for that partition is returned to the PTCB free list.
+A partition with buffers still allocated cannot be deleted. Any
+task attempting to do so will be returned an error status code.
+
+@section Directives
+
+This section details the partition manager's
+directives. A subsection is dedicated to each of this manager's
+directives and describes the calling sequence, related
+constants, usage, and status codes.
+
+@c
+@c
+@c
+@page
+@subsection PARTITION_CREATE - Create a partition
+
+@cindex create a partition
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_partition_create
+@example
+rtems_status_code rtems_partition_create(
+ rtems_name name,
+ void *starting_address,
+ rtems_unsigned32 length,
+ rtems_unsigned32 buffer_size,
+ rtems_attribute attribute_set,
+ rtems_id *id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Partition_Create (
+ Name : in RTEMS.Name;
+ Starting_Address : in RTEMS.Address;
+ Length : in RTEMS.Unsigned32;
+ Buffer_Size : in RTEMS.Unsigned32;
+ Attribute_Set : in RTEMS.Attribute;
+ ID : out RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - partition created successfully@*
+@code{@value{RPREFIX}INVALID_NAME} - invalid task name@*
+@code{@value{RPREFIX}TOO_MANY} - too many partitions created@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - address not on four byte boundary@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{starting_address} is NULL@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{id} is NULL@*
+@code{@value{RPREFIX}INVALID_SIZE} - length or buffer size is 0@*
+@code{@value{RPREFIX}INVALID_SIZE} - length is less than the buffer size@*
+@code{@value{RPREFIX}INVALID_SIZE} - buffer size not a multiple of 4@*
+@code{@value{RPREFIX}MP_NOT_CONFIGURED} - multiprocessing not configured@*
+@code{@value{RPREFIX}TOO_MANY} - too many global objects
+
+@subheading DESCRIPTION:
+
+This directive creates a partition of fixed size
+buffers from a physically contiguous memory space which starts
+at starting_address and is length bytes in size. Each allocated
+buffer is to be of buffer_length in bytes. The assigned
+partition id is returned in id. This partition id is used to
+access the partition with other partition related directives.
+For control and maintenance of the partition, RTEMS allocates a
+PTCB from the local PTCB free pool and initializes it.
+
+@subheading NOTES:
+
+This directive will not cause the calling task to be
+preempted.
+
+The starting_address and buffer_size parameters must
+be multiples of four.
+
+Memory from the partition is not used by RTEMS to
+store the Partition Control Block.
+
+The following partition attribute constants are
+defined by RTEMS:
+
+@itemize @bullet
+@item @code{@value{RPREFIX}LOCAL} - local task (default)
+@item @code{@value{RPREFIX}GLOBAL} - global task
+@end itemize
+
+The PTCB for a global partition is allocated on the
+local node. The memory space used for the partition must reside
+in shared memory. Partitions should not be made global unless
+remote tasks must interact with the partition. This is to avoid
+the overhead incurred by the creation of a global partition.
+When a global partition is created, the partition's name and id
+must be transmitted to every node in the system for insertion in
+the local copy of the global object table.
+
+The total number of global objects, including
+partitions, is limited by the maximum_global_objects field in
+the Configuration Table.
+
+@c
+@c
+@c
+@page
+@subsection PARTITION_IDENT - Get ID of a partition
+
+@cindex get ID of a partition
+@cindex obtain ID of a partition
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_partition_ident
+@example
+rtems_status_code rtems_partition_ident(
+ rtems_name name,
+ rtems_unsigned32 node,
+ rtems_id *id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Partition_Ident (
+ Name : in RTEMS.Name;
+ Node : in RTEMS.Unsigned32;
+ ID : out RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - partition identified successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{id} is NULL@*
+@code{@value{RPREFIX}INVALID_NAME} - partition name not found@*
+@code{@value{RPREFIX}INVALID_NODE} - invalid node id
+
+@subheading DESCRIPTION:
+
+This directive obtains the partition id associated
+with the partition name. If the partition name is not unique,
+then the partition id will match one of the partitions with that
+name. However, this partition id is not guaranteed to
+correspond to the desired partition. The partition id is used
+with other partition related directives to access the partition.
+
+@subheading NOTES:
+
+This directive will not cause the running task to be
+preempted.
+
+If node is @code{@value{RPREFIX}SEARCH_ALL_NODES}, all nodes are searched
+with the local node being searched first. All other nodes are
+searched with the lowest numbered node searched first.
+
+If node is a valid node number which does not
+represent the local node, then only the partitions exported by
+the designated node are searched.
+
+This directive does not generate activity on remote
+nodes. It accesses only the local copy of the global object
+table.
+
+@c
+@c
+@c
+@page
+@subsection PARTITION_DELETE - Delete a partition
+
+@cindex delete a partition
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_partition_delete
+@example
+rtems_status_code rtems_partition_delete(
+ rtems_id id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Partition_Delete (
+ ID : in RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - partition deleted successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid partition id@*
+@code{@value{RPREFIX}RESOURCE_IN_USE} - buffers still in use@*
+@code{@value{RPREFIX}ILLEGAL_ON_REMOTE_OBJECT} - cannot delete remote partition
+
+@subheading DESCRIPTION:
+
+This directive deletes the partition specified by id.
+The partition cannot be deleted if any of its buffers are still
+allocated. The PTCB for the deleted partition is reclaimed by
+RTEMS.
+
+@subheading NOTES:
+
+This directive will not cause the calling task to be
+preempted.
+
+The calling task does not have to be the task that
+created the partition. Any local task that knows the partition
+id can delete the partition.
+
+When a global partition is deleted, the partition id
+must be transmitted to every node in the system for deletion
+from the local copy of the global object table.
+
+The partition must reside on the local node, even if
+the partition was created with the @code{@value{RPREFIX}GLOBAL} option.
+
+@c
+@c
+@c
+@page
+@subsection PARTITION_GET_BUFFER - Get buffer from a partition
+
+@cindex get buffer from partition
+@cindex obtain buffer from partition
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_partition_get_buffer
+@example
+rtems_status_code rtems_partition_get_buffer(
+ rtems_id id,
+ void **buffer
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Partition_Get_Buffer (
+ ID : in RTEMS.ID;
+ Buffer : out RTEMS.Address;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - buffer obtained successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{buffer} is NULL@*
+@code{@value{RPREFIX}INVALID_ID} - invalid partition id@*
+@code{@value{RPREFIX}UNSATISFIED} - all buffers are allocated
+
+@subheading DESCRIPTION:
+
+This directive allows a buffer to be obtained from
+the partition specified in id. The address of the allocated
+buffer is returned in buffer.
+
+@subheading NOTES:
+
+This directive will not cause the running task to be
+preempted.
+
+All buffers begin on a four byte boundary.
+
+A task cannot wait on a buffer to become available.
+
+Getting a buffer from a global partition which does
+not reside on the local node will generate a request telling the
+remote node to allocate a buffer from the specified partition.
+
+@c
+@c
+@c
+@page
+@subsection PARTITION_RETURN_BUFFER - Return buffer to a partition
+
+@cindex return buffer to partitition
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_partition_return_buffer
+@example
+rtems_status_code rtems_partition_return_buffer(
+ rtems_id id,
+ void *buffer
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Partition_Return_Buffer (
+ ID : in RTEMS.ID;
+ Buffer : in RTEMS.Address;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - buffer returned successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{buffer} is NULL@*
+@code{@value{RPREFIX}INVALID_ID} - invalid partition id@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - buffer address not in partition
+
+@subheading DESCRIPTION:
+
+This directive returns the buffer specified by buffer
+to the partition specified by id.
+
+@subheading NOTES:
+
+This directive will not cause the running task to be
+preempted.
+
+Returning a buffer to a global partition which does
+not reside on the local node will generate a request telling the
+remote node to return the buffer to the specified partition.
diff --git a/doc/user/preface.texi b/doc/user/preface.texi
new file mode 100644
index 0000000000..3ffb90dedf
--- /dev/null
+++ b/doc/user/preface.texi
@@ -0,0 +1,192 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@ifinfo
+@node Preface, Overview, Top, Top
+@end ifinfo
+@unnumbered Preface
+
+In recent years, the cost required to develop a
+software product has increased significantly while the target
+hardware costs have decreased. Now a larger portion of money is
+expended in developing, using, and maintaining software. The
+trend in computing costs is the complete dominance of software
+over hardware costs. Because of this, it is necessary that
+formal disciplines be established to increase the probability
+that software is characterized by a high degree of correctness,
+maintainability, and portability. In addition, these
+disciplines must promote practices that aid in the consistent
+and orderly development of a software system within schedule and
+budgetary constraints. To be effective, these disciplines must
+adopt standards which channel individual software efforts toward
+a common goal.
+
+The push for standards in the software development
+field has been met with various degrees of success. The
+Microprocessor Operating Systems Interfaces (MOSI) effort has
+experienced only limited success. As popular as the UNIX
+operating system has grown, the attempt to develop a standard
+interface definition to allow portable application development
+has only recently begun to produce the results needed in this
+area. Unfortunately, very little effort has been expended to
+provide standards addressing the needs of the real-time
+community. Several organizations have addressed this need
+during recent years.
+
+The Real Time Executive Interface Definition (RTEID)
+was developed by Motorola with technical input from Software
+Components Group. RTEID was adopted by the VMEbus International
+Trade Association (VITA) as a baseline draft for their proposed
+standard multiprocessor, real-time executive interface, Open
+Real-Time Kernel Interface Definition (ORKID). These two groups
+are currently working together with the IEEE P1003.4 committee
+to insure that the functionality of their proposed standards is
+adopted as the real-time extensions to POSIX.
+
+This emerging standard defines an interface for the
+development of real-time software to ease the writing of
+real-time application programs that are directly portable across
+multiple real-time executive implementations. This interface
+includes both the source code interfaces and run-time behavior
+as seen by a real-time application. It does not include the
+details of how a kernel implements these functions. The
+standard's goal is to serve as a complete definition of external
+interfaces so that application code that conforms to these
+interfaces will execute properly in all real-time executive
+environments. With the use of a standards compliant executive,
+routines that acquire memory blocks, create and manage message
+queues, establish and use semaphores, and send and receive
+signals need not be redeveloped for a different real-time
+environment as long as the new environment is compliant with the
+standard. Software developers need only concentrate on the
+hardware dependencies of the real-time system. Furthermore,
+most hardware dependencies for real-time applications can be
+localized to the device drivers.
+
+A compliant executive provides simple and flexible
+real-time multiprocessing. It easily lends itself to both
+tightly-coupled and loosely-coupled configurations (depending on
+the system hardware configuration). Objects such as tasks,
+queues, events, signals, semaphores, and memory blocks can be
+designated as global objects and accessed by any task regardless
+of which processor the object and the accessing task reside.
+
+The acceptance of a standard for real-time executives
+will produce the same advantages enjoyed from the push for UNIX
+standardization by AT&T's System V Interface Definition and
+IEEE's POSIX efforts. A compliant multiprocessing executive
+will allow close coupling between UNIX systems and real-time
+executives to provide the many benefits of the UNIX development
+environment to be applied to real-time software development.
+Together they provide the necessary laboratory environment to
+implement real-time, distributed, embedded systems using a wide
+variety of computer architectures.
+
+A study was completed in 1988, within the Research,
+Development, and Engineering Center, U.S. Army Missile Command,
+which compared the various aspects of the Ada programming
+language as they related to the application of Ada code in
+distributed and/or multiple processing systems. Several
+critical conclusions were derived from the study. These
+conclusions have a major impact on the way the Army develops
+application software for embedded applications. These impacts
+apply to both in-house software development and contractor
+developed software.
+
+A conclusion of the analysis, which has been
+previously recognized by other agencies attempting to utilize
+Ada in a distributed or multiprocessing environment, is that the
+Ada programming language does not adequately support
+multiprocessing. Ada does provide a mechanism for
+multi-tasking, however, this capability exists only for a single
+processor system. The language also does not have inherent
+capabilities to access global named variables, flags or program
+code. These critical features are essential in order for data
+to be shared between processors. However, these drawbacks do
+have workarounds which are sometimes awkward and defeat the
+intent of software maintainability and portability goals.
+
+Another conclusion drawn from the analysis, was that
+the run time executives being delivered with the Ada compilers
+were too slow and inefficient to be used in modern missile
+systems. A run time executive is the core part of the run time
+system code, or operating system code, that controls task
+scheduling, input/output management and memory management.
+Traditionally, whenever efficient executive (also known as
+kernel) code was required by the application, the user developed
+in-house software. This software was usually written in
+assembly language for optimization.
+
+Because of this shortcoming in the Ada programming
+language, software developers in research and development and
+contractors for project managed systems, are mandated by
+technology to purchase and utilize off-the-shelf third party
+kernel code. The contractor, and eventually the Government,
+must pay a licensing fee for every copy of the kernel code used
+in an embedded system.
+
+The main drawback to this development environment is
+that the Government does not own, nor has the right to modify
+code contained within the kernel. V&V techniques in this
+situation are more difficult than if the complete source code
+were available. Responsibility for system failures due to faulty
+software is yet another area to be resolved under this
+environment.
+
+The Guidance and Control Directorate began a software
+development effort to address these problems. A project to
+develop an experimental run time kernel was begun that will
+eliminate the major drawbacks of the Ada programming language
+mentioned above. The Real Time Executive for Multiprocessor Systems
+(RTEMS) provides full capabilities for management of tasks,
+interrupts, time, and multiple processors in addition to those
+features typical of generic operating systems. The code is
+Government owned, so no licensing fees are necessary. RTEMS has
+been implemented in both the Ada and C programming languages.
+It has been ported to the following processor families:
+
+@itemize @bullet
+@item Intel i386 and above
+@item Intel i960
+@item Motorola MC68xxx
+@item Motorola MC683xx
+@item Motorola ColdFire
+@item ARM
+@item MIPS
+@item PowerPC
+@item SPARC
+@item Hitachi SH
+@item Hitachi H8/300
+@item Texas Instruments C3x/C4x
+@item OpenCores OR32
+@item UNIX
+@end itemize
+
+Support for other processor families, including RISC, CISC, and DSP, is
+planned. Since almost all of RTEMS is written in a high level language,
+ports to additional processor families require minimal effort.
+
+RTEMS multiprocessor support is capable of handling
+either homogeneous or heterogeneous systems. The kernel
+automatically compensates for architectural differences (byte
+swapping, etc.) between processors. This allows a much easier
+transition from one processor family to another without a major
+system redesign.
+
+Since the proposed standards are still in draft form,
+RTEMS cannot and does not claim compliance. However, the status
+of the standard is being carefully monitored to guarantee that
+RTEMS provides the functionality specified in the standard.
+Once approved, RTEMS will be made compliant.
+
+This document is a detailed users guide for a
+functionally compliant real-time multiprocessor executive. It
+describes the user interface and run-time behavior of Release
+@value{VERSION} of the @value{LANGUAGE} interface
+to RTEMS.
+
diff --git a/doc/user/region.t b/doc/user/region.t
new file mode 100644
index 0000000000..4b90443049
--- /dev/null
+++ b/doc/user/region.t
@@ -0,0 +1,665 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@chapter Region Manager
+
+@cindex regions
+
+@section Introduction
+
+The region manager provides facilities to dynamically
+allocate memory in variable sized units. The directives
+provided by the region manager are:
+
+@itemize @bullet
+@item @code{@value{DIRPREFIX}region_create} - Create a region
+@item @code{@value{DIRPREFIX}region_ident} - Get ID of a region
+@item @code{@value{DIRPREFIX}region_delete} - Delete a region
+@item @code{@value{DIRPREFIX}region_extend} - Add memory to a region
+@item @code{@value{DIRPREFIX}region_get_segment} - Get segment from a region
+@item @code{@value{DIRPREFIX}region_return_segment} - Return segment to a region
+@item @code{@value{DIRPREFIX}region_get_segment_size} - Obtain size of a segment
+@end itemize
+
+@section Background
+
+@subsection Region Manager Definitions
+
+@cindex region, definition
+@cindex segment, definition
+
+A region makes up a physically contiguous memory
+space with user-defined boundaries from which variable-sized
+segments are dynamically allocated and deallocated. A segment
+is a variable size section of memory which is allocated in
+multiples of a user-defined page size. This page size is
+required to be a multiple of four greater than or equal to four.
+For example, if a request for a 350-byte segment is made in a
+region with 256-byte pages, then a 512-byte segment is allocated.
+
+Regions are organized as doubly linked chains of
+variable sized memory blocks. Memory requests are allocated
+using a first-fit algorithm. If available, the requester
+receives the number of bytes requested (rounded up to the next
+page size). RTEMS requires some overhead from the region's
+memory for each segment that is allocated. Therefore, an
+application should only modify the memory of a segment that has
+been obtained from the region. The application should NOT
+modify the memory outside of any obtained segments and within
+the region's boundaries while the region is currently active in
+the system.
+
+Upon return to the region, the free block is
+coalesced with its neighbors (if free) on both sides to produce
+the largest possible unused block.
+
+@subsection Building an Attribute Set
+
+@cindex region attribute set, building
+
+In general, an attribute set is built by a bitwise OR
+of the desired attribute components. The set of valid region
+attributes is provided in the following table:
+
+@itemize @bullet
+@item @code{@value{RPREFIX}FIFO} - tasks wait by FIFO (default)
+@item @code{@value{RPREFIX}PRIORITY} - tasks wait by priority
+@end itemize
+
+Attribute values are specifically designed to be
+mutually exclusive, therefore bitwise OR and addition operations
+are equivalent as long as each attribute appears exactly once in
+the component list. An attribute listed as a default is not
+required to appear in the attribute list, although it is a good
+programming practice to specify default attributes. If all
+defaults are desired, the attribute
+@code{@value{RPREFIX}DEFAULT_ATTRIBUTES} should be
+specified on this call.
+
+This example demonstrates the attribute_set parameter
+needed to create a region with the task priority waiting queue
+discipline. The attribute_set parameter to the
+@code{@value{DIRPREFIX}region_create}
+directive should be @code{@value{RPREFIX}PRIORITY}.
+
+@subsection Building an Option Set
+
+In general, an option is built by a bitwise OR of the
+desired option components. The set of valid options for the
+@code{@value{DIRPREFIX}region_get_segment} directive are
+listed in the following table:
+
+@itemize @bullet
+@item @code{@value{RPREFIX}WAIT} - task will wait for semaphore (default)
+@item @code{@value{RPREFIX}NO_WAIT} - task should not wait
+@end itemize
+
+Option values are specifically designed to be
+mutually exclusive, therefore bitwise OR and addition operations
+are equivalent as long as each option appears exactly once in
+the component list. An option listed as a default is not
+required to appear in the option list, although it is a good
+programming practice to specify default options. If all
+defaults are desired, the option
+@code{@value{RPREFIX}DEFAULT_OPTIONS} should be
+specified on this call.
+
+This example demonstrates the option parameter needed
+to poll for a segment. The option parameter passed to the
+@code{@value{DIRPREFIX}region_get_segment} directive should
+be @code{@value{RPREFIX}NO_WAIT}.
+
+@section Operations
+
+@subsection Creating a Region
+
+The @code{@value{DIRPREFIX}region_create} directive creates a region with the
+user-defined name. The user may select FIFO or task priority as
+the method for placing waiting tasks in the task wait queue.
+RTEMS allocates a Region Control Block (RNCB) from the RNCB free
+list to maintain the newly created region. RTEMS also generates
+a unique region ID which is returned to the calling task.
+
+It is not possible to calculate the exact number of
+bytes available to the user since RTEMS requires overhead for
+each segment allocated. For example, a region with one segment
+that is the size of the entire region has more available bytes
+than a region with two segments that collectively are the size
+of the entire region. This is because the region with one
+segment requires only the overhead for one segment, while the
+other region requires the overhead for two segments.
+
+Due to automatic coalescing, the number of segments
+in the region dynamically changes. Therefore, the total
+overhead required by RTEMS dynamically changes.
+
+@subsection Obtaining Region IDs
+
+When a region is created, RTEMS generates a unique
+region ID and assigns it to the created region until it is
+deleted. The region ID may be obtained by either of two
+methods. First, as the result of an invocation of the
+@code{@value{DIRPREFIX}region_create} directive,
+the region ID is stored in a user
+provided location. Second, the region ID may be obtained later
+using the @code{@value{DIRPREFIX}region_ident} directive.
+The region ID is used by other region manager directives to
+access this region.
+
+@subsection Adding Memory to a Region
+
+The @code{@value{DIRPREFIX}region_extend} directive may be used to add memory
+to an existing region. The caller specifies the size in bytes
+and starting address of the memory being added.
+
+NOTE: Please see the release notes or RTEMS source
+code for information regarding restrictions on the location of
+the memory being added in relation to memory already in the
+region.
+
+@subsection Acquiring a Segment
+
+The @code{@value{DIRPREFIX}region_get_segment} directive attempts to acquire
+a segment from a specified region. If the region has enough
+available free memory, then a segment is returned successfully
+to the caller. When the segment cannot be allocated, one of the
+following situations applies:
+
+@itemize @bullet
+@item By default, the calling task will wait forever to acquire the segment.
+
+@item Specifying the @code{@value{RPREFIX}NO_WAIT} option forces
+an immediate return with an error status code.
+
+@item Specifying a timeout limits the interval the task will
+wait before returning with an error status code.
+@end itemize
+
+If the task waits for the segment, then it is placed
+in the region's task wait queue in either FIFO or task priority
+order. All tasks waiting on a region are returned an error when
+the message queue is deleted.
+
+@subsection Releasing a Segment
+
+When a segment is returned to a region by the
+@code{@value{DIRPREFIX}region_return_segment} directive, it is merged with its
+unallocated neighbors to form the largest possible segment. The
+first task on the wait queue is examined to determine if its
+segment request can now be satisfied. If so, it is given a
+segment and unblocked. This process is repeated until the first
+task's segment request cannot be satisfied.
+
+@subsection Obtaining the Size of a Segment
+
+The @code{@value{DIRPREFIX}region_get_segment_size} directive returns the
+size in bytes of the specified segment. The size returned
+includes any "extra" memory included in the segment because of
+rounding up to a page size boundary.
+
+@subsection Deleting a Region
+
+A region can be removed from the system and returned
+to RTEMS with the @code{@value{DIRPREFIX}region_delete}
+directive. When a region is
+deleted, its control block is returned to the RNCB free list. A
+region with segments still allocated is not allowed to be
+deleted. Any task attempting to do so will be returned an
+error. As a result of this directive, all tasks blocked waiting
+to obtain a segment from the region will be readied and returned
+a status code which indicates that the region was deleted.
+
+@section Directives
+
+This section details the region manager's directives.
+A subsection is dedicated to each of this manager's directives
+and describes the calling sequence, related constants, usage,
+and status codes.
+
+@c
+@c
+@c
+@page
+@subsection REGION_CREATE - Create a region
+
+@cindex create a region
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_region_create
+@example
+rtems_status_code rtems_region_create(
+ rtems_name name,
+ void *starting_address,
+ rtems_unsigned32 length,
+ rtems_unsigned32 page_size,
+ rtems_attribute attribute_set,
+ rtems_id *id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Region_Create (
+ Name : in RTEMS.Name;
+ Starting_Address : in RTEMS.Address;
+ Length : in RTEMS.Unsigned32;
+ Page_Size : in RTEMS.Unsigned32;
+ Attribute_Set : in RTEMS.Attribute;
+ ID : out RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+
+@code{@value{RPREFIX}SUCCESSFUL} - region created successfully@*
+@code{@value{RPREFIX}INVALID_NAME} - invalid task name@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{id} is NULL@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{starting_address} is NULL@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - address not on four byte boundary@*
+@code{@value{RPREFIX}TOO_MANY} - too many regions created@*
+@code{@value{RPREFIX}INVALID_SIZE} - invalid page size
+
+@subheading DESCRIPTION:
+
+This directive creates a region from a physically
+contiguous memory space which starts at starting_address and is
+length bytes long. Segments allocated from the region will be a
+multiple of page_size bytes in length. The assigned region id
+is returned in id. This region id is used as an argument to
+other region related directives to access the region.
+
+For control and maintenance of the region, RTEMS
+allocates and initializes an RNCB from the RNCB free pool. Thus
+memory from the region is not used to store the RNCB. However,
+some overhead within the region is required by RTEMS each time a
+segment is constructed in the region.
+
+Specifying @code{@value{RPREFIX}PRIORITY} in attribute_set causes tasks
+waiting for a segment to be serviced according to task priority.
+Specifying @code{@value{RPREFIX}FIFO} in attribute_set or selecting
+@code{@value{RPREFIX}DEFAULT_ATTRIBUTES} will cause waiting tasks to
+be serviced in First In-First Out order.
+
+The starting_address parameter must be aligned on a
+four byte boundary. The page_size parameter must be a multiple
+of four greater than or equal to four.
+
+@subheading NOTES:
+
+This directive will not cause the calling task to be
+preempted.
+
+The following region attribute constants are defined
+by RTEMS:
+
+@itemize @bullet
+@item @code{@value{RPREFIX}FIFO} - tasks wait by FIFO (default)
+@item @code{@value{RPREFIX}PRIORITY} - tasks wait by priority
+@end itemize
+
+@c
+@c
+@c
+@page
+@subsection REGION_IDENT - Get ID of a region
+
+@cindex get ID of a region
+@cindex obtain ID of a region
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_region_ident
+@example
+rtems_status_code rtems_region_ident(
+ rtems_name name,
+ rtems_id *id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Region_Ident (
+ Name : in RTEMS.Name;
+ ID : out RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+
+@code{@value{RPREFIX}SUCCESSFUL} - region identified successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{id} is NULL@*
+@code{@value{RPREFIX}INVALID_NAME} - region name not found
+
+@subheading DESCRIPTION:
+
+This directive obtains the region id associated with
+the region name to be acquired. If the region name is not
+unique, then the region id will match one of the regions with
+that name. However, this region id is not guaranteed to
+correspond to the desired region. The region id is used to
+access this region in other region manager directives.
+
+@subheading NOTES:
+
+This directive will not cause the running task to be preempted.
+
+@c
+@c
+@c
+@page
+@subsection REGION_DELETE - Delete a region
+
+@cindex delete a region
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_region_delete
+@example
+rtems_status_code rtems_region_delete(
+ rtems_id id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Region_Delete (
+ ID : in RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+
+@code{@value{RPREFIX}SUCCESSFUL} - region deleted successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid region id@*
+@code{@value{RPREFIX}RESOURCE_IN_USE} - segments still in use
+
+@subheading DESCRIPTION:
+
+This directive deletes the region specified by id.
+The region cannot be deleted if any of its segments are still
+allocated. The RNCB for the deleted region is reclaimed by
+RTEMS.
+
+@subheading NOTES:
+
+This directive will not cause the calling task to be preempted.
+
+The calling task does not have to be the task that
+created the region. Any local task that knows the region id can
+delete the region.
+
+@c
+@c
+@c
+@page
+@subsection REGION_EXTEND - Add memory to a region
+
+@cindex add memory to a region
+@cindex region, add memory
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_region_extend
+@example
+rtems_status_code rtems_region_extend(
+ rtems_id id,
+ void *starting_address,
+ rtems_unsigned32 length
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Region_Extend (
+ ID : in RTEMS.ID;
+ Starting_Address : in RTEMS.Address;
+ Length : in RTEMS.Unsigned32;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+
+@code{@value{RPREFIX}SUCCESSFUL} - region extended successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{starting_address} is NULL@*
+@code{@value{RPREFIX}INVALID_ID} - invalid region id@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - invalid address of area to add
+
+@subheading DESCRIPTION:
+
+This directive adds the memory which starts at
+starting_address for length bytes to the region specified by id.
+
+@subheading NOTES:
+
+This directive will not cause the calling task to be preempted.
+
+The calling task does not have to be the task that
+created the region. Any local task that knows the region id can
+extend the region.
+
+@c
+@c
+@c
+@page
+@subsection REGION_GET_SEGMENT - Get segment from a region
+
+@cindex get segment from region
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_region_get_segment
+@example
+rtems_status_code rtems_region_get_segment(
+ rtems_id id,
+ rtems_unsigned32 size,
+ rtems_option option_set,
+ rtems_interval timeout,
+ void **segment
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Region_Get_Segment (
+ ID : in RTEMS.ID;
+ Size : in RTEMS.Unsigned32;
+ Option_Set : in RTEMS.Option;
+ Timeout : in RTEMS.Interval;
+ Segment : out RTEMS.Address;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+
+@code{@value{RPREFIX}SUCCESSFUL} - segment obtained successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{segment} is NULL@*
+@code{@value{RPREFIX}INVALID_ID} - invalid region id@*
+@code{@value{RPREFIX}INVALID_SIZE} - request is for zero bytes or exceeds
+the size of maximum segment which is possible for this region@*
+@code{@value{RPREFIX}UNSATISFIED} - segment of requested size not available@*
+@code{@value{RPREFIX}TIMEOUT} - timed out waiting for segment@*
+@code{@value{RPREFIX}OBJECT_WAS_DELETED} - semaphore deleted while waiting
+
+@subheading DESCRIPTION:
+
+This directive obtains a variable size segment from
+the region specified by id. The address of the allocated
+segment is returned in segment. The @code{@value{RPREFIX}WAIT}
+and @code{@value{RPREFIX}NO_WAIT} components
+of the options parameter are used to specify whether the calling
+tasks wish to wait for a segment to become available or return
+immediately if no segment is available. For either option, if a
+sufficiently sized segment is available, then the segment is
+successfully acquired by returning immediately with the
+@code{@value{RPREFIX}SUCCESSFUL} status code.
+
+If the calling task chooses to return immediately and
+a segment large enough is not available, then an error code
+indicating this fact is returned. If the calling task chooses
+to wait for the segment and a segment large enough is not
+available, then the calling task is placed on the region's
+segment wait queue and blocked. If the region was created with
+the @code{@value{RPREFIX}PRIORITY} option, then the calling
+task is inserted into the
+wait queue according to its priority. However, if the region
+was created with the @code{@value{RPREFIX}FIFO} option, then the calling
+task is placed at the rear of the wait queue.
+
+The timeout parameter specifies the maximum interval
+that a task is willing to wait to obtain a segment. If timeout
+is set to @code{@value{RPREFIX}NO_TIMEOUT}, then the
+calling task will wait forever.
+
+@subheading NOTES:
+
+The actual length of the allocated segment may be
+larger than the requested size because a segment size is always
+a multiple of the region's page size.
+
+The following segment acquisition option constants
+are defined by RTEMS:
+
+@itemize @bullet
+@item @code{@value{RPREFIX}WAIT} - task will wait for semaphore (default)
+@item @code{@value{RPREFIX}NO_WAIT} - task should not wait
+@end itemize
+
+A clock tick is required to support the timeout functionality of
+this directive.
+
+@c
+@c
+@c
+@page
+@subsection REGION_RETURN_SEGMENT - Return segment to a region
+
+@cindex return segment to region
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_region_return_segment
+@example
+rtems_status_code rtems_region_return_segment(
+ rtems_id id,
+ void *segment
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Region_Return_Segment (
+ ID : in RTEMS.ID;
+ Segment : in RTEMS.Address;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+
+@code{@value{RPREFIX}SUCCESSFUL} - segment returned successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{segment} is NULL@*
+@code{@value{RPREFIX}INVALID_ID} - invalid region id@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - segment address not in region
+
+@subheading DESCRIPTION:
+
+This directive returns the segment specified by
+segment to the region specified by id. The returned segment is
+merged with its neighbors to form the largest possible segment.
+The first task on the wait queue is examined to determine if its
+segment request can now be satisfied. If so, it is given a
+segment and unblocked. This process is repeated until the first
+task's segment request cannot be satisfied.
+
+@subheading NOTES:
+
+This directive will cause the calling task to be
+preempted if one or more local tasks are waiting for a segment
+and the following conditions exist:
+
+@itemize @bullet
+@item a waiting task has a higher priority than the calling task
+
+@item the size of the segment required by the waiting task
+is less than or equal to the size of the segment returned.
+@end itemize
+
+@c
+@c
+@c
+@page
+@subsection REGION_GET_SEGMENT_SIZE - Obtain size of a segment
+
+@cindex get size of segment
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_region_get_segment_size
+@example
+rtems_status_code rtems_region_get_segment_size(
+ rtems_id id,
+ void *segment,
+ rtems_unsigned32 *size
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Region_Get_Segment_Size (
+ ID : in RTEMS.ID;
+ Segment : in RTEMS.Address;
+ Size : out RTEMS.Unsigned32;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+
+@code{@value{RPREFIX}SUCCESSFUL} - segment obtained successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{segment} is NULL@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{size} is NULL@*
+@code{@value{RPREFIX}INVALID_ID} - invalid region id@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - segment address not in region
+
+@subheading DESCRIPTION:
+
+This directive obtains the size in bytes of the specified segment.
+
+@subheading NOTES:
+
+The actual length of the allocated segment may be
+larger than the requested size because a segment size is always
+a multiple of the region's page size.
+
diff --git a/doc/user/rtemsarc.gif b/doc/user/rtemsarc.gif
new file mode 100644
index 0000000000..fea62ecb42
--- /dev/null
+++ b/doc/user/rtemsarc.gif
Binary files differ
diff --git a/doc/user/rtemsarc.png b/doc/user/rtemsarc.png
new file mode 100644
index 0000000000..13c3b30789
--- /dev/null
+++ b/doc/user/rtemsarc.png
Binary files differ
diff --git a/doc/user/rtemspie.eps b/doc/user/rtemspie.eps
new file mode 100644
index 0000000000..ad0eebbb5f
--- /dev/null
+++ b/doc/user/rtemspie.eps
@@ -0,0 +1,2164 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (rtemspie.eps)
+%%CreationDate: (Wed Oct 6 10:47:26 1999)
+%%BoundingBox: 0 213 495 508
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/byte 1 string def
+/color_packet 3 string def
+/pixels 768 string def
+
+/DirectClassPacket
+{
+ %
+ % Get a DirectClass packet.
+ %
+ % Parameters:
+ % red.
+ % green.
+ % blue.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ compression 0 gt
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { DirectClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayDirectClassPacket } image
+ } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+ %
+ % Get a DirectClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % red
+ % green
+ % blue
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 gt
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 gt
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ compression 0 gt
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % class: 0-PseudoClass or 1-Grayscale.
+ %
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ class 0 gt
+ {
+ currentfile buffer readline pop
+ token pop /depth exch def pop
+ /grays columns 8 add depth sub depth mul 8 idiv string def
+ columns rows depth
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { currentfile grays readhexstring pop } image
+ }
+ {
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ % colormap: red, green, blue color packets.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ /colors colors 3 mul def
+ /colormap colors string def
+ currentfile colormap readhexstring pop pop
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { PseudoClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayPseudoClassPacket } image
+ } ifelse
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 213 495 508
+userdict begin
+%%BeginData:
+DisplayImage
+0 213
+495.101124 295.280899
+12
+1787 1066
+1
+0
+0
+256
+000000
+000033
+000066
+000099
+0000cc
+0000ff
+003300
+003333
+003366
+003399
+0033cc
+0033ff
+006600
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff00
+00ff33
+00ff66
+00ff99
+00ffcc
+00ffff
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333300
+333333
+333366
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339933
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+666633
+666666
+666699
+6666cc
+6666ff
+669900
+669933
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990066
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+999966
+999999
+9999cc
+9999ff
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+cccc99
+cccccc
+ccccff
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0000
+ff0033
+ff0066
+ff0099
+ff00cc
+ff00ff
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6633
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff00
+ffff33
+ffff66
+ffff99
+ffffcc
+ffffff
+000000
+0d0d0d
+1a1a1a
+282828
+353535
+434343
+505050
+5d5d5d
+6b6b6b
+787878
+868686
+939393
+a1a1a1
+aeaeae
+bbbbbb
+c9c9c9
+d6d6d6
+e4e4e4
+f1f1f1
+ffffff
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+d7ffd7ffd7ffd7ffd7ffd7ffd7ffd7ffd7ffd7ffd75b002dd7ffd7ffd7ffd7ffd7ffd7ff
+d7aa0071d7ffd7ffd7ffd7ffd7ffd7ffd772009dd7ffd7ffd7ffd7ffd7ffd7ffd74900c3
+d7ffd7ffd7ffd7ffd7ffd7ffd72700e1d7ffd7ffd7ffd7ffd7ffd7ffd70a00fdd7ffd7ff
+d7ffd7ffd7ffd7ef00ff0017d7ffd7ffd7ffd7ffd7ffd7d700ff002dd7ffd7ffd7ffd7ff
+d7ffd7c200ff0041d7ffd7ffd7ffd7ffd7ffd7ad0072d7710072d7ffd7ffd7ffd7ffd7ff
+d7990065d79d0065d7ffd7ffd7ffd7ffd7ffd789005bd7bf005bd7ffd7ffd7ffd7ffd7ff
+d77b0057d7d50057d7ffd7ffd7ffd7ffd7ffd76c0055d7e90055d7ffd7ffd7ffd7ffd7ff
+d75d0051d7780000d7850051d7ffd7ffd7ffd7ffd7ffd74f004dd7830000d790004dd7ff
+d7ffd7ffd7ffd7ffd7410049d78e0000d79b0049d7ffd7ffd7ffd7ffd7ffd7340044d799
+0000d7a60044d7ffd7ffd7ffd7ffd7ffd728003fd7ffd757003fd7ffd7ffd7ffd7ffd7ff
+d71c003cd7ffd769003cd7ffd7ffd7ffd7ffd7ffd710003bd7ffd777003bd7ffd7ffd7ff
+d7ffd7ffd704003ad7ffd785003ad7ffd7ffd7ffd7ffd7f80039d7ffd7930039d7ffd7ff
+d7ffd7ffd7ed0037d7c90000d7d60037d7ffd7ffd7ffd7ffd7e30035d7d00000d7dd0035
+d7ffd7ffd7ffd7ffd7d90033d7d70000d7e40033d7ffd7ffd7ffd7ffd7cf0031d7de0000
+d7eb0031d7ffd7ffd7ffd7ffd7c40030d7ffd7d90030d7ffd7ffd7ffd7ffd7b9002ed7ff
+d7e7002ed7ffd7ffd7ffd7ffd7af002cd7ffd7f5002cd7ffd7ffd7ffd7ffd7a5002ad7ff
+d7ffd703002ad7ffd7ffd7ffd7ffd79b0029d7ffd7ffd70f0029d7ffd7ffd7ffd7ffd792
+0029d7ffd7040000d7ffd7110029d7ffd7ffd7ffd7ffd7890029d7ffd7090000d7ffd716
+0029d7ffd7ffd7ffd7ffd7800029d7ffd70d0000d7ffd71a0029d7ffd7ffd7ffd7ffd777
+0029d7ffd7120000d7ffd71f0029d7ffd7ffd7ffd7ffd76e0028d7ffd7ffd73d0028d7ff
+d7ffd7ffd7ffd7660028d7ffd7ffd7450028d7ffd7ffd7ffd7ffd75d0028d7ffd7ffd74f
+0028d7ffd7ffd7ffd7ffd7540028d7ffd7ffd7570028d7ffd7ffd7ffd7ffd74b0028d7ff
+d7ffd7610027d7ffd7ffd7ffd7ffd7430028d7ffd72d0000d7ffd73a0027d7ffd7ffd7ff
+d7ffd73b0027d7ffd7320000d7ffd73e0027d7ffd7ffd7ffd7ffd7330027d7ffd7360000
+d7ffd7430026d7ffd7ffd7ffd7ffd72b0026d7ffd73b0000d7ffd7470026d7ffd7ffd7ff
+d7ffd7230026d7ffd7ffd78c0026d7ffd7ffd7ffd7ffd71b0026d7ffd7ffd7950025d7ff
+d7ffd7ffd7ffd7130025d7ffd7ffd79e0025d7ffd7ffd7ffd7ffd70b0025d7ffd7ffd79c
+0000d7080025d7ffd7ffd7ffd7ffd7030025d7ffd7ffd7a00000d70d0024d7ffd7ffd7ff
+d7fc0024d7ffd7540000d7ffd74d0000d7120023d7ffd7ffd7ffd7f50024d7010000d7ff
+d7550000d7ffd74c0000d7170023d7ffd7ffd7ffd7ee0023d7060000d7ffd7540000d7ff
+d7690022d7ffd7ffd7ffd7e70023d70a0000d7ffd7540000d7ffd76d0022d7ffd7ffd7ff
+d7e00022d70f0000d7ffd7ffd7c60021d7ffd7ffd7ffd7d90022d7ffd7ffd7b30000d72a
+0021d7ffd7ffd7ffd7d20021d7ffd7ffd7b60000d72f0021d7ffd7ffd7ffd7cb0020d7ff
+d7ffd7ba0000d7330020d7ffd7ffd7ffd7c40020d7230000d7ffd7ffd7980000d7380020
+d7ffd7ffd7ffd7bd0020d7260000d7ffd74f0000d7ffd7840020d7ffd7ffd7ffd7b60020
+d72b0000d7ffd74e0000d7ffd7880020d7ffd7ffd7ffd7af0020d72f0000d7ffd74d0000
+d7ffd78b0020d7ffd7ffd7ffd7a9001fd7ffd7820000d7ffd78e0020d7ffd7ffd7ffd7a3
+001fd7ffd7ffd7ca0000d74d001fd7ffd7ffd7ffd79d001ed7ffd7ffd7ce0000d750001f
+d7ffd7ffd7ffd797001ed7ffd7ffd7d00000d754001fd7ffd7ffd7ffd791001ed7430000
+d7ffd7ffd78d0000d759001ed7ffd7ffd7ffd78a001ed7470000d7ffd7ffd7eb001fd7ff
+d7ffd7ffd783001ed74b0000d7ffd7490000d7ffd7a2001fd7ffd7ffd7ffd77d001dd750
+0000d7ffd7480000d7ffd7a6001ed7ffd7ffd7ffd777001dd7ffd79d0000d7ffd7a9001e
+d7ffd7ffd7ffd771001dd7ffd7a00000d7ffd73e0000d76c001ed7ffd7ffd7ffd76b001d
+d7ffd7ffd7e30000d76f001ed7ffd7ffd7ffd765001dd7ffd7ffd7e50000d773001ed7ff
+d7ffd7ffd75f001dd7630000d7ffd7ffd7820000d777001ed7ffd7ffd7ffd75a001cd766
+0000d7ffd7ffd7fe001dd7ffd7ffd7ffd755001cd76a0000d7ffd7ffd7ffd701001cd7ff
+d7ffd7ffd74f001cd76e0000d7ffd7420000d7ffd7bf001cd7ffd7ffd7ffd749001cd7ff
+d7b50000d7ffd7c2001cd7ffd7ffd7ffd743001cd7e40001d7170001d71f0002d7080001
+d73f0002d7460000d7ffd7390000d78a001cd7ffd7ffd7ffd73e001bd7e60004d7130005
+d71b0004d7070004d73c0004d7450000d7ffd7380000d78e001bd7ffd7ffd7ffd739001b
+d77d0000d740000dd71a0005d7130005d7190006d7060005d73b0005d7ffd77f0000d791
+001bd7ffd7ffd7ffd733001bd7800000d7420008d71d0005d7130005d7180007d7060005
+d73b0005d7ffd77e0000d795001bd7ffd7ffd7ffd72d001bd7840000d7430006d71d0005
+d7090001d7070005d7180000d7010004d7060005d7320000d7080004d7ffd7ffd718001b
+d7ffd7ffd7ffd728001bd7870000d7430004d7200002d70a0001d7080003d71c0004d707
+0003d7330000d7090003d7ffd7ffd71a001bd7ffd7ffd7ffd723001bd7cf0004d72e0001
+d7290004d73f0000d7ffd7ffd72b001bd7ffd7ffd7ffd71d001bd7d20004d72d0002d729
+0004d73e0001d7530000d7ffd7d9001bd7ffd7ffd7ffd718001ad7d50004d72d0002d729
+0004d73d0002d7530000d7ffd7330000d7a7001ad7ffd7ffd7ffd7140019d7d80004d72c
+0003d7290004d73c0003d7530000d7ffd7320000d7ab0019d7ffd7ffd7ffd7100019d799
+0000d73f0004d72a0005d7290004d73b0004d7530000d7a40002d7890000d7ae0019d7ff
+d7ffd7ffd70b0019d79c0000d73f0004d7090002d7020004d70c0002d7050009d7060002
+d7080007d70a0004d7090002d7050011d7050006d708000ad7050002d70b0006d70c0002
+d7030004d7bd0004d7ffd73c0019d7ffd7ffd7ffd7060018d7a00000d73e0004d7060005
+d7010007d7070005d703000bd7030005d707000ad7080004d7060005d7050011d704000a
+d703000cd7020005d709000ad7070005d7010008d77a0019d7240006d7ffd73f0018d7ff
+d7ffd7ffd7020017d7e30004d7040007d7000009d7040007d703000bd7010007d7050005
+d7010005d7070004d7040007d7050010d7030004d7020005d702000cd7000007d7080004
+d7020004d7040007d7000009d77a0019d7230007d7ffd7420017d7ffd7ffd7fd0018d7e5
+0004d7040012d7040007d7060004d7050007d7050003d7040005d7060004d7040007d705
+0002d7070005d7030003d7040004d7060003d7060006d7070004d7030005d7040012d779
+0004d7040005d7050003d7240000d7000004d7ffd7440018d7ffd7ffd7f80017d7e80004
+d7070007d7020005d7060004d7060004d7080004d7040004d7050004d7060004d7070004
+d7050001d7070005d7030003d7060003d7060003d7080004d7060004d7050005d7050007
+d7030005d7780002d7060005d7060002d7260004d7860000d7bf0017d7ffd7ffd7f40016
+d7eb0004d7070005d7050004d7060004d7060004d7080004d7040004d7050004d7060004
+d7070004d7050000d7080004d7040004d7050003d7060003d7090003d7060003d7070004
+d7050005d7060004d7150000d7610001d7070005d7070001d7270003d7850000d7c30016
+d7ffd7ffd7f00016d7b10000d73a0004d7070004d7060004d7060004d7060004d7080004
+d7040004d7060003d7060004d7070004d7050000d7070004d7050004d7050004d7050003
+d7090003d7060003d7070004d7050004d7070004d7150000d7610001d7070005d7070001
+d7270003d7850000d7c50016d7ffd7ffd7eb0016d7b50000d7390004d7070004d7070003
+d7060004d7060004d7080004d7040004d7060003d7060004d7070004d70d0005d7050003
+d7060004d7050003d7090003d7050004d7080004d7040004d7070004d7150000d7610001
+d7070005d7080000d7270003d7840000d7c90016d7ffd7ffd7e60016d7b80000d7380004
+d7070004d7070003d7060004d7060004d7080004d70f0004d7060004d7070004d70c0005
+d7100005d7050003d7090003d7040005d7080004d7040004d7070004d7150000d76b0005
+d7310003d7ffd7510016d7ffd7ffd7e20016d7f40004d7070004d7070003d7060004d706
+0004d7080004d70c0007d7060004d7070004d70c0004d70f0007d7050003d7090003d704
+0005d7080005d7030004d7070004d7820005d7310003d7ffd7530016d7ffd7ffd7de0015
+d7f70004d7070004d7070003d7060004d7060004d7080004d7090005d7000003d7060004
+d7070004d70b0004d70c0005d7000004d7050003d7090003d7040005d7080005d7030004
+d7070004d7820005d70c0007d70b0006d7000001d7060003d7040009d7ffd7470015d7ff
+d7ffd7d90016d7f90004d7070004d7070003d7060004d7060004d7080004d7080003d703
+0003d7060004d7070004d70a0005d70b0004d7020004d7050003d7090003d7040005d708
+0005d7030004d7070004d7820005d70b000ad708000ad7060003d7040009d7ffd7490016
+d7ffd7ffd7d40015d7fc0004d7070004d7070003d7060004d7060004d7080004d7070003
+d7040003d7060004d7070004d7090005d70b0003d7040004d7050003d7090003d7040005
+d7090004d7030004d7070004d7820005d70a000cd706000bd7060003d7050004d7750000
+d7d90015d7ffd7ffd7d00015d7c70000d7350004d7070004d7070003d7060004d7060004
+d7080004d7050004d7050003d7060004d7070004d7080005d70b0003d7050004d7050003
+d7090003d7040005d7090004d7030004d7070004d7820005d7090004d7030005d7050002
+d7040003d7060003d7050002d7770000d7db0015d7ffd7ffd7cc0014d7ca0000d7350004
+d7070004d7070003d7060004d7060004d7080004d7040004d7060003d7060004d7070004
+d7080004d70b0003d7060004d7050003d7090003d7040005d7090004d7030004d7070004
+d7150000d76b0005d7080004d7050004d7040003d7050002d7060003d7040002d7770000
+d7df0014d7ffd7ffd7c70015d7cd0000d7340004d7070004d7070003d7060004d7060004
+d7080004d7040003d7070003d7060004d7070004d7070005d7070001d7000004d7060004
+d7050003d7090003d7050005d7080003d7040004d7070004d7150000d76b0005d7080004
+d7050004d7040003d7060001d7060003d7030002d7770000d7e20015d7ffd7ffd7c20015
+d7d00000d7330004d7070004d7070003d7060004d7060004d7080004d7040003d7070003
+d7060004d7070004d7060005d7080001d7000004d7060004d7050003d7090003d7050005
+d7070004d7040004d7070004d7150000d76b0005d7080004d7060003d7040003d7060001
+d7060003d7020001d7ffd75f0015d7ffd7ffd7be0014d7ffd7080004d7070004d7070003
+d7060004d7060004d7080004d7040004d7050004d7060004d7070004d7050005d7090001
+d7000004d7060004d7050003d7090003d7060004d7070003d7050004d7070004d7150000
+d76b0005d7080004d7060003d7040004d7050001d7060003d7010001d7ffd7630014d7ff
+d7ffd7b90015d7ffd70a0004d7070004d7070003d7060004d7060004d7010003d7020004
+d7040005d7020006d7010001d7020004d7070004d7050004d7090002d7000005d7020007
+d7000001d7020004d7010002d7030003d7070003d7070003d7050004d7070004d7820005
+d70a0001d7060004d7040006d70c0003d7000001d7ffd7660015d7ffd7ffd7b40014d7ff
+d70c0006d7060004d7060005d7050005d7050009d7020005d704000ad7000007d7020004
+d7070005d7030005d7070004d7000013d7020009d7020005d7060005d7040003d7060005
+d7060004d7820005d7100007d7040008d70a0007d7ffd7680014d7ffd7ffd7b00014d7dd
+0000d72b000dd700000ad7010009d700000ad7040007d701000ad7010009d7010006d700
+000ad701000ad7000013d7010008d7010006d7030007d701000ad705000bd705000ad701
+000ad77f0005d70e0004d7000003d7060008d7080008d7760000d7f10014d7ffd7ffd7ac
+0014d7e00000d72a000dd700000ad7010009d700000ad7040006d702000ad7030006d702
+0004d702000ad701000ad7000013d7020006d7030004d7050006d701000ad7070008d706
+000ad701000ad77f0005d70c0005d7010003d7080007d7070009d7750000d7f30014d7ff
+d7ffd7a70015d7e20000d7640001d7140002d7060001d7360002d7060000d70a0001d71b
+0001d7a10005d70b0003d7040003d7090007d7060009d7740000d7f60015d7ffd7ffd7a2
+0014d7e60000d7ffd7280000d76b0005d7090004d7050003d70b0005d7060003d7000005
+d7720000d7fa0014d7ffd7ffd79e0014d7ffd7ffd7120000d76b0005d7080004d7060003
+d70d0004d7050003d7010005d7ffd76f0014d7ffd7ffd79a0014d7ffd7ffd7140000d76b
+0005d7080003d7070003d7040000d7070004d7050003d7020005d7ffd7700014d7ffd7ff
+d7950014d7ffd7ffd7170000d76b0005d7080003d7070003d7040001d7070004d7040003
+d7020005d7ffd7730014d7ffd7ffd7900014d7f30000d7ffd7910005d7080003d7060004
+d7040001d7080003d7040003d7030005d7ffd7740014d7ffd7ffd78c0014d7f50000d7ff
+d7910005d7080005d7020006d7010001d7000002d7060003d7040004d7040005d76a0000
+d7ffd7090014d7ffd7ffd7880014d7f80000d7ffd7900005d7080013d7000003d7050002
+d7050004d7050005d7690000d7ffd70b0014d7ffd7ffd7840013d7fc0000d7ffd78b000d
+d704000ad7000006d701000bd703000ad7010009d7650000d7ffd70f0013d7ffd7ffd780
+0013d7ffd7ffd7220000d767000dd7060006d7020004d703000ad704000ad7010009d7ff
+d7780013d7ffd7ffd77c0013d7ffd7ffd7240000d77d0002d7060001d7050000d7040002
+d7ffd7980013d7ffd7ffd7780013d7ffd7ffd7260000d7ffd7ffd7330013d7ffd7ffd774
+0012d7ffd7080000d7ffd71f0000d7ffd7ffd7360012d7ffd7ffd7700012d7ffd70b0000
+d7ffd71e0000d7ffd7180000d77d0002d7340002d7650012d7ffd7ffd76c0012d7ffd70d
+0000d7ffd7ffd7380000d7660007d7030001d7060004d7320004d7670012d7ffd7ffd768
+0012d7ffd7100000d7ffd7ffd7360000d764000cd7010001d7040006d7300006d7690012
+d7ffd7ffd7640012d7ffd7ffd7ffd7490000d7630006d7020008d7030007d72f0007d76b
+0012d7ffd7ffd7600012d7ffd7ffd7ffd7af0004d7080005d7030000d7010004d72f0000
+d7000005d76d0012d7ffd7ffd75c0012d7ffd7ffd7350000d7ffd7790004d70b0003d706
+0004d7320004d76f0012d7ffd7ffd7580012d7ffd7ffd7370000d7ffd7780004d70d0002
+d7060004d7320004d7710012d7ffd7ffd7550011d7ffd71e0000d7ffd7190000d7ffd777
+0004d70f0002d7050004d7320004d7730011d7ffd7ffd7520011d7ffd7210000d7ffd718
+0000d7ffd7130000d7620004d70f0002d7050004d7320004d7750011d7ffd7ffd74e0011
+d7ffd7240000d7ffd7170000d7ffd7120000d7620005d7100001d7050004d7320004d777
+0011d7ffd7ffd74a0011d7ffd7ffd7ffd7530000d7620005d7100001d7050004d7320004
+d7790011d7ffd7ffd7460011d7ffd7ffd7ffd7540000d7620005d7110001d7050004d70b
+0006d70f0006d7080004d7030009d76d0011d7ffd7ffd7420011d7ffd7ffd7ffd7ba0005
+d7190004d709000ad70c0008d7070004d7030009d76f0011d7ffd7ffd73e0011d7ffd7ff
+d7ffd7bc0004d71a0004d708000cd709000cd7050004d7050004d7740011d7ffd7ffd73a
+0011d7ffd7310000d7ffd7140000d7ffd7750004d71a0004d7070004d7030004d7080002
+d7040005d7050004d7040003d7780011d7ffd7ffd7360012d7ffd7330000d7ffd7130000
+d7ffd7740005d71a0004d7060004d7050004d7070002d7050005d7040004d7040001d77b
+0012d7ffd7ffd7320012d7ffd7360000d7ffd7120000d7ffd70d0000d7650005d71a0004
+d7060003d7070004d7050003d7050005d7040004d7030001d77e0012d7ffd7ffd72e0012
+d7ffd7ffd74c0000d7ffd70d0000d7650005d71a0004d7060003d7070004d7050002d706
+0005d7040004d7020001d7810012d7ffd7ffd72a0012d7ffd7ffd74e0000d7ffd70c0000
+d7660005d71a0004d7050004d7080004d7030003d7080002d7050004d7010001d7840012
+d7ffd7ffd7260012d7ffd7ffd7ffd75d0000d7670005d71a0004d7040005d7080004d703
+0003d7110004d7000001d7870012d7ffd7ffd7220012d7ffd7ffd7ffd7c80005d71a0004
+d7040005d7080005d7010004d7110008d7880012d7ffd7ffd71e0012d7ffd7430000d7ff
+d7ffd7850005d71a0004d7040005d7080005d7010004d7110008d78a0012d7ffd7ffd71a
+0012d7ffd7460000d7ffd7ffd7850004d71a0004d7040005d7080005d7010004d7110009
+d78b0012d7ffd7ffd7170012d7ffd7470000d7ffd70e0000d7ffd7080000d76b0005d719
+0004d7040005d7090004d7010004d711000ad78b0012d7ffd7ffd7140012d7ffd74a0000
+d7ffd70d0000d7ffd7080000d76b0006d7110000d7050004d7040005d7090004d7010004
+d70b0000d7040004d7000005d78c0012d7ffd7ffd7100012d7ffd7ffd75b0000d7ffd707
+0000d76d0005d7110001d7040004d7040005d7090004d7010005d7090001d7040004d701
+0004d78e0012d7ffd7ffd70d0011d7ffd7ffd75d0000d7ffd7060000d76e0005d7100002
+d7040004d7050004d7090003d7030004d7090001d7040004d7020004d78f0011d7ffd7ff
+d70a0011d7ffd7ffd75f0000d7ffd7770005d70e0002d7050004d7050004d7080004d703
+0004d7080002d7040004d7020005d7900011d7ffd7ffd7060014d7ffd7530000d7ffd7ff
+d7820006d70c0001d7070004d7060004d7070003d7050005d7050002d7050004d7030005
+d7910010d7ffd7ffd7040016d7ffd7520000d7ffd7ffd7830007d7090002d7070004d706
+0004d7070003d705000ed7050004d7040005d78d0000d7030010d7ffd7ffd700001ad7ff
+d7510000d7ffd7ffd70d0000d7740009d7030004d7080005d7060005d7040003d707000c
+d7050005d7050005d78b0000d7060010d7ffd7fc001ed7ffd7500000d7ffd7ffd70b0000
+d778000ed706000ad705000bd70a000ad704000ad700000ad7910010d7ffd7fa0021d7b4
+0002d7ffd79f0000d7ffd7020000d77a000ad708000ad7070008d70c0008d705000ad700
+000ad7930010d7ffd7f60010d7000012d75e0017d7390005d70e0018d7ffd7770000d7ff
+d7010000d77e0004d7220001d7110003d7a30000d710000fd7ffd7f30011d7020013d75c
+0017d7370007d70e0018d7ffd7770000d7ffd7ffd7630001d7120010d7ffd7f00010d706
+0013d75d0014d7370007d7120014d7710000d7ffd7040000d7ffd7ffd7620000d7160010
+d7ffd7ec0011d7090013d75c0005d7090003d71b0000d71d0004d7130004d70a0003d772
+0000d7ffd7030000d7ffd7ffd77b0010d7ffd7e90011d70d0012d75b0005d70a0002d71b
+0000d71d0004d7130004d70b0002d7720000d7ffd7ffd7020000d7ffd77e0010d7ffd7e6
+0010d7100013d7590005d70a0002d71a0001d71d0004d7130004d70c0001d7730000d7ff
+d7ffd7010000d7ffd75e0000d720000fd7ffd7e30011d7130013d7570005d70b0001d719
+0002d71d0004d7130004d70c0001d7ffd7ffd7750000d7ffd75d0001d7220010d7ffd7df
+0011d7170013d7550005d70b0001d7190002d71d0004d7130004d70c0001d7ffd7ffd774
+0000d7ffd75d0000d7260010d7ffd7dc0011d71a0012d7540005d7260003d71d0004d713
+0004d7ffd7860000d7ffd7ffd7830010d7ffd7d90011d71d0013d7520005d7150004d709
+0005d70c0004d70b0004d7130004d7160002d7030001d7050002d7030001d70a0002d70f
+0001d7030001d7ffd7310000d7ffd7ffd7850010d7ffd7d60010d7210013d7500005d707
+0001d7090009d705000bd704000ad7080004d7130004d7090001d7080004d7010004d702
+0004d7020003d7070008d7090003d7020004d72f0000d7fe0000d7ffd7ffd7540001d730
+000fd7ffd7d30011d7240013d74e0005d7070001d708000cd702000cd703000cd7070004
+d7130004d7090001d7060006d700000dd7000006d704000ad7070005d7010005d7300000
+d7fd0000d7ffd7ffd7530000d7330010d7ffd7d00010d7280012d74d0005d7070001d707
+0004d7020005d7060003d7070004d7030004d7070004d7130004d7090001d705001ed702
+0004d7030005d7040006d7000007d7300000d7fc0000d7f80000d7ffd7580000d7360010
+d7ffd7cc0011d72a0013d74b0005d7060002d7070002d7060003d7060003d7070003d705
+0004d7060004d7130004d7080002d7050000d700000dd701000cd7020003d7060004d703
+0000d700000cd7ffd7ffd7280000d7ffd7920010d7ffd7ca0010d72e0013d749000fd706
+0003d7060003d7060003d7060004d7050004d7060004d7130010d7080005d7010003d702
+0006d7010003d7020003d7060004d7060005d7010003d7ffd7ffd7270000d7ffd7950010
+d7ffd7c60010d7320013d747000fd7060004d7050004d7050003d7060004d7050004d706
+0004d7130010d7080004d7040000d7030004d7040001d7020003d7080004d7050004d704
+0000d7ffd7ffd7ffd77f0001d73f000fd7ffd7c40010d7350012d7460005d7040004d706
+0003d7060004d7050003d7060004d7050004d7060004d7130004d7060004d7080004d709
+0004d7080004d7080005d7040003d7ffd7ffd7ffd7850000d7420010d7ffd7c00010d738
+0013d7440005d7060002d7070002d7050005d7050003d7070002d7050005d7060004d713
+0004d7080002d7080004d7090004d7080004d7080005d7040003d73c0000d7f90000d7ff
+d7ffd74b0000d745000fd7ffd7be0010d73b0013d7420005d7070001d70e0007d7050003
+d70e0007d7060004d7130004d7090001d7080004d7090004d7080004d7080005d7040003
+d73d0000d7f80000d7ffd7ffd7930010d7ffd7ba0010d73f0013d7400005d7070001d70c
+0009d7050003d70c0009d7060004d7130004d7090001d7080004d7090004d7070005d709
+0004d7040003d73e0000d7f70000d7f20000d7ffd7520000d74d000fd7ffd7b8000fd743
+0012d73f0005d7070001d70a0004d7010004d7050003d70b0003d7010004d7060004d713
+0004d7090001d7080004d7090004d7070005d7090004d7040003d7ffd7370000d7f10000
+d7ffd7510001d750000fd7ffd7b40010d7460012d73d0005d7120004d7030004d7050003
+d7080005d7020004d7060004d7130004d7140004d7090004d7070005d7090004d7040003
+d7ffd7370000d7f00000d7ffd7510000d7530010d7ffd7b1000fd7490013d73b0005d711
+0003d7050004d7050003d7080003d7040004d7060004d7130004d7140004d7090004d707
+0005d7090004d7040003d7ffd7ffd7ffd7d3000fd7ffd7ae0010d74c0013d7390005d710
+0004d7050004d7050003d7060004d7050004d7060004d7130004d70f0001d7020004d709
+0004d7080004d7090004d7040003d7ffd7ffd7ffd7d40010d7ffd7ab000fd7500012d738
+0005d7100003d7060004d7050003d7060003d7060004d7060004d7130004d70e0002d702
+0004d7090004d7080004d7090004d7040003d7420000d7ffd7ffd7ffd7330000d75d000f
+d7ffd7a80010d7530012d7360005d70f0004d7060004d7050003d7050004d7060004d706
+0004d7130004d70d0002d7030004d7090004d7080005d7080004d7040003d7420000d7ff
+d7ffd7ffd7310001d75f0010d7ffd7a5000fd7560013d7340005d70f0004d7060004d705
+0004d7040004d7060004d7060004d7130004d70c0003d7030004d7090004d7090004d708
+0003d7050003d7430000d7f20000d7ed0000d7ffd74c0000d763000fd7ffd7a20010d759
+0013d7320005d70f0005d7030006d7010000d7020004d7010008d7040005d7010001d702
+0004d7130004d70c0002d7040004d7090004d7090004d7070003d7060004d7ffd7360000
+d7ed0000d7ffd7b20010d7ffd79f000fd75d0012d7310005d70f0013d7020009d7000013
+d7020004d7120005d70b0003d7040004d7090004d70a0005d7050003d7060004d7ffd736
+0000d7ec0000d7ffd7b5000fd7ffd79d000ed7610012d72e0008d70e0011d7030008d701
+0011d7030006d7100015d7040006d7070006d70a0006d7010004d7050007d7ffd7350000
+d7eb0000d7ffd7490000d76d000ed7ffd79a000fd7630013d729000dd70d0007d7010005
+d7050006d7030008d7010004d702000ad70b0018d702000ad703000ad70a0009d706000a
+d7ffd7330000d7ffd7ffd7340001d76f000fd7ffd797000ed7670013d7440004d7040003
+d7070003d7060005d7030003d75d0005d7570000d7ffd7ffd7ffd7230000d773000ed7ff
+d795000ed76a0012d7ffd72e0000d7ffd7ffd7ffd799000ed7ffd792000ed76e0012d7ff
+d72d0000d7ffd7d70000d7ffd7c1000ed7ffd78f000ed7700013d7ffd72c0000d7ffd7d5
+0000d7ffd7450000d77c000ed7ffd78d000dd7740013d7ffd7ffd7180000d7e70000d7ff
+d7440000d77f000dd7ffd78a000ed7770012d7ffd7ffd7170000d7e60000d7ffd7440000
+d781000ed7ffd787000ed77a0012d7ffd7ffd7150000d7ffd7ffd7b0000ed7ffd785000d
+d77d0013d7ffd7280000d7e90000d7ffd7ffd7b2000dd7ffd782000ed7800013d7ffd726
+0000d7e90000d7ffd7ffd7260001d78a000ed7ffd77f000ed7830012d7ffd7260000d7ff
+d7cc0000d7ffd7410000d78d000ed7ffd77d000dd7870012d7ffd7250000d7ffd7cb0000
+d7ffd7400000d790000dd7ffd77a000ed7890013d7ffd7ffd7ef0000d7ffd7d4000ed7ff
+d777000dd78d0013d7ffd7ffd7ec0000d7ffd73d0000d798000dd7ffd775000dd7900012
+d7ffd7ffd7090000d7ffd7ffd71d0001d79a000dd7ffd772000ed7930012d7ffd7220000
+d7e30000d7ffd7ffd71c0000d79d000ed7ffd76f000dd7960013d7ffd7200000d7e30000
+d7ffd7ffd7bd000dd7ffd76d000dd7990013d7ffd71f0000d7e20000d7ffd7ffd7be000d
+d7ffd76a000ed79c0012d7ffd71f0000d7e10000d7dd0000d7ffd7380000d7a6000ed7ff
+d767000dd7a00012d7ffd7ffd7de0000d7ffd7370001d7a9000dd7ffd765000dd7a20013
+d7ffd7ffd7db0000d7ffd7370000d7ac000dd7ffd763000dd7a50013d7ffd7ffd7ffd7ff
+d7c1000dd7ffd760000dd7a90012d7ffd7ffd7ffd7ffd7c2000cd7ffd75e000dd7ac0012
+d7ffd7190000d7de0000d7ffd7ffd70e0001d7b5000dd7ffd75b000dd7af0012d7ffd718
+0000d7dd0000d7ffd7ffd70d0000d7b8000dd7ffd759000cd7b20013d7ffd7170000d7dc
+0000d7d70000d7ffd7330000d7bb000cd7ffd756000dd7b50012d7ffd7f40000d7d60000
+d7ffd7f2000cd7ffd754000dd7b80012d7ffd7f20000d7d50000d7ffd7f4000cd7ffd752
+000dd7bb0012d7ffd7ffd7ffd7f90000d7c3000dd7ffd74f000dd7bd0013d7ffd7ffd7ff
+d7f60000d7c5000dd7ffd74c000dd7c10012d7ffd7130000d7ffd7ffd7df0000d7c8000c
+d7ffd74a000dd7c40012d7ffd7110000d7ffd7ffd7ffd7aa000cd7ffd748000dd7c70012
+d7ffd7100000d7d70000d7d20000d7ffd72c0000d7cf000cd7ffd746000dd7c90013d7ff
+d7e70000d7d10000d7ffd72b0001d7d1000dd7ffd742000ed7cc0012d7ffd7e60000d7d0
+0000d7ffd72b0000d7d4000dd7ffd740000dd7d00012d7ffd7e40000d7ffd7ffd7d5000c
+d7ffd73e000dd7d30012d7ffd7e20000d7ffd7ffd7d6000cd7ffd73c000dd7d50013d7ff
+d70b0000d7ffd7ffd7cd0000d7dd000cd7ffd73a000dd7d80012d7ffd70a0000d7ffd7ff
+d7cb0001d7df000dd7ffd736000ed7db0012d7ffd7090000d7ffd7a10000d7ffd7260000
+d7e2000dd7ffd734000dd7df0012d7ffd7080000d7ffd79f0000d7ffd7ffd70d000cd7ff
+d732000dd7e10013d7ffd7d90000d7cc0000d7ffd7ffd70e000cd7ffd730000dd7e40012
+d7ffd7d80000d7cb0000d7ffd7230000d7eb000cd7ffd72e000dd7e70012d7ffd7d60000
+d7ffd7ee0001d7ed000dd7ffd72b000dd7ea0012d7ffd7040000d7ce0000d7ffd7ed0000
+d7f0000dd7ffd729000dd7ec0013d7ffd7020000d7ce0000d7ffd7ffd7e0000dd7ffd726
+000dd7f00012d7ffd7020000d7ffd7960000d7ffd7ffd719000cd7ffd724000dd7f30012
+d7ffd7010000d7ffd7950000d7ffd71e0001d7f9000cd7ffd722000dd7f60012d7ffd7ff
+d7950000d7ffd71e0000d7fc000dd7ffd71f000dd7f80013d7ffd7ffd7920000d7ffd71e
+0000d7fe000dd7ffd71d000dd7fb0012d7ffd7ca0000d7ffd7ffd7e6000dd7ffd71b000d
+d7fe0012d7fe0000d7c80000d7ffd7ffd7e7000dd7ffd719000dd7ffd7010012d7fc0000
+d7c80000d7ffd7e00001d7ffd705000dd7ffd716000dd7ffd7040013d7fb0000d7c70000
+d7c20000d7ffd71b0000d7ffd709000dd7ffd713000dd7ffd7070012d7fb0000d7c60000
+d7c20000d7ffd71a0000d7ffd70b000dd7ffd711000dd7ffd70a0012d7ffd7ffd7840000
+d7ffd7ffd729000dd7ffd70f000dd7ffd70d0012d7ffd7ffd7810000d7ffd7170000d7ff
+d712000dd7ffd70d000dd7ffd70f0013d7ffd7ffd7ffd7960001d7ffd714000dd7ffd70b
+000dd7ffd7120012d7f70000d7ffd7ffd79b0000d7ffd717000dd7ffd709000dd7ffd715
+0012d7f50000d7c30000d7ffd7ffd7f0000dd7ffd707000cd7ffd7190012d7f40000d7c2
+0000d7ffd7ffd7f2000cd7ffd705000cd7ffd71c0012d7f30000d7c10000d7bc0000d7ff
+d7130000d7ffd720000cd7ffd703000cd7ffd71e0012d7ffd7b50000d7bc0000d7ffd711
+0001d7ffd722000cd7ffd701000cd7ffd7210012d7ffd7b30000d7bb0000d7ffd7110000
+d7ffd725000cd7ff000cd7ffd7240012d7ffd7ffd7ffd7ffd7a9000cd7fd000cd7ffd727
+0012d7ffd7ffd7ffd7ffd7a8000cd7fb000cd7ffd7290012d7ef0000d7ffd7ffd7880000
+d7ffd72d000cd7fa000bd7ffd72c0012d7ed0000d7ffd7ffd7860001d7ffd72f000bd7f9
+000bd7ffd72f0012d7ec0000d7bc0000d7b70000d7ffd70d0000d7ffd732000bd7f7000b
+d7ffd7320012d7ffd7a80000d7b60000d7ffd7ffd743000bd7f5000bd7ffd7340012d7ff
+d7a70000d7b50000d7ffd7ffd745000bd7f3000bd7ffd7370012d7ffd7a50000d7ffd7c0
+0001d7ffd73a000bd7f1000bd7ffd73a0012d7ffd7a30000d7ffd7bf0000d7ffd73d000b
+d7ef000bd76c0017d7b80012d7e70000d7ffd7ffd7780000d7ffd73f000bd7ed000bd76d
+0017d7b90012d7e70000d7ffd7ffd7ffd7b9000bd7eb000bd7710014d7bb0012d7e60000
+d7ffd76a0000d7ffd7ffd74d000bd7e9000bd7730005d70a0002d74b0001d76f0012d7ff
+d7ffd74f0000d7ffd7060001d7ffd746000bd7e7000bd7740005d70a0003d74a0001d771
+0012d7ffd79a0000d7b10000d7ffd7050000d7ffd749000bd7e5000bd7750005d70b0002
+d7490002d7720012d7ffd7990000d7b00000d7ffd7050000d7ffd74b000bd7e3000bd776
+0005d70b0002d7490002d7740012d7ffd7970000d7ffd7ffd7ffd705000bd7e1000bd777
+0005d70b0002d7480003d7760012d7e00000d7b30000d7ffd7b20000d7ffd752000bd7df
+000bd7780005d7560004d7780012d7de0000d7b30000d7ffd7b00001d7ffd754000bd7dd
+000bd7790005d7550005d7790012d7de0000d7ffd7600000d7ffd7010000d7a20002d7b1
+000bd7db000bd77a0005d7090000d705000ad7040006d7060007d70a0001d7030006d704
+000bd7770012d7dd0000d7ffd75f0000d7ffd7870019d7020004d7b1000bd7da000ad77b
+0005d7080001d705000ad7040006d7050009d7060004d7020007d704000bd7790012d7ff
+d7ffd73b0000d7ffd7880019d7020005d7b1000ad7d9000ad77c0005d7080001d7080005
+d7080002d7060002d7030004d7030006d7010009d7060004d77f0012d7ffd7ffd7380000
+d7fe0000d7890019d7020005d7b2000ad7d7000ad77d0005d7070002d7080005d7080001
+d7060002d7050004d7020013d7050004d7800012d7ffd78b0000d7ffd7a80001d78a0003
+d7060004d7050003d7020004d7b4000ad7d5000ad77e0010d7090004d7080001d7050002
+d7070003d7050005d7050004d7050004d7820012d7d90000d7ae0000d7ffd7a70000d78c
+0002d7070004d7070002d7020002d7b6000ad7d3000ad77f0010d7090004d7080001d705
+0002d7070004d7040003d7070004d7050004d7840012d7d80000d7ad0000d7ffd7ffd735
+0001d7080004d7070002d7bd000ad7d1000bd77f0010d70a0004d7060001d7050003d707
+0004d7040003d7070004d7050004d7860012d7d60000d7ad0000d7a70000d7ffd78c0001
+d7080004d7070002d7bd000bd7cf000bd7800005d7070002d70a0004d7060001d7050010
+d7040003d7070004d7050004d7870012d7d60000d7ffd7550000d7f80001d7910001d708
+0004d7080001d7be000bd7cd000bd7810005d7080001d70b0004d7040001d7060011d703
+0003d7070004d7050004d7890012d7ffd7ffd72a0000d7f80000d79e0004d7ca000bd7cb
+000bd7820005d7080001d70b0004d7040001d7060003d7110003d7070004d7050004d78b
+0012d7ffd7ffd7270000d7f80000d79f0004d7cb000bd7c9000bd7830005d7090000d70b
+0005d7020002d7050004d7110003d7070004d7050004d78d0012d7ffd7ffd7ffd7c00004
+d70e0002d7090002d7020005d7050005d70b0008d7090002d7020003d76f000bd7c7000b
+d7840005d7170004d7020001d7060004d7110003d7070004d7050004d78e0012d7d30000
+d7ffd7ffd7ea0004d70b0005d7060005d7010007d7030007d709000ad7050005d7010005
+d76f000bd7c6000ad7850005d7170005d7000002d7060004d7110003d7070004d7050004
+d7900012d7d10000d7a80000d7ffd79a0000d7a40004d7090007d7040012d7010009d708
+0003d7000006d7020007d7010005d770000ad7c5000ad7860005d70e0001d7070004d700
+0001d7080003d70b0000d7040003d7070004d7050004d7920012d7d00000d7a70000d7a2
+0000d7f50000d7a50004d70a0006d7040012d700000ad7060003d7040005d7010007d700
+0006d771000ad7c3000ad7870005d70d0002d7070007d7080004d70a0001d7030003d707
+0004d7050004d7940012d7cf0000d7a60000d7a10000d7f50000d7a60004d70c0004d707
+0005d7040007d7040004d7040003d7060004d7040006d7010003d772000ad7c1000ad788
+0005d70d0001d7090005d7090005d7080001d7040003d7070004d7050004d7960011d7ff
+d7760000d7a10000d7ffd79d0004d70d0003d7070004d7060004d7060004d7040003d706
+0005d7030005d7030001d774000ad7bf000ad7890005d70c0002d7090005d7090006d706
+0002d7040003d7070004d7050004d7970012d7ffd7ffd7160000d7f10000d7ab0004d70d
+0003d7070004d7060004d7060004d7040002d7080004d7030005d77b000ad7bd000bd789
+0005d70b0003d7090005d70a0007d7030003d7040003d7070004d7050004d7020002d793
+0012d7ffd7ffd7ffd7050001d7ac0004d70d0003d7070004d7060004d7060004d7040010
+d7030004d77c000bd7bb000bd78a0005d70a0003d70b0003d70c000dd7050004d7060004
+d7050009d7960012d7ffd7ffd7ffd7020000d7ae0004d70d0003d7070004d7060004d706
+0004d7030011d7030004d77d000bd7b9000bd78a0015d70b0003d70d000bd7050005d706
+0005d7050007d7990011d7cb0000d7ffd7ffd7e40004d70d0003d7070004d7060004d706
+0004d7030003d7110004d77e000bd7b8000ad7880017d70d0001d70f0009d704000ad700
+000ad7030007d79a0012d7c90000d7ffd7ffd7e40004d70d0003d7070004d7060004d706
+0004d7030004d7100004d77f000ad7b7000ad7890017d70d0001d7100006d706000ad700
+000ad7040005d79d0012d7c80000d7a10000d79c0000d7ed0000d7b30004d70d0003d707
+0004d7060004d7060004d7030004d7100004d780000ad7b5000ad7ffd7930012d7ffd769
+0000d79b0000d7ec0001d7b40004d70d0003d7070004d7060004d7060004d7030004d710
+0004d781000ad7b3000ad7ffd7960011d7ffd7680000d79a0000d7ec0000d7b60004d70d
+0003d7070004d7060004d7060004d7030004d70b0000d7030004d782000ad7b1000ad7ff
+d7980012d7ffd7660000d7ffd7ffd7400004d70d0003d7070004d7060004d7060004d703
+0005d7090001d7030004d783000ad7af000bd7ffd79a0012d7ffd7ffd7ffd7a60004d70d
+0003d7070004d7060004d7060004d7040005d7080001d7030004d783000bd7ae000ad7ff
+d79d0012d7c30000d7ffd7ffd7220000d7bb0004d70d0003d7070004d7060004d7060004
+d7040005d7080001d7030004d784000ad7ad000ad7ffd7a00011d7c30000d7ffd7ffd71f
+0001d7bc0004d70d0003d7070004d7060004d7060004d7040007d7040002d7040004d785
+000ad7ab000ad7ffd7a20012d7c20000d7ffd7340000d7e70000d7bd0005d70d0003d707
+0004d7060004d7060004d705000ed7040004d786000ad7a9000bd7ffd7a40012d7ffd7f5
+0000d7ffd7a70006d70b0005d7050005d7050005d7050006d705000cd7050005d785000b
+d7a7000bd7ffd7a70012d7ffd75b0000d7950000d7ffd7a4000dd705000bd700000ad700
+000ad700000ad7040009d704000bd783000bd7a6000ad7ffd7aa0011d7ffd75a0000d7ff
+d77a0001d7be000dd705000bd700000ad700000ad700000ad7060006d705000bd784000a
+d7a5000ad7020000d7ffd7a80012d7ffd7580000d7ffd7790000d7ffd7aa000ad7a3000b
+d7030001d7ffd7a80012d7bc0000d7980000d7ffd7780000d7ffd7ab000bd7a1000bd706
+0000d7ffd7a90012d7bb0000d7ffd7ffd7ffd7bf000bd79f000bd70d0001d7ffd7a40011
+d7bb0000d7ffd7290000d7ffd7ffd794000bd79d000bd7100001d7ffd7a30012d7ffd7e4
+0000d7e00001d7ffd7b2000bd79c000ad7180001d7ffd79e0012d7ffd7e10000d7e00000
+d7ffd7b5000ad79b000bd71a0001d7ffd79e0012d7ffd7de0000d7e00000d7ffd7b6000b
+d799000bd7ffd7be0011d7ffd74c0000d7ffd7ffd7ffd72a000bd797000bd7230001d7ff
+d79a0012d7b50000d7930000d7ffd76c0000d7ffd7bd000bd796000ad7260001d7ffd79a
+0012d7b40000d7920000d7ffd76a0001d7ffd7bf000ad795000bd72d0001d7ffd7950012
+d7b20000d7920000d78c0000d7db0000d7ffd7c1000bd793000bd7300001d7ffd7950011
+d7b20000d7ffd71f0000d7ffd7ffd79f000bd792000ad7380000d7ffd7900012d7ffd7d0
+0000d7ffd7ffd79d0001d701000ad791000ad73a0001d7ffd7900012d7ffd7cd0000d7d8
+0000d7ffd7c20001d704000ad78f000bd73c0000d7ffd7910012d7ffd7ffd7a30001d7ff
+d7bc0001d70b000bd78d000bd7430001d7ffd78c0011d7af0000d7ffd7f00000d7ffd7bc
+0001d70e000bd78c000ad7460001d7ffd78c0011d7ad0000d78d0000d7ffd7ffd7ffd731
+000ad78b000bd74d0001d7ffd7860012d7ac0000d78c0000d7870000d7ffd7ffd78f0001
+d716000bd789000bd7500001d7ffd7860012d7ab0000d78b0000d7860000d7d40000d7ff
+d7b80001d719000bd788000ad7ffd7dc0011d7ffd7370000d7860000d7d20001d7ffd7b3
+0001d720000ad787000ad7590001d7ffd7830011d7ffd7bc0000d7d20000d7ffd7b20002
+d723000ad785000bd75b0001d7ffd7820012d7ffd7ffd7ffd7ffd73d0000d72a000bd784
+000ad7630001d7ffd77d0012d7a70000d7ffd7ffd7ffd7900001d72c000ad783000ad766
+0001d7ffd77d0011d7a70000d7ffd7dc0001d7ffd7ae0001d72f000ad781000bd76d0000
+d7ffd7790011d7a50000d7ffd7db0000d7ffd7aa0001d735000bd77f000bd76f0001d7ff
+d7780012d7a40000d7860000d7810000d7ce0000d7ffd7a80002d738000bd77e000ad772
+0000d7ffd7790011d7ffd72b0000d7800000d7ffd7ffd7730001d740000ad77d000bd778
+0001d7ffd7740011d7ffd7290000d77f0000d7cc0000d7ffd7a30002d742000bd77b000b
+d77b0001d7ffd7740011d7ffd7270000d7ffd74b0001d7ffd7eb000bd77a000ad7830001
+d7ffd76e0012d7ffd7ffd7710000d7ffd7a00001d74b000ad779000ad7860001d7ffd76e
+0011d7a00000d7ffd7ffd7ffd76d0002d74e000ad777000bd7ffd7f90011d79f0000d7ff
+d7ffd7ffd7660001d755000bd776000ad78e0001d7ffd76b0011d79e0000d7fe0000d7c7
+0000d7ffd7990002d758000ad775000ad7910001d7ffd76a0012d7ffd79b0000d7c60001
+d7ffd7950000d760000ad774000ad7980001d7ffd7650011d7ffd71d0000d77a0000d7c6
+0000d7ffd7950001d761000ad773000ad79b0001d7ffd7650011d7ffd71b0000d7ffd7ff
+d7d70001d764000ad7720009d7a30000d7ffd7610011d7ffd7190000d7ffd7ffd7d10001
+d76b0009d771000ad7a40001d7ffd7600012d7980000d77d0000d7ffd73d0000d7ffd78f
+0002d76d000ad76f000ad7a70000d7ffd7610011d7980000d7ffd7b90001d7ffd78a0001
+d775000ad76e000ad7ad0001d7ffd75c0011d7970000d7f30000d7c20000d7ffd7890002
+d777000ad76d000ad7b00001d7ffd75c0011d7ffd7890000d7ffd7ffd7ca000ad76c0009
+d7b80001d7ffd7560012d7ffd7860000d7ffd7ffd7490001d7800009d76b000ad7ba0001
+d7ffd7560011d7ffd7ffd7450001d7ffd7850002d782000ad769000ad7ffd7ffd7160011
+d7ffd70d0000d7ffd7330000d7ffd7810001d78a000ad768000ad7c20001d7ffd7530011
+d7910000d7780000d7ffd7320000d7ffd77f0002d78c000ad767000ad7c50001d7ffd752
+0012d7900000d7770000d7ffd7ffd7ae0000d794000ad7660009d7cd0001d7ffd74d0011
+d78f0000d7770000d7710000d7ffd7ffd7390001d7960009d765000ad7cf0001d7ffd74d
+0011d78e0000d7e90000d7ba0000d7ffd77b0001d798000ad7640009d7d70000d7ffd749
+0011d7ffd7760000d7ba0000d7ffd7760001d79f0009d7630009d7d90001d7ffd7480012
+d7ffd7730000d7ba0000d7ffd7740002d7a20009d761000ad7db0000d7ffd7490011d7ff
+d7ffd7ffd79e0001d7a9000ad7600009d7e20001d7ffd7440011d78b0000d7ffd79a0000
+d7ffd7700002d7ac0009d75f000ad7e40001d7ffd7440011d7890000d7720000d7ffd724
+0001d7ffd7ffd721000ad75e0009d7ec0001d7ffd73f0011d7880000d7710000d76c0000
+d7b50000d7ffd76d0001d7b40009d75d0009d7ef0001d7ffd73e0011d7880000d7700000
+d76b0000d7ffd7ffd7220002d7b70009d75c0009d7ffd7ffd7320011d7f80000d76b0000
+d7ffd7ffd71c0001d7be0009d75b0009d7f70001d7ffd73b0011d7ffd7620000d7b20000
+d7ffd7660002d7c10009d75a0009d7f90001d7ffd73b0011d7ffd7ffd7120001d7ffd761
+0001d7c80009d7590009d7ffd7010001d7ffd7350011d7840000d7ffd78a0000d7ffd760
+0002d7cb0009d7580008d7ffd7040001d7ffd7350011d7820000d7ffd7ffd7ffd7bc0008
+d7570009d7ffd70b0001d7ffd7300011d7810000d76d000dd7580000d7ffd7ffd70f0001
+d7d30009d7560008d7ffd70e0001d7ffd7300011d7800000d7520042d73d0000d7ae0000
+d7ffd75c0002d7d60008d7550009d7ffd7ffd7420011d7c6005cd72f0000d7ad0001d7ff
+d7570001d7dd0009d7540008d7ffd7160001d7ffd72c0011d7ba0070d7240000d7ad0000
+d7ffd7560002d7e00008d7530009d7ffd7180001d7ffd72c0011d7b2007cd7ffd7ffd720
+0000d7e70009d7520008d7ffd7200001d7ffd7270011d77d0000d72a008ad7ffd7ffd717
+0001d7e90008d7510009d7ffd7220001d7ffd7260011d77c0000d7240096d7ba0001d7ff
+d7520001d7eb0009d7500008d7ffd72a0000d7ffd7220011d77b0000d71c00a4d7b20000
+d7ffd74e0001d7f20008d74f0009d7ffd72b0001d7ffd7220011d77a0000d71500b0d701
+0000d7a80000d7ffd74c0002d7f40009d74e0008d7ffd72e0000d7ffd7230011d78a0048
+d7280048d7ffd7ee0001d7fc0008d74d0009d7ffd7330001d7ffd71e0011d785003fd742
+003fd7ffd7e70002d7fe0009d74c0008d7ffd7360002d7ffd71d0011d77f0036d75c0036
+d7990001d7ffd7ffd74a0008d74b0009d7ffd73d0001d7ffd7190011d7790030d7700030
+d7940000d7ffd7430001d7ffd7060009d74a0008d7ffd7400002d7ffd7180011d773002e
+d77c002ed78f0000d7ffd7410002d7ffd7090008d7490009d7ffd7ffd75d0011d76e002c
+d788002cd7ffd7c80001d7ffd7100009d7480008d7ffd7480001d7ffd7150011d7690029
+d7940029d7830000d7ffd73d0002d7ffd7130008d7470009d7ffd74a0002d7ffd7140011
+d7630026d7a20026d77d0001d7ffd7390000d7ffd71a0009d7460008d7ffd7520001d7ff
+d7100011d75d0024d7ae0024d7780000d7ffd7390001d7ffd71c0008d7450009d7ffd754
+0002d7ffd70e0011d7590021d7b90022d7ffd7ae0001d7ffd71e0009d7440008d7ffd75c
+0000d7ffd70b0011d754001ed7c5001fd7ffd7a50001d7ffd7250008d7430009d7ffd75d
+0001d7ffd70b0011d74f001dd7ce001cd76b0000d7ffd7330002d7ffd7270009d7420008
+d7ffd7600001d7ffd70b0011d74a001cd7d6001bd7660001d7ffd72e0001d7ffd72f0008
+d7410009d7ffd7660001d7ffd7060011d746001bd7de001ad7620000d7ffd72d0002d7ff
+d7310009d7400008d7ffd7690002d7ffd7050011d740001cd7e4001bd7ffd7ffd7c30008
+d7400008d7ffd7700001d7ffd7010011d73b001cd7ea001cd7ffd7830001d7ffd7390008
+d73f0009d7ffd7720002d7ffd7000011d736001dd7ee001dd7520000d7ffd7290002d7ff
+d73b0009d73e0008d7ffd7ffd7790010d733001cd7f4001cd74e0001d7ffd7240001d7ff
+d7430008d73d0009d7ffd77a0001d7fd0011d72f001bd7fa001bd74b0000d7ffd7230002
+d7ffd7450009d73c0008d7ffd77d0002d7fc0011d72b0019d7ffd7020019d7ffd7690000
+d7ffd74d0008d73c0008d7ffd7840001d7f80011d7270017d7ffd70a0017d7420000d7ff
+d7210001d7ffd74e0008d73b0009d7ffd7860002d7f70010d7230017d7ffd7100017d73d
+0001d7ffd7200001d7ffd7500009d73a0008d7ffd78e0000d7f30011d71f0016d7ffd716
+0016d73a0000d7ffd71c0001d7ffd7570008d7390009d7ffd78f0001d7f30011d71a0017
+d7ffd71a0017d7ffd7520002d7ffd7590009d7380009d7ffd7910001d7f30011d7160016
+d7ffd7200016d7310000d7ffd7170001d7ffd7600009d7380008d7ffd7980001d7ef0010
+d7120016d7ffd7260015d72d0001d7ffd7150002d7ffd7630008d7370009d7ffd79a0002
+d7ed0011d70e0016d7ffd72a0015d72a0000d7ffd7ffd77e0009d7360008d7ffd7a20001
+d7e90011d70a0015d7ffd7300014d7ffd73b0001d7ffd76b0008d7350009d7ffd7a40002
+d7e80011d7060015d7ffd7340014d7210000d7ffd7140001d7ffd76d0009d7340009d7ff
+d7ffd7920010d7030014d7ffd73a0013d71d0001d7ffd70e0001d7ffd7740009d7340008
+d7ffd7ac0001d7e50026d7ffd73e0013d71a0000d7ffd70e0001d7ffd7770008d7330009
+d7ffd7ae0002d7e40021d7ffd7440012d7ffd7220000d7ffd77e0009d7320009d7ffd7b5
+0001d7e0001dd7ffd7480013d7100000d7ffd70b0001d7ffd77f0009d7310009d7ffd7b8
+0002d7df0019d7ffd74c0013d70c0001d7ffd70b0000d7ffd7820009d7300009d7ffd7bf
+0000d7db0016d7ffd7500013d7090000d7ffd7060001d7ffd7880009d7300008d7ffd7c1
+0001d7da0013d7ffd7540013d7ffd70d0001d7ffd78b0008d72f0009d7ffd7c30001d7d7
+0012d7ffd7580012d7ffd7050001d7ffd7920009d72e0009d7ffd7c90001d7cf0012d7ff
+d75c0013d7ffd7000001d7ffd7940009d72e0008d7ffd7cc0002d7cb0012d7ffd75e0012
+d7ffd7ffd7980008d72d0009d7ffd7d30001d7c30012d7ffd7620012d7f70001d7ffd79c
+0009d72c0009d7ffd7d50002d7bf0011d7ffd7660011d7f40001d7ffd79e0009d72c0008
+d7ffd7ffd7970011d7ffd76a0011d7eb0001d7ffd7a60008d72b0009d7ffd7dd0001d7b5
+0011d7ffd76e0011d7e70001d7ffd7a80009d72a0009d7ffd7df0002d7b10010d7ffd772
+0010d7e00000d7ffd7af0009d72a0008d7ffd7e70001d7a90010d7ffd7760010d7dc0001
+d7ffd7b10008d7290009d7ffd7e90002d7a5000fd7ffd77a000fd7da0000d7d6000cd7cf
+0009d7280009d76d0009d7130009d7ffd75a0000d79e000fd7ffd77e000fd7d10001d7df
+0006d7d20009d7280008d76e0009d7130009d7ffd75b0001d79a000fd7ffd782000fd7cd
+0001d7e10006d7210000d76b0001d7420008d7280008d7700008d7110007d7ffd7600001
+d797000ed7ffd786000ed7c50001d7e90004d7210001d76b0001d7420008d7270009d771
+0007d7110006d7ffd7670001d78f000fd7ffd788000fd7c10001d7eb0004d7210001d76b
+0001d7420009d7260009d7720007d70f0007d7ffd7690001d78c000fd7ffd78a000fd7ba
+0000d7f20004d7200002d76a0002d7420009d7260008d7730007d70f0007d7ffd7700001
+d784000ed7ffd78e000ed7b70001d7f30004d71f0003d7690003d7430008d7250009d773
+0007d70e0008d7ffd7720001d781000ed7ffd790000ed7b50000d7f50004d71f0003d769
+0003d7430009d7240009d7730008d70d0008d7ffd7780000d77a000fd7ffd792000fd7ac
+0001d7fb0004d71e0004d7680004d7430009d7240008d7740008d70c0009d7ffd7790001
+d777000ed7ffd796000ed7a90001d7fd0004d7090002d7030004d706000bd7050008d709
+0002d7020003d7040002d7020003d7000007d7040006d7070002d7020005d706000bd73f
+0008d7230009d7740002d7000005d70b0002d7000005d7ffd77b0000d775000ed7ffd798
+000ed7a10001d7ffd7040004d7060005d7010008d703000cd704000ad7060004d7010005
+d7010004d701000dd7040006d7040005d7010008d703000cd73f0009d7220009d7740002
+d7000005d70a0003d7000005d7090008d709000ad706000ad7060009d70c0007d70d0007
+d7ffd70a0001d76e000ed7ffd79a000ed79e0001d7ffd7060004d7040007d7000009d703
+000cd7040003d7000006d7030006d701000cd7010006d7000005d7060004d7020007d700
+000ad702000cd73f0009d7220008d7750002d7010005d7090002d7010005d708000ad707
+000bd705000bd705000cd7080010d705000ad7ffd70a0002d769000ed7ffd79e000ed7ff
+d7a50004d7050012d7050004d7080002d7040005d7020006d700000dd7000007d7010004
+d7070003d7020013d7050004d7450008d7210009d7750002d7010005d7090002d7010005
+d7080002d7020005d7050003d7030004d7040003d7030004d7040004d7020005d7070003
+d7040008d7040002d7030005d7ffd7100001d762000ed7ffd7a0000ed7940001d7ffd70d
+0004d7070005d7050004d7050004d7070002d7060004d7050005d7010003d7020005d701
+0003d7020004d7070003d7050007d7030005d7040004d7450009d7200009d7750002d702
+0004d7080002d7020005d7060003d7040005d7030003d7050003d7030003d7050003d704
+0003d7050003d7070003d7050006d7040003d7040004d7ffd7120001d75f000dd7ffd7a4
+000dd7910001d7ffd70f0004d7070004d7060004d7050004d7070002d7060005d7040004
+d7030001d7030005d7020002d7020004d7070003d7050005d7050005d7040004d7450009
+d7200008d7760002d7020005d7070002d7020005d7050003d7060004d7030003d7060002
+d7030003d7060002d7030003d7060003d7060003d7060004d7050003d7060003d7ffd772
+000dd7ffd7a8000dd7880001d7ffd7160004d7070004d7060004d7050004d7060002d708
+0004d7040004d7090004d7090004d7070003d7050004d7070004d7040004d7460008d720
+0008d7760002d7030004d7060002d7030005d7050003d7060005d7020003d7060002d703
+0003d7060002d7030004d7050004d7050003d7060004d7050003d7060004d7ffd7170001
+d756000dd7ffd7aa000dd7850001d7ffd7180004d7070004d7070003d7050004d7060010
+d7040003d70a0003d70a0004d7070003d7050004d7070005d7030004d7460008d71f0009
+d7760002d7030005d7050002d7030005d7040003d7070005d7020004d7050002d7030004
+d7050002d7030003d7060004d7040004d7070003d7040003d7070005d7ffd7180001d753
+000cd7ffd7ae000cd77f0000d7ffd71e0004d7070004d7070003d7050004d7050011d704
+0003d70a0003d70a0004d7070003d7050004d7080004d7030004d7460009d71e0009d776
+0002d7040004d7040002d7040005d7040011d7020005d7050001d7030005d7050001d704
+0002d7050005d7040004d7070003d7040011d7ffd71e0001d74c000cd7ffd7b0000cd77c
+0001d7ffd71f0004d7070004d7070003d7050004d7050003d7120003d70a0003d70a0004
+d7070003d7050004d7080004d7030004d7460009d71e0008d7770002d7040004d7040002
+d7040005d7040011d7030006d70a0006d7110007d7040004d7070003d7040011d7ffd720
+0002d748000cd7ffd7b2000cd7790001d7ffd7210004d7070004d7070003d7050004d705
+0004d7110003d70a0003d70a0004d7070003d7050004d7080004d7030004d7470008d71e
+0008d7770002d7040005d7020003d7040005d7040003d7110009d7070009d70c0009d704
+0004d7070003d7040003d7ffd7350000d742000cd7ffd7b4000cd7720001d7ffd7270004
+d7070004d7070003d7050004d7050004d7110003d70a0003d70a0004d7070003d7050004
+d7080004d7030004d7470008d71d0009d7770002d7050004d7020002d7050005d7040003
+d7130009d7070009d7080004d7010004d7050003d7060004d7040003d7ffd7360001d73f
+000cd7ffd7b6000bd7700001d7ffd7290004d7070004d7070003d7050004d7050004d711
+0003d70a0003d70a0004d7070003d7050004d7080004d7030004d7470008d71d0009d777
+0002d7050005d7000003d7050005d7040003d7140008d7080008d7060004d7030004d705
+0004d7050003d7050003d7ffd7380000d73d000cd7ffd7b8000bd7680001d7ffd7300004
+d7070004d7070003d7050004d7050004d70b0000d7040003d70a0003d70a0004d7070003
+d7050004d7080004d7030004d7470009d71c0008d7780002d7060004d7000002d7060005
+d7040004d7160006d70a0006d7040004d7040004d7060004d7030003d7060004d7ffd73c
+0001d736000cd7ffd7ba000bd7650001d7ffd7320004d7070004d7070003d7050004d705
+0005d7090001d7040003d70a0003d70a0004d7070003d7050004d7080004d7030004d748
+0008d71c0008d7780002d7060008d7060005d7040004d70b0000d70a0006d70a0006d703
+0003d7050004d707000ad7070004d70a0000d7ffd7320001d733000cd7ffd7bc000bd7ff
+d7990004d7070004d7070003d7050004d7060005d7080001d7040003d70a0003d70a0004
+d7070003d7050004d7080003d7040004d7480008d71b0009d7780002d7070006d7070005
+d7040005d7090001d7020001d7070004d7020001d7070004d7020003d7060004d7070008
+d7090004d70a0001d7ffd7380001d72b000cd7ffd7be000bd75d0001d7ffd7380004d707
+0004d7070003d7050004d7060005d7080001d7040003d70a0003d70a0004d7070003d705
+0004d7080003d7040004d7480008d71b0009d7780002d7070006d7070005d7040006d707
+0002d7020001d7070004d7020001d7070004d7010004d7060004d7060002d7100006d707
+0002d7ffd73a0001d728000cd7ffd7c0000bd75a0001d7ffd73a0004d7070004d7070003
+d7050004d7030001d7010006d7040003d7040003d70a0003d70a0005d7040006d7040004
+d7080003d7040004d7030001d7420008d71b0008d7790002d7080004d7080005d7040007
+d7060002d7020001d7080003d7020001d7080003d7010004d7060004d7050002d7110007
+d7060002d7ffd765000ad7ffd7c3000bd7530001d7ffd7400004d7070004d7070004d705
+0004d7000002d702000ed7050003d70a0004d70a0005d7010008d7000000d7020005d706
+0003d7050005d7000002d7440007d71b0008d7790002d7080004d7080005d7050007d704
+0002d7030002d7070003d7020002d7070003d7010004d7040006d7010000d7010005d710
+0007d7030003d7ffd7410001d721000ad7ffd7c5000bd7500001d7ffd7410006d7060005
+d7050005d7050008d703000cd7050005d7080005d70a000ad7000007d7010006d7040003
+d7060009d7440008d71a0008d7790002d7090002d7090005d707000cd7040003d7050003
+d7030003d7050003d7020013d7010011d705000dd7ffd7440001d71e000ad7ffd7c7000b
+d7490000d7ffd745000cd700000ad701000ad7020007d705000ad704000ad703000ad708
+0008d7010005d703000ed7080007d7450008d7190009d7780004d7080002d7080007d706
+000cd7040004d7030004d7030004d7030004d7030012d7010012d705000bd7ffd74b0001
+d717000ad7ffd7c9000bd7460001d7ffd746000cd700000ad701000ad7030005d7080006
+d706000ad703000ad7080006d7030002d706000cd70b0005d7460008d7190008d776000a
+d7060000d706000dd7040009d706000cd704000cd7050007d7010006d7030012d7050009
+d7ffd74e0002d713000bd7ffd7ca000bd7440000d7ffd7c70004d7610007d7190008d776
+000ad7060000d706000dd7060006d7070009d7070009d7090005d7030004d7050012d705
+0007d7ffd7560000d70d000bd7ffd7cc000bd73d0001d7ffd7cc0004d7610007d7190008
+d7ee0001d70d0003d7ffd7650001d70a000bd7ffd7cd000cd73a0001d7ffd7ce0004d761
+0008d7170009d7ed0002d70e0001d7ffd7680000d709000ad7ffd7cf000bd7340001d7ff
+d7d40004d7610008d7170008d7ed0003d70d0002d7ffd76d0001d702000bd7ffd7d0000b
+d7300002d7ffd7d60004d7620007d7170008d7ed0003d70d0002d7ffd76f000dd7ffd7d2
+000bd7ffd7ffd7090004d7620007d7170008d7ed0006d7080003d7ffd771000bd7ffd7d4
+000bd7280001d7ffd7dd0004d7620007d7160009d7ed0012d7ffd771000bd7ffd7d6000b
+d7250001d7ffd7dc000ad75f0008d7150008d7ef000fd7ffd773000bd7ffd7d6000bd71f
+0001d7ffd7e2000ad7600007d7150008d7f1000cd7ffd773000bd7ffd7d8000bd71c0001
+d7ffd7ffd7500007d7150008d7f50005d7ffd776000ad7ffd7da000ad7160000d7ffd7ff
+d7570007d7150008d7ffd7ffd771000ad7ffd7dc000ad7130001d7ffd7ffd7580007d715
+0008d7ffd7ffd7710009d7ffd7de0009d7120000d7ffd7ffd75a0007d7150008d7ffd7ff
+d7700009d7ffd7e00009d70b0001d7ffd7ffd75f0008d7130009d7ffd7ffd76f000ad7ff
+d7e0000ad7080001d7ffd7ffd7610008d7130008d7ffd7ffd7700009d7ffd7e20009d702
+0001d7ffd7ffd7680007d7130008d7ffd7ffd76f0009d7ffd7e4000bd7ffd7ffd76a0007
+d7130008d7ffd7ffd76e0009d7ffd7480003d7090001d78d0009d7ffd7ffd76b0007d713
+0008d7ffd7ffd76d0009d79e0012d7100020d702001ed708000bd71a000ad704000bd704
+0002d78e0009d7ffd7ffd76a0007d7130008d7ffd7ffd76d0009d79d0015d70e0020d702
+001ed708000bd719000bd703000ed7010003d78e0009d7ffd7ffd76a0008d7120008d7ff
+d7ffd76c0009d7a00015d70b0020d705001bd70a000ad718000ad7040014d7900009d7ff
+d7ffd7690008d7120008d7ffd7ffd76c0009d7a20014d70a0020d7070019d70d0007d718
+0007d7060005d7050009d7900009d7ffd7ffd7690008d7110009d7ffd7ffd76b0009d7a3
+0007d7060006d7090006d7060005d7070004d7080006d70b0005d70e0006d7170007d706
+0005d7090006d7910009d7ffd7ffd7680008d7110008d7ffd7ffd76c0009d7a30006d707
+0006d7090004d7070005d7090003d7080005d70d0004d70e0007d7150008d7060004d70a
+0006d7910009d7ffd7ffd7690007d7110008d7ffd7ffd76b0009d7a40006d7080006d707
+0004d7080005d7090002d7080006d70e0002d70e0008d7140008d7060005d70b0005d792
+0009d7ffd7ffd7680008d7100008d7ffd7ffd76b0009d7a40006d7080006d7070002d70a
+0005d7090002d7080006d70e0002d70e0008d7140008d7060004d70d0003d7930009d7ff
+d7ffd7680008d7100008d7ffd7ffd76a0009d7a50006d7080006d7070002d7090006d709
+0002d7080006d70e0002d70e0008d7130009d7050005d70d0003d7940009d7ffd7ffd767
+0009d70f0008d7ffd7ffd76a0009d7a50005d70a0006d7060002d7090005d70a0002d708
+0005d70f0001d70f0008d7120009d7060005d70d0003d7940009d7ffd7ffd7670009d70f
+0008d7ffd7ffd7690009d7a60005d70a0006d7050002d7090006d70a0001d7090005d70f
+0001d70e0009d711000ad7060005d70e0002d7950009d7ffd7ffd7660009d70f0008d7ff
+d7ffd7690009d7a50006d7090006d7060002d7090006d70a0001d7080006d7200009d710
+000bd7060006d70d0001d7960009d7ffd7ffd766000ad70d0009d7ffd7ffd7680009d7a6
+0006d7090006d7130006d7150006d7200009d7100003d7000005d7070006d70c0002d797
+0009d7ffd7ffd765000ad70d0008d7ffd7ffd7690009d7a50006d70a0006d7120006d715
+0006d7090001d7140003d7000006d70e000bd7070007d70b0002d7970009d7ffd7ffd766
+0009d70d0008d7ffd7ffd7680009d7a60006d7090006d7130006d7150006d7080002d714
+0003d7000006d70d0004d7000006d7080007d7a60009d7ffd7ffd7650009d70d0008d7ff
+d7ffd7680009d7a60006d7090006d7130006d7150006d7070003d7130004d7000006d70d
+000cd7090006d7a60009d7ffd7ffd765000ad70c0008d7ffd7ffd7680008d7a70006d709
+0006d7130006d7150006d7070003d7130004d7000006d70c0004d7000007d7090007d7a6
+0008d7ffd7ffd765000ad70c0008d7ffd7ffd7670009d7a60006d7080007d7140005d715
+0006d7080002d7140003d7010006d70c0004d7000006d70b0007d7a50009d7ffd7ffd764
+000ad70c0008d7ffd7ffd7670008d7a70006d7060007d7150006d7150006d7050005d713
+0004d7010006d70b0004d7000007d70b0008d7a50008d7ffd7ffd764000ad70c0008d7ff
+d7ffd7660009d7a70007d701000ad7160006d7150012d7130004d7010006d70a0004d701
+0007d70c0008d7a40009d7ffd7ffd763000ad70c0008d7ffd7ffd7660009d7a70013d717
+0006d7140012d7140003d7020006d70a0003d7020007d70d0008d7a30009d7ffd7ffd763
+000ad70c0008d7ffd7ffd7660008d7a70010d71b0005d7150012d7140003d7030005d709
+0004d7020006d70f0008d7a30008d7ffd7ffd763000bd70b0008d7ffd7ffd7660008d7a7
+000fd71b0006d7150005d7060005d7130004d7030006d7070004d7020007d7100008d7a2
+0008d7ffd7ffd763000bd70b0008d7ffd7ffd7650009d7a70005d7030006d71a0006d714
+0005d7080004d7130003d7040006d7070003d7030007d7110008d7a10009d7ffd7ffd762
+000bd70b0008d7ffd7ffd7650009d7a70005d7040005d71a0005d7150005d7090002d714
+0003d7040006d7060003d7040006d7130008d7a00009d7ffd7ffd762000bd70b0008d7ff
+d7ffd7650008d7a70006d7040005d71a0005d7150005d7090002d7140003d7040006d705
+0004d7040006d7130008d7a10008d7ffd7ffd762000cd70a0008d7ffd7ffd7650008d7a7
+0006d7040006d7180006d7150005d7090002d7130004d7040006d7040004d7040007d714
+0008d7a00008d7ffd7ffd762000cd70a0008d7ffd7ffd7640009d7a70005d7050006d718
+0005d7150005d70a0001d7140003d7050006d7040003d7050006d7160008d79f0009d7ff
+d7ffd761000cd70a0008d7ffd7ffd7640008d7a80005d7060005d7180005d7150005d70a
+0001d7140003d7050006d7030003d7060006d7070001d70d0007d7a00008d7ffd7ffd761
+000cd70a0008d7ffd7ffd7640008d7a70006d7060006d7170005d7150005d7210003d705
+0006d7020004d7060006d7070000d70f0006d7a00008d7ffd7ffd761000dd7090008d7ff
+d7ffd7640008d7a70005d7070006d7160006d7140005d7140001d70a0003d7070006d701
+0003d7060007d7060001d70f0006d7a00008d7ffd7ffd761000dd7080008d7ffd7ffd764
+0009d7a70005d7080005d7160005d7150005d7130002d70a0003d7070006d7000003d707
+0006d7070001d70f0006d7a00009d7ffd7ffd761000cd7080008d7ffd7ffd7640008d7a8
+0005d7080006d7150005d7150005d7120002d70b0003d707000ad7080006d7070001d710
+0005d7a10008d7ffd7ffd761000cd7080008d7ffd7ffd7640008d7a70006d7080006d715
+0005d7140006d7120002d70b0002d708000ad7080006d7070002d70f0005d7a10008d7ff
+d7ffd761000dd7070008d7ffd7ffd7640008d7a70005d70a0005d7140005d7150005d712
+0003d70a0003d7080009d7090005d7070003d70f0005d7a10008d7ffd7ffd761000dd707
+0008d7ffd7ffd7640008d7a60006d70a0006d7130005d7150005d7110003d70b0003d708
+0008d70a0005d7070003d70f0004d7a20008d7ffd7ffd761000dd7070008d7ffd7ffd764
+0008d7a60006d70a0006d7120006d7150005d7100004d70b0003d7080007d70a0005d708
+0003d70e0005d7a20008d7ffd7ffd761000dd7070008d7ffd7ffd7630009d7a60006d70a
+0007d7110006d7150005d70f0005d70b0002d7090007d7090006d7080004d70d0005d7a2
+0009d7ffd7ffd760000ed7060008d7ffd7ffd7630008d7a60006d70c0007d7100005d715
+0006d70c0007d70b0003d70a0005d70a0006d7070006d70b0005d7a40008d7ffd7ffd760
+000ed7060008d7ffd7ffd7630008d7a50008d70b0007d70f0007d7130008d708000ad70a
+0004d70a0004d70a0007d7070008d7090004d7a50008d7ffd7ffd760000ed7060008d7ff
+d7ffd7630008d7a4000ad70a0009d70b000ad711001dd7090007d7080003d70a0009d706
+000ad7040005d7a70008d7ffd7ffd760000ed7060008d7ffd7ffd7630008d7a10010d708
+000bd7050011d70a001fd706000ed7050003d7060011d7020014d7a80008d7ffd7ffd760
+000ed7060008d7ffd7ffd7630008d7a1000fd709000bd7040012d70a001fd706000ed705
+0002d7070011d7010002d705000ad7aa0008d7ffd7ffd760000fd7050008d7ffd7ffd763
+0008d7ffd7450001d70a0003d7ad0008d7ffd7ffd760000fd7050009d7040003d7040003
+d7040003d7040003d7040003d7040003d7040003d7040003d7040003d7040003d7040003
+d7040003d7040003d7040003d7040003d7040003d7040003d7040003d7030004d7030004
+d7030004d7030004d7030004d7030004d7030004d7030004d7030004d7030004d7030004
+d7030004d7030004d7030004d7030004d7030004d7030004d7030004d7030004d7030004
+d7030004d7030004d7030004d7030004d7030004d7030004d7030004d7030004d7030004
+d7030004d7030004d7030004d7030003d7040003d7040003d7040003d7040003d7040003
+d7040003d7040003d7040003d7040003d7040003d7040003d7040003d7040003d7040003
+d7040003d7040003d704000cd7ffd7ffd7040008d7ffd7ffd760000fd7050008d7ffd7ff
+d7630008d7ffd7ffd7040008d7ffd7ffd760000fd7050008d7ffd7ffd7630008d7ffd7ff
+d7040008d7ffd7ffd760000fd7050008d7ffd7ffd7630008d7ffd7ffd7040008d7ffd7ff
+d7600010d7040008d7ffd7ffd7630008d7ffd7ffd7040008d7ffd7ffd7600010d7040008
+d7ffd7ffd7630008d7ffd7ffd70400ff00ff007ad7040008d7ffd7ffd7630008d7ffd7ff
+d70400ff00ff007ad7040008d7ffd7ffd7630008d7ffd7ffd70400ff00ff007ad7040008
+d7ffd7ffd7630008d7ffd7ffd70400ff00ff007ad7040008d7ffd7ffd7630008d7ffd7ff
+d70400ff00ff007bd7030008d7ffd7ffd7630008d7ffd7ffd70400ff00ff007bd7030008
+d7ffd7ffd7630008d7ffd7ffd70400ff00ff007bd7030008d7ffd7ffd7630008d7ffd7ff
+d70400ff00ff007bd7040008d7ffd7ffd7620008d7ffd7ffd70400ff00ff007bd7040008
+d7ffd7ffd7620008d7ffd7ffd70400ff00ff007bd7040008d7ffd7ffd7620009d7ffd7ff
+d702000cd7ffd7ffd75c0008d7000008d7040008d7ffd7ffd7630008d7ffd7ffd702000c
+d7ffd7ffd75c0008d7000008d7040008d7ffd7ffd7630008d7ffd7ffd702000cd7ffd7ff
+d75c0008d7000009d7030008d7ffd7ffd7630008d7de0009d7060001d7ffd710000cd7ff
+d7ffd75c0008d7010008d7030008d7ffd7ffd7630008d7da0011d7000003d7ffd710000d
+d7ffd7ffd75b0008d7010008d7030008d7ffd7ffd7630009d7d60019d7ffd70f000ed7ff
+d7ffd75b0008d7010008d7030008d7ffd7ffd7630009d7d50007d7080008d7ffd710000e
+d7ffd7ffd75b0008d7010008d7030008d7ffd7ffd7640008d7d30006d70d0006d7ffd710
+000ed7ffd7ffd75b0008d7010008d7030008d7ffd7ffd7640008d7d20006d70f0005d7ff
+d710000ed7ffd7ffd75b0008d7010008d7030008d7ffd7ffd7640009d7d10005d7110004
+d7ffd70f000fd7ffd7ffd75b0008d7010008d7030008d7ffd7ffd7640009d7cf0006d712
+0003d7ffd710000fd7ffd7ffd75b0008d7010008d7030008d7ffd7ffd7650008d7ce0006
+d7130003d7ffd710000fd7ffd7ffd75b0008d7010008d7030008d7ffd7ffd7650009d7cc
+0006d7150002d7ffd70f0011d7ffd7ffd75a0008d7010008d7030008d7ffd7ffd7650009
+d7cc0005d7160002d7ffd70f0011d7ffd7ffd75a0008d7010008d7030008d7ffd7ffd766
+0008d7cb0006d7160001d7ffd7100011d7ffd7ffd75a0008d7020007d7030009d7ffd7ff
+d7650008d7ca0006d7170001d7ffd7100011d7ffd7ffd7590008d7030007d7040008d7ff
+d7ffd7650009d7c90006d7170001d7ffd70f0012d7ffd7ffd7590008d7030007d7040008
+d7ffd7ffd7650009d7c80006d72d0002d7140002d7060001d7110002d7c30012d7ffd7ff
+d7590008d7030007d7040008d7ffd7ffd7650009d7c80006d7290009d70b0008d7050004
+d70a000ad7c00012d7ffd7ffd7590008d7030007d7040008d7ffd7ffd765000ad7c60006
+d727000dd707000ad7040006d708000dd7be0012d7ffd7ffd75a0008d7030007d7040008
+d7ffd7ffd765000ad7c60006d7260004d7050004d7070009d7030007d7070004d7040005
+d7bd0012d7ffd7ffd75a0008d7030007d7040008d7ffd7ffd765000bd7c40006d7260004
+d7070003d70b0005d7030007d7060003d7060005d7bc0009d7000008d7ffd7ffd75a0007
+d7040007d7040008d7ffd7ffd765000bd7c40006d7240005d7080004d70a0005d7020008
+d7040004d7070005d7bc0009d7000008d7ffd7ffd75a0007d7040007d7040009d7ffd7ff
+d764000cd7c20007d7230005d70a0004d7090004d7020002d7000005d7030004d7080005
+d7bb0009d7010008d7ffd7ffd7590008d7040007d7050008d7ffd7ffd764000cd7c20006
+d7240005d70a0004d7090004d7020001d7020003d7030004d7090004d7bc0009d7010008
+d7ffd7ffd7590008d7040008d7040008d7ffd7ffd765000bd7c20006d7230005d70b0004
+d7090004d7010001d7030002d7030005d7090004d7bc0008d7020008d7ffd7ffd7590008
+d7040008d7040008d7ffd7ffd765000cd7c10006d7220005d70c0004d7080005d7000001
+d70b0004d7080006d7bb0009d7010009d7ffd7ffd7590008d7040008d7040008d7ffd7ff
+d765000cd7c10006d7210006d70b0006d7070004d7000002d70a0005d7070006d7bc0008
+d7020008d7ffd7ffd75a0007d7050008d7040008d7ffd7ffd765000dd7c00006d7210005
+d70c0006d7060008d70b0004d7070005d7bd0009d7020008d7ffd7ffd75a0007d7050008
+d7040008d7ffd7ffd766000cd7c00006d7200006d70c0006d7060007d70c0004d7050006
+d7be0008d7030008d7ffd7ffd75a0007d7050008d7040008d7ffd7ffd766000dd7bf0006
+d7200006d70c0006d7060006d70c0005d7030007d7be0009d7030008d7ffd7ffd75a0007
+d7050008d7040009d7ffd7ffd765000dd7bf0006d71f0006d70d0005d7070006d70c0004
+d7010008d7c00008d7040008d7fc0002d7810002d7d40008d7050008d7050008d7ffd7ff
+d765000ed7be0006d71f0006d70d0005d7060006d70c000dd7c20009d7040008d7fa0004
+d77f0004d7d40008d7050008d7050008d7ffd7ffd765000ed7be0006d71f0006d70d0005
+d7060006d70c000ad7c50008d7040008d7ab0014d7380006d70f0010d75c0006d70d0009
+d7140009d79d0007d7060008d7050008d7ffd7ffd765000fd7bd0006d71f0005d70d0006
+d7060005d70c0005d7ca0009d7040008d7ae0015d7330007d712000fd7590007d70f0007
+d7140006d7a00007d7060008d7050008d7f20002d7ffd770000fd7bc0007d71e0005d70d
+0005d7070005d70c0005d7c90009d7050008d7af0005d7070007d7350004d7130005d703
+0006d7300000d7280004d7110006d7120006d7a10007d7060008d7050008d7790006d703
+0001d7690004d7ffd76c0002d700000fd7bd0006d7160002d7040005d70c0005d7070005
+d70d0005d7c90009d7050008d7af0005d7090006d7350003d7130005d7040006d72f0000
+d7280004d7120005d7120006d7a10007d7060008d7050008d776000fd7670006d7ffd763
+0002d7030001d7030010d7bc0006d7150003d7040005d70c0005d7070005d70d0005d7c8
+0009d7060007d7b00005d70a0006d7340003d7130005d7050006d72d0001d7280004d712
+0006d7100006d7a20007d7060008d7050009d7740004d7040006d7670006d7ffd7620000
+d70c0011d7bc0006d7140002d7050005d70b0005d7080005d70d0005d70e0001d7b60009
+d7060008d7b00005d70b0005d7340003d7130005d7060005d72c0002d7280004d7120006
+d7100006d7a10008d7060008d7060008d7740004d7060004d7690004d7ffd75b0002d711
+0012d7bb0006d7120003d7060005d70a0006d7080004d70e0006d70c0003d7b40009d707
+0008d7b00005d70c0005d7330003d7130005d7070004d72c0002d7280004d7120007d70e
+0007d7a10007d7070008d7060008d7740003d7080003d76a0003d7ffd75a0000d7140012
+d7bc0006d7100003d7070005d70a0005d7080005d70f0005d70a0003d7b60009d7060009
+d7b00005d70d0004d7330003d7130005d7070005d72a0003d7280004d7120007d70e0007
+d7a10007d7070008d7060008d7730003d70a0002d76a0003d7ffd7520002d71b0012d7bc
+0007d70e0002d7080005d7090005d7090004d7100006d7080003d7b60009d7070008d7b1
+0005d70d0005d7320003d7130005d7070005d7290004d7280004d7120002d7000004d70c
+0002d7000004d7a10007d7070008d7060009d7710004d70a0002d76a0003d7ffd7510000
+d71e0013d7bc0007d70b0003d70a0005d7070005d70a0004d7110008d7020005d7b60009
+d7070009d7b10005d70e0004d7020007d7040006d7080006d70b0003d7130005d7070005
+d7080006d70c0002d7010003d702000ad7070005d70e0005d7000004d7120002d7000004
+d70c0002d7000004d70b0005d70b0002d7030004d7070003d70e0006d70c0001d7020003
+d700000ad7030007d7260008d7070008d7070008d7710005d70a0001d76a0003d7ffd74a
+0002d7230014d7bc0014d70d0005d7040005d70c0004d711000fd7b7000ad7070009d7b1
+0005d70e0005d7010007d7040006d707000ad7080003d7130005d7070005d706000ad707
+0005d7000012d704000ad70a000dd7120002d7010004d70a0002d7010004d709000ad705
+0005d7010008d7020008d70a000ad7070004d7010010d7030007d7260008d7060008d708
+0008d7710005d70a0001d76a0003d7ffd7490000d7260009d700000ad7bd0011d710000c
+d70d0004d714000cd7b7000ad7080009d7b10005d70e0005d7030005d7060004d7050004
+d7010006d7070003d7130005d7070004d7060004d7010005d7040007d7000012d7040003
+d7000006d7080003d7010008d7120002d7010004d70a0002d7010004d7080003d7010006
+d7020007d700000ad7000009d7090004d7010005d7040006d7010006d7000005d7090002
+d7280007d7070008d7080008d7710005d70a0001d76a0003d7ffd7420002d72c0014d7be
+000ed7130009d70f0004d7150009d7b9000ad7070009d7b20005d70e0006d7030004d707
+0003d7040003d7050004d7070003d7130005d7060005d7050004d7030004d704000fd701
+0004d7080002d7040004d7070003d7040006d7120002d7020004d7080002d7020004d707
+0003d7040004d7030006d7000016d7070003d7040004d7040006d7000007d7010004d709
+0001d7290007d7070008d7080009d7700006d7090001d7090008d70a0002d7020005d705
+0005d70b0007d70a0002d7020006d7080003d7030005d70c0007d70b0002d7020003d706
+0008d7f40002d7030001d72f0009d700000ad7c20007d7170005d72e0004d7bb000ad708
+0009d7b20005d70e0006d7030004d7070003d7040003d7060003d7070003d7130005d705
+0005d7050004d7050004d7060006d7000004d7010004d7070002d7060004d7050003d706
+0005d7120002d7020004d7080002d7020004d7060003d7060004d7040007d7030007d703
+0004d7060003d7060004d706000cd7010005d7070002d7280008d7070008d7090008d771
+0007d712000ad7060005d7010007d7030007d709000ad7060004d7010008d7070003d701
+0008d709000ad7080004d7010005d704000ad7f20000d7390015d7ffd7d6000bd707000a
+d7b20005d70f0005d7030004d7070003d7040003d7060003d7070003d7130005d7030006
+d7050004d7070004d7050005d7020002d7020004d7070002d7060005d7030004d7070004
+d7120002d7030004d7060002d7030004d7060003d7060004d7040005d7050005d7060003
+d7050004d7070004d7050005d7020002d7030004d7070002d7280008d7070008d7090008
+d7720008d7100003d7000006d7030012d7010009d7060004d7020005d7030006d700000a
+d7060003d700000ad7070005d7010005d7040006d7010006d7030002d7010006d7ea0002
+d73e0009d700000bd7ffd7d4000bd7080009d7b30005d70f0005d7030004d7070003d704
+0003d7060003d7070003d713000fd7060004d7070004d7050004d7090004d7060002d708
+0004d7030004d7070004d7120002d7030004d7060002d7030004d7050003d7070004d705
+0003d7070003d7070004d7040004d7070004d7050004d70b0003d7060002d7290008d707
+0008d7090008d772000ad70d0002d7040005d7020012d700000ad7060003d7040004d703
+0012d706000fd7070003d7050004d7030006d7000007d7010003d7040005d7e80000d742
+0009d700000ad7ffd7d4000ad708000ad7020002d7ad0005d70f0005d7030004d7070003
+d7040003d7060003d7070003d713000ed7070003d7090004d7040004d7090004d7060010
+d7020005d7070004d7120002d7040004d7040002d7040004d7050011d7040003d7070003
+d7070004d7040003d7090004d7040003d70c0004d7050002d7290008d7070008d7090009
+d772000ad70b0002d7060004d7050005d7040007d7040004d7040003d7060003d7050007
+d7030005d7050006d7030004d7060003d7060004d7060005d7010003d7010003d7060004
+d7e10002d7470009d701000ad7ffd7d2000ad7090009d7060000d7ac0005d70e0005d704
+0004d7070003d70e0004d7070003d7130005d70f0004d7090004d7040004d7090004d705
+0011d7020004d7080004d7120002d7040004d7040002d7040004d7050011d7040003d707
+0003d7070004d7030004d7090004d7040003d70d0003d7050001d7290008d7080008d709
+0009d774000ad7090002d7060005d7040004d7060005d7050004d7040004d7050004d704
+0005d7060005d7040004d7060004d7040004d7070004d7050004d7030001d7020003d706
+0005d7de0001d74b0009d701000ad7ffd7d0000ad709000ad70c0001d7a50005d70e0005
+d7040004d7070003d7090009d7070003d7130005d70f0004d7090004d7040004d7090004
+d7050012d7010004d7080004d7120002d7040005d7020003d7040004d7050011d7040003
+d7070003d7070004d7030004d7090004d7040003d70d0004d7030002d7290008d7080008
+d70a0008d775000ad7070002d7080004d7040004d7060004d7060004d7040003d7060004
+d7040004d7080004d7040003d7070004d7040003d7080004d7050004d7070003d7070005
+d7d70002d7510009d701000bd7ffd7ce000bd7090009d70f0001d7a30005d70e0005d704
+0004d7070003d7080005d7000003d7070003d7130005d70f0004d7090005d7030004d709
+0004d7050003d7100004d7080004d7120002d7050004d7020002d7050004d7050003d712
+0003d7070003d7070004d7030004d7090004d7040003d70e0003d7030002d7290008d708
+0008d70a0008d776000ad7060010d7040004d7060004d7060004d7040003d7060004d704
+0004d7080004d7040003d7070004d7030004d7080005d7040003d7080011d7d50001d755
+0009d701000ad7ffd7cd000bd709000ad7b50005d70e0005d7040004d7070003d7070004
+d7020003d7070003d7130005d70f0004d70a0004d7030004d7090004d7050004d70f0004
+d7080004d7120002d7050005d7000003d7050004d7050003d7120003d7070003d7070004
+d7030004d7090004d7040003d70e0004d7010002d72a0008d7080008d70a0009d7770009
+d7040011d7040004d7060004d7060004d70c0007d7040004d7080004d7040003d7070004
+d7030004d7080005d7040003d7080011d7cc0004d75b0009d702000ad7ffd7cb000bd70a
+0009d7160002d79c0005d70e0004d7050004d7070003d7050004d7040003d7070003d713
+0005d70f0004d70a0004d7030004d7090004d7050004d70f0004d7080004d7120002d706
+0004d7000002d7060004d7050004d7110003d7070003d7070004d7030004d7090004d704
+0003d70e0004d7010002d7290009d7080008d70a0009d7790008d7030003d7120004d706
+0004d7060004d709000ad7040004d7080004d7040003d7070004d7030004d7090004d704
+0003d7080003d7d30002d7650009d702000ad7ffd7c9000bd70a000ad7190000d79b0005
+d70e0004d7050004d7070003d7040003d7060003d7070003d7130005d70f0005d7090003
+d7040004d7090004d7050004d70b0000d7020004d7080004d7120002d7060008d7060004
+d7050004d70a0000d7050003d7070003d7070004d7030005d7080004d7040003d70f0004
+d7000001d72a0008d7090008d70b0008d77b0006d7030004d7110004d7060004d7060004
+d7080005d7000004d7040004d7090003d7040003d7070004d7030004d7090004d7040003
+d7080003d7d10001d7680009d703000ad7ffd7c7000bd70b0009d71f0002d7940005d70d
+0004d7060004d7070003d7040003d7060003d7070003d7130005d70f0005d7090003d704
+0004d7090004d7050005d70a0001d7010005d7070004d7120002d7070006d7070004d705
+0005d7090001d7040003d7070003d7070004d7030005d7080004d7040003d70f0007d72a
+0008d7090008d70b0008d76e0001d70b0006d7020004d7110004d7060004d7060004d706
+0005d7020004d7040004d7090003d7040003d7070004d7030004d7090004d7040003d708
+0003d7ca0002d76f0009d703000ad7ffd7c5000bd70b000ad7220001d7920005d70c0005
+d7060004d7070003d7030003d7070003d7070003d7130005d7100004d7090003d7040004
+d7090004d7060005d7080001d7020005d7070004d7120002d7070006d7070004d7050005
+d7090001d7040003d7070003d7070004d7030005d7080004d7040003d7100006d72a0008
+d7090008d70b0009d76d0001d70c0005d7020004d7110004d7060004d7060004d7050004
+d7040004d7040004d7090003d7040003d7070004d7030004d7090004d7040003d7080004
+d7c70001d7720009d703000bd7ffd7c3000bd70c0009d7b80005d70b0005d7070004d707
+0003d7030003d7070003d7070003d7130005d7100004d7080004d7040004d7090004d706
+0005d7080001d7020006d7060004d7120002d7080004d7080004d7050006d7070002d704
+0003d7070003d7070004d7030005d7080003d7050003d7100005d72a0009d7090008d70b
+0009d76d0002d70b0005d7020004d70b0000d7040004d7060004d7060004d7050003d705
+0004d7040004d7090003d7040003d7070004d7030004d7090004d7040003d7080004d70b
+0000d7ffd7300009d703000cd7ffd7c0000bd70c000ad7290002d78b0005d70a0006d707
+0004d7050005d7030004d7050004d7070003d7130005d7100005d7070003d7050004d709
+0004d7070005d7060002d7030005d7060004d7120002d7080004d7080004d7060006d705
+0002d7050003d7070003d7070004d7040005d7060004d7050003d7110004d72a0009d708
+0008d70d0008d76d0002d70c0004d7020005d7090001d7040004d7060004d7060004d704
+0003d7060004d7040004d7090003d7040003d7070004d7030004d7090004d7040003d708
+0005d7090001d7b30002d7790009d704000cd7ffd7be000bd70d0009d72d0000d78a0005
+d7080007d7090005d7010008d7000000d7000006d701000ad7030003d7130005d7110005
+d7050003d7060004d70a0004d7010002d701000ed7040007d7020006d7010000d70f0002
+d7090002d7090005d705000ed7050004d7070004d7060004d7050005d7050003d7060004
+d7100003d72b0008d7090008d70d0008d76d0002d70c0004d7030005d7080001d7040004
+d7060004d7060004d7030004d7060004d7040004d7090003d7040003d7070004d7030005
+d7080004d7040003d7080006d7080001d7b20000d77d0009d704000cd7ffd7bc000bd70d
+0009d7330002d7830008d7010008d70c000ad7000006d700000ad7000007d7020005d712
+0005d7120005d7030003d7070005d7090008d703000cd7060013d70e0003d7090002d709
+0005d706000cd7060005d7050005d7060004d7060005d7030003d7070004d7110002d72b
+0008d7090008d70d0009d76c0003d70b0004d7030005d7080001d7040004d7060004d706
+0004d7030004d7060004d7040004d7090003d7040003d7070004d7030005d7080003d705
+0003d7080006d7070002d7aa0002d7830009d705000cd7ffd7ba000bd70e0009d7360000
+d77e0016d70e0008d7010004d7030008d7010006d700000ad70c000dd70f000bd705000a
+d7070007d705000ad7080009d7000005d70c000bd7060000d706000dd7040009d704000a
+d701000ad700000ad704000bd705000ad70e0002d72a0009d7090008d70d0009d76c0003
+d70b0004d7040006d7040003d7040004d7060004d7060004d7030004d7040006d7010000
+d7010005d7070003d7050003d7070004d7040005d7060003d7060003d7090007d7040002
+d7aa0000d7870009d705000cd7ffd7b8000bd70e0009d73d0001d7770012d7120007d702
+0002d7060006d7020005d701000ad70c000dd7110008d706000ad7080006d7070006d70c
+0007d7000002d70f000bd7060000d706000dd7050007d705000ad701000ad700000ad705
+0008d707000ad70d0002d72b0009d7090008d70e0008d76c0005d7080004d705000ed705
+0004d7060004d7060004d7030006d701000ad7010005d7060003d7060003d7070004d705
+0005d7050003d7060004d709000dd7a40001d78e0009d705000cd7ffd7b6000bd70e000a
+d73f0001d7ffd7ee0002d72b0008d70a0008d70e0009d76b0006d7050004d708000cd705
+0005d7060004d7060005d7020013d7010006d7040003d7060005d7060005d7040006d703
+0003d7060005d70a000cd7a20001d7910009d705000cd7ffd7b4000cd70d000ad7ffd7ff
+d7300002d72b0009d7090008d70f0009d76b0010d70a000ad704000ad700000ad700000a
+d7010008d7010006d702000ed7050009d701000ad703000bd706000ad7080009d7ffd738
+0009d706000cd7ffd7b2000cd70e000ad7460002d7ffd7e60002d72b0009d7090008d710
+0008d76b0002d7020008d70e0006d706000ad700000ad700000ad7030005d7030004d703
+0004d7000006d7070009d701000ad7070005d708000ad70a0006d79d0002d7990009d706
+000cd7ffd7b0000cd70e000ad74a0000d7ffd7df0001d7020002d72c0008d70a0008d710
+0009d7d00004d7f70000d79d0009d706000cd7ffd7ae000cd70e000ad7500002d7ffd7d6
+0009d72b0009d70a0008d7100009d7d00004d7ef0002d7a3000ad706000dd7ffd7aa000d
+d70e000bd7530000d7ffd7d50008d72c0009d70a0008d7110008d7d00004d7ee0000d7a7
+000ad707000dd7ffd7a6000dd70f000bd7ffd7ffd72b0007d72d0008d70b0008d7110009
+d7cf0004d7ffd797000bd707000dd7ffd7a4000dd70f000bd75b0002d7ffd7cd0006d72d
+0009d70a0009d7110009d7cf0004d7e60002d7ae000ad708000ed7ffd7a0000ed710000a
+d75f0000d7ffd7cd0004d72e0009d70a0008d7130008d7cf0004d7e50000d7b1000bd709
+000dd7ffd79e000dd711000bd7650002d7ffd7f90008d70b0008d7130008d7cf0004d7dd
+0002d7b8000bd709000dd7ffd79c000dd711000bd7690000d7ffd7f80008d70b0008d713
+0009d7cb000ad7d90000d7bc000bd709000dd7ffd79a000dd711000bd7700001d7ffd7f0
+0009d70b0008d7130009d7cb000ad7d20001d7c3000bd709000ed7ffd796000ed711000b
+d7730001d7ffd7ee0009d70b0008d7140008d7ffd7a70001d7c6000bd709000ed7ffd794
+000ed712000ad7ffd7ffd7650008d70b0009d7140009d7ffd7ffd76f000cd70a000dd7ff
+d792000dd713000bd77b0002d7ffd7e50009d70b0008d7150009d7ffd79e0002d7ce000b
+d70b000dd7ffd790000dd713000bd77f0000d7ffd7e40009d70b0008d7160008d7ffd79d
+0000d7d2000bd70b000ed7ffd78c000ed713000bd7860002d7ffd7dc0008d70c0008d716
+0009d7ffd7940002d7d9000bd70b000fd7ffd788000fd714000ad78a0000d7ffd7da0009
+d70c0008d7160009d7ffd7930000d7dd000bd70c000ed7ffd786000ed715000ad7ffd7ff
+d7670009d70c0008d7160009d7ffd78c0001d7e4000bd70d000ed7ffd782000ed716000a
+d7920002d7ffd7d20008d70c0009d7170009d7ffd7890001d7e7000bd70d000ed7ffd780
+000ed716000bd7950000d7ffd7d00009d70c0008d7180009d7ffd7ffd774000bd70e000e
+d7ffd77c000ed716000cd79c0002d7ffd7c80009d70c0008d7180009d7ffd7810002d7f0
+000bd70e000fd7ffd778000fd716000cd7a00000d7ffd7c70008d70d0008d718000ad7ff
+d77f0000d7f4000bd70f000fd7ffd774000fd717000cd7a70001d7ffd7bf0009d70d0008
+d718000ad7ffd7770002d7fb000bd70f0010d7ffd7700010d717000cd7aa0001d7ffd7bd
+0009d70c0009d7190009d7ffd7760000d7ff000cd70e0010d7ffd76e0010d717000cd7ff
+d7ffd76b0008d70d0008d71a000ad7ffd7ffd777000cd70f0010d7ffd76a0010d717000d
+d7b30002d7ffd7b40009d70d0008d71a000ad7ffd76d0002d7ffd707000cd70f0011d7ff
+d7660011d717000dd7b70000d7ffd7b30008d70e0008d71a000bd7ffd76b0000d7ffd70b
+000dd70e0012d7ffd7620012d717000dd7be0002d7ffd7aa0009d70e0008d71a000bd7ff
+d7630002d7ffd712000dd70f0012d7ffd75e0012d718000dd7c20000d7ffd7a90009d70d
+0009d71a000bd7ffd7620000d7ffd716000dd7100012d7ffd75a0012d719000dd7ffd7ff
+d76e0008d70e0009d71b000bd7ffd75a0001d7ffd71d000dd7110012d7ffd7560012d71a
+000dd7ca0002d7ffd7a00009d70e0008d71c000bd7ffd7580001d7ffd721000dd7110012
+d7ffd7520012d71a000dd7cf0000d7ffd79f0008d70f0008d71c000bd7ffd7ffd77d000d
+d7110013d7ffd74e0012d71b000dd7d50002d7ffd7980008d70f0008d71c000cd7ffd74f
+0002d7ffd72a000dd7120014d7ffd7480013d71c000dd7d90001d7ffd7950009d70e0009
+d71c000cd7ffd74e0000d7ffd72f000cd7130014d7ffd7440013d71d000cd7e10001d7ff
+d78f0008d70f0009d71d000cd7ffd7450002d7ffd734000fd7130014d7ffd7400013d71d
+000dd7e40001d7ffd78c0009d70f0008d71e000cd7ffd7440000d7ffd7350012d7140014
+d7ffd73c0013d71d000ed7e70000d7ffd78b0008d7100008d71e000cd7ffd7ffd7790015
+d7150014d7ffd7380014d71d000ed7ed0002d7ffd7840008d7100008d71e000dd7ffd73b
+0002d7ffd7380018d7150014d7ffd7340014d71d000ed7f20001d7ffd7810009d70f0009
+d71e000dd7ffd73a0000d7ffd739001bd7160014d7ffd7300014d71e000ed7f90002d7ff
+d77a0008d7100009d71f000cd7ffd7330002d7ffd73c001fd7160015d7ffd72a0015d71e
+000fd7fd0001d7ffd7780008d7100008d720000dd7ffd7300001d7ffd73d0011d700000f
+d7170015d7ffd7260015d71f000fd7ffd7ffd7780008d7110008d720000dd7ffd72a0001
+d7ffd7420010d7030010d7170016d7ffd7200016d720000fd7ffd7050002d7ffd7700008
+d7100009d720000ed7ffd7270001d7ffd7420010d707000fd7180018d7ffd7180018d720
+000fd7ffd70a0001d7ffd76d0009d7100009d721000dd7ffd7260000d7ffd7420011d70a
+000fd7190019d7ffd7100019d722000ed7ffd7120002d7ffd7660008d7110008d722000d
+d7ffd71f0002d7ffd7450011d70d000fd71a001ad7ffd70a001ad723000ed7ffd7160001
+d7ffd7640008d7100009d722000ed7ffd71c0001d7ffd7460011d711000fd71b001ad7ff
+d704001ad724000ed7ffd71e0002d7ffd75c0008d7110009d723000dd7ffd7150002d7ff
+d74b0010d7140010d71b001ad7ffd7000019d725000fd7060000d7ffd71a0001d7ffd75a
+0008d7110008d724000ed7ffd7120001d7ffd74c0010d718000fd71d001ad7fa001ad725
+000fd7090001d7ffd7ffd7740009d7100009d724000ed7ffd7ffd75f0011d71b000fd71d
+001bd7f4001ad726000fd7ffd72c0002d7ffd7520008d7110009d725000ed7ffd70a0002
+d7ffd74e0011d71e0010d71e001cd7ec001bd7270010d7ffd7300001d7ffd74f0009d711
+0008d726000ed7ffd7080001d7ffd74f0011d7220010d71f001dd7e4001cd7280010d714
+0001d7ffd7210002d7ffd7480008d7110009d726000fd7ffd7000002d7ffd7540010d725
+0011d71f001ed7dd001ed7280011d7170001d7ffd7220001d7ffd7450009d7110009d727
+000ed7fe0001d7ffd7550011d7280011d720001fd7d5001fd7290011d7ffd7440001d7ff
+d73f0008d7120008d728000fd7f70001d7ffd7590011d72b0012d7210020d7cd0020d72a
+0012d7ffd7470001d7ffd73c0009d7120008d728000fd7f50001d7ffd7590011d72f0012
+d7220021d7c60020d72b0012d7220001d7ffd7260000d7ffd73b0008d7120009d7280010
+d7f30000d7ffd75a0010d7320013d7230022d7be0022d72b0013d7250001d7ffd7290002
+d7ffd7330009d7120009d729000fd7ec0002d7ffd75d0010d7360013d7240023d7b60023
+d72c0013d7ffd7560001d7ffd7310008d7130008d72a0010d7e90001d7ffd75e0011d739
+0013d7250025d7ac0025d72d0014d7ffd75d0002d7ffd7290009d7120009d72a0010d7e2
+0002d7ffd7620011d73d0013d7270027d7a00027d72f0014d7300000d7ffd7300001d7ff
+d7270008d7130009d72b0010d7df0001d7ffd7630011d7410013d7290029d7940029d731
+0014d7330001d7ffd7ffd7570009d7130008d72c0010d7ffd7ffd7440010d7450014d72a
+002bd788002bd7320015d7370000d7ffd7330002d7ffd71f0008d7130009d72c0011d7d7
+0002d7ffd7660010d7490014d72c002ed77a002ed7340015d7ffd7710001d7ffd71c0009
+d7130009d72d0010d7d50001d7ffd7670011d74c0015d72d0030d76e0030d7350016d7ff
+d7790002d7ffd7150008d7140008d72e0011d7cd0002d7ffd76b0011d7500015d7300034
+d75c0034d7380016d7420001d7ffd7390001d7ffd7120009d7130009d72e0011d7cb0001
+d7ffd76c0011d7540016d733003bd742003bd73b0016d7470001d7ffd73d0001d7ffd70c
+0008d7140009d72f0011d7c40001d7ffd7710010d7580016d73600b0d73e0016d7ffd78b
+0001d7ffd7090009d7140008d7300011d7c20001d7ffd7710011d75c0016d73700a8d73f
+0016d7ffd7900000d7ffd7080008d7140009d7300012d7c00000d7ffd7710011d7600017
+d73800a0d7400017d7540000d7ffd7410002d7ffd7000009d7140009d7310012d7b80002
+d7ffd7740011d7640017d73b0096d7430017d7570001d7ffd7420001d7fd0009d7140009
+d7320012d7b60001d7ffd7760010d7680018d73e008ad7460018d7ffd7a40002d7f60009
+d7140009d7330012d7ae0002d7ffd77a0010d76c0019d7450076d74d0019d7ffd7a90001
+d7f30009d7150008d7340012d7ac0001d7ffd77b0011d76f001bd74b0062d753001bd763
+0001d7ffd7ffd73b0008d7150009d7340013d7ffd7ffd7270011d774001cd74d0056d755
+001cd7680001d7ffd7490002d7eb0009d7150009d7350008d7000009d7a30002d7ffd77d
+0011d778001dd7540042d75c001dd7ffd7b90001d7e80009d7150009d7360013d7a10001
+d7ffd77f0010d77d001dd76c000cd774001dd7ffd7c20002d7e10009d7150009d7370008
+d7000009d7990002d7ffd7830011d781001cd7ea001cd7760001d7ffd74f0001d7de0009
+d7150009d7380008d7000009d7970001d7ffd7840011d786001cd7e4001dd77a0001d7ff
+d7530001d7d80009d7150009d7380009d7000009d78f0002d7ffd7880011d78a001ed7dd
+001dd7ffd7d50001d7d50009d7160009d7390008d7010009d78c0001d7ffd7890011d78f
+001fd7d5001fd7ffd7d90000d7d30009d7160009d73a0009d7000009d7ffd7ffd7170010
+d7940020d7cd0020d7880001d7ffd7560002d7cc0009d7160009d73b0008d7010009d784
+0002d7ffd78c0011d7990020d7c40021d78e0001d7ffd7570001d7c90009d7160009d73c
+0008d701000ad7810001d7ffd78d0011d79e0023d7b80023d7ffd7f20002d7c1000ad716
+0009d73c0009d7010009d77a0002d7ffd7910011d79f002ad7ac0025d7ffd7f90001d7bf
+0009d7170009d73d0008d7020009d7770001d7ffd7930010d7a10030d7a00027d7ffd7ff
+d7be0009d7170009d73e0008d7020009d7710001d7ffd7970010d7a2000ad7020029d795
+002ad7a20001d7ffd7600002d7b70009d7170009d73f0008d7020009d76e0001d7ffd797
+0011d7a2000ad7070029d78d002fd7a30001d7ffd7610001d7b40009d7170009d7400008
+d702000ad76c0000d7ffd7970011d7a3000ad70c0029d7850033d7ffd7ffd70d0002d7ac
+000ad7170009d7400009d7020009d7650002d7ffd79a0011d7a5000ad710002dd774002d
+d703000bd7ffd7ffd70f0001d7aa0009d717000ad7410008d702000ad7620001d7ffd79c
+0010d7a6000ad7150035d75c0035d708000bd7a60001d7ffd76b0001d7a3000ad7170009
+d7420009d7020009d75b0002d7ffd7a00011d7a6000ad71a003ed742003ed70d000ad7a8
+0001d7ffd76b0001d7a10009d717000ad7430008d7030009d7580001d7ffd7a10011d7a8
+000ad71e0048d7270047d712000ad7ffd7ffd7170000d79f0009d7180009d7440009d702
+000ad7ffd7f90011d7a9000ad72400aed717000bd7ffd7ffd71b0002d797000ad717000a
+d7440009d7030009d7500002d7ffd7a30011d7aa000ad72b00a2d71e000bd7ab0001d7ff
+d76f0001d7950009d718000ad7450009d702000ad74d0001d7ffd7a50010d7ab000ad732
+0096d725000ad7ad0001d7ffd7730002d78d000ad717000ad7460009d703000ad7450002
+d7ffd7a90011d7ac000ad738008ad72b000bd7ffd7ffd7250001d78a000ad718000ad747
+0009d703000ad7420001d7ffd7aa0011d7ad000ad740007cd733000bd7ffd7ffd7b0000a
+d718000ad7480009d703000ad73c0001d7ffd7ae0011d7ae000ad7470070d73a000bd7b0
+0001d7ffd7760002d782000ad718000ad7490009d703000ad7390001d7ffd7ae0011d7b0
+000ad751005cd745000ad7b20001d7ffd7770001d77f000ad718000ad74a0009d704000a
+d7370000d7ffd7af0010d7b1000ad75f0042d752000bd7ffd7ffd7310002d777000ad719
+000ad74b0009d703000bd72f0002d7ffd7b20011d7b1000ad76e0027d760000bd7ffd7ff
+d7330001d774000bd718000ad74c0009d704000ad72d0001d7ffd7b30011d7b30009d778
+0009d776000bd7b50001d7ffd7800001d76e000ad719000ad74d0009d704000ad7250002
+d7ffd7b70011d7b4000ad7780009d777000ad7b70001d7ffd7800001d76b000ad719000a
+d74e0009d705000ad7220001d7ffd7b90010d7b5000ad7790009d777000bd7ffd7ffd73b
+0000d769000ad71a000ad74f0009d704000ad7ffd7dc0011d7b5000ad77a0009d778000b
+d7ffd7ffd73f0002d762000ad719000ad7500009d705000ad71a0002d7ffd7bb0011d7b7
+000ad77a0009d779000ad7ffd7ffd7420001d75f000ad71a000ad7510009d705000ad717
+0001d7ffd7bc0011d7b8000ad77b0009d77a000ad7ba0000d7ffd78b0002d757000ad71a
+000ad7520009d705000bd70f0002d7ffd7c00011d7b9000ad77c0009d77a000bd7ba0001
+d7ffd78c0000d755000bd71a000ad7530009d705000ad70d0001d7ffd7c20010d7bb0009
+d77d0009d77b000bd7ffd7ffd74e0001d74e000ad71a000ad7540009d706000ad7060001
+d7ffd7c60011d7bb000ad77d0009d77c000ad7ffd7ffd7500001d74b000ad71b000ad755
+0009d705000bd7030001d7ffd7c60011d7bc000ad77e0009d77c000bd7be0001d7ffd7db
+000bd71a000ad7560009d706000bd7010000d7ffd7c60011d7bd000ad77f0009d77d000b
+d7bf0001d7ffd7930002d741000bd71b000ad7570009d706000ad7ffd7c70011d7bf000a
+d77f0009d77e000bd7ffd7ffd7570000d740000ad71b000ad758000ad706000ad7ffd7c5
+0011d7bf000ad7800009d77f000ad7ffd7ffd75d0002d737000ad71b000bd7590009d706
+000bd7ffd7c20011d7c0000ad7810009d77f000bd7c30001d7ffd7990000d735000bd71b
+000ad75a000ad706000bd7ffd7bf0011d7c20009d7820009d780000bd7c40001d7ffd7cd
+000bd71b000bd75b0009d707000ad7ffd7bd0011d7c3000ad7820009d781000bd7ffd7ff
+d7630002d72c000ad71c000ad75d0009d706000bd7c10001d74d0002d7a60010d7c4000a
+d7830009d782000ad7ffd7ffd7660000d72a000bd71b000ad75e000ad706000bd7aa0005
+d7040001d7060005d7490004d7a40011d7c50009d7840009d782000bd7c80001d7ffd7a0
+0002d721000bd71c000ad75f0009d707000bd7a6000bd7000002d7060005d7470006d7a2
+0011d7c6000ad7840009d783000bd7c90001d7ffd7a10000d71f000bd71c000ad760000a
+d707000ad7a50005d7020007d7060005d7460007d7a00011d7c7000ad7850009d784000a
+d7ffd7ffd7730001d718000ad71c000bd7610009d707000bd7a40003d7070004d7060005
+d7490004d79e0011d7c8000ad7860009d785000ad7ffd7ffd7740001d715000bd71c000a
+d762000ad706000cd7a20003d7080004d7070003d74a0004d79d0010d7ca000ad7860009
+d785000bd7cd0001d7f90003d7150003d7a2000bd71c000ad764000ad7050000d700000b
+d7a00004d7090003d7560004d79b0011d7ca000ad7870009d786000bd7ce0001d7a90010
+d73b0005d7130005d7910002d70b000bd71d000ad7650009d7050000d701000ad7a00004
+d70a0002d7560004d7990011d7cb000ad7880009d787000ad7ffd77a0012d7390005d713
+0005d7940000d70a000ad71d000ad766000ad7040000d702000ad79f0004d70a0002d756
+0004d7970011d7cd0009d7890009d787000bd7ffd77d0010d7370005d7130005d79a0002
+d701000ad71e0009d768000ad7030000d703000ad79e0005d70a0001d7560004d7950011
+d7ce000ad7890009d788000bd7d20000d7a90004d7040006d72c0001d7080004d7090000
+d7080005d79d000bd71e000ad768000ad7030000d703000bd79d0005d70a0001d7560004
+d7940011d7ce000ad78a0009d789000bd7d20000d7a80004d7060005d72b0001d7090001
+d70b0000d70a0001d79f000bd71e0009d76a000ad7020000d704000bd79c0006d7090001
+d7090002d70b0005d70c0002d7030004d70c0006d70a0004d7920011d7cf000ad78b0009
+d78a000ad7d30000d7a70004d7060005d72b0001d7160001d7ab000bd71e000ad76b0009
+d7020000d705000ad79c0008d7100005d7080010d7020004d7010008d708000bd7070004
+d7900011d7d1000ad78b0009d78a000bd7ffd77b0004d7070005d7290002d7160001d7ab
+000ad71e000ad76c000ad7010000d706000ad79c0009d70c0007d7070003d7040008d700
+0006d700000ad7060004d7010005d7070004d78e0011d7d2000ad78c0009d78b000bd7ff
+d77a0004d7070005d7280003d7150002d7aa000ad71f0009d76e000ad7000000d707000a
+d79c000ad70a0007d7070003d7040008d7000012d7050003d7050004d7060004d78d0010
+d7d3000ad78d0009d78c000bd7d50001d7a10004d7070005d7270004d7140003d7a9000a
+d71f000ad76e000ad7000000d707000bd79b000bd70c0004d7060003d7060004d7050007
+d7030005d7040003d7050004d7060004d78b0011d7d40009d78e0009d78d000ad7d70001
+d79f0004d7070005d7070004d70d0001d7040000d7030005d70a0002d7050004d70b0002
+d70c0002d70f0001d7050001d76f000bd71f0009d770000bd708000ad79d000bd70a0004
+d7060003d7060004d7060004d7060004d7040003d7050004d7060004d7890011d7d5000a
+d78e0009d78d000bd7ffd7780004d7070005d705000ad7070003d7020011d7030004d703
+000bd7040004d70a0008d7090003d7030005d76d000ad71f0009d771000bd709000ad79e
+000ad7090004d7050004d7060004d7060003d7070004d7040003d7060003d7060004d787
+0011d7d6000ad78f0009d78e000bd7ffd7770004d7070005d704000cd7040005d7010012
+d7010006d703000bd7020006d708000ad7070005d7010008d76b000ad7200009d772000a
+d70a000ad79e000ad7080004d7050004d7070003d7060003d7070004d7040003d7060003
+d7060004d7850011d7d80009d7900009d78f000ad7db0001d7990004d7070004d7040004
+d7030004d7030006d7000007d7010004d7050007d7060003d7060007d7070003d7030005
+d7040006d700000ad769000ad7200009d774000ad70a000ad79f0009d7070004d7050004
+d7070003d7060003d7070004d70e0004d7060004d7840011d7d8000ad7900009d790000a
+d7dc0001d7970004d7060005d7040003d7050004d7020000d700000dd7010004d7050000
+d7010004d7060003d7060000d7000005d7070003d7050004d7030000d7000008d7010006
+d767000ad720000ad774000ad70b000ad79f0008d7070004d7050004d7070003d7060003
+d7070004d7090009d7060004d7820011d7d9000ad7910009d790000bd7ffd7750004d705
+0005d7040004d7050004d7050005d7010003d7020004d7080004d7060003d7090004d706
+0003d7060005d7050005d7050004d766000ad7210009d776000ad70a000bd7a10006d706
+0004d7060003d7070003d7060003d7070004d7080005d7000003d7060004d7800011d7da
+000ad7920009d791000bd7ffd774000fd7050004d7050004d7050004d7090004d7080004
+d7060003d7090004d7050003d7080004d7050003d7070004d765000bd7020000d71c0009
+d777000bd70a000bd7930001d70a0006d7060004d7060004d7050003d7070003d7070004
+d7070004d7020003d7060004d77e0011d7dc0009d7930009d792000ad7e00001d791000d
+d7070004d7050004d7050003d70a0004d7080004d7060003d7090004d7040004d7080005
+d7040003d7070004d764000bd7030000d71b000ad778000ad70b000bd7920001d70b0006
+d7050004d7070004d7030003d7080003d7070004d7050004d7040003d7060004d77c0011
+d7dd000ad7930009d792000bd7e10001d78f000bd70a0002d7050005d7050003d70a0004
+d7080004d7060003d7090004d7040004d7090004d7040003d7070004d763000bd7040000
+d71b0009d77a000ad70b000ad7920001d70c0005d7050004d708000ad7090003d7070004
+d7040003d7060003d7060004d77b0011d7dd000ad7940009d793000bd7ffd7720004d718
+0007d7050003d70a0004d7080004d7060003d7090004d7040004d7090004d7040003d707
+0004d763000ad7050000d71a0009d77b000bd70b000ad7910002d70b0005d7050004d709
+0007d70b0003d7070004d7040003d7060003d7060004d7790011d7df0009d7950009d794
+000bd7ffd7710004d7160009d7050003d70a0004d7080004d7060003d7090004d7040004
+d7090004d7040003d7070004d762000ad7060000d719000ad77c000bd70b000ad7900002
+d70c0004d7050004d7070003d7010002d70c0003d7070004d7030003d7070003d7060004
+d7770011d7e0000ad7950009d795000ad7e50001d7890004d7130005d7010004d7050003
+d70a0004d7080004d7060003d7090004d7040004d7090004d7040003d7070004d761000a
+d721000ad77e000ad70c000ad78f0002d70c0003d7060004d7060002d7130003d7070004
+d7030003d7070003d7060004d7750011d7e1000ad7960009d795000bd7e60001d7870004
+d7120004d7030004d7050003d70a0004d7080004d7060003d7090004d7040004d7090004
+d7040003d7070004d760000ad7220009d77f000bd70c000ad78e0003d70a0004d7060004
+d7060002d7130003d7070004d7030004d7050004d7060004d7740010d7e2000ad7970009
+d796000bd7ffd76f0004d7110003d7050004d7050003d70a0004d7080004d7060003d709
+0004d7040004d7090004d7040003d7070004d75f000ad722000ad780000bd70b000bd78d
+0005d7080003d7070004d7050010d7060004d7060004d7030006d701000ad7020004d772
+0011d7e30009d7980009d797000bd7ffd76e0004d7100004d7050004d7050003d70a0004
+d7080004d7060003d7090004d7040004d7090004d7040003d7070004d75e000bd721000a
+d782000ad70c000bd78c0005d7060004d7070006d7040011d7040005d7060005d702000a
+d7000007d7020005d76f0011d7e4000ad7980009d798000ad7e90001d7820004d7100003
+d7060004d7050003d70a0004d7080004d7060003d7090004d7040004d7090004d7040003
+d7070004d75d000bd70a0000d7160009d784000ad70c000bd78b0010d706000ad7030012
+d700000ad700000ad7010008d7010006d700000ad76b0011d7e5000ad7990009d798000b
+d7ea0001d7800004d70f0004d7060004d7050003d70a0004d7080004d7060003d7090004
+d7040005d7080004d7040003d7070004d75c000bd70b0000d715000ad784000bd70c000b
+d78a0001d7020009d708000ad704001dd700000ad7020006d7020004d702000ad7690011
+d7e70009d79a0009d799000bd7ffd76c0004d70f0004d7060004d7050003d70a0004d708
+0004d7060004d7080004d7050005d7070003d7050003d7070004d75b000bd70c0000d714
+000ad786000ad70d000bd7b00002d70c0003d79f0011d7e7000ad79a0009d79a000ad7ff
+d76c0004d70f0005d7040005d7010001d7010004d7090004d7020002d7020004d7060004
+d7020001d7030004d7050005d7060004d7050003d7070004d75a000bd70d0000d7140009
+d788000ad70d000bd7ae0002d70e0002d79d0011d7e8000ad79b0009d79b000ad7ffd76b
+0004d7100013d7010004d7090009d7030004d7060009d7030004d7060005d7050003d706
+0004d7060004d759000bd70e0000d713000ad788000bd70d000ad7ae0002d70e0001d79c
+0011d7ea0009d79c0009d79b000bd7ed0001d7780008d70e0011d7020006d7090008d702
+0006d7050008d7030006d7060006d7010004d7050006d7050006d758000ad723000ad78a
+000bd70d000ad7ac0003d70d0002d79a0011d7eb0009d79d0009d79c000bd7ee0001d773
+000dd70d0008d7010004d701000ad7070006d702000ad7040006d702000ad706000ad705
+000ad700000ad755000ad723000bd78b000ad70e000ad7ab0004d70b0002d7990011d7ec
+000ad79d0009d79d000ad7ffd7810005d7030003d7170003d7150003d7170005d774000a
+d724000ad78c000bd70e000ad7aa0012d7990011d7ec000ad79e0009d79d000bd7ffd7ff
+d756000ad724000ad78e000bd70e000ad7aa0010d7980011d7ee0009d79f0009d79e000b
+d7f20001d7ffd75f000ad7130000d70f000bd78f000ad70e000bd7ab000dd7970011d7ef
+000ad79f0009d79f000bd7f30001d7ffd75c000bd7130000d70f000ad791000ad70e000b
+d7ac0009d7970011d7f0000ad7a00009d7a0000ad7ffd7ffd751000bd7140000d70e000a
+d792000bd70e000bd7ffd74c0010d7f20009d7a10009d7a0000bd7ffd7ffd74f000bd715
+0000d70d000bd793000bd70e000bd7ffd7490011d7f2000ad7a10009d7a1000bd7f70001
+d7ffd753000bd7160000d70c000bd795000ad70f000bd7ffd7460011d7f3000ad7a20009
+d7a2000bd7f80001d7ffd750000bd725000ad796000bd70f000bd7ffd7430011d7f4000a
+d7a30009d7a3000ad7ffd7ffd74a000bd725000bd797000bd70f000bd7ffd7400011d7f6
+0009d7a40009d7a3000bd7ffd7ffd748000bd725000bd799000bd70f000bd7ffd73e0011
+d7f6000ad7a40009d7a4000bd7fc0000d7ffd748000bd725000bd79b000ad710000bd7ff
+d73b0011d7f7000ad7a50009d7a5000ad7fd0001d7ffd745000bd71b0000d709000ad79c
+000bd710000bd7ffd7380011d7f90009d7a60009d7a6000ad7ffd7ffd743000bd71c0000
+d708000bd79d000bd710000bd7ffd7350011d7fa000ad7a60009d7a6000bd7ffd7ffd741
+000bd71d0000d707000bd79f000bd710000bd7ffd7320011d7fb000ad7a70009d7a7000b
+d7ffd7000001d7ffd73c000bd71f0000d705000bd7a1000ad711000bd7ffd7300011d7fb
+000ad7a80009d7a8000ad7ffd7020001d7ffd739000bd7200000d705000ad7a3000ad711
+000bd7ffd72d0011d7fd0009d7a90009d7a8000bd7ffd7ffd73c000bd727000ad7a5000a
+d711000bd7ffd72a0011d7fe000ad7a90009d7a9000bd7ffd7ffd73a000bd727000ad7a6
+000bd711000bd7ffd7270011d7ff000ad7aa0009d7aa000bd7ffd7050000d7ffd731000b
+d727000bd7a7000bd710000cd7ffd7250011d7ffd7000009d7ab0009d7ab000ad7ffd706
+0001d7ffd72e000cd726000bd7a9000ad711000cd7ffd7220011d7ffd701000ad7ab0009
+d7ab000bd7ffd7070000d7ffd72c000cd7240000d701000ad7ab000ad711000cd7ffd71f
+0011d7ffd702000ad7ac0009d7ac000bd7ffd7ffd733000cd7250000d700000ad7ad000a
+d711000cd7ffd71c0011d7ffd7040009d7ad0009d7ad000bd7ffd7ffd731000cd726000b
+d7ae000bd711000cd7ffd7190011d7ffd7050009d7ae0009d7ae000ad7ffd70a0001d7ff
+d723000cd727000bd7af000ad712000cd7ffd7170011d7ffd705000ad7ae0009d7ae000b
+d7ffd70b0001d7ffd720000cd728000ad7b1000ad712000cd7ffd7140011d7ffd706000a
+d7af0009d7af000bd7ffd7ffd72c000cd728000ad7b3000ad712000cd7ffd7110011d7ff
+d7080009d7b00009d7b0000ad7ffd7ffd72b000cd728000ad7b5000ad712000dd7ffd70d
+0011d7ffd709000ad7b00009d7b1000ad7ffd70f0001d7ffd716000dd728000ad7b7000a
+d712000dd7ffd70a0011d7ffd70a000ad7b10009d7b1000bd7ffd7100001d7ffd713000d
+d728000ad7b8000bd712000dd7ffd7080011d7ffd70b0009d7b20009d7b2000bd7ffd7ff
+d724000dd728000bd7b9000bd712000dd7ffd7050011d7ffd70c0009d7b30009d7b3000a
+d7ffd7ffd723000dd728000bd7bb000bd712000dd7ffd7020011d7ffd70d000ad7b30009
+d7b3000bd7ffd7140000d7ffd70b000dd728000bd7bd000ad713000dd7ff0011d7ffd70e
+000ad7b40009d7b4000bd7ffd7140001d7ffd708000dd729000ad7bf000ad713000dd7fd
+0011d7ffd70f0009d7b50009d7b5000bd7ffd7ffd71d000cd72a000ad7c1000ad714000d
+d7f90011d7ffd710000ad7b50009d7b6000ad7ffd7ffd71b000dd72a000ad7c3000ad714
+000dd7f60011d7ffd711000ad7b60009d7b6000bd7ffd7180000d7ff000dd72a000ad7c5
+000ad714000dd7f30011d7ffd7130009d7b70009d7b7000bd7ffd7180001d7fc000dd72a
+000ad7c6000bd714000dd7f00011d7ffd7140009d7b80009d7b8000bd7ffd7190000d7fa
+000dd72a000bd7c7000bd714000dd7ee0011d7ffd714000ad7b80009d7b9000ad7ffd7ff
+d714000cd72b000bd7c9000bd714000dd7eb0011d7ffd7160009d7b90009d7b9000bd7ff
+d7ffd712000cd72b000bd7cb000bd714000dd7e80011d7ffd7170009d7ba0009d7ba000b
+d7ffd71c0001d7f1000cd72b000bd7cd000bd715000dd7e40011d7ffd718000ad7ba0009
+d7bb000ad7ffd71e0001d7ed000dd72b000bd7cf000bd715000dd7e10012d7ffd718000a
+d7bb0009d7bc000ad7ffd7ffd70c000dd72b000bd7d1000ad716000dd7df0011d7ffd71a
+0009d7bc0009d7bc000bd7ffd7ffd70a000cd72d000ad7d3000ad716000dd7dc0011d7ff
+d71b000ad7bc0009d7bd000bd7ffd7ffd708000cd72d000ad7d5000ad716000dd7d90011
+d7ffd71c000ad7bd0009d7be000ad7ffd7210001d7e3000cd72d000ad7d7000ad716000e
+d7d50011d7ffd71e0009d7be0009d7be000bd7ffd7220001d7df000dd72d000ad7d9000a
+d716000ed7d30011d7ffd71e0009d7bf0009d7bf000bd7ffd7ffd702000dd72d000ad7da
+000bd717000dd7d00011d7ffd71f000ad7bf0009d7c0000bd7ffd7ffd700000cd72e000b
+d7db000bd717000dd7cd0011d7ffd720000ad7c00009d7c1000ad7ffd7ff000cd72e000b
+d7dd000bd717000dd7ca0011d7ffd7220009d7c10009d7c1000bd7ffd7250001d7d5000c
+d72e000bd7df000bd717000ed7c60011d7ffd723000ad7c10009d7c2000bd7ffd7260001
+d7d1000dd72e000bd7e1000bd717000ed7c40011d7ffd723000ad7c20009d7c3000bd7ff
+d7f8000dd72e000bd7e3000bd717000ed7c10011d7ffd7250009d7c30009d7c4000ad7ff
+d7f7000dd72e000bd7e5000bd718000dd7be0011d7ffd7260009d7c40009d7c4000bd7ff
+d7290000d7ca000cd72f000bd7e7000bd718000dd7bb0011d7ffd727000ad7c40009d7c5
+000bd7ffd7290001d7c7000cd72f000bd7e9000bd718000ed7b70012d7ffd7280009d7c5
+0009d7c6000ad7ffd72b0000d7c4000dd72f000bd7eb000bd718000ed7b50011d7ffd729
+0009d7c60009d7c7000ad7ffd7ef000dd72f000bd7ed000bd718000ed7b20011d7ffd72a
+000ad7c60009d7c7000bd7ffd7ed000dd72f000bd7ef000bd719000dd7af0011d7ffd72b
+000ad7c70009d7c8000bd7ffd72d0000d7bc000dd72f000bd7f1000bd719000dd7ac0011
+d7ffd72d0009d7c80009d7c9000ad7ffd72e0001d7b9000dd72f000bd7f3000bd719000e
+d7a80012d7ffd72d0009d7c90009d7c9000bd7ffd72f0000d7b6000dd730000bd7f5000b
+d719000ed7a60011d7ffd72e000ad7c90009d7ca000bd7ffd7e5000dd730000bd7f7000b
+d719000ed7a30011d78b0002d7a10009d7ca0009d7cb000bd7ffd7e3000dd730000bd7f8
+000cd71a000dd7a00011d78d0002d70c0004d78e0009d7cb0009d7cc000ad7ffd7320001
+d7ad000dd730000bd7fa000cd71a000ed79c0011d775000dd70a0002d709000cd789000a
+d7cb0009d7cc000bd7ffd7330001d7a9000ed730000bd7fc000cd71a000ed79a0011d776
+000dd70a0002d707000fd787000ad7cc0009d7cd000bd7ffd7340000d7a7000ed730000b
+d7fe000cd71a000ed7970011d77c0006d70d0002d7060004d7080003d7860009d7cd0009
+d7ce000bd7ffd7db000ed730000bd7ffd700000cd71a000fd7930011d77e0005d70d0002
+d7060004d70a0003d7840009d7ce0009d7cf000ad7ffd7d9000ed731000bd7ffd702000c
+d71b000ed7900011d7810004d70d0002d7050004d70c0003d782000ad7ce0009d7cf000b
+d7ffd7370001d79d000ed731000bd7ffd704000cd71b000ed78d0012d7820004d70d0001
+d7060004d70c0004d7810009d7cf0009d7d0000bd7ffd7380001d79a000ed731000bd7ff
+d706000cd71b000fd78a0011d7840004d70c0002d7050004d70e0004d77f0009d7d00009
+d7d1000ad7ffd7d3000fd731000bd7ffd708000dd71a000fd7870011d7860004d70c0002
+d7050004d70e0004d77e000ad7d00009d7d2000ad7ffd7d1000fd730000cd7ffd70a000d
+d71b000fd7830011d7880004d70c0001d7050004d7100004d77d0009d7d10009d7d2000b
+d7ffd7ce000fd731000cd7ffd70c000dd71b000fd7800011d78a0004d70b0002d7050004
+d7100004d77c0009d7d20009d7d3000bd7ffd73b0001d78e000fd731000cd7ffd70e000d
+d71b000fd77d0012d78b0004d70b0002d7050004d7100004d77b000ad7d20009d7d4000a
+d7b30002d7860001d78b000fd731000cd7ffd710000dd71c000fd77a0011d78d0004d70b
+0001d7050004d7110005d779000ad7d30009d7d4000bd763000ed73d0005d7ffd711000f
+d732000cd7ffd712000dd71c000fd7770011d78f0004d70a0002d7050004d7110005d779
+0009d7d40009d7d5000bd7620013d7380005d7ffd710000fd732000cd7ffd714000dd71d
+000ed7740011d7910004d70a0001d7060004d7110005d7780009d7d50009d7d6000bd764
+0011d7370005d78b0000d782000ed733000cd7ffd717000dd71c000fd7700012d7920004
+d70a0001d7050005d7110006d776000ad7d50009d7d7000ad7650005d7050005d7360005
+d78c0001d77e000fd732000cd7ffd71a000dd71d000ed76e0011d7940004d7090002d705
+0005d7120005d7760009d7d60009d7d7000bd7650004d7060005d7370002d78f0001d77b
+000ed733000cd7ffd71c000dd71d000ed76b0011d7960004d7090001d7060005d7120005
+d7750009d7d70009d7d8000bd7640004d7070005d7ffd746000ed733000cd7ffd71e000d
+d71d000fd7670011d7980004d7080002d7070004d7120004d775000ad7d70009d7d9000b
+d7630004d7080005d7ffd743000fd733000cd7ffd720000dd71e000ed7640011d79a0004
+d7080002d7070004d7110005d774000ad7d80009d7da000ad7630004d7080005d7ce0001
+d771000ed734000cd7ffd722000dd71e000fd7600012d79b0004d7080001d7080004d711
+0005d7740009d7d90009d7da000bd7620004d7080005d7d00001d76d000fd734000cd7ff
+d724000dd71f000ed75e0011d79d0004d7070002d7080004d7110004d7740009d7da0009
+d7db000bd7610004d7080005d7ffd73f000ed735000cd7ffd727000dd71e000fd75a0011
+d79f0004d7070001d7090005d7100004d773000ad7da0009d7dc000ad7610004d7080005
+d70b0007d70c0007d70d0002d70a0007d70c0002d7020005d7d7000fd734000cd7ffd72a
+000dd71f000fd7560011d7a10004d7070001d7090005d7100004d7730009d7db0009d7dd
+000ad7600004d7070006d70a000ad709000fd7030005d709000ad7070005d7010007d7d4
+000fd735000cd7ffd72c000dd71f000fd7530011d7a30004d7060002d70a0004d7100003
+d7730009d7dc0009d7dd000bd75f0004d7070005d70a0003d7010006d7070003d7030009
+d7000007d7080004d7010005d7040007d7000009d76e0001d761000fd735000cd7ffd72e
+000dd71f0010d74f0012d7a40004d7060001d70c0004d70e0004d772000ad7dc0009d7de
+000bd75e0004d7060005d70a0003d7040004d7060003d7050006d7020007d7070003d705
+0004d7030013d76f0001d75d0010d735000cd7ffd730000dd720000fd74d0011d7a60004
+d7060001d70d0003d70e0003d7730009d7dd0009d7df000ad75e0004d7040006d70a0003
+d7060003d7050003d7060004d7070004d7060004d7050004d7060005d7050004d7ce000f
+d736000cd7ffd732000ed71f0010d7490011d7a80004d7050002d70d0004d70c0003d773
+0009d7de0009d7df000bd75d000fd70b0002d7070004d7040003d7070003d7070004d705
+0004d7070004d7050004d7060004d7cc0010d735000dd7ffd734000ed720000fd7460011
+d7a90005d7050001d70f0004d70a0004d7720009d7df0009d7e0000bd75c000dd70c0003
+d7070004d7040003d7070004d7060004d7050004d7070004d7050004d7060004d7cb000f
+d736000dd7ffd737000dd7200010d7420012d7aa0005d7050001d7100004d7080004d772
+000ad7df0009d7e1000bd75b000dd70c0011d7020004d7070004d7060004d7050003d709
+0004d7040004d7070003d7760001d7500010d736000cd7ffd73a000dd721000fd7400011
+d7ab0008d7020001d7120007d7000007d7730009d7e00009d7e2000ad75b0004d7020006
+d70b0011d7020004d7070004d7060004d7040004d7090004d7040004d7070003d7780001
+d74d000fd737000cd7ffd73c000dd7210010d73c0011d7aa000dd7000001d714000cd774
+0009d7e10009d7e2000bd75a0004d7030005d70b0003d7110004d7060004d7060004d704
+0004d7090004d7040004d7070003d7c6000fd738000cd7ffd73e000ed7210010d7380011
+d7ffd753000ad7e10009d7e3000bd7590004d7030006d70a0003d7110004d7060003d707
+0004d7040004d7090005d7030004d7070003d7c40010d737000dd7ffd740000ed7210010
+d7350011d7ffd7550009d7e20009d7e4000bd7580004d7040006d7090003d7120003d705
+0003d7080004d7040004d7090005d7030004d7070003d77e0000d743000fd738000dd7ff
+d743000dd7220010d7310012d7ffd7550009d7e30009d7e5000ad7580004d7050005d709
+0003d7120004d7040002d7090004d7040004d7090005d7030004d7070003d77f0001d73f
+0010d738000cd7ffd746000dd7220010d72f0011d7ffd7560009d7e40009d7e5000bd757
+0004d7060005d7080003d70b0000d706000ad70a0004d7040005d7080004d7040004d707
+0003d7810000d73d000fd739000cd7ffd748000dd7230010d72b0011d7ffd757000ad7e4
+0009d7e6000bd7560004d7060005d7080004d70a0001d7050009d70b0004d7040005d708
+0004d7040004d7070003d7be0010d739000cd7ffd74a000ed7220010d7280011d7ffd759
+0009d7e50009d7e7000ad7560004d7070005d7070005d7090001d7040002d7130004d704
+0005d7080004d7040004d7070003d7bd000fd739000dd7ffd74d000dd7230010d7240011
+d7ffd75a0009d7e60009d7e8000ad7550004d7080005d7060005d7080002d7040002d713
+0004d7040005d7080003d7050004d7070003d7860000d7330010d739000cd7ffd750000d
+d7230011d7200012d7ffd75a000ad7e60009d7e8000bd7540004d7090005d7060007d703
+0003d7040004d7120004d7050005d7070003d7050004d7070003d7870001d72f0010d73a
+000cd7ffd752000dd7240010d71e0011d7ffd75c0009d7e70009d7e9000bd7530004d70a
+0005d705000ed7040010d7070004d7060005d7050003d7060004d7070003d7890001d72c
+000fd73b000cd7ffd754000dd7240011d71a0011d7ffd75d0009d7e80009d7ea000ad752
+0006d7090007d704000cd7050012d7050005d7070004d7020004d7060005d7060005d7b5
+0010d73b000cd7ffd757000dd7240010d7170011d7ffd75e0009d7e90009d7ea000bd74d
+000dd7070009d7030009d7070012d701000ad7070009d705000ad7010009d7b2000fd73b
+000cd7ffd75a000dd7240011d7130012d7ffd75e000ad7e90009d7eb000bd74c000dd708
+0008d7040007d70a0011d700000ad7080005d708000ad7010009d78c0001d7210010d73b
+000cd7ffd75c000dd7250011d7100011d7ffd7600009d7ea0009d7ec000bd7810002d70c
+0003d7c90001d71d0010d73c000cd7ffd75e000dd7250011d70d0011d7ffd7610009d7eb
+0009d7ed000ad7800002d70e0002d7e80010d73c000cd7ffd761000dd7250011d7090011
+d7ffd762000ad7eb0009d7ed000bd77f0002d70e0002d7e60010d73c000cd7ffd764000d
+d7260010d7060011d7ffd7640009d7ec0009d7ee000bd77d0004d70c0002d7e6000fd73d
+000cd7ffd766000dd7260011d7020012d7ffd7640009d7ed0009d7ef000bd77c0005d70a
+0002d7d10001d7110010d73d000cd7ffd768000ed7260023d7ffd765000ad7ed0009d7f0
+000ad77c0012d7d40001d70d0010d73d000dd7ffd76b000dd727001fd7ffd7670009d7ee
+0009d7f0000bd77c0011d7e30010d73d000cd7ffd76e000dd727001cd7ffd7680009d7ef
+0009d7f1000bd77d000cd7e40010d73e000cd7ffd770000ed7270019d7ffd7680009d7f0
+0009d7f2000ad77f0008d7e5000fd73e000dd7ffd773000dd7280015d7ffd769000ad7f0
+0009d7f3000ad7ffd76b0010d73e000dd7ffd775000ed7270012d7ffd76b0009d7f10009
+d7f3000bd7ffd7680010d73e000dd7ffd778000ed7280010d7ffd76a0009d7f20009d7f4
+000bd7ffd7660010d73e000dd7ffd77b000dd7290010d7ffd767000ad7f20009d7f5000a
+d7ffd7640010d73f000dd7ffd77d000ed7260013d7ffd7650009d7f30009d7f5000bd7ff
+d7610010d73f000dd7ffd780000ed7250015d7ffd7620009d7f40009d7f6000bd7ffd75e
+0011d73f000dd7ffd783000dd7240017d7ffd75f0009d7f50009d7f7000bd7ffd75b0011
+d740000dd7ffd785000ed7220019d7ffd75c000ad7f50009d7f8000ad7ffd7590012d73f
+000dd7ffd788000ed721001bd7ffd75a0009d7f60009d7f8000bd7ffd7560012d740000d
+d7ffd78b000dd7200008d7010012d7ffd7570009d747000ed7a00009d7f9000bd7ffd753
+0012d741000dd7ffd78d000ed71e0008d7020012d7ffd755000ad7470012d79c0009d7fa
+000ad7ffd7520012d740000ed7ffd78f000ed71d0008d7040012d7ffd7530009d74b0011
+d79a0009d7fb000ad7ffd74f0012d741000dd7ffd793000ed71b0008d7060012d7ffd750
+0009d74c0005d7050006d7210001d7750009d7fb000bd7ffd74c0012d741000ed7ffd795
+000ed71a0008d7080012d7ffd74d0009d74e0004d7060005d7210001d7750009d7fc000b
+d7ffd7490012d7020000d73e000ed7ffd797000fd7180008d70a0012d7ffd74b0009d74e
+0004d7070005d7200001d7750009d7fd000ad7ffd7470012d7040000d73c000ed7ffd79b
+000fd7160008d70c0012d7ffd7480009d74f0004d7080005d71e0002d7750009d7fd000b
+d7ffd7440012d7060000d73a000fd7ffd79d000fd7150008d70d0013d7ffd7450009d750
+0004d7080005d71d0003d7750009d7fe000bd7ffd7410013d7070000d739000fd7ffd79f
+0010d7130008d70f0013d7ffd742000ad7500004d7080005d71d0003d7750009d7ff000b
+d7ffd73e0013d7090000d737000fd7ffd7a3000fd7120008d7110013d7ffd7400009d751
+0004d7080005d71c0004d7750009d7ffd700000ad7ffd73c0013d743000fd7ffd7a50010
+d7100008d7130013d7ffd73d0009d7520004d7080005d70b0007d706000bd7050008d761
+0009d7ffd700000bd7ffd7390013d7430010d7ffd7a8000fd70f0008d7150013d7ffd73a
+0009d7530004d7080005d708000cd703000cd704000ad7600009d7ffd701000bd7ffd736
+0013d744000fd7ffd7ab0010d70d0008d7160014d7ffd7380009d7530004d7070005d709
+0003d7030004d7060004d7090002d7020005d75f0009d7ffd702000bd7ffd7330014d743
+0010d7ffd7ae000fd70c0008d7180014d7ffd7350009d7540004d7060005d7090003d705
+0004d7050004d7070003d7040005d75e0009d7ffd703000ad7ffd7310014d7120000d730
+000fd7ffd7b2000fd70a0008d71a0014d7ffd7320009d7550004d7030008d7090003d705
+0004d7050004d7060003d7060004d75e0009d7ffd703000bd7ffd72e0014d7140000d72e
+000fd7ffd7b50010d7080008d71c0014d7ffd72f000ad755000ed70c0003d7060003d705
+0004d7060003d7070004d75d0009d7ffd704000bd7ffd72b0014d7160000d72c0010d7ff
+d7b8000fd7070009d71d0014d7ffd72d0009d756000dd70d0003d7060003d7050004d706
+0002d7080004d75d0009d7ffd705000ad7ffd7290014d7180000d72b000fd7ffd7bb0010
+d7050009d71f0014d7ffd72a0009d757000dd70d0003d7050004d7050004d7060010d75d
+0009d7ffd706000ad7ffd7260014d7450010d7ffd7be000fd7040009d7210014d7ffd727
+000ad7570004d7020006d7130007d7050004d7050011d75d0009d7ffd706000bd7ffd723
+0014d746000fd7ffd7c10010d7020009d7230014d7ffd7250009d7580004d7030005d711
+0009d7050004d7050003d76b0009d7ffd707000bd7ffd7200014d7460010d7ffd7c4000f
+d7010009d7250014d7ffd7220009d7590004d7030006d70f0005d7000003d7050004d705
+0004d76a0009d7ffd708000ad7ffd71e0014d747000fd7ffd7c7001ad7270014d7ffd71f
+0009d75a0004d7040006d70c0004d7030003d7050004d7050004d76a0009d7ffd708000b
+d7ffd71b0014d7470010d7ffd7ca0018d7290014d7ffd71d0009d75a0004d7050005d70b
+0003d7050003d7050004d7050004d76a0009d7ffd709000bd7ffd7180014d7240000d721
+0010d7ffd7ce0016d72b0014d7ffd71a0009d75b0004d7060005d7090003d7060003d705
+0004d7050004d70b0000d75d0009d7ffd70a000bd7ffd7150014d7260000d720000fd7ff
+d7d10015d72d0014d7ffd7170009d75c0004d7060005d7080004d7060003d7050004d705
+0005d7090001d75d0009d7ffd70b000ad7ffd7130014d7280000d71e0010d7ffd7d40013
+d7300013d7ffd714000ad75c0004d7070006d7060003d7070003d7050004d7060005d708
+0001d75d0009d7ffd70b000bd7ffd7100013d72b0000d71d000fd7ffd7d70012d7320013
+d7ffd7120009d75d0004d7080006d7050004d7050004d7050004d7060006d7060002d75d
+0009d7ffd70c000bd7ffd70d0013d74a0010d7ffd7da0010d7340013d7ffd70f0009d75e
+0004d7090005d7050004d7040005d7020000d7010004d7030001d7000007d7040002d75e
+0009d7ffd70d000bd7ffd70a0013d74a0010d7ffd7dd0010d7350013d7ffd70c0009d75f
+0004d70a0005d7040006d701000ad7010005d7000002d702000ed75e0009d7ffd70e000a
+d7ffd7080013d74b0010d7ffd7e00010d7350014d7ffd7090009d75e0006d7090007d702
+000ad7000007d7010009d703000cd75f0009d7ffd70e000bd7ffd7040014d74b0010d7ff
+d7e4000fd7360014d7ffd7060009d75c000cd7070009d7000008d7010006d7030007d705
+0009d7610009d7ffd70f000bd7ffd7010014d74c000fd7ffd7e70010d7360014d7ffd703
+0009d75d000cd7080008d7020005d7020004d7060005d7080006d7620009d7ffd710000a
+d7ff0014d7370000d7130010d7ffd7e90011d7360015d7ff000ad7ffd70d0009d7ffd711
+000ad7fb0015d7390000d7110010d7ffd7eb0012d7380014d7fd0009d7ffd70e0009d7ff
+d711000bd7f80014d73c0000d7100010d7ffd7ec0014d7380014d7fa0009d7ffd70f0009
+d7ffd712000bd7f50014d73e0000d70e0010d7ffd7ee0015d7390014d7f70009d7ffd710
+0009d7ffd713000ad7f30014d74f000fd7ffd7f70010d7390015d7f40009d7ffd7100009
+d7ffd713000bd7ef0015d74f0010d7ffd7fa0010d73a0014d7f10009d7ffd7110009d7ff
+d714000bd7ec0014d7500010d7ffd7fd0010d73b0014d7ee0009d7ffd7120009d7ffd715
+000bd7e90014d7510010d7ffd7ffd7000010d73b0014d7ec0009d7ffd7120009d7ffd716
+000ad7e70014d7510010d7ffd7ffd7040010d73c0014d7e80009d7ffd7130009d7ffd716
+000bd7e30014d74c0000d7040010d7ffd7ffd7070011d73c0014d7e50009d7ffd7140009
+d7ffd717000bd7e00014d74e0000d7020011d7ffd7ffd70a0011d73c0015d7e10009d7ff
+d7150009d7ffd718000bd7dc0015d7500000d7000011d7ffd7ffd70d0012d73c0015d7df
+0009d7ffd7150009d7ffd719000ad7da0015d7520012d7ffd7ffd7100012d73d0014d7dc
+0009d7ffd7160009d7ffd719000bd7d70014d7530012d7ffd7ffd7140012d73d0015d7d8
+0009d7d80003d73a0009d7ffd71a000bd7d30015d7530012d7ffd7ffd7170012d73e0015
+d7d60009d72c0009d7130009d7820005d7390009d7450002d7140003d7920003d722000a
+d7d10015d7530013d7ffd7ffd71a0012d73e0016d7d20009d72d0009d7130009d7820005
+d7390013d7140009d7190005d7130004d7910004d723000ad7cd0016d7530013d7ffd7ff
+d71e0012d73f0015d7cf0009d7310007d7110007d7850005d7390013d7140009d7170007
+d7130005d7900005d722000bd7ca0015d7540013d7ffd7ffd7220012d73f0016d7cb0009
+d7320007d7110006d74e0001d7360004d7390009d7020007d7120006d71b0007d7130005
+d7900005d723000bd7c60016d7540013d7ffd7ffd7260012d73f0016d7c90009d7330007
+d70f0007d74e0001d7380000d73b0009d7040005d7120006d71e0004d7090000d7090003
+d7920003d725000ad7c40016d7540013d7ffd7ffd72a0012d73f0016d7c60009d7340007
+d70f0007d74e0001d7750009d7040006d7100006d71f0004d7090000d70a0001d7940001
+d726000bd7c10016d7540013d7ffd7ffd72e0012d7400016d7c20009d7350007d70e0008
+d74d0002d7750009d7040006d7100006d71f0004d7080001d7cb000bd7bd0016d7550013
+d7ffd7ffd7320012d7400016d7c00009d7350008d70d0008d74c0003d7750009d7040007
+d70e0007d71f0004d7080001d7cc000bd7ba0016d7550013d7ffd7ffd7360012d7400017
+d7bc0009d7360008d70c0009d74b0004d7750009d7040007d70e0007d71f0004d7070002
+d7cd000ad7b70017d7560012d7ffd7ffd73a0012d7410017d7b80009d7370002d7000005
+d70b0002d7000005d70c0003d70e0002d7040002d7100002d70b0005d70d0003d70e0002
+d7040002d70c0002d70d0003d7270009d7040008d70c0008d71f0004d7060003d7cd000b
+d7b30017d7570012d7ffd7ffd73e0012d7410017d7b60009d7370002d7000005d70a0003
+d7000005d70a0008d7090004d7030005d70b0008d706000cd7060008d7090004d7030005
+d7080004d7090009d7250009d7040002d7000004d70c0002d7000004d71f0004d7050004
+d70b0001d7090001d7040001d70d0001d7030001d70a0003d7130002d7100001d70e0004
+d7010001d7080004d7010001d7080001d7090001d7050001d7110002d700000bd7b00017
+d7570012d7ffd7ffd7420012d7410018d7b20009d7380002d7010005d7090002d7010005
+d709000ad7060006d7010007d70a000ad705000cd705000ad7060006d7010007d7060006
+d708000bd7240009d7040002d7000005d70a0003d7000004d7040006d7040007d7060004
+d703000bd7040003d7070003d7020006d7080003d7020004d7060009d70b0009d7090008
+d709000ad706000ad7060003d7070003d7030005d70c0013d7ac0018d7570012d7ffd7ff
+d7460012d7410019d7ae0009d7390002d7010005d7090002d7010005d7070004d7020005
+d7040007d7000009d7070004d7020005d7070004d7080004d7020005d7040007d7000009
+d7040007d7070003d7030005d7230009d7040002d7010004d70a0002d7010004d7040006
+d7040007d7060004d703000bd7020005d7050005d7010008d7050005d7010006d703000c
+d709000bd707000ad707000bd705000bd7040005d7050005d7010008d7080016d7a90019
+d7570012d7ffd7ffd74a0012d7420019d7aa0009d73a0002d7020004d7080002d7020005
+d7070003d7050004d7030000d7000009d7010005d7060003d7050004d7060004d7080003
+d7050004d7030000d7010008d7010005d7030000d7010004d7060003d7050004d7230009
+d7040002d7010005d7080003d7010004d7070003d7070004d7060004d7060003d7060006
+d7040006d700000ad7030006d7000007d7020003d7040004d7080003d7030004d7060003
+d7030004d7050003d7040003d7040003d7040003d7030006d7040006d700000ad7070003
+d704000ed7a50019d7580012d7ffd7ffd74e0012d742001ad7a70009d73a0002d7020005
+d7070002d7020005d7060003d7060004d7060005d7050004d7050003d7060004d7060004
+d7070003d7060004d7060005d7050004d7060004d7050003d7060004d7230009d7040002
+d7020004d7080002d7020004d7070003d7070004d7060004d7060003d7060000d7000004
+d7040000d7000011d7020000d700000cd7030003d7050004d7060003d7050004d7050001
+d7060004d7040002d7060002d7040002d7060002d7030000d7000004d7040000d7000008
+d7010005d7060003d706000ed7a1001ad7580012d7ffd7ffd7520012d742001ad7a40009
+d73b0002d7030004d7060002d7030005d7050004d7070004d7050004d7060004d7050003
+d7070004d7050004d7060004d7070004d7050004d7060004d7060004d7050003d7060004
+d7230009d7040002d7020005d7060003d7020004d7070003d7070004d7060004d7060003
+d7090003d7070006d7030005d7050005d7010003d7020003d7060005d7040003d7060004
+d7040002d7070004d7020003d7060002d7030003d7060002d7060003d7070005d7040005
+d7050003d706000ed79f001ad7580012d7ffd7ffd7560012d742001bd7a00009d73c0002
+d7030005d7050002d7030005d7050003d7080005d7040004d7070003d7040004d7070005
+d7040004d7060003d7080005d7040004d7070003d7060004d7050003d7070003d7230009
+d7040002d7030004d7060002d7030004d7070003d7070004d7060004d7060003d7090003
+d7070004d7060005d7040004d7080004d7070004d7040003d7060004d7040002d7070004
+d7020003d7070001d7030003d7070001d7060003d7070003d7070004d7040004d706000f
+d79b001bd7580012d7ffd7ffd75a0012d743001bd79d0009d73c0002d7040004d7040002
+d7040005d7050003d7090004d7040004d7070003d7040004d7080004d7040004d7060003
+d7090004d7040004d7070003d7060004d7050003d72f0009d7040002d7030005d7040003
+d7030004d7070003d7070004d7060004d7060003d7090003d7070003d7080004d7040003
+d7090003d7080005d7020004d7070003d7030003d7070004d7020004d7060001d7030004
+d7060001d7060003d7070003d7070004d7040004d707000fd797001bd7590012d7ffd7ff
+d75e0012d744001bd7990009d73d0002d7040004d7040002d7040005d7040004d7090004
+d7040004d7070003d7030005d7080004d7040004d7050004d7090004d7040004d7070003
+d7060004d7040004d72f0009d7040002d7040004d7040002d7040004d7070003d7070004
+d7060004d7060003d7090003d7070003d7080004d7040003d7080004d7090004d7020003
+d7100010d7030006d7030001d7040006d7030001d7060003d7070003d7070004d7040004
+d7070003d700000bd793001bd75a0012d7ffd7ffd7620012d744001bd7960009d73e0002
+d7050004d7020002d7050005d7040004d7090004d7040004d7070003d7030005d7080004
+d7040004d7050004d7090004d7040004d7070003d7060004d7040004d72f0009d7040002
+d7040005d7020003d7040004d7070003d7070004d7060004d7060003d7090003d7070003
+d7080004d7040003d7080004d7090004d7020003d7100011d7020008d7080008d70a0003
+d7070003d7070004d7040004d7070003d701000ad791001bd75a0012d7ffd7ffd7660012
+d745001bd7920009d73f0002d7050004d7020002d7050005d7040004d7090005d7030004
+d7070003d7030005d7080005d7030004d7050004d7090005d7030004d7070003d7060004
+d7040004d72f0009d7040002d7050004d7020002d7050004d7070003d7070004d7060004
+d7060003d7090003d7070003d7090004d7030003d7080004d7090004d7020003d7100003
+d7110009d7070009d7080003d7070003d7070004d7040004d7070003d701000bd78d001b
+d75b0012d7ffd7ffd76a0012d746001bd78f0009d73f0002d7060004d7000002d7060005
+d7040004d7090005d7030004d7070003d7030005d7090004d7030004d7050004d70a0004
+d7030004d7070003d7060004d7040004d72f0009d7040002d7050005d7000003d7050004
+d7070003d7070004d7060004d7060003d7090003d7070003d7090004d7030003d7080004
+d7090005d7010003d70f0004d7120009d7070009d7070003d7070003d7070004d7050003
+d7060004d702000bd789001bd75c0012d7ffd7ffd76e0012d747001bd78b0009d7400002
+d7060004d7000002d7060005d7040004d7090005d7030004d7070003d7030005d7090004
+d7030004d7050004d70a0004d7030004d7070003d7060004d7040004d72f0009d7040002
+d7060004d7000002d7060004d7070003d7070004d7060004d7060003d7090003d7070003
+d7090004d7030003d7080004d7090005d7010003d70f0004d7150006d70a0006d7070003
+d7070003d7070004d7060003d7050003d704000bd785001bd75d0012d7ffd7ffd7720012
+d748001bd7870009d7410002d7070006d7070005d7040005d7080004d7040004d7070003
+d7030005d7090003d7040004d7050005d7090003d7040004d7070003d7060004d7040004
+d70b0000d7220009d7040002d7060008d7060004d7070003d7070004d7060004d7060003
+d7090003d7070003d7090003d7040003d7080004d7090005d7010004d70f0003d7160006
+d70a0006d7060003d7070003d7070004d7060004d7030003d706000ad782001bd75e0012
+d7ffd7ffd7760012d748001cd7840009d7410002d7070006d7070005d7050004d7080004
+d7040004d7070003d7040004d7090003d7040004d7060004d7090003d7040004d7070003
+d7060004d7040004d70a0001d7220009d7040002d7070006d7070004d7070003d7070004
+d7060004d7060003d7090003d7070003d7090003d7040003d7080005d7080004d7020004
+d70b0000d7020003d70b0001d70a0005d70b0005d7050003d7070003d7070004d707000a
+d707000bd77e001cd75e0012d7ffd7ffd77a0012d749001cd7800009d7420002d7080004
+d7080005d7050004d7080004d7040004d7070003d7040004d7090003d7040004d7060004
+d7090003d7040004d7070003d7060004d7050004d7090001d7220009d7040002d7070006
+d7070004d7070003d7070004d7060004d7060003d7090003d7070003d7090003d7040003
+d7080005d7080004d7020004d70a0001d7020004d7090002d7010001d7070004d7020001
+d7070004d7050003d7070003d7070004d7070007d70b000bd77a001cd75f0012d7ffd7ff
+d77e0012d74a001cd77c0009d7430002d7080004d7080005d7050005d7070003d7050004
+d7070003d7050004d7070004d7040004d7060005d7070004d7040004d7070003d7060004
+d7050005d7060002d7230009d7040002d7080004d7080004d7070003d7070004d7060004
+d7060003d7090003d7070003d7090003d7040003d7080005d7080003d7030005d7080002
+d7020005d7080001d7020001d7080003d7020001d7080003d7050003d7070003d7070004
+d7050003d712000bd776001cd7600012d7ffd7ffd7820012d74b001cd7780009d7440002
+d7090002d7090005d7050005d7070003d7050004d7070003d7050004d7070003d7050004
+d7020002d7000005d7070003d7050004d7070003d7060004d7050008d7020003d7230009
+d7040002d7080004d7080004d7070004d7060004d7060004d7060004d7080003d7070003
+d7090002d7050003d7090005d7070003d7030006d7060002d7030006d7060002d7020002
+d7070003d7020002d7070003d7050003d7070003d7070004d7050002d714000ad772001d
+d7610012d7ffd7ffd7860012d74b001dd7750009d7440002d7090002d7090005d7060005
+d7050003d7060004d7070004d7040005d7050003d7060009d7020005d7050003d7060004
+d7070004d7050004d707000cd7240009d7040002d7090002d7090005d7060005d7030006
+d7060004d7060004d7020001d7030003d7070004d7070003d7050004d7080005d7060004
+d7040008d7010004d7040008d7010004d7020003d7060003d7020003d7060003d7050003
+d7070003d7070004d704000cd70b000bd76e001ed7600013d7ffd7ffd78a0013d74b001d
+d7710009d7430006d7080000d7090007d7070006d7000004d7060006d7050005d7060006
+d7010003d7080008d7040006d7010003d7060006d7050005d7040006d707000ad7250009
+d7030003d7090002d7090005d7060013d7030004d7060009d7030004d7060005d7050003
+d7060004d7090005d7050003d707000cd706000dd7030003d7050003d7030003d7050003
+d7060004d7060003d7070004d7040011d707000bd76a001ed7610013d7ffd7ffd78e0013
+d74c001dd76d0009d742000ad7060000d706000dd7060009d705000ad701000ad7050009
+d7090006d7080009d705000ad7010015d7060008d7260009d7020006d7080000d7080008
+d7060009d7000007d7020006d7050008d7030006d7050006d7020003d7060007d70a0006
+d7000004d709000ad708000bd7040006d7010003d7040006d7010003d7060006d7030006
+d7050006d7030012d707000ad767001ed7620013d7ffd7ffd7920013d74d001dd76a0009
+d7720005d7280004d70e0003d70a0005d7340003d7290015d7060000d706000dd7040007
+d7010005d702000ad7040006d702000ad703000cd706000ad709000ad70b0008d70b0008
+d705000bd705000bd705000ad7000009d701000ad7020012d707000ad763001ed7620014
+d7ffd7ffd7960013d74e001dd7660009d7ffd72e0009d72e0005d7020003d7160003d712
+0003d7010004d71f0005d7100003d70f0004d7080001d7010006d7060001d7010006d72c
+0002d704000ad707000bd75f001ed7630014d7ffd7ffd79a0013d74f001dd7620009d7ff
+d72f0009d7690003d7a80002d70e0001d708000bd75b001ed7640014d7ffd7ffd79e0014
+d74f001ed75e0008d7ffd7300009d7690003d7a80002d70e0001d709000ad757001fd765
+0014d7ffd7ffd7a20014d750001ed75a0009d7ffd7300009d7690003d7a70002d70e0002
+d709000bd753001fd7650015d7ffd7ffd7a60014d752001ed7550009d7ffd7310009d769
+0003d7a70003d70d0001d70b000bd74f001ed7670014d7ffd7ffd7ac0013d753001ed751
+0009d7ffd7320009d7690003d7a70006d7070004d70c000bd74a001fd7680014d7ffd7ff
+d7b00013d754001fd74d0009d7ffd7320009d7690003d7a70012d70e000ad747001fd769
+0014d7ffd7ffd7b40014d754001fd7490009d7ffd7330009d7680005d7a7000fd710000b
+d743001fd7690014d7ffd7ffd7b90014d755001fd7450009d7ffd7340009d765000ad7a7
+000cd712000bd73e0020d76a0014d7ffd7ffd7bd0015d7550020d7410008d7ffd7350009
+d765000ad7ab0004d717000bd73a0020d76a0015d7ffd7ffd7c20014d7560020d73d0009
+d7ffd7350009d7ffd73a000ad7370020d76b0015d7ffd7ffd7c60015d7570020d7380009
+d7ffd7360009d7ffd73a000bd7320020d76d0014d7ffd7ffd7cb0015d7580020d7340009
+d7ffd7370009d7ffd73b000bd72e0020d76d0015d7ffd7ffd7cf0016d7590020d7300009
+d7ffd7370009d7ffd73c000ad72a0020d76f0015d7ffd7ffd7d30016d75a0020d72c0009
+d7ffd7380009d7ffd73d000ad7250021d76f0016d7ffd7ffd7d80016d75b0020d7270009
+d7ffd7390009d7ffd73d000bd7210020d7710015d7ffd7ffd7dd0016d75c0020d7240009
+d7ffd7390009d7ffd73e000bd71c0020d7720016d7ffd7ffd7e10017d75c0021d71f0009
+d7ffd73a0009d7ffd73f000ad7180021d7730016d7ffd7ffd7e60016d75e0021d71a0009
+d7ffd73b0009d7ffd73f000bd7140020d7750016d7ffd7ffd7ea0017d75e0021d7170008
+d7ffd73c0009d7ffd740000bd70f0021d7750016d7ffd7ffd7ef0017d7600021d7120009
+d7ffd73c0009d7ffd741000bd70b0020d7770016d7ffd7ffd7f40017d7610020d70e0009
+d7ffd73d0009d7ffd742000ad7070021d7770017d7ffd7ffd7f80018d7620020d7090009
+d7ffd73e0009d7ffd742000bd7020021d7780017d7ffd7ffd7fd0018d7640020d7050009
+d7ffd73e0009d7ffd743002bd77a0017d7ffd7ffd7ffd7020018d7650020d7000009d7ff
+d73f0009d7ffd7440026d77b0018d7ffd7ffd7ffd7060019d7660026d7ffd7400009d7ff
+d7450021d77c0019d7ffd7ffd7ffd70a0019d7680021d7ffd7410009d7ffd7400022d77d
+0019d7ffd7ffd7ffd7100019d7690022d7ffd73c0009d7ffd73c0022d77e001ad7ffd7ff
+d7ffd714001ad76a0022d7ffd7380009d7ffd7380022d780001ad7ffd7ffd7ffd718001a
+d76c0022d7ffd7340009d7ffd7330023d781001bd7ffd7ffd7ffd71d001ad76d0023d7ff
+d72f0009d7ffd72f0023d782001bd7ffd7ffd7ffd723001ad76e0023d7ffd72b0009d7ff
+d72b0026d780001bd7ffd7ffd7ffd728001ad7700024d7ffd7260009d7ffd726002bd77e
+001ad7ffd7ffd7ffd72e001ad76e0028d7ffd7210009d7ffd7210024d7010009d77b001b
+d7ffd7ffd7ffd733001ad76b002dd7ffd71c0009d7ffd71c0025d7050009d778001bd7ff
+d7ffd7ffd739001ad7680008d7030025d7ffd7170009d7ffd7170025d70a0009d775001b
+d7ffd7ffd7ffd73f001ad7650008d7070027d7ffd7110009d7ffd7110027d70e0009d772
+001bd7ffd7ffd7ffd744001cd7610008d70b0028d7ffd70c0009d7ffd70c0028d7120009
+d76f001bd7ffd7ffd7ffd74a001cd75e0008d7100028d7ffd7070009d7ffd7070028d717
+0009d76c001bd7ffd7ffd7ffd750001cd75b0008d7140029d7ffd7020009d7ffd7020029
+d71b0009d769001bd7ffd7ffd7ffd756001cd7580008d719002ad7fc0009d7fc002ad720
+0009d765001dd7ffd7ffd7ffd75a001dd7550008d71e002bd7f60009d7f6002bd7250009
+d762001dd7ffd7ffd7ffd760001dd7520008d723002cd7f00009d7f0002cd72a0009d75f
+001dd7ffd7ffd7ffd766001ed74e0008d728002dd7ea0009d7ea002dd72f0009d75c001d
+d7ffd7ffd7ffd76c001ed74b0008d72e002dd7e40009d7e4002dd7350009d759001dd7ff
+d7ffd7ffd772001ed7480008d733002ed7de0009d7de002ed73a0009d756001dd7ffd7ff
+d7ffd778001ed7450008d738002fd7d80009d7d8002fd73f0009d753001dd7ffd7ffd7ff
+d77e001fd7410008d73d0031d7d10009d7d10031d7440009d74f001ed7ffd7ffd7ffd784
+001fd73e0008d7430033d7c90009d7c90033d74a0009d74c001ed7ffd7ffd7ffd78b001e
+d73b0008d7490036d7c00009d7c00036d7500009d748001fd7ffd7ffd7ffd791001fd737
+0008d74f0038d7b80009d7b80038d7560009d745001fd7ffd7ffd7ffd797001fd7340008
+d755003ad7b00009d7b0003ad75c0009d7410020d7ffd7ffd7ffd79d001fd7310008d75b
+003ed7a60009d7a6003ed7620009d73e0020d7ffd7ffd7ffd7a30020d72d0008d7610043
+d79b0009d79b0043d7680009d73b0020d7ffd7ffd7ffd7a90020d72a0008d7670048d790
+0009d7900048d76e0009d7370021d7ffd7ffd7ffd7af0020d7270008d76d004dd7850009
+d785004dd7740009d7340021d7ffd7ffd7ffd7b60020d7230008d7740051d77a0009d77a
+0051d77b0009d7300021d7ffd7ffd7ffd7bd0020d7200008d77b0055d76f0009d76f0055
+d7820009d72d0021d7ffd7ffd7ffd7c40020d71c0008d7830057d7650009d7650057d78a
+0009d7290021d7ffd7ffd7ffd7cb0021d7180008d78a005bd75a0009d75a005bd7910009
+d7250022d7ffd7ffd7ffd7d20021d7140008d7910065d7490009d7490065d7980009d721
+0022d7ffd7ffd7ffd7da0021d7100008d79a0072d7330009d7330072d7a10009d71d0022
+d7ffd7ffd7ffd7e10022d70c0008d7a500ff0041d7ac0009d7190023d7ffd7ffd7ffd7e8
+0022d7080008d7af00ff002dd7b60009d7150023d7ffd7ffd7ffd7ef0023d7040008d7ba
+00ff0017d7c10009d7110024d7ffd7ffd7ffd7f60023d7000008d7c700fdd7ce0009d70d
+0024d7ffd7ffd7ffd7fd002ad7d600dfd7dd0009d7090025d7ffd7ffd7ffd7ffd7040026
+d7e400c3d7eb0009d7050025d7ffd7ffd7ffd7ffd70c0024d7f100a5d7fa0009d7010025
+d7ffd7ffd7ffd7ffd7140025d7fb0087d7ffd709002dd7ffd7ffd7ffd7ffd71c0025d7ff
+d7060069d7ffd7180029d7ffd7ffd7ffd7ffd7230027d7ffd7300009d7ffd7470027d7ff
+d7ffd7ffd7ffd72b0027d7ffd72c0009d7ffd7430027d7ffd7ffd7ffd7ffd7330027d7ff
+d7280009d7ffd73f0027d7ffd7ffd7ffd7ffd73b0028d7ffd7230009d7ffd73a0028d7ff
+d7ffd7ffd7ffd7430028d7ffd71f0009d7ffd7360028d7ffd7ffd7ffd7ffd74b0029d7ff
+d71a0009d7ffd7310029d7ffd7ffd7ffd7ffd7530029d7ffd7160009d7ffd72d0029d7ff
+d7ffd7ffd7ffd75c0029d7ffd7110009d7ffd7280029d7ffd7ffd7ffd7ffd7650029d7ff
+d70d0009d7ffd7240029d7ffd7ffd7ffd7ffd76e0029d7ffd7080009d7ffd71f0029d7ff
+d7ffd7ffd7ffd7780029d7ffd7030009d7ffd71b0029d7ffd7ffd7ffd7ffd7800029d7ff
+0009d7ffd7170029d7ffd7ffd7ffd7ffd7890029d7fa0009d7ffd7120029d7ffd7ffd7ff
+d7ffd7920029d7f60009d7ffd70e0029d7ffd7ffd7ffd7ffd79b002ad7f00009d7ffd708
+002ad7ffd7ffd7ffd7ffd7a5002cd7e90009d7ffd701002cd7ffd7ffd7ffd7ffd7af002e
+d7e20009d7fa002ed7ffd7ffd7ffd7ffd7b90030d7db0009d7f30030d7ffd7ffd7ffd7ff
+d7c40031d7d40009d7ec0031d7ffd7ffd7ffd7ffd7cf0033d7cd0009d7e50033d7ffd7ff
+d7ffd7ffd7d90035d7c60009d7de0035d7ffd7ffd7ffd7ffd7e30037d7bf0009d7d70037
+d7ffd7ffd7ffd7ffd7ee0038d7b80009d7d00038d7ffd7ffd7ffd7ffd7fa0039d7b10009
+d7c90039d7ffd7ffd7ffd7ffd7ffd706003ad7aa0009d7c2003ad7ffd7ffd7ffd7ffd7ff
+d712003bd7a30009d7bb003bd7ffd7ffd7ffd7ffd7ffd71e003ed79a0009d7b2003ed7ff
+d7ffd7ffd7ffd7ffd72a0043d78f0009d7a70043d7ffd7ffd7ffd7ffd7ffd7360047d785
+0009d79c0048d7ffd7ffd7ffd7ffd7ffd742004cd77a0009d791004dd7ffd7ffd7ffd7ff
+d7ffd74f0050d76f0009d7860051d7ffd7ffd7ffd7ffd7ffd75d0054d7640009d77b0055
+d7ffd7ffd7ffd7ffd7ffd76b0058d7590009d7700058d7ffd7ffd7ffd7ffd7ffd77a005c
+d74e0009d765005cd7ffd7ffd7ffd7ffd7ffd7880066d73d0009d7540066d7ffd7ffd7ff
+d7ffd7ffd7980073d7270009d73e0073d7ffd7ffd7ffd7ffd7ffd7ac00ff0042d7ffd7ff
+d7ffd7ffd7ffd7c200ff002dd7ffd7ffd7ffd7ffd7ffd7d700ff0017d7ffd7ffd7ffd7ff
+d7ffd7ef00fdd7ffd7ffd7ffd7ffd7ffd7ffd70b00dfd7ffd7ffd7ffd7ffd7ffd7ffd728
+00c2d7ffd7ffd7ffd7ffd7ffd7ffd74a009cd7ffd7ffd7ffd7ffd7ffd7ffd7730070d7ff
+d7ffd7ffd7ffd7ffd7ffd7ab002cd7ffd7ffd7ffd7ffd7ffd7ffd7ffd7ffd7ffd7ffd75c
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 213 495 508
+%%EOF
diff --git a/doc/user/rtemspie.gif b/doc/user/rtemspie.gif
new file mode 100644
index 0000000000..8341861b0d
--- /dev/null
+++ b/doc/user/rtemspie.gif
Binary files differ
diff --git a/doc/user/rtemspie.png b/doc/user/rtemspie.png
new file mode 100644
index 0000000000..f6245ff45f
--- /dev/null
+++ b/doc/user/rtemspie.png
Binary files differ
diff --git a/doc/user/rtmon.t b/doc/user/rtmon.t
new file mode 100644
index 0000000000..8ce6901c19
--- /dev/null
+++ b/doc/user/rtmon.t
@@ -0,0 +1,1183 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@c
+@c Open Issues
+@c - nicen up the tables
+@c - use math mode to print formulas
+@c
+
+@chapter Rate Monotonic Manager
+
+@cindex rate mononitonic tasks
+@cindex periodic tasks
+
+@section Introduction
+
+The rate monotonic manager provides facilities to
+implement tasks which execute in a periodic fashion. The
+directives provided by the rate monotonic manager are:
+
+@itemize @bullet
+@item @code{@value{DIRPREFIX}rate_monotonic_create} - Create a rate monotonic period
+@item @code{@value{DIRPREFIX}rate_monotonic_ident} - Get ID of a period
+@item @code{@value{DIRPREFIX}rate_monotonic_cancel} - Cancel a period
+@item @code{@value{DIRPREFIX}rate_monotonic_delete} - Delete a rate monotonic period
+@item @code{@value{DIRPREFIX}rate_monotonic_period} - Conclude current/Start next period
+@item @code{@value{DIRPREFIX}rate_monotonic_get_status} - Obtain status information on period
+@end itemize
+
+@section Background
+
+The rate monotonic manager provides facilities to
+manage the execution of periodic tasks. This manager was
+designed to support application designers who utilize the Rate
+Monotonic Scheduling Algorithm (RMS) to ensure that their
+periodic tasks will meet their deadlines, even under transient
+overload conditions. Although designed for hard real-time
+systems, the services provided by the rate monotonic manager may
+be used by any application which requires periodic tasks.
+
+@subsection Rate Monotonic Manager Required Support
+
+A clock tick is required to support the functionality provided by this manager.
+
+@subsection Rate Monotonic Manager Definitions
+
+@cindex periodic task, definition
+
+A periodic task is one which must be executed at a
+regular interval. The interval between successive iterations of
+the task is referred to as its period. Periodic tasks can be
+characterized by the length of their period and execution time.
+The period and execution time of a task can be used to determine
+the processor utilization for that task. Processor utilization
+is the percentage of processor time used and can be calculated
+on a per-task or system-wide basis. Typically, the task's
+worst-case execution time will be less than its period. For
+example, a periodic task's requirements may state that it should
+execute for 10 milliseconds every 100 milliseconds. Although
+the execution time may be the average, worst, or best case, the
+worst-case execution time is more appropriate for use when
+analyzing system behavior under transient overload conditions.
+
+@cindex aperiodic task, definition
+
+In contrast, an aperiodic task executes at irregular
+intervals and has only a soft deadline. In other words, the
+deadlines for aperiodic tasks are not rigid, but adequate
+response times are desirable. For example, an aperiodic task
+may process user input from a terminal.
+
+@cindex sporadic task, definition
+
+Finally, a sporadic task is an aperiodic task with a
+hard deadline and minimum interarrival time. The minimum
+interarrival time is the minimum period of time which exists
+between successive iterations of the task. For example, a
+sporadic task could be used to process the pressing of a fire
+button on a joystick. The mechanical action of the fire button
+ensures a minimum time period between successive activations,
+but the missile must be launched by a hard deadline.
+
+@subsection Rate Monotonic Scheduling Algorithm
+
+@cindex Rate Monotonic Scheduling Algorithm, definition
+@cindex RMS Algorithm, definition
+
+The Rate Monotonic Scheduling Algorithm (RMS) is
+important to real-time systems designers because it allows one
+to guarantee that a set of tasks is schedulable. A set of tasks
+is said to be schedulable if all of the tasks can meet their
+deadlines. RMS provides a set of rules which can be used to
+perform a guaranteed schedulability analysis for a task set.
+This analysis determines whether a task set is schedulable under
+worst-case conditions and emphasizes the predictability of the
+system's behavior. It has been proven that:
+
+@itemize @code{ }
+@b{RMS is an optimal static priority algorithm for
+scheduling independent, preemptible, periodic tasks
+on a single processor.}
+@end itemize
+
+RMS is optimal in the sense that if a set of tasks
+can be scheduled by any static priority algorithm, then RMS will
+be able to schedule that task set. RMS bases it schedulability
+analysis on the processor utilization level below which all
+deadlines can be met.
+
+RMS calls for the static assignment of task
+priorities based upon their period. The shorter a task's
+period, the higher its priority. For example, a task with a 1
+millisecond period has higher priority than a task with a 100
+millisecond period. If two tasks have the same period, then RMS
+does not distinguish between the tasks. However, RTEMS
+specifies that when given tasks of equal priority, the task
+which has been ready longest will execute first. RMS's priority
+assignment scheme does not provide one with exact numeric values
+for task priorities. For example, consider the following task
+set and priority assignments:
+
+@ifset use-ascii
+@example
+@group
++--------------------+---------------------+---------------------+
+| Task | Period | Priority |
+| | (in milliseconds) | |
++--------------------+---------------------+---------------------+
+| 1 | 100 | Low |
++--------------------+---------------------+---------------------+
+| 2 | 50 | Medium |
++--------------------+---------------------+---------------------+
+| 3 | 50 | Medium |
++--------------------+---------------------+---------------------+
+| 4 | 25 | High |
++--------------------+---------------------+---------------------+
+@end group
+@end example
+@end ifset
+
+@ifset use-tex
+@sp 1
+@tex
+\centerline{\vbox{\offinterlineskip\halign{
+\vrule\strut#&
+\hbox to 0.75in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 1.25in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 1.25in{\enskip\hfil#\hfil}&
+\vrule#\cr\noalign{\hrule}
+&\bf Task&& \bf Period && \bf Priority &\cr
+& && \bf (in milliseconds) && &\cr\noalign{\hrule}
+& 1 && 100 && Low &\cr\noalign{\hrule}
+& 2 && 50 && Medium &\cr\noalign{\hrule}
+& 3 && 50 && Medium &\cr\noalign{\hrule}
+& 4 && 25 && High &\cr\noalign{\hrule}
+}}\hfil}
+@end tex
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=3 WIDTH="80%" BORDER=2>
+<TR><TD ALIGN=center><STRONG>Task</STRONG></TD>
+ <TD ALIGN=center><STRONG>Period (in milliseconds)</STRONG></TD>
+ <TD ALIGN=center><STRONG>Priority</STRONG></TD></TR>
+<TR><TD ALIGN=center>1</TD>
+ <TD ALIGN=center>100 </TD>
+ <TD ALIGN=center>Low</TD></TR>
+<TR><TD ALIGN=center>2</TD>
+ <TD ALIGN=center>50 </TD>
+ <TD ALIGN=center>Medium</TD></TR>
+<TR><TD ALIGN=center>3</TD>
+ <TD ALIGN=center>50 </TD>
+ <TD ALIGN=center>Medium</TD></TR>
+<TR><TD ALIGN=center>4</TD>
+ <TD ALIGN=center>25 </TD>
+ <TD ALIGN=center>High</TD></TR>
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+
+RMS only calls for task 1 to have the lowest
+priority, task 4 to have the highest priority, and tasks 2 and 3
+to have an equal priority between that of tasks 1 and 4. The
+actual RTEMS priorities assigned to the tasks must only adhere
+to those guidelines.
+
+Many applications have tasks with both hard and soft
+deadlines. The tasks with hard deadlines are typically referred
+to as the critical task set, with the soft deadline tasks being
+the non-critical task set. The critical task set can be
+scheduled using RMS, with the non-critical tasks not executing
+under transient overload, by simply assigning priorities such
+that the lowest priority critical task (i.e. longest period) has
+a higher priority than the highest priority non-critical task.
+Although RMS may be used to assign priorities to the
+non-critical tasks, it is not necessary. In this instance,
+schedulability is only guaranteed for the critical task set.
+
+@subsection Schedulability Analysis
+
+@cindex RMS schedulability analysis
+
+RMS allows application designers to ensure that tasks
+can meet all deadlines, even under transient overload, without
+knowing exactly when any given task will execute by applying
+proven schedulability analysis rules.
+
+@subsubsection Assumptions
+
+The schedulability analysis rules for RMS were
+developed based on the following assumptions:
+
+
+@itemize @bullet
+@item The requests for all tasks for which hard deadlines
+exist are periodic, with a constant interval between requests.
+
+@item Each task must complete before the next request for it
+occurs.
+
+@item The tasks are independent in that a task does not depend
+on the initiation or completion of requests for other tasks.
+
+@item The execution time for each task without preemption or
+interruption is constant and does not vary.
+
+@item Any non-periodic tasks in the system are special. These
+tasks displace periodic tasks while executing and do not have
+hard, critical deadlines.
+@end itemize
+
+Once the basic schedulability analysis is understood,
+some of the above assumptions can be relaxed and the
+side-effects accounted for.
+
+@subsubsection Processor Utilization Rule
+
+@cindex RMS Processor Utilization Rule
+
+The Processor Utilization Rule requires that
+processor utilization be calculated based upon the period and
+execution time of each task. The fraction of processor time
+spent executing task index is Time(index) / Period(index). The
+processor utilization can be calculated as follows:
+
+@example
+@group
+Utilization = 0
+
+for index = 1 to maximum_tasks
+ Utilization = Utilization + (Time(index)/Period(index))
+@end group
+@end example
+
+To ensure schedulability even under transient
+overload, the processor utilization must adhere to the following
+rule:
+
+@example
+Utilization = maximum_tasks * (2(1/maximum_tasks) - 1)
+@end example
+
+As the number of tasks increases, the above formula
+approaches ln(2) for a worst-case utilization factor of
+approximately 0.693. Many tasks sets can be scheduled with a
+greater utilization factor. In fact, the average processor
+utilization threshold for a randomly generated task set is
+approximately 0.88.
+
+@subsubsection Processor Utilization Rule Example
+
+This example illustrates the application of the
+Processor Utilization Rule to an application with three critical
+periodic tasks. The following table details the RMS priority,
+period, execution time, and processor utilization for each task:
+
+@ifset use-ascii
+@example
+@group
+ +------------+----------+--------+-----------+-------------+
+ | Task | RMS | Period | Execution | Processor |
+ | | Priority | | Time | Utilization |
+ +------------+----------+--------+-----------+-------------+
+ | 1 | High | 100 | 15 | 0.15 |
+ +------------+----------+--------+-----------+-------------+
+ | 2 | Medium | 200 | 50 | 0.25 |
+ +------------+----------+--------+-----------+-------------+
+ | 3 | Low | 300 | 100 | 0.33 |
+ +------------+----------+--------+-----------+-------------+
+@end group
+@end example
+@end ifset
+
+@ifset use-tex
+@sp 1
+@tex
+\centerline{\vbox{\offinterlineskip\halign{
+\vrule\strut#&
+\hbox to 0.75in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 0.75in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 0.75in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 1.00in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 1.00in{\enskip\hfil#\hfil}&
+\vrule#\cr\noalign{\hrule}
+&\bf Task&& \bf RMS && \bf Period && \bf Execution &&\bf Processor&\cr
+& && \bf Priority && &&\bf Time &&\bf Utilization &\cr\noalign{\hrule}
+& 1 && High && 100 && 15 && 0.15 &\cr\noalign{\hrule}
+& 2 && Medium && 200 && 50 && 0.25 &\cr\noalign{\hrule}
+& 3 && Low && 300 && 100 && 0.33 &\cr\noalign{\hrule}
+}}\hfil}
+@end tex
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=5 WIDTH="80%" BORDER=2>
+<TR><TD ALIGN=center><STRONG>Task</STRONG></TD>
+ <TD ALIGN=center><STRONG>RMS Priority</STRONG></TD>
+ <TD ALIGN=center><STRONG>Period</STRONG></TD>
+ <TD ALIGN=center><STRONG>Execution Time</STRONG></TD>
+ <TD ALIGN=center><STRONG>Processor Utilization</STRONG></TD></TR>
+<TR><TD ALIGN=center>1</TD>
+ <TD ALIGN=center>High</TD>
+ <TD ALIGN=center>100</TD>
+ <TD ALIGN=center>15</TD>
+ <TD ALIGN=center>0.15</TD></TR>
+<TR><TD ALIGN=center>2</TD>
+ <TD ALIGN=center>Medium</TD>
+ <TD ALIGN=center>200</TD>
+ <TD ALIGN=center>50</TD>
+ <TD ALIGN=center>0.25</TD></TR>
+<TR><TD ALIGN=center>3</TD>
+ <TD ALIGN=center>Low</TD>
+ <TD ALIGN=center>300</TD>
+ <TD ALIGN=center>100</TD>
+ <TD ALIGN=center>0.33</TD></TR>
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+
+The total processor utilization for this task set is
+0.73 which is below the upper bound of 3 * (2(1/3) - 1), or
+0.779, imposed by the Processor Utilization Rule. Therefore,
+this task set is guaranteed to be schedulable using RMS.
+
+@subsubsection First Deadline Rule
+
+@cindex RMS First Deadline Rule
+
+If a given set of tasks do exceed the processor
+utilization upper limit imposed by the Processor Utilization
+Rule, they can still be guaranteed to meet all their deadlines
+by application of the First Deadline Rule. This rule can be
+stated as follows:
+
+For a given set of independent periodic tasks, if
+each task meets its first deadline when all tasks are started at
+the same time, then the deadlines will always be met for any
+combination of start times.
+
+A key point with this rule is that ALL periodic tasks
+are assumed to start at the exact same instant in time.
+Although this assumption may seem to be invalid, RTEMS makes it
+quite easy to ensure. By having a non-preemptible user
+initialization task, all application tasks, regardless of
+priority, can be created and started before the initialization
+deletes itself. This technique ensures that all tasks begin to
+compete for execution time at the same instant -- when the user
+initialization task deletes itself.
+
+@subsubsection First Deadline Rule Example
+
+The First Deadline Rule can ensure schedulability
+even when the Processor Utilization Rule fails. The example
+below is a modification of the Processor Utilization Rule
+example where task execution time has been increased from 15 to
+25 units. The following table details the RMS priority, period,
+execution time, and processor utilization for each task:
+
+@ifset use-ascii
+@example
+@group
+ +------------+----------+--------+-----------+-------------+
+ | Task | RMS | Period | Execution | Processor |
+ | | Priority | | Time | Utilization |
+ +------------+----------+--------+-----------+-------------+
+ | 1 | High | 100 | 25 | 0.25 |
+ +------------+----------+--------+-----------+-------------+
+ | 2 | Medium | 200 | 50 | 0.25 |
+ +------------+----------+--------+-----------+-------------+
+ | 3 | Low | 300 | 100 | 0.33 |
+ +------------+----------+--------+-----------+-------------+
+@end group
+@end example
+@end ifset
+
+@ifset use-tex
+@sp 1
+@tex
+\centerline{\vbox{\offinterlineskip\halign{
+\vrule\strut#&
+\hbox to 0.75in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 0.75in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 0.75in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 1.00in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 1.00in{\enskip\hfil#\hfil}&
+\vrule#\cr\noalign{\hrule}
+&\bf Task&& \bf RMS && \bf Period && \bf Execution &&\bf Processor&\cr
+& && \bf Priority && &&\bf Time &&\bf Utilization &\cr\noalign{\hrule}
+& 1 && High && 100 && 25 && 0.25 &\cr\noalign{\hrule}
+& 2 && Medium && 200 && 50 && 0.25 &\cr\noalign{\hrule}
+& 3 && Low && 300 && 100 && 0.33 &\cr\noalign{\hrule}
+}}\hfil}
+@end tex
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=5 WIDTH="80%" BORDER=2>
+<TR><TD ALIGN=center><STRONG>Task</STRONG></TD>
+ <TD ALIGN=center><STRONG>RMS Priority</STRONG></TD>
+ <TD ALIGN=center><STRONG>Period</STRONG></TD>
+ <TD ALIGN=center><STRONG>Execution Time</STRONG></TD>
+ <TD ALIGN=center><STRONG>Processor Utilization</STRONG></TD></TR>
+<TR><TD ALIGN=center>1</TD>
+ <TD ALIGN=center>High</TD>
+ <TD ALIGN=center>100</TD>
+ <TD ALIGN=center>25</TD>
+ <TD ALIGN=center>0.25</TD></TR>
+<TR><TD ALIGN=center>2</TD>
+ <TD ALIGN=center>Medium</TD>
+ <TD ALIGN=center>200</TD>
+ <TD ALIGN=center>50</TD>
+ <TD ALIGN=center>0.25</TD></TR>
+<TR><TD ALIGN=center>3</TD>
+ <TD ALIGN=center>Low</TD>
+ <TD ALIGN=center>300</TD>
+ <TD ALIGN=center>100</TD>
+ <TD ALIGN=center>0.33</TD></TR>
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+
+The total processor utilization for the modified task
+set is 0.83 which is above the upper bound of 3 * (2(1/3) - 1),
+or 0.779, imposed by the Processor Utilization Rule. Therefore,
+this task set is not guaranteed to be schedulable using RMS.
+However, the First Deadline Rule can guarantee the
+schedulability of this task set. This rule calls for one to
+examine each occurrence of deadline until either all tasks have
+met their deadline or one task failed to meet its first
+deadline. The following table details the time of each deadline
+occurrence, the maximum number of times each task may have run,
+the total execution time, and whether all the deadlines have
+been met.
+
+@ifset use-ascii
+@example
+@group
++----------+------+------+------+----------------------+---------------+
+| Deadline | Task | Task | Task | Total | All Deadlines |
+| Time | 1 | 2 | 3 | Execution Time | Met? |
++----------+------+------+------+----------------------+---------------+
+| 100 | 1 | 1 | 1 | 25 + 50 + 100 = 175 | NO |
++----------+------+------+------+----------------------+---------------+
+| 200 | 2 | 1 | 1 | 50 + 50 + 100 = 200 | YES |
++----------+------+------+------+----------------------+---------------+
+@end group
+@end example
+@end ifset
+
+@ifset use-tex
+@sp 1
+@tex
+\centerline{\vbox{\offinterlineskip\halign{
+\vrule\strut#&
+\hbox to 0.75in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 0.75in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 0.75in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 0.75in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 2.00in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 1.00in{\enskip\hfil#\hfil}&
+\vrule#\cr\noalign{\hrule}
+&\bf Deadline&& \bf Task &&\bf Task&&\bf Task&&\bf Total &&\bf All Deadlines &\cr
+&\bf Time && \bf 1 &&\bf 2 &&\bf 3 &&\bf Execution Time &&\bf Net?&\cr\noalign{\hrule}
+& 100&& 1 && 1 && 1 && 25 + 50 + 100 = 175 && NO &\cr\noalign{\hrule}
+& 200&& 2 && 1 && 1 && 50 + 50 + 100 = 200 && YES &\cr\noalign{\hrule}
+}}\hfil}
+@end tex
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=6 WIDTH="80%" BORDER=2>
+<TR><TD ALIGN=center><STRONG>Deadline Time</STRONG></TD>
+ <TD ALIGN=center><STRONG>Task 1</STRONG></TD>
+ <TD ALIGN=center><STRONG>Task 2</STRONG></TD>
+ <TD ALIGN=center><STRONG>Task 3</STRONG></TD>
+ <TD ALIGN=center><STRONG>Total Execution Time</STRONG></TD>
+ <TD ALIGN=center><STRONG>All Deadlines Met?</STRONG></TD></TR>
+<TR><TD ALIGN=center>100</TD>
+ <TD ALIGN=center>1</TD>
+ <TD ALIGN=center>1</TD>
+ <TD ALIGN=center>1</TD>
+ <TD ALIGN=center>25 + 50 + 100 = 175</TD>
+ <TD ALIGN=center>NO</TD></TR>
+<TR><TD ALIGN=center>200</TD>
+ <TD ALIGN=center>2</TD>
+ <TD ALIGN=center>1</TD>
+ <TD ALIGN=center>1</TD>
+ <TD ALIGN=center>50 + 50 + 100 = 175</TD>
+ <TD ALIGN=center>YES</TD></TR>
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+
+The key to this analysis is to recognize when each
+task will execute. For example at time 100, task 1 must have
+met its first deadline, but tasks 2 and 3 may also have begun
+execution. In this example, at time 100 tasks 1 and 2 have
+completed execution and thus have met their first deadline.
+Tasks 1 and 2 have used (25 + 50) = 75 time units, leaving (100
+- 75) = 25 time units for task 3 to begin. Because task 3 takes
+100 ticks to execute, it will not have completed execution at
+time 100. Thus at time 100, all of the tasks except task 3 have
+met their first deadline.
+
+At time 200, task 1 must have met its second deadline
+and task 2 its first deadline. As a result, of the first 200
+time units, task 1 uses (2 * 25) = 50 and task 2 uses 50,
+leaving (200 - 100) time units for task 3. Task 3 requires 100
+time units to execute, thus it will have completed execution at
+time 200. Thus, all of the tasks have met their first deadlines
+at time 200, and the task set is schedulable using the First
+Deadline Rule.
+
+@subsubsection Relaxation of Assumptions
+
+The assumptions used to develop the RMS
+schedulability rules are uncommon in most real-time systems.
+For example, it was assumed that tasks have constant unvarying
+execution time. It is possible to relax this assumption, simply
+by using the worst-case execution time of each task.
+
+Another assumption is that the tasks are independent.
+This means that the tasks do not wait for one another or
+contend for resources. This assumption can be relaxed by
+accounting for the amount of time a task spends waiting to
+acquire resources. Similarly, each task's execution time must
+account for any I/O performed and any RTEMS directive calls.
+
+In addition, the assumptions did not account for the
+time spent executing interrupt service routines. This can be
+accounted for by including all the processor utilization by
+interrupt service routines in the utilization calculation.
+Similarly, one should also account for the impact of delays in
+accessing local memory caused by direct memory access and other
+processors accessing local dual-ported memory.
+
+The assumption that nonperiodic tasks are used only
+for initialization or failure-recovery can be relaxed by placing
+all periodic tasks in the critical task set. This task set can
+be scheduled and analyzed using RMS. All nonperiodic tasks are
+placed in the non-critical task set. Although the critical task
+set can be guaranteed to execute even under transient overload,
+the non-critical task set is not guaranteed to execute.
+
+In conclusion, the application designer must be fully
+cognizant of the system and its run-time behavior when
+performing schedulability analysis for a system using RMS.
+Every hardware and software factor which impacts the execution
+time of each task must be accounted for in the schedulability
+analysis.
+
+@subsubsection Further Reading
+
+For more information on Rate Monotonic Scheduling and
+its schedulability analysis, the reader is referred to the
+following:
+
+@itemize @code{ }
+@item @cite{C. L. Liu and J. W. Layland. "Scheduling Algorithms for
+Multiprogramming in a Hard Real Time Environment." @b{Journal of
+the Association of Computing Machinery}. January 1973. pp. 46-61.}
+
+@item @cite{John Lehoczky, Lui Sha, and Ye Ding. "The Rate Monotonic
+Scheduling Algorithm: Exact Characterization and Average Case
+Behavior." @b{IEEE Real-Time Systems Symposium}. 1989. pp. 166-171.}
+
+@item @cite{Lui Sha and John Goodenough. "Real-Time Scheduling
+Theory and Ada." @b{IEEE Computer}. April 1990. pp. 53-62.}
+
+@item @cite{Alan Burns. "Scheduling hard real-time systems: a
+review." @b{Software Engineering Journal}. May 1991. pp. 116-128.}
+@end itemize
+
+@section Operations
+
+@subsection Creating a Rate Monotonic Period
+
+The @code{@value{DIRPREFIX}rate_monotonic_create} directive creates a rate
+monotonic period which is to be used by the calling task to
+delineate a period. RTEMS allocates a Period Control Block
+(PCB) from the PCB free list. This data structure is used by
+RTEMS to manage the newly created rate monotonic period. RTEMS
+returns a unique period ID to the application which is used by
+other rate monotonic manager directives to access this rate
+monotonic period.
+
+@subsection Manipulating a Period
+
+The @code{@value{DIRPREFIX}rate_monotonic_period} directive is used to
+establish and maintain periodic execution utilizing a previously
+created rate monotonic period. Once initiated by the
+@code{@value{DIRPREFIX}rate_monotonic_period} directive, the period is
+said to run until it either expires or is reinitiated. The state of the rate
+monotonic period results in one of the following scenarios:
+
+@itemize @bullet
+@item If the rate monotonic period is running, the calling
+task will be blocked for the remainder of the outstanding period
+and, upon completion of that period, the period will be
+reinitiated with the specified period.
+
+@item If the rate monotonic period is not currently running
+and has not expired, it is initiated with a length of period
+ticks and the calling task returns immediately.
+
+@item If the rate monotonic period has expired before the task
+invokes the @code{@value{DIRPREFIX}rate_monotonic_period} directive,
+the period will be initiated with a length of period ticks and the calling task
+returns immediately with a timeout error status.
+
+@end itemize
+
+@subsection Obtaining the Status of a Period
+
+If the @code{@value{DIRPREFIX}rate_monotonic_period} directive is invoked
+with a period of @code{@value{RPREFIX}PERIOD_STATUS} ticks, the current
+state of the specified rate monotonic period will be returned. The following
+table details the relationship between the period's status and
+the directive status code returned by the
+@code{@value{DIRPREFIX}rate_monotonic_period}
+directive:
+
+@itemize @bullet
+@item @code{@value{RPREFIX}SUCCESSFUL} - period is running
+
+@item @code{@value{RPREFIX}TIMEOUT} - period has expired
+
+@item @code{@value{RPREFIX}NOT_DEFINED} - period has never been initiated
+@end itemize
+
+Obtaining the status of a rate monotonic period does
+not alter the state or length of that period.
+
+@subsection Canceling a Period
+
+The @code{@value{DIRPREFIX}rate_monotonic_cancel} directive is used to stop
+the period maintained by the specified rate monotonic period.
+The period is stopped and the rate monotonic period can be
+reinitiated using the @code{@value{DIRPREFIX}rate_monotonic_period} directive.
+
+@subsection Deleting a Rate Monotonic Period
+
+The @code{@value{DIRPREFIX}rate_monotonic_delete} directive is used to delete
+a rate monotonic period. If the period is running and has not
+expired, the period is automatically canceled. The rate
+monotonic period's control block is returned to the PCB free
+list when it is deleted. A rate monotonic period can be deleted
+by a task other than the task which created the period.
+
+@subsection Examples
+
+The following sections illustrate common uses of rate
+monotonic periods to construct periodic tasks.
+
+@subsection Simple Periodic Task
+
+This example consists of a single periodic task
+which, after initialization, executes every 100 clock ticks.
+
+@page
+@example
+rtems_task Periodic_task(rtems_task_argument arg)
+@{
+ rtems_name name;
+ rtems_id period;
+ rtems_status_code status;
+
+ name = rtems_build_name( 'P', 'E', 'R', 'D' );
+
+ status = rtems_rate_monotonic_create( name, &period );
+ if ( status != RTEMS_STATUS_SUCCESSFUL ) @{
+ printf( "rtems_monotonic_create failed with status of %d.\n", rc );
+ exit( 1 );
+ @}
+
+
+ while ( 1 ) @{
+ if ( rtems_rate_monotonic_period( period, 100 ) == RTEMS_TIMEOUT )
+ break;
+
+ /* Perform some periodic actions */
+ @}
+
+ /* missed period so delete period and SELF */
+
+ status = rtems_rate_monotonic_delete( period );
+ if ( status != RTEMS_STATUS_SUCCESSFUL ) @{
+ printf( "rtems_rate_monotonic_delete failed with status of %d.\n", status );
+ exit( 1 );
+ @}
+
+ status = rtems_task_delete( SELF ); /* should not return */
+ printf( "rtems_task_delete returned with status of %d.\n", status );
+ exit( 1 );
+@}
+@end example
+
+
+The above task creates a rate monotonic period as
+part of its initialization. The first time the loop is
+executed, the @code{@value{DIRPREFIX}rate_monotonic_period}
+directive will initiate the period for 100 ticks and return
+immediately. Subsequent invocations of the
+@code{@value{DIRPREFIX}rate_monotonic_period} directive will result
+in the task blocking for the remainder of the 100 tick period.
+If, for any reason, the body of the loop takes more than 100
+ticks to execute, the @code{@value{DIRPREFIX}rate_monotonic_period}
+directive will return the @code{@value{RPREFIX}TIMEOUT} status.
+If the above task misses its deadline, it will delete the rate
+monotonic period and itself.
+
+@subsection Task with Multiple Periods
+
+This example consists of a single periodic task
+which, after initialization, performs two sets of actions every
+100 clock ticks. The first set of actions is performed in the
+first forty clock ticks of every 100 clock ticks, while the
+second set of actions is performed between the fortieth and
+seventieth clock ticks. The last thirty clock ticks are not
+used by this task.
+
+@page
+@example
+rtems_task Periodic_task(rtems_task_argument arg)
+@{
+ rtems_name name_1, name_2;
+ rtems_id period_1, period_2;
+ rtems_status_code status;
+
+ name_1 = rtems_build_name( 'P', 'E', 'R', '1' );
+ name_2 = rtems_build_name( 'P', 'E', 'R', '2' );
+
+ (void ) rtems_rate_monotonic_create( name_1, &period_1 );
+ (void ) rtems_rate_monotonic_create( name_2, &period_2 );
+
+ while ( 1 ) @{
+ if ( rtems_rate_monotonic_period( period_1, 100 ) == TIMEOUT )
+ break;
+
+ if ( rtems_rate_monotonic_period( period_2, 40 ) == TIMEOUT )
+ break;
+
+ /*
+ * Perform first set of actions between clock
+ * ticks 0 and 39 of every 100 ticks.
+ */
+
+ if ( rtems_rate_monotonic_period( period_2, 30 ) == TIMEOUT )
+ break;
+
+ /*
+ * Perform second set of actions between clock 40 and 69
+ * of every 100 ticks. THEN ...
+ *
+ * Check to make sure we didn't miss the period_2 period.
+ */
+
+ if ( rtems_rate_monotonic_period( period_2, STATUS ) == TIMEOUT )
+ break;
+
+ (void) rtems_rate_monotonic_cancel( period_2 );
+ @}
+
+ /* missed period so delete period and SELF */
+
+ (void ) rtems_rate_monotonic_delete( period_1 );
+ (void ) rtems_rate_monotonic_delete( period_2 );
+ (void ) task_delete( SELF );
+@}
+@end example
+
+The above task creates two rate monotonic periods as
+part of its initialization. The first time the loop is
+executed, the @code{@value{DIRPREFIX}rate_monotonic_period}
+directive will initiate the period_1 period for 100 ticks
+and return immediately. Subsequent invocations of the
+@code{@value{DIRPREFIX}rate_monotonic_period} directive
+for period_1 will result in the task blocking for the remainder
+of the 100 tick period. The period_2 period is used to control
+the execution time of the two sets of actions within each 100
+tick period established by period_1. The
+@code{@value{DIRPREFIX}rate_monotonic_cancel( period_2 )}
+call is performed to ensure that the period_2 period
+does not expire while the task is blocked on the period_1
+period. If this cancel operation were not performed, every time
+the @code{@value{DIRPREFIX}rate_monotonic_period( period_2, 40 )}
+call is executed, except for the initial one, a directive status
+of @code{@value{RPREFIX}TIMEOUT} is returned. It is important to
+note that every time this call is made, the period_2 period will be
+initiated immediately and the task will not block.
+
+If, for any reason, the task misses any deadline, the
+@code{@value{DIRPREFIX}rate_monotonic_period} directive will
+return the @code{@value{RPREFIX}TIMEOUT}
+directive status. If the above task misses its deadline, it
+will delete the rate monotonic periods and itself.
+
+@section Directives
+
+This section details the rate monotonic manager's
+directives. A subsection is dedicated to each of this manager's
+directives and describes the calling sequence, related
+constants, usage, and status codes.
+
+@c
+@c
+@c
+@page
+@subsection RATE_MONOTONIC_CREATE - Create a rate monotonic period
+
+@cindex create a period
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_rate_monotonic_create
+@example
+rtems_status_code rtems_rate_monotonic_create(
+ rtems_name name,
+ rtems_id *id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Rate_Monotonic_Create (
+ Name : in RTEMS.Name;
+ ID : out RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - rate monotonic period created successfully@*
+@code{@value{RPREFIX}INVALID_NAME} - invalid task name@*
+@code{@value{RPREFIX}TOO_MANY} - too many periods created
+
+@subheading DESCRIPTION:
+
+This directive creates a rate monotonic period. The
+assigned rate monotonic id is returned in id. This id is used
+to access the period with other rate monotonic manager
+directives. For control and maintenance of the rate monotonic
+period, RTEMS allocates a PCB from the local PCB free pool and
+initializes it.
+
+@subheading NOTES:
+
+This directive will not cause the calling task to be
+preempted.
+
+@c
+@c
+@c
+@page
+@subsection RATE_MONOTONIC_IDENT - Get ID of a period
+
+@cindex get ID of a period
+@cindex obtain ID of a period
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_rate_monotonic_ident
+@example
+rtems_status_code rtems_rate_monotonic_ident(
+ rtems_name name,
+ rtems_id *id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Rate_Monotonic_Ident (
+ Name : in RTEMS.Name;
+ ID : out RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - period identified successfully@*
+@code{@value{RPREFIX}INVALID_NAME} - period name not found
+
+@subheading DESCRIPTION:
+
+This directive obtains the period id associated with
+the period name to be acquired. If the period name is not
+unique, then the period id will match one of the periods with
+that name. However, this period id is not guaranteed to
+correspond to the desired period. The period id is used to
+access this period in other rate monotonic manager directives.
+
+@subheading NOTES:
+
+This directive will not cause the running task to be
+preempted.
+
+@c
+@c
+@c
+@page
+@subsection RATE_MONOTONIC_CANCEL - Cancel a period
+
+@cindex cancel a period
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_rate_monotonic_cancel
+@example
+rtems_status_code rtems_rate_monotonic_cancel(
+ rtems_id id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Rate_Monotonic_Cancel (
+ ID : in RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - period canceled successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid rate monotonic period id@*
+@code{@value{RPREFIX}NOT_OWNER_OF_RESOURCE} - rate monotonic period not created by calling task
+
+@subheading DESCRIPTION:
+
+This directive cancels the rate monotonic period id.
+This period will be reinitiated by the next invocation of
+@code{@value{DIRPREFIX}rate_monotonic_period} with id.
+
+@subheading NOTES:
+
+This directive will not cause the running task to be
+preempted.
+
+The rate monotonic period specified by id must have
+been created by the calling task.
+
+@c
+@c
+@c
+@page
+@subsection RATE_MONOTONIC_DELETE - Delete a rate monotonic period
+
+@cindex delete a period
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_rate_monotonic_delete
+@example
+rtems_status_code rtems_rate_monotonic_delete(
+ rtems_id id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Rate_Monotonic_Delete (
+ ID : in RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - period deleted successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid rate monotonic period id
+
+@subheading DESCRIPTION:
+
+This directive deletes the rate monotonic period
+specified by id. If the period is running, it is automatically
+canceled. The PCB for the deleted period is reclaimed by RTEMS.
+
+@subheading NOTES:
+
+This directive will not cause the running task to be
+preempted.
+
+A rate monotonic period can be deleted by a task
+other than the task which created the period.
+
+@c
+@c
+@c
+@page
+@subsection RATE_MONOTONIC_PERIOD - Conclude current/Start next period
+
+@cindex conclude current period
+@cindex start current period
+@cindex period initiation
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_rate_monotonic_period
+@example
+rtems_status_code rtems_rate_monotonic_period(
+ rtems_id id,
+ rtems_interval length
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Rate_Monotonic_Period (
+ ID : in RTEMS.ID;
+ Length : in RTEMS.Interval;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - period initiated successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid rate monotonic period id@*
+@code{@value{RPREFIX}NOT_OWNER_OF_RESOURCE} - period not created by calling task@*
+@code{@value{RPREFIX}NOT_DEFINED} - period has never been initiated (only
+possible when period is set to PERIOD_STATUS)@*
+@code{@value{RPREFIX}TIMEOUT} - period has expired
+
+@subheading DESCRIPTION:
+
+This directive initiates the rate monotonic period id
+with a length of period ticks. If id is running, then the
+calling task will block for the remainder of the period before
+reinitiating the period with the specified period. If id was
+not running (either expired or never initiated), the period is
+immediately initiated and the directive returns immediately.
+
+If invoked with a period of @code{@value{RPREFIX}PERIOD_STATUS} ticks, the
+current state of id will be returned. The directive status
+indicates the current state of the period. This does not alter
+the state or period of the period.
+
+@subheading NOTES:
+
+This directive will not cause the running task to be preempted.
+
+@c
+@c
+@c
+@page
+@subsection RATE_MONOTONIC_GET_STATUS - Obtain status information on period
+
+@cindex get status of period
+@cindex obtain status of period
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_rate_monotonic_get_status
+@example
+rtems_status_code rtems_rate_monotonic_get_status(
+ rtems_id id,
+ rtems_rate_monotonic_period_status *status
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Rate_Monotonic_Get_Status (
+ ID : in RTEMS.ID;
+ Status : out RTEMS.Rate_Monotonic_Period_Status;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - period initiated successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid rate monotonic period id@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - invalid address of status@*
+
+@subheading DESCRIPTION:
+
+This directive returns status information associated with
+the rate monotonic period id in the following data @value{STRUCTURE}:
+
+@ifset is-C
+@findex rtems_rate_monotonic_period_status
+@example
+typedef struct @{
+ rtems_rate_monotonic_period_states state;
+ rtems_unsigned32 ticks_since_last_period;
+ rtems_unsigned32 ticks_executed_since_last_period;
+@} rtems_rate_monotonic_period_status;
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+type Rate_Monotonic_Period_Status is
+ begin
+ State : RTEMS.Rate_Monotonic_Period_States;
+ Ticks_Since_Last_Period : RTEMS.Unsigned32;
+ Ticks_Executed_Since_Last_Period : RTEMS.Unsigned32;
+ end record;
+@end example
+@end ifset
+
+@c RATE_MONOTONIC_INACTIVE does not have RTEMS_ in front of it.
+
+If the period's state is @code{RATE_MONOTONIC_INACTIVE}, both
+ticks_since_last_period and ticks_executed_since_last_period
+will be set to 0. Otherwise, ticks_since_last_period will
+contain the number of clock ticks which have occurred since
+the last invocation of the
+@code{@value{DIRPREFIX}rate_monotonic_period} directive.
+Also in this case, the ticks_executed_since_last_period will indicate
+how much processor time the owning task has consumed since the invocation
+of the @code{@value{DIRPREFIX}rate_monotonic_period} directive.
+
+@subheading NOTES:
+
+This directive will not cause the running task to be preempted.
diff --git a/doc/user/schedule.t b/doc/user/schedule.t
new file mode 100644
index 0000000000..1aa2b4d72c
--- /dev/null
+++ b/doc/user/schedule.t
@@ -0,0 +1,407 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@c
+@c This figure is not included:
+@c Figure 17-1 RTEMS Task State Transitions
+@c
+
+@chapter Scheduling Concepts
+
+@cindex scheduling
+@cindex task scheduling
+
+@section Introduction
+
+The concept of scheduling in real-time systems
+dictates the ability to provide immediate response to specific
+external events, particularly the necessity of scheduling tasks
+to run within a specified time limit after the occurrence of an
+event. For example, software embedded in life-support systems
+used to monitor hospital patients must take instant action if a
+change in the patient's status is detected.
+
+The component of RTEMS responsible for providing this
+capability is appropriately called the scheduler. The
+scheduler's sole purpose is to allocate the all important
+resource of processor time to the various tasks competing for
+attention. The RTEMS scheduler allocates the processor using a
+priority-based, preemptive algorithm augmented to provide
+round-robin characteristics within individual priority groups.
+The goal of this algorithm is to guarantee that the task which
+is executing on the processor at any point in time is the one
+with the highest priority among all tasks in the ready state.
+
+There are two common methods of accomplishing the
+mechanics of this algorithm. Both ways involve a list or chain
+of tasks in the ready state. One method is to randomly place
+tasks in the ready chain forcing the scheduler to scan the
+entire chain to determine which task receives the processor.
+The other method is to schedule the task by placing it in the
+proper place on the ready chain based on the designated
+scheduling criteria at the time it enters the ready state.
+Thus, when the processor is free, the first task on the ready
+chain is allocated the processor. RTEMS schedules tasks using
+the second method to guarantee faster response times to external
+events.
+
+@section Scheduling Mechanisms
+
+@cindex scheduling mechanisms
+
+RTEMS provides four mechanisms which allow the user
+to impact the task scheduling process:
+
+@itemize @bullet
+@item user-selectable task priority level
+@item task preemption control
+@item task timeslicing control
+@item manual round-robin selection
+@end itemize
+
+Each of these methods provides a powerful capability
+to customize sets of tasks to satisfy the unique and particular
+requirements encountered in custom real-time applications.
+Although each mechanism operates independently, there is a
+precedence relationship which governs the effects of scheduling
+modifications. The evaluation order for scheduling
+characteristics is always priority, preemption mode, and
+timeslicing. When reading the descriptions of timeslicing and
+manual round-robin it is important to keep in mind that
+preemption (if enabled) of a task by higher priority tasks will
+occur as required, overriding the other factors presented in the
+description.
+
+@subsection Task Priority and Scheduling
+
+@cindex task priority
+
+The most significant of these mechanisms is the
+ability for the user to assign a priority level to each
+individual task when it is created and to alter a task's
+priority at run-time. RTEMS provides 255 priority levels.
+Level 255 is the lowest priority and level 1 is the highest.
+When a task is added to the ready chain, it is placed behind all
+other tasks of the same priority. This rule provides a
+round-robin within priority group scheduling characteristic.
+This means that in a group of equal priority tasks, tasks will
+execute in the order they become ready or FIFO order. Even
+though there are ways to manipulate and adjust task priorities,
+the most important rule to remember is:
+
+@itemize @code{ }
+@item @b{The RTEMS scheduler will always select the highest
+priority task that is ready to run when allocating the processor
+to a task.}
+@end itemize
+
+@subsection Preemption
+
+@cindex preemption
+
+Another way the user can alter the basic scheduling
+algorithm is by manipulating the preemption mode flag
+(@code{@value{RPREFIX}PREEMPT_MASK}) of individual tasks. If preemption is disabled
+for a task (@code{@value{RPREFIX}NO_PREEMPT}), then the task will not relinquish
+control of the processor until it terminates, blocks, or
+re-enables preemption. Even tasks which become ready to run and
+possess higher priority levels will not be allowed to execute.
+Note that the preemption setting has no effect on the manner in
+which a task is scheduled. It only applies once a task has
+control of the processor.
+
+@subsection Timeslicing
+
+@cindex timeslicing
+@cindex round robin scheduling
+
+Timeslicing or round-robin scheduling is an
+additional method which can be used to alter the basic
+scheduling algorithm. Like preemption, timeslicing is specified
+on a task by task basis using the timeslicing mode flag
+(@code{@value{RPREFIX}TIMESLICE_MASK}). If timeslicing is enabled for a task
+(@code{@value{RPREFIX}TIMESLICE}), then RTEMS will limit the amount of time the task
+can execute before the processor is allocated to another task.
+Each tick of the real-time clock reduces the currently running
+task's timeslice. When the execution time equals the timeslice,
+RTEMS will dispatch another task of the same priority to
+execute. If there are no other tasks of the same priority ready
+to execute, then the current task is allocated an additional
+timeslice and continues to run. Remember that a higher priority
+task will preempt the task (unless preemption is disabled) as
+soon as it is ready to run, even if the task has not used up its
+entire timeslice.
+
+@subsection Manual Round-Robin
+
+@cindex manual round robin
+
+The final mechanism for altering the RTEMS scheduling
+algorithm is called manual round-robin. Manual round-robin is
+invoked by using the @code{@value{DIRPREFIX}task_wake_after}
+directive with a time interval of @code{@value{RPREFIX}YIELD_PROCESSOR}.
+This allows a task to give up the
+processor and be immediately returned to the ready chain at the
+end of its priority group. If no other tasks of the same
+priority are ready to run, then the task does not lose control
+of the processor.
+
+@subsection Dispatching Tasks
+
+@cindex dispatching
+
+The dispatcher is the RTEMS component responsible for
+allocating the processor to a ready task. In order to allocate
+the processor to one task, it must be deallocated or retrieved
+from the task currently using it. This involves a concept
+called a context switch. To perform a context switch, the
+dispatcher saves the context of the current task and restores
+the context of the task which has been allocated to the
+processor. Saving and restoring a task's context is the
+storing/loading of all the essential information about a task to
+enable it to continue execution without any effects of the
+interruption. For example, the contents of a task's register
+set must be the same when it is given the processor as they were
+when it was taken away. All of the information that must be
+saved or restored for a context switch is located either in the
+TCB or on the task's stacks.
+
+Tasks that utilize a numeric coprocessor and are
+created with the @code{@value{RPREFIX}FLOATING_POINT} attribute
+require additional operations during a context switch. These
+additional operations
+are necessary to save and restore the floating point context of
+@code{@value{RPREFIX}FLOATING_POINT} tasks. To avoid unnecessary save and restore
+operations, the state of the numeric coprocessor is only saved
+when a @code{@value{RPREFIX}FLOATING_POINT} task is dispatched and that task was not
+the last task to utilize the coprocessor.
+
+@section Task State Transitions
+
+@cindex task state transitions
+
+Tasks in an RTEMS system must always be in one of the
+five allowable task states. These states are: executing, ready,
+blocked, dormant, and non-existent.
+
+A task occupies the non-existent state before a
+@code{@value{DIRPREFIX}task_create} has been
+issued on its behalf. A task enters the
+non-existent state from any other state in the system when it is
+deleted with the @code{@value{DIRPREFIX}task_delete}
+directive. While a task occupies
+this state it does not have a TCB or a task ID assigned to it;
+therefore, no other tasks in the system may reference this task.
+
+When a task is created via the @code{@value{DIRPREFIX}task_create} directive
+it enters the dormant state. This state is not entered through
+any other means. Although the task exists in the system, it
+cannot actively compete for system resources. It will remain in
+the dormant state until it is started via the @code{@value{DIRPREFIX}task_start}
+directive, at which time it enters the ready state. The task is
+now permitted to be scheduled for the processor and to compete
+for other system resources.
+
+@ifset use-ascii
+@example
+@group
+ +-------------------------------------------------------------+
+ | Non-existent |
+ | +-------------------------------------------------------+ |
+ | | | |
+ | | | |
+ | | Creating +---------+ Deleting | |
+ | | -------------------> | Dormant | -------------------> | |
+ | | +---------+ | |
+ | | | | |
+ | | Starting | | |
+ | | | | |
+ | | V Deleting | |
+ | | +-------> +-------+ -------------------> | |
+ | | Yielding / +----- | Ready | ------+ | |
+ | | / / +-------+ <--+ \ | |
+ | | / / \ \ Blocking | |
+ | | / / Dispatching Readying \ \ | |
+ | | / V \ V | |
+ | | +-----------+ Blocking +---------+ | |
+ | | | Executing | --------------> | Blocked | | |
+ | | +-----------+ +---------+ | |
+ | | | |
+ | | | |
+ | +-------------------------------------------------------+ |
+ | Non-existent |
+ +-------------------------------------------------------------+
+@end group
+@end example
+@end ifset
+
+@ifset use-tex
+@c @page
+@example
+@image{states,,3in}
+@c @group
+@c +-------------------------------------------------------------+
+@c | Non-existent |
+@c | +-------------------------------------------------------+ |
+@c | | | |
+@c | | | |
+@c | | Creating +---------+ Deleting | |
+@c | | -------------------> | Dormant | -------------------> | |
+@c | | +---------+ | |
+@c | | | | |
+@c | | Starting | | |
+@c | | | | |
+@c | | V Deleting | |
+@c | | +-------> +-------+ -------------------> | |
+@c | | Yielding / +----- | Ready | ------+ | |
+@c | | / / +-------+ <--+ \ | |
+@c | | / / \ \ Blocking | |
+@c | | / / Dispatching Readying \ \ | |
+@c | | / V \ V | |
+@c | | +-----------+ Blocking +---------+ | |
+@c | | | Executing | --------------> | Blocked | | |
+@c | | +-----------+ +---------+ | |
+@c | | | |
+@c | | | |
+@c | +-------------------------------------------------------+ |
+@c | Non-existent |
+@c +-------------------------------------------------------------+
+@c @end group
+@end example
+@end ifset
+
+@ifset use-html
+@html
+<IMG SRC="states.png" WIDTH=550 HEIGHT=400 ALT="RTEMS Task States">
+@end html
+@end ifset
+
+A task occupies the blocked state whenever it is
+unable to be scheduled to run. A running task may block itself
+or be blocked by other tasks in the system. The running task
+blocks itself through voluntary operations that cause the task
+to wait. The only way a task can block a task other than itself
+is with the @code{@value{DIRPREFIX}task_suspend} directive.
+A task enters the blocked state due to any of the following conditions:
+
+@itemize @bullet
+@item A task issues a @code{@value{DIRPREFIX}task_suspend} directive
+which blocks either itself or another task in the system.
+
+@item The running task issues a @code{@value{DIRPREFIX}message_queue_receive}
+directive with the wait option and the message queue is empty.
+
+@item The running task issues an @code{@value{DIRPREFIX}event_receive}
+directive with the wait option and the currently pending events do not
+satisfy the request.
+
+@item The running task issues a @code{@value{DIRPREFIX}semaphore_obtain}
+directive with the wait option and the requested semaphore is unavailable.
+
+@item The running task issues a @code{@value{DIRPREFIX}task_wake_after}
+directive which blocks the task for the given time interval. If the time
+interval specified is zero, the task yields the processor and
+remains in the ready state.
+
+@item The running task issues a @code{@value{DIRPREFIX}task_wake_when}
+directive which blocks the task until the requested date and time arrives.
+
+@item The running task issues a @code{@value{DIRPREFIX}region_get_segment}
+directive with the wait option and there is not an available segment large
+enough to satisfy the task's request.
+
+@item The running task issues a @code{@value{DIRPREFIX}rate_monotonic_period}
+directive and must wait for the specified rate monotonic period
+to conclude.
+@end itemize
+
+A blocked task may also be suspended. Therefore,
+both the suspension and the blocking condition must be removed
+before the task becomes ready to run again.
+
+A task occupies the ready state when it is able to be
+scheduled to run, but currently does not have control of the
+processor. Tasks of the same or higher priority will yield the
+processor by either becoming blocked, completing their
+timeslice, or being deleted. All tasks with the same priority
+will execute in FIFO order. A task enters the ready state due
+to any of the following conditions:
+
+@itemize @bullet
+
+@item A running task issues a @code{@value{DIRPREFIX}task_resume}
+directive for a task that is suspended and the task is not blocked
+waiting on any resource.
+
+@item A running task issues a @code{@value{DIRPREFIX}message_queue_send},
+@code{@value{DIRPREFIX}message_queue_broadcast}, or a
+@code{@value{DIRPREFIX}message_queue_urgent} directive
+which posts a message to the queue on which the blocked task is
+waiting.
+
+@item A running task issues an @code{@value{DIRPREFIX}event_send}
+directive which sends an event condition to a task which is blocked
+waiting on that event condition.
+
+@item A running task issues a @code{@value{DIRPREFIX}semaphore_release}
+directive which releases the semaphore on which the blocked task is
+waiting.
+
+@item A timeout interval expires for a task which was blocked
+by a call to the @code{@value{DIRPREFIX}task_wake_after} directive.
+
+@item A timeout period expires for a task which blocked by a
+call to the @code{@value{DIRPREFIX}task_wake_when} directive.
+
+@item A running task issues a @code{@value{DIRPREFIX}region_return_segment}
+directive which releases a segment to the region on which the blocked task
+is waiting and a resulting segment is large enough to satisfy
+the task's request.
+
+@item A rate monotonic period expires for a task which blocked
+by a call to the @code{@value{DIRPREFIX}rate_monotonic_period} directive.
+
+@item A timeout interval expires for a task which was blocked
+waiting on a message, event, semaphore, or segment with a
+timeout specified.
+
+@item A running task issues a directive which deletes a
+message queue, a semaphore, or a region on which the blocked
+task is waiting.
+
+@item A running task issues a @code{@value{DIRPREFIX}task_restart}
+directive for the blocked task.
+
+@item The running task, with its preemption mode enabled, may
+be made ready by issuing any of the directives that may unblock
+a task with a higher priority. This directive may be issued
+from the running task itself or from an ISR.
+
+A ready task occupies the executing state when it has
+control of the CPU. A task enters the executing state due to
+any of the following conditions:
+
+@item The task is the highest priority ready task in the
+system.
+
+@item The running task blocks and the task is next in the
+scheduling queue. The task may be of equal priority as in
+round-robin scheduling or the task may possess the highest
+priority of the remaining ready tasks.
+
+@item The running task may reenable its preemption mode and a
+task exists in the ready queue that has a higher priority than
+the running task.
+
+@item The running task lowers its own priority and another
+task is of higher priority as a result.
+
+@item The running task raises the priority of a task above its
+own and the running task is in preemption mode.
+
+@end itemize
diff --git a/doc/user/sem.t b/doc/user/sem.t
new file mode 100644
index 0000000000..dd51266892
--- /dev/null
+++ b/doc/user/sem.t
@@ -0,0 +1,832 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@chapter Semaphore Manager
+
+@cindex semaphores
+@cindex binary semaphores
+@cindex counting semaphores
+@cindex mutual exclusion
+
+@section Introduction
+
+The semaphore manager utilizes standard Dijkstra
+counting semaphores to provide synchronization and mutual
+exclusion capabilities. The directives provided by the
+semaphore manager are:
+
+@itemize @bullet
+@item @code{@value{DIRPREFIX}semaphore_create} - Create a semaphore
+@item @code{@value{DIRPREFIX}semaphore_ident} - Get ID of a semaphore
+@item @code{@value{DIRPREFIX}semaphore_delete} - Delete a semaphore
+@item @code{@value{DIRPREFIX}semaphore_obtain} - Acquire a semaphore
+@item @code{@value{DIRPREFIX}semaphore_release} - Release a semaphore
+@item @code{@value{DIRPREFIX}semaphore_flush} - Unblock all tasks waiting on a semaphore
+@end itemize
+
+@section Background
+
+A semaphore can be viewed as a protected variable
+whose value can be modified only with the
+@code{@value{DIRPREFIX}semaphore_create},
+@code{@value{DIRPREFIX}semaphore_obtain}, and
+@code{@value{DIRPREFIX}semaphore_release} directives. RTEMS
+supports both binary and counting semaphores. A binary semaphore
+is restricted to values of zero or one, while a counting
+semaphore can assume any non-negative integer value.
+
+A binary semaphore can be used to control access to a
+single resource. In particular, it can be used to enforce
+mutual exclusion for a critical section in user code. In this
+instance, the semaphore would be created with an initial count
+of one to indicate that no task is executing the critical
+section of code. Upon entry to the critical section, a task
+must issue the @code{@value{DIRPREFIX}semaphore_obtain}
+directive to prevent other tasks from entering the critical section.
+Upon exit from the critical section, the task must issue the
+@code{@value{DIRPREFIX}semaphore_release} directive to
+allow another task to execute the critical section.
+
+A counting semaphore can be used to control access to
+a pool of two or more resources. For example, access to three
+printers could be administered by a semaphore created with an
+initial count of three. When a task requires access to one of
+the printers, it issues the @code{@value{DIRPREFIX}semaphore_obtain}
+directive to obtain access to a printer. If a printer is not currently
+available, the task can wait for a printer to become available or return
+immediately. When the task has completed printing, it should
+issue the @code{@value{DIRPREFIX}semaphore_release}
+directive to allow other tasks access to the printer.
+
+Task synchronization may be achieved by creating a
+semaphore with an initial count of zero. One task waits for the
+arrival of another task by issuing a @code{@value{DIRPREFIX}semaphore_obtain}
+directive when it reaches a synchronization point. The other task
+performs a corresponding @code{@value{DIRPREFIX}semaphore_release}
+operation when it reaches its synchronization point, thus unblocking
+the pending task.
+
+@subsection Nested Resource Access
+
+Deadlock occurs when a task owning a binary semaphore
+attempts to acquire that same semaphore and blocks as result.
+Since the semaphore is allocated to a task, it cannot be
+deleted. Therefore, the task that currently holds the semaphore
+and is also blocked waiting for that semaphore will never
+execute again.
+
+RTEMS addresses this problem by allowing the task
+holding the binary semaphore to obtain the same binary semaphore
+multiple times in a nested manner. Each
+@code{@value{DIRPREFIX}semaphore_obtain} must be accompanied with a
+@code{@value{DIRPREFIX}semaphore_release}. The semaphore will
+only be made available for acquisition by other tasks when the
+outermost @code{@value{DIRPREFIX}semaphore_obtain} is matched with
+a @code{@value{DIRPREFIX}semaphore_release}.
+
+Simple binary semaphores do not allow nested access and so can be used for task synchronization.
+
+
+@subsection Priority Inversion
+
+Priority inversion is a form of indefinite
+postponement which is common in multitasking, preemptive
+executives with shared resources. Priority inversion occurs
+when a high priority tasks requests access to shared resource
+which is currently allocated to low priority task. The high
+priority task must block until the low priority task releases
+the resource. This problem is exacerbated when the low priority
+task is prevented from executing by one or more medium priority
+tasks. Because the low priority task is not executing, it
+cannot complete its interaction with the resource and release
+that resource. The high priority task is effectively prevented
+from executing by lower priority tasks.
+
+@subsection Priority Inheritance
+
+Priority inheritance is an algorithm that calls for
+the lower priority task holding a resource to have its priority
+increased to that of the highest priority task blocked waiting
+for that resource. Each time a task blocks attempting to obtain
+the resource, the task holding the resource may have its
+priority increased.
+
+RTEMS supports priority inheritance for local, binary
+semaphores that use the priority task wait queue blocking
+discipline. When a task of higher priority than the task
+holding the semaphore blocks, the priority of the task holding
+the semaphore is increased to that of the blocking task. When
+the task holding the task completely releases the binary
+semaphore (i.e. not for a nested release), the holder's priority
+is restored to the value it had before any higher priority was
+inherited.
+
+The RTEMS implementation of the priority inheritance
+algorithm takes into account the scenario in which a task holds
+more than one binary semaphore. The holding task will execute
+at the priority of the higher of the highest ceiling priority or
+at the priority of the highest priority task blocked waiting for
+any of the semaphores the task holds. Only when the task
+releases ALL of the binary semaphores it holds will its priority
+be restored to the normal value.
+
+@subsection Priority Ceiling
+
+Priority ceiling is an algorithm that calls for the
+lower priority task holding a resource to have its priority
+increased to that of the highest priority task which will EVER
+block waiting for that resource. This algorithm addresses the
+problem of priority inversion although it avoids the possibility
+of changing the priority of the task holding the resource
+multiple times. The priority ceiling algorithm will only change
+the priority of the task holding the resource a maximum of one
+time. The ceiling priority is set at creation time and must be
+the priority of the highest priority task which will ever
+attempt to acquire that semaphore.
+
+RTEMS supports priority ceiling for local, binary
+semaphores that use the priority task wait queue blocking
+discipline. When a task of lower priority than the ceiling
+priority successfully obtains the semaphore, its priority is
+raised to the ceiling priority. When the task holding the task
+completely releases the binary semaphore (i.e. not for a nested
+release), the holder's priority is restored to the value it had
+before any higher priority was put into effect.
+
+The need to identify the highest priority task which
+will attempt to obtain a particular semaphore can be a difficult
+task in a large, complicated system. Although the priority
+ceiling algorithm is more efficient than the priority
+inheritance algorithm with respect to the maximum number of task
+priority changes which may occur while a task holds a particular
+semaphore, the priority inheritance algorithm is more forgiving
+in that it does not require this apriori information.
+
+The RTEMS implementation of the priority ceiling
+algorithm takes into account the scenario in which a task holds
+more than one binary semaphore. The holding task will execute
+at the priority of the higher of the highest ceiling priority or
+at the priority of the highest priority task blocked waiting for
+any of the semaphores the task holds. Only when the task
+releases ALL of the binary semaphores it holds will its priority
+be restored to the normal value.
+
+@subsection Building a Semaphore Attribute Set
+
+In general, an attribute set is built by a bitwise OR
+of the desired attribute components. The following table lists
+the set of valid semaphore attributes:
+
+@itemize @bullet
+@item @code{@value{RPREFIX}FIFO} - tasks wait by FIFO (default)
+
+@item @code{@value{RPREFIX}PRIORITY} - tasks wait by priority
+
+@item @code{@value{RPREFIX}BINARY_SEMAPHORE} - restrict values to
+0 and 1
+
+@item @code{@value{RPREFIX}COUNTING_SEMAPHORE} - no restriction on values
+(default)
+
+@item @code{@value{RPREFIX}SIMPLE_BINARY_SEMAPHORE} - restrict values to
+0 and 1, do not allow nested access, allow deletion of locked semaphore.
+
+@item @code{@value{RPREFIX}NO_INHERIT_PRIORITY} - do not use priority
+inheritance (default)
+
+@item @code{@value{RPREFIX}INHERIT_PRIORITY} - use priority inheritance
+
+@item @code{@value{RPREFIX}PRIORITY_CEILING} - use priority ceiling
+
+@item @code{@value{RPREFIX}NO_PRIORITY_CEILING} - do not use priority
+ceiling (default)
+
+@item @code{@value{RPREFIX}LOCAL} - local task (default)
+
+@item @code{@value{RPREFIX}GLOBAL} - global task
+@end itemize
+
+Attribute values are specifically designed to be
+mutually exclusive, therefore bitwise OR and addition operations
+are equivalent as long as each attribute appears exactly once in
+the component list. An attribute listed as a default is not
+required to appear in the attribute list, although it is a good
+programming practice to specify default attributes. If all
+defaults are desired, the attribute
+@code{@value{RPREFIX}DEFAULT_ATTRIBUTES} should be
+specified on this call.
+
+This example demonstrates the attribute_set parameter needed to create a
+local semaphore with the task priority waiting queue discipline. The
+attribute_set parameter passed to the
+@code{@value{DIRPREFIX}semaphore_create} directive could be either
+@code{@value{RPREFIX}PRIORITY} or @code{@value{RPREFIX}LOCAL @value{OR}
+@value{RPREFIX}PRIORITY}. The attribute_set parameter can be set to
+@code{@value{RPREFIX}PRIORITY} because @code{@value{RPREFIX}LOCAL} is the
+default for all created tasks. If a similar semaphore were to be known
+globally, then the attribute_set parameter would be
+@code{@value{RPREFIX}GLOBAL @value{OR} @value{RPREFIX}PRIORITY}.
+
+@subsection Building a SEMAPHORE_OBTAIN Option Set
+
+In general, an option is built by a bitwise OR of the
+desired option components. The set of valid options for the
+@code{@value{DIRPREFIX}semaphore_obtain} directive are listed
+in the following table:
+
+@itemize @bullet
+@item @code{@value{RPREFIX}WAIT} - task will wait for semaphore (default)
+@item @code{@value{RPREFIX}NO_WAIT} - task should not wait
+@end itemize
+
+Option values are specifically designed to be mutually exclusive,
+therefore bitwise OR and addition operations are equivalent as long as
+each attribute appears exactly once in the component list. An option
+listed as a default is not required to appear in the list, although it is
+a good programming practice to specify default options. If all defaults
+are desired, the option @code{@value{RPREFIX}DEFAULT_OPTIONS} should be
+specified on this call.
+
+This example demonstrates the option parameter needed
+to poll for a semaphore. The option parameter passed to the
+@code{@value{DIRPREFIX}semaphore_obtain}
+directive should be @code{@value{RPREFIX}NO_WAIT}.
+
+@section Operations
+
+@subsection Creating a Semaphore
+
+The @code{@value{DIRPREFIX}semaphore_create} directive creates a binary or
+counting semaphore with a user-specified name as well as an
+initial count. If a binary semaphore is created with a count of
+zero (0) to indicate that it has been allocated, then the task
+creating the semaphore is considered the current holder of the
+semaphore. At create time the method for ordering waiting tasks
+in the semaphore's task wait queue (by FIFO or task priority) is
+specified. Additionally, the priority inheritance or priority
+ceiling algorithm may be selected for local, binary semaphores
+that use the priority task wait queue blocking discipline. If
+the priority ceiling algorithm is selected, then the highest
+priority of any task which will attempt to obtain this semaphore
+must be specified. RTEMS allocates a Semaphore Control Block
+(SMCB) from the SMCB free list. This data structure is used by
+RTEMS to manage the newly created semaphore. Also, a unique
+semaphore ID is generated and returned to the calling task.
+
+@subsection Obtaining Semaphore IDs
+
+When a semaphore is created, RTEMS generates a unique
+semaphore ID and assigns it to the created semaphore until it is
+deleted. The semaphore ID may be obtained by either of two
+methods. First, as the result of an invocation of the
+@code{@value{DIRPREFIX}semaphore_create} directive, the
+semaphore ID is stored in a user provided location. Second,
+the semaphore ID may be obtained later using the
+@code{@value{DIRPREFIX}semaphore_ident} directive. The semaphore ID is
+used by other semaphore manager directives to access this
+semaphore.
+
+@subsection Acquiring a Semaphore
+
+The @code{@value{DIRPREFIX}semaphore_obtain} directive is used to acquire the
+specified semaphore. A simplified version of the
+@code{@value{DIRPREFIX}semaphore_obtain} directive can be described as follows:
+
+@example
+if semaphore's count is greater than zero
+ then decrement semaphore's count
+ else wait for release of semaphore
+
+return SUCCESSFUL
+@end example
+
+When the semaphore cannot be immediately acquired,
+one of the following situations applies:
+
+@itemize @bullet
+@item By default, the calling task will wait forever to
+acquire the semaphore.
+
+@item Specifying @code{@value{RPREFIX}NO_WAIT} forces an immediate return
+with an error status code.
+
+@item Specifying a timeout limits the interval the task will
+wait before returning with an error status code.
+@end itemize
+
+If the task waits to acquire the semaphore, then it
+is placed in the semaphore's task wait queue in either FIFO or
+task priority order. If the task blocked waiting for a binary
+semaphore using priority inheritance and the task's priority is
+greater than that of the task currently holding the semaphore,
+then the holding task will inherit the priority of the blocking
+task. All tasks waiting on a semaphore are returned an error
+code when the semaphore is deleted.
+
+When a task successfully obtains a semaphore using
+priority ceiling and the priority ceiling for this semaphore is
+greater than that of the holder, then the holder's priority will
+be elevated.
+
+@subsection Releasing a Semaphore
+
+The @code{@value{DIRPREFIX}semaphore_release} directive is used to release
+the specified semaphore. A simplified version of the
+@code{@value{DIRPREFIX}semaphore_release} directive can be described as
+follows:
+
+@example
+if no tasks are waiting on this semaphore
+ then increment semaphore's count
+ else assign semaphore to a waiting task
+
+return SUCCESSFUL
+@end example
+
+If this is the outermost release of a binary
+semaphore that uses priority inheritance or priority ceiling and
+the task does not currently hold any other binary semaphores,
+then the task performing the @code{@value{DIRPREFIX}semaphore_release}
+will have its priority restored to its normal value.
+
+@subsection Deleting a Semaphore
+
+The @code{@value{DIRPREFIX}semaphore_delete} directive removes a semaphore
+from the system and frees its control block. A semaphore can be
+deleted by any local task that knows the semaphore's ID. As a
+result of this directive, all tasks blocked waiting to acquire
+the semaphore will be readied and returned a status code which
+indicates that the semaphore was deleted. Any subsequent
+references to the semaphore's name and ID are invalid.
+
+@section Directives
+
+This section details the semaphore manager's
+directives. A subsection is dedicated to each of this manager's
+directives and describes the calling sequence, related
+constants, usage, and status codes.
+
+@c
+@c
+@c
+@page
+@subsection SEMAPHORE_CREATE - Create a semaphore
+
+@cindex create a semaphore
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_semaphore_create
+@example
+rtems_status_code rtems_semaphore_create(
+ rtems_name name,
+ rtems_unsigned32 count,
+ rtems_attribute attribute_set,
+ rtems_task_priority priority_ceiling,
+ rtems_id *id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Semaphore_Create (
+ Name : in RTEMS.Name;
+ Count : in RTEMS.Unsigned32;
+ Attribute_Set : in RTEMS.Attribute;
+ ID : out RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - semaphore created successfully@*
+@code{@value{RPREFIX}INVALID_NAME} - invalid task name@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{id} is NULL@*
+@code{@value{RPREFIX}TOO_MANY} - too many semaphores created@*
+@code{@value{RPREFIX}NOT_DEFINED} - invalid attribute set@*
+@code{@value{RPREFIX}INVALID_NUMBER} - invalid starting count for binary semaphore@*
+@code{@value{RPREFIX}MP_NOT_CONFIGURED} - multiprocessing not configured@*
+@code{@value{RPREFIX}TOO_MANY} - too many global objects
+
+@subheading DESCRIPTION:
+
+This directive creates a semaphore which resides on
+the local node. The created semaphore has the user-defined name
+specified in name and the initial count specified in count. For
+control and maintenance of the semaphore, RTEMS allocates and
+initializes a SMCB. The RTEMS-assigned semaphore id is returned
+in id. This semaphore id is used with other semaphore related
+directives to access the semaphore.
+
+Specifying PRIORITY in attribute_set causes tasks
+waiting for a semaphore to be serviced according to task
+priority. When FIFO is selected, tasks are serviced in First
+In-First Out order.
+
+@subheading NOTES:
+
+This directive will not cause the calling task to be
+preempted.
+
+The priority inheritance and priority ceiling
+algorithms are only supported for local, binary semaphores that
+use the priority task wait queue blocking discipline.
+
+The following semaphore attribute constants are
+defined by RTEMS:
+
+@itemize @bullet
+@item @code{@value{RPREFIX}FIFO} - tasks wait by FIFO (default)
+
+@item @code{@value{RPREFIX}PRIORITY} - tasks wait by priority
+
+@item @code{@value{RPREFIX}BINARY_SEMAPHORE} - restrict values to
+0 and 1
+
+@item @code{@value{RPREFIX}COUNTING_SEMAPHORE} - no restriction on values
+(default)
+
+@item @code{@value{RPREFIX}SIMPLE_BINARY_SEMAPHORE} - restrict values to
+0 and 1, block on nested access, allow deletion of locked semaphore.
+
+@item @code{@value{RPREFIX}NO_INHERIT_PRIORITY} - do not use priority
+inheritance (default)
+
+@item @code{@value{RPREFIX}INHERIT_PRIORITY} - use priority inheritance
+
+@item @code{@value{RPREFIX}PRIORITY_CEILING} - use priority ceiling
+
+@item @code{@value{RPREFIX}NO_PRIORITY_CEILING} - do not use priority
+ceiling (default)
+
+@item @code{@value{RPREFIX}LOCAL} - local task (default)
+
+@item @code{@value{RPREFIX}GLOBAL} - global task
+@end itemize
+
+Semaphores should not be made global unless remote
+tasks must interact with the created semaphore. This is to
+avoid the system overhead incurred by the creation of a global
+semaphore. When a global semaphore is created, the semaphore's
+name and id must be transmitted to every node in the system for
+insertion in the local copy of the global object table.
+
+The total number of global objects, including
+semaphores, is limited by the maximum_global_objects field in
+the Configuration Table.
+
+@c
+@c
+@c
+@page
+@subsection SEMAPHORE_IDENT - Get ID of a semaphore
+
+@cindex get ID of a semaphore
+@cindex obtain ID of a semaphore
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_semaphore_ident
+@example
+rtems_status_code rtems_semaphore_ident(
+ rtems_name name,
+ rtems_unsigned32 node,
+ rtems_id *id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Semaphore_Ident (
+ Name : in RTEMS.Name;
+ Node : in RTEMS.Unsigned32;
+ ID : out RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - semaphore identified successfully@*
+@code{@value{RPREFIX}INVALID_NAME} - semaphore name not found@*
+@code{@value{RPREFIX}INVALID_NODE} - invalid node id
+
+@subheading DESCRIPTION:
+
+This directive obtains the semaphore id associated
+with the semaphore name. If the semaphore name is not unique,
+then the semaphore id will match one of the semaphores with that
+name. However, this semaphore id is not guaranteed to
+correspond to the desired semaphore. The semaphore id is used
+by other semaphore related directives to access the semaphore.
+
+@subheading NOTES:
+
+This directive will not cause the running task to be
+preempted.
+
+If node is @code{@value{RPREFIX}SEARCH_ALL_NODES}, all nodes are searched
+with the local node being searched first. All other nodes are
+searched with the lowest numbered node searched first.
+
+If node is a valid node number which does not
+represent the local node, then only the semaphores exported by
+the designated node are searched.
+
+This directive does not generate activity on remote
+nodes. It accesses only the local copy of the global object
+table.
+
+@c
+@c
+@c
+@page
+@subsection SEMAPHORE_DELETE - Delete a semaphore
+
+@cindex delete a semaphore
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_semaphore_delete
+@example
+rtems_status_code rtems_semaphore_delete(
+ rtems_id id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Semaphore_Delete (
+ ID : in RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - semaphore deleted successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid semaphore id@*
+@code{@value{RPREFIX}ILLEGAL_ON_REMOTE_OBJECT} - cannot delete remote semaphore@*
+@code{@value{RPREFIX}RESOURCE_IN_USE} - binary semaphore is in use
+
+@subheading DESCRIPTION:
+
+This directive deletes the semaphore specified by @code{id}.
+All tasks blocked waiting to acquire the semaphore will be
+readied and returned a status code which indicates that the
+semaphore was deleted. The SMCB for this semaphore is reclaimed
+by RTEMS.
+
+@subheading NOTES:
+
+The calling task will be preempted if it is enabled
+by the task's execution mode and a higher priority local task is
+waiting on the deleted semaphore. The calling task will NOT be
+preempted if all of the tasks that are waiting on the semaphore
+are remote tasks.
+
+The calling task does not have to be the task that
+created the semaphore. Any local task that knows the semaphore
+id can delete the semaphore.
+
+When a global semaphore is deleted, the semaphore id
+must be transmitted to every node in the system for deletion
+from the local copy of the global object table.
+
+The semaphore must reside on the local node, even if
+the semaphore was created with the @code{@value{RPREFIX}GLOBAL} option.
+
+Proxies, used to represent remote tasks, are
+reclaimed when the semaphore is deleted.
+
+@c
+@c
+@c
+@page
+@subsection SEMAPHORE_OBTAIN - Acquire a semaphore
+
+@cindex obtain a semaphore
+@cindex lock a semaphore
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_semaphore_obtain
+@example
+rtems_status_code rtems_semaphore_obtain(
+ rtems_id id,
+ rtems_unsigned32 option_set,
+ rtems_interval timeout
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Semaphore_Obtain (
+ ID : in RTEMS.ID;
+ Option_Set : in RTEMS.Option;
+ Timeout : in RTEMS.Interval;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - semaphore obtained successfully@*
+@code{@value{RPREFIX}UNSATISFIED} - semaphore not available@*
+@code{@value{RPREFIX}TIMEOUT} - timed out waiting for semaphore@*
+@code{@value{RPREFIX}OBJECT_WAS_DELETED} - semaphore deleted while waiting@*
+@code{@value{RPREFIX}INVALID_ID} - invalid semaphore id
+
+@subheading DESCRIPTION:
+
+This directive acquires the semaphore specified by
+id. The @code{@value{RPREFIX}WAIT} and @code{@value{RPREFIX}NO_WAIT} components of the options parameter
+indicate whether the calling task wants to wait for the
+semaphore to become available or return immediately if the
+semaphore is not currently available. With either @code{@value{RPREFIX}WAIT} or
+@code{@value{RPREFIX}NO_WAIT}, if the current semaphore count is positive, then it is
+decremented by one and the semaphore is successfully acquired by
+returning immediately with a successful return code.
+
+If the calling task chooses to return immediately and the current
+semaphore count is zero or negative, then a status code is returned
+indicating that the semaphore is not available. If the calling task
+chooses to wait for a semaphore and the current semaphore count is zero or
+negative, then it is decremented by one and the calling task is placed on
+the semaphore's wait queue and blocked. If the semaphore was created with
+the @code{@value{RPREFIX}PRIORITY} attribute, then the calling task is
+inserted into the queue according to its priority. However, if the
+semaphore was created with the @code{@value{RPREFIX}FIFO} attribute, then
+the calling task is placed at the rear of the wait queue. If the binary
+semaphore was created with the @code{@value{RPREFIX}INHERIT_PRIORITY}
+attribute, then the priority of the task currently holding the binary
+semaphore is guaranteed to be greater than or equal to that of the
+blocking task. If the binary semaphore was created with the
+@code{@value{RPREFIX}PRIORITY_CEILING} attribute, a task successfully
+obtains the semaphore, and the priority of that task is greater than the
+ceiling priority for this semaphore, then the priority of the task
+obtaining the semaphore is elevated to that of the ceiling.
+
+The timeout parameter specifies the maximum interval the calling task is
+willing to be blocked waiting for the semaphore. If it is set to
+@code{@value{RPREFIX}NO_TIMEOUT}, then the calling task will wait forever.
+If the semaphore is available or the @code{@value{RPREFIX}NO_WAIT} option
+component is set, then timeout is ignored.
+
+@subheading NOTES:
+The following semaphore acquisition option constants
+are defined by RTEMS:
+
+@itemize @bullet
+@item @code{@value{RPREFIX}WAIT} - task will wait for semaphore (default)
+@item @code{@value{RPREFIX}NO_WAIT} - task should not wait
+@end itemize
+
+Attempting to obtain a global semaphore which does not reside on the local
+node will generate a request to the remote node to access the semaphore.
+If the semaphore is not available and @code{@value{RPREFIX}NO_WAIT} was
+not specified, then the task must be blocked until the semaphore is
+released. A proxy is allocated on the remote node to represent the task
+until the semaphore is released.
+
+A clock tick is required to support the timeout functionality of
+this directive.
+
+@c
+@c
+@c
+@page
+@subsection SEMAPHORE_RELEASE - Release a semaphore
+
+@cindex release a semaphore
+@cindex unlock a semaphore
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_semaphore_release
+@example
+rtems_status_code rtems_semaphore_release(
+ rtems_id id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Semaphore_Release (
+ ID : in RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - semaphore released successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid semaphore id@*
+@code{@value{RPREFIX}NOT_OWNER_OF_RESOURCE} - calling task does not own semaphore
+
+@subheading DESCRIPTION:
+
+This directive releases the semaphore specified by
+id. The semaphore count is incremented by one. If the count is
+zero or negative, then the first task on this semaphore's wait
+queue is removed and unblocked. The unblocked task may preempt
+the running task if the running task's preemption mode is
+enabled and the unblocked task has a higher priority than the
+running task.
+
+@subheading NOTES:
+
+The calling task may be preempted if it causes a
+higher priority task to be made ready for execution.
+
+Releasing a global semaphore which does not reside on
+the local node will generate a request telling the remote node
+to release the semaphore.
+
+If the task to be unblocked resides on a different
+node from the semaphore, then the semaphore allocation is
+forwarded to the appropriate node, the waiting task is
+unblocked, and the proxy used to represent the task is reclaimed.
+
+The outermost release of a local, binary, priority
+inheritance or priority ceiling semaphore may result in the
+calling task having its priority lowered. This will occur if
+the calling task holds no other binary semaphores and it has
+inherited a higher priority.
+
+@c
+@c
+@c
+@page
+@subsection SEMAPHORE_FLUSH - Unblock all tasks waiting on a semaphore
+
+@cindex flush a semaphore
+@cindex unblock all tasks waiting on a semaphore
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_semaphore_flush
+@example
+rtems_status_code rtems_semaphore_flush(
+ rtems_id id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Semaphore_Flush (
+ ID : in RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - semaphore released successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid semaphore id@*
+@code{@value{RPREFIX}ILLEGAL_ON_REMOTE_OBJECT} - not supported for remote semaphores
+
+@subheading DESCRIPTION:
+
+This directive unblocks all tasks waiting on the semaphore specified by
+id. Since there are tasks blocked on the semaphore, the semaphore's
+count is not changed by this directive and thus is zero before and
+after this directive is executed. Tasks which are unblocked as the
+result of this directive will return from the
+@code{@value{DIRPREFIX}semaphore_release} directive with a
+status code of @code{@value{RPREFIX}UNSATISFIED} to indicate
+that the semaphore was not obtained.
+
+This directive may unblock any number of tasks. Any of the unblocked
+tasks may preempt the running task if the running task's preemption mode is
+enabled and an unblocked task has a higher priority than the
+running task.
+
+@subheading NOTES:
+
+The calling task may be preempted if it causes a
+higher priority task to be made ready for execution.
+
+If the task to be unblocked resides on a different
+node from the semaphore, then the waiting task is
+unblocked, and the proxy used to represent the task is reclaimed.
+
+
diff --git a/doc/user/signal.t b/doc/user/signal.t
new file mode 100644
index 0000000000..c441338d2a
--- /dev/null
+++ b/doc/user/signal.t
@@ -0,0 +1,389 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@chapter Signal Manager
+
+@cindex signals
+
+@section Introduction
+
+The signal manager provides the capabilities required
+for asynchronous communication. The directives provided by the
+signal manager are:
+
+@itemize @bullet
+@item @code{@value{DIRPREFIX}signal_catch} - Establish an ASR
+@item @code{@value{DIRPREFIX}signal_send} - Send signal set to a task
+@end itemize
+
+@section Background
+
+@subsection Signal Manager Definitions
+
+@cindex asynchronous signal routine
+@cindex ASR
+
+The signal manager allows a task to optionally define
+an asynchronous signal routine (ASR). An ASR is to a task what
+an ISR is to an application's set of tasks. When the processor
+is interrupted, the execution of an application is also
+interrupted and an ISR is given control. Similarly, when a
+signal is sent to a task, that task's execution path will be
+"interrupted" by the ASR. Sending a signal to a task has no
+effect on the receiving task's current execution state.
+
+@findex rtems_signal_set
+
+A signal flag is used by a task (or ISR) to inform
+another task of the occurrence of a significant situation.
+Thirty-two signal flags are associated with each task. A
+collection of one or more signals is referred to as a signal
+set. The data type @code{@value{DIRPREFIX}signal_set}
+is used to manipulate signal sets.
+
+A signal set is posted when it is directed (or sent) to a
+task. A pending signal is a signal that has been sent to a task
+with a valid ASR, but has not been processed by that task's ASR.
+
+
+@subsection A Comparison of ASRs and ISRs
+
+@cindex ASR vs. ISR
+@cindex ISR vs. ASR
+
+The format of an ASR is similar to that of an ISR
+with the following exceptions:
+
+@itemize @bullet
+@item ISRs are scheduled by the processor hardware. ASRs are
+scheduled by RTEMS.
+
+@item ISRs do not execute in the context of a task and may
+invoke only a subset of directives. ASRs execute in the context
+of a task and may execute any directive.
+
+@item When an ISR is invoked, it is passed the vector number
+as its argument. When an ASR is invoked, it is passed the
+signal set as its argument.
+
+@item An ASR has a task mode which can be different from that
+of the task. An ISR does not execute as a task and, as a
+result, does not have a task mode.
+@end itemize
+
+@subsection Building a Signal Set
+
+@cindex signal set, building
+
+A signal set is built by a bitwise OR of the desired
+signals. The set of valid signals is @code{@value{RPREFIX}SIGNAL_0} through
+@code{@value{RPREFIX}SIGNAL_31}. If a signal is not explicitly specified in the
+signal set, then it is not present. Signal values are
+specifically designed to be mutually exclusive, therefore
+bitwise OR and addition operations are equivalent as long as
+each signal appears exactly once in the component list.
+
+This example demonstrates the signal parameter used
+when sending the signal set consisting of
+@code{@value{RPREFIX}SIGNAL_6},
+@code{@value{RPREFIX}SIGNAL_15}, and
+@code{@value{RPREFIX}SIGNAL_31}. The signal parameter provided
+to the @code{@value{DIRPREFIX}signal_send} directive should be
+@code{@value{RPREFIX}SIGNAL_6 @value{OR}
+@value{RPREFIX}SIGNAL_15 @value{OR} @value{RPREFIX}SIGNAL_31}.
+
+@subsection Building an ASR Mode
+
+@cindex ASR mode, building
+
+In general, an ASR's mode is built by a bitwise OR of
+the desired mode components. The set of valid mode components
+is the same as those allowed with the task_create and task_mode
+directives. A complete list of mode options is provided in the
+following table:
+
+@itemize @bullet
+@item @code{@value{RPREFIX}PREEMPT} is masked by
+@code{@value{RPREFIX}PREEMPT_MASK} and enables preemption
+
+@item @code{@value{RPREFIX}NO_PREEMPT} is masked by
+@code{@value{RPREFIX}PREEMPT_MASK} and disables preemption
+
+@item @code{@value{RPREFIX}NO_TIMESLICE} is masked by
+@code{@value{RPREFIX}TIMESLICE_MASK} and disables timeslicing
+
+@item @code{@value{RPREFIX}TIMESLICE} is masked by
+@code{@value{RPREFIX}TIMESLICE_MASK} and enables timeslicing
+
+@item @code{@value{RPREFIX}ASR} is masked by
+@code{@value{RPREFIX}ASR_MASK} and enables ASR processing
+
+@item @code{@value{RPREFIX}NO_ASR} is masked by
+@code{@value{RPREFIX}ASR_MASK} and disables ASR processing
+
+@item @code{@value{RPREFIX}INTERRUPT_LEVEL(0)} is masked by
+@code{@value{RPREFIX}INTERRUPT_MASK} and enables all interrupts
+
+@item @code{@value{RPREFIX}INTERRUPT_LEVEL(n)} is masked by
+@code{@value{RPREFIX}INTERRUPT_MASK} and sets interrupts level n
+@end itemize
+
+Mode values are specifically designed to be mutually
+exclusive, therefore bitwise OR and addition operations are
+equivalent as long as each mode appears exactly once in the
+component list. A mode component listed as a default is not
+required to appear in the mode list, although it is a good
+programming practice to specify default components. If all
+defaults are desired, the mode DEFAULT_MODES should be specified
+on this call.
+
+This example demonstrates the mode parameter used
+with the @code{@value{DIRPREFIX}signal_catch}
+to establish an ASR which executes at
+interrupt level three and is non-preemptible. The mode should
+be set to
+@code{@value{RPREFIX}INTERRUPT_LEVEL(3) @value{OR} @value{RPREFIX}NO_PREEMPT}
+to indicate the
+desired processor mode and interrupt level.
+
+@section Operations
+
+@subsection Establishing an ASR
+
+The @code{@value{DIRPREFIX}signal_catch} directive establishes an ASR for the
+calling task. The address of the ASR and its execution mode are
+specified to this directive. The ASR's mode is distinct from
+the task's mode. For example, the task may allow preemption,
+while that task's ASR may have preemption disabled. Until a
+task calls @code{@value{DIRPREFIX}signal_catch} the first time,
+its ASR is invalid, and no signal sets can be sent to the task.
+
+A task may invalidate its ASR and discard all pending
+signals by calling @code{@value{DIRPREFIX}signal_catch}
+with a value of NULL for the ASR's address. When a task's
+ASR is invalid, new signal sets sent to this task are discarded.
+
+A task may disable ASR processing (@code{@value{RPREFIX}NO_ASR}) via the
+task_mode directive. When a task's ASR is disabled, the signals
+sent to it are left pending to be processed later when the ASR
+is enabled.
+
+Any directive that can be called from a task can also
+be called from an ASR. A task is only allowed one active ASR.
+Thus, each call to @code{@value{DIRPREFIX}signal_catch}
+replaces the previous one.
+
+Normally, signal processing is disabled for the ASR's
+execution mode, but if signal processing is enabled for the ASR,
+the ASR must be reentrant.
+
+@subsection Sending a Signal Set
+
+The @code{@value{DIRPREFIX}signal_send} directive allows both
+tasks and ISRs to send signals to a target task. The target task and
+a set of signals are specified to the
+@code{@value{DIRPREFIX}signal_send} directive. The sending
+of a signal to a task has no effect on the execution state of
+that task. If the task is not the currently running task, then
+the signals are left pending and processed by the task's ASR the
+next time the task is dispatched to run. The ASR is executed
+immediately before the task is dispatched. If the currently
+running task sends a signal to itself or is sent a signal from
+an ISR, its ASR is immediately dispatched to run provided signal
+processing is enabled.
+
+If an ASR with signals enabled is preempted by
+another task or an ISR and a new signal set is sent, then a new
+copy of the ASR will be invoked, nesting the preempted ASR.
+Upon completion of processing the new signal set, control will
+return to the preempted ASR. In this situation, the ASR must be
+reentrant.
+
+Like events, identical signals sent to a task are not
+queued. In other words, sending the same signal multiple times
+to a task (without any intermediate signal processing occurring
+for the task), has the same result as sending that signal to
+that task once.
+
+@subsection Processing an ASR
+
+Asynchronous signals were designed to provide the
+capability to generate software interrupts. The processing of
+software interrupts parallels that of hardware interrupts. As a
+result, the differences between the formats of ASRs and ISRs is
+limited to the meaning of the single argument passed to an ASR.
+The ASR should have the following calling sequence and adhere to
+@value{LANGUAGE} calling conventions:
+
+@ifset is-C
+@findex rtems_asr
+@example
+rtems_asr user_routine(
+ rtems_signal_set signals
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure User_Routine (
+ Signals : in RTEMS.Signal_Set
+);
+@end example
+@end ifset
+
+When the ASR returns to RTEMS the mode and execution
+path of the interrupted task (or ASR) is restored to the context
+prior to entering the ASR.
+
+@section Directives
+
+This section details the signal manager's directives.
+A subsection is dedicated to each of this manager's directives
+and describes the calling sequence, related constants, usage,
+and status codes.
+
+@c
+@c
+@c
+@page
+@subsection SIGNAL_CATCH - Establish an ASR
+
+@cindex establish an ASR
+@cindex install an ASR
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_signal_catch
+@example
+rtems_status_code rtems_signal_catch(
+ rtems_asr_entry asr_handler,
+ rtems_mode mode
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Signal_Catch (
+ ASR_Handler : in RTEMS.ASR_Handler;
+ Mode_Set : in RTEMS.Mode;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - always successful
+
+@subheading DESCRIPTION:
+
+This directive establishes an asynchronous signal
+routine (ASR) for the calling task. The asr_handler parameter
+specifies the entry point of the ASR. If asr_handler is NULL,
+the ASR for the calling task is invalidated and all pending
+signals are cleared. Any signals sent to a task with an invalid
+ASR are discarded. The mode parameter specifies the execution
+mode for the ASR. This execution mode supersedes the task's
+execution mode while the ASR is executing.
+
+@subheading NOTES:
+
+This directive will not cause the calling task to be
+preempted.
+
+The following task mode constants are defined by RTEMS:
+
+@itemize @bullet
+@item @code{@value{RPREFIX}PREEMPT} is masked by
+@code{@value{RPREFIX}PREEMPT_MASK} and enables preemption
+
+@item @code{@value{RPREFIX}NO_PREEMPT} is masked by
+@code{@value{RPREFIX}PREEMPT_MASK} and disables preemption
+
+@item @code{@value{RPREFIX}NO_TIMESLICE} is masked by
+@code{@value{RPREFIX}TIMESLICE_MASK} and disables timeslicing
+
+@item @code{@value{RPREFIX}TIMESLICE} is masked by
+@code{@value{RPREFIX}TIMESLICE_MASK} and enables timeslicing
+
+@item @code{@value{RPREFIX}ASR} is masked by
+@code{@value{RPREFIX}ASR_MASK} and enables ASR processing
+
+@item @code{@value{RPREFIX}NO_ASR} is masked by
+@code{@value{RPREFIX}ASR_MASK} and disables ASR processing
+
+@item @code{@value{RPREFIX}INTERRUPT_LEVEL(0)} is masked by
+@code{@value{RPREFIX}INTERRUPT_MASK} and enables all interrupts
+
+@item @code{@value{RPREFIX}INTERRUPT_LEVEL(n)} is masked by
+@code{@value{RPREFIX}INTERRUPT_MASK} and sets interrupts level n
+@end itemize
+
+@c
+@c
+@c
+@page
+@subsection SIGNAL_SEND - Send signal set to a task
+
+@cindex send signal set
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_signal_send
+@example
+rtems_status_code rtems_signal_send(
+ rtems_id id,
+ rtems_signal_set signal_set
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Signal_Send (
+ ID : in RTEMS.ID;
+ Signal_Set : in RTEMS.Signal_Set;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - signal sent successfully@*
+@code{@value{RPREFIX}INVALID_ID} - task id invalid@*
+@code{@value{RPREFIX}NOT_DEFINED} - ASR invalid
+
+@subheading DESCRIPTION:
+
+This directive sends a signal set to the task
+specified in id. The signal_set parameter contains the signal
+set to be sent to the task.
+
+If a caller sends a signal set to a task with an
+invalid ASR, then an error code is returned to the caller. If a
+caller sends a signal set to a task whose ASR is valid but
+disabled, then the signal set will be caught and left pending
+for the ASR to process when it is enabled. If a caller sends a
+signal set to a task with an ASR that is both valid and enabled,
+then the signal set is caught and the ASR will execute the next
+time the task is dispatched to run.
+
+@subheading NOTES:
+
+Sending a signal set to a task has no effect on that
+task's state. If a signal set is sent to a blocked task, then
+the task will remain blocked and the signals will be processed
+when the task becomes the running task.
+
+Sending a signal set to a global task which does not
+reside on the local node will generate a request telling the
+remote node to send the signal set to the specified task.
+
diff --git a/doc/user/states.eps b/doc/user/states.eps
new file mode 100644
index 0000000000..cea4e7f344
--- /dev/null
+++ b/doc/user/states.eps
@@ -0,0 +1,13822 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (states.eps)
+%%CreationDate: (Wed Oct 6 11:08:51 1999)
+%%BoundingBox: 0 109 495 573
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/byte 1 string def
+/color_packet 3 string def
+/pixels 768 string def
+
+/DirectClassPacket
+{
+ %
+ % Get a DirectClass packet.
+ %
+ % Parameters:
+ % red.
+ % green.
+ % blue.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ compression 0 gt
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { DirectClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayDirectClassPacket } image
+ } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+ %
+ % Get a DirectClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % red
+ % green
+ % blue
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 gt
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 gt
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ compression 0 gt
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % class: 0-PseudoClass or 1-Grayscale.
+ %
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ class 0 gt
+ {
+ currentfile buffer readline pop
+ token pop /depth exch def pop
+ /grays columns 8 add depth sub depth mul 8 idiv string def
+ columns rows depth
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { currentfile grays readhexstring pop } image
+ }
+ {
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ % colormap: red, green, blue color packets.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ /colors colors 3 mul def
+ /colormap colors string def
+ currentfile colormap readhexstring pop pop
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { PseudoClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayPseudoClassPacket } image
+ } ifelse
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 109 495 573
+userdict begin
+%%BeginData:
+DisplayImage
+0 109
+495.101124 464.359551
+12
+721 676
+1
+1
+1
+8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff87ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff8787ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff8787ffffffff6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6effff8787ffffffff876e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6effffff8787ffffffff8787a07762636363636363636363636363636363636363636363
+636363636363636363636363636363636363636363636363636363636363636363636363
+636363636363636363636363636363636363636363636363636363636363636363636363
+636363636363636363636363636363636363636363636363636363636363636363636363
+636363636363636363636363636363636363636363636363636363636363636363636363
+636363636363636363636363636363636363636363636363636363636363636363636363
+636363636363636363636363636363636363636363636363636363636363636363636363
+636363636363636363636363636363636363636363636363636363636363636363636363
+636363636363636363636363636363636363636363636363636363636363636363636363
+636363636363636363636363636363636363636363636363636363636363636363636363
+636363636363636363636363636363636363636363636363636363636363636363636363
+636363636363636363636363636363636363636363636363636363636363636363636363
+636363636363636363636363636363636363636363636363636363636363636363636363
+636363636363636363636363636363636363636363636363636363636363636363636363
+636363636363636363636363636363636363636363636363636363636363636363636363
+636363636363636363636363636363636363636363636363636363636363636363636363
+636363636363636363636363636363636363636363636363636363636363636363636363
+636363636363636363636363636363636363636363636363636363636363636363636363
+636363636363636363636363636363636363636363636363636363636363636363636363
+636363636363636363636363636363636363636363636363636363636363636363636362
+75ffffffff8787ffffffff87877731111a19191919191919191919191919191919191919
+191919191919191919191919191919191919191919191919191919191919191919191919
+191919191919191919191919191919191919191919191919191919191919191919191919
+191919191919191919191919191919191919191919191919191919191919191919191919
+191919191919191919191919191919191919191919191919191919191919191919191919
+191919191919191919191919191919191919191919191919191919191919191919191919
+191919191919191919191919191919191919191919191919191919191919191919191919
+191919191919191919191919191919191919191919191919191919191919191919191919
+191919191919191919191919191919191919191919191919191919191919191919191919
+191919191919191919191919191919191919191919191919191919191919191919191919
+191919191919191919191919191919191919191919191919191919191919191919191919
+191919191919191919191919191919191919191919191919191919191919191919191919
+191919191919191919191919191919191919191919191919191919191919191919191919
+191919191919191919191919191919191919191919191919191919191919191919191919
+191919191919191919191919191919191919191919191919191919191919191919191919
+191919191919191919191919191919191919191919191919191919191919191919191919
+191919191919191919191919191919191919191919191919191919191919191919191919
+191919191919191919191919191919191919191919191919191919191919191919191919
+191919191919191919191919191919191919191919191919191919191919191919191919
+19191919191919191919191919191919191919191919191919191919191919191919191a
+123affffffff8787ffffffff878763140000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+00001effffffff8787ffffffff8787631900000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000001effffffff8787ffffffff87876319000000050000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000003
+000000001effffffff8787ffffffff87876319000005ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff820000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff810000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff7a747effffffffffffffffffbe687affffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7a68beff
+fffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffd000000b3ffffffffffffffff730000fdffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb000070
+ffffffffffffffffffffffffffffffffffffff5e82ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff5e82ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00000000f8ffffffffffffff7f0000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0400
+7effffffffffffffffffffffffffffffffffff3c0077ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff3c0077ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000000080ffffffffffffff7f0000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd
+fdffffffffffffffffffffffffffffffffffffff00007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000080000c3ffffffffffff7f0000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000081ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000081ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00007a230037ffffffffffff7f0000ffff
+fffffffffffff5827872bcfffffffffffffffff8f9ffffb9727881f6ffffffffffffffff
+ffffffffffffffffffffffbd727b72baffffffffffffeefbfcfffffffffffffffffbf3f8
+fff7f8fffffffffffff481787882f4fffffffffffefa050080fff7ffffffffffffbd727b
+72bafffffffffffffff8f8fffff4827872bafffffffffffefa050080fff7ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763190000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00009b9d00007affffffffff7f0000ff
+ffffffffffc23100000000000176ffffffffff7c000cff44000000000077ffffffffffff
+ffffffffffffffffffffb100000000000034c2ffffffff460000b1ffffffffffff3b0000
+c2ff00007cffffffffb20000000000003efffffffa00000000000000faffffffb1000000
+00000034c2fffffffffa000096cb000000000030cafffffa00000000000000faffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787631900
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000089ff3c0003feffffffff7f0000
+ffffffffffb30000000003000000003effffffff7d00043b00000003000000bfffffffff
+ffffffffffffffffffff41000000020001000000b3ffffffff380000c1ffffffff410000
+b8ffff00007dffffffc0000000030200000041fffffb00000000000000fbffff41000000
+020001000000b3ffffffff0000380000000300000035fffffb00000000000000fbffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00007fffc8000045ffffffff7f00
+00fffffffff70000003fcdffff850b000079ffffff7f0000004bffffff4e000035ffffff
+ffffffffffffffffffffb200003dceffffff88000000f7ffffffc8000037ffffffb60000
+49ffffff00007fffffff350000c6ffffcf400000afffff85830000419182ffffb200003d
+ceffffff88000000f7ffffff00000000c2ffffc3000000bcffff85830000419182ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763
+19000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00007fffff850000b3ffffff7f
+0000ffffffff8a000087fffffffffffd0c0004ffffff7f00003fffffffffff450000ffff
+ffffffffffffffffffffff000055ffffffffffffca00008affffffff8100007fffc40000
+3effffffff00007fffffff00007affffffffff002ac3ffffffff02008bffffffff000055
+ffffffffffffca00008affffff000000bfffffffffc300007affffffff02008bffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787
+6319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00007ffffffb000000f8ffff
+7f0000ffffffff3a0006feffffffffffff830000bfffff7f0000caffffffffff850000ff
+ffffffffffffffffffffffbf0005ffffffffffffffff7f003affffffffff4b0000c24800
+00c6ffffffff00007fffffff030000beffffffffffffffffffffff00007fffffffbf0005
+ffffffffffffffff7f003affffff000043ffffffffffff00007fffffffff00007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87
+876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00007fffffffba00007fff
+ff7f0000ffffffff00007bffffffffffffffff00007affff7f0000ffffffffffff7f0000
+fffffff6fffffffffffff5ff7c00000300000000000000000000ffffffffffff03000000
+00bdffffffffff00007fffffff7e000000003689f6ffffffffffffff00007fffffff7a00
+000300000000000000000000ffffff000084ffffffffffff00007fffffffff00007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff
+87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00007fffffffff4d0000
+c3ff800000ffffffff000080ffffffffffffffff00007fffff7f0000ffffffffffff7f00
+00fffffa0000000000000000ff8500000000000000000000000000fdffffffffffca0000
+0058ffffffffffff00007fffffffff4700000000000031c0ffffffffff00007fffffff7f
+00000000000000000000000000fdffff00007fffffffffffff00007fffffffff00007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffff
+ff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00007fffffffffff07
+0036ff8a0000ffffffff000080ffffffffffffffff00007fffff7f0000ffffffffffff7f
+0000fffffb0000000000000000ff850000898a868686868686868282ffffffffffffc100
+0000bdffffffffffff00007fffffffffffca3c0000000000003fffffffff00007fffffff
+7f0000898a868686868686868282ffffff00007fffffffffffff00007fffffffff00007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffff
+ffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00007fffffffffff
+800000989b0000ffffffff000077fffffffffffffffc000079ffff7f0000ffffffffffff
+7f0000ffffff8483878787878383ff7c0003fffffffffffffffffffffffffffffffffc00
+00000000c0ffffffffff00007ffffffffffffffffc907d0c000000baffffff00007fffff
+ff790003ffffffffffffffffffffffffffff00007fffffffffffff00007fffffffff0000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ff
+ffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00007fffffffff
+ffff3e001f780000ffffffff400004faffffffffffff7d0000c5ffff7f0000ffffffffff
+ff7f0000ffffffffffffffffffffffffc5000080ffffffffffffffaeb0f6ffffffffff41
+000684020038ffffffffff00007fffffffb073ffffffffffffcb000078ffffff00007fff
+ffffc5000080ffffffffffffffaeb0f6ffffff00007fffffffffffff00007fffffffff00
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787
+ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00007fffffff
+ffffffc80000050000ffffffff8e000080fffffffffff5080007ffffff7f0000ffffffff
+ffff7f0000ffffffffffffffffffffffffff070000b8ffffffffffb600003fffffffff7c
+000085ffc2000040ffffffff00007fffff870000b6ffffffffffff030089ffffff000086
+ffffffff070000b8ffffffffffb600003fffffff00007fffffffffffff00007fffffffff
+000086ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff87
+87ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00007fffff
+ffffffffff8600000000fffffffff901000036c4fffb7a0500007fffffff7f0000ffffff
+ffffff7f0000ffffffffffffffffffffffffff7f0000007dfbfffb7d000000c2ffffffb3
+00004cffffff4d0000b2ffffff00007ffffffa0100007dfbffffc6390005fbffffff0000
+43fff9ffff7f0000007dfbfffb7d000000c2ffffff00007fffffffffffff00007fffffff
+ff000043fff9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff
+8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00007fff
+fffffffffffffa02000000ffffffffffbb00000000000000000047ffffffff7f0000ffff
+ffffffff7f0000ffffffffffffffffffffffffffff4700000000000000000047fffffffd
+000002fffffffffe020000fdffff00007fffffff800000000000000000007dffffffff00
+00000000f2ffff4700000000000000000047ffffffff00007fffffffffffff00007fffff
+ffff0000000000f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffff
+ff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc000072
+ffffffffffffffffb9000000fcffffffffffcb3a00000000000982ffffffffff720000fc
+ffffffffff720000fcffffffffffffffffffffffffffff820900000000000981fffffff2
+240000bcffffffffffbc000024f9ff000072ffffffffb90300000000000880ffffffffff
+b80000000074ffffff820900000000000981fffffffffc000072fffffffffffc000072ff
+ffffffb80000000074ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effff
+ffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8575
+c3ffffffffffffffffff8a8185fffffffffffffffffe908680c7ffffffffffffffc37585
+ffffffffffffc37585ffffffffffffffffffffffffffffffffffc7808980c7ffffffffff
+c46d7cc3ffffffffffffffc37c6dc8ff8575c3ffffffffffffc7808980c7ffffffffffff
+fffffc8e8678c3ffffffffffc7808980c7ffffffffffffff8575c3ffffffffffff8575c3
+fffffffffffc8e8678c3ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001eff
+ffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001e
+ffffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000
+1effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000
+001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00
+00001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
+0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff726f74747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+74747463baffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffd0000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000074ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000
+0a0101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+0101010101010101010101010101020a1a22222011040101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+0101030a000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+84ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff7c797e6cc4ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff040000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+0081ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000000078ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763190000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787631900
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763
+19000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787
+6319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+fffffffffffffffffffffffff8fdfbffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffafffffffdecffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87
+876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+fffffffffffffffffffffb751c0000006af0ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff8f77ffffff6300f3ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff
+87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffff2a003d9091420000a7ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff006effffffc179ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffff
+ff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffff2c00c4ffffffffc60000efffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0087ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffff
+ffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffb900c3ffffffffffffbc0086ffffb36cfc7051aeffffffac60
+60acffffffffffffed6f656572efffffb75d003066b3ffb35dffffb36affb06060aeffff
+ffffffffae615fb6ff67b3ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ff
+ffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffff2500ffffffffffffffffc6ffffff7200200000b2ffff2900
+00000029ffffffffa6000000000000a6ff770000000073ff6f00feff7200230000000033
+ffffffff2c000000005f0072ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787
+ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffff0072ffffffffffffffffffffffff7e0042ffffffff2900
+c6ffffc6002cffffa40044ffffffcd0000ffffff0080ffffff7900ffff7e0000c7ffff52
+00b6ffff2c0090ffff8e00007effffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff87
+87ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffff007affffffffffffffffffffffff7b00d0fffffff100
+daffffffffdc00b3ffbd7effffffffff8600ffffff007bffffff7900ffff7b00cbffffff
+ff0075fff30084ffffffff8e007effffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff
+8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffff007affffffffffffffffffffffff7a00ffffffff80
+00736c66666c720076fffffffffff7ffc22400ffffff0079ffffff7900ffff7a00ffffff
+ffff0079ff7d00ffffffffffff007affffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffff
+ff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffff0067fffffffffffffffffcffffff7900ffffffff
+7d000000000000000081fffffb731a0000000000ffffff0079ffffff7900ffff7900ffff
+ffffff0079ff7800ffffffffffff0079ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effff
+ffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffff6a00ffffffffffffffff6e4cfeff7900ffffff
+ff7500fffffffffffffffffffe29003e9384e68900ffffff0079ffffff7900ffff7900ff
+ffffffff0079ff7400ffffffffffff007affffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001eff
+ffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffc100abfffffffffffffb0026ffff7900ffff
+ffffc500c1ffffffffffeef6ff7c00d0ffffffff7600ffffff007affffff7900ffff7900
+ffffffffff0079ffc500bdffffffffc2007dffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001e
+ffffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffff4400a8fffffffffa2f00caffff7900ff
+ffffffff0026fdffffffa200bbff7300fdffffffa80000ffffff0074ffffff7900ffff79
+00ffffffffff0079ffff0026fdfffffb34007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000
+1effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffff45001e6a66590000c2ffffff7600
+ffffffffffbf00005c6f240041ffffc400005d6d18002a00ffffff000053b4ff7600ffff
+7600ffffffffff0076ffffbf00005f5d0000007effffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000
+001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffff983a00000078caffffffff7d
+00fbffffffffffd13900000088ffffffffd139000033ded300baffffbc000075ff7d00fb
+ff7d00fbfffffffb007dffffffd83a000050ff0079ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00
+00001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+fffdfffffffffffffffffffffffffffffffffffffffffffffffcfefffffffffffffffffd
+fffffffdfffffffffffdffffaf61ffffffffffff0085ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
+0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff7a00aaffffffff2d00feffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffa0600226b6a1c0081ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff8b00000035d0ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff030000008cffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffad566b6b6b6b707000000000357a6b6b6b6b6a57c0ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffb900000000000000000000000000000000000000f2ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff45000000000000000000000000000000000089ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffcb000000000000000000000000000000000affffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff440000000000000000000000000000008affffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffcb00000000000000000000000000000affffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff44000000000000000000000000008affffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffcb0000000000000000000000000affffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff4400000000000000000000008affffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffcc0000000000000000000005ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763190000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff44000000000000000000c5ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787631900
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffcc000000000000000045ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff4400000000000000ccffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763
+19000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcc00000000000044ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787
+6319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff440000000000ccffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87
+876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffcc0000000044ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff
+87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff44000000ccffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffff
+ff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc000044ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffff
+ffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c00cbff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ff
+ffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc656ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787
+ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4f6fafffb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff87
+87ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff1f9ed6f6366696000000000
+002a6e6666636fedf9f1ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff
+8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffcac662a0000000000000000000000
+00000000000000000000002a66acfcffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffff
+ff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffff8b0570000000000000000000000000000
+0000000000000000000000000000000057b0f8ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effff
+ffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffeb752900000000000000000000000000000000
+00000000000000000000000000000000000000002975ebffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001eff
+ffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffed67000000000000000000000c0b0a0a0151a39a
+9a9a9a9a9a9a9d9113070a0a0f000000000000000000000067edffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001e
+ffffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffeb680000000000000000000351a9ffffffffffffff
+ffffffffffffffffffffffffffffd78b170000000000000000000068ebffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000
+1effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffa300000000000000000351a9ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffd49b54030000000000000000a3ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000
+001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffaf250000000000000056a9ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffa9560000000000000025afffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00
+00001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffb2220000000000000050daffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffda500000000000000022
+b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
+0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffa30000000000000052dbffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdb520000000000
+0000a3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff2f00000000000052dbffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcb0d0000
+000000002fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff137000000000052dbffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff99
+16000000000037f1ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffa3000000000000d0ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff5a000000000000a3ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffa400000000000ec8ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff9b040000000000a4ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff2f00000000005dffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffce0000000000002fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffc2f000000000059ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffdb5000000000002ffcffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7300000000005bffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff58000000000073ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffa70000000000d1ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff9d0500000000a7ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffb70000000000cfffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffd00000000000b7ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff605757
+57575750a2ffffffffffffffffffffffffffffffffff50acffffffffffffffffffffffff
+ffe5b3ffffffa748fdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff2f00000000cdffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffcd000000002fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000
+00000000000014adffffffffffffffffffffffffffffff006fffffffffffffffffffffff
+ffff1065ffffff7300f5ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff310000000057ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff570000000031ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+82ffffffffff9d0000b4ffffffffffffffffffffffffffff0079ffffffffffffffffffff
+ffffff007bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff32000000005bffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff5b0000000032ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+007affffffffffffd20020ffffffffffffeeeeffffffffffff0079ffffffffffeeeeffff
+ffffffe70074fff9fff9e5fffff8e6ffffeeeeffffffffffffffffeeedffffe4f8ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffa6000000005fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff5f00000000a6ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff0079ffffffffffffff8a00efffffffa909000009a9ffffffff0079ffffffa909000009
+a9ffff680000000066ff7100fbff72009f0f000011a8ffffffffab0d000025e10072ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffb50000000008ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff0800000000b5ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff0079ffffffffffffffff007affff990045a2a245009affffff0079ffff990045a2a2
+45009affd48f0049a0cdff7800ffff7c000048a5960000eeffff9a000594930700007dff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff3000000000ccffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffcc0000000030ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff0079ffffffffffffffff0078ffff005affffffff5d00eeffff0079ffff005affff
+ffff5d00f1ffff0084ffffff7900ffff7e0061ffffffd4007dffff003fffffffff4c007e
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763190000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffa300000000ceffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffce00000000a3ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff0079ffffffffffffffff0079ffaf00f3fff2f2fff4007bffff0079ffaf00f3ff
+f2f2fff4007bffff0079ffffff7900ffff7a00ffffffffff0079ffaf00d1ffffffffd500
+7bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787631900
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffef0000000047ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4900000000ef
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0079ffffffffffffffff0078ff7900000000000000006fffff0079ff790000
+0000000000006fffff0079ffffff7900ffff7900ffffffffff0079ff7500ffffffffffff
+007affffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff7100000001d3ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd000000000
+71ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0079ffffffffffffffb5008eff7900a2a19c9c9c9d91d0ffff0079ff7900
+a2a19c9c9c9d91d0ffff0079ffffff7900ffff7900ffffffffff0079ff7700ffffffffff
+ff0079ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763
+19000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffff6000000008dffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff470000
+0000f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff0079ffffffffffffff6700feff8b00ffffffffffffffffffff0079ff8b
+00ffffffffffffffffffff0079ffffff7900ffff7900ffffffffff0079ff8b00f5ffffff
+fff6007bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787
+6319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff3300000049ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd301
+00000033ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff007dffffffffffffa50053fffffd006dfffffffff94dbbffff0079ff
+fd006dfffffffff94dbbffff0082ffffff7900ffff7900ffffffffff0079fffd006effff
+ffff78007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87
+876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffb600000000d0ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+9100000000b6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff0071fff2f2f5eb5e0000ffffffff4f005eebfdae0900f2ffff0079
+ffff4f005eebfdae0900f2ffff002deefbff7900ffff7900ffffffffff0079ffff4e005d
+eeed5d00007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff
+87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff2f0000005effffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff0e0000002fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffc00000000000000004bd8ffffffffff570000000000c7fffffc00
+6bffffff570000000000c7ffffff51000067ff6b00fcff6b00fcfffffffc006bffffff59
+0000000096007bffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffff
+ff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffb20000000fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff8e00000000b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff9c9d9e9e9e9e96d7ffffffffffffffffd6969ca4ffffffffff
+8fceffffffffd6969ca4ffffffffffffa28ecfffce8fffffce8fffffffffff8fcefff7ea
+ffd99696e0ff0074ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffff
+ffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff6a00000091ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff1000000081ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff69
+00faffffffffa400c9ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ff
+ffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7a00000030ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+c60013adf9fb9d0038ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787
+ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffb50000000cffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffd000000000f1ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff97050000000048deffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff87
+87ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff6b0000007effffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff0e00000086ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffa49d97d6ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff
+8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffff00000000091ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff790000002effffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffff
+ff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff8500000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffd000000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effff
+ffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff2f0000004effffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff0e000000b4ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001eff
+ffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffff1000000007cffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff790000006affffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001e
+ffffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7f00000000d1ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffd100000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000
+1effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff7e00000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000
+001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff8500000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00000000b2ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffa58effffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00
+00001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff2d0000000bffffffffff
+ffffffffffffffe6edefefeff0eaffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffff3ffffffffffffffffffffffff0b0000007bffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff73001fa7ffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
+0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000080ffffffff
+fffffffffffffffb000000000000000ca4ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7d71ffffffffffffffffffffffff8000000080ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7f0000001ea7ffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffff0048b3a0a1a3980c0021f7ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff0070ffffffffffffffffffffffff7f0000006effffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7f0000000000246ae5ffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffff0083ffffffffffff600066ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff0089ffffffffffffffffffffffff7f00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7f00000000000000005ee8ffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007dff
+ffffffffffffffffffffff0079ffffffffffffff4100ffffffffff9c47479cffffffffff
+4ec0ac3d4cffac4fffa0444ba0ffff99474b9fffffffffffe1584b4c5de2ffffffff4ebb
+f257495de1ffffab4400244ba7ffffffffffffffffffff7d00000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7f000000000000000000005ee8ffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb20000000091
+ffffffffffffffffffffffff0079ffffffffffffffd400acfffffb1a000000001afbffff
+ff000d000042ff74008800000000b42800000000b0ffffff9600000000000095ffffff00
+110000000000adff7f000000007cffffffffffffffffffff9100000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff8d0000000000000000000000004da0ffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7b00000000
+ffffffffffffffffffffffffff0079ffffffffffffffff0075ffff2200a7ffffa70022ff
+ffff0000d5ffffff7e0000d1ffdd000846e5ffdd001dffff9a0055ffffffdd0000feffff
+000060ffffdd001dffffff0084ffffffffffffffffffffffffff00000000b2ffac475a5a
+5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a
+5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a
+5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a
+5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a
+5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a
+5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a
+5a5a5a5a5a5a5a5a5a5a59682d00000000000000000000000000001da5ffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000
+00ffffffffffffffffffffffffff0079ffffffffffffffff0079ffac0091ffffffff9100
+acffff004bffffffff7b00d6ffffff7e00d8ffffff7a00ffffc994ffffffffff8900ffff
+ff004dffffffff7a00ffffff007affffffffffffffffffffffffff000000007bff750000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000001da5ffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000
+0000ffffffffffffffffffffffffff0079ffffffffffffffff0079ff7600ffffffffffff
+0076ffff007dffffffff7a00ffffffff7a00ffffffff7a00ffffffffffffe8f6ad1700ff
+ffff007effffffff7a00ffffff0079ffffffffffffffffffffffffff000000007dff7f00
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000001beff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7d00
+000000ffffffffffffffffffffffffff0079fffffffffffffff20074ff7900ffffffffff
+ff0079ffff0079ffffffff7900ffffffff7900ffffffff7900fffffff55c0a0000000000
+ffffff0079ffffffff7900ffffff0079ffffffffffffffffffffffffff0000000091ff7b
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000001692fc
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff91
+00000000b2ffffffffffffffffffffffff0079ffffffffffffff8100d1ff7300ffffffff
+ffff0078ffff0079ffffffff7900ffffffff7900ffffffff7900fffff6190053aa9bf98e
+00ffffff0079ffffffff7900ffffff0079ffffffffffffffffffffffffb200000000ffff
+880012111111111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111111111111111
+111111111111111111111111111111111111111111111111111111111111111111111111
+1111111111111111111111111111111a0800000000000000000000000000000019a3ffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007bffffffffffffffffffffffff0079ffffffffffffff1c00ffffcf00b5ffff
+ffffb8008effff0079ffffffff7900ffffffff7900ffffffff7900ffff7700dfffffffff
+7000ffffff0079ffffffff7900ffffff007bffffffffffffffffffffffff7b00000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff8a0000000000000000000000000019a4ffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffff0088ffffffffffeb2400cbffffff001bee
+ffffee1c00ffffff0079ffffffff7900ffffffff7900ffffffff7900ffff7300f0ffffff
+950000ffffff0079ffffffff7900ffffff006dffffffffffffffffffffffff7f00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff8000000000000000000000001aa4ffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffff001a5a4c4c4f4600005effffffffcd00
+0047470000ceffffff0075ffffffff7500ffffffff7500ffffffff7500ffffce00004653
+06003600ffffff0075ffffffff7500ffffff00003ba8ffffffffffffffffffff7f000000
+4fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff7f0000000000000000001aa4ffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff0000000085fffffffffffffffffffffffb160000000000004fe2ffffffffffff
+df4c00004cdffffffffb0183ffffffff8301fbffffff8301fbffffff8301fbffffde4c00
+0046eddc04b8fffb0183ffffffff8301fbffffcc0c007cffffffffffffffffffff850000
+0083ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff7f000000000000001aa4ffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0d0000002bffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2b00
+00007dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff7f00000000001aa4ffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff8000000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+00000092ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7f0000001aa4ffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763190000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7f00000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff74001ba6ffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787631900
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7800000000b0ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+b200000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff908dffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffd20000000081ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff690000004dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763
+19000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff100000002bffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff0000000096ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787
+6319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff9300000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffb200000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87
+876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00000000b2ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff690000004fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff
+87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff4f00000069ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007cffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffff
+ff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff9500000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffb000000000d2ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffff
+ffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff12000000f2ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff6a00000011ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ff
+ffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff7b0000006cffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffef000000007bffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787
+ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffcf00000000efffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff6c00000000cfffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff87
+87ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff4c0000006fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffef000000004cffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff
+8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffd400000000b2ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff6c00000000d4ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffff
+ff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff4c0000002affffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffef000000004cffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effff
+ffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffd400000000b4ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff6c00000000d4ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001eff
+ffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff6500000026f9ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffef0000000065ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001e
+ffffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1200000069ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff6c00000012ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000
+1effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9300000000
+f5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffff50000000093ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000
+001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff120000
+0029fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffb2900000012ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00
+00001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9100
+0000002affffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff2a0000000091ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
+0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+64000000009dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff9d0000000064ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff4f000000009bffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff9b000000004fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffd7000000000096ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff960000000000d7ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffd90300000000f2ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffff20000000003d9ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffda0400000028fdffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffe2800000004daffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffd50000000026ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffe52b00000000d5ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff64000000001aa1ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff97000000000064ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff66000000000099ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff95000000000066ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff6400000000009bffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffb24000000000064ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffae0b0000000051f4ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffe42b000000000baeffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffdb040000000025ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff97000000000004dbffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffd903000000001b9effffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffdf57000000000003d9ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffd41b0000000000179dffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffde540000000000001bd4ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff6a000000000000179dff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff91000000000000006affffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b00000000000000
+179dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff9d17000000000000006bffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe96300000000
+00000015a2e8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffe8a2150000000000000063e9ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763190000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb5d00
+000000000000001b4d98efffffffffffffffffffffffffffffffffffffffffffffffffff
+ffe9994d1b00000000000000005debffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787631900
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+aa2100000000000000000000475adde9e0ffffffffffffffffffffffffffffffe7e5ef99
+4d1b0000000000000000000021aaffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffac21000000000000000000000000001b574e4f4699efe6e9dd574c4e514a000000
+000000000000000000000021acffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763
+19000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffab2217000000000000000000000000000000000000000000000000000000
+0000000000000000001722abffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787
+6319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffbe64100000000000000000000000000000000000000000000000
+000000000000001064beffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87
+876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffb9a62900000000000000000000000000000000000000
+000000000029a6b9ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff
+87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffe3aab5a924181b1b1a000000000000201a1b
+1824a9b5aae3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffff
+ff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffb6afb2b2aae4ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffff
+ffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ff
+ffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdde3e5db
+f1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787
+ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa000000
+0073ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff87
+87ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff
+8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffff
+ff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effff
+ffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001eff
+ffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001e
+ffffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000
+1effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000
+001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00
+00001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
+0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763190000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787631900
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763
+19000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787
+6319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87
+876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff
+87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffbcb43333445d4ffffffffffdb
+a5ffffffffffffffffffffffffffffffffffffffffffdba5ffffff9628fbffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffff
+ff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffed0600050b10000044ffffffff
+0067ffffffffffffffffffffffffffffffffffffffffff0067ffffff8000f7ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffff
+ffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff5500bcfffffff6630087ffff
+ff007dffffffffffffffffffffffffffffffffffffffffff007dffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ff
+ffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff0081ffffffffffff4000fe
+fad1006aebeffffffffcd8ded8fcffffffffedd4ffdfdadfdb006aebefffeeccffffffce
+f9ffdedbdefffffffffffffdd9d8fbffcfedffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787
+ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0065ffffffffffffdea9
+ff670000000062ffff91000000000095ffffff6e00730000000000000062ff6b00fbfffa
+00524e0000003be9ffffff930000000fcc006effffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff87
+87ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff47004bd5e2ffffffff
+ffffe2ad0059c1deff78005fc3bbb50400a0ffff7d000bb0c6ebb40059c1dbff7800ffff
+ff000001b0c56c0059ffff83001eb2b11e00007dffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff
+8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffd91a000000364ecd
+f9ffffffff0081fffff90f63ffffffffef0078ffff7e00a1ffffffff0081ffffff7900ff
+ffff000ae7ffffff5300ffff004cffffffff59007effffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffff
+ff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc76b1a0000
+000df4ffffff0079ffffffffffffffffffe2007bffff7a00ffffffffff0079ffffff7900
+ffffff007fffffffff7d00ffaa00deffffffffe0007bffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effff
+ffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea
+bd73000cedffff0079fffffffffac941332c00007dffff7900ffffffffff0079ffffff79
+00ffffff0079ffffffff7900ff7c00ffffffffffff007affffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001eff
+ffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9a35ffffffff
+ffffffe50075ffff0079fffffff20800070a1fad007bffff7900ffffffffff0079ffffff
+7900ffffff0079ffffffff7900ff7d00ffffffffffff0079ffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001e
+ffffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8a00aaffff
+ffffffffff0073ffff0079ffffff0f00bdffffffff007affff7900ffffffffff0079ffff
+ff7900ffffff0079ffffffff7900ff9b00ecffffffffee007bffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000
+1effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0711fe
+ffffffffff8e00d4ffff0083ffffff008cffffffff92007effff7900ffffffffff0083ff
+ffff7900ffffff0079ffffffff7900ffff005fffffffff6b007effffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000
+001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9300
+0094e5e0d4400064fffffe001fd6f6ff000099e8d23500007fffff7900fffffffffe001f
+d6f0ff7900ffffff0079ffffffff7900ffff630041d7d63f00007effffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00
+00001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+b21c000000000070ffffffff66000063ffd91600000012d80244ffff6900fbffffffff66
+000063ff6900fbfffb0069ffffffff6900fdffff7500000000b4007bffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
+0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffbfb9bcb6e8ffffffffffffbdafddffffffbfb9bfffffdeaaffffdcaaffffffffff
+ffbdafddffdcaaffffffaadcffffffffdcaaffefd3ffebb6b4f3ff0073ffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff6600f2ffffffff8e00d5ffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffd3000093e4e6830044ffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffb11b0000000064ebffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffc0bbb7eaffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763190000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787631900
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763
+19000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787
+6319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87
+876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff
+87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffff
+ff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffff
+ffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ff
+ffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787
+ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff87
+87ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff
+8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffff
+ff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+0500000090ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effff
+ffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb726393b3b3b3f
+43000000001e473b3b3b3b3926b7ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001eff
+ffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0900000000
+0000000000000000000000000009ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001e
+ffffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0000000
+0000000000000000000000000000a0ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000
+1effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1900
+000000000000000000000000000019ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000
+001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0
+0000000000000000000000000000009cffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00
+00001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff1b0000000000000000000000000059ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
+0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff9f00000000000000000000000000deffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff1b000000000000000000000057ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff9f0000000000000000000000ddffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff1c0000000000000000007bffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffc3000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffdc000000000000000055ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff5700000000000000dfffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffdf00000000000057ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff570000000000dfffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffdf0000000057ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff57000000dfffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffdf000059ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff4f00ddffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffe285ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffd4d1d5dedbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffff8ccd5c94035373a3400000000000c3e37373540c9d5ccf8ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763190000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffdd83350c000000000000000000000000000000000000000000000c
+3583ddffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787631900
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffff7d5872a0000000000000000000000000000000000000000000000000000
+000000002a87d5f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffc9440900000000000000000000000000000000000000000000000000000000
+00000000000000000944c9ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763
+19000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffca3b000000000000000000002c2f2e2e257bd2c9c9c9c9c9c9c9ccc0372b2e2e
+3408000000000000000000003bcaffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787
+6319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffc83c000000000000000000247bd5ffffffffffffffffffffffffffffffffffffff
+fffff6b83f040000000000000000003cc8ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87
+876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff7b0000000000000000247bd5ffffffffffffffffffffffffffffffffffffffffff
+fffffffffffff2cb7d2400000000000000007bffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff
+87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffe84060000000000000180d5ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffd580010000000000000684feffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffff
+ff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff8802000000000000017cfaffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffa7c010000000000000288ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffff
+ffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fc7b000000000000017cfaffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffa7d050000000000007bfcffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ff
+ffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ef100000000000017cfaffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffea3100000000000010efffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787
+ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cc1900000000067dfaffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffc539000000000019ccffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff87
+87ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+7f000000000010f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff7e0000000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff
+8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa
+7c000000000033e6ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc81700000000007c
+faffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffff
+ff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee
+10000000000080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb0c00000000
+0010eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effff
+ffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8
+1000000000007dffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8760000
+00000010e8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001eff
+ffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+5e000000000585ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7d
+00000000005effffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001e
+ffffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+800000000013efffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffc8180000000080ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000
+1effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+a20000000014ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffee1400000000a2ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000
+001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f01900000000e5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffe50000000019f0ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00
+00001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+eb13000000007affffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7a0000000013ebffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
+0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffd3324212020201a75fcffffffff
+fffffffffffffffffffffffd2194ffffffffffffffffffffffffffcf9bffffff8c13faff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff19000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7f0000000019ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0001291e1e1f1a000084ffff
+ffffffffffffffffffffffffff0073ffffffffffffffffffffffffff0068ffffff8a12f8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff840000000084ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff840000000084ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff0088ffffffffffcc0c009d
+ffffffffffffffffffffffffffff0079ffffffffffffffffffffffffff007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff9f0000000019ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff19000000009fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0079fffffffffffff007
+0bfffffffffff3c7c7f3ffffffffff0079fffffffff3c7c7f3ffffffecc00062d6e5ffe4
+baffffffbcf1ffcec9cefffffffffffff3c7c6f3ffbee4ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff1d00000015eaffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffea150000001dffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff0079ffffffffffffff
+a300e0ffffff7e000000007effffffff0079ffffff7e000000007effff620000000060ff
+6a00fcfffc00463a00000028e2ffffff8200000003ba006dffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffa400000000e7ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffe700000000a4ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0079ffffffffffff
+ffff0074ffff700073d6d6730073ffffff0079ffff700073d6d6730072ffefc00062d6e5
+ff7900ffffff00000ac6da7d0050ffff72002fc6c53000007effffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff1f00000059ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff5b0000001fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0079ffffffffff
+ffffff0079ffff008bffffffff8c00dbffff0079ffff008bffffffff8c00ddffff0080ff
+ffff7900ffffff0014f2ffffff5a00ffff0057ffffffff63007effffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff7f00000015eaffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffe2000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0079ffffffff
+ffffffff0079ff9c00d3d8cdcdd8d40075ffff0079ff9c00d3d8cdcdd8d40075ffff0079
+ffffff7900ffffff0080ffffffff7c00ffa100e5ffffffffe8007bffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffe100000000a6ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff5b00000000e1ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0079ffffff
+ffffffffff0077ff7a000000000000000070ffff0079ff7a000000000000000070ffff00
+79ffffff7900ffffff0079ffffffff7900ff7c00ffffffffffff0079ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff5b0000001dffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffe2000000005bffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0079ffff
+ffffffffffa0009eff7800d1d4cecececec4e7ffff0079ff7800d1d4cecececec4e7ffff
+0079ffffff7900ffffff0079ffffffff7900ff7c00ffffffffffff0079ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffe000000000a2ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff5b00000000e0ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0079ff
+ffffffffffff5600ffff9c00f0ffffffffffffffffff0079ff9c00f0ffffffffffffffff
+ff0079ffffff7900ffffff0079ffffffff7900ffa300e5ffffffffe7007bffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff5a0000005fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffe2000000005affffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0080
+ffffffffffff7e0079ffffff0055ffffffffe61eb3ffff0079ffff0055ffffffffe61eb3
+ffff0081ffffff7900ffffff0079ffffffff7900ffff0055ffffffff61007effffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffde00000000e2ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff5b00000000deffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+5edfcbcbcec22f000dffffffff74002ec2d6800000ffffff0079ffff74002ec2d6800000
+fffffe0014c3e8ff7900ffffff0079ffffffff7900ffff74002dc5c42d00007effffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7f0000005bffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe2000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb
+00000000000000007cf5ffffffffff830000000026e5fffffc0069ffffff830000000026
+e5ffffff76000061ff6900fcfffc0069ffffffff6900fdffff8700000006c5007bffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff20000000e7ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f0000001cff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffc9ccd0cfcfd0c9f4fffffffffffffffff4cacfd1ffffffffffbde5fffffffff4cacfd1
+ffffffffffffcfc3e7ffe5bdffffffbde5ffffffffe5bdffe6c3fff9cac9ffff0074ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff9f00000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa400000000
+e1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff6500e7ffffffff7d00ddff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff5b00000061ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763190000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffdc00007fd2d471004dff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007dffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5e00
+00005effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787631900
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc22d0000000079f4
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffa400000000e2ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa4
+00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd1cfc9f4ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff1a0000001effffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00000000a1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763
+19000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffe10000000083ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff5e0000005bffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787
+6319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff7900000000a1ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffa400000000feffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87
+876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffc6ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7f00000001ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff01000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff
+87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffc42d00f9ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff8500000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000009effffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffff
+ff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffc435000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff190000001dffffffffffffffffffffffffffffffffff
+ffffffffc2c5c9c8c8c8c9c2f0ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffe1b7ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff1d0000007cffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffff
+ffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffc4350000000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff0000000086ffffffffffffffffffffffffffffffff
+fffffffffa0000000000000000007effffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff6a00fbffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff8600000082ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ff
+ffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffc43500000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffff0061e6d0d1d1d3ce10009cffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7900ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7f0000005effffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787
+ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffc4350000000000000000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffff007ffffffffffffff40b09ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff7d00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7f00000000feffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff87
+87ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffc433000000000000000000
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007cffffffffffffffffffffffffff
+ffffffffffffffff0079ffffffffffffff8500fffffffff46a13136af4ffffffffffbb25
+18192cbdffffffffffbb25162bdc8700ffbe1bd8ffffffff931af8ffffffffffffffffff
+ffffffffffffffffffffff7c00000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff
+8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffc23300000000000000000000
+000004ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff9e00000000a3ffffffffffffffffffffffff
+ffffffffffffffffff0079ffffffffffffff5900ffffffe4000029290000e5ffffff6e00
+1f252b000071ffffff6e001e2c00000600ffff0072ffffffff0045ffffffffffffffffff
+ffffffffffffffffffffffffa300000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffff
+ff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffc2330000000000000000000000
+00000000352e2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d
+2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d
+2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d
+2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d
+2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d
+2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d
+2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d282ffdff7c00000001ffffffffffffffffffffffff
+ffffffffffffffffffff0088fffffffffffc710053ffffff0000f7fffff70003ffff8600
+7cfffffffc1200fdff960084ffffff810000ffff5003ffffffdd00a0ffffffffffffffff
+ffffffffffffffffffffffffffff010000009effffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effff
+ffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000000083ffb532000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000ffff7f00000000ffffffffffffffffffffff
+ffffffffffffffffffffff000424181d283000002fe4ffffdc00ffffffffffff0097ffe1
+c4ffffffffff8d00ffff4a0cffffffffff1d00ffffa000ddffff7500ffffffffffffffff
+ffffffffffffffffffffffffffffff000000007cffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001eff
+ffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000000089d700000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000ffff7f00000000ffffffffffffffffffff
+ffffffffffffffffffffffff000c322823000022daffffffff7800291b18181b260074ff
+fffffff2c1ce7c0000ffff007cffffffffff7f00ffffff0075ffff0250ffffffffffffff
+ffffffffffffffffffffffffffffffff000000007cffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001e
+ffffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000000083fffa8606000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000ffff7c00000000ffffffffffffffffff
+ffffffffffffffffffffffffff0089ffffffcc001fffffffffff7d00312a26262629209b
+ffffe127000000010f00ffff0079ffffffffff7900ffffff5002ffe400a0ffffffffffff
+ffffffffffffffffffffffffffffffffff00000000a3ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000
+1effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffff8606000000000000
+00000000000000003e3b3737373737373737373737373737373737373737373737373737
+373737373737373737373737373737373737373737373737373737373737373737373737
+373737373737373737373737373737373737373737373737373737373737373737373737
+373737373737373737373737373737373737373737373737373737373737373737373737
+373737373737373737373737373737373737373737373737373737373737373737373737
+373737373737373737373737373737373737373737373737373737373737373737373737
+37373737373737373737373737373737373737323afcffa3000000009effffffffffffff
+ffffffffffffffffffffffffffff0079ffffffff7f0077ffffffff7400ffffffffffffff
+ffffe0000084d9cbff9300ffff007affffffffff7e00ffffffa000ff8400ffffffffffff
+ffffffffffffffffffffffffffffffffff9e00000001ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000
+001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff8707000000
+000000000000000005ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff010000007cffffffffffff
+ffffffffffffffffffffffffffffff0079ffffffffff5a009dffffffe3009fffffffffff
+b6dbff7100feffffffff5c00ffff5006ffffffffff1700ffffffff007c2150ffffffffff
+ffffffffffffffffffffffffffffffffffff7c00000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00
+00001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff8707
+00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffff0079ffffffffffed0a03e7ffffff0903c8fffffd
+6400cfff7400cbfffffb690000ffff9b006ffefffd750000ffffffff570000a2ffffffff
+ffffffffffffffffffffffffffffffffffffff7f00000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
+0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ff87070000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffff0072ffffffffffffa30043ffffffed01001420
+000077ffffe60400141e000f5100ffffff7b00002300000500ffffffffa50000ffffffff
+ffffffffffffffffffffffffffffffffffffffff7f00000063ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffff8707000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000085ffffff
+fffffffffffffffffffffffffffffffffffd2797ffffffffffffff7e18b4fffffffc7c22
+2638c8fffffffffb7c222075fff029b7ffffffc8382438daa72efdffffffff0059ffffff
+ffffffffffffffffffffffffffffffffffffffffff8500000081ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffff870700000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1f00000019ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1009fffff
+ffffffffffffffffffffffffffffffffffffffffffff190000007cffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffff87070000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8600000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4e07ffff
+ffffffffffffffffffffffffffffffffffffffffffffff00000000a3ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffff8009f3ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8c02009eff
+ffffffffffffffffffffffffffffffffffffffffffffffff00000001ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+fffffffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7a000000
+009dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff940e82ff
+ffffffffffffffffffffffffffffffffffffffffffffffffa000000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50000
+000083ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff580000005fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1e
+00000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00000000a7ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+aa00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffa000000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00000000a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff5800000062ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff5f00000058ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007cffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffa400000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffa000000000e5ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff24000000e3ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b00000021ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff8100000056ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffde0000000081ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffe300000000deffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5600000000e3
+ffffafecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff5f00000059ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffde000000005f
+fffffe00002c32bbc4c7ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763190000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffe6000000009cffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5600000000
+e6ffffffa8000000000000272176cbc7ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787631900
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff5f00000019ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc00000000
+5fffffffffff2300000000000000000000272176cbbcf0ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffe400000000a1ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff56000000
+00e4ffffffffffa9000000000000000000000000000000042b2ea2dcffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763
+19000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff890000000fe4ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc000000
+0089ffffffffffffff23000000000000000000000000000000000003ddffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787
+6319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffefabdbffffffffffff2400000054ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff560000
+0024ffffffffffffffffa90000000000000000000000000000000000a8ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87
+876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffefbcc5b930242e0000d4ffffffffffffa900000000e1ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe10000
+0000a9ffffffffffffffffff2300000000000000000000000000000089ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff
+87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c0cb
+741f272e04000000000000005fffffffffffffffff230000000ee3ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe30e00
+000023ffffffffffffffffffffa9000000000000000000000000000063ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffff
+ff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffdbba731f29260000
+00000000000000000000000000e5ffffffffffffffffa60000000014ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1400
+000000a6ffffffffffffffffffffff260000000000000000000000001aedffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffff
+ffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd2000000000000
+000000000000000000000000005effffffffffffffffffff8c000000007affffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7a00
+0000008cffffffffffffffffffffffff81000000000000000000000002fdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ff
+ffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8a00000000
+000000000000000000000000001bf0ffffffffffffffffffffff1f0000000075ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7500
+0000001fffffffffffffffffffffffffffe500000000000000000000000079f3ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787
+ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff220000
+0000000000000000000000000000adfffffffffffffffffffffffff21b0000000070ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7000
+0000001bf2ffffffffffffffffffffffffffff6200000000000000000000000008e8ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff87
+87ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb00
+000000000000000000000000000023ffffffffffffffffffffffffffffed0000000000e0
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000
+00000000edffffffffffffffffffffffffffffffe700000000000000000000000000007b
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff
+8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+860000000000000000000000000000abffffffffffffffffffffffffffffff8500000000
+0de6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe70d
+0000000085ffffffffffffffffffffffffffffffffff620000000000002b880000000000
+0078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffff
+ff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff7200000000000000000000000022ffffffffffffffffffffffffffffffffff8b0000
+00000ce9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf12
+000000008bffffffffffffffffffffffffffffffffffffe700000000001dfcffd71e0000
+00000029e1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effff
+ffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffa9000000000000000000000000a8ffffffffffffffffffffffffffffffffffff64
+00000000007affffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7200
+0000000064ffffffffffffffffffffffffffffffffffffffff6200000000a9ffffffee42
+000000000011bdffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001eff
+ffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffff36c00000000000000000000000066ffffffffffffffffffffffffffffffffffffff
+ed18000000000074ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16d00
+0000000027f9ffffffffffffffffffffffffffffffffffffffffe70000008bffffffffff
+ff8d00000000000072ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001e
+ffffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffbd0c00000000000000000000000000e7ffffffffffffffffffffffffffffffffffff
+fffff418000000000076ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50500
+000000002969edffffffffffffffffffffffffffffffffffffffffff600063ffffffffff
+ffffff940d00000000006bf2ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000
+1effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff74000000000000190000000000000062ffffffffffffffffffffffffffffffffffff
+ffffffffff85000000000028deffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbd1000
+00000000a79c00007affffffffffffffffffffffffffffffffffffffffd915e8ffffffff
+fffffffffff918000000000006e7ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000
+001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffe32800000000001bebb200000000000000e6ffffffffffffffffffffffffffffffffff
+ffffffffffffff8900000000000ae8ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff740000
+0000000098fe1c0000006bf2fffffffffffffffffffffffffffffffffffffff0ffffffff
+ffffffffffffffff850000000000007affffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00
+00001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff7c00000000000083ffffff6300000000008affffffffffffffffffffffffffffffffff
+ffffffffffffffffffd721000000000072f4ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffba2e0000
+00000021daff31000000000006e7ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff8900000000000076ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
+0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+e22800000000001fd8ffffffffef1b00000025ffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffff51700000000000071f3ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb62c000000
+00000017f5ffffe74200000000000078ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffd81f000000000027e0ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+7b00000000000043f0ffffffffffffec000000acffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff880000000000000071f3ffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff46a00000000
+00000087ffffffffffff8b0000000000006bf0ffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffff04300000000000fbcffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
+2700000000000e96ffffffffffffffffff8c001fffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffff3ff940b0000000000000071f3ffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3710000000000
+00000b93ffffffffffffffffd81f000000000006e5ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff8d00000000000072ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc
+0f000000000043f3ffffffffffffffffffffff0e98ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffe21a09ffffff8f0c0000000000000075caffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffca75000000000000
+000c8ffffffffffffffffffffffff043000000000010bcffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff950f00000000006af0ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffdfb1bebdbdbdbdbbc0ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffacdbff
+ffffffffffffffffffffdbabffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffabb1ffffffffff
+ffffffe19dd9ffabdbffffffffffffffffffffffffffacdbffffffffffffffffdbacffff
+ffabdbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff267
+00000000000d98fffffffffffffffffffffffffff3ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff7b00000073ffffffff8500000000000000001970caffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffecc0731900000000000000
+0085ffffffffffffffffffffffffffffff8c00000000000073ffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffff918000000000006e7ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff6e0000000000000000
+1cdcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0069
+ffffffffffffffffffffff5c00f2ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f00d7ffffff
+ffffffff3e00e5fa005cfffffffffffffffffffffffffb0069ffffffffffffffff6900fb
+fff2005cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc0c
+000000000044f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffe2260000000000ceffffffffd34600000000000000000019
+70cafffffffffffffffffffffffffffffffffffffffffff0ad3300000000000000000000
+46d3ffffffffffffffffffffffffffffffffffd921000000000026e0ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff8700000000000078ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7b00dae1dbdcdbe7
+8a0007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+79ffffffffffffffffffffffecc9ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1300deff
+ffffffff6900a6ffffc9ecffffffffffffffffffffffffff0079ffffffffffffffff7900
+ffffffc9ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff06700
+00000000008cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff790000000000003cdeffffffffffffd54800000000000000
+00000021242324212db4c0bdbdbdbdbdbdc6701b2423232a020000000000000000000048
+d5fffffffffffffffffffffffffffffffffffffffff51900000000000fbaffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff8a00000000000075ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7900ffffffffff
+ffff910095ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+0079ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb0049
+ffffffffd9005cffffffffffffffffffffffffffffffffffff0079ffffffffffffffff7e
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffba0c00
+000000001fd8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffe02700000000000f97ffffffffffffffffffffd24b3c000000
+0000000000000000000000000000000000000000000000000000000000000000003c4bd2
+ffffffffffffffffffffffffffffffffffffffffffffffff8800000000000071ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffd921000000000026
+deffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7900ffffffff
+ffffffff0078ffffffffae190919aeffffffffffec5d070e0964edffffffffec5d07096b
+f0007aff425dffffffffff1188ff8c12fdff8d22e761070964ebffffffffed64090873ff
+1d8dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff87
+0097ffffff030af0fffffd128cffffffec5d07075decffffffff0079ffffffae190a1fd0
+8500fffffd128cfffd1898c2190a20b1ffffffffffb2200b1af0a417fdffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef680000
+0000000086ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff7900000000000045f3ffffffffffffffffffffffffffffe68f
+37000000000000000000000000000000000000000000000000000000000000378fe6ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff951000000000006aefff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef4500000000
+0010baffffffffffffffffffffffffffffffffffffffffffffffffffffffff7900ffffff
+ffffffffe40077ffffff65002b352b0065ffffffdd00003735300000daffffdd0000392d
+0000007eff6d00ffffffff9400dfff7400ffff7800000039300003ffffffdd00002e2d00
+180078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff1400e4ff6a00a6ffffffff0074ffffdd000037370000deffffff0079ffff65002b3a00
+000100ffffff0074ffff0000002a3b030093ffffff6800004000000400ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6070000
+0000001fd8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffe02700000000000f97ffffffffffffffffffffffffffffffffff
+ffffdfd05310000000000000000000000000000000000000000000001053d0dfffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffff819000000000007
+e6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8e0000
+0000000073ffffffffffffffffffffffffffffffffffffffffffffffffffffff7a00ffff
+ffffffffbc0300e4ffff90008cffffff8c0092fffb0000faffffff970075ffff000afeff
+ffde23007fffe60097ffffff450cffff7900ffff7e001cfcffff940095ffff000fddffff
+db1f007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffff60354ec0087ffffffffff0079ffff0007fefffffe0800ffffff0079ff92008dffff
+ff8b0000ffffff0079ffff000090ffffff1303ffff920087ffffff870000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff79000000
+00000086ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7900000000000045f4ffffffffffffffffffffffffffffffffff
+fffffffffffffdd7e0d44b3f42453f0000000000134942423f4bd4e0d7fdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8800000000
+000077ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff95
+10000000000025ddffffffffffffffffffffffffffffffffffffffffffffffffff7e001b
+100f18231a00008effffff4463ffffffffff6901ffffcaf5ffffffffff007bffd800abff
+ffffffb2007effff0c45ffffff0079ffff7900ffff7b00f5ffffffff0077ffd800acffff
+ffffb2007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffa5000017ffffffffffff0079ffd600ffffffffffff0093ffff007aff4511ffff
+ffffff2100ffffff0079ffff0066ffffffff8100ffff4511ffffffffff2100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe025000000
+00001fdaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffdf2400000000000f97ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffdddcddddd7feffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8c0000
+000000006aefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffa19000000000009e6ffffffffffffffffffffffffffffffffffffffffffffffff7d00
+3c363807000092ffffffffff00001b0c0c0c190000feffffffffbebab027007eff7300ff
+ffffffffff007affff7900ffff9600e7ffff7900ffff7900ffffffffff0079ff7300ffff
+ffffffff007affffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff6500f2ffffffffffff0079ff76001e0f0c0c0e1a0074ffff007eff007dff
+ffffffff8000ffffff0079ffff007bffffffff7900ffff007dffffffffff8000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7800000000
+000089ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffb90e000000000046f4ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffda
+22000000000005e4ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff8900000000000076ffffffffffffffffffffffffffffffffffffffffffffff7a
+00ffffffff6000abffffffffff001242333434353744fdffff6b0000000034007dff7900
+ffffffffffff0079ffffe70099ff450effffff7900ffff7900ffffffffff0079ff7900ff
+ffffffffff0079ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7c00ffffffffffffff0079ff7d003d38343434362da2ffff007fff0079
+ffffffffff7900ffffff0079ffff0079ffffffff7900ffff0079ffffffffff7900ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe02500000000
+000f97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffff06600000000000f99ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fff14600000000000075ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff9710000000000068efffffffffffffffffffffffffffffffffffffffffff
+7900fffffffff21000e1ffffffff0089ffffffffffffffffff64003dd2dde6ff007aff75
+00ffffffffffff007affffff0d50ff0079ffffff7900ffff7900ffffffffff0079ff7500
+ffffffffffff007affffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7900ffffffffffffff0079ff7600ffffffffffffffffffff007eff00
+79ffffffffff7d00ffffff0079ffff0079ffffffff7900ffff0079ffffffffff7d00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff760000000000
+0046f4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffb90b000000000047f4ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff8e00000000000073ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffb1d000000000004e2ffffffffffffffffffffffffffffffffffffff
+ff7900ffffffffffec0005ffffffff5501ffffffffffdfa8ffff006cffffffffe8007bff
+e7009affffffffa2007effffff78009600e7ffffff7900ffff7900ffffffffff0079ffe7
+009affffffffa2007effffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7900ffffffffffffff0079ffe7009affffffffffacd7ffff007aff
+5401ffffffffff1300ffffff0079ffff0079ffffffff7900ffff5401ffffffffff1400ff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0680000000000
+0f99ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffff0660000000000008effffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffda22000000000025ddffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffff04600000000000fb9ffffffffffffffffffffffffffffffffff
+ffff7900ffffffffffff8b006dffffffa10064f6ffffba003fffff004dffffffb607007e
+ffff0f00bcffffbd12007fffffffe600001cffffffff7900ffff7900ffffffffff0079ff
+ff0f00bcffffbb0c007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763190000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7900ffffffffffffff0079ffff0f00bcfffff65a00d4ffff0079
+ffa10064f6fff66b0000ffffff0079ffff0079ffffffff7900ffffa10064f6fff5650000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb90b0000000000
+46f4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffb90b00000000001edaffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffff14600000000000eb9ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff8d00000000000072ffffffffffffffffffffffffffffff
+ffffff7100ffffffffffffff1700c8ffffff85000012090008edffff8100001204007400
+6dfffff20a000a0a000a0076ffffffff230082ffffffff7100ffff7100ffffffffff0071
+fffff30a000a09003b007dffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787631900
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff7100ffffffffffffff0071fffff20a000912000082ffffff00
+71ffff8500001600000900ffffff0071ffff0071ffffffff7100ffffff86000016000b1c
+00fffffffffffffffffffffffffffffffffffffffffffffffffffffff066000000000010
+99ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffff06600000000000087ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff9100000000000072ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffdc23000000000023dcffffffffffffffffffffffff
+ffffffff9c32feffffffffffffed3455fdffffffd244322e87ffffffffffd2442f3ed2ff
+8353ffffffff872e2e8bff409dffffffff8400eaffffffff9c32feff9c32fefffffffe32
+9cffffffff882e2d97ff0077ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff9e33fefffffffffffe339effffffff872f3445d2fffffffe
+339effffffd2453245e4af39fdfffe339efffe339effffffff9e33ffffffffd7453240ff
+9400ffffffffffffffffffffffffffffffffffffffffffffffffffffb70b00000000001b
+faffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffb70b000000000020dbffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff9812000000000023ddffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffff61a000000000009e5ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff460dffffffffffffffffffffffffffffffff
+ffffff8513ffffffffffe500a1ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763
+19000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0d95ffffffff
+ff4b0bffffffffffffffffffffffffffffffffffffffffffffffffef6500000000000087
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffef6500000000000087ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffa1b00000000000eb8ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff8b00000000000074ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffdf00a4ffffffffffffffffffffffffffffff
+ffffffff9b0065f6ffffe70011ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787
+6319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0900bbffff
+ff6e00a6ffffffffffffffffffffffffffffffffffffffffffffffb70b000000000020db
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffb70b000000000020dbffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff8b0000000000006effffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff9812000000000067edffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffff7190012ffffffffffffffffffffffffffffff
+ffffffffffff430000100e0000b0ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87
+876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0000007
+0d050040ffffffffffffffffffffffffffffffffffffffffffffff7000000000000087ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffef6500000000000087ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff9812000000000067edffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffa1d000000000005e2ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffb383becffffffffffffffffffffffffffff
+ffffffffffffffffd445342e84ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff
+87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88
+2f3340d2ffffffffffffffffffffffffffffffffffffffffffffdf24000000000020dbff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffb70b000000000020dbffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffa1b000000000005e4ffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffff04800000000000fb7ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffff
+ff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff7700000000000088ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffef6500000000000088ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff8b00000000000074ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f000000000000
+70ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffff
+ffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffde24000000000023ddffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffb609000000000021dbffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff8e00000000000065ec
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd25000000
+000022daffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ff
+ffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff7700000000000048f2ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffee6300000000000088ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd230000000000
+03e1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81b00
+0000000007e4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787
+ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffdc220000000000119cffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffb60a000000000021dbffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff249000000
+00000eb6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+8c00000000000073ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff87
+87ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffb70d000000000049f5ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffee6300000000000088ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9000
+00000000006fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff9a13000000000065ecffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff
+8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffee630000000000119cffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffb60a000000000021dbffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+dd25000000000022dcffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffc1e000000000003e1ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffff
+ff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffb60a000000000049f5ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ec6300000000000088ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffff81b00000000000db6ffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffff14900000000000eb6ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effff
+ffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffee6300000000000090ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+e304000000000021dbffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff8c0000000000006fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff900000000000006fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001eff
+ffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffb50a000000000021dcffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+750000000000008affffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff9b13000000000022daffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffdd25000000000022daffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001e
+ffffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffec620000000000008affffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffde
+23000000000021dcffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffb1d000000000008e2ffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffff71d000000000008e2ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000
+1effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffe204000000000021dcffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff75
+0000000000008cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff8c00000000000073ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff8c00000000000073ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000
+001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff750000000000008affffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffde23
+0000000000119bffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff9b13000000000064ecffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff9b13000000000064ecffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00
+00001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffde23000000000021dcffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7500
+00000000004af5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffc20000000000004e2ffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffc20000000000003dfffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
+0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff750000000000008cffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffde2300
+00000000119dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffff14a00000000000073ffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffff14a00000000000eb5ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffdd210000000000139bffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff740000
+000000004af5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff9200000000000064ebffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff920000000000006dffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff740000000000004cf7ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd210000
+000000139fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffde24000000000002e0ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffde26000000000021d9
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffdb200000000000139effffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff74000000
+0000004cf7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff34c00000000000db3ffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff91e0000000000
+06e1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffb40c00000000004cf7ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd21000000
+0000139effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff920000000000006d
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f000000
+00000070ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffec610000000000139effffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7400000000
+00004cf7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffde2600000000
+0021dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c14
+000000000063ebffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffb30800000000004cf7ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd2100000000
+00139effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff91e0000
+0000000cb3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fd21000000000002deffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffec6100000000000093ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff720000000000
+004cf7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f
+0000000000006affffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffff24c00000000000db3ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffb308000000000024ddffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdb210000000000
+139effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff9c14000000000063ebffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff930000000000006cffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff6c0000000000008cffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff73000000000000
+4cf7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffc1f000000000003e0ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffde27000000000021d8ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffdb20000000000024dfffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffdb20000000000013
+9effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff8f00000000000070ffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffff91e000000000006e1ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff730000000000008cffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff730000000000004d
+f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff9100000000000063ebffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff8f00000000000070ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffdb20000000000026e0ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffdb20000000000014a0
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffe026000000000003dfffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff9e15000000000061eaffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff710000000000004cf5ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff6f0000000000004df8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff44d0000000000006effffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffe22000000000001ddffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdb20000000000014a0ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffeb61000000000014a0ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff940000000000006cffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffff34d00000000000cb2ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff6f0000000000004df8ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffb20700000000004df8ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffe02600000000001fd9ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff940000000000006bffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763190000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffeb61000000000014a0ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffeb5f000000000015a0ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffff44d00000000000bb2ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffe02700000000001fd9ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787631900
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffb00700000000004ff8ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffb007000000000020fdffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff970000000000006bffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffa1f00000000000bb1ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffea5e000000000017a1ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffea5e0000000000008fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff9f1700000000001ed6ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff9200000000000067
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763
+19000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffb007000000000021fdffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffb007000000000025e0ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffd21000000000005deff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f1700000000
+0060e8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787
+6319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffe85e0000000000008fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffea5e0000000000008fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92000000000000
+6dfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd210000
+00000002deffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87
+876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffde02000000000025e0ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffb007000000000025e0ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f17000000
+000060e8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92
+0000000000006dffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff
+87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff700000000000008fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffea5e0000000000008fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe2200
+0000000002deffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff940000000000006bffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffff
+ff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffda1f000000000025e0ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffb007000000000025e0ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3
+4e0000000000006effffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffe12700000000001ed8ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffff
+ffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff6e00000000000093ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffea5c00000000000091ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff960000000000005ee8ffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffff650000000000009afffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ff
+ffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffd91d000000000015a1ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffaf06000000000026e2ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffe228000000000000dcffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff9800000000000067ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787
+ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff6e00000000000050f9ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffea5c00000000000091ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffff65000000000000aafffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffa01700000000005fe8ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff87
+87ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffd71c000000000015a3ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffaf06000000000026e2ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff9600000000000069ffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffd21000000000002deffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff
+8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffb009000000000050f9ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffea5c00000000000091ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffe22a00000000001dd7ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff930000000000006cffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffff
+ff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffe4a8aeb5ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffea5c000000000015a3ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffaf06000000000026e2ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffa21000000000009afffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff940000000000006bffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffe4a8aeb5ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effff
+ffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffe3a7b2a622161f00000000181a1064b8acb4ffffffffffffffffffffffffff
+ffffffffffffad06000000000052f9ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffe85c00000000000091ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff9300000000000068ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffe22800000000001dd7ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffb4acb86411191f00000000181a1064b8
+acb4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001eff
+ffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffe3b164101f000000000000000000000000000000000000181922a3b6ffffffffffffff
+ffffffffffe85c00000000000097ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffad06000000000026e2ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffa11800000000001dd5ffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffff55100000000000aaeffffffffffff
+ffffffffffffffffffffffffffffffffb6a3221918000000000000000000000000000000
+000000181922a3b6ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001e
+ffffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3b1
+6315000000000000000000000000000000000000000000000000000000001622a3b6ffff
+ffffffffffad06000000000028e3ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff6800000000000092ffffffffffffffffffff
+ffffffffffffffffff8c00060000000012a8fffffffffff6007bffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff66f1ffffffffffffffffffff
+fffffc0586ffffffffffffffff7b00f6ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffc1a06020000000055e4fffffffc0586ffffffffffffffffffffffffffffff
+fffffffffffffffc0586fffffffffffffff6007bffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffe23000000000004ddffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff9900000000000066ffffffff
+ffffffffffffffffffffffffffb6a3221600000000000000000000000000000000000000
+0000000000000000001622a3b6ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000
+1effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe95c1500
+000000000000000000000000000000000000000000000000000000000000000000000016
+21aaffffff6800000000000092ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffd71c000000000028e3ffffffffffffffffffff
+ffffffffffffffffffff790047454141490a0011d1fffffffc349dffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff8800feffffffffffffffffff
+ffffffff0074ffffffffffffffff9d34fcffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00154f4141443b0000d5ffffff0074ffffffffffffffffffffffffffff
+ffffffffffffffffff0074fffffffffffffffc349dffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff940000000000006bffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffa21800000000005de7ff
+ffffffffffffffffffffffaa211600000000000000000000000000000000000000000000
+00000000000000000000000000001621aaffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000
+001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe962000000
+000000000000000000001c585050479bf0e7e7eade594d50534b00000000000000000000
+00000023a125000000000028e3ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff6d00000000000092ffffffffffffffffffffff
+ffffffffffffffffffffff7a00ffffffffffff910002ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff8000ffffffffffffffffff
+ffffffffff007affffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff0089ffffffffffea133bffffff0079ffffffffffffffffffffffffff
+ffffffffffffffffffff0079ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffa21800000000005de7ffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffe23000000000001
+dcffffffffffffffffffab1f000000000000000000000000001c585050479bf0e7e7eade
+594d50534b000000000000000000000000001fabffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00
+00001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe66100000000
+00000000000000439df0e1ffffffffffffffffffffffffffffffffe8e7de611a00000000
+000000000000000000000092ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffa1d9ffffffffffffffffffffffd71c00000000002ae4ffffffffffffffffffffff
+ffffffffffffffffffffffff7900ffffffffffffff9a0093ffffff9cd5ffffffb1aaa4e0
+ffffffffff9ddfffaea9b1ffffffffffffffb1aaaab1ffffffba4f00aaacffffffffdfa6
+a6dfffffffff0088ffb0a9b1ffffffffd59cffffff9fe3ffb0a9b1ffffffffffffffb1a9
+aeffe39effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff0079ffffffffffff8000ffffff0079ffffffffffb1a9b1ffffffff
+ffffffdfa6a6dfffffffff0079ffffffffa49dffff9cd5ffffd5a6ffe1a4a6dfffffffff
+ffffb1a9aeffe39effffffffffffffffffffffffffffffffffffffff25000000000001dc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9500000000
+00006affffffffffffa9200000000000000000000000439df0e1ffffffffffffffffffff
+ffffffffffffe8e7de611a0000000000000000000020a9ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
+0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffae0600000000
+0000000000449cf1ffffffffffffffffffffffffffffffffffffffffffffffffffd8631b
+0000000000000000000038faffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffd10043ffffffffffffffffffff6d00000000000052f5ffffffffffffffffffffff
+ffffffffffffffffffffffffff7900ffffffffffffffff193ffffffc006affd107000000
+0012d1fffffc00796e00000008d2ffffffd207000000000fd7ff0000000000f1ffff6300
+00000061ffffff0045210000000dd2ffff6a00fcfffb00361e0000000dd2ffffffd20800
+0000624800fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff007affffffffffff7700ffffff0079ffffffd20800000008d2ff
+ffffff630000000061ffffff0079ffffff590079fffe006affff6c00560000000063ffff
+ffd208000000624800fbfffffffffffffffffffffffffffffffffffffff4530000000000
+006affffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff970000
+0000000068ffffffea5c0000000000000000001f4f9bf1ffffffffffffffffffffffffff
+ffffffffffffffffffffffffd8631b0000000000000000005ceaffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa200000000000
+000000449cf1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffd8631b000000000000000f72ebffffffffffffffffffffffffffffffffffffffffffff
+ffffffff4e000094ffffffffffffffd71c000000000018a4ffffffffffffffffffffffff
+ffffffffffffffffffffffffffff7900ffffffffffffffff7d00ffffff007aff3c00a6ef
+f2930033ffffff0000129ef8a20400d4ffc70011e3eaf29a0001fffb6c00e1e5ffff5900
+50e3e452008affff00001fe3f59a0042ffff7900ffffff00001fe3f59a0042ffffd40004
+a2f89f0d0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff0084ffffffffffad088effffff0079ffffd70004a2f8a20400
+d7ffff590050e3e452008affff0079ffff5c0092ffffff0079ffff7e000092f4e72300cf
+ffd40004a2f89f0d0000ffffffffffffffffffffffffffffffffffffffffffff99000000
+00000068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe4
+2a000000000023ae6b00000000000000001b63d8ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffd8631b000000000000000060e7ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffd519000000000000
+0018a2f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffdc5d00000000000000006affffffffffffffffffffffffffffffffffffffff
+ffffffffd500000008dbffffffffff6d00000000000053f9ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff7900ffffffffffffffff7900ffffff007dff008aff
+ffffff9540f9ffff0000f6fffffff80071ff9d38f4ffffffff7300ffff7e00ffffffff00
+66ffffffff1500ffff0023ffffffff6700ffff7900ffffff0023ffffffff6700ffff7100
+f8fffffff90000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00000b00000003003bffffffff0079ffff4000f8fffffff8
+003fffff0066ffffffff1500ffff0082ff5d0092ffffffff0079ffff7e00a0fffffff900
+75ff7000f8fffffff90000ffffffffffffffffffffffffffffffffffffffffffffffe42a
+00000000001bd5ffffffffffffffffff5554ffffffffffffffffffffffffffffffffffff
+fff5530000000000000000000000000057dbffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffdb5700000000000000006affffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffac08000000000000
+189effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff2c3d000000000000005ce6ffffffffffffffffffffffffffffffffff
+ffffffffff4f000000004dffffffd81a000000000018a5ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff7900ffffffffffffffff7a00ffffff007dff1b00
+68aee2ffffffffffff0066ffffffffff5e00fffffffffffffff74a00ffff7900ffffff8f
+00f0fffffffff8d5ffff0081ffffffff7b00ffff7900ffffff0081ffffffff7b00ffff00
+5effffffffff6600ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff001b534444444f1b005fffffff0079ffff0063ffffffff
+ff6300ff9400f0fffffffff8d5ffff00877a00a2ffffffffff0079ffff7a00ffffffffff
+007eff005effffffffff6600ffffffffffffffffffffffffffffffffffffffffffffffff
+f753000000000008acffffffffffffffd50000d3ffffffffffffffffffffffffffffffff
+ffffffff9d0000000000000000000055e1ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffe1550000000000000068ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff6400000000000018
+9effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffcffe35500000000000000daffffffffffffffffffffffffffffff
+ffffffffff910000000000009cff6c00000000000053faffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff7900ffffffffffffffff7800ffffff0079fff9
+160000000d59e4ffffff007bffffffffff7a00ffffffb5530001000000ffff7900ffffff
+7700ffffffffffffffffff0079ffffffff7900ffff7900ffffff0079ffffffff7900ffff
+007affffffffff7b00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff0088ffffffffffff6400cfffff0079ffff007bffffff
+ffff7b00ff7d00ffffffffffffffffff000018006cffffffffff0079ffff7900ffffffff
+ff007fff007affffffffff7b00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffff9b00000000000066ffffffffffd90100004effffffffffffffffffffffffffffff
+ffffffffffff770000000000000055e1ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffe1550000000000001ad4
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffe65c0000000000189e
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffe155000000000009acffffffffffffffffffffffffff
+ffffffffffff120000000000000a22000000000018a5ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff7900ffffffffffffffff001bffffff0079ff
+ffffdc5c44000000d3ffff007dffffffffff7b00ffff5a00084a3cad7500ffff7900ffff
+ff7900ffffffffffffffffff0079ffffffff7900ffff7900ffffff0079ffffffff7900ff
+ff007bffffffffff7d00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff0079fffffffffffff50074ffff0079ffff007bffff
+ffffff7d00ff7f00ffffffffffffffffff0021ff6f00d0ffffffff0079ffff7900ffffff
+ffff007eff007bffffffffff7d00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffa31900000000001ad5ffffff4e00000000d4ffffffffffffffffffffffffff
+ffffffffffffde10000000000058e1ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1550000000000
+02daffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffd700000000000094ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffe729000000000062ffffffffffffffffffffff
+ffffffffffff950000000000000000000000000054faffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff7900ffffffffffffffd7007dffffff007a
+ff98dbfffffff6a80075ffff004cffffffffff3f11ff900097ffffffff8600ffff7900ff
+ffff7a00d9ffffffff8707ffff0079ffffffff7900ffff7900ffffff0079ffffffff7900
+ffff1442ffffffffff4c00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0079ffffffffffffff0076ffff0079ffff1542ff
+ffffffff4700ff7f00d9ffffffff8707ffff0081fffa1300ffffffff0079ffff7900ffff
+ffffff007dff1442ffffffffff4c00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff24000000000008aeff6b00000000004cffffffffffffffffffffffff
+ffffffffffffda03000000000098ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7290000
+000003daffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffdc04000000002be5ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffff754000000000069ffffffffffffffffff
+ffffffffffffff12000000000000000000000018a5ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff7a00ffffffffffffdc0015f6ffffff00
+7cff0400ffffffffe90078ffff0000d9ffffffd500aaff7500ffffffffdb0000ffff7a00
+ffffffea0044ffffffdb0054ffff0079ffffffff7900ffff7900ffffff0079ffffffff79
+00ffff7b00d6ffffffd80000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0082ffffffffffff9800a9ffff0079ffff7b00
+d6ffffffd6005fffeb0044ffffffdb0054ffff0079ffffae005fffffff0079ffff7900ff
+ffffffff0079ff7b00d6ffffffd80000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff960000000000005b02000000000000d4ffffffffffffffffffff
+ffffffffffffab09000000002be5ffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff754
+0000000009abffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff69000000000023fcff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff9d00000000001ad4ffffffffffff
+ffffffffffffff97000000000000000000000064ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff7a00acafababb3600000acffffffff
+0079ffac0014a2b0a20012f4ffff00000060bb60001affffa60015a2b555000a00ffff78
+0062b2ffff900054b5a60000e8ffff0078ffffffff7800ffff7800ffffff0078ffffffff
+7800fffff3150060bb5d000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff004cbdaaababb25b001dffffff0078fffff3
+150060bb600016f5ffff900054b5a60000e8ffff0078ffffff96008bffff0078ffff7800
+ffffffffff0078fff3150060bb5d000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffa3190000000000000000000000004cffffffffffffffffff
+ffffffffffff62000000000023fcffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff9d000000000062ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff64000000000096ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff9a000000000002d8ffffffff
+ffffffffffffffd906000000000000000000000079ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff74000000000000004dddffffffff
+fa006dffff9f0300000044f5ffffff00646400000047f4ffffff9f03000000adb700c8ff
+f3180000f1ffff9e00000018dffffffa006dffffffff6d00faff6d00fafffa006dffffff
+ff6d00fbfffffe49000000a67800ffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffff9000000000000000654f1fffffa006dffff
+fff54700000047f5ffffffff9e00000018dffffffa006dffffffff1600d1ff006dffff6d
+00fafffffffa006efffffe49000000a67800ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff24000000000000000000000000d4ffffffffffffff
+ffffffffffff64000000000096ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff9a000000000064ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff62000000000096ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffa31b0000000000d7ffff
+ffffffffffffffff4b00000000000000000000000000d1ffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffff4dfe9e9e9e9e8e8ffffffffff
+ffffd6f2ffffffffe3e8e8ffffffffff0084ffe7e6e8ffffffffffffffe3e3ffffffd6eb
+fffffce1e0ffffffffffe3e3fdffffffffd6f2fffffffff2d6fffff2d6ffffffd6f2ffff
+fffff2d6ffff9ce3ffe8e6eaff8300ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffdfe7e9e9e9e9e3ffffffffffffd6f2ff
+ffffffffe8e6e8ffffffffffffffffe3e3fdffffffffd6f2fffffffff9d0ecffd6f2ffff
+f2d6ffffffffffd6f5ff9ce3ffe8e6eaff8300ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffa000000000000000000000004cffffffffffff
+ffffffffffff62000000000096ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffa31b0000000062ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffd4000000002ce6ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff28000000004fff
+ffffffffffffffffd400000000000000000000000000000dffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0079ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffff6003fffffffffdf005effffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffff7003fffffffffdf005effffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffa7000000000000000000000000d4ffffffff
+ffffffffffffd4000000002ce6ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff2800000000d4ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffd7050000002bfdffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc2800000000
+65ffffffffffffffff4c00000000000000000000000000000065ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0078ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff5f0012a0afa00000e9ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff5f0012a0afa00000e9ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffd6090000000000000000000000004cffffff
+ffffffffffffd7050000002bfdffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffc2b00000005d7ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffd60300000000f4ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc290000
+000065ffffffffffffd20000000000000000000000000000000000d1ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffc006fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff9b040000004adbffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff9b040000004adbffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0b0000000000000000000000000000d4ff
+ffffffffffffd60300000000f4ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffff40000000003d6ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffd7000000000096ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff28
+0000000061ffffffffff0b000000000000000000000000000000000000f6ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffd7f2ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffe5eae9ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffe5eae9ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff670000000000000000000000000000004c
+ffffffffffffd7000000000096ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff960000000000d7ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff4d000000009affff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+b20000000000d3ffffff9300000000000000000000000000000000001c47bbffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff9100000000000000000000000000000000
+00d4ffffffffff4d000000009affffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff9a000000004dffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763190000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff64000000009effff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff9a0000000002d7ffff10000000000000000000001f5c515de1ede4ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffcb00000000000000000000000000000000
+00004cffffffff64000000009effffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff9e0000000064ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787631900
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f000000002bffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff9a000000004bff84000000001f5c515de1ede4ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffedcf5c5a1f0000000000000000000000
+00000000d4ffff8f000000002bffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff2b000000008fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff100000002bfcff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff9d00000000d27651e2eee5ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffe5f4a04f510000000000
+00000000004cffff100000002bfcffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffc2b00000010ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763
+19000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9300000000f5ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7000000053ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeaf3a04f
+51000000000000eca600000000f5ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffff50000000093ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787
+6319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff120000006cff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffef00000000d3ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffeaebe25e5b143f1c0000006cffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff6c00000012ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87
+876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6300000000ef
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff6c0000004dffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff3b00000000efffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffef0000000063ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff
+87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd2000000006b
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffef00000000d3ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffda000000006bffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff6b00000000d2ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffff
+ff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4b00000000
+efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff6d0000004bffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff4b00000000efffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffef000000004bffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffff
+ffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd300000000
+6dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffee00000000d3ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffd3000000006dffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6d00000000d3
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ff
+ffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4b000000
+00eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff6d0000004bffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff4b00000000eeffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee00000000
+4bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787
+ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcf000000
+006dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffff000000000d0ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffcf000000006dffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6d0000
+0000cfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff87
+87ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c0000
+0000f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff6d00000079ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7c00000000f0ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000
+0000007cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff
+8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4f00
+00006affffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffff400000010ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff4f0000006affffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+6a0000004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffff
+ff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+000000b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00000000d3ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00000000b2ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffb200000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effff
+ffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff96
+00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff6c0000007affffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff9600000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff0000000096ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001eff
+ffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+4d00000069ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff8100000011ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff4d00000069ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff690000004dffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001e
+ffffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00000000b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffef0000000095ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00000000b2ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffb200000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000
+1effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffd400000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff2d0000004dffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffd400000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00000000d4ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000
+001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff790000006affffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8100000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff790000006affffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff6a00000079ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00
+00001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff0d000000b4ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb20000000091
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0d000000b4ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffb40000000dffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
+0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+0083ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f3ee2ffffffff
+ffffffffffffffffffffffffffffffffffffffd200000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00000000d2ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffd20000002dffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2d00
+00004dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7800005ae2ff
+ffffffffffffffffffffffffffffffffffffffff780000002dffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff2d00000078ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7800000085fffffffffffffb14000000000000000001f6ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff5ef1fffff70076ffffffffffffffffffffffffffffffffffffffffffffffffffffff85
+00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000
+5ae2ffffffffffffffffffffffffffffffffffffff7f00000085ffffffffffffffffffff
+fffffffb140000000000004bdefffffffb0083ffffffffffffffffffffffffffffffffff
+fffffffffffb0083ffffffffffffffffffffffffffffffffffffffffffffffffff8300fb
+ffffffffffffffffffffffffffff850000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7f0000007fffffffffffffff001b5c4d4e4e4e4e4950fdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff8500fefffffd3fa3ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+7f00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000
+0000005ae2ffffffffffffffffffffffffffffffffff800000007fffffffffffffffffff
+ffffffffff001b5c4d4d50470000d1ffffff0075ffffffffffffffffffffffffffffffff
+ffffffffffffff0075ffffffffffffffffffffffffffffffffffffffffffffffffff7500
+ffffffffffffffffffffffffffffff7f00000080ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7f0000007fffffffffffffff0088ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff8000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff7f00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000
+00000000000058e1ffffffffffffffffffffffffffffff0b0000007fffffffffffffffff
+ffffffffffff0088fffffffffff31935ffffff0079ffffffffffffffffffffffffffffff
+ffffffffffffffff0079ffffffffffffffffffffffffffffffffffffffffffffffffff7a
+00ffffffffffffffffffffffffffffff7f0000000bffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff830000007bffffffffffffff0079ffffffffffffffffffcd82d0ff
+ffffffff93cfffffffffa79fa7ffffffffffffffffa79fa7ffffffffcf92ffffffffff92
+d1ffb049009fa2ffff92cfffff95dfffa69fa7ffffffffffffffa79fa4ffde94ffffffff
+ffff7b00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00
+00000000000000000058e1ffffffffffffffffffffffffff000000007bffffffffffffff
+ffffffffffffff0079ffffffffffff7f00ffffff0079ffffffffd79b9bd7ffffffffffff
+ffd79b9bd7ffffffff0079ffffffff9a96ffffffffd79b9bd7ffffffffffffffa79fa6ff
+8800ffffffffffffffffffffffffffffff7b00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff4d000000b2ffffffffffffff007affffffffffffffffffea0400
+ffffffff4d00dcffffca0000000000caffffffffcd0100000001caffff6b00fcfffffffc
+006fff0000000000f8ff006bfffc00321600000005ceffffffcd01000000584300fcffff
+ffffffb200000000d2ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88
+00000000000000000000000058e1ffffffffffffffffffffff00000000b2ffffffffffff
+ffffffffffffffff007affffffffffff7500ffffff0079ffffff5a000000005affffffff
+ff5a0000000059ffffff0079ffffff510080ffffff580000000058ffffffffca00000000
+1c4100ffffffffffffffffffffffffffffffb200000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00000000ffffffffffffffff0083ffffffffffffffffffffb2
+0059ffff8a0099ffffcc001cedf4ed1c00d0ffffce000dabffae0900ffff7900ffffffff
+ff007afffd7000eaebffff0079ffff000028ecfda3003dffffce000dabffa9140000ffff
+ffffffffff0000000078ffd196a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4
+a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4
+a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4
+a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4
+a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4
+a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4
+a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4
+a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4b6
+52000000000000000000000000000058e1ffffffffffffffff9100000000ffffffffffff
+ffffffffffffffffff0083ffffffffffa30797ffffff0079ffff54005bebeb5b0054ffff
+ff52005bebec5b0083ffff0079ffff540099ffffff4f0099fafa990051ffffce001fedfa
+ab190000ffffffffffffffffffffffffffffffff0000000091ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00000000ffffffffffffffff0000020000000000007bffff
+ff6700dde90023ffffff6a1cffffffffff2237ffff6e00faffffffb20083ff7900ffffff
+ffff0079ffff7d00ffffffff0079ffff0029ffffffff6a00ffff6e00fafffffffb0000ff
+ffffffffffff000000007fff700000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000058e0ffffffffffff7d00000000ffffffffff
+ffffffffffffffffffff00000200000000003affffffff0079ffcc006dffffffff6d00cc
+ffff006cffffffff1c00ffff0084ff540099fffffffc00b1ffffffffb200cbff6e00f7ff
+fffffb0000ffffffffffffffffffffffffffffffff000000007dffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00000000ffffffffffffffff00205e4f4f4f4f503ea7ff
+fffffa1e043317ffffffff004cbba2a1a2ba4e00ffff0061ffffffffffe1f2ff7900ffff
+ffffff0079ffff7900ffffffff0079ffff0081ffffffff7b00ffff0061ffffffffff6800
+ffffffffffffff000000007fff7f00000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000055ffffffffff7b00000000ffffffff
+ffffffffffffffffffffff00205e4f4f4f59230058ffffff0079ff7400f6fffffffff600
+74ff8c00f3fffffffffbdcffff00847300a8ffffffff8d00aba9a1a1a9ad007aff0061ff
+ffffffff6800ffffffffffffffffffffffffffffffff000000007bffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00000000ffffffffffffffff0088ffffffffffffffff
+ffffffffff0000bfffffffff000000000000000000ffff007affffffffffffffff7900ff
+ffffffff0079ffff7900ffffffff0079ffff0079ffffffff7900ffff007affffffffff7b
+00ffffffffffffff000000007bff7e000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000056d2ffffffffffb200000000ffffff
+ffffffffffffffffffffffff0088ffffffffffff6900cbffff0079ff7900ffffffffffff
+0079ff7700ffffffffffffffffff00001d0065ffffffff7c00000000000000007bff007a
+ffffffffff7b00ffffffffffffffffffffffffffffffff00000000b2ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff2e000000d1ffffffffffffff0079ffffffffffffff
+ffffffffffd30000daffffffff0075ffefefeff0efe9ffff007dffffffffffffffff7900
+ffffffffff0079ffff7900ffffffff0079ffff0079ffffffff7900ffff007bffffffffff
+7d00ffffffffffffd100000000b2ff750000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000005fe7ffffffffffffffff00000000d1ff
+ffffffffffffffffffffffffff0079fffffffffffff80074ffff0079ff7500ffffffffff
+ff0079ff7900ffffffffffffffffff0027ff7300caffffff7700f2f6efefeff0e9ffff00
+7bffffffffff7d00ffffffffffffffffffffffffffffffd100000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff8500000078ffffffffffffff0079ffffffffffff
+ffffffffffff00242700d2ffffff1a44ffffffffffffffffff0044ffffffffff0083ff79
+00ffffffffff007affff7900ffffffff0079ffff0079ffffffff7900ffff193fffffffff
+ff4900ffffffffffff7800000000fffff8e7f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0
+f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0
+f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0
+f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0
+f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0
+f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0
+f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0
+f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0
+f0f0f0f0ff77000000000000000000000000005fe9ffffffffffffffffffff0000000078
+ffffffffffffffffffffffffffff0079ffffffffffffff0076ffff0079ffae00d4ffffff
+ffd5007bff7b00d5ffffffff8001ffff0081fffe1900ffffffae00dbffffffffffffffff
+193fffffffffff4900ffffffffffffffffffffffffffffff7800000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff7f0000007fffffffffffffff0083ffffffffff
+ffffffffffff5300ffff003cffffff7c00cfffffffff4835ffff6500ceffffff5600e7ff
+7b00d5ffffff5d007effff7a00ffffffff0079ffff0079ffffffff7900ffff7c00cfffff
+ffd10000ffffffffffff7f00000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff8300000000000000000000005fe9ffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffff0083ffffffffffff9100aeffff0079ffff0040ffff
+ffff4200eeffee003fffffffd4005bffff0079ffffb20056ffffff0040ffffffffca00b4
+ff7c00cfffffffd30000ffffffffffffffffffffffffffffff7f00000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff7f0000007fffffffffffffff0046b19f9f9f
+9f9f9f92d2ff86009affff9c0087fffff71c0056aa950800a6fffff91a0096ab520064ff
+ffed00009ba94510007cffff7b0059a7ffff0078ffff0078ffffffff7800fffff71c0056
+af53000000ffffffffffff7f00000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7f0000000000000000005fe9ffffffffffffffffffffffffffff6e0000
+007fffffffffffffffffffffffffffff0046b19f9f9fa6510024ffffff0078ffff970008
+9898080099ffffff990049aa9a0000ecffff0078ffffff9e0087ffff97000995aa560018
+fffff71c0056af55000000ffffffffffffffffffffffffffffff7f0000006effffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763190000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff7b00000083fffffffffffffa0000000000
+00000000006fdd001effffffff1e00c7fffff9510000000ca8fffffffff84e00000094ff
+ffffffa70f00001af40070fffff7210000f7ff006ffffb006fffffffff6f00fbffffff54
+000000b07c00ffffffffffff8300000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7f0000000000000060e9ffffffffffffffffffffffffffffffff8000
+000083fffffffffffffffffffffffffffa000000000000000d60f4fffffb006fffffffa8
+0c00000ca8ffffffffffa607000020e7fffffb006fffffffff1e00c7ffffa80c00000051
+f8fffffff951000000696000fbffffffffffffffffffffffffffff8300000080ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787631900
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffb40000004bffffffffffffffe8eff1f1
+f1f1f1f1f1e7fef6d9fdfffffffffdd9edfffffffff0f0ebfffffffffffffffff0edeeff
+ffffffffffffebebffffe0f6ffffffffe9e8ffffdef6ffffdff6fffffffff6deffff92dd
+fff1edf0ff8000ffffffffffff4b0000002effffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7f000000000060e9ffffffffffffffffffffffffffffffffffff7b
+0000004bffffffffffffffffffffffffffffe8eff1f1f1f1ebffffffffffffdff6ffffff
+ffffebebffffffffffffffffffebebffffffffffdff6fffffffffdd9edffffffffebf0f0
+fffffffffffffff0edefffffe0ffffffffffffffffffffffffffffff4b0000007bffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800
+3affffffffd60065ffffffffffff0000000085ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7e00000060e9ffffffffffffffffffffffffffffffffffffffff
+b400000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000b4ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763
+19000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+65000a95a3940000ecffffffffffff000000007effffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff6f0061e9ffffffffffffffffffffffffffffffffffffffffff
+ffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787
+6319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00000000d1ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffa50d00000053e2ffffffffffffd1000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffb5d5ffffffffffffffffffffffffffffffffffffffffffff
+ffffff00000000d1ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd100000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87
+876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff6f00000079ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffedf1f1ffffffffffffffff7d00000000f0ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff6f00000079ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff790000006f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff
+87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff810000000fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff4b0000002fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff810000000fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0f000000
+81ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffff
+ff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000d0ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000000086ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff9b9b9d9c9c9d95d5ffffffffff8dccffff
+ffffffffffffffffffffffffffffffffffffffffff8dccffffffffffffffff8acbffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffff000000000d0ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0000000
+00f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffff
+ffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2f00000079ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffd100000000f0ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffc000000000000000054fffffffc006bff
+fffffffffffffffffffffffffffffffffffffffffffc006bfffffffffffffff30060ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff2f00000079ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff790000
+002fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ff
+ffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff870000000fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff780000002bffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0071fff2f2f5eb5e0081ffffff0079
+ffffffffffffffffffffffffffffffffffffffffffffff0079ffffffffffffffffe3f9ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff870000000fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0f00
+000087ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787
+ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff300000000
+d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff0c000000b9ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff007dffffffffffff6700ffffff00
+79ffffffffffffffffffffffffffffffffffffffffffffff0079ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffff300000000d0ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd000
+000000f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff87
+87ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+0078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff0079ffffffffffff7d00ffffff
+0079ffffffff9506000695ffffffffffdb47000047daffffff0079ffffffc7003ffffe00
+80ffff830dd246000047d8ffffffff95060000de9401fcffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff0000000078ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff78
+00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff
+8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b00
+000010ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff8f0000006bffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0083ffffffffffff3b1bffff
+ff0079ffffff4f00186318004fffffffc8000050510000d0ffff0079ffffcb0017f7ffff
+0075ffff7a0000135d520000ffffff4f00186314000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff6b00000010ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+100000006bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffff
+ff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb3
+000000008effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0c000000b6ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff0046ad9b9b9e950c25ffff
+ffff0079ffff8400a0ffffffa00084ffff0020f5ffffe6002affff007cffcb001effffff
+ff0079ffff7e0032ffffffab008bff8900a0ffffffa20000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffb3000000008effffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+8e00000000b3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effff
+ffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff300000000cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff8e00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000001d5
+ffffff0079ffff0025ffffffffff2500ffd100b7ffffffff9d4effff0090ee0029ffffff
+ffff0079ffff7b00fdffffffff0079ff371fffffffffff2e00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff300000000cffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff0c00000030ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001eff
+ffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffb8000000008effffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff0c00000070ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff0073fff3f3f3fcb50f
+00ffffff0079ffff007fffffffffff7f00ff7900ffffffffffffffffff003b0b00c6ffff
+ffffff0079ffff7900ffffffffff007eff007dffffffffff7f00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffb8000000008effffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff8e00000000b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001e
+ffffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff300000000effffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff9100000000f3ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff007dffffffffffff
+be008bffff0079ffff0079ffffffffff7a00ff7f00ffffffffffffffffff0000a52e00ff
+ffffffff0079ffff7900ffffffffff007fff0079ffffffffff7a00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff300000000effffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff0e00000030ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000
+1effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffb8000000005bffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffd20100000071ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0079ffffffffff
+ffff0078ffff0079ffff0073ffffffffff7600ff7d00ffffffffffce86ffff006effba00
+55ffffffff0079ffff7900ffffffffff007eff0073ffffffffff7700ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffb8000000005bffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff5b00000000b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000
+001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff3400000000ceffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff4600000000f3ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007affffffff
+ffffd7007dffff0079ffff5f00ffffffffff001effb4008dffffffff2e05ffff007bffff
+6a00c8ffffff0079ffff7900ffffffffff007aff5f00ffffffffff0900ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff3400000000ceffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffce0000000034ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00
+00001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffff70000000047ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffd00000000071ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082ffffff
+ffffe43100efffff0079ffffaf0047e1ffe14700b3ffff2600d4ffff5700b3ffff0079ff
+fffb2300d0ffff0079ffff7900ffffffffff0079ffaf0047e1ffdf4a0000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffff70000000047ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff4700000000f7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
+0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7100000000ceffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff4a00000000f2ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000
+000000000099ffffff006fffffff9c00000000009cfffffffd1d000000005effffff006f
+fffffff5002affff006fffff6f00ffffffffff006fffff9e00000000222e00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff7100000000ceffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffce0000000071ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffff20000000000caffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff5a0000000073ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff605758
+5757574fa4f9ffffffff50acffffffffe8645364e8ffffffffffffa04f4fa7ffffffff50
+acffffffff9f3ec0ff4facffffac50ffffffffff50afffffffee64535fff9000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffff20000000000caffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffca0000000000f2ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff6f0000000008ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff590000000000f1ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffb0085ffffffffff3c19ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f0000000008ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff08000000006fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffc30000000005effffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff570000000000a2ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff18009dffffff5300b2ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc30000000005e
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff5e0000000030fcffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff2f0000000059ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffcc0000000000a8ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffbf1200000000005dffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2f000000
+0059ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff59000000002fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffb8000000000057ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffcd000000000033ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa4525662e7ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb80000
+00000057ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff570000000000b8ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffa70000000000ccffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffcd000000000032ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa5
+0000000000ccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffcc0000000000a5ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffb50000000000cfffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffcd000000000032ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffa60000000000cfffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffce0000000000a6ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff59d9be00000000049bffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffd000000000002effffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffa800000000049bffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffd00000000000a8ffffffca95ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff58000bff44000000000057ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff5a000000000000b8ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff35000000000057ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff5a000000000035ffffffff000056ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff5800000064ff3700000000004dda
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff58000000000000a6ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff3300000000004ddaffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff58000000000033ffffffff5500000058ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff590000000000caff650000000000
+00cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff5b000000000025b2ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff31000000000000cdffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff5b000000000031ffffffffb9000000000058ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffda4d0000000000a5ffffffa6000000
+0000049affffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffc80d000000000032ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffa50000000000049affffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffc80d0000000000a5ffffffffffffa5000000000058ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffcb000000000000a7fffffffffff235
+000000000059ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcf000000000000a5ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffa400000000000059ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffcf000000000000a4ffffffffffffffffa7000000000058ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffcc000000000000a8ffffffffffffff
+fc6700000000001598ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffd94f000000000027b2ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffff23800000000001598ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffd94f000000000038f2ffffffffffffffffffffa8000000000057ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffcc000000000000a5ffffffffffffff
+ffffffa70000000000001398ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffd94f00000000000033ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff320000000000001394ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffd94f00000000000032ffffffffffffffffffffffffffa8000000000057ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763190000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffcc000000000038f2ffffffffffffff
+fffffffffff2370000000000001398ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffd94f00000000000000a6ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffa6000000000000004cdaffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+d94f00000000000000a6ffffffffffffffffffffffffffffffa8000000000057ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787631900
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffcc000000000033ffffffffffffffff
+fffffffffffffffd63000000000000001196ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffd94f0000000000000025b1ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffb125000000000000004fd9ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd9
+4f0000000000000025b1ffffffffffffffffffffffffffffffffffa8000000000057ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffcc000000000033ffffffffffffffff
+ffffffffffffffffffffee6900000000000000128ad5ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffa8540000000000000027b0ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffb0270000000000000054a8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa854
+0000000000000027b0ffffffffffffffffffffffffffffffffffffffffa8000000000057
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763
+19000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffcc000000000033ffffffffffffffff
+fffffffffffffffffffffffffff33500000000000000001689d5ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffa850020000000000000000a4ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffa400000000000000
+00025399d2ffffffffffffffffffffffffffffffffffffffffffffffffffffffa8500200
+00000000000000a4ffffffffffffffffffffffffffffffffffffffffffffffa800000000
+0057ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787
+6319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffcd000000000035ffffffffffffffff
+ffffffffffffffffffffffffffffffffb1260000000000000000001688d6ffffffffffff
+ffffffffffffffffffffffffffffffa6500200000000000000000069ecffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec6900000000
+0000000000001688d6ffffffffffffffffffffffffffffffffffffffffffa65002000000
+00000000000069ecffffffffffffffffffffffffffffffffffffffffffffffffffaa0000
+00000055ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87
+876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff57000000000035ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffb226000000000000000000000e06128f9a
+98959effffffffd38f9897a050000a0a0000000000000000000069eeffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee6900
+000000000000000000000e06128f9a98959effffffffd38f9897a050000a0a0000000000
+000000000069eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa
+000000000055ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff
+87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff55000000000035ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffa9672c0000000000000000000000
+000000000b09080e000000000000000000000000000000005f71edffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ed715f000000000000000000000000000000000b09080e00000000000000000000000000
+0000005f71edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffaa000000000055ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffff
+ff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff55000000000033ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffe9772900000000000000
+0000000000000000000000000000000000000000000059affdffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffdaf590000000000000000000000000000000000000000000000000000000000
+0059affdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffaa000000000055ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffff
+ffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff55000000000068fdffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9b259000000
+000000000000000000000000000000000000002a77ecf7ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffff7ec772a000000000000000000000000000000000000000000002a77
+ecf7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffaa000000000055ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ff
+ffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff550000000000acffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4f5
+ffaf5f6867702b0000000000616a676570edf9f1ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffff1f9ed70656767702b0000000000616a676570edf9f1ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffaa000000000055ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787
+ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff560000000000a9ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffff2f8f8f7f6ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffff2f8f8f7f6ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffa9000000000056ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff87
+87ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff560000000000a9ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffa9000000000056ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff
+8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff560000000000a9ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffa9000000000056ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffff
+ff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff590000000000a9ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffa9000000000056ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effff
+ffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffc50c0000000000a9ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffa9000000000056ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001eff
+ffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffc9000000000000abffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffab000000000054ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001e
+ffffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffc9000000000000aaffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffab000000000054ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000
+1effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffc9000000000029b6ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffab000000000054ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000
+001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffc9000000000036ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffab000000000054ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00
+00001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffc8000000000037ffffffffffffffffff
+ffffffffffffff91909190909189cdffffffffffffffffffffffffffffffffff83c6ffff
+fffffffffffffffffffffff7cdffffffc57fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff91909190909189cdffffffffffffffffffffffffffffffff
+ff83c6fffffffffffffffffffffffffff7cdffffffc57fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffab000000000054ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
+0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffc8000000000037ffffffffffffffffff
+fffffffffffffffc000000000000000042d2fffffffffffffffffffffffffffffd006cff
+ffffffffffffffffffffffff2f65ffffff6300f3ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffc000000000000000042d2ffffffffffffffffffffffffff
+fffd006cffffffffffffffffffffffffff2f65ffffff6300f3ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffab000000000054
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffc8000000000037ffffffffffffffffff
+ffffffffffffffffff0075fff9f9fcf26a0000cbffffffffffffffffffffffffffff0079
+ffffffffffffffffffffffffff0077fffffffdebffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff0075fff9f9fcf26a0000cbffffffffffffffffffffff
+ffffff0079ffffffffffffffffffffffffff0077fffffffdebffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffac00000000
+0053ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffc9000000000037ffffffffffffffffff
+ffffffffffffffffffff007cffffffffffffb00037ffffffffffffffffffffffffffff00
+79ffffffffffffffffffffffffff0081fffffffffffffffffeffffffffffffffffffffff
+fffffffffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff007cffffffffffffb00037ffffffffffffffffffff
+ffffffff0079ffffffffffffffffffffffffff0081ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffac0000
+00000053ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffff54000000000037ffffffffffffffffff
+ffffffffffffffffffffff0079ffffffffffffff7200fcffffffd135000035d1ffffffff
+0079ffffffd135000035d1ffff780000000074ff7c00fbfffb007f9c00000088ffffffff
+ff89000000d48e00fbffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0079ffffffffffffff7200fcffffffd135000035
+d1ffffffff0079ffffffd135000035d1ffff780000000074ff7c00fbff7f05c93a00003d
+cfffffffffd23b00004fff007fffffffffffffffffffffffffffffffffffffffffffffac
+000000000053ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffff53000000000037ffffffffffffffffff
+ffffffffffffffffffffffff0079fffffffffffffff70086ffffc0001969691900c0ffff
+ff0079ffffc0001969691900c0ffb758002f62b1ff7600ffffff000000596d25007fffff
+ff460022721f000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0079fffffffffffffff70086ffffc000196969
+1900c0ffffff0079ffffc0001969691900c0ffb758002f62b1ff7600ffff7a00001d6c5e
+0000fcffffc000005e5b0000007affffffffffffffffffffffffffffffffffffffffffff
+ffac000000000053ffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffff53000000000036ffffffffffffffffff
+ffffffffffffffffffffffffff0079ffffffffffffffff0078ffff002bffffffff2e00fc
+ffff0079ffff002bffffffff2e00ffffff0087ffffff7900ffffff0000afffffff2a00ff
+ff8600a8ffffffab0000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0079ffffffffffffffff0078ffff002bffff
+ffff2e00fcffff0079ffff002bffffffff2e00ffffff0087ffffff7900ffff7e0039ffff
+ffb20088ffff0024fbfffff934007fffffffffffffffffffffffffffffffffffffffffff
+ffffffac000000000053ffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffffff
+ffffffffffffffffffffffffffffffffffffffff5300000000006efdffffffffffffffff
+ffffffffffffffffffffffffffff0079ffffffffffffffff0079ffc400ffffffffffff00
+88ffff0079ffc400ffffffffffff0088ffff0079ffffff7900ffffff0070ffffffff7f00
+ffff3226ffffffffff3200ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0079ffffffffffffffff0079ffc400ffff
+ffffffff0088ffff0079ffc400ffffffffffff0088ffff0079ffffff7900ffff7b00ffff
+ffffff0078ffc600bdffffffffc2007dffffffffffffffffffffffffffffffffffffffff
+ffffffffffac000000000053ffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fffff
+ffffffffffffffffffffffffffffffffffffffff510000000000b0ffffffffffffffffff
+ffffffffffffffffffffffffffffff0079ffffffffffffffff0079ff7800000000000000
+0072ffff0079ff78000000000000000072ffff0079ffffff7900ffffff007affffffff79
+00ffff007cffffffffff7f00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff0079ffffffffffffffff0079ff780000
+00000000000072ffff0079ff78000000000000000072ffff0079ffffff7900ffff7900ff
+ffffffff0079ff7400ffffffffffff007affffffffffffffffffffffffffffffffffffff
+ffffffffffffffae000000000051ffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007fff
+ffffffffffffffffffffffffffffffffffffffff510000000000aeffffffffffffffffff
+ffffffffffffffffffffffffffffffff0079ffffffffffffffca007fff7c006b67636363
+645ab7ffff0079ff7c006b67636363645ab7ffff0079ffffff7900ffffff0079ffffffff
+7900ffff0079ffffffffff7a00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0079ffffffffffffffca007fff7c00
+6b67636363645ab7ffff0079ff7c006b67636363645ab7ffff0079ffffff7900ffff7900
+ffffffffff0079ff7800ffffffffffff0079ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffae000000000051ffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000007f
+ffffffffffffffffffffffffffffffffffffffff510000000000aeffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0079ffffffffffffff7200f4ff7e00ffffffff
+ffffffffffff0079ff7e00ffffffffffffffffffff0079ffffff7900ffffff0079ffffff
+ff7900ffff0072ffffffffff7600ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0079ffffffffffffff7200f4ff7e
+00ffffffffffffffffffff0079ff7e00ffffffffffffffffffff0079ffffff7900ffff79
+00ffffffffff0079ff7d00ffffffffffff007affffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffae000000000051ffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+7fffffffffffffffffffffffffffffffffffffff520000000000aeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff007bffffffffffffca002ffffff30086ffff
+ffffff82c9ffff0079fff30086ffffffffff82c9ffff007fffffff7900ffffff0079ffff
+ffff7900ffff6100ffffffffff0500ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff007bffffffffffffca002fffff
+f30086ffffffffff82c9ffff0079fff30086ffffffffff82c9ffff007fffffff7900ffff
+7900ffffffffff0079fff30086ffffffff8e007effffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffae000000000051ffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+007fffffffffffffff3e41ffffffffffffffffd3470000000000aeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff007effffffffff900000f7ffffff2a0092
+ffffd93400e1ffff0079ffff2a0092ffffd93400e1ffff0046ffffff7900ffffff0079ff
+ffffff7900ffffb4003ed9ffd73f0000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007effffffffff900000f7ff
+ffff2a0092ffffd93400e1ffff0079ffff2a0092ffffd93400e1ffff0046ffffff7900ff
+ff7900ffffffffff0079ffff2a0092ffff9000007effffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffae000000000051ffffffffffffffff413effffffff
+ffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00007ffffffffffffffc000051ffffffffffffc6000000000000aeffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffe00000000000000001eb3ffffffffff2b
+0000000000a3fffffe006fffffff2b0000000000a3ffffff2f000075ff6f00fefffe006f
+ffffffff6f00feffffa8000000002b3400ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffe00000000000000001eb3ff
+ffffffff2b0000000000a3fffffe006fffffff2b0000000000a3ffffff2f000075ff6f00
+feff6f00fefffffffe006fffffff2c0000000064007dffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffae000000000051ffffffffffff510000fcffff
+ffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000007fffffffffffff9100000051ffffffffc6000000000000aeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff6c64656464655daeffffffffffffff
+ffad5d6271eeffffffff5db3ffffffffad5d6271eefffffffffb6f54b1ffb35dffffff5d
+b3ffffffffb35dfffffffff571606dff9000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff6c64656464655daeffff
+ffffffffffffad5d6271eeffffffff5db3ffffffffad5d6271eefffffffffb6f54b1ffb3
+5dffffb35dffffffffff5db3ffffffffaf5e5cbaff0075ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffae000000000051ffffffff5100000091ff
+ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000007fffffffffffff450000000051ffffc7000000000000abffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffff7007fffffffffff361effffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff7600ffffffffffc900b2ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffae000000000051ffff510000000045
+ffffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000007ffffffffffffd0000000000005fcf00000000003ef7ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff1f0092ffffff4a00b6ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffaf003ed8ffffc90023ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffae000000000058580000000000
+00fdffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763190000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000007fffffffffff8800000000000000000000000039ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffc41a000000000067ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff68000000000018c4ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffae00000000000000000000
+000088ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787631900
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000007fffffffffff08000000000000000000000038ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffaf5f646eefffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffff071645eacffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffae0000000000000000
+00000008ffffffffffffffff000000007fffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000007fffffffffc9000000000000000000000047ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb9000000000000
+0000000000c9ffffffffffffff000000007fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763
+19000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000007fffffffff760000000000000000000000c8ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600000000000
+00000000000076ffffffffffffff000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787
+6319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000007fffffffff09000000000000000000000000c6ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff500000000000
+0000000000000009ffffffffffffff000000007fffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87
+876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000007fffffffc90000000000000000000000000000c5ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff500000000000
+000000000000000000c9ffffffffffff000000007fffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff
+87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000007fffffff76000000000000000000000000000000c5ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff500000000000
+0000000000000000000076ffffffffffff000000007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffff
+ff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000007fffffff0900000000000000000000000000000000c1ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb3e0000000000
+000000000000000000000009ffffffffffff000000007fffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffff
+ffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000007fffffc7000000000000000000000000000000000000
+c2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc71600000000
+00000000000000000000000000c7ffffffffff000000007fffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ff
+ffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000007fffff760000000000000000000000000000003470
+a7fdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff08131
+000000000000000000000000000076ffffffffff000000007fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787
+ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000007fffff080000000000000000000000003181f0ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffba62000000000000000000000008ffffffffff000000007fffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff87
+87ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000007fff8e0000000000000000000062baffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffb7620000000000000000008fffffffff000000007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff
+8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff0000000082ff420000000000003181f3fcffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffb76200000000000043ffffffff000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffff
+ff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000008bff0000000064b9ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffb67234000000f7ffffff000000007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effff
+ffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000000094a11e76bcffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffff6861e82ffffff000000007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001eff
+ffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000008cffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff040000007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001e
+ffffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00000000020f060302020303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+03030303030303030303030303030303030303030203060703040b000000007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000
+1effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffd0000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000
+001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff77720000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00
+00001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000074ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
+0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff726f74747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+747474747474747474747474747474747474747474747474747474747474747474747474
+7474747474747474747474747474747474747474747474747474747474747474747463ba
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff87828bffffffffffffffffffc57787ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff8777c5ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffc000000bbffffffffffffffff720000fcffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffb000070ffffffff
+ffffffffffffffffffffffffffffff6c86ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff6c86ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00000002fcffffffffffffff7f0000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa00007bffffff
+ffffffffffffffffffffffffffffff450076ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff450076ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff0000000087ffffffffffffff7f0000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f5ffffff
+ffffffffffffffffffffffffffffffff00007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00007fffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff0000030000c9ffffffffffff7f0000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000081ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000081ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff0000781f003effffffffffff7f0000ffffffffffff
+fffffe908680c7ffffffffffffffffffffffffc480868efeffffffffffffffffffffffff
+ffffffffffffffc7808980c4fffffffffffbfbfffffffffffffffffffffff5ffffffffff
+ffffffffffc4808980c7ffffffffffffffff050083fffffffffffffffd9086868efeffff
+fffffffffffffffffffc8e8680c4ffffffffffffff050083ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00009b98000080ffffffffff7f0000ffffffffff
+ffcb3a00000000000982ffffffffff800011ff4e000000000681ffffffffffffffffffff
+ffffffffffffbb0300000000003fcbffffffba000045ffffffffffffbb000043fffc0300
+80ffffffff4a000000000002bbfffffffb06020000000003fbffffff4a00000000000682
+fffffffffffb030098d200000000003ad1fffffb06020000000003fbffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763190000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00008aff360007ffffffffff7f0000ffffffff
+ffbb00000000000000000047ffffffff7c00044300000000000000c5ffffffffffffffff
+ffffffffffff49000000000000000000bbffffffaf000049ffffffffc6000030ffffff00
+007cffffff490000000000000000c5fffffb00000000000000fcffc20000000000000000
+0047ffffffffff00003d040000000000003afffffb00000000000000fbffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787631900
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000080ffc100004dffffffff7f0000ffffff
+fff901000036c4fffb7a0500007fffffff7f00000042ffffff4500003bffffffffffffff
+ffffffffffffbb000034c5fffffb7d000000f9ffffff430000bcffffff3f0000c0ffffff
+00007fffffc100004afffffb7f00002cffffff797700003c8375ffff3c00007dfbffffc5
+3500007fffffffff00000000b9ffffba000000c2ffff797700003c8375ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87876319
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00007fffff7f0000bcffffff7f0000ffff
+ffff8e000080fffffffffff5080007ffffff7f00003affffffffff3f0000ffffffffffff
+ffffffffffffff01004affffffffffffc000008efffffffb000003ffff4a0000b5ffffff
+ff00007fffff780005ffffffffff770067ffffffffff03008bffffff8b0000c0ffffffff
+ffff4a0006ffffffff000000b6ffffffffba000079ffffffff03008bffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff878763
+19000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00007ffffff7000001faffff7f0000ff
+ffffff400004faffffffffffff7d0000c5ffff7f0000c5ffffffffff850000ffffffffff
+ffffffffffffffc50004ffffffffffffffff7f0040ffffffffb300005ec8000040ffffff
+ffff00007fffff84000056fffffffffff8ffffffffffff00007fffffff40007fffffffff
+ffffffff0400c5ffffff00003effffffffffff00007fffffffff00007fffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff8787
+6319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00007fffffffb2000086ffff7f0000
+ffffffff000077fffffffffffffffc000079ffff7f0000ffffffffffff7f0000ffffffff
+ffffffffffffffff7900000a01000000000008010000ffffffffff7c0000000038ffffff
+ffffff00007ffffff6000000020777c9ffffffffffffffff00007fffffff000001080000
+000000010a000079ffffff000084ffffffffffff00007fffffffff00007fffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff87
+876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00007fffffffff450000c8ff7f00
+00ffffffff000080ffffffffffffffff00007fffff7f0000ffffffffffff7f0000ffff7f
+000000000000007fff7f00000000000000000000000000fdffffffffff45000000c9ffff
+ffffffff00007fffffffae0000000000000983fdffffffffff00007fffffff0000000000
+000000000000000073ffffff00007fffffffffffff00007fffffffff00007fffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffffff
+87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00007ffffffffffd03003cff89
+0000ffffffff000080ffffffffffffffff00007fffff7f0000ffffffffffff7f0000ffff
+700000000000000070ff7f00007e7e797979797979797577ffffffffffff4c000041ffff
+ffffffffff00007ffffffffff67900000000000000c2ffffffff00007fffffff00003e89
+797979797979797a68bcffffff00007fffffffffffff00007fffffffff00007fffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffffff
+ff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00007fffffffffff7900009f
+9b0000ffffffff00007bffffffffffffffff00007affff7f0000ffffffffffff7f0000ff
+ffbc687a7979797a68bcff7a0005ffffffffffffffffffffffffffffffff83000000004b
+ffffffffffff00007fffffffffffffffbb793900000038ffffffff00007fffffff000089
+ffffffffffffffffffffffffffff00007fffffffffffff00007fffffffff00007fffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ffff
+ffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00007fffffffffffff3700
+237c0000ffffffff3a0006feffffffffffff830000bfffff7f0000ffffffffffff7f0000
+ffffffffffffffffffffffffbf000086ffffffffffffffb9baffffffffffbd00004a4800
+00bdffffffffff00007ffffff47dc7ffffffffffff450000ffffffff00007fffffff3a00
+08ffffffffffffffff8ff2fdffffff00007fffffffffffff00007fffffffff00007fffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787ff
+ffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00007fffffffffffffc3
+0000080000ffffffff8a000087fffffffffffd0c0004ffffff7f0000ffffffffffff7f00
+00ffffffffffffffffffffffffff040000c2ffffffffffc0000040ffffffff010000ffff
+390000c6ffffffff00007ffff90a0038ffffffffffff890000ffffffff000085ffffff8a
+00004dffffffffffff470000bcffffff00007fffffffffffff00007fffffffff000085ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff8787
+ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00007fffffffffffff
+ff8100000000fffffffff70000003fcdffff850b000079ffffff7f0000ffffffffffff7f
+0000ffffffffffffffffffffffffff7900000088ffffff88000000bcffffff490000b6ff
+ffc300003cffffffff00007fffff7700003eceffffff8b02007dffffffff000049ffffff
+f90000003dceffffce3d000034ffffffff00007fffffffffffff00007fffffffff000049
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff87
+87ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00007fffffffffff
+fffff800000000ffffffffffb30000000003000000003effffffff7f0000ffffffffffff
+7f0000ffffffffffffffffffffffffffff3e0000000100010000003fffffff8200007eff
+ffffff7d000082ffffff00007ffffff505000000030000000000f8ffffffff0000000005
+f7ffb300000000030300000000bfffffffff00007fffffffffffff00007fffffffff0000
+000004faffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffffff
+8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffd000073ffffffff
+ffffffffb1000000fdffffffffffc23100000000000176ffffffffff730000fdffffffff
+ff730000fdffffffffffffffffffffffffffff760100000000000176ffffffa400003eff
+ffffffffff3e0000a4fffd000073fffffff94100000000000031beffffffffffae000000
+0077ffffc23100000000000031c1fffffffffd000073fffffffffffd000073ffffffffae
+00000000fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effffff
+ff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7867bcffffff
+ffffffffffff7d7378fffffffffffffffff5827872bcffffffffffffffbc6778ffffffff
+ffffbc6778ffffffffffffffffffffffffffffffffffbc727b72bcfffffffffe78697cff
+ffffffffffffff7c6978ffff7867bcfffffffffff482787882f5fffffffffffffffff481
+7869bbfffffffff582787882f5ffffffffffffff7867bcffffffffffff7867bcffffffff
+fff4827478ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001effff
+ffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001eff
+ffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000001e
+ffffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000
+1effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000
+001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00
+00001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
+0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff7f0000001effffffff8787ffffffff87876319000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff810000001effffffff8787ffffffff87876319000005ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff820000001effffffff8787ffffffff8787631500000005000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000003000000001effffffff8787ffffffff8787741a000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000001effffffff8787ffffffff8787eefffb01000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000001effffffff8787ffffffff8787ffffe6371c1e1e1e1e
+1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e
+1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e
+1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e
+1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e
+1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e
+1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e
+1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e
+1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e
+1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e
+1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e
+1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e
+1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e
+1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e
+1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e
+1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e
+1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e
+1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e
+1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e
+1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e
+1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c38ffffffff8787ffffffff87ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff8787ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff8787ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff8787ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff8787ff6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e876e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 109 495 573
+%%EOF
diff --git a/doc/user/states.gif b/doc/user/states.gif
new file mode 100644
index 0000000000..cd0799ea2e
--- /dev/null
+++ b/doc/user/states.gif
Binary files differ
diff --git a/doc/user/states.png b/doc/user/states.png
new file mode 100644
index 0000000000..26d8b7784a
--- /dev/null
+++ b/doc/user/states.png
Binary files differ
diff --git a/doc/user/task.t b/doc/user/task.t
new file mode 100644
index 0000000000..bd3e296828
--- /dev/null
+++ b/doc/user/task.t
@@ -0,0 +1,1770 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@chapter Task Manager
+
+@cindex tasks
+
+@section Introduction
+
+The task manager provides a comprehensive set of directives to
+create, delete, and administer tasks. The directives provided
+by the task manager are:
+
+@itemize @bullet
+@item @code{@value{DIRPREFIX}task_create} - Create a task
+@item @code{@value{DIRPREFIX}task_ident} - Get ID of a task
+@item @code{@value{DIRPREFIX}task_start} - Start a task
+@item @code{@value{DIRPREFIX}task_restart} - Restart a task
+@item @code{@value{DIRPREFIX}task_delete} - Delete a task
+@item @code{@value{DIRPREFIX}task_suspend} - Suspend a task
+@item @code{@value{DIRPREFIX}task_resume} - Resume a task
+@item @code{@value{DIRPREFIX}task_is_suspended} - Determine if a task is suspended
+@item @code{@value{DIRPREFIX}task_set_priority} - Set task priority
+@item @code{@value{DIRPREFIX}task_mode} - Change current task's mode
+@item @code{@value{DIRPREFIX}task_get_note} - Get task notepad entry
+@item @code{@value{DIRPREFIX}task_set_note} - Set task notepad entry
+@item @code{@value{DIRPREFIX}task_wake_after} - Wake up after interval
+@item @code{@value{DIRPREFIX}task_wake_when} - Wake up when specified
+@item @code{@value{DIRPREFIX}task_variable_add} - Associate per task variable
+@item @code{@value{DIRPREFIX}task_variable_get} - Obtain value of a a per task variable
+@item @code{@value{DIRPREFIX}task_variable_delete} - Remove per task variable
+@end itemize
+
+@section Background
+
+@subsection Task Definition
+
+@cindex task, definition
+
+Many definitions of a task have been proposed in computer literature.
+Unfortunately, none of these definitions encompasses all facets of the
+concept in a manner which is operating system independent. Several of the
+more common definitions are provided to enable each user to select a
+definition which best matches their own experience and understanding of the
+task concept:
+
+@itemize @bullet
+@item a "dispatchable" unit.
+
+@item an entity to which the processor is allocated.
+
+@item an atomic unit of a real-time, multiprocessor system.
+
+@item single threads of execution which concurrently compete for resources.
+
+@item a sequence of closely related computations which can execute
+concurrently with other computational sequences.
+
+@end itemize
+
+From RTEMS' perspective, a task is the smallest thread of
+execution which can compete on its own for system resources. A
+task is manifested by the existence of a task control block
+(TCB).
+
+@subsection Task Control Block
+
+The Task Control Block (TCB) is an RTEMS defined data structure
+which contains all the information that is pertinent to the
+execution of a task. During system initialization, RTEMS
+reserves a TCB for each task configured. A TCB is allocated
+upon creation of the task and is returned to the TCB free list
+upon deletion of the task.
+
+The TCB's elements are modified as a result of system calls made
+by the application in response to external and internal stimuli.
+TCBs are the only RTEMS internal data structure that can be
+accessed by an application via user extension routines. The TCB
+contains a task's name, ID, current priority, current and
+starting states, execution mode, set of notepad locations, TCB
+user extension pointer, scheduling control structures, as well
+as data required by a blocked task.
+
+A task's context is stored in the TCB when a task switch occurs.
+When the task regains control of the processor, its context is
+restored from the TCB. When a task is restarted, the initial
+state of the task is restored from the starting context area in
+the task's TCB.
+
+@subsection Task States
+
+@cindex task states
+
+A task may exist in one of the following five states:
+
+@itemize @bullet
+@item @b{executing} - Currently scheduled to the CPU
+@item @b{ready} - May be scheduled to the CPU
+@item @b{blocked} - Unable to be scheduled to the CPU
+@item @b{dormant} - Created task that is not started
+@item @b{non-existent} - Uncreated or deleted task
+@end itemize
+
+An active task may occupy the executing, ready, blocked or
+dormant state, otherwise the task is considered non-existent.
+One or more tasks may be active in the system simultaneously.
+Multiple tasks communicate, synchronize, and compete for system
+resources with each other via system calls. The multiple tasks
+appear to execute in parallel, but actually each is dispatched
+to the CPU for periods of time determined by the RTEMS
+scheduling algorithm. The scheduling of a task is based on its
+current state and priority.
+
+@subsection Task Priority
+
+@cindex task priority
+@cindex priority, task
+@findex rtems_task_priority
+
+A task's priority determines its importance in relation to the
+other tasks executing on the same processor. RTEMS supports 255
+levels of priority ranging from 1 to 255. The data type
+@code{@value{DIRPREFIX}task_priority} is used to store task
+priorities.
+
+Tasks of numerically
+smaller priority values are more important tasks than tasks of
+numerically larger priority values. For example, a task at
+priority level 5 is of higher privilege than a task at priority
+level 10. There is no limit to the number of tasks assigned to
+the same priority.
+
+Each task has a priority associated with it at all times. The
+initial value of this priority is assigned at task creation
+time. The priority of a task may be changed at any subsequent
+time.
+
+Priorities are used by the scheduler to determine which ready
+task will be allowed to execute. In general, the higher the
+logical priority of a task, the more likely it is to receive
+processor execution time.
+
+@subsection Task Mode
+
+@cindex task mode
+@findex rtems_task_mode
+
+A task's execution mode is a combination of the following
+four components:
+
+@itemize @bullet
+@item preemption
+@item ASR processing
+@item timeslicing
+@item interrupt level
+@end itemize
+
+It is used to modify RTEMS' scheduling process and to alter the
+execution environment of the task. The data type
+@code{@value{DIRPREFIX}task_mode} is used to manage the task
+execution mode.
+
+@cindex preemption
+
+The preemption component allows a task to determine when control of the
+processor is relinquished. If preemption is disabled
+(@code{@value{RPREFIX}NO_PREEMPT}), the task will retain control of the
+processor as long as it is in the executing state -- even if a higher
+priority task is made ready. If preemption is enabled
+(@code{@value{RPREFIX}PREEMPT}) and a higher priority task is made ready,
+then the processor will be taken away from the current task immediately and
+given to the higher priority task.
+
+@cindex timeslicing
+
+The timeslicing component is used by the RTEMS scheduler to determine how
+the processor is allocated to tasks of equal priority. If timeslicing is
+enabled (@code{@value{RPREFIX}TIMESLICE}), then RTEMS will limit the amount
+of time the task can execute before the processor is allocated to another
+ready task of equal priority. The length of the timeslice is application
+dependent and specified in the Configuration Table. If timeslicing is
+disabled (@code{@value{RPREFIX}NO_TIMESLICE}), then the task will be
+allowed to execute until a task of higher priority is made ready. If
+@code{@value{RPREFIX}NO_PREEMPT} is selected, then the timeslicing
+component is ignored by the scheduler.
+
+The asynchronous signal processing component is used to determine when
+received signals are to be processed by the task.
+If signal processing is enabled (@code{@value{RPREFIX}ASR}), then signals
+sent to the task will be processed the next time the task executes. If
+signal processing is disabled (@code{@value{RPREFIX}NO_ASR}), then all
+signals received by the task will remain posted until signal processing is
+enabled. This component affects only tasks which have established a
+routine to process asynchronous signals.
+
+@cindex interrupt level, task
+
+The interrupt level component is used to determine which
+interrupts will be enabled when the task is executing.
+@code{@value{RPREFIX}INTERRUPT_LEVEL(n)}
+specifies that the task will execute at interrupt level n.
+
+@itemize @bullet
+@item @code{@value{RPREFIX}PREEMPT} - enable preemption (default)
+@item @code{@value{RPREFIX}NO_PREEMPT} - disable preemption
+@item @code{@value{RPREFIX}NO_TIMESLICE} - disable timeslicing (default)
+@item @code{@value{RPREFIX}TIMESLICE} - enable timeslicing
+@item @code{@value{RPREFIX}ASR} - enable ASR processing (default)
+@item @code{@value{RPREFIX}NO_ASR} - disable ASR processing
+@item @code{@value{RPREFIX}INTERRUPT_LEVEL(0)} - enable all interrupts (default)
+@item @code{@value{RPREFIX}INTERRUPT_LEVEL(n)} - execute at interrupt level n
+@end itemize
+
+The set of default modes may be selected by specifying the
+@code{@value{RPREFIX}DEFAULT_MODES} constant.
+
+@subsection Accessing Task Arguments
+
+@cindex task arguments
+@cindex task prototype
+
+All RTEMS tasks are invoked with a single argument which is
+specified when they are started or restarted. The argument is
+commonly used to communicate startup information to the task.
+The simplest manner in which to define a task which accesses it
+argument is:
+
+@ifset is-C
+@findex rtems_task
+
+@example
+rtems_task user_task(
+ rtems_task_argument argument
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure User_Task (
+ Argument : in RTEMS.Task_Argument_Ptr
+);
+@end example
+@end ifset
+
+Application tasks requiring more information may view this
+single argument as an index into an array of parameter blocks.
+
+@subsection Floating Point Considerations
+
+@cindex floating point
+
+Creating a task with the @code{@value{RPREFIX}FLOATING_POINT} attribute
+flag results
+in additional memory being allocated for the TCB to store the state of the
+numeric coprocessor during task switches. This additional memory is
+@b{NOT} allocated for @code{@value{RPREFIX}NO_FLOATING_POINT} tasks. Saving
+and restoring the context of a @code{@value{RPREFIX}FLOATING_POINT} task
+takes longer than that of a @code{@value{RPREFIX}NO_FLOATING_POINT} task
+because of the relatively large amount of time required for the numeric
+coprocessor to save or restore its computational state.
+
+Since RTEMS was designed specifically for embedded military applications
+which are floating point intensive, the executive is optimized to avoid
+unnecessarily saving and restoring the state of the numeric coprocessor.
+The state of the numeric coprocessor is only saved when a
+@code{@value{RPREFIX}FLOATING_POINT} task is dispatched and that task was
+not the last task to utilize the coprocessor. In a system with only one
+@code{@value{RPREFIX}FLOATING_POINT} task, the state of the numeric
+coprocessor will never be saved or restored.
+
+Although the overhead imposed by @code{@value{RPREFIX}FLOATING_POINT} tasks
+is minimal, some applications may wish to completely avoid the overhead
+associated with @code{@value{RPREFIX}FLOATING_POINT} tasks and still
+utilize a numeric coprocessor. By preventing a task from being preempted
+while performing a sequence of floating point operations, a
+@code{@value{RPREFIX}NO_FLOATING_POINT} task can utilize the numeric
+coprocessor without incurring the overhead of a
+@code{@value{RPREFIX}FLOATING_POINT} context switch. This approach also
+avoids the allocation of a floating point context area. However, if this
+approach is taken by the application designer, NO tasks should be created
+as @code{@value{RPREFIX}FLOATING_POINT} tasks. Otherwise, the floating
+point context will not be correctly maintained because RTEMS assumes that
+the state of the numeric coprocessor will not be altered by
+@code{@value{RPREFIX}NO_FLOATING_POINT} tasks.
+
+If the supported processor type does not have hardware floating
+capabilities or a standard numeric coprocessor, RTEMS will not provide
+built-in support for hardware floating point on that processor. In this
+case, all tasks are considered @code{@value{RPREFIX}NO_FLOATING_POINT}
+whether created as @code{@value{RPREFIX}FLOATING_POINT} or
+@code{@value{RPREFIX}NO_FLOATING_POINT} tasks. A floating point emulation
+software library must be utilized for floating point operations.
+
+On some processors, it is possible to disable the floating point unit
+dynamically. If this capability is supported by the target processor, then
+RTEMS will utilize this capability to enable the floating point unit only
+for tasks which are created with the @code{@value{RPREFIX}FLOATING_POINT}
+attribute. The consequence of a @code{@value{RPREFIX}NO_FLOATING_POINT}
+task attempting to access the floating point unit is CPU dependent but will
+generally result in an exception condition.
+
+@subsection Per Task Variables
+
+@cindex per task variables
+
+Per task variables are used to support global variables whose value
+may be unique to a task. After indicating that a variable should be
+treated as private (i.e. per-task) the task can access and modify the
+variable, but the modifications will not appear to other tasks, and
+other tasks' modifications to that variable will not affect the value
+seen by the task. This is accomplished by saving and restoring the
+variable's value each time a task switch occurs to or from the calling task.
+
+The value seen by other tasks, including those which have not added the
+variable to their set and are thus accessing the variable as a common
+location shared among tasks, can not be affected by a task once it has
+added a variable to its local set. Changes made to the variable by
+other tasks will not affect the value seen by a task which has added the
+variable to its private set.
+
+This feature can be used when a routine is to be spawned repeatedly as
+several independent tasks. Although each task will have its own stack,
+and thus separate stack variables, they will all share the same static and
+global variables. To make a variable not shareable (i.e. a "global" variable
+that is specific to a single task), the tasks can call
+@code{rtems_task_variable_add} to make a separate copy of the variable
+for each task, but all at the same physical address.
+
+Task variables increase the context switch time to and from the
+tasks that own them so it is desirable to minimize the number of
+task variables. One efficient method is to have a single task
+variable that is a pointer to a dynamically allocated structure
+containing the task's private "global" data.
+
+A critical point with per-task variables is that each task must separately
+request that the same global variable is per-task private.
+
+@subsection Building a Task Attribute Set
+
+@cindex task attributes, building
+
+In general, an attribute set is built by a bitwise OR of the
+desired components. The set of valid task attribute components
+is listed below:
+
+@itemize @bullet
+@item @code{@value{RPREFIX}NO_FLOATING_POINT} - does not use coprocessor (default)
+@item @code{@value{RPREFIX}FLOATING_POINT} - uses numeric coprocessor
+@item @code{@value{RPREFIX}LOCAL} - local task (default)
+@item @code{@value{RPREFIX}GLOBAL} - global task
+@end itemize
+
+Attribute values are specifically designed to be mutually
+exclusive, therefore bitwise OR and addition operations are
+equivalent as long as each attribute appears exactly once in the
+component list. A component listed as a default is not required
+to appear in the component list, although it is a good
+programming practice to specify default components. If all
+defaults are desired, then @code{@value{RPREFIX}DEFAULT_ATTRIBUTES} should be used.
+
+This example demonstrates the attribute_set parameter needed to
+create a local task which utilizes the numeric coprocessor. The
+attribute_set parameter could be @code{@value{RPREFIX}FLOATING_POINT} or
+@code{@value{RPREFIX}LOCAL @value{OR} @value{RPREFIX}FLOATING_POINT}.
+The attribute_set parameter can be set to
+@code{@value{RPREFIX}FLOATING_POINT} because @code{@value{RPREFIX}LOCAL} is the default for all created
+tasks. If the task were global and used the numeric
+coprocessor, then the attribute_set parameter would be
+@code{@value{RPREFIX}GLOBAL @value{OR} @value{RPREFIX}FLOATING_POINT}.
+
+@subsection Building a Mode and Mask
+
+@cindex task mode, building
+
+In general, a mode and its corresponding mask is built by a
+bitwise OR of the desired components. The set of valid mode
+constants and each mode's corresponding mask constant is
+listed below:
+
+@ifset use-ascii
+@itemize @bullet
+@item @code{@value{RPREFIX}PREEMPT} is masked by
+@code{@value{RPREFIX}PREEMPT_MASK} and enables preemption
+
+@item @code{@value{RPREFIX}NO_PREEMPT} is masked by
+@code{@value{RPREFIX}PREEMPT_MASK} and disables preemption
+
+@item @code{@value{RPREFIX}NO_TIMESLICE} is masked by
+@code{@value{RPREFIX}TIMESLICE_MASK} and disables timeslicing
+
+@item @code{@value{RPREFIX}TIMESLICE} is masked by
+@code{@value{RPREFIX}TIMESLICE_MASK} and enables timeslicing
+
+@item @code{@value{RPREFIX}ASR} is masked by
+@code{@value{RPREFIX}ASR_MASK} and enables ASR processing
+
+@item @code{@value{RPREFIX}NO_ASR} is masked by
+@code{@value{RPREFIX}ASR_MASK} and disables ASR processing
+
+@item @code{@value{RPREFIX}INTERRUPT_LEVEL(0)} is masked by
+@code{@value{RPREFIX}INTERRUPT_MASK} and enables all interrupts
+
+@item @code{@value{RPREFIX}INTERRUPT_LEVEL(n)} is masked by
+@code{@value{RPREFIX}INTERRUPT_MASK} and sets interrupts level n
+@end itemize
+@end ifset
+
+@ifset use-tex
+@sp 1
+@c this is temporary
+@itemize @bullet
+@item @code{@value{RPREFIX}PREEMPT} is masked by
+@code{@value{RPREFIX}PREEMPT_MASK} and enables preemption
+
+@item @code{@value{RPREFIX}NO_PREEMPT} is masked by
+@code{@value{RPREFIX}PREEMPT_MASK} and disables preemption
+
+@item @code{@value{RPREFIX}NO_TIMESLICE} is masked by
+@code{@value{RPREFIX}TIMESLICE_MASK} and disables timeslicing
+
+@item @code{@value{RPREFIX}TIMESLICE} is masked by
+@code{@value{RPREFIX}TIMESLICE_MASK} and enables timeslicing
+
+@item @code{@value{RPREFIX}ASR} is masked by
+@code{@value{RPREFIX}ASR_MASK} and enables ASR processing
+
+@item @code{@value{RPREFIX}NO_ASR} is masked by
+@code{@value{RPREFIX}ASR_MASK} and disables ASR processing
+
+@item @code{@value{RPREFIX}INTERRUPT_LEVEL(0)} is masked by
+@code{@value{RPREFIX}INTERRUPT_MASK} and enables all interrupts
+
+@item @code{@value{RPREFIX}INTERRUPT_LEVEL(n)} is masked by
+@code{@value{RPREFIX}INTERRUPT_MASK} and sets interrupts level n
+
+@end itemize
+
+@tex
+@end tex
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=3 WIDTH="80%" BORDER=2>
+<TR><TD ALIGN=center><STRONG>Mode Constant</STRONG></TD>
+ <TD ALIGN=center><STRONG>Mask Constant</STRONG></TD>
+ <TD ALIGN=center><STRONG>Description</STRONG></TD></TR>
+<TR><TD ALIGN=center>@value{RPREFIX}PREEMPT</TD>
+ <TD ALIGN=center>@value{RPREFIX}PREEMPT_MASK</TD>
+ <TD ALIGN=center>enables preemption</TD></TR>
+<TR><TD ALIGN=center>@value{RPREFIX}NO_PREEMPT</TD>
+ <TD ALIGN=center>@value{RPREFIX}PREEMPT_MASK</TD>
+ <TD ALIGN=center>disables preemption</TD></TR>
+<TR><TD ALIGN=center>@value{RPREFIX}NO_TIMESLICE</TD>
+ <TD ALIGN=center>@value{RPREFIX}TIMESLICE_MASK</TD>
+ <TD ALIGN=center>disables timeslicing</TD></TR>
+<TR><TD ALIGN=center>@value{RPREFIX}TIMESLICE</TD>
+ <TD ALIGN=center>@value{RPREFIX}TIMESLICE_MASK</TD>
+ <TD ALIGN=center>enables timeslicing</TD></TR>
+<TR><TD ALIGN=center>@value{RPREFIX}ASR</TD>
+ <TD ALIGN=center>@value{RPREFIX}ASR_MASK</TD>
+ <TD ALIGN=center>enables ASR processing</TD></TR>
+<TR><TD ALIGN=center>@value{RPREFIX}NO_ASR</TD>
+ <TD ALIGN=center>@value{RPREFIX}ASR_MASK</TD>
+ <TD ALIGN=center>disables ASR processing</TD></TR>
+<TR><TD ALIGN=center>@value{RPREFIX}INTERRUPT_LEVEL(0)</TD>
+ <TD ALIGN=center>@value{RPREFIX}INTERRUPT_MASK</TD>
+ <TD ALIGN=center>enables all interrupts</TD></TR>
+<TR><TD ALIGN=center>@value{RPREFIX}INTERRUPT_LEVEL(n)</TD>
+ <TD ALIGN=center>@value{RPREFIX}INTERRUPT_MASK</TD>
+ <TD ALIGN=center>sets interrupts level n</TD></TR>
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+
+Mode values are specifically designed to be mutually exclusive, therefore
+bitwise OR and addition operations are equivalent as long as each mode
+appears exactly once in the component list. A mode component listed as a
+default is not required to appear in the mode component list, although it
+is a good programming practice to specify default components. If all
+defaults are desired, the mode @code{@value{RPREFIX}DEFAULT_MODES} and the
+mask @code{@value{RPREFIX}ALL_MODE_MASKS} should be used.
+
+The following example demonstrates the mode and mask parameters used with
+the @code{@value{DIRPREFIX}task_mode}
+directive to place a task at interrupt level 3 and make it
+non-preemptible. The mode should be set to
+@code{@value{RPREFIX}INTERRUPT_LEVEL(3) @value{OR}
+@value{RPREFIX}NO_PREEMPT} to indicate the desired preemption mode and
+interrupt level, while the mask parameter should be set to
+@code{@value{RPREFIX}INTERRUPT_MASK @value{OR}
+@value{RPREFIX}NO_PREEMPT_MASK} to indicate that the calling task's
+interrupt level and preemption mode are being altered.
+
+@section Operations
+
+@subsection Creating Tasks
+
+The @code{@value{DIRPREFIX}task_create}
+directive creates a task by allocating a task
+control block, assigning the task a user-specified name,
+allocating it a stack and floating point context area, setting a
+user-specified initial priority, setting a user-specified
+initial mode, and assigning it a task ID. Newly created tasks
+are initially placed in the dormant state. All RTEMS tasks
+execute in the most privileged mode of the processor.
+
+@subsection Obtaining Task IDs
+
+When a task is created, RTEMS generates a unique task ID and
+assigns it to the created task until it is deleted. The task ID
+may be obtained by either of two methods. First, as the result
+of an invocation of the @code{@value{DIRPREFIX}task_create}
+directive, the task ID is
+stored in a user provided location. Second, the task ID may be
+obtained later using the @code{@value{DIRPREFIX}task_ident}
+directive. The task ID is
+used by other directives to manipulate this task.
+
+@subsection Starting and Restarting Tasks
+
+The @code{@value{DIRPREFIX}task_start}
+directive is used to place a dormant task in the
+ready state. This enables the task to compete, based on its
+current priority, for the processor and other system resources.
+Any actions, such as suspension or change of priority, performed
+on a task prior to starting it are nullified when the task is
+started.
+
+With the @code{@value{DIRPREFIX}task_start}
+directive the user specifies the task's
+starting address and argument. The argument is used to
+communicate some startup information to the task. As part of
+this directive, RTEMS initializes the task's stack based upon
+the task's initial execution mode and start address. The
+starting argument is passed to the task in accordance with the
+target processor's calling convention.
+
+The @code{@value{DIRPREFIX}task_restart}
+directive restarts a task at its initial
+starting address with its original priority and execution mode,
+but with a possibly different argument. The new argument may be
+used to distinguish between the original invocation of the task
+and subsequent invocations. The task's stack and control block
+are modified to reflect their original creation values.
+Although references to resources that have been requested are
+cleared, resources allocated by the task are NOT automatically
+returned to RTEMS. A task cannot be restarted unless it has
+previously been started (i.e. dormant tasks cannot be
+restarted). All restarted tasks are placed in the ready state.
+
+@subsection Suspending and Resuming Tasks
+
+The @code{@value{DIRPREFIX}task_suspend}
+directive is used to place either the caller or
+another task into a suspended state. The task remains suspended
+until a @code{@value{DIRPREFIX}task_resume}
+directive is issued. This implies that a
+task may be suspended as well as blocked waiting either to
+acquire a resource or for the expiration of a timer.
+
+The @code{@value{DIRPREFIX}task_resume}
+directive is used to remove another task from
+the suspended state. If the task is not also blocked, resuming
+it will place it in the ready state, allowing it to once again
+compete for the processor and resources. If the task was
+blocked as well as suspended, this directive clears the
+suspension and leaves the task in the blocked state.
+
+Suspending a task which is already suspended or resuming a
+task which is not suspended is considered an error.
+The @code{@value{DIRPREFIX}task_is_suspended} can be used to
+determine if a task is currently suspended.
+
+@subsection Delaying the Currently Executing Task
+
+The @code{@value{DIRPREFIX}task_wake_after} directive creates a sleep timer
+which allows a task to go to sleep for a specified interval. The task is
+blocked until the delay interval has elapsed, at which time the task is
+unblocked. A task calling the @code{@value{DIRPREFIX}task_wake_after}
+directive with a delay
+interval of @code{@value{RPREFIX}YIELD_PROCESSOR} ticks will yield the
+processor to any other ready task of equal or greater priority and remain
+ready to execute.
+
+The @code{@value{DIRPREFIX}task_wake_when}
+directive creates a sleep timer which allows
+a task to go to sleep until a specified date and time. The
+calling task is blocked until the specified date and time has
+occurred, at which time the task is unblocked.
+
+@subsection Changing Task Priority
+
+The @code{@value{DIRPREFIX}task_set_priority}
+directive is used to obtain or change the
+current priority of either the calling task or another task. If
+the new priority requested is
+@code{@value{RPREFIX}CURRENT_PRIORITY} or the task's
+actual priority, then the current priority will be returned and
+the task's priority will remain unchanged. If the task's
+priority is altered, then the task will be scheduled according
+to its new priority.
+
+The @code{@value{DIRPREFIX}task_restart}
+directive resets the priority of a task to its
+original value.
+
+@subsection Changing Task Mode
+
+The @code{@value{DIRPREFIX}task_mode}
+directive is used to obtain or change the current
+execution mode of the calling task. A task's execution mode is
+used to enable preemption, timeslicing, ASR processing, and to
+set the task's interrupt level.
+
+The @code{@value{DIRPREFIX}task_restart}
+directive resets the mode of a task to its
+original value.
+
+@subsection Notepad Locations
+
+RTEMS provides sixteen notepad locations for each task. Each
+notepad location may contain a note consisting of four bytes of
+information. RTEMS provides two directives,
+@code{@value{DIRPREFIX}task_set_note} and
+@code{@value{DIRPREFIX}task_get_note}, that enable a user
+to access and change the
+notepad locations. The @code{@value{DIRPREFIX}task_set_note}
+directive enables the user
+to set a task's notepad entry to a specified note. The
+@code{@value{DIRPREFIX}task_get_note}
+directive allows the user to obtain the note
+contained in any one of the sixteen notepads of a specified task.
+
+@subsection Task Deletion
+
+RTEMS provides the @code{@value{DIRPREFIX}task_delete}
+directive to allow a task to
+delete itself or any other task. This directive removes all
+RTEMS references to the task, frees the task's control block,
+removes it from resource wait queues, and deallocates its stack
+as well as the optional floating point context. The task's name
+and ID become inactive at this time, and any subsequent
+references to either of them is invalid. In fact, RTEMS may
+reuse the task ID for another task which is created later in the
+application.
+
+Unexpired delay timers (i.e. those used by
+@code{@value{DIRPREFIX}task_wake_after} and
+@code{@value{DIRPREFIX}task_wake_when}) and
+timeout timers associated with the task are
+automatically deleted, however, other resources dynamically
+allocated by the task are NOT automatically returned to RTEMS.
+Therefore, before a task is deleted, all of its dynamically
+allocated resources should be deallocated by the user. This may
+be accomplished by instructing the task to delete itself rather
+than directly deleting the task. Other tasks may instruct a
+task to delete itself by sending a "delete self" message, event,
+or signal, or by restarting the task with special arguments
+which instruct the task to delete itself.
+
+@section Directives
+
+This section details the task manager's directives. A
+subsection is dedicated to each of this manager's directives and
+describes the calling sequence, related constants, usage, and
+status codes.
+
+@page
+
+@subsection TASK_CREATE - Create a task
+
+@cindex create a task
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_task_create
+@example
+rtems_status_code rtems_task_create(
+ rtems_name name,
+ rtems_task_priority initial_priority,
+ rtems_unsigned32 stack_size,
+ rtems_mode initial_modes,
+ rtems_attribute attribute_set,
+ rtems_id *id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Task_Create (
+ Name : in RTEMS.Name;
+ Initial_Priority : in RTEMS.Task_Priority;
+ Stack_Size : in RTEMS.Unsigned32;
+ Initial_Modes : in RTEMS.Mode;
+ Attribute_Set : in RTEMS.Attribute;
+ ID : out RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - task created successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{id} is NULL@*
+@code{@value{RPREFIX}INVALID_NAME} - invalid task name@*
+@code{@value{RPREFIX}INVALID_PRIORITY} - invalid task priority@*
+@code{@value{RPREFIX}MP_NOT_CONFIGURED} - multiprocessing not configured@*
+@code{@value{RPREFIX}TOO_MANY} - too many tasks created@*
+@code{@value{RPREFIX}UNSATISFIED} - not enough memory for stack/FP context@*
+@code{@value{RPREFIX}TOO_MANY} - too many global objects
+
+@subheading DESCRIPTION:
+This directive creates a task which resides on the local node.
+It allocates and initializes a TCB, a stack, and an optional
+floating point context area. The mode parameter contains values
+which sets the task's initial execution mode. The
+@code{@value{RPREFIX}FLOATING_POINT} attribute should be
+specified if the created task
+is to use a numeric coprocessor. For performance reasons, it is
+recommended that tasks not using the numeric coprocessor should
+specify the @code{@value{RPREFIX}NO_FLOATING_POINT} attribute.
+If the @code{@value{RPREFIX}GLOBAL}
+attribute is specified, the task can be accessed from remote
+nodes. The task id, returned in id, is used in other task
+related directives to access the task. When created, a task is
+placed in the dormant state and can only be made ready to
+execute using the directive @code{@value{DIRPREFIX}task_start}.
+
+@subheading NOTES:
+This directive will not cause the calling task to be preempted.
+
+Valid task priorities range from a high of 1 to a low of 255.
+
+If the requested stack size is less than
+@code{@value{RPREFIX}MINIMUM_STACK_SIZE} bytes, then RTEMS
+will use @code{@value{RPREFIX}MINIMUM_STACK_SIZE} as the
+stack size. The value of @code{@value{RPREFIX}MINIMUM_STACK_SIZE}
+is processor dependent.
+Application developers should consider the stack usage of the
+device drivers when calculating the stack size required for
+tasks which utilize the driver.
+
+The following task attribute constants are defined by RTEMS:
+
+@itemize @bullet
+@item @code{@value{RPREFIX}NO_FLOATING_POINT} - does not use coprocessor (default)
+@item @code{@value{RPREFIX}FLOATING_POINT} - uses numeric coprocessor
+@item @code{@value{RPREFIX}LOCAL} - local task (default)
+@item @code{@value{RPREFIX}GLOBAL} - global task
+@end itemize
+
+The following task mode constants are defined by RTEMS:
+
+@itemize @bullet
+@item @code{@value{RPREFIX}PREEMPT} - enable preemption (default)
+@item @code{@value{RPREFIX}NO_PREEMPT} - disable preemption
+@item @code{@value{RPREFIX}NO_TIMESLICE} - disable timeslicing (default)
+@item @code{@value{RPREFIX}TIMESLICE} - enable timeslicing
+@item @code{@value{RPREFIX}ASR} - enable ASR processing (default)
+@item @code{@value{RPREFIX}NO_ASR} - disable ASR processing
+@item @code{@value{RPREFIX}INTERRUPT_LEVEL(0)} - enable all interrupts (default)
+@item @code{@value{RPREFIX}INTERRUPT_LEVEL(n)} - execute at interrupt level n
+@end itemize
+
+The interrupt level portion of the task execution mode
+supports a maximum of 256 interrupt levels. These levels are
+mapped onto the interrupt levels actually supported by the
+target processor in a processor dependent fashion.
+
+Tasks should not be made global unless remote tasks must
+interact with them. This avoids the system overhead incurred by
+the creation of a global task. When a global task is created,
+the task's name and id must be transmitted to every node in the
+system for insertion in the local copy of the global object
+table.
+
+The total number of global objects, including tasks, is limited
+by the maximum_global_objects field in the Configuration Table.
+
+@page
+
+@subsection TASK_IDENT - Get ID of a task
+
+@cindex get ID of a task
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_task_ident
+@example
+rtems_status_code rtems_task_ident(
+ rtems_name name,
+ rtems_unsigned32 node,
+ rtems_id *id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Task_Ident (
+ Name : in RTEMS.Name;
+ Node : in RTEMS.Node;
+ ID : out RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - task identified successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{id} is NULL@*
+@code{@value{RPREFIX}INVALID_NAME} - invalid task name@*
+@code{@value{RPREFIX}INVALID_NODE} - invalid node id
+
+@subheading DESCRIPTION:
+This directive obtains the task id associated with the task name
+specified in name. A task may obtain its own id by specifying
+@code{@value{RPREFIX}SELF} or its own task name in name. If the task name is not
+unique, then the task id returned will match one of the tasks
+with that name. However, this task id is not guaranteed to
+correspond to the desired task. The task id, returned in id, is
+used in other task related directives to access the task.
+
+@subheading NOTES:
+This directive will not cause the running task to be preempted.
+
+If node is @code{@value{RPREFIX}SEARCH_ALL_NODES}, all nodes are searched with the
+local node being searched first. All other nodes are searched
+with the lowest numbered node searched first.
+
+If node is a valid node number which does not represent the
+local node, then only the tasks exported by the designated node
+are searched.
+
+This directive does not generate activity on remote nodes. It
+accesses only the local copy of the global object table.
+
+@page
+
+@subsection TASK_START - Start a task
+
+@cindex starting a task
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_task_start
+@example
+rtems_status_code rtems_task_start(
+ rtems_id id,
+ rtems_task_entry entry_point,
+ rtems_task_argument argument
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Task_Start (
+ ID : in RTEMS.ID;
+ Entry_Point : in System.Address;
+ Argument : in RTEMS.Task_Argument_PTR;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - ask started successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - invalid task entry point@*
+@code{@value{RPREFIX}INVALID_ID} - invalid task id@*
+@code{@value{RPREFIX}INCORRECT_STATE} - task not in the dormant state@*
+@code{@value{RPREFIX}ILLEGAL_ON_REMOTE_OBJECT} - cannot start remote task
+
+@subheading DESCRIPTION:
+This directive readies the task, specified by tid, for execution
+based on the priority and execution mode specified when the task
+was created. The starting address of the task is given in
+entry_point. The task's starting argument is contained in
+argument. This argument can be a single value or used as an
+index into an array of parameter blocks.
+
+@subheading NOTES:
+The calling task will be preempted if its preemption mode is
+enabled and the task being started has a higher priority.
+
+Any actions performed on a dormant task such as suspension or
+change of priority are nullified when the task is initiated via
+the @code{@value{DIRPREFIX}task_start} directive.
+
+@page
+
+@subsection TASK_RESTART - Restart a task
+
+@cindex restarting a task
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_task_restart
+@example
+rtems_status_code rtems_task_restart(
+ rtems_id id,
+ rtems_task_argument argument
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Task_Restart (
+ ID : in RTEMS.ID;
+ Argument : in RTEMS.Task_Argument_PTR;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - task restarted successfully@*
+@code{@value{RPREFIX}INVALID_ID} - task id invalid@*
+@code{@value{RPREFIX}INCORRECT_STATE} - task never started@*
+@code{@value{RPREFIX}ILLEGAL_ON_REMOTE_OBJECT} - cannot restart remote task
+
+@subheading DESCRIPTION:
+This directive resets the task specified by id to begin
+execution at its original starting address. The task's priority
+and execution mode are set to the original creation values. If
+the task is currently blocked, RTEMS automatically makes the
+task ready. A task can be restarted from any state, except the
+dormant state.
+
+The task's starting argument is contained in argument. This
+argument can be a single value or an index into an array of
+parameter blocks. This new argument may be used to distinguish
+between the initial @code{@value{DIRPREFIX}task_start}
+of the task and any ensuing calls
+to @code{@value{DIRPREFIX}task_restart}
+of the task. This can be beneficial in deleting
+a task. Instead of deleting a task using
+the @code{@value{DIRPREFIX}task_delete}
+directive, a task can delete another task by restarting that
+task, and allowing that task to release resources back to RTEMS
+and then delete itself.
+
+@subheading NOTES:
+If id is @code{@value{RPREFIX}SELF}, the calling task will be restarted and will not
+return from this directive.
+
+The calling task will be preempted if its preemption mode is
+enabled and the task being restarted has a higher priority.
+
+The task must reside on the local node, even if the task was
+created with the @code{@value{RPREFIX}GLOBAL} option.
+
+@page
+
+@subsection TASK_DELETE - Delete a task
+
+@cindex deleting a task
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_task_delete
+@example
+rtems_status_code rtems_task_delete(
+ rtems_id id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Task_Delete (
+ ID : in RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - task restarted successfully@*
+@code{@value{RPREFIX}INVALID_ID} - task id invalid@*
+@code{@value{RPREFIX}ILLEGAL_ON_REMOTE_OBJECT} - cannot restart remote task
+
+@subheading DESCRIPTION:
+This directive deletes a task, either the calling task or
+another task, as specified by id. RTEMS stops the execution of
+the task and reclaims the stack memory, any allocated delay or
+timeout timers, the TCB, and, if the task is @code{@value{RPREFIX}FLOATING_POINT}, its
+floating point context area. RTEMS does not reclaim the
+following resources: region segments, partition buffers,
+semaphores, timers, or rate monotonic periods.
+
+@subheading NOTES:
+A task is responsible for releasing its resources back to RTEMS
+before deletion. To insure proper deallocation of resources, a
+task should not be deleted unless it is unable to execute or
+does not hold any RTEMS resources. If a task holds RTEMS
+resources, the task should be allowed to deallocate its
+resources before deletion. A task can be directed to release
+its resources and delete itself by restarting it with a special
+argument or by sending it a message, an event, or a signal.
+
+Deletion of the current task (@code{@value{RPREFIX}SELF}) will force RTEMS to select
+another task to execute.
+
+When a global task is deleted, the task id must be transmitted
+to every node in the system for deletion from the local copy of
+the global object table.
+
+The task must reside on the local node, even if the task was
+created with the @code{@value{RPREFIX}GLOBAL} option.
+
+@page
+
+@subsection TASK_SUSPEND - Suspend a task
+
+@cindex suspending a task
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_task_suspend
+@example
+rtems_status_code rtems_task_suspend(
+ rtems_id id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Task_Suspend (
+ ID : in RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - task restarted successfully@*
+@code{@value{RPREFIX}INVALID_ID} - task id invalid@*
+@code{@value{RPREFIX}ALREADY_SUSPENDED} - task already suspended
+
+@subheading DESCRIPTION:
+This directive suspends the task specified by id from further
+execution by placing it in the suspended state. This state is
+additive to any other blocked state that the task may already be
+in. The task will not execute again until another task issues
+the @code{@value{DIRPREFIX}task_resume}
+directive for this task and any blocked state
+has been removed.
+
+@subheading NOTES:
+The requesting task can suspend itself by specifying @code{@value{RPREFIX}SELF} as id.
+In this case, the task will be suspended and a successful
+return code will be returned when the task is resumed.
+
+Suspending a global task which does not reside on the local node
+will generate a request to the remote node to suspend the
+specified task.
+
+If the task specified by id is already suspended, then the
+@code{@value{RPREFIX}ALREADY_SUSPENDED} status code is returned.
+
+@page
+
+@subsection TASK_RESUME - Resume a task
+
+@cindex resuming a task
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_task_resume
+@example
+rtems_status_code rtems_task_resume(
+ rtems_id id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Task_Resume (
+ ID : in RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - task restarted successfully@*
+@code{@value{RPREFIX}INVALID_ID} - task id invalid@*
+@code{@value{RPREFIX}INCORRECT_STATE} - task not suspended
+
+@subheading DESCRIPTION:
+This directive removes the task specified by id from the
+suspended state. If the task is in the ready state after the
+suspension is removed, then it will be scheduled to run. If the
+task is still in a blocked state after the suspension is
+removed, then it will remain in that blocked state.
+
+@subheading NOTES:
+The running task may be preempted if its preemption mode is
+enabled and the local task being resumed has a higher priority.
+
+Resuming a global task which does not reside on the local node
+will generate a request to the remote node to resume the
+specified task.
+
+If the task specified by id is not suspended, then the
+@code{@value{RPREFIX}INCORRECT_STATE} status code is returned.
+
+@page
+
+@subsection TASK_IS_SUSPENDED - Determine if a task is Suspended
+
+@cindex is task suspended
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_task_is_suspended
+@example
+rtems_status_code rtems_task_is_suspended(
+ rtems_id id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Task_Is_Suspended (
+ ID : in RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - task is not suspended@*
+@code{@value{RPREFIX}ALREADY_SUSPENDED} - task is not suspended@*
+@code{@value{RPREFIX}INVALID_ID} - task id invalid@*
+@code{@value{RPREFIX}ILLEGAL_ON_REMOTE_OBJECT} - not supported on remote tasks
+
+@subheading DESCRIPTION:
+
+This directive returns a status code indicating whether or
+not the specified task is currently suspended.
+
+@subheading NOTES:
+
+This operation is not currently supported on remote tasks.
+
+@page
+
+@subsection TASK_SET_PRIORITY - Set task priority
+
+@findex rtems_task_set_priority
+@cindex current task priority
+@cindex set task priority
+@cindex get task priority
+@cindex obtain task priority
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+rtems_status_code rtems_task_set_priority(
+ rtems_id id,
+ rtems_task_priority new_priority,
+ rtems_task_priority *old_priority
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Task_Set_Priority (
+ ID : in RTEMS.ID;
+ New_Priority : in RTEMS.Task_Priority;
+ Old_Priority : out RTEMS.Task_Priority;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - task priority set successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid task id@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - invalid return argument pointer@*
+@code{@value{RPREFIX}INVALID_PRIORITY} - invalid task priority
+
+@subheading DESCRIPTION:
+This directive manipulates the priority of the task specified by
+id. An id of @code{@value{RPREFIX}SELF} is used to indicate
+the calling task. When new_priority is not equal to
+@code{@value{RPREFIX}CURRENT_PRIORITY}, the specified
+task's previous priority is returned in old_priority. When
+new_priority is @code{@value{RPREFIX}CURRENT_PRIORITY},
+the specified task's current
+priority is returned in old_priority. Valid priorities range
+from a high of 1 to a low of 255.
+
+@subheading NOTES:
+The calling task may be preempted if its preemption mode is
+enabled and it lowers its own priority or raises another task's
+priority.
+
+Setting the priority of a global task which does not reside on
+the local node will generate a request to the remote node to
+change the priority of the specified task.
+
+If the task specified by id is currently holding any binary
+semaphores which use the priority inheritance algorithm, then
+the task's priority cannot be lowered immediately. If the
+task's priority were lowered immediately, then priority
+inversion results. The requested lowering of the task's
+priority will occur when the task has released all priority
+inheritance binary semaphores. The task's priority can be
+increased regardless of the task's use of priority inheritance
+binary semaphores.
+
+@page
+
+@subsection TASK_MODE - Change the current task mode
+
+@cindex current task mode
+@cindex set task mode
+@cindex get task mode
+@cindex set task preemption mode
+@cindex get task preemption mode
+@cindex obtain task mode
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_task_mode
+@example
+rtems_status_code rtems_task_mode(
+ rtems_mode mode_set,
+ rtems_mode mask,
+ rtems_mode *previous_mode_set
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Task_Mode (
+ Mode_Set : in RTEMS.Mode;
+ Mask : in RTEMS.Mode;
+ Previous_Mode_Set : in RTEMS.Mode;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - task mode set successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{previous_mode_set} is NULL
+
+@subheading DESCRIPTION:
+This directive manipulates the execution mode of the calling
+task. A task's execution mode enables and disables preemption,
+timeslicing, asynchronous signal processing, as well as
+specifying the current interrupt level. To modify an execution
+mode, the mode class(es) to be changed must be specified in the
+mask parameter and the desired mode(s) must be specified in the
+mode parameter.
+
+@subheading NOTES:
+The calling task will be preempted if it enables preemption and
+a higher priority task is ready to run.
+
+Enabling timeslicing has no effect if preemption is disabled. For
+a task to be timesliced, that task must have both preemption and
+timeslicing enabled.
+
+A task can obtain its current execution mode, without modifying
+it, by calling this directive with a mask value of
+@code{@value{RPREFIX}CURRENT_MODE}.
+
+To temporarily disable the processing of a valid ASR, a task
+should call this directive with the @code{@value{RPREFIX}NO_ASR}
+indicator specified in mode.
+
+The set of task mode constants and each mode's corresponding
+mask constant is provided in the following table:
+
+@ifset use-ascii
+@itemize @bullet
+@item @code{@value{RPREFIX}PREEMPT} is masked by
+@code{@value{RPREFIX}PREEMPT_MASK} and enables preemption
+
+@item @code{@value{RPREFIX}NO_PREEMPT} is masked by
+@code{@value{RPREFIX}PREEMPT_MASK} and disables preemption
+
+@item @code{@value{RPREFIX}NO_TIMESLICE} is masked by
+@code{@value{RPREFIX}TIMESLICE_MASK} and disables timeslicing
+
+@item @code{@value{RPREFIX}TIMESLICE} is masked by
+@code{@value{RPREFIX}TIMESLICE_MASK} and enables timeslicing
+
+@item @code{@value{RPREFIX}ASR} is masked by
+@code{@value{RPREFIX}ASR_MASK} and enables ASR processing
+
+@item @code{@value{RPREFIX}NO_ASR} is masked by
+@code{@value{RPREFIX}ASR_MASK} and disables ASR processing
+
+@item @code{@value{RPREFIX}INTERRUPT_LEVEL(0)} is masked by
+@code{@value{RPREFIX}INTERRUPT_MASK} and enables all interrupts
+
+@item @code{@value{RPREFIX}INTERRUPT_LEVEL(n)} is masked by
+@code{@value{RPREFIX}INTERRUPT_MASK} and sets interrupts level n
+
+@end itemize
+@end ifset
+
+@ifset use-tex
+@sp 1
+@c this is temporary
+@itemize @bullet
+@item @code{@value{RPREFIX}PREEMPT} is masked by
+@code{@value{RPREFIX}PREEMPT_MASK} and enables preemption
+
+@item @code{@value{RPREFIX}NO_PREEMPT} is masked by
+@code{@value{RPREFIX}PREEMPT_MASK} and disables preemption
+
+@item @code{@value{RPREFIX}NO_TIMESLICE} is masked by
+@code{@value{RPREFIX}TIMESLICE_MASK} and disables timeslicing
+
+@item @code{@value{RPREFIX}TIMESLICE} is masked by
+@code{@value{RPREFIX}TIMESLICE_MASK} and enables timeslicing
+
+@item @code{@value{RPREFIX}ASR} is masked by
+@code{@value{RPREFIX}ASR_MASK} and enables ASR processing
+
+@item @code{@value{RPREFIX}NO_ASR} is masked by
+@code{@value{RPREFIX}ASR_MASK} and disables ASR processing
+
+@item @code{@value{RPREFIX}INTERRUPT_LEVEL(0)} is masked by
+@code{@value{RPREFIX}INTERRUPT_MASK} and enables all interrupts
+
+@item @code{@value{RPREFIX}INTERRUPT_LEVEL(n)} is masked by
+@code{@value{RPREFIX}INTERRUPT_MASK} and sets interrupts level n
+
+@end itemize
+
+@tex
+@end tex
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=3 WIDTH="80%" BORDER=2>
+<TR><TD ALIGN=center><STRONG>Mode Constant</STRONG></TD>
+ <TD ALIGN=center><STRONG>Mask Constant</STRONG></TD>
+ <TD ALIGN=center><STRONG>Description</STRONG></TD></TR>
+<TR><TD ALIGN=center>@value{RPREFIX}PREEMPT</TD>
+ <TD ALIGN=center>@value{RPREFIX}PREEMPT_MASK</TD>
+ <TD ALIGN=center>enables preemption</TD></TR>
+<TR><TD ALIGN=center>@value{RPREFIX}NO_PREEMPT</TD>
+ <TD ALIGN=center>@value{RPREFIX}PREEMPT_MASK</TD>
+ <TD ALIGN=center>disables preemption</TD></TR>
+<TR><TD ALIGN=center>@value{RPREFIX}NO_TIMESLICE</TD>
+ <TD ALIGN=center>@value{RPREFIX}TIMESLICE_MASK</TD>
+ <TD ALIGN=center>disables timeslicing</TD></TR>
+<TR><TD ALIGN=center>@value{RPREFIX}TIMESLICE</TD>
+ <TD ALIGN=center>@value{RPREFIX}TIMESLICE_MASK</TD>
+ <TD ALIGN=center>enables timeslicing</TD></TR>
+<TR><TD ALIGN=center>@value{RPREFIX}ASR</TD>
+ <TD ALIGN=center>@value{RPREFIX}ASR_MASK</TD>
+ <TD ALIGN=center>enables ASR processing</TD></TR>
+<TR><TD ALIGN=center>@value{RPREFIX}NO_ASR</TD>
+ <TD ALIGN=center>@value{RPREFIX}ASR_MASK</TD>
+ <TD ALIGN=center>disables ASR processing</TD></TR>
+<TR><TD ALIGN=center>@value{RPREFIX}INTERRUPT_LEVEL(0)</TD>
+ <TD ALIGN=center>@value{RPREFIX}INTERRUPT_MASK</TD>
+ <TD ALIGN=center>enables all interrupts</TD></TR>
+<TR><TD ALIGN=center>@value{RPREFIX}INTERRUPT_LEVEL(n)</TD>
+ <TD ALIGN=center>@value{RPREFIX}INTERRUPT_MASK</TD>
+ <TD ALIGN=center>sets interrupts level n</TD></TR>
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+
+@page
+
+@subsection TASK_GET_NOTE - Get task notepad entry
+
+@cindex get task notepad entry
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_task_get_note
+@example
+rtems_status_code rtems_task_get_note(
+ rtems_id id,
+ rtems_unsigned32 notepad,
+ rtems_unsigned32 *note
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Task_Get_Note (
+ ID : in RTEMS.ID;
+ Notepad : in RTEMS.Notepad_Index;
+ Note : out RTEMS.Unsigned32;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - note obtained successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{note} is NULL@*
+@code{@value{RPREFIX}INVALID_ID} - invalid task id@*
+@code{@value{RPREFIX}INVALID_NUMBER} - invalid notepad location
+
+@subheading DESCRIPTION:
+This directive returns the note contained in the notepad
+location of the task specified by id.
+
+@subheading NOTES:
+This directive will not cause the running task to be preempted.
+
+If id is set to @code{@value{RPREFIX}SELF},
+the calling task accesses its own notepad.
+
+@c This version of the paragraph avoids the overfull hbox error.
+@c The constants NOTEPAD_0 through NOTEPAD_15 can be used to access the
+@c sixteen notepad locations.
+
+The sixteen notepad locations can be accessed using the constants
+@code{@value{RPREFIX}NOTEPAD_0} through @code{@value{RPREFIX}NOTEPAD_15}.
+
+Getting a note of a global task which does not reside on the
+local node will generate a request to the remote node to obtain
+the notepad entry of the specified task.
+
+@page
+
+@subsection TASK_SET_NOTE - Set task notepad entry
+
+@cindex set task notepad entry
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_task_set_note
+@example
+rtems_status_code rtems_task_set_note(
+ rtems_id id,
+ rtems_unsigned32 notepad,
+ rtems_unsigned32 note
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Task_Set_Note (
+ ID : in RTEMS.ID;
+ Notepad : in RTEMS.Notepad_Index;
+ Note : in RTEMS.Unsigned32;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - task's note set successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid task id@*
+@code{@value{RPREFIX}INVALID_NUMBER} - invalid notepad location
+
+@subheading DESCRIPTION:
+This directive sets the notepad entry for the task specified by
+id to the value note.
+
+@subheading NOTES:
+If id is set to @code{@value{RPREFIX}SELF}, the calling
+task accesses its own notepad locations.
+
+This directive will not cause the running task to be preempted.
+
+@c This version of the paragraph avoids the overfull hbox error.
+@c The constants NOTEPAD_0 through NOTEPAD_15 can be used to access the
+@c sixteen notepad locations.
+
+The sixteen notepad locations can be accessed using the constants
+@code{@value{RPREFIX}NOTEPAD_0} through @code{@value{RPREFIX}NOTEPAD_15}.
+
+Setting a notepad location of a global task which does not
+reside on the local node will generate a request to the remote
+node to set the specified notepad entry.
+
+@page
+
+@subsection TASK_WAKE_AFTER - Wake up after interval
+
+@cindex delay a task for an interval
+@cindex wake up after an interval
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_task_wake_after
+@example
+rtems_status_code rtems_task_wake_after(
+ rtems_interval ticks
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Task_Wake_After (
+ Ticks : in RTEMS.Interval;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - always successful
+
+@subheading DESCRIPTION:
+This directive blocks the calling task for the specified number
+of system clock ticks. When the requested interval has elapsed,
+the task is made ready. The @code{@value{DIRPREFIX}clock_tick}
+directive automatically updates the delay period.
+
+@subheading NOTES:
+Setting the system date and time with the
+@code{@value{DIRPREFIX}clock_set} directive
+has no effect on a @code{@value{DIRPREFIX}task_wake_after} blocked task.
+
+A task may give up the processor and remain in the ready state
+by specifying a value of @code{@value{RPREFIX}YIELD_PROCESSOR} in ticks.
+
+The maximum timer interval that can be specified is the maximum
+value which can be represented by the rtems_unsigned32 type.
+
+A clock tick is required to support the functionality of this directive.
+
+@page
+
+@subsection TASK_WAKE_WHEN - Wake up when specified
+
+@cindex delay a task until a wall time
+@cindex wake up at a wall time
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_task_wake_when
+@example
+rtems_status_code rtems_task_wake_when(
+ rtems_time_of_day *time_buffer
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Task_Wake_When (
+ Time_Buffer : in RTEMS.Time_Of_Day;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - awakened at date/time successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{time_buffer} is NULL@*
+@code{@value{RPREFIX}INVALID_TIME_OF_DAY} - invalid time buffer@*
+@code{@value{RPREFIX}NOT_DEFINED} - system date and time is not set
+
+@subheading DESCRIPTION:
+This directive blocks a task until the date and time specified
+in time_buffer. At the requested date and time, the calling
+task will be unblocked and made ready to execute.
+
+@subheading NOTES:
+The ticks portion of time_buffer @value{STRUCTURE} is ignored. The
+timing granularity of this directive is a second.
+
+A clock tick is required to support the functionality of this directive.
+
+@page
+
+@subsection TASK_VARIABLE_ADD - Associate per task variable
+
+@cindex per-task variable
+@cindex task private variable
+@cindex task private data
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_task_variable_add
+@example
+rtems_status_code rtems_task_variable_add(
+ rtems_id tid,
+ void **task_variable,
+ void (*dtor)(void *)
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+type Task_Variable_Dtor is access procedure (
+ Argument : in RTEMS.Address;
+);
+
+procedure Task_Variable_Add (
+ ID : in RTEMS.ID;
+ Task_Variable : in RTEMS.Address;
+ Dtor : in RTEMS.Task_Variable_Dtor;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - per task variable added successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{task_variable} is NULL@*
+@code{@value{RPREFIX}INVALID_ID} - invalid task id@*
+@code{@value{RPREFIX}NO_MEMORY} - invalid task id@*
+@code{@value{RPREFIX}ILLEGAL_ON_REMOTE_OBJECT} - not supported on remote tasks@*
+
+@subheading DESCRIPTION:
+This directive adds the memory location specified by the
+ptr argument to the context of the given task. The variable will
+then be private to the task. The task can access and modify the
+variable, but the modifications will not appear to other tasks, and
+other tasks' modifications to that variable will not affect the value
+seen by the task. This is accomplished by saving and restoring the
+variable's value each time a task switch occurs to or from the calling task.
+If the dtor argument is non-NULL it specifies the address of a `destructor'
+function which will be called when the task is deleted. The argument
+passed to the destructor function is the task's value of the variable.
+
+@subheading NOTES:
+
+Task variables increase the context switch time to and from the
+tasks that own them so it is desirable to minimize the number of
+task variables. One efficient method
+is to have a single task variable that is a pointer to a dynamically
+allocated structure containing the task's private `global' data.
+In this case the destructor function could be `free'.
+
+@page
+
+@subsection TASK_VARIABLE_GET - Obtain value of a per task variable
+
+@cindex get per-task variable
+@cindex obtain per-task variable
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_task_variable_get
+@example
+rtems_status_code rtems_task_variable_get(
+ rtems_id tid,
+ void **task_variable,
+ void **task_variable_value
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Task_Variable_Get (
+ ID : in RTEMS.ID;
+ Task_Variable : out RTEMS.Address;
+ Task_Variable_Value : out RTEMS.Address;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - per task variable added successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{task_variable} is NULL@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{task_variable_value} is NULL@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{task_variable} is not found@*
+@code{@value{RPREFIX}NO_MEMORY} - invalid task id@*
+@code{@value{RPREFIX}ILLEGAL_ON_REMOTE_OBJECT} - not supported on remote tasks@*
+
+@subheading DESCRIPTION:
+This directive looks up the private value of a task variable for a
+specified task and stores that value in the location pointed to by
+the result argument. The specified task is usually not the calling
+task, which can get its private value by directly accessing the variable.
+
+@subheading NOTES:
+
+If you change memory which @code{task_variable_value} points to,
+remember to declare that memory as volatile, so that the compiler
+will optimize it correctly. In this case both the pointer
+@code{task_variable_value} and data referenced by @code{task_variable_value}
+should be considered volatile.
+
+@page
+
+@subsection TASK_VARIABLE_DELETE - Remove per task variable
+
+@cindex per-task variable
+@cindex task private variable
+@cindex task private data
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_task_variable_delete
+@example
+rtems_status_code rtems_task_variable_delete(
+ rtems_id tid,
+ void **task_variable
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Task_Variable_Delete (
+ ID : in RTEMS.ID;
+ Task_Variable : out RTEMS.Address;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - per task variable added successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid task id@*
+@code{@value{RPREFIX}NO_MEMORY} - invalid task id@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{task_variable} is NULL@*
+@code{@value{RPREFIX}ILLEGAL_ON_REMOTE_OBJECT} - not supported on remote tasks@*
+
+@subheading DESCRIPTION:
+This directive removes the given location from a task's context.
+
+@subheading NOTES:
+
+NONE
diff --git a/doc/user/timer.t b/doc/user/timer.t
new file mode 100644
index 0000000000..421fc4f032
--- /dev/null
+++ b/doc/user/timer.t
@@ -0,0 +1,729 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@chapter Timer Manager
+
+@cindex timers
+
+@section Introduction
+
+The timer manager provides support for timer
+facilities. The directives provided by the timer manager are:
+
+@itemize @bullet
+@item @code{@value{DIRPREFIX}timer_create} - Create a timer
+@item @code{@value{DIRPREFIX}timer_ident} - Get ID of a timer
+@item @code{@value{DIRPREFIX}timer_cancel} - Cancel a timer
+@item @code{@value{DIRPREFIX}timer_delete} - Delete a timer
+@item @code{@value{DIRPREFIX}timer_fire_after} - Fire timer after interval
+@item @code{@value{DIRPREFIX}timer_fire_when} - Fire timer when specified
+@item @code{@value{DIRPREFIX}timer_initiate_server} - Initiate server for task-based timers
+@item @code{@value{DIRPREFIX}timer_server_fire_after} - Fire task-based timer after interval
+@item @code{@value{DIRPREFIX}timer_server_fire_when} - Fire task-based timer when specified
+@item @code{@value{DIRPREFIX}timer_reset} - Reset an interval timer
+@end itemize
+
+
+@section Background
+
+@subsection Required Support
+
+A clock tick is required to support the functionality provided by this manager.
+
+@subsection Timers
+
+A timer is an RTEMS object which allows the
+application to schedule operations to occur at specific times in
+the future. User supplied timer service routines are invoked by
+either the @code{@value{DIRPREFIX}clock_tick} directive or
+a special Timer Server task when the timer fires. Timer service
+routines may perform any operations or directives which normally
+would be performed by the application code which invoked the
+@code{@value{DIRPREFIX}clock_tick} directive.
+
+The timer can be used to implement watchdog routines
+which only fire to denote that an application error has
+occurred. The timer is reset at specific points in the
+application to insure that the watchdog does not fire. Thus, if
+the application does not reset the watchdog timer, then the
+timer service routine will fire to indicate that the application
+has failed to reach a reset point. This use of a timer is
+sometimes referred to as a "keep alive" or a "deadman" timer.
+
+@subsection Timer Server
+
+The Timer Server task is responsible for executing the timer
+service routines associated with all task-based timers.
+This task executes at a priority higher than any RTEMS application
+task and thus can be viewed logically as the lowest priority interrupt.
+
+By providing a mechanism where timer service routines execute
+in task rather than interrupt space, the application is
+allowed a bit more flexibility in what operations a timer
+service routine can perform. For example, the Timer Server
+can be configured to have a floating point context in which case
+it would be save to perform floating point operations
+from a task-based timer. Most of the time, executing floating
+point instructions from an interrupt service routine
+is not considered safe.
+
+The Timer Server is designed to remain blocked until a
+task-based timer fires. This reduces the execution overhead
+of the Timer Server.
+
+@subsection Timer Service Routines
+
+The timer service routine should adhere to @value{LANGUAGE} calling
+conventions and have a prototype similar to the following:
+
+@ifset is-C
+@findex rtems_timer_service_routine
+@example
+rtems_timer_service_routine user_routine(
+ rtems_id timer_id,
+ void *user_data
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure User_Routine(
+ Timer_ID : in RTEMS.ID;
+ User_Data : in System.Address
+);
+@end example
+@end ifset
+
+Where the timer_id parameter is the RTEMS object ID
+of the timer which is being fired and user_data is a pointer to
+user-defined information which may be utilized by the timer
+service routine. The argument user_data may be NULL.
+
+@section Operations
+
+@subsection Creating a Timer
+
+The @code{@value{DIRPREFIX}timer_create} directive creates a timer by
+allocating a Timer Control Block (TMCB), assigning the timer a
+user-specified name, and assigning it a timer ID. Newly created
+timers do not have a timer service routine associated with them
+and are not active.
+
+@subsection Obtaining Timer IDs
+
+When a timer is created, RTEMS generates a unique
+timer ID and assigns it to the created timer until it is
+deleted. The timer ID may be obtained by either of two methods.
+First, as the result of an invocation of the
+@code{@value{DIRPREFIX}timer_create}
+directive, the timer ID is stored in a user provided location.
+Second, the timer ID may be obtained later using the
+@code{@value{DIRPREFIX}timer_ident} directive. The timer ID
+is used by other directives to manipulate this timer.
+
+@subsection Initiating an Interval Timer
+
+The @code{@value{DIRPREFIX}timer_fire_after}
+and @code{@value{DIRPREFIX}timer_server_fire_after}
+directives initiate a timer to fire a user provided
+timer service routine after the specified
+number of clock ticks have elapsed. When the interval has
+elapsed, the timer service routine will be invoked from the
+@code{@value{DIRPREFIX}clock_tick} directive if it was initiated
+by the @code{@value{DIRPREFIX}timer_fire_after} directive
+and from the Timer Server task if initiated by the
+@code{@value{DIRPREFIX}timer_server_fire_after} directive.
+
+@subsection Initiating a Time of Day Timer
+
+The @code{@value{DIRPREFIX}timer_fire_when}
+and @code{@value{DIRPREFIX}timer_server_fire_when}
+directive initiate a timer to
+fire a user provided timer service routine when the specified
+time of day has been reached. When the interval has elapsed,
+the timer service routine will be invoked from the
+@code{@value{DIRPREFIX}clock_tick} directive
+by the @code{@value{DIRPREFIX}timer_fire_when} directive
+and from the Timer Server task if initiated by the
+@code{@value{DIRPREFIX}timer_server_fire_when} directive.
+
+@subsection Canceling a Timer
+
+The @code{@value{DIRPREFIX}timer_cancel} directive is used to halt the
+specified timer. Once canceled, the timer service routine will
+not fire unless the timer is reinitiated. The timer can be
+reinitiated using the @code{@value{DIRPREFIX}timer_reset},
+@code{@value{DIRPREFIX}timer_fire_after}, and
+@code{@value{DIRPREFIX}timer_fire_when} directives.
+
+@subsection Resetting a Timer
+
+The @code{@value{DIRPREFIX}timer_reset} directive is used to restore an
+interval timer initiated by a previous invocation of
+@code{@value{DIRPREFIX}timer_fire_after} or
+@code{@value{DIRPREFIX}timer_server_fire_after} to
+its original interval length. If the
+timer has not been used or the last usage of this timer
+was by the @code{@value{DIRPREFIX}timer_fire_when}
+or @code{@value{DIRPREFIX}timer_server_fire_when}
+directive, then an error is returned. The timer service routine
+is not changed or fired by this directive.
+
+@subsection Initiating the Timer Server
+
+The @code{@value{DIRPREFIX}timer_initiate_server} directive is used to
+allocate and start the execution of the Timer Server task. The
+application can specify both the stack size and attributes of the
+Timer Server. The Timer Server executes at a priority higher than
+any application task and thus the user can expect to be preempted
+as the result of executing the @code{@value{DIRPREFIX}timer_initiate_server}
+directive.
+
+@subsection Deleting a Timer
+
+The @code{@value{DIRPREFIX}timer_delete} directive is used to delete a timer.
+If the timer is running and has not expired, the timer is
+automatically canceled. The timer's control block is returned
+to the TMCB free list when it is deleted. A timer can be
+deleted by a task other than the task which created the timer.
+Any subsequent references to the timer's name and ID are invalid.
+
+@section Directives
+
+This section details the timer manager's directives.
+A subsection is dedicated to each of this manager's directives
+and describes the calling sequence, related constants, usage,
+and status codes.
+
+@c
+@c
+@c
+@page
+@subsection TIMER_CREATE - Create a timer
+
+@cindex create a timer
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_timer_create
+@example
+rtems_status_code rtems_timer_create(
+ rtems_name name,
+ rtems_id *id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Timer_Create (
+ Name : in RTEMS.Name;
+ ID : out RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - timer created successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{id} is NULL@*
+@code{@value{RPREFIX}INVALID_NAME} - invalid timer name@*
+@code{@value{RPREFIX}TOO_MANY} - too many timers created
+
+@subheading DESCRIPTION:
+
+This directive creates a timer. The assigned timer
+id is returned in id. This id is used to access the timer with
+other timer manager directives. For control and maintenance of
+the timer, RTEMS allocates a TMCB from the local TMCB free pool
+and initializes it.
+
+@subheading NOTES:
+
+This directive will not cause the calling task to be
+preempted.
+
+@c
+@c
+@c
+@page
+@subsection TIMER_IDENT - Get ID of a timer
+
+@cindex obtain the ID of a timer
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_timer_ident
+@example
+rtems_status_code rtems_timer_ident(
+ rtems_name name,
+ rtems_id *id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Timer_Ident (
+ Name : in RTEMS.Name;
+ ID : out RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - timer identified successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{id} is NULL@*
+@code{@value{RPREFIX}INVALID_NAME} - timer name not found
+
+@subheading DESCRIPTION:
+
+This directive obtains the timer id associated with
+the timer name to be acquired. If the timer name is not unique,
+then the timer id will match one of the timers with that name.
+However, this timer id is not guaranteed to correspond to the
+desired timer. The timer id is used to access this timer in
+other timer related directives.
+
+@subheading NOTES:
+
+This directive will not cause the running task to be
+preempted.
+
+@c
+@c
+@c
+@page
+@subsection TIMER_CANCEL - Cancel a timer
+
+@cindex cancel a timer
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_timer_cancel
+@example
+rtems_status_code rtems_timer_cancel(
+ rtems_id id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Timer_Cancel (
+ ID : in RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - timer canceled successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid timer id
+
+@subheading DESCRIPTION:
+
+This directive cancels the timer id. This timer will
+be reinitiated by the next invocation of @code{@value{DIRPREFIX}timer_reset},
+@code{@value{DIRPREFIX}timer_fire_after}, or
+@code{@value{DIRPREFIX}timer_fire_when} with this id.
+
+@subheading NOTES:
+
+This directive will not cause the running task to be preempted.
+
+@c
+@c
+@c
+@page
+@subsection TIMER_DELETE - Delete a timer
+
+@cindex delete a timer
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_timer_delete
+@example
+rtems_status_code rtems_timer_delete(
+ rtems_id id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Timer_Delete (
+ ID : in RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - timer deleted successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid timer id
+
+@subheading DESCRIPTION:
+
+This directive deletes the timer specified by id. If
+the timer is running, it is automatically canceled. The TMCB
+for the deleted timer is reclaimed by RTEMS.
+
+@subheading NOTES:
+
+This directive will not cause the running task to be
+preempted.
+
+A timer can be deleted by a task other than the task
+which created the timer.
+
+@c
+@c
+@c
+@page
+@subsection TIMER_FIRE_AFTER - Fire timer after interval
+
+@cindex fire a timer after an interval
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_timer_fire_after
+@example
+rtems_status_code rtems_timer_fire_after(
+ rtems_id id,
+ rtems_interval ticks,
+ rtems_timer_service_routine_entry routine,
+ void *user_data
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Timer_Fire_After (
+ ID : in RTEMS.ID;
+ Ticks : in RTEMS.Interval;
+ Routine : in RTEMS.Timer_Service_Routine;
+ User_Data : in RTEMS.Address;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - timer initiated successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{routine} is NULL@*
+@code{@value{RPREFIX}INVALID_ID} - invalid timer id@*
+@code{@value{RPREFIX}INVALID_NUMBER} - invalid interval
+
+@subheading DESCRIPTION:
+
+This directive initiates the timer specified by id.
+If the timer is running, it is automatically canceled before
+being initiated. The timer is scheduled to fire after an
+interval ticks clock ticks has passed. When the timer fires,
+the timer service routine routine will be invoked with the
+argument user_data.
+
+@subheading NOTES:
+
+This directive will not cause the running task to be
+preempted.
+
+@c
+@c
+@c
+@page
+@subsection TIMER_FIRE_WHEN - Fire timer when specified
+
+@cindex fire a timer at wall time
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_timer_fire_when
+@example
+rtems_status_code rtems_timer_fire_when(
+ rtems_id id,
+ rtems_time_of_day *wall_time,
+ rtems_timer_service_routine_entry routine,
+ void *user_data
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Timer_Fire_When (
+ ID : in RTEMS.ID;
+ Wall_Time : in RTEMS.Time_Of_Day;
+ Routine : in RTEMS.Timer_Service_Routine;
+ User_Data : in RTEMS.Address;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - timer initiated successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{routine} is NULL@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{wall_time} is NULL@*
+@code{@value{RPREFIX}INVALID_ID} - invalid timer id@*
+@code{@value{RPREFIX}NOT_DEFINED} - system date and time is not set@*
+@code{@value{RPREFIX}INVALID_CLOCK} - invalid time of day
+
+@subheading DESCRIPTION:
+
+This directive initiates the timer specified by id.
+If the timer is running, it is automatically canceled before
+being initiated. The timer is scheduled to fire at the time of
+day specified by wall_time. When the timer fires, the timer
+service routine routine will be invoked with the argument
+user_data.
+
+@subheading NOTES:
+
+This directive will not cause the running task to be
+preempted.
+
+@c
+@c
+@c
+@page
+@subsection TIMER_INITIATE_SERVER - Initiate server for task-based timers
+
+@cindex initiate the Timer Server
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_timer_initiate_server
+@example
+rtems_status_code rtems_timer_initiate_server(
+ unsigned32 stack_size,
+ rtems_attribute attribute_set
+)
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Timer_Initiate_Server (
+ Stack_Size : in RTEMS.Unsigned32;
+ Attribute_Set : in RTEMS.Attribute;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - Timer Server initiated successfully@*
+@code{@value{RPREFIX}TOO_MANY} - too many tasks created
+
+@subheading DESCRIPTION:
+
+This directive initiates the Timer Server task. This task
+is responsible for executing all timers initiated via the
+@code{@value{DIRPREFIX}timer_server_fire_after} or
+@code{@value{DIRPREFIX}timer_server_fire_when} directives.
+
+@subheading NOTES:
+
+This directive could cause the calling task to be preempted.
+
+The Timer Server task is created using the
+@code{@value{DIRPREFIX}task_create} service and must be accounted
+for when configuring the system.
+
+Even through this directive invokes the @code{@value{DIRPREFIX}task_create}
+and @code{@value{DIRPREFIX}task_start} directives, it should only fail
+due to resource allocation problems.
+
+@c
+@c
+@c
+@page
+@subsection TIMER_SERVER_FIRE_AFTER - Fire task-based timer after interval
+
+@cindex fire task-based a timer after an interval
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_timer_server_fire_after
+@example
+rtems_status_code rtems_timer_server_fire_after(
+ rtems_id id,
+ rtems_interval ticks,
+ rtems_timer_service_routine_entry routine,
+ void *user_data
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Timer_Fire_Server_After (
+ ID : in RTEMS.ID;
+ Ticks : in RTEMS.Interval;
+ Routine : in RTEMS.Timer_Service_Routine;
+ User_Data : in RTEMS.Address;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - timer initiated successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{routine} is NULL@*
+@code{@value{RPREFIX}INVALID_ID} - invalid timer id@*
+@code{@value{RPREFIX}INVALID_NUMBER} - invalid interval@*
+@code{@value{RPREFIX}INCORRECT_STATE} - Timer Server not initiated
+
+@subheading DESCRIPTION:
+
+This directive initiates the timer specified by id and specifies
+that when it fires it will be executed by the Timer Server.
+
+If the timer is running, it is automatically canceled before
+being initiated. The timer is scheduled to fire after an
+interval ticks clock ticks has passed. When the timer fires,
+the timer service routine routine will be invoked with the
+argument user_data.
+
+@subheading NOTES:
+
+This directive will not cause the running task to be
+preempted.
+
+@c
+@c
+@c
+@page
+@subsection TIMER_SERVER_FIRE_WHEN - Fire task-based timer when specified
+
+@cindex fire a task-based timer at wall time
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_timer_server_fire_when
+@example
+rtems_status_code rtems_timer_server_fire_when(
+ rtems_id id,
+ rtems_time_of_day *wall_time,
+ rtems_timer_service_routine_entry routine,
+ void *user_data
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Timer_Fire_Server_When (
+ ID : in RTEMS.ID;
+ Wall_Time : in RTEMS.Time_Of_Day;
+ Routine : in RTEMS.Timer_Service_Routine;
+ User_Data : in RTEMS.Address;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - timer initiated successfully@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{routine} is NULL@*
+@code{@value{RPREFIX}INVALID_ADDRESS} - @code{wall_time} is NULL@*
+@code{@value{RPREFIX}INVALID_ID} - invalid timer id@*
+@code{@value{RPREFIX}NOT_DEFINED} - system date and time is not set@*
+@code{@value{RPREFIX}INVALID_CLOCK} - invalid time of day@*
+@code{@value{RPREFIX}INCORRECT_STATE} - Timer Server not initiated
+
+@subheading DESCRIPTION:
+
+This directive initiates the timer specified by id and specifies
+that when it fires it will be executed by the Timer Server.
+
+If the timer is running, it is automatically canceled before
+being initiated. The timer is scheduled to fire at the time of
+day specified by wall_time. When the timer fires, the timer
+service routine routine will be invoked with the argument
+user_data.
+
+@subheading NOTES:
+
+This directive will not cause the running task to be
+preempted.
+
+@c
+@c
+@c
+@page
+@subsection TIMER_RESET - Reset an interval timer
+
+@cindex reset a timer
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_timer_reset
+@example
+rtems_status_code rtems_timer_reset(
+ rtems_id id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Timer_Reset (
+ ID : in RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - timer reset successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid timer id@*
+@code{@value{RPREFIX}NOT_DEFINED} - attempted to reset a when or newly created timer
+
+@subheading DESCRIPTION:
+
+This directive resets the timer associated with id.
+This timer must have been previously initiated with either the
+@code{@value{DIRPREFIX}timer_fire_after} or
+@code{@value{DIRPREFIX}timer_server_fire_after}
+directive. If active the timer is canceled,
+after which the timer is reinitiated using the same interval and
+timer service routine which the original
+@code{@value{DIRPREFIX}timer_fire_after}
+@code{@value{DIRPREFIX}timer_server_fire_after}
+directive used.
+
+@subheading NOTES:
+
+If the timer has not been used or the last usage of this timer
+was by a @code{@value{DIRPREFIX}timer_fire_when} or
+@code{@value{DIRPREFIX}timer_server_fire_when}
+directive, then the @code{@value{RPREFIX}NOT_DEFINED} error is
+returned.
+
+Restarting a cancelled after timer results in the timer being
+reinitiated with its previous timer service routine and interval.
+
+This directive will not cause the running task to be preempted.
+
diff --git a/doc/user/userext.t b/doc/user/userext.t
new file mode 100644
index 0000000000..1d6308d1b1
--- /dev/null
+++ b/doc/user/userext.t
@@ -0,0 +1,727 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@chapter User Extensions Manager
+
+@cindex user extensions
+
+@section Introduction
+
+The RTEMS User Extensions Manager allows the
+application developer to augment the executive by allowing them
+to supply extension routines which are invoked at critical
+system events. The directives provided by the user extensions
+manager are:
+
+@itemize @bullet
+@item @code{@value{DIRPREFIX}extension_create} - Create an extension set
+@item @code{@value{DIRPREFIX}extension_ident} - Get ID of an extension set
+@item @code{@value{DIRPREFIX}extension_delete} - Delete an extension set
+@end itemize
+
+@section Background
+
+User extension routines are invoked when the
+following system events occur:
+
+@itemize @bullet
+@item Task creation
+@item Task initiation
+@item Task reinitiation
+@item Task deletion
+@item Task context switch
+@item Post task context switch
+@item Task begin
+@item Task exits
+@item Fatal error detection
+@end itemize
+
+These extensions are invoked as a function with
+arguments that are appropriate to the system event.
+
+@subsection Extension Sets
+
+@cindex extension set
+
+An extension set is defined as a set of routines
+which are invoked at each of the critical system events at which
+user extension routines are invoked. Together a set of these
+routines typically perform a specific functionality such as
+performance monitoring or debugger support. RTEMS is informed of
+the entry points which constitute an extension set via the
+following @value{STRUCTURE}:
+
+@findex rtems_extensions_table
+@ifset is-C
+@example
+@group
+typedef struct @{
+ rtems_task_create_extension thread_create;
+ rtems_task_start_extension thread_start;
+ rtems_task_restart_extension thread_restart;
+ rtems_task_delete_extension thread_delete;
+ rtems_task_switch_extension thread_switch;
+ rtems_task_begin_extension thread_begin;
+ rtems_task_exitted_extension thread_exitted;
+ rtems_fatal_extension fatal;
+@} rtems_extensions_table;
+@end group
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+type Extensions_Table is
+ record
+ Task_Create : RTEMS.Task_Create_Extension;
+ Task_Start : RTEMS.Task_Start_Extension;
+ Task_Restart : RTEMS.Task_Restart_Extension;
+ Task_Delete : RTEMS.Task_Delete_Extension;
+ Task_Switch : RTEMS.Task_Switch_Extension;
+ Task_Post_Switch : RTEMS.Task_Post_Switch_Extension;
+ Task_Begin : RTEMS.Task_Begin_Extension;
+ Task_Exitted : RTEMS.Task_Exitted_Extension;
+ Fatal : RTEMS.Fatal_Error_Extension;
+ end record;
+@end example
+@end ifset
+
+
+RTEMS allows the user to have multiple extension sets
+active at the same time. First, a single static extension set
+may be defined as the application's User Extension Table which
+is included as part of the Configuration Table. This extension
+set is active for the entire life of the system and may not be
+deleted. This extension set is especially important because it
+is the only way the application can provided a FATAL error
+extension which is invoked if RTEMS fails during the
+initialize_executive directive. The static extension set is
+optional and may be configured as NULL if no static extension
+set is required.
+
+Second, the user can install dynamic extensions using
+the @code{@value{DIRPREFIX}extension_create}
+directive. These extensions are RTEMS
+objects in that they have a name, an ID, and can be dynamically
+created and deleted. In contrast to the static extension set,
+these extensions can only be created and installed after the
+initialize_executive directive successfully completes execution.
+Dynamic extensions are useful for encapsulating the
+functionality of an extension set. For example, the application
+could use extensions to manage a special coprocessor, do
+performance monitoring, and to do stack bounds checking. Each
+of these extension sets could be written and installed
+independently of the others.
+
+All user extensions are optional and RTEMS places no
+naming restrictions on the user. The user extension entry points
+are copied into an internal RTEMS structure. This means the user
+does not need to keep the table after creating it, and changing the
+handler entry points dynamically in a table once created has no
+effect. Creating a table local to a function can save space in
+space limited applications.
+
+Extension switches do not effect the context switch overhead if
+no switch handler is installed.
+
+@subsection TCB Extension Area
+
+@cindex TCB extension area
+
+RTEMS provides for a pointer to a user-defined data
+area for each extension set to be linked to each task's control
+block. This set of pointers is an extension of the TCB and can
+be used to store additional data required by the user's
+extension functions. It is also possible for a user extension
+to utilize the notepad locations associated with each task
+although this may conflict with application usage of those
+particular notepads.
+
+The TCB extension is an array of pointers in the TCB. The
+index into the table can be obtained from the extension id
+returned when the extension is created:
+
+@findex rtems extensions table index
+@ifset is-C
+@example
+@group
+index = rtems_get_index(extension_id);
+@end group
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+There is currently no example for Ada.
+@end example
+@end ifset
+
+The number of pointers in the area is the same as the number of
+user extension sets configured. This allows an application to
+augment the TCB with user-defined information. For example, an
+application could implement task profiling by storing timing
+statistics in the TCB's extended memory area. When a task
+context switch is being executed, the TASK_SWITCH extension
+could read a real-time clock to calculate how long the task
+being swapped out has run as well as timestamp the starting time
+for the task being swapped in.
+
+If used, the extended memory area for the TCB should
+be allocated and the TCB extension pointer should be set at the
+time the task is created or started by either the TASK_CREATE or
+TASK_START extension. The application is responsible for
+managing this extended memory area for the TCBs. The memory may
+be reinitialized by the TASK_RESTART extension and should be
+deallocated by the TASK_DELETE extension when the task is
+deleted. Since the TCB extension buffers would most likely be
+of a fixed size, the RTEMS partition manager could be used to
+manage the application's extended memory area. The application
+could create a partition of fixed size TCB extension buffers and
+use the partition manager's allocation and deallocation
+directives to obtain and release the extension buffers.
+
+@subsection Extensions
+
+The sections that follow will contain a description
+of each extension. Each section will contain a prototype of a
+function with the appropriate calling sequence for the
+corresponding extension. The names given for the @value{LANGUAGE}
+@value{ROUTINE} and
+its arguments are all defined by the user. The names used in
+the examples were arbitrarily chosen and impose no naming
+conventions on the user.
+
+@subsubsection TASK_CREATE Extension
+
+The TASK_CREATE extension directly corresponds to the
+@code{@value{DIRPREFIX}task_create} directive. If this extension
+is defined in any
+static or dynamic extension set and a task is being created,
+then the extension routine will automatically be invoked by
+RTEMS. The extension should have a prototype similar to the
+following:
+
+@findex rtems_task_create_extension
+@findex rtems_extension
+@ifset is-C
+@example
+boolean user_task_create(
+ rtems_tcb *current_task,
+ rtems_tcb *new_task
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+function User_Task_Create (
+ Current_Task : in RTEMS.TCB_Pointer;
+ New_Task : in RTEMS.TCB_Pointer
+) returns Boolean;
+@end example
+@end ifset
+
+where @code{current_task} can be used to access the TCB for
+the currently executing task, and new_task can be used to access
+the TCB for the new task being created. This extension is
+invoked from the @code{@value{DIRPREFIX}task_create}
+directive after @code{new_task} has been
+completely initialized, but before it is placed on a ready TCB
+chain.
+
+The user extension is expected to return the boolean
+value @code{TRUE} if it successfully executed and
+@code{FALSE} otherwise. A task create user extension
+will frequently attempt to allocate resources. If this
+allocation fails, then the extension should return
+@code{FALSE} and the entire task create operation
+will fail.
+
+@subsubsection TASK_START Extension
+
+The TASK_START extension directly corresponds to the
+task_start directive. If this extension is defined in any
+static or dynamic extension set and a task is being started,
+then the extension routine will automatically be invoked by
+RTEMS. The extension should have a prototype similar to the
+following:
+
+@findex rtems_task_start_extension
+@ifset is-C
+@example
+rtems_extension user_task_start(
+ rtems_tcb *current_task,
+ rtems_tcb *started_task
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure User_Task_Start (
+ Current_Task : in RTEMS.TCB_Pointer;
+ Started_Task : in RTEMS.TCB_Pointer
+);
+@end example
+@end ifset
+
+where current_task can be used to access the TCB for
+the currently executing task, and started_task can be used to
+access the TCB for the dormant task being started. This
+extension is invoked from the task_start directive after
+started_task has been made ready to start execution, but before
+it is placed on a ready TCB chain.
+
+@subsubsection TASK_RESTART Extension
+
+The TASK_RESTART extension directly corresponds to
+the task_restart directive. If this extension is defined in any
+static or dynamic extension set and a task is being restarted,
+then the extension should have a prototype similar to the
+following:
+
+@findex rtems_task_restart_extension
+@ifset is-C
+@example
+rtems_extension user_task_restart(
+ rtems_tcb *current_task,
+ rtems_tcb *restarted_task
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure User_Task_Restart (
+ Current_Task : in RTEMS.TCB_Pointer;
+ Restarted_Task : in RTEMS.TCB_Pointer
+);
+@end example
+@end ifset
+
+where current_task can be used to access the TCB for
+the currently executing task, and restarted_task can be used to
+access the TCB for the task being restarted. This extension is
+invoked from the task_restart directive after restarted_task has
+been made ready to start execution, but before it is placed on a
+ready TCB chain.
+
+@subsubsection TASK_DELETE Extension
+
+The TASK_DELETE extension is associated with the
+task_delete directive. If this extension is defined in any
+static or dynamic extension set and a task is being deleted,
+then the extension routine will automatically be invoked by
+RTEMS. The extension should have a prototype similar to the
+following:
+
+@findex rtems_task_delete_extension
+@ifset is-C
+@example
+rtems_extension user_task_delete(
+ rtems_tcb *current_task,
+ rtems_tcb *deleted_task
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure User_Task_Delete (
+ Current_Task : in RTEMS.TCB_Pointer;
+ Deleted_Task : in RTEMS.TCB_Pointer
+);
+@end example
+@end ifset
+
+where current_task can be used to access the TCB for
+the currently executing task, and deleted_task can be used to
+access the TCB for the task being deleted. This extension is
+invoked from the task_delete directive after the TCB has been
+removed from a ready TCB chain, but before all its resources
+including the TCB have been returned to their respective free
+pools. This extension should not call any RTEMS directives if a
+task is deleting itself (current_task is equal to deleted_task).
+
+@subsubsection TASK_SWITCH Extension
+
+The TASK_SWITCH extension corresponds to a task
+context switch. If this extension is defined in any static or
+dynamic extension set and a task context switch is in progress,
+then the extension routine will automatically be invoked by
+RTEMS. The extension should have a prototype similar to the
+following:
+
+@findex rtems_task_switch_extension
+@ifset is-C
+@example
+rtems_extension user_task_switch(
+ rtems_tcb *current_task,
+ rtems_tcb *heir_task
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure User_Task_Switch (
+ Current_Task : in RTEMS.TCB_Pointer;
+ Heir_Task : in RTEMS.TCB_Pointer
+);
+@end example
+@end ifset
+
+where current_task can be used to access the TCB for
+the task that is being swapped out, and heir_task can be used to
+access the TCB for the task being swapped in. This extension is
+invoked from RTEMS' dispatcher routine after the current_task
+context has been saved, but before the heir_task context has
+been restored. This extension should not call any RTEMS
+directives.
+
+@subsubsection TASK_BEGIN Extension
+
+The TASK_BEGIN extension is invoked when a task
+begins execution. It is invoked immediately before the body of
+the starting procedure and executes in the context in the task.
+This user extension have a prototype similar to the following:
+
+@findex rtems_task_begin_extension
+@ifset is-C
+@example
+rtems_extension user_task_begin(
+ rtems_tcb *current_task
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure User_Task_Begin (
+ Current_Task : in RTEMS.TCB_Pointer
+);
+@end example
+@end ifset
+
+where current_task can be used to access the TCB for
+the currently executing task which has begun. The distinction
+between the TASK_BEGIN and TASK_START extension is that the
+TASK_BEGIN extension is executed in the context of the actual
+task while the TASK_START extension is executed in the context
+of the task performing the task_start directive. For most
+extensions, this is not a critical distinction.
+
+@subsubsection TASK_EXITTED Extension
+
+The TASK_EXITTED extension is invoked when a task
+exits the body of the starting procedure by either an implicit
+or explicit return statement. This user extension have a
+prototype similar to the following:
+
+@findex rtems_task_exitted_extension
+@ifset is-C
+@example
+rtems_extension user_task_exitted(
+ rtems_tcb *current_task
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure User_Task_Exitted (
+ Current_Task : in RTEMS.TCB_Pointer
+);
+@end example
+@end ifset
+
+where current_task can be used to access the TCB for
+the currently executing task which has just exitted.
+
+Although exiting of task is often considered to be a
+fatal error, this extension allows recovery by either restarting
+or deleting the exiting task. If the user does not wish to
+recover, then a fatal error may be reported. If the user does
+not provide a TASK_EXITTED extension or the provided handler
+returns control to RTEMS, then the RTEMS default handler will be
+used. This default handler invokes the directive
+fatal_error_occurred with the @code{@value{RPREFIX}TASK_EXITTED} directive status.
+
+@subsubsection FATAL Error Extension
+
+The FATAL error extension is associated with the
+fatal_error_occurred directive. If this extension is defined in
+any static or dynamic extension set and the fatal_error_occurred
+directive has been invoked, then this extension will be called.
+This extension should have a prototype similar to the following:
+
+@findex rtems_fatal_extension
+@ifset is-C
+@example
+rtems_extension user_fatal_error(
+ Internal_errors_Source the_source,
+ rtems_boolean is_internal,
+ rtems_unsigned32 the_error
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure User_Fatal_Error (
+ Error : in RTEMS.Unsigned32
+);
+@end example
+@end ifset
+
+where the_error is the error code passed to the
+fatal_error_occurred directive. This extension is invoked from
+the fatal_error_occurred directive.
+
+If defined, the user's FATAL error extension is
+invoked before RTEMS' default fatal error routine is invoked and
+the processor is stopped. For example, this extension could be
+used to pass control to a debugger when a fatal error occurs.
+This extension should not call any RTEMS directives.
+
+@subsection Order of Invocation
+
+When one of the critical system events occur, the
+user extensions are invoked in either "forward" or "reverse"
+order. Forward order indicates that the static extension set is
+invoked followed by the dynamic extension sets in the order in
+which they were created. Reverse order means that the dynamic
+extension sets are invoked in the opposite of the order in which
+they were created followed by the static extension set. By
+invoking the extension sets in this order, extensions can be
+built upon one another. At the following system events, the
+extensions are invoked in forward order:
+
+@itemize @bullet
+@item Task creation
+@item Task initiation
+@item Task reinitiation
+@item Task deletion
+@item Task context switch
+@item Post task context switch
+@item Task begins to execute
+@end itemize
+
+
+At the following system events, the extensions are
+invoked in reverse order:
+
+@itemize @bullet
+@item Task deletion
+@item Fatal error detection
+@end itemize
+
+At these system events, the extensions are invoked in
+reverse order to insure that if an extension set is built upon
+another, the more complicated extension is invoked before the
+extension set it is built upon. For example, by invoking the
+static extension set last it is known that the "system" fatal
+error extension will be the last fatal error extension executed.
+Another example is use of the task delete extension by the
+Standard C Library. Extension sets which are installed after
+the Standard C Library will operate correctly even if they
+utilize the C Library because the C Library's TASK_DELETE
+extension is invoked after that of the other extensions.
+
+@section Operations
+
+@subsection Creating an Extension Set
+
+The @code{@value{DIRPREFIX}extension_create} directive creates and installs
+an extension set by allocating a Extension Set Control Block
+(ESCB), assigning the extension set a user-specified name, and
+assigning it an extension set ID. Newly created extension sets
+are immediately installed and are invoked upon the next system
+even supporting an extension.
+
+@subsection Obtaining Extension Set IDs
+
+When an extension set is created, RTEMS generates a
+unique extension set ID and assigns it to the created extension
+set until it is deleted. The extension ID may be obtained by
+either of two methods. First, as the result of an invocation of
+the @code{@value{DIRPREFIX}extension_create}
+directive, the extension set ID is stored
+in a user provided location. Second, the extension set ID may
+be obtained later using the @code{@value{DIRPREFIX}extension_ident}
+directive. The extension set ID is used by other directives
+to manipulate this extension set.
+
+@subsection Deleting an Extension Set
+
+The @code{@value{DIRPREFIX}extension_delete} directive is used to delete an
+extension set. The extension set's control block is returned to
+the ESCB free list when it is deleted. An extension set can be
+deleted by a task other than the task which created the
+extension set. Any subsequent references to the extension's
+name and ID are invalid.
+
+@section Directives
+
+This section details the user extension manager's
+directives. A subsection is dedicated to each of this manager's
+directives and describes the calling sequence, related
+constants, usage, and status codes.
+
+@c
+@c
+@c
+@page
+@subsection EXTENSION_CREATE - Create a extension set
+
+@cindex create an extension set
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_extension_create
+@example
+rtems_status_code rtems_extension_create(
+ rtems_name name,
+ rtems_extensions_table *table,
+ rtems_id *id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Extension_Create (
+ Name : in RTEMS.Name;
+ Table : in RTEMS.Extensions_Table_Pointer;
+ ID : out RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - extension set created successfully@*
+@code{@value{RPREFIX}INVALID_NAME} - invalid extension set name@*
+@code{@value{RPREFIX}TOO_MANY} - too many extension sets created
+
+@subheading DESCRIPTION:
+
+This directive creates a extension set. The assigned
+extension set id is returned in id. This id is used to access
+the extension set with other user extension manager directives.
+For control and maintenance of the extension set, RTEMS
+allocates an ESCB from the local ESCB free pool and initializes
+it.
+
+@subheading NOTES:
+
+This directive will not cause the calling task to be
+preempted.
+
+@c
+@c
+@c
+@page
+@subsection EXTENSION_IDENT - Get ID of a extension set
+
+@cindex get ID of an extension set
+@cindex obtain ID of an extension set
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_extension_ident
+@example
+rtems_status_code rtems_extension_ident(
+ rtems_name name,
+ rtems_id *id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Extension_Ident (
+ Name : in RTEMS.Name;
+ ID : out RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - extension set identified successfully@*
+@code{@value{RPREFIX}INVALID_NAME} - extension set name not found
+
+@subheading DESCRIPTION:
+
+This directive obtains the extension set id
+associated with the extension set name to be acquired. If the
+extension set name is not unique, then the extension set id will
+match one of the extension sets with that name. However, this
+extension set id is not guaranteed to correspond to the desired
+extension set. The extension set id is used to access this
+extension set in other extension set related directives.
+
+@subheading NOTES:
+
+This directive will not cause the running task to be
+preempted.
+
+@c
+@c
+@c
+@page
+@subsection EXTENSION_DELETE - Delete a extension set
+
+@cindex delete an extension set
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_extension_delete
+@example
+rtems_status_code rtems_extension_delete(
+ rtems_id id
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
+procedure Extension_Delete (
+ ID : in RTEMS.ID;
+ Result : out RTEMS.Status_Codes
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES:
+@code{@value{RPREFIX}SUCCESSFUL} - extension set deleted successfully@*
+@code{@value{RPREFIX}INVALID_ID} - invalid extension set id
+
+@subheading DESCRIPTION:
+
+This directive deletes the extension set specified by
+id. If the extension set is running, it is automatically
+canceled. The ESCB for the deleted extension set is reclaimed
+by RTEMS.
+
+@subheading NOTES:
+
+This directive will not cause the running task to be
+preempted.
+
+A extension set can be deleted by a task other than
+the task which created the extension set.
+
+@subheading NOTES:
+
+This directive will not cause the running task to be
+preempted.