From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Ken Brown Newsgroups: gmane.emacs.devel Subject: Adding battery support on Cygwin Date: Fri, 12 Jan 2018 21:33:33 -0500 Message-ID: <302136d9-0b2e-222e-502d-2db8f7de5992@cornell.edu> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------E4ACD82064FE6B7A0F61C331" X-Trace: blaine.gmane.org 1515810778 7441 195.159.176.226 (13 Jan 2018 02:32:58 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sat, 13 Jan 2018 02:32:58 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 To: Emacs Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Jan 13 03:32:54 2018 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eaBck-00013t-Jx for ged-emacs-devel@m.gmane.org; Sat, 13 Jan 2018 03:32:46 +0100 Original-Received: from localhost ([::1]:58417 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eaBei-0002tp-L9 for ged-emacs-devel@m.gmane.org; Fri, 12 Jan 2018 21:34:48 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:52720) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eaBde-0002pf-D7 for emacs-devel@gnu.org; Fri, 12 Jan 2018 21:33:46 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eaBda-0000s1-Ge for emacs-devel@gnu.org; Fri, 12 Jan 2018 21:33:42 -0500 Original-Received: from limerock04.mail.cornell.edu ([128.84.13.244]:57576) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eaBda-0000qn-7y for emacs-devel@gnu.org; Fri, 12 Jan 2018 21:33:38 -0500 X-CornellRouted: This message has been Routed already. Original-Received: from authusersmtp.mail.cornell.edu (granite4.serverfarm.cornell.edu [10.16.197.9]) by limerock04.mail.cornell.edu (8.14.4/8.14.4_cu) with ESMTP id w0D2Xaas002818 for ; Fri, 12 Jan 2018 21:33:37 -0500 Original-Received: from [10.13.22.4] (65-112-130-194.dia.static.qwest.net [65.112.130.194]) (authenticated bits=0) by authusersmtp.mail.cornell.edu (8.14.4/8.12.10) with ESMTP id w0D2XYLn023824 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT) for ; Fri, 12 Jan 2018 21:33:35 -0500 Content-Language: en-US X-PMX-Cornell-Gauge: Gauge=X X-PMX-CORNELL-AUTH-RESULTS: dkim-out=none; X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 128.84.13.244 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:221908 Archived-At: This is a multi-part message in MIME format. --------------E4ACD82064FE6B7A0F61C331 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit The Cygwin-w32 currently supports battery status via the function w32fns.c:Fw32_battery_status. The X11 and nox builds don't have this support, and Cygwin lacks the facilities used on unix-like systems to provide it (/proc/apm, etc.). But it turns out to be easy to compile and use Fw32_battery_status on all Cygwin builds, simply by pulling it out of w32fns.c into a new file. The attached patch does this. OK to push? If so, to which branch? Ken --------------E4ACD82064FE6B7A0F61C331 Content-Type: text/plain; charset=UTF-8; name="0001-Add-battery-support-to-all-Cygwin-builds.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Add-battery-support-to-all-Cygwin-builds.patch" RnJvbSAwZWRlM2RiZGExMzVlMzJmYTJkMDAxNzJjZGVjZGQwODAyNmU5YmUwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLZW4gQnJvd24gPGticm93bkBjb3JuZWxsLmVkdT4K RGF0ZTogRnJpLCAxMiBKYW4gMjAxOCAwODo1MToxNiAtMDUwMApTdWJqZWN0OiBbUEFUQ0hd IEFkZCBiYXR0ZXJ5IHN1cHBvcnQgdG8gYWxsIEN5Z3dpbiBidWlsZHMKCkl0IGFscmVhZHkg ZXhpc3RzIGluIHRoZSBDeWd3aW4tdzMyIGJ1aWxkLgoqIHNyYy93MzJmbnMuYyAoRnczMl9i YXR0ZXJ5X3N0YXR1cyk6IE1vdmUgdG8gYSBuZXcgZmlsZSwKc3JjL3czMmJhdHRlcnkuYy4K KiBzcmMvdzMyYmF0dGVyeS5jIChzeW1zX29mX3czMmJhdHRlcnkpOiBOZXcgZnVuY3Rpb24u Ciogc3JjL3czMmJhdHRlcnkuaDogTmV3IGZpbGUsIGNvbnRhaW5pbmcgcHJvdG90eXBlIG9m CnN5bXNfb2ZfdzMyYmF0dGVyeS4KKiBzcmMvZW1hY3MuYyAobWFpbikgW0hBVkVfTlRHVUkg b3IgQ1lHV0lOXTogI2luY2x1ZGUgdzMyYmF0dGVyeS5oCmFuZCBjYWxsIHN5bXNfb2ZfdzMy YmF0dGVyeS4KKiBzcmMvTWFrZWZpbGUuaW4gKFNPTUVfTUFDSElORV9PQkpFQ1RTKTogQWRk IHczMmJhdHRlcnkuby4KKiBjb25maWd1cmUuYWMgKFczMl9PQkopIFtIQVZFX1czMiBvciBD WUdXSU5dOiBBZGQgdzMyYmF0dGVyeS5vLgooVzMyX0xJQlMpIFtDWUdXSU5dOiBTZXQgZXF1 YWwgdG8gIi1sa2VybmVsMzIiIGluIG5vbi13MzIgYnVpbGQuCi0tLQogY29uZmlndXJlLmFj ICAgICB8ICAgOCArKystCiBzcmMvTWFrZWZpbGUuaW4gIHwgICA5ICsrLS0KIHNyYy9lbWFj cy5jICAgICAgfCAgMTAgKysrLQogc3JjL3czMmJhdHRlcnkuYyB8IDE0MSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdzMy YmF0dGVyeS5oIHwgIDI1ICsrKysrKysrKysKIHNyYy93MzJmbnMuYyAgICAgfCAxMTAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogNiBmaWxlcyBjaGFu Z2VkLCAxODcgaW5zZXJ0aW9ucygrKSwgMTE2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy93MzJiYXR0ZXJ5LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdzMyYmF0 dGVyeS5oCgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4 IDBmZGRmZWFiNzcuLmNhNDI1NzE2YWUgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysg Yi9jb25maWd1cmUuYWMKQEAgLTIwNzYsNyArMjA3Niw3IEBAIEFDX0RFRlVOCiAgIEFDX0NI RUNLX1RPT0woV0lORFJFUywgW3dpbmRyZXNdLAogICAgICAgICAgICAgICAgIFtBQ19NU0df RVJST1IoW05vIHJlc291cmNlIGNvbXBpbGVyIGZvdW5kLl0pXSkKICAgVzMyX09CSj0idzMy Zm5zLm8gdzMybWVudS5vIHczMnJlZy5vIHczMmZvbnQubyB3MzJ0ZXJtLm8iCi0gIFczMl9P Qko9IiRXMzJfT0JKIHczMnhmbnMubyB3MzJzZWxlY3QubyB3MzJ1bmlzY3JpYmUubyIKKyAg VzMyX09CSj0iJFczMl9PQkogdzMyeGZucy5vIHczMnNlbGVjdC5vIHczMnVuaXNjcmliZS5v IHczMmJhdHRlcnkubyIKICAgRU1BQ1NSRVM9ImVtYWNzLnJlcyIKICAgY2FzZSAiJGNhbm9u aWNhbCIgaW4KICAgICB4ODZfNjQtKi0qKSBFTUFDU19NQU5JRkVTVD0iZW1hY3MteDY0Lm1h bmlmZXN0IiA7OwpAQCAtMjExMSw2ICsyMTExLDEyIEBAIEFDX0RFRlVOCiAgICAgWEFSR1Nf TElNSVQ9Ii1zIDEwMDAwIgogICBmaQogZmkKKworaWYgdGVzdCAiJHtIQVZFX1czMn0iID0g Im5vIiAmJiB0ZXN0ICIke29wc3lzfSIgPSAiY3lnd2luIjsgdGhlbgorICBXMzJfTElCUz0i JFczMl9MSUJTIC1sa2VybmVsMzIiCisgIFczMl9PQko9IiRXMzJfT0JKIHczMmJhdHRlcnku byIKK2ZpCisKIEFDX1NVQlNUKFczMl9PQkopCiBBQ19TVUJTVChXMzJfTElCUykKIEFDX1NV QlNUKEVNQUNTUkVTKQpkaWZmIC0tZ2l0IGEvc3JjL01ha2VmaWxlLmluIGIvc3JjL01ha2Vm aWxlLmluCmluZGV4IDE1Y2ExNjY3ZDYuLjEwY2ZkZTcyYzYgMTAwNjQ0Ci0tLSBhL3NyYy9N YWtlZmlsZS5pbgorKysgYi9zcmMvTWFrZWZpbGUuaW4KQEAgLTI3NywxMSArMjc3LDEyIEBA IE5TX09CSkNfT0JKPQogIyMgVXNlZCBvbmx5IGZvciBHTlVzdGVwLgogR05VX09CSkNfQ0ZM QUdTPSQocGF0c3Vic3QgLXNwZWNzPSUtaGFyZGVuZWQtY2MxLCxAR05VX09CSkNfQ0ZMQUdT QCkKICMjIHczMmZucy5vIHczMm1lbnUuYyB3MzJyZWcubyBmcmluZ2UubyBmb250c2V0Lm8g dzMyZm9udC5vIHczMnRlcm0ubwotIyMgdzMyeGZucy5vIHczMnNlbGVjdC5vIGltYWdlLm8g dzMydW5pc2NyaWJlLm8gaWYgSEFWRV9XMzIsIGVsc2UKLSMjIGVtcHR5LgorIyMgdzMyeGZu cy5vIHczMnNlbGVjdC5vIGltYWdlLm8gdzMydW5pc2NyaWJlLm8gdzMyYmF0dGVyeS5vIGlm IEhBVkVfVzMyLAorIyMgdzMyYmF0dGVyeS5vIGlmIENZR1dJTiBidXQgbm90IEhBVkVfVzMy LCBlbHNlIGVtcHR5LgogVzMyX09CSj1AVzMyX09CSkAKICMjIC1sa2VybmVsMzIgLWx1c2Vy MzIgLWx1c3AxMCAtbGdkaTMyIC1sb2xlMzIgLWxjb21kbGczMiAtbGNvbWN0bDMyCi0jIyAt LWx3aW5zcG9vbCBpZiBIQVZFX1czMiwgZWxzZSBlbXB0eS4KKyMjIC1sd2luc3Bvb2wgaWYg SEFWRV9XMzIsCisjIyAtbGtlcm5lbDMyIGlmIENZR1dJTiBidXQgbm90IEhBVkVfVzMyLCBl bHNlIGVtcHR5LgogVzMyX0xJQlM9QFczMl9MSUJTQAogCiAjIyBlbWFjcy5yZXMgaWYgSEFW RV9XMzIKQEAgLTQwOCw3ICs0MDksNyBAQCBTT01FX01BQ0hJTkVfT0JKRUNUUyA9CiAgIHh0 ZXJtLm8geGZucy5vIHhtZW51Lm8geHNlbGVjdC5vIHhyZGIubyB4c21mbnMubyBmcmluZ2Uu byBpbWFnZS5vIFwKICAgZm9udHNldC5vIGRidXNiaW5kLm8gY3lndzMyLm8gXAogICBuc3Rl cm0ubyBuc2Zucy5vIG5zbWVudS5vIG5zc2VsZWN0Lm8gbnNpbWFnZS5vIG5zZm9udC5vIG1h Y2ZvbnQubyBcCi0gIHczMi5vIHczMmNvbnNvbGUubyB3MzJmbnMubyB3MzJoZWFwLm8gdzMy aW5ldnQubyB3MzJub3RpZnkubyBcCisgIHczMi5vIHczMmJhdHRlcnkubyB3MzJjb25zb2xl Lm8gdzMyZm5zLm8gdzMyaGVhcC5vIHczMmluZXZ0Lm8gdzMybm90aWZ5Lm8gXAogICB3MzJt ZW51Lm8gdzMycHJvYy5vIHczMnJlZy5vIHczMnNlbGVjdC5vIHczMnRlcm0ubyB3MzJ4Zm5z Lm8gXAogICB3MTZzZWxlY3QubyB3aWRnZXQubyB4Zm9udC5vIGZ0Zm9udC5vIHhmdGZvbnQu byBmdHhmb250Lm8gZ3RrdXRpbC5vIFwKICAgeHNldHRpbmdzLm8geGdzZWxlY3QubyB0ZXJt Y2FwLm8KZGlmZiAtLWdpdCBhL3NyYy9lbWFjcy5jIGIvc3JjL2VtYWNzLmMKaW5kZXggMDE3 YzYyMzA4Yy4uZWY0MjkyMzU1NCAxMDA2NDQKLS0tIGEvc3JjL2VtYWNzLmMKKysrIGIvc3Jj L2VtYWNzLmMKQEAgLTQ4LDYgKzQ4LDEwIEBAIGFsb25nIHdpdGggR05VIEVtYWNzLiAgSWYg bm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCiAjaW5jbHVk ZSAidzMyY29tbW9uLmgiCiAjZW5kaWYKIAorI2lmIGRlZmluZWQgSEFWRV9OVEdVSSB8fCBk ZWZpbmVkIENZR1dJTgorI2luY2x1ZGUgInczMmJhdHRlcnkuaCIKKyNlbmRpZgorCiAjaWYg ZGVmaW5lZCBDWUdXSU4KICNpbmNsdWRlICJjeWd3MzIuaCIKICNlbmRpZgpAQCAtMTU1Niwx MyArMTU2MCwxNyBAQCBVc2luZyBhbiBFbWFjcyBjb25maWd1cmVkIHdpdGggLS13aXRoLXgt dG9vbGtpdD1sdWNpZCBkb2VzIG5vdCBoYXZlIHRoaXMgcHJvYmxlbQogCiAgICAgICBzeW1z X29mX21lbnUgKCk7CiAKLSNpZmRlZiBIQVZFX05UR1VJCisjaWYgZGVmaW5lZCBIQVZFX05U R1VJCiAgICAgICBzeW1zX29mX3czMnRlcm0gKCk7CiAgICAgICBzeW1zX29mX3czMmZucyAo KTsKICAgICAgIHN5bXNfb2ZfdzMybWVudSAoKTsKICAgICAgIHN5bXNfb2ZfZm9udHNldCAo KTsKICNlbmRpZiAvKiBIQVZFX05UR1VJICovCiAKKyNpZiBkZWZpbmVkIEhBVkVfTlRHVUkg fHwgZGVmaW5lZCBDWUdXSU4KKyAgICAgIHN5bXNfb2ZfdzMyYmF0dGVyeSAoKTsKKyNlbmRp ZgorCiAjaWYgZGVmaW5lZCBXSU5ET1dTTlQgfHwgZGVmaW5lZCBIQVZFX05UR1VJCiAgICAg ICBzeW1zX29mX3czMnNlbGVjdCAoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3czMmJh dHRlcnkuYyBiL3NyYy93MzJiYXR0ZXJ5LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMC4uMmE2YzIyYmQzYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy93MzJiYXR0 ZXJ5LmMKQEAgLTAsMCArMSwxNDEgQEAKKy8qIEJhdHRlcnkgc3RhdHVzIGZ1bmN0aW9uIGZv ciB0aGUgTWljcm9zb2Z0IFdpbmRvd3MgQVBJLgorCitDb3B5cmlnaHQgKEMpIDIwMTggRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKK1RoaXMgZmlsZSBpcyBwYXJ0IG9mIEdO VSBFbWFjcy4KKworR05VIEVtYWNzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKK2l0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cit0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAo YXQKK3lvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworR05VIEVtYWNzIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCitidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKworWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKK2Fsb25nIHdpdGggR05VIEVtYWNzLiAgSWYgbm90LCBzZWUg PGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNpbmNsdWRlIDxjb25m aWcuaD4KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNpbmNsdWRlICJsaXNwLmgiCisjaW5j bHVkZSAidzMyYmF0dGVyeS5oIgorI2luY2x1ZGUgInczMmNvbW1vbi5oIgorCitERUZVTiAo InczMi1iYXR0ZXJ5LXN0YXR1cyIsIEZ3MzJfYmF0dGVyeV9zdGF0dXMsIFN3MzJfYmF0dGVy eV9zdGF0dXMsIDAsIDAsIDAsCisgICAgICAgZG9jOiAvKiBHZXQgcG93ZXIgc3RhdHVzIGlu Zm9ybWF0aW9uIGZyb20gV2luZG93cyBzeXN0ZW0uCisKK1RoZSBmb2xsb3dpbmcgJS1zZXF1 ZW5jZXMgYXJlIHByb3ZpZGVkOgorJUwgQUMgbGluZSBzdGF0dXMgKHZlcmJvc2UpCislQiBC YXR0ZXJ5IHN0YXR1cyAodmVyYm9zZSkKKyViIEJhdHRlcnkgc3RhdHVzLCBlbXB0eSBtZWFu cyBoaWdoLCBgLScgbWVhbnMgbG93LAorICAgYCEnIG1lYW5zIGNyaXRpY2FsLCBhbmQgYCsn IG1lYW5zIGNoYXJnaW5nCislcCBCYXR0ZXJ5IGxvYWQgcGVyY2VudGFnZQorJXMgUmVtYWlu aW5nIHRpbWUgKHRvIGNoYXJnZSBvciBkaXNjaGFyZ2UpIGluIHNlY29uZHMKKyVtIFJlbWFp bmluZyB0aW1lICh0byBjaGFyZ2Ugb3IgZGlzY2hhcmdlKSBpbiBtaW51dGVzCislaCBSZW1h aW5pbmcgdGltZSAodG8gY2hhcmdlIG9yIGRpc2NoYXJnZSkgaW4gaG91cnMKKyV0IFJlbWFp bmluZyB0aW1lICh0byBjaGFyZ2Ugb3IgZGlzY2hhcmdlKSBpbiB0aGUgZm9ybSBgaDptaW4n ICAqLykKKyAgKHZvaWQpCit7CisgIExpc3BfT2JqZWN0IHN0YXR1cyA9IFFuaWw7CisKKyAg U1lTVEVNX1BPV0VSX1NUQVRVUyBzeXN0ZW1fc3RhdHVzOworICBpZiAoR2V0U3lzdGVtUG93 ZXJTdGF0dXMgKCZzeXN0ZW1fc3RhdHVzKSkKKyAgICB7CisgICAgICBMaXNwX09iamVjdCBs aW5lX3N0YXR1cywgYmF0dGVyeV9zdGF0dXMsIGJhdHRlcnlfc3RhdHVzX3N5bWJvbDsKKyAg ICAgIExpc3BfT2JqZWN0IGxvYWRfcGVyY2VudGFnZSwgc2Vjb25kcywgbWludXRlcywgaG91 cnMsIHJlbWFpbjsKKworICAgICAgbG9uZyBzZWNvbmRzX2xlZnQgPSAobG9uZykgc3lzdGVt X3N0YXR1cy5CYXR0ZXJ5TGlmZVRpbWU7CisKKyAgICAgIGlmIChzeXN0ZW1fc3RhdHVzLkFD TGluZVN0YXR1cyA9PSAwKQorCWxpbmVfc3RhdHVzID0gYnVpbGRfc3RyaW5nICgib2ZmLWxp bmUiKTsKKyAgICAgIGVsc2UgaWYgKHN5c3RlbV9zdGF0dXMuQUNMaW5lU3RhdHVzID09IDEp CisJbGluZV9zdGF0dXMgPSBidWlsZF9zdHJpbmcgKCJvbi1saW5lIik7CisgICAgICBlbHNl CisJbGluZV9zdGF0dXMgPSBidWlsZF9zdHJpbmcgKCJOL0EiKTsKKworICAgICAgaWYgKHN5 c3RlbV9zdGF0dXMuQmF0dGVyeUZsYWcgJiAxMjgpCisJeworCSAgYmF0dGVyeV9zdGF0dXMg PSBidWlsZF9zdHJpbmcgKCJOL0EiKTsKKwkgIGJhdHRlcnlfc3RhdHVzX3N5bWJvbCA9IGVt cHR5X3VuaWJ5dGVfc3RyaW5nOworCX0KKyAgICAgIGVsc2UgaWYgKHN5c3RlbV9zdGF0dXMu QmF0dGVyeUZsYWcgJiA4KQorCXsKKwkgIGJhdHRlcnlfc3RhdHVzID0gYnVpbGRfc3RyaW5n ICgiY2hhcmdpbmciKTsKKwkgIGJhdHRlcnlfc3RhdHVzX3N5bWJvbCA9IGJ1aWxkX3N0cmlu ZyAoIisiKTsKKwkgIGlmIChzeXN0ZW1fc3RhdHVzLkJhdHRlcnlGdWxsTGlmZVRpbWUgIT0g LTFMKQorCSAgICBzZWNvbmRzX2xlZnQgPSBzeXN0ZW1fc3RhdHVzLkJhdHRlcnlGdWxsTGlm ZVRpbWUgLSBzZWNvbmRzX2xlZnQ7CisJfQorICAgICAgZWxzZSBpZiAoc3lzdGVtX3N0YXR1 cy5CYXR0ZXJ5RmxhZyAmIDQpCisJeworCSAgYmF0dGVyeV9zdGF0dXMgPSBidWlsZF9zdHJp bmcgKCJjcml0aWNhbCIpOworCSAgYmF0dGVyeV9zdGF0dXNfc3ltYm9sID0gYnVpbGRfc3Ry aW5nICgiISIpOworCX0KKyAgICAgIGVsc2UgaWYgKHN5c3RlbV9zdGF0dXMuQmF0dGVyeUZs YWcgJiAyKQorCXsKKwkgIGJhdHRlcnlfc3RhdHVzID0gYnVpbGRfc3RyaW5nICgibG93Iik7 CisJICBiYXR0ZXJ5X3N0YXR1c19zeW1ib2wgPSBidWlsZF9zdHJpbmcgKCItIik7CisJfQor ICAgICAgZWxzZSBpZiAoc3lzdGVtX3N0YXR1cy5CYXR0ZXJ5RmxhZyAmIDEpCisJeworCSAg YmF0dGVyeV9zdGF0dXMgPSBidWlsZF9zdHJpbmcgKCJoaWdoIik7CisJICBiYXR0ZXJ5X3N0 YXR1c19zeW1ib2wgPSBlbXB0eV91bmlieXRlX3N0cmluZzsKKwl9CisgICAgICBlbHNlCisJ eworCSAgYmF0dGVyeV9zdGF0dXMgPSBidWlsZF9zdHJpbmcgKCJtZWRpdW0iKTsKKwkgIGJh dHRlcnlfc3RhdHVzX3N5bWJvbCA9IGVtcHR5X3VuaWJ5dGVfc3RyaW5nOworCX0KKworICAg ICAgaWYgKHN5c3RlbV9zdGF0dXMuQmF0dGVyeUxpZmVQZXJjZW50ID4gMTAwKQorCWxvYWRf cGVyY2VudGFnZSA9IGJ1aWxkX3N0cmluZyAoIk4vQSIpOworICAgICAgZWxzZQorCXsKKwkg IGNoYXIgYnVmZmVyWzE2XTsKKwkgIHNucHJpbnRmIChidWZmZXIsIDE2LCAiJWQiLCBzeXN0 ZW1fc3RhdHVzLkJhdHRlcnlMaWZlUGVyY2VudCk7CisJICBsb2FkX3BlcmNlbnRhZ2UgPSBi dWlsZF9zdHJpbmcgKGJ1ZmZlcik7CisJfQorCisgICAgICBpZiAoc2Vjb25kc19sZWZ0IDwg MCkKKwlzZWNvbmRzID0gbWludXRlcyA9IGhvdXJzID0gcmVtYWluID0gYnVpbGRfc3RyaW5n ICgiTi9BIik7CisgICAgICBlbHNlCisJeworCSAgbG9uZyBtOworCSAgZG91YmxlIGg7CisJ ICBjaGFyIGJ1ZmZlclsxNl07CisJICBzbnByaW50ZiAoYnVmZmVyLCAxNiwgIiVsZCIsIHNl Y29uZHNfbGVmdCk7CisJICBzZWNvbmRzID0gYnVpbGRfc3RyaW5nIChidWZmZXIpOworCisJ ICBtID0gc2Vjb25kc19sZWZ0IC8gNjA7CisJICBzbnByaW50ZiAoYnVmZmVyLCAxNiwgIiVs ZCIsIG0pOworCSAgbWludXRlcyA9IGJ1aWxkX3N0cmluZyAoYnVmZmVyKTsKKworCSAgaCA9 IHNlY29uZHNfbGVmdCAvIDM2MDAuMDsKKwkgIHNucHJpbnRmIChidWZmZXIsIDE2LCAiJTMu MWYiLCBoKTsKKwkgIGhvdXJzID0gYnVpbGRfc3RyaW5nIChidWZmZXIpOworCisJICBzbnBy aW50ZiAoYnVmZmVyLCAxNiwgIiVsZDolMDJsZCIsIG0gLyA2MCwgbSAlIDYwKTsKKwkgIHJl bWFpbiA9IGJ1aWxkX3N0cmluZyAoYnVmZmVyKTsKKwl9CisKKyAgICAgIHN0YXR1cyA9IGxp c3RuIChDT05TVFlQRV9IRUFQLCA4LAorCQkgICAgICBGY29ucyAobWFrZV9udW1iZXIgKCdM JyksIGxpbmVfc3RhdHVzKSwKKwkJICAgICAgRmNvbnMgKG1ha2VfbnVtYmVyICgnQicpLCBi YXR0ZXJ5X3N0YXR1cyksCisJCSAgICAgIEZjb25zIChtYWtlX251bWJlciAoJ2InKSwgYmF0 dGVyeV9zdGF0dXNfc3ltYm9sKSwKKwkJICAgICAgRmNvbnMgKG1ha2VfbnVtYmVyICgncCcp LCBsb2FkX3BlcmNlbnRhZ2UpLAorCQkgICAgICBGY29ucyAobWFrZV9udW1iZXIgKCdzJyks IHNlY29uZHMpLAorCQkgICAgICBGY29ucyAobWFrZV9udW1iZXIgKCdtJyksIG1pbnV0ZXMp LAorCQkgICAgICBGY29ucyAobWFrZV9udW1iZXIgKCdoJyksIGhvdXJzKSwKKwkJICAgICAg RmNvbnMgKG1ha2VfbnVtYmVyICgndCcpLCByZW1haW4pKTsKKyAgICB9CisgIHJldHVybiBz dGF0dXM7Cit9CisKK3ZvaWQKK3N5bXNfb2ZfdzMyYmF0dGVyeSAodm9pZCkKK3sKKyAgZGVm c3ViciAoJlN3MzJfYmF0dGVyeV9zdGF0dXMpOworfQpkaWZmIC0tZ2l0IGEvc3JjL3czMmJh dHRlcnkuaCBiL3NyYy93MzJiYXR0ZXJ5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMC4uNzk2YzZiZTcyZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy93MzJiYXR0 ZXJ5LmgKQEAgLTAsMCArMSwyNSBAQAorLyogQmF0dGVyeSBzdGF0dXMgZnVuY3Rpb24gZm9y IHRoZSBNaWNyb3NvZnQgV2luZG93cyBBUEkuCisKK0NvcHlyaWdodCAoQykgMjAxOCBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05V IEVtYWNzLgorCitHTlUgRW1hY3MgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQoraXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKK3RoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChh dAoreW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCitHTlUgRW1hY3MgaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKK2J1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CitNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCitHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorCitZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQorYWxvbmcgd2l0aCBHTlUgRW1hY3MuICBJZiBub3QsIHNlZSA8 aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2lmbmRlZiBFTUFDU19X MzJCQVRURVJZX0gKKyNkZWZpbmUgRU1BQ1NfVzMyQkFUVEVSWV9ICisKK2V4dGVybiB2b2lk IHN5bXNfb2ZfdzMyYmF0dGVyeSAodm9pZCk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3Jj L3czMmZucy5jIGIvc3JjL3czMmZucy5jCmluZGV4IGU1MGI3ZDVjM2MuLmM1NjFmODQ4NjMg MTAwNjQ0Ci0tLSBhL3NyYy93MzJmbnMuYworKysgYi9zcmMvdzMyZm5zLmMKQEAgLTkyMTMs MTE1ICs5MjEzLDYgQEAgVGhlIGNvb3JkaW5hdGVzIFggYW5kIFkgYXJlIGludGVycHJldGVk IGluIHBpeGVscyByZWxhdGl2ZSB0byBhIHBvc2l0aW9uCiAgIHJldHVybiBRbmlsOwogfQog Ci1ERUZVTiAoInczMi1iYXR0ZXJ5LXN0YXR1cyIsIEZ3MzJfYmF0dGVyeV9zdGF0dXMsIFN3 MzJfYmF0dGVyeV9zdGF0dXMsIDAsIDAsIDAsCi0gICAgICAgZG9jOiAvKiBHZXQgcG93ZXIg c3RhdHVzIGluZm9ybWF0aW9uIGZyb20gV2luZG93cyBzeXN0ZW0uCi0KLVRoZSBmb2xsb3dp bmcgJS1zZXF1ZW5jZXMgYXJlIHByb3ZpZGVkOgotJUwgQUMgbGluZSBzdGF0dXMgKHZlcmJv c2UpCi0lQiBCYXR0ZXJ5IHN0YXR1cyAodmVyYm9zZSkKLSViIEJhdHRlcnkgc3RhdHVzLCBl bXB0eSBtZWFucyBoaWdoLCBgLScgbWVhbnMgbG93LAotICAgYCEnIG1lYW5zIGNyaXRpY2Fs LCBhbmQgYCsnIG1lYW5zIGNoYXJnaW5nCi0lcCBCYXR0ZXJ5IGxvYWQgcGVyY2VudGFnZQot JXMgUmVtYWluaW5nIHRpbWUgKHRvIGNoYXJnZSBvciBkaXNjaGFyZ2UpIGluIHNlY29uZHMK LSVtIFJlbWFpbmluZyB0aW1lICh0byBjaGFyZ2Ugb3IgZGlzY2hhcmdlKSBpbiBtaW51dGVz Ci0laCBSZW1haW5pbmcgdGltZSAodG8gY2hhcmdlIG9yIGRpc2NoYXJnZSkgaW4gaG91cnMK LSV0IFJlbWFpbmluZyB0aW1lICh0byBjaGFyZ2Ugb3IgZGlzY2hhcmdlKSBpbiB0aGUgZm9y bSBgaDptaW4nICAqLykKLSAgKHZvaWQpCi17Ci0gIExpc3BfT2JqZWN0IHN0YXR1cyA9IFFu aWw7Ci0KLSAgU1lTVEVNX1BPV0VSX1NUQVRVUyBzeXN0ZW1fc3RhdHVzOwotICBpZiAoR2V0 U3lzdGVtUG93ZXJTdGF0dXMgKCZzeXN0ZW1fc3RhdHVzKSkKLSAgICB7Ci0gICAgICBMaXNw X09iamVjdCBsaW5lX3N0YXR1cywgYmF0dGVyeV9zdGF0dXMsIGJhdHRlcnlfc3RhdHVzX3N5 bWJvbDsKLSAgICAgIExpc3BfT2JqZWN0IGxvYWRfcGVyY2VudGFnZSwgc2Vjb25kcywgbWlu dXRlcywgaG91cnMsIHJlbWFpbjsKLQotICAgICAgbG9uZyBzZWNvbmRzX2xlZnQgPSAobG9u Zykgc3lzdGVtX3N0YXR1cy5CYXR0ZXJ5TGlmZVRpbWU7Ci0KLSAgICAgIGlmIChzeXN0ZW1f c3RhdHVzLkFDTGluZVN0YXR1cyA9PSAwKQotCWxpbmVfc3RhdHVzID0gYnVpbGRfc3RyaW5n ICgib2ZmLWxpbmUiKTsKLSAgICAgIGVsc2UgaWYgKHN5c3RlbV9zdGF0dXMuQUNMaW5lU3Rh dHVzID09IDEpCi0JbGluZV9zdGF0dXMgPSBidWlsZF9zdHJpbmcgKCJvbi1saW5lIik7Ci0g ICAgICBlbHNlCi0JbGluZV9zdGF0dXMgPSBidWlsZF9zdHJpbmcgKCJOL0EiKTsKLQotICAg ICAgaWYgKHN5c3RlbV9zdGF0dXMuQmF0dGVyeUZsYWcgJiAxMjgpCi0JewotCSAgYmF0dGVy eV9zdGF0dXMgPSBidWlsZF9zdHJpbmcgKCJOL0EiKTsKLQkgIGJhdHRlcnlfc3RhdHVzX3N5 bWJvbCA9IGVtcHR5X3VuaWJ5dGVfc3RyaW5nOwotCX0KLSAgICAgIGVsc2UgaWYgKHN5c3Rl bV9zdGF0dXMuQmF0dGVyeUZsYWcgJiA4KQotCXsKLQkgIGJhdHRlcnlfc3RhdHVzID0gYnVp bGRfc3RyaW5nICgiY2hhcmdpbmciKTsKLQkgIGJhdHRlcnlfc3RhdHVzX3N5bWJvbCA9IGJ1 aWxkX3N0cmluZyAoIisiKTsKLQkgIGlmIChzeXN0ZW1fc3RhdHVzLkJhdHRlcnlGdWxsTGlm ZVRpbWUgIT0gLTFMKQotCSAgICBzZWNvbmRzX2xlZnQgPSBzeXN0ZW1fc3RhdHVzLkJhdHRl cnlGdWxsTGlmZVRpbWUgLSBzZWNvbmRzX2xlZnQ7Ci0JfQotICAgICAgZWxzZSBpZiAoc3lz dGVtX3N0YXR1cy5CYXR0ZXJ5RmxhZyAmIDQpCi0JewotCSAgYmF0dGVyeV9zdGF0dXMgPSBi dWlsZF9zdHJpbmcgKCJjcml0aWNhbCIpOwotCSAgYmF0dGVyeV9zdGF0dXNfc3ltYm9sID0g YnVpbGRfc3RyaW5nICgiISIpOwotCX0KLSAgICAgIGVsc2UgaWYgKHN5c3RlbV9zdGF0dXMu QmF0dGVyeUZsYWcgJiAyKQotCXsKLQkgIGJhdHRlcnlfc3RhdHVzID0gYnVpbGRfc3RyaW5n ICgibG93Iik7Ci0JICBiYXR0ZXJ5X3N0YXR1c19zeW1ib2wgPSBidWlsZF9zdHJpbmcgKCIt Iik7Ci0JfQotICAgICAgZWxzZSBpZiAoc3lzdGVtX3N0YXR1cy5CYXR0ZXJ5RmxhZyAmIDEp Ci0JewotCSAgYmF0dGVyeV9zdGF0dXMgPSBidWlsZF9zdHJpbmcgKCJoaWdoIik7Ci0JICBi YXR0ZXJ5X3N0YXR1c19zeW1ib2wgPSBlbXB0eV91bmlieXRlX3N0cmluZzsKLQl9Ci0gICAg ICBlbHNlCi0JewotCSAgYmF0dGVyeV9zdGF0dXMgPSBidWlsZF9zdHJpbmcgKCJtZWRpdW0i KTsKLQkgIGJhdHRlcnlfc3RhdHVzX3N5bWJvbCA9IGVtcHR5X3VuaWJ5dGVfc3RyaW5nOwot CX0KLQotICAgICAgaWYgKHN5c3RlbV9zdGF0dXMuQmF0dGVyeUxpZmVQZXJjZW50ID4gMTAw KQotCWxvYWRfcGVyY2VudGFnZSA9IGJ1aWxkX3N0cmluZyAoIk4vQSIpOwotICAgICAgZWxz ZQotCXsKLQkgIGNoYXIgYnVmZmVyWzE2XTsKLQkgIHNucHJpbnRmIChidWZmZXIsIDE2LCAi JWQiLCBzeXN0ZW1fc3RhdHVzLkJhdHRlcnlMaWZlUGVyY2VudCk7Ci0JICBsb2FkX3BlcmNl bnRhZ2UgPSBidWlsZF9zdHJpbmcgKGJ1ZmZlcik7Ci0JfQotCi0gICAgICBpZiAoc2Vjb25k c19sZWZ0IDwgMCkKLQlzZWNvbmRzID0gbWludXRlcyA9IGhvdXJzID0gcmVtYWluID0gYnVp bGRfc3RyaW5nICgiTi9BIik7Ci0gICAgICBlbHNlCi0JewotCSAgbG9uZyBtOwotCSAgZG91 YmxlIGg7Ci0JICBjaGFyIGJ1ZmZlclsxNl07Ci0JICBzbnByaW50ZiAoYnVmZmVyLCAxNiwg IiVsZCIsIHNlY29uZHNfbGVmdCk7Ci0JICBzZWNvbmRzID0gYnVpbGRfc3RyaW5nIChidWZm ZXIpOwotCi0JICBtID0gc2Vjb25kc19sZWZ0IC8gNjA7Ci0JICBzbnByaW50ZiAoYnVmZmVy LCAxNiwgIiVsZCIsIG0pOwotCSAgbWludXRlcyA9IGJ1aWxkX3N0cmluZyAoYnVmZmVyKTsK LQotCSAgaCA9IHNlY29uZHNfbGVmdCAvIDM2MDAuMDsKLQkgIHNucHJpbnRmIChidWZmZXIs IDE2LCAiJTMuMWYiLCBoKTsKLQkgIGhvdXJzID0gYnVpbGRfc3RyaW5nIChidWZmZXIpOwot Ci0JICBzbnByaW50ZiAoYnVmZmVyLCAxNiwgIiVsZDolMDJsZCIsIG0gLyA2MCwgbSAlIDYw KTsKLQkgIHJlbWFpbiA9IGJ1aWxkX3N0cmluZyAoYnVmZmVyKTsKLQl9Ci0KLSAgICAgIHN0 YXR1cyA9IGxpc3RuIChDT05TVFlQRV9IRUFQLCA4LAotCQkgICAgICBGY29ucyAobWFrZV9u dW1iZXIgKCdMJyksIGxpbmVfc3RhdHVzKSwKLQkJICAgICAgRmNvbnMgKG1ha2VfbnVtYmVy ICgnQicpLCBiYXR0ZXJ5X3N0YXR1cyksCi0JCSAgICAgIEZjb25zIChtYWtlX251bWJlciAo J2InKSwgYmF0dGVyeV9zdGF0dXNfc3ltYm9sKSwKLQkJICAgICAgRmNvbnMgKG1ha2VfbnVt YmVyICgncCcpLCBsb2FkX3BlcmNlbnRhZ2UpLAotCQkgICAgICBGY29ucyAobWFrZV9udW1i ZXIgKCdzJyksIHNlY29uZHMpLAotCQkgICAgICBGY29ucyAobWFrZV9udW1iZXIgKCdtJyks IG1pbnV0ZXMpLAotCQkgICAgICBGY29ucyAobWFrZV9udW1iZXIgKCdoJyksIGhvdXJzKSwK LQkJICAgICAgRmNvbnMgKG1ha2VfbnVtYmVyICgndCcpLCByZW1haW4pKTsKLSAgICB9Ci0g IHJldHVybiBzdGF0dXM7Ci19Ci0KIAwKICNpZmRlZiBXSU5ET1dTTlQKIHR5cGVkZWYgQk9P TCAoV0lOQVBJICpHZXREaXNrRnJlZVNwYWNlRXhXX1Byb2MpCkBAIC0xMDc3NCw3ICsxMDY2 NSw2IEBAIHRpcCBmcmFtZS4gICovKTsKICAgZGVmc3ViciAoJlN3MzJfcmVjb25zdHJ1Y3Rf aG90X2tleSk7CiAgIGRlZnN1YnIgKCZTdzMyX3RvZ2dsZV9sb2NrX2tleSk7CiAgIGRlZnN1 YnIgKCZTdzMyX3dpbmRvd19leGlzdHNfcCk7Ci0gIGRlZnN1YnIgKCZTdzMyX2JhdHRlcnlf c3RhdHVzKTsKICAgZGVmc3ViciAoJlN3MzJfX21lbnVfYmFyX2luX3VzZSk7CiAjaWYgZGVm aW5lZCBXSU5ET1dTTlQgJiYgIWRlZmluZWQgSEFWRV9EQlVTCiAgIGRlZnN1YnIgKCZTdzMy X25vdGlmaWNhdGlvbl9ub3RpZnkpOwotLSAKMi4xNS4xCgo= --------------E4ACD82064FE6B7A0F61C331--