From owner-freebsd-ports-bugs@FreeBSD.ORG Wed May 20 16:00:14 2009 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 96E261065672 for ; Wed, 20 May 2009 16:00:14 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 830D98FC17 for ; Wed, 20 May 2009 16:00:14 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id n4KG0EIm055313 for ; Wed, 20 May 2009 16:00:14 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.3/8.14.3/Submit) id n4KG0Ets055312; Wed, 20 May 2009 16:00:14 GMT (envelope-from gnats) Date: Wed, 20 May 2009 16:00:14 GMT Message-Id: <200905201600.n4KG0Ets055312@freefall.freebsd.org> To: freebsd-ports-bugs@FreeBSD.org From: Yarema Cc: Subject: Re: ports/134728: Refactoring of the mail/postfix port to ease maintenance X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Yarema List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 May 2009 16:00:15 -0000 The following reply was made to PR ports/134728; it has been noted by GNATS. From: Yarema To: Sahil Tandon Cc: "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--