From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Cecilio Pardo Newsgroups: gmane.emacs.bugs Subject: bug#71909: 30.0.60; Date: Sat, 2 Nov 2024 01:23:11 +0100 Message-ID: References: <865xtnhyn6.fsf@foxmail.com> <58c79a62-cd21-4ff5-8e81-a9ba3e9b2097@imayhem.com> <86plnj56li.fsf@gnu.org> <3b0ad17c-aa6e-421c-a17a-453bf0483023@imayhem.com> <86r07x4n93.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------00qi6ysZFOUDfMY4uEPXkroB" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="36504"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird Cc: 71909@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Nov 02 01:24:26 2024 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1t71wI-0009M9-1W for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 02 Nov 2024 01:24:26 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t71vz-00027S-4W; Fri, 01 Nov 2024 20:24:07 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t71vu-00027I-OC for bug-gnu-emacs@gnu.org; Fri, 01 Nov 2024 20:24:02 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t71vu-0004So-Fc for bug-gnu-emacs@gnu.org; Fri, 01 Nov 2024 20:24:02 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=In-Reply-To:From:References:MIME-Version:Date:To:Subject; bh=LR6FRbFT2Z1x2Ve+gdpsRwaDEzo1j4wXMSRJEg0qKxo=; b=BW5I4/RxItiYKOmL5PSUbGsnrvGFBXyBdym4Kp4vicsQjWCi6fYmylodsGfiyAoprgPrJgk81+YCCSG8ylvauP4ShczWQCU5fGjQcJv/eD3FHjAw5vByl/HLB1I5QqjQCIuGinBLv7EkB/AUJ+7xiG0yo5QFIn0ZSNTQb+sZkymmI/WBHyGaKS7vekoOINqAziT4DYRMfu4/TIHmbwEU9gRhKfkVQsjiUfp0inKj0MyF7S5bFHOHBY3vVMnDs3GipW7+C+1D/L4+VV82rSZ74fozVY8Hyihj7u4f2Rx2U5Jlp29tWnv8VGgpyl/Eg51DIjfSgomc+I8Zr1E27rXxuQ==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t71vu-0004D1-3Q for bug-gnu-emacs@gnu.org; Fri, 01 Nov 2024 20:24:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Cecilio Pardo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 02 Nov 2024 00:24:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 71909 X-GNU-PR-Package: emacs Original-Received: via spool by 71909-submit@debbugs.gnu.org id=B71909.173050700616165 (code B ref 71909); Sat, 02 Nov 2024 00:24:02 +0000 Original-Received: (at 71909) by debbugs.gnu.org; 2 Nov 2024 00:23:26 +0000 Original-Received: from localhost ([127.0.0.1]:52514 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t71vJ-0004Cf-6m for submit@debbugs.gnu.org; Fri, 01 Nov 2024 20:23:26 -0400 Original-Received: from mail.imayhem.com ([82.223.54.191]:42395 helo=zealous-pike.82-223-54-191.plesk.page) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t71vE-0004CX-Tn for 71909@debbugs.gnu.org; Fri, 01 Nov 2024 20:23:23 -0400 Original-Received: from [192.168.68.105] (111.red-88-21-7.staticip.rima-tde.net [88.21.7.111]) by zealous-pike.82-223-54-191.plesk.page (Postfix) with ESMTPSA id B852E8247F; Sat, 2 Nov 2024 00:23:12 +0000 (UTC) Authentication-Results: zealous-pike.82-223-54-191.plesk.page; spf=pass (sender IP is 88.21.7.111) smtp.mailfrom=cpardo@imayhem.com smtp.helo=[192.168.68.105] Received-SPF: pass (zealous-pike.82-223-54-191.plesk.page: connection is authenticated) Content-Language: es-ES In-Reply-To: <86r07x4n93.fsf@gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:294706 Archived-At: This is a multi-part message in MIME format. --------------00qi6ysZFOUDfMY4uEPXkroB Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Here is a new version, with the discussed corrections. - Now the test for gdiplus is done calling w32_gdiplus_startup. Will use it if its available, even if native image functions are disabled. - Don't use cl-seq. - Use Fexpand_file_name on file name. - Send unibyte string only for binary data. - Use unwind-protect to ensure temp file is deleted. - Fixed docs, changelog, NEWS and manual. --------------00qi6ysZFOUDfMY4uEPXkroB Content-Type: text/plain; charset=UTF-8; name="0001-Add-support-for-yank-media-on-MS-Windows.patch" Content-Disposition: attachment; filename="0001-Add-support-for-yank-media-on-MS-Windows.patch" Content-Transfer-Encoding: base64 RnJvbSBhMmY5ZmFkYzRiOTUxYTMyMWI1ZDAzZGU5MzQ0NzMxZWYwOGRkZWQ3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDZWNpbGlvIFBhcmRvIDxjcGFyZG9AaW1heWhlbS5j b20+CkRhdGU6IE1vbiwgMjggT2N0IDIwMjQgMjI6MTg6MTMgKzAxMDAKU3ViamVjdDogW1BB VENIXSBBZGQgc3VwcG9ydCBmb3IgeWFuay1tZWRpYSBvbiBNUy1XaW5kb3dzCgpBZGRzIHRo ZSBjYXBhY2l0eSB0byBoYW5kbGUgdHlwZXMgZGlmZmVyZW50IGZyb20gc3RyaW5ncyB0byB0 aGUKY2xpcGJvYXJkIG1hbmFnZW1lbnQgZnVuY3Rpb25zIG9uIE1TLVdpbmRvd3MsIGFuZCBz b21lIGxvZ2ljCnJlcXVpcmVkIHRvIGNvbnZlcnQgbWVkaWEgdHlwZXMgbmFtZXMgYW5kIGNv bnRlbnQgdG8gYmUgd2hhdAp5YW5rLW1lZGlhIGFuZCB0aGUgbW9kZXMgdGhhdCB1c2UgaXQg ZXhwZWN0LgoKKiBsaXNwL3Rlcm0vdzMyLXdpbi5lbCAodzMyLS1zZWxlY3Rpb24tdGFyZ2V0 LXRyYW5zbGF0aW9ucyk6IE5ldwp2YXJpYWJsZSB0aGF0IGhvbGRzIHRoZSBuYW1lIHRyYW5z bGF0aW9ucyBmb3IgbWVkaWEgdHl0cGVzLgoodzMyLS10cmFuc2xhdGUtc2VsZWN0aW9uLXRh cmdldCk6IE5ldyBmdW5jdGlvbiwgdHJhbnNsYXRlIHRoZQpuYW1lIG9mIGEgbWVkaWEgdHlw ZS4KKHczMi0tdHJhbnNsYXRlLXJldmVyc2Utc2VsZWN0aW9uLXRhcmdldCk6IE5ldyBmdW5j dGlvbiwgUmV2ZXJzZQp0cmFuc2xhdGlvbi4KKHczMi0tZ2V0LXNlbGVjdGlvbik6IE1vZGlm aWVkIHRvIHRyYW5zbGF0ZSB0YXJnZXQgbmFtZXMgd2hlbgphc2tlZCBmb3IgdGFyZ2V0cywg YW5kIHJldHJpZXZlIG1lZGlhIHR5cGVzIHdoZW4gYXNrZWQgZm9yIHRoZW0uCih3MzItLW1p bWUtdHlwZS10ZXh0dWFsLXApOiBOZXcgZnVuY3Rpb24sIGNoZWNrcyBpZiBhIE1JTUUgdHlw ZQppcyB0ZXh0dWFsLgoqIGxpc3AvdGV4dG1vZGVzL3NnbWwtbW9kZS5lbCAoaHRtbC1tb2Rl LS1pbWFnZS15YW5rLWhhbmRsZXIpOgpGaXhlZCB0aGUgaW1hZ2Ugc2F2ZSBtZWNoYW5pc20s IHRoYXQgYWRkZWQgbGluZSBmZWVkIGNoYXJhY3RlcnMKb24gTVMtV2luZG93cywgYnJlYWtp bmcgYmluYXJ5IGZvcm1hdHMuCiogc3JjL3czMmltYWdlLmMgKGdkaXBsdXNfaW5pdCk6IE1v ZGlmaWVkIHRvIGZldGNoIG1vcmUKZnVuY3Rpb25zIGZyb21tIGdkaXBsdXMuCihnZXRfZW5j b2Rlcl9jbHNpZCk6IFJlbmFtZWQgdG8gdzMyX2dkaXBfZ2V0X2VuY29kZXJfY2xzaWQgYW5k Cm1hZGUgbm9uc3RhdGljLgooZ2RpcGx1c19zdGFydHVwKTogUmVuYW1lZCB0byB3MzJfZ2Rp cGx1c19zdGFydHVwIGFuZAptYWRlIG5vbnN0YXRpYy4KKiBzcmMvdzMyc2VsZWN0LmMgKHN0 ZGZtdF9uYW1lKTogTWFkZSBnbG9iYWwsIHdhcyBmdW5jdGlvbgpzdGF0aWMuCihjb252ZXJ0 X2RpYnY1X3RvX3BuZyk6IE5ldyBmdW5jdGlvbiB0byBjb252ZXJ0IERJQlY1IGNsaXBib2Fy ZApmb3JtYXQgdG8gUE5HLgooZ2V0X2NsaXBib2FyZF9mb3JtYXRfbmFtZSk6IE5ldyBmdW5j dGlvbiBnZXQgdGhlIG5hbWUgb2YgYQpmb3JtYXQgZ2l2ZW4gaXRzIGluZGV4LgooRnczMl9f Z2V0X2NsaXBib2FyZF9kYXRhX21lZGlhKTogTmV3IGZ1bmN0aW9uLCByZXRyaWV2ZXMgYW5k CmNvbnZlcnRzIG1lZGlhIGNvbnRlbnQuCihzeW1zX29mX3czMnNlbGVjdCk6IEV4cG9ydCBu ZXcgbGlzcCBmdW5jdGlvbnMKKiBzcmMvdzMyZ2RpcGx1cy5oOiBOZXcgZmlsZSwgZm9yIGRl ZmluaXRpb25zIGluIHczMmltYWdlLmMKKiBkb2MvbGlzcHJlZi9mcmFtZXMudGV4aTogVXBk YXRlZCB3aXRoIE1TLVdpbmRvd3Mgc3VwcG9ydC4KLS0tCiBkb2MvbGlzcHJlZi9mcmFtZXMu dGV4aSAgICAgfCAgMTYgKy0tCiBldGMvTkVXUyAgICAgICAgICAgICAgICAgICAgfCAgIDYg KysKIGxpc3AvdGVybS93MzItd2luLmVsICAgICAgICB8ICA2OSArKysrKysrKysrKystCiBs aXNwL3RleHRtb2Rlcy9zZ21sLW1vZGUuZWwgfCAgIDcgKy0KIHNyYy93MzJnZGlwbHVzLmgg ICAgICAgICAgICB8IDExMiArKysrKysrKysrKysrKysrKysrKysKIHNyYy93MzJndWkuaCAg ICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdzMyaW1hZ2UuYyAgICAgICAgICAgICAgfCAx MDQgKysrKy0tLS0tLS0tLS0tLS0tLQogc3JjL3czMnNlbGVjdC5jICAgICAgICAgICAgIHwg MTk0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQogOCBmaWxlcyBjaGFu Z2VkLCAzODcgaW5zZXJ0aW9ucygrKSwgMTIzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy93MzJnZGlwbHVzLmgKCmRpZmYgLS1naXQgYS9kb2MvbGlzcHJlZi9mcmFt ZXMudGV4aSBiL2RvYy9saXNwcmVmL2ZyYW1lcy50ZXhpCmluZGV4IGVkZWJhMzI4OGZjLi5h MzUzOGM4YWM0YiAxMDA2NDQKLS0tIGEvZG9jL2xpc3ByZWYvZnJhbWVzLnRleGkKKysrIGIv ZG9jL2xpc3ByZWYvZnJhbWVzLnRleGkKQEAgLTQ3NTgsMTQgKzQ3NTgsMTQgQEAgT3RoZXIg U2VsZWN0aW9ucwogQG5vZGUgWWFua2luZyBNZWRpYQogQHNlY3Rpb24gWWFua2luZyBNZWRp YQogCi0gIERhdGEgc2F2ZWQgd2l0aGluIHdpbmRvdyBzeXN0ZW0gc2VsZWN0aW9ucyBpcyBu b3QgcmVzdHJpY3RlZCB0bwotcGxhaW4gdGV4dC4gIEl0IGlzIHBvc3NpYmxlIGZvciBzZWxl Y3Rpb24gZGF0YSB0byBlbmNvbXBhc3MgaW1hZ2VzIG9yCi1vdGhlciBiaW5hcnkgZGF0YSBv ZiB0aGUgbGlrZSwgYXMgd2VsbCBhcyByaWNoIHRleHQgY29udGVudCBpbnN0YW5jZWQKLWJ5 IEhUTUwsIGFuZCBhbHNvIFBvc3RTY3JpcHQuICBTaW5jZSB0aGUgc2VsZWN0aW9uIGRhdGEg dHlwZXMgaW5jaWRlbnQKLXRvIHRoaXMgZGF0YSBhcmUgYXQgdmFyaWFuY2Ugd2l0aCB0aG9z ZSBmb3IgcGxhaW4gdGV4dCwgdGhlIGluc2VydGlvbgotb2Ygc3VjaCBkYXRhIGlzIGZhY2ls aXRhdGVkIGJ5IGEgc2V0IG9mIGZ1bmN0aW9ucyBkdWJiZWQKLUBkZm57eWFuay1tZWRpYSBo YW5kbGVyc30sIHdoaWNoIGFyZSByZWdpc3RlcmVkIGJ5IGVhY2ggbWFqb3IgbW9kZQotdW5k ZXJ0YWtpbmcgaXRzIGluc2VydGlvbiBhbmQgY2FsbGVkIHdoZXJlIHdhcnJhbnRlZCB1cG9u IHRoZQorICBEYXRhIHNhdmVkIHdpdGhpbiB3aW5kb3cgc3lzdGVtIHNlbGVjdGlvbnMgYW5k IHRoZSBNUy1XaW5kb3dzCitjbGlwYm9hcmQgaXMgbm90IHJlc3RyaWN0ZWQgdG8gcGxhaW4g dGV4dC4gIEl0IGlzIHBvc3NpYmxlIGZvciBzZWxlY3Rpb24KK2RhdGEgdG8gZW5jb21wYXNz IGltYWdlcyBvciBvdGhlciBiaW5hcnkgZGF0YSBvZiB0aGUgbGlrZSwgYXMgd2VsbCBhcwor cmljaCB0ZXh0IGNvbnRlbnQgaW5zdGFuY2VkIGJ5IEhUTUwsIGFuZCBhbHNvIFBvc3RTY3Jp cHQuICBTaW5jZSB0aGUKK3NlbGVjdGlvbiBkYXRhIHR5cGVzIGluY2lkZW50IHRvIHRoaXMg ZGF0YSBhcmUgYXQgdmFyaWFuY2Ugd2l0aCB0aG9zZQorZm9yIHBsYWluIHRleHQsIHRoZSBp bnNlcnRpb24gb2Ygc3VjaCBkYXRhIGlzIGZhY2lsaXRhdGVkIGJ5IGEgc2V0IG9mCitmdW5j dGlvbnMgZHViYmVkIEBkZm57eWFuay1tZWRpYSBoYW5kbGVyc30sIHdoaWNoIGFyZSByZWdp c3RlcmVkIGJ5IGVhY2gKK21ham9yIG1vZGUgdW5kZXJ0YWtpbmcgaXRzIGluc2VydGlvbiBh bmQgY2FsbGVkIHdoZXJlIHdhcnJhbnRlZCB1cG9uIHRoZQogZXhlY3V0aW9uIG9mIHRoZSBA Y29kZXt5YW5rLW1lZGlhfSBjb21tYW5kLgogCiBAZGVmdW4geWFuay1tZWRpYS1oYW5kbGVy IHR5cGVzIGhhbmRsZXIKZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIvZXRjL05FV1MKaW5kZXgg ZDFjNzMwM2Y5NzYuLjYwMWZjZGIyMThiIDEwMDY0NAotLS0gYS9ldGMvTkVXUworKysgYi9l dGMvTkVXUwpAQCAtODAyLDYgKzgwMiwxMiBAQCBEaXJlY3RXcml0ZSByZW5kZXJpbmcgcGFy YW1ldGVycy4KIFRvIHNob3cgY29sb3IgRW1vamkgaW4gRW1hY3MsIGN1c3RvbWl6ZSB0aGUg ZGVmYXVsdCBmb250c2V0IHRvIHVzZSBhCiBjb2xvciBFbW9qaSBmb250IGluc3RhbGxlZCBv biB5b3VyIHN5c3RlbSBmb3IgdGhlICdlbW9qaScgc2NyaXB0LgogCisrKysKKyoqIEVtYWNz IG9uIE1TLVdpbmRvd3Mgbm93IHN1cHBvcnRzICd5YW5rLW1lZGlhJy4KK1RoaXMgY29tbWFu ZCBpbnNlcnRzIGNsaXBib2FyZCBkYXRhIG9mIGRpZmZlcmVudCBmb3JtYXRzIGludG8gdGhl CitjdXJyZW50IGJ1ZmZlciwgaWYgdGhlIGFjdGl2ZSBtb2RlIHN1cHBvcnRzIGl0LgorCisK IAwKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBFbWFjcy4K ZGlmZiAtLWdpdCBhL2xpc3AvdGVybS93MzItd2luLmVsIGIvbGlzcC90ZXJtL3czMi13aW4u ZWwKaW5kZXggNzVmODUzMDAxMGMuLjAzN2I5N2Y0Mjk0IDEwMDY0NAotLS0gYS9saXNwL3Rl cm0vdzMyLXdpbi5lbAorKysgYi9saXNwL3Rlcm0vdzMyLXdpbi5lbApAQCAtNDQyLDE1ICs0 NDIsODAgQEAgdzMyLS1zZXQtc2VsZWN0aW9uCiAgICAgICAodzMyLXNldC1jbGlwYm9hcmQt ZGF0YSAoc3RyaW5nLXJlcGxhY2UgIlwwIiAiXFwwIiB2YWx1ZSkpCiAgICAgKHB1dCAneC1z ZWxlY3Rpb25zIChvciB0eXBlICdQUklNQVJZKSB2YWx1ZSkpKQogCi0oZGVmdW4gdzMyLS1n ZXQtc2VsZWN0aW9uICAoJm9wdGlvbmFsIHR5cGUgZGF0YS10eXBlKQorKGRlZnZhciB3MzIt LXNlbGVjdGlvbi10YXJnZXQtdHJhbnNsYXRpb25zCisgICcoKFBORyAuIGltYWdlL3BuZykK KyAgICAoRElCVjUgLiBpbWFnZS9wbmcpCisgICAgKEhUTUxcIEZvcm1hdCAuIHRleHQvaHRt bCkpKQorCisoZGVmdW4gdzMyLS10cmFuc2xhdGUtc2VsZWN0aW9uLXRhcmdldCh0YXJnZXQp CisgIChsZXQgKCh4bGF0IChhc3NvYyB0YXJnZXQgdzMyLS1zZWxlY3Rpb24tdGFyZ2V0LXRy YW5zbGF0aW9ucykpKQorICAgIChpZiB4bGF0CisgICAgICAgIChjZHIgeGxhdCkKKyAgICAg IHRhcmdldCkpKQorCisoZGVmdW4gdzMyLS10cmFuc2xhdGUtcmV2ZXJzZS1zZWxlY3Rpb24t dGFyZ2V0KHRhcmdldCkKKyAgKGFwcGVuZAorICAgKG1hcGNhciAjJ2NhcgorICAgICAgICAg ICAoc2VxLWZpbHRlcgorICAgICAgICAgICAgKGxhbWJkYSAoeCkKKyAgICAgICAgICAgICAg KGVxIHRhcmdldAorICAgICAgICAgICAgICAgICAgKHczMi0tdHJhbnNsYXRlLXNlbGVjdGlv bi10YXJnZXQgKGNhciB4KSkpKQorICAgICAgICAgICAgdzMyLS1zZWxlY3Rpb24tdGFyZ2V0 LXRyYW5zbGF0aW9ucykpCisgICAobGlzdCB0YXJnZXQpKSkKKworKGRlZnVuIHczMi0tbWlt ZS10eXBlLXRleHR1YWwtcChtaW1lLXR5cGUpCisgICJSZXR1cm5zIHQgaWYgTUlNRS1UWVBF LCBhIHN5bWJvbCwgbmFtZXMgYSB0ZXh0dWFsIE1JTUUgdHlwZS4KKworVGhpcyBmdW5jdGlv biBpcyBpbnRlbmRlZCB0byBjbGFzc2lmeSBjbGlwYm9hcmQgZGF0YS4gIEFsbCBNSU1FIHN1 YnR5cGVzCitvZiB0ZXh0LyBhcmUgY29uc2lkZXJlZCB0ZXh0dWFsLiAgQWxzbyB0aG9zZSB3 aXRoIHN1ZmZpeGVzICt4bWwsICtqc29uLAorK3lhbWwsICtqc29uLXNlcS4gIEFuZCBhcHBs aWNhdGlvbi94bWwsIGFwcGxpY2F0aW9uL2pzb24sCithcHBsaWNhdGlvbi95YW1sLCBhcHBs aWNhdGlvbi9qc29uLXNlcS4KKworVGhpcyBjbGFzc2lmaWNhdGlvbiBpcyBub3QgZXhoYXVz dGl2ZS4gIFNvbWUgTUlNRSB0eXBlcyBub3QgbGlzdGVkIG1heQorYWxzbyBiZSB0ZXh0dWFs LiIKKworICAobGV0ICgoc3RyIChzeW1ib2wtbmFtZSBtaW1lLXR5cGUpKSkKKyAgICAob3IK KyAgICAgKGVxIG1pbWUtdHlwZSAnYXBwbGljYXRpb24veG1sKQorICAgICAoZXEgbWltZS10 eXBlICdhcHBsaWNhdGlvbi9qc29uKQorICAgICAoZXEgbWltZS10eXBlICdhcHBsaWNhdGlv bi95YW1sKQorICAgICAoZXEgbWltZS10eXBlICdhcHBsaWNhdGlvbi9qc29uLXNlcSkKKyAg ICAgKHN0cmluZy1tYXRjaC1wICJcXGB0ZXh0LyIgc3RyKQorICAgICAoc3RyaW5nLW1hdGNo LXAgIit4bWxcXCciIHN0cikKKyAgICAgKHN0cmluZy1tYXRjaC1wICIranNvblxcJyIgc3Ry KQorICAgICAoc3RyaW5nLW1hdGNoLXAgIit5YW1sXFwnIiBzdHIpCisgICAgIChzdHJpbmct bWF0Y2gtcCAiK2pzb24tc2VxXFwnIiBzdHIpKSkpCisKKyhkZWZ1biB3MzItLWdldC1zZWxl Y3Rpb24gKCZvcHRpb25hbCB0eXBlIGRhdGEtdHlwZSkKICAgKGNvbmQgKChhbmQgKGVxIHR5 cGUgJ0NMSVBCT0FSRCkKICAgICAgICAgICAgICAgKGVxIGRhdGEtdHlwZSAnU1RSSU5HKSkK ICAgICAgICAgICh3aXRoLWRlbW90ZWQtZXJyb3JzICJ3MzItZ2V0LWNsaXBib2FyZC1kYXRh OiVTIgogICAgICAgICAgICAodzMyLWdldC1jbGlwYm9hcmQtZGF0YSkpKQogICAgICAgICAo KGVxIGRhdGEtdHlwZSAnVEFSR0VUUykKICAgICAgICAgIChpZiAoZXEgdHlwZSAnQ0xJUEJP QVJEKQotICAgICAgICAgICAgICh3MzItc2VsZWN0aW9uLXRhcmdldHMgdHlwZSkKKyAgICAg ICAgICAgICAodmNvbmNhdAorICAgICAgICAgICAgICAoZGVsZXRlLWR1cHMKKyAgICAgICAg ICAgICAgIChzZXEtbWFwICMndzMyLS10cmFuc2xhdGUtc2VsZWN0aW9uLXRhcmdldAorICAg ICAgICAgICAgICAgICAgICAgICAgKHczMi1zZWxlY3Rpb24tdGFyZ2V0cyB0eXBlKSkpKQog ICAgICAgICAgICAoaWYgKGdldCAneC1zZWxlY3Rpb25zIChvciB0eXBlICdQUklNQVJZKSkg J1tTVFJJTkddKSkpCisgICAgICAgICgoZXEgdHlwZSAnQ0xJUEJPQVJEKQorICAgICAgICAg KGxldCAoKHRtcC1maWxlIChtYWtlLXRlbXAtZmlsZSAiZW1hY3MtY2xpcGJvYXJkIikpCisg ICAgICAgICAgICAgICAoaXMtdGV4dHVhbCAodzMyLS1taW1lLXR5cGUtdGV4dHVhbC1wIGRh dGEtdHlwZSkpKQorICAgICAgICAgICAodW53aW5kLXByb3RlY3QKKyAgICAgICAgICAgICAg IChsZXQqICgoZGF0YS10eXBlcyAodzMyLS10cmFuc2xhdGUtcmV2ZXJzZS1zZWxlY3Rpb24t dGFyZ2V0IGRhdGEtdHlwZSkpCisgICAgICAgICAgICAgICAgICAgICAgKGRhdGEgKHczMi0t Z2V0LWNsaXBib2FyZC1kYXRhLW1lZGlhIGRhdGEtdHlwZXMgdG1wLWZpbGUgaXMtdGV4dHVh bCkpKQorICAgICAgICAgICAgICAgICAoY29uZAorICAgICAgICAgICAgICAgICAgOzsgZGF0 YSBpcyBpbiB0aGUgZmlsZQorICAgICAgICAgICAgICAgICAgKChlcSBkYXRhIHQpCisgICAg ICAgICAgICAgICAgICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAgICAgICAgICAgICAgICAg IChzZXQtYnVmZmVyLW11bHRpYnl0ZSBuaWwpCisgICAgICAgICAgICAgICAgICAgICAoaW5z ZXJ0LWZpbGUtY29udGVudHMtbGl0ZXJhbGx5IHRtcC1maWxlKQorICAgICAgICAgICAgICAg ICAgICAgKGJ1ZmZlci1zdHJpbmcpKSkKKyAgICAgICAgICAgICAgICAgIDs7IGRhdGEgaXMg aW4gZGF0YSB2YXIKKyAgICAgICAgICAgICAgICAgICgoc3RyaW5ncCBkYXRhKSBkYXRhKQor ICAgICAgICAgICAgICAgICAgOzsgTm8gZGF0YQorICAgICAgICAgICAgICAgICAgKHQgbmls KSkpCisgICAgICAgICAgICAgKGRlbGV0ZS1maWxlIHRtcC1maWxlKSkpKQogICAgICAgICAo dCAoZ2V0ICd4LXNlbGVjdGlvbnMgKG9yIHR5cGUgJ1BSSU1BUlkpKSkpKQogCiAoZGVmdW4g dzMyLS1zZWxlY3Rpb24tb3duZXItcCAoc2VsZWN0aW9uKQpkaWZmIC0tZ2l0IGEvbGlzcC90 ZXh0bW9kZXMvc2dtbC1tb2RlLmVsIGIvbGlzcC90ZXh0bW9kZXMvc2dtbC1tb2RlLmVsCmlu ZGV4IGNjODYyOTRkZjA5Li5mYWQ3MDA4YWRjMCAxMDA2NDQKLS0tIGEvbGlzcC90ZXh0bW9k ZXMvc2dtbC1tb2RlLmVsCisrKyBiL2xpc3AvdGV4dG1vZGVzL3NnbWwtbW9kZS5lbApAQCAt MjQ3NiwxMCArMjQ3Niw5IEBAIGh0bWwtbW9kZS0taW1hZ2UteWFuay1oYW5kbGVyCiAgICAg KHdoZW4gKGFuZCAoZmlsZS1leGlzdHMtcCBmaWxlKQogICAgICAgICAgICAgICAgKG5vdCAo eWVzLW9yLW5vLXAgKGZvcm1hdCAiJXMgZXhpc3RzOyBvdmVyd3JpdGU/IiBmaWxlKSkpKQog ICAgICAgKHVzZXItZXJyb3IgIiVzIGV4aXN0cyIgZmlsZSkpCi0gICAgKHdpdGgtdGVtcC1i dWZmZXIKLSAgICAgIChzZXQtYnVmZmVyLW11bHRpYnl0ZSBuaWwpCi0gICAgICAoaW5zZXJ0 IGltYWdlKQotICAgICAgKHdyaXRlLXJlZ2lvbiAocG9pbnQtbWluKSAocG9pbnQtbWF4KSBm aWxlKSkKKyAgICAobGV0ICgoY29kaW5nLXN5c3RlbS1mb3Itd3JpdGUgJ2VtYWNzLWludGVy bmFsKSkKKyAgICAgICh3aXRoLXRlbXAtZmlsZSBmaWxlCisgICAgICAgIChpbnNlcnQgaW1h Z2UpKSkKICAgICAoaW5zZXJ0IChmb3JtYXQgIjxpbWcgc3JjPSVTPlxuIiAoZmlsZS1yZWxh dGl2ZS1uYW1lIGZpbGUpKSkKICAgICAoaW5zZXJ0LWltYWdlCiAgICAgIChjcmVhdGUtaW1h Z2UgZmlsZSAobWFpbGNhcC1taW1lLXR5cGUtdG8tZXh0ZW5zaW9uIHR5cGUpIG5pbApkaWZm IC0tZ2l0IGEvc3JjL3czMmdkaXBsdXMuaCBiL3NyYy93MzJnZGlwbHVzLmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjlkMDVhZTZjMTkwCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjL3czMmdkaXBsdXMuaApAQCAtMCwwICsxLDExMiBAQAorI2lmZGVmIFdJ TkRPV1NOVAordHlwZWRlZiBHcFN0YXR1cyAoV0lOR0RJUEFQSSAqR2RpcGx1c1N0YXJ0dXBf UHJvYykKKyAgKFVMT05HX1BUUiAqLCBHZGlwbHVzU3RhcnR1cElucHV0ICosIEdkaXBsdXNT dGFydHVwT3V0cHV0ICopOwordHlwZWRlZiBWT0lEIChXSU5HRElQQVBJICpHZGlwbHVzU2h1 dGRvd25fUHJvYykgKFVMT05HX1BUUik7Cit0eXBlZGVmIEdwU3RhdHVzIChXSU5HRElQQVBJ ICpHZGlwR2V0UHJvcGVydHlJdGVtU2l6ZV9Qcm9jKQorICAoR3BJbWFnZSAqLCBQUk9QSUQs IFVJTlQgKik7Cit0eXBlZGVmIEdwU3RhdHVzIChXSU5HRElQQVBJICpHZGlwR2V0UHJvcGVy dHlJdGVtX1Byb2MpCisgIChHcEltYWdlICosIFBST1BJRCwgVUlOVCwgUHJvcGVydHlJdGVt ICopOwordHlwZWRlZiBHcFN0YXR1cyAoV0lOR0RJUEFQSSAqR2RpcEltYWdlR2V0RnJhbWVE aW1lbnNpb25zQ291bnRfUHJvYykKKyAgKEdwSW1hZ2UgKiwgVUlOVCAqKTsKK3R5cGVkZWYg R3BTdGF0dXMgKFdJTkdESVBBUEkgKkdkaXBJbWFnZUdldEZyYW1lRGltZW5zaW9uc0xpc3Rf UHJvYykKKyAgKEdwSW1hZ2UgKiwgR1VJRCAqLCBVSU5UKTsKK3R5cGVkZWYgR3BTdGF0dXMg KFdJTkdESVBBUEkgKkdkaXBJbWFnZUdldEZyYW1lQ291bnRfUHJvYykKKyAgKEdwSW1hZ2Ug KiwgR0RJUENPTlNUIEdVSUQgKiwgVUlOVCAqKTsKK3R5cGVkZWYgR3BTdGF0dXMgKFdJTkdE SVBBUEkgKkdkaXBJbWFnZVNlbGVjdEFjdGl2ZUZyYW1lX1Byb2MpCisgIChHcEltYWdlKiwg R0RJUENPTlNUIEdVSUQgKiwgVUlOVCk7Cit0eXBlZGVmIEdwU3RhdHVzIChXSU5HRElQQVBJ ICpHZGlwQ3JlYXRlQml0bWFwRnJvbUZpbGVfUHJvYykKKyAgKFdDSEFSICosIEdwQml0bWFw ICoqKTsKK3R5cGVkZWYgR3BTdGF0dXMgKFdJTkdESVBBUEkgKkdkaXBDcmVhdGVCaXRtYXBG cm9tU3RyZWFtX1Byb2MpCisgIChJU3RyZWFtICosIEdwQml0bWFwICoqKTsKK3R5cGVkZWYg R3BTdGF0dXMgKFdJTkdESVBBUEkgKkdkaXBDcmVhdGVCaXRtYXBGcm9tU2NhbjBfUHJvYykK KyAgKElOVCwgSU5ULCBJTlQsIFBpeGVsRm9ybWF0LCBCWVRFKiwgR3BCaXRtYXAqKik7Cit0 eXBlZGVmIElTdHJlYW0gKiAoV0lOQVBJICpTSENyZWF0ZU1lbVN0cmVhbV9Qcm9jKSAoY29u c3QgQllURSAqLCBVSU5UKTsKK3R5cGVkZWYgR3BTdGF0dXMgKFdJTkdESVBBUEkgKkdkaXBD cmVhdGVIQklUTUFQRnJvbUJpdG1hcF9Qcm9jKQorICAoR3BCaXRtYXAgKiwgSEJJVE1BUCAq LCBBUkdCKTsKK3R5cGVkZWYgR3BTdGF0dXMgKFdJTkdESVBBUEkgKkdkaXBEaXNwb3NlSW1h Z2VfUHJvYykgKEdwSW1hZ2UgKik7Cit0eXBlZGVmIEdwU3RhdHVzIChXSU5HRElQQVBJICpH ZGlwR2V0SW1hZ2VIZWlnaHRfUHJvYykgKEdwSW1hZ2UgKiwgVUlOVCAqKTsKK3R5cGVkZWYg R3BTdGF0dXMgKFdJTkdESVBBUEkgKkdkaXBHZXRJbWFnZVdpZHRoX1Byb2MpIChHcEltYWdl ICosIFVJTlQgKik7Cit0eXBlZGVmIEdwU3RhdHVzIChXSU5HRElQQVBJICpHZGlwR2V0SW1h Z2VFbmNvZGVyc1NpemVfUHJvYykgKFVJTlQgKiwgVUlOVCAqKTsKK3R5cGVkZWYgR3BTdGF0 dXMgKFdJTkdESVBBUEkgKkdkaXBHZXRJbWFnZUVuY29kZXJzX1Byb2MpCisgKFVJTlQsIFVJ TlQsIEltYWdlQ29kZWNJbmZvICopOwordHlwZWRlZiBHcFN0YXR1cyAoV0lOR0RJUEFQSSAq R2RpcExvYWRJbWFnZUZyb21GaWxlX1Byb2MpCisgKEdESVBDT05TVCBXQ0hBUiAqLEdwSW1h Z2UgKiopOwordHlwZWRlZiBHcFN0YXR1cyAoV0lOR0RJUEFQSSAqR2RpcEdldEltYWdlVGh1 bWJuYWlsX1Byb2MpCisgKEdwSW1hZ2UgKiwgVUlOVCwgVUlOVCwgR3BJbWFnZSoqLCBHZXRU aHVtYm5haWxJbWFnZUFib3J0LCBWT0lEICopOwordHlwZWRlZiBHcFN0YXR1cyAoV0lOR0RJ UEFQSSAqR2RpcFNhdmVJbWFnZVRvRmlsZV9Qcm9jKQorIChHcEltYWdlICosIEdESVBDT05T VCBXQ0hBUiAqLCBHRElQQ09OU1QgQ0xTSUQgKiwKKyBHRElQQ09OU1QgRW5jb2RlclBhcmFt ZXRlcnMgKik7Cit0eXBlZGVmIEdwU3RhdHVzIChXSU5HRElQQVBJICpHZGlwSW1hZ2VSb3Rh dGVGbGlwX1Byb2MpCisgIChHcEltYWdlICppbWFnZSwgUm90YXRlRmxpcFR5cGUgcmZUeXBl KTsKKworZXh0ZXJuIEdkaXBsdXNTdGFydHVwX1Byb2MgZm5fR2RpcGx1c1N0YXJ0dXA7Citl eHRlcm4gR2RpcGx1c1NodXRkb3duX1Byb2MgZm5fR2RpcGx1c1NodXRkb3duOworZXh0ZXJu IEdkaXBHZXRQcm9wZXJ0eUl0ZW1TaXplX1Byb2MgZm5fR2RpcEdldFByb3BlcnR5SXRlbVNp emU7CitleHRlcm4gR2RpcEdldFByb3BlcnR5SXRlbV9Qcm9jIGZuX0dkaXBHZXRQcm9wZXJ0 eUl0ZW07CitleHRlcm4gR2RpcEltYWdlR2V0RnJhbWVEaW1lbnNpb25zQ291bnRfUHJvYyBm bl9HZGlwSW1hZ2VHZXRGcmFtZURpbWVuc2lvbnNDb3VudDsKK2V4dGVybiBHZGlwSW1hZ2VH ZXRGcmFtZURpbWVuc2lvbnNMaXN0X1Byb2MgZm5fR2RpcEltYWdlR2V0RnJhbWVEaW1lbnNp b25zTGlzdDsKK2V4dGVybiBHZGlwSW1hZ2VHZXRGcmFtZUNvdW50X1Byb2MgZm5fR2RpcElt YWdlR2V0RnJhbWVDb3VudDsKK2V4dGVybiBHZGlwSW1hZ2VTZWxlY3RBY3RpdmVGcmFtZV9Q cm9jIGZuX0dkaXBJbWFnZVNlbGVjdEFjdGl2ZUZyYW1lOworZXh0ZXJuIEdkaXBDcmVhdGVC aXRtYXBGcm9tRmlsZV9Qcm9jIGZuX0dkaXBDcmVhdGVCaXRtYXBGcm9tRmlsZTsKK2V4dGVy biBHZGlwQ3JlYXRlQml0bWFwRnJvbVN0cmVhbV9Qcm9jIGZuX0dkaXBDcmVhdGVCaXRtYXBG cm9tU3RyZWFtOworZXh0ZXJuIEdkaXBDcmVhdGVCaXRtYXBGcm9tU2NhbjBfUHJvYyBmbl9H ZGlwQ3JlYXRlQml0bWFwRnJvbVNjYW4wOworZXh0ZXJuIFNIQ3JlYXRlTWVtU3RyZWFtX1By b2MgZm5fU0hDcmVhdGVNZW1TdHJlYW07CitleHRlcm4gR2RpcENyZWF0ZUhCSVRNQVBGcm9t Qml0bWFwX1Byb2MgZm5fR2RpcENyZWF0ZUhCSVRNQVBGcm9tQml0bWFwOworZXh0ZXJuIEdk aXBEaXNwb3NlSW1hZ2VfUHJvYyBmbl9HZGlwRGlzcG9zZUltYWdlOworZXh0ZXJuIEdkaXBH ZXRJbWFnZUhlaWdodF9Qcm9jIGZuX0dkaXBHZXRJbWFnZUhlaWdodDsKK2V4dGVybiBHZGlw R2V0SW1hZ2VXaWR0aF9Qcm9jIGZuX0dkaXBHZXRJbWFnZVdpZHRoOworZXh0ZXJuIEdkaXBH ZXRJbWFnZUVuY29kZXJzU2l6ZV9Qcm9jIGZuX0dkaXBHZXRJbWFnZUVuY29kZXJzU2l6ZTsK K2V4dGVybiBHZGlwR2V0SW1hZ2VFbmNvZGVyc19Qcm9jIGZuX0dkaXBHZXRJbWFnZUVuY29k ZXJzOworZXh0ZXJuIEdkaXBMb2FkSW1hZ2VGcm9tRmlsZV9Qcm9jIGZuX0dkaXBMb2FkSW1h Z2VGcm9tRmlsZTsKK2V4dGVybiBHZGlwR2V0SW1hZ2VUaHVtYm5haWxfUHJvYyBmbl9HZGlw R2V0SW1hZ2VUaHVtYm5haWw7CitleHRlcm4gR2RpcFNhdmVJbWFnZVRvRmlsZV9Qcm9jIGZu X0dkaXBTYXZlSW1hZ2VUb0ZpbGU7CitleHRlcm4gR2RpcEltYWdlUm90YXRlRmxpcF9Qcm9j IGZuX0dkaXBJbWFnZVJvdGF0ZUZsaXA7CisKKyMgdW5kZWYgR2RpcGx1c1N0YXJ0dXAKKyMg dW5kZWYgR2RpcGx1c1NodXRkb3duCisjIHVuZGVmIEdkaXBHZXRQcm9wZXJ0eUl0ZW1TaXpl CisjIHVuZGVmIEdkaXBHZXRQcm9wZXJ0eUl0ZW0KKyMgdW5kZWYgR2RpcEltYWdlR2V0RnJh bWVEaW1lbnNpb25zQ291bnQKKyMgdW5kZWYgR2RpcEltYWdlR2V0RnJhbWVEaW1lbnNpb25z TGlzdAorIyB1bmRlZiBHZGlwSW1hZ2VHZXRGcmFtZUNvdW50CisjIHVuZGVmIEdkaXBJbWFn ZVNlbGVjdEFjdGl2ZUZyYW1lCisjIHVuZGVmIEdkaXBDcmVhdGVCaXRtYXBGcm9tRmlsZQor IyB1bmRlZiBHZGlwQ3JlYXRlQml0bWFwRnJvbVN0cmVhbQorIyB1bmRlZiBHZGlwQ3JlYXRl Qml0bWFwRnJvbVNjYW4wCisjIHVuZGVmIFNIQ3JlYXRlTWVtU3RyZWFtCisjIHVuZGVmIEdk aXBDcmVhdGVIQklUTUFQRnJvbUJpdG1hcAorIyB1bmRlZiBHZGlwRGlzcG9zZUltYWdlCisj IHVuZGVmIEdkaXBHZXRJbWFnZUhlaWdodAorIyB1bmRlZiBHZGlwR2V0SW1hZ2VXaWR0aAor IyB1bmRlZiBHZGlwR2V0SW1hZ2VFbmNvZGVyc1NpemUKKyMgdW5kZWYgR2RpcEdldEltYWdl RW5jb2RlcnMKKyMgdW5kZWYgR2RpcExvYWRJbWFnZUZyb21GaWxlCisjIHVuZGVmIEdkaXBH ZXRJbWFnZVRodW1ibmFpbAorIyB1bmRlZiBHZGlwU2F2ZUltYWdlVG9GaWxlCisjIHVuZGVm IEdkaXBTYXZlSW1hZ2VSb3RhdGVGbGlwCisKKyMgZGVmaW5lIEdkaXBsdXNTdGFydHVwIGZu X0dkaXBsdXNTdGFydHVwCisjIGRlZmluZSBHZGlwbHVzU2h1dGRvd24gZm5fR2RpcGx1c1No dXRkb3duCisjIGRlZmluZSBHZGlwR2V0UHJvcGVydHlJdGVtU2l6ZSBmbl9HZGlwR2V0UHJv cGVydHlJdGVtU2l6ZQorIyBkZWZpbmUgR2RpcEdldFByb3BlcnR5SXRlbSBmbl9HZGlwR2V0 UHJvcGVydHlJdGVtCisjIGRlZmluZSBHZGlwSW1hZ2VHZXRGcmFtZURpbWVuc2lvbnNDb3Vu dCBmbl9HZGlwSW1hZ2VHZXRGcmFtZURpbWVuc2lvbnNDb3VudAorIyBkZWZpbmUgR2RpcElt YWdlR2V0RnJhbWVEaW1lbnNpb25zTGlzdCBmbl9HZGlwSW1hZ2VHZXRGcmFtZURpbWVuc2lv bnNMaXN0CisjIGRlZmluZSBHZGlwSW1hZ2VHZXRGcmFtZUNvdW50IGZuX0dkaXBJbWFnZUdl dEZyYW1lQ291bnQKKyMgZGVmaW5lIEdkaXBJbWFnZVNlbGVjdEFjdGl2ZUZyYW1lIGZuX0dk aXBJbWFnZVNlbGVjdEFjdGl2ZUZyYW1lCisjIGRlZmluZSBHZGlwQ3JlYXRlQml0bWFwRnJv bUZpbGUgZm5fR2RpcENyZWF0ZUJpdG1hcEZyb21GaWxlCisjIGRlZmluZSBHZGlwQ3JlYXRl Qml0bWFwRnJvbVN0cmVhbSBmbl9HZGlwQ3JlYXRlQml0bWFwRnJvbVN0cmVhbQorIyBkZWZp bmUgR2RpcENyZWF0ZUJpdG1hcEZyb21TY2FuMCBmbl9HZGlwQ3JlYXRlQml0bWFwRnJvbVNj YW4wCisjIGRlZmluZSBTSENyZWF0ZU1lbVN0cmVhbSBmbl9TSENyZWF0ZU1lbVN0cmVhbQor IyBkZWZpbmUgR2RpcENyZWF0ZUhCSVRNQVBGcm9tQml0bWFwIGZuX0dkaXBDcmVhdGVIQklU TUFQRnJvbUJpdG1hcAorIyBkZWZpbmUgR2RpcERpc3Bvc2VJbWFnZSBmbl9HZGlwRGlzcG9z ZUltYWdlCisjIGRlZmluZSBHZGlwR2V0SW1hZ2VIZWlnaHQgZm5fR2RpcEdldEltYWdlSGVp Z2h0CisjIGRlZmluZSBHZGlwR2V0SW1hZ2VXaWR0aCBmbl9HZGlwR2V0SW1hZ2VXaWR0aAor IyBkZWZpbmUgR2RpcEdldEltYWdlRW5jb2RlcnNTaXplIGZuX0dkaXBHZXRJbWFnZUVuY29k ZXJzU2l6ZQorIyBkZWZpbmUgR2RpcEdldEltYWdlRW5jb2RlcnMgZm5fR2RpcEdldEltYWdl RW5jb2RlcnMKKyMgZGVmaW5lIEdkaXBMb2FkSW1hZ2VGcm9tRmlsZSBmbl9HZGlwTG9hZElt YWdlRnJvbUZpbGUKKyMgZGVmaW5lIEdkaXBHZXRJbWFnZVRodW1ibmFpbCBmbl9HZGlwR2V0 SW1hZ2VUaHVtYm5haWwKKyMgZGVmaW5lIEdkaXBTYXZlSW1hZ2VUb0ZpbGUgZm5fR2RpcFNh dmVJbWFnZVRvRmlsZQorIyBkZWZpbmUgR2RpcEltYWdlUm90YXRlRmxpcCBmbl9HZGlwSW1h Z2VSb3RhdGVGbGlwCisjZW5kaWYKKworaW50IHczMl9nZGlwX2dldF9lbmNvZGVyX2Nsc2lk IChjb25zdCBjaGFyICp0eXBlLCBDTFNJRCAqY2xzaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL3cz Mmd1aS5oIGIvc3JjL3czMmd1aS5oCmluZGV4IDczOWE3OTA5MTFlLi4yNjU2NWRjYWU2YiAx MDA2NDQKLS0tIGEvc3JjL3czMmd1aS5oCisrKyBiL3NyYy93MzJndWkuaApAQCAtNDUsNyAr NDUsOSBAQCAjZGVmaW5lIGxvY2FsX2ZyZWUocCkgKEhlYXBGcmVlIChsb2NhbF9oZWFwLCAw LCAoKExQVk9JRCkgKHApKSkpCiBleHRlcm4gaW50IHczMl9sb2FkX2ltYWdlIChzdHJ1Y3Qg ZnJhbWUgKmYsIHN0cnVjdCBpbWFnZSAqaW1nLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzcF9PYmplY3Qgc3BlY19maWxlLCBMaXNwX09iamVjdCBzcGVjX2RhdGEpOwogZXh0 ZXJuIGJvb2wgdzMyX2Nhbl91c2VfbmF0aXZlX2ltYWdlX2FwaSAoTGlzcF9PYmplY3QpOwor ZXh0ZXJuIGJvb2wgdzMyX2dkaXBsdXNfc3RhcnR1cCAodm9pZCk7CiBleHRlcm4gdm9pZCB3 MzJfZ2RpcGx1c19zaHV0ZG93biAodm9pZCk7CisKIGV4dGVybiBzaXplX3QgdzMyX2ltYWdl X3NpemUgKEVtYWNzX1BpeG1hcCk7CiAKICNkZWZpbmUgRkFDRV9ERUZBVUxUICh+MCkKZGlm ZiAtLWdpdCBhL3NyYy93MzJpbWFnZS5jIGIvc3JjL3czMmltYWdlLmMKaW5kZXggMzU5YTRm YTNhNzIuLjQ0ZWVkMDg3NTI4IDEwMDY0NAotLS0gYS9zcmMvdzMyaW1hZ2UuYworKysgYi9z cmMvdzMyaW1hZ2UuYwpAQCAtMzgsNDQgKzM4LDggQEAgI2RlZmluZSBDT0JKTUFDUk9TCiAj aW5jbHVkZSAiZnJhbWUuaCIKICNpbmNsdWRlICJjb2RpbmcuaCIKIAorI2luY2x1ZGUgIncz MmdkaXBsdXMuaCIKICNpZmRlZiBXSU5ET1dTTlQKLQotdHlwZWRlZiBHcFN0YXR1cyAoV0lO R0RJUEFQSSAqR2RpcGx1c1N0YXJ0dXBfUHJvYykKLSAgKFVMT05HX1BUUiAqLCBHZGlwbHVz U3RhcnR1cElucHV0ICosIEdkaXBsdXNTdGFydHVwT3V0cHV0ICopOwotdHlwZWRlZiBWT0lE IChXSU5HRElQQVBJICpHZGlwbHVzU2h1dGRvd25fUHJvYykgKFVMT05HX1BUUik7Ci10eXBl ZGVmIEdwU3RhdHVzIChXSU5HRElQQVBJICpHZGlwR2V0UHJvcGVydHlJdGVtU2l6ZV9Qcm9j KQotICAoR3BJbWFnZSAqLCBQUk9QSUQsIFVJTlQgKik7Ci10eXBlZGVmIEdwU3RhdHVzIChX SU5HRElQQVBJICpHZGlwR2V0UHJvcGVydHlJdGVtX1Byb2MpCi0gIChHcEltYWdlICosIFBS T1BJRCwgVUlOVCwgUHJvcGVydHlJdGVtICopOwotdHlwZWRlZiBHcFN0YXR1cyAoV0lOR0RJ UEFQSSAqR2RpcEltYWdlR2V0RnJhbWVEaW1lbnNpb25zQ291bnRfUHJvYykKLSAgKEdwSW1h Z2UgKiwgVUlOVCAqKTsKLXR5cGVkZWYgR3BTdGF0dXMgKFdJTkdESVBBUEkgKkdkaXBJbWFn ZUdldEZyYW1lRGltZW5zaW9uc0xpc3RfUHJvYykKLSAgKEdwSW1hZ2UgKiwgR1VJRCAqLCBV SU5UKTsKLXR5cGVkZWYgR3BTdGF0dXMgKFdJTkdESVBBUEkgKkdkaXBJbWFnZUdldEZyYW1l Q291bnRfUHJvYykKLSAgKEdwSW1hZ2UgKiwgR0RJUENPTlNUIEdVSUQgKiwgVUlOVCAqKTsK LXR5cGVkZWYgR3BTdGF0dXMgKFdJTkdESVBBUEkgKkdkaXBJbWFnZVNlbGVjdEFjdGl2ZUZy YW1lX1Byb2MpCi0gIChHcEltYWdlKiwgR0RJUENPTlNUIEdVSUQgKiwgVUlOVCk7Ci10eXBl ZGVmIEdwU3RhdHVzIChXSU5HRElQQVBJICpHZGlwQ3JlYXRlQml0bWFwRnJvbUZpbGVfUHJv YykKLSAgKFdDSEFSICosIEdwQml0bWFwICoqKTsKLXR5cGVkZWYgR3BTdGF0dXMgKFdJTkdE SVBBUEkgKkdkaXBDcmVhdGVCaXRtYXBGcm9tU3RyZWFtX1Byb2MpCi0gIChJU3RyZWFtICos IEdwQml0bWFwICoqKTsKLXR5cGVkZWYgSVN0cmVhbSAqIChXSU5BUEkgKlNIQ3JlYXRlTWVt U3RyZWFtX1Byb2MpIChjb25zdCBCWVRFICosIFVJTlQpOwotdHlwZWRlZiBHcFN0YXR1cyAo V0lOR0RJUEFQSSAqR2RpcENyZWF0ZUhCSVRNQVBGcm9tQml0bWFwX1Byb2MpCi0gIChHcEJp dG1hcCAqLCBIQklUTUFQICosIEFSR0IpOwotdHlwZWRlZiBHcFN0YXR1cyAoV0lOR0RJUEFQ SSAqR2RpcERpc3Bvc2VJbWFnZV9Qcm9jKSAoR3BJbWFnZSAqKTsKLXR5cGVkZWYgR3BTdGF0 dXMgKFdJTkdESVBBUEkgKkdkaXBHZXRJbWFnZUhlaWdodF9Qcm9jKSAoR3BJbWFnZSAqLCBV SU5UICopOwotdHlwZWRlZiBHcFN0YXR1cyAoV0lOR0RJUEFQSSAqR2RpcEdldEltYWdlV2lk dGhfUHJvYykgKEdwSW1hZ2UgKiwgVUlOVCAqKTsKLXR5cGVkZWYgR3BTdGF0dXMgKFdJTkdE SVBBUEkgKkdkaXBHZXRJbWFnZUVuY29kZXJzU2l6ZV9Qcm9jKSAoVUlOVCAqLCBVSU5UICop OwotdHlwZWRlZiBHcFN0YXR1cyAoV0lOR0RJUEFQSSAqR2RpcEdldEltYWdlRW5jb2RlcnNf UHJvYykKLSAoVUlOVCwgVUlOVCwgSW1hZ2VDb2RlY0luZm8gKik7Ci10eXBlZGVmIEdwU3Rh dHVzIChXSU5HRElQQVBJICpHZGlwTG9hZEltYWdlRnJvbUZpbGVfUHJvYykKLSAoR0RJUENP TlNUIFdDSEFSICosR3BJbWFnZSAqKik7Ci10eXBlZGVmIEdwU3RhdHVzIChXSU5HRElQQVBJ ICpHZGlwR2V0SW1hZ2VUaHVtYm5haWxfUHJvYykKLSAoR3BJbWFnZSAqLCBVSU5ULCBVSU5U LCBHcEltYWdlKiosIEdldFRodW1ibmFpbEltYWdlQWJvcnQsIFZPSUQgKik7Ci10eXBlZGVm IEdwU3RhdHVzIChXSU5HRElQQVBJICpHZGlwU2F2ZUltYWdlVG9GaWxlX1Byb2MpCi0gKEdw SW1hZ2UgKiwgR0RJUENPTlNUIFdDSEFSICosIEdESVBDT05TVCBDTFNJRCAqLAotIEdESVBD T05TVCBFbmNvZGVyUGFyYW1ldGVycyAqKTsKLQogR2RpcGx1c1N0YXJ0dXBfUHJvYyBmbl9H ZGlwbHVzU3RhcnR1cDsKIEdkaXBsdXNTaHV0ZG93bl9Qcm9jIGZuX0dkaXBsdXNTaHV0ZG93 bjsKIEdkaXBHZXRQcm9wZXJ0eUl0ZW1TaXplX1Byb2MgZm5fR2RpcEdldFByb3BlcnR5SXRl bVNpemU7CkBAIC04Niw2ICs1MCw3IEBAICNkZWZpbmUgQ09CSk1BQ1JPUwogR2RpcEltYWdl U2VsZWN0QWN0aXZlRnJhbWVfUHJvYyBmbl9HZGlwSW1hZ2VTZWxlY3RBY3RpdmVGcmFtZTsK IEdkaXBDcmVhdGVCaXRtYXBGcm9tRmlsZV9Qcm9jIGZuX0dkaXBDcmVhdGVCaXRtYXBGcm9t RmlsZTsKIEdkaXBDcmVhdGVCaXRtYXBGcm9tU3RyZWFtX1Byb2MgZm5fR2RpcENyZWF0ZUJp dG1hcEZyb21TdHJlYW07CitHZGlwQ3JlYXRlQml0bWFwRnJvbVNjYW4wX1Byb2MgZm5fR2Rp cENyZWF0ZUJpdG1hcEZyb21TY2FuMDsKIFNIQ3JlYXRlTWVtU3RyZWFtX1Byb2MgZm5fU0hD cmVhdGVNZW1TdHJlYW07CiBHZGlwQ3JlYXRlSEJJVE1BUEZyb21CaXRtYXBfUHJvYyBmbl9H ZGlwQ3JlYXRlSEJJVE1BUEZyb21CaXRtYXA7CiBHZGlwRGlzcG9zZUltYWdlX1Byb2MgZm5f R2RpcERpc3Bvc2VJbWFnZTsKQEAgLTk2LDYgKzYxLDcgQEAgI2RlZmluZSBDT0JKTUFDUk9T CiBHZGlwTG9hZEltYWdlRnJvbUZpbGVfUHJvYyBmbl9HZGlwTG9hZEltYWdlRnJvbUZpbGU7 CiBHZGlwR2V0SW1hZ2VUaHVtYm5haWxfUHJvYyBmbl9HZGlwR2V0SW1hZ2VUaHVtYm5haWw7 CiBHZGlwU2F2ZUltYWdlVG9GaWxlX1Byb2MgZm5fR2RpcFNhdmVJbWFnZVRvRmlsZTsKK0dk aXBJbWFnZVJvdGF0ZUZsaXBfUHJvYyBmbl9HZGlwSW1hZ2VSb3RhdGVGbGlwOwogCiBzdGF0 aWMgYm9vbAogZ2RpcGx1c19pbml0ICh2b2lkKQpAQCAtMTQ2LDYgKzExMiwxMCBAQCBnZGlw bHVzX2luaXQgKHZvaWQpCiAgICAgZ2V0X3Byb2NfYWRkciAoZ2RpcGx1c19saWIsICJHZGlw Q3JlYXRlQml0bWFwRnJvbVN0cmVhbSIpOwogICBpZiAoIWZuX0dkaXBDcmVhdGVCaXRtYXBG cm9tU3RyZWFtKQogICAgIHJldHVybiBmYWxzZTsKKyAgZm5fR2RpcENyZWF0ZUJpdG1hcEZy b21TY2FuMCA9IChHZGlwQ3JlYXRlQml0bWFwRnJvbVNjYW4wX1Byb2MpCisgICAgZ2V0X3By b2NfYWRkciAoZ2RpcGx1c19saWIsICJHZGlwQ3JlYXRlQml0bWFwRnJvbVNjYW4wIik7Cisg IGlmICghZm5fR2RpcENyZWF0ZUJpdG1hcEZyb21TY2FuMCkKKyAgICByZXR1cm4gZmFsc2U7 CiAgIGZuX0dkaXBDcmVhdGVIQklUTUFQRnJvbUJpdG1hcCA9IChHZGlwQ3JlYXRlSEJJVE1B UEZyb21CaXRtYXBfUHJvYykKICAgICBnZXRfcHJvY19hZGRyIChnZGlwbHVzX2xpYiwgIkdk aXBDcmVhdGVIQklUTUFQRnJvbUJpdG1hcCIpOwogICBpZiAoIWZuX0dkaXBDcmVhdGVIQklU TUFQRnJvbUJpdG1hcCkKQEAgLTE5Niw1MiArMTY2LDE0IEBAIGdkaXBsdXNfaW5pdCAodm9p ZCkKICAgICBnZXRfcHJvY19hZGRyIChnZGlwbHVzX2xpYiwgIkdkaXBTYXZlSW1hZ2VUb0Zp bGUiKTsKICAgaWYgKCFmbl9HZGlwU2F2ZUltYWdlVG9GaWxlKQogICAgIHJldHVybiBmYWxz ZTsKKyAgZm5fR2RpcEltYWdlUm90YXRlRmxpcCA9IChHZGlwSW1hZ2VSb3RhdGVGbGlwX1By b2MpCisgICAgZ2V0X3Byb2NfYWRkciAoZ2RpcGx1c19saWIsICJHZGlwSW1hZ2VSb3RhdGVG bGlwIik7CisgIGlmICghZm5fR2RpcEltYWdlUm90YXRlRmxpcCkKKyAgICByZXR1cm4gZmFs c2U7CiAKICAgcmV0dXJuIHRydWU7CiB9CiAKLSMgdW5kZWYgR2RpcGx1c1N0YXJ0dXAKLSMg dW5kZWYgR2RpcGx1c1NodXRkb3duCi0jIHVuZGVmIEdkaXBHZXRQcm9wZXJ0eUl0ZW1TaXpl Ci0jIHVuZGVmIEdkaXBHZXRQcm9wZXJ0eUl0ZW0KLSMgdW5kZWYgR2RpcEltYWdlR2V0RnJh bWVEaW1lbnNpb25zQ291bnQKLSMgdW5kZWYgR2RpcEltYWdlR2V0RnJhbWVEaW1lbnNpb25z TGlzdAotIyB1bmRlZiBHZGlwSW1hZ2VHZXRGcmFtZUNvdW50Ci0jIHVuZGVmIEdkaXBJbWFn ZVNlbGVjdEFjdGl2ZUZyYW1lCi0jIHVuZGVmIEdkaXBDcmVhdGVCaXRtYXBGcm9tRmlsZQot IyB1bmRlZiBHZGlwQ3JlYXRlQml0bWFwRnJvbVN0cmVhbQotIyB1bmRlZiBTSENyZWF0ZU1l bVN0cmVhbQotIyB1bmRlZiBHZGlwQ3JlYXRlSEJJVE1BUEZyb21CaXRtYXAKLSMgdW5kZWYg R2RpcERpc3Bvc2VJbWFnZQotIyB1bmRlZiBHZGlwR2V0SW1hZ2VIZWlnaHQKLSMgdW5kZWYg R2RpcEdldEltYWdlV2lkdGgKLSMgdW5kZWYgR2RpcEdldEltYWdlRW5jb2RlcnNTaXplCi0j IHVuZGVmIEdkaXBHZXRJbWFnZUVuY29kZXJzCi0jIHVuZGVmIEdkaXBMb2FkSW1hZ2VGcm9t RmlsZQotIyB1bmRlZiBHZGlwR2V0SW1hZ2VUaHVtYm5haWwKLSMgdW5kZWYgR2RpcFNhdmVJ bWFnZVRvRmlsZQotCi0jIGRlZmluZSBHZGlwbHVzU3RhcnR1cCBmbl9HZGlwbHVzU3RhcnR1 cAotIyBkZWZpbmUgR2RpcGx1c1NodXRkb3duIGZuX0dkaXBsdXNTaHV0ZG93bgotIyBkZWZp bmUgR2RpcEdldFByb3BlcnR5SXRlbVNpemUgZm5fR2RpcEdldFByb3BlcnR5SXRlbVNpemUK LSMgZGVmaW5lIEdkaXBHZXRQcm9wZXJ0eUl0ZW0gZm5fR2RpcEdldFByb3BlcnR5SXRlbQot IyBkZWZpbmUgR2RpcEltYWdlR2V0RnJhbWVEaW1lbnNpb25zQ291bnQgZm5fR2RpcEltYWdl R2V0RnJhbWVEaW1lbnNpb25zQ291bnQKLSMgZGVmaW5lIEdkaXBJbWFnZUdldEZyYW1lRGlt ZW5zaW9uc0xpc3QgZm5fR2RpcEltYWdlR2V0RnJhbWVEaW1lbnNpb25zTGlzdAotIyBkZWZp bmUgR2RpcEltYWdlR2V0RnJhbWVDb3VudCBmbl9HZGlwSW1hZ2VHZXRGcmFtZUNvdW50Ci0j IGRlZmluZSBHZGlwSW1hZ2VTZWxlY3RBY3RpdmVGcmFtZSBmbl9HZGlwSW1hZ2VTZWxlY3RB Y3RpdmVGcmFtZQotIyBkZWZpbmUgR2RpcENyZWF0ZUJpdG1hcEZyb21GaWxlIGZuX0dkaXBD cmVhdGVCaXRtYXBGcm9tRmlsZQotIyBkZWZpbmUgR2RpcENyZWF0ZUJpdG1hcEZyb21TdHJl YW0gZm5fR2RpcENyZWF0ZUJpdG1hcEZyb21TdHJlYW0KLSMgZGVmaW5lIFNIQ3JlYXRlTWVt U3RyZWFtIGZuX1NIQ3JlYXRlTWVtU3RyZWFtCi0jIGRlZmluZSBHZGlwQ3JlYXRlSEJJVE1B UEZyb21CaXRtYXAgZm5fR2RpcENyZWF0ZUhCSVRNQVBGcm9tQml0bWFwCi0jIGRlZmluZSBH ZGlwRGlzcG9zZUltYWdlIGZuX0dkaXBEaXNwb3NlSW1hZ2UKLSMgZGVmaW5lIEdkaXBHZXRJ bWFnZUhlaWdodCBmbl9HZGlwR2V0SW1hZ2VIZWlnaHQKLSMgZGVmaW5lIEdkaXBHZXRJbWFn ZVdpZHRoIGZuX0dkaXBHZXRJbWFnZVdpZHRoCi0jIGRlZmluZSBHZGlwR2V0SW1hZ2VFbmNv ZGVyc1NpemUgZm5fR2RpcEdldEltYWdlRW5jb2RlcnNTaXplCi0jIGRlZmluZSBHZGlwR2V0 SW1hZ2VFbmNvZGVycyBmbl9HZGlwR2V0SW1hZ2VFbmNvZGVycwotIyBkZWZpbmUgR2RpcExv YWRJbWFnZUZyb21GaWxlIGZuX0dkaXBMb2FkSW1hZ2VGcm9tRmlsZQotIyBkZWZpbmUgR2Rp cEdldEltYWdlVGh1bWJuYWlsIGZuX0dkaXBHZXRJbWFnZVRodW1ibmFpbAotIyBkZWZpbmUg R2RpcFNhdmVJbWFnZVRvRmlsZSBmbl9HZGlwU2F2ZUltYWdlVG9GaWxlCi0KICNlbmRpZgkv KiBXSU5ET1dTTlQgKi8KIAogc3RhdGljIGludCBnZGlwX2luaXRpYWxpemVkOwpAQCAtMjUy LDggKzE4NCw4IEBAIGdkaXBsdXNfaW5pdCAodm9pZCkKIAogCiAvKiBJbml0aWFsaXplIEdE SSssIHJldHVybiB0cnVlIGlmIHN1Y2Nlc3NmdWwuICAqLwotc3RhdGljIGJvb2wKLWdkaXBs dXNfc3RhcnR1cCAodm9pZCkKK2Jvb2wKK3czMl9nZGlwbHVzX3N0YXJ0dXAgKHZvaWQpCiB7 CiAgIEdwU3RhdHVzIHN0YXR1czsKIApAQCAtMzA1LDcgKzIzNyw3IEBAIHczMl9jYW5fdXNl X25hdGl2ZV9pbWFnZV9hcGkgKExpc3BfT2JqZWN0IHR5cGUpCiAJIEJ1dCB3ZSBkb24ndCB5 ZXQgc3VwcG9ydCB0aGVzZSBpbiBpbWFnZS5jLiAgKi8KICAgICAgIHJldHVybiBmYWxzZTsK ICAgICB9Ci0gIHJldHVybiBnZGlwbHVzX3N0YXJ0dXAgKCk7CisgIHJldHVybiB3MzJfZ2Rp cGx1c19zdGFydHVwICgpOwogfQogCiBlbnVtIFByb3BlcnR5SXRlbV90eXBlIHsKQEAgLTU0 OSw4ICs0ODEsOCBAQCB3MzJfbG9hZF9pbWFnZSAoc3RydWN0IGZyYW1lICpmLCBzdHJ1Y3Qg aW1hZ2UgKmltZywKICAgfTsKIAogCi1zdGF0aWMgaW50Ci1nZXRfZW5jb2Rlcl9jbHNpZCAo Y29uc3QgY2hhciAqdHlwZSwgQ0xTSUQgKmNsc2lkKQoraW50Cit3MzJfZ2RpcF9nZXRfZW5j b2Rlcl9jbHNpZCAoY29uc3QgY2hhciAqdHlwZSwgQ0xTSUQgKmNsc2lkKQogewogICAvKiBB IHNpbXBsZSBjYWNoZSBiYXNlZCBvbiB0aGUgYXNzdW1wdGlvbnMgdGhhdCBtYW55IHRodW1i bmFpbHMgd2lsbAogICAgICBiZSBnZW5lcmF0ZWQgdXNpbmcgdGhlIHNhbWUgVFlQRS4gICov CkBAIC02MjUsNyArNTU3LDcgQEAgREVGVU4gKCJ3MzJpbWFnZS1jcmVhdGUtdGh1bWJuYWls IiwgRnczMmltYWdlX2NyZWF0ZV90aHVtYm5haWwsCiAKICAgaWYgKCFnZGlwbHVzX3N0YXJ0 ZWQpCiAgICAgewotICAgICAgaWYgKCFnZGlwbHVzX3N0YXJ0dXAgKCkpCisgICAgICBpZiAo IXczMl9nZGlwbHVzX3N0YXJ0dXAgKCkpCiAJcmV0dXJuIFFuaWw7CiAgICAgfQogCkBAIC02 NDksNyArNTgxLDcgQEAgREVGVU4gKCJ3MzJpbWFnZS1jcmVhdGUtdGh1bWJuYWlsIiwgRncz MmltYWdlX2NyZWF0ZV90aHVtYm5haWwsCiAgICAgICBDTFNJRCB0aHVtYl9jbHNpZDsKICAg ICAgIGlmIChzdGF0dXMgPT0gT2sKIAkgIC8qIEdldCB0aGUgR1VJRCBvZiB0aGUgVFlQRSdz IGVuY29kZXIuICovCi0JICAmJiBnZXRfZW5jb2Rlcl9jbHNpZCAoU1NEQVRBICh0eXBlKSwg JnRodW1iX2Nsc2lkKSA+PSAwKQorCSAgJiYgdzMyX2dkaXBfZ2V0X2VuY29kZXJfY2xzaWQg KFNTREFUQSAodHlwZSksICZ0aHVtYl9jbHNpZCkgPj0gMCkKIAl7CiAJICAvKiBTYXZlIHRo ZSB0aHVtYm5haWwgaW1hZ2UgdG8gYSBmaWxlIG9mIHNwZWNpZmllZCBUWVBFLiAgKi8KIAkg IHdjaGFyX3QgdGh1bWJfZmlsZV93W01BWF9QQVRIXTsKZGlmZiAtLWdpdCBhL3NyYy93MzJz ZWxlY3QuYyBiL3NyYy93MzJzZWxlY3QuYwppbmRleCAwMDZiZjQwOGI0Ny4uZDFjYTM4NDg4 MjYgMTAwNjQ0Ci0tLSBhL3NyYy93MzJzZWxlY3QuYworKysgYi9zcmMvdzMyc2VsZWN0LmMK QEAgLTczLDEyICs3MywyMiBAQCBDb3B5cmlnaHQgKEMpIDE5OTMtMTk5NCwgMjAwMS0yMDI0 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICovCiAKICNpbmNsdWRlIDxjb25m aWcuaD4KKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8d2luZ2RpLmg+CisjaW5j bHVkZSA8d3R5cGVzLmg+CisjaW5jbHVkZSA8Z2RpcGx1cy5oPgorI2lmbmRlZiBDRl9ESUJW NQorIyBkZWZpbmUgQ0ZfRElCVjUgMTcKKyMgdW5kZWYgQ0ZfTUFYCisjIGRlZmluZSBDRl9N QVggMTgKKyNlbmRpZgogI2luY2x1ZGUgImxpc3AuaCIKICNpbmNsdWRlICJ3MzJjb21tb24u aCIJLyogb3Nfc3VidHlwZSAqLwogI2luY2x1ZGUgInczMnRlcm0uaCIJLyogZm9yIGFsbCBv ZiB0aGUgdzMyIGluY2x1ZGVzICovCiAjaW5jbHVkZSAidzMyc2VsZWN0LmgiCiAjaW5jbHVk ZSAiYmxvY2tpbnB1dC5oIgogI2luY2x1ZGUgImNvZGluZy5oIgorI2luY2x1ZGUgInczMmdk aXBsdXMuaCIKIAogI2lmZGVmIENZR1dJTgogI2luY2x1ZGUgPHN0cmluZy5oPgpAQCAtNzg3 LDYgKzc5NywxNjYgQEAgREVGVU4gKCJ3MzItc2V0LWNsaXBib2FyZC1kYXRhIiwgRnczMl9z ZXRfY2xpcGJvYXJkX2RhdGEsCiAgIHJldHVybiAob2sgPyBzdHJpbmcgOiBRbmlsKTsKIH0K IAorLyogWGxpYi1saWtlIG5hbWVzIGZvciBzdGFuZGFyZCBXaW5kb3dzIGNsaXBib2FyZCBk YXRhIGZvcm1hdHMuCisgICBUaGV5IGFyZSBpbiB1cHBlci1jYXNlIHRvIG1pbWljIHhzZWxl Y3QuYy4gIEEgY291cGxlIG9mIHRoZSBuYW1lcworICAgd2VyZSBjaGFuZ2VkIHRvIGJlIG1v cmUgbGlrZSB0aGVpciBYIGNvdW50ZXJwYXJ0cy4gICovCitzdGF0aWMgY29uc3QgY2hhciAq c3RkZm10X25hbWVbXSA9IHsKKyAgIlVOREVGSU5FRCIsCisgICJTVFJJTkciLAorICAiQklU TUFQIiwKKyAgIk1FVEFGSUxFIiwKKyAgIlNZTUxJTksiLAorICAiRElGIiwKKyAgIlRJRkYi LAorICAiT0VNX1NUUklORyIsCisgICJESUIiLAorICAiUEFMRVRURSIsCisgICJQRU5EQVRB IiwKKyAgIlJJRkYiLAorICAiV0FWRSIsCisgICJVVEY4X1NUUklORyIsCisgICJFTkhNRVRB RklMRSIsCisgICJGSUxFX05BTUVTIiwgLyogRE5EICovCisgICJMT0NBTEUiLCAvKiBub3Qg dXNlZCAqLworICAiRElCVjUiCit9OworCisvKiBNdXN0IGJlIGNhbGxlZCB3aXRoIGJsb2Nr X2lucHV0KCkgYWN0aXZlLiAgKi8KK3N0YXRpYyBib29sCitjb252ZXJ0X2RpYnY1X3RvX3Bu ZyAoY2hhciAqZGF0YSwgaW50IHNpemUsIGNoYXIgKnRlbXBfZmlsZSkKK3sKKyAgQ0xTSUQg Y2xzaWRfcG5nOworCisgIGlmICghdzMyX2dkaXBsdXNfc3RhcnR1cCAoKQorICAgICAgfHwg IXczMl9nZGlwX2dldF9lbmNvZGVyX2Nsc2lkICgicG5nIiwgJmNsc2lkX3BuZykpCisgICAg cmV0dXJuIGZhbHNlOworCisgIEJJVE1BUFY1SEVBREVSICpibWkgPSAodm9pZCAqKSBkYXRh OworICBpbnQgc3RyaWRlID0gYm1pLT5iVjVTaXplSW1hZ2UgLyBibWktPmJWNUhlaWdodDsK KyAgbG9uZyBvZmZzZXQgPSBibWktPmJWNVNpemUgKyBibWktPmJWNUNsclVzZWQgKiBzaXpl b2YgKFJHQlFVQUQpOworICBpZiAoYm1pLT5iVjVDb21wcmVzc2lvbiA9PSBCSV9CSVRGSUVM RFMpCisgICAgb2Zmc2V0ICs9IDEyOworICBCWVRFICpzY2FuMCA9IGRhdGEgKyBvZmZzZXQ7 CisKKyAgR3BCaXRtYXAgKmJpdG1hcCA9IE5VTEw7CisKKyAgR3BTdGF0dXMgc3RhdHVzCisg ICAgPSBHZGlwQ3JlYXRlQml0bWFwRnJvbVNjYW4wIChibWktPmJWNVdpZHRoLCBibWktPmJW NUhlaWdodCwgc3RyaWRlLAorCQkJCSBQaXhlbEZvcm1hdDMyYnBwQVJHQiwgc2NhbjAsICZi aXRtYXApOworCisgIGlmIChzdGF0dXMgIT0gT2spCisgICAgcmV0dXJuIGZhbHNlOworCisg IC8qIFRoZSBiaXRtYXAgY29tZXMgdXBzaWRlIGRvd24uICAqLworICBHZGlwSW1hZ2VSb3Rh dGVGbGlwIChiaXRtYXAsIFJvdGF0ZU5vbmVGbGlwWSk7CisKKyAgV0NIQVIgd2lkZV9maWxl bmFtZVtNQVhfUEFUSF07CisgIGZpbGVuYW1lX3RvX3V0ZjE2ICh0ZW1wX2ZpbGUsIHdpZGVf ZmlsZW5hbWUpOworCisgIHN0YXR1cyA9IEdkaXBTYXZlSW1hZ2VUb0ZpbGUgKGJpdG1hcCwg d2lkZV9maWxlbmFtZSwgJmNsc2lkX3BuZywgTlVMTCk7CisgIEdkaXBEaXNwb3NlSW1hZ2Ug KGJpdG1hcCk7CisgIGlmIChzdGF0dXMgIT0gT2spCisgICAgcmV0dXJuIGZhbHNlOworICBy ZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIGludAorZ2V0X2NsaXBib2FyZF9mb3JtYXRfbmFt ZSAoaW50IGZvcm1hdF9pbmRleCwgY2hhciAqbmFtZSkKK3sKKyAgKm5hbWUgPSAwOworICBm b3JtYXRfaW5kZXggPSBFbnVtQ2xpcGJvYXJkRm9ybWF0cyAoZm9ybWF0X2luZGV4KTsKKyAg aWYgKGZvcm1hdF9pbmRleCA9PSAwKQorICAgIHJldHVybiAwOworICBpZiAoZm9ybWF0X2lu ZGV4IDwgQ0ZfTUFYKQorICAgIHN0cmNweSAobmFtZSwgc3RkZm10X25hbWVbZm9ybWF0X2lu ZGV4XSk7CisgIEdldENsaXBib2FyZEZvcm1hdE5hbWUgKGZvcm1hdF9pbmRleCwgbmFtZSwg MjU2KTsKKyAgcmV0dXJuIGZvcm1hdF9pbmRleDsKK30KKworREVGVU4gKCJ3MzItLWdldC1j bGlwYm9hcmQtZGF0YS1tZWRpYSIsIEZ3MzJfX2dldF9jbGlwYm9hcmRfZGF0YV9tZWRpYSwK KyAgICAgICBTdzMyX19nZXRfY2xpcGJvYXJkX2RhdGFfbWVkaWEsIDMsIDMsIDAsCisgICAg ICAgZG9jOiAvKiBHZXRzIG1lZGlhIChub3QgcGxhaW4gdGV4dCkgY2xpcGJvYXJkIGRhdGEg aW4gb25lIG9mIHRoZSBnaXZlbiBmb3JtYXRzLgorCitGT1JNQVRTIGlzIGEgbGlzdCBvZiBm b3JtYXRzLgorVEVNUC1GSUxFLUlOIGlzIHRoZSBuYW1lIG9mIHRoZSBmaWxlIHRvIHN0b3Jl IHRoZSBkYXRhLgorCitFbGVtZW50cyBpbiBGT1JNQVRTIGFyZSBzeW1ib2xzIG5hbWluZyBh IGZvcm1hdCwgc3VjaCBhIGltYWdlL3BuZywgb3IKK2ltYWdlL2pwZWcuICBUaGV5IGRvbid0 IG5lZWQgdG8gYmUgTUlNRSB0eXBlcywgYW55IGZvcm1hdCBhdmFpbGFibGUgY2FuCitiZSBy ZXRyaWV2ZWQuICBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIFggc3lzdGVtcywgc29tZSBjb252 ZW50aW9uYWwKK2Zvcm1hdCBuYW1lcyBhcmUgdHJhbnNsYXRlZCB0byBlcXVpdmFsZW50IE1J TUUgdHlwZXMuCisKK1RoZSBmaWxlIG5hbWVkIGluIFRFTVAtRklMRS1JTiBtdXN0IGJlIGNy ZWF0ZWQgYnkgdGhlIGNhbGxlciwgYW5kIGFsc28KK2RlbGV0ZWQgaWYgcmVxdWlyZWQuCisK K1JldHVybnMgbmlsIGl0IHRoZXJlIGlzIG5vIHN1Y2ggZm9ybWF0LCBvciBzb21ldGhpbmcg ZmFpbGVkLgorSWYgaXQgcmV0dXJucyB0LCB0aGVuIHRoZSBmaWxlIGNvbnRhaW5zIHRoZSBk YXRhLgorSWYgaXQgcmV0dXJucyBhIHN0cmluZywgdGhlbiB0aGF0IGlzIHRoZSBkYXRhIGFu ZCB0aGUgZmlsZSBpcyBub3QgdXNlZC4KKworV2hlbiByZXR1cm5pbmcgYSBzdHJpbmcsIGl0 IGNhbiBiZSB1bmlieXRlIGlmIHRoZSBmb3JtYXQgaXMgbm90IGtub3duIHRvCitiZSB0ZXh0 LiAgKi8pCisgIChMaXNwX09iamVjdCBmb3JtYXRzLCBMaXNwX09iamVjdCB0ZW1wX2ZpbGVf aW4sIExpc3BfT2JqZWN0IGlzX3RleHR1YWwpCit7CisgIENIRUNLX0xJU1QgKGZvcm1hdHMp OworICBDSEVDS19TVFJJTkcgKHRlbXBfZmlsZV9pbik7CisKKyAgdGVtcF9maWxlX2luID0g RmV4cGFuZF9maWxlX25hbWUgKHRlbXBfZmlsZV9pbiwgUW5pbCk7CisgIGNoYXIgKnRlbXBf ZmlsZSA9IFNTREFUQSAoRU5DT0RFX0ZJTEUgKHRlbXBfZmlsZV9pbikpOworCisgIExpc3Bf T2JqZWN0IHJlc3VsdCA9IFFuaWw7CisKKyAgYmxvY2tfaW5wdXQoKTsKKyAgaWYgKCFPcGVu Q2xpcGJvYXJkIChOVUxMKSkKKyAgICB7CisgICAgICB1bmJsb2NrX2lucHV0KCk7CisgICAg ICByZXR1cm4gUW5pbDsKKyAgICB9CisKKyAgZm9yIChpbnQgZm9ybWF0X2luZGV4ID0gMDs7 KQorICAgIHsKKyAgICAgIHN0YXRpYyBjaGFyIG5hbWVbMjU2XTsKKyAgICAgIGZvcm1hdF9p bmRleCA9IGdldF9jbGlwYm9hcmRfZm9ybWF0X25hbWUgKGZvcm1hdF9pbmRleCwgbmFtZSk7 CisgICAgICBpZiAoZm9ybWF0X2luZGV4ID09IDApCisJICBicmVhazsKKworICAgICAgLyog SWYgbmFtZSBkb2Vzbid0IG1hdGNoIGFueSBvZiB0aGUgZm9ybWF0cywgdHJ5IHRoZSBuZXh0 IGZvcm1hdC4gICovCisgICAgICBib29sIG1hdGNoID0gZmFsc2U7CisgICAgICBmb3IgKExp c3BfT2JqZWN0IHRhaWwgPSBmb3JtYXRzOyBDT05TUCAodGFpbCk7IHRhaWwgPSBYQ0RSICh0 YWlsKSkKKwlpZiAoc3RyY21wIChuYW1lLCBTU0RBVEEgKFNZTUJPTF9OQU1FIChYQ0FSICh0 YWlsKSkpKSA9PSAwKQorCSAgICBtYXRjaCA9IHRydWU7CisgICAgICBpZiAoIW1hdGNoKQor CSAgY29udGludWU7CisKKyAgICAgIC8qIE9mIHRoZSBzdGFuZGFyZCBmb3JtYXRzLCBvbmx5 IERJQlY1IGlzIHN1cHBvcnRlZC4gICovCisgICAgICBpZiAoZm9ybWF0X2luZGV4IDwgQ0Zf TUFYICYmIGZvcm1hdF9pbmRleCAhPSBDRl9ESUJWNSkKKwljb250aW51ZTsKKworICAgICAg LyogRm91bmQgdGhlIGZvcm1hdC4gICovCisgICAgICBIQU5ETEUgZCA9IEdldENsaXBib2Fy ZERhdGEgKGZvcm1hdF9pbmRleCk7CisgICAgICBpZiAoIWQpCisJYnJlYWs7CisgICAgICBp bnQgc2l6ZSA9IEdsb2JhbFNpemUgKGQpOworICAgICAgY2hhciAqZGF0YSA9IEdsb2JhbExv Y2sgKGQpOworICAgICAgaWYgKCFkYXRhKQorCWJyZWFrOworICAgICAgaWYgKHN0cmNtcCAo bmFtZSwgIkRJQlY1IikgPT0gMCkKKwl7CisJICBpZiAoY29udmVydF9kaWJ2NV90b19wbmcg KGRhdGEsIHNpemUsIHRlbXBfZmlsZSkpCisJICAgIHJlc3VsdCA9IFF0OworCX0KKyAgICAg IGVsc2UKKwl7CisJICBpZiAoTklMUCAoaXNfdGV4dHVhbCkpCisJICAgIHJlc3VsdCA9IG1h a2VfdW5pYnl0ZV9zdHJpbmcgKGRhdGEsIHNpemUpOworCSAgZWxzZQorCSAgICByZXN1bHQg PSBtYWtlX3N0cmluZyAoZGF0YSwgc2l6ZSk7CisJfQorICAgICAgR2xvYmFsVW5sb2NrIChk KTsKKyAgICAgIGJyZWFrOworICAgIH0KKyAgQ2xvc2VDbGlwYm9hcmQgKCk7CisgIHVuYmxv Y2tfaW5wdXQgKCk7CisgIHJldHVybiByZXN1bHQ7Cit9CiAKIERFRlVOICgidzMyLWdldC1j bGlwYm9hcmQtZGF0YSIsIEZ3MzJfZ2V0X2NsaXBib2FyZF9kYXRhLAogICAgICAgIFN3MzJf Z2V0X2NsaXBib2FyZF9kYXRhLCAwLCAxLCAwLApAQCAtMTA2OSwyOSArMTIzOSw2IEBAIERF RlVOICgidzMyLXNlbGVjdGlvbi10YXJnZXRzIiwgRnczMl9zZWxlY3Rpb25fdGFyZ2V0cywg U3czMl9zZWxlY3Rpb25fdGFyZ2V0cywKIHJlcHJlc2VudGluZyBhIGRhdGEgZm9ybWF0IHRo YXQgaXMgY3VycmVudGx5IGF2YWlsYWJsZSBpbiB0aGUgY2xpcGJvYXJkLiAgKi8pCiAgIChM aXNwX09iamVjdCBzZWxlY3Rpb24sIExpc3BfT2JqZWN0IHRlcm1pbmFsKQogewotICAvKiBY bGliLWxpa2UgbmFtZXMgZm9yIHN0YW5kYXJkIFdpbmRvd3MgY2xpcGJvYXJkIGRhdGEgZm9y bWF0cy4KLSAgICAgVGhleSBhcmUgaW4gdXBwZXItY2FzZSB0byBtaW1pYyB4c2VsZWN0LmMu ICBBIGNvdXBsZSBvZiB0aGUgbmFtZXMKLSAgICAgd2VyZSBjaGFuZ2VkIHRvIGJlIG1vcmUg bGlrZSB0aGVpciBYIGNvdW50ZXJwYXJ0cy4gICovCi0gIHN0YXRpYyBjb25zdCBjaGFyICpz dGRmbXRfbmFtZVtdID0gewotICAgICJVTkRFRklORUQiLAotICAgICJTVFJJTkciLAotICAg ICJCSVRNQVAiLAotICAgICJNRVRBRklMRSIsCi0gICAgIlNZTUxJTksiLAotICAgICJESUYi LAotICAgICJUSUZGIiwKLSAgICAiT0VNX1NUUklORyIsCi0gICAgIkRJQiIsCi0gICAgIlBB TEVUVEUiLAotICAgICJQRU5EQVRBIiwKLSAgICAiUklGRiIsCi0gICAgIldBVkUiLAotICAg ICJVVEY4X1NUUklORyIsCi0gICAgIkVOSE1FVEFGSUxFIiwKLSAgICAiRklMRV9OQU1FUyIs IC8qIERORCAqLwotICAgICJMT0NBTEUiLCAvKiBub3QgdXNlZCAqLwotICAgICJESUJWNSIK LSAgfTsKICAgQ0hFQ0tfU1lNQk9MIChzZWxlY3Rpb24pOwogCiAgIC8qIFJldHVybiBuaWwg Zm9yIFBSSU1BUlkgYW5kIFNFQ09OREFSWSBzZWxlY3Rpb25zOyBmb3IgQ0xJUEJPQVJELCBj aGVjawpAQCAtMTE2Niw2ICsxMzEzLDcgQEAgc3ltc19vZl93MzJzZWxlY3QgKHZvaWQpCiB7 CiAgIGRlZnN1YnIgKCZTdzMyX3NldF9jbGlwYm9hcmRfZGF0YSk7CiAgIGRlZnN1YnIgKCZT dzMyX2dldF9jbGlwYm9hcmRfZGF0YSk7CisgIGRlZnN1YnIgKCZTdzMyX19nZXRfY2xpcGJv YXJkX2RhdGFfbWVkaWEpOwogICBkZWZzdWJyICgmU3czMl9zZWxlY3Rpb25fZXhpc3RzX3Ap OwogICBkZWZzdWJyICgmU3czMl9zZWxlY3Rpb25fdGFyZ2V0cyk7CiAKLS0gCjIuMzUuMS53 aW5kb3dzLjIKCg== --------------00qi6ysZFOUDfMY4uEPXkroB--