From yds@dppl.net  Tue May 19 21:20:12 2009
Return-Path: <yds@dppl.net>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 26FF81065680;
	Tue, 19 May 2009 21:20:12 +0000 (UTC)
	(envelope-from yds@dppl.net)
Received: from crake.dppl.net (mail.dppl.net [216.182.10.231])
	by mx1.freebsd.org (Postfix) with ESMTP id B4BBD8FC16;
	Tue, 19 May 2009 21:20:11 +0000 (UTC)
	(envelope-from yds@dppl.net)
Received: by crake.dppl.net (Postfix, from userid 1001)
	id 12A981E08; Tue, 19 May 2009 17:12:21 -0400 (EDT)
Message-Id: <20090519211221.12A981E08@crake.dppl.net>
Date: Tue, 19 May 2009 17:12:21 -0400 (EDT)
From: Yarema <yds@CoolRat.org>
Reply-To: Yarema <yds@CoolRat.org>
To: FreeBSD-gnats-submit@freebsd.org
Cc: Sahil Tandon <Sahil@Tandon.net>, Beech Rintoul <Beech@FreeBSD.org>
Subject: Refactoring of the mail/postfix port to ease maintenance
X-Send-Pr-Version: 3.113
X-GNATS-Notify: sahil@tandon.net

>Number:         134728
>Category:       ports
>Synopsis:       Refactoring of the mail/postfix port to ease maintenance
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue May 19 21:30:01 UTC 2009
>Closed-Date:    Tue May 26 13:37:09 UTC 2009
>Last-Modified:  Tue May 26 13:40:03 UTC 2009
>Originator:     Yarema
>Release:        FreeBSD 7.2-STABLE amd64
>Organization:
NYCBUG.org
>Environment:
System: FreeBSD 7.2-STABLE amd64
>Description:
This patch is mostly a refactoring of mail/postfix to make it simpler
to maintain and to bring it closer in line with hier(7).

Delete:	files/patch-conf::main.cf
	files/patch-conf::post-install
	files/patch-src::global::mail_params.h
	pkg-install
	pkg-message

Add:	files/pkg-install.in
	files/pkg-message.in

The deleted patch-* files are replaced with the ${REINPLACE} macro in
the Makefile which performs the same edits as the patch files did and
then some to bring the installed config and doc files closer to the
way things are actually installed.

The WITH_VDA section now uses ${PORTVERSION} instead of hardcoding.
And the VDA_README is now installed when appropriate.

The duplication of parameters to postfix-install in the do-install
target and to libexec/postfix/post-install in the pkg-install script
is replaced with compile time DEFs in the POSTFIX_CCARGS macro as per
section 4.4 of the INSTALL documentation.

Files previously installed in ${PREFIX}/etc/postfix/dist now go in
${EXAMPLESDIR} as per hier(7).

To install and test the attached diff:

cd /usr/ports/mail/postfix
patch -p1 < path_to_diff/postfix.diff
find . -type f \( -size 0c -o -name \*.orig \) -delete

>How-To-Repeat:
cd /usr/ports/mail/postfix && make install
>Fix:
diff -u -r -N postfix-2.6.0/Makefile postfix/Makefile
--- postfix-2.6.0/Makefile	2009-05-19 03:42:00.000000000 -0400
+++ postfix/Makefile	2009-05-19 16:03:53.509256834 -0400
@@ -7,6 +7,7 @@
 
 PORTNAME=	postfix
 PORTVERSION=	2.6.0
+PORTREVISION=	1
 PORTEPOCH=	1
 CATEGORIES=	mail ipv6
 MASTER_SITES=	ftp://ftp.porcupine.org/mirrors/postfix-release/official/ \
@@ -76,8 +77,8 @@
 	bounce.8 trace.8 \
 	smtp.8 lmtp.8
 
-CONF1=	access aliases canonical generic header_checks main.cf master.cf \
-	relocated transport virtual
+PORTEXAMPLES=	access aliases canonical generic header_checks \
+		main.cf master.cf relocated transport virtual
 
 .if !defined(DEBUG)
 MAKEFILEFLAGS+=	DEBUG=
@@ -85,14 +86,26 @@
 
 MAKEFILEFLAGS+=	CC="${CC}" OPT="${CFLAGS}"
 
-SCRIPTS_ENV=	WRKDIRPREFIX="${WRKDIRPREFIX}" \
-		TOUCH="${TOUCH}" \
-		MKDIR="${MKDIR}"
-
 .include <bsd.port.pre.mk>
 
+POSTFIX_CCARGS+=	-DDEF_CONFIG_DIR=\\\"${ETCDIR}\\\" \
+			-DDEF_SAMPLE_DIR=\\\"${EXAMPLESDIR}\\\" \
+			-DDEF_DAEMON_DIR=\\\"${PREFIX}/libexec/postfix\\\" \
+			-DDEF_COMMAND_DIR=\\\"${PREFIX}/sbin\\\" \
+			-DDEF_SENDMAIL_PATH=\\\"${PREFIX}/sbin/sendmail\\\" \
+			-DDEF_NEWALIAS_PATH=\\\"${PREFIX}/bin/newaliases\\\" \
+			-DDEF_MAILQ_PATH=\\\"${PREFIX}/bin/mailq\\\" \
+			-DDEF_MANPAGE_DIR=\\\"${MANPREFIX}/man\\\" \
+			-DDEF_README_DIR=\\\"${READMEDIR}\\\" \
+			-DDEF_HTML_DIR=\\\"${READMEDIR}\\\" \
+			-DDEF_QUEUE_DIR=\\\"/var/spool/postfix\\\" \
+			-DDEF_DATA_DIR=\\\"/var/db/postfix\\\" \
+			-DDEF_MAIL_OWNER=\\\"postfix\\\" \
+			-DDEF_SGID_GROUP=\\\"maildrop\\\" \
+			-DALIAS_DB_MAP=\\\"hash:/etc/mail/aliases\\\"
+
 # Default requirement for postfix rc script
-_REQUIRE=	LOGIN cleanvar
+_REQUIRE=		LOGIN cleanvar
 
 .if defined(WITH_PCRE)
 LIB_DEPENDS+=		pcre.0:${PORTSDIR}/devel/pcre
@@ -111,6 +124,7 @@
 .if defined(WITH_DOVECOT)
 RUN_DEPENDS+=		dovecot:${PORTSDIR}/mail/dovecot
 POSTFIX_CCARGS+=	-DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\\\"dovecot\\\"
+_REQUIRE+=		dovecot
 .endif
 
 .if defined(WITH_SASLKRB)
@@ -185,26 +199,47 @@
 .if defined(WITH_VDA)
 IGNORE=			wait for a new VDA patch that works with 2.6.0
 PATCH_SITES+=		http://vda.sourceforge.net/VDA/
-PATCHFILES+=		postfix-2.5.6-vda-ng.patch.gz
+PATCHFILES+=		postfix-${PORTVERSION}-vda-ng.patch.gz
 PATCH_DIST_STRIP=	-p1
+PLIST_SUB+=	VDA=""
+.else
+PLIST_SUB+=	VDA="@comment "
 .endif
 
 .if defined(WITH_TEST)
 BINTEST=	qmqp-sink qmqp-source smtp-sink smtp-source
 MANTEST=	qmqp-sink.1 qmqp-source.1 smtp-sink.1 smtp-source.1
 MAN1+=		${MANTEST}
-PLIST_SUB+=	SUB_TEST=""
+PLIST_SUB+=	TEST=""
 .else
-PLIST_SUB+=	SUB_TEST="@comment "
+PLIST_SUB+=	TEST="@comment "
 .endif
 
 .if defined(NOPORTDOCS)
 READMEDIR=no
 .else
-READMEDIR=${PREFIX}/share/doc/postfix
+READMEDIR=${DOCSDIR}
 .endif
 
-SUB_LIST+=	REQUIRE="${_REQUIRE}"
+SUB_LIST+=	REQUIRE="${_REQUIRE}" READMEDIR="${READMEDIR}"
+SUB_FILES+=	pkg-install pkg-message
+
+# sed script for files in ${WRKSRC}/README_FILES ${WRKSRC}/conf ${WRKSRC}/man
+REINPLACE=	s!^PATH=.*!PATH=/bin:/sbin:/usr/bin:/usr/sbin:${PREFIX}/bin:${PREFIX}/sbin!;\
+		s!(_directory = )/usr/!\1${PREFIX}/!g;\
+		s!^(data_directory = /var/)lib/!\1db/!g;\
+		s!^\#(mynetworks_style = host)!\1!g;\
+		s!^(sendmail_path =)!\1 ${PREFIX}/sbin/sendmail!g;\
+		s!^(newaliases_path =)!\1 ${PREFIX}/bin/newaliases!g;\
+		s!^(mailq_path =)!\1 ${PREFIX}/bin/mailq!g;\
+		s!^(setgid_group =)!\1 maildrop!g;\
+		s!^(manpage_directory =)!\1 ${PREFIX}/man!g;\
+		s!^(sample_directory =)!\1 ${EXAMPLESDIR}!g;\
+		s!^((html|readme)_directory =)!\1 ${READMEDIR}!g;\
+		\!^\#alias_database = dbm:/etc/mail/aliases$$!d;\
+		s!/etc/aliases!/etc/mail/aliases!g;\
+		s!(:|= )/etc/postfix!\1$$config_directory!g;\
+		s!/etc/postfix!${ETCDIR}!g;
 
 pre-patch:
 .if defined(POSTFIX_OPTIONS)
@@ -233,20 +268,23 @@
 	fi
 .endif
 
-	@${ECHO} "<HTML><BODY>See <A HREF="header_checks.5.html">header_checks.5.html</A></BODY></HTML>" \
+	@${ECHO} '<HTML><BODY>See <A HREF="header_checks.5.html">header_checks.5.html</A></BODY></HTML>' \
 		> ${WRKSRC}/html/body_checks.5.html
-	@${FIND} -P ${WRKSRC}/man -type f | ${XARGS} \
-		${REINPLACE_CMD} -e "s|/etc/postfix|${PREFIX}/etc/postfix|g"
-	@${FIND} -P ${WRKSRC}/README_FILES -type f | ${XARGS} \
-		${REINPLACE_CMD} -e "s|/etc/postfix|${PREFIX}/etc/postfix|g"
-	@${FIND} -P ${WRKSRC}/conf -type f | ${XARGS} \
-		${REINPLACE_CMD} -e "s|/etc/postfix|${PREFIX}/etc/postfix|g"
+	@${REINPLACE_CMD} -E -e 's![[:<:]]perl[[:>:]]!${PERL}!' \
+		${WRKSRC}/src/bounce/Makefile.in
+	@${REINPLACE_CMD} -E -e 's!^(#define DEF_SGID_GROUP[^"]+)"postdrop"$$!\1"maildrop"!' \
+		${WRKSRC}/src/global/mail_params.h
+	@${FIND} -X ${WRKSRC}/README_FILES ${WRKSRC}/conf ${WRKSRC}/man \
+		-type f -a ! \( -name INSTALL -o -name aliases \) | ${XARGS} \
+		${REINPLACE_CMD} -E -e '${REINPLACE}'
 
 post-patch:
-# All files modified with ${FILESDIR}/patch-* to use !!PREFIX!! need REINPLACE. Put below.
-	@${REINPLACE_CMD} -e "s,!!PREFIX!!,${PREFIX},g" \
-		${WRKSRC}/conf/main.cf ${WRKSRC}/src/global/mail_params.h
-	@${REINPLACE_CMD} -e "s|perl|${PERL}|" ${WRKSRC}/src/bounce/Makefile.in
+.if defined(WITH_VDA)
+	@${ECHO} '$$readme_directory/VDA_README:f:root:-:644' \
+		>> ${WRKSRC}/conf/postfix-files
+	@${REINPLACE_CMD} -E -e '${REINPLACE}' \
+		${WRKSRC}/README_FILES/VDA_README
+.endif
 
 do-configure:
 	(cd ${WRKSRC} && ${MAKE} -f Makefile.init makefiles ${MAKEFILEFLAGS} \
@@ -257,49 +295,33 @@
 	@${SETENV} ${SCRIPTS_ENV} PKG_PREFIX="${PREFIX}" ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
 
 do-install:
-	cd ${WRKSRC}; ${SH} postfix-install -non-interactive install_root=/ tempdir=/tmp \
-		config_directory=${PREFIX}/etc/postfix \
-		data_directory=/var/db/postfix \
-		daemon_directory=${PREFIX}/libexec/postfix \
-		command_directory=${PREFIX}/sbin \
-		queue_directory=/var/spool/postfix \
-		sendmail_path=${PREFIX}/sbin/sendmail \
-		newaliases_path=${PREFIX}/bin/newaliases \
-		mailq_path=${PREFIX}/bin/mailq \
-		mail_owner=postfix \
-		setgid_group=maildrop \
-		manpage_directory=${MANPREFIX}/man \
-		sample_directory=${PREFIX}/etc/postfix \
-		readme_directory=${READMEDIR}
-
+	@cd ${WRKSRC} && ${SH} postfix-install -non-interactive install_root=/ tempdir=/tmp
 	${INSTALL_SCRIPT} ${WRKSRC}/auxiliary/rmail/rmail ${PREFIX}/bin/rmail
-
 	${INSTALL_SCRIPT} ${WRKSRC}/auxiliary/qshape/qshape.pl ${PREFIX}/bin/qshape
 	${INSTALL_MAN} ${WRKSRC}/man/man1/qshape.1 ${MANPREFIX}/man/man1
-
 .for f in ${BINTEST}
 	${INSTALL_PROGRAM} ${WRKSRC}/bin/${f} ${PREFIX}/bin
 .endfor
 .for f in ${MANTEST}
 	${INSTALL_MAN} ${WRKSRC}/man/man1/${f} ${MANPREFIX}/man/man1
 .endfor
-
-	@${MKDIR} ${PREFIX}/etc/postfix/dist
-.for f in ${CONF1}
-	${INSTALL_DATA} ${WRKSRC}/conf/${f} ${PREFIX}/etc/postfix/dist
-.endfor
-
 .if !defined(NOPORTDOCS)
-	${INSTALL} -d -o ${DOCOWN} -g ${DOCGRP} -m 555 ${DOCSDIR}
+	${INSTALL} -o ${DOCOWN} -g ${DOCGRP} -m 555 -d ${DOCSDIR}
 	@cd ${WRKSRC}/html && ${INSTALL_DATA} *.html *.jpg *.png ${DOCSDIR} && \
 		${ECHO_MSG} "Installed HTML documentation in ${DOCSDIR}"
 .endif
+.if !defined(NOPORTEXAMPLES)
+	${INSTALL} -o ${SHAREOWN} -g ${SHAREGRP} -m 555 -d ${EXAMPLESDIR}
+.for f in ${PORTEXAMPLES}
+	${INSTALL_DATA} ${WRKSRC}/conf/${f} ${EXAMPLESDIR}
+.endfor
+	@${ECHO_MSG} "Installed configuration examples in ${EXAMPLESDIR}"
+.endif
 
 post-install:
 	@${SETENV} ${SCRIPTS_ENV} PKG_PREFIX="${PREFIX}" ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
-# Fix compressed man pages
-	@${REINPLACE_CMD} -E -e "s|(man[158]/.*.[158]):|\1.gz:|g" ${PREFIX}/libexec/postfix/postfix-files
-	@${RM} -f ${PREFIX}/libexec/postfix/postfix-files.bak
+	# Fix compressed man pages
+	@${REINPLACE_CMD} -i '' -E -e "s|(man[158]/.*.[158]):|\1.gz:|g" ${PREFIX}/libexec/postfix/postfix-files
 	@${CAT} ${PKGMESSAGE}
 
 .include <bsd.port.post.mk>
diff -u -r -N postfix-2.6.0/files/patch-conf::main.cf postfix/files/patch-conf::main.cf
--- postfix-2.6.0/files/patch-conf::main.cf	2008-02-29 20:44:30.000000000 -0500
+++ postfix/files/patch-conf::main.cf	1969-12-31 19:00:00.000000000 -0500
@@ -1,80 +0,0 @@
---- conf/main.cf.orig	2007-12-18 11:50:25.000000000 -0200
-+++ conf/main.cf	2008-02-29 22:35:12.000000000 -0300
-@@ -33,19 +33,19 @@
- # The command_directory parameter specifies the location of all
- # postXXX commands.
- #
--command_directory = /usr/sbin
-+command_directory = !!PREFIX!!/sbin
- 
- # The daemon_directory parameter specifies the location of all Postfix
- # daemon programs (i.e. programs listed in the master.cf file). This
- # directory must be owned by root.
- #
--daemon_directory = /usr/libexec/postfix
-+daemon_directory = !!PREFIX!!/libexec/postfix
- 
- # The data_directory parameter specifies the location of Postfix-writable
- # data files (caches, random numbers). This directory must be owned
- # by the mail_owner account (see below).
- #
--data_directory = /var/lib/postfix
-+data_directory = /var/db/postfix
- 
- # QUEUE AND PROCESS OWNERSHIP
- #
-@@ -244,7 +244,7 @@
- # 
- #mynetworks_style = class
- #mynetworks_style = subnet
--#mynetworks_style = host
-+mynetworks_style = host
- 
- # Alternatively, you can specify the mynetworks list by hand, in
- # which case Postfix ignores the mynetworks_style setting.
-@@ -615,37 +615,37 @@
- # sendmail_path: The full pathname of the Postfix sendmail command.
- # This is the Sendmail-compatible mail posting interface.
- # 
--sendmail_path =
-+sendmail_path = !!PREFIX!!/sbin/sendmail
- 
- # newaliases_path: The full pathname of the Postfix newaliases command.
- # This is the Sendmail-compatible command to build alias databases.
- #
--newaliases_path =
-+newaliases_path = !!PREFIX!!/bin/newaliases
- 
- # mailq_path: The full pathname of the Postfix mailq command.  This
- # is the Sendmail-compatible mail queue listing command.
- # 
--mailq_path =
-+mailq_path = !!PREFIX!!/bin/mailq
- 
- # setgid_group: The group for mail submission and queue management
- # commands.  This must be a group name with a numerical group ID that
- # is not shared with other accounts, not even with the Postfix account.
- #
--setgid_group =
-+setgid_group = maildrop
- 
- # html_directory: The location of the Postfix HTML documentation.
- #
--html_directory =
-+html_directory = no
- 
- # manpage_directory: The location of the Postfix on-line manual pages.
- #
--manpage_directory =
-+manpage_directory = !!PREFIX!!/man
- 
- # sample_directory: The location of the Postfix sample configuration files.
- # This parameter is obsolete as of Postfix 2.1.
- #
--sample_directory =
-+sample_directory = !!PREFIX!!/etc/postfix
- 
- # readme_directory: The location of the Postfix README files.
- #
--readme_directory =
-+readme_directory = no
diff -u -r -N postfix-2.6.0/files/patch-conf::post-install postfix/files/patch-conf::post-install
--- postfix-2.6.0/files/patch-conf::post-install	2005-03-19 18:17:54.000000000 -0500
+++ postfix/files/patch-conf::post-install	1969-12-31 19:00:00.000000000 -0500
@@ -1,11 +0,0 @@
---- conf/post-install.orig	Thu Feb 24 08:06:08 2005
-+++ conf/post-install	Sat Mar  5 11:53:42 2005
-@@ -185,7 +185,7 @@
- 
- umask 022
- 
--PATH=/bin:/usr/bin:/usr/sbin:/usr/etc:/sbin:/etc:/usr/contrib/bin:/usr/gnu/bin:/usr/ucb:/usr/bsd
-+PATH=/bin:/usr/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin
- SHELL=/bin/sh
- IFS=" 	
- "
diff -u -r -N postfix-2.6.0/files/patch-makedefs postfix/files/patch-makedefs
--- postfix-2.6.0/files/patch-makedefs	2007-10-22 14:39:39.000000000 -0400
+++ postfix/files/patch-makedefs	2009-05-11 17:26:46.000000000 -0400
@@ -1,12 +1,10 @@
---- makedefs.orig	2007-03-24 10:30:18.000000000 -0300
-+++ makedefs	2007-10-22 16:18:48.000000000 -0200
-@@ -130,6 +130,10 @@
+--- makedefs.orig	2009-05-11 17:26:46.000000000 -0400
++++ makedefs	2009-05-11 17:26:46.000000000 -0400
+@@ -144,6 +144,8 @@
  		;;
-   FreeBSD.6*)	SYSTYPE=FREEBSD6
+   FreeBSD.7*)	SYSTYPE=FREEBSD7
  		;;
-+  FreeBSD.7*)	SYSTYPE=FREEBSD6
-+		;;
-+  FreeBSD.8*)	SYSTYPE=FREEBSD6
++  FreeBSD.8*)	SYSTYPE=FREEBSD7
 +		;;
    OpenBSD.2*)	SYSTYPE=OPENBSD2
  		;;
diff -u -r -N postfix-2.6.0/files/patch-src::global::mail_params.h postfix/files/patch-src::global::mail_params.h
--- postfix-2.6.0/files/patch-src::global::mail_params.h	2008-07-14 22:54:32.000000000 -0400
+++ postfix/files/patch-src::global::mail_params.h	1969-12-31 19:00:00.000000000 -0500
@@ -1,38 +0,0 @@
---- src/global/mail_params.h.orig	Mon Jun 30 18:57:48 2008
-+++ src/global/mail_params.h	Mon Jun 30 19:00:05 2008
-@@ -67,7 +67,7 @@
- extern gid_t var_owner_gid;
- 
- #define VAR_SGID_GROUP		"setgid_group"
--#define DEF_SGID_GROUP		"postdrop"
-+#define DEF_SGID_GROUP		"maildrop"
- extern char *var_sgid_group;
- extern gid_t var_sgid_gid;
- 
-@@ -241,7 +241,7 @@
-   */
- #define VAR_DAEMON_DIR		"daemon_directory"
- #ifndef DEF_DAEMON_DIR
--#define DEF_DAEMON_DIR		"/usr/libexec/postfix"
-+#define DEF_DAEMON_DIR		"!!PREFIX!!/libexec/postfix"
- #endif
- extern char *var_daemon_dir;
- 
-@@ -265,7 +265,7 @@
-   */
- #define VAR_DATA_DIR		"data_directory"
- #ifndef DEF_DATA_DIR
--#define DEF_DATA_DIR		"/var/lib/postfix"
-+#define DEF_DATA_DIR		"/var/db/postfix"
- #endif
- extern char *var_data_dir;
- 
-@@ -279,7 +279,7 @@
-   */
- #define VAR_CONFIG_DIR		"config_directory"
- #ifndef DEF_CONFIG_DIR
--#define DEF_CONFIG_DIR		"/etc/postfix"
-+#define DEF_CONFIG_DIR		"!!PREFIX!!/etc/postfix"	
- #endif
- extern char *var_config_dir;
- 
diff -u -r -N postfix-2.6.0/files/pkg-install.in postfix/files/pkg-install.in
--- postfix-2.6.0/files/pkg-install.in	1969-12-31 19:00:00.000000000 -0500
+++ postfix/files/pkg-install.in	2009-05-19 12:24:22.932201869 -0400
@@ -0,0 +1,153 @@
+#!/bin/sh
+#
+#	$FreeBSD: ports/mail/postfix/pkg-install,v 1.27 2009/05/18 14:36:33 pav Exp $
+#
+
+# If the POSTFIX_DEFAULT_MTA environment variable is set to YES, it
+# will make the port/package use defaults which make postfix replace
+# sendmail as much as possible.
+
+PREFIX=${PKG_PREFIX:=%%PREFIX%%}
+ETCDIR=${ETCDIR:=%%ETCDIR%%}
+READMEDIR=${READMEDIR:=%%READMEDIR%%}
+EXAMPLESDIR=${EXAMPLESDIR:=%%EXAMPLESDIR%%}
+BATCH=${BATCH:=no}
+POSTFIX_DEFAULT_MTA=${POSTFIX_DEFAULT_MTA:=no}
+
+if [ "${POSTFIX_DEFAULT_MTA}" = "no" ]; then
+	DEFAULT_REPLACE_MAILERCONF=n
+else
+	DEFAULT_REPLACE_MAILERCONF=y
+fi
+
+if [ -x /usr/sbin/nologin ]; then
+	NOLOGIN=/usr/sbin/nologin
+else
+	NOLOGIN=/sbin/nologin
+fi
+
+ask() {
+	local question default answer
+
+	question=$1
+	default=$2
+	if [ -z "${PACKAGE_BUILDING}" -a "${BATCH}" = "no" ]; then
+		read -p "${question} [${default}]? " answer
+	fi
+	if [ -z "${answer}" ]; then
+		answer=${default}
+	fi
+	echo ${answer}
+}
+
+yesno() {
+	local question default answer
+
+	question=$1
+	default=$2
+	while :; do
+		answer=$(ask "${question}" "${default}")
+		case "${answer}" in
+			[Yy]*)	return 0;;
+			[Nn]*)	return 1;;
+		esac
+		echo "Please answer yes or no."
+	done
+}
+
+if [ "$2" = "PRE-INSTALL" ]; then
+	USER=postfix
+	UID=125
+	GROUP=postfix
+	GID=125
+	GROUP2=maildrop
+	GID2=126
+
+	if /usr/sbin/pw groupshow "${GROUP}" 2>/dev/null; then
+		echo "You already have a group \"${GROUP}\", so I will use it."
+	else
+		if /usr/sbin/pw groupadd ${GROUP} -g ${GID}; then
+			echo "Added group \"${GROUP}\"."
+		else
+			echo "Adding group \"${GROUP}\" failed..."
+			echo "Please create it, and try again."
+			exit 1
+		fi
+	fi
+
+	if /usr/sbin/pw groupshow "${GROUP2}" 2>/dev/null; then
+		echo "You already have a group \"${GROUP2}\", so I will use it."
+	else
+		if /usr/sbin/pw groupadd ${GROUP2} -g ${GID2}; then
+			echo "Added group \"${GROUP2}\"."
+		else
+			echo "Adding group \"${GROUP2}\" failed..."
+			echo "Please create it, and try again."
+			exit 1
+		fi
+	fi
+
+	if /usr/sbin/pw user show "${USER}" 2>/dev/null; then
+		echo "You already have a user \"${USER}\", so I will use it."
+	else
+		if /usr/sbin/pw useradd ${USER} -u ${UID} -g ${GROUP} -h - -d /var/spool/postfix -s ${NOLOGIN} -c "Postfix Mail System"; then
+			echo "Added user \"${USER}\"."
+		else
+			echo "Adding user \"${USER}\" failed..."
+			echo "Please create it, and try again."
+			exit 1
+		fi
+	fi
+
+	if /usr/sbin/pw show group mail | grep -q "${USER}" 2>/dev/null; then
+		echo "You already have user \"${USER}\" in group \"mail\", so I will use it."
+	else
+		echo "You need user \"${USER}\" added to group \"mail\"."
+		if yesno "Would you like me to add it" y; then
+			/usr/sbin/pw groupmod mail -m ${USER} || exit
+			echo "Done."
+		else
+			echo "Please create it, and try again."
+			exit 1
+		fi
+	fi
+fi
+
+if [ "$2" = "POST-INSTALL" ]; then
+	if [ -d ${EXAMPLESDIR} ]; then
+		for file in ${EXAMPLESDIR}/*; do
+			if [ ! -f ${ETCDIR}/${file#${EXAMPLESDIR}} ]; then
+				cp $file ${ETCDIR}/
+			fi
+		done
+	fi
+	/bin/sh ${PREFIX}/libexec/postfix/post-install tempdir=/tmp upgrade-package
+fi
+
+replace() {
+	local orig repl
+
+	orig=$1
+	repl=$2
+	if [ -e ${orig} ]; then
+		/bin/mv -f ${orig} ${orig}.OFF
+		/bin/chmod 0 ${orig}.OFF
+	fi
+	if [ -e ${repl} ]; then
+		/bin/ln -s ${repl} ${orig}
+	fi
+}
+
+if [ "$2" = "POST-INSTALL" -a -z "${PACKAGE_BUILDING}" ]; then
+	if yesno "Would you like to activate Postfix in /etc/mail/mailer.conf" ${DEFAULT_REPLACE_MAILERCONF}; then
+		/bin/mv -f /etc/mail/mailer.conf /etc/mail/mailer.conf.old
+		echo "#"						>	/etc/mail/mailer.conf
+		echo -n "# Execute the Postfix sendmail program"	>>	/etc/mail/mailer.conf
+		echo ", named ${PREFIX}/sbin/sendmail"		>>	/etc/mail/mailer.conf
+		echo "#"						>>	/etc/mail/mailer.conf
+		echo "sendmail	${PREFIX}/sbin/sendmail"	>>	/etc/mail/mailer.conf
+		echo "send-mail	${PREFIX}/sbin/sendmail"	>>	/etc/mail/mailer.conf
+		echo "mailq		${PREFIX}/sbin/sendmail"	>>	/etc/mail/mailer.conf
+		echo "newaliases	${PREFIX}/sbin/sendmail"	>>	/etc/mail/mailer.conf
+	fi
+fi
diff -u -r -N postfix-2.6.0/files/pkg-message.in postfix/files/pkg-message.in
--- postfix-2.6.0/files/pkg-message.in	1969-12-31 19:00:00.000000000 -0500
+++ postfix/files/pkg-message.in	2009-05-19 11:24:34.000000000 -0400
@@ -0,0 +1,25 @@
+To enable postfix startup script please add postfix_enable="YES" in
+your rc.conf
+
+If you not need sendmail anymore, please add in your rc.conf:
+
+sendmail_enable="NO"
+sendmail_submit_enable="NO"
+sendmail_outbound_enable="NO"
+sendmail_msp_queue_enable="NO"
+
+And you can disable some sendmail specific daily maintenance routines in your
+/etc/periodic.conf file:
+
+daily_clean_hoststat_enable="NO"
+daily_status_mail_rejects_enable="NO"
+daily_status_include_submit_mailq="NO"
+daily_submit_queuerun="NO"
+
+If you are using SASL, you need to make sure that postfix has access to read
+the sasldb file.  This is accomplished by adding postfix to group mail and
+making the %%PREFIX%%/etc/sasldb* file(s) readable by group mail (this should
+be the default for new installs).
+
+If you are upgrading from postfix version prior to 2.0, please see the README
+files for recommended changes to your configuration.
diff -u -r -N postfix-2.6.0/files/postfix.sh.in postfix/files/postfix.sh.in
--- postfix-2.6.0/files/postfix.sh.in	2007-02-21 00:00:56.000000000 -0500
+++ postfix/files/postfix.sh.in	2009-05-19 10:54:01.000000000 -0400
@@ -25,10 +25,10 @@
 
 load_rc_config $name
 
-: ${postfix_enable="NO"}
-: ${postfix_pidfile="/var/spool/postfix/pid/master.pid"}
-: ${postfix_procname="%%PREFIX%%/libexec/postfix/master"}
-: ${postfix_flags=""}
+: ${postfix_enable:="NO"}
+: ${postfix_pidfile:="/var/spool/postfix/pid/master.pid"}
+: ${postfix_procname:="%%PREFIX%%/libexec/postfix/master"}
+: ${postfix_flags:=""}
 
 start_cmd=${name}_start
 stop_cmd=${name}_stop
diff -u -r -N postfix-2.6.0/pkg-install postfix/pkg-install
--- postfix-2.6.0/pkg-install	2009-05-19 03:42:00.000000000 -0400
+++ postfix/pkg-install	1969-12-31 19:00:00.000000000 -0500
@@ -1,167 +0,0 @@
-#!/bin/sh
-#
-#	$FreeBSD: ports/mail/postfix/pkg-install,v 1.27 2009/05/18 14:36:33 pav Exp $
-#
-
-# If the POSTFIX_DEFAULT_MTA environment variable is set to YES, it
-# will make the port/package use defaults which make postfix replace
-# sendmail as much as possible.
-
-PKG_PREFIX=${PKG_PREFIX:=/usr/local}
-BATCH=${BATCH:=no}
-POSTFIX_DEFAULT_MTA=${POSTFIX_DEFAULT_MTA:=no}
-
-if [ x${POSTFIX_DEFAULT_MTA} = xno ]; then
-	DEFAULT_REPLACE_MAILERCONF=n
-else
-	DEFAULT_REPLACE_MAILERCONF=y
-fi
-
-if [ -x /usr/sbin/nologin ]; then
-	NOLOGIN=/usr/sbin/nologin
-else
-	NOLOGIN=/sbin/nologin
-fi
-
-ask() {
-	local question default answer
-
-	question=$1
-	default=$2
-	if [ -z "${PACKAGE_BUILDING}" -a x${BATCH} = xno ]; then
-		read -p "${question} [${default}]? " answer
-	fi
-	if [ x${answer} = x ]; then
-		answer=${default}
-	fi
-	echo ${answer}
-}
-
-yesno() {
-	local question default answer
-
-	question=$1
-	default=$2
-	while :; do
-		answer=$(ask "${question}" "${default}")
-		case "${answer}" in
-			[Yy]*)	return 0;;
-			[Nn]*)	return 1;;
-		esac
-		echo "Please answer yes or no."
-	done
-}
-
-if [ x"$2" = xPRE-INSTALL ]; then
-	USER=postfix
-	UID=125
-	GROUP=postfix
-	GID=125
-	GROUP2=maildrop
-	GID2=126
-
-	if /usr/sbin/pw groupshow "${GROUP}" 2>/dev/null; then
-		echo "You already have a group \"${GROUP}\", so I will use it."
-	else
-		if /usr/sbin/pw groupadd ${GROUP} -g ${GID}; then
-			echo "Added group \"${GROUP}\"."
-		else
-			echo "Adding group \"${GROUP}\" failed..."
-			echo "Please create it, and try again."
-			exit 1
-		fi
-	fi
-
-	if /usr/sbin/pw groupshow "${GROUP2}" 2>/dev/null; then
-		echo "You already have a group \"${GROUP2}\", so I will use it."
-	else
-		if /usr/sbin/pw groupadd ${GROUP2} -g ${GID2}; then
-			echo "Added group \"${GROUP2}\"."
-		else
-			echo "Adding group \"${GROUP2}\" failed..."
-			echo "Please create it, and try again."
-			exit 1
-		fi
-	fi
-
-	if /usr/sbin/pw user show "${USER}" 2>/dev/null; then
-		echo "You already have a user \"${USER}\", so I will use it."
-	else
-		if /usr/sbin/pw useradd ${USER} -u ${UID} -g ${GROUP} -h - -d /var/spool/postfix -s ${NOLOGIN} -c "Postfix Mail System"; then
-			echo "Added user \"${USER}\"."
-		else
-			echo "Adding user \"${USER}\" failed..."
-			echo "Please create it, and try again."
-			exit 1
-		fi
-	fi
-
-	if /usr/sbin/pw show group mail | grep -q "${USER}" 2>/dev/null; then
-		echo "You already have user \"${USER}\" in group \"mail\", so I will use it."
-	else
-		echo "You need user \"${USER}\" added to group \"mail\"."
-		if yesno "Would you like me to add it" y; then
-			/usr/sbin/pw groupmod mail -m ${USER} || exit
-			echo "Done."
-		else
-			echo "Please create it, and try again."
-			exit 1
-		fi
-	fi
-fi
-
-if [ x"$2" = xPOST-INSTALL ]; then
-	if [ -d ${PKG_PREFIX}/etc/postfix/dist ]; then
-		for file in ${PKG_PREFIX}/etc/postfix/dist/*; do
-			if [ ! -f ${PKG_PREFIX}/etc/postfix/${file#${PKG_PREFIX}/etc/postfix/dist} ]; then
-				cp $file ${PKG_PREFIX}/etc/postfix/
-			fi
-		done
-	fi
-
-	/bin/sh ${PKG_PREFIX}/libexec/postfix/post-install tempdir=/tmp \
-	config_directory=${PKG_PREFIX}/etc/postfix \
-	data_directory=/var/db/postfix \
-	daemon_directory=${PKG_PREFIX}/libexec/postfix \
-	command_directory=${PKG_PREFIX}/sbin \
-	queue_directory=/var/spool/postfix \
-	sendmail_path=${PKG_PREFIX}/sbin/sendmail \
-	newaliases_path=${PKG_PREFIX}/bin/newaliases \
-	mailq_path=${PKG_PREFIX}/bin/mailq \
-	mail_owner=postfix \
-	setgid_group=maildrop \
-	manpage_directory=${PKG_PREFIX}/man \
-	sample_directory=${PKG_PREFIX}/etc/postfix \
-	readme_directory=no \
-	upgrade-package
-fi
-# readme_directory is "no" above since the package will have correct perms
-# already, and we don't know if they had PORTDOCS.
-
-replace() {
-	local orig repl
-
-	orig=$1
-	repl=$2
-	if [ -e ${orig} ]; then
-		/bin/mv -f ${orig} ${orig}.OFF
-		/bin/chmod 0 ${orig}.OFF
-	fi
-	if [ -e ${repl} ]; then
-		/bin/ln -s ${repl} ${orig}
-	fi
-}
-
-if [ x"$2" = xPOST-INSTALL -a -z "${PACKAGE_BUILDING}" ]; then
-	if yesno "Would you like to activate Postfix in /etc/mail/mailer.conf" ${DEFAULT_REPLACE_MAILERCONF}; then
-		/bin/mv -f /etc/mail/mailer.conf /etc/mail/mailer.conf.old
-		echo "#"						>	/etc/mail/mailer.conf
-		echo -n "# Execute the Postfix sendmail program"	>>	/etc/mail/mailer.conf
-		echo ", named ${PKG_PREFIX}/sbin/sendmail"		>>	/etc/mail/mailer.conf
-		echo "#"						>>	/etc/mail/mailer.conf
-		echo "sendmail	${PKG_PREFIX}/sbin/sendmail"	>>	/etc/mail/mailer.conf
-		echo "send-mail	${PKG_PREFIX}/sbin/sendmail"	>>	/etc/mail/mailer.conf
-		echo "mailq	${PKG_PREFIX}/sbin/sendmail"	>>	/etc/mail/mailer.conf
-		echo "newaliases	${PKG_PREFIX}/sbin/sendmail"	>>	/etc/mail/mailer.conf
-	fi
-fi
diff -u -r -N postfix-2.6.0/pkg-message postfix/pkg-message
--- postfix-2.6.0/pkg-message	2006-07-19 15:21:35.000000000 -0400
+++ postfix/pkg-message	1969-12-31 19:00:00.000000000 -0500
@@ -1,25 +0,0 @@
-To enable postfix startup script please add postfix_enable="YES" in
-your rc.conf
-
-If you not need sendmail anymore, please add in your rc.conf:
-
-sendmail_enable="NO"
-sendmail_submit_enable="NO"
-sendmail_outbound_enable="NO"
-sendmail_msp_queue_enable="NO"
-
-And you can disable some sendmail specific daily maintenance routines in your
-/etc/periodic.conf file:
-
-daily_clean_hoststat_enable="NO"
-daily_status_mail_rejects_enable="NO"
-daily_status_include_submit_mailq="NO"
-daily_submit_queuerun="NO"
-
-If you are using SASL, you need to make sure that postfix has access to read
-the sasldb file.  This is accomplished by adding postfix to group mail and
-making the /usr/local/etc/sasldb* file(s) readable by group mail (this should
-be the default for new installs).
-
-If you are upgrading from postfix version prior to 2.0, please see the README
-files for recommended changes to your configuration.
diff -u -r -N postfix-2.6.0/pkg-plist postfix/pkg-plist
--- postfix-2.6.0/pkg-plist	2009-05-19 03:42:00.000000000 -0400
+++ postfix/pkg-plist	2009-05-19 12:10:49.163508264 -0400
@@ -1,28 +1,19 @@
-@unexec if cmp -s %D/etc/postfix/main.cf %D/etc/postfix/dist/main.cf; then rm -f %D/etc/postfix/main.cf; fi
-@unexec if cmp -s %D/etc/postfix/master.cf %D/etc/postfix/dist/master.cf; then rm -f %D/etc/postfix/master.cf; fi
-@unexec if cmp -s %D/etc/postfix/access %D/etc/postfix/dist/access; then rm -f %D/etc/postfix/access; fi
-@unexec if cmp -s %D/etc/postfix/aliases %D/etc/postfix/dist/aliases; then rm -f %D/etc/postfix/aliases; fi
-@unexec if cmp -s %D/etc/postfix/canonical %D/etc/postfix/dist/canonical; then rm -f %D/etc/postfix/canonical; fi
-@unexec if cmp -s %D/etc/postfix/header_checks %D/etc/postfix/dist/header_checks; then rm -f %D/etc/postfix/header_checks; fi
-@unexec if cmp -s %D/etc/postfix/relocated %D/etc/postfix/dist/relocated; then rm -f %D/etc/postfix/relocated; fi
-@unexec if cmp -s %D/etc/postfix/transport %D/etc/postfix/dist/transport; then rm -f %D/etc/postfix/transport; fi
-@unexec if cmp -s %D/etc/postfix/virtual %D/etc/postfix/dist/virtual; then rm -f %D/etc/postfix/virtual; fi
-@unexec if cmp -s %D/etc/postfix/generic %D/etc/postfix/dist/generic; then rm -f %D/etc/postfix/generic; fi
-etc/postfix/LICENSE
-etc/postfix/TLS_LICENSE
-etc/postfix/bounce.cf.default
-etc/postfix/main.cf.default
-etc/postfix/makedefs.out
-etc/postfix/dist/main.cf
-etc/postfix/dist/master.cf
-etc/postfix/dist/access
-etc/postfix/dist/aliases
-etc/postfix/dist/canonical
-etc/postfix/dist/header_checks
-etc/postfix/dist/relocated
-etc/postfix/dist/transport
-etc/postfix/dist/virtual
-etc/postfix/dist/generic
+@unexec if cmp -s %D/%%EXAMPLESDIR%%/main.cf %D/%%ETCDIR%%/main.cf; then rm -f %D/%%ETCDIR%%/main.cf; fi
+@unexec if cmp -s %D/%%EXAMPLESDIR%%/master.cf %D/%%ETCDIR%%/master.cf; then rm -f %D/%%ETCDIR%%/master.cf; fi
+@unexec if cmp -s %D/%%EXAMPLESDIR%%/access %D/%%ETCDIR%%/access; then rm -f %D/%%ETCDIR%%/access; fi
+@unexec if cmp -s %D/%%EXAMPLESDIR%%/aliases %D/%%ETCDIR%%/aliases; then rm -f %D/%%ETCDIR%%/aliases; fi
+@unexec if cmp -s %D/%%EXAMPLESDIR%%/canonical %D/%%ETCDIR%%/canonical; then rm -f %D/%%ETCDIR%%/canonical; fi
+@unexec if cmp -s %D/%%EXAMPLESDIR%%/header_checks %D/%%ETCDIR%%/header_checks; then rm -f %D/%%ETCDIR%%/header_checks; fi
+@unexec if cmp -s %D/%%EXAMPLESDIR%%/relocated %D/%%ETCDIR%%/relocated; then rm -f %D/%%ETCDIR%%/relocated; fi
+@unexec if cmp -s %D/%%EXAMPLESDIR%%/transport %D/%%ETCDIR%%/transport; then rm -f %D/%%ETCDIR%%/transport; fi
+@unexec if cmp -s %D/%%EXAMPLESDIR%%/virtual %D/%%ETCDIR%%/virtual; then rm -f %D/%%ETCDIR%%/virtual; fi
+@unexec if cmp -s %D/%%EXAMPLESDIR%%/generic %D/%%ETCDIR%%/generic; then rm -f %D/%%ETCDIR%%/generic; fi
+%%ETCDIR%%/LICENSE
+%%ETCDIR%%/TLS_LICENSE
+%%ETCDIR%%/bounce.cf.default
+%%ETCDIR%%/main.cf.default
+%%ETCDIR%%/makedefs.out
+@dirrmtry %%ETCDIR%%
 libexec/postfix/anvil
 libexec/postfix/bounce
 libexec/postfix/cleanup
@@ -55,6 +46,15 @@
 libexec/postfix/verify
 libexec/postfix/virtual
 libexec/postfix/tlsmgr
+@dirrm libexec/postfix
+bin/mailq
+bin/newaliases
+bin/qshape
+bin/rmail
+%%TEST%%bin/qmqp-sink
+%%TEST%%bin/qmqp-source
+%%TEST%%bin/smtp-sink
+%%TEST%%bin/smtp-source
 sbin/postalias
 sbin/postcat
 sbin/postconf
@@ -68,14 +68,6 @@
 sbin/postqueue
 sbin/postsuper
 sbin/sendmail
-%%SUB_TEST%%bin/qmqp-sink
-%%SUB_TEST%%bin/qmqp-source
-%%SUB_TEST%%bin/smtp-sink
-%%SUB_TEST%%bin/smtp-source
-bin/rmail
-bin/qshape
-bin/newaliases
-bin/mailq
 %%PORTDOCS%%%%DOCSDIR%%/AAAREADME
 %%PORTDOCS%%%%DOCSDIR%%/ADDRESS_CLASS_README
 %%PORTDOCS%%%%DOCSDIR%%/ADDRESS_CLASS_README.html
@@ -164,6 +156,7 @@
 %%PORTDOCS%%%%DOCSDIR%%/ULTRIX_README
 %%PORTDOCS%%%%DOCSDIR%%/UUCP_README
 %%PORTDOCS%%%%DOCSDIR%%/UUCP_README.html
+%%VDA%%%%PORTDOCS%%%%DOCSDIR%%/VDA_README
 %%PORTDOCS%%%%DOCSDIR%%/VERP_README
 %%PORTDOCS%%%%DOCSDIR%%/VERP_README.html
 %%PORTDOCS%%%%DOCSDIR%%/VIRTUAL_README
@@ -244,6 +237,3 @@
 %%PORTDOCS%%%%DOCSDIR%%/tlsmgr.8.html
 %%PORTDOCS%%%%DOCSDIR%%/generic.5.html
 %%PORTDOCS%%@dirrm %%DOCSDIR%%
-@dirrm libexec/postfix
-@dirrm etc/postfix/dist
-@dirrmtry etc/postfix
>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->feedback 
State-Changed-By: edwin 
State-Changed-When: Tue May 19 21:30:14 UTC 2009 
State-Changed-Why:  
Awaiting maintainers feedback (via the GNATS Auto Assign Tool) 

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

From: Edwin Groothuis <edwin@FreeBSD.org>
To: sahil@tandon.net
Cc: bug-followup@FreeBSD.org
Subject: Re: ports/134728: Refactoring of the mail/postfix port to ease maintenance
Date: Tue, 19 May 2009 21:30:12 UT

 Maintainer of mail/postfix,
 
 Please note that PR ports/134728 has just been submitted.
 
 If it contains a patch for an upgrade, an enhancement or a bug fix
 you agree on, reply to this email stating that you approve the patch
 and a committer will take care of it.
 
 The full text of the PR can be found at:
     http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/134728
 
 -- 
 Edwin Groothuis via the GNATS Auto Assign Tool
 edwin@FreeBSD.org

From: Sahil Tandon <sahil@tandon.net>
To: bug-followup@FreeBSD.org
Cc: yds@CoolRat.org, beech@freebsd.org
Subject: Re: ports/134728: Refactoring of the mail/postfix port to ease
	maintenance
Date: Tue, 19 May 2009 23:45:14 -0400

 The proposed changes are sound and in very quick tests, the port appears to
 build OK.  However, there is a small error (output from the post-install
 script) towards the end of the installation process:
 
 ...
 
 Installed configuration examples in /usr/local/share/examples/postfix
 /usr/local/libexec/postfix/post-install: Error: /postfix-files is not a file.
 
 ...
 
 I won't have time to isolate the problem until this weekend, but just
 pointing it out in case you have time later this week.
 
 -- 
 Sahil Tandon <sahil@tandon.net>

From: Sahil Tandon <sahil@tandon.net>
To: "bug-followup@FreeBSD.org" <bug-followup@FreeBSD.org>
Cc: "yds@coolrat.org" <yds@coolrat.org>
Subject: Re: ports/134728: Refactoring of the mail/postfix port to ease maintenance
Date: Wed, 20 May 2009 08:48:38 -0400

 And while we're at it, might as well embed an update to 2.6.1  
 (released late last night to fix file corruption in the Milter code)  
 in your refactoring; then we needn't bump PORTREVISION.

From: Yarema <yds@CoolRat.org>
To: Sahil Tandon <sahil@tandon.net>
Cc: bug-followup@FreeBSD.org, beech@freebsd.org
Subject: Re: ports/134728: Refactoring of the mail/postfix port to ease	maintenance
Date: Wed, 20 May 2009 11:23:47 -0400

 Sahil Tandon wrote:
 > The proposed changes are sound and in very quick tests, the port
 > appears to build OK.  However, there is a small error (output from
 > the post-install script) towards the end of the installation process:
 >
 > ...
 >
 > Installed configuration examples in /usr/local/share/examples/postfix
 > /usr/local/libexec/postfix/post-install: Error: /postfix-files
 > is not a file.
 >
 > ...
 >
 > I won't have time to isolate the problem until this weekend, but just
 > pointing it out in case you have time later this week.
 
 Sahil Tandon wrote:
 > And while we're at it, might as well embed an update to 2.6.1
 > (released late last night to fix file corruption in the Milter code)
 > in your refactoring; then we needn't bump PORTREVISION.
 
 Right on.  I updated my revision to 2.6.1 and looking into that error
 you spotted.  It's being thrown by pkg-install when it runs:
 
 /bin/sh ${PREFIX}/libexec/postfix/post-install tempdir=/tmp \
 upgrade-package
 
 -- 
 Yarema

From: Yarema <yds@CoolRat.org>
To: Sahil Tandon <sahil@tandon.net>
Cc: "bug-followup@FreeBSD.org" <bug-followup@FreeBSD.org>
Subject: Re: ports/134728: Refactoring of the mail/postfix port to ease maintenance
Date: Wed, 20 May 2009 11:56:55 -0400

 This is a multi-part message in MIME format.
 --------------050305080709030501080309
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 7bit
 
 New diff attached.  Bumps the version to 2.6.1 and fixes the call to
 post-install by specifying the daemon_directory parameter so that
 $daemon_directory/postfix-files can be found.  Gets rid of the following:
 
 /usr/local/libexec/postfix/post-install: Error: /postfix-files is not a
 file.
 
 -- 
 Yarema
 
 --------------050305080709030501080309
 Content-Type: text/plain; x-mac-type="0"; x-mac-creator="0";
  name="postfix.diff"
 Content-Transfer-Encoding: base64
 Content-Disposition: inline;
  filename="postfix.diff"
 
 ZGlmZiAtdSAtciAtTiBwb3N0Zml4LTIuNi4wL01ha2VmaWxlIHBvc3RmaXgvTWFrZWZpbGUK
 LS0tIHBvc3RmaXgtMi42LjAvTWFrZWZpbGUJMjAwOS0wNS0xOSAwMzo0MjowMC4wMDAwMDAw
 MDAgLTA0MDAKKysrIHBvc3RmaXgvTWFrZWZpbGUJMjAwOS0wNS0yMCAxMTowNzozOC40NjAx
 MzcxNTUgLTA0MDAKQEAgLTYsNyArNiw3IEBACiAjCiAKIFBPUlROQU1FPQlwb3N0Zml4Ci1Q
 T1JUVkVSU0lPTj0JMi42LjAKK1BPUlRWRVJTSU9OPQkyLjYuMQogUE9SVEVQT0NIPQkxCiBD
 QVRFR09SSUVTPQltYWlsIGlwdjYKIE1BU1RFUl9TSVRFUz0JZnRwOi8vZnRwLnBvcmN1cGlu
 ZS5vcmcvbWlycm9ycy9wb3N0Zml4LXJlbGVhc2Uvb2ZmaWNpYWwvIFwKQEAgLTc2LDggKzc2
 LDggQEAKIAlib3VuY2UuOCB0cmFjZS44IFwKIAlzbXRwLjggbG10cC44CiAKLUNPTkYxPQlh
 Y2Nlc3MgYWxpYXNlcyBjYW5vbmljYWwgZ2VuZXJpYyBoZWFkZXJfY2hlY2tzIG1haW4uY2Yg
 bWFzdGVyLmNmIFwKLQlyZWxvY2F0ZWQgdHJhbnNwb3J0IHZpcnR1YWwKK1BPUlRFWEFNUExF
 Uz0JYWNjZXNzIGFsaWFzZXMgY2Fub25pY2FsIGdlbmVyaWMgaGVhZGVyX2NoZWNrcyBcCisJ
 CW1haW4uY2YgbWFzdGVyLmNmIHJlbG9jYXRlZCB0cmFuc3BvcnQgdmlydHVhbAogCiAuaWYg
 IWRlZmluZWQoREVCVUcpCiBNQUtFRklMRUZMQUdTKz0JREVCVUc9CkBAIC04NSwxNCArODUs
 MjYgQEAKIAogTUFLRUZJTEVGTEFHUys9CUNDPSIke0NDfSIgT1BUPSIke0NGTEFHU30iCiAK
 LVNDUklQVFNfRU5WPQlXUktESVJQUkVGSVg9IiR7V1JLRElSUFJFRklYfSIgXAotCQlUT1VD
 SD0iJHtUT1VDSH0iIFwKLQkJTUtESVI9IiR7TUtESVJ9IgotCiAuaW5jbHVkZSA8YnNkLnBv
 cnQucHJlLm1rPgogCitQT1NURklYX0NDQVJHUys9CS1EREVGX0NPTkZJR19ESVI9XFxcIiR7
 RVRDRElSfVxcXCIgXAorCQkJLURERUZfU0FNUExFX0RJUj1cXFwiJHtFWEFNUExFU0RJUn1c
 XFwiIFwKKwkJCS1EREVGX0RBRU1PTl9ESVI9XFxcIiR7UFJFRklYfS9saWJleGVjL3Bvc3Rm
 aXhcXFwiIFwKKwkJCS1EREVGX0NPTU1BTkRfRElSPVxcXCIke1BSRUZJWH0vc2JpblxcXCIg
 XAorCQkJLURERUZfU0VORE1BSUxfUEFUSD1cXFwiJHtQUkVGSVh9L3NiaW4vc2VuZG1haWxc
 XFwiIFwKKwkJCS1EREVGX05FV0FMSUFTX1BBVEg9XFxcIiR7UFJFRklYfS9iaW4vbmV3YWxp
 YXNlc1xcXCIgXAorCQkJLURERUZfTUFJTFFfUEFUSD1cXFwiJHtQUkVGSVh9L2Jpbi9tYWls
 cVxcXCIgXAorCQkJLURERUZfTUFOUEFHRV9ESVI9XFxcIiR7TUFOUFJFRklYfS9tYW5cXFwi
 IFwKKwkJCS1EREVGX1JFQURNRV9ESVI9XFxcIiR7UkVBRE1FRElSfVxcXCIgXAorCQkJLURE
 RUZfSFRNTF9ESVI9XFxcIiR7UkVBRE1FRElSfVxcXCIgXAorCQkJLURERUZfUVVFVUVfRElS
 PVxcXCIvdmFyL3Nwb29sL3Bvc3RmaXhcXFwiIFwKKwkJCS1EREVGX0RBVEFfRElSPVxcXCIv
 dmFyL2RiL3Bvc3RmaXhcXFwiIFwKKwkJCS1EREVGX01BSUxfT1dORVI9XFxcInBvc3RmaXhc
 XFwiIFwKKwkJCS1EREVGX1NHSURfR1JPVVA9XFxcIm1haWxkcm9wXFxcIiBcCisJCQktREFM
 SUFTX0RCX01BUD1cXFwiaGFzaDovZXRjL21haWwvYWxpYXNlc1xcXCIKKwogIyBEZWZhdWx0
 IHJlcXVpcmVtZW50IGZvciBwb3N0Zml4IHJjIHNjcmlwdAotX1JFUVVJUkU9CUxPR0lOIGNs
 ZWFudmFyCitfUkVRVUlSRT0JCUxPR0lOIGNsZWFudmFyCiAKIC5pZiBkZWZpbmVkKFdJVEhf
 UENSRSkKIExJQl9ERVBFTkRTKz0JCXBjcmUuMDoke1BPUlRTRElSfS9kZXZlbC9wY3JlCkBA
 IC0xMTEsNiArMTIzLDcgQEAKIC5pZiBkZWZpbmVkKFdJVEhfRE9WRUNPVCkKIFJVTl9ERVBF
 TkRTKz0JCWRvdmVjb3Q6JHtQT1JUU0RJUn0vbWFpbC9kb3ZlY290CiBQT1NURklYX0NDQVJH
 Uys9CS1EVVNFX1NBU0xfQVVUSCAtRERFRl9TRVJWRVJfU0FTTF9UWVBFPVxcXCJkb3ZlY290
 XFxcIgorX1JFUVVJUkUrPQkJZG92ZWNvdAogLmVuZGlmCiAKIC5pZiBkZWZpbmVkKFdJVEhf
 U0FTTEtSQikKQEAgLTE4MywyOCArMTk2LDQ5IEBACiAuZW5kaWYKIAogLmlmIGRlZmluZWQo
 V0lUSF9WREEpCi1JR05PUkU9CQkJd2FpdCBmb3IgYSBuZXcgVkRBIHBhdGNoIHRoYXQgd29y
 a3Mgd2l0aCAyLjYuMAorSUdOT1JFPQkJCXdhaXQgZm9yIGEgbmV3IFZEQSBwYXRjaCB0aGF0
 IHdvcmtzIHdpdGggJHtQT1JUVkVSU0lPTn0KIFBBVENIX1NJVEVTKz0JCWh0dHA6Ly92ZGEu
 c291cmNlZm9yZ2UubmV0L1ZEQS8KLVBBVENIRklMRVMrPQkJcG9zdGZpeC0yLjUuNi12ZGEt
 bmcucGF0Y2guZ3oKK1BBVENIRklMRVMrPQkJcG9zdGZpeC0ke1BPUlRWRVJTSU9OfS12ZGEt
 bmcucGF0Y2guZ3oKIFBBVENIX0RJU1RfU1RSSVA9CS1wMQorUExJU1RfU1VCKz0JVkRBPSIi
 CisuZWxzZQorUExJU1RfU1VCKz0JVkRBPSJAY29tbWVudCAiCiAuZW5kaWYKIAogLmlmIGRl
 ZmluZWQoV0lUSF9URVNUKQogQklOVEVTVD0JcW1xcC1zaW5rIHFtcXAtc291cmNlIHNtdHAt
 c2luayBzbXRwLXNvdXJjZQogTUFOVEVTVD0JcW1xcC1zaW5rLjEgcW1xcC1zb3VyY2UuMSBz
 bXRwLXNpbmsuMSBzbXRwLXNvdXJjZS4xCiBNQU4xKz0JCSR7TUFOVEVTVH0KLVBMSVNUX1NV
 Qis9CVNVQl9URVNUPSIiCitQTElTVF9TVUIrPQlURVNUPSIiCiAuZWxzZQotUExJU1RfU1VC
 Kz0JU1VCX1RFU1Q9IkBjb21tZW50ICIKK1BMSVNUX1NVQis9CVRFU1Q9IkBjb21tZW50ICIK
 IC5lbmRpZgogCiAuaWYgZGVmaW5lZChOT1BPUlRET0NTKQogUkVBRE1FRElSPW5vCiAuZWxz
 ZQotUkVBRE1FRElSPSR7UFJFRklYfS9zaGFyZS9kb2MvcG9zdGZpeAorUkVBRE1FRElSPSR7
 RE9DU0RJUn0KIC5lbmRpZgogCi1TVUJfTElTVCs9CVJFUVVJUkU9IiR7X1JFUVVJUkV9Igor
 U1VCX0xJU1QrPQlSRVFVSVJFPSIke19SRVFVSVJFfSIgUkVBRE1FRElSPSIke1JFQURNRURJ
 Un0iCitTVUJfRklMRVMrPQlwa2ctaW5zdGFsbCBwa2ctbWVzc2FnZQorCisjIHNlZCBzY3Jp
 cHQgZm9yIGZpbGVzIGluICR7V1JLU1JDfS9SRUFETUVfRklMRVMgJHtXUktTUkN9L2NvbmYg
 JHtXUktTUkN9L21hbgorUkVJTlBMQUNFPQlzIV5QQVRIPS4qIVBBVEg9L2Jpbjovc2Jpbjov
 dXNyL2JpbjovdXNyL3NiaW46JHtQUkVGSVh9L2Jpbjoke1BSRUZJWH0vc2JpbiE7XAorCQlz
 IShfZGlyZWN0b3J5ID0gKS91c3IvIVwxJHtQUkVGSVh9LyFnO1wKKwkJcyFeKGRhdGFfZGly
 ZWN0b3J5ID0gL3Zhci8pbGliLyFcMWRiLyFnO1wKKwkJcyFeXCMobXluZXR3b3Jrc19zdHls
 ZSA9IGhvc3QpIVwxIWc7XAorCQlzIV4oc2VuZG1haWxfcGF0aCA9KSFcMSAke1BSRUZJWH0v
 c2Jpbi9zZW5kbWFpbCFnO1wKKwkJcyFeKG5ld2FsaWFzZXNfcGF0aCA9KSFcMSAke1BSRUZJ
 WH0vYmluL25ld2FsaWFzZXMhZztcCisJCXMhXihtYWlscV9wYXRoID0pIVwxICR7UFJFRklY
 fS9iaW4vbWFpbHEhZztcCisJCXMhXihzZXRnaWRfZ3JvdXAgPSkhXDEgbWFpbGRyb3AhZztc
 CisJCXMhXihtYW5wYWdlX2RpcmVjdG9yeSA9KSFcMSAke1BSRUZJWH0vbWFuIWc7XAorCQlz
 IV4oc2FtcGxlX2RpcmVjdG9yeSA9KSFcMSAke0VYQU1QTEVTRElSfSFnO1wKKwkJcyFeKCho
 dG1sfHJlYWRtZSlfZGlyZWN0b3J5ID0pIVwxICR7UkVBRE1FRElSfSFnO1wKKwkJXCFeXCNh
 bGlhc19kYXRhYmFzZSA9IGRibTovZXRjL21haWwvYWxpYXNlcyQkIWQ7XAorCQlzIS9ldGMv
 YWxpYXNlcyEvZXRjL21haWwvYWxpYXNlcyFnO1wKKwkJcyEoOnw9ICkvZXRjL3Bvc3RmaXgh
 XDEkJGNvbmZpZ19kaXJlY3RvcnkhZztcCisJCXMhL2V0Yy9wb3N0Zml4ISR7RVRDRElSfSFn
 OwogCiBwcmUtcGF0Y2g6CiAuaWYgZGVmaW5lZChQT1NURklYX09QVElPTlMpCkBAIC0yMzMs
 MjAgKzI2NywyMyBAQAogCWZpCiAuZW5kaWYKIAotCUAke0VDSE99ICI8SFRNTD48Qk9EWT5T
 ZWUgPEEgSFJFRj0iaGVhZGVyX2NoZWNrcy41Lmh0bWwiPmhlYWRlcl9jaGVja3MuNS5odG1s
 PC9BPjwvQk9EWT48L0hUTUw+IiBcCisJQCR7RUNIT30gJzxIVE1MPjxCT0RZPlNlZSA8QSBI
 UkVGPSJoZWFkZXJfY2hlY2tzLjUuaHRtbCI+aGVhZGVyX2NoZWNrcy41Lmh0bWw8L0E+PC9C
 T0RZPjwvSFRNTD4nIFwKIAkJPiAke1dSS1NSQ30vaHRtbC9ib2R5X2NoZWNrcy41Lmh0bWwK
 LQlAJHtGSU5EfSAtUCAke1dSS1NSQ30vbWFuIC10eXBlIGYgfCAke1hBUkdTfSBcCi0JCSR7
 UkVJTlBMQUNFX0NNRH0gLWUgInN8L2V0Yy9wb3N0Zml4fCR7UFJFRklYfS9ldGMvcG9zdGZp
 eHxnIgotCUAke0ZJTkR9IC1QICR7V1JLU1JDfS9SRUFETUVfRklMRVMgLXR5cGUgZiB8ICR7
 WEFSR1N9IFwKLQkJJHtSRUlOUExBQ0VfQ01EfSAtZSAic3wvZXRjL3Bvc3RmaXh8JHtQUkVG
 SVh9L2V0Yy9wb3N0Zml4fGciCi0JQCR7RklORH0gLVAgJHtXUktTUkN9L2NvbmYgLXR5cGUg
 ZiB8ICR7WEFSR1N9IFwKLQkJJHtSRUlOUExBQ0VfQ01EfSAtZSAic3wvZXRjL3Bvc3RmaXh8
 JHtQUkVGSVh9L2V0Yy9wb3N0Zml4fGciCisJQCR7UkVJTlBMQUNFX0NNRH0gLUUgLWUgJ3Mh
 W1s6PDpdXXBlcmxbWzo+Ol1dISR7UEVSTH0hJyBcCisJCSR7V1JLU1JDfS9zcmMvYm91bmNl
 L01ha2VmaWxlLmluCisJQCR7UkVJTlBMQUNFX0NNRH0gLUUgLWUgJ3MhXigjZGVmaW5lIERF
 Rl9TR0lEX0dST1VQW14iXSspInBvc3Rkcm9wIiQkIVwxIm1haWxkcm9wIiEnIFwKKwkJJHtX
 UktTUkN9L3NyYy9nbG9iYWwvbWFpbF9wYXJhbXMuaAorCUAke0ZJTkR9IC1YICR7V1JLU1JD
 fS9SRUFETUVfRklMRVMgJHtXUktTUkN9L2NvbmYgJHtXUktTUkN9L21hbiBcCisJCS10eXBl
 IGYgLWEgISBcKCAtbmFtZSBJTlNUQUxMIC1vIC1uYW1lIGFsaWFzZXMgXCkgfCAke1hBUkdT
 fSBcCisJCSR7UkVJTlBMQUNFX0NNRH0gLUUgLWUgJyR7UkVJTlBMQUNFfScKIAogcG9zdC1w
 YXRjaDoKLSMgQWxsIGZpbGVzIG1vZGlmaWVkIHdpdGggJHtGSUxFU0RJUn0vcGF0Y2gtKiB0
 byB1c2UgISFQUkVGSVghISBuZWVkIFJFSU5QTEFDRS4gUHV0IGJlbG93LgotCUAke1JFSU5Q
 TEFDRV9DTUR9IC1lICJzLCEhUFJFRklYISEsJHtQUkVGSVh9LGciIFwKLQkJJHtXUktTUkN9
 L2NvbmYvbWFpbi5jZiAke1dSS1NSQ30vc3JjL2dsb2JhbC9tYWlsX3BhcmFtcy5oCi0JQCR7
 UkVJTlBMQUNFX0NNRH0gLWUgInN8cGVybHwke1BFUkx9fCIgJHtXUktTUkN9L3NyYy9ib3Vu
 Y2UvTWFrZWZpbGUuaW4KKy5pZiBkZWZpbmVkKFdJVEhfVkRBKQorCUAke0VDSE99ICckJHJl
 YWRtZV9kaXJlY3RvcnkvVkRBX1JFQURNRTpmOnJvb3Q6LTo2NDQnIFwKKwkJPj4gJHtXUktT
 UkN9L2NvbmYvcG9zdGZpeC1maWxlcworCUAke1JFSU5QTEFDRV9DTUR9IC1FIC1lICcke1JF
 SU5QTEFDRX0nIFwKKwkJJHtXUktTUkN9L1JFQURNRV9GSUxFUy9WREFfUkVBRE1FCisuZW5k
 aWYKIAogZG8tY29uZmlndXJlOgogCShjZCAke1dSS1NSQ30gJiYgJHtNQUtFfSAtZiBNYWtl
 ZmlsZS5pbml0IG1ha2VmaWxlcyAke01BS0VGSUxFRkxBR1N9IFwKQEAgLTI1Nyw0OSArMjk0
 LDMzIEBACiAJQCR7U0VURU5WfSAke1NDUklQVFNfRU5WfSBQS0dfUFJFRklYPSIke1BSRUZJ
 WH0iICR7U0h9ICR7UEtHSU5TVEFMTH0gJHtQS0dOQU1FfSBQUkUtSU5TVEFMTAogCiBkby1p
 bnN0YWxsOgotCWNkICR7V1JLU1JDfTsgJHtTSH0gcG9zdGZpeC1pbnN0YWxsIC1ub24taW50
 ZXJhY3RpdmUgaW5zdGFsbF9yb290PS8gdGVtcGRpcj0vdG1wIFwKLQkJY29uZmlnX2RpcmVj
 dG9yeT0ke1BSRUZJWH0vZXRjL3Bvc3RmaXggXAotCQlkYXRhX2RpcmVjdG9yeT0vdmFyL2Ri
 L3Bvc3RmaXggXAotCQlkYWVtb25fZGlyZWN0b3J5PSR7UFJFRklYfS9saWJleGVjL3Bvc3Rm
 aXggXAotCQljb21tYW5kX2RpcmVjdG9yeT0ke1BSRUZJWH0vc2JpbiBcCi0JCXF1ZXVlX2Rp
 cmVjdG9yeT0vdmFyL3Nwb29sL3Bvc3RmaXggXAotCQlzZW5kbWFpbF9wYXRoPSR7UFJFRklY
 fS9zYmluL3NlbmRtYWlsIFwKLQkJbmV3YWxpYXNlc19wYXRoPSR7UFJFRklYfS9iaW4vbmV3
 YWxpYXNlcyBcCi0JCW1haWxxX3BhdGg9JHtQUkVGSVh9L2Jpbi9tYWlscSBcCi0JCW1haWxf
 b3duZXI9cG9zdGZpeCBcCi0JCXNldGdpZF9ncm91cD1tYWlsZHJvcCBcCi0JCW1hbnBhZ2Vf
 ZGlyZWN0b3J5PSR7TUFOUFJFRklYfS9tYW4gXAotCQlzYW1wbGVfZGlyZWN0b3J5PSR7UFJF
 RklYfS9ldGMvcG9zdGZpeCBcCi0JCXJlYWRtZV9kaXJlY3Rvcnk9JHtSRUFETUVESVJ9Ci0K
 KwlAY2QgJHtXUktTUkN9ICYmICR7U0h9IHBvc3RmaXgtaW5zdGFsbCAtbm9uLWludGVyYWN0
 aXZlIGluc3RhbGxfcm9vdD0vIHRlbXBkaXI9L3RtcAogCSR7SU5TVEFMTF9TQ1JJUFR9ICR7
 V1JLU1JDfS9hdXhpbGlhcnkvcm1haWwvcm1haWwgJHtQUkVGSVh9L2Jpbi9ybWFpbAotCiAJ
 JHtJTlNUQUxMX1NDUklQVH0gJHtXUktTUkN9L2F1eGlsaWFyeS9xc2hhcGUvcXNoYXBlLnBs
 ICR7UFJFRklYfS9iaW4vcXNoYXBlCiAJJHtJTlNUQUxMX01BTn0gJHtXUktTUkN9L21hbi9t
 YW4xL3FzaGFwZS4xICR7TUFOUFJFRklYfS9tYW4vbWFuMQotCiAuZm9yIGYgaW4gJHtCSU5U
 RVNUfQogCSR7SU5TVEFMTF9QUk9HUkFNfSAke1dSS1NSQ30vYmluLyR7Zn0gJHtQUkVGSVh9
 L2JpbgogLmVuZGZvcgogLmZvciBmIGluICR7TUFOVEVTVH0KIAkke0lOU1RBTExfTUFOfSAk
 e1dSS1NSQ30vbWFuL21hbjEvJHtmfSAke01BTlBSRUZJWH0vbWFuL21hbjEKIC5lbmRmb3IK
 LQotCUAke01LRElSfSAke1BSRUZJWH0vZXRjL3Bvc3RmaXgvZGlzdAotLmZvciBmIGluICR7
 Q09ORjF9Ci0JJHtJTlNUQUxMX0RBVEF9ICR7V1JLU1JDfS9jb25mLyR7Zn0gJHtQUkVGSVh9
 L2V0Yy9wb3N0Zml4L2Rpc3QKLS5lbmRmb3IKLQogLmlmICFkZWZpbmVkKE5PUE9SVERPQ1Mp
 Ci0JJHtJTlNUQUxMfSAtZCAtbyAke0RPQ09XTn0gLWcgJHtET0NHUlB9IC1tIDU1NSAke0RP
 Q1NESVJ9CisJJHtJTlNUQUxMfSAtbyAke0RPQ09XTn0gLWcgJHtET0NHUlB9IC1tIDU1NSAt
 ZCAke0RPQ1NESVJ9CiAJQGNkICR7V1JLU1JDfS9odG1sICYmICR7SU5TVEFMTF9EQVRBfSAq
 Lmh0bWwgKi5qcGcgKi5wbmcgJHtET0NTRElSfSAmJiBcCiAJCSR7RUNIT19NU0d9ICJJbnN0
 YWxsZWQgSFRNTCBkb2N1bWVudGF0aW9uIGluICR7RE9DU0RJUn0iCiAuZW5kaWYKKy5pZiAh
 ZGVmaW5lZChOT1BPUlRFWEFNUExFUykKKwkke0lOU1RBTEx9IC1vICR7U0hBUkVPV059IC1n
 ICR7U0hBUkVHUlB9IC1tIDU1NSAtZCAke0VYQU1QTEVTRElSfQorLmZvciBmIGluICR7UE9S
 VEVYQU1QTEVTfQorCSR7SU5TVEFMTF9EQVRBfSAke1dSS1NSQ30vY29uZi8ke2Z9ICR7RVhB
 TVBMRVNESVJ9CisuZW5kZm9yCisJQCR7RUNIT19NU0d9ICJJbnN0YWxsZWQgY29uZmlndXJh
 dGlvbiBleGFtcGxlcyBpbiAke0VYQU1QTEVTRElSfSIKKy5lbmRpZgogCiBwb3N0LWluc3Rh
 bGw6CiAJQCR7U0VURU5WfSAke1NDUklQVFNfRU5WfSBQS0dfUFJFRklYPSIke1BSRUZJWH0i
 ICR7U0h9ICR7UEtHSU5TVEFMTH0gJHtQS0dOQU1FfSBQT1NULUlOU1RBTEwKLSMgRml4IGNv
 bXByZXNzZWQgbWFuIHBhZ2VzCi0JQCR7UkVJTlBMQUNFX0NNRH0gLUUgLWUgInN8KG1hblsx
 NThdLy4qLlsxNThdKTp8XDEuZ3o6fGciICR7UFJFRklYfS9saWJleGVjL3Bvc3RmaXgvcG9z
 dGZpeC1maWxlcwotCUAke1JNfSAtZiAke1BSRUZJWH0vbGliZXhlYy9wb3N0Zml4L3Bvc3Rm
 aXgtZmlsZXMuYmFrCisJIyBGaXggY29tcHJlc3NlZCBtYW4gcGFnZXMKKwlAJHtSRUlOUExB
 Q0VfQ01EfSAtaSAnJyAtRSAtZSAic3wobWFuWzE1OF0vLiouWzE1OF0pOnxcMS5nejp8ZyIg
 JHtQUkVGSVh9L2xpYmV4ZWMvcG9zdGZpeC9wb3N0Zml4LWZpbGVzCiAJQCR7Q0FUfSAke1BL
 R01FU1NBR0V9CiAKIC5pbmNsdWRlIDxic2QucG9ydC5wb3N0Lm1rPgpkaWZmIC11IC1yIC1O
 IHBvc3RmaXgtMi42LjAvZGlzdGluZm8gcG9zdGZpeC9kaXN0aW5mbwotLS0gcG9zdGZpeC0y
 LjYuMC9kaXN0aW5mbwkyMDA5LTA1LTE5IDAzOjQyOjAwLjAwMDAwMDAwMCAtMDQwMAorKysg
 cG9zdGZpeC9kaXN0aW5mbwkyMDA5LTA1LTIwIDExOjA3OjU4LjY1Mjg3ODQ4NCAtMDQwMApA
 QCAtMSwzICsxLDMgQEAKLU1ENSAocG9zdGZpeC9wb3N0Zml4LTIuNi4wLnRhci5neikgPSAz
 Njc0NjE4ZGFiMjczNGY0OTE4MmI4Y2JhMmYzMTg2ZQotU0hBMjU2IChwb3N0Zml4L3Bvc3Rm
 aXgtMi42LjAudGFyLmd6KSA9IDhjMzIzZDIwMGZlYmE3MjEyMWMzMDJmMTUyNDlkNTZjNzUy
 MWFkZTE2Y2Y1MTY2ZmFkZjE1OGU2ODE4ODgzYmQKLVNJWkUgKHBvc3RmaXgvcG9zdGZpeC0y
 LjYuMC50YXIuZ3opID0gMzMyNDAxNAorTUQ1IChwb3N0Zml4L3Bvc3RmaXgtMi42LjEudGFy
 Lmd6KSA9IDczN2JiYzI0NWRhOWM3MmMxNzQ4OTMzOTdmNzBhZTg2CitTSEEyNTYgKHBvc3Rm
 aXgvcG9zdGZpeC0yLjYuMS50YXIuZ3opID0gY2NhZDdmYjg1NWUzMWM1N2YzNTUxMjQ0Yjc2
 YmU1OTA2ZmNkY2RlMDlkNWE2Y2NkMTQ0YWUxNDRlMWRmMjAzYworU0laRSAocG9zdGZpeC9w
 b3N0Zml4LTIuNi4xLnRhci5neikgPSAzMzI0MTk0CmRpZmYgLXUgLXIgLU4gcG9zdGZpeC0y
 LjYuMC9maWxlcy9wYXRjaC1jb25mOjptYWluLmNmIHBvc3RmaXgvZmlsZXMvcGF0Y2gtY29u
 Zjo6bWFpbi5jZgotLS0gcG9zdGZpeC0yLjYuMC9maWxlcy9wYXRjaC1jb25mOjptYWluLmNm
 CTIwMDgtMDItMjkgMjA6NDQ6MzAuMDAwMDAwMDAwIC0wNTAwCisrKyBwb3N0Zml4L2ZpbGVz
 L3BhdGNoLWNvbmY6Om1haW4uY2YJMTk2OS0xMi0zMSAxOTowMDowMC4wMDAwMDAwMDAgLTA1
 MDAKQEAgLTEsODAgKzAsMCBAQAotLS0tIGNvbmYvbWFpbi5jZi5vcmlnCTIwMDctMTItMTgg
 MTE6NTA6MjUuMDAwMDAwMDAwIC0wMjAwCi0rKysgY29uZi9tYWluLmNmCTIwMDgtMDItMjkg
 MjI6MzU6MTIuMDAwMDAwMDAwIC0wMzAwCi1AQCAtMzMsMTkgKzMzLDE5IEBACi0gIyBUaGUg
 Y29tbWFuZF9kaXJlY3RvcnkgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgbG9jYXRpb24gb2Yg
 YWxsCi0gIyBwb3N0WFhYIGNvbW1hbmRzLgotICMKLS1jb21tYW5kX2RpcmVjdG9yeSA9IC91
 c3Ivc2JpbgotK2NvbW1hbmRfZGlyZWN0b3J5ID0gISFQUkVGSVghIS9zYmluCi0gCi0gIyBU
 aGUgZGFlbW9uX2RpcmVjdG9yeSBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBsb2NhdGlvbiBv
 ZiBhbGwgUG9zdGZpeAotICMgZGFlbW9uIHByb2dyYW1zIChpLmUuIHByb2dyYW1zIGxpc3Rl
 ZCBpbiB0aGUgbWFzdGVyLmNmIGZpbGUpLiBUaGlzCi0gIyBkaXJlY3RvcnkgbXVzdCBiZSBv
 d25lZCBieSByb290LgotICMKLS1kYWVtb25fZGlyZWN0b3J5ID0gL3Vzci9saWJleGVjL3Bv
 c3RmaXgKLStkYWVtb25fZGlyZWN0b3J5ID0gISFQUkVGSVghIS9saWJleGVjL3Bvc3RmaXgK
 LSAKLSAjIFRoZSBkYXRhX2RpcmVjdG9yeSBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBsb2Nh
 dGlvbiBvZiBQb3N0Zml4LXdyaXRhYmxlCi0gIyBkYXRhIGZpbGVzIChjYWNoZXMsIHJhbmRv
 bSBudW1iZXJzKS4gVGhpcyBkaXJlY3RvcnkgbXVzdCBiZSBvd25lZAotICMgYnkgdGhlIG1h
 aWxfb3duZXIgYWNjb3VudCAoc2VlIGJlbG93KS4KLSAjCi0tZGF0YV9kaXJlY3RvcnkgPSAv
 dmFyL2xpYi9wb3N0Zml4Ci0rZGF0YV9kaXJlY3RvcnkgPSAvdmFyL2RiL3Bvc3RmaXgKLSAK
 LSAjIFFVRVVFIEFORCBQUk9DRVNTIE9XTkVSU0hJUAotICMKLUBAIC0yNDQsNyArMjQ0LDcg
 QEAKLSAjIAotICNteW5ldHdvcmtzX3N0eWxlID0gY2xhc3MKLSAjbXluZXR3b3Jrc19zdHls
 ZSA9IHN1Ym5ldAotLSNteW5ldHdvcmtzX3N0eWxlID0gaG9zdAotK215bmV0d29ya3Nfc3R5
 bGUgPSBob3N0Ci0gCi0gIyBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHNwZWNpZnkgdGhlIG15
 bmV0d29ya3MgbGlzdCBieSBoYW5kLCBpbgotICMgd2hpY2ggY2FzZSBQb3N0Zml4IGlnbm9y
 ZXMgdGhlIG15bmV0d29ya3Nfc3R5bGUgc2V0dGluZy4KLUBAIC02MTUsMzcgKzYxNSwzNyBA
 QAotICMgc2VuZG1haWxfcGF0aDogVGhlIGZ1bGwgcGF0aG5hbWUgb2YgdGhlIFBvc3RmaXgg
 c2VuZG1haWwgY29tbWFuZC4KLSAjIFRoaXMgaXMgdGhlIFNlbmRtYWlsLWNvbXBhdGlibGUg
 bWFpbCBwb3N0aW5nIGludGVyZmFjZS4KLSAjIAotLXNlbmRtYWlsX3BhdGggPQotK3NlbmRt
 YWlsX3BhdGggPSAhIVBSRUZJWCEhL3NiaW4vc2VuZG1haWwKLSAKLSAjIG5ld2FsaWFzZXNf
 cGF0aDogVGhlIGZ1bGwgcGF0aG5hbWUgb2YgdGhlIFBvc3RmaXggbmV3YWxpYXNlcyBjb21t
 YW5kLgotICMgVGhpcyBpcyB0aGUgU2VuZG1haWwtY29tcGF0aWJsZSBjb21tYW5kIHRvIGJ1
 aWxkIGFsaWFzIGRhdGFiYXNlcy4KLSAjCi0tbmV3YWxpYXNlc19wYXRoID0KLStuZXdhbGlh
 c2VzX3BhdGggPSAhIVBSRUZJWCEhL2Jpbi9uZXdhbGlhc2VzCi0gCi0gIyBtYWlscV9wYXRo
 OiBUaGUgZnVsbCBwYXRobmFtZSBvZiB0aGUgUG9zdGZpeCBtYWlscSBjb21tYW5kLiAgVGhp
 cwotICMgaXMgdGhlIFNlbmRtYWlsLWNvbXBhdGlibGUgbWFpbCBxdWV1ZSBsaXN0aW5nIGNv
 bW1hbmQuCi0gIyAKLS1tYWlscV9wYXRoID0KLSttYWlscV9wYXRoID0gISFQUkVGSVghIS9i
 aW4vbWFpbHEKLSAKLSAjIHNldGdpZF9ncm91cDogVGhlIGdyb3VwIGZvciBtYWlsIHN1Ym1p
 c3Npb24gYW5kIHF1ZXVlIG1hbmFnZW1lbnQKLSAjIGNvbW1hbmRzLiAgVGhpcyBtdXN0IGJl
 IGEgZ3JvdXAgbmFtZSB3aXRoIGEgbnVtZXJpY2FsIGdyb3VwIElEIHRoYXQKLSAjIGlzIG5v
 dCBzaGFyZWQgd2l0aCBvdGhlciBhY2NvdW50cywgbm90IGV2ZW4gd2l0aCB0aGUgUG9zdGZp
 eCBhY2NvdW50LgotICMKLS1zZXRnaWRfZ3JvdXAgPQotK3NldGdpZF9ncm91cCA9IG1haWxk
 cm9wCi0gCi0gIyBodG1sX2RpcmVjdG9yeTogVGhlIGxvY2F0aW9uIG9mIHRoZSBQb3N0Zml4
 IEhUTUwgZG9jdW1lbnRhdGlvbi4KLSAjCi0taHRtbF9kaXJlY3RvcnkgPQotK2h0bWxfZGly
 ZWN0b3J5ID0gbm8KLSAKLSAjIG1hbnBhZ2VfZGlyZWN0b3J5OiBUaGUgbG9jYXRpb24gb2Yg
 dGhlIFBvc3RmaXggb24tbGluZSBtYW51YWwgcGFnZXMuCi0gIwotLW1hbnBhZ2VfZGlyZWN0
 b3J5ID0KLSttYW5wYWdlX2RpcmVjdG9yeSA9ICEhUFJFRklYISEvbWFuCi0gCi0gIyBzYW1w
 bGVfZGlyZWN0b3J5OiBUaGUgbG9jYXRpb24gb2YgdGhlIFBvc3RmaXggc2FtcGxlIGNvbmZp
 Z3VyYXRpb24gZmlsZXMuCi0gIyBUaGlzIHBhcmFtZXRlciBpcyBvYnNvbGV0ZSBhcyBvZiBQ
 b3N0Zml4IDIuMS4KLSAjCi0tc2FtcGxlX2RpcmVjdG9yeSA9Ci0rc2FtcGxlX2RpcmVjdG9y
 eSA9ICEhUFJFRklYISEvZXRjL3Bvc3RmaXgKLSAKLSAjIHJlYWRtZV9kaXJlY3Rvcnk6IFRo
 ZSBsb2NhdGlvbiBvZiB0aGUgUG9zdGZpeCBSRUFETUUgZmlsZXMuCi0gIwotLXJlYWRtZV9k
 aXJlY3RvcnkgPQotK3JlYWRtZV9kaXJlY3RvcnkgPSBubwpkaWZmIC11IC1yIC1OIHBvc3Rm
 aXgtMi42LjAvZmlsZXMvcGF0Y2gtY29uZjo6cG9zdC1pbnN0YWxsIHBvc3RmaXgvZmlsZXMv
 cGF0Y2gtY29uZjo6cG9zdC1pbnN0YWxsCi0tLSBwb3N0Zml4LTIuNi4wL2ZpbGVzL3BhdGNo
 LWNvbmY6OnBvc3QtaW5zdGFsbAkyMDA1LTAzLTE5IDE4OjE3OjU0LjAwMDAwMDAwMCAtMDUw
 MAorKysgcG9zdGZpeC9maWxlcy9wYXRjaC1jb25mOjpwb3N0LWluc3RhbGwJMTk2OS0xMi0z
 MSAxOTowMDowMC4wMDAwMDAwMDAgLTA1MDAKQEAgLTEsMTEgKzAsMCBAQAotLS0tIGNvbmYv
 cG9zdC1pbnN0YWxsLm9yaWcJVGh1IEZlYiAyNCAwODowNjowOCAyMDA1Ci0rKysgY29uZi9w
 b3N0LWluc3RhbGwJU2F0IE1hciAgNSAxMTo1Mzo0MiAyMDA1Ci1AQCAtMTg1LDcgKzE4NSw3
 IEBACi0gCi0gdW1hc2sgMDIyCi0gCi0tUEFUSD0vYmluOi91c3IvYmluOi91c3Ivc2Jpbjov
 dXNyL2V0Yzovc2JpbjovZXRjOi91c3IvY29udHJpYi9iaW46L3Vzci9nbnUvYmluOi91c3Iv
 dWNiOi91c3IvYnNkCi0rUEFUSD0vYmluOi91c3IvYmluOi91c3Ivc2Jpbjovc2JpbjovdXNy
 L2xvY2FsL2JpbjovdXNyL2xvY2FsL3NiaW4KLSBTSEVMTD0vYmluL3NoCi0gSUZTPSIgCQot
 ICIKZGlmZiAtdSAtciAtTiBwb3N0Zml4LTIuNi4wL2ZpbGVzL3BhdGNoLW1ha2VkZWZzIHBv
 c3RmaXgvZmlsZXMvcGF0Y2gtbWFrZWRlZnMKLS0tIHBvc3RmaXgtMi42LjAvZmlsZXMvcGF0
 Y2gtbWFrZWRlZnMJMjAwNy0xMC0yMiAxNDozOTozOS4wMDAwMDAwMDAgLTA0MDAKKysrIHBv
 c3RmaXgvZmlsZXMvcGF0Y2gtbWFrZWRlZnMJMjAwOS0wNS0xMSAxNzoyNjo0Ni4wMDAwMDAw
 MDAgLTA0MDAKQEAgLTEsMTIgKzEsMTAgQEAKLS0tLSBtYWtlZGVmcy5vcmlnCTIwMDctMDMt
 MjQgMTA6MzA6MTguMDAwMDAwMDAwIC0wMzAwCi0rKysgbWFrZWRlZnMJMjAwNy0xMC0yMiAx
 NjoxODo0OC4wMDAwMDAwMDAgLTAyMDAKLUBAIC0xMzAsNiArMTMwLDEwIEBACistLS0gbWFr
 ZWRlZnMub3JpZwkyMDA5LTA1LTExIDE3OjI2OjQ2LjAwMDAwMDAwMCAtMDQwMAorKysrIG1h
 a2VkZWZzCTIwMDktMDUtMTEgMTc6MjY6NDYuMDAwMDAwMDAwIC0wNDAwCitAQCAtMTQ0LDYg
 KzE0NCw4IEBACiAgCQk7OwotICAgRnJlZUJTRC42KikJU1lTVFlQRT1GUkVFQlNENgorICAg
 RnJlZUJTRC43KikJU1lTVFlQRT1GUkVFQlNENwogIAkJOzsKLSsgIEZyZWVCU0QuNyopCVNZ
 U1RZUEU9RlJFRUJTRDYKLSsJCTs7Ci0rICBGcmVlQlNELjgqKQlTWVNUWVBFPUZSRUVCU0Q2
 CisrICBGcmVlQlNELjgqKQlTWVNUWVBFPUZSRUVCU0Q3CiArCQk7OwogICAgT3BlbkJTRC4y
 KikJU1lTVFlQRT1PUEVOQlNEMgogIAkJOzsKZGlmZiAtdSAtciAtTiBwb3N0Zml4LTIuNi4w
 L2ZpbGVzL3BhdGNoLXNyYzo6Z2xvYmFsOjptYWlsX3BhcmFtcy5oIHBvc3RmaXgvZmlsZXMv
 cGF0Y2gtc3JjOjpnbG9iYWw6Om1haWxfcGFyYW1zLmgKLS0tIHBvc3RmaXgtMi42LjAvZmls
 ZXMvcGF0Y2gtc3JjOjpnbG9iYWw6Om1haWxfcGFyYW1zLmgJMjAwOC0wNy0xNCAyMjo1NDoz
 Mi4wMDAwMDAwMDAgLTA0MDAKKysrIHBvc3RmaXgvZmlsZXMvcGF0Y2gtc3JjOjpnbG9iYWw6
 Om1haWxfcGFyYW1zLmgJMTk2OS0xMi0zMSAxOTowMDowMC4wMDAwMDAwMDAgLTA1MDAKQEAg
 LTEsMzggKzAsMCBAQAotLS0tIHNyYy9nbG9iYWwvbWFpbF9wYXJhbXMuaC5vcmlnCU1vbiBK
 dW4gMzAgMTg6NTc6NDggMjAwOAotKysrIHNyYy9nbG9iYWwvbWFpbF9wYXJhbXMuaAlNb24g
 SnVuIDMwIDE5OjAwOjA1IDIwMDgKLUBAIC02Nyw3ICs2Nyw3IEBACi0gZXh0ZXJuIGdpZF90
 IHZhcl9vd25lcl9naWQ7Ci0gCi0gI2RlZmluZSBWQVJfU0dJRF9HUk9VUAkJInNldGdpZF9n
 cm91cCIKLS0jZGVmaW5lIERFRl9TR0lEX0dST1VQCQkicG9zdGRyb3AiCi0rI2RlZmluZSBE
 RUZfU0dJRF9HUk9VUAkJIm1haWxkcm9wIgotIGV4dGVybiBjaGFyICp2YXJfc2dpZF9ncm91
 cDsKLSBleHRlcm4gZ2lkX3QgdmFyX3NnaWRfZ2lkOwotIAotQEAgLTI0MSw3ICsyNDEsNyBA
 QAotICAgKi8KLSAjZGVmaW5lIFZBUl9EQUVNT05fRElSCQkiZGFlbW9uX2RpcmVjdG9yeSIK
 LSAjaWZuZGVmIERFRl9EQUVNT05fRElSCi0tI2RlZmluZSBERUZfREFFTU9OX0RJUgkJIi91
 c3IvbGliZXhlYy9wb3N0Zml4IgotKyNkZWZpbmUgREVGX0RBRU1PTl9ESVIJCSIhIVBSRUZJ
 WCEhL2xpYmV4ZWMvcG9zdGZpeCIKLSAjZW5kaWYKLSBleHRlcm4gY2hhciAqdmFyX2RhZW1v
 bl9kaXI7Ci0gCi1AQCAtMjY1LDcgKzI2NSw3IEBACi0gICAqLwotICNkZWZpbmUgVkFSX0RB
 VEFfRElSCQkiZGF0YV9kaXJlY3RvcnkiCi0gI2lmbmRlZiBERUZfREFUQV9ESVIKLS0jZGVm
 aW5lIERFRl9EQVRBX0RJUgkJIi92YXIvbGliL3Bvc3RmaXgiCi0rI2RlZmluZSBERUZfREFU
 QV9ESVIJCSIvdmFyL2RiL3Bvc3RmaXgiCi0gI2VuZGlmCi0gZXh0ZXJuIGNoYXIgKnZhcl9k
 YXRhX2RpcjsKLSAKLUBAIC0yNzksNyArMjc5LDcgQEAKLSAgICovCi0gI2RlZmluZSBWQVJf
 Q09ORklHX0RJUgkJImNvbmZpZ19kaXJlY3RvcnkiCi0gI2lmbmRlZiBERUZfQ09ORklHX0RJ
 UgotLSNkZWZpbmUgREVGX0NPTkZJR19ESVIJCSIvZXRjL3Bvc3RmaXgiCi0rI2RlZmluZSBE
 RUZfQ09ORklHX0RJUgkJIiEhUFJFRklYISEvZXRjL3Bvc3RmaXgiCQotICNlbmRpZgotIGV4
 dGVybiBjaGFyICp2YXJfY29uZmlnX2RpcjsKLSAKZGlmZiAtdSAtciAtTiBwb3N0Zml4LTIu
 Ni4wL2ZpbGVzL3BrZy1pbnN0YWxsLmluIHBvc3RmaXgvZmlsZXMvcGtnLWluc3RhbGwuaW4K
 LS0tIHBvc3RmaXgtMi42LjAvZmlsZXMvcGtnLWluc3RhbGwuaW4JMTk2OS0xMi0zMSAxOTow
 MDowMC4wMDAwMDAwMDAgLTA1MDAKKysrIHBvc3RmaXgvZmlsZXMvcGtnLWluc3RhbGwuaW4J
 MjAwOS0wNS0yMCAxMTozODowOS45MzkzODA1OTkgLTA0MDAKQEAgLTAsMCArMSwxNTYgQEAK
 KyMhL2Jpbi9zaAorIworIwkkRnJlZUJTRDogcG9ydHMvbWFpbC9wb3N0Zml4L3BrZy1pbnN0
 YWxsLHYgMS4yNyAyMDA5LzA1LzE4IDE0OjM2OjMzIHBhdiBFeHAgJAorIworCisjIElmIHRo
 ZSBQT1NURklYX0RFRkFVTFRfTVRBIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNldCB0byBZ
 RVMsIGl0CisjIHdpbGwgbWFrZSB0aGUgcG9ydC9wYWNrYWdlIHVzZSBkZWZhdWx0cyB3aGlj
 aCBtYWtlIHBvc3RmaXggcmVwbGFjZQorIyBzZW5kbWFpbCBhcyBtdWNoIGFzIHBvc3NpYmxl
 LgorCitQUkVGSVg9JHtQS0dfUFJFRklYOj0lJVBSRUZJWCUlfQorRVRDRElSPSR7RVRDRElS
 Oj0lJUVUQ0RJUiUlfQorREFFTU9ORElSPSR7REFFTU9ORElSOj0ke1BSRUZJWH0vbGliZXhl
 Yy9wb3N0Zml4fQorUkVBRE1FRElSPSR7UkVBRE1FRElSOj0lJVJFQURNRURJUiUlfQorRVhB
 TVBMRVNESVI9JHtFWEFNUExFU0RJUjo9JSVFWEFNUExFU0RJUiUlfQorQkFUQ0g9JHtCQVRD
 SDo9bm99CitQT1NURklYX0RFRkFVTFRfTVRBPSR7UE9TVEZJWF9ERUZBVUxUX01UQTo9bm99
 CisKK2lmIFsgIiR7UE9TVEZJWF9ERUZBVUxUX01UQX0iID0gIm5vIiBdOyB0aGVuCisgICAg
 ICBERUZBVUxUX1JFUExBQ0VfTUFJTEVSQ09ORj1uCitlbHNlCisgICAgICBERUZBVUxUX1JF
 UExBQ0VfTUFJTEVSQ09ORj15CitmaQorCitpZiBbIC14IC91c3Ivc2Jpbi9ub2xvZ2luIF07
 IHRoZW4KKyAgICAgIE5PTE9HSU49L3Vzci9zYmluL25vbG9naW4KK2Vsc2UKKyAgICAgIE5P
 TE9HSU49L3NiaW4vbm9sb2dpbgorZmkKKworYXNrKCkgeworICAgICAgbG9jYWwgcXVlc3Rp
 b24gZGVmYXVsdCBhbnN3ZXIKKworICAgICAgcXVlc3Rpb249JDEKKyAgICAgIGRlZmF1bHQ9
 JDIKKyAgICAgIGlmIFsgLXogIiR7UEFDS0FHRV9CVUlMRElOR30iIC1hICIke0JBVENIfSIg
 PSAibm8iIF07IHRoZW4KKwkgICAgICByZWFkIC1wICIke3F1ZXN0aW9ufSBbJHtkZWZhdWx0
 fV0/ICIgYW5zd2VyCisgICAgICBmaQorICAgICAgaWYgWyAteiAiJHthbnN3ZXJ9IiBdOyB0
 aGVuCisJICAgICAgYW5zd2VyPSR7ZGVmYXVsdH0KKyAgICAgIGZpCisgICAgICBlY2hvICR7
 YW5zd2VyfQorfQorCit5ZXNubygpIHsKKyAgICAgIGxvY2FsIHF1ZXN0aW9uIGRlZmF1bHQg
 YW5zd2VyCisKKyAgICAgIHF1ZXN0aW9uPSQxCisgICAgICBkZWZhdWx0PSQyCisgICAgICB3
 aGlsZSA6OyBkbworCSAgICAgIGFuc3dlcj0kKGFzayAiJHtxdWVzdGlvbn0iICIke2RlZmF1
 bHR9IikKKwkgICAgICBjYXNlICIke2Fuc3dlcn0iIGluCisJCSAgICAgIFtZeV0qKQlyZXR1
 cm4gMDs7CisJCSAgICAgIFtObl0qKQlyZXR1cm4gMTs7CisJICAgICAgZXNhYworCSAgICAg
 IGVjaG8gIlBsZWFzZSBhbnN3ZXIgeWVzIG9yIG5vLiIKKyAgICAgIGRvbmUKK30KKworaWYg
 WyAiJDIiID0gIlBSRS1JTlNUQUxMIiBdOyB0aGVuCisgICAgICBVU0VSPXBvc3RmaXgKKyAg
 ICAgIFVJRD0xMjUKKyAgICAgIEdST1VQPXBvc3RmaXgKKyAgICAgIEdJRD0xMjUKKyAgICAg
 IEdST1VQMj1tYWlsZHJvcAorICAgICAgR0lEMj0xMjYKKworICAgICAgaWYgL3Vzci9zYmlu
 L3B3IGdyb3Vwc2hvdyAiJHtHUk9VUH0iIDI+L2Rldi9udWxsOyB0aGVuCisJICAgICAgZWNo
 byAiWW91IGFscmVhZHkgaGF2ZSBhIGdyb3VwIFwiJHtHUk9VUH1cIiwgc28gSSB3aWxsIHVz
 ZSBpdC4iCisgICAgICBlbHNlCisJICAgICAgaWYgL3Vzci9zYmluL3B3IGdyb3VwYWRkICR7
 R1JPVVB9IC1nICR7R0lEfTsgdGhlbgorCQkgICAgICBlY2hvICJBZGRlZCBncm91cCBcIiR7
 R1JPVVB9XCIuIgorCSAgICAgIGVsc2UKKwkJICAgICAgZWNobyAiQWRkaW5nIGdyb3VwIFwi
 JHtHUk9VUH1cIiBmYWlsZWQuLi4iCisJCSAgICAgIGVjaG8gIlBsZWFzZSBjcmVhdGUgaXQs
 IGFuZCB0cnkgYWdhaW4uIgorCQkgICAgICBleGl0IDEKKwkgICAgICBmaQorICAgICAgZmkK
 KworICAgICAgaWYgL3Vzci9zYmluL3B3IGdyb3Vwc2hvdyAiJHtHUk9VUDJ9IiAyPi9kZXYv
 bnVsbDsgdGhlbgorCSAgICAgIGVjaG8gIllvdSBhbHJlYWR5IGhhdmUgYSBncm91cCBcIiR7
 R1JPVVAyfVwiLCBzbyBJIHdpbGwgdXNlIGl0LiIKKyAgICAgIGVsc2UKKwkgICAgICBpZiAv
 dXNyL3NiaW4vcHcgZ3JvdXBhZGQgJHtHUk9VUDJ9IC1nICR7R0lEMn07IHRoZW4KKwkJICAg
 ICAgZWNobyAiQWRkZWQgZ3JvdXAgXCIke0dST1VQMn1cIi4iCisJICAgICAgZWxzZQorCQkg
 ICAgICBlY2hvICJBZGRpbmcgZ3JvdXAgXCIke0dST1VQMn1cIiBmYWlsZWQuLi4iCisJCSAg
 ICAgIGVjaG8gIlBsZWFzZSBjcmVhdGUgaXQsIGFuZCB0cnkgYWdhaW4uIgorCQkgICAgICBl
 eGl0IDEKKwkgICAgICBmaQorICAgICAgZmkKKworICAgICAgaWYgL3Vzci9zYmluL3B3IHVz
 ZXIgc2hvdyAiJHtVU0VSfSIgMj4vZGV2L251bGw7IHRoZW4KKwkgICAgICBlY2hvICJZb3Ug
 YWxyZWFkeSBoYXZlIGEgdXNlciBcIiR7VVNFUn1cIiwgc28gSSB3aWxsIHVzZSBpdC4iCisg
 ICAgICBlbHNlCisJICAgICAgaWYgL3Vzci9zYmluL3B3IHVzZXJhZGQgJHtVU0VSfSAtdSAk
 e1VJRH0gLWcgJHtHUk9VUH0gLWggLSAtZCAvdmFyL3Nwb29sL3Bvc3RmaXggLXMgJHtOT0xP
 R0lOfSAtYyAiUG9zdGZpeCBNYWlsIFN5c3RlbSI7IHRoZW4KKwkJICAgICAgZWNobyAiQWRk
 ZWQgdXNlciBcIiR7VVNFUn1cIi4iCisJICAgICAgZWxzZQorCQkgICAgICBlY2hvICJBZGRp
 bmcgdXNlciBcIiR7VVNFUn1cIiBmYWlsZWQuLi4iCisJCSAgICAgIGVjaG8gIlBsZWFzZSBj
 cmVhdGUgaXQsIGFuZCB0cnkgYWdhaW4uIgorCQkgICAgICBleGl0IDEKKwkgICAgICBmaQor
 ICAgICAgZmkKKworICAgICAgaWYgL3Vzci9zYmluL3B3IHNob3cgZ3JvdXAgbWFpbCB8IGdy
 ZXAgLXEgIiR7VVNFUn0iIDI+L2Rldi9udWxsOyB0aGVuCisJICAgICAgZWNobyAiWW91IGFs
 cmVhZHkgaGF2ZSB1c2VyIFwiJHtVU0VSfVwiIGluIGdyb3VwIFwibWFpbFwiLCBzbyBJIHdp
 bGwgdXNlIGl0LiIKKyAgICAgIGVsc2UKKwkgICAgICBlY2hvICJZb3UgbmVlZCB1c2VyIFwi
 JHtVU0VSfVwiIGFkZGVkIHRvIGdyb3VwIFwibWFpbFwiLiIKKwkgICAgICBpZiB5ZXNubyAi
 V291bGQgeW91IGxpa2UgbWUgdG8gYWRkIGl0IiB5OyB0aGVuCisJCSAgICAgIC91c3Ivc2Jp
 bi9wdyBncm91cG1vZCBtYWlsIC1tICR7VVNFUn0gfHwgZXhpdAorCQkgICAgICBlY2hvICJE
 b25lLiIKKwkgICAgICBlbHNlCisJCSAgICAgIGVjaG8gIlBsZWFzZSBjcmVhdGUgaXQsIGFu
 ZCB0cnkgYWdhaW4uIgorCQkgICAgICBleGl0IDEKKwkgICAgICBmaQorICAgICAgZmkKK2Zp
 CisKK2lmIFsgIiQyIiA9ICJQT1NULUlOU1RBTEwiIF07IHRoZW4KKyAgICAgIGlmIFsgLWQg
 JHtFWEFNUExFU0RJUn0gXTsgdGhlbgorCSAgICAgIGZvciBmaWxlIGluICR7RVhBTVBMRVNE
 SVJ9Lyo7IGRvCisJCSAgICAgIGlmIFsgISAtZiAke0VUQ0RJUn0vJHtmaWxlIyR7RVhBTVBM
 RVNESVJ9fSBdOyB0aGVuCisJCQkgICAgICBjcCAkZmlsZSAke0VUQ0RJUn0vCisJCSAgICAg
 IGZpCisJICAgICAgZG9uZQorICAgICAgZmkKKyAgICAgIC9iaW4vc2ggJHtEQUVNT05ESVJ9
 L3Bvc3QtaW5zdGFsbCB0ZW1wZGlyPS90bXAgXAorCWRhZW1vbl9kaXJlY3Rvcnk9JHtEQUVN
 T05ESVJ9IFwKKwl1cGdyYWRlLXBhY2thZ2UKK2ZpCisKK3JlcGxhY2UoKSB7CisgICAgICBs
 b2NhbCBvcmlnIHJlcGwKKworCW9yaWc9JDEKKwlyZXBsPSQyCisJaWYgWyAtZSAke29yaWd9
 IF07IHRoZW4KKwkJL2Jpbi9tdiAtZiAke29yaWd9ICR7b3JpZ30uT0ZGCisJCS9iaW4vY2ht
 b2QgMCAke29yaWd9Lk9GRgorCWZpCisJaWYgWyAtZSAke3JlcGx9IF07IHRoZW4KKwkJL2Jp
 bi9sbiAtcyAke3JlcGx9ICR7b3JpZ30KKwlmaQorfQorCitpZiBbICIkMiIgPSAiUE9TVC1J
 TlNUQUxMIiAtYSAteiAiJHtQQUNLQUdFX0JVSUxESU5HfSIgXTsgdGhlbgorCWlmIHllc25v
 ICJXb3VsZCB5b3UgbGlrZSB0byBhY3RpdmF0ZSBQb3N0Zml4IGluIC9ldGMvbWFpbC9tYWls
 ZXIuY29uZiIgJHtERUZBVUxUX1JFUExBQ0VfTUFJTEVSQ09ORn07IHRoZW4KKwkJL2Jpbi9t
 diAtZiAvZXRjL21haWwvbWFpbGVyLmNvbmYgL2V0Yy9tYWlsL21haWxlci5jb25mLm9sZAor
 CQllY2hvICIjIgkJCQkJCT4JL2V0Yy9tYWlsL21haWxlci5jb25mCisJCWVjaG8gLW4gIiMg
 RXhlY3V0ZSB0aGUgUG9zdGZpeCBzZW5kbWFpbCBwcm9ncmFtIgk+PgkvZXRjL21haWwvbWFp
 bGVyLmNvbmYKKwkJZWNobyAiLCBuYW1lZCAke1BSRUZJWH0vc2Jpbi9zZW5kbWFpbCIJCT4+
 CS9ldGMvbWFpbC9tYWlsZXIuY29uZgorCQllY2hvICIjIgkJCQkJCT4+CS9ldGMvbWFpbC9t
 YWlsZXIuY29uZgorCQllY2hvICJzZW5kbWFpbAkke1BSRUZJWH0vc2Jpbi9zZW5kbWFpbCIJ
 Pj4JL2V0Yy9tYWlsL21haWxlci5jb25mCisJCWVjaG8gInNlbmQtbWFpbAkke1BSRUZJWH0v
 c2Jpbi9zZW5kbWFpbCIJPj4JL2V0Yy9tYWlsL21haWxlci5jb25mCisJCWVjaG8gIm1haWxx
 CQkke1BSRUZJWH0vc2Jpbi9zZW5kbWFpbCIJPj4JL2V0Yy9tYWlsL21haWxlci5jb25mCisJ
 CWVjaG8gIm5ld2FsaWFzZXMJJHtQUkVGSVh9L3NiaW4vc2VuZG1haWwiCT4+CS9ldGMvbWFp
 bC9tYWlsZXIuY29uZgorCWZpCitmaQpkaWZmIC11IC1yIC1OIHBvc3RmaXgtMi42LjAvZmls
 ZXMvcGtnLW1lc3NhZ2UuaW4gcG9zdGZpeC9maWxlcy9wa2ctbWVzc2FnZS5pbgotLS0gcG9z
 dGZpeC0yLjYuMC9maWxlcy9wa2ctbWVzc2FnZS5pbgkxOTY5LTEyLTMxIDE5OjAwOjAwLjAw
 MDAwMDAwMCAtMDUwMAorKysgcG9zdGZpeC9maWxlcy9wa2ctbWVzc2FnZS5pbgkyMDA5LTA1
 LTE5IDExOjI0OjM0LjAwMDAwMDAwMCAtMDQwMApAQCAtMCwwICsxLDI1IEBACitUbyBlbmFi
 bGUgcG9zdGZpeCBzdGFydHVwIHNjcmlwdCBwbGVhc2UgYWRkIHBvc3RmaXhfZW5hYmxlPSJZ
 RVMiIGluCit5b3VyIHJjLmNvbmYKKworSWYgeW91IG5vdCBuZWVkIHNlbmRtYWlsIGFueW1v
 cmUsIHBsZWFzZSBhZGQgaW4geW91ciByYy5jb25mOgorCitzZW5kbWFpbF9lbmFibGU9Ik5P
 Igorc2VuZG1haWxfc3VibWl0X2VuYWJsZT0iTk8iCitzZW5kbWFpbF9vdXRib3VuZF9lbmFi
 bGU9Ik5PIgorc2VuZG1haWxfbXNwX3F1ZXVlX2VuYWJsZT0iTk8iCisKK0FuZCB5b3UgY2Fu
 IGRpc2FibGUgc29tZSBzZW5kbWFpbCBzcGVjaWZpYyBkYWlseSBtYWludGVuYW5jZSByb3V0
 aW5lcyBpbiB5b3VyCisvZXRjL3BlcmlvZGljLmNvbmYgZmlsZToKKworZGFpbHlfY2xlYW5f
 aG9zdHN0YXRfZW5hYmxlPSJOTyIKK2RhaWx5X3N0YXR1c19tYWlsX3JlamVjdHNfZW5hYmxl
 PSJOTyIKK2RhaWx5X3N0YXR1c19pbmNsdWRlX3N1Ym1pdF9tYWlscT0iTk8iCitkYWlseV9z
 dWJtaXRfcXVldWVydW49Ik5PIgorCitJZiB5b3UgYXJlIHVzaW5nIFNBU0wsIHlvdSBuZWVk
 IHRvIG1ha2Ugc3VyZSB0aGF0IHBvc3RmaXggaGFzIGFjY2VzcyB0byByZWFkCit0aGUgc2Fz
 bGRiIGZpbGUuICBUaGlzIGlzIGFjY29tcGxpc2hlZCBieSBhZGRpbmcgcG9zdGZpeCB0byBn
 cm91cCBtYWlsIGFuZAorbWFraW5nIHRoZSAlJVBSRUZJWCUlL2V0Yy9zYXNsZGIqIGZpbGUo
 cykgcmVhZGFibGUgYnkgZ3JvdXAgbWFpbCAodGhpcyBzaG91bGQKK2JlIHRoZSBkZWZhdWx0
 IGZvciBuZXcgaW5zdGFsbHMpLgorCitJZiB5b3UgYXJlIHVwZ3JhZGluZyBmcm9tIHBvc3Rm
 aXggdmVyc2lvbiBwcmlvciB0byAyLjAsIHBsZWFzZSBzZWUgdGhlIFJFQURNRQorZmlsZXMg
 Zm9yIHJlY29tbWVuZGVkIGNoYW5nZXMgdG8geW91ciBjb25maWd1cmF0aW9uLgpkaWZmIC11
 IC1yIC1OIHBvc3RmaXgtMi42LjAvZmlsZXMvcG9zdGZpeC5zaC5pbiBwb3N0Zml4L2ZpbGVz
 L3Bvc3RmaXguc2guaW4KLS0tIHBvc3RmaXgtMi42LjAvZmlsZXMvcG9zdGZpeC5zaC5pbgky
 MDA3LTAyLTIxIDAwOjAwOjU2LjAwMDAwMDAwMCAtMDUwMAorKysgcG9zdGZpeC9maWxlcy9w
 b3N0Zml4LnNoLmluCTIwMDktMDUtMTkgMTA6NTQ6MDEuMDAwMDAwMDAwIC0wNDAwCkBAIC0y
 NSwxMCArMjUsMTAgQEAKIAogbG9hZF9yY19jb25maWcgJG5hbWUKIAotOiAke3Bvc3RmaXhf
 ZW5hYmxlPSJOTyJ9Ci06ICR7cG9zdGZpeF9waWRmaWxlPSIvdmFyL3Nwb29sL3Bvc3RmaXgv
 cGlkL21hc3Rlci5waWQifQotOiAke3Bvc3RmaXhfcHJvY25hbWU9IiUlUFJFRklYJSUvbGli
 ZXhlYy9wb3N0Zml4L21hc3RlciJ9Ci06ICR7cG9zdGZpeF9mbGFncz0iIn0KKzogJHtwb3N0
 Zml4X2VuYWJsZTo9Ik5PIn0KKzogJHtwb3N0Zml4X3BpZGZpbGU6PSIvdmFyL3Nwb29sL3Bv
 c3RmaXgvcGlkL21hc3Rlci5waWQifQorOiAke3Bvc3RmaXhfcHJvY25hbWU6PSIlJVBSRUZJ
 WCUlL2xpYmV4ZWMvcG9zdGZpeC9tYXN0ZXIifQorOiAke3Bvc3RmaXhfZmxhZ3M6PSIifQog
 CiBzdGFydF9jbWQ9JHtuYW1lfV9zdGFydAogc3RvcF9jbWQ9JHtuYW1lfV9zdG9wCmRpZmYg
 LXUgLXIgLU4gcG9zdGZpeC0yLjYuMC9wa2ctaW5zdGFsbCBwb3N0Zml4L3BrZy1pbnN0YWxs
 Ci0tLSBwb3N0Zml4LTIuNi4wL3BrZy1pbnN0YWxsCTIwMDktMDUtMTkgMDM6NDI6MDAuMDAw
 MDAwMDAwIC0wNDAwCisrKyBwb3N0Zml4L3BrZy1pbnN0YWxsCTE5NjktMTItMzEgMTk6MDA6
 MDAuMDAwMDAwMDAwIC0wNTAwCkBAIC0xLDE2NyArMCwwIEBACi0jIS9iaW4vc2gKLSMKLSMJ
 JEZyZWVCU0Q6IHBvcnRzL21haWwvcG9zdGZpeC9wa2ctaW5zdGFsbCx2IDEuMjcgMjAwOS8w
 NS8xOCAxNDozNjozMyBwYXYgRXhwICQKLSMKLQotIyBJZiB0aGUgUE9TVEZJWF9ERUZBVUxU
 X01UQSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBzZXQgdG8gWUVTLCBpdAotIyB3aWxsIG1h
 a2UgdGhlIHBvcnQvcGFja2FnZSB1c2UgZGVmYXVsdHMgd2hpY2ggbWFrZSBwb3N0Zml4IHJl
 cGxhY2UKLSMgc2VuZG1haWwgYXMgbXVjaCBhcyBwb3NzaWJsZS4KLQotUEtHX1BSRUZJWD0k
 e1BLR19QUkVGSVg6PS91c3IvbG9jYWx9Ci1CQVRDSD0ke0JBVENIOj1ub30KLVBPU1RGSVhf
 REVGQVVMVF9NVEE9JHtQT1NURklYX0RFRkFVTFRfTVRBOj1ub30KLQotaWYgWyB4JHtQT1NU
 RklYX0RFRkFVTFRfTVRBfSA9IHhubyBdOyB0aGVuCi0JREVGQVVMVF9SRVBMQUNFX01BSUxF
 UkNPTkY9bgotZWxzZQotCURFRkFVTFRfUkVQTEFDRV9NQUlMRVJDT05GPXkKLWZpCi0KLWlm
 IFsgLXggL3Vzci9zYmluL25vbG9naW4gXTsgdGhlbgotCU5PTE9HSU49L3Vzci9zYmluL25v
 bG9naW4KLWVsc2UKLQlOT0xPR0lOPS9zYmluL25vbG9naW4KLWZpCi0KLWFzaygpIHsKLQls
 b2NhbCBxdWVzdGlvbiBkZWZhdWx0IGFuc3dlcgotCi0JcXVlc3Rpb249JDEKLQlkZWZhdWx0
 PSQyCi0JaWYgWyAteiAiJHtQQUNLQUdFX0JVSUxESU5HfSIgLWEgeCR7QkFUQ0h9ID0geG5v
 IF07IHRoZW4KLQkJcmVhZCAtcCAiJHtxdWVzdGlvbn0gWyR7ZGVmYXVsdH1dPyAiIGFuc3dl
 cgotCWZpCi0JaWYgWyB4JHthbnN3ZXJ9ID0geCBdOyB0aGVuCi0JCWFuc3dlcj0ke2RlZmF1
 bHR9Ci0JZmkKLQllY2hvICR7YW5zd2VyfQotfQotCi15ZXNubygpIHsKLQlsb2NhbCBxdWVz
 dGlvbiBkZWZhdWx0IGFuc3dlcgotCi0JcXVlc3Rpb249JDEKLQlkZWZhdWx0PSQyCi0Jd2hp
 bGUgOjsgZG8KLQkJYW5zd2VyPSQoYXNrICIke3F1ZXN0aW9ufSIgIiR7ZGVmYXVsdH0iKQot
 CQljYXNlICIke2Fuc3dlcn0iIGluCi0JCQlbWXldKikJcmV0dXJuIDA7OwotCQkJW05uXSop
 CXJldHVybiAxOzsKLQkJZXNhYwotCQllY2hvICJQbGVhc2UgYW5zd2VyIHllcyBvciBuby4i
 Ci0JZG9uZQotfQotCi1pZiBbIHgiJDIiID0geFBSRS1JTlNUQUxMIF07IHRoZW4KLQlVU0VS
 PXBvc3RmaXgKLQlVSUQ9MTI1Ci0JR1JPVVA9cG9zdGZpeAotCUdJRD0xMjUKLQlHUk9VUDI9
 bWFpbGRyb3AKLQlHSUQyPTEyNgotCi0JaWYgL3Vzci9zYmluL3B3IGdyb3Vwc2hvdyAiJHtH
 Uk9VUH0iIDI+L2Rldi9udWxsOyB0aGVuCi0JCWVjaG8gIllvdSBhbHJlYWR5IGhhdmUgYSBn
 cm91cCBcIiR7R1JPVVB9XCIsIHNvIEkgd2lsbCB1c2UgaXQuIgotCWVsc2UKLQkJaWYgL3Vz
 ci9zYmluL3B3IGdyb3VwYWRkICR7R1JPVVB9IC1nICR7R0lEfTsgdGhlbgotCQkJZWNobyAi
 QWRkZWQgZ3JvdXAgXCIke0dST1VQfVwiLiIKLQkJZWxzZQotCQkJZWNobyAiQWRkaW5nIGdy
 b3VwIFwiJHtHUk9VUH1cIiBmYWlsZWQuLi4iCi0JCQllY2hvICJQbGVhc2UgY3JlYXRlIGl0
 LCBhbmQgdHJ5IGFnYWluLiIKLQkJCWV4aXQgMQotCQlmaQotCWZpCi0KLQlpZiAvdXNyL3Ni
 aW4vcHcgZ3JvdXBzaG93ICIke0dST1VQMn0iIDI+L2Rldi9udWxsOyB0aGVuCi0JCWVjaG8g
 IllvdSBhbHJlYWR5IGhhdmUgYSBncm91cCBcIiR7R1JPVVAyfVwiLCBzbyBJIHdpbGwgdXNl
 IGl0LiIKLQllbHNlCi0JCWlmIC91c3Ivc2Jpbi9wdyBncm91cGFkZCAke0dST1VQMn0gLWcg
 JHtHSUQyfTsgdGhlbgotCQkJZWNobyAiQWRkZWQgZ3JvdXAgXCIke0dST1VQMn1cIi4iCi0J
 CWVsc2UKLQkJCWVjaG8gIkFkZGluZyBncm91cCBcIiR7R1JPVVAyfVwiIGZhaWxlZC4uLiIK
 LQkJCWVjaG8gIlBsZWFzZSBjcmVhdGUgaXQsIGFuZCB0cnkgYWdhaW4uIgotCQkJZXhpdCAx
 Ci0JCWZpCi0JZmkKLQotCWlmIC91c3Ivc2Jpbi9wdyB1c2VyIHNob3cgIiR7VVNFUn0iIDI+
 L2Rldi9udWxsOyB0aGVuCi0JCWVjaG8gIllvdSBhbHJlYWR5IGhhdmUgYSB1c2VyIFwiJHtV
 U0VSfVwiLCBzbyBJIHdpbGwgdXNlIGl0LiIKLQllbHNlCi0JCWlmIC91c3Ivc2Jpbi9wdyB1
 c2VyYWRkICR7VVNFUn0gLXUgJHtVSUR9IC1nICR7R1JPVVB9IC1oIC0gLWQgL3Zhci9zcG9v
 bC9wb3N0Zml4IC1zICR7Tk9MT0dJTn0gLWMgIlBvc3RmaXggTWFpbCBTeXN0ZW0iOyB0aGVu
 Ci0JCQllY2hvICJBZGRlZCB1c2VyIFwiJHtVU0VSfVwiLiIKLQkJZWxzZQotCQkJZWNobyAi
 QWRkaW5nIHVzZXIgXCIke1VTRVJ9XCIgZmFpbGVkLi4uIgotCQkJZWNobyAiUGxlYXNlIGNy
 ZWF0ZSBpdCwgYW5kIHRyeSBhZ2Fpbi4iCi0JCQlleGl0IDEKLQkJZmkKLQlmaQotCi0JaWYg
 L3Vzci9zYmluL3B3IHNob3cgZ3JvdXAgbWFpbCB8IGdyZXAgLXEgIiR7VVNFUn0iIDI+L2Rl
 di9udWxsOyB0aGVuCi0JCWVjaG8gIllvdSBhbHJlYWR5IGhhdmUgdXNlciBcIiR7VVNFUn1c
 IiBpbiBncm91cCBcIm1haWxcIiwgc28gSSB3aWxsIHVzZSBpdC4iCi0JZWxzZQotCQllY2hv
 ICJZb3UgbmVlZCB1c2VyIFwiJHtVU0VSfVwiIGFkZGVkIHRvIGdyb3VwIFwibWFpbFwiLiIK
 LQkJaWYgeWVzbm8gIldvdWxkIHlvdSBsaWtlIG1lIHRvIGFkZCBpdCIgeTsgdGhlbgotCQkJ
 L3Vzci9zYmluL3B3IGdyb3VwbW9kIG1haWwgLW0gJHtVU0VSfSB8fCBleGl0Ci0JCQllY2hv
 ICJEb25lLiIKLQkJZWxzZQotCQkJZWNobyAiUGxlYXNlIGNyZWF0ZSBpdCwgYW5kIHRyeSBh
 Z2Fpbi4iCi0JCQlleGl0IDEKLQkJZmkKLQlmaQotZmkKLQotaWYgWyB4IiQyIiA9IHhQT1NU
 LUlOU1RBTEwgXTsgdGhlbgotCWlmIFsgLWQgJHtQS0dfUFJFRklYfS9ldGMvcG9zdGZpeC9k
 aXN0IF07IHRoZW4KLQkJZm9yIGZpbGUgaW4gJHtQS0dfUFJFRklYfS9ldGMvcG9zdGZpeC9k
 aXN0Lyo7IGRvCi0JCQlpZiBbICEgLWYgJHtQS0dfUFJFRklYfS9ldGMvcG9zdGZpeC8ke2Zp
 bGUjJHtQS0dfUFJFRklYfS9ldGMvcG9zdGZpeC9kaXN0fSBdOyB0aGVuCi0JCQkJY3AgJGZp
 bGUgJHtQS0dfUFJFRklYfS9ldGMvcG9zdGZpeC8KLQkJCWZpCi0JCWRvbmUKLQlmaQotCi0J
 L2Jpbi9zaCAke1BLR19QUkVGSVh9L2xpYmV4ZWMvcG9zdGZpeC9wb3N0LWluc3RhbGwgdGVt
 cGRpcj0vdG1wIFwKLQljb25maWdfZGlyZWN0b3J5PSR7UEtHX1BSRUZJWH0vZXRjL3Bvc3Rm
 aXggXAotCWRhdGFfZGlyZWN0b3J5PS92YXIvZGIvcG9zdGZpeCBcCi0JZGFlbW9uX2RpcmVj
 dG9yeT0ke1BLR19QUkVGSVh9L2xpYmV4ZWMvcG9zdGZpeCBcCi0JY29tbWFuZF9kaXJlY3Rv
 cnk9JHtQS0dfUFJFRklYfS9zYmluIFwKLQlxdWV1ZV9kaXJlY3Rvcnk9L3Zhci9zcG9vbC9w
 b3N0Zml4IFwKLQlzZW5kbWFpbF9wYXRoPSR7UEtHX1BSRUZJWH0vc2Jpbi9zZW5kbWFpbCBc
 Ci0JbmV3YWxpYXNlc19wYXRoPSR7UEtHX1BSRUZJWH0vYmluL25ld2FsaWFzZXMgXAotCW1h
 aWxxX3BhdGg9JHtQS0dfUFJFRklYfS9iaW4vbWFpbHEgXAotCW1haWxfb3duZXI9cG9zdGZp
 eCBcCi0Jc2V0Z2lkX2dyb3VwPW1haWxkcm9wIFwKLQltYW5wYWdlX2RpcmVjdG9yeT0ke1BL
 R19QUkVGSVh9L21hbiBcCi0Jc2FtcGxlX2RpcmVjdG9yeT0ke1BLR19QUkVGSVh9L2V0Yy9w
 b3N0Zml4IFwKLQlyZWFkbWVfZGlyZWN0b3J5PW5vIFwKLQl1cGdyYWRlLXBhY2thZ2UKLWZp
 Ci0jIHJlYWRtZV9kaXJlY3RvcnkgaXMgIm5vIiBhYm92ZSBzaW5jZSB0aGUgcGFja2FnZSB3
 aWxsIGhhdmUgY29ycmVjdCBwZXJtcwotIyBhbHJlYWR5LCBhbmQgd2UgZG9uJ3Qga25vdyBp
 ZiB0aGV5IGhhZCBQT1JURE9DUy4KLQotcmVwbGFjZSgpIHsKLQlsb2NhbCBvcmlnIHJlcGwK
 LQotCW9yaWc9JDEKLQlyZXBsPSQyCi0JaWYgWyAtZSAke29yaWd9IF07IHRoZW4KLQkJL2Jp
 bi9tdiAtZiAke29yaWd9ICR7b3JpZ30uT0ZGCi0JCS9iaW4vY2htb2QgMCAke29yaWd9Lk9G
 RgotCWZpCi0JaWYgWyAtZSAke3JlcGx9IF07IHRoZW4KLQkJL2Jpbi9sbiAtcyAke3JlcGx9
 ICR7b3JpZ30KLQlmaQotfQotCi1pZiBbIHgiJDIiID0geFBPU1QtSU5TVEFMTCAtYSAteiAi
 JHtQQUNLQUdFX0JVSUxESU5HfSIgXTsgdGhlbgotCWlmIHllc25vICJXb3VsZCB5b3UgbGlr
 ZSB0byBhY3RpdmF0ZSBQb3N0Zml4IGluIC9ldGMvbWFpbC9tYWlsZXIuY29uZiIgJHtERUZB
 VUxUX1JFUExBQ0VfTUFJTEVSQ09ORn07IHRoZW4KLQkJL2Jpbi9tdiAtZiAvZXRjL21haWwv
 bWFpbGVyLmNvbmYgL2V0Yy9tYWlsL21haWxlci5jb25mLm9sZAotCQllY2hvICIjIgkJCQkJ
 CT4JL2V0Yy9tYWlsL21haWxlci5jb25mCi0JCWVjaG8gLW4gIiMgRXhlY3V0ZSB0aGUgUG9z
 dGZpeCBzZW5kbWFpbCBwcm9ncmFtIgk+PgkvZXRjL21haWwvbWFpbGVyLmNvbmYKLQkJZWNo
 byAiLCBuYW1lZCAke1BLR19QUkVGSVh9L3NiaW4vc2VuZG1haWwiCQk+PgkvZXRjL21haWwv
 bWFpbGVyLmNvbmYKLQkJZWNobyAiIyIJCQkJCQk+PgkvZXRjL21haWwvbWFpbGVyLmNvbmYK
 LQkJZWNobyAic2VuZG1haWwJJHtQS0dfUFJFRklYfS9zYmluL3NlbmRtYWlsIgk+PgkvZXRj
 L21haWwvbWFpbGVyLmNvbmYKLQkJZWNobyAic2VuZC1tYWlsCSR7UEtHX1BSRUZJWH0vc2Jp
 bi9zZW5kbWFpbCIJPj4JL2V0Yy9tYWlsL21haWxlci5jb25mCi0JCWVjaG8gIm1haWxxCSR7
 UEtHX1BSRUZJWH0vc2Jpbi9zZW5kbWFpbCIJPj4JL2V0Yy9tYWlsL21haWxlci5jb25mCi0J
 CWVjaG8gIm5ld2FsaWFzZXMJJHtQS0dfUFJFRklYfS9zYmluL3NlbmRtYWlsIgk+PgkvZXRj
 L21haWwvbWFpbGVyLmNvbmYKLQlmaQotZmkKZGlmZiAtdSAtciAtTiBwb3N0Zml4LTIuNi4w
 L3BrZy1tZXNzYWdlIHBvc3RmaXgvcGtnLW1lc3NhZ2UKLS0tIHBvc3RmaXgtMi42LjAvcGtn
 LW1lc3NhZ2UJMjAwNi0wNy0xOSAxNToyMTozNS4wMDAwMDAwMDAgLTA0MDAKKysrIHBvc3Rm
 aXgvcGtnLW1lc3NhZ2UJMTk2OS0xMi0zMSAxOTowMDowMC4wMDAwMDAwMDAgLTA1MDAKQEAg
 LTEsMjUgKzAsMCBAQAotVG8gZW5hYmxlIHBvc3RmaXggc3RhcnR1cCBzY3JpcHQgcGxlYXNl
 IGFkZCBwb3N0Zml4X2VuYWJsZT0iWUVTIiBpbgoteW91ciByYy5jb25mCi0KLUlmIHlvdSBu
 b3QgbmVlZCBzZW5kbWFpbCBhbnltb3JlLCBwbGVhc2UgYWRkIGluIHlvdXIgcmMuY29uZjoK
 LQotc2VuZG1haWxfZW5hYmxlPSJOTyIKLXNlbmRtYWlsX3N1Ym1pdF9lbmFibGU9Ik5PIgot
 c2VuZG1haWxfb3V0Ym91bmRfZW5hYmxlPSJOTyIKLXNlbmRtYWlsX21zcF9xdWV1ZV9lbmFi
 bGU9Ik5PIgotCi1BbmQgeW91IGNhbiBkaXNhYmxlIHNvbWUgc2VuZG1haWwgc3BlY2lmaWMg
 ZGFpbHkgbWFpbnRlbmFuY2Ugcm91dGluZXMgaW4geW91cgotL2V0Yy9wZXJpb2RpYy5jb25m
 IGZpbGU6Ci0KLWRhaWx5X2NsZWFuX2hvc3RzdGF0X2VuYWJsZT0iTk8iCi1kYWlseV9zdGF0
 dXNfbWFpbF9yZWplY3RzX2VuYWJsZT0iTk8iCi1kYWlseV9zdGF0dXNfaW5jbHVkZV9zdWJt
 aXRfbWFpbHE9Ik5PIgotZGFpbHlfc3VibWl0X3F1ZXVlcnVuPSJOTyIKLQotSWYgeW91IGFy
 ZSB1c2luZyBTQVNMLCB5b3UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCBwb3N0Zml4IGhhcyBh
 Y2Nlc3MgdG8gcmVhZAotdGhlIHNhc2xkYiBmaWxlLiAgVGhpcyBpcyBhY2NvbXBsaXNoZWQg
 YnkgYWRkaW5nIHBvc3RmaXggdG8gZ3JvdXAgbWFpbCBhbmQKLW1ha2luZyB0aGUgL3Vzci9s
 b2NhbC9ldGMvc2FzbGRiKiBmaWxlKHMpIHJlYWRhYmxlIGJ5IGdyb3VwIG1haWwgKHRoaXMg
 c2hvdWxkCi1iZSB0aGUgZGVmYXVsdCBmb3IgbmV3IGluc3RhbGxzKS4KLQotSWYgeW91IGFy
 ZSB1cGdyYWRpbmcgZnJvbSBwb3N0Zml4IHZlcnNpb24gcHJpb3IgdG8gMi4wLCBwbGVhc2Ug
 c2VlIHRoZSBSRUFETUUKLWZpbGVzIGZvciByZWNvbW1lbmRlZCBjaGFuZ2VzIHRvIHlvdXIg
 Y29uZmlndXJhdGlvbi4KZGlmZiAtdSAtciAtTiBwb3N0Zml4LTIuNi4wL3BrZy1wbGlzdCBw
 b3N0Zml4L3BrZy1wbGlzdAotLS0gcG9zdGZpeC0yLjYuMC9wa2ctcGxpc3QJMjAwOS0wNS0x
 OSAwMzo0MjowMC4wMDAwMDAwMDAgLTA0MDAKKysrIHBvc3RmaXgvcGtnLXBsaXN0CTIwMDkt
 MDUtMTkgMTI6MTA6NDkuMTYzNTA4MjY0IC0wNDAwCkBAIC0xLDI4ICsxLDE5IEBACi1AdW5l
 eGVjIGlmIGNtcCAtcyAlRC9ldGMvcG9zdGZpeC9tYWluLmNmICVEL2V0Yy9wb3N0Zml4L2Rp
 c3QvbWFpbi5jZjsgdGhlbiBybSAtZiAlRC9ldGMvcG9zdGZpeC9tYWluLmNmOyBmaQotQHVu
 ZXhlYyBpZiBjbXAgLXMgJUQvZXRjL3Bvc3RmaXgvbWFzdGVyLmNmICVEL2V0Yy9wb3N0Zml4
 L2Rpc3QvbWFzdGVyLmNmOyB0aGVuIHJtIC1mICVEL2V0Yy9wb3N0Zml4L21hc3Rlci5jZjsg
 ZmkKLUB1bmV4ZWMgaWYgY21wIC1zICVEL2V0Yy9wb3N0Zml4L2FjY2VzcyAlRC9ldGMvcG9z
 dGZpeC9kaXN0L2FjY2VzczsgdGhlbiBybSAtZiAlRC9ldGMvcG9zdGZpeC9hY2Nlc3M7IGZp
 Ci1AdW5leGVjIGlmIGNtcCAtcyAlRC9ldGMvcG9zdGZpeC9hbGlhc2VzICVEL2V0Yy9wb3N0
 Zml4L2Rpc3QvYWxpYXNlczsgdGhlbiBybSAtZiAlRC9ldGMvcG9zdGZpeC9hbGlhc2VzOyBm
 aQotQHVuZXhlYyBpZiBjbXAgLXMgJUQvZXRjL3Bvc3RmaXgvY2Fub25pY2FsICVEL2V0Yy9w
 b3N0Zml4L2Rpc3QvY2Fub25pY2FsOyB0aGVuIHJtIC1mICVEL2V0Yy9wb3N0Zml4L2Nhbm9u
 aWNhbDsgZmkKLUB1bmV4ZWMgaWYgY21wIC1zICVEL2V0Yy9wb3N0Zml4L2hlYWRlcl9jaGVj
 a3MgJUQvZXRjL3Bvc3RmaXgvZGlzdC9oZWFkZXJfY2hlY2tzOyB0aGVuIHJtIC1mICVEL2V0
 Yy9wb3N0Zml4L2hlYWRlcl9jaGVja3M7IGZpCi1AdW5leGVjIGlmIGNtcCAtcyAlRC9ldGMv
 cG9zdGZpeC9yZWxvY2F0ZWQgJUQvZXRjL3Bvc3RmaXgvZGlzdC9yZWxvY2F0ZWQ7IHRoZW4g
 cm0gLWYgJUQvZXRjL3Bvc3RmaXgvcmVsb2NhdGVkOyBmaQotQHVuZXhlYyBpZiBjbXAgLXMg
 JUQvZXRjL3Bvc3RmaXgvdHJhbnNwb3J0ICVEL2V0Yy9wb3N0Zml4L2Rpc3QvdHJhbnNwb3J0
 OyB0aGVuIHJtIC1mICVEL2V0Yy9wb3N0Zml4L3RyYW5zcG9ydDsgZmkKLUB1bmV4ZWMgaWYg
 Y21wIC1zICVEL2V0Yy9wb3N0Zml4L3ZpcnR1YWwgJUQvZXRjL3Bvc3RmaXgvZGlzdC92aXJ0
 dWFsOyB0aGVuIHJtIC1mICVEL2V0Yy9wb3N0Zml4L3ZpcnR1YWw7IGZpCi1AdW5leGVjIGlm
 IGNtcCAtcyAlRC9ldGMvcG9zdGZpeC9nZW5lcmljICVEL2V0Yy9wb3N0Zml4L2Rpc3QvZ2Vu
 ZXJpYzsgdGhlbiBybSAtZiAlRC9ldGMvcG9zdGZpeC9nZW5lcmljOyBmaQotZXRjL3Bvc3Rm
 aXgvTElDRU5TRQotZXRjL3Bvc3RmaXgvVExTX0xJQ0VOU0UKLWV0Yy9wb3N0Zml4L2JvdW5j
 ZS5jZi5kZWZhdWx0Ci1ldGMvcG9zdGZpeC9tYWluLmNmLmRlZmF1bHQKLWV0Yy9wb3N0Zml4
 L21ha2VkZWZzLm91dAotZXRjL3Bvc3RmaXgvZGlzdC9tYWluLmNmCi1ldGMvcG9zdGZpeC9k
 aXN0L21hc3Rlci5jZgotZXRjL3Bvc3RmaXgvZGlzdC9hY2Nlc3MKLWV0Yy9wb3N0Zml4L2Rp
 c3QvYWxpYXNlcwotZXRjL3Bvc3RmaXgvZGlzdC9jYW5vbmljYWwKLWV0Yy9wb3N0Zml4L2Rp
 c3QvaGVhZGVyX2NoZWNrcwotZXRjL3Bvc3RmaXgvZGlzdC9yZWxvY2F0ZWQKLWV0Yy9wb3N0
 Zml4L2Rpc3QvdHJhbnNwb3J0Ci1ldGMvcG9zdGZpeC9kaXN0L3ZpcnR1YWwKLWV0Yy9wb3N0
 Zml4L2Rpc3QvZ2VuZXJpYworQHVuZXhlYyBpZiBjbXAgLXMgJUQvJSVFWEFNUExFU0RJUiUl
 L21haW4uY2YgJUQvJSVFVENESVIlJS9tYWluLmNmOyB0aGVuIHJtIC1mICVELyUlRVRDRElS
 JSUvbWFpbi5jZjsgZmkKK0B1bmV4ZWMgaWYgY21wIC1zICVELyUlRVhBTVBMRVNESVIlJS9t
 YXN0ZXIuY2YgJUQvJSVFVENESVIlJS9tYXN0ZXIuY2Y7IHRoZW4gcm0gLWYgJUQvJSVFVENE
 SVIlJS9tYXN0ZXIuY2Y7IGZpCitAdW5leGVjIGlmIGNtcCAtcyAlRC8lJUVYQU1QTEVTRElS
 JSUvYWNjZXNzICVELyUlRVRDRElSJSUvYWNjZXNzOyB0aGVuIHJtIC1mICVELyUlRVRDRElS
 JSUvYWNjZXNzOyBmaQorQHVuZXhlYyBpZiBjbXAgLXMgJUQvJSVFWEFNUExFU0RJUiUlL2Fs
 aWFzZXMgJUQvJSVFVENESVIlJS9hbGlhc2VzOyB0aGVuIHJtIC1mICVELyUlRVRDRElSJSUv
 YWxpYXNlczsgZmkKK0B1bmV4ZWMgaWYgY21wIC1zICVELyUlRVhBTVBMRVNESVIlJS9jYW5v
 bmljYWwgJUQvJSVFVENESVIlJS9jYW5vbmljYWw7IHRoZW4gcm0gLWYgJUQvJSVFVENESVIl
 JS9jYW5vbmljYWw7IGZpCitAdW5leGVjIGlmIGNtcCAtcyAlRC8lJUVYQU1QTEVTRElSJSUv
 aGVhZGVyX2NoZWNrcyAlRC8lJUVUQ0RJUiUlL2hlYWRlcl9jaGVja3M7IHRoZW4gcm0gLWYg
 JUQvJSVFVENESVIlJS9oZWFkZXJfY2hlY2tzOyBmaQorQHVuZXhlYyBpZiBjbXAgLXMgJUQv
 JSVFWEFNUExFU0RJUiUlL3JlbG9jYXRlZCAlRC8lJUVUQ0RJUiUlL3JlbG9jYXRlZDsgdGhl
 biBybSAtZiAlRC8lJUVUQ0RJUiUlL3JlbG9jYXRlZDsgZmkKK0B1bmV4ZWMgaWYgY21wIC1z
 ICVELyUlRVhBTVBMRVNESVIlJS90cmFuc3BvcnQgJUQvJSVFVENESVIlJS90cmFuc3BvcnQ7
 IHRoZW4gcm0gLWYgJUQvJSVFVENESVIlJS90cmFuc3BvcnQ7IGZpCitAdW5leGVjIGlmIGNt
 cCAtcyAlRC8lJUVYQU1QTEVTRElSJSUvdmlydHVhbCAlRC8lJUVUQ0RJUiUlL3ZpcnR1YWw7
 IHRoZW4gcm0gLWYgJUQvJSVFVENESVIlJS92aXJ0dWFsOyBmaQorQHVuZXhlYyBpZiBjbXAg
 LXMgJUQvJSVFWEFNUExFU0RJUiUlL2dlbmVyaWMgJUQvJSVFVENESVIlJS9nZW5lcmljOyB0
 aGVuIHJtIC1mICVELyUlRVRDRElSJSUvZ2VuZXJpYzsgZmkKKyUlRVRDRElSJSUvTElDRU5T
 RQorJSVFVENESVIlJS9UTFNfTElDRU5TRQorJSVFVENESVIlJS9ib3VuY2UuY2YuZGVmYXVs
 dAorJSVFVENESVIlJS9tYWluLmNmLmRlZmF1bHQKKyUlRVRDRElSJSUvbWFrZWRlZnMub3V0
 CitAZGlycm10cnkgJSVFVENESVIlJQogbGliZXhlYy9wb3N0Zml4L2FudmlsCiBsaWJleGVj
 L3Bvc3RmaXgvYm91bmNlCiBsaWJleGVjL3Bvc3RmaXgvY2xlYW51cApAQCAtNTUsNiArNDYs
 MTUgQEAKIGxpYmV4ZWMvcG9zdGZpeC92ZXJpZnkKIGxpYmV4ZWMvcG9zdGZpeC92aXJ0dWFs
 CiBsaWJleGVjL3Bvc3RmaXgvdGxzbWdyCitAZGlycm0gbGliZXhlYy9wb3N0Zml4CitiaW4v
 bWFpbHEKK2Jpbi9uZXdhbGlhc2VzCitiaW4vcXNoYXBlCitiaW4vcm1haWwKKyUlVEVTVCUl
 YmluL3FtcXAtc2luaworJSVURVNUJSViaW4vcW1xcC1zb3VyY2UKKyUlVEVTVCUlYmluL3Nt
 dHAtc2luaworJSVURVNUJSViaW4vc210cC1zb3VyY2UKIHNiaW4vcG9zdGFsaWFzCiBzYmlu
 L3Bvc3RjYXQKIHNiaW4vcG9zdGNvbmYKQEAgLTY4LDE0ICs2OCw2IEBACiBzYmluL3Bvc3Rx
 dWV1ZQogc2Jpbi9wb3N0c3VwZXIKIHNiaW4vc2VuZG1haWwKLSUlU1VCX1RFU1QlJWJpbi9x
 bXFwLXNpbmsKLSUlU1VCX1RFU1QlJWJpbi9xbXFwLXNvdXJjZQotJSVTVUJfVEVTVCUlYmlu
 L3NtdHAtc2luawotJSVTVUJfVEVTVCUlYmluL3NtdHAtc291cmNlCi1iaW4vcm1haWwKLWJp
 bi9xc2hhcGUKLWJpbi9uZXdhbGlhc2VzCi1iaW4vbWFpbHEKICUlUE9SVERPQ1MlJSUlRE9D
 U0RJUiUlL0FBQVJFQURNRQogJSVQT1JURE9DUyUlJSVET0NTRElSJSUvQUREUkVTU19DTEFT
 U19SRUFETUUKICUlUE9SVERPQ1MlJSUlRE9DU0RJUiUlL0FERFJFU1NfQ0xBU1NfUkVBRE1F
 Lmh0bWwKQEAgLTE2NCw2ICsxNTYsNyBAQAogJSVQT1JURE9DUyUlJSVET0NTRElSJSUvVUxU
 UklYX1JFQURNRQogJSVQT1JURE9DUyUlJSVET0NTRElSJSUvVVVDUF9SRUFETUUKICUlUE9S
 VERPQ1MlJSUlRE9DU0RJUiUlL1VVQ1BfUkVBRE1FLmh0bWwKKyUlVkRBJSUlJVBPUlRET0NT
 JSUlJURPQ1NESVIlJS9WREFfUkVBRE1FCiAlJVBPUlRET0NTJSUlJURPQ1NESVIlJS9WRVJQ
 X1JFQURNRQogJSVQT1JURE9DUyUlJSVET0NTRElSJSUvVkVSUF9SRUFETUUuaHRtbAogJSVQ
 T1JURE9DUyUlJSVET0NTRElSJSUvVklSVFVBTF9SRUFETUUKQEAgLTI0NCw2ICsyMzcsMyBA
 QAogJSVQT1JURE9DUyUlJSVET0NTRElSJSUvdGxzbWdyLjguaHRtbAogJSVQT1JURE9DUyUl
 JSVET0NTRElSJSUvZ2VuZXJpYy41Lmh0bWwKICUlUE9SVERPQ1MlJUBkaXJybSAlJURPQ1NE
 SVIlJQotQGRpcnJtIGxpYmV4ZWMvcG9zdGZpeAotQGRpcnJtIGV0Yy9wb3N0Zml4L2Rpc3QK
 LUBkaXJybXRyeSBldGMvcG9zdGZpeAo=
 --------------050305080709030501080309--

From: Sahil Tandon <sahil@tandon.net>
To: Yarema <yds@CoolRat.org>
Cc: "bug-followup@FreeBSD.org" <bug-followup@FreeBSD.org>
Subject: Re: ports/134728: Refactoring of the mail/postfix port to ease	maintenance
Date: Wed, 20 May 2009 13:16:08 -0400

 Thank you sir; the revised patch is approved!
 >>
 >>
 >>
 >>
State-Changed-From-To: feedback->open 
State-Changed-By: linimon 
State-Changed-When: Thu May 21 04:29:44 UTC 2009 
State-Changed-Why:  
revised patch has been approved by maintainer. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=134728 
State-Changed-From-To: open->closed 
State-Changed-By: netchild 
State-Changed-When: Tue May 26 13:36:47 UTC 2009 
State-Changed-Why:  
Patch committed (together with removing the IGNORE in the VDA case). 

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

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/134728: commit references a PR
Date: Tue, 26 May 2009 13:36:17 +0000 (UTC)

 netchild    2009-05-26 13:36:08 UTC
 
   FreeBSD ports repository
 
   Modified files:
     mail/postfix         Makefile distinfo pkg-plist 
     mail/postfix/files   patch-makedefs postfix.sh.in 
   Added files:
     mail/postfix/files   pkg-install.in pkg-message.in 
   Removed files:
     mail/postfix         pkg-install pkg-message 
     mail/postfix/files   patch-conf::main.cf 
                          patch-conf::post-install 
                          patch-src::global::mail_params.h 
   Log:
   - refactor the port to ease maintenance [1]
   - update to 2.6.1 [1]
   - remove IGNORE in the VDA case, the patch is available now [2]
   
   [2] is from me (compile tested), maintainer informed.
   
   PR:             134728 [1]
   Submitted by:   Yarema <yds@CoolRat.org> [1]
   Approved by:    maintainer [1]
   
   Revision  Changes    Path
   1.145     +72 -52    ports/mail/postfix/Makefile
   1.100     +6 -3      ports/mail/postfix/distinfo
   1.5       +0 -80     ports/mail/postfix/files/patch-conf::main.cf (dead)
   1.2       +0 -11     ports/mail/postfix/files/patch-conf::post-install (dead)
   1.7       +5 -7      ports/mail/postfix/files/patch-makedefs
   1.3       +0 -38     ports/mail/postfix/files/patch-src::global::mail_params.h (dead)
   1.1       +156 -0    ports/mail/postfix/files/pkg-install.in (new)
   1.1       +25 -0     ports/mail/postfix/files/pkg-message.in (new)
   1.7       +5 -5      ports/mail/postfix/files/postfix.sh.in
   1.28      +0 -167    ports/mail/postfix/pkg-install (dead)
   1.15      +0 -25     ports/mail/postfix/pkg-message (dead)
   1.28      +26 -36    ports/mail/postfix/pkg-plist
 _______________________________________________
 cvs-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/cvs-all
 To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
 
>Unformatted:
