Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 27 Jul 2008 10:57:27 -0700 (PDT)
From:      Jacula Modyun <jacula@gmail.com>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/126012: [NEW PORT]: wxHaskell ports
Message-ID:  <200807271757.m6RHvNFn010309@splork.wirewater.yow>
Resent-Message-ID: <200807271800.m6RI0CUk054809@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         126012
>Category:       ports
>Synopsis:       [NEW PORT]: wxHaskell ports
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jul 27 18:00:11 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Jacula Modyun
>Release:        FreeBSD 7.0-STABLE i386
>Organization:
>Environment:
System: FreeBSD splork.wirewater.yow 7.0-STABLE FreeBSD 7.0-STABLE #0: Wed Jul 23 11:54:05 UTC 2008 root@splork.wirewater.yow:/usr/obj/usr/src/sys/JACULA i386


	
>Description:

I'm sorry for the problem, but about this pr you can see the pr:

http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/124047

This new set of ports is an updating of the previous one. The differences are
minimal and the principal ones are:

- The two files bsd.haskell.mk and bsd.wxhaskell.mk have been moved to the
  ports/Mk directory.

  - The two variables USE_HASKELL and  USE_WXHASKELL have been added.

  - The patch patch-bsd.port.mk registers the variables USE_HASKELL, USE_CABAL,
    USE_WXHASKELL, WXHASKELL_MODES and the two files bsd.haskell.mk,
    bsd.wxhaskell.mk.

- The supported version of ghc is now 6.8.3.

- The supported version of HsColour is now 1.10.

Note: The file patch-wxcore.shar.uuencode has to be decoded with the uudecode
      utility.

Note: The patch-bsd.port.mk is related to the bsd.port.mk version:

# $FreeBSD: ports/Mk/bsd.port.mk,v 1.600 2008/07/24 22:29:32 pav Exp $

Giuseppe Pilichi aka Jacula Modyun <jacula@gmail.com>

>How-To-Repeat:
	
>Fix:

	

--- bsd.haskell.mk begins here ---
#-*- mode: makefile; tab-width: 8; -*-
# ex: syntax=make ts=8 sts=8
#
# bsd.haskell.mk - Support for the Haskell language ports
#
# Date created: May 27 2008
# Whom:         Giuseppe Pilichi aka Jacula Modyun
#
# From a FreeBSD hacker for the FreeBSD hackers.
# From a haskeller for the haskellers.
#
# Quid me constricta spectatis fronte Catones,
#   damnatisque novae simplicitatis opus?
#
# Feel free to send any comments and suggestions to <jacula@gmail.com>.
#
# This file contains some variable definitions, macros and targets that are
# supposed to make easier dealing with ports related to the Haskell language.
#
# USE_HASKELL - Set or point out if your port uses this file to build/install.
#               At this moment this variable is only an abstraction and
#               defining it implies only the inclusion of this file. It tries
#               to provide a general framework to future extensions with the
#               support of a generic environment and many different slots like
#               the Cabal one, activated by the USE_CABAL variable.
#
# *                            *** Cabal Slot ***                            *
#
# **                            *** HANDBOOK ***                            **
#
#
# At this moment the support is only for the ghc compiler and only for its
# last version. If you want to see an real application of it, you could see
# the set of wxHaskell ports. If you want to include this file, activing the
# Cabal Slot this is the only supported way:
#
#       .
#       .
#       USE_CABAL= ...
#       .
#       .
#       OPTIONS= ...
#       .
#       .
#       .include <bsd.port.pre.mk>
#       .
#       .
#       .include <bsd.port.post.mk>
# or
#       .
#       .
#       OPTIONS= ...
#       .
#       .
#       .include <bsd.port.options.mk>
#       .
#       .
#       USE_CABAL= ...
#       .
#       .
#       .include <bsd.port.pre.mk>
#       .
#       .
#       .include <bsd.port.post.mk>
# or
#       .
#       .
#       USE_CABAL= ...
#       .
#       .
#       .include <bsd.port.mk>
#
#
# Currently recognized fundamental variables are:
#
# D_NAME      - The unique package name in a Cabal distribution.
# D_VERSION   - The version package number in a Cabal distribution.
# D_NAME-VER  - The "versioned" package name in a Cabal distribution.
#
# Hackage and its subdirectories:
#
# HACKAGE_SITE         - Gets expanded to http://hackage.haskell.org/
# HACKAGE_ARCH         - Gets expanded to packages/archive/
# HACKAGE_SUBDIR       - Gets expanded to ${D_NAME}/${D_VERSION}/
# MASTER_SITE_HACKAGE  - Gets expanded to
#                        ${HACKAGE_SITE}${HACKAGE_ARCH}${HACKAGE_SUBDIR}
#
# GHC               - The ghc compiler.
# GHC_VERSION       - The version number of the ghc compiler.
# GHC-VER           - The "versioned" ghc compiler name.
# GHC_CMD           - The ghc command.
# GHC-PKG           - The ghc package tool.
# GHC-PKG_CMD       - The ghc package tool command.
# GHC-PKG-CONF      - The ghc package database.
# GHC-PKG-CONF-OLD  - The ghc package database saved after a registration.
# GHC_DEPEND        - The dependence line in a Makefile for ghc.
# GHC_LIBDIR        - The ghc object code libraries are installed here.
# GHC_DATADIR       - The ghc architecture independent data files are
#                     installed here.
# GHC_DOCSDIR       - The ghc documentation files are installed relative to
#                     this directory.
# GHC_PROFILE_DEP   - A conventional way to check the profiling status for
#                     the compiler ghc. It's by default:
#                     "${GHC_LIBDIR}/libHSrts_p.a:${PORTSDIR}/lang/ghc".
#
# At this moment "HC" is only an abstraction, for a next future, about a
# generic compiler and fixing HC to a different compiler raises an error:
#
# HC               - The compiler.
# HC_VERSION       - The compiler version.
# HC-VER           - The "versioned" compiler name.
# HC_CMD           - The compiler command.
# HC-PKG           - The compiler package tool.
# HC-PKG_CMD       - The compiler package tool command.
# HC-PKG-CONF      - The compiler package database.
# HC-PKG-CONF-OLD  - The compiler package database, saved after a
#                    registration.
# HC_DEPEND        - The dependence line in a Makefile for the compiler.
# HC_LIBDIR        - The compiler object code libraries are installed here.
# HC_DATADIR       - The compiler architecture independent data files are
#                    installed here.
# HC_DOCSDIR       - The compiler documentation files are installed relative
#                    to this directory.
#
# For NAME in ALEX, C2HS, CPPHS, HADDOCK, HAPPY, HMAKE, HSCOLOUR:
#
# NAME_CMD     - The command path to the named command.
# NAME_DEPEND  - The dependence line in a Makefile for the named command.
#
# Directories for a distribution installation that are useful to the Cabal
# system:
#
# D_SUBDIR      - The common subdirectory; by default D_NAME-VER.
# D_DATADIR     - Architecture independent data files are installed here.
# D_DATASUBDIR  - A subdirectory of D_DATADIR in which data files are actually
#                 installed.
# D_DOCDIR      - Documentation files are installed relative to this
#                 directory.
# D_HTMLDIR     - Html documentation files are installed relative to this
#                 directory.
# D_LIBDIR      - Object code libraries are installed here.
# D_LIBSUBDIR   - A subdirectory of D_LIBDIR in which libraries are actually
#                 installed.
#
# Relative directories for a distribution that are useful to the port system:
#
# D_EXAMPLESSUBDIR  - The common subdirectory in which examples are installed;
#                     by default examples/${D_SUBDIR}.
# D_LIBDIR_REL      - Gets expanded to lib/${D_SUBDIR}.
# D_LIBSUBDIR_REL   - Gets expanded to lib/${D_LIBSUBDIR}.
#
# "Versioned" values are set by default for: DOCSDIR, DATADIR, EXAMPLESDIR.
#
# NOTE: These variables are defined indirectly by these others:
#
#   CABAL_DATADIR, CABAL_DOCSDIR, CABAL_EXAMPLESDIR.
#
# If you want to change DOCSDIR, DATADIR and EXAMPLESDIR, actually the CABAL_*
# respective variables have to be changed.
#
# HADDOCK_HTML       - The directory of a distribution for the Html haddock
#                      files; actually this is D_HTMLDIR.
#
# HADDOCK_INTERFACE  - The standard path to the haddock interface file of a
#                      distribution; by default
#
#                        HADDOCK_INTERFACE= ${D_HTMLDIR}/${D_NAME}.haddock.
#
# HADDOCK_INTERFACES - A list, separated by commas, of file names containing
#                      Haddock interface files of a distribution; by default
#
#                        HADDOCK_INTERFACES?= ${HADDOCK_INTERFACE}.
#
# HSCOLOUR_VERSION   - The version number of the hscolour package.
# HSCOLOUR_DATADIR   - The data directory of the hscolour package.
# HSCOLOUR_CSS       - The path to the hscolour.css file.
#
# D_REG      - The register file; by default register.sh.
# D_REG_CMD  - The full path to the register file.
#
# REG_CMD    - Command to register a distribution.
# UNREG_CMD  - Command to unregister a distribution.
#
# PLIST_SUB exports this variables:
#
#   HC     HC_VERSION HC-VER     D_LIBDIR_REL D_LIBSUBDIR_REL
#   D_NAME D_VERSION  D_NAME-VER HC-PKG_CMD   HC-PKG-CONF-OLD
#   D_REG  D_REG_CMD  REG_CMD    UNREG_CMD
#
# The SETUP_* variables are intended to control the sequence of the Cabal
# operations in an installation process. These defaults are set:
#
# SETUP_CMD?=     ./setup
# SETUP_ENV?=     ${SETENV}
# SETUP_WRKSRC?=  ${WRKSRC}
# SETUP_MODULE?=  Setup.hs
# SETUP_TARGETS?= configure makefile build haddock register copy install
#
# With a "?=" operator are defined empty:
#
# SETUP_GEN_ENV        SETUP_GEN_ARGS       CONFIGURE_OPTIONS
# SETUP_CONFIGURE_ENV  SETUP_CONFIGURE_ARGS
# SETUP_MAKEFILE_ENV   SETUP_MAKEFILE_ARGS
# SETUP_BUILD_ENV      SETUP_BUILD_ARGS
# SETUP_HADDOCK_ENV    SETUP_HADDOCK_ARGS
# SETUP_REGISTER_ENV   SETUP_REGISTER_ARGS
# SETUP_INSTALL_ENV    SETUP_INSTALL_ARGS
#
# The SETUP_TARGET_ENV can be used to pass the environment, needed by the
# port, to the related Cabal building target via the command SETUP_TARGET.
#
# The SETUP_TARGET_ARGS can be used to pass the arguments, needed by the
# port, to the related Cabal building target via the command SETUP_TARGET.
#
# CONFIGURE_OPTIONS  - A list of arguments arg1..argN.. to add to the variable
#                      SETUP_CONFIGURE_ARGS with --configure-option=arg1..
#                      --configure-option=argN.. if a distr?make mode was
#                      activated; you can see below about the modes.
#
# INPLACE       - In place base directory useful for various situations; by
#                 default ${WRKDIR}/inplace
# INPLACE_BIN   - In place sub directory for various and ad hoc utilities; by
#                 default ${INPLACE}/bin.
#
# Final commands are:
#
# SETUP_GEN     - A command generating the "setup" utility before the
#                 configuration process. The user can redefine it without any
#                 problems.
#
# For every target/TARGET in SETUP_TARGETS:
#
# SETUP_TARGET  - A command executing the Cabal setup target in an elaborated
#                 way, inglobing the variables like SETUP_TARGET_ENV and
#                 SETUP_TARGET_ARGS. The user can redefine it without any
#                 problems.
#
# setup-target  - A target built on the SETUP_TARGET command.
#
# GMAKE_LINK    - A macro relating to the "distrmake" mode. For this mode we
#                 need the "gmake" utility in disguise mode as "make". The
#                 user can redefine it without any problems. About the modes
#                 you can see above.
#
# gmake-link    - A target executing the GMAKE_LINK command.
#
# GEN_HSCOLOUR  - A macro to generate the hscolour files from a set of source
#                 Haskell files with HsColour. This macro uses four arguments
#                 on the command line, and absolute paths. Usage:
#
#                   ${GEN_HSCOLOUR} PathToSources
#                                   PathToDestination
#                                   (0|1)
#                                   FindArguments
#
#                   -     PathToSources: the directory where the Haskell
#                                        sources files can be found.
#
#                   - PathToDestination: the subdirectory where to install
#                                        the hscolour files generated in
#                                        this way.
#
#                   -      Flags 0 or 1: turning on/off copying the css file
#                                        hscolour.css.
#
#                   -          FindArgs: additional "find" arguments that can
#                                        be passed to the macro to select the
#                                        Haskell sources files.
#
# INSTALL_REGISTER - A macro to install the D_REG file for a distribution
#                    after its generation. This macro uses one argument on
#                    the command line and absolute path:
#
#                      ${INSTALL_REGISTER} PathToRegister
#
#                    PathToRegister is normally the path to D_REG.
#                    The file is installed to D_REG_CMD.
#
# install-register - A target associated with INSTALL_REGISTER and
#                    ${SETUP_WRKSRC}/${D_REG} as PathToRegister.
#
# GEN_REGISTER     - A macro to generate the D_REG file for a distribution
#                    after its registration. This macro uses two arguments
#                    on the command line and absolute path:
#
#                      ${GEN_REGISTER} PathToRegister CabalName
#
#                    PathToRegister is normally D_REG_CMD and CabalName is
#                    D_NAME or D_NAME-VER.
#
# gen-register     - A target associated with GEN_REGISTER, D_REG_CMD and
#                    D_NAME-VER. You can use this target also to obtain a
#                    register file, after the port installation, in this way:
#
#                      make [D_REG_CMD=/path/to/file] gen-register
#
#                    into ${PORTDIR}.
#                    Note: If the D_REG_CMD is the default file, your port
#                    installation could become broken.
#
# CHANGE_REGISTER  - A macro to change the registration script after its
#                    generation; by default it changes the haddock fields in
#                    this script and perhaps saves the original script with
#                    the given extension. Note that this macro support also
#                    a list of Haddock interfaces on multiple lines in the
#                    field "haddock-interfaces" of the registration script.
#
#                    Usage: This macro uses four arguments on the command line
#                    and absolute paths:
#
#                    ${GEN_REGISTER} PathToRegister 'HaddockInterfaces'
#                                    HaddockHtml    [ext]
#
#                    PathToRegister is normally D_REG_CMD and "ext" is an
#                    optional argument, the extension of the possible backup
#                    file. HaddockInterfaces and HaddockHtml are what their
#                    name says they are: a list, separated by commas, of
#                    Haddock interfaces and the Haddock Html directory.
#                    HaddockInterfaces is a "printf" string.
#
# change-register  - A target associated with CHANGE_REGISTER, D_REG_CMD as
#                    PathToRegister, HADDOCK_INTERFACES, HADDOCK_HTML and no
#                    extension.
#                    You can use this target also to change a register file
#                    in this way:
#
#                      make [D_REG_CMD=/path/to/file] change-register
#
#                    into ${PORTDIR}
#
#                    after you changed, for example, the variables
#                    HADDOCK_HTML and HADDOCK_INTERFACES.
#                    Note: If the D_REG_CMD is the default file, your port
#                    installation could become broken.
#
#                    Note: This target puts the HaddockInterfaces and
#                          HaddockHtml into single quotas.
#
# DO_REGISTER      - A macro to register a distribution with a given register
#                    file.
#                    Usage: This macro uses one argument on the command line
#                    and absolute path:
#
#                      ${DO_REGISTER} PathToRegister
#
#                    PathToRegister is normally D_REG_CMD.
#
# do-register      - A target executing the DO_REGISTER macro with the
#                    D_REG_CMD register file. You can use this target also to
#                    reregister in Cabal the distribution relating to the port
#                    with:
#
#                      make [REG_CMD=/path/to/file] do-register
#
#                    into ${PORTDIR}.
#                    Note: You have to pay attention to use this convenience
#                    out of installation process, because this change could
#                    alter in an unforeseen way your Haskell-Haddock system
#                    documentation of the libraries and perhaps breaks your
#                    port installation.
#
# DO_UNREGISTER    - Macro to unregister a named distribution.
#                    Usage: This macro uses one argument on the command line:
#
#                      ${DO_REGISTER} CabalName
#
#                    CabalName can be D_NAME or D_NAME-VER.
#
# do-unregister    - A target executing the DO_UNREGISTER macro with
#                    D_NAM-VER. You can use this target also to unregister in
#                    Cabal the distribution relative to the port with:
#
#                      make do-unregister
#
#                    into ${PORTDIR}.
#                    Note: You have to pay attention to use this convenience
#                    out of installation process, because this change can
#                    alter in an unforeseen way your Haskell-Haddock system
#                    documentation of the libraries and perhaps breaks your
#                    port installation.
#
# unregister      - At this moment it is a simple duplicate of do-unregister.
#
# register         - A target that fixes the target sequence for the Cabal
#                    registration of the distribution relative to the port.
#                    It's connected to the mode "genreg" and the two
#                    variables HADDOCK_HTML, HADDOCK_INTERFACES.
#                    The base sequence is:
#
#                      setup-register install-register.
#
#                    If the "genreg" mode is activated then the base sequence
#                    becomes:
#
#                      gen-register
#
#                    If one of two HADDOCK_* variables is empty
#
#                    the first sequence becomes:
#
#                      setup-register install-register
#                      change-register do-register
#
#                    the second sequence becomes:
#
#                      gen-register change-register do-register.
#
#                    then the haddock fields into the final D_REG file get
#                    empty.
#
# PROFILE_DEPENDS - A list of "lib:dir" couples of other ports this package
#                   depends on. "lib" is the name of a profiling library.
#                   This name can be a full path name, or a relative path
#                   name to the ${LOCALBASE}/${D_LIBSUBDIR_REL} of the "dir"
#                   port, with or without the suffix "_p.a". "lib" can contain
#                   the schematic variable %%ver%% for the D_VERSION of the
#                   "dir" port.
#                   If the PROFILE_DEPENDS variable is defined, the use of
#                   the target "profile-depends", of the macro target
#                   "profile-depends-macro" and of the target
#                   "profile-depends-list" are activated; the first two to
#                   incorporate, as a command, the macro CHECK_PROFILE and
#                   the last to incorporate, always as a command, the macro
#                   PROFILE_DEPENDS_LIST. These two macros are described
#                   below.
#
#                   NOTE: At difference of *_DEPENDS variables, into the
#                   bsd.port.mk file, this one is defined, here, in the
#                   post-makefile section, then you can use the operator "="
#                   with it, into a Makefile, without any problem after the
#                   pre-makefile section. Another important difference with
#                   *_DEPENDS variables is that the PROFILE_DEPENDS variable
#                   doesn't set any real dependence then you have to already
#                   set the necessary build dependences.
#
# CHECK_PROFILE   - Macro to control if the existence conditions of the needed
#                   profiling libraries, listed into the PROFILE_DEPENDS
#                   variable, are respected. This macro takes one argument,
#                   that's the variable PROFILE_DEPENDS or any list of
#                   profiling dependence couples.
#                   Usage: This macro uses one argument on the command line
#                   and absolute path:
#
#                     ${CHECK_PROFILE} "ProfDepsList"
#
#                   Note: It's important to observe that this macro depends on
#                   the fact that the profiling dependence ports have to
#                   recognize the NO_PROFILE (or NOPROFILE or WITHOUT_PROFILE)
#                   variable or by default to install their profiling
#                   libraries. The maintainers have to check this before using
#                   the macro.
#
# PROFILE_DEPENDS_LIST - Macro to show all directories which, for this port,
#                        are profile dependences. This macro takes one
#                        argument, that's the variable PROFILE_DEPENDS or
#                        any list of profiling dependence couples.
#                        Usage: This macro uses one argument on the command
#                        line and absolute path:
#
#                          ${PROFILE_DEPENDS_LIST} "ProfDepsList"
#
# profile-depends, profile-depends-macro, profile-depends-list:
#
#               - targets associated with CHECK_PROFILE, PROFILE_DEPENDS and
#                 PROFILE_DEPENDS_LIST.
#
#                 You can use the "profile-depends-list" target like the
#                 "build-depends-list" target:
#
#                      make profile-depends-list
#
#                 into ${PORTDIR}, and the origins of the profiling
#                 dependences will be listed.
#
# HC-PKG_FIELD  - Macro to show a Cabal field of a Cabal distribution.
#                 Usage: This macro uses two arguments on the command line:
#
#                   ${HC-PKG_FIELD} CabalName CabalField

#                 CabalName can be D_NAME or D_NAME-VER.
#                 CabalField can be one of the field known by Cabal.
#
# CHANGE_FIELD  - Macro to change the registration script after its generation
#                 and the distribution registration. It's possible to change
#                 any Cabal field on the fly and generate a new registration
#                 script with the new field.
#                 Usage: This macro uses four arguments on the command line
#                 and absolute paths:
#
#                   ${CHANGE_FIELD} PathToNewRegister CabalName
#                                   CabalField        NewFieldString
#
#                 PathToNewRegister is the path to a new register file.
#                 CabalName can be D_NAME or D_NAME-VER.
#                 CabalField can be one of the field known by Cabal.
#                 NewFieldString is a "printf" string.
#
# USE_CABAL  - The mistress. It implies, by default, USE_HASKELL= true.
#              Defining USE_CABAL empty or "yes" or "true" activates only the
#              use of the Haskell base environment.
#              Setting to a list of the possible options, space separated and
#              flagged activates a set of extensions.
#              At this moment the options are divided internally into "modes"
#              and "tools".
#              The flags are divided internally into configuration flags ,
#              dependence flags and switch flags, respectively called also
#              "confflags", "depflags" and "switchflags" :-).
#              The options and flags are:
#
#                Tools: alex, c2hs, cpphs, ghc, ghc-pkg, haddock, happy,
#                       hc, hc-pkg, hmake, hscolour.
#
#                Modes: base, distrgmake, distrmake, distrsimple, docs,
#                       genreg, lhs, noreg, profile.
#
#                Confflags: noargs, nopath.
#
#                Depflags: bothdep, rundep, nodep.
#
#                Switchflags: all, auto, both, full, exec.
#
#              Theoretically every option can be flagged in the form:
#
#              USE_CABAL= tools..modes..option0:flag0..optionN:flagN0:flagN1.
#
#              but some conditions can limit this possibility. The sequences
#              option:flag0:flag1:..:flagN are called "Cabal grues" (shortly
#              grues) :-).
#
#              Note: activating an option or a flag, for the final user, means
#              fixing a value in USE_CABAL, but, for the implementation, means
#              fixing a given value for an internal function, named "Funky",
#              that controls this mechanism (about Funky you can see below).
#
#              Note: At this moment a way to unset the choices for the options
#              and flags doesn't exist, since it is useless.
#              Repetitions are "useless" but don't raise an error in debug mode
#              (about the "debug mode" you can see below).
#
#              Note: In general it's true that a useless application of an
#              option or a flag doesn't raise an error in debug mode and is
#              tolerated, but, when this is useful, it's signalled raising an
#              error or a warning.
#
#   Tools    - The tools set the Cabal distributions or its subtools to use
#              and the conditions for this use. Generally these tools are
#              programs that Cabal knows.
#
#              Loading a tool TOOL in USE_CABAL, if a TOOL_DEPEND variable is
#              defined, implies by default:
#
#                BUILD_DEPENDS+= ${TOOL_DEPEND}.
#
#              about the depflags:
#
#                bothdep  - Sets also the run dependence.
#
#                rundep   - Sets the run dependence and unsets the build
#                           dependence.
#
#                nodep    - Unsets the build dependence.
#
#              Then this could be also set:
#
#                RUN_DEPENDS+= ${TOOL_DEPEND}.
#
#              And this could be also unset:
#
#                BUILD_DEPENDS+= ${TOOL_DEPEND}.
#
#              Note: If a TOOL_DEPEND variable isn't defined the application
#              of these flags raises an error in debug mode. These flags are
#              mutually exclusive and a multiple use of different depflags
#              raises an error in debug mode.
#
#              Loading a tool TOOL in USE_CABAL, if a TOOL_CMD variable is
#              defined, if TOOL isn't "hc" and if the "distrsimple" mode is
#              set, implies by default to set:
#
#                SETUP_CONFIGURE_ARGS+= --with-tool=${TOOL_CMD}
#
#              about the confflags:
#
#                nopath - Unsets this default.
#
#              If TOOL isn't "hc-pkg", this activates also the use of the
#              variable TOOL_ARGS:
#
#                TOOL_ARGS  - To pass command line arguments to the tool by
#                             the configuration process. Usage:
#
#                               TOOL_ARGS= arg1..argN ..
#
#                             and it implies:
#
#                             SETUP_CONFIGURE_ARGS+= --tool-option=arg1 ..
#                                                    --tool-option=argN ..
#
#              You can use spaces into each single argN string without any
#              problems.
#
#              about the confflags:
#
#                noargs - Unsets this default. This flag, actually, is only
#                         for debug and for the future, since it's enough
#                         to leave the related variable "TOOL_ARGS" empty.
#
#              Note: If a TOOL_CMD variable isn't defined the application of
#              these two flags raises an error in debug mode.
#              If the "distrsimple" mode isn't set, at this moment it's
#              useless to set noarg or nopath and it raises an error in debug
#              mode.
#
#              Note: About the "hc" and "hc-pkg" you should remember that
#              these aren't programs known by Cabal, and that Cabal
#              accepts only the --with-hc-pkg option and for the build-type
#              Make passes the --with-compiler option value in a
#              --with-hc option.
#
#   Modes    - The modes fix the condition settings of the installation.
#
#              base:
#
#                Sets some basic building conditions relative to Cabal.
#                In theory these conditions should be related to the common
#                options, as fixed by the standard; but this is not always
#                respected and in particular when the installation process
#                uses the Distribution.Make library, some exceptions are
#                possible.
#                This mode sets always the build dependence on the compiler,
#                and its profile dependence, if the "profile" mode was
#                activated and the NO_PROFILE variable wasn't defined.
#
#              distrgmake, distrmake, distrsimple:
#
#                These modes are mutually exclusive. They set conditions about
#                the two possible basic build-types: Simple and Make. These
#                are based on the libraries Distribution.Make and
#                Distribution.Simple. The "distrgmake" mode fixes the make
#                utility for Cabal to gmake. These modes activate always the
#                "base" mode then the build dependence on the compiler and
#                perhaps its profile dependence.
#
#                The ":full" flagged modes set also these targets:
#
#                  do-configure, do-build, do-install, build-depends
#
#                based on the defined targets:
#
#                  gmake-link  setup-gen  profile-depends setup-configure
#                  setup-build build-data setup-copy      install-data
#                  register
#
#                The two targets build-data and install-data are for
#                supporting final actions in the build and install processes.
#                By default the target install-data is DO_NADA and the target
#                build-data connects the command SETUP_HADDOCK to the tool
#                "haddock".
#
#                The distr?make options activate also the possibility to use
#                the variable CONFIGURE_OPTIONS. This variable is used in this
#                way:
#
#                  CONFIGURE_OPTIONS=..arg1..argN..
#
#                and every "argN" will be passed on to SETUP_CONFIGURE_ARGS in
#                a --configure-option=argN.
#
#              docs:
#
#                Activates internally the tools haddock, hscolour and fixes
#                some conditions if NOPORTDOCS or WITHOUT_DOCS are or aren't
#                activated.
#
#              genreg:
#
#                Changes the target sequence "register" (you can see above)
#                and the target do-install for a distr*:full mode,
#                deactivating always (for obvious reasons) the use of
#                setup-copy in this last target. No relation exists between
#                "genreg" and "noreg".
#
#              lhs:
#
#                Fixes the setup module to Setup.lhs; by default the setup
#                module is Setup.hs.
#
#              noreg:
#
#                In the final targets the procedures generating and installing
#                the possible register file of the distribution after the port
#                installation don't get activated. This flag is only useful
#                if a distr*:full was activated and an useless activation
#                raises an error in debug mode.
#
#              profile:
#
#                Adds or doesn't add building conditions according to the
#                fact if the NO_PROFILE or NOPROFILE or WITHOUT_PROFILE
#                variables were or weren't activated. In particular, for the
#                mode "distrsimple", if these port options weren't defined,
#                this one activates:
#
#                If the "exec" flag is unset:
#
#                  SETUP_CONFIGURE_ARGS+= --enable-library-profiling
#
#                If the "exec" or "both" flags are set:
#
#                  SETUP_CONFIGURE_ARGS+= --enable-executable-profiling
#
#                The application of both "exec" and "both" to the "profile"
#                option raises an error in debug mode.
#
#                If the "auto" flag is set and the compiler is GHC:
#
#                  SETUP_CONFIGURE_ARGS+= --${GHC}-option=-auto
#
#                If the "all" flag is set and the compiler is GHC:
#
#                  SETUP_CONFIGURE_ARGS+= --${GHC}-option=-auto-all
#
#                If the compiler isn't GHC, the application of these two
#                flags is useless. But in any way GHC is the only compiler
#                supported until now.
#                The application of both "auto" and "all" to the "profile"
#                option raises a warning in debug mode: it's useless to use
#                both at the same time.
#                If the "distrsimple" mode isn't activated, the application
#                of the flags "exec" or "both" or "auto" or "all" to the
#                option "profile" is useless and raises an error in debug
#                mode.
#
#                If the "full" flag is set for a "distr*" option and for the
#                "profile" option then the macro CHECK_PROFILE will be added
#                to the target "build-depends" as a command with:
#
#                  build-depends: profile-depends
#
#                If the flag "full" isn't activated for a "distr*" option the
#                application of the flags "full" to the option "profile" is
#                useless and this raises an error in debug mode.
#                When you use the "profile" option you have to remember that
#                the PROFILE_DEPENDS variable doesn't set any real dependence
#                then you have to set the necessary build dependences.
#
# FUNKY - The only important thing to a maintainer is "knowing that a internal
#         variable "FUNKY" exists".
#
#         "Funky" is the way to support the introduction of a functional
#         mechanism into this make file; on the other hand  Haskell it is a
#         functional language, or better "The Functional Language" :-).
#         All this will be fully explained in the "Theory" section, below, but
#         here we'll explain, in brief, the "Funky" machine.
#         Fixed a port, including the bsd.haskell.mk file, this machine
#         extrapolates the information from the defined mistress USE_CABAL,
#         before defining a internal variable "FUNKY", that denotes a set of
#         couples "_option_flag_" or "_option__", here called "Funky grues"
#         (shortly "grues") :-) and then incapsulating them into a related
#         function "Funky", that represents the characteristic function of
#         this set.
#         The Funky function of a port, that use the bsd.haskell.mk file, is
#         a function such that:
#
#    OPTIONS X FLAGS --> {defined,undefined}:(option,flag) |--> _option_flag_
#                                           :(option,    ) |--> _option__
#
#         A, so called, "hidden flag" belongs to the flag set; actually a grue
#         "_option__" abbreviates "_option_hiddenflag_". The form of the
#         symbol "_*_*_" is functional to its twofold syntactic role of the
#         being both for a "couple" and for the "application of a function to
#         a couple".
#
#         Funky is only an abstraction, intensionally determined by a sequence
#         of make instructions that, de facto, defines a procedure to denote
#         the function; this slice of make file sequence is syntactically
#         built by variables formed with lower-case letters.
#         This abstraction is the framework to interpret and to develop this
#         port system, as grounded on the evaluation of a function.
#
# Debug Mode  - This mode is useful only to the maintainers of ports that use
#               this make file. Checking the correctness of a port it is
#               possible using the target "funky" and defining the two
#               variables FUNKY_DEBUG, FUNKY_DEBUG_FULL, for example:
#
#                 make -DFUNKY_DEBUG_FULL funky
#
#               into ${PORTDIR}.
#
#               You have to reverse any choice that raises an error and can
#               ignore the warnings; but reversing also these last cases is
#               better.
#
# funky             - A make target to debug the Funky function. It shows the
#                     schematic definition of this one and works both in
#                     normal mode and in debug mode.
#
# FUNKY_DEBUG       - Define this variable to activate the debug mode and to
#                     debug the Funky function.
#
# FUNKY_DEBUG_FULL  - Define this variable to debug the Funky function in a
#                     full mode; that's the Funky function gets defined also
#                     if an error occurs. Defining this variable implies
#                     defining also the FUNKY_DEBUG variable.
#
# **                             *** THEORY ***                             **
#
#                            Hoc est praeceptum meum
#
# We have encompassed a substantial bit of the bsd.haskell.mk theory in the
# foregoing comments; precisely that one constituting a handbook for
# Maintainers.
# In the remaining notes we will go further the simple needs of a Maintainer,
# because it seems necessary to develop an explicit background of theory, as
# a convenience of reference for a future development.
# we shall suppose the reader to be familiar, at least, with a naive category
# theory, a naive set theory and the usual notational apparatus of elementary
# logic. Also we shall suppose the reader to be a judge and a lover of
# boxology :-).
# Our approach to the matter will be analytic, in a philosophical sense, and
# our style, for necessity, will be terse.
# Some examples of mathematical symbols, in a ASCII form, are:
#
# - (Ex)     : the quantifier "there is at least one x".
# - (E!x)    : the quantifier "there is only one x".
# - (E!!x)   : the quantifier "there is one and only one x".
# - (Vx)     : the quantifier "for every x".
# - x <- y   : the membership predicate "x belongs to y".
# - x (= y   : the inclusion predicate "x is a subset to y".
# - x (- y   : the strict inclusion predicate "x is a proper subset to y".
# - a ---> b : the symbol of function from a to b.
# - a -1-> b : the symbol of injection from a to b.
# - a -->| b : the symbol of surjection from a to b.
# - a <--> b : the symbol of bijection between a and b.
# - P(x)     : the power class of x.
# - U(x)     : the union class of x.
# - {x:P}    : the class of sets that satisfy P.
# - V        : The universal class of all sets.
# - O        : The empy set.
# - Set      : The category of all sets.
#
# - Let ~ be an equivalence on b and c <- b:
#
#   - [c]~   : the equivalence class of c modulo ~.
#   - b/~    : the system of all equivalence classes modulo ~.
#
# - Let (f: a ---> b) be a function:
#
#   - f*     : the image function under f, such that:
#
#              f*: P(a) ---> P(b); c |---> {f(x): x <- c}.
#
#   - *f     : the inverse image function under f, such that:
#
#              *f: P(b) ---> P(a); c |---> {x: x <- a, g(x) <- c}.
#
# - Let C0 and C1 be categories:
#
#   - C0 ===> C1 : the symbol of functor from C0 to C1.
#
# - Let F1 and F2 be functors:
#
#   - F1 ==.=> F2 : the symbol of natural transformation from F1 to F2.
#
#   - F1 <=.=> F2 : the symbol of natural isomorphism from F1 to F2.
#
# - The common logical symbols: =>, <=>, &, v ...
#
# However we'd like to underline that it's not essential to be accurate in
# establishing the set-theory environment in this context; suffice is to say
# that it has to be enough powerful for our needs.
#
# To start with, a basic question, arising in an initial approach to the
# problem of coordinating many different ports, related to the Haskell
# language, is the pointing out a way to control the program flow of similar
# ports, coordinated between them, getting through the typical problems of
# makefiles about the scalability and the debugging.
# Our answer to the question is of standardizing the input, as a structured
# "choice", and our mode of conceptually translating this solution is:
#
# (*) The processing steps for a fixed "choice" are "uniforming", "reducing"
#     and "implementing" this choice, "univocally" and "naturally".
#
# What does that mean?
# We need a preliminary note.
#
# The couples "(option,flag)" are simple and cheap objects suitable to denote
# configurations of states, or better classes of states, in which the "state"
# is given by the "flag" and the "class" is given by the "option".
# Then our working sets are:
#
# Op  = _CABAL_OPTIONS.
# Fl  = _CABAL_FLAGS.
# Sv   = Op X Fl; "Sv" as "Sachverhalte". See also the final consideration
#                 about the domain Sv.
#
# Our strategy, or better our ontological attitude, in handling concepts, in
# this brief, is the classical one of conveniently emerging of each concept
# both its sethood and its instrumentality.
# So to handle the fact that an option denotes a class of states and the flags
# are classified by option, we hypostatise (or objectify) it as an equivalence
# relation.
# Let "~" the equivalence on Sv such that: (x0,y0) ~ (x1,y1) <=> x0 = y0.
# It turns out that the invariants of this equivalence relation, essential
# for us, are well synthesized by the following common commutative diagram:
#
#                           Sv/~    [c]~
#                          .   ^     ^
#                         .    |     |
#                        .     |     |
#                       .      |     |
#                      .       |     |
#                E!!f .        | Pr~ |
#                    .         |     |
#                   .          |     |
#                  .           |     |
#                 .            |     |
#               |_             |     |
#              '               |    ---
#             Op <------------ Sv    c
#                     Pr1
#             x0 <--------| (x0,y0)
#
#
# The first step to clarify the (*) sentence is to interpret the concept of
# "choice": for us a "choice" is an element of P(P(Sv)), i.e. a (= P(Sv),
# whose elements, in their turn, are implemented syntactically as
# "Cabal grues".
# For example, the following choice
#
#  {{(a,x0),(a,x1)},{(b,y0),(b,y1),(b,y2)},{(c,z0)}}
#
# reduces syntactically itself, in a obvious way, to the following
# configuration of "Cabal grues"
#
#  a:x0:x1 b:y0:y1:y2 c:z0
#
# and vice versa; So a Cabal grue disguises actually, but it's not, an
# element of P(Sv), Note that, here, there is a first level of prescission,
# that won't be codified, because it's grounded either on a possible, or
# contingent, relation, denoted by ":" or on the flags disposition.
# With the main object to establish a minimal definition of interconnection
# between "choices" defined on different domains, we define the contravariant
# functor "Grue", such that:
#
#  - Grue: Set ===> Set
#
#  - (V set a,b)(V function (f: a ---> b)):
#
#     - Grue(a) = P(P(a))
#
#     - Grue(f): Grue(b) ---> Grue(a)
#
#     - (V set u <- Grue(b)): (Grue(f))(u) = {*f(g): g <- u}
#
# At least in principle, there are several possible notions of the concepts of
# "uniforming" and of "uniformity".
# We hypostatise the "uniforming" a structure on sets, in the most natural
# way, using the notion of the set-theory "union", that, both in categorical
# terms (of the theory of categories) and in theoretical terms, renders this
# one as the "forgetting" the structure.
# Let us formalize this idea with a very simple equivalence relation.
# Let s a nonempty set; we define an equivalence "~~" on s by:
# a ~~ b <=> U(a) = U(b). Note the formal ambiguity of the symbol "~~" in
# which there is a free occurrence of the variable "s".
# A characterization of this equivalence is given by the following intuitive
# commutative diagram:
#
#                               s/~~     [c]~~
#                              .  ^       ^
#                             .   |       |
#                            .    |       |
#                           .     |       |
#                          .      |       |
#         Un2~~  =  f     .       |       |
# U(U(a)) <----------| a .        |       |
#                       .         |       |
#                  E!f .          |       |
#                     .           | Pr~~  |
#                    .            |       |
#                   .             |       |
#                 |_              |       |
#                '                |      ---
#       P(U(U(s))) <------------- s       c
#                        Un~~
#             U(a) <------------| a
#
# So, positively, in this context, "uniforming" means "projecting" into a
# given equivalence class. Now we can determine better the concept of
# "uniforming". Let F0 be the family of functions, such that:
#
#  - F0: (V - {0}) ---> {f: (f: s/~~ ---> P(U(U(s))), s <- (V - {0})}
#
#  - (V nonepty set s): F0(s) = Pr~~
#
#  - F0 objectifies the concept of "uniforming".
#
# The concept of "uniforming", in the sense of the "prescinding", is
# closely connected with the concept of "uniform", in the sense of the
# "prescinded" by prescission: that's the "uniformity" :-).
# But the latter is more elaborate than the former, because it needs, at
# least, of a minimal definition of internal connection between "uniform
# choices" defined on different domains, which is specular of that one
# between "choices" on different domains defined by the Grue functor.
# Now, sincerely, we have to say that it's prima facie extremely natural to
# objectify the "uniformity", using the contravariant functor, here named
# "Unif", such that:
#
#  - Unif: Set ===> Set
#
#  - (V set a,b)(V function (f: a ---> b)):
#
#     - Unif(a) = Grue(a)/~~
#
#     - Unif(f): Unif(b) ---> Unif(a)
#
#     - (V set c <- Unif(b))): (Unif(f))(c) = ((Grue(f))*)(c)
#
#                                         [ = {{*f(g): g <- u}: u <- c} ]
#
# We would like to underline also that, in spite of the fact that the
# contravariance is very handy to our aims, however it's the property more
# suitable for rendering the "uniformity" of a generic function, in so far as
# function, in which there is a structural prescission, by its own definition,
# but into the opposite direction of its one; this is the only reason led us
# to define the functor Grue in a way, that is only seemingly arbitrary.
#
# Passing similar remarks like these about the contravariant functor "Unif"
# and the concept of "uniformity", we hypostatise the concept of "reduction",
# using the contravariant power-set functor, Set ===> Set, denoted here with
# the symbol "Pow".
# Similarly to objectify the concept of "implementation", we use the
# contravariant hom-functor on the set {0,1} (or {defined,undefined}),
# Set ===> Set, denoted here with the symbol "Chr" (or "hom(-,{0,1}))").
#
# Finally the concepts of "uniformity", "reduction" and "implementation" have
# been formalized with well defined categorical entities.
#
# Now we have to find a hypostasis (or a categorical formalization) for the
# concepts of "reducing" and of "implementing"
#
# Let T1 be the natural isomorphism from the contravariant functor Unif to
# the contravariant Power-set functor Pow, such that:
#
#  - T1: Unif <=.=> Pow
#
#  - (v set b): T1(b): Unif(b) <--> Pow(b); T1(b) = Un2~~
#
# Let T2 be the natural isomorphism from the contravariant power-set functor
# Pow to the contravariant hom-functor, such that:
#
#  - T1: Pow <=.=> Chr
#
#  - for each set b, T(b) is the bijection that maps x <- P(b) to its
#    corresponding characteristic function, into hom(b,{0,1}).
#
# The idea is simple:
#
#  - T1 objectifies the concept of "reducing".
#  - T2 objectifies the concept of "implementing".
#
# Now we can determine a ulterior, but poorer, determination of the concept of
# "uniforming".
#
# Let T3 be the natural transformation from the contravariant functor Grue to
# the contravariant functor Pow, such that:
#
#  - T3: Grue ==.=> Pow
#
#  - (v set b): T3(b): Grue(b) -->| Pow(b), T1(b) = Un~~
#
#  - T3 objectifies this poorer and indeterminate concept of "uniforming".
#
# The following commutative diagram expresses the most important properties of
# this machinery:
#
#                  ?---------------------------------?
#                  |                                 |
#                  |   ?-----------? ?-----------?   |
#                  |   |         gg| |gg         |   |
#                  |   |     gggggg| |gggggg     |   |
#                  |   |   gggggggg| |gggggggg   |   |
#                  |   |  ggg      | |       gg  |   |
#                  |   |  g        | |         g |   |
#                  |   ?-----------? ?-----------?   |
#                  |   ?-----------? ?-----------?   |
#                  |   | g         | |         g |   |
#                  |   |  g        | |         g |   |
#                  |   |  gg       | |       gg  |   |
#                  |   |   gg      | |      g    |   |
#                  |   |     g     | |           |   |
#                  |   ?-----------? ?-----------?   |
#                  |                                 |
#                  ?---------------------------------?
#                                   ?
#                                   ?
#                                   ?
#                                   ?
#                                   ?
#                                   ?
#                                   ?
#                                   ?
#                                   ?
#                                  \?/
#                                   '
#               a                Grue(Sv)            c
#              \                 /  |               ---
#             /                 /   |                |
#            /                 /    |                |
#           /                 /     |                |
#          /                 /      |                |
#         /                 /       |                |
#        /                 /        |                |
#       /                 /         |                |
#      /  T3(Sv) =  Un~~ /          | F0(Sv) = Pr~~  |
#    \/_                /           |                |
#    '                 /            |                |
#   U(a)              /             |                |
#                    /              |                |
#                   /               |                |
#                 \/_              \|/              \|/
#                 '                 '                '
# Chr(Sv) <--> PoW(Sv)    <-->    Unif(Sv)          [c]~~
#
#        T2(Sv)      T1(Sv) = Un2~~
#
#              U(U(a)) <----------| a
#
#                   |
#                   |      T3
#                   |    <=.==    Grue
#                   |              |
#        T2         |              |
# Chr  <=.=>  Pow --|              | F0
#                   |              |
#                   |              |
#                   |             \|/
#                   |      T1      '
#                   |    <=.=>    Unif
#                   |
#
# At this point the crucial adverbs "univocally" and "naturally" that, in the
# first instance, have only a descriptive value, now assume an effective
# formal connotation.
# The adverb "univocally" is reduced to the being "isomorphic" of the
# transformations T1 and T2.
# The adverb "naturally" is reduced to the being "natural" of the
# transformations T1 and T2.
#
# Briefing, we can say that a given triplet Funky/FUNKY/USE_CABAL is a
# determination both in categorical terms of Chr(Sv)/Pow(Sv)/Unif(Sv) and in
# theoretical terms of Implementation/Reduction/Uniformity, where
# Implementing/Reducing/Uniforming is in correspondence with
# T2(Sv)/T1(Sv)/F0(Sv).
#
# Finally we want to condense some interesting aspects into the following
# final points:
#
# 0) It can be argued immediately that the difference of context between the
#    bsd.haskell.mk file and a generic port, that includes this file is
#    characterized positively by the circumstance that the latter uses a
#    definite triplet Funky/FUNKY/USE_CABAL, whereas the former uses the
#    correlated systems Chr(Sv)/Pow(Sv)/Unif(Sv). Then the bsd.haskell.mk
#    defines almost a general semantic for the Haskell ports.
#
# 1) It turns out that a given USE_CABAL, defined in a port, actually denotes
#    an equivalence class, represented by F0(Sv) with this "choice" fixed by
#    the port Maintainer; the extension of this equivalence class is made up
#    all the possible configurations of Cabal grues, that are uniform with
#    regard to the behavior of this port, interpreted by the bsd.haskell.mk
#    file. For example, the following definitions:
#
#      USE_CABAL= a:x0:x1:x2 b:y0:y1 c:z0
#      USE_CABAL= a:x0 a:x1 a:x2 b:y0 b:y1 c:z0
#      USE_CABAL= a:x0 a:x1:x2 b:y0:y1:y1 c:z0
#
#    are all equivalent for one and the same port, apart from the contingent
#    algorithmic costs, and from the different distribution of the symbols,
#    which , certainly, can provide a structured information, by a possible
#    ":" relation, but ulterior, relatively to the needs of this machinery,
#    and prescinded.
#
# 2) The Funky function of a concrete port is the characteristic function of
#    the subset of Sv to which the USE_CABAL of this port is really reduced.
#    For example the previous USE_CABAL definitions give:
#
#      FUNKY= a_x0_ a_x1_ a_x2_ b_y0_ b_y1_ c_z0_
#
#    then the connected set
#
#      {(a,x0,defined),(a,x1,defined),(a,x2,defined),(b,y0,defined),
#       (b,y1,defined),(c,z0,defined)}
#
#    and at last the correlated Funky function.
#    In abstract the internal operations of this machinery are reduced to be
#    evaluations of a concrete Funky function.
#
# 3) If you examine in parallel the following
#
#      USE_CABAL= a:x0 a:x1 a:x2 b:y0 b:y1 c:z0
#
#      FUNKY= a_x0_ a_x1_ a_x2_ b_y0_ b_y1_ c_z0_
#
#    you can understand not only the correlation but also the ambiguity in the
#    use of the word "grue", ascribed both to the FUNKY components and to the
#    USE_CABAL components.
#    In a more correct way the "Funky grue" _a_x0 is related to the couple
#    (a,x0) and the "Cabal grue" a:x0 is related to the singleton {(a,x0)}.
#    So, in general, the grues are syntactic forms, where a Funky grue
#    "_option_flag_" denotes the application of a Funky function to a couple
#    (option,flag), and a cabal grue "a:x0:x1" denotes a partially codified
#    configuration of options/flags (sachverhalte).
#
# 4) We emphasize that the machinery is correct, and this correctness descends
#    directly and hardly from the being natural isomorphisms of T2 and T1.
#    For example it is worthwhile to underline the general property that the
#    definition of an USE_CABAL, for a new port, identifies one and only one
#    implementation, based on the file bsd.haskell.mk and vice versa
#    modulo ~~.
#
# 5) At this point it must be admitted that the assumptions, done about the
#    domain Sv until now, are too much weak compared to the real ones, done in
#    the bsd.haskell.mk file.
#    In fact:
#
#      - A "hiddenflag", marking the option, belongs to the Fl set.
#
#      - The domain Sv is a relation on (Op X Fl), defined at the debugging
#        section of the bsd.haskell.mk file, taking advantage of the former
#        equivalence relation ~ on (Op X Fl). This implementation modality was
#        suggested by considerations about the performance.
#
#
#
# In this last section I give some thought to the methodological motives
# involved in this work.
# It's likely that someone, reading for the first time these notes, gets
# annoyed and has a clean feeling of "mit Kanonen auf Spatzen schiessen",
# finishing up on asking: What is all that good for? We are not philosophers
# and you are cracking your own mind and ours.
# This feeling is justified, in some measure, exclusively in consideration of
# the fact that actually this machinery, at this moment, has not been
# exploited to the utmost; for example:
#
#   - it's possible to coordinate a network of many different domains and
#     relative variables like USE_CABAL, using the involved functorial
#     properties.
#
#   - It's possible to convey some global or local information using the
#     prescinded and dual structure of a determinate and definite USE_CABAL.
#     In the last diagram this is pointed out with the big box.
#
# I have at least three good reasons for saying this:
#
# 1) The primitive path in the imagining the bsd.haskell.mk file was exactly
#    that one described here organically.
#
# 2) The methodology adopted expresses well my point of view, as a haskeller,
#    about the programming and the software engineering.. WoW! :-).
#
# 3) Finally the most important remark. The foundation of the reasoning that
#    led me to imagine this organization of the Haskell ports is the net
#    feeling that the problem of the scalability of any system which has the
#    ambition to coordinate a complex network of ports, apart from the typical
#    problems of makefiles, is a problem of "distributed knowledge". In fact,
#    for example, in some cases, the problems of scalability for a generic
#    port system can be led back to problems of projection or retroaction or
#    conveyance of a "knowledge"; so my try to coordinate many different port
#    has been translated in these terms and the original problem of software
#    engineering has been translated in a problem of ontological engineering,
#    where the domains like Sv are a first level of ontologies.
#    Starting from this, I was nearly bound to proceed along the followed way,
#    because the best mathematical instruments, that I know, to formalize and
#    solve this kind of problems is the category theory.
#    I want ulteriorly underline that in these notes I try to provide a
#    general framework to future extensions, and that it is required a small
#    amount of elementary category and set theory only in relation to this
#    purpose, without any mathematical presumption.
#

.if !defined(_POSTMKINCLUDED) && !defined(Haskell_Pre_Include)

Haskell_Include_MAINTAINER=	jacula@gmail.com
Haskell_Pre_Include=		bsd.haskell.mk

USE_HASKELL?=	true

.if defined(USE_CABAL)

# Global definitions.

## Data of the package, the unit of distribution for Cabal.
D_NAME?=		${PORTNAME}
D_VERSION?=		${PORTVERSION}
D_NAME-VER?=		${D_NAME}-${D_VERSION}

## Hackage directories.
HACKAGE_SITE?=		http://hackage.haskell.org/
HACKAGE_ARCH?=		packages/archive/
HACKAGE_SUBDIR?=	${D_NAME}/${D_VERSION}/
MASTER_SITE_HACKAGE?=	${HACKAGE_SITE}${HACKAGE_ARCH}${HACKAGE_SUBDIR}

## The last version of ghc is the only supported until now.
GHC?=			ghc
GHC_VERSION?=		6.8.3
GHC-VER?=		${GHC}-${GHC_VERSION}
GHC_CMD?=		${LOCALBASE}/bin/${GHC}
GHC-PKG?=		ghc-pkg
GHC-PKG_CMD?=		${LOCALBASE}/bin/${GHC-PKG}
GHC-PKG-CONF?=		${LOCALBASE}/lib/${GHC-VER}/package.conf
GHC-PKG-CONF-OLD?=	${GHC-PKG-CONF}.old
GHC_DEPEND?=		${GHC}:${PORTSDIR}/lang/${GHC}
GHC_LIBDIR?=		${LOCALBASE}/lib/${GHC-VER}
GHC_DATADIR?=		${LOCALBASE}/share/${GHC-VER}
GHC_DOCSDIR?=		${LOCALBASE}/share/doc/${GHC-VER}

## A way to check the profiling status for the compiler ghc.
GHC_PROFILE_DEP?=	${GHC_LIBDIR}/libHSrts_p.a:${PORTSDIR}/lang/ghc

## The compiler.
HC?=			${GHC}
### Ghc is the only compiler supported until now.
.if ${HC} != ${GHC}
.BEGIN:
	@${ECHO_MSG} "===> bsd.haskell.mk: the only compiler supported is ${GHC}."
	@${FALSE}
.endif

HC_VERSION?=		${GHC_VERSION}
HC-VER?=		${GHC-VER}
HC_CMD?=		${GHC_CMD}
HC-PKG=?		${GHC-PKG}
HC-PKG_CMD?=		${GHC-PKG_CMD}
HC-PKG-CONF?=		${GHC-PKG-CONF}
HC-PKG-CONF-OLD?=	${GHC-PKG-CONF-OLD}
HC_DEPEND?=		${GHC}:${PORTSDIR}/lang/${GHC}
HC_LIBDIR?=		${GHC_LIBDIR}
HC_DATADIR?=		${GHC_DATADIR}
HC_DOCSDIR?=		${GHC_DOCSDIR}

ALEX_CMD?=		${LOCALBASE}/bin/alex
C2HS_CMD?=		${LOCALBASE}/bin/c2hs
CPPHS_CMD?=		${LOCALBASE}/bin/cpphs
HADDOCK_CMD?=		${LOCALBASE}/bin/haddock
HAPPY_CMD?=		${LOCALBASE}/bin/happy
HMAKE_CMD?=		${LOCALBASE}/bin/hmake
HSCOLOUR_CMD?=		${LOCALBASE}/bin/HsColour

ALEX_DEPEND?=		alex:${PORTSDIR}/devel/hs-alex
C2HS_DEPEND?=		c2hs:${PORTSDIR}/devel/hs-c2hs
CPPHS_DEPEND?=		cpphs:${PORTSDIR}/devel/hs-cpphs
HADDOCK_DEPEND?=	haddock:${PORTSDIR}/devel/hs-haddock
HAPPY_DEPEND?=		happy:${PORTSDIR}/devel/hs-happy
HMAKE_DEPEND?=		hmake:${PORTSDIR}/devel/hs-hmake
HSCOLOUR_DEPEND?=	HsColour:${PORTSDIR}/print/hs-hscolour

## "Versioned" directories for the distribution useful to the Cabal system.
D_SUBDIR?=		${D_NAME-VER}
D_DATADIR?=		${PREFIX}/share
D_DATASUBDIR?=		${D_SUBDIR}
D_DOCDIR?=		${D_DATADIR}/doc/${D_SUBDIR}
D_HTMLDIR?=		${D_DOCDIR}/html
D_LIBDIR?=		${PREFIX}/lib
D_LIBSUBDIR?=		${D_SUBDIR}/${HC-VER}

## Relative directories for the distribution useful to the port system.
D_EXAMPLESSUBDIR?=	examples/${D_SUBDIR}
D_LIBDIR_REL?=		lib/${D_SUBDIR}
D_LIBSUBDIR_REL?=	lib/${D_LIBSUBDIR}

## Port directories for the distribution useful to the port system.
CABAL_DATADIR?=		${D_DATADIR}/${D_DATASUBDIR}
CABAL_DOCSDIR?=		${D_DOCDIR}
CABAL_EXAMPLESDIR?=	${D_DATADIR}/${D_EXAMPLESSUBDIR}
DATADIR=		${CABAL_DATADIR}
DOCSDIR=		${CABAL_DOCSDIR}
EXAMPLESDIR=		${CABAL_EXAMPLESDIR}

## Haddock related things.
HADDOCK_HTML?=		${D_HTMLDIR}
HADDOCK_INTERFACE?=	${D_HTMLDIR}/${D_NAME}.haddock
HADDOCK_INTERFACES?=	${HADDOCK_INTERFACE}

## Hscolour related things.
HSCOLOUR_VERSION?=	1.10
HSCOLOUR_DATADIR?=	${LOCALBASE}/share/hscolour-${HSCOLOUR_VERSION}
HSCOLOUR_CSS?=		${HSCOLOUR_DATADIR}/hscolour.css

## File to register the distribution.
D_REG?=			register.sh
D_REG_CMD?=		${PREFIX}/${D_LIBDIR_REL}/${D_REG}

## Command to register a distribution.
REG_CMD?=		${D_REG_CMD}; ${RM} -f ${HC-PKG-CONF-OLD}

## Command to unregister a distribution.
UNREG_CMD?=		${HC-PKG_CMD} unregister ${D_NAME}; ${RM} -f ${HC-PKG-CONF-OLD}

## Export the essential.
PLIST_SUB+=		HC=${HC} \
			HC_VERSION=${HC_VERSION} \
			HC-VER=${HC-VER} \
			D_LIBDIR_REL=${D_LIBDIR_REL} \
			D_LIBSUBDIR_REL=${D_LIBSUBDIR_REL} \
			D_NAME=${D_NAME} \
			D_VERSION=${D_VERSION} \
			D_NAME-VER=${D_NAME-VER} \
			HC-PKG_CMD=${HC-PKG_CMD} \
			HC-PKG-CONF-OLD=${HC-PKG-CONF-OLD} \
			D_REG=${D_REG} \
			D_REG_CMD=${D_REG_CMD} \
			REG_CMD="${REG_CMD}" \
			UNREG_CMD="${UNREG_CMD}"

## Setup conveniences.
SETUP_CMD?=		./setup
SETUP_ENV?=		${SETENV}
SETUP_WRKSRC?=		${WRKSRC}
SETUP_MODULE?=		Setup.hs
SETUP_TARGETS?=		configure makefile build haddock register copy install

### Configuration options to pass to SETUP_CONFIGURE_ARGS with
### --configure-option in the build-type Make.
### This variable is cumulative.
CONFIGURE_OPTIONS?=

### Generate, on the fly, the variables like TARGET_ENV and
### TARGET_ARGS. These variables, except SETUP_GEN_ARGS, are
### cumulative.
.for t in gen ${SETUP_TARGETS}
SETUP_${t:U}_ENV?=
SETUP_${t:U}_ARGS?=
.endfor

## In place directories.
INPLACE?=	${WRKDIR}/inplace
INPLACE_BIN?=	${INPLACE}/bin

# Base internal variables.

## Options that USE_CABAL can load.

### The modes set the condition for the installation.
_CABAL_MODES=	base distrgmake distrmake distrsimple docs genreg lhs noreg profile
### The tools set which cabal distributions to use and as to use them.
_CABAL_TOOLS=	alex c2hs cpphs ghc ghc-pkg haddock happy hc hc-pkg hmake hscolour
### The option universe.
_CABAL_OPTIONS=	${_CABAL_MODES} ${_CABAL_TOOLS}

## Flags that USE_CABAL can load.

### The confflags.
_CABAL_CONF_FLAGS=	noargs nopath
### The depflags.
_CABAL_DEP_FLAGS=	bothdep nodep rundep
### The switchflags.
_CABAL_SW_FLAGS=	all auto both full exec
### The flag universe.
_CABAL_FLAGS=		${_CABAL_CONF_FLAGS} ${_CABAL_DEP_FLAGS} ${_CABAL_SW_FLAGS}

## The heiresses protect and spread the settings for the variables like
## TOOL_CMD and TOOL_DEPEND in the form of _tool_CMD and _tool_DEPEND.
.for _t in ${_CABAL_TOOLS}
.  if defined(${_t:U}_CMD)
_${_t}_CMD=	${${_t:U}_CMD}
_tools_CMD+=	${_t}
.  endif
.  if defined(${_t:U}_DEPEND)
_${_t}_DEPEND=	${${_t:U}_DEPEND}
_tools_DEPEND+=	${_t}
.  endif
.endfor

## List of the build dependences set by these internal settings.
_list_BUILD_DEPENDS=
## List of the run dependences set by these internal settings.
_list_RUN_DEPENDS=
## List of the profiling dependences set by these internal settings.
_list_PROFILE_DEPENDS=

################################* START FUNKY *################################

# Extrapolate the information from the mistress USE_CABAL and incapsulate
# them into the function Funky.
#
# Defining USE_CABAL empty or "yes" or "true" activates only the use of the
# Haskell base environment. Defining this one as a list of "option:flags"
# activates the Haskell extended environment, macros and targets.
.if !empty(USE_CABAL) && ${USE_CABAL} != yes && ${USE_CABAL} != true

## The full debug for Funky implies debugging.
.  if defined(FUNKY_DEBUG_FULL)
FUNKY_DEBUG=
.  endif

###########################** No Funky Debug Mode **###########################

## Define Funky without debugging.
.  if !defined(FUNKY_DEBUG)
_fields=	${USE_CABAL}				# <--- INPUT
_grues=

##########################*** The Funky Intension ***##########################

### Examine each field in USE_CABAL.
.    for _field in ${_fields}
#### Define a schematic variable _option for the option in the field.
.      for _option in ${_field:C/:.*//g}
##### Link the hidden flag to the option.
_grues+=	_${_option}__				# ---> OUTPUT
##### Flags in the field.
_flags=		${_field:C/[^:]+:/:/1:M\:*:S/:/ /g}
##### Examine each flag in the field.
.         for _flag in ${_flags}
###### Link the flag to its option.
_grues+=	_${_option}_${_flag}_			# ---> OUTPUT
.         endfor
.      endfor
.    endfor

##########################*** The Funky Extension ***##########################

### Define FUNKY and grues.
_FUNKY=		${_grues}
### Define FUNKY, ordering an unifying _FUNKY.
FUNKY=		${_FUNKY:O:u}
### Define grues.
.    for _grue in ${FUNKY}
${_grue}=	defined
.    endfor
.  endif	# !defined(FUNKY_DEBUG)

############################** Funky Debug Mode **#############################

## Define Funky with debugging.
.  if defined(FUNKY_DEBUG)

### Use _check_flag for a better scalability without too much branching.
_check_flag=		0
### Use _idle_for for an idling of the "for loop" that permits to trap
### the first error.
_idle_for=		0
### End message.
_end_msg=
### Warn message.
_warn_msg=

##########################*** The Funky Intension ***##########################

_fields=	${USE_CABAL}				# <--- INPUT
_grues=

### General syntactic controls.

#### Look for incorrect chars in USE_CABAL.
_chars_check=	${_fields:C/[[:alnum:]:-]//g}
.    if !empty(_chars_check)
_end_msg=	the "${_chars_check}" chars are not regular
_check_flag=	1

.    else
#### Look for incorrect fields: the only correct forms are: a or a:b or a:b:c..
_fields_check=	${_fields:M\:*} ${_fields:M*\:} ${_fields:M*\:\:*}
_fields_check:=	${_fields_check:O:u}
.      if !empty(_fields_check)
_end_msg=	incorrect spelling (${_fields_check:C/(.*)/"\1"/g}). The form of a field is "a[[:b]:c]..."
_check_flag=	1
.      endif
.    endif

### Option controls.

.    if ${_check_flag} == 0
#### Examine each field in USE_CABAL.
.      for _field in ${_fields}
.      if ${_idle_for} == ${_check_flag}

##### Define a schematic variable _option for the option in the field.
.        for _option in ${_field:C/:.*//g}

###### Examine the option in the field and control if the option is legal.
_option_check=	${_CABAL_OPTIONS:M${_option}}
.          if empty(_option_check)
_end_msg=	requires unknown option ("${_option}" in "${_field}")
_check_flag=	1

.          else
####### If all is correct, link the hidden flag to the option.
_grues+=	_${_option}__				# ---> OUTPUT
.          endif

.        endfor
.      endif	# _idle_for
.      endfor	# _field in ${_fields}
.    endif	# empty(_option_check)

### Flag controls.

.    if ${_check_flag} == 0

#### Examine each field in USE_CABAL.
.      for _field in ${_fields}
.      if ${_idle_for} == ${_check_flag}

##### Define a schematic variable _option for the option in the field.
.        for _option in ${_field:C/:.*//g}
###### Lift the rank of the schematic variable _option to the role of
###### language variable as __option.
__option=	${_field:C/:.*//g}

###### Flags in the field.
_flags=		${_field:C/[^:]+:/:/1:M\:*:S/:/ /g}

###### Control how a field is built and if it is composed by flags or only
###### by an option.
.          if !empty(_flags)

_option_tools_check=	${_CABAL_TOOLS:M${_option}}
.              if empty(_option_tools_check)
_option_modes_check=	${_option}
_option_depend_check=
_option_cmd_check=

.              else
_option_modes_check=
_option_depend_check=	${_tools_DEPEND:M${_option}}
_option_cmd_check=	${_tools_CMD:M${_option}}
.              endif

###### Examine each flag in the field.
.            for _flag in ${_flags}
.            if ${_idle_for} == ${_check_flag}
####### Lift the rank of the schematic variable _flag to the role of
####### language variable as __flag.
__flag=	${_flag}

####### Control if the flag is legal.
_flag_check=	${_CABAL_FLAGS:M${_flag}}
.              if empty(_flag_check)
_end_msg=	requires unknown flag ("${_flag}" in "${_field}")
_check_flag=	1

.              else	# empty(_flag_check)
_flag_conf_check=	${_CABAL_CONF_FLAGS:M${_flag}}
_flag_dep_check=
_flag_sw_check=
.                if empty(_flag_conf_check)
_flag_dep_check=	${_CABAL_DEP_FLAGS:M${_flag}}
.                  if empty(_flag_dep_check)
_flag_sw_check=		${_flag}
.                  endif
.                endif

######## Check for a correct application of the confflags.
.                if !empty(_flag_conf_check)
######### Check for a correct group application of the flag.
.                  if empty(_option_tools_check)
_end_msg=	flag applied to the incorrect option group ("${_flag}" in "${_field}")
_check_flag=	1
######### Check for a correct application of the flag.
.                  elif empty(_option_cmd_check)
_end_msg=	flag applied incorrectly ("${_flag}" in "${_field}")
_check_flag=	1
.                  endif

######## Check for a correct application of the depflags.
.                elif !empty(_flag_dep_check)
######### Check for a correct group application of the flag.
.                  if empty(_option_tools_check)
_end_msg=	flag applied to the incorrect option group ("${_flag}" in "${_field}")
_check_flag=	1
######### Check for a correct application of the flag.
.                  elif empty(_option_depend_check)
_end_msg=	flag applied incorrectly ("${_flag}" in "${_field}")
_check_flag=	1
.                  endif

######## Check for a correct application of the switchflags.
.                elif !empty(_flag_sw_check)
######### Check for a correct group application of the flag.
.                  if empty(_option_modes_check)
_end_msg=	flag applied to the incorrect option group ("${_flag}" in "${_field}")
_check_flag=	1
######### Check for a correct application of the flag.
.                  elif ${__flag} == full
.                    if ${__option} != profile && ${__option:Mdistr*} == ""
_end_msg=	flag applied incorrectly ("${_flag}" in "${_field}")
_check_flag=	1
.                    endif
.                  elif ${__flag} == exec
.                    if ${__option} != profile && ${__option} != distrsimple
_end_msg=	flag applied incorrectly ("${_flag}" in "${_field}")
_check_flag=	1
.                    endif
.                  elif ${__flag} == auto || ${__flag} == all || ${__flag} == both
.                    if ${__option} != profile
_end_msg=	flag applied incorrectly ("${_flag}" in "${_field}")
_check_flag=	1
.                    endif
.                  endif	# empty(_option_modes_check)

.                endif		# !empty(_flag_conf_check)
.              endif		# empty(_flag_check)

.              if ${_check_flag} == 0
####### If all is correct, link the flag to its option.
_grues+=	_${_option}_${_flag}_			# ---> OUTPUT
.              endif

.            endif	# _idle_for
.            endfor	# _flag in ${_flags}
.          endif	# !empty(_flags)
.        endfor		# _option in ${_field:C/:.*//g}
.      endif		# _idle_for
.      endfor		# _field in ${_fields}
.    endif		# ${_check_flag} == 0

##########################*** The Funky Extension ***##########################

### Define FUNKY and grues.
.    if ${_check_flag} == 0 || defined(FUNKY_DEBUG_FULL)
_FUNKY=		${_grues}
#### Define FUNKY, ordering an unifying _FUNKY.
FUNKY=		${_FUNKY:O:u}
#### Define grues.
.      for _grue in ${FUNKY}
${_grue}=	defined
.      endfor
.    endif

### Check the coherency of Funky.

.    if ${_check_flag} == 0

#### Hack (clarity) for (speed)
_funky_distres_number=		${FUNKY:C/_(distr.+)_.*_/\1/g:C/_.*_//g:O:u:C/(.+)/X/g}

_funky_confflags_number=	${FUNKY:C/_.*_(noargs|nopath)_/\1/g:C/_.*_//g:C/(.+)/X/g}

_funky_dep_flagged=	${FUNKY}
.        for _f in ${_CABAL_DEP_FLAGS}
_funky_dep_flagged:=	${_funky_dep_flagged:C/_(.*)_${_f}_/\1/g}
.        endfor
_funky_dep_flagged:=	${_funky_dep_flagged:C/_.*_//g:O}
_funky_dep_flagged_u=	${_funky_dep_flagged:u}

_funky_distrfull_check=	${FUNKY:M_distr*_full_}

#### Start checking.
.      if !empty(_funky_distres_number) && ${_funky_distres_number} != X
_end_msg=	the "distr.*" options are mutually exclusive
_check_flag=	2

.      elif ${_funky_dep_flagged} != ${_funky_dep_flagged_u}
_end_msg=	the flags "nodep", "rundep" and "bothdep" are mutually exclusive
_check_flag=	2
.      endif

.      if ${_check_flag} == 0
.        if defined(_distrsimple__)
.          if defined(_profile_exec_) && defined(_profile_both_)
_end_msg=	"profile:exec" and "profile:both" are incompatible for the build-type Simple
_check_flag=	2
.          endif
.        else
.          if !empty(_funky_confflags_number)
_end_msg=	setting "noargs" or "nopath" is useless for a build-type other than Simple
_check_flag=	2
.          elif defined(_profile_both_)
_end_msg=	"profile:both" should be used with the build-type Simple
_check_flag=	2
.          elif defined(_profile_exec_)
_end_msg=	"profile:exec" should be used with the build-type Simple
_check_flag=	2
.          elif defined(_profile_auto_)
_end_msg=	"profile:auto" should be used with the build-type Simple
_check_flag=	2
.          elif defined(_profile_all_)
_end_msg=	"profile:all" should be used with the build-type Simple
_check_flag=	2
.          endif
.        endif
.      endif	# ${_check_flag} == 0

.      if ${_check_flag} == 0
.        if empty(_funky_distrfull_check)
.          if defined(_noreg__)
_end_msg=	the option "noreg" is useless without a full flagged build-type
_check_flag=	2
.          elif defined(_profile_full_)
_end_msg=	"profile:full" is useless without a full flagged build-type
_check_flag=	2
.          endif
.        endif
.      endif	# ${_check_flag} == 0

.    endif	# ${_check_flag} == 0

### Undefine FUNKY and grues.
.    if ${_check_flag} != 0
.      if ${_check_flag} == 2 && !defined(FUNKY_DEBUG_FULL)
#### Undefine the grues.
.        for _grue in ${FUNKY}
.          undef ${_grue}
.        endfor
#### An empty Funky.
FUNKY=
.      endif
#### Return a error message.
IGNORE=		in USE_CABAL: ${_end_msg}
.    endif

### Warning about Funky.
.    if defined(_distrsimple__) && defined(_profile_auto_) && defined(_profile_all_)
_warn_msg+=	'setting both "profile:auto" and "profile:all" is useless for the build-type Simple'
.    endif

.  endif	# defined(FUNKY_DEBUG)

.else	# !empty(USE_CABAL) && ${USE_CABAL} != yes && ${USE_CABAL} != true
## An empty Funky.
FUNKY=
.endif	# !empty(USE_CABAL) && ${USE_CABAL} != yes && ${USE_CABAL} != true

#################################* END FUNKY *#################################

# Reduce the USE_CABAL settings to real process implementations.

## Reduce the modes to real process implementations.

.if defined(_docs__)
.  if defined(WITHOUT_DOCS)
NOPORTDOCS=	true
.  endif
.  if !defined(NOPORTDOCS)
PORTDOCS=	*
PLIST_SUB+=	DOCS=""
PLIST_SUB+=	NOPORTDOCS="@comment "
### The mode docs activates the tools haddock and hscolour.
.  if !defined(_haddock__)
_haddock__=	defined
FUNKY+=		_haddock__
.  endif

.  if !defined(_hscolour__)
_hscolour__=	defined
FUNKY+=		_hscolour__
.  endif

.  else
PLIST_SUB+=	DOCS="@comment "
PLIST_SUB+=	NOPORTDOCS=""
HADDOCK_HTML=
HADDOCK_INTERFACES=
.  endif
.endif

.if defined(_lhs__)
SETUP_MODULE=	Setup.lhs
.endif

.if defined(_profile__)
.  if defined(WITHOUT_PROFILE) || defined(NOPROFILE)
NO_PROFILE=	true
.  endif
.  if !defined(NO_PROFILE)
PLIST_SUB+=		PROFILE=""
PLIST_SUB+=		NOPROFILE="@comment "

.    if defined(_distrsimple__)
.      if !defined(_profile_exec_)
SETUP_CONFIGURE_ARGS+=	--enable-library-profiling
.      endif
.      if defined(_profile_exec_) || defined(_profile_both_)
SETUP_CONFIGURE_ARGS+=	--enable-executable-profiling
.      endif
### GHC specific argument for profiling.
.      if defined(_profile_auto_)
SETUP_CONFIGURE_ARGS+=	--${GHC}-option=-auto
.      endif
### GHC specific argument for profiling.
.      if defined(_profile_all_)
SETUP_CONFIGURE_ARGS+=	--${GHC}-option=-auto-all
.      endif
.    endif
.  else
PLIST_SUB+=	PROFILE="@comment "
PLIST_SUB+=	NOPROFILE=""
.  endif
.endif

### Activate the switchflag "exec" for distrsimple. The distr* modes activate
### also a minimal base configuration for the installation.
.if defined(_distrsimple__)
.  if defined(_distrsimple_exec_)
SETUP_HADDOCK_ARGS+=	--executables
.  endif
.  if !defined(_base__)
_base__=	defined
FUNKY+=		_base__
.  endif

.elif defined(_distrmake__) || defined(_distrgmake__)
.  if !defined(_base__)
_base__=	defined
FUNKY+=		_base__
.  endif
.endif

### Actually the standard assumes that some options have to be accepted, but
### not always this is true for the installation based on Distribution.Make.
### In these cases, if you have some problems with these selected options, you
### can, for example, patch the configure script inserting a dummy option for
### the Cabal needs. The options --libdir, --datadir were not added as, for the
### build-system Make, the standard is too much generic.
.if defined(_base__)
SETUP_GEN_ARGS=		--make ${SETUP_MODULE} -o ${SETUP_CMD} -package Cabal
SETUP_CONFIGURE_ARGS+=	--prefix=${PREFIX} --with-compiler=${_hc_CMD} --with-hc-pkg=${_hc-pkg_CMD}

#### Always the compiler is a build dependence in every situation that implies
#### the base mode (for example the distr* modes).
.if !defined(_hc_bothdep_) && !defined(_ghc_bothdep_)
_list_BUILD_DEPENDS+=	${HC_DEPEND}
.endif

.  if defined(_profile__)
.    if !defined(NO_PROFILE)
#### Always the compiler is a profile dependence in every situation that
#### implies the base mode (for example the distr* modes).
_list_PROFILE_DEPENDS+=	${GHC_PROFILE_DEP}
.    endif
.  endif
.endif

## Reduce the tools to real process implementations.

.if defined(_distrsimple__)
### hc is not a program known by Cabal and the --with-hc argument is for the
### build-type Make.
.  if defined(_hc__)
.    if !defined(_hc_noargs_)
_hc_noargs_=	defined
FUNKY+=		_hc_noargs_
_hc_nopath_=	defined
FUNKY+=		_hc_nopath_
.    endif
.  endif
### hc-pkg is not a program known by Cabal and only the --with-hc-pkg argument
### is accepted by this one.
.  if defined(_hc-pkg__)
.    if !defined(_hc-pkg_noargs_)
_hc-pkg_noargs_=	defined
FUNKY+=			_hc-pkg_noargs_
.    endif
.  endif
.endif

.for _option in ${_CABAL_TOOLS}

.  if defined(_${_option}__)
.    if defined(_${_option}_rundep_) || defined(_${_option}_bothdep_)
_list_RUN_DEPENDS+=	${_${_option}_DEPEND}
.    endif

.    if !defined(_${_option}_nodep_) && !defined(_${_option}_rundep_)
_list_BUILD_DEPENDS+=	${_${_option}_DEPEND}
.    endif

.    if defined(_distrsimple__)
.      if !defined(_${_option}_nopath_)
SETUP_CONFIGURE_ARGS+=	--with-${_option}=${_${_option}_CMD}
.      endif

.      if !defined(_${_option}_noargs_)
SETUP_CONFIGURE_ARGS+=	${${_option:U}_ARGS:%=--${_option}-option=%}
.      endif
.    endif
.  endif

.endfor

### Reordering and unifying FUNKY in any way.
FUNKY:=		${FUNKY:O:u}

# Building features.

## Building grounded on the Distribution.Simple library.
.if defined(_distrsimple__)
SETUP_CONFIGURE_ARGS+=	--${HC} --libdir=${D_LIBDIR} --libsubdir=${D_LIBSUBDIR} \
			--datadir=${D_DATADIR} --datasubdir=${D_DATASUBDIR} \
			--docdir=${D_DOCDIR} --htmldir=${D_HTMLDIR}
SETUP_HADDOCK_ARGS+=	--hyperlink-source --hscolour-css=${HSCOLOUR_CSS}
SETUP_REGISTER_ARGS+=	--gen-script
.endif

## Building grounded on the Distribution.Make library. Cabal is compiled to
## recognize a generic "make" command, then gmake have to be passed as make
## when the gnu make is used; de facto always.
## The options have to be passed to the configure script with the setup
## process.
.if defined(_distrgmake__)
USE_GMAKE=	yes

PATH:=		${INPLACE_BIN:C/(.+)/\1:/g}${PATH}

.for t in gen ${SETUP_TARGETS}
SETUP_${t:U}_ENV+=	PATH="${PATH}"
.endfor

SETUP_CONFIGURE_ARGS+=	${CONFIGURE_OPTIONS:%=--configure-option=%}

.endif

## Final commands.

### Generate the setup utility.
SETUP_GEN?=	cd ${SETUP_WRKSRC} && ${SETUP_GEN_ENV:C/^(.+)/${SETUP_ENV} \1/1} ${GHC_CMD} ${SETUP_GEN_ARGS}

### Commands tied to Cabal targets.
.for _t in gen ${SETUP_TARGETS}
SETUP_${_t:U}?=	cd ${SETUP_WRKSRC} && ${SETUP_${_t:U}_ENV:C/^(.+)/${SETUP_ENV} \1/1} ${SETUP_CMD} ${_t} ${SETUP_${_t:U}_ARGS}
.endfor

### For the "distrgmake" mode we need "gmake" in disguise mode
### as "make" without using an absolute path.
GMAKE_LINK?=	(${MKDIR} ${INPLACE_BIN} && \
		${ECHO_CMD} -e '\#!${SH}\n\n${GMAKE} $${*}' > ${INPLACE_BIN}/make && \
		${CHMOD} ${BINMODE} ${INPLACE_BIN}/make)

### Macro to generate html files from haskell source files with the HsColour utility.
### Usage: This macro uses four arguments on the command line, and absolute paths:
###        ${GEN_HSCOLOUR} PathToSources PathToDestination Flag[(0 does |1 does not) copy hscolour.css] FindArguments
GEN_HSCOLOUR=	${SH} -c '(\
	srcdir="$${0}" && destdir="$${1}" && cd $${srcdir} && \
	tmplist="$$(find . -type f \( -name '*.hs' -or -name '*.lhs' \) $${3} | ${SED} -e "s/^\.\///g")" && \
	${MKDIR} $${destdir} && \
	for c in $${tmplist}; \
	do \
		checked="$$(${ECHO_CMD} $${c} | ${SED} -e "s/\//-/g" -e "s/\.hs$$/\.html/g" -e "s/\.lhs$$/\.html/g")" && \
		${ECHO_CMD} "HsColour -css -anchor -o$${destdir}/$${checked} $${srcdir}/$${c}" && \
		HsColour -css -anchor -o$${destdir}/$${checked} $${srcdir}/$${c}; \
	done && \
	if [ "$${2}" = "1" ]; \
	then \
		${ECHO_CMD} "${CP} -p ${HSCOLOUR_CSS} $${destdir}" && \
		${CP} -p ${HSCOLOUR_CSS} $${destdir}; \
	fi \
	)' --

### Macro to install the registration script after its generation.
### Usage: This macro uses one argument on the command line, and absolute path:
###        ${INSTALL_REGISTER} PathToRegister
INSTALL_REGISTER=	${SH} -c '(${INSTALL_SCRIPT} $${0} ${D_REG_CMD})' --

### Macro to generate the D_REG file for the distribution after its installation
### and registration.
### Usage: This macro uses two arguments on the command line, and absolute path:
###        ${GEN_REGISTER} PathToRegister CabalName
GEN_REGISTER=	${SETENV} QUOTE="'" ${SH} -c '(\
	if ${HC-PKG_CMD} field $${1} name > /dev/null 2>&1; \
	then \
		${HC-PKG_CMD} describe $${1} | ${AWK} -v HCPKGCMD="${HC-PKG_CMD}" \
		"BEGIN{ printf \"%s\n\n%s\", \"\#!${SH}\", \"echo $${QUOTE}\" } \
		{ reg[NR]=\$$0 } \
		END{ for(i = 1; i < NR; i++) print reg[i]; printf \"%s$${QUOTE} %s\n\", reg[NR], \"| \" HCPKGCMD \" update -\" }" \
		> $${0} && ${CHMOD} 555 $${0}; \
	else \
		${ECHO_MSG} "Error generating register file: $${1} - No such distribution"; \
	        ${FALSE}; \
	fi \
	)' --

### Macro to change the registration script after its generation and the
### distribution registration. It is possible to change any Cabal field
### on the fly and generate a new registration script.
### Usage: This macro uses four arguments on the command line and absolute paths:
###        ${CHANGE_FIELD} PathToNewRegister CabalName CabalField NewFieldString.
CHANGE_FIELD=	${SETENV} QUOTE="'" ${SH} -c '(\
	if ${HC-PKG_CMD} field $${1} name > /dev/null 2>&1; \
	then \
		${HC-PKG_CMD} describe $${1} | ${AWK} -v HCPKGCMD="${HC-PKG_CMD}" \
						      -v FIELD="$${2}:.*" \
						      -v NEWFIELD="$${2}:$${3}" \
						      -v CHECK=0 \
		"BEGIN{ printf \"%s\n\n%s\", \"\#!${SH}\", \"echo $${QUOTE}\" } \
		{ if(CHECK == 0) \
			{ reg[NR]=\$$0; if(\$$0 ~ FIELD) { reg[NR]=NEWFIELD; CHECK=1 } } \
		  else \
		  	{ if(CHECK == 1) \
				{ if(\$$0 ~ /^[[:alpha:]][^:]+:.*/) \
					{ reg[NR]=\$$0; CHECK=2 } \
				  else \
				  { NR--; next } \
				} \
			  else \
				{ reg[NR]=\$$0 } \
			} \
		} \
		END{ for(i = 1; i < NR; i++) { print reg[i] }; \
			printf \"%s$${QUOTE} %s\n\", reg[NR], \"| \" HCPKGCMD \" update -\" }" \
		> $${0} && ${CHMOD} 555 $${0}; \
	else \
		${ECHO_MSG} "Error generating new register file: $${1} - No such distribution"; \
	        ${FALSE}; \
	fi \
	)' --

### Macro to change the registration script after its generation;
### by default it changes the haddock fields in this script.
### Usage: This macro uses four arguments on the command line and absolute paths:
###        ${GEN_REGISTER} PathToRegister HaddockInterfaces HaddockHtml [ext]
CHANGE_REGISTER=	${SETENV} QUOTE="'" ${SH} -c '(\
	if [ -f "$${0}" ]; \
	then \
		d_reg="$$(${BASENAME} $${0})" && \
		tmp_reg="$$(${MKTEMP} -t $${d_reg})" && \
		${CAT} $${0} > $${tmp_reg} && \
		if [ -n "$${3}" ]; \
		then \
			${CP} -fp $${0} $${0}$${3}; \
		fi && \
		${AWK} -v HKINTF="haddock-interfaces:$${1}" \
		       -v HKHTML="haddock-html:$${2}" \
		       -v CHECK=0 \
		"{ if(CHECK == 0) \
			{ \
				if(\$$0 ~ /^haddock-interfaces:.*/) \
					{ sub(/^haddock-interfaces[^|$${QUOTE}]+/, HKINTF); CHECK=1 } \
			} \
		   else \
			{ if(CHECK == 1) \
				{ if(\$$0 ~ /^[[:alpha:]][^:]+:.*/) \
					{ \
						{ if(\$$0 ~ /^haddock-html:.*/) \
							{ sub(/^haddock-html[^|$${QUOTE}]+/, HKHTML) } \
						} \
						;CHECK=2 \
					} \
				  else \
				  	{ next } \
				} \
			  else \
			  	{ if(\$$0 ~ /^haddock-html:.*/) \
					{ sub(/^haddock-html[^|$${QUOTE}]+/, HKHTML) } \
				} \
			} \
		  { printf \"%s\n\", \$$0 } \
		}" \
		$${tmp_reg} > $${0} && \
		${RM} -f $${tmp_reg}; \
	else \
		${ECHO_MSG} "Error changing register file: $${0} - No such file"; \
	        ${FALSE}; \
	fi \
	)' --

### Macro to register a distribution.
### Usage: This macro uses one argument on the command line and absolute path:
###        ${DO_REGISTER} PathToRegister
DO_REGISTER=	${SH} -c '(\
	if [ -x "$${0}" ]; \
	then \
		$${0}; ${RM} -f ${HC-PKG-CONF-OLD}; \
	else \
		${ECHO_MSG} "Error registering: $${0} - No such executable register file"; \
	        ${FALSE}; \
	fi \
	)' --

### Macro to unregister a distribution;
### Usage: This macro uses one argument on the command line:
###        ${DO_UNREGISTER} CabalName
DO_UNREGISTER=	${SH} -c '(\
	if ${HC-PKG_CMD} field $${0} name > /dev/null 2>&1; \
	then \
		${HC-PKG_CMD} unregister $${0}; ${RM} -f ${HC-PKG-CONF-OLD}; \
	else \
		${ECHO_MSG} "Error unregistering: $${0} - No such Cabal distribution"; \
	        ${FALSE}; \
	fi \
	)' --

### Macro to check the PROFILE_DEPENDS variable.
### Usage: This macro uses one argument on the command line and absolute path:
###        ${CHECK_PROFILE} "ProfDepsList"
CHECK_PROFILE=	${SH} -c '(\
	    check_flag=0; \
	    for p in $${0}; \
	    do \
	        if ! ${EXPR} "$${p}" : "[^:][^:]*:[^:][^:]*$$" > /dev/null  2>&1; \
	        then \
		    end_msg="Error: in PROFILE_DEPENDS there is an empty field for \"$${p}\"."; \
	            check_flag=1; \
	        else \
	            lib_p="$${p%%:*}"; \
	            depdir="$${p\#*:}"; \
	            if [ ! -d "$${depdir}" ]; \
	            then \
	                end_msg="Error: in PROFILE_DEPENDS no directory \"$${depdir}\" for \"$${lib_p}\"."; \
	                check_flag=1; \
	            else \
	                depdirrel=$$(cd $${depdir} && ${MAKE} -V PKGORIGIN); \
	                dlibsubdirrel=$$(cd $${depdir} && ${MAKE} -V D_LIBSUBDIR_REL); \
	                dversion=$$(cd $${depdir} && ${MAKE} -V D_VERSION); \
	                lib_p="$$(${ECHO_CMD} $${lib_p} | ${SED} -e "s/%%ver%%/$${dversion}/g")"; \
	                case $${lib_p} in \
	                        /*) path_p="$${lib_p}";; \
	                         *) path_p="${LOCALBASE}/$${dlibsubdirrel}/$${lib_p}"; \
	                            if [ ! -f $${path_p} ]; \
	                            then \
	                                path_p="$${path_p}_p.a"; \
	                            fi;; \
	                esac; \
	                end_msg="===>   ${PKGNAME} depends on the profiling file: $$(${BASENAME} $${path_p})"; \
	                if [ -f "$${path_p}" ]; \
	                then \
	                    end_msg="$${end_msg} - found"; \
	                else \
	                    end_msg="$${end_msg} - not found\n"; \
	                    end_msg="$${end_msg}===>    You have to install the profiling libraries of $${depdirrel}.\n"; \
	                    end_msg="$${end_msg}===>    Checking if $${depdirrel} is already installed"; \
	                    already_installed="$$(${PKG_INFO} -q -O $${depdirrel})"; \
	                    if [ -n "$${already_installed}" ]; \
	                    then \
	                        end_msg="$${end_msg} - yes\n"; \
	                        end_msg="$${end_msg}         => the port "$${depdirrel}" is already installed:\n"; \
	                        end_msg="$${end_msg}         => you have to reinstall it with the profiling libraries.\n\n"; \
			        end_msg="$${end_msg}Error: installing ${PKGORIGIN} with the profiling libraries."; \
	                        check_flag=1; \
	                    else \
	                        end_msg="$${end_msg} - no\n"; \
	                        end_msg="$${end_msg}===>    Verifying the profiling setting for $${depdirrel}"; \
	                        no_profile="$$(cd $${depdir} && ${MAKE} -V NO_PROFILE)"; \
	                        noprofile="$$(cd $${depdir} && ${MAKE} -V NOPROFILE)"; \
			        withoutprofile="$$(cd $${depdir} && ${MAKE} -V WITHOUT_PROFILE)"; \
	                        profiling=""; \
	                        if [ -n "$${no_profile}" ]; \
	                        then \
	                            profiling="NO_PROFILE"; \
	                        elif [ -n "$${noprofile}" ]; \
	                        then \
	                            profiling="NOPROFILE"; \
			        elif [ -n "$${withoutprofile}" ]; \
	                        then \
	                            profiling="WITHOUT_PROFILE"; \
			        fi; \
	                        if [ -n "$${profiling}" ]; \
	                        then \
	                            end_msg="$${end_msg} - not ok\n"; \
	                            end_msg="$${end_msg}         => the option "$${profiling}" is set in the $${depdirrel}:\n"; \
	                            end_msg="$${end_msg}         => you have to unset it before installing the port.\n\n"; \
			            end_msg="$${end_msg}Error: installing ${PKGORIGIN} with the profiling libraries."; \
	                            check_flag=1; \
	                        else \
	                            end_msg="$${end_msg} - ok"; \
	                        fi; \
	                    fi; \
	                fi; \
	            fi; \
	        fi; \
	        ${ECHO_MSG} -e "$${end_msg}"; \
	        if [ $${check_flag} -eq 1 ]; \
	        then \
	            break; \
	        fi; \
	    done; \
	    if [ $${check_flag} -eq 1 ]; \
	    then \
	        ${FALSE}; \
	    fi \
	)' --

### Macro to show all directories which are profiling dependences for this port.
### Usage: This macro uses one argument on the command line and absolute path:
###        ${PROFILE_DEPENDS_LIST} "ProfDepsList"
PROFILE_DEPENDS_LIST=	${SH} -c '(\
	for dir in $$(${ECHO_CMD} "$${0}" | ${SED} -E -e "s/([^: ]+):([^: ]+)/\2/g" -e "y/ /\n/" | ${SORT} -u); \
	do \
		if [ -d $${dir} ]; \
		then \
			${ECHO_CMD} $${dir}; \
		else \
			${ECHO_MSG} "${PKGNAME}: \"$${dir}\" non-existent -- dependence list incomplete" >&2; \
		fi; \
	done | ${SORT} -u \
	)' --

### Macro to show a Cabal field of a Cabal distribution.
### Usage: This macro uses two arguments on the command line:
###        ${HC-PKG_FIELD} CabalName CabalField
HC-PKG_FIELD=	${SH} -c '(\
	if ${HC-PKG_CMD} field $${0} name > /dev/null 2>&1; \
	then \
		if field=$$(${HC-PKG_CMD} field $${0} $${1} 2> /dev/null); \
		then \
			${ECHO_CMD} $${field} | ${SED} -e "s/^$${1}:[[:space:]]*//"; \
		fi; \
	fi \
	)' --

# Debug for Funky.
.if !target(funky)
funky:
	@${PRINTF} "%s\n" "===> ${PKGNAME}"
	@${PRINTF} "\n%s\n" "funky: Options X Flags --> {defined,undefined}:(option,flag) |--> _option_flag_"
	@${PRINTF} "%75s\n\n" ":(option,    ) |--> _option__"
	@(lengths=$$(${ECHO_CMD} "${FUNKY}" | \
		${AWK} "BEGIN{ FS = \"_\" ; RS=\" \"; max2=0; max3=8 } \
		{ step2=length(\$$2); step3=length(\$$3); if(max2 < step2) max2=step2; if(max3 < step3) max3=step3 } \
		END{ print (max2 + 2), (max3), (max2 + max3 + 11), ((2 * max2) + (2* max3) + 24)}"); \
	  set $${lengths}; \
	  ${PRINTF} "\n\n %-$${1}s %-$${2}s       %s\n" "Options" "Flags" "Grues"; \
	  for y in ${FUNKY}; \
	  do \
	  	_y="$${y%_*_}" && x1="$${_y#_}" && \
		_y="$${y#_*_}" && x2="$${_y%_}" && \
		${PRINTF} "\n%-$${1}s," "($${x1}" && \
		${PRINTF} " %-$${2}s" "$${x2:-        }" && \
		${PRINTF} "%-$${3}s." ") |--> $${y}"; \
		done; \
	  ${PRINTF} "\n\n%$${4}s\n" "= defined" \
	 )
.  if defined(FUNKY_DEBUG)
	@${PRINTF} "%s\n\n" "In USE_CABAL:"
	@${PRINTF} "%s\n\n" "WARNING:"
	@(for wrn in ${_warn_msg}; \
	do \
		${PRINTF} "%s\n" "===> $${wrn}"; \
	done)
	@${PRINTF} "\n%s\n\n" "ERROR:"
.    if !defined(FUNKY_DEBUG_FULL)
	@(if [ -n "${_end_msg}" ];then \
		${PRINTF} "%s\n" "There is an error! You should use the target \"funky\" with"; \
		${PRINTF} "%s\n" "the variable \"FUNKY_DEBUG_FULL\" to see the grues until"; \
		${PRINTF} "%s\n\n" "the error."; \
	  fi)
.    else
	@(if [ -n "${_end_msg}" ];then ${PRINTF} "%s\n\n" "===> ${_end_msg}";fi)
.    endif
.  endif
.endif

.endif	# defined(USE_CABAL)

.endif	# !defined(_POSTMKINCLUDED) && !defined(Haskell_Pre_Include)

.if defined(_POSTMKINCLUDED) && !defined(Haskell_Post_Include)

Haskell_Post_Include=	bsd.haskell.mk

.if defined(USE_CABAL)

# Final Settings

## Dependences.

### This position was chosen because it needs using the USE_CABAL
### to control the dependences. If, for an incomprehensible reason,
### you want to change them, without using USE_CABAL, then you could
### use the _LIST_*_DEPENDS internals variables that are a freak.

_LIST_BUILD_DEPENDS?=	${_list_BUILD_DEPENDS}
_LIST_RUN_DEPENDS?=	${_list_RUN_DEPENDS}
_LIST_PROFILE_DEPENDS?=	${_list_PROFILE_DEPENDS}

BUILD_DEPENDS+=		${_LIST_BUILD_DEPENDS}
RUN_DEPENDS+=		${_LIST_RUN_DEPENDS}
.if !empty(_LIST_PROFILE_DEPENDS)
PROFILE_DEPENDS+=	${_LIST_PROFILE_DEPENDS}
.endif

# Targets.

## Profiling targets.

### Profiling dependence checking.
.if !target(profile-depends)
profile-depends:
.  if defined(PROFILE_DEPENDS)
	@${CHECK_PROFILE} "${PROFILE_DEPENDS}"
.  else
	@${DO_NADA}
.  endif
.endif

### Macro target for profiling dependence checking.
.if !target(profile-depends-macro)
profile-depends-macro: .USE
.  if defined(PROFILE_DEPENDS)
	@${CHECK_PROFILE} "${PROFILE_DEPENDS}"
.  else
	@${DO_NADA}
.  endif
.endif

### Profiling dependence listing.
.if !target(profile-depends-list)
profile-depends-list:
.  if defined(PROFILE_DEPENDS)
	@${PROFILE_DEPENDS_LIST} "${PROFILE_DEPENDS}"
.  else
	@${DO_NADA}
.  endif
.endif

## Building targets.

### For the "distrgmake" mode we need "gmake" in disguise mode
### as "make" without using an absolute path.
.  if !target(gmake-link)
gmake-link:
	@${GMAKE_LINK}
.  endif

.if !target(setup-gen)
setup-gen:
	@${SETUP_GEN}
.endif

.if !target(setup-configure)
setup-configure:
	@${SETUP_CONFIGURE}
.endif

### Although Cabal recognize a generic "make" command for the
### Distribution.Make library, the "makefile" target generates
### a Gnu Makefile to compile the Haskell modules. You can use
### it to do non standard things, before the "build" target
### performs any final steps.
.if !target(setup-makefile)
setup-makefile:
	@${SETUP_MAKEFILE}
.endif

.if !target(setup-build)
setup-build:
	@${SETUP_BUILD}
.endif

.if !target(setup-haddock)
setup-haddock:
	@${SETUP_HADDOCK}
.endif

.if !target(build-data)
.  if defined(_haddock__)
build-data:
	@${SETUP_HADDOCK}
.  else
build-data:
	@${DO_NADA}
.  endif
.endif

.if !target(setup-register)
setup-register:
	@${SETUP_REGISTER}
.endif

.if !target(install-register)
install-register:
	@${INSTALL_REGISTER} ${SETUP_WRKSRC}/${D_REG}
.endif

.if !target(gen-register)
gen-register:
	@${GEN_REGISTER} ${D_REG_CMD} ${D_NAME-VER}
.endif

.if !target(change-register)
change-register:
	@${CHANGE_REGISTER} ${D_REG_CMD} '${HADDOCK_INTERFACES:C/(.+)/ \1/1}' '${HADDOCK_HTML:C/(.+)/ \1/1}'
.endif

.if !target(do-register)
do-register:
	@${DO_REGISTER} ${D_REG_CMD}
.endif

.if !target(register)
.  if defined(_genreg__)
.    if empty(HADDOCK_HTML) || empty(HADDOCK_INTERFACES)
register: gen-register change-register do-register
.    else
register: gen-register
.    endif
.  else
.    if empty(HADDOCK_HTML) || empty(HADDOCK_INTERFACES)
register: setup-register install-register change-register do-register
.    else
register: setup-register install-register
.    endif
.  endif
.endif

.if !target(do-unregister)
do-unregister:
	@${DO_UNREGISTER} ${D_NAME-VER}
.endif

.if !target(unregister)
unregister: do-unregister
.endif

.if !target(setup-copy)
setup-copy:
	@${SETUP_COPY}
.endif

.if !target(setup-install)
.    if !defined(_noreg__)
setup-install:
	@${SETUP_INSTALL}; ${RM} -f ${HC-PKG-CONF-OLD}
.else
setup-install:
	@${SETUP_INSTALL}
.  endif
.endif

.if !target(install-data)
install-data:
	@${DO_NADA}
.endif

## Targets for building grounded on the Distribution.Simple
## and Distribution.Make libraries.
## These target sequences are a standardization, then some target action
## could be useless, but correct; this is the price of this convenience
## and of other conveniences in this file :-/.

.if defined(_distrsimple_full_) || defined(_distrmake_full_)
.  if !target(do-configure)
do-configure: setup-gen setup-configure
.  endif
.endif

.if defined(_distrgmake_full_)
.  if !target(do-configure)
do-configure: gmake-link setup-gen setup-configure
.  endif
.endif

.if defined(_distrgmake_full_) || defined(_distrsimple_full_) || defined(_distrmake_full_)

.  if defined(_profile_full_)
build-depends: profile-depends
.  endif

.  if !target(do-build)
do-build: setup-build build-data
.  endif

.  if !target(do-install)
.    if !defined(_noreg__)
.      if !defined(_genreg__) && (empty(HADDOCK_HTML) || empty(HADDOCK_INTERFACES))
do-install: setup-copy install-data register
.      else
do-install: setup-install install-data register
.      endif
.    else
do-install: setup-install install-data
.    endif
.  endif

.endif

.endif	# defined(USE_CABAL)

.endif	# defined(_POSTMKINCLUDED) && !defined(Haskell_Post_Include)
--- bsd.haskell.mk ends here ---

--- bsd.wxhaskell.mk begins here ---
#-*- mode: makefile; tab-width: 8; -*-
# ex: syntax=make ts=8 sts=8
#
# bsd.wxhaskell.mk - Support for the wxHaskell ports
#
# Date created: May 27 2008
# Whom:         Giuseppe Pilichi aka Jacula Modyun
#
# Feel free to send any comments and suggestions to <jacula@gmail.com>.
#
# This file contains some variable definitions that are supposed to make
# easier dealing with ports related to the wxHaskell port set.
#
# If you want to see an real application of it, you could see the
# x11-toolkits/hs-xtc port. If you want to include it, this is the
# only supported way for the future:
#
#       .
#       .
#       USE_CABAL= ...
#       .
#       .
#      [ USE_WXHASKELL= ... ]
#
#          or/and
#
#      [ WXHASKELL_MODES= ..]
#       .
#       .
#       OPTIONS= ...
#       .
#       .
#       .include <bsd.port.pre.mk>
#       .
#       .
#       .include <bsd.port.post.mk>
# or
#       .
#       .
#       OPTIONS= ...
#       .
#       .
#       .include <bsd.port.options.mk>
#       .
#       .
#       USE_CABAL= ...
#       .
#       .
#      [ USE_WXHASKELL= ... ]
#
#          or/and
#
#      [ WXHASKELL_MODES= ..]
#       .
#       .
#       .include <bsd.port.pre.mk>
#       .
#       .
#       .include <bsd.port.post.mk>
# or
#       .
#       .
#       USE_CABAL= ...
#       .
#       .
#      [ USE_WXHASKELL= ... ]
#
#          or/and
#
#      [ WXHASKELL_MODES= ..]
#       .
#       .
#       .include <bsd.port.mk>
#
# The file is self explanatory and the only variable that you should set, if
# it needs, are USE_WXHASKELL, WXHASKELL_MODES, NO_WXHASKELL and
# WITHOUT_WXHASKELL; you could use also the WANT_UNIFIED_WXHASKELL variable to
# check the corresponding status.
#
# By default the file bsd.haskell.mk has to be included, setting USE_CABAL.
#
# The modes are "docs" and "unified" and are incompatible.
#
# docs    - This mode is useful only when maintainers want to link the
#           documentation of a Cabal distribution with any wxHaskell
#           hyperlinkable documentation, adding automatically the correct
#           dependence conditions.
#
# unified - This mode is like the "docs" mode, but allows maintainers to
#           supply the port with the possibility of choosing which wxHaskell
#           documentation to link with.
#
# Note: All the variables defined as yes/no, are semiinternal and provide with
# some information then you have to use them with many cautions and aware of
# what it means.
# Note. The modes are useful but you could also not to use them or any similar
# mechanism, permitting to install the documentation of a Cabal distribution
# without worrying if the links of this will be broken.

.if !defined(wxHaskell_include)

wxHaskell_Include_MAINTAINER=	jacula@gmail.com
wxHaskell_Include=		bsd.wxhaskell.mk

USE_WXHASKELL?=	true

# Global definitions and conditions about the set of wxHaskell ports.

WXHASKELL_VERSION?=		0.10.3

WXHASKELL_PORTDIR?=		${PORTSDIR}/x11-toolkits/hs-wxhaskell
WXHASKELL_DOCS_PORTDIR?=	${PORTSDIR}/x11-toolkits/hs-wxhaskell-docs
WXCORE_PORTDIR?=		${PORTSDIR}/x11-toolkits/hs-wxcore
WX_PORTDIR?=			${PORTSDIR}/x11-toolkits/hs-wx

.if exists(${LOCALBASE}/lib/wxhaskell-${WXHASKELL_VERSION}/${HC-VER}/changes.txt)
WXHASKELL_PREFIX?=	${LOCALBASE}
WXHASKELL_INSTALLED?=	yes
.elif exists(${PREFIX}/lib/wxhaskell-${WXHASKELL_VERSION}/${HC-VER}/changes.txt)
WXHASKELL_PREFIX?=	${PREFIX}
WXHASKELL_INSTALLED?=	yes
.else
WXHASKELL_PREFIX?=	${LOCALBASE}
WXHASKELL_INSTALLED?=	no
.endif

.for w in wxhaskell wxcore wx
${w:U}_DOCSDIR?=	${WXHASKELL_PREFIX}/share/doc/${w}-${WXHASKELL_VERSION}
${w:U}_DATADIR?=	${WXHASKELL_PREFIX}/share/${w}-${WXHASKELL_VERSION}
${w:U}_EXAMPLESDIR?=	${WXHASKELL_PREFIX}/share/examples/${w}-${WXHASKELL_VERSION}
${w:U}_HTMLDIR?=	${${w:U}_DOCSDIR}/html
${w:U}_LIBDIR?=		${WXHASKELL_PREFIX}/lib/${w}-${WXHASKELL_VERSION}
${w:U}_LIBSUBDIR?=	${${w:U}_LIBDIR}/${HC-VER}
.endfor

## Define the WX_INTERFACE, WXCORE_INTERFACE, UNIFIED_WX, UNIFIED_WXCORE
## and UNIFIED_WXHASKELL_REG variables.
## The UNIFIED_WX, UNIFIED_WXCORE and UNIFIED_WXHASKELL_REG variables signal
## if the interfaces, installed by the hs-wxhaskell-docs port, have been
## registered.
.for w in wxcore wx
.  if exists(${WXHASKELL_HTMLDIR}/${w}.haddock)
### This slows down the make procedures.
CHECK_${w:U}_INTERFACE!=	${HC-PKG_FIELD} ${w} haddock-interfaces
.    if ${CHECK_${w:U}_INTERFACE} == ${WXHASKELL_HTMLDIR}/${w}.haddock
${w:U}_INTERFACE?=	${WXHASKELL_HTMLDIR}/${w}.haddock
UNIFIED_${w:U}?=	yes
.    endif
.  endif
${w:U}_INTERFACE?=	${${w:U}_HTMLDIR}/${w}.haddock
UNIFIED_${w:U}?=	no
.endfor
.if ${UNIFIED_WX} == yes && ${UNIFIED_WXCORE} == yes
UNIFIED_WXHASKELL_REG=	yes
.else
UNIFIED_WXHASKELL_REG=	no
.endif

## Define the WXHASKELL_INTERFACE and UNIFIED_WXHASKELL variables.
## The UNIFIED_WXHASKELL variable is used for checking the status of
## the two ports hs-wxhaskell-docs and hs-wxhaskell in relation to
## the possibility of a unified wxHaskell registration.
WXHASKELL_INTERFACE?=	${WXHASKELL_HTMLDIR}/wxhaskell.haddock
_UNIFIED_WXHASKELL!=	(cd  ${WXHASKELL_PORTDIR} && ${MAKE} -V UNIFIED_WXHASKELL)
UNIFIED_WXHASKELL?=	${_UNIFIED_WXHASKELL}

# Modes.

## The two modes are incompatible.
.if ${WXHASKELL_MODES} == docs

.  if ${UNIFIED_WXHASKELL_REG} == yes
BUILD_DEPENDS+=	hs-wxhaskell-docs>=0.10.3:${PORTSDIR}/x11-toolkits/hs-wxhaskell-docs \
		hs-wxhaskell>=0.10.3:${PORTSDIR}/x11-toolkits/hs-wxhaskell
RUN_DEPENDS+=	hs-wxhaskell-docs>=0.10.3:${PORTSDIR}/x11-toolkits/hs-wxhaskell-docs \
		hs-wxhaskell>=0.10.3:${PORTSDIR}/x11-toolkits/hs-wxhaskell
WANT_UNIFIED_WXHASKELL=	true
.  endif

.elif ${WXHASKELL_MODES} == unified

## There's no sense in no defining NO_WXHASKELL and no installing at the same
## time the library documentation :-); but the form of this condition isn't
## predictable.
.  if defined(WITHOUT_WXHASKELL)
NO_WXHASKELL=	true
.  endif

.  if ${UNIFIED_WXHASKELL_REG} == yes  || !defined(NO_WXHASKELL)
BUILD_DEPENDS+=	hs-wxhaskell-docs>=0.10.3:${PORTSDIR}/x11-toolkits/hs-wxhaskell-docs \
		hs-wxhaskell>=0.10.3:${PORTSDIR}/x11-toolkits/hs-wxhaskell
RUN_DEPENDS+=	hs-wxhaskell-docs>=0.10.3:${PORTSDIR}/x11-toolkits/hs-wxhaskell-docs \
		hs-wxhaskell>=0.10.3:${PORTSDIR}/x11-toolkits/hs-wxhaskell
WANT_UNIFIED_WXHASKELL=	true
.  endif

## Check if a unified wxHaskell registration is possible.
.  if ${UNIFIED_WXHASKELL_REG} == yes || (${WXHASKELL_INSTALLED} == no && ${UNIFIED_WXHASKELL} == yes)
POSSIBLE_UNIFIED_WXHASKELL=	yes
.  else
POSSIBLE_UNIFIED_WXHASKELL=	no
.  endif

.  if !defined(NO_WXHASKELL)
.    if ${POSSIBLE_UNIFIED_WXHASKELL} == no
check-makevars::
	@${ECHO_MSG} "===> ${PKGNAME} want a unified wxHaskell registration that implies the build"
	@${ECHO_MSG} "                dependence on the \"${WXHASKELL_PORTDIR}\" port"
	@${ECHO_MSG} "                and on the \"${WXHASKELL_DOCS_PORTDIR}\" port;"
	@${ECHO_MSG} "                this is inclusive of setting all the options into the former port"
	@${ECHO_MSG} "                and the \"WITH_DOCS\" option into the latter but this fact is not"
	@${ECHO_MSG} "                respected and you have to set the right options before to install"
	@${ECHO_MSG} "                or reinstall them."
	@${FALSE}
.    endif
.  else
.    if ${UNIFIED_WXHASKELL_REG} == yes
check-makevars::
	@${ECHO_MSG} "===> ${PKGNAME} doesn't want a unified wxHaskell registration but you have already"
	@${ECHO_MSG} "                installed the \"${WXHASKELL_PORTDIR}\" port either"
	@${ECHO_MSG} "                setting the \"WITH_REGISTRATION\" option or, in some way, registering"
	@${ECHO_MSG} "                the unified wxHaskell haddock interfaces, installed by the related"
	@${ECHO_MSG} "                \"${WXHASKELL_DOCS_PORTDIR}\" port; then you should"
	@${ECHO_MSG} "                either reinstall the former port, unsetting the \"WITH_REGISTRATION\""
	@${ECHO_MSG} "                option, or reverse the registration to the original status."
	@${FALSE}
.    endif
.  endif

.endif # ${WXHASKELL_MODES} == docs

.endif # !defined(wxHaskell_include)
--- bsd.wxhaskell.mk ends here ---

--- patch-bsd.port.mk begins here ---
--- bsd.port.mk.orig	2008-07-24 22:29:32.000000000 +0000
+++ bsd.port.mk	2008-07-26 14:03:07.000000000 +0000
@@ -449,6 +449,21 @@
 #				  or http://www.FreeBSD.org/gnome/docs/porting.html
 #				  for more details.
 ##
+# USE_HASKELL		- If set, this port relies on the Haskell language.
+#				  Implies inclusion of bsd.haskell.mk. See
+#				  bsd.haskell.mk for more details.
+#
+# USE_CABAL			- Set to a list of flagged options.See
+#				  bsd.haskell.mk for more details.
+#				  Implies inclusion of bsd.haskell.mk.
+##
+# USE_WXHASKELL		- If set, this port uses the wxhaskell library and related
+#				  components. Implies inclusion of bsd.wxhaskell.mk.
+#				  See bsd.wxhaskell.mk for more details.
+#
+# WXHASKELL_MODES		- Set to a list of options. See bsd.wxhaskell.mk for
+#				  more details. Implies inclusion of bsd.wxhaskell.mk.
+##
 # USE_LUA		- If set, this port uses the Lua library and related
 #				  components. See bsd.lua.mk for more details.
 ##
@@ -1527,6 +1542,14 @@
 .include "${PORTSDIR}/Mk/bsd.xfce.mk"
 .endif
 
+.if defined(USE_HASKELL) || defined(USE_CABAL)
+.include "${PORTSDIR}/Mk/bsd.haskell.mk"
+.endif
+
+.if defined(USE_WXHASKELL) || defined(WXHASKELL_MODES)
+.include "${PORTSDIR}/Mk/bsd.wxhaskell.mk"
+.endif
+
 # You can force skipping these test by defining IGNORE_PATH_CHECKS
 .if !defined(IGNORE_PATH_CHECKS)
 .if (${PREFIX:C,(^.).*,\1,} != "/")
@@ -2004,6 +2027,10 @@
 .include "${PORTSDIR}/Mk/bsd.xfce.mk"
 .endif
 
+.if defined(USE_HASKELL) || defined(USE_CABAL)
+.include "${PORTSDIR}/Mk/bsd.haskell.mk"
+.endif
+
 .if defined(USE_CMAKE)
 .include "${PORTSDIR}/Mk/bsd.cmake.mk"
 .endif
--- patch-bsd.port.mk ends here ---

--- hs-wxcore.shar.uuencode begins here ---
begin 644 hs-wxcore.shar
M(R!4:&ES(&ES(&$@<VAE;&P@87)C:&EV92X@(%-A=F4@:70@:6X@82!F:6QE
M+"!R96UO=F4@86YY=&AI;F<@8F5F;W)E"B,@=&AI<R!L:6YE+"!A;F0@=&AE
M;B!U;G!A8VL@:70@8GD@96YT97)I;F<@(G-H(&9I;&4B+B`@3F]T92P@:70@
M;6%Y"B,@8W)E871E(&1I<F5C=&]R:65S.R!F:6QE<R!A;F0@9&ER96-T;W)I
M97,@=VEL;"!B92!O=VYE9"!B>2!Y;W4@86YD"B,@:&%V92!D969A=6QT('!E
M<FUI<W-I;VYS+@HC"B,@5&AI<R!A<F-H:79E(&-O;G1A:6YS.@HC"B,):',M
M=WAC;W)E"B,):',M=WAC;W)E+V9I;&5S"B,):',M=WAC;W)E+V9I;&5S+W!A
M=&-H+6)U9U]M86ME9FEL90HC"6AS+7=X8V]R92]F:6QE<R]P871C:"UW>&-?
M:6YC;'5D95]W>&-?9VQU92YH"B,):',M=WAC;W)E+V9I;&5S+W!A=&-H+7=X
M7W=X+F-A8F%L"B,):',M=WAC;W)E+V9I;&5S+W!A=&-H+7-A;7!L97-?=WAC
M;W)E7VUA:V5F:6QE"B,):',M=WAC;W)E+V9I;&5S+W!A=&-H+7-A;7!L97-?
M=WA?;6%K969I;&4*(PEH<RUW>&-O<F4O9FEL97,O<&%T8V@M<V%M<&QE<U]W
M>%]&:6QE0G)O=W-E+FAS"B,):',M=WAC;W)E+V9I;&5S+W!A=&-H+7-A;7!L
M97-?8V]N=')I8E]M86ME9FEL90HC"6AS+7=X8V]R92]F:6QE<R]P871C:"US
M86UP;&5S7V-O;G1R:6)?4&%I;G1$:7)E8W0N:',*(PEH<RUW>&-O<F4O9FEL
M97,O<&%T8V@M;6%K969I;&4*(PEH<RUW>&-O<F4O9FEL97,O<&%T8V@M8V]N
M9FEG=7)E"B,):',M=WAC;W)E+V9I;&5S+W!A=&-H+6)I;E]P<F]L;V=U92UW
M>&-O<F4M=&5M<&QA=&4N='AT"B,):',M=WAC;W)E+V9I;&5S+W!A=&-H+6)I
M;E]P<F]L;V=U92UW>"UT96UP;&%T92YT>'0*(PEH<RUW>&-O<F4O9FEL97,O
M<&%T8V@M8FEN7W!R;VQO9W5E+71E;7!L871E+G1X=`HC"6AS+7=X8V]R92]F
M:6QE<R]P871C:"UW>&-O<F4N8V%B86P*(PEH<RUW>&-O<F4O36%K969I;&4*
M(PEH<RUW>&-O<F4O9&ES=&EN9F\*(PEH<RUW>&-O<F4O<&MG+61E<V-R"B,)
M:',M=WAC;W)E+W!K9RUP;&ES=`HC"F5C:&\@8R`M(&AS+7=X8V]R90IM:V1I
M<B`M<"!H<RUW>&-O<F4@/B`O9&5V+VYU;&P@,CXF,0IE8VAO(&,@+2!H<RUW
M>&-O<F4O9FEL97,*;6MD:7(@+7`@:',M=WAC;W)E+V9I;&5S(#X@+V1E=B]N
M=6QL(#(^)C$*96-H;R!X("T@:',M=WAC;W)E+V9I;&5S+W!A=&-H+6)U9U]M
M86ME9FEL90IS960@)W,O7E@O+R<@/FAS+7=X8V]R92]F:6QE<R]P871C:"UB
M=6=?;6%K969I;&4@/#P@)SDV9C%C,S<U8V(W939E8V-C,35D968R-F%B8F,X
M,F9D)PI8+2TM(&)U9W,O;6%K969I;&4N;W)I9PDR,#`X+3`W+3(V(#`V.C4W
M.C4Y+C`P,#`P,#`P,"`K,#`P,`I8*RLK(&)U9W,O;6%K969I;&4),C`P."TP
M-RTR-B`P-CHU-SHS-RXP,#`P,#`P,#`@*S`P,#`*6$!`("TP+#`@*S$L,38@
M0$`*6"M#3TU024Q%/6=H8R`M<&%C:V%G92!W>`I8*PI8*R4Z("4N:',*6"L)
M)"A#3TU024Q%*2`M+6UA:V4@+6\@)$`@)#P*6"L*6"M!4%!3/2!.;VY-;V1A
M;$1I86QO9UP*6"L@("`@("!3=&%R=%-T87)T7`I8*R`@("`@(%-U8DUE;G5<
M"E@K("`@("`@5&5X=$-O;&]R"E@K"E@K+E!(3TY9.B!C;&5A;@I8*PI8*V%L
M;#H@)"A!4%!3*0I8*PI8*V-L96%N.@I8*PER;2`M<F8@)"A!4%!3*2`J+F\@
M*BYH:0HY-F8Q8S,W-6-B-V4V96-C8S$U9&5F,C9A8F)C.#)F9`IE8VAO('@@
M+2!H<RUW>&-O<F4O9FEL97,O<&%T8V@M=WAC7VEN8VQU9&5?=WAC7V=L=64N
M:`IS960@)W,O7E@O+R<@/FAS+7=X8V]R92]F:6QE<R]P871C:"UW>&-?:6YC
M;'5D95]W>&-?9VQU92YH(#P\("=D.3<P,3,P8C-F,3,Q,65A.#@T,CDS.30V
M.#(T.3`Q-"<*6"TM+2!W>&,O:6YC;'5D92]W>&-?9VQU92YH+F]R:6<),C`P
M."TP,RTR,R`R,3HP.3HR-RXP,#`P,#`P,#`@*S`P,#`*6"LK*R!W>&,O:6YC
M;'5D92]W>&-?9VQU92YH"3(P,#@M,#4M,30@,#@Z-34Z,#(N,#`P,#`P,#`P
M("LP,#`P"EA`0"`M,3$Q,RPW("LQ,3$S+#8@0$`*6"!40VQA<W,H=WA#;VQO
M=7(I('=X0V]L;W5R7T-R96%T949R;VU3=&]C:R@@:6YT(&ED("D[#0I8('9O
M:60J("`@("`@=WA#;VQO=7)?0W)E871E4D="*"!40VAA<B!?<F5D+"!40VAA
M<B!?9W)E96XL(%1#:&%R(%]B;'5E("D[#0I8('9O:60@("`@("`@=WA#;VQO
M=7)?1&5L971E*"!44V5L9BAW>$-O;&]U<BD@7V]B:B`I.PT*6"TO+U=80T],
M3U)2148@=WA#;VQO=7)?1V5T4&EX96PH(%1396QF*'=X0V]L;W5R*2!?;V)J
M("D[#0I8(%1#:&%R("`@("`@=WA#;VQO=7)?1W)E96XH(%1396QF*'=X0V]L
M;W5R*2!?;V)J("D[#0I8(%1";V]L("`@("`@=WA#;VQO=7)?3VLH(%1396QF
M*'=X0V]L;W5R*2!?;V)J("D[#0I8(%1#:&%R("`@("`@=WA#;VQO=7)?4F5D
M*"!44V5L9BAW>$-O;&]U<BD@7V]B:B`I.PT*9#DW,#$S,&(S9C$S,3%E83@X
M-#(Y,SDT-C@R-#DP,30*96-H;R!X("T@:',M=WAC;W)E+V9I;&5S+W!A=&-H
M+7=X7W=X+F-A8F%L"G-E9"`G<R]>6"\O)R`^:',M=WAC;W)E+V9I;&5S+W!A
M=&-H+7=X7W=X+F-A8F%L(#P\("<U8C8Y.3DP,#@T9C`S.#9C-F4U,C@Y.68Y
M83$T8C`X,B<*6"TM+2!W>"]W>"YC86)A;"YO<FEG"3(P,#@M,#,M,C,@,C$Z
M,#DZ,CDN,#`P,#`P,#`P("LP,#`P"E@K*RL@=W@O=W@N8V%B86P),C`P."TP
M-2TQ-"`P.#HU-3HP,BXP,#`P,#`P,#`@*S`P,#`*6$!`("TV+#$P("LV+#$V
M($!`"E@@0G5I;&0M5'EP93H@("`@(%-I;7!L90I8($-A=&5G;W)Y.B`@("`@
M("!'54DL(%5S97(@:6YT97)F86-E<PI8($-A8F%L+59E<G-I;VXZ("`^/2`Q
M+C(*6"U$97-C<FEP=&EO;CH@("`@=WA(87-K96QL(&ES(&$@<&]R=&%B;&4@
M86YD(&YA=&EV92!'54D@;&EB<F%R>2!F;W(@2&%S:V5L;"X@($ET(&ES(&)U
M:6QT(&]N('1O<"!O9B!W>%=I9&=E=',@+2!A(&-O;7!R96AE;G-I=F4@0RLK
M(&QI8G)A<GD@=&AA="!I<R!P;W)T86)L92!A8W)O<W,@86QL(&UA:F]R($=5
M22!P;&%T9F]R;7,[(&EN8VQU9&EN9R!'5$LL(%=I;F1O=W,L(%@Q,2P@86YD
M($UA8T]3(%@N("!!="!P<F5S96YT+"!I="!W;W)K<R!W:71H('=X5VED9V5T
M<R`R+C8@*&%N9"!S861L>2P@;F]T('=I=&@@=VET:"!W>%=I9&=E=',@,BXX
M*0I8*T1E<V-R:7!T:6]N.B`@("!W>$AA<VME;&P@:7,@82!P;W)T86)L92!A
M;F0@;F%T:79E($=522!L:6)R87)Y(&9O<B!(87-K96QL+@I8*PD)270@:7,@
M8G5I;'0@;VX@=&]P(&]F('=X5VED9V5T<R`M(&$@8V]M<')E:&5N<VEV92!#
M*RL@;&EB<F%R>0I8*PD)=&AA="!I<R!P;W)T86)L92!A8W)O<W,@86QL(&UA
M:F]R($=522!P;&%T9F]R;7,[(&EN8VQU9&EN9PI8*PD)1U1++"!7:6YD;W=S
M+"!8,3$L(&%N9"!-86-/4R!8+B`@070@<')E<V5N="P@:70@=V]R:W,@=VET
M:`I8*PD)=WA7:61G971S(#(N-B`H86YD('-A9&QY+"!N;W0@=VET:"!W:71H
M('=X5VED9V5T<R`R+C@I+@I8*PD)5&AE($=R87!H:6-S+E5)+E=8(&QI8G)A
M<GD@:7,@82!M:61D;&4M;&5V96P@2&%S:V5L;"!L:6)R87)Y"E@K"0EF;W(@
M=W)I=&EN9R!G<F%P:&EC86PL(&)U:6QT(&]N('1O<"!T:&4@1W)A<&AI8W,N
M54DN5UA#;W)E"E@K"0EL:6)R87)Y+@I8($UA:6YT86EN97(Z("`@("!W>&AA
M<VME;&PM9&5V96Q`;&ES=',N<V]U<F-E9F]R9V4N;F5T"E@@4WEN;W!S:7,Z
M("`@("`@('=X2&%S:V5L;`I8+41A=&$M1FEL97,Z("`@("!W>"YC86)A;`I8
M(`I8($9L86<@<W!L:71"87-E"E@@("`@($1E<V-R:7!T:6]N.B!#:&]O<V4@
M=&AE(&YE=R!S;6%L;&5R+"!S<&QI="UU<"!B87-E('!A8VMA9V4N"C5B-CDY
M.3`P.#1F,#,X-F,V934R.#DY9CEA,31B,#@R"F5C:&\@>"`M(&AS+7=X8V]R
M92]F:6QE<R]P871C:"US86UP;&5S7W=X8V]R95]M86ME9FEL90IS960@)W,O
M7E@O+R<@/FAS+7=X8V]R92]F:6QE<R]P871C:"US86UP;&5S7W=X8V]R95]M
M86ME9FEL92`\/"`G-S4T8S`V.60X93`W,V%E96-D96-E,C@U8C=A-6-B-C(G
M"E@M+2T@<V%M<&QE<R]W>&-O<F4O;6%K969I;&4N;W)I9PDR,#`X+3`U+3$T
M(#`X.C4U.C`R+C`P,#`P,#`P,"`K,#`P,`I8*RLK('-A;7!L97,O=WAC;W)E
M+VUA:V5F:6QE"3(P,#@M,#4M,30@,#@Z-34Z,#(N,#`P,#`P,#`P("LP,#`P
M"EA`0"`M,"PP("LQ+#$X($!`"E@K0T]-4$E,13UG:&,@+7!A8VMA9V4@=WAC
M;W)E"E@K"E@K)3H@)2YH<PI8*PDD*$-/35!)3$4I("UO("1`("0\"E@K"E@K
M05!04ST@0F]U;F-I;F="86QL<UP*6"L@("`@("!">65$96UO7`I8*R`@("`@
M($AE;&QO5V]R;&1<"E@K("`@("`@26UA9V56:65W97)<"E@K("`@("`@36EN
M:6UA;%P*6"L@("`@("!086EN=`I8*PI8*RY02$].63H@8VQE86X*6"L*6"MA
M;&PZ("0H05!04RD*6"L*6"MC;&5A;CH*6"L)<FT@+7)F("0H05!04RD@*BYO
M("HN:&D*-S4T8S`V.60X93`W,V%E96-D96-E,C@U8C=A-6-B-C(*96-H;R!X
M("T@:',M=WAC;W)E+V9I;&5S+W!A=&-H+7-A;7!L97-?=WA?;6%K969I;&4*
M<V5D("=S+UY8+R\G(#YH<RUW>&-O<F4O9FEL97,O<&%T8V@M<V%M<&QE<U]W
M>%]M86ME9FEL92`\/"`G8F8V8C8T-#DV.6$W9C5F9#5E,S4P8S,W83`W-F$X
M93(G"E@M+2T@<V%M<&QE<R]W>"]M86ME9FEL92YO<FEG"3(P,#@M,#4M,30@
M,#@Z-34Z,#(N,#`P,#`P,#`P("LP,#`P"E@K*RL@<V%M<&QE<R]W>"]M86ME
M9FEL90DR,#`X+3`U+3$T(#`X.C4U.C`R+C`P,#`P,#`P,"`K,#`P,`I80$`@
M+3`L,"`K,2PS,2!`0`I8*T-/35!)3$4]9VAC("UP86-K86=E('=X"E@K"E@K
M)3H@)2YH<PI8*PDD*$-/35!)3$4I("UO("1`("0\"E@K"E@K(R!);B!&<F5E
M0E-$('=X1U1++3(N-B!I<VXG="!C;VUP:6QE9"!W:71H('1H90I8*R,@+2UW
M:71H+6]D8F,@;W!T:6]N('1H96X@1&)"<F]W<V4@86YD($1B0V]N<V]L90I8
M*R,@9&]N)W0@=V]R:RX*6"M!4%!3/2!";W5N8VEN9T)A;&QS7`I8*R`@("`@
M($)Y941E;6]<"E@K("`@("`@0V]N=')O;'-<"E@K("`@("`@0W5S=&]M0V]N
M=')O;%P*6"L@("`@("!$8D)R;W=S95P*6"L@("`@("!$8D-O;G-O;&5<"E@K
M("`@("`@1FEL94)R;W=S95P*6"L@("`@("!'<FED7`I8*R`@("`@($AE;&QO
M5V]R;&1<"E@K("`@("`@26UA9V56:65W97)<"E@K("`@("`@3&%Y;W5T7`I8
M*R`@("`@($UI;FEM86Q<"E@K("`@("`@4&%I;G1<"E@K("`@("`@4')O8V5S
M<UP*6"L@("`@("!4:6UE1FQO=W-<"E@K("`@("`@5&EM949L;W=S17@*6"L*
M6"LN4$A/3EDZ(&-L96%N"E@K"E@K86QL.B`D*$%04%,I"E@K"E@K8VQE86XZ
M"E@K"7)M("UR9B`D*$%04%,I("HN;R`J+FAI"F)F-F(V-#0Y-CEA-V8U9F0U
M93,U,&,S-V$P-S9A.&4R"F5C:&\@>"`M(&AS+7=X8V]R92]F:6QE<R]P871C
M:"US86UP;&5S7W=X7T9I;&5"<F]W<V4N:',*<V5D("=S+UY8+R\G(#YH<RUW
M>&-O<F4O9FEL97,O<&%T8V@M<V%M<&QE<U]W>%]&:6QE0G)O=W-E+FAS(#P\
M("<U8F-A.#-A8S8R-C5C-V$Y,F8Y,#DY,#(T-3!F9C$Q.2<*6"TM+2!S86UP
M;&5S+W=X+T9I;&5"<F]W<V4N:',N;W)I9PDR,#`X+3`S+3(S(#(Q.C`Y.C(U
M+C`P,#`P,#`P,"`K,#`P,`I8*RLK('-A;7!L97,O=W@O1FEL94)R;W=S92YH
M<PDR,#`X+3`U+3$T(#`X.C4U.C`R+C`P,#`P,#`P,"`K,#`P,`I80$`@+3$U
M-RPW("LQ-3<L-R!`0`I8(&QI<W1#=')L4VAO=T1I<B!L:7-T0W1R;"!P871H
M"E@@("`](&1O(&ET96US1&5L971E(&QI<W1#=')L"E@@("`@("`@(&-O;G1E
M;G1S(#PM(&=E=$1I<F5C=&]R>4-O;G1E;G1S('!A=&@*6"T@("`@("`@;&5T
M('!A=&AS(#T@;6%P("A<9&ER("T^('!A=&@@*RL@9&ER("LK("(O(BD@8V]N
M=&5N=',*6"L@("`@("`@;&5T('!A=&AS(#T@;6%P("A<8V]N="`M/B!P871H
M("LK(&-O;G0I(&-O;G1E;G1S"E@@("`@("`@(&UA<$U?("AL:7-T0W1R;$%D
M9$9I;&4@;&ES=$-T<FPI("AZ:7`S(%LP+BY=(&-O;G1E;G1S('!A=&AS*0I8
M("`@8&-A=&-H8"!<97)R("T^(')E='5R;B`H*0I8(`HU8F-A.#-A8S8R-C5C
M-V$Y,F8Y,#DY,#(T-3!F9C$Q.0IE8VAO('@@+2!H<RUW>&-O<F4O9FEL97,O
M<&%T8V@M<V%M<&QE<U]C;VYT<FEB7VUA:V5F:6QE"G-E9"`G<R]>6"\O)R`^
M:',M=WAC;W)E+V9I;&5S+W!A=&-H+7-A;7!L97-?8V]N=')I8E]M86ME9FEL
M92`\/"`G9#8Q9C8T-SDV960T8CEC8V,S-#=A.#!A93$P83,U8V$G"E@M+2T@
M<V%M<&QE<R]C;VYT<FEB+VUA:V5F:6QE+F]R:6<),C`P."TP-2TQ-"`P.#HU
M-3HP,BXP,#`P,#`P,#`@*S`P,#`*6"LK*R!S86UP;&5S+V-O;G1R:6(O;6%K
M969I;&4),C`P."TP-2TQ-"`P.#HU-3HP,BXP,#`P,#`P,#`@*S`P,#`*6$!`
M("TP+#`@*S$L,C(@0$`*6"M#3TU024Q%/6=H8R`M<&%C:V%G92!W>`I8*T=,
M0T]-4$E,13UG:&,@+7!A8VMA9V4@=W@@+7!A8VMA9V4@3W!E;D=,"E@K"E@K
M)3H@)2YH<PI8*PDD*$-/35!)3$4I("UO("1`("0\"E@K"E@K1TPE.B!'3"4N
M:',*6"L))"A'3$-/35!)3$4I("UO("1`("0\"E@K"E@K05!04ST@0V%M96QS
M7`I8*R`@("`@($YO=&5B;V]K4FEG:'1<"E@K("`@("`@4&%I;G1$:7)E8W0*
M6"L*6"M'3$%04%,]($=,0V%N=F%S7`I8*R`@("`@("`@1TQ-=6QT:4-A;G9A
M<PI8*PI8*RY02$].63H@8VQE86X*6"L*6"MA;&PZ("0H05!04RD@)"A'3$%0
M4%,I"E@K"E@K8VQE86XZ"E@K"7)M("UR9B`D*$%04%,I("0H1TQ!4%!3*2`J
M+F\@*BYH:0ID-C%F-C0W.39E9#1B.6-C8S,T-V$X,&%E,3!A,S5C80IE8VAO
M('@@+2!H<RUW>&-O<F4O9FEL97,O<&%T8V@M<V%M<&QE<U]C;VYT<FEB7U!A
M:6YT1&ER96-T+FAS"G-E9"`G<R]>6"\O)R`^:',M=WAC;W)E+V9I;&5S+W!A
M=&-H+7-A;7!L97-?8V]N=')I8E]086EN=$1I<F5C="YH<R`\/"`G-3<X8C@S
M83@X,S<V,64Q,V1A.&9F,F)D9C9F,F%D9#@G"E@M+2T@<V%M<&QE<R]C;VYT
M<FEB+U!A:6YT1&ER96-T+FAS+F]R:6<),C`P."TP,RTR,R`R,3HP.3HR-BXP
M,#`P,#`P,#`@*S`P,#`*6"LK*R!S86UP;&5S+V-O;G1R:6(O4&%I;G1$:7)E
M8W0N:',),C`P."TP-2TQ-"`P.#HU-3HP,BXP,#`P,#`P,#`@*S`P,#`*6$!`
M("TQ."PW("LQ."PW($!`"E@@9W5I(#HZ($E/("@I"E@@9W5I"E@@("`](&1O
M(&EM(#PM(&EM86=E0W)E871E4VEZ960@<F=B4VEZ90I8+2`@("`@("!P8B`\
M+2!I;6%G94=E=%!I>&5L0G5F9F5R(&EM"E@K("`@("`@('!B(#PM('=I=&A0
M:7AE;$)U9F9E<B!I;2!R971U<FX*6"`@("`@("`@9FEL;$=R965N0FQU92!P
M8@I8("`@("`@("!B;2`@/"T@8FET;6%P0W)E871E1G)O;4EM86=E(&EM("@M
M,2D*6"`@("`@("`@9B`@(#PM(&9R86UE(%MT97AT(#H](")086EN="!D96UO
M(BP@9G5L;%)E<&%I;G1/;E)E<VEZ92`Z/2!&86QS95T*-3<X8C@S83@X,S<V
M,64Q,V1A.&9F,F)D9C9F,F%D9#@*96-H;R!X("T@:',M=WAC;W)E+V9I;&5S
M+W!A=&-H+6UA:V5F:6QE"G-E9"`G<R]>6"\O)R`^:',M=WAC;W)E+V9I;&5S
M+W!A=&-H+6UA:V5F:6QE(#P\("=B,S1D.3@V-C1C-S1D-C4X,3%D,&)A-F-A
M,61D-V,T-R<*6"TM+2!M86ME9FEL92YO<FEG"3(P,#@M,#,M,C,@,C$Z,3$Z
M-#DN,#`P,#`P,#`P("LP,#`P"E@K*RL@;6%K969I;&4),C`P."TP-2TQ-"`P
M.#HU-3HP,BXP,#`P,#`P,#`@*S`P,#`*6$!`("TR-SDL-R`K,C<Y+#<@0$`*
M6"`C+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T*6"!R96=I<W1E<CH@
M('=X8V]R92UR96=I<W1E<@I8(`I8+6EN<W1A;&PZ"7=X8V]R92UI;G-T86QL
M+69I;&5S('=X8V]R92UR96=I<W1E<@I8*VEN<W1A;&PZ"7=X8V]R92UI;G-T
M86QL+69I;&5S"E@@"4!E8VAO("TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+0I8(`E`96-H;R!$;VYE('=I=&@@=WAC;W)E+BXN
M"E@@"4!E8VAO"EA`0"`M-34P+#<@*S4U,"PW($!`"E@@"E@@5UA#3U)%+4))
M3E,)/20H5UA#3U)%+4A)4RD@)"A76$-/4D4M3$E"4RD*6"!76$-/4D4M4%)/
M1BU"24Y3"3TD*%=80T]212U04D]&+4A)4RD@)"A76$-/4D4M4%)/1BU,24)3
M*0I8+5=80T]212U$3T-3"3TD*&9I;'1E<BUO=70@)"A76$-/4D4M4U)#1$E2
M*2\D*%=80T]212U(4$%42"DO26YT36%P+FAS+"0H5UA#3U)%+4A3*2D*6"M7
M6$-/4D4M1$]#4PD])"A76$-/4D4M2%,I"E@@5UA#3U)%+4A#1DQ!1U,)/20H
M2$-&3$%'4RD@+69V:6$M0R`M<&%C:V%G92UN86UE("0H5UA#3U)%*2TD*%9%
M4E-)3TXI"E@@"E@@"EA`0"`M.3,Y+#$W("LY,SDL-38@0$`*6"`C+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T*6"`C($1O8W5M96YT871I;VX*6"`C
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T*6"U$3T,M3U541$E2("`]
M)"A/551$25(I+V1O8R]H=&UL"E@K1$]#+4]55$1)4B`@("`@("`@(#TD*$]5
M5$1)4BDO9&]C+VAT;6P*6"!76$-/4D4M1$]#+4]55$1)4B`@/20H1$]#+4]5
M5$1)4BDO=WAC;W)E"E@M5U@M1$]#+4]55$1)4B`@"2`@(#TD*$1/0RU/551$
M25(I+W=X"E@K5U@M1$]#+4]55$1)4B`@"2`@(#UW>"\D*$1/0RU/551$25(I
M+W=X"E@@5UA"3U1(+41/0RU/551$25(@(#TD*$1/0RU/551$25(I"E@M5UA#
M3U)%+41/0T9)3$4@("`@(#TD*%=80T]212U$3T,M3U541$E2*2]W>&-O<F4N
M:&%D9&]C:PI8+5=8+41/0T9)3$4@("`@(`D@("`])"A76"U$3T,M3U541$E2
M*2]W>"YH861D;V-K"E@M5UA"3U1(+41/0T9)3$4@("`@(#TD*%=80D]42"U$
M3T,M3U541$E2*2]W>&AA<VME;&PN:&%D9&]C:PI8+5=80T]212U(1$]#1DQ!
M1U,@("`]("TM<')O;&]G=64]8V]N9FEG+W!R;VQO9W5E+G1X="`M+6AT;6P@
M)"A(1$]#0D%315,I"E@M5U@M2$1/0T9,04=3("`@/2`D*%=80T]212U(1$]#
M1DQ!1U,I("UI)"A76$-/4D4M1$]#+4]55$1)4BDO=WAC;W)E+FAA9&1O8VL*
M6"U76$-/4D4M1$]#4T]54D-%4R`@/2`D*%=80T]212U$3T-3*0I8+5=8+41/
M0U-/55)#15,@("`@("`]("0H5U@M1$]#4RD*6"L*6"M76$-/4D4M1$]#1DE,
M12`@("`@("`@(#TD*%=80T]212U$3T,M3U541$E2*2]W>&-O<F4N:&%D9&]C
M:PI8*U=8+41/0T9)3$4@("`@(`D@("`@("`@/20H5U@M1$]#+4]55$1)4BDO
M=W@N:&%D9&]C:PI8*U=80D]42"U$3T-&24Q%("`@("`@("`@/20H5UA"3U1(
M+41/0RU/551$25(I+W=X:&%S:V5L;"YH861D;V-K"E@K5UA"3U1(+5=8+41/
M0T9)3$4@("`@("`])"A76$)/5$@M1$]#+4]55$1)4BDO=W@N:&%D9&]C:PI8
M*U=80D]42"U76$-/4D4M1$]#1DE,12`@/20H5UA"3U1(+41/0RU/551$25(I
M+W=X8V]R92YH861D;V-K"E@K"E@K0E-$+4A$3T-&3$%'4R`@("`@("`@("`]
M+2US;W5R8V4M8F%S93US<F,O("TM<V]U<F-E+6UO9'5L93US<F,O)7M-3T15
M3$4O+B\M?2YH=&UL("TM<V]U<F-E+65N=&ET>3US<F,O)7M-3T153$4O+B\M
M?2YH=&UL7",E>TY!345](%P*6"L)"0DM+6]P=&=H8STM;V1I<B`M+6]P=&=H
M8SUD:7-T+V)U:6QD("TM;W!T9VAC/2UH:61I<B`M+6]P=&=H8SUD:7-T+V)U
M:6QD("TM;W!T9VAC/2UH:61E+6%L;"UP86-K86=E<R!<"E@K"0D)+2UO<'1G
M:&,]+7!A8VMA9V4@+2UO<'1G:&,]8F%S92`*6"L*6"M76$-/4D4M0E-$+4A$
M3T-&3$%'4R`@(#TM+6]P=&=H8STM<&%C:V%G92`M+6]P=&=H8SUP87)S96,@
M+2UO<'1G:&,]+7!A8VMA9V4@+2UO<'1G:&,]87)R87D@+2UO<'1G:&,]+7!A
M8VMA9V4@7`I8*PD)"2TM;W!T9VAC/6]L9"UT:6UE("TM;W!T9VAC/2UP86-K
M86=E("TM;W!T9VAC/61I<F5C=&]R>2`M+6]P=&=H8STM<&%C:V%G92`M+6]P
M=&=H8SUT:6UE(%P*6"L)"0DM+6AI9&4]1W)A<&AI8W,N54DN5UA#;W)E+DEN
M=$UA<`I8*PI8*U=8+4)31"U(1$]#1DQ!1U,@("`@("`@/2TM;W!T9VAC/2UP
M86-K86=E("TM;W!T9VAC/7=X8V]R92TP+C$P+C,*6"L*6"M76$-/4D4M2$1/
M0T9,04=3("`@/20H2$1/0T)!4T53*2`D*$)31"U(1$]#1DQ!1U,I("0H5UA#
M3U)%+4)31"U(1$]#1DQ!1U,I"E@K:69D968@0E-$+5=80T]212U(5$U,1$E2
M"E@K5U@M2$1/0T9,04=3("`@("`@(#TD*$A$3T-"05-%4RD@)"A"4T0M2$1/
M0T9,04=3*2`D*%=8+4)31"U(1$]#1DQ!1U,I("UI)"A"4T0M5UA#3U)%+4A4
M34Q$25(I+"0H0E-$+5=80T]212U(5$U,1$E2*2]W>&-O<F4N:&%D9&]C:PI8
M*V5L<V4*6"M76"U(1$]#1DQ!1U,@("`@("`@/20H2$1/0T)!4T53*2`D*$)3
M1"U(1$]#1DQ!1U,I("0H5U@M0E-$+4A$3T-&3$%'4RD*6"ME;F1I9@I8*U=8
M0T]212U$3T-33U520T53("`])"A76$-/4D4M1$]#4RD*6"M76"U$3T-33U52
M0T53("`@("`@/20H5U@M1$]#4RD*6"L*6"M76$-/4D4M0E-$+49,04=3("`@
M("`@(#TM+71I=&QE/2=W>&-O<F4M,"XQ,"XS.B!W>$AA<VME;&PG("TM;W!T
M9VAC/2UP86-K86=E+6YA;64@+2UO<'1G:&,]=WAC;W)E+3`N,3`N,R!<"E@K
M"0D)+2UP<F]L;V=U93UC;VYF:6<O<')O;&]G=64M=WAC;W)E+G1X=`I8*PI8
M*U=8+4)31"U&3$%'4R`@("`@("`@("`@/2TM=&ET;&4])W=X+3`N,3`N,SH@
M=WA(87-K96QL)R`M+6]P=&=H8STM<&%C:V%G92UN86UE("TM;W!T9VAC/7=X
M+3`N,3`N,R!<"E@K"0D@(`DM+7!R;VQO9W5E/6-O;F9I9R]P<F]L;V=U92UW
M>"YT>'0*6"L*6"M76$)/5$@M0E-$+49,04=3("`@("`@(#TM+71I=&QE/2=W
M>$AA<VME;&P@,"XQ,"XS.B!W>$AA<VME;&PG("TM;W!T9VAC/2UP86-K86=E
M+6YA;64@+2UO<'1G:&,]=WAH87-K96QL+3`N,3`N,R!<"E@K"0D)+2UP<F]L
M;V=U93UC;VYF:6<O<')O;&]G=64N='AT"E@K"E@K5UA"3U1(+4)31"U76"U&
M3$%'4R`@("`]+2UT:71L93TG=WA(87-K96QL(#`N,3`N,SH@=WA(87-K96QL
M)R`M+6]P=&=H8STM<&%C:V%G92UN86UE("TM;W!T9VAC/7=X+3`N,3`N,R!<
M"E@K"0D)+2UP<F]L;V=U93UC;VYF:6<O<')O;&]G=64N='AT"E@K"E@K5UA"
M3U1(+4)31"U76$-/4D4M1DQ!1U,@/2TM=&ET;&4])W=X2&%S:V5L;"`P+C$P
M+C,Z('=X2&%S:V5L;"<@+2UO<'1G:&,]+7!A8VMA9V4M;F%M92`M+6]P=&=H
M8SUW>&-O<F4M,"XQ,"XS(%P*6"L)"0D@+2UP<F]L;V=U93UC;VYF:6<O<')O
M;&]G=64N='AT"E@K"E@K5U@M24Y41DQ!1U,@("`@("`@("`@("`]+2UN;RUW
M87)N:6YG<R`M+6]D:7(@)"A76"U$3T,M3U541$E2*2`@("`@+2UD=6UP+6EN
M=&5R9F%C93TD*%=8+41/0T9)3$4I"E@K5UA#3U)%+4E.5$9,04=3("`@("`@
M("`]+2UN;RUW87)N:6YG<R`M+6]D:7(@)"A76$-/4D4M1$]#+4]55$1)4BD@
M+2UD=6UP+6EN=&5R9F%C93TD*%=80T]212U$3T-&24Q%*0I8*U=80D]42"U)
M3E1&3$%'4R`@("`@("`@/2TM;F\M=V%R;FEN9W,@+2UO9&ER("0H5UA"3U1(
M+41/0RU/551$25(I("TM9'5M<"UI;G1E<F9A8V4])"A76$)/5$@M1$]#1DE,
M12D*6"M76$)/5$@M5U@M24Y41DQ!1U,@("`@(#TM+6YO+7=A<FYI;F=S("TM
M;V1I<B`D*%=80D]42"U$3T,M3U541$E2*2`M+61U;7`M:6YT97)F86-E/20H
M5UA"3U1(+5=8+41/0T9)3$4I"E@K5UA"3U1(+5=80T]212U)3E1&3$%'4R`]
M+2UN;RUW87)N:6YG<R`M+6]D:7(@)"A76$)/5$@M1$]#+4]55$1)4BD@+2UD
M=6UP+6EN=&5R9F%C93TD*%=80D]42"U76$-/4D4M1$]#1DE,12D*6"`*6"`*
M6"!D;V,Z(&1O8RUD:7)S("0H5UA#3U)%+41/0T9)3$4I("0H5U@M1$]#1DE,
M12D*6$!`("TY-C8L-B`K,3`P-2PQ-B!`0`I8(`I8(&-O;6)I;F5D+61O8SH@
M9&]C+61I<G,@)"A76$)/5$@M1$]#1DE,12D*6"`*6"MB<V0M=W@M9&]C+61I
M<G,Z"E@K"4`D*&-A;&P@96YS=7)E+61I<BPD*%=8+41/0RU/551$25(I*0I8
M*PI8*V)S9"UC;VUB:6YE9"UD;V,M9&ER<SH*6"L)0"0H8V%L;"!E;G-U<F4M
M9&ER+"0H5UA"3U1(+41/0RU/551$25(I*0I8*PI8*V)S9"UW>"UD;V,Z(&)S
M9"UW>"UD;V,M9&ER<R`D*%=8+41/0T9)3$4I"E@K"E@K8G-D+6-O;6)I;F5D
M+61O8SH@=WAD+61I<G,@8G-D+6-O;6)I;F5D+61O8RUD:7)S("0H5UA"3U1(
M+41/0T9)3$4I"E@K"E@@(R!C;W!Y(&1O8W5M96YT871I;VX@=&\@=&AE('=X
M:&%S:V5L;"!W96)S:71E"E@@=V5B9&]C.B!D;V,*6"`)8V0@)"A$3T,M3U54
M1$E2*3L@<V-P("HN*B`D*%5315).04U%*4!S:&5L;"YS;W5R8V5F;W)G92YN
M970Z+VAO;64O9W)O=7!S+W<O=W@O=WAH87-K96QL+VAT9&]C<R]D;V,*6$!`
M("TY.3`L,30@*S$P,SDL,3@@0$`*6"`)"E@@"E@@(R!G96YE<F%T92!D;V-U
M;65N=&%T:6]N('=I=&@@:&%D9&]C:PI8+20H5UA#3U)%+41/0T9)3$4I.B!C
M;VYF:6<O<')O;&]G=64N='AT("0H5UA#3U)%+41/0U-/55)#15,I"E@M"20H
M2$1/0RD@+2UO9&ER("0H5UA#3U)%+41/0RU/551$25(I("TM9'5M<"UI;G1E
M<F9A8V4])"A76$-/4D4M1$]#1DE,12D@("0H5UA#3U)%+4A$3T-&3$%'4RD@
M)"A76$-/4D4M1$]#4T]54D-%4RD*6"LD*%=80T]212U$3T-&24Q%*3H@8V]N
M9FEG+W!R;VQO9W5E+7=X8V]R92YT>'0@)"A76$-/4D4M1$]#4T]54D-%4RD*
M6"L))"A(1$]#*2`M+6AT;6P@)"A76$-/4D4M24Y41DQ!1U,I("0H5UA#3U)%
M+4A$3T-&3$%'4RD@)"A76$-/4D4M0E-$+49,04=3*2`D*%=80T]212U$3T-3
M3U520T53*0I8(`I8+20H5U@M1$]#1DE,12DZ(&-O;F9I9R]P<F]L;V=U92YT
M>'0@)"A76"U$3T-33U520T53*0I8+0DD*$A$3T,I("TM;V1I<B`D*%=8+41/
M0RU/551$25(I("TM9'5M<"UI;G1E<F9A8V4])"A76"U$3T-&24Q%*2`D*%=8
M+4A$3T-&3$%'4RD@)"A76"U$3T-33U520T53*0I8*R0H5U@M1$]#1DE,12DZ
M(&-O;F9I9R]P<F]L;V=U92UW>"YT>'0@)"A76"U$3T-33U520T53*0I8*PDD
M*$A$3T,I("TM:'1M;"`D*%=8+4E.5$9,04=3*2`@)"A76"U(1$]#1DQ!1U,I
M("0H5U@M0E-$+49,04=3*2`D*%=8+41/0U-/55)#15,I"E@@"E@@)"A76$)/
M5$@M1$]#1DE,12DZ(&-O;F9I9R]P<F]L;V=U92YT>'0@)"A76$-/4D4M1$]#
M4T]54D-%4RD@)"A76"U$3T-33U520T53*0I8+0DD*$A$3T,I("TM;V1I<B`D
M*%=80D]42"U$3T,M3U541$E2*2`M+61U;7`M:6YT97)F86-E/20H5UA"3U1(
M+41/0T9)3$4I("0H5UA#3U)%+4A$3T-&3$%'4RD@)"A76$-/4D4M1$]#4T]5
M4D-%4RD@)"A76"U$3T-33U520T53*0I8*PDD*$A$3T,I("TM:'1M;"`D*%=8
M0D]42"U)3E1&3$%'4RD@)"A76$-/4D4M2$1/0T9,04=3*2`D*%=80D]42"U"
M4T0M1DQ!1U,I("0H5UA#3U)%+41/0U-/55)#15,I("0H5U@M1$]#4T]54D-%
M4RD*6"L)0&5C:&\@(D=E;F5R871I;F<Z("0H5UA"3U1(+5=8+41/0T9)3$4I
M(@I8*PDD*$A$3T,I("0H5UA"3U1(+5=8+4E.5$9,04=3*2`D*%=80T]212U(
M1$]#1DQ!1U,I("0H5UA"3U1(+4)31"U76"U&3$%'4RD@)"A76$-/4D4M1$]#
M4T]54D-%4RD@)"A76"U$3T-33U520T53*0I8*PE`96-H;R`B1V5N97)A=&EN
M9SH@)"A76$)/5$@M5UA#3U)%+41/0T9)3$4I(@I8*PDD*$A$3T,I("0H5UA"
M3U1(+5=80T]212U)3E1&3$%'4RD@)"A76$-/4D4M2$1/0T9,04=3*2`D*%=8
M0D]42"U"4T0M5UA#3U)%+49,04=3*2`D*%=80T]212U$3T-33U520T53*2`D
M*%=8+41/0U-/55)#15,I"E@@"E@@(RTM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM"E@@(R!#86)A;"`O($AA8VMA9V4@<W1U9F8*8C,T9#DX-C8T8S<T
M9#8U.#$Q9#!B839C83%D9#=C-#<*96-H;R!X("T@:',M=WAC;W)E+V9I;&5S
M+W!A=&-H+6-O;F9I9W5R90IS960@)W,O7E@O+R<@/FAS+7=X8V]R92]F:6QE
M<R]P871C:"UC;VYF:6=U<F4@/#P@)S4R,#(R,V-B-&9D,S@Y,60P-C-E8F5D
M9#DP9&1E,&9E)PI8+2TM(&-O;F9I9W5R92YO<FEG"3(P,#@M,#,M,C,@,C$Z
M,3$Z-#DN,#`P,#`P,#`P("LP,#`P"E@K*RL@8V]N9FEG=7)E"3(P,#@M,#4M
M,30@,#@Z-34Z,#(N,#`P,#`P,#`P("LP,#`P"EA`0"`M,S(V+#8@*S,R-BPX
M($!`"E@@"2`@:&,](B1A<F<B.SL*6"`@("`@("`M:&,]*GPM+6AC/2HI"E@@
M"2`@:&,](B1A<F<B.SL*6"L@("`@("`M+7=I=&@M:&,M<&MG/2HI"E@K"2`@
M:&-P:V<](B1A<F<B.SL*6"`@("`@("`M:&-P:V<]*GPM+6AC<&MG/2HI"E@@
M"2`@:&-P:V<](B1A<F<B.SL*6"`@("`@("`M:&-F;&%G<STJ?"TM:&-F;&%G
M<STJ*0I80$`@+38Y."PW("LW,#`L-R!`0`I8(`I8(",@9W5E<W,@8F%S92YH
M861D;V-K(&QO8V%T:6]N"E@@:68@9FEN9'!R;V=R86T@(F=H8R([('1H96X*
M6"T@(&=U97-S:&1O8V)A<V4](F!W:&EC:"!G:&,@?"!S960@+64@)W-\+V)I
M;B]G:&-\+V1O8R]H=&UL+V)A<V4O8F%S92YH861D;V-K?"=@(@I8*R`@9W5E
M<W-H9&]C8F%S93TB8'=H:6-H(&=H8R!\('-E9"`M92`B<WPO8FEN+V=H8WPO
M<VAA<F4O9&]C+V=H8RTD:&-V97)S:6]N+VQI8G)A<FEE<R]B87-E+V)A<V4N
M:&%D9&]C:WPB8"(*6"`@(&EF('1E<W0@+68@(B1G=65S<VAD;V-B87-E(CL@
M=&AE;@I8("`@("!H9&]C8F%S97,](B1G=65S<VAD;V-B87-E(@I8("`@9FD*
M6$!`("TW,#DL.2`K-S$Q+#D@0$`*6"`@("`@9W5E<W-G:&-L:6)D:7(]8'=H
M:6-H(&=H8R!\('-E9"`M92`B<WPO8FEN+V=H8WPO;&EB+V=H8RTD:&-V97)S
M:6]N?")@"E@@("`@(&YO<FUG:&-L:6)D:7(](B1G=65S<V=H8VQI8F1I<B(*
M6"`@(&9I"E@M("!H861D;V-K=F5R<VEO;CU@:&%D9&]C:R`M+79E<G-I;VX@
M?"!S960@+64@(G-\+BIV97)S:6]N(%PH6S`M.5TJ7"E<+BXJ?%PQ?")@"E@M
M("!I9B!T97-T("UD("(D;F]R;6=H8VQI8F1I<B(@+6$@)&AA9&1O8VMV97)S
M:6]N("UE<2`B,B([('1H96X*6"T@("`@:&1O8V)A<V5S/2(D:&1O8V)A<V5S
M("U"("1N;W)M9VAC;&EB9&ER(@I8*R`@:&%D9&]C:W9E<G-I;VX]8&AA9&1O
M8VL@+2UV97)S:6]N('P@='(@(EQN(B`B("(@?"!S960@+64@(G-\+BIV97)S
M:6]N(%PH6S`M.5TJ7"E<+BXJ?%PQ?")@"E@K("!I9B!T97-T("UD("(D;F]R
M;6=H8VQI8F1I<B(@+6$@(B1H861D;V-K=F5R<VEO;B(@/2`B,B([('1H96X*
M6"L@("`@:&1O8V)A<V5S/2(M0B`D;F]R;6=H8VQI8F1I<B(*6"`@(&9I"E@@
M9FD*6"`*6$!`("TW,C@L-R`K-S,P+#<@0$`*6"`@("`@("`@("!I9B!T97-T
M("(D8WEG<&%T:&9O=6YD(CL@=&AE;@I8("`@("`@("`@("`@9&]C<F]O=#TB
M)&=H8W)O;W0O9&]C+VQI8G)A<FEE<R(*6"`@("`@("`@("!E;'-E"E@M("`@
M("`@("`@("!D;V-R;V]T/2(D9VAC<F]O="]S:&%R92]D;V,O9VAC+VQI8G)A
M<FEE<R(*6"L)("`@9&]C<F]O=#TB)&=H8W)O;W0O<VAA<F4O9&]C+V=H8RTD
M:&-V97)S:6]N+VQI8G)A<FEE<R(*6"`@("`@("`@("!F:0I8("`@("`@("`@
M(#L["E@@("`@("`@*BD*6$!`("TW-#8L-R`K-S0X+#<@0$`*6"`@("`@9F]R
M(&9I;&4@:6X@*B\J+FAA9&1O8VL*6"`@("`@9&\*6"`@("`@("!B87-E;F%M
M93TB8&5C:&\@)&9I;&4@?"!S960@+64@)W-\+RXJ?'PG8"(*6"T@("`@("!H
M9&]C8F%S97,](B1H9&]C8F%S97,@+6EH='1P.B\O=W=W+FAA<VME;&PN;W)G
M+V=H8R]D;V-S+VQA=&5S="]H=&UL+VQI8G)A<FEE<R\D8F%S96YA;64L)&YO
M<FUD;V-R;V]T+R1F:6QE(@I8*R`@("`@(&AD;V-B87-E<STB)&AD;V-B87-E
M<R`M:21N;W)M9&]C<F]O="\D8F%S96YA;64L)&YO<FUD;V-R;V]T+R1F:6QE
M(@I8("`@("!D;VYE"E@@("`@(&-D("1T;W!D:7(*6"`@(&9I"EA`0"`M-S<X
M+#@@*S<X,"PX($!`"E@@(RTM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM"E@@:68@
M9FEN9'!R;V=R86T@(FEN<W1A;&PB.R!T:&5N"E@@("!E8VAO("(@:6YS=&%L
M;"!P<F]G<F%M(&9O=6YD(@I8+2`@:6YS=&%L;&1I<CTB:6YS=&%L;"`M9"(*
M6"T@(&EN<W1A;&P](FEN<W1A;&P@+6,B"E@K("!I;G-T86QL9&ER/2)I;G-T
M86QL("UO(')O;W0@+6<@=VAE96P@+6T@-S4U("UD(@I8*R`@:6YS=&%L;#TB
M:6YS=&%L;"`M;R!R;V]T("UG('=H965L("UM(#0T-"(*6"!E;'-E"E@@("!E
M8VAO(")W87)N:6YG.B(*6"`@(&5C:&\@(B!5;F%B;&4@=&\@9FEN9"`G:6YS
M=&%L;"<@*'5S:6YG("=C<"<@86YD("=M:V1I<B<@:6YS=&5A9"DN(@I80$`@
M+3DR-"PW("LY,C8L-R!`0`I8(",@5WA7:61G971S"E@@5UA724XM5D524TE/
M3CTD=WAV97)S:6]N"E@@5UA724XM3$E"4STD=WAW:6YL:6)S"E@M5UA724XM
M0UA81DQ!1U,])'=X=VEN8WAX9FQA9W,*6"M76%=)3BU#6%A&3$%'4STD=WAW
M:6YC>'AF;&%G<R`D>T-86$9,04=3?2`*6"!76%=)3BU215I&24Q%/21W>')E
M>F9I;&4*6"`*6"`C(%!L871F;W)M"EA`0"`M.38W+#$V("LY-CDL,C4@0$`*
M6"!E8VAO("(@8V]N9FEG+W=X8V]R92YP:V<B"E@@(R!G:&,@-BXT*RP@=&AE
M('!A<G1I86P@<&%C:V%G97,@87)E(&]N;'D@=7-E9"!F;W(@=&AE('=I;F1O
M=W,@:6YS=&%L;&5R"E@@8V%T(#X@8V]N9FEG+W=X8V]R92UP87)T:6%L+G!K
M9R`\/"!%3T8*6"UN86UE.G=X8V]R90I8+79E<G-I;VXZ)'9E<G-I;VX*6"UH
M;VUE<&%G93IH='1P.B\O=WAH87-K96QL+G-O=7)C969O<F=E+FYE=`I8+6%U
M=&AO<CI$86%N($QE:6IE;@I8*VYA;64Z('=X8V]R90I8*W9E<G-I;VXZ("1V
M97)S:6]N"E@K;&EC96YS93H@3$=03`I8*VUA:6YT86EN97(Z(#QW>&AA<VME
M;&PM9&5V96Q`;&ES=',N<V]U<F-E9F]R9V4N;F5T/@I8*VAO;65P86=E.B!H
M='1P.B\O=WAH87-K96QL+G-O=7)C969O<F=E+FYE=`I8*V1E<V-R:7!T:6]N
M.B!W>$AA<VME;&P@:7,@82!P;W)T86)L92!A;F0@;F%T:79E($=522!L:6)R
M87)Y(&9O<B!(87-K96QL+@I8*PD@("`@($ET(&ES(&)U:6QT(&]N('1O<"!O
M9B!W>%=I9&=E=',@+2!A(&-O;7!R96AE;G-I=F4@0RLK(&QI8G)A<GD*6"L)
M("`@("!T:&%T(&ES('!O<G1A8FQE(&%C<F]S<R!A;&P@;6%J;W(@1U5)('!L
M871F;W)M<SL@:6YC;'5D:6YG"E@K"2`@("`@1U1++"!7:6YD;W=S+"!8,3$L
M(&%N9"!-86-/4R!8+B`@070@<')E<V5N="P@:70@=V]R:W,@=VET:`I8*PD@
M("`@('=X5VED9V5T<R`R+C8@*&%N9"!S861L>2P@;F]T('=I=&@@=VET:"!W
M>%=I9&=E=',@,BXX*2X*6"L)("`@("!4:&4@1W)A<&AI8W,N54DN5UA#;W)E
M(&QI8G)A<GD@:7,@=&AE(&-O<F4@:6YT97)F86-E('1O('1H90I8*PD@("`@
M('=X5VED9V5T<R!L:6)R87)Y+@I8*V-A=&5G;W)Y.B!'54DL(%5S97(@:6YT
M97)F86-E<PI8*V%U=&AO<CH@1&%A;B!,96EJ96X*6"!E>'!O<V5D.E1R=64*
M6"!E>'!O<V5D+6UO9'5L97,Z($=R87!H:6-S+E5)+E=80V]R92P*6"`)1W)A
M<&AI8W,N54DN5UA#;W)E+E=X8T-L87-S97,L"E@@"4=R87!H:6-S+E5)+E=8
M0V]R92Y7>&-#;&%S<TEN9F\L"E@@"4=R87!H:6-S+E5)+E=80V]R92Y7>&-$
M969S+`I8+0E'<F%P:&EC<RY522Y76$-O<F4N26YT36%P+`I8(`E'<F%P:&EC
M<RY522Y76$-O<F4N5'EP97,L"E@@"4=R87!H:6-S+E5)+E=80V]R92Y$969I
M;F5S+`I8(`E'<F%P:&EC<RY522Y76$-O<F4N1')A9T%N9$1R;W`L"EA`0"`M
M.3DV+#$P("LQ,#`W+#$R($!`"E@@"4=R87!H:6-S+E5)+E=80V]R92Y7>&-4
M>7!E<RP*6"`)1W)A<&AI8W,N54DN5UA#;W)E+E=X8T-L87-S97-!3"P*6"`)
M1W)A<&AI8W,N54DN5UA#;W)E+E=X8T-L87-S97--6@I8+6AS+6QI8G)A<FEE
M<SIW>&-O<F4L=WAC;W)E,"QW>&-O<F4Q+'=X8V]R93(*6"UE>'1R82UL:6)R
M87)I97,Z)'MW>&-L:6)N86UE?2TD>V)I;G9E<G-I;VY]"E@M9&5P96YD<SH@
M8F%S92QH87-K96QL.3@*6"UE>'1R82UL9"UO<'1S.B1E>'1R86QD;W!T<PI8
M*VAI9&1E;BUM;V1U;&5S.@I8*PE'<F%P:&EC<RY522Y76$-O<F4N26YT36%P
M"E@K:',M;&EB<F%R:65S.B!W>&-O<F4L=WAC;W)E,"QW>&-O<F4Q+'=X8V]R
M93(*6"ME>'1R82UL:6)R87)I97,Z("1[=WAC;&EB;F%M97TM)'MB:6YV97)S
M:6]N?0I8*V1E<&5N9',Z(&)A<V4L<&%R<V5C+&%R<F%Y+&1I<F5C=&]R>2QO
M;&0M=&EM92QT:6UE"E@K;&0M;W!T:6]N<SH@)&5X=')A;&1O<'1S"E@@14]&
M"E@@8W`@+68@8V]N9FEG+W=X8V]R92UP87)T:6%L+G!K9R!C;VYF:6<O=WAC
M;W)E+G!K9PI8(&5C:&\@(FEM<&]R="UD:7)S.EPD>W=X:&QI8F1I<GTO:6UP
M;W)T<R(@/CX@8V]N9FEG+W=X8V]R92YP:V<*6$!`("TQ,#`X+#$Q("LQ,#(Q
M+#(R($!`"E@@"E@@96-H;R`B(&-O;F9I9R]W>"YP:V<B"E@@8V%T(#X@8V]N
M9FEG+W=X+7!A<G1I86PN<&MG(#P\($5/1@I8+6YA;64Z=W@*6"UV97)S:6]N
M.B1V97)S:6]N"E@M:&]M97!A9V4Z:'1T<#HO+W=X:&%S:V5L;"YS;W5R8V5F
M;W)G92YN970*6"UA=71H;W(Z1&%A;B!,96EJ96X*6"UE>'!O<V5D.E1R=64*
M6"MN86UE.B!W>`I8*W9E<G-I;VXZ("1V97)S:6]N"E@K;&EC96YS93H@3$=0
M3`I8*VUA:6YT86EN97(Z('=X:&%S:V5L;"UD979E;$!L:7-T<RYS;W5R8V5F
M;W)G92YN970*6"MH;VUE<&%G93H@:'1T<#HO+W=X:&%S:V5L;"YS;W5R8V5F
M;W)G92YN970*6"MD97-C<FEP=&EO;CH@=WA(87-K96QL(&ES(&$@<&]R=&%B
M;&4@86YD(&YA=&EV92!'54D@;&EB<F%R>2!F;W(@2&%S:V5L;"X*6"L@("`@
M("`@("`@("`@270@:7,@8G5I;'0@;VX@=&]P(&]F('=X5VED9V5T<R`M(&$@
M8V]M<')E:&5N<VEV92!#*RL@;&EB<F%R>0I8*R`@("`@("`@("`@("!T:&%T
M(&ES('!O<G1A8FQE(&%C<F]S<R!A;&P@;6%J;W(@1U5)('!L871F;W)M<SL@
M:6YC;'5D:6YG"E@K("`@("`@("`@("`@($=42RP@5VEN9&]W<RP@6#$Q+"!A
M;F0@36%C3U,@6"X@($%T('!R97-E;G0L(&ET('=O<FMS('=I=&@*6"L@("`@
M("`@("`@("`@=WA7:61G971S(#(N-B`H86YD('-A9&QY+"!N;W0@=VET:"!W
M:71H('=X5VED9V5T<R`R+C@I+@I8*R`@("`@("`@("`@("!4:&4@1W)A<&AI
M8W,N54DN5U@@;&EB<F%R>2!I<R!A(&UI9&1L92UL979E;"!(87-K96QL(&QI
M8G)A<GD*6"L@("`@("`@("`@("`@9F]R('=R:71I;F<@9W)A<&AI8V%L+"!B
M=6EL="!O;B!T;W`@=&AE($=R87!H:6-S+E5)+E=80V]R90I8*R`@("`@("`@
M("`@("!L:6)R87)Y+@I8*V-A=&5G;W)Y.B!'54DL(%5S97(@:6YT97)F86-E
M<PI8*V%U=&AO<CH@1&%A;B!,96EJ96X*6"ME>'!O<V5D.B!4<G5E"E@@97AP
M;W-E9"UM;V1U;&5S.B!'<F%P:&EC<RY522Y76"P*6"`)1W)A<&AI8W,N54DN
M5U@N5'EP97,L"E@@"4=R87!H:6-S+E5)+E=8+D%T=')I8G5T97,L"EA`0"`M
M,3`R."PQ,2`K,3`U,BPQ,2!`0`I8(`E'<F%P:&EC<RY522Y76"Y$<F%W+`I8
M(`E'<F%P:&EC<RY522Y76"Y#;VYT<F]L<RP*6"`)1W)A<&AI8W,N54DN5U@N
M1&EA;&]G<PI8+6AS+6QI8G)A<FEE<SIW>`I8+61E<&5N9',Z=WAC;W)E+21[
M=F5R<VEO;GT*6"MH<RUL:6)R87)I97,Z('=X"E@K9&5P96YD<SH@8F%S92QW
M>&-O<F4M)'MV97)S:6]N?0I8($5/1@I8(&-P("UF(&-O;F9I9R]W>"UP87)T
M:6%L+G!K9R!C;VYF:6<O=W@N<&MG"E@M96-H;R`B:6UP;W)T+61I<G,Z7"1[
M=WAH;&EB9&ER?2]I;7!O<G1S(B`^/B!C;VYF:6<O=W@N<&MG"E@K96-H;R`B
M:6UP;W)T+61I<G,Z7"1[=WAH;&EB9&ER?2(@/CX@8V]N9FEG+W=X+G!K9PI8
M(&5C:&\@(FQI8G)A<GDM9&ER<SI<)'MW>&AL:6)D:7)](@D@/CX@8V]N9FEG
M+W=X+G!K9PI8(`I8(`I80$`@+3$R,#8L,3,@*S$R,S`L,C@@0$`*6"!L9&-O
M;F9I9PI8($5/1@I8(`I8+2,@9V5N97)A=&4@<')O;&]G=64@9F]R(&1O8W5M
M96YT871I;VX*6"LC(&=E;F5R871E('!R;VQO9W5E(&9O<B!B;W1H(&1O8W5M
M96YT871I;VX*6"!E8VAO("(@8V]N9FEG+W!R;VQO9W5E+G1X="(*6"!E8VAO
M(")$;V-U;65N=&%T:6]N(&9O<B!W>$AA<VME;&P@)'9E<G-I;VXB("`^("!C
M;VYF:6<O<')O;&]G=64N='AT+G1E;7`*6"!E8VAO("(B("`@("`@("`@("`@
M("`@("`@("`@("`@("`@("`@("`@("`@("`^/B!C;VYF:6<O<')O;&]G=64N
M='AT+G1E;7`*6"!C870@8V]N9FEG+W!R;VQO9W5E+G1X="YT96UP(&)I;B]P
M<F]L;V=U92UT96UP;&%T92YT>'0@/B!C;VYF:6<O<')O;&]G=64N='AT"E@@
M<FT@+68@8V]N9FEG+W!R;VQO9W5E+G1X="YT96UP"E@@"E@K(R!G96YE<F%T
M92!P<F]L;V=U92!F;W(@=WAC;W)E(&1O8W5M96YT871I;VX*6"ME8VAO("(@
M8V]N9FEG+W!R;VQO9W5E+7=X8V]R92YT>'0B"E@K96-H;R`B1&]C=6UE;G1A
M=&EO;B!F;W(@=WAC;W)E("1V97)S:6]N(B`@/B`@8V]N9FEG+W!R;VQO9W5E
M+7=X8V]R92YT>'0N=&5M<`I8*V5C:&\@(B(@("`@("`@("`@("`@("`@("`@
M("`@("`@("`@("`@("`@("`@(#X^(&-O;F9I9R]P<F]L;V=U92UW>&-O<F4N
M='AT+G1E;7`*6"MC870@8V]N9FEG+W!R;VQO9W5E+7=X8V]R92YT>'0N=&5M
M<"!B:6XO<')O;&]G=64M=WAC;W)E+71E;7!L871E+G1X="`^(&-O;F9I9R]P
M<F]L;V=U92UW>&-O<F4N='AT"E@K<FT@+68@8V]N9FEG+W!R;VQO9W5E+7=X
M8V]R92YT>'0N=&5M<`I8*PI8*R,@9V5N97)A=&4@<')O;&]G=64@9F]R('=X
M(&1O8W5M96YT871I;VX*6"ME8VAO("(@8V]N9FEG+W!R;VQO9W5E+7=X+G1X
M="(*6"ME8VAO(")$;V-U;65N=&%T:6]N(&9O<B!W>"`D=F5R<VEO;B(@(#X@
M(&-O;F9I9R]P<F]L;V=U92UW>"YT>'0N=&5M<`I8*V5C:&\@(B(@("`@("`@
M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(#X^(&-O;F9I9R]P<F]L
M;V=U92UW>"YT>'0N=&5M<`I8*V-A="!C;VYF:6<O<')O;&]G=64M=W@N='AT
M+G1E;7`@8FEN+W!R;VQO9W5E+7=X+71E;7!L871E+G1X="`^(&-O;F9I9R]P
M<F]L;V=U92UW>"YT>'0*6"MR;2`M9B!C;VYF:6<O<')O;&]G=64M=W@N='AT
M+G1E;7`*6"L*6"L*6"`C('-A=F4@87)G=6UE;G1S"E@@96-H;R`B(&-O;F9I
M9R]C86-H92YT>'0B"E@@96-H;R`B)&%R9W5M96YT<U]E>'`B(#X@8V]N9FEG
M+V-A8VAE+G1X=`HU,C`R,C-C8C1F9#,X.3%D,#8S96)E9&0Y,&1D93!F90IE
M8VAO('@@+2!H<RUW>&-O<F4O9FEL97,O<&%T8V@M8FEN7W!R;VQO9W5E+7=X
M8V]R92UT96UP;&%T92YT>'0*<V5D("=S+UY8+R\G(#YH<RUW>&-O<F4O9FEL
M97,O<&%T8V@M8FEN7W!R;VQO9W5E+7=X8V]R92UT96UP;&%T92YT>'0@/#P@
M)S(V-#,X-F,Y,S=C8C<V8S1F-C%E,C@U83AC86,Y.30T)PI8+2TM(&)I;B]P
M<F]L;V=U92UW>&-O<F4M=&5M<&QA=&4N='AT+F]R:6<),C`P."TP-2TQ-"`P
M.#HU-3HP,BXP,#`P,#`P,#`@*S`P,#`*6"LK*R!B:6XO<')O;&]G=64M=WAC
M;W)E+71E;7!L871E+G1X=`DR,#`X+3`U+3$T(#`X.C4U.C`R+C`P,#`P,#`P
M,"`K,#`P,`I80$`@+3`L,"`K,2PR."!`0`I8*W=X2&%S:V5L;"!I<R!A($AA
M<VME;&P@8FEN9&EN9R!T;R!T:&4@<&]R=&%B;&4@=WA7:61G971S($=522!L
M:6)R87)Y+@I8*U-E92`\:'1T<#HO+W=X:&%S:V5L;"YS;W5R8V5F;W)G92YN
M970^(&9O<B!T:&4@;&%T97-T(&EN9F]R;6%T:6]N+@I8*PI8*U1H92`B1W)A
M<&AI8W,N54DN5UA#;W)E(B!L:6)R87)Y(&ES('1H92!C;W)E(&EN=&5R9F%C
M92!T;R!T:&4@=WA7:61G971S"E@K;&EB<F%R>2X@5&AE('=X5VED9V5T<R!F
M=6YC=&EO;G,@87)E(&YO="!E>'!L86EN960@:&5R92X*6"M0;&5A<V4@;&]O
M:R!A="!T:&4@;W)I9VEN86P@=WA7:61G971S(&1O8W5M96YT871I;VX@870@
M/&AT='`Z+R]W=W<N=WAW:61G971S+F]R9SX*6"L*6"L*6"M,24-%3E-%.@I8
M*PI8*U1H92!W>$AA<VME;&P@;&EB<F%R:65S(&%R92!D:7-T<FEB=71E9"!U
M;F1E<B!T:&4@=WA7:6YD;W=S(&QI8G)A<GD@;&EC96YS92X*6"M4:&4@9&]C
M=6UE;G1A=&EO;B!I<R!S=6)J96-T('1O('1H92!W>%=I;F1O=W,@9&]C=6UE
M;G1A=&EO;B!L:6-E;G-E+@I8*PI8*U-E92`\:'1T<#HO+W=W=RYW>'=I9&=E
M=',N;W)G+VYE=VQI8V5N+FAT;3X@9F]R('1H92!L96=A;"!D97-C<FEP=&EO
M;B!O9B!T:&4@;&EC96YS92X*6"L*6"M4:&4@=WA7:6YD;W=S(&QI8G)A<GD@
M;&EC96YS92!I<R!E<W-E;G1I86QL>2!T:&4@3"U'4$P@*$QI8G)A<GD@1V5N
M97)A;"!0=6)L:6,@3&EC96YC92DL(`I8*W=I=&@@86X@97AC97!T:6]N('-T
M871I;F<@=&AA="!D97)I=F5D('=O<FMS(&EN(&)I;F%R>2!F;W)M(&UA>2!B
M92!D:7-T<FEB=71E9"!O;B!T:&4@"E@K=7-E<EPG<R!O=VX@=&5R;7,N(%1H
M:7,@;65A;G,@=&AA="!I="!I<R!P;W-S:6)L92!T;R!C<F5A=&4@8V]M;65R
M8VEA;"!S;V9T=V%R92!W:71H('1H:7,*6"ML:6)R87)Y('=I=&AO=70@<&%Y
M:6YG(')O>6%L=&EE<R!O<B!D:7-C;&]S:6YG('-O=7)C92!C;V1E+B!4:&ES
M(&ES(&$@<V]L=71I;VX@=&AA="!S871I<V9I97,@"E@K=&AO<V4@=VAO('=I
M<V@@=&\@<')O9'5C92!'4$Q<)V5D('-O9G1W87)E('5S:6YG('=X2&%S:V5L
M;"P@86YD(&%L<V\@=&AO<V4@<')O9'5C:6YG('!R;W!R:65T87)Y('-O9G1W
M87)E+@I8*PI8*U1H:7,@;&EB<F%R>2!I<R!D:7-T<FEB=71E9"!I;B!T:&4@
M:&]P92!T:&%T(&ET('=I;&P@8F4@=7-E9G5L+"!B=70*6"LO=VET:&]U="!A
M;GD@=V%R<F%N='DO.R!W:71H;W5T(&5V96X@=&AE(&EM<&QI960@=V%R<F%N
M='D@;V8*6"LO;65R8VAA;G1A8FEL:71Y(&]R(&9I=&YE<W,@9F]R(&$@<&%R
M=&EC=6QA<B!P=7)P;W-E+RX@(`I8*U-E92!T:&4@=WA7:6YD;W=S(&QI8G)A
M<GD@;&EC96YS92!F;W(@;6]R92!D971A:6QS+@I8*PI8*PI8*PHR-C0S.#9C
M.3,W8V(W-F,T9C8Q93(X-6$X8V%C.3DT-`IE8VAO('@@+2!H<RUW>&-O<F4O
M9FEL97,O<&%T8V@M8FEN7W!R;VQO9W5E+7=X+71E;7!L871E+G1X=`IS960@
M)W,O7E@O+R<@/FAS+7=X8V]R92]F:6QE<R]P871C:"UB:6Y?<')O;&]G=64M
M=W@M=&5M<&QA=&4N='AT(#P\("<Y96$U-C$Y9&4U9&(S,F%E,#0S.#1C,C1A
M9&(X9#@W9"<*6"TM+2!B:6XO<')O;&]G=64M=W@M=&5M<&QA=&4N='AT+F]R
M:6<),C`P."TP-2TQ-"`P.#HU-3HP,BXP,#`P,#`P,#`@*S`P,#`*6"LK*R!B
M:6XO<')O;&]G=64M=W@M=&5M<&QA=&4N='AT"3(P,#@M,#4M,30@,#@Z-34Z
M,#(N,#`P,#`P,#`P("LP,#`P"EA`0"`M,"PP("LQ+#(W($!`"E@K=WA(87-K
M96QL(&ES(&$@2&%S:V5L;"!B:6YD:6YG('1O('1H92!P;W)T86)L92!W>%=I
M9&=E=',@1U5)(&QI8G)A<GDN"E@K4V5E(#QH='1P.B\O=WAH87-K96QL+G-O
M=7)C969O<F=E+FYE=#X@9F]R('1H92!L871E<W0@:6YF;W)M871I;VXN"E@K
M"E@K5&AE(")'<F%P:&EC<RY522Y76"(@;&EB<F%R>2!I<R!A("]M:61D;&4M
M;&5V96PO($AA<VME;&P@;&EB<F%R>2!F;W(@=W)I=&EN9R!G<F%P:&EC86P*
M6"MU<V5R(&EN=&5R9F%C97,N($ET(&ES(&)U:6QT(&]N('1O<"!T:&4@1W)A
M<&AI8W,N54DN5UA#;W)E(&QI8G)A<GDN"E@K"E@K"E@K3$E#14Y313H*6"L*
M6"M4:&4@=WA(87-K96QL(&QI8G)A<FEE<R!A<F4@9&ES=')I8G5T960@=6YD
M97(@=&AE('=X5VEN9&]W<R!L:6)R87)Y(&QI8V5N<V4N"E@K5&AE(&1O8W5M
M96YT871I;VX@:7,@<W5B:F5C="!T;R!T:&4@=WA7:6YD;W=S(&1O8W5M96YT
M871I;VX@;&EC96YS92X*6"L*6"M3964@/&AT='`Z+R]W=W<N=WAW:61G971S
M+F]R9R]N97=L:6-E;BYH=&T^(&9O<B!T:&4@;&5G86P@9&5S8W)I<'1I;VX@
M;V8@=&AE(&QI8V5N<V4N"E@K"E@K5&AE('=X5VEN9&]W<R!L:6)R87)Y(&QI
M8V5N<V4@:7,@97-S96YT:6%L;'D@=&AE($PM1U!,("A,:6)R87)Y($=E;F5R
M86P@4'5B;&EC($QI8V5N8V4I+"`*6"MW:71H(&%N(&5X8V5P=&EO;B!S=&%T
M:6YG('1H870@9&5R:79E9"!W;W)K<R!I;B!B:6YA<GD@9F]R;2!M87D@8F4@
M9&ES=')I8G5T960@;VX@=&AE(`I8*W5S97)<)W,@;W=N('1E<FUS+B!4:&ES
M(&UE86YS('1H870@:70@:7,@<&]S<VEB;&4@=&\@8W)E871E(&-O;6UE<F-I
M86P@<V]F='=A<F4@=VET:"!T:&ES"E@K;&EB<F%R>2!W:71H;W5T('!A>6EN
M9R!R;WEA;'1I97,@;W(@9&ES8VQO<VEN9R!S;W5R8V4@8V]D92X@5&AI<R!I
M<R!A('-O;'5T:6]N('1H870@<V%T:7-F:65S(`I8*W1H;W-E('=H;R!W:7-H
M('1O('!R;V1U8V4@1U!,7"=E9"!S;V9T=V%R92!U<VEN9R!W>$AA<VME;&PL
M(&%N9"!A;'-O('1H;W-E('!R;V1U8VEN9R!P<F]P<FEE=&%R>2!S;V9T=V%R
M92X*6"L*6"M4:&ES(&QI8G)A<GD@:7,@9&ES=')I8G5T960@:6X@=&AE(&AO
M<&4@=&AA="!I="!W:6QL(&)E('5S969U;"P@8G5T"E@K+W=I=&AO=70@86YY
M('=A<G)A;G1Y+SL@=VET:&]U="!E=F5N('1H92!I;7!L:65D('=A<G)A;G1Y
M(&]F"E@K+VUE<F-H86YT86)I;&ET>2!O<B!F:71N97-S(&9O<B!A('!A<G1I
M8W5L87(@<'5R<&]S92\N("`*6"M3964@=&AE('=X5VEN9&]W<R!L:6)R87)Y
M(&QI8V5N<V4@9F]R(&UO<F4@9&5T86EL<RX*6"L*6"L*6"L*.65A-38Q.61E
M-61B,S)A93`T,S@T8S(T861B.&0X-V0*96-H;R!X("T@:',M=WAC;W)E+V9I
M;&5S+W!A=&-H+6)I;E]P<F]L;V=U92UT96UP;&%T92YT>'0*<V5D("=S+UY8
M+R\G(#YH<RUW>&-O<F4O9FEL97,O<&%T8V@M8FEN7W!R;VQO9W5E+71E;7!L
M871E+G1X="`\/"`G-S%C-3`X,C%F,V)B,3,Y8C$P.#!D9#1B-#<S96%A864G
M"E@M+2T@8FEN+W!R;VQO9W5E+71E;7!L871E+G1X="YO<FEG"3(P,#@M,#,M
M,C,@,C$Z,#DZ,C4N,#`P,#`P,#`P("LP,#`P"E@K*RL@8FEN+W!R;VQO9W5E
M+71E;7!L871E+G1X=`DR,#`X+3`U+3$T(#`X.C4U.C`R+C`P,#`P,#`P,"`K
M,#`P,`I80$`@+3(L-R`K,BPW($!`"E@@4V5E(#QH='1P.B\O=WAH87-K96QL
M+G-O=7)C969O<F=E+FYE=#X@9F]R('1H92!L871E<W0@:6YF;W)M871I;VXN
M"E@@"E@@5&AE(")'<F%P:&EC<RY522Y76"(@;&EB<F%R>2!I<R!A("]M:61D
M;&4M;&5V96PO($AA<VME;&P@;&EB<F%R>2!F;W(@=W)I=&EN9R!G<F%P:&EC
M86P*6"UU<V5R(&EN=&5R9F%C97,N($ET(&ES(&)U:6QD(&]N('1O<"!T:&4@
M(D=R87!H:6-S+E5)+E=80V]R92(@;&EB<F%R>2P@=&AE(&-O<F4@:6YT97)F
M86-E"E@K=7-E<B!I;G1E<F9A8V5S+B!)="!I<R!B=6EL="!O;B!T;W`@=&AE
M(")'<F%P:&EC<RY522Y76$-O<F4B(&QI8G)A<GDL('1H92!C;W)E(&EN=&5R
M9F%C90I8('1O('1H92!W>%=I9&=E=',@;&EB<F%R>2X@5&AE('=X5VED9V5T
M<R!F=6YC=&EO;G,@87)E(&YO="!E>'!L86EN960@:&5R92X*6"!0;&5A<V4@
M;&]O:R!A="!T:&4@;W)I9VEN86P@=WA7:61G971S(&1O8W5M96YT871I;VX@
M870@/&AT='`Z+R]W=W<N=WAW:61G971S+F]R9SX*6"`*-S%C-3`X,C%F,V)B
M,3,Y8C$P.#!D9#1B-#<S96%A864*96-H;R!X("T@:',M=WAC;W)E+V9I;&5S
M+W!A=&-H+7=X8V]R92YC86)A;`IS960@)W,O7E@O+R<@/FAS+7=X8V]R92]F
M:6QE<R]P871C:"UW>&-O<F4N8V%B86P@/#P@)V9D8SED860Y,60P-SDT.#$X
M86,Y,C<P,&8S969D,#1D)PI8+2TM('=X8V]R92YC86)A;"YO<FEG"3(P,#@M
M,#,M,C,@,C$Z,#DZ,CDN,#`P,#`P,#`P("LP,#`P"E@K*RL@=WAC;W)E+F-A
M8F%L"3(P,#@M,#4M,30@,#@Z-34Z,#(N,#`P,#`P,#`P("LP,#`P"EA`0"`M
M-"PW("LT+#$S($!`"E@@3&EC96YS92UF:6QE.B`@(&QI8V5N<V4N='AT"E@@
M075T:&]R.B`@("`@("`@($1A86X@3&5I:F5N"E@@0G5I;&0M5'EP93H@("`@
M($UA:V4*6"U$97-C<FEP=&EO;CH@("`@=WA(87-K96QL(&ES(&$@<&]R=&%B
M;&4@86YD(&YA=&EV92!'54D@;&EB<F%R>2!F;W(@2&%S:V5L;"X@($ET(&ES
M(&)U:6QT(&]N('1O<"!O9B!W>%=I9&=E=',@+2!A(&-O;7!R96AE;G-I=F4@
M0RLK(&QI8G)A<GD@=&AA="!I<R!P;W)T86)L92!A8W)O<W,@86QL(&UA:F]R
M($=522!P;&%T9F]R;7,[(&EN8VQU9&EN9R!'5$LL(%=I;F1O=W,L(%@Q,2P@
M86YD($UA8T]3(%@N("!!="!P<F5S96YT+"!I="!W;W)K<R!W:71H('=X5VED
M9V5T<R`R+C8@*&%N9"!S861L>2P@;F]T('=I=&@@=VET:"!W>%=I9&=E=',@
M,BXX*0I8*T1E<V-R:7!T:6]N.B`@("!W>$AA<VME;&P@:7,@82!P;W)T86)L
M92!A;F0@;F%T:79E($=522!L:6)R87)Y(&9O<B!(87-K96QL+@I8*PD)270@
M:7,@8G5I;'0@;VX@=&]P(&]F('=X5VED9V5T<R`M(&$@8V]M<')E:&5N<VEV
M92!#*RL@;&EB<F%R>0I8*PD)=&AA="!I<R!P;W)T86)L92!A8W)O<W,@86QL
M(&UA:F]R($=522!P;&%T9F]R;7,[(&EN8VQU9&EN9PI8*PD)1U1++"!7:6YD
M;W=S+"!8,3$L(&%N9"!-86-/4R!8+B`@070@<')E<V5N="P@:70@=V]R:W,@
M=VET:`I8*PD)=WA7:61G971S(#(N-B`H86YD('-A9&QY+"!N;W0@=VET:"!W
M:71H('=X5VED9V5T<R`R+C@I"E@K"0E4:&4@1W)A<&AI8W,N54DN5UA#;W)E
M(&QI8G)A<GD@:7,@=&AE(&-O<F4@:6YT97)F86-E('1O('1H90I8*PD)=WA7
M:61G971S(&QI8G)A<GDN"E@@36%I;G1A:6YE<CH@("`@('=X:&%S:V5L;"UD
M979E;$!L:7-T<RYS;W5R8V5F;W)G92YN970*6"!#86)A;"U697)S:6]N.B`@
M/CT@,2XR"E@@0V%T96=O<GDZ("`@("`@($=522P@57-E<B!I;G1E<F9A8V5S
M"EA`0"`M,CDL-R`K,S4L-B!`0`I8("`@1W)A<&AI8W,N54DN5UA#;W)E+E=X
M8T-L87-S97--6@I8("`@1W)A<&AI8W,N54DN5UA#;W)E+D5V96YT<PI8("`@
M1W)A<&AI8W,N54DN5UA#;W)E+D9R86UE"E@M("!'<F%P:&EC<RY522Y76$-O
M<F4N26YT36%P"E@@("!'<F%P:&EC<RY522Y76$-O<F4N3&%Y;W5T"E@@("!'
M<F%P:&EC<RY522Y76$-O<F4N0V]N=')O;',*6"`@($=R87!H:6-S+E5)+E=8
M0V]R92Y4>7!E<PI80$`@+30R+#4@*S0W+#<@0$`*6"`@($=R87!H:6-S+E5)
M+E=80V]R92Y/<&5N1TP*6"`@($=R87!H:6-S+E5)+E=80V]R92Y7>&-#;&%S
M<TEN9F\*6"`@($=R87!H:6-S+E5)+E=80V]R92Y$969I;F5S"E@K;W1H97(M
M;6]D=6QE<SH*6"L)1W)A<&AI8W,N54DN5UA#;W)E+DEN=$UA<`I8("!(<RU3
M;W5R8V4M1&ER<SH@=WAC;W)E+W-R8PI8(`IF9&,Y9&%D.3%D,#<Y-#@Q.&%C
M.3(W,#!F,V5F9#`T9`IE8VAO('@@+2!H<RUW>&-O<F4O36%K969I;&4*<V5D
M("=S+UY8+R\G(#YH<RUW>&-O<F4O36%K969I;&4@/#P@)SDQ.3@S835E,CDR
M,#9C93DQ-3<U-V4S8F$S,S!C9#`R)PI8(R!.97<@<&]R=',@8V]L;&5C=&EO
M;B!M86ME9FEL92!F;W(Z(&AS+7=X8V]R90I8(R!$871E(&-R96%T960Z($UA
M>2`R-R`R,#`X"E@C(%=H;VTZ("`@("`@("`@1VEU<V5P<&4@4&EL:6-H:2!A
M:V$@2F%C=6QA($UO9'EU;B`\:F%C=6QA0&=M86EL+F-O;3X*6",*6",@)$9R
M965"4T0Z"E@C"E@*6%!/4E1.04U%/0EW>&-O<F4*6%!/4E1615)324]./0DP
M+C$P+C,*6$-!5$5'3U))15,]"7@Q,2UT;V]L:VET<R!H87-K96QL"EA-05-4
M15)?4TE415,]"21[34%35$527U-)5$5?4T]54D-%1D]21T5]"EA-05-415)?
M4TE415]354)$25(]"7=X:&%S:V5L;`I84$M'3D%-15!2149)6#T):',M"EA$
M25-43D%-13T)=WAH87-K96QL+7-R8RTD>U!/4E1615)324].?0I8"EA-04E.
M5$%)3D52/0EJ86-U;&%`9VUA:6PN8V]M"EA#3TU-14Y4/0E#;W)E(&EN=&5R
M9F%C92!T;R!T:&4@=WA7:61G971S(&9O<B!W>$AA<VME;&P*6`I83$E"7T1%
M4$5.1%,]"7=X7V=T:S)U7V=L+3(N-CHD>U!/4E131$E2?2]X,3$M=&]O;&MI
M=',O=WAG=&LR-BUU;FEC;V1E"E@*6%5315]'3#T)"7EE<PI855-%7T-!0D%,
M/0ED:7-T<F=M86ME.F9U;&P@9&]C<R!G96YR96<@:&,Z8F]T:&1E<"!L:',@
M<')O9FEL93IF=6QL"E@*6"YI9B`A9&5F:6YE9"A33$%615]03U)4*0I83U!4
M24].4ST)4%)/1DE,12`B0V]M<&EL92!F;W(@<')O9FEL:6YG(&%S('=E;&PB
M(&]N(%P*6`D)1$]#4R`B26YS=&%L;"!(5$U,(&1O8W5M96YT871I;VXB(&]N
M"E@N96QS90I8+F9O<B!O<'0@:6X@)'M33$%615]03U)4?0I85TE42$]55%\D
M>V]P=#I5?3T)=')U90I8+F5N9&9O<@I8+F5N9&EF"E@*6"YI;F-L=61E(#QB
M<V0N<&]R="YP<F4N;6L^"E@*6"YI;F-L=61E("(D>RY#55)$25)]+RXN+VAS
M+7=X:&%S:V5L;"]-86ME9FEL92YL;V-A;"(*6`I84T5455!?0T].1DE'55)%
M7T%21U,K/0DM+6QI8F1I<CTD>T1?3$E"1$E2?2\D>T1?3$E"4U5"1$E2?0I8
M"EA#3TY&24=54D5?3U!424].4RL]"2TM96YA8FQE+7-P;&ET+6]B:G,@+2UW
M>"UC;VYF:6<]=WAG=&LR=2TR+C8M8V]N9FEG(%P*6`D)"2TM=VET:"UO<&5N
M9VP@+2UE>'1R82UL9"UO<'1S/21[4%1(4D5!1%],24)3?0I8"E@N:68@(61E
M9FEN960H5TE42$]55%]04D]&24Q%*0I80T].1DE'55)%7T]05$E/3E,K/0DM
M+6AC<')O9@I8+F5N9&EF"E@*6"YI9B`A9&5F:6YE9"A7251(3U547T1/0U,I
M"EA#3TY&24=54D5?3U!424].4RL]"2TM:&%D9&]C:STD>TA!1$1/0TM?0TU$
M?0I8+F5N9&EF"E@*6$-86$9,04=3*ST)"2U))'M,3T-!3$)!4T5]+VEN8VQU
M9&4*6%-%5%507T-/3D9)1U5215]%3E8K/0E#6%A&3$%'4STB)'M#6%A&3$%'
M4WTB"E@*6%5315],1$-/3D9)1ST)"21[4%)%1DE8?2\D>T1?3$E"4U5"1$E2
M7U)%3'T*6`I8+E-)3$5.5#H*6`I8<')E+65V97)Y=&AI;F<Z.@I8+FEF("%D
M969I;F5D*%=)5$A/551?1$]#4RD*6`DD>T5#2$]?35-'?2`M92`B7&$B"E@)
M)'M%0TA/7TU31WT@(CT]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/2(*6`DD>T5#2$]?
M35-'?2`B+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM(%!L96%S92!N;W1E
M("TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM(@I8"21[14-(3U]-4T=]("(@
M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
M("`@("`@("`@("`@("`@("`@("`B"E@))'M%0TA/7TU31WT@(B`@("!4:&ES
M('!O<G0@:6YS=&%L;',@=&AE(&QI8G)A<GD@9&]C=6UE;G1A=&EO;B!O9B!7
M6$-O<F4[("`@("`@("(*6`DD>T5#2$]?35-'?2`B("`@(&)U="!I9B!Y;W4@
M=V%N="!<(F]N;'E<(B!A('5N:69I960@;&EB<F%R>2!D;V-U;65N=&%T:6]N
M("`@("`@(@I8"21[14-(3U]-4T=]("(@("`@9F]R(&)O=&@@5U@@86YD(%=8
M0V]R92!I;B!O;F4@<V%M92!D:7)E8W1O<GDL('1H96X@:&ET("`@("`@("`B
M"E@))'M%0TA/7TU31WT@(B`@("!#=')L+4,@<FEG:'0@;F]W+"!D969I;F4@
M5TE42$]55%]$3T-3(&%N9"P@869T97(@;W(@("`@("`@("`@("(*6`DD>T5#
M2$]?35-'?2`B("`@(&)E9F]R92!Y;W4@:6YS=&%L;&5D('1H:7,@<&]R="P@
M:6YS=&%L;"P@9&5F:6YI;F<@=&AE<F4@("`@("`@(@I8"21[14-(3U]-4T=]
M("(@("`@5TE42%]$3T-3+"!T:&4@7")H<RUW>&AA<VME;&PM9&]C<UPB('!O
M<G0N("`@("`@("`@("`@("`@("`@("`B"E@))'M%0TA/7TU31WT*6`DD>T5#
M2$]?35-'?2`B("`@(%!A>2!A='1E;G1I;VX@=&AA="P@:6X@=&AI<R!L87-T
M(&-A<V4L(&EF('EO=2!N965D(&]F('1H92`@("`@(@I8"21[14-(3U]-4T=]
M("(@("`@:&%D9&]C:R!I;G1E<F9A8V4@9FEL92!F;W(@5UA#;W)E+"!Y;W4@
M:&%V92!T;R!R97)E9VES=&5R("`@("`B"E@))'M%0TA/7TU31WT@(B`@("!I
M="P@869T97(@=&AE(&EN<W1A;&QA=&EO;B!O9B!<(FAS+7=X:&%S:V5L;"UD
M;V-S7"(L('=I=&@@("`@("(*6`DD>T5#2$]?35-'?2`B("`@('1H92!H861D
M;V-K(&9I96QD<R!P;VEN=&EN9R!T;R!T:&4@:&%D9&]C:R!I;G1E<F9A8V4@
M9FEL92`@("`@(@I8"21[14-(3U]-4T=]("(@("`@9F]R(%=80V]R92P@:6YS
M=&%L;&5D(&)Y('1H:7,@;&%S="!P;W)T+B`@("`@("`@("`@("`@("`@("`@
M("`B"E@))'M%0TA/7TU31WT@(B`@("!!(')E9VES=')A=&EO;B!F:6QE(&9O
M<B!T:&ES('=O<FL@8V%N(&)E(&]B=&%I;F5D('=I=&@@("`@("`@("(*6`DD
M>T5#2$]?35-'?2`B("`@(&EN<W1A;&QI;F<@=&AE('!O<G0@7")H<RUW>&AA
M<VME;&Q<(BP@9&5F:6YI;F<@=&AE(&]P=&EO;B`@("`@(@I8"21[14-(3U]-
M4T=]("(@("`@5TE42%]214=)4U1%4E,[(&1E9FEN:6YG(&%L<V\@5TE42%]2
M14=)4U12051)3TX@>6]U(&-A;B`@("`@("`B"E@))'M%0TA/7TU31WT@(B`@
M("!A8W1I=F%T92!T:&ES(')E9VES=')A=&EO;B!P<F]C961U<F4@9F]R(%=8
M0V]R92X@("`@("`@("`@("`@("(*6`DD>T5#2$]?35-'?0I8"21[14-(3U]-
M4T=]("(@("`@3F%T=7)A;&QY('EO=2!C86X@:6YS=&%L;"!B;W1H(&MI;F1S
M(&]F(&1O8W5M96YT871I;VX@86YD("`@("`B"E@))'M%0TA/7TU31WT@(B`@
M("!C:&]I8V4@=VAI8V@@=&\@<F5G:7-T97(N("`@("`@("`@("`@("`@("`@
M("`@("`@("`@("`@("`@("`@("(*6`DD>T5#2$]?35-'?0I8"21[14-(3U]-
M4T=]("(@("`@1G5R=&AE<FUO<F4@:68@=&AI<R!P;W)T(&1O97-N)W0@:6YS
M=&%L;"!T:&4@:'EP97)L:6YK86)L92`@("`B"E@))'M%0TA/7TU31WT@(B`@
M("!D;V-U;65N=&%T:6]N(&9O<B!I=',@;&EB<F%R:65S+"!T:&5N(&AA9&1O
M8VL@8V%N)W0@:VYO=R`@("`@("(*6`DD>T5#2$]?35-'?2`B("`@(&%B;W5T
M('1H97-E+"!A;F0@=&AE(%PB:',M=WA<(B!P;W)T+"!D969I;FEN9R!7251(
M7T1/0U,L("`@("`@(@I8"21[14-(3U]-4T=]("(@("`@:6YS=&%L;',@82!B
M<F]K96X@9&]C=6UE;G1A=&EO;BX@("`@("`@("`@("`@("`@("`@("`@("`@
M("`@("`B"E@))'M%0TA/7TU31WT@(CT]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/2(*
M6`DD>T5#2$]?35-'?0I8"7-L965P(#0*6"YE;F1I9@I8"E@C(%1H:7,@;6%K
M97,@=&AE(&-H86YG92UR96=I<W1E<B!T87)G970@=7-E;&5S<R!B=70@8V]R
M<F5C="!A;F0@20I8(R!P<F5F97(@;F]T('1O('5S92!T:&4@(FUA:V4B(&5V
M86QU871O<B!O;B!T:&4@9&\M:6YS=&%L;"!T87)G970N"E@C(%-T86YD87)D
M+"!S=&%N9&%R9"P@<W1A;F1A<F0N+BX@.BTI"EAP;W-T+6-O;F9I9W5R93H*
M6`DD>T5#2$]?0TU$?2`B:&%D9&]C:RUI;G1E<F9A8V5S.B1[2$%$1$]#2U])
M3E1%4D9!0T53.D,O*"XK*2\@7#$O,7TB(#X^("1[4T5455!?5U)+4U)#?2]C
M;VYF:6<O=WAC;W)E+G!K9PI8"21[14-(3U]#341](")H861D;V-K+6AT;6PZ
M)'M(041$3T-+7TA434PZ0R\H+BLI+R!<,2\Q?2(@/CX@)'M315154%]74DM3
M4D-]+V-O;F9I9R]W>&-O<F4N<&MG"E@*6&)U:6QD+61A=&$Z"E@N:68@(61E
M9FEN960H5TE42$]55%]$3T-3*0I8"21[1T5.7TA30T],3U52?2`D>U-%5%50
M7U=22U-20WTO)'M$7TY!345]+W-R8R`D>U-%5%507U=22U-20WTO9&ES="]D
M;V,O:'1M;"\D>T1?3D%-17TO<W)C(#$@(B$@+6YA;64@26YT36%P+FAS(@I8
M"21[4T5455!?2$%$1$]#2WT*6"YE;F1I9@I8"EAI;G-T86QL+61A=&$Z"E@)
M)'M-2T1)4GT@)'M$3T-31$E2?2`F)B!C9"`D>U-%5%507U=22U-20WT@)B8@
M)'M)3E-404Q,7T1!5$%](&QI8V5N<V4N='AT("1[1$]#4T1)4GTO;&EC96YS
M92YT>'0*6`EC9"`D>U!2149)6'TO)'M$7TQ)0E-50D1)4E]214Q]("8F("1[
M3$Y]("UF<R!L:6)W>&,M9W1K,BXV+C,M)'M$7U9%4E-)3TY]+G-O(&QI8G=X
M8RUG=&LR+C8N,RTD>T1?5D524TE/3GTN<V\N,`I8+FEF("%D969I;F5D*%=)
M5$A/551?1$]#4RD*6`DD>TU+1$E2?2`D>TA!1$1/0TM?2%1-3'T@)B8@8V0@
M)'M315154%]74DM34D-]+V1I<W0O9&]C+VAT;6PO)'M$7TY!345]("8F("1[
M0T]06512145?4TA!4D5](%PJ("1[2$%$1$]#2U](5$U,?0I8+F5N9&EF"E@*
M6'!O<W0M:6YS=&%L;#H*6`DD>U-%1'T@+6D@(B(@+64@(G,O7"0D>W=X:&QI
M8F1I<GTO)'M04D5&25@Z4WPO?%Q<+WQG?5PO)'M$7TQ)0E-50D1)4E]214PZ
M4WPO?%Q<+WQG?2\B("1[4%)%1DE8?2\D>T1?3$E"4U5"1$E27U)%3'TO=WAC
M;W)E+G!K9PI8"E@N:6YC;'5D92`\8G-D+G!O<G0N<&]S="YM:SX*.3$Y.#-A
M-64R.3(P-F-E.3$U-S4W93-B83,S,&-D,#(*96-H;R!X("T@:',M=WAC;W)E
M+V1I<W1I;F9O"G-E9"`G<R]>6"\O)R`^:',M=WAC;W)E+V1I<W1I;F9O(#P\
M("=C8C8R83DY,S4T-#@T9#$P838X,30R,C`P9&1D,CEC8R<*6$U$-2`H=WAH
M87-K96QL+7-R8RTP+C$P+C,N=&%R+F=Z*2`](&)B8V,P.3`X93(Y-S8U,#1F
M.&$P-31C,V-F9F4T-F-E"EA32$$R-38@*'=X:&%S:V5L;"US<F,M,"XQ,"XS
M+G1A<BYG>BD@/2`R83EB-S!B.3)C.39E9C%A83-E86$S-#(V93(R-&,P.3DT
M8S(T8F9D86-C8F8R8C8W,V5D968V-6)A,V-F9F-E"EA325I%("AW>&AA<VME
M;&PM<W)C+3`N,3`N,RYT87(N9WHI(#T@-3(P-3@Y"F-B-C)A.3DS-30T.#1D
M,3!A-C@Q-#(R,#!D9&0R.6-C"F5C:&\@>"`M(&AS+7=X8V]R92]P:V<M9&5S
M8W(*<V5D("=S+UY8+R\G(#YH<RUW>&-O<F4O<&MG+61E<V-R(#P\("<S8V4T
M-C,P-C,Q.3)B,#,P9F4Y.3@T,S(W9C(X,&9B."<*6'=X2&%S:V5L;"!I<R!A
M('!O<G1A8FQE(&%N9"!N871I=F4@1U5)(&QI8G)A<GD@9F]R($AA<VME;&PN
M"E@*6%1H92!W>&-O<F4@;&EB<F%R>2!P<F]V:61E<R!T:&4@8V]R92!I;G1E
M<F9A8V4@=&\@=&AE('=X5VED9V5T<PI805!)("AI;B!7>&-#;&%S<V5S*2X@
M1G5R=&AE<FUO<F4L(&ET('!R;W9I9&5S('-O;64@=7-E9G5L"EAA8G-T<F%C
M=&EO;G,@9F]R('1H92!(87-K96QL('!R;V=R86UM97(N($AO=V5V97(L('1H
M92!L:6)R87)Y"EAJ=7-T('5S97,@9G5N8W1I;VYA;"!A8G-T<F%C=&EO;CH@
M;F\@;W9E<FQO861I;F<L(&YE=R!M;VYA9',L(&]R"EAO=&AE<B!F86YC:6YE
M<W,N"E@*6%1H92!W>$AA<VME;&P@;&EB<F%R:65S(&%R92!D:7-T<FEB=71E
M9"!U;F1E<B!T:&4@=WA7:6YD;W=S"EAL:6)R87)Y(&QI8V5N<V4N"EA4:&4@
M=WA7:6YD;W=S(&QI8G)A<GD@;&EC96YC92!I<R!E<W-E;G1I86QL>2!T:&4@
M3"U'4$PL('=I=&@*6&%N(&5X8V5P=&EO;B!S=&%T:6YG('1H870@9&5R:79E
M9"!W;W)K<R!I;B!B:6YA<GD@9F]R;2!M87D*6&)E(&1I<W1R:6)U=&5D(&]N
M('1H92!U<V5R)W,@;W=N('1E<FUS+@I8"EA!=71H;W(Z("`@("`@("`@1&%A
M;B!,96EJ96X*6$UA:6YT86EN97(Z"7=X:&%S:V5L;"UD979E;$!L:7-T<RYS
M;W5R8V5F;W)G92YN970*6$QI8V5N<V4Z("`@("`@("!,1U!,"EA75U<Z"0EH
M='1P.B\O=WAH87-K96QL+G-O=7)C969O<F=E+FYE=`I855),.@D):'1T<#HO
M+W=W=RYW>'=I9&=E=',N;W)G"E@*6$5X<&]S960M36]D=6QE<SH*6`E'<F%P
M:&EC<RY522Y76$-O<F4L($=R87!H:6-S+E5)+E=80V]R92Y7>&-/8FIE8W0L
M"E@)1W)A<&AI8W,N54DN5UA#;W)E+D1R87<L($=R87!H:6-S+E5)+E=80V]R
M92Y7>&-#;&%S<U1Y<&5S+`I8"4=R87!H:6-S+E5)+E=80V]R92Y$<F%G06YD
M1')O<"P@1W)A<&AI8W,N54DN5UA#;W)E+E=X8T1E9G,L"E@)1W)A<&AI8W,N
M54DN5UA#;W)E+E!R;V-E<W,L($=R87!H:6-S+E5)+E=80V]R92Y0<FEN="P*
M6`E'<F%P:&EC<RY522Y76$-O<F4N5WAC0VQA<W-E<TU:+"!'<F%P:&EC<RY5
M22Y76$-O<F4N179E;G1S+`I8"4=R87!H:6-S+E5)+E=80V]R92Y&<F%M92P@
M1W)A<&AI8W,N54DN5UA#;W)E+DQA>6]U="P*6`E'<F%P:&EC<RY522Y76$-O
M<F4N0V]N=')O;',L($=R87!H:6-S+E5)+E=80V]R92Y4>7!E<RP*6`E'<F%P
M:&EC<RY522Y76$-O<F4N5WAC0VQA<W-E<T%,+"!'<F%P:&EC<RY522Y76$-O
M<F4N1&EA;&]G<RP*6`E'<F%P:&EC<RY522Y76$-O<F4N1&(L($=R87!H:6-S
M+E5)+E=80V]R92Y7>&-4>7!E<RP*6`E'<F%P:&EC<RY522Y76$-O<F4N26UA
M9V4L($=R87!H:6-S+E5)+E=80V]R92Y7>&-#;&%S<V5S+`I8"4=R87!H:6-S
M+E5)+E=80V]R92Y/<&5N1TPL($=R87!H:6-S+E5)+E=80V]R92Y7>&-#;&%S
M<TEN9F\L"E@)1W)A<&AI8W,N54DN5UA#;W)E+D1E9FEN97,*,V-E-#8S,#8S
M,3DR8C`S,&9E.3DX-#,R-V8R.#!F8C@*96-H;R!X("T@:',M=WAC;W)E+W!K
M9RUP;&ES=`IS960@)W,O7E@O+R<@/FAS+7=X8V]R92]P:V<M<&QI<W0@/#P@
M)S<U8C8T,V(X,C@Q,F)B83@Q-&9B-&,U,&8U.&8U-#ED)PI8)25$7TQ)0E-5
M0D1)4E]214PE)2]I;7!O<G1S+T=R87!H:6-S+U5)+U=80V]R92YH:0I8)250
M4D]&24Q%)24E)41?3$E"4U5"1$E27U)%3"4E+VEM<&]R=',O1W)A<&AI8W,O
M54DO5UA#;W)E+G!?:&D*6"4E1%],24)354)$25)?4D5,)24O:6UP;W)T<R]'
M<F%P:&EC<R]522]76$-O<F4O0V]N=')O;',N:&D*6"4E4%)/1DE,124E)25$
M7TQ)0E-50D1)4E]214PE)2]I;7!O<G1S+T=R87!H:6-S+U5)+U=80V]R92]#
M;VYT<F]L<RYP7VAI"E@E)41?3$E"4U5"1$E27U)%3"4E+VEM<&]R=',O1W)A
M<&AI8W,O54DO5UA#;W)E+T1B+FAI"E@E)5!23T9)3$4E)24E1%],24)354)$
M25)?4D5,)24O:6UP;W)T<R]'<F%P:&EC<R]522]76$-O<F4O1&(N<%]H:0I8
M)25$7TQ)0E-50D1)4E]214PE)2]I;7!O<G1S+T=R87!H:6-S+U5)+U=80V]R
M92]$969I;F5S+FAI"E@E)5!23T9)3$4E)24E1%],24)354)$25)?4D5,)24O
M:6UP;W)T<R]'<F%P:&EC<R]522]76$-O<F4O1&5F:6YE<RYP7VAI"E@E)41?
M3$E"4U5"1$E27U)%3"4E+VEM<&]R=',O1W)A<&AI8W,O54DO5UA#;W)E+T1I
M86QO9W,N:&D*6"4E4%)/1DE,124E)25$7TQ)0E-50D1)4E]214PE)2]I;7!O
M<G1S+T=R87!H:6-S+U5)+U=80V]R92]$:6%L;V=S+G!?:&D*6"4E1%],24)3
M54)$25)?4D5,)24O:6UP;W)T<R]'<F%P:&EC<R]522]76$-O<F4O1')A9T%N
M9$1R;W`N:&D*6"4E4%)/1DE,124E)25$7TQ)0E-50D1)4E]214PE)2]I;7!O
M<G1S+T=R87!H:6-S+U5)+U=80V]R92]$<F%G06YD1')O<"YP7VAI"E@E)41?
M3$E"4U5"1$E27U)%3"4E+VEM<&]R=',O1W)A<&AI8W,O54DO5UA#;W)E+T1R
M87<N:&D*6"4E4%)/1DE,124E)25$7TQ)0E-50D1)4E]214PE)2]I;7!O<G1S
M+T=R87!H:6-S+U5)+U=80V]R92]$<F%W+G!?:&D*6"4E1%],24)354)$25)?
M4D5,)24O:6UP;W)T<R]'<F%P:&EC<R]522]76$-O<F4O179E;G1S+FAI"E@E
M)5!23T9)3$4E)24E1%],24)354)$25)?4D5,)24O:6UP;W)T<R]'<F%P:&EC
M<R]522]76$-O<F4O179E;G1S+G!?:&D*6"4E1%],24)354)$25)?4D5,)24O
M:6UP;W)T<R]'<F%P:&EC<R]522]76$-O<F4O1G)A;64N:&D*6"4E4%)/1DE,
M124E)25$7TQ)0E-50D1)4E]214PE)2]I;7!O<G1S+T=R87!H:6-S+U5)+U=8
M0V]R92]&<F%M92YP7VAI"E@E)41?3$E"4U5"1$E27U)%3"4E+VEM<&]R=',O
M1W)A<&AI8W,O54DO5UA#;W)E+TEM86=E+FAI"E@E)5!23T9)3$4E)24E1%],
M24)354)$25)?4D5,)24O:6UP;W)T<R]'<F%P:&EC<R]522]76$-O<F4O26UA
M9V4N<%]H:0I8)25$7TQ)0E-50D1)4E]214PE)2]I;7!O<G1S+T=R87!H:6-S
M+U5)+U=80V]R92]);G1-87`N:&D*6"4E4%)/1DE,124E)25$7TQ)0E-50D1)
M4E]214PE)2]I;7!O<G1S+T=R87!H:6-S+U5)+U=80V]R92]);G1-87`N<%]H
M:0I8)25$7TQ)0E-50D1)4E]214PE)2]I;7!O<G1S+T=R87!H:6-S+U5)+U=8
M0V]R92],87EO=70N:&D*6"4E4%)/1DE,124E)25$7TQ)0E-50D1)4E]214PE
M)2]I;7!O<G1S+T=R87!H:6-S+U5)+U=80V]R92],87EO=70N<%]H:0I8)25$
M7TQ)0E-50D1)4E]214PE)2]I;7!O<G1S+T=R87!H:6-S+U5)+U=80V]R92]/
M<&5N1TPN:&D*6"4E4%)/1DE,124E)25$7TQ)0E-50D1)4E]214PE)2]I;7!O
M<G1S+T=R87!H:6-S+U5)+U=80V]R92]/<&5N1TPN<%]H:0I8)25$7TQ)0E-5
M0D1)4E]214PE)2]I;7!O<G1S+T=R87!H:6-S+U5)+U=80V]R92]0<FEN="YH
M:0I8)2504D]&24Q%)24E)41?3$E"4U5"1$E27U)%3"4E+VEM<&]R=',O1W)A
M<&AI8W,O54DO5UA#;W)E+U!R:6YT+G!?:&D*6"4E1%],24)354)$25)?4D5,
M)24O:6UP;W)T<R]'<F%P:&EC<R]522]76$-O<F4O4')O8V5S<RYH:0I8)250
M4D]&24Q%)24E)41?3$E"4U5"1$E27U)%3"4E+VEM<&]R=',O1W)A<&AI8W,O
M54DO5UA#;W)E+U!R;V-E<W,N<%]H:0I8)25$7TQ)0E-50D1)4E]214PE)2]I
M;7!O<G1S+T=R87!H:6-S+U5)+U=80V]R92]4>7!E<RYH:0I8)2504D]&24Q%
M)24E)41?3$E"4U5"1$E27U)%3"4E+VEM<&]R=',O1W)A<&AI8W,O54DO5UA#
M;W)E+U1Y<&5S+G!?:&D*6"4E1%],24)354)$25)?4D5,)24O:6UP;W)T<R]'
M<F%P:&EC<R]522]76$-O<F4O5WAC0VQA<W-);F9O+FAI"E@E)5!23T9)3$4E
M)24E1%],24)354)$25)?4D5,)24O:6UP;W)T<R]'<F%P:&EC<R]522]76$-O
M<F4O5WAC0VQA<W-);F9O+G!?:&D*6"4E1%],24)354)$25)?4D5,)24O:6UP
M;W)T<R]'<F%P:&EC<R]522]76$-O<F4O5WAC0VQA<W-4>7!E<RYH:0I8)250
M4D]&24Q%)24E)41?3$E"4U5"1$E27U)%3"4E+VEM<&]R=',O1W)A<&AI8W,O
M54DO5UA#;W)E+U=X8T-L87-S5'EP97,N<%]H:0I8)25$7TQ)0E-50D1)4E]2
M14PE)2]I;7!O<G1S+T=R87!H:6-S+U5)+U=80V]R92]7>&-#;&%S<V5S+FAI
M"E@E)5!23T9)3$4E)24E1%],24)354)$25)?4D5,)24O:6UP;W)T<R]'<F%P
M:&EC<R]522]76$-O<F4O5WAC0VQA<W-E<RYP7VAI"E@E)41?3$E"4U5"1$E2
M7U)%3"4E+VEM<&]R=',O1W)A<&AI8W,O54DO5UA#;W)E+U=X8T-L87-S97-!
M3"YH:0I8)2504D]&24Q%)24E)41?3$E"4U5"1$E27U)%3"4E+VEM<&]R=',O
M1W)A<&AI8W,O54DO5UA#;W)E+U=X8T-L87-S97-!3"YP7VAI"E@E)41?3$E"
M4U5"1$E27U)%3"4E+VEM<&]R=',O1W)A<&AI8W,O54DO5UA#;W)E+U=X8T-L
M87-S97--6BYH:0I8)2504D]&24Q%)24E)41?3$E"4U5"1$E27U)%3"4E+VEM
M<&]R=',O1W)A<&AI8W,O54DO5UA#;W)E+U=X8T-L87-S97--6BYP7VAI"E@E
M)41?3$E"4U5"1$E27U)%3"4E+VEM<&]R=',O1W)A<&AI8W,O54DO5UA#;W)E
M+U=X8T1E9G,N:&D*6"4E4%)/1DE,124E)25$7TQ)0E-50D1)4E]214PE)2]I
M;7!O<G1S+T=R87!H:6-S+U5)+U=80V]R92]7>&-$969S+G!?:&D*6"4E1%],
M24)354)$25)?4D5,)24O:6UP;W)T<R]'<F%P:&EC<R]522]76$-O<F4O5WAC
M3V)J96-T+FAI"E@E)5!23T9)3$4E)24E1%],24)354)$25)?4D5,)24O:6UP
M;W)T<R]'<F%P:&EC<R]522]76$-O<F4O5WAC3V)J96-T+G!?:&D*6"4E1%],
M24)354)$25)?4D5,)24O:6UP;W)T<R]'<F%P:&EC<R]522]76$-O<F4O5WAC
M5'EP97,N:&D*6"4E4%)/1DE,124E)25$7TQ)0E-50D1)4E]214PE)2]I;7!O
M<G1S+T=R87!H:6-S+U5)+U=80V]R92]7>&-4>7!E<RYP7VAI"E@E)41?3$E"
M4U5"1$E27U)%3"4E+VQI8G=X8RUG=&LR+C8N,RTE)41?5D524TE/3B4E+G-O
M"E@E)41?3$E"4U5"1$E27U)%3"4E+VQI8G=X8RUG=&LR+C8N,RTE)41?5D52
M4TE/3B4E+G-O+C`*6"4E1%],24)354)$25)?4D5,)24O;&EB=WAC;W)E+F$*
M6"4E1%],24)354)$25)?4D5,)24O;&EB=WAC;W)E,"YA"E@E)5!23T9)3$4E
M)24E1%],24)354)$25)?4D5,)24O;&EB=WAC;W)E,%]P+F$*6"4E1%],24)3
M54)$25)?4D5,)24O;&EB=WAC;W)E,2YA"E@E)5!23T9)3$4E)24E1%],24)3
M54)$25)?4D5,)24O;&EB=WAC;W)E,5]P+F$*6"4E1%],24)354)$25)?4D5,
M)24O;&EB=WAC;W)E,BYA"E@E)5!23T9)3$4E)24E1%],24)354)$25)?4D5,
M)24O;&EB=WAC;W)E,E]P+F$*6"4E4%)/1DE,124E)25$7TQ)0E-50D1)4E]2
M14PE)2]L:6)W>&-O<F5?<"YA"E@E)41?3$E"4U5"1$E27U)%3"4E+W=X8V]R
M92YO"E@E)5!23T9)3$4E)24E1%],24)354)$25)?4D5,)24O=WAC;W)E+G!?
M;PI8)25$7TQ)0E-50D1)4E]214PE)2]W>&-O<F4N<&MG"E@E)41?3$E"4U5"
M1$E27U)%3"4E+W=X8V]R93`N;PI8)2504D]&24Q%)24E)41?3$E"4U5"1$E2
M7U)%3"4E+W=X8V]R93`N<%]O"E@E)41?3$E"4U5"1$E27U)%3"4E+W=X8V]R
M93$N;PI8)2504D]&24Q%)24E)41?3$E"4U5"1$E27U)%3"4E+W=X8V]R93$N
M<%]O"E@E)41?3$E"4U5"1$E27U)%3"4E+W=X8V]R93(N;PI8)2504D]&24Q%
M)24E)41?3$E"4U5"1$E27U)%3"4E+W=X8V]R93(N<%]O"E@E)41?3$E"1$E2
M7U)%3"4E+R4E1%]214<E)0I8)25.3U!/4E1$3T-3)24E)41/0U-$25(E)2]L
M:6-E;G-E+G1X=`I8)25.3U!/4E1$3T-3)25`9&ER<FT@)25$3T-31$E2)24*
M6$!D:7)R;2`E)41?3$E"4U5"1$E27U)%3"4E+VEM<&]R=',O1W)A<&AI8W,O
M54DO5UA#;W)E"EA`9&ER<FT@)25$7TQ)0E-50D1)4E]214PE)2]I;7!O<G1S
M+T=R87!H:6-S+U5)"EA`9&ER<FT@)25$7TQ)0E-50D1)4E]214PE)2]I;7!O
M<G1S+T=R87!H:6-S"EA`9&ER<FT@)25$7TQ)0E-50D1)4E]214PE)2]I;7!O
M<G1S"EA`9&ER<FT@)25$7TQ)0E-50D1)4E]214PE)0I80&1I<G)M("4E1%],
M24)$25)?4D5,)24*6$!E>&5C("4E4D5'7T--1"4E"EA`=6YE>&5C("4E54Y2
M14=?0TU$)24*-S5B-C0S8C@R.#$R8F)A.#$T9F(T8S4P9C4X9C4T.60*97AI
#=`H*
`
end
--- hs-wxcore.shar.uuencode ends here ---

--- hs-wx.shar begins here ---
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	hs-wx
#	hs-wx/files
#	hs-wx/files/wx_dist_doc_html_wx_Graphics-UI-WX-Layout.html.in
#	hs-wx/Makefile
#	hs-wx/distinfo
#	hs-wx/pkg-descr
#	hs-wx/pkg-plist
#
echo c - hs-wx
mkdir -p hs-wx > /dev/null 2>&1
echo c - hs-wx/files
mkdir -p hs-wx/files > /dev/null 2>&1
echo x - hs-wx/files/wx_dist_doc_html_wx_Graphics-UI-WX-Layout.html.in
sed 's/^X//' >hs-wx/files/wx_dist_doc_html_wx_Graphics-UI-WX-Layout.html.in << '95f083dc487c51e13c0167e1d46953bf'
X--- wx/dist/doc/html/wx/Graphics-UI-WX-Layout.html.orig	2008-05-14 08:52:55.000000000 +0000
X+++ wx/dist/doc/html/wx/Graphics-UI-WX-Layout.html	2008-05-14 08:52:56.000000000 +0000
X@@ -149,6 +149,16 @@
X >Layout</A
X ></TD
X ></TR
X+><TR
X+><TD CLASS="s8"
X+></TD
X+></TR
X+><TR
X+><TD CLASS="decl"
X+>module <A HREF="%%WXCORE_DOCSDIR%%/html/Graphics-UI-WXCore-Layout.html"
X+>Graphics.UI.WXCore.Layout</A
X+></TD
X+></TR
X ></TABLE
X ></TD
X ></TR
X@@ -335,6 +345,16 @@
X ></TD
X ></TR
X ><TR
X+><TD CLASS="decl"
X+>module <A HREF="%%WXCORE_DOCSDIR%%/html/Graphics-UI-WXCore-Layout.html"
X+>Graphics.UI.WXCore.Layout</A
X+></TD
X+></TR
X+><TR
X+><TD CLASS="s15"
X+></TD
X+></TR
X+><TR
X ><TD CLASS="botbar"
X >Produced by <A HREF="http://www.haskell.org/haddock/"
X >Haddock</A
95f083dc487c51e13c0167e1d46953bf
echo x - hs-wx/Makefile
sed 's/^X//' >hs-wx/Makefile << '132675f65e250d2e2594de3af0a0ffc9'
X# New ports collection makefile for: hs-wx
X# Date created: May 27 2008
X# Whom:         Giuseppe Pilichi aka Jacula Modyun <jacula@gmail.com>
X#
X# $FreeBSD:
X#
X
XPORTNAME=	wx
XPORTVERSION=	0.10.3
XCATEGORIES=	x11-toolkits haskell
XMASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
XMASTER_SITE_SUBDIR=	wxhaskell
XPKGNAMEPREFIX=	hs-
XDISTNAME=	wxhaskell-src-${PORTVERSION}
X
XMAINTAINER=	jacula@gmail.com
XCOMMENT=	Abstraction library on top of WXCore for wxHaskell
X
XBUILD_DEPENDS=	hs-wxcore>=0.10.3:${PORTSDIR}/x11-toolkits/hs-wxcore
XRUN_DEPENDS=	hs-wxcore>=0.10.3:${PORTSDIR}/x11-toolkits/hs-wxcore
X
XUSE_GMAKE=	yes
XUSE_CABAL=	distrsimple:full docs hc:bothdep lhs profile:all:full
X
XOPTIONS=	PROFILE "Compile for profiling as well" on \
X		DOCS "Install HTML documentation" on
X
X.include <bsd.port.pre.mk>
X
X.include "${.CURDIR}/../hs-wxhaskell/Makefile.local"
X
XSETUP_WRKSRC=	${WRKSRC}/${D_NAME}
X
X.if !defined(WITHOUT_PROFILE)
XPROFILE_DEPENDS+=	libwxcore:${PORTSDIR}/x11-toolkits/hs-wxcore
X.endif
X
X.if !defined(WITHOUT_DOCS)
XWX_PATCH_0=	wx_dist_doc_html_wx_Graphics-UI-WX-Layout.html
XSUB_FILES+=	${WX_PATCH_0}
XSUB_LIST+=	WXCORE_DOCSDIR=${WXCORE_DOCSDIR}
X.endif
X
X# Check if hs-wxcore has been installed setting WITH_DOCS.
X.if exists(${WXCORE_HTMLDIR}/wxcore.haddock)
XWXENV=	${SETENV} BSD-WXCORE-HTMLDIR=${WXCORE_HTMLDIR}
X.else
XWXENV=
X.endif
X
XSETUP_HADDOCK=	${GEN_HSCOLOUR} ${SETUP_WRKSRC}/src ${SETUP_WRKSRC}/dist/doc/html/${D_NAME}/src 1 && \
X		cd ${WRKSRC} && ${WXENV} ${GMAKE} bsd-wx-doc
X
X.SILENT:
X
Xpre-everything::
X.if !defined(WITHOUT_DOCS)
X	${ECHO_MSG} -e "\a"
X	${ECHO_MSG} "================================================================="
X	${ECHO_MSG} "------------------------- Please note ---------------------------"
X	${ECHO_MSG} "                                                                 "
X	${ECHO_MSG} "    This port installs the library documentation of WX;          "
X	${ECHO_MSG} "    but if you want \"only\" a unified library documentation     "
X	${ECHO_MSG} "    for both WX and WXCore in one same directory, then hit       "
X	${ECHO_MSG} "    Ctrl-C right now, define WITHOUT_DOCS and, after or          "
X	${ECHO_MSG} "    before you installed this port, install, defining there      "
X	${ECHO_MSG} "    WITH_DOCS, the \"hs-wxhaskell-docs\" port.                   "
X	${ECHO_MSG}
X	${ECHO_MSG} "    Pay attention that, in this last case, if you need of the    "
X	${ECHO_MSG} "    haddock interface file for WX, you have to reregister        "
X	${ECHO_MSG} "    it, after the installation of \"hs-wxhaskell-docs\", with    "
X	${ECHO_MSG} "    the haddock fields pointing to the haddock interface file    "
X	${ECHO_MSG} "    for WX, installed by this last port.                         "
X	${ECHO_MSG} "    A registration file for this work can be obtained with       "
X	${ECHO_MSG} "    installing the port \"hs-wxhaskell\", defining the option    "
X	${ECHO_MSG} "    WITH_REGISTERS; defining also WITH_REGISTRATION you can      "
X	${ECHO_MSG} "    activate this registration procedure for WX.                 "
X	${ECHO_MSG}
X	${ECHO_MSG} "    Naturally you can install both kinds of documentation and    "
X	${ECHO_MSG} "    choice which to register.                                    "
X	${ECHO_MSG}
X	${ECHO_MSG} "    Furthermore if the hs-wxcore port didn't install the         "
X	${ECHO_MSG} "    hyperlinkable documentation for its libraries, then          "
X	${ECHO_MSG} "    haddock can't know about those, and this port, defining      "
X	${ECHO_MSG} "    WITH_DOCS, installs a broken documentation.                  "
X	${ECHO_MSG} "================================================================="
X	${ECHO_MSG}
X	sleep 4
X.endif
X
Xpre-configure: wxcore-configure
X
Xpost-configure:
X	${ECHO_CMD} "haddock-interfaces:${HADDOCK_INTERFACES:C/(.+)/ \1/1}" >> ${WRKSRC}/config/wx.pkg
X	${ECHO_CMD} "haddock-html:${HADDOCK_HTML:C/(.+)/ \1/1}" >> ${WRKSRC}/config/wx.pkg
X
X# Hack. You should view the TODO list into the haddock source directory.
X# In TODO: * Add a link to the defining location of a re-exported entity
Xpre-install:
X.if !defined(WITHOUT_DOCS)
X	${PATCH} -s -d ${WRKSRC} -p -i ${WRKDIR}/${WX_PATCH_0}
X	${RM} -f ${WRKSRC}/$$(${AWK} '{if(FNR==1) print $$2}' ${WRKDIR}/${WX_PATCH_0})
X.endif
X
Xpost-install:
X	${INSTALL_DATA} ${WRKSRC}/config/wx.pkg ${PREFIX}/${D_LIBSUBDIR_REL}/wx.pkg
X	${SED} -i "" -e "s/\$${wxhlibdir}/${PREFIX:S|/|\\/|g}\/${D_LIBSUBDIR_REL:S|/|\\/|g}/" ${PREFIX}/${D_LIBSUBDIR_REL}/wx.pkg
X
X.include <bsd.port.post.mk>
132675f65e250d2e2594de3af0a0ffc9
echo x - hs-wx/distinfo
sed 's/^X//' >hs-wx/distinfo << '2d54be625e39f9b482bbbbd677fb1adb'
XMD5 (wxhaskell-src-0.10.3.tar.gz) = bbcc0908e2976504f8a054c3cffe46ce
XSHA256 (wxhaskell-src-0.10.3.tar.gz) = 2a9b70b92c96ef1aa3eaa3426e224c0994c24bfdaccbf2b673edef65ba3cffce
XSIZE (wxhaskell-src-0.10.3.tar.gz) = 520589
2d54be625e39f9b482bbbbd677fb1adb
echo x - hs-wx/pkg-descr
sed 's/^X//' >hs-wx/pkg-descr << '6699f8e2f528885b1c179a60174bcbb6'
XwxHaskell is a portable and native GUI library for Haskell.
X
XThe wx library is built on top of the wxcore library and
Xuses more advanced abstraction mechanisms, like overloading,
Xto provide useful features like properties and attributes.
X
XThe wxHaskell libraries are distributed under the wxWindows
Xlibrary license.
XThe wxWindows library licence is essentially the L-GPL, with
Xan exception stating that derived works in binary form may
Xbe distributed on the user's own terms.
X
XAuthor:         Daan Leijen
XMaintainer:	wxhaskell-devel@lists.sourceforge.net
XLicense:        LGPL
XWWW:		http://wxhaskell.sourceforge.net
XURL:		http://www.wxwidgets.org
X
XExposed-Modules:
X	Graphics.UI.WX.Draw, Graphics.UI.WX.Media
X	Graphics.UI.WX.Attributes, Graphics.UI.WX.Window
X	Graphics.UI.WX.Variable, Graphics.UI.WX.Events
X	Graphics.UI.WX.Frame, Graphics.UI.WX.Layout
X	Graphics.UI.WX.Controls, Graphics.UI.WX.Types
X	Graphics.UI.WX.Dialogs, Graphics.UI.WX.Classes
X	Graphics.UI.WX.Timer, Graphics.UI.WX.Menu
X	Graphics.UI.WX
6699f8e2f528885b1c179a60174bcbb6
echo x - hs-wx/pkg-plist
sed 's/^X//' >hs-wx/pkg-plist << '249633c47ca40f995499eca0b66d45f2'
X%%D_LIBSUBDIR_REL%%/Graphics/UI/WX.hi
X%%PROFILE%%%%D_LIBSUBDIR_REL%%/Graphics/UI/WX.p_hi
X%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Attributes.hi
X%%PROFILE%%%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Attributes.p_hi
X%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Classes.hi
X%%PROFILE%%%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Classes.p_hi
X%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Controls.hi
X%%PROFILE%%%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Controls.p_hi
X%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Dialogs.hi
X%%PROFILE%%%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Dialogs.p_hi
X%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Draw.hi
X%%PROFILE%%%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Draw.p_hi
X%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Events.hi
X%%PROFILE%%%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Events.p_hi
X%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Frame.hi
X%%PROFILE%%%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Frame.p_hi
X%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Layout.hi
X%%PROFILE%%%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Layout.p_hi
X%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Media.hi
X%%PROFILE%%%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Media.p_hi
X%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Menu.hi
X%%PROFILE%%%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Menu.p_hi
X%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Timer.hi
X%%PROFILE%%%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Timer.p_hi
X%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Types.hi
X%%PROFILE%%%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Types.p_hi
X%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Variable.hi
X%%PROFILE%%%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Variable.p_hi
X%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Window.hi
X%%PROFILE%%%%D_LIBSUBDIR_REL%%/Graphics/UI/WX/Window.p_hi
X%%D_LIBSUBDIR_REL%%/HSwx-%%D_VERSION%%.o
X%%D_LIBSUBDIR_REL%%/libHSwx-%%D_VERSION%%.a
X%%PROFILE%%%%D_LIBSUBDIR_REL%%/libHSwx-%%D_VERSION%%_p.a
X%%D_LIBSUBDIR_REL%%/wx.pkg
X%%D_LIBDIR_REL%%/%%D_REG%%
X%%NOPORTDOCS%%%%DOCSDIR%%/license.txt
X%%NOPORTDOCS%%@dirrm %%DOCSDIR%%
X@dirrm %%D_LIBSUBDIR_REL%%/Graphics/UI/WX
X@dirrm %%D_LIBSUBDIR_REL%%/Graphics/UI
X@dirrm %%D_LIBSUBDIR_REL%%/Graphics
X@dirrm %%D_LIBSUBDIR_REL%%
X@dirrm %%D_LIBDIR_REL%%
X@exec %%REG_CMD%%
X@unexec %%UNREG_CMD%%
249633c47ca40f995499eca0b66d45f2
exit
--- hs-wx.shar ends here ---

--- hs-wxhaskell-docs.shar begins here ---
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	hs-wxhaskell-docs
#	hs-wxhaskell-docs/pkg-descr
#	hs-wxhaskell-docs/Makefile
#	hs-wxhaskell-docs/distinfo
#	hs-wxhaskell-docs/pkg-plist
#
echo c - hs-wxhaskell-docs
mkdir -p hs-wxhaskell-docs > /dev/null 2>&1
echo x - hs-wxhaskell-docs/pkg-descr
sed 's/^X//' >hs-wxhaskell-docs/pkg-descr << '07f9211978bb50f30214d4eb483d10ff'
XThis port installs examples, buggy sources, and, if the option
XWITH_DOCS is set, installs also the hyperlinked documentation
Xfor the wxHaskell libraries both WXCore and WX, already into the
Xx11-toolkits/hs-wxcore and x11-toolkits/hs-wx ports, but combined
Xin only one index and directory. This last documentation is
Xgenerated by HsColour and haddock.
XThe unified documentation is inclusive of two haddock interface
Xfiles for WX and WXCore, suited at this port; to use these
Xinterfaces you have to reregister both the packages with the
Xhaddock fields pointing to them.
XRegistration files for this work can be obtained with installing
Xthe x11-toolkits/hs-wxhaskell port, defining WITH_REGISTERS;
Xdefining also WITH_REGISTRATION, this last port registers
Xautomatically WX and WXCore with the two new haddock interfaces.
XThese two options are the default ones for hs-wxhaskell.
07f9211978bb50f30214d4eb483d10ff
echo x - hs-wxhaskell-docs/Makefile
sed 's/^X//' >hs-wxhaskell-docs/Makefile << '849a004c3cc446a645597cf07ee5cf33'
X# New ports collection makefile for: hs-wxhaskell-docs
X# Date created: May 27 2008
X# Whom:         Giuseppe Pilichi aka Jacula Modyun <jacula@gmail.com>
X#
X# $FreeBSD:
X#
X
XPORTNAME=	wxhaskell-docs
XPORTVERSION=	0.10.3
XCATEGORIES=	x11-toolkits haskell
XMASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
XMASTER_SITE_SUBDIR=	wxhaskell
XPKGNAMEPREFIX=	hs-
XDISTNAME=	wxhaskell-src-${PORTVERSION}
X
XMAINTAINER=	jacula@gmail.com
XCOMMENT=	Examples and unified documentation for wxHakell
X
XRUN_DEPENDS=		hs-wxcore>=0.10.3:${PORTSDIR}/x11-toolkits/hs-wxcore \
X			hs-wx>=0.10.3:${PORTSDIR}/x11-toolkits/hs-wx
X
XUSE_CABAL=	docs
XD_NAME=		wxhaskell
X
XOPTIONS=	DOCS "Install the unified HTML documentation" on \
X		OPENGL "Install the OpenGL bindings for Haskell" on
X
X.include <bsd.port.options.mk>
X
X.if !defined(WITHOUT_DOCS)
XUSE_GMAKE=	yes
XUSE_CABAL+=	hc:bothdep
X.else
XNO_BUILD=		yes
XWXCORE_TARGETS=
XUSE_CABAL+=		hc:rundep
X.endif
X
X.include <bsd.port.pre.mk>
X
X.include "${.CURDIR}/../hs-wxhaskell/Makefile.local"
X
X# This is for using some examples.
X.if !defined(WITHOUT_OPENGL)
XRUN_DEPENDS+=	hs-opengl-ghc>=2.2.1.1:${PORTSDIR}/x11-toolkits/hs-opengl-ghc
X.endif
X
X.SILENT:
X
Xdo-configure: wxcore-configure
X
X.if !defined(WITHOUT_DOCS)
Xdo-build:
X	${GEN_HSCOLOUR} ${SETUP_WRKSRC}/wxcore/src ${SETUP_WRKSRC}/dist/doc/html/src 1 "! -name IntMap.hs"
X	${GEN_HSCOLOUR} ${SETUP_WRKSRC}/wx/src ${SETUP_WRKSRC}/dist/doc/html/src 0
X	cd ${WRKSRC} && ${GMAKE} bsd-combined-doc
X.endif
X
Xdo-install:
X	${MKDIR} ${DOCSDIR} ${EXAMPLESDIR} ${DATADIR}
X	cd ${WRKSRC} && ${INSTALL_DATA} license.txt ${DOCSDIR}/license.txt \
X		     && ${COPYTREE_SHARE} bugs ${DATADIR} "! -name makefile.orig" \
X		     && cd samples \
X		     && ${COPYTREE_SHARE} "bitmaps contrib wx wxcore" ${EXAMPLESDIR} "! -name *.orig"
X
X.if !defined(WITHOUT_DOCS)
X	${MKDIR} ${HADDOCK_HTML} && cd ${WRKSRC}/dist/doc/html && ${COPYTREE_SHARE} \* ${HADDOCK_HTML}
X.endif
X
Xpost-install:
X.if !defined(WITHOUT_DOCS)
X	${LN} -s ${WXCORE_DOCSDIR}/html ${HADDOCK_HTML}/wxcore
X	${LN} -s ${WX_DOCSDIR}/html ${HADDOCK_HTML}/wx
X.endif
X
X.include <bsd.port.post.mk>
849a004c3cc446a645597cf07ee5cf33
echo x - hs-wxhaskell-docs/distinfo
sed 's/^X//' >hs-wxhaskell-docs/distinfo << '8b71b8c7c7e6bc6e8ed510222a5185f2'
XMD5 (wxhaskell-src-0.10.3.tar.gz) = bbcc0908e2976504f8a054c3cffe46ce
XSHA256 (wxhaskell-src-0.10.3.tar.gz) = 2a9b70b92c96ef1aa3eaa3426e224c0994c24bfdaccbf2b673edef65ba3cffce
XSIZE (wxhaskell-src-0.10.3.tar.gz) = 520589
8b71b8c7c7e6bc6e8ed510222a5185f2
echo x - hs-wxhaskell-docs/pkg-plist
sed 's/^X//' >hs-wxhaskell-docs/pkg-plist << '730906c005d0658292c20089803cccf3'
X%%NOPORTDOCS%%%%DOCSDIR%%/license.txt
X%%EXAMPLESDIR%%/bitmaps/computer.ico
X%%EXAMPLESDIR%%/bitmaps/desert.bmp
X%%EXAMPLESDIR%%/bitmaps/disk.ico
X%%EXAMPLESDIR%%/bitmaps/eye.ico
X%%EXAMPLESDIR%%/bitmaps/f_closed.ico
X%%EXAMPLESDIR%%/bitmaps/f_open.ico
X%%EXAMPLESDIR%%/bitmaps/file.ico
X%%EXAMPLESDIR%%/bitmaps/fileopen16.png
X%%EXAMPLESDIR%%/bitmaps/hsicon.ico
X%%EXAMPLESDIR%%/bitmaps/wxwin.ico
X%%EXAMPLESDIR%%/bitmaps/wxwin16.png
X%%EXAMPLESDIR%%/contrib/Camels.hs
X%%EXAMPLESDIR%%/contrib/GLCanvas.hs
X%%EXAMPLESDIR%%/contrib/GLMultiCanvas.hs
X%%EXAMPLESDIR%%/contrib/NotebookRight.hs
X%%EXAMPLESDIR%%/contrib/PaintDirect.hs
X%%EXAMPLESDIR%%/contrib/makefile
X%%EXAMPLESDIR%%/wx/BouncingBalls.hs
X%%EXAMPLESDIR%%/wx/ByeDemo.hs
X%%EXAMPLESDIR%%/wx/Controls.hs
X%%EXAMPLESDIR%%/wx/CustomControl.hs
X%%EXAMPLESDIR%%/wx/DbBrowse.hs
X%%EXAMPLESDIR%%/wx/DbConsole.hs
X%%EXAMPLESDIR%%/wx/FileBrowse.hs
X%%EXAMPLESDIR%%/wx/Grid.hs
X%%EXAMPLESDIR%%/wx/HelloWorld.hs
X%%EXAMPLESDIR%%/wx/ImageViewer.hs
X%%EXAMPLESDIR%%/wx/Layout.hs
X%%EXAMPLESDIR%%/wx/Minimal.hs
X%%EXAMPLESDIR%%/wx/Paint.hs
X%%EXAMPLESDIR%%/wx/Process.hs
X%%EXAMPLESDIR%%/wx/TimeFlows.hs
X%%EXAMPLESDIR%%/wx/TimeFlowsEx.hs
X%%EXAMPLESDIR%%/wx/makefile
X%%EXAMPLESDIR%%/wxcore/BouncingBalls.hs
X%%EXAMPLESDIR%%/wxcore/ByeDemo.hs
X%%EXAMPLESDIR%%/wxcore/HelloWorld.hs
X%%EXAMPLESDIR%%/wxcore/ImageViewer.hs
X%%EXAMPLESDIR%%/wxcore/Minimal.hs
X%%EXAMPLESDIR%%/wxcore/Paint.hs
X%%EXAMPLESDIR%%/wxcore/makefile
X%%DATADIR%%/bugs/FontFixed.hs
X%%DATADIR%%/bugs/NonModalDialog.hs
X%%DATADIR%%/bugs/StartStart.hs
X%%DATADIR%%/bugs/SubMenu.hs
X%%DATADIR%%/bugs/TextColor.hs
X%%DATADIR%%/bugs/makefile
X@dirrm %%DATADIR%%/bugs
X@dirrm %%DATADIR%%
X@dirrm %%EXAMPLESDIR%%/wxcore
X@dirrm %%EXAMPLESDIR%%/wx
X@dirrm %%EXAMPLESDIR%%/contrib
X@dirrm %%EXAMPLESDIR%%/bitmaps
X@dirrm %%EXAMPLESDIR%%
X%%NOPORTDOCS%%@dirrm %%DOCSDIR%%
730906c005d0658292c20089803cccf3
exit
--- hs-wxhaskell-docs.shar ends here ---

--- hs-wxhaskell.shar begins here ---
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	hs-wxhaskell
#	hs-wxhaskell/pkg-descr
#	hs-wxhaskell/Makefile
#	hs-wxhaskell/pkg-plist
#	hs-wxhaskell/Makefile.local
#	hs-wxhaskell/distinfo
#
echo c - hs-wxhaskell
mkdir -p hs-wxhaskell > /dev/null 2>&1
echo x - hs-wxhaskell/pkg-descr
sed 's/^X//' >hs-wxhaskell/pkg-descr << '00bf7d9f7fe0a5b54038def1ae683264'
XwxHaskell is a portable GUI library for Haskell that uses wxWidgets.
X
XwxWidgets is a comprehensive C++ library that is portable across
Xall major GUI platforms; including GTK, Windows, X11, and MacOS X.
XFurthermore, it is a mature library (in development since 1992)
Xthat supports a wide range of widgets with native look-and-feel.
X
XwxHaskell exposes almost all relevant wxWidgets functionality:
Xabout 500 classes with 2800 methods and 1200 constants.
XFurthermore, it adds many functional abstractions which lead to
Xshort and concise code.
X
XAt present, it works with wxWidgets 2.6 (and sadly, not with
XwxWidgets 2.8). It's made up of two libraries: the wxcore library
Xand the wx library.
X
XThe wxcore library provides the core interface to the wxWidgets
XAPI (in WxcClasses). Furthermore, it provides some useful
Xabstractions for the Haskell programmer. However, the library
Xjust uses functional abstraction: no overloading, new monads, or
Xother fanciness.
X
XThe wx library is build on top of the wxcore library and uses more
Xadvanced abstraction mechanisms, like overloading, to provide useful
Xfeatures like properties and attributes.
X
XThe wxHaskell libraries are distributed under the wxWindows
Xlibrary license.
XThe wxWindows library licence is essentially the L-GPL, with
Xan exception stating that derived works in binary form may
Xbe distributed on the user's own terms.
X
XAuthor:         Daan Leijen
XMaintainer:	wxhaskell-devel@lists.sourceforge.net
XLicense:        LGPL
XWWW:		http://wxhaskell.sourceforge.net
XURL:		http://www.wxwidgets.org
X
XNOTE: At this moment a "wxhaskell" Cabal package doesn't exist, then
Xalso if making a dummy package should be possible, this is useless
Xif the other Cabal distributions look only for wx and wxcore; actually,
Xfor the same reason, it's useless also the wxhaskell.haddock interface.
XThis port is a meta port, but it's also the joint point between the
Xdocumentation installed by the three ports x11-toolkits/hs-wx,
Xx11-toolkits/hs-wxcore and x11-toolkits/hs-wxhaskell-docs.
XYou have to know that the documentation structure of this set of
XwxHaskell ports constitutes a unicum, built exclusively for FreeBSD,
Xand it isn't standard both for the form and for the contents; for example
Xit contains the HsColour files for the sources and it's possible to link
Xthe hyperlinkable documentation of other distributions to the unified
Xdocumentation for wx and wxcore, skipping the problem of uselessness of
Xthe interface wxhaskell.haddock.
XThe unified documentation installed by the "hs-wxhaskell-docs" port is
Xinclusive of two haddock interface files for WX and WXCore, suited at
Xa centralized documentation system; to use those interfaces, you have to
Xreregister both the packages with the haddock fields pointing to them.
XRegistration files for this work can be obtained with installing this
Xport, defining WITH_REGISTERS; defining also WITH_REGISTRATION, this
Xport registers automatically WX and WXCore with the two new haddock
Xinterfaces from "hs-wxhaskell-docs". These two options are the default
Xones.
XAlso the two targets "register" and "unregister" permit to repeat
Xand reverse this process in any moment after the installation, if the
XWITH_REGISTERS option is activated, but you have to use them with many
Xcautions and aware of what it means.
00bf7d9f7fe0a5b54038def1ae683264
echo x - hs-wxhaskell/Makefile
sed 's/^X//' >hs-wxhaskell/Makefile << 'dbc9e402a5ee33bb0618b2332a6e2c0d'
X# New ports collection makefile for: hs-wxhaskell
X# Date created: May 27 2008
X# Whom:         Giuseppe Pilichi aka Jacula Modyun <jacula@gmail.com>
X#
X# $FreeBSD:
X#
X
XPORTNAME=	wxhaskell
XPORTVERSION=	0.10.3
XCATEGORIES=	x11-toolkits haskell
XMASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
XMASTER_SITE_SUBDIR=	wxhaskell
XPKGNAMEPREFIX=	hs-
XDISTNAME=	wxhaskell-src-${PORTVERSION}
X
XMAINTAINER=	jacula@gmail.com
XCOMMENT=	Meta port for wxHakell
X
XRUN_DEPENDS=	hs-wxcore>=0.10.3:${PORTSDIR}/x11-toolkits/hs-wxcore \
X		hs-wx>=0.10.3:${PORTSDIR}/x11-toolkits/hs-wx
X
XNO_BUILD=	yes
X
XOPTIONS=	DOCS "Install the unified HTML documentation" on \
X		REGISTERS "Install the unified registers" on \
X		REGISTRATION "Unified registration" on
X
X.include <bsd.port.options.mk>
X
X.if !defined(WITHOUT_DOCS) && !defined(WITHOUT_REGISTERS)
X. if !defined(WITHOUT_REGISTRATION)
XUSE_CABAL=	hc:bothdep
X. else
XUSE_CABAL=	hc:rundep
X. endif
X.else
XUSE_CABAL=	yes
X.endif
X
X.include <bsd.port.pre.mk>
X
X# For the future.
X.if !defined(WITHOUT_DOCS)
XPLIST_SUB+=	DOCS=""
X.else
XPLIST_SUB+=	DOCS="@comment "
X.endif
X
X.if !defined(WITHOUT_REGISTERS)
XPLIST_SUB+=	REGISTERS=""
X.else
XPLIST_SUB+=	REGISTERS="@comment "
X.endif
X
X.if !defined(WITHOUT_REGISTRATION)
XPLIST_SUB+=	REGISTRATION=""
X.else
XPLIST_SUB+=	REGISTRATION="@comment "
X.endif
X
X.if !defined(WITHOUT_DOCS)
XRUN_DEPENDS+=	hs-wxhaskell-docs>=0.10.3:${PORTSDIR}/x11-toolkits/hs-wxhaskell-docs
X
X.  if !defined(WITHOUT_REGISTERS)
X
X# Check if hs-wxhaskell-docs has been installed.
X.    if exists(${WXHASKELL_DOCSDIR}/license.txt)
X# Check if it has been installed setting WITH_DOCS.
X.      if !exists(${WXHASKELL_HTMLDIR}/wxhaskell.haddock)
X# This is for bsd.wxhaskell.mk.
XUNIFIED_WXHASKELL=	no
XECHO_MSG=	${PRINTF} "%b"
XIGNORE=		\n\t The WITH_REGISTERS option implies the build dependence on\n
XIGNORE+=	\t the \"${WXHASKELL_DOCS_PORTDIR}\" port and\n
XIGNORE+=	\t is inclusive of the WITH_DOCS option into this last port;\n
XIGNORE+=	\t but this port is already installed setting WITHOUT_DOCS;\n
XIGNORE+=	\t you have to reinstall it with the right options.\n\c
X.      endif
X.    else
X# Check if the WITH_DOCS option has been set into hs-wxhaskell-docs.
XCHECK_WXHASKELL_DOCS!=	cd  ${WXHASKELL_DOCS_PORTDIR} && ${MAKE} -V NOPORTDOCS
X.      if !empty(CHECK_WXHASKELL_DOCS)
X# This is for bsd.wxhaskell.mk.
XUNIFIED_WXHASKELL=	no
XECHO_MSG=	${PRINTF} "%b"
XIGNORE=		\n\t The WITH_REGISTERS option implies the build dependence on\n
XIGNORE+=	\t the \"${WXHASKELL_DOCS_PORTDIR}\" port and\n
XIGNORE+=	\t is inclusive of the WITH_DOCS option into this last port;\n
XIGNORE+=	\t but WITHOUT_DOCS is now defined; you have to set the right\n
XIGNORE+=	\t options before to install it.\n\c
X.      endif
X.    endif
X
XBUILD_DEPENDS+=	hs-wxcore>=0.10.3:${PORTSDIR}/x11-toolkits/hs-wxcore \
X		hs-wx>=0.10.3:${PORTSDIR}/x11-toolkits/hs-wx
X
XWX_REG=			${D_REG:%=wx-%}
XWXCORE_REG=		${D_REG:%=wxcore-%}
X
XWX_REG_CMD=		${PREFIX}/${D_LIBDIR_REL}/${WX_REG}
XWXCORE_REG_CMD=		${PREFIX}/${D_LIBDIR_REL}/${WXCORE_REG}
X
XD_WX_REG_CMD=		${WX_LIBDIR}/${D_REG}
XD_WXCORE_REG_CMD=	${WXCORE_LIBDIR}/${D_REG}
X
XWX_INTERFACE=		${HADDOCK_INTERFACE:%haskell.haddock=%.haddock}
XWXCORE_INTERFACE=	${HADDOCK_INTERFACE:%haskell.haddock=%core.haddock}
XWX_INTERFACES=		${WX_INTERFACE}
XWXCORE_INTERFACES=	${WXCORE_INTERFACE}
X
XPLIST_SUB+=		WX_REG_CMD=${D_LIBDIR_REL}/${WX_REG} \
X			WXCORE_REG_CMD=${D_LIBDIR_REL}/${WXCORE_REG} \
X			D_WX_REG_CMD=${D_WX_REG_CMD} \
X			D_WXCORE_REG_CMD=${D_WXCORE_REG_CMD}
X
X.    if !defined(WITHOUT_REGISTRATION)
X# This is for bsd.wxhaskell.mk; all the condition for a
X# unified wxHaskell registration are respected.
XUNIFIED_WXHASKELL?=	yes
X.    endif
X
Xdo-register:
X	${WX_REG_CMD}
X	${WXCORE_REG_CMD}
X	${RM} -f ${HC-PKG-CONF-OLD}
X
Xdo-unregister:
X	${D_WX_REG_CMD}
X	${D_WXCORE_REG_CMD}
X	${RM} -f ${HC-PKG-CONF-OLD}
X
Xchange-register:
X	${CHANGE_REGISTER} ${WX_REG_CMD} '${WX_INTERFACES:C/(.+)/ \1/1}' '${HADDOCK_HTML:C/(.+)/ \1/1}'
X	${CHANGE_REGISTER} ${WXCORE_REG_CMD} '${WXCORE_INTERFACES:C/(.+)/ \1/1}' '${HADDOCK_HTML:C/(.+)/ \1/1}'
X
X# These targets work only after the installation of this same port.
X.    if exists(${WXCORE_REG_CMD})
Xregister: do-register
Xunregister: do-unregister
X.    else
Xunregister: # none
Xregister: # none
X.    endif
X
X.  else # !defined(WITHOUT_REGISTERS)
X.    if !defined(WITHOUT_REGISTRATION)
XIGNORE=	want the WITH_REGISTRATION option that is inclusive of the WITH_REGISTERS option
X.    endif
X
Xdo-register: # none
Xregister: # none
Xdo-unregister: # none
Xunregister: # none
Xchange-register: # none
X
X.  endif # !defined(WITHOUT_REGISTERS)
X
X.else #  !defined(WITHOUT_DOCS)
X.  if !defined(WITHOUT_REGISTERS)
XIGNORE=	want the WITH_REGISTERS option that is inclusive of the WITH_DOCS option
X.  elif !defined(WITHOUT_REGISTRATION)
XIGNORE=	want the WITH_REGISTRATION option that is inclusive of the WITH_DOCS option
X.  endif
X.endif #  !defined(WITHOUT_DOCS)
X
X# This is for bsd.wxhaskell.mk.
XUNIFIED_WXHASKELL?=	no
X
X.SILENT:
X
Xdo-configure: # none
X
Xdo-install:
X	${MKDIR} ${PREFIX}/${D_LIBSUBDIR_REL}
X# This file is about the internals of the wxHaskell distribution set and I prefer to install here.
X	${INSTALL_DATA} ${WRKSRC}/changes.txt ${PREFIX}/${D_LIBSUBDIR_REL}/changes.txt
X.if !defined(WITHOUT_REGISTERS)
X	${CP} -p ${WX_LIBDIR}/${D_REG} ${WX_REG_CMD}
X	${CP} -p ${WXCORE_LIBDIR}/${D_REG} ${WXCORE_REG_CMD}
X.endif
X
X.if !defined(WITHOUT_REGISTERS)
Xpost-install: change-register
X.if !defined(WITHOUT_REGISTRATION)
Xpost-install: do-register
X.endif
X.endif
X
X.include <bsd.port.post.mk>
dbc9e402a5ee33bb0618b2332a6e2c0d
echo x - hs-wxhaskell/pkg-plist
sed 's/^X//' >hs-wxhaskell/pkg-plist << 'c4bda97537af38064dc7db95ddbffdbf'
X%%D_LIBSUBDIR_REL%%/changes.txt
X%%REGISTERS%%%%WX_REG_CMD%%
X%%REGISTERS%%%%WXCORE_REG_CMD%%
X%%REGISTERS%%%%REGISTRATION%%@exec %D/%%WX_REG_CMD%% && rm -f %%HC-PKG-CONF-OLD%%
X%%REGISTERS%%%%REGISTRATION%%@exec %D/%%WXCORE_REG_CMD%% && rm -f %%HC-PKG-CONF-OLD%%
X%%REGISTERS%%%%REGISTRATION%%@unexec %%D_WX_REG_CMD%% && rm -f %%HC-PKG-CONF-OLD%%
X%%REGISTERS%%%%REGISTRATION%%@unexec %%D_WXCORE_REG_CMD%% && rm -f %%HC-PKG-CONF-OLD%%
X@dirrm %%D_LIBSUBDIR_REL%%
X@dirrm %%D_LIBDIR_REL%%
c4bda97537af38064dc7db95ddbffdbf
echo x - hs-wxhaskell/Makefile.local
sed 's/^X//' >hs-wxhaskell/Makefile.local << '49e5737da30e08e86f2f395b291ac628'
X# Support to the wxHaskell set of ports.
X
XWXHASKELL_PORTDIR=	${PORTSDIR}/x11-toolkits/hs-wxhaskell
XWXHASKELL_DOCS_PORTDIR=	${PORTSDIR}/x11-toolkits/hs-wxhaskell-docs
XWXCORE_PORTDIR=		${PORTSDIR}/x11-toolkits/hs-wxcore
XWX_PORTDIR=		${PORTSDIR}/x11-toolkits/hs-wx
X
XWRKSRC=			${WRKDIR}/wxhaskell-${D_VERSION}
X
X.for w in wxhaskell wxcore wx
X${w:U}_DOCSDIR=		${LOCALBASE}/share/doc/${w}-${D_VERSION}
X${w:U}_DATADIR=		${LOCALBASE}/share/${w}-${D_VERSION}
X${w:U}_EXAMPLESDIR=	${LOCALBASE}/share/examples/${w}-${D_VERSION}
X${w:U}_HTMLDIR=		${LOCALBASE}/share/doc/${w}-${D_VERSION}/html
X${w:U}_LIBDIR=		${LOCALBASE}/lib/${w}-${D_VERSION}
X${w:U}_LIBSUBDIR=	${${w:U}_LIBDIR}/${HC-VER}
X.endfor
X
XWXCORE_TARGETS?=	do-configure post-configure
X
X.if !target(wxcore-configure)
Xwxcore-configure:
X	cd ${WXCORE_PORTDIR} && ${SETENV} SLAVE_PORT="${WITHOUT_PROFILE:C/.+/profile/1} ${WITHOUT_DOCS:C/.+/docs/1}" \
X					  WRKDIR=${WRKDIR} WRKSRC=${WRKSRC} ${MAKE} do-patch ${WXCORE_TARGETS}
X.endif
49e5737da30e08e86f2f395b291ac628
echo x - hs-wxhaskell/distinfo
sed 's/^X//' >hs-wxhaskell/distinfo << '12c187526252d622ec8c36187502fc41'
XMD5 (wxhaskell-src-0.10.3.tar.gz) = bbcc0908e2976504f8a054c3cffe46ce
XSHA256 (wxhaskell-src-0.10.3.tar.gz) = 2a9b70b92c96ef1aa3eaa3426e224c0994c24bfdaccbf2b673edef65ba3cffce
XSIZE (wxhaskell-src-0.10.3.tar.gz) = 520589
12c187526252d622ec8c36187502fc41
exit
--- hs-wxhaskell.shar ends here ---

--- hs-xtc.shar begins here ---
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	hs-xtc
#	hs-xtc/files
#	hs-xtc/files/patch-xtc.cabal
#	hs-xtc/Makefile
#	hs-xtc/distinfo
#	hs-xtc/pkg-descr
#	hs-xtc/pkg-plist
#
echo c - hs-xtc
mkdir -p hs-xtc > /dev/null 2>&1
echo c - hs-xtc/files
mkdir -p hs-xtc/files > /dev/null 2>&1
echo x - hs-xtc/files/patch-xtc.cabal
sed 's/^X//' >hs-xtc/files/patch-xtc.cabal << 'd1d80300213de74823ed05490007b33e'
X--- xtc.cabal.orig	2008-03-14 23:02:39.000000000 +0000
X+++ xtc.cabal	2008-05-14 09:06:45.000000000 +0000
X@@ -13,7 +13,8 @@
X                      .
X                      * value entry (typed text entry)
X                      .
X-                     XTC controls keep track of typed values and items, rather than being string based. Selections in XTC controls consist of actual values instead of indices.  
X+                     XTC controls keep track of typed values and items, rather than being string based.
X+                     Selections in XTC controls consist of actual values instead of indices.  
X category:            GUI, User Interfaces
X license:             BSD3
X license-file:        LICENSE
d1d80300213de74823ed05490007b33e
echo x - hs-xtc/Makefile
sed 's/^X//' >hs-xtc/Makefile << 'b558cd59f77ba207e560bedd8399d080'
X# New ports collection makefile for: hs-xtc
X# Date created: May 27 2008
X# Whom:         Giuseppe Pilichi aka Jacula Modyun <jacula@gmail.com>
X#
X# $FreeBSD:
X#
X
XPORTNAME=	xtc
XPORTVERSION=	1.0
XCATEGORIES=	x11-toolkits haskell
XMASTER_SITES=	${MASTER_SITE_HACKAGE}
XPKGNAMEPREFIX=	hs-
X
XMAINTAINER=	jacula@gmail.com
XCOMMENT=	Extended and typed controls for wxHaskell
X
XBUILD_DEPENDS=		hs-wxcore>=0.10.3:${PORTSDIR}/x11-toolkits/hs-wxcore \
X			hs-wx>=0.10.3:${PORTSDIR}/x11-toolkits/hs-wx
XRUN_DEPENDS=		hs-wxcore>=0.10.3:${PORTSDIR}/x11-toolkits/hs-wxcore \
X			hs-wx>=0.10.3:${PORTSDIR}/x11-toolkits/hs-wx
X
XUSE_CABAL=		distrsimple:full docs hc:bothdep lhs profile:all:full
XWXHASKELL_MODES=	unified
X
XOPTIONS=	PROFILE "Compile for profiling as well" on \
X		WXHASKELL "Unified wxHaskell registration" on
X
X.include <bsd.port.pre.mk>
X
XD_DATASUBDIR=	${D_EXAMPLESSUBDIR}
X
X.if !defined(NOPORTDOCS)
XHADDOCK_ARGS+=		-w
X.elif defined(WITH_WXHASKELL)
XIGNORE=	want the WITH_WXHASKELL option that is incompatible with the option NOPORTDOCS
X.endif
X
X.if !defined(WITHOUT_PROFILE)
XPROFILE_DEPENDS=	libwxcore:${PORTSDIR}/x11-toolkits/hs-wxcore \
X			libHSwx-%%ver%%:${PORTSDIR}/x11-toolkits/hs-wx
X.endif
X
X.SILENT:
X
Xpre-everything::
X.if defined(WANT_UNIFIED_WXHASKELL)
X	${ECHO_MSG} -e "\a"
X	${ECHO_MSG} "=========================================================="
X	${ECHO_MSG} "----------------------- Please note ----------------------"
X	${ECHO_MSG} "                                                          "
X	${ECHO_MSG} "  This port will link the documentation built by haddock  "
X	${ECHO_MSG} "  with the unified documentation installed by the         "
X	${ECHO_MSG} "  ${WXHASKELL_DOCS_PORTDIR} port.                         "
X	${ECHO_MSG} "=========================================================="
X	${ECHO_MSG}
X	sleep 2
X.endif
X
X.include <bsd.port.post.mk>
b558cd59f77ba207e560bedd8399d080
echo x - hs-xtc/distinfo
sed 's/^X//' >hs-xtc/distinfo << '35485149556b0562de4df9926f5fe755'
XMD5 (xtc-1.0.tar.gz) = 0cce3a1b72f25f9165e3bf77e684521a
XSHA256 (xtc-1.0.tar.gz) = 1c19216a6e13947b405c68b2fc30999d9b97a0929c392312f013e2f4d66c26f3
XSIZE (xtc-1.0.tar.gz) = 6147
35485149556b0562de4df9926f5fe755
echo x - hs-xtc/pkg-descr
sed 's/^X//' >hs-xtc/pkg-descr << '3faaab6722cc93847ec777f7a66ec755'
XThe XTC library provides a typed interface to several wxHaskell
Xcontrols:
X
X* radio view (typed radio box)
X* single-selection list view (typed single-selection list box)
X* multiple-selection list view (typed multiple-selection list box)
X* choice view (typed choice box)
X* value entry (typed text entry)
X
XXTC controls keep track of typed values and items, rather than
Xbeing string based. Selections in XTC controls consist of actual
Xvalues instead of indices.  
X
Xauthor:              Martijn Schrage
Xmaintainer:          martijn@cs.uu.nl
Xlicense:             BSD3
X
Xexposed-modules:
X	Graphics.UI.XTC
3faaab6722cc93847ec777f7a66ec755
echo x - hs-xtc/pkg-plist
sed 's/^X//' >hs-xtc/pkg-plist << '560dba48f18130059807763b1689c310'
X%%D_LIBSUBDIR_REL%%/Graphics/UI/XTC.hi
X%%PROFILE%%%%D_LIBSUBDIR_REL%%/Graphics/UI/XTC.p_hi
X%%D_LIBSUBDIR_REL%%/HSxtc-%%D_VERSION%%.o
X%%D_LIBSUBDIR_REL%%/libHSxtc-%%D_VERSION%%.a
X%%PROFILE%%%%D_LIBSUBDIR_REL%%/libHSxtc-%%D_VERSION%%_p.a
X%%D_LIBDIR_REL%%/%%D_REG%%
X%%NOPORTDOCS%%%%DOCSDIR%%/LICENSE
X%%DATADIR%%/xtc-example.hs
X@dirrm %%DATADIR%%
X%%NOPORTDOCS%%@dirrm %%DOCSDIR%%
X@dirrm %%D_LIBSUBDIR_REL%%/Graphics/UI
X@dirrm %%D_LIBSUBDIR_REL%%/Graphics
X@dirrm %%D_LIBSUBDIR_REL%%
X@dirrm %%D_LIBDIR_REL%%
X@exec %%REG_CMD%%
X@unexec %%UNREG_CMD%%
560dba48f18130059807763b1689c310
exit
--- hs-xtc.shar ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200807271757.m6RHvNFn010309>