From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Mark Laws Newsgroups: gmane.emacs.bugs Subject: bug#19688: [patch] add support for emacs daemon on Windows Date: Tue, 27 Jan 2015 17:40:27 +0900 Message-ID: References: <83h9ver459.fsf@gnu.org> <83d262qdx6.fsf@gnu.org> <54C62B6C.3050608@dancol.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a1140dc62f70abd050d9e3485 X-Trace: ger.gmane.org 1422348087 13672 80.91.229.3 (27 Jan 2015 08:41:27 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 27 Jan 2015 08:41:27 +0000 (UTC) Cc: 19688@debbugs.gnu.org To: Daniel Colascione Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Jan 27 09:41:20 2015 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1YG1i4-0007ZR-0w for geb-bug-gnu-emacs@m.gmane.org; Tue, 27 Jan 2015 09:41:20 +0100 Original-Received: from localhost ([::1]:45840 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YG1hw-0008FS-Tc for geb-bug-gnu-emacs@m.gmane.org; Tue, 27 Jan 2015 03:41:12 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:34867) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YG1hr-0008EX-Oq for bug-gnu-emacs@gnu.org; Tue, 27 Jan 2015 03:41:08 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YG1hn-0007f3-Mp for bug-gnu-emacs@gnu.org; Tue, 27 Jan 2015 03:41:07 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:38808) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YG1hn-0007es-Jt for bug-gnu-emacs@gnu.org; Tue, 27 Jan 2015 03:41:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1YG1hm-0007MR-VO for bug-gnu-emacs@gnu.org; Tue, 27 Jan 2015 03:41:03 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Mark Laws Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 27 Jan 2015 08:41:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 19688 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 19688-submit@debbugs.gnu.org id=B19688.142234803928260 (code B ref 19688); Tue, 27 Jan 2015 08:41:02 +0000 Original-Received: (at 19688) by debbugs.gnu.org; 27 Jan 2015 08:40:39 +0000 Original-Received: from localhost ([127.0.0.1]:57500 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YG1hN-0007Li-SK for submit@debbugs.gnu.org; Tue, 27 Jan 2015 03:40:38 -0500 Original-Received: from mail-ig0-f177.google.com ([209.85.213.177]:55887) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YG1hJ-0007LU-T2 for 19688@debbugs.gnu.org; Tue, 27 Jan 2015 03:40:34 -0500 Original-Received: by mail-ig0-f177.google.com with SMTP id z20so3384206igj.4 for <19688@debbugs.gnu.org>; Tue, 27 Jan 2015 00:40:28 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=6gjytWHxR0n5m5Pjr0avb6lF2ttyolNZn7+GHvf6g70=; b=mn1P2gDpDpNKwF7ECpnvC79euBoITWpIvvIwUr4TRtk7ZR4nnHp1P+z4aTsRyB/2hx wPnrG3Hz2RITbyOsDfmHAwBnYpl71xPelRdcNGSnulbGFFAKe9jI3xFp6ORe8LRBU5Uu Iio7Il1O77DFz3WyeDv7Bmg8v6jFEYFRNAcFp1+kJe9cl6t9bjyM1EoCNk/jyfj0SJem NasRwBm8irM3szgeOJx7/ZLd/B0zpYEg0sDVPcvCrGFJOAyrI5H0ICTdW15pKgXNX+d/ PxbEmqQR0nB986w4Qeg+xwqV2uL1D6aiN33Kjksu7vMaRMzk50v6lSOHrVnWO1xGcs/8 I0rA== X-Gm-Message-State: ALoCoQk6S76OmwoSoxw8B/632p0K936LGMtIbGqE0TNK3YJq/Fu05rgthUFW2i4s/0WyQtRhIO/0 X-Received: by 10.107.160.193 with SMTP id j184mr1057155ioe.0.1422348028115; Tue, 27 Jan 2015 00:40:28 -0800 (PST) Original-Received: by 10.36.65.195 with HTTP; Tue, 27 Jan 2015 00:40:27 -0800 (PST) X-Originating-IP: [119.245.8.208] In-Reply-To: <54C62B6C.3050608@dancol.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:98784 Archived-At: --001a1140dc62f70abd050d9e3485 Content-Type: text/plain; charset=ISO-8859-1 On Mon, Jan 26, 2015 at 8:56 PM, Daniel Colascione wrote: > Inheriting an anonymous event feels a bit cleaner to me; you can provide > the HANDLE value in an environment variable or a command line parameter. > Failing that, the event name should at least contain "emacs" somewhere > so as to not confuse people browsing named object directories. It may seem cleaner in that the event doesn't leak into a shared namespace, but it requires significantly more code. Other handles may also get unnecessarily inherited as a result, and it would require yet more code to ensure they don't--it's difficult to ensure that it's doing exactly what you want. The named event method is much, much simpler. See for yourself; I've attached the patch written three ways: a named event (simple), an inherited event passed through the environment (a bit complicated), and an inherited event passed via the command line (pretty heinous). Also, I added multiple daemon support--after another look at the code, I saw no reason to not include it, though there's still one difference between the Windows and UNIX implementations: emacsclient can't provide a name to be used for the daemon when it's starting a new Emacs (but a user could provide one if they used emacs --daemon=foo). -- |v\ /\ |\ |< |_ /\ \^| // --001a1140dc62f70abd050d9e3485 Content-Type: application/octet-stream; name="emacs-windows-daemon-inheritev.patch" Content-Disposition: attachment; filename="emacs-windows-daemon-inheritev.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i5f15mt11 ZGlmZiAtLWdpdCBhL2xpYi1zcmMvZW1hY3NjbGllbnQuYyBiL2xpYi1zcmMvZW1hY3NjbGllbnQu YwppbmRleCBhMDRkZGE2Li5hMWQxYzQ0IDEwMDY0NAotLS0gYS9saWItc3JjL2VtYWNzY2xpZW50 LmMKKysrIGIvbGliLXNyYy9lbWFjc2NsaWVudC5jCkBAIC01OTUsMTMgKzU5NSw2IEBAIGRlY29k ZV9vcHRpb25zIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICBkaXNwbGF5ID0gTlVMTDsK ICAgICAgIHR0eSA9IDE7CiAgICAgfQotCi0gIGlmIChhbHRlcm5hdGVfZWRpdG9yICYmIGFsdGVy bmF0ZV9lZGl0b3JbMF0gPT0gJ1wwJykKLSAgICB7Ci0gICAgICBtZXNzYWdlICh0cnVlLCAiLS1h bHRlcm5hdGUtZWRpdG9yIGFyZ3VtZW50IG9yIEFMVEVSTkFURV9FRElUT1IgdmFyaWFibGUgY2Fu bm90IGJlXG5cCi1hbiBlbXB0eSBzdHJpbmciKTsKLSAgICAgIGV4aXQgKEVYSVRfRkFJTFVSRSk7 Ci0gICAgfQogI2VuZGlmIC8qIFdJTkRPV1NOVCAqLwogfQogCkBAIC02NDIsMTAgKzYzNSw4IEBA IFRoZSBmb2xsb3dpbmcgT1BUSU9OUyBhcmUgYWNjZXB0ZWQ6XG5cCiAJCQlTZXQgZmlsZW5hbWUg b2YgdGhlIFRDUCBhdXRoZW50aWNhdGlvbiBmaWxlXG5cCiAtYSBFRElUT1IsIC0tYWx0ZXJuYXRl LWVkaXRvcj1FRElUT1JcblwKIAkJCUVkaXRvciB0byBmYWxsYmFjayB0byBpZiB0aGUgc2VydmVy IGlzIG5vdCBydW5uaW5nXG4iCi0jaWZuZGVmIFdJTkRPV1NOVAogIgkJCUlmIEVESVRPUiBpcyB0 aGUgZW1wdHkgc3RyaW5nLCBzdGFydCBFbWFjcyBpbiBkYWVtb25cblwKIAkJCW1vZGUgYW5kIHRy eSBjb25uZWN0aW5nIGFnYWluXG4iCi0jZW5kaWYgLyogbm90IFdJTkRPV1NOVCAqLwogIlxuXAog UmVwb3J0IGJ1Z3Mgd2l0aCBNLXggcmVwb3J0LWVtYWNzLWJ1Zy5cbiIpOwogICBleGl0IChFWElU X1NVQ0NFU1MpOwpAQCAtMTQ1OSw5ICsxNDUwLDY2IEBAIHczMl9naXZlX2ZvY3VzICh2b2lkKQog LyogU3RhcnQgdGhlIGVtYWNzIGRhZW1vbiBhbmQgdHJ5IHRvIGNvbm5lY3QgdG8gaXQuICAqLwog CiBzdGF0aWMgdm9pZAorY29ubmVjdF90b19lbWFjc19zb2NrZXQgKHZvaWQpCit7CisjaWZkZWYg V0lORE9XU05UCisgIC8qIEl0J3MganVzdCBhIHByb2dyZXNzIG1lc3NhZ2UsIHNvIGRvbid0IHBv cCBhIGRpYWxvZyBpZiB0aGlzIGlzCisgICAgIGVtYWNzY2xpZW50dy4gICovCisgIGlmICghdzMy X3dpbmRvd19hcHAgKCkpCisjZW5kaWYKKyAgbWVzc2FnZSAodHJ1ZSwgIkVtYWNzIGRhZW1vbiBz aG91bGQgaGF2ZSBzdGFydGVkLCB0cnlpbmcgdG8gY29ubmVjdCBhZ2FpblxuIik7CisgIGlmICgo ZW1hY3Nfc29ja2V0ID0gc2V0X3NvY2tldCAoMSkpID09IElOVkFMSURfU09DS0VUKQorICAgIHsK KyAgICAgIG1lc3NhZ2UgKHRydWUsICJFcnJvcjogQ2Fubm90IGNvbm5lY3QgZXZlbiBhZnRlciBz dGFydGluZyB0aGUgRW1hY3MgZGFlbW9uXG4iKTsKKyAgICAgIGV4aXQgKEVYSVRfRkFJTFVSRSk7 CisgICAgfQorfQorCitzdGF0aWMgdm9pZAogc3RhcnRfZGFlbW9uX2FuZF9yZXRyeV9zZXRfc29j a2V0ICh2b2lkKQogewotI2lmbmRlZiBXSU5ET1dTTlQKKyNpZmRlZiBXSU5ET1dTTlQKKyAgRFdP UkQgd2FpdF9yZXN1bHQ7CisgIEhBTkRMRSB3MzJfZGFlbW9uX2V2ZW50OworICBTVEFSVFVQSU5G TyBzaTsKKyAgUFJPQ0VTU19JTkZPUk1BVElPTiBwaTsKKyAgU0VDVVJJVFlfQVRUUklCVVRFUyBz YTsKKyAgY2hhciBldmJ1ZlszMl07CisKKyAgWmVyb01lbW9yeSAoJnNpLCBzaXplb2Ygc2kpOwor ICBzaS5jYiA9IHNpemVvZiBzaTsKKyAgWmVyb01lbW9yeSAoJnBpLCBzaXplb2YgcGkpOworCisg IHNhLm5MZW5ndGggPSBzaXplb2Ygc2E7CisgIHNhLmxwU2VjdXJpdHlEZXNjcmlwdG9yID0gTlVM TDsKKyAgc2EuYkluaGVyaXRIYW5kbGUgPSBUUlVFOworCisgIHczMl9kYWVtb25fZXZlbnQgPSBD cmVhdGVFdmVudCAoJnNhLCBUUlVFLCBGQUxTRSwgTlVMTCk7CisgIGlmICh3MzJfZGFlbW9uX2V2 ZW50ID09IE5VTEwpCisgICAgeworICAgICAgbWVzc2FnZSAodHJ1ZSwgIkNvdWxkbid0IGNyZWF0 ZSBXaW5kb3dzIGRhZW1vbiBldmVudCIpOworICAgICAgZXhpdCAoRVhJVF9GQUlMVVJFKTsKKyAg ICB9CisKKyAgc25wcmludGYgKGV2YnVmLCBzaXplb2YgZXZidWYsICIlcCIsIHczMl9kYWVtb25f ZXZlbnQpOworICBTZXRFbnZpcm9ubWVudFZhcmlhYmxlICgiRU1BQ1NfVzMyX0RBRU1PTl9FVkVO VCIsIGV2YnVmKTsKKyAgaWYgKCFDcmVhdGVQcm9jZXNzIChOVUxMLCAiZW1hY3MgLS1kYWVtb24i LCBOVUxMLCBOVUxMLCBUUlVFLAorICAgICAgICAgICAgICAgICAgICAgIENSRUFURV9OT19XSU5E T1csIE5VTEwsIE5VTEwsICZzaSwgJnBpKSkKKyAgICB7CisgICAgICBtZXNzYWdlICh0cnVlLCAi JXM6IGVycm9yIHN0YXJ0aW5nIGVtYWNzIGRhZW1vblxuIiwgcHJvZ25hbWUpOworICAgICAgZXhp dCAoRVhJVF9GQUlMVVJFKTsKKyAgICB9CisKKyAgaWYgKFdhaXRGb3JTaW5nbGVPYmplY3QgKHcz Ml9kYWVtb25fZXZlbnQsIElORklOSVRFKSAhPSBXQUlUX09CSkVDVF8wKQorICAgIHsKKyAgICAg IG1lc3NhZ2UgKHRydWUsICJFcnJvciB3aGlsZSB3YWl0aW5nIGZvciBXaW5kb3dzIGRhZW1vbiBl dmVudCIpOworICAgICAgZXhpdCAoRVhJVF9GQUlMVVJFKTsKKyAgICB9CisgIENsb3NlSGFuZGxl ICh3MzJfZGFlbW9uX2V2ZW50KTsKKworICAvKiBUcnkgY29ubmVjdGluZywgdGhlIGRhZW1vbiBz aG91bGQgaGF2ZSBzdGFydGVkIGJ5IG5vdy4gICovCisgIGNvbm5lY3RfdG9fZW1hY3Nfc29ja2V0 ICgpOworI2VsaWYgIWRlZmluZWQoV0lORE9XU05UKQogICBwaWRfdCBkcGlkOwogICBpbnQgc3Rh dHVzOwogCkBAIC0xNDc5LDEyICsxNTI3LDcgQEAgc3RhcnRfZGFlbW9uX2FuZF9yZXRyeV9zZXRf c29ja2V0ICh2b2lkKQogCX0KIAogICAgICAgLyogVHJ5IGNvbm5lY3RpbmcsIHRoZSBkYWVtb24g c2hvdWxkIGhhdmUgc3RhcnRlZCBieSBub3cuICAqLwotICAgICAgbWVzc2FnZSAodHJ1ZSwgIkVt YWNzIGRhZW1vbiBzaG91bGQgaGF2ZSBzdGFydGVkLCB0cnlpbmcgdG8gY29ubmVjdCBhZ2Fpblxu Iik7Ci0gICAgICBpZiAoKGVtYWNzX3NvY2tldCA9IHNldF9zb2NrZXQgKDEpKSA9PSBJTlZBTElE X1NPQ0tFVCkKLQl7Ci0JICBtZXNzYWdlICh0cnVlLCAiRXJyb3I6IENhbm5vdCBjb25uZWN0IGV2 ZW4gYWZ0ZXIgc3RhcnRpbmcgdGhlIEVtYWNzIGRhZW1vblxuIik7Ci0JICBleGl0IChFWElUX0ZB SUxVUkUpOwotCX0KKyAgICAgIGNvbm5lY3RfdG9fZW1hY3Nfc29ja2V0ICgpOwogICAgIH0KICAg ZWxzZSBpZiAoZHBpZCA8IDApCiAgICAgewpAQCAtMTUxMSw3ICsxNTU0LDcgQEAgc3RhcnRfZGFl bW9uX2FuZF9yZXRyeV9zZXRfc29ja2V0ICh2b2lkKQogICAgICAgZXhlY3ZwICgiZW1hY3MiLCBk X2FyZ3YpOwogICAgICAgbWVzc2FnZSAodHJ1ZSwgIiVzOiBlcnJvciBzdGFydGluZyBlbWFjcyBk YWVtb25cbiIsIHByb2duYW1lKTsKICAgICB9Ci0jZW5kaWYgLyogV0lORE9XU05UICovCisjZW5k aWYgLyogIVdJTkRPV1NOVCAqLwogfQogCiBpbnQKZGlmZiAtLWdpdCBhL2xpc3AvZnJhbWUuZWwg Yi9saXNwL2ZyYW1lLmVsCmluZGV4IDFkNWJiZjIuLjIzYmJjMGQgMTAwNjQ0Ci0tLSBhL2xpc3Av ZnJhbWUuZWwKKysrIGIvbGlzcC9mcmFtZS5lbApAQCAtNTM2LDcgKzUzNiw4IEBAIGlzIG5vdCBj b25zaWRlcmVkIChzZWUgYG5leHQtZnJhbWUnKS4iCiBSZXR1cm4gbmlsIGlmIHdlIGRvbid0IGtu b3cgaG93IHRvIGludGVycHJldCBESVNQTEFZLiIKICAgOzsgTVMtV2luZG93cyBkb2Vzbid0IGtu b3cgaG93IHRvIGNyZWF0ZSBhIEdVSSBmcmFtZSBpbiBhIC1udyBzZXNzaW9uLgogICAoaWYgKGFu ZCAoZXEgc3lzdGVtLXR5cGUgJ3dpbmRvd3MtbnQpCi0JICAgKG51bGwgKHdpbmRvdy1zeXN0ZW0p KSkKKwkgICAobnVsbCAod2luZG93LXN5c3RlbSkpCisJICAgKG5vdCAoZGFlbW9ucCkpKQogICAg ICAgbmlsCiAgICAgKGNsLWxvb3AgZm9yIGRlc2NyaXB0b3IgaW4gZGlzcGxheS1mb3JtYXQtYWxp c3QKIAkgICAgIGZvciBwYXR0ZXJuID0gKGNhciBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEvbGlz cC9mcmFtZXNldC5lbCBiL2xpc3AvZnJhbWVzZXQuZWwKaW5kZXggNGEwNjM3NC4uMTdmZTM5YiAx MDA2NDQKLS0tIGEvbGlzcC9mcmFtZXNldC5lbAorKysgYi9saXNwL2ZyYW1lc2V0LmVsCkBAIC0x MDIyLDggKzEwMjIsOCBAQCBJbnRlcm5hbCB1c2Ugb25seS4iCiAoZGVmdW4gZnJhbWVzZXQta2Vl cC1vcmlnaW5hbC1kaXNwbGF5LXAgKGZvcmNlLWRpc3BsYXkpCiAgICJUcnVlIGlmIHNhdmVkIGZy YW1lcycgZGlzcGxheXMgc2hvdWxkIGJlIGhvbm9yZWQuCiBGb3IgdGhlIG1lYW5pbmcgb2YgRk9S Q0UtRElTUExBWSwgc2VlIGBmcmFtZXNldC1yZXN0b3JlJy4iCi0gIChjb25kICgoZGFlbW9ucCkg dCkKLQkoKGVxIHN5c3RlbS10eXBlICd3aW5kb3dzLW50KSBuaWwpIDs7IERvZXMgbnMgc3VwcG9y dCBtb3JlIHRoYW4gb25lIGRpc3BsYXk/CisgIChjb25kICgoZXEgc3lzdGVtLXR5cGUgJ3dpbmRv d3MtbnQpIG5pbCkgOzsgRG9lcyBucyBzdXBwb3J0IG1vcmUgdGhhbiBvbmUgZGlzcGxheT8KKwko KGRhZW1vbnApIHQpCiAJKHQgKG5vdCBmb3JjZS1kaXNwbGF5KSkpKQogCiAoZGVmdW4gZnJhbWVz ZXQtbWluaWJ1ZmZlcmxlc3MtZmlyc3QtcCAoZnJhbWUxIF9mcmFtZTIpCmRpZmYgLS1naXQgYS9s aXNwL3NlcnZlci5lbCBiL2xpc3Avc2VydmVyLmVsCmluZGV4IDE2NmNkNDQuLjk1ODViMTcgMTAw NjQ0Ci0tLSBhL2xpc3Avc2VydmVyLmVsCisrKyBiL2xpc3Avc2VydmVyLmVsCkBAIC0xMTM5LDkg KzExMzksMTIgQEAgVGhlIGZvbGxvd2luZyBjb21tYW5kcyBhcmUgYWNjZXB0ZWQgYnkgdGhlIGNs aWVudDoKICAgICAgICAgICAgICAgICAgOzsgZnJhbWUuICBJZiBydW5uaW5nIGEgR1VJIHNlcnZl ciwgZm9yY2UgdGhlIGZyYW1lCiAgICAgICAgICAgICAgICAgIDs7IHR5cGUgdG8gR1VJLiAgKEN5 Z3dpbiBpcyBwZXJmZWN0bHkgaGFwcHkgd2l0aAogICAgICAgICAgICAgICAgICA7OyBtdWx0aS10 dHkgc3VwcG9ydCwgc28gZG9uJ3Qgb3ZlcnJpZGUgdGhlIHVzZXIncwotICAgICAgICAgICAgICAg ICA7OyBjaG9pY2UgdGhlcmUuKQorICAgICAgICAgICAgICAgICA7OyBjaG9pY2UgdGhlcmUuKSAg SW4gZGFlbW9uIG1vZGUgb24gV2luZG93cywgd2UgY2FuJ3QKKyAgICAgICAgICAgICAgICAgOzsg bWFrZSB0dHkgZnJhbWVzLCBzbyBmb3JjZSB0aGUgZnJhbWUgdHlwZSB0byBHVUkKKyAgICAgICAg ICAgICAgICAgOzsgdGhlcmUgdG9vLgogICAgICAgICAgICAgICAgICAod2hlbiAoYW5kIChlcSBz eXN0ZW0tdHlwZSAnd2luZG93cy1udCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXEg d2luZG93LXN5c3RlbSAndzMyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3IgKGRh ZW1vbnApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcSB3aW5kb3ctc3lzdGVt ICd3MzIpKSkKICAgICAgICAgICAgICAgICAgICAocHVzaCAiLXdpbmRvdy1zeXN0ZW0iIGFyZ3Mt bGVmdCkpKQogCiAgICAgICAgICAgICAgICAgOzsgLXBvc2l0aW9uIExJTkVbOkNPTFVNTl06ICBT ZXQgcG9pbnQgdG8gdGhlIGdpdmVuCkBAIC0xMjE1LDcgKzEyMTgsMTAgQEAgVGhlIGZvbGxvd2lu ZyBjb21tYW5kcyBhcmUgYWNjZXB0ZWQgYnkgdGhlIGNsaWVudDoKIAkJCQkJICAgdGVybWluYWwt ZnJhbWUpKSkpKQogCQkgICAgKHNldHEgdHR5LW5hbWUgbmlsIHR0eS10eXBlIG5pbCkKIAkJICAg IChpZiBkaXNwbGF5IChzZXJ2ZXItc2VsZWN0LWRpc3BsYXkgZGlzcGxheSkpKQotCQkgICAoKGVx IHR0eS1uYW1lICd3aW5kb3ctc3lzdGVtKQorCQkgICAoKG9yIChhbmQgKGVxIHN5c3RlbS10eXBl ICd3aW5kb3dzLW50KQorCQkJICAgICAoZGFlbW9ucCkKKwkJCSAgICAgKHNldHEgZGlzcGxheSAi dzMyIikpCisJCSAgICAgICAgKGVxIHR0eS1uYW1lICd3aW5kb3ctc3lzdGVtKSkKIAkJICAgIChz ZXJ2ZXItY3JlYXRlLXdpbmRvdy1zeXN0ZW0tZnJhbWUgZGlzcGxheSBub3dhaXQgcHJvYwogCQkJ CQkJICAgICAgIHBhcmVudC1pZAogCQkJCQkJICAgICAgIGZyYW1lLXBhcmFtZXRlcnMpKQpkaWZm IC0tZ2l0IGEvc3JjL2Rpc3BuZXcuYyBiL3NyYy9kaXNwbmV3LmMKaW5kZXggM2M4MTE3ZS4uZTg2 ZmJiOCAxMDA2NDQKLS0tIGEvc3JjL2Rpc3BuZXcuYworKysgYi9zcmMvZGlzcG5ldy5jCkBAIC01 OTc0LDkgKzU5NzQsMTIgQEAgaW5pdF9kaXNwbGF5ICh2b2lkKQogICAgIH0KICNlbmRpZiAvKiBT SUdXSU5DSCAqLwogCi0gIC8qIElmIHJ1bm5pbmcgYXMgYSBkYWVtb24sIG5vIG5lZWQgdG8gaW5p dGlhbGl6ZSBhbnkgZnJhbWVzL3Rlcm1pbmFsLiAqLworICAvKiBJZiBydW5uaW5nIGFzIGEgZGFl bW9uLCBubyBuZWVkIHRvIGluaXRpYWxpemUgYW55IGZyYW1lcy90ZXJtaW5hbCwKKyAgICAgZXhj ZXB0IG9uIFdpbmRvd3MsIHdoZXJlIHdlIGF0IGxlYXN0IHdhbnQgdG8gaW5pdGlhbGl6ZSBpdC4g ICovCisjaWZuZGVmIFdJTkRPV1NOVAogICBpZiAoSVNfREFFTU9OKQogICAgICAgcmV0dXJuOwor I2VuZGlmCiAKICAgLyogSWYgdGhlIHVzZXIgd2FudHMgdG8gdXNlIGEgd2luZG93IHN5c3RlbSwg d2Ugc2hvdWxkbid0IGJvdGhlcgogICAgICBpbml0aWFsaXppbmcgdGhlIHRlcm1pbmFsLiAgVGhp cyBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCB3aGVuIHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2VtYWNz LmMgYi9zcmMvZW1hY3MuYwppbmRleCAzNDVmZTNlLi43MjU2MDVmIDEwMDY0NAotLS0gYS9zcmMv ZW1hY3MuYworKysgYi9zcmMvZW1hY3MuYwpAQCAtMTk1LDkgKzE5NSwxMyBAQCBib29sIG5vX3Np dGVfbGlzcDsKIC8qIE5hbWUgZm9yIHRoZSBzZXJ2ZXIgc3RhcnRlZCBieSB0aGUgZGFlbW9uLiov CiBzdGF0aWMgY2hhciAqZGFlbW9uX25hbWU7CiAKKyNpZm5kZWYgV0lORE9XU05UCiAvKiBQaXBl IHVzZWQgdG8gc2VuZCBleGl0IG5vdGlmaWNhdGlvbiB0byB0aGUgZGFlbW9uIHBhcmVudCBhdAog ICAgc3RhcnR1cC4gICovCiBpbnQgZGFlbW9uX3BpcGVbMl07CisjZWxzZQorSEFORExFIHczMl9k YWVtb25fZXZlbnQ7CisjZW5kaWYKIAogLyogU2F2ZSBhcmd2IGFuZCBhcmdjLiAgKi8KIGNoYXIg Kippbml0aWFsX2FyZ3Y7CkBAIC05ODAsOCArOTg0LDEyIEBAIG1haW4gKGludCBhcmdjLCBjaGFy ICoqYXJndikKICAgICAgIGV4aXQgKDApOwogICAgIH0KIAorI2lmbmRlZiBXSU5ET1dTTlQKICAg LyogTWFrZSBzdXJlIElTX0RBRU1PTiBzdGFydHMgdXAgYXMgZmFsc2UuICAqLwogICBkYWVtb25f cGlwZVsxXSA9IDA7CisjZWxzZQorICB3MzJfZGFlbW9uX2V2ZW50ID0gTlVMTDsKKyNlbmRpZgog CiAgIGlmIChhcmdtYXRjaCAoYXJndiwgYXJnYywgIi1kYWVtb24iLCAiLS1kYWVtb24iLCA1LCBO VUxMLCAmc2tpcF9hcmdzKQogICAgICAgfHwgYXJnbWF0Y2ggKGFyZ3YsIGFyZ2MsICItZGFlbW9u IiwgIi0tZGFlbW9uIiwgNSwgJmRuYW1lX2FyZywgJnNraXBfYXJncykpCkBAIC0xMTExLDEwICsx MTE5LDQ0IEBAIFVzaW5nIGFuIEVtYWNzIGNvbmZpZ3VyZWQgd2l0aCAtLXdpdGgteC10b29sa2l0 PWx1Y2lkIGRvZXMgbm90IGhhdmUgdGhpcyBwcm9ibGVtCiAgICAgICBlbWFjc19jbG9zZSAoZGFl bW9uX3BpcGVbMF0pOwogCiAgICAgICBzZXRzaWQgKCk7Ci0jZWxzZSAvKiBET1NfTlQgKi8KKyNl bGlmIGRlZmluZWQoV0lORE9XU05UKQorICAgICAgRFdPUkQgcmV0OworICAgICAgY2hhciBldmJ1 ZlszMl07CisKKyAgICAgIHJldCA9IEdldEVudmlyb25tZW50VmFyaWFibGUgKCJFTUFDU19XMzJf REFFTU9OX0VWRU5UIiwgZXZidWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzaXplb2YgZXZidWYpOworICAgICAgaWYgKHJldCA9PSAwKQorICAgICAgICB7CisgICAgICAg ICAgaWYgKEdldExhc3RFcnJvciAoKSA9PSBFUlJPUl9FTlZWQVJfTk9UX0ZPVU5EKQorICAgICAg ICAgICAgeworICAgICAgICAgICAgICAvKiBXZSB3ZXJlbid0IGNhbGxlZCBieSBlbWFjc2NsaWVu dDsgdGhlIHVzZXIgc3RhcnRlZCB0aGUKKyAgICAgICAgICAgICAgICAgZGFlbW9uLiAgKi8KKyAg ICAgICAgICAgICAgdzMyX2RhZW1vbl9ldmVudCA9IENyZWF0ZUV2ZW50IChOVUxMLCBUUlVFLCBG QUxTRSwgTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAg eworICAgICAgICAgICAgICBmcHJpbnRmIChzdGRlcnIsICJDb3VsZG4ndCBjb3B5IGhhbmRsZSBh ZGRyZXNzIGZyb20gZW52aXJvbm1lbnRcbiIpOworICAgICAgICAgICAgICBleGl0ICgxKTsKKyAg ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgZWxzZSBpZiAoc3NjYW5mIChldmJ1ZiwgIiVw IiwgJnczMl9kYWVtb25fZXZlbnQpIDwgMSkKKyAgICAgICAgeworICAgICAgICAgIGZwcmludGYg KHN0ZGVyciwgIkNvdWxkbid0IHBhcnNlIGhhbmRsZSBhZGRyZXNzIGZyb20gZW52aXJvbm1lbnRc biIpOworICAgICAgICAgIGV4aXQgKDEpOworICAgICAgICB9CisKKyAgICAgIGlmICh3MzJfZGFl bW9uX2V2ZW50ID09IE5VTEwpCisgICAgICAgIHsKKyAgICAgICAgICBmcHJpbnRmIChzdGRlcnIs ICJDb3VsZG4ndCBjcmVhdGUgb3IgZ2V0IGV2ZW50IGhhbmRsZSBmb3IgZGFlbW9uXG4iKTsKKyAg ICAgICAgICBleGl0ICgxKTsKKyAgICAgICAgfQorCisgICAgICBpZiAoZG5hbWVfYXJnKQorICAg ICAgICBkYWVtb25fbmFtZSA9IHhzdHJkdXAgKGRuYW1lX2FyZyk7CisjZWxzZSAvKiBNU0RPUyAq LwogICAgICAgZnByaW50ZiAoc3RkZXJyLCAiVGhpcyBwbGF0Zm9ybSBkb2VzIG5vdCBzdXBwb3J0 IHRoZSAtZGFlbW9uIGZsYWcuXG4iKTsKICAgICAgIGV4aXQgKDEpOwotI2VuZGlmIC8qIERPU19O VCAqLworI2VuZGlmIC8qIE1TRE9TICovCiAgICAgfQogCiAjaWYgZGVmaW5lZCBIQVZFX1BUSFJF QUQgJiYgIWRlZmluZWQgU1lTVEVNX01BTExPQyBcCkBAIC0yMzEwLDIzICsyMzUyLDQwIEBAIElm IHRoZSBkYWVtb24gd2FzIGdpdmVuIGEgbmFtZSBhcmd1bWVudCwgcmV0dXJuIHRoYXQgbmFtZS4g Ki8pCiAgICAgcmV0dXJuIFFuaWw7CiB9CiAKLURFRlVOICgiZGFlbW9uLWluaXRpYWxpemVkIiwg RmRhZW1vbl9pbml0aWFsaXplZCwgU2RhZW1vbl9pbml0aWFsaXplZCwgMCwgMCwgMCwKLSAgICAg ICBkb2M6IC8qIE1hcmsgdGhlIEVtYWNzIGRhZW1vbiBhcyBiZWluZyBpbml0aWFsaXplZC4KLVRo aXMgZmluaXNoZXMgdGhlIGRhZW1vbml6YXRpb24gcHJvY2VzcyBieSBkb2luZyB0aGUgb3RoZXIg aGFsZiBvZiBkZXRhY2hpbmcKLWZyb20gdGhlIHBhcmVudCBwcm9jZXNzIGFuZCBpdHMgdHR5IGZp bGUgZGVzY3JpcHRvcnMuICAqLykKLSAgKHZvaWQpCitzdGF0aWMgdm9pZAorZGFlbW9uX2NoZWNr X3ByZWNvbmRpdGlvbnMgKHZvaWQpCiB7Ci0gIGludCBuZmQ7Ci0gIGJvb2wgZXJyID0gMDsKLQog ICBpZiAoIUlTX0RBRU1PTikKICAgICBlcnJvciAoIlRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgYmUg Y2FsbGVkIGlmIGVtYWNzIGlzIHJ1biBhcyBhIGRhZW1vbiIpOwogCi0gIGlmIChkYWVtb25fcGlw ZVsxXSA8IDApCisjaWZkZWYgV0lORE9XU05UCisgIC8qIElTX0RBRU1PTiBhYm92ZSBhbHJlYWR5 IGNoZWNrcyB0aGF0IHczMl9kYWVtb25fZXZlbnQgIT0gTlVMTCwgc28gb25seQorICAgICBjaGVj ayB0aGF0IHdlIHN1Y2Nlc3NmdWxseSBzdGFydGVkIHRoZSBkYWVtb24gaGVyZS4gICovCisgIGlm ICh3MzJfZGFlbW9uX2V2ZW50ID09IElOVkFMSURfSEFORExFX1ZBTFVFKQorI2Vsc2UKKyAgaWYg KGRhZW1vbl9waXBlWzFdIDwgMCApCisjZW5kaWYKICAgICBlcnJvciAoIlRoZSBkYWVtb24gaGFz IGFscmVhZHkgYmVlbiBpbml0aWFsaXplZCIpOwogCiAgIGlmIChOSUxQIChWYWZ0ZXJfaW5pdF90 aW1lKSkKICAgICBlcnJvciAoIlRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgYmUgY2FsbGVkIGFmdGVy IGxvYWRpbmcgdGhlIGluaXQgZmlsZXMiKTsKK30KKworREVGVU4gKCJkYWVtb24taW5pdGlhbGl6 ZWQiLCBGZGFlbW9uX2luaXRpYWxpemVkLCBTZGFlbW9uX2luaXRpYWxpemVkLCAwLCAwLCAwLAor ICAgICAgIGRvYzogLyogTWFyayB0aGUgRW1hY3MgZGFlbW9uIGFzIGJlaW5nIGluaXRpYWxpemVk LgorVGhpcyBmaW5pc2hlcyB0aGUgZGFlbW9uaXphdGlvbiBwcm9jZXNzIGJ5IGRvaW5nIHRoZSBv dGhlciBoYWxmIG9mIGRldGFjaGluZworZnJvbSB0aGUgcGFyZW50IHByb2Nlc3MgYW5kIGl0cyB0 dHkgZmlsZSBkZXNjcmlwdG9ycy4gICovKQorICAodm9pZCkKK3sKKyAgZGFlbW9uX2NoZWNrX3By ZWNvbmRpdGlvbnMgKCk7CisjaWZkZWYgV0lORE9XU05UCisgIC8qIFNpZ25hbCB0aGUgd2FpdGlu ZyBlbWFjc2NsaWVudCBwcm9jZXNzLiAgKi8KKyAgU2V0RXZlbnQgKHczMl9kYWVtb25fZXZlbnQp OworICBDbG9zZUhhbmRsZSAodzMyX2RhZW1vbl9ldmVudCk7CisgIHczMl9kYWVtb25fZXZlbnQg PSBJTlZBTElEX0hBTkRMRV9WQUxVRTsKKyNlbHNlCisgIGludCBuZmQ7CisgIGJvb2wgZXJyID0g MDsKIAogICAvKiBHZXQgcmlkIG9mIHN0ZGluLCBzdGRvdXQgYW5kIHN0ZGVyci4gICovCiAgIG5m ZCA9IGVtYWNzX29wZW4gKCIvZGV2L251bGwiLCBPX1JEV1IsIDApOwpAQCAtMjM1MCw2ICsyNDA5 LDcgQEAgZnJvbSB0aGUgcGFyZW50IHByb2Nlc3MgYW5kIGl0cyB0dHkgZmlsZSBkZXNjcmlwdG9y cy4gICovKQogCiAgIGlmIChlcnIpCiAgICAgZXJyb3IgKCJJL08gZXJyb3IgZHVyaW5nIGRhZW1v biBpbml0aWFsaXphdGlvbiIpOworI2VuZGlmCiAgIHJldHVybiBRdDsKIH0KIApkaWZmIC0tZ2l0 IGEvc3JjL2tleWJvYXJkLmMgYi9zcmMva2V5Ym9hcmQuYwppbmRleCAzODNjMTA5Li44ZjBlMThm IDEwMDY0NAotLS0gYS9zcmMva2V5Ym9hcmQuYworKysgYi9zcmMva2V5Ym9hcmQuYwpAQCAtMzgy OSw3ICszODI5LDExIEBAIGtiZF9idWZmZXJfZ2V0X2V2ZW50IChLQk9BUkQgKiprYnAsCiAgIGlm IChub25pbnRlcmFjdGl2ZQogICAgICAgLyogSW4gY2FzZSB3ZSBhcmUgcnVubmluZyBhcyBhIGRh ZW1vbiwgb25seSBkbyB0aGlzIGJlZm9yZQogCSBkZXRhY2hpbmcgZnJvbSB0aGUgdGVybWluYWwu ICAqLworI2lmZGVmIFdJTkRPV1NOVAorICAgICAgfHwgKElTX0RBRU1PTiAmJiB3MzJfZGFlbW9u X2V2ZW50ICE9IElOVkFMSURfSEFORExFX1ZBTFVFKSkKKyNlbHNlCiAgICAgICB8fCAoSVNfREFF TU9OICYmIGRhZW1vbl9waXBlWzFdID49IDApKQorI2VuZGlmCiAgICAgewogICAgICAgaW50IGMg PSBnZXRjaGFyICgpOwogICAgICAgWFNFVElOVCAob2JqLCBjKTsKZGlmZiAtLWdpdCBhL3NyYy9s aXNwLmggYi9zcmMvbGlzcC5oCmluZGV4IGY1MjQyYWIuLjBiODU4MTcgMTAwNjQ0Ci0tLSBhL3Ny Yy9saXNwLmgKKysrIGIvc3JjL2xpc3AuaApAQCAtNDIxNSw5ICs0MjE1LDE0IEBAIGV4dGVybiBi b29sIG5vbmludGVyYWN0aXZlOwogZXh0ZXJuIGJvb2wgbm9fc2l0ZV9saXNwOwogCiAvKiBQaXBl IHVzZWQgdG8gc2VuZCBleGl0IG5vdGlmaWNhdGlvbiB0byB0aGUgZGFlbW9uIHBhcmVudCBhdAot ICAgc3RhcnR1cC4gICovCisgICBzdGFydHVwLiAgT24gV2luZG93cywgd2UgdXNlIGEga2VybmVs IGV2ZW50IGluc3RlYWQuICAqLworI2lmbmRlZiBXSU5ET1dTTlQKIGV4dGVybiBpbnQgZGFlbW9u X3BpcGVbMl07CiAjZGVmaW5lIElTX0RBRU1PTiAoZGFlbW9uX3BpcGVbMV0gIT0gMCkKKyNlbGlm IGRlZmluZWQoV0lORE9XU05UKQorZXh0ZXJuIHZvaWQgKnczMl9kYWVtb25fZXZlbnQ7CisjZGVm aW5lIElTX0RBRU1PTiAodzMyX2RhZW1vbl9ldmVudCAhPSBOVUxMKQorI2VuZGlmCiAKIC8qIFRy dWUgaWYgaGFuZGxpbmcgYSBmYXRhbCBlcnJvciBhbHJlYWR5LiAgKi8KIGV4dGVybiBib29sIGZh dGFsX2Vycm9yX2luX3Byb2dyZXNzOwpkaWZmIC0tZ2l0IGEvc3JjL21pbmlidWYuYyBiL3NyYy9t aW5pYnVmLmMKaW5kZXggMzQwOGJiOS4uZGVlN2NlOCAxMDA2NDQKLS0tIGEvc3JjL21pbmlidWYu YworKysgYi9zcmMvbWluaWJ1Zi5jCkBAIC00NTksNyArNDU5LDExIEBAIHJlYWRfbWluaWJ1ZiAo TGlzcF9PYmplY3QgbWFwLCBMaXNwX09iamVjdCBpbml0aWFsLCBMaXNwX09iamVjdCBwcm9tcHQs CiAgIGlmICgobm9uaW50ZXJhY3RpdmUKICAgICAgICAvKiBJbiBjYXNlIHdlIGFyZSBydW5uaW5n IGFzIGEgZGFlbW9uLCBvbmx5IGRvIHRoaXMgYmVmb3JlCiAJICBkZXRhY2hpbmcgZnJvbSB0aGUg dGVybWluYWwuICAqLworI2lmZGVmIFdJTkRPV1NOVAorICAgICAgIHx8IChJU19EQUVNT04gJiYg dzMyX2RhZW1vbl9ldmVudCAhPSBJTlZBTElEX0hBTkRMRV9WQUxVRSkpCisjZWxzZQogICAgICAg IHx8IChJU19EQUVNT04gJiYgKGRhZW1vbl9waXBlWzFdID49IDApKSkKKyNlbmRpZgogICAgICAg JiYgTklMUCAoVmV4ZWN1dGluZ19rYmRfbWFjcm8pKQogICAgIHsKICAgICAgIHZhbCA9IHJlYWRf bWluaWJ1Zl9ub25pbnRlcmFjdGl2ZSAobWFwLCBpbml0aWFsLCBwcm9tcHQsCg== --001a1140dc62f70abd050d9e3485 Content-Type: application/octet-stream; name="emacs-windows-daemon-inheritev-cmdline.patch" Content-Disposition: attachment; filename="emacs-windows-daemon-inheritev-cmdline.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i5f15mte2 ZGlmZiAtLWdpdCBhL2xpYi1zcmMvZW1hY3NjbGllbnQuYyBiL2xpYi1zcmMvZW1hY3NjbGllbnQu YwppbmRleCBhMDRkZGE2Li5hOWJjZTVhIDEwMDY0NAotLS0gYS9saWItc3JjL2VtYWNzY2xpZW50 LmMKKysrIGIvbGliLXNyYy9lbWFjc2NsaWVudC5jCkBAIC01OTUsMTMgKzU5NSw2IEBAIGRlY29k ZV9vcHRpb25zIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICBkaXNwbGF5ID0gTlVMTDsK ICAgICAgIHR0eSA9IDE7CiAgICAgfQotCi0gIGlmIChhbHRlcm5hdGVfZWRpdG9yICYmIGFsdGVy bmF0ZV9lZGl0b3JbMF0gPT0gJ1wwJykKLSAgICB7Ci0gICAgICBtZXNzYWdlICh0cnVlLCAiLS1h bHRlcm5hdGUtZWRpdG9yIGFyZ3VtZW50IG9yIEFMVEVSTkFURV9FRElUT1IgdmFyaWFibGUgY2Fu bm90IGJlXG5cCi1hbiBlbXB0eSBzdHJpbmciKTsKLSAgICAgIGV4aXQgKEVYSVRfRkFJTFVSRSk7 Ci0gICAgfQogI2VuZGlmIC8qIFdJTkRPV1NOVCAqLwogfQogCkBAIC02NDIsMTAgKzYzNSw4IEBA IFRoZSBmb2xsb3dpbmcgT1BUSU9OUyBhcmUgYWNjZXB0ZWQ6XG5cCiAJCQlTZXQgZmlsZW5hbWUg b2YgdGhlIFRDUCBhdXRoZW50aWNhdGlvbiBmaWxlXG5cCiAtYSBFRElUT1IsIC0tYWx0ZXJuYXRl LWVkaXRvcj1FRElUT1JcblwKIAkJCUVkaXRvciB0byBmYWxsYmFjayB0byBpZiB0aGUgc2VydmVy IGlzIG5vdCBydW5uaW5nXG4iCi0jaWZuZGVmIFdJTkRPV1NOVAogIgkJCUlmIEVESVRPUiBpcyB0 aGUgZW1wdHkgc3RyaW5nLCBzdGFydCBFbWFjcyBpbiBkYWVtb25cblwKIAkJCW1vZGUgYW5kIHRy eSBjb25uZWN0aW5nIGFnYWluXG4iCi0jZW5kaWYgLyogbm90IFdJTkRPV1NOVCAqLwogIlxuXAog UmVwb3J0IGJ1Z3Mgd2l0aCBNLXggcmVwb3J0LWVtYWNzLWJ1Zy5cbiIpOwogICBleGl0IChFWElU X1NVQ0NFU1MpOwpAQCAtMTQ1OSw5ICsxNDUwLDY1IEBAIHczMl9naXZlX2ZvY3VzICh2b2lkKQog LyogU3RhcnQgdGhlIGVtYWNzIGRhZW1vbiBhbmQgdHJ5IHRvIGNvbm5lY3QgdG8gaXQuICAqLwog CiBzdGF0aWMgdm9pZAorY29ubmVjdF90b19lbWFjc19zb2NrZXQgKHZvaWQpCit7CisjaWZkZWYg V0lORE9XU05UCisgIC8qIEl0J3MganVzdCBhIHByb2dyZXNzIG1lc3NhZ2UsIHNvIGRvbid0IHBv cCBhIGRpYWxvZyBpZiB0aGlzIGlzCisgICAgIGVtYWNzY2xpZW50dy4gICovCisgIGlmICghdzMy X3dpbmRvd19hcHAgKCkpCisjZW5kaWYKKyAgbWVzc2FnZSAodHJ1ZSwgIkVtYWNzIGRhZW1vbiBz aG91bGQgaGF2ZSBzdGFydGVkLCB0cnlpbmcgdG8gY29ubmVjdCBhZ2FpblxuIik7CisgIGlmICgo ZW1hY3Nfc29ja2V0ID0gc2V0X3NvY2tldCAoMSkpID09IElOVkFMSURfU09DS0VUKQorICAgIHsK KyAgICAgIG1lc3NhZ2UgKHRydWUsICJFcnJvcjogQ2Fubm90IGNvbm5lY3QgZXZlbiBhZnRlciBz dGFydGluZyB0aGUgRW1hY3MgZGFlbW9uXG4iKTsKKyAgICAgIGV4aXQgKEVYSVRfRkFJTFVSRSk7 CisgICAgfQorfQorCitzdGF0aWMgdm9pZAogc3RhcnRfZGFlbW9uX2FuZF9yZXRyeV9zZXRfc29j a2V0ICh2b2lkKQogewotI2lmbmRlZiBXSU5ET1dTTlQKKyNpZmRlZiBXSU5ET1dTTlQKKyAgRFdP UkQgd2FpdF9yZXN1bHQ7CisgIEhBTkRMRSB3MzJfZGFlbW9uX2V2ZW50OworICBTVEFSVFVQSU5G TyBzaTsKKyAgUFJPQ0VTU19JTkZPUk1BVElPTiBwaTsKKyAgU0VDVVJJVFlfQVRUUklCVVRFUyBz YTsKKyAgY2hhciBleGVjc3RyWzY0XTsKKworICBaZXJvTWVtb3J5ICgmc2ksIHNpemVvZiBzaSk7 CisgIHNpLmNiID0gc2l6ZW9mIHNpOworICBaZXJvTWVtb3J5ICgmcGksIHNpemVvZiBwaSk7CisK KyAgc2Eubkxlbmd0aCA9IHNpemVvZiBzYTsKKyAgc2EubHBTZWN1cml0eURlc2NyaXB0b3IgPSBO VUxMOworICBzYS5iSW5oZXJpdEhhbmRsZSA9IFRSVUU7CisKKyAgdzMyX2RhZW1vbl9ldmVudCA9 IENyZWF0ZUV2ZW50ICgmc2EsIFRSVUUsIEZBTFNFLCBOVUxMKTsKKyAgaWYgKHczMl9kYWVtb25f ZXZlbnQgPT0gTlVMTCkKKyAgICB7CisgICAgICBtZXNzYWdlICh0cnVlLCAiQ291bGRuJ3QgY3Jl YXRlIFdpbmRvd3MgZGFlbW9uIGV2ZW50Iik7CisgICAgICBleGl0IChFWElUX0ZBSUxVUkUpOwor ICAgIH0KKworICBzbnByaW50ZiAoZXhlY3N0ciwgc2l6ZW9mIGV4ZWNzdHIsICJlbWFjcyAtLWRh ZW1vbj0qJXAiLCB3MzJfZGFlbW9uX2V2ZW50KTsKKyAgaWYgKCFDcmVhdGVQcm9jZXNzIChOVUxM LCBleGVjc3RyLCBOVUxMLCBOVUxMLCBUUlVFLCBDUkVBVEVfTk9fV0lORE9XLCBOVUxMLAorICAg ICAgICAgICAgICAgICAgICAgIE5VTEwsICZzaSwgJnBpKSkKKyAgICB7CisgICAgICBtZXNzYWdl ICh0cnVlLCAiJXM6IGVycm9yIHN0YXJ0aW5nIGVtYWNzIGRhZW1vblxuIiwgcHJvZ25hbWUpOwor ICAgICAgZXhpdCAoRVhJVF9GQUlMVVJFKTsKKyAgICB9CisKKyAgaWYgKFdhaXRGb3JTaW5nbGVP YmplY3QgKHczMl9kYWVtb25fZXZlbnQsIElORklOSVRFKSAhPSBXQUlUX09CSkVDVF8wKQorICAg IHsKKyAgICAgIG1lc3NhZ2UgKHRydWUsICJFcnJvciB3aGlsZSB3YWl0aW5nIGZvciBXaW5kb3dz IGRhZW1vbiBldmVudCIpOworICAgICAgZXhpdCAoRVhJVF9GQUlMVVJFKTsKKyAgICB9CisgIENs b3NlSGFuZGxlICh3MzJfZGFlbW9uX2V2ZW50KTsKKworICAvKiBUcnkgY29ubmVjdGluZywgdGhl IGRhZW1vbiBzaG91bGQgaGF2ZSBzdGFydGVkIGJ5IG5vdy4gICovCisgIGNvbm5lY3RfdG9fZW1h Y3Nfc29ja2V0ICgpOworI2VsaWYgIWRlZmluZWQoV0lORE9XU05UKQogICBwaWRfdCBkcGlkOwog ICBpbnQgc3RhdHVzOwogCkBAIC0xNDc5LDEyICsxNTI2LDcgQEAgc3RhcnRfZGFlbW9uX2FuZF9y ZXRyeV9zZXRfc29ja2V0ICh2b2lkKQogCX0KIAogICAgICAgLyogVHJ5IGNvbm5lY3RpbmcsIHRo ZSBkYWVtb24gc2hvdWxkIGhhdmUgc3RhcnRlZCBieSBub3cuICAqLwotICAgICAgbWVzc2FnZSAo dHJ1ZSwgIkVtYWNzIGRhZW1vbiBzaG91bGQgaGF2ZSBzdGFydGVkLCB0cnlpbmcgdG8gY29ubmVj dCBhZ2FpblxuIik7Ci0gICAgICBpZiAoKGVtYWNzX3NvY2tldCA9IHNldF9zb2NrZXQgKDEpKSA9 PSBJTlZBTElEX1NPQ0tFVCkKLQl7Ci0JICBtZXNzYWdlICh0cnVlLCAiRXJyb3I6IENhbm5vdCBj b25uZWN0IGV2ZW4gYWZ0ZXIgc3RhcnRpbmcgdGhlIEVtYWNzIGRhZW1vblxuIik7Ci0JICBleGl0 IChFWElUX0ZBSUxVUkUpOwotCX0KKyAgICAgIGNvbm5lY3RfdG9fZW1hY3Nfc29ja2V0ICgpOwog ICAgIH0KICAgZWxzZSBpZiAoZHBpZCA8IDApCiAgICAgewpAQCAtMTUxMSw3ICsxNTUzLDcgQEAg c3RhcnRfZGFlbW9uX2FuZF9yZXRyeV9zZXRfc29ja2V0ICh2b2lkKQogICAgICAgZXhlY3ZwICgi ZW1hY3MiLCBkX2FyZ3YpOwogICAgICAgbWVzc2FnZSAodHJ1ZSwgIiVzOiBlcnJvciBzdGFydGlu ZyBlbWFjcyBkYWVtb25cbiIsIHByb2duYW1lKTsKICAgICB9Ci0jZW5kaWYgLyogV0lORE9XU05U ICovCisjZW5kaWYgLyogIVdJTkRPV1NOVCAqLwogfQogCiBpbnQKZGlmZiAtLWdpdCBhL2xpc3Av ZnJhbWUuZWwgYi9saXNwL2ZyYW1lLmVsCmluZGV4IDFkNWJiZjIuLjIzYmJjMGQgMTAwNjQ0Ci0t LSBhL2xpc3AvZnJhbWUuZWwKKysrIGIvbGlzcC9mcmFtZS5lbApAQCAtNTM2LDcgKzUzNiw4IEBA IGlzIG5vdCBjb25zaWRlcmVkIChzZWUgYG5leHQtZnJhbWUnKS4iCiBSZXR1cm4gbmlsIGlmIHdl IGRvbid0IGtub3cgaG93IHRvIGludGVycHJldCBESVNQTEFZLiIKICAgOzsgTVMtV2luZG93cyBk b2Vzbid0IGtub3cgaG93IHRvIGNyZWF0ZSBhIEdVSSBmcmFtZSBpbiBhIC1udyBzZXNzaW9uLgog ICAoaWYgKGFuZCAoZXEgc3lzdGVtLXR5cGUgJ3dpbmRvd3MtbnQpCi0JICAgKG51bGwgKHdpbmRv dy1zeXN0ZW0pKSkKKwkgICAobnVsbCAod2luZG93LXN5c3RlbSkpCisJICAgKG5vdCAoZGFlbW9u cCkpKQogICAgICAgbmlsCiAgICAgKGNsLWxvb3AgZm9yIGRlc2NyaXB0b3IgaW4gZGlzcGxheS1m b3JtYXQtYWxpc3QKIAkgICAgIGZvciBwYXR0ZXJuID0gKGNhciBkZXNjcmlwdG9yKQpkaWZmIC0t Z2l0IGEvbGlzcC9mcmFtZXNldC5lbCBiL2xpc3AvZnJhbWVzZXQuZWwKaW5kZXggNGEwNjM3NC4u MTdmZTM5YiAxMDA2NDQKLS0tIGEvbGlzcC9mcmFtZXNldC5lbAorKysgYi9saXNwL2ZyYW1lc2V0 LmVsCkBAIC0xMDIyLDggKzEwMjIsOCBAQCBJbnRlcm5hbCB1c2Ugb25seS4iCiAoZGVmdW4gZnJh bWVzZXQta2VlcC1vcmlnaW5hbC1kaXNwbGF5LXAgKGZvcmNlLWRpc3BsYXkpCiAgICJUcnVlIGlm IHNhdmVkIGZyYW1lcycgZGlzcGxheXMgc2hvdWxkIGJlIGhvbm9yZWQuCiBGb3IgdGhlIG1lYW5p bmcgb2YgRk9SQ0UtRElTUExBWSwgc2VlIGBmcmFtZXNldC1yZXN0b3JlJy4iCi0gIChjb25kICgo ZGFlbW9ucCkgdCkKLQkoKGVxIHN5c3RlbS10eXBlICd3aW5kb3dzLW50KSBuaWwpIDs7IERvZXMg bnMgc3VwcG9ydCBtb3JlIHRoYW4gb25lIGRpc3BsYXk/CisgIChjb25kICgoZXEgc3lzdGVtLXR5 cGUgJ3dpbmRvd3MtbnQpIG5pbCkgOzsgRG9lcyBucyBzdXBwb3J0IG1vcmUgdGhhbiBvbmUgZGlz cGxheT8KKwkoKGRhZW1vbnApIHQpCiAJKHQgKG5vdCBmb3JjZS1kaXNwbGF5KSkpKQogCiAoZGVm dW4gZnJhbWVzZXQtbWluaWJ1ZmZlcmxlc3MtZmlyc3QtcCAoZnJhbWUxIF9mcmFtZTIpCmRpZmYg LS1naXQgYS9saXNwL3NlcnZlci5lbCBiL2xpc3Avc2VydmVyLmVsCmluZGV4IDE2NmNkNDQuLjk1 ODViMTcgMTAwNjQ0Ci0tLSBhL2xpc3Avc2VydmVyLmVsCisrKyBiL2xpc3Avc2VydmVyLmVsCkBA IC0xMTM5LDkgKzExMzksMTIgQEAgVGhlIGZvbGxvd2luZyBjb21tYW5kcyBhcmUgYWNjZXB0ZWQg YnkgdGhlIGNsaWVudDoKICAgICAgICAgICAgICAgICAgOzsgZnJhbWUuICBJZiBydW5uaW5nIGEg R1VJIHNlcnZlciwgZm9yY2UgdGhlIGZyYW1lCiAgICAgICAgICAgICAgICAgIDs7IHR5cGUgdG8g R1VJLiAgKEN5Z3dpbiBpcyBwZXJmZWN0bHkgaGFwcHkgd2l0aAogICAgICAgICAgICAgICAgICA7 OyBtdWx0aS10dHkgc3VwcG9ydCwgc28gZG9uJ3Qgb3ZlcnJpZGUgdGhlIHVzZXIncwotICAgICAg ICAgICAgICAgICA7OyBjaG9pY2UgdGhlcmUuKQorICAgICAgICAgICAgICAgICA7OyBjaG9pY2Ug dGhlcmUuKSAgSW4gZGFlbW9uIG1vZGUgb24gV2luZG93cywgd2UgY2FuJ3QKKyAgICAgICAgICAg ICAgICAgOzsgbWFrZSB0dHkgZnJhbWVzLCBzbyBmb3JjZSB0aGUgZnJhbWUgdHlwZSB0byBHVUkK KyAgICAgICAgICAgICAgICAgOzsgdGhlcmUgdG9vLgogICAgICAgICAgICAgICAgICAod2hlbiAo YW5kIChlcSBzeXN0ZW0tdHlwZSAnd2luZG93cy1udCkKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoZXEgd2luZG93LXN5c3RlbSAndzMyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAob3IgKGRhZW1vbnApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcSB3aW5k b3ctc3lzdGVtICd3MzIpKSkKICAgICAgICAgICAgICAgICAgICAocHVzaCAiLXdpbmRvdy1zeXN0 ZW0iIGFyZ3MtbGVmdCkpKQogCiAgICAgICAgICAgICAgICAgOzsgLXBvc2l0aW9uIExJTkVbOkNP TFVNTl06ICBTZXQgcG9pbnQgdG8gdGhlIGdpdmVuCkBAIC0xMjE1LDcgKzEyMTgsMTAgQEAgVGhl IGZvbGxvd2luZyBjb21tYW5kcyBhcmUgYWNjZXB0ZWQgYnkgdGhlIGNsaWVudDoKIAkJCQkJICAg dGVybWluYWwtZnJhbWUpKSkpKQogCQkgICAgKHNldHEgdHR5LW5hbWUgbmlsIHR0eS10eXBlIG5p bCkKIAkJICAgIChpZiBkaXNwbGF5IChzZXJ2ZXItc2VsZWN0LWRpc3BsYXkgZGlzcGxheSkpKQot CQkgICAoKGVxIHR0eS1uYW1lICd3aW5kb3ctc3lzdGVtKQorCQkgICAoKG9yIChhbmQgKGVxIHN5 c3RlbS10eXBlICd3aW5kb3dzLW50KQorCQkJICAgICAoZGFlbW9ucCkKKwkJCSAgICAgKHNldHEg ZGlzcGxheSAidzMyIikpCisJCSAgICAgICAgKGVxIHR0eS1uYW1lICd3aW5kb3ctc3lzdGVtKSkK IAkJICAgIChzZXJ2ZXItY3JlYXRlLXdpbmRvdy1zeXN0ZW0tZnJhbWUgZGlzcGxheSBub3dhaXQg cHJvYwogCQkJCQkJICAgICAgIHBhcmVudC1pZAogCQkJCQkJICAgICAgIGZyYW1lLXBhcmFtZXRl cnMpKQpkaWZmIC0tZ2l0IGEvc3JjL2Rpc3BuZXcuYyBiL3NyYy9kaXNwbmV3LmMKaW5kZXggM2M4 MTE3ZS4uZTg2ZmJiOCAxMDA2NDQKLS0tIGEvc3JjL2Rpc3BuZXcuYworKysgYi9zcmMvZGlzcG5l dy5jCkBAIC01OTc0LDkgKzU5NzQsMTIgQEAgaW5pdF9kaXNwbGF5ICh2b2lkKQogICAgIH0KICNl bmRpZiAvKiBTSUdXSU5DSCAqLwogCi0gIC8qIElmIHJ1bm5pbmcgYXMgYSBkYWVtb24sIG5vIG5l ZWQgdG8gaW5pdGlhbGl6ZSBhbnkgZnJhbWVzL3Rlcm1pbmFsLiAqLworICAvKiBJZiBydW5uaW5n IGFzIGEgZGFlbW9uLCBubyBuZWVkIHRvIGluaXRpYWxpemUgYW55IGZyYW1lcy90ZXJtaW5hbCwK KyAgICAgZXhjZXB0IG9uIFdpbmRvd3MsIHdoZXJlIHdlIGF0IGxlYXN0IHdhbnQgdG8gaW5pdGlh bGl6ZSBpdC4gICovCisjaWZuZGVmIFdJTkRPV1NOVAogICBpZiAoSVNfREFFTU9OKQogICAgICAg cmV0dXJuOworI2VuZGlmCiAKICAgLyogSWYgdGhlIHVzZXIgd2FudHMgdG8gdXNlIGEgd2luZG93 IHN5c3RlbSwgd2Ugc2hvdWxkbid0IGJvdGhlcgogICAgICBpbml0aWFsaXppbmcgdGhlIHRlcm1p bmFsLiAgVGhpcyBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCB3aGVuIHRoZQpkaWZmIC0tZ2l0IGEv c3JjL2VtYWNzLmMgYi9zcmMvZW1hY3MuYwppbmRleCAzNDVmZTNlLi5kNTQ2NDNlIDEwMDY0NAot LS0gYS9zcmMvZW1hY3MuYworKysgYi9zcmMvZW1hY3MuYwpAQCAtMTk1LDkgKzE5NSwxMyBAQCBi b29sIG5vX3NpdGVfbGlzcDsKIC8qIE5hbWUgZm9yIHRoZSBzZXJ2ZXIgc3RhcnRlZCBieSB0aGUg ZGFlbW9uLiovCiBzdGF0aWMgY2hhciAqZGFlbW9uX25hbWU7CiAKKyNpZm5kZWYgV0lORE9XU05U CiAvKiBQaXBlIHVzZWQgdG8gc2VuZCBleGl0IG5vdGlmaWNhdGlvbiB0byB0aGUgZGFlbW9uIHBh cmVudCBhdAogICAgc3RhcnR1cC4gICovCiBpbnQgZGFlbW9uX3BpcGVbMl07CisjZWxzZQorSEFO RExFIHczMl9kYWVtb25fZXZlbnQ7CisjZW5kaWYKIAogLyogU2F2ZSBhcmd2IGFuZCBhcmdjLiAg Ki8KIGNoYXIgKippbml0aWFsX2FyZ3Y7CkBAIC02ODcsNiArNjkxLDQzIEBAIGNsb3NlX291dHB1 dF9zdHJlYW1zICh2b2lkKQogICAgICBfZXhpdCAoRVhJVF9GQUlMVVJFKTsKIH0KIAorc3RhdGlj IHZvaWQKK2hhbmRsZV9kbmFtZV9hcmcgKGNoYXIgKipkbmFtZV9hcmcsIGNoYXIgKmRuYW1lX2Fy ZzIsIGludCBzZXApCit7CisgIGludCBoYXNfZG5hbWUgPSAqZG5hbWVfYXJnICE9IE5VTEw7Cisg IC8qIFdlcmUgd2UgY2FsbGVkIGJ5IGVtYWNzY2xpZW50IG9yIGRpZCB0aGUgdXNlciBzdGFydCB0 aGUgZGFlbW9uPyAgKi8KKyNpZmRlZiBXSU5ET1dTTlQKKyAgaW50IHVzZXJfc3RhcnRlZF9kYWVt b24gPSBoYXNfZG5hbWUgJiYgIXN0cmNociAoKmRuYW1lX2FyZywgc2VwKTsKKyAgaWYgKCFoYXNf ZG5hbWUgfHwgdXNlcl9zdGFydGVkX2RhZW1vbikKKyAgICB7CisgICAgICB3MzJfZGFlbW9uX2V2 ZW50ID0gQ3JlYXRlRXZlbnQgKE5VTEwsIFRSVUUsIEZBTFNFLCBOVUxMKTsKKyAgICAgIGlmICh1 c2VyX3N0YXJ0ZWRfZGFlbW9uKQorICAgICAgICAvKiBXZSBhbHJlYWR5IGhhdmUgYSBuYW1lIGlu IGRuYW1lX2FyZyBvciBub25lIHdhcyBnaXZlbi4gICovCisgICAgICAgIHJldHVybjsKKyAgICAg IGVsc2UKKyAgICAgICAgZ290byBwcm9jZXNzX2RuYW1lOworICAgIH0KKyNlbmRpZgorICBpZiAo IWhhc19kbmFtZSB8fCAhc3RyY2hyICgqZG5hbWVfYXJnLCBzZXApCisgICAgICB8fCBzdHJsZW4g KCpkbmFtZV9hcmcpIDwgMSB8fCBzdHJsZW4gKCpkbmFtZV9hcmcpID4gNzApCisgICAgeworICAg ICAgZnByaW50ZiAoc3RkZXJyLCAiZW1hY3MgZGFlbW9uOiBkYWVtb24gbmFtZSBhYnNlbnQgb3Ig dG9vIGxvbmdcbiIpOworICAgICAgZXhpdCAoRVhJVF9DQU5OT1RfSU5WT0tFKTsKKyAgICB9CisK K3Byb2Nlc3NfZG5hbWU6CisgIGRuYW1lX2FyZzJbMF0gPSAnXDAnOworI2lmZGVmIERBRU1PTl9N VVNUX0VYRUMKKyAgc3NjYW5mICgqZG5hbWVfYXJnLCAiXG4lZCwlZFxuJXMiLCAmKGRhZW1vbl9w aXBlWzBdKSwgJihkYWVtb25fcGlwZVsxXSksCisgICAgICAgICAgZG5hbWVfYXJnMik7CisjZWxp ZiBkZWZpbmVkKFdJTkRPV1NOVCkKKyAgc3NjYW5mICgqZG5hbWVfYXJnLCAiKiVwIiwgJnczMl9k YWVtb25fZXZlbnQpOworI2VuZGlmCisgIC8qIE9uIFdpbmRvd3MsIGVtYWNzY2xpZW50IHdpbGwg bmV2ZXIgcGFzcyBhIGRhZW1vbiBuYW1lLCBzbyB0aGlzIHdpbGwgYWx3YXlzCisgICAgIGJlIE5V TEwuICAqLworICAqZG5hbWVfYXJnID0gKmRuYW1lX2FyZzIgPyBkbmFtZV9hcmcyIDogTlVMTDsK K30KKwogLyogQVJHU1VTRUQgKi8KIGludAogbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQpA QCAtNzA0LDkgKzc0NSw3IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgYm9vbCBu b19sb2FkdXAgPSAwOwogICBjaGFyICpqdW5rID0gMDsKICAgY2hhciAqZG5hbWVfYXJnID0gMDsK LSNpZmRlZiBEQUVNT05fTVVTVF9FWEVDCiAgIGNoYXIgZG5hbWVfYXJnMls4MF07Ci0jZW5kaWYK ICAgY2hhciAqY2hfdG9fZGlyID0gMDsKIAogICAvKiBJZiB3ZSB1c2UgLS1jaGRpciwgdGhpcyBy ZWNvcmRzIHRoZSBvcmlnaW5hbCBkaXJlY3RvcnkuICAqLwpAQCAtOTgwLDggKzEwMTksMTIgQEAg bWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAgZXhpdCAoMCk7CiAgICAgfQogCisj aWZuZGVmIFdJTkRPV1NOVAogICAvKiBNYWtlIHN1cmUgSVNfREFFTU9OIHN0YXJ0cyB1cCBhcyBm YWxzZS4gICovCiAgIGRhZW1vbl9waXBlWzFdID0gMDsKKyNlbHNlCisgIHczMl9kYWVtb25fZXZl bnQgPSBOVUxMOworI2VuZGlmCiAKICAgaWYgKGFyZ21hdGNoIChhcmd2LCBhcmdjLCAiLWRhZW1v biIsICItLWRhZW1vbiIsIDUsIE5VTEwsICZza2lwX2FyZ3MpCiAgICAgICB8fCBhcmdtYXRjaCAo YXJndiwgYXJnYywgIi1kYWVtb24iLCAiLS1kYWVtb24iLCA1LCAmZG5hbWVfYXJnLCAmc2tpcF9h cmdzKSkKQEAgLTEwOTAsMTcgKzExMzMsNyBAQCBVc2luZyBhbiBFbWFjcyBjb25maWd1cmVkIHdp dGggLS13aXRoLXgtdG9vbGtpdD1sdWNpZCBkb2VzIG5vdCBoYXZlIHRoaXMgcHJvYmxlbQogCSAg ICBleGl0IChlcnJubyA9PSBFTk9FTlQgPyBFWElUX0VOT0VOVCA6IEVYSVRfQ0FOTk9UX0lOVk9L RSk7CiAgICAgICAgICAgfQogCi0gICAgICAgIC8qIEluIGV4ZWMnZDogcGFyc2Ugc3BlY2lhbCBk bmFtZSBpbnRvIHBpcGUgYW5kIG5hbWUgaW5mby4gKi8KLSAgICAgICAgaWYgKCFkbmFtZV9hcmcg fHwgIXN0cmNociAoZG5hbWVfYXJnLCAnXG4nKQotICAgICAgICAgICAgfHwgc3RybGVuIChkbmFt ZV9hcmcpIDwgMSB8fCBzdHJsZW4gKGRuYW1lX2FyZykgPiA3MCkKLSAgICAgICAgICB7Ci0gICAg ICAgICAgICBmcHJpbnRmIChzdGRlcnIsICJlbWFjcyBkYWVtb246IGRhZW1vbiBuYW1lIGFic2Vu dCBvciB0b28gbG9uZ1xuIik7Ci0gICAgICAgICAgICBleGl0IChFWElUX0NBTk5PVF9JTlZPS0Up OwotICAgICAgICAgIH0KLSAgICAgICAgZG5hbWVfYXJnMlswXSA9ICdcMCc7Ci0gICAgICAgIHNz Y2FuZiAoZG5hbWVfYXJnLCAiXG4lZCwlZFxuJXMiLCAmKGRhZW1vbl9waXBlWzBdKSwgJihkYWVt b25fcGlwZVsxXSksCi0gICAgICAgICAgICAgICAgZG5hbWVfYXJnMik7Ci0gICAgICAgIGRuYW1l X2FyZyA9ICpkbmFtZV9hcmcyID8gZG5hbWVfYXJnMiA6IE5VTEw7CisgICAgICAgIGhhbmRsZV9k bmFtZV9hcmcgKCZkbmFtZV9hcmcsIGRuYW1lX2FyZzIsICdcbicpOwogCWZjbnRsIChkYWVtb25f cGlwZVsxXSwgRl9TRVRGRCwgRkRfQ0xPRVhFQyk7CiAgICAgICB9CiAjZW5kaWYgLyogREFFTU9O X01VU1RfRVhFQyAqLwpAQCAtMTExMSwxMCArMTE0NCwyMSBAQCBVc2luZyBhbiBFbWFjcyBjb25m aWd1cmVkIHdpdGggLS13aXRoLXgtdG9vbGtpdD1sdWNpZCBkb2VzIG5vdCBoYXZlIHRoaXMgcHJv YmxlbQogICAgICAgZW1hY3NfY2xvc2UgKGRhZW1vbl9waXBlWzBdKTsKIAogICAgICAgc2V0c2lk ICgpOwotI2Vsc2UgLyogRE9TX05UICovCisjZWxpZiBkZWZpbmVkKFdJTkRPV1NOVCkKKyAgICAg IGhhbmRsZV9kbmFtZV9hcmcgKCZkbmFtZV9hcmcsIGRuYW1lX2FyZzIsICcqJyk7CisKKyAgICAg IGlmICh3MzJfZGFlbW9uX2V2ZW50ID09IE5VTEwpCisgICAgICAgIHsKKyAgICAgICAgICBmcHJp bnRmIChzdGRlcnIsICJDb3VsZG4ndCBjcmVhdGUgb3IgZ2V0IGV2ZW50IGhhbmRsZSBmb3IgZGFl bW9uXG4iKTsKKyAgICAgICAgICBleGl0ICgxKTsKKyAgICAgICAgfQorCisgICAgICBpZiAoZG5h bWVfYXJnKQorICAgICAgICBkYWVtb25fbmFtZSA9IHhzdHJkdXAgKGRuYW1lX2FyZyk7CisjZWxz ZSAvKiBNU0RPUyAqLwogICAgICAgZnByaW50ZiAoc3RkZXJyLCAiVGhpcyBwbGF0Zm9ybSBkb2Vz IG5vdCBzdXBwb3J0IHRoZSAtZGFlbW9uIGZsYWcuXG4iKTsKICAgICAgIGV4aXQgKDEpOwotI2Vu ZGlmIC8qIERPU19OVCAqLworI2VuZGlmIC8qIE1TRE9TICovCiAgICAgfQogCiAjaWYgZGVmaW5l ZCBIQVZFX1BUSFJFQUQgJiYgIWRlZmluZWQgU1lTVEVNX01BTExPQyBcCkBAIC0yMzEwLDIzICsy MzU0LDQwIEBAIElmIHRoZSBkYWVtb24gd2FzIGdpdmVuIGEgbmFtZSBhcmd1bWVudCwgcmV0dXJu IHRoYXQgbmFtZS4gKi8pCiAgICAgcmV0dXJuIFFuaWw7CiB9CiAKLURFRlVOICgiZGFlbW9uLWlu aXRpYWxpemVkIiwgRmRhZW1vbl9pbml0aWFsaXplZCwgU2RhZW1vbl9pbml0aWFsaXplZCwgMCwg MCwgMCwKLSAgICAgICBkb2M6IC8qIE1hcmsgdGhlIEVtYWNzIGRhZW1vbiBhcyBiZWluZyBpbml0 aWFsaXplZC4KLVRoaXMgZmluaXNoZXMgdGhlIGRhZW1vbml6YXRpb24gcHJvY2VzcyBieSBkb2lu ZyB0aGUgb3RoZXIgaGFsZiBvZiBkZXRhY2hpbmcKLWZyb20gdGhlIHBhcmVudCBwcm9jZXNzIGFu ZCBpdHMgdHR5IGZpbGUgZGVzY3JpcHRvcnMuICAqLykKLSAgKHZvaWQpCitzdGF0aWMgdm9pZAor ZGFlbW9uX2NoZWNrX3ByZWNvbmRpdGlvbnMgKHZvaWQpCiB7Ci0gIGludCBuZmQ7Ci0gIGJvb2wg ZXJyID0gMDsKLQogICBpZiAoIUlTX0RBRU1PTikKICAgICBlcnJvciAoIlRoaXMgZnVuY3Rpb24g Y2FuIG9ubHkgYmUgY2FsbGVkIGlmIGVtYWNzIGlzIHJ1biBhcyBhIGRhZW1vbiIpOwogCi0gIGlm IChkYWVtb25fcGlwZVsxXSA8IDApCisjaWZkZWYgV0lORE9XU05UCisgIC8qIElTX0RBRU1PTiBh Ym92ZSBhbHJlYWR5IGNoZWNrcyB0aGF0IHczMl9kYWVtb25fZXZlbnQgIT0gTlVMTCwgc28gb25s eQorICAgICBjaGVjayB0aGF0IHdlIHN1Y2Nlc3NmdWxseSBzdGFydGVkIHRoZSBkYWVtb24gaGVy ZS4gICovCisgIGlmICh3MzJfZGFlbW9uX2V2ZW50ID09IElOVkFMSURfSEFORExFX1ZBTFVFKQor I2Vsc2UKKyAgaWYgKGRhZW1vbl9waXBlWzFdIDwgMCApCisjZW5kaWYKICAgICBlcnJvciAoIlRo ZSBkYWVtb24gaGFzIGFscmVhZHkgYmVlbiBpbml0aWFsaXplZCIpOwogCiAgIGlmIChOSUxQIChW YWZ0ZXJfaW5pdF90aW1lKSkKICAgICBlcnJvciAoIlRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgYmUg Y2FsbGVkIGFmdGVyIGxvYWRpbmcgdGhlIGluaXQgZmlsZXMiKTsKK30KKworREVGVU4gKCJkYWVt b24taW5pdGlhbGl6ZWQiLCBGZGFlbW9uX2luaXRpYWxpemVkLCBTZGFlbW9uX2luaXRpYWxpemVk LCAwLCAwLCAwLAorICAgICAgIGRvYzogLyogTWFyayB0aGUgRW1hY3MgZGFlbW9uIGFzIGJlaW5n IGluaXRpYWxpemVkLgorVGhpcyBmaW5pc2hlcyB0aGUgZGFlbW9uaXphdGlvbiBwcm9jZXNzIGJ5 IGRvaW5nIHRoZSBvdGhlciBoYWxmIG9mIGRldGFjaGluZworZnJvbSB0aGUgcGFyZW50IHByb2Nl c3MgYW5kIGl0cyB0dHkgZmlsZSBkZXNjcmlwdG9ycy4gICovKQorICAodm9pZCkKK3sKKyAgZGFl bW9uX2NoZWNrX3ByZWNvbmRpdGlvbnMgKCk7CisjaWZkZWYgV0lORE9XU05UCisgIC8qIFNpZ25h bCB0aGUgd2FpdGluZyBlbWFjc2NsaWVudCBwcm9jZXNzLiAgKi8KKyAgU2V0RXZlbnQgKHczMl9k YWVtb25fZXZlbnQpOworICBDbG9zZUhhbmRsZSAodzMyX2RhZW1vbl9ldmVudCk7CisgIHczMl9k YWVtb25fZXZlbnQgPSBJTlZBTElEX0hBTkRMRV9WQUxVRTsKKyNlbHNlCisgIGludCBuZmQ7Cisg IGJvb2wgZXJyID0gMDsKIAogICAvKiBHZXQgcmlkIG9mIHN0ZGluLCBzdGRvdXQgYW5kIHN0ZGVy ci4gICovCiAgIG5mZCA9IGVtYWNzX29wZW4gKCIvZGV2L251bGwiLCBPX1JEV1IsIDApOwpAQCAt MjM1MCw2ICsyNDExLDcgQEAgZnJvbSB0aGUgcGFyZW50IHByb2Nlc3MgYW5kIGl0cyB0dHkgZmls ZSBkZXNjcmlwdG9ycy4gICovKQogCiAgIGlmIChlcnIpCiAgICAgZXJyb3IgKCJJL08gZXJyb3Ig ZHVyaW5nIGRhZW1vbiBpbml0aWFsaXphdGlvbiIpOworI2VuZGlmCiAgIHJldHVybiBRdDsKIH0K IApkaWZmIC0tZ2l0IGEvc3JjL2tleWJvYXJkLmMgYi9zcmMva2V5Ym9hcmQuYwppbmRleCAzODNj MTA5Li44ZjBlMThmIDEwMDY0NAotLS0gYS9zcmMva2V5Ym9hcmQuYworKysgYi9zcmMva2V5Ym9h cmQuYwpAQCAtMzgyOSw3ICszODI5LDExIEBAIGtiZF9idWZmZXJfZ2V0X2V2ZW50IChLQk9BUkQg KiprYnAsCiAgIGlmIChub25pbnRlcmFjdGl2ZQogICAgICAgLyogSW4gY2FzZSB3ZSBhcmUgcnVu bmluZyBhcyBhIGRhZW1vbiwgb25seSBkbyB0aGlzIGJlZm9yZQogCSBkZXRhY2hpbmcgZnJvbSB0 aGUgdGVybWluYWwuICAqLworI2lmZGVmIFdJTkRPV1NOVAorICAgICAgfHwgKElTX0RBRU1PTiAm JiB3MzJfZGFlbW9uX2V2ZW50ICE9IElOVkFMSURfSEFORExFX1ZBTFVFKSkKKyNlbHNlCiAgICAg ICB8fCAoSVNfREFFTU9OICYmIGRhZW1vbl9waXBlWzFdID49IDApKQorI2VuZGlmCiAgICAgewog ICAgICAgaW50IGMgPSBnZXRjaGFyICgpOwogICAgICAgWFNFVElOVCAob2JqLCBjKTsKZGlmZiAt LWdpdCBhL3NyYy9saXNwLmggYi9zcmMvbGlzcC5oCmluZGV4IGY1MjQyYWIuLjBiODU4MTcgMTAw NjQ0Ci0tLSBhL3NyYy9saXNwLmgKKysrIGIvc3JjL2xpc3AuaApAQCAtNDIxNSw5ICs0MjE1LDE0 IEBAIGV4dGVybiBib29sIG5vbmludGVyYWN0aXZlOwogZXh0ZXJuIGJvb2wgbm9fc2l0ZV9saXNw OwogCiAvKiBQaXBlIHVzZWQgdG8gc2VuZCBleGl0IG5vdGlmaWNhdGlvbiB0byB0aGUgZGFlbW9u IHBhcmVudCBhdAotICAgc3RhcnR1cC4gICovCisgICBzdGFydHVwLiAgT24gV2luZG93cywgd2Ug dXNlIGEga2VybmVsIGV2ZW50IGluc3RlYWQuICAqLworI2lmbmRlZiBXSU5ET1dTTlQKIGV4dGVy biBpbnQgZGFlbW9uX3BpcGVbMl07CiAjZGVmaW5lIElTX0RBRU1PTiAoZGFlbW9uX3BpcGVbMV0g IT0gMCkKKyNlbGlmIGRlZmluZWQoV0lORE9XU05UKQorZXh0ZXJuIHZvaWQgKnczMl9kYWVtb25f ZXZlbnQ7CisjZGVmaW5lIElTX0RBRU1PTiAodzMyX2RhZW1vbl9ldmVudCAhPSBOVUxMKQorI2Vu ZGlmCiAKIC8qIFRydWUgaWYgaGFuZGxpbmcgYSBmYXRhbCBlcnJvciBhbHJlYWR5LiAgKi8KIGV4 dGVybiBib29sIGZhdGFsX2Vycm9yX2luX3Byb2dyZXNzOwpkaWZmIC0tZ2l0IGEvc3JjL21pbmli dWYuYyBiL3NyYy9taW5pYnVmLmMKaW5kZXggMzQwOGJiOS4uZGVlN2NlOCAxMDA2NDQKLS0tIGEv c3JjL21pbmlidWYuYworKysgYi9zcmMvbWluaWJ1Zi5jCkBAIC00NTksNyArNDU5LDExIEBAIHJl YWRfbWluaWJ1ZiAoTGlzcF9PYmplY3QgbWFwLCBMaXNwX09iamVjdCBpbml0aWFsLCBMaXNwX09i amVjdCBwcm9tcHQsCiAgIGlmICgobm9uaW50ZXJhY3RpdmUKICAgICAgICAvKiBJbiBjYXNlIHdl IGFyZSBydW5uaW5nIGFzIGEgZGFlbW9uLCBvbmx5IGRvIHRoaXMgYmVmb3JlCiAJICBkZXRhY2hp bmcgZnJvbSB0aGUgdGVybWluYWwuICAqLworI2lmZGVmIFdJTkRPV1NOVAorICAgICAgIHx8IChJ U19EQUVNT04gJiYgdzMyX2RhZW1vbl9ldmVudCAhPSBJTlZBTElEX0hBTkRMRV9WQUxVRSkpCisj ZWxzZQogICAgICAgIHx8IChJU19EQUVNT04gJiYgKGRhZW1vbl9waXBlWzFdID49IDApKSkKKyNl bmRpZgogICAgICAgJiYgTklMUCAoVmV4ZWN1dGluZ19rYmRfbWFjcm8pKQogICAgIHsKICAgICAg IHZhbCA9IHJlYWRfbWluaWJ1Zl9ub25pbnRlcmFjdGl2ZSAobWFwLCBpbml0aWFsLCBwcm9tcHQs Cg== --001a1140dc62f70abd050d9e3485 Content-Type: application/octet-stream; name="emacs-windows-daemon-namedev.patch" Content-Disposition: attachment; filename="emacs-windows-daemon-namedev.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i5f15mtl3 ZGlmZiAtLWdpdCBhL2xpYi1zcmMvZW1hY3NjbGllbnQuYyBiL2xpYi1zcmMvZW1hY3NjbGllbnQu YwppbmRleCBhMDRkZGE2Li5lZWI5Y2UyIDEwMDY0NAotLS0gYS9saWItc3JjL2VtYWNzY2xpZW50 LmMKKysrIGIvbGliLXNyYy9lbWFjc2NsaWVudC5jCkBAIC01OTUsMTMgKzU5NSw2IEBAIGRlY29k ZV9vcHRpb25zIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICBkaXNwbGF5ID0gTlVMTDsK ICAgICAgIHR0eSA9IDE7CiAgICAgfQotCi0gIGlmIChhbHRlcm5hdGVfZWRpdG9yICYmIGFsdGVy bmF0ZV9lZGl0b3JbMF0gPT0gJ1wwJykKLSAgICB7Ci0gICAgICBtZXNzYWdlICh0cnVlLCAiLS1h bHRlcm5hdGUtZWRpdG9yIGFyZ3VtZW50IG9yIEFMVEVSTkFURV9FRElUT1IgdmFyaWFibGUgY2Fu bm90IGJlXG5cCi1hbiBlbXB0eSBzdHJpbmciKTsKLSAgICAgIGV4aXQgKEVYSVRfRkFJTFVSRSk7 Ci0gICAgfQogI2VuZGlmIC8qIFdJTkRPV1NOVCAqLwogfQogCkBAIC02NDIsMTAgKzYzNSw4IEBA IFRoZSBmb2xsb3dpbmcgT1BUSU9OUyBhcmUgYWNjZXB0ZWQ6XG5cCiAJCQlTZXQgZmlsZW5hbWUg b2YgdGhlIFRDUCBhdXRoZW50aWNhdGlvbiBmaWxlXG5cCiAtYSBFRElUT1IsIC0tYWx0ZXJuYXRl LWVkaXRvcj1FRElUT1JcblwKIAkJCUVkaXRvciB0byBmYWxsYmFjayB0byBpZiB0aGUgc2VydmVy IGlzIG5vdCBydW5uaW5nXG4iCi0jaWZuZGVmIFdJTkRPV1NOVAogIgkJCUlmIEVESVRPUiBpcyB0 aGUgZW1wdHkgc3RyaW5nLCBzdGFydCBFbWFjcyBpbiBkYWVtb25cblwKIAkJCW1vZGUgYW5kIHRy eSBjb25uZWN0aW5nIGFnYWluXG4iCi0jZW5kaWYgLyogbm90IFdJTkRPV1NOVCAqLwogIlxuXAog UmVwb3J0IGJ1Z3Mgd2l0aCBNLXggcmVwb3J0LWVtYWNzLWJ1Zy5cbiIpOwogICBleGl0IChFWElU X1NVQ0NFU1MpOwpAQCAtMTQ1OSw5ICsxNDUwLDU3IEBAIHczMl9naXZlX2ZvY3VzICh2b2lkKQog LyogU3RhcnQgdGhlIGVtYWNzIGRhZW1vbiBhbmQgdHJ5IHRvIGNvbm5lY3QgdG8gaXQuICAqLwog CiBzdGF0aWMgdm9pZAorY29ubmVjdF90b19lbWFjc19zb2NrZXQgKHZvaWQpCit7CisjaWZkZWYg V0lORE9XU05UCisgIC8qIEl0J3MganVzdCBhIHByb2dyZXNzIG1lc3NhZ2UsIHNvIGRvbid0IHBv cCBhIGRpYWxvZyBpZiB0aGlzIGlzCisgICAgIGVtYWNzY2xpZW50dy4gICovCisgIGlmICghdzMy X3dpbmRvd19hcHAgKCkpCisjZW5kaWYKKyAgbWVzc2FnZSAodHJ1ZSwgIkVtYWNzIGRhZW1vbiBz aG91bGQgaGF2ZSBzdGFydGVkLCB0cnlpbmcgdG8gY29ubmVjdCBhZ2FpblxuIik7CisgIGlmICgo ZW1hY3Nfc29ja2V0ID0gc2V0X3NvY2tldCAoMSkpID09IElOVkFMSURfU09DS0VUKQorICAgIHsK KyAgICAgIG1lc3NhZ2UgKHRydWUsICJFcnJvcjogQ2Fubm90IGNvbm5lY3QgZXZlbiBhZnRlciBz dGFydGluZyB0aGUgRW1hY3MgZGFlbW9uXG4iKTsKKyAgICAgIGV4aXQgKEVYSVRfRkFJTFVSRSk7 CisgICAgfQorfQorCitzdGF0aWMgdm9pZAogc3RhcnRfZGFlbW9uX2FuZF9yZXRyeV9zZXRfc29j a2V0ICh2b2lkKQogewotI2lmbmRlZiBXSU5ET1dTTlQKKyNpZmRlZiBXSU5ET1dTTlQKKyAgRFdP UkQgd2FpdF9yZXN1bHQ7CisgIEhBTkRMRSB3MzJfZGFlbW9uX2V2ZW50OworICBTVEFSVFVQSU5G TyBzaTsKKyAgUFJPQ0VTU19JTkZPUk1BVElPTiBwaTsKKworICBaZXJvTWVtb3J5ICgmc2ksIHNp emVvZiBzaSk7CisgIHNpLmNiID0gc2l6ZW9mIHNpOworICBaZXJvTWVtb3J5ICgmcGksIHNpemVv ZiBwaSk7CisKKyAgaWYgKCFDcmVhdGVQcm9jZXNzIChOVUxMLCAiZW1hY3MgLS1kYWVtb24iLCBO VUxMLCBOVUxMLCBGQUxTRSwKKyAgICAgICAgICAgICAgICAgICAgICBDUkVBVEVfTk9fV0lORE9X LCBOVUxMLCBOVUxMLCAmc2ksICZwaSkpCisgICAgeworICAgICAgbWVzc2FnZSAodHJ1ZSwgIiVz OiBlcnJvciBzdGFydGluZyBlbWFjcyBkYWVtb25cbiIsIHByb2duYW1lKTsKKyAgICAgIGV4aXQg KEVYSVRfRkFJTFVSRSk7CisgICAgfQorCisgIHczMl9kYWVtb25fZXZlbnQgPSBDcmVhdGVFdmVu dCAoTlVMTCwgVFJVRSwgRkFMU0UsIFczMl9EQUVNT05fRVZFTlQpOworICBpZiAodzMyX2RhZW1v bl9ldmVudCA9PSBOVUxMKQorICAgIHsKKyAgICAgIG1lc3NhZ2UgKHRydWUsICJDb3VsZG4ndCBj cmVhdGUgV2luZG93cyBkYWVtb24gZXZlbnQiKTsKKyAgICAgIGV4aXQgKEVYSVRfRkFJTFVSRSk7 CisgICAgfQorICBpZiAoV2FpdEZvclNpbmdsZU9iamVjdCAodzMyX2RhZW1vbl9ldmVudCwgSU5G SU5JVEUpICE9IFdBSVRfT0JKRUNUXzApCisgICAgeworICAgICAgbWVzc2FnZSAodHJ1ZSwgIkVy cm9yIHdoaWxlIHdhaXRpbmcgZm9yIFdpbmRvd3MgZGFlbW9uIGV2ZW50Iik7CisgICAgICBleGl0 IChFWElUX0ZBSUxVUkUpOworICAgIH0KKyAgQ2xvc2VIYW5kbGUgKHczMl9kYWVtb25fZXZlbnQp OworCisgIC8qIFRyeSBjb25uZWN0aW5nLCB0aGUgZGFlbW9uIHNob3VsZCBoYXZlIHN0YXJ0ZWQg Ynkgbm93LiAgKi8KKyAgY29ubmVjdF90b19lbWFjc19zb2NrZXQgKCk7CisjZWxpZiAhZGVmaW5l ZChXSU5ET1dTTlQpCiAgIHBpZF90IGRwaWQ7CiAgIGludCBzdGF0dXM7CiAKQEAgLTE0NzksMTIg KzE1MTgsNyBAQCBzdGFydF9kYWVtb25fYW5kX3JldHJ5X3NldF9zb2NrZXQgKHZvaWQpCiAJfQog CiAgICAgICAvKiBUcnkgY29ubmVjdGluZywgdGhlIGRhZW1vbiBzaG91bGQgaGF2ZSBzdGFydGVk IGJ5IG5vdy4gICovCi0gICAgICBtZXNzYWdlICh0cnVlLCAiRW1hY3MgZGFlbW9uIHNob3VsZCBo YXZlIHN0YXJ0ZWQsIHRyeWluZyB0byBjb25uZWN0IGFnYWluXG4iKTsKLSAgICAgIGlmICgoZW1h Y3Nfc29ja2V0ID0gc2V0X3NvY2tldCAoMSkpID09IElOVkFMSURfU09DS0VUKQotCXsKLQkgIG1l c3NhZ2UgKHRydWUsICJFcnJvcjogQ2Fubm90IGNvbm5lY3QgZXZlbiBhZnRlciBzdGFydGluZyB0 aGUgRW1hY3MgZGFlbW9uXG4iKTsKLQkgIGV4aXQgKEVYSVRfRkFJTFVSRSk7Ci0JfQorICAgICAg Y29ubmVjdF90b19lbWFjc19zb2NrZXQgKCk7CiAgICAgfQogICBlbHNlIGlmIChkcGlkIDwgMCkK ICAgICB7CkBAIC0xNTExLDcgKzE1NDUsNyBAQCBzdGFydF9kYWVtb25fYW5kX3JldHJ5X3NldF9z b2NrZXQgKHZvaWQpCiAgICAgICBleGVjdnAgKCJlbWFjcyIsIGRfYXJndik7CiAgICAgICBtZXNz YWdlICh0cnVlLCAiJXM6IGVycm9yIHN0YXJ0aW5nIGVtYWNzIGRhZW1vblxuIiwgcHJvZ25hbWUp OwogICAgIH0KLSNlbmRpZiAvKiBXSU5ET1dTTlQgKi8KKyNlbmRpZiAvKiAhV0lORE9XU05UICov CiB9CiAKIGludApkaWZmIC0tZ2l0IGEvbGlzcC9mcmFtZS5lbCBiL2xpc3AvZnJhbWUuZWwKaW5k ZXggMWQ1YmJmMi4uMjNiYmMwZCAxMDA2NDQKLS0tIGEvbGlzcC9mcmFtZS5lbAorKysgYi9saXNw L2ZyYW1lLmVsCkBAIC01MzYsNyArNTM2LDggQEAgaXMgbm90IGNvbnNpZGVyZWQgKHNlZSBgbmV4 dC1mcmFtZScpLiIKIFJldHVybiBuaWwgaWYgd2UgZG9uJ3Qga25vdyBob3cgdG8gaW50ZXJwcmV0 IERJU1BMQVkuIgogICA7OyBNUy1XaW5kb3dzIGRvZXNuJ3Qga25vdyBob3cgdG8gY3JlYXRlIGEg R1VJIGZyYW1lIGluIGEgLW53IHNlc3Npb24uCiAgIChpZiAoYW5kIChlcSBzeXN0ZW0tdHlwZSAn d2luZG93cy1udCkKLQkgICAobnVsbCAod2luZG93LXN5c3RlbSkpKQorCSAgIChudWxsICh3aW5k b3ctc3lzdGVtKSkKKwkgICAobm90IChkYWVtb25wKSkpCiAgICAgICBuaWwKICAgICAoY2wtbG9v cCBmb3IgZGVzY3JpcHRvciBpbiBkaXNwbGF5LWZvcm1hdC1hbGlzdAogCSAgICAgZm9yIHBhdHRl cm4gPSAoY2FyIGRlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9saXNwL2ZyYW1lc2V0LmVsIGIvbGlz cC9mcmFtZXNldC5lbAppbmRleCA0YTA2Mzc0Li4xN2ZlMzliIDEwMDY0NAotLS0gYS9saXNwL2Zy YW1lc2V0LmVsCisrKyBiL2xpc3AvZnJhbWVzZXQuZWwKQEAgLTEwMjIsOCArMTAyMiw4IEBAIElu dGVybmFsIHVzZSBvbmx5LiIKIChkZWZ1biBmcmFtZXNldC1rZWVwLW9yaWdpbmFsLWRpc3BsYXkt cCAoZm9yY2UtZGlzcGxheSkKICAgIlRydWUgaWYgc2F2ZWQgZnJhbWVzJyBkaXNwbGF5cyBzaG91 bGQgYmUgaG9ub3JlZC4KIEZvciB0aGUgbWVhbmluZyBvZiBGT1JDRS1ESVNQTEFZLCBzZWUgYGZy YW1lc2V0LXJlc3RvcmUnLiIKLSAgKGNvbmQgKChkYWVtb25wKSB0KQotCSgoZXEgc3lzdGVtLXR5 cGUgJ3dpbmRvd3MtbnQpIG5pbCkgOzsgRG9lcyBucyBzdXBwb3J0IG1vcmUgdGhhbiBvbmUgZGlz cGxheT8KKyAgKGNvbmQgKChlcSBzeXN0ZW0tdHlwZSAnd2luZG93cy1udCkgbmlsKSA7OyBEb2Vz IG5zIHN1cHBvcnQgbW9yZSB0aGFuIG9uZSBkaXNwbGF5PworCSgoZGFlbW9ucCkgdCkKIAkodCAo bm90IGZvcmNlLWRpc3BsYXkpKSkpCiAKIChkZWZ1biBmcmFtZXNldC1taW5pYnVmZmVybGVzcy1m aXJzdC1wIChmcmFtZTEgX2ZyYW1lMikKZGlmZiAtLWdpdCBhL2xpc3Avc2VydmVyLmVsIGIvbGlz cC9zZXJ2ZXIuZWwKaW5kZXggMTY2Y2Q0NC4uOTU4NWIxNyAxMDA2NDQKLS0tIGEvbGlzcC9zZXJ2 ZXIuZWwKKysrIGIvbGlzcC9zZXJ2ZXIuZWwKQEAgLTExMzksOSArMTEzOSwxMiBAQCBUaGUgZm9s bG93aW5nIGNvbW1hbmRzIGFyZSBhY2NlcHRlZCBieSB0aGUgY2xpZW50OgogICAgICAgICAgICAg ICAgICA7OyBmcmFtZS4gIElmIHJ1bm5pbmcgYSBHVUkgc2VydmVyLCBmb3JjZSB0aGUgZnJhbWUK ICAgICAgICAgICAgICAgICAgOzsgdHlwZSB0byBHVUkuICAoQ3lnd2luIGlzIHBlcmZlY3RseSBo YXBweSB3aXRoCiAgICAgICAgICAgICAgICAgIDs7IG11bHRpLXR0eSBzdXBwb3J0LCBzbyBkb24n dCBvdmVycmlkZSB0aGUgdXNlcidzCi0gICAgICAgICAgICAgICAgIDs7IGNob2ljZSB0aGVyZS4p CisgICAgICAgICAgICAgICAgIDs7IGNob2ljZSB0aGVyZS4pICBJbiBkYWVtb24gbW9kZSBvbiBX aW5kb3dzLCB3ZSBjYW4ndAorICAgICAgICAgICAgICAgICA7OyBtYWtlIHR0eSBmcmFtZXMsIHNv IGZvcmNlIHRoZSBmcmFtZSB0eXBlIHRvIEdVSQorICAgICAgICAgICAgICAgICA7OyB0aGVyZSB0 b28uCiAgICAgICAgICAgICAgICAgICh3aGVuIChhbmQgKGVxIHN5c3RlbS10eXBlICd3aW5kb3dz LW50KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcSB3aW5kb3ctc3lzdGVtICd3MzIp KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvciAoZGFlbW9ucCkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGVxIHdpbmRvdy1zeXN0ZW0gJ3czMikpKQogICAgICAgICAg ICAgICAgICAgIChwdXNoICItd2luZG93LXN5c3RlbSIgYXJncy1sZWZ0KSkpCiAKICAgICAgICAg ICAgICAgICA7OyAtcG9zaXRpb24gTElORVs6Q09MVU1OXTogIFNldCBwb2ludCB0byB0aGUgZ2l2 ZW4KQEAgLTEyMTUsNyArMTIxOCwxMCBAQCBUaGUgZm9sbG93aW5nIGNvbW1hbmRzIGFyZSBhY2Nl cHRlZCBieSB0aGUgY2xpZW50OgogCQkJCQkgICB0ZXJtaW5hbC1mcmFtZSkpKSkpCiAJCSAgICAo c2V0cSB0dHktbmFtZSBuaWwgdHR5LXR5cGUgbmlsKQogCQkgICAgKGlmIGRpc3BsYXkgKHNlcnZl ci1zZWxlY3QtZGlzcGxheSBkaXNwbGF5KSkpCi0JCSAgICgoZXEgdHR5LW5hbWUgJ3dpbmRvdy1z eXN0ZW0pCisJCSAgICgob3IgKGFuZCAoZXEgc3lzdGVtLXR5cGUgJ3dpbmRvd3MtbnQpCisJCQkg ICAgIChkYWVtb25wKQorCQkJICAgICAoc2V0cSBkaXNwbGF5ICJ3MzIiKSkKKwkJICAgICAgICAo ZXEgdHR5LW5hbWUgJ3dpbmRvdy1zeXN0ZW0pKQogCQkgICAgKHNlcnZlci1jcmVhdGUtd2luZG93 LXN5c3RlbS1mcmFtZSBkaXNwbGF5IG5vd2FpdCBwcm9jCiAJCQkJCQkgICAgICAgcGFyZW50LWlk CiAJCQkJCQkgICAgICAgZnJhbWUtcGFyYW1ldGVycykpCmRpZmYgLS1naXQgYS9udC9pbmMvbXMt dzMyLmggYi9udC9pbmMvbXMtdzMyLmgKaW5kZXggYWRhYzJlMy4uODQzOTE2MyAxMDA2NDQKLS0t IGEvbnQvaW5jL21zLXczMi5oCisrKyBiL250L2luYy9tcy13MzIuaApAQCAtNTk3LDUgKzU5Nyw3 IEBAIGV4dGVybiB2b2lkIF9EZWJQcmludCAoY29uc3QgY2hhciAqZm10LCAuLi4pOwogI2VuZGlm CiAjZW5kaWYKIAorLyogRXZlbnQgbmFtZSBmb3Igd2hlbiBlbWFjc2NsaWVudCBzdGFydHMgdGhl IEVtYWNzIGRhZW1vbiBvbiBXaW5kb3dzLiAgKi8KKyNkZWZpbmUgVzMyX0RBRU1PTl9FVkVOVCAi RW1hY3NTZXJ2ZXJFdmVudCIKIAogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCmRpZmYgLS1naXQgYS9zcmMvZGlzcG5ldy5j IGIvc3JjL2Rpc3BuZXcuYwppbmRleCAzYzgxMTdlLi5lODZmYmI4IDEwMDY0NAotLS0gYS9zcmMv ZGlzcG5ldy5jCisrKyBiL3NyYy9kaXNwbmV3LmMKQEAgLTU5NzQsOSArNTk3NCwxMiBAQCBpbml0 X2Rpc3BsYXkgKHZvaWQpCiAgICAgfQogI2VuZGlmIC8qIFNJR1dJTkNIICovCiAKLSAgLyogSWYg cnVubmluZyBhcyBhIGRhZW1vbiwgbm8gbmVlZCB0byBpbml0aWFsaXplIGFueSBmcmFtZXMvdGVy bWluYWwuICovCisgIC8qIElmIHJ1bm5pbmcgYXMgYSBkYWVtb24sIG5vIG5lZWQgdG8gaW5pdGlh bGl6ZSBhbnkgZnJhbWVzL3Rlcm1pbmFsLAorICAgICBleGNlcHQgb24gV2luZG93cywgd2hlcmUg d2UgYXQgbGVhc3Qgd2FudCB0byBpbml0aWFsaXplIGl0LiAgKi8KKyNpZm5kZWYgV0lORE9XU05U CiAgIGlmIChJU19EQUVNT04pCiAgICAgICByZXR1cm47CisjZW5kaWYKIAogICAvKiBJZiB0aGUg dXNlciB3YW50cyB0byB1c2UgYSB3aW5kb3cgc3lzdGVtLCB3ZSBzaG91bGRuJ3QgYm90aGVyCiAg ICAgIGluaXRpYWxpemluZyB0aGUgdGVybWluYWwuICBUaGlzIGlzIGVzcGVjaWFsbHkgaW1wb3J0 YW50IHdoZW4gdGhlCmRpZmYgLS1naXQgYS9zcmMvZW1hY3MuYyBiL3NyYy9lbWFjcy5jCmluZGV4 IDM0NWZlM2UuLjI5MzJlMzYgMTAwNjQ0Ci0tLSBhL3NyYy9lbWFjcy5jCisrKyBiL3NyYy9lbWFj cy5jCkBAIC0xOTUsOSArMTk1LDEzIEBAIGJvb2wgbm9fc2l0ZV9saXNwOwogLyogTmFtZSBmb3Ig dGhlIHNlcnZlciBzdGFydGVkIGJ5IHRoZSBkYWVtb24uKi8KIHN0YXRpYyBjaGFyICpkYWVtb25f bmFtZTsKIAorI2lmbmRlZiBXSU5ET1dTTlQKIC8qIFBpcGUgdXNlZCB0byBzZW5kIGV4aXQgbm90 aWZpY2F0aW9uIHRvIHRoZSBkYWVtb24gcGFyZW50IGF0CiAgICBzdGFydHVwLiAgKi8KIGludCBk YWVtb25fcGlwZVsyXTsKKyNlbHNlCitIQU5ETEUgdzMyX2RhZW1vbl9ldmVudDsKKyNlbmRpZgog CiAvKiBTYXZlIGFyZ3YgYW5kIGFyZ2MuICAqLwogY2hhciAqKmluaXRpYWxfYXJndjsKQEAgLTk4 MCw4ICs5ODQsMTIgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAgZXhpdCAo MCk7CiAgICAgfQogCisjaWZuZGVmIFdJTkRPV1NOVAogICAvKiBNYWtlIHN1cmUgSVNfREFFTU9O IHN0YXJ0cyB1cCBhcyBmYWxzZS4gICovCiAgIGRhZW1vbl9waXBlWzFdID0gMDsKKyNlbHNlCisg IHczMl9kYWVtb25fZXZlbnQgPSBOVUxMOworI2VuZGlmCiAKICAgaWYgKGFyZ21hdGNoIChhcmd2 LCBhcmdjLCAiLWRhZW1vbiIsICItLWRhZW1vbiIsIDUsIE5VTEwsICZza2lwX2FyZ3MpCiAgICAg ICB8fCBhcmdtYXRjaCAoYXJndiwgYXJnYywgIi1kYWVtb24iLCAiLS1kYWVtb24iLCA1LCAmZG5h bWVfYXJnLCAmc2tpcF9hcmdzKSkKQEAgLTExMTEsMTAgKzExMTksMjAgQEAgVXNpbmcgYW4gRW1h Y3MgY29uZmlndXJlZCB3aXRoIC0td2l0aC14LXRvb2xraXQ9bHVjaWQgZG9lcyBub3QgaGF2ZSB0 aGlzIHByb2JsZW0KICAgICAgIGVtYWNzX2Nsb3NlIChkYWVtb25fcGlwZVswXSk7CiAKICAgICAg IHNldHNpZCAoKTsKLSNlbHNlIC8qIERPU19OVCAqLworI2VsaWYgZGVmaW5lZChXSU5ET1dTTlQp CisgICAgICAvKiBJbmRpY2F0ZSB0aGF0IHdlIHdhbnQgZGFlbW9uIG1vZGUuICAqLworICAgICAg dzMyX2RhZW1vbl9ldmVudCA9IENyZWF0ZUV2ZW50IChOVUxMLCBUUlVFLCBGQUxTRSwgVzMyX0RB RU1PTl9FVkVOVCk7CisgICAgICBpZiAodzMyX2RhZW1vbl9ldmVudCA9PSBOVUxMKQorICAgICAg ICB7CisgICAgICAgICAgZnByaW50ZiAoc3RkZXJyLCAiQ291bGRuJ3QgY3JlYXRlIGV2ZW50IGZv ciBXaW5kb3dzIGRhZW1vblxuIik7CisgICAgICAgICAgZXhpdCAoMSk7CisgICAgICAgIH0KKyAg ICAgIGlmIChkbmFtZV9hcmcpCisgICAgICAgIGRhZW1vbl9uYW1lID0geHN0cmR1cCAoZG5hbWVf YXJnKTsKKyNlbHNlIC8qIE1TRE9TICovCiAgICAgICBmcHJpbnRmIChzdGRlcnIsICJUaGlzIHBs YXRmb3JtIGRvZXMgbm90IHN1cHBvcnQgdGhlIC1kYWVtb24gZmxhZy5cbiIpOwogICAgICAgZXhp dCAoMSk7Ci0jZW5kaWYgLyogRE9TX05UICovCisjZW5kaWYgLyogTVNET1MgKi8KICAgICB9CiAK ICNpZiBkZWZpbmVkIEhBVkVfUFRIUkVBRCAmJiAhZGVmaW5lZCBTWVNURU1fTUFMTE9DIFwKQEAg LTIzMTAsMjMgKzIzMjgsNDAgQEAgSWYgdGhlIGRhZW1vbiB3YXMgZ2l2ZW4gYSBuYW1lIGFyZ3Vt ZW50LCByZXR1cm4gdGhhdCBuYW1lLiAqLykKICAgICByZXR1cm4gUW5pbDsKIH0KIAotREVGVU4g KCJkYWVtb24taW5pdGlhbGl6ZWQiLCBGZGFlbW9uX2luaXRpYWxpemVkLCBTZGFlbW9uX2luaXRp YWxpemVkLCAwLCAwLCAwLAotICAgICAgIGRvYzogLyogTWFyayB0aGUgRW1hY3MgZGFlbW9uIGFz IGJlaW5nIGluaXRpYWxpemVkLgotVGhpcyBmaW5pc2hlcyB0aGUgZGFlbW9uaXphdGlvbiBwcm9j ZXNzIGJ5IGRvaW5nIHRoZSBvdGhlciBoYWxmIG9mIGRldGFjaGluZwotZnJvbSB0aGUgcGFyZW50 IHByb2Nlc3MgYW5kIGl0cyB0dHkgZmlsZSBkZXNjcmlwdG9ycy4gICovKQotICAodm9pZCkKK3N0 YXRpYyB2b2lkCitkYWVtb25fY2hlY2tfcHJlY29uZGl0aW9ucyAodm9pZCkKIHsKLSAgaW50IG5m ZDsKLSAgYm9vbCBlcnIgPSAwOwotCiAgIGlmICghSVNfREFFTU9OKQogICAgIGVycm9yICgiVGhp cyBmdW5jdGlvbiBjYW4gb25seSBiZSBjYWxsZWQgaWYgZW1hY3MgaXMgcnVuIGFzIGEgZGFlbW9u Iik7CiAKLSAgaWYgKGRhZW1vbl9waXBlWzFdIDwgMCkKKyNpZmRlZiBXSU5ET1dTTlQKKyAgLyog SVNfREFFTU9OIGFib3ZlIGFscmVhZHkgY2hlY2tzIHRoYXQgdzMyX2RhZW1vbl9ldmVudCAhPSBO VUxMLCBzbyBvbmx5CisgICAgIGNoZWNrIHRoYXQgd2Ugc3VjY2Vzc2Z1bGx5IHN0YXJ0ZWQgdGhl IGRhZW1vbiBoZXJlLiAgKi8KKyAgaWYgKHczMl9kYWVtb25fZXZlbnQgPT0gSU5WQUxJRF9IQU5E TEVfVkFMVUUpCisjZWxzZQorICBpZiAoZGFlbW9uX3BpcGVbMV0gPCAwICkKKyNlbmRpZgogICAg IGVycm9yICgiVGhlIGRhZW1vbiBoYXMgYWxyZWFkeSBiZWVuIGluaXRpYWxpemVkIik7CiAKICAg aWYgKE5JTFAgKFZhZnRlcl9pbml0X3RpbWUpKQogICAgIGVycm9yICgiVGhpcyBmdW5jdGlvbiBj YW4gb25seSBiZSBjYWxsZWQgYWZ0ZXIgbG9hZGluZyB0aGUgaW5pdCBmaWxlcyIpOworfQorCitE RUZVTiAoImRhZW1vbi1pbml0aWFsaXplZCIsIEZkYWVtb25faW5pdGlhbGl6ZWQsIFNkYWVtb25f aW5pdGlhbGl6ZWQsIDAsIDAsIDAsCisgICAgICAgZG9jOiAvKiBNYXJrIHRoZSBFbWFjcyBkYWVt b24gYXMgYmVpbmcgaW5pdGlhbGl6ZWQuCitUaGlzIGZpbmlzaGVzIHRoZSBkYWVtb25pemF0aW9u IHByb2Nlc3MgYnkgZG9pbmcgdGhlIG90aGVyIGhhbGYgb2YgZGV0YWNoaW5nCitmcm9tIHRoZSBw YXJlbnQgcHJvY2VzcyBhbmQgaXRzIHR0eSBmaWxlIGRlc2NyaXB0b3JzLiAgKi8pCisgICh2b2lk KQoreworICBkYWVtb25fY2hlY2tfcHJlY29uZGl0aW9ucyAoKTsKKyNpZmRlZiBXSU5ET1dTTlQK KyAgLyogU2lnbmFsIHRoZSB3YWl0aW5nIGVtYWNzY2xpZW50IHByb2Nlc3MuICAqLworICBTZXRF dmVudCAodzMyX2RhZW1vbl9ldmVudCk7CisgIENsb3NlSGFuZGxlICh3MzJfZGFlbW9uX2V2ZW50 KTsKKyAgdzMyX2RhZW1vbl9ldmVudCA9IElOVkFMSURfSEFORExFX1ZBTFVFOworI2Vsc2UKKyAg aW50IG5mZDsKKyAgYm9vbCBlcnIgPSAwOwogCiAgIC8qIEdldCByaWQgb2Ygc3RkaW4sIHN0ZG91 dCBhbmQgc3RkZXJyLiAgKi8KICAgbmZkID0gZW1hY3Nfb3BlbiAoIi9kZXYvbnVsbCIsIE9fUkRX UiwgMCk7CkBAIC0yMzUwLDYgKzIzODUsNyBAQCBmcm9tIHRoZSBwYXJlbnQgcHJvY2VzcyBhbmQg aXRzIHR0eSBmaWxlIGRlc2NyaXB0b3JzLiAgKi8pCiAKICAgaWYgKGVycikKICAgICBlcnJvciAo IkkvTyBlcnJvciBkdXJpbmcgZGFlbW9uIGluaXRpYWxpemF0aW9uIik7CisjZW5kaWYKICAgcmV0 dXJuIFF0OwogfQogCmRpZmYgLS1naXQgYS9zcmMva2V5Ym9hcmQuYyBiL3NyYy9rZXlib2FyZC5j CmluZGV4IDM4M2MxMDkuLjhmMGUxOGYgMTAwNjQ0Ci0tLSBhL3NyYy9rZXlib2FyZC5jCisrKyBi L3NyYy9rZXlib2FyZC5jCkBAIC0zODI5LDcgKzM4MjksMTEgQEAga2JkX2J1ZmZlcl9nZXRfZXZl bnQgKEtCT0FSRCAqKmticCwKICAgaWYgKG5vbmludGVyYWN0aXZlCiAgICAgICAvKiBJbiBjYXNl IHdlIGFyZSBydW5uaW5nIGFzIGEgZGFlbW9uLCBvbmx5IGRvIHRoaXMgYmVmb3JlCiAJIGRldGFj aGluZyBmcm9tIHRoZSB0ZXJtaW5hbC4gICovCisjaWZkZWYgV0lORE9XU05UCisgICAgICB8fCAo SVNfREFFTU9OICYmIHczMl9kYWVtb25fZXZlbnQgIT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpKQor I2Vsc2UKICAgICAgIHx8IChJU19EQUVNT04gJiYgZGFlbW9uX3BpcGVbMV0gPj0gMCkpCisjZW5k aWYKICAgICB7CiAgICAgICBpbnQgYyA9IGdldGNoYXIgKCk7CiAgICAgICBYU0VUSU5UIChvYmos IGMpOwpkaWZmIC0tZ2l0IGEvc3JjL2xpc3AuaCBiL3NyYy9saXNwLmgKaW5kZXggZjUyNDJhYi4u MGI4NTgxNyAxMDA2NDQKLS0tIGEvc3JjL2xpc3AuaAorKysgYi9zcmMvbGlzcC5oCkBAIC00MjE1 LDkgKzQyMTUsMTQgQEAgZXh0ZXJuIGJvb2wgbm9uaW50ZXJhY3RpdmU7CiBleHRlcm4gYm9vbCBu b19zaXRlX2xpc3A7CiAKIC8qIFBpcGUgdXNlZCB0byBzZW5kIGV4aXQgbm90aWZpY2F0aW9uIHRv IHRoZSBkYWVtb24gcGFyZW50IGF0Ci0gICBzdGFydHVwLiAgKi8KKyAgIHN0YXJ0dXAuICBPbiBX aW5kb3dzLCB3ZSB1c2UgYSBrZXJuZWwgZXZlbnQgaW5zdGVhZC4gICovCisjaWZuZGVmIFdJTkRP V1NOVAogZXh0ZXJuIGludCBkYWVtb25fcGlwZVsyXTsKICNkZWZpbmUgSVNfREFFTU9OIChkYWVt b25fcGlwZVsxXSAhPSAwKQorI2VsaWYgZGVmaW5lZChXSU5ET1dTTlQpCitleHRlcm4gdm9pZCAq dzMyX2RhZW1vbl9ldmVudDsKKyNkZWZpbmUgSVNfREFFTU9OICh3MzJfZGFlbW9uX2V2ZW50ICE9 IE5VTEwpCisjZW5kaWYKIAogLyogVHJ1ZSBpZiBoYW5kbGluZyBhIGZhdGFsIGVycm9yIGFscmVh ZHkuICAqLwogZXh0ZXJuIGJvb2wgZmF0YWxfZXJyb3JfaW5fcHJvZ3Jlc3M7CmRpZmYgLS1naXQg YS9zcmMvbWluaWJ1Zi5jIGIvc3JjL21pbmlidWYuYwppbmRleCAzNDA4YmI5Li5kZWU3Y2U4IDEw MDY0NAotLS0gYS9zcmMvbWluaWJ1Zi5jCisrKyBiL3NyYy9taW5pYnVmLmMKQEAgLTQ1OSw3ICs0 NTksMTEgQEAgcmVhZF9taW5pYnVmIChMaXNwX09iamVjdCBtYXAsIExpc3BfT2JqZWN0IGluaXRp YWwsIExpc3BfT2JqZWN0IHByb21wdCwKICAgaWYgKChub25pbnRlcmFjdGl2ZQogICAgICAgIC8q IEluIGNhc2Ugd2UgYXJlIHJ1bm5pbmcgYXMgYSBkYWVtb24sIG9ubHkgZG8gdGhpcyBiZWZvcmUK IAkgIGRldGFjaGluZyBmcm9tIHRoZSB0ZXJtaW5hbC4gICovCisjaWZkZWYgV0lORE9XU05UCisg ICAgICAgfHwgKElTX0RBRU1PTiAmJiB3MzJfZGFlbW9uX2V2ZW50ICE9IElOVkFMSURfSEFORExF X1ZBTFVFKSkKKyNlbHNlCiAgICAgICAgfHwgKElTX0RBRU1PTiAmJiAoZGFlbW9uX3BpcGVbMV0g Pj0gMCkpKQorI2VuZGlmCiAgICAgICAmJiBOSUxQIChWZXhlY3V0aW5nX2tiZF9tYWNybykpCiAg ICAgewogICAgICAgdmFsID0gcmVhZF9taW5pYnVmX25vbmludGVyYWN0aXZlIChtYXAsIGluaXRp YWwsIHByb21wdCwK --001a1140dc62f70abd050d9e3485--