From owner-freebsd-hackers@FreeBSD.ORG Thu Oct 6 13:11:39 2011 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0585B1065673 for ; Thu, 6 Oct 2011 13:11:39 +0000 (UTC) (envelope-from lstewart@freebsd.org) Received: from lauren.room52.net (lauren.room52.net [210.50.193.198]) by mx1.freebsd.org (Postfix) with ESMTP id 26F898FC0A for ; Thu, 6 Oct 2011 13:11:36 +0000 (UTC) Received: from lstewart1.loshell.room52.net (ppp59-167-184-191.static.internode.on.net [59.167.184.191]) by lauren.room52.net (Postfix) with ESMTPSA id EF2537E8C8; Fri, 7 Oct 2011 00:11:32 +1100 (EST) Message-ID: <4E8DA904.5070907@freebsd.org> Date: Fri, 07 Oct 2011 00:11:32 +1100 From: Lawrence Stewart User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:6.0.2) Gecko/20110914 Thunderbird/6.0.2 MIME-Version: 1.0 To: =?UTF-8?B?RGFnLUVybGluZyBTbcO4cmdyYXY=?= References: <86sjn84wco.fsf@ds4.des.no> <53BBCF50-2ACB-431B-9EED-0533A3F1BE78@gsoft.com.au> <86ehyrhlqp.fsf@ds4.des.no> In-Reply-To: <86ehyrhlqp.fsf@ds4.des.no> Content-Type: multipart/mixed; boundary="------------050705030408060200020104" X-Spam-Status: No, score=0.4 required=5.0 tests=FILL_THIS_FORM_FRAUD_PHISH, T_FILL_THIS_FORM_SHORT,UNPARSEABLE_RELAY autolearn=no version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on lauren.room52.net Cc: hackers@freebsd.org Subject: Re: Does anyone use nscd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Oct 2011 13:11:39 -0000 This is a multi-part message in MIME format. --------------050705030408060200020104 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 10/05/11 19:43, Dag-Erling Smørgrav wrote: [snip] > > While we're at it, I'd be very grateful if someone could email me a > quick and dirty guide to setting up an LDAP server for testing. I have > too much on my plate right now to start reading documentation... A bit dated, but this build guide is reasonably complete and should pretty much all still be relevant. It has some bits you won't need if you're just setting something up for quick and dirty testing - I think they'll be obvious as you're working through it. Cheers, Lawrence --------------050705030408060200020104 Content-Type: text/plain; name="ldap_server_buildguide_20081212.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="ldap_server_buildguide_20081212.txt" Ci0gQmFzZWQgbW9zdGx5IG9uIGluZm9ybWF0aW9uIGZyb20gdGhlc2UgcGxhY2VzIChhbW9u ZyBtYW55IG90aGVycyEpOgotIGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvZG9jL2VuL2FydGlj bGVzL2xkYXAtYXV0aC9pbmRleC5odG1sCi0gaHR0cDovL3d3dy5vcGVubGRhcC5vcmcvZG9j L2FkbWluMjQvCgoKIyMgVVNFRlVMIFJBTkRPTSBUSURCSVRTICMjCgotIFRoZXNlIHBlYXJs cyBvZiB3aXNkb20gYXJlIHVzZWZ1bCBkdXJpbmcgc2V0IHVwIGFuZCBkZWJ1Z2dpbmcKCgot IFVzZSB0aGUgInNsYXBjYXQiIHRvb2wgb24gdGhlIHNlcnZlciBjb21tYW5kIGxpbmUgdG8g c2hvdyB5b3UgdGhlIGNvbnRlbnRzCi0gb2YgdGhlIGxkYXAgZGF0YWJhc2UgaW4gbGRpZiBm b3JtYXQuIFRoaXMgaXMgdXNlZnVsIGZvciByb2xsaW5nIGJhY2t1cHMuCi0gSGF2ZSBhIGNy b24gam9iIGNhbGwgc2xhcGNhdCBldmVyeSAzMCBtaW5zIGFuZCB3cml0ZSB0aGUgb3V0cHV0 IG92ZXIgdGhlIHRvcAotIG9mIGEgZmlsZSB3aGljaCBpcyBpbmNyZW1lbnRhbGx5IGJhY2tl ZCB1cAoKLSBFeGFtcGxlIG9mIHVwZGF0aW5nIHRoZSAidGVzdCIgdXNlcidzIHBhc3N3b3Jk IGFzIHRoZSBEQiBhZG1pbgpsZGFwcGFzc3dkIC14IC1TIC1IIGxkYXA6Ly8xMjcuMC4wLjEg LUQgJ2NuPXJvb3QsZGM9ZXhhbXBsZSxkYz1jb20nIC1XICd1aWQ9dGVzdCxvdT1wZW9wbGUs ZGM9ZXhhbXBsZSxkYz1jb20nCgoKLSBMREFQIGRhdGEgaXMgb2Z0ZW4gc3RvcmVkIGJhc2U2 NCBlbmNvZGVkIChlLmcuIHVzZXJQYXNzd29yZCBmaWVsZCkuIFVzZSB0aGlzIHRvIGRlY29k ZToKZWNobyAiZTBOU1dWQlVmU1F4SkV0NVQzRnhZbWRsSkRRZWMzVlRMblpVWTIxclR6UkdX RU5CVlZCVE1qRT0iIHwgcGVybCAtTU1JTUU6OkJhc2U2NCAtbmUgJ3ByaW50IGRlY29kZV9i YXNlNjQoJF8pIC4gIlxuIjsnCgotVG8gbWFudWFsbHkgdXBkYXRlIGFuIGV4aXN0aW5nIGVu dHJ5J3MgYXR0cmlidXRlCmxkYXBtb2RpZnkgLXggLUggbGRhcDovLzEyNy4wLjAuMSAtRCAn Y249cm9vdCxkYz1leGFtcGxlLGRjPWNvbScgLVcgLWYgdGVzdHVzZXIubGRpZgotIFdpdGgg dGVzdHVzZXIubGRpZiBjb250ZW50czoKZG46IHVpZD10ZXN0LG91PXBlb3BsZSxkYz1leGFt cGxlLGRjPWNvbQpjaGFuZ2V0eXBlOiBtb2RpZnkKcmVwbGFjZTogdXNlclBhc3N3b3JkCnVz ZXJQYXNzd29yZDoge2NyeXB0fSQxJHBVWHlzVFVaJDk3cjI3TDZGRTIxTkR0WmROVVlSYzEK CgotVG8gZGVsZXRlIGFuIGV4aXN0aW5nIGVudHJ5CmxkYXBtb2RpZnkgLXggLUggbGRhcDov LzEyNy4wLjAuMSAtRCAnY249cm9vdCxkYz1leGFtcGxlLGRjPWNvbScgLVcgLWYgdGVzdHVz ZXIubGRpZgotIFdpdGggdGVzdHVzZXIubGRpZiBjb250ZW50czoKZG46IHVpZD10ZXN0LG91 PXBlb3BsZSxkYz1leGFtcGxlLGRjPWNvbQpjaGFuZ2V0eXBlOiBkZWxldGUKCi0gRW5hYmxl IHRoZSBtb25pdG9yIGJhY2tlbmQgaW4gc2xhcGQuY29uZiBhbmQgcnVuIHRoZSBmb2xsb3dp bmcgcXVlcnkgdG8gZ2V0IG9wZXJhdGlvbmFsIGluZm8gYWJvdXQgc2xhcGQKbGRhcHNlYXJj aCAteCAtSCBsZGFwOi8vMTI3LjAuMC4xIC1iICdjbj1Nb25pdG9yJyArCgotIENoYW5nZSB0 aGUgImxvZ2xldmVsIiBkaXJlY3RpdmUgaW4gc2xhcGQuY29uZiB0byAiY29ubnMgZmlsdGVy IHN0YXRzIiB0byBnZXQgdXNlZnVsIGRlYnVnZ2luZyBpbmZvIGluIC92YXIvbG9nL2RlYnVn LmxvZwoKLSBTZXR0aW5nICJkZWJ1ZyAxIiBpbiBwYW1fbGRhcC5jb25mIGFuZC9vciBuc3Nf bGRhcC5jb25mIHdpbGwgZ2l2ZSB5b3Ugc29tZSB1c2VmdWwgZGVidWdnaW5nIGluZm8gb24g dGhlIGNsaWVudCBzaWRlIGluIC92YXIvbG9nL2RlYnVnLmxvZwoKLSAKIyMgRU5EIFVTRUZV TCBSQU5ET00gVElEQklUUyAjIwoKCgoKCgoKCiMjIFNFUlZFUiBDT05GSUcgIyMKCi0gQWRk IHRoZSBmb2xsb3dpbmcgbGluZXMgdG8gL2V0Yy9tYWtlLmNvbmYgdG8gbWFrZSB0aGUgRnJl ZUJTRCBwb3J0cyBzeXN0ZW0KLSB1c2UgTERBUCAyLjQueCBmb3IgcG9ydHMgdGhhdCByZXF1 aXJlIExEQVAgKGRlZmF1bHQgdXNlcyAyLjMueCkKCiMgVXNlIE9wZW5MREFQIDIuNC54CldB TlRfT1BFTkxEQVBfVkVSPTI0CgoKCi0gSW5zdGFsbCBvcGVubGRhcCBzZXJ2ZXIKY2QgL3Vz ci9wb3J0cy9uZXQvb3BlbmxkYXAyNC1zZXJ2ZXIKCm1ha2UgaW5zdGFsbCBjbGVhbgoKLSBT ZWxlY3Qgb3B0aW9uczogU0FTTCwgUEFTU1dELCBQRVJMLCBPREJDLCBUQ1BfV1JBUFBFUlMs IEJEQiwgU0VRTU9ELCBTWU5DUFJPViwgRFlOQU1JQ19CQUNLRU5EUwoKCi0gQ3JlYXRlIGEg Y2VydGlmaWNhdGUva2V5IGZvciBlbmNyeXB0ZWQgY29tbXMgd2l0aCB0aGUgTERBUCBzZXJ2 ZXIKCm1rZGlyIC91c3IvbG9jYWwvY2VydHMKCm9wZW5zc2wgcmVxIC1uZXcgLXg1MDkgLWRh eXMgMTgyNSAtbm9kZXMgLW91dCAvdXNyL2xvY2FsL2NlcnRzL2xkYXBzZXJ2ZXIucGVtIC1r ZXlvdXQgL3Vzci9sb2NhbC9jZXJ0cy9sZGFwc2VydmVyLnBlbQoKLSBUaGUgZGlhbG9nIHdp dGggb3BlbnNzbCBzaG91bGQgZ28gc29tZXRoaW5nIGxpa2UgdGhpczoKCkNvdW50cnkgTmFt ZSAoMiBsZXR0ZXIgY29kZSkgW0FVXTpBVQpTdGF0ZSBvciBQcm92aW5jZSBOYW1lIChmdWxs IG5hbWUpIFtTb21lLVN0YXRlXTpWaWN0b3JpYQpMb2NhbGl0eSBOYW1lIChlZywgY2l0eSkg W106TWVsYm91cm5lCk9yZ2FuaXphdGlvbiBOYW1lIChlZywgY29tcGFueSkgW0ludGVybmV0 IFdpZGdpdHMgUHR5IEx0ZF06IE9yZwpPcmdhbml6YXRpb25hbCBVbml0IE5hbWUgKGVnLCBz ZWN0aW9uKSBbXTogT3JnIFVuaXQKQ29tbW9uIE5hbWUgKGVnLCBZT1VSIG5hbWUpIFtdOmxk YXBzZXJ2ZXIuYmxhaC5jb20uYXUKRW1haWwgQWRkcmVzcyBbXTp5b3VydXNlckBibGFoLmNv bS5hdQoKUGxlYXNlIGVudGVyIHRoZSBmb2xsb3dpbmcgJ2V4dHJhJyBhdHRyaWJ1dGVzCnRv IGJlIHNlbnQgd2l0aCB5b3VyIGNlcnRpZmljYXRlIHJlcXVlc3QKQSBjaGFsbGVuZ2UgcGFz c3dvcmQgW106CkFuIG9wdGlvbmFsIGNvbXBhbnkgbmFtZSBbXToKCgojLSBDaGVjayB0aGF0 IHRoZSBiYXNpYyBkZXRhaWxzIGFyZSBhbGwgZ29vZApvcGVuc3NsIHg1MDkgLXN1YmplY3Qg LWRhdGVzIC1maW5nZXJwcmludCAtbm9vdXQgLWluIC91c3IvbG9jYWwvY2VydHMvbGRhcHNl cnZlci5wZW0KCiMtIFNldCBwZXJtcyBvbiBzZW5zaXRpdmUgZmlsZXMKI2NyZWF0ZSAnY2Vy dHMnIGdyb3VwIGFuZCBhZGQgbGRhcCBhbmQgd3d3IHVzZXJzOgoKcHcgZ3JvdXBhZGQgY2Vy dHMKcHcgZ3JvdXBtb2QgY2VydHMgLU0gd3d3IGxkYXAKCmNobW9kIDA0NDAgL3Vzci9sb2Nh bC9jZXJ0cy9sZGFwc2VydmVyLnBlbQpjaGdycCBjZXJ0cyAvdXNyL2xvY2FsL2NlcnRzL2xk YXBzZXJ2ZXIucGVtCgojLSBDb25maWd1cmUgc2xhcGQsIHRoZSBsZGFwIHNlcnZlcgoKbWtk aXIgL3Zhci9kYi9zbGFwZApjaG93biBsZGFwOmxkYXAgL3Zhci9kYi9zbGFwZAoKY3AgL3Vz ci9sb2NhbC9ldGMvb3BlbmxkYXAvREJfQ09ORklHLmV4YW1wbGUgL3Zhci9kYi9zbGFwZC9E Ql9DT05GSUcKCmNkIC91c3IvbG9jYWwvZXRjL29wZW5sZGFwCgoKCmVkaXQgc2xhcGQuY29u ZgoKLSBNYWtlIHRoZSBmaWxlIGxvb2sgbGlrZSB0aGlzCgojIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmluY2x1ZGUgICAgICAgICAv dXNyL2xvY2FsL2V0Yy9vcGVubGRhcC9zY2hlbWEvY29yZS5zY2hlbWEKaW5jbHVkZSAgICAg ICAgIC91c3IvbG9jYWwvZXRjL29wZW5sZGFwL3NjaGVtYS9jb3NpbmUuc2NoZW1hCmluY2x1 ZGUgICAgICAgICAvdXNyL2xvY2FsL2V0Yy9vcGVubGRhcC9zY2hlbWEvaW5ldG9yZ3BlcnNv bi5zY2hlbWEKaW5jbHVkZSAgICAgICAgIC91c3IvbG9jYWwvZXRjL29wZW5sZGFwL3NjaGVt YS9uaXMuc2NoZW1hICAgICAgICAgIAppbmNsdWRlICAgICAgICAgL3Vzci9sb2NhbC9zaGFy ZS9leGFtcGxlcy9zYW1iYS9MREFQL3NhbWJhLnNjaGVtYSAgCgpsb2dsZXZlbCAgICAgICAg Y29ubnMgZmlsdGVyIHN0YXRzCiNsb2dsZXZlbCAgICAgICBub25lCnBpZGZpbGUgICAgICAg ICAvdmFyL3J1bi9vcGVubGRhcC9zbGFwZC5waWQKYXJnc2ZpbGUgICAgICAgIC92YXIvcnVu L29wZW5sZGFwL3NsYXBkLmFyZ3MKbW9kdWxlcGF0aCAgICAgIC91c3IvbG9jYWwvbGliZXhl Yy9vcGVubGRhcAptb2R1bGVsb2FkICAgICAgYmFja19iZGIKZGVmYXVsdHNlYXJjaGJhc2Ug ImRjPWJsYWgsZGM9Y29tLGRjPWF1IgpwYXNzd29yZC1oYXNoICAge0NSWVBUfQpwYXNzd29y ZC1jcnlwdC1zYWx0LWZvcm1hdCAiJDEkJS44cyIKc2VjdXJpdHkgc3NmPTEyOApUTFNDZXJ0 aWZpY2F0ZUZpbGUgL3Vzci9sb2NhbC9jZXJ0cy9sZGFwc2VydmVyLnBlbQpUTFNDZXJ0aWZp Y2F0ZUtleUZpbGUgL3Vzci9sb2NhbC9jZXJ0cy9sZGFwc2VydmVyLnBlbQpUTFNDQUNlcnRp ZmljYXRlRmlsZSAvdXNyL2xvY2FsL2NlcnRzL2xkYXBzZXJ2ZXIucGVtCgpkYXRhYmFzZSAg ICAgICAgYmRiCmRpcmVjdG9yeSAgICAgICAvdmFyL2RiL3NsYXBkCnN1ZmZpeCAgICAgICAg ICAiZGM9YmxhaCxkYz1jb20sZGM9YXUiCnJvb3RkbiAgICAgICAgICAiY249cm9vdCxkYz1i bGFoLGRjPWNvbSxkYz1hdSIKcm9vdHB3ICAgICAgICAgIDxwYXNzd29yZCBmcm9tIG5leHQg c3RlcD4KY2hlY2twb2ludCAgICAgIDAgNQppbmRleCAgICAgICAgICAgb2JqZWN0Q2xhc3Mg ICAgIGVxCmluZGV4ICAgICAgICAgICB1aWQgICAgICAgICAgICAgZXEKaW5kZXggICAgICAg ICAgIHVpZE51bWJlciAgICAgICBlcQppbmRleCAgICAgICAgICAgZ2lkTnVtYmVyICAgICAg IGVxCgphY2Nlc3MgdG8gZG4uYmFzZT0ic2FtYmFEb21haW5OYW1lPUxEQVBTRVJWRVIsb3U9 c2FtYmEsZGM9YmxhaCxkYz1jb20sZGM9YXUiCiBieSBkbi5iYXNlPSJ1aWQ9c2FtYmEsb3U9 YWRtaW5zLGRjPWJsYWgsZGM9Y29tLGRjPWF1IiB3cml0ZQoKYWNjZXNzIHRvIGF0dHJzPXVz ZXJQYXNzd29yZCxzYW1iYU5UUGFzc3dvcmQsc2FtYmFMTVBhc3N3b3JkLHNhbWJhUGFzc3dv cmRIaXN0b3J5LHNhbWJhUHdkTGFzdFNldCxzYW1iYUFjY3RGbGFncwogYnkgc2VsZiA9eHcK IGJ5IGRuLmJhc2U9InVpZD1zYW1iYSxvdT1hZG1pbnMsZGM9YmxhaCxkYz1jb20sZGM9YXUi IHdyaXRlCiBieSAqIGF1dGgKCmFjY2VzcyB0byAqCiBieSBzZWxmIHdyaXRlCiBieSAqIHJl YWQKCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCgojLSBDcmVhdGUgYSBzbGFwZCByb290IHBhc3N3b3JkLCByZXBsYWNpbmcgInRl c3QiIHdpdGggcmVhbCBwYXNzd29yZApzbGFwcGFzc3dkIC1zICJ0ZXN0IgoKLSBUaGlzIHdp bGwgc3BpdCBhIHN0cmluZyBvdXQgdG8gdGhlIGNvbnNvbGUgdGhhdCBsb29rcyBsaWtlICJ7 U1NIQX1MNGtxM0MxVFdDcFZuV0txOG9lSHRaVjg4M2xqaVZpTSIKLSBDb3B5IHRoZSBlbnRp cmUgc3RyaW5nIGFuZCBwYXN0ZSBpdCBpbnRvIHRoZSBzbGFwZCBjb25maWcgZmlsZSBhdCB0 aGUgInJvb3RwdyIgbGluZQoKCgoKIyAtIGVkaXQgL3Vzci9sb2NhbC9ldGMvb3BlbmxkYXAv bGRhcC5jb25mIC0gYWRkIGZvbG93aW5nIGxpbmU6CgplY2hvICJUTFNfUkVRQ0VSVCBhbGxv dyIgPj4gL3Vzci9sb2NhbC9ldGMvb3BlbmxkYXAvbGRhcC5jb25mCgojLSBNYWtlIGxkYXAg c2VydmVyIHN0YXJ0IG9uIGJvb3QKI2VkaXQgL2V0Yy9yYy5jb25mCiMtIEFkZCB0aGUgZm9s bG93aW5nIGxpbmUKCmVjaG8gJ3NsYXBkX2VuYWJsZT1cIllFU1wiJyA+PiAvZXRjL3JjLmNv bmYKCi0gU3RhcnQgdGhlIHNlcnZlciBub3cKL3Vzci9sb2NhbC9ldGMvcmMuZC9zbGFwZCBz dGFydAoKCgoKIyMgQkVHSU4gT1BUSU9OQUwgU0VSVkVSIENPTkZJRyAjIwoKLSBJbnN0YWxs IFBIUCBMREFQIGFkbWluIChwaHBsZGFwYWRtaW4tMS4xLjAuNV8yLDEpCgpjZCAvdXNyL3Bv cnRzL3d3dy9hcGFjaGUyMgptYWtlIGluc3RhbGwgY2xlYW4KCi0gc2VsZWN0IGRlZmF1bHQg b3B0aW9ucwoKY2QgL3Vzci9wb3J0cy9uZXQvcGhwbGRhcGFkbWluCm1ha2UgaW5zdGFsbCBj bGVhbgoKLSBzZWxlY3Qgb3B0aW9uczogQ0xJLCBDR0ksIEFQQUNIRSwgU1VIT1NJTiwgTVVM VElCWVRFLCBJUFY2LCBGQVNUQ0dJLCBQQVRISU5GTyBmb3IgcGhwNS01LjIuNgoKLSBNYWtl IGFwYWNoZSBoYW5kbGUgLnBocCBmaWxlcyB2aWEgdGhlIHBocCBpbnRlcnByZXRlcgoKZWRp dCAvdXNyL2xvY2FsL2V0Yy9hcGFjaGUyMi9odHRwZC5jb25mCgotIEFkZCB0aGUgZm9sbG93 aW5nIGxpbmVzIHVuZGVyIHRoZSBleGlzdGluZyBsaW5lICJBZGRUeXBlIGFwcGxpY2F0aW9u L3gtZ3ppcCAuZ3ogLnRneiIKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKQWRkVHlwZSBhcHBsaWNhdGlvbi94LWh0dHBkLXBocCAu cGhwCkFkZFR5cGUgYXBwbGljYXRpb24veC1odHRwZC1waHAtc291cmNlIC5waHBzCiMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi0g VW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZQoKI0luY2x1ZGUgZXRjL2FwYWNoZTIyL2V4 dHJhL2h0dHBkLXNzbC5jb25mCgoKCgotIENvbmZpZ3VyZSBTU0wvVExTCgplZGl0IC91c3Iv bG9jYWwvZXRjL2FwYWNoZTIyL2V4dHJhL2h0dHBkLXNzbC5jb25mCgotIENvbW1lbnQgb3V0 IHRoZSBmb2xsb3dpbmcgbGluZXMKI1NlcnZlck5hbWUgd3d3LmV4YW1wbGUuY29tOjQ0Mwoj U2VydmVyQWRtaW4geW91QGV4YW1wbGUuY29tCgotIENoYW5nZSB0aGUgZm9sbG93aW5nIGxp bmVzIGFwcHJvcHJpYXRlbHkKClNTTENlcnRpZmljYXRlRmlsZSAiL3Vzci9sb2NhbC9jZXJ0 cy9sZGFwc2VydmVyLnBlbSIKU1NMQ2VydGlmaWNhdGVLZXlGaWxlICIvdXNyL2xvY2FsL2Nl cnRzL2xkYXBzZXJ2ZXIucGVtIgoKCgoKCi0gTWFrZSBhcGFjaGUgc2VydmUgcGhwbGRhcGFk bWluIHZpYSBIVFRQUwoKZWRpdCAvdXNyL2xvY2FsL2V0Yy9hcGFjaGUyMi9JbmNsdWRlcy9w aHBsZGFwYWRtaW4uY29uZgoKLSBBZGQgdGhlIGZvbGxvd2luZyBsaW5lczoKCiMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKUmV3cml0 ZUVuZ2luZSBvbgpSZXdyaXRlQ29uZCAgICV7U0VSVkVSX1BPUlR9ICAhNDQzJApSZXdyaXRl UnVsZSBeLz8ocGhwbGRhcGFkbWluLy4qKSBodHRwczovLyV7U0VSVkVSX05BTUV9LyQxIFtS PTMwMSxMXQoKQWxpYXMgL3BocGxkYXBhZG1pbiAvdXNyL2xvY2FsL3d3dy9waHBsZGFwYWRt aW4vaHRkb2NzCgo8RGlyZWN0b3J5IC91c3IvbG9jYWwvd3d3L3BocGxkYXBhZG1pbj4KICAg IE9yZGVyIGFsbG93LGRlbnkKICAgIEFsbG93IGZyb20gYWxsCiAgICBEaXJlY3RvcnlJbmRl eCBpbmRleC5waHAKPC9EaXJlY3Rvcnk+CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCgotIENvbmZpZ3VyZSBwaHBsZGFwYWRtaW4K CmVkaXQgL3Vzci9sb2NhbC93d3cvcGhwbGRhcGFkbWluL2NvbmZpZy9jb25maWcucGhwCgot IE1ha2UgdGhlIGZpbGUgbG9vayBsaWtlIHRoaXM6CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCjw/cGhwCiRpPTA7CiRsZGFwc2Vy dmVycyA9IG5ldyBMREFQU2VydmVyczsKJGxkYXBzZXJ2ZXJzLT5TZXRWYWx1ZSgkaSwnc2Vy dmVyJywnbmFtZScsJ0xEQVAgU2VydmVyJyk7CiRsZGFwc2VydmVycy0+U2V0VmFsdWUoJGks J3NlcnZlcicsJ2hvc3QnLCcxMjcuMC4wLjEnKTsKJGxkYXBzZXJ2ZXJzLT5TZXRWYWx1ZSgk aSwnc2VydmVyJywnYXV0aF90eXBlJywnc2Vzc2lvbicpOwokbGRhcHNlcnZlcnMtPlNldFZh bHVlKCRpLCdzZXJ2ZXInLCd0bHMnLHRydWUpOwokbGRhcHNlcnZlcnMtPlNldFZhbHVlKCRp LCdzZXJ2ZXInLCdzYXNsX2F1dGgnLGZhbHNlKTsKCiRmcmllbmRseV9hdHRycyA9IGFycmF5 KCk7CiRmcmllbmRseV9hdHRyc1snZmFjc2ltaWxlVGVsZXBob25lTnVtYmVyJ10gPSAnRmF4 JzsKJGZyaWVuZGx5X2F0dHJzWyd0ZWxlcGhvbmVOdW1iZXInXSAgICAgICAgICA9ICdQaG9u ZSc7CiRmcmllbmRseV9hdHRyc1sndWlkJ10gICAgICAgICAgICAgICAgICAgICAgPSAnVXNl ciBOYW1lJzsKCiRxPTA7CiRxdWVyaWVzID0gYXJyYXkoKTsKJHF1ZXJpZXNbJHFdWyduYW1l J10gPSAnVXNlciBMaXN0JzsKJHF1ZXJpZXNbJHFdWydiYXNlJ10gPSAnZGM9YmxhaCxkYz1j b20sZGM9YXUnOwokcXVlcmllc1skcV1bJ3Njb3BlJ10gPSAnc3ViJzsKJHF1ZXJpZXNbJHFd WydmaWx0ZXInXSA9ICcoJihvYmplY3RDbGFzcz1wb3NpeEFjY291bnQpKHVpZD0qKSknOwok cXVlcmllc1skcV1bJ2F0dHJpYnV0ZXMnXSA9ICdjbiwgdWlkLCBob21lRGlyZWN0b3J5LCB0 ZWxlcGhvbmVudW1iZXIsIGpwZWdwaG90byc7Cj8+CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCgotIE1ha2UgYXBhY2hlIHN0YXJ0 IG9uIGJvb3QKCmVkaXQgL2V0Yy9yYy5jb25mCgotIEFkZCB0aGUgZm9sbG93aW5nIGxpbmUK CmFwYWNoZTIyX2VuYWJsZT0iWUVTIgoKCi0gU3RhcnQgYXBhY2hlCgphcGFjaGVjdGwgc3Rh cnQKCgotIFlvdSBzaG91bGQgbm93IGJlIGFibGUgdG8gYWNjZXNzIGh0dHA6Ly88aG9zdG5h bWU+L3BocGxkYXBhZG1pbiBhbmQgbG9naW4gd2l0aCB5b3VyCi0gTERBUCBzZXJ2ZXIncyBy b290ZG4gY3JlZGVudGlhbHMKLSBlLmcuIHVzZXJuYW1lICJjbj1yb290LGRjPWJsYWgsZGM9 Y29tLGRjPWF1IiBhbmQgcGFzc3dvcmQgaXMgdGhlIGNsZWFyIHRleHQgdmVyc2lvbgotIHlv dSB0eXBlZCBpbnRvIHRoZSBzbGFwcGFzc3dkIGNvbW1hbmQgcHJldmlvdXNseSB0byBnZW5l cmF0ZSB0aGUgcm9vdHB3IG9wdGlvbgoKLSAiSW1wb3J0IiBhY3Rpb24gaW4gcGhwbGRhcGFk bWluIGNhbiBiZSB1c2VkIHRvIHJ1biBhbiBsZGlmIGZpbGUgYWdhaW5zdCB0aGUgc2VydmVy CgoKIyMgRU5EIE9QVElPTkFMIFNFUlZFUiBDT05GSUcgIyMKCgoKCgoKLSBDcmVhdGUgYW4g bGRpZiBmaWxlIHRvIHNlZWQgdGhlIExEQVAgZGIgd2l0aCBvdXIgcmVxdWlyZWQgc3RydWN0 dXJlCi0gV2UnbGwgdXNlICJwZW9wbGUiIGFzIHRoZSBPVSBmb3IgdXNlciBhY2NvdW50cyBh bmQgImdyb3VwcyIgYXMgdGhlIE9VIGZvciBncm91cHMKCmVkaXQgL3Vzci9sb2NhbC9ldGMv b3BlbmxkYXAvaW5pdGxkYXAubGRpZgoKLSBzZWVkIGxkaWYgZmlsZSBjb250ZW50czoKCiMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK I29yZwpkbjogZGM9YmxhaCxkYz1jb20sZGM9YXUKb2JqZWN0Q2xhc3M6IGRjT2JqZWN0Cm9i amVjdENsYXNzOiBvcmdhbml6YXRpb24KZGM6IG9yZwpvOiBPUkcgTkFNRQpkZXNjcmlwdGlv bjogQmxhaAoKIyBDcmVhdGUgYW4gT1UgZm9yIHBlb3BsZQpkbjogb3U9cGVvcGxlLGRjPWJs YWgsZGM9Y29tLGRjPWF1Cm91OiBwZW9wbGUKb2JqZWN0Q2xhc3M6IHRvcApvYmplY3RDbGFz czogb3JnYW5pemF0aW9uYWxVbml0CgojIENyZWF0ZSBhbiBPVSBmb3IgZ3JvdXBzCmRuOiBv dT1ncm91cHMsZGM9YmxhaCxkYz1jb20sZGM9YXUKb2JqZWN0Q2xhc3M6IHRvcApvYmplY3RD bGFzczogb3JnYW5pemF0aW9uYWxVbml0Cm91OiBncm91cHMKIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKCi0gQXBwbHkgdGhlIGNv bnRlbnRzIG9mIHRoZSBsZGlmIGZpbGUgYWdhaW5zdCB0aGUgREIgKG9yIHVzZSB3ZWIgaW50 ZXJmYWNlKQoKbGRhcGFkZCAtYyAteCAtZiAvdXNyL2xvY2FsL2V0Yy9vcGVubGRhcC9pbml0 bGRhcC5sZGlmIC1IIGxkYXA6Ly8xMjcuMC4wLjEgLUQgJ2NuPXJvb3QsZGM9YmxhaCxkYz1j b20sZGM9YXUnIC1XIC1aWgoKCiMjIEVORCBTRVJWRVIgQ09ORklHICMjCgoKCgoKCgoKCgoK CgoKCgojIyBDTElFTlQgQ09ORklHICMjCgotIEFkZCB0aGUgZm9sbG93aW5nIGxpbmVzIHRv IC9ldGMvbWFrZS5jb25mIHRvIG1ha2UgdGhlIEZyZWVCU0QgcG9ydHMgc3lzdGVtCi0gdXNl IExEQVAgMi40LnggZm9yIHBvcnRzIHRoYXQgcmVxdWlyZSBMREFQIChkZWZhdWx0IHVzZXMg Mi4zLngpCgojIFVzZSBPcGVuTERBUCAyLjQueApXQU5UX09QRU5MREFQX1ZFUj0yNAoKCi0g SW5zdGFsbCByZXF1aXJlZCBwb3J0cwoKClBhc3RlIHRoZSBmb2xsb3dpbmcgcGF0Y2ggaW50 byB0aGUgZmlsZSBzaG93biBiZWxvdzoKL3Vzci9wb3J0cy9zZWN1cml0eS9wYW1fbGRhcC9m aWxlcy9wYXRjaC1ncm91cGRuZml4CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi0tLSBwYW1fbGRhcC5jLm9yaWcg ICAgIDIwMDgtMDYtMjcgMTc6NTE6MzcuMDAwMDAwMDAwICsxMDAwCisrKyBwYW1fbGRhcC5j ICAyMDA4LTA2LTI3IDE3OjQ1OjExLjAwMDAwMDAwMCArMTAwMApAQCAtNDAyMCw3ICs0MDIw LDcgQEAKICAgICB7CiAgICAgICByYyA9IGxkYXBfY29tcGFyZV9zIChzZXNzaW9uLT5sZCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi0+Y29uZi0+Z3JvdXBkbiwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi0+Y29uZi0+Z3JvdXBhdHRyLCBzZXNz aW9uLT5pbmZvLT51c2VyZG4pOworICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9u LT5jb25mLT5ncm91cGF0dHIsIHNlc3Npb24tPmluZm8tPnVzZXJuYW1lKTsKICAgICAgIGlm IChyYyAhPSBMREFQX0NPTVBBUkVfVFJVRSkKICAgICAgICB7CiAgICAgICAgICBzbnByaW50 ZiAoYnVmLCBzaXplb2YgYnVmLCAiWW91IG11c3QgYmUgYSAlcyBvZiAlcyB0byBsb2dpbi4i LAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIwoKY2QgL3Vzci9wb3J0cy9zZWN1cml0eS9wYW1fbGRhcAptYWtlIGlu c3RhbGwgY2xlYW4KCmNkIC91c3IvcG9ydHMvbmV0L25zc19sZGFwCm1ha2UgaW5zdGFsbCBj bGVhbgoKY2QgL3Vzci9wb3J0cy9zZWN1cml0eS9wYW1fbWtob21lZGlyCm1ha2UgV0lUSF9Q Uk9GSUxFPXllcyBpbnN0YWxsIGNsZWFuCgoKLSBDb25maWd1cmUgcGFtIHRvIGF0dGVtcHQg bGRhcCBhdXRoIGJlZm9yZSBmYWxsaW5nIGJhY2sgb24gbG9jYWwgZmlsZSBhdXRoCgplZGl0 IC9ldGMvcGFtLmQvc3NoZAoKLSBBZGQgdGhlIGZvbGxvd2luZyBsaW5lIGJlZm9yZSAiYXV0 aCByZXF1aXJlZCBwYW1fdW5peC5zbyBub193YXJuIHRyeV9maXJzdF9wYXNzIgoKYXV0aCAg ICAgICAgICAgIHN1ZmZpY2llbnQgICAgICAvdXNyL2xvY2FsL2xpYi9wYW1fbGRhcC5zbyAg ICAgIG5vX3dhcm4gY29uZmlnPS91c3IvbG9jYWwvZXRjL3BhbV9sZGFwLmNvbmYgdHJ5X2Zp cnN0X3Bhc3MKCgotIEFkZCB0aGUgZm9sbG93aW5nIGxpbmUgYmVmb3JlICJhY2NvdW50IHJl cXVpcmVkIHBhbV91bml4LnNvIgphY2NvdW50ICAgICAgICAgc3VmZmljaWVudCAgICAgICAg L3Vzci9sb2NhbC9saWIvcGFtX2xkYXAuc28gICAgICBub193YXJuIGlnbm9yZV9hdXRoaW5m b191bmF2YWlsIGlnbm9yZV91bmtub3duX3VzZXIKCgotIEFkZCB0aGUgZm9sbG93aW5nIGxp bmUgYmVmb3JlICJzZXNzaW9uIHJlcXVpcmVkIHBhbV9wZXJtaXQuc28iCgpzZXNzaW9uICAg ICAgICAgcmVxdWlyZWQgICAgICAgIC91c3IvbG9jYWwvbGliL3BhbV9ta2hvbWVkaXIuc28K CgoKLSBNYWtlIHN1cmUgL2hvbWUgZXhpc3RzIGVpdGhlciBhcyBhIHN5bWxpbmsgdG8gYSBk aXJlY3Rvcnkgb3IgYW4gYWN0dWFsIGRpcmVjdG9yeQoKZWRpdCAvdXNyL2xvY2FsL2V0Yy9w YW1fbGRhcC5jb25mCgotIE1ha2UgdGhlIGZpbGUgY29udGVudHMgdGhpczoKCiMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKdXJpIGxk YXA6Ly9sZGFwc2VydmVyLmJsYWguY29tLmF1CmJhc2UgZGM9YmxhaCxkYz1jb20sZGM9YXUK c3NsIHN0YXJ0X3Rscwp0bHNfY2hlY2twZWVyIG5vCiNkZWJ1ZyAxCiMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCgotIENvbmZpZ3Vy ZSBuc3MgdG8gdXNlIGxkYXAgdG8gcmVzb2x2ZSB1aWQvZ2lkIGluZm8KCmVkaXQgL2V0Yy9u c3N3aXRjaC5jb25mCgotIENoYW5nZSB0aGUgZm9sbG93aW5nIGxpbmVzIGFjY29yZGluZ2x5 Cgpncm91cDogZmlsZXMgbGRhcApwYXNzd2Q6IGZpbGVzIGxkYXAKCi0gbnNzX2xkYXAgaXMg d3JpdHRlbiBieSB0aGUgYXV0aG9ycyBvZiBwYW1fbGRhcCBhbmQgdGhleSBjYW4gc2hhcmUg Y29uZmlnIGZpbGVzCmxuIC1zIC91c3IvbG9jYWwvZXRjL3BhbV9sZGFwLmNvbmYgL3Vzci9s b2NhbC9ldGMvbnNzX2xkYXAuY29uZgoKLSBJZiBuc3MgaXMgd29ya2luZywgInRvdWNoIHRl c3QuZmlsZSA7IGNob3duIGxkYXB1aWQ6bGRhcGdpZCB0ZXN0LmZpbGUiIHdoZXJlICJsZGFw dWlkIiBpcyBhIHVpZCBvZiBhIHVzZXIgaW4gbGRhcCB0aGF0IGlzbid0Ci0gaW4gdGhlIGxv Y2FsIHN5c3RlbSdzIC9ldGMvcGFzc3dkIGZpbGUgYW5kICJsZGFwZ2lkIiBpcyBhIGdpZCBv ZiBhIGdyb3VwIGluIGxkYXAgdGhhdCBpc24ndAotIGluIHRoZSBsb2NhbCBzeXN0ZW0ncyAv ZXRjL2dyb3VwIGZpbGUKLSBUaGVuIHJ1biAibHMgLWwgdGVzdC5maWxlIiBhbmQgeW91IHNo b3VsZCBzZWUgdGhlIHVzZXIgbmFtZSBhbmQgZ3JvdXAgbmFtZSBkZXRhaWxzIGZyb20gbGRh cCBuZXh0IHRvIHRoZSBmaWxlCgoKCgojIyMgTG9jYWwgbG9naW5zClRoZSBvcmlnaW5hbCBj b25maWcgb25seSBzZXRzIHVwIGxkYXAgYXV0aCBmb3IgU1NIIGxvZ2lucwpBZGQgc3VwcG9y dCBmb3IgbG9jYWwgTERBUCBsb2dpbnMgaWYgcmVxdWlyZWQ6CmVkaXQgL2V0Yy9wYW0uZC9s b2dpbiB3aXRoIHRoZSBzYW1lIG9wdGlvbnMgYXMgeW91IGRpZCBmb3IgL2V0Yy9wYW0uZC9z c2hkIHRvIGFsbG93IGxvY2FsIGxkYXAgbG9naW5zCgoKCgojIyMgQWRkaW5nIG5zc3dpdGNo IGNhY2hpbmcgd2l0aCBuc2NkCldpdGhvdXQgY2FjaGluZywgYW4gb2ZmbGluZSBMREFQIHNl cnZlciByZW5kZXJzIHRoZSB3b3Jrc3RhdGlvbiBhbG1vc3QgdXNlbGVzcywgYXMgZWFjaCB0 aW1lIGEgdXNlcm5hbWUgaXMgcmVxdWlyZWQsIGVnICJscyAtYWwiIHRoZSBzeXN0ZW0gd2ls bCB0cnkgYW5kIGNvbm5lY3QgbyB0aGUgTERBUCBzZXJ2ZXIgdG8gcmVzb2x2ZSB0aGUgbmFt ZS4KClRoZSBzb2x1dGlvbiBpcyB0aGUgTmFtZSBTZXJ2aWNlIENhY2hpbmcgRGFlbW9uLiBU aGlzIGJhc2ljIGNvbmZpZ3VyYXRpb24gd2lsbCBtZWFuIHRoYXQgb25jZSBsb2dnZWQgaW50 byBhIG1hY2hpbmUgKGF1dGggaXMgZG9uZSkgdWlkL3VzZXJuYW1lIHBhaXJzIHdpbGwgYmUg Y2FjaGVkIGxvY2FsbHkuIAoKCmNvbmZpcm0gL2V0Yy9uc2NkLmNvbmYgY29udGFpbnMgdGhl IGZvbGxvd2luZwoKXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KZW5h YmxlLWNhY2hlIHBhc3N3ZCB5ZXMKZW5hYmxlLWNhY2hlIGdyb3VwIHllcwplbmFibGUtY2Fj aGUgaG9zdHMgeWVzCmVuYWJsZS1jYWNoZSBzZXJ2aWNlcyB5ZXMKZW5hYmxlLWNhY2hlIHBy b3RvY29scyB5ZXMKZW5hYmxlLWNhY2hlIHJwYyB5ZXMKZW5hYmxlLWNhY2hlIG5ldHdvcmtz IHllcwoKXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KVGhpcyB3aWxs IGNvbmZpZ3VyZSBuc2NkIHRvIGNhY2hlIGV2ZXJ5dGhpbmcgaXQgY2FuLgpCeSBkZWZhdWx0 LCBjYWNoZXMgYXJlIGtlcHQgZm9yIDEgaG91ci4KVGhpcyBjYW4gYmUgY2hhbmdlZCBieSBh ZGRpbmcgYW4gZW50cnkgYXMgYmVsb3cuCkEgbGluZSBpcyBuZWVkZWQgZm9yIGVhY2ggY2hh Y2hlIHR5cGUgeW91IHdvdWxkIGxpa2UgdG8gYWx0ZXIuCl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eCnBvc2l0aXZlLXRpbWUtdG8tbGl2ZSBwYXNzd2QgNzIwMAoK Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KCgplZGl0IC9ldGMvcmMu Y29uZgphZGQ6CgpeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgpuc2Nk X2VuYWJsZT0iWUVTIgoKCl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e CmVkaXQgL2V0Yy9uc3Nzd2l0Y2guY29uZgphZGQgJ2NhY2hlJyBhcyB0aGUgZmlyc3Qgc291 cmNlIGZvciBncm91cCwgaG9zdHMsIHBhc3N3ZCwgc2VydmljZXMsIHByb3RvY2FvbHMsIHJw YyBhbmQgbmV0d29ya3MuCgpUaGlzIHdpbGwgZW5hYmxlIGNhY2hpbmcgb2YgdXNlcnMgYW5k IHBhc3N3b3JkcyBmcm9tIGxkYXAgYXMgd2VsbCBhcyBETlMgaG9zdCBsb29rdXBzCgoKCgoK IyMjIExEQVAgUGFzc3dvcmQgY2hhbmdlcyB3aXRoICdwYXNzd2QnCmVkaXQgL3Vzci9sb2Nh bC9ldGMvcGFtX2xkYXAuY29uZgoKXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl4KYWRkICJwYW1fcGFzc3dkIGV4b3AiCgpeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eXgpub3RlOiBXaXRoIHRoZSAnZXhvcCcgb3B0aW9uLCB0aGUgcGFzc3dv cmQgaXMgc2VudCBpbiBjbGVhciB0ZXh0IChCVVQgaXQgaXMgb3ZlciBUTFMgc28gd2lsbCBz dGlsbCBiZSBzZWN1cmUpIGFuZCB1cG9uIHJlY2VpdmluZyB0aGUgcGFzc3dvcmQsIHRoZSBz ZXJ2ZXIgZW5jcnlwdHMgaXQgaW50byB0aGUgcHJvcGVyIGZvcm1hdC4gJ2NyeXB0JyBhbHNv IHdvcmtzLCBhbmQgc2VuZHMgYW4gZW5jcnlwdGVkIHBhc3N3b3JkIHRvIGxkYXAsIGJ1dCBp dCBpcyBpZGVhbCB0byBrZWVwIHBhc3N3b3JkcyBpbiBleGFjdGx5IHRoZSBzYW1lIGZvcm1h dCBpbiBsZGFwIGFzIGlzIGtlcHQgaW4gYSBsb2NhdCBtYXN0ZXIucGFzc3dkIGZpbGUuCgpU aGUgc3lzdGVtIHBhc3N3b3JkIGNvbW1hbmQgaXMgdmVyeSBvbGQgYW5kIGlzbid0IGF3YXJl IHRoYXQgcGFzc3dvcmRzIGNhbiBiZSBjaGFuZ2VkIGZvciBMREFQIHVzZXJzLgpXZSB0aGVy ZWZvcmUgaGF2ZSB0byBhZGQgYSBoYWNrIHRvIGJ5cGFzcyB0aGlzIGxpbWl0YXRpb24uIChU aGVyZSBpcyBubyBmZWFzYWJsZSBhbHRlcm5hdGUgc29sdXRpb24gYXQgdGhpcyBzdGFnZSku CgplZGl0IC91c3Ivc3JjL3Vzci5iaW4vcGFzc3dkL3Bhc3N3ZC5jClJlcGxhY2U6CiAgICBl cnJ4KDEsICJTb3JyeSwgYHBhc3N3ZCcgY2FuIG9ubHkgY2hhbmdlIHBhc3N3b3JkcyBmb3Ig bG9jYWwgb3IgTklTIHVzZXJzLiIpOwpXaXRoOgogICAgICAgICAgICAgICAgZnByaW50Zihz dGRlcnIsICJOb3cgeW91IGNhbiBjaGFuZ2UgTERBUCBwYXNzd29yZCB2aWEgUEFNXG4iKTsK Cm1ha2UgaW5zdGFsbCBpbiB0aGF0IGRpcmVjdG9yeS4KCgplZGl0IC9ldGMvcGFtLmQvcGFz c3dkCmFkZCB0aGUgZm9sbG93aW5nIGxpbmUgYmVmb3JlIHRoZSBwYW1fdW5peC5zbyBlbnRy eQoKXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KcGFzc3dvcmQgICAg ICAgIHN1ZmZpY2llbnQgICAgICAvdXNyL2xvY2FsL2xpYi9wYW1fbGRhcC5zbyAgICAgIG5v X3dhcm4gdHJ5X2ZpcnN0X3Bhc3MgY29uZmlnPS91c3IvbG9jYWwvZXRjL3BhbV9sZGFwLmNv bmYKCl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KCgoKCiMjIyBSZXN0 cmljdGluZyBMb2dpbnMgdG8gYSBwYXJ0aWN1bGFyIGdyb3VwCgpodHRwOi8vbGlzdHMuZnJl ZWJzZC5vcmcvcGlwZXJtYWlsL2ZyZWVic2QtcXVlc3Rpb25zLzIwMDUtT2N0b2Jlci8xMDA4 MTYuaHRtbAoKZWRpdCAvdXNyL2xvY2FsL2V0Yy9wYW1fbGRhcC5jb25mCl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KcGFtX2dyb3VwZG4gY249bG9naW5fZ3JvdXAs b3U9Z3JvdXBzLGRjPWJsYWgsZGM9Y29tLGRjPWF1CnBhbV9tZW1iZXJfYXR0cmlidXRlIG1l bWJlclVpZAoKXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgpXQVJOSU5H OiBGb3IgdGhpcyB0byB3b3JrIHRoZSBGVUxMIEROIG9mIHRoZSB1c2VyIG11c3QgYmUgbGlz dGVkIGluIHRoZSBtZW1iZXJVaWQgYXR0cmlidXRlIG9mIHRoZSBwb3NpeCBncm91cCBzcGVj aWZpZWQgaW4gcGFtX2dyb3VwZG4gY29uZmlnLgoKU3VnZ2VzdGlvbiwgdXNlIGEgc2VwYXJh dGUgT1UgZm9yIGhvc3RzLCB3aGljaCBjb250YWluIGdyb3VwcyB3aXRoIG1hY2hpbmUgbmFt ZXMgLT4gZnVsbCBkbiBvZiBhbGxvd2VkIHVzZXJzIG9uIHRob3NlIG1hY2hpbmVzIHNob3Vs ZCBiZSBzdG9yZWQgaW4gbWVtYmVyVWlkCk9SCmFkZCBhIHNlcGFyYXRlIGF0dHJpYnV0ZSAn bG9naW5ETicgdG8gcmVsYXZhbnQgZ3JvdXBzIHRoYXQgd2lsbCBiZSB1c2VkIGZvciBsb2dp biByZXN0cmljdGlvbnMuIGNoYW5nZSBwYW1fbWVtYmVyX2F0cnJpYnV0ZSBmcm9tIG1lbWJl clVpZCB0byBsb2dpbkROCgojIyMgUHJldmVudGluZyBsb25nIGRlbGF5cyBkdXJpbmcgQXV0 aCB3aGVuIExEQVAgc2VydmVyIGlzbid0IGF2YWlsYWJsZQoKQnkgZGVmYXVsdCwgd2hlbiB0 aGUgTERBUCBzZXJ2ZXIgaXNuJ3QgYXZhaWxhYmxlLCB0aGUgY2xpZW50IHdpbGwgbm90IGdp dmUgdXAgdHJ5aW5nIHRvIGNvbm5lY3QgdG8gdGhlIExEQVAgc2VydmVyLgpDaGFuZ2luZyB0 aGUgYmluZCBwb2xpY3kgdG8gJ3NvZnQnIHdpbGwgY2F1c2UgdGhlIGNsaWVudCB0byBnaXZl IHVwIGltbWVkaWF0ZWx5IGlmIHRoZSBzZXJ2ZXIgaXMgbm90IGF2YWlsYWJsZS4KCiMgUmVj b25uZWN0IHBvbGljeToKIyAgaGFyZF9vcGVuOiByZWNvbm5lY3QgdG8gRFNBIHdpdGggZXhw b25lbnRpYWwgYmFja29mZiBpZgojICAgICAgICAgICAgIG9wZW5pbmcgY29ubmVjdGlvbiBm YWlsZWQKIyAgaGFyZF9pbml0OiByZWNvbm5lY3QgdG8gRFNBIHdpdGggZXhwb25lbnRpYWwg YmFja29mZiBpZgojICAgICAgICAgICAgIGluaXRpYWxpemluZyBjb25uZWN0aW9uIGZhaWxl ZAojICBoYXJkOiAgICAgIGFsaWFzIGZvciBoYXJkX29wZW4KIyAgc29mdDogICAgICByZXR1 cm4gaW1tZWRpYXRlbHkgb24gc2VydmVyIGZhaWx1cmUKCmVkaXQgL3Vzci9sb2NhbC9ldGMv cGFtX2xkYXAuY29uZgoKCl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCmJp bmRfcG9saWN5IHNvZnQgCgpeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgoK IyMjIEFsbG93aW5nIG1hY2hpbmUgbG9naW5zIHRvIGJlIHJlc3RyaWN0ZWQgYnkgZ3JvdXBz CgpQYXN0ZSB0aGUgZm9sbG93aW5nIHBhdGNoIGludG8gdGhlIGZpbGUgc2hvd24gYmVsb3c6 Ci91c3IvcG9ydHMvc2VjdXJpdHkvcGFtX2xkYXAvZmlsZXMvcGF0Y2gtZ3JvdXBkbmZpeAoK LS0tIHBhbV9sZGFwLmMub3JpZyAgICAgMjAwOC0wNi0yNyAxNzo1MTozNy4wMDAwMDAwMDAg KzEwMDAKKysrIHBhbV9sZGFwLmMgIDIwMDgtMDYtMjcgMTc6NDU6MTEuMDAwMDAwMDAwICsx MDAwCkBAIC00MDIwLDcgKzQwMjAsNyBAQAogICAgIHsKICAgICAgIHJjID0gbGRhcF9jb21w YXJlX3MgKHNlc3Npb24tPmxkLAogICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9u LT5jb25mLT5ncm91cGRuLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLT5j b25mLT5ncm91cGF0dHIsIHNlc3Npb24tPmluZm8tPnVzZXJkbik7CisgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlc3Npb24tPmNvbmYtPmdyb3VwYXR0ciwgc2Vzc2lvbi0+aW5mby0+ dXNlcm5hbWUpOwogICAgICAgaWYgKHJjICE9IExEQVBfQ09NUEFSRV9UUlVFKQogICAgICAg IHsKICAgICAgICAgIHNucHJpbnRmIChidWYsIHNpemVvZiBidWYsICJZb3UgbXVzdCBiZSBh ICVzIG9mICVzIHRvIGxvZ2luLiIsCmNkIC91c3IvcG9ydHMvCm1ha2UgY2xlYW4KCgojIyBF TkQgQ0xJRU5UIENPTkZJRyAjIwoKCgojIyBCRUdJTiBTQU1CQSBTRVJWRVIgQ09ORklHICMj CgogICBwYXNzZGIgYmFja2VuZCA9IGxkYXBzYW06bGRhcDovL2xkYXBzZXJ2ZXIuYmxhaC5j b20uYXUKICAgbGRhcCBhZG1pbiBkbiA9IHVpZD1zYW1iYSxvdT1hZG1pbnMsZGM9YmxhaCxk Yz1jb20sZGM9YXUKICAgbGRhcCBzc2wgPSBubwogICBsZGFwIGRlbGV0ZSBkbiA9IG5vCiAg IGxkYXAgdXNlciBzdWZmaXggPSBvdT1wZW9wbGUKICAgbGRhcCBncm91cCBzdWZmaXggPSBv dT1ncm91cHMKICAgbGRhcCBtYWNoaW5lIHN1ZmZpeCA9IG91PWNvbXB1dGVycwogICBsZGFw IHN1ZmZpeCA9IGRjPWJsYWgsZGM9Y29tLGRjPWF1CgojIyBFTkQgU0FNQkEgU0VSVkVSIENP TkZJRyAjIwo= --------------050705030408060200020104--