From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eugen Anghel Newsgroups: gmane.emacs.devel Subject: Re: Switch the Windows port to using Unicode keyboard input Date: Tue, 6 Oct 2009 21:11:29 +0300 Message-ID: References: <83y6nrnthg.fsf@gnu.org> <4AC8B391.4020906@gnu.org> <83skdznf4j.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=00032555a0cafc73b20475482970 X-Trace: ger.gmane.org 1254852757 29030 80.91.229.12 (6 Oct 2009 18:12:37 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 6 Oct 2009 18:12:37 +0000 (UTC) Cc: lennart.borgman@gmail.com, jasonr@gnu.org To: Eli Zaretskii , emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Oct 06 20:12:27 2009 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1MvEWD-0003o2-Re for ged-emacs-devel@m.gmane.org; Tue, 06 Oct 2009 20:12:18 +0200 Original-Received: from localhost ([127.0.0.1]:42056 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MvEWD-00045A-2B for ged-emacs-devel@m.gmane.org; Tue, 06 Oct 2009 14:12:13 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MvEW6-00040T-M4 for emacs-devel@gnu.org; Tue, 06 Oct 2009 14:12:06 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MvEW2-0003re-T1 for emacs-devel@gnu.org; Tue, 06 Oct 2009 14:12:06 -0400 Original-Received: from [199.232.76.173] (port=39198 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MvEW2-0003rQ-Pn for emacs-devel@gnu.org; Tue, 06 Oct 2009 14:12:02 -0400 Original-Received: from mail-bw0-f220.google.com ([209.85.218.220]:44996) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MvEVu-0001OY-2n; Tue, 06 Oct 2009 14:11:55 -0400 Original-Received: by bwz20 with SMTP id 20so3719439bwz.42 for ; Tue, 06 Oct 2009 11:11:49 -0700 (PDT) Original-Received: by 10.204.33.194 with SMTP id i2mr5024285bkd.146.1254852709347; Tue, 06 Oct 2009 11:11:49 -0700 (PDT) In-Reply-To: <83skdznf4j.fsf@gnu.org> X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:115938 Archived-At: --00032555a0cafc73b20475482970 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable 2009/10/4 Eli Zaretskii : >> From: Eugen Anghel >> Date: Sun, 4 Oct 2009 20:41:53 +0300 >> Cc: emacs-devel@gnu.org >> >> Is having two separate binaries, one for 9x/Me and one for XP/Vista an >> option? > > That would be inconvenient (need two binaries on FTP sites, migrating > from 9x to XP needs to install a different binary, etc.). =C2=A0So I thin= k > we should do this only if there's no better solution. > Hi. I have attached another patch that should function correctly on XP/Vista without affecting win98/me users in any way. It's working for me on Windows 7 and I'll test it tomorrow on XP at work. --00032555a0cafc73b20475482970 Content-Type: application/octet-stream; name="w32-unicode.patch" Content-Disposition: attachment; filename="w32-unicode.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g0gyjwwz0 ZGlmZiAtLWdpdCBhL3NyYy9jb2RpbmcuYyBiL3NyYy9jb2RpbmcuYwppbmRleCA0MDUyODRmLi41 N2YzMDYzIDEwMDY0NAotLS0gYS9zcmMvY29kaW5nLmMKKysrIGIvc3JjL2NvZGluZy5jCkBAIC0z MTAsNyArMzEwLDcgQEAgTGlzcF9PYmplY3QgUWJ1ZmZlcl9maWxlX2NvZGluZ19zeXN0ZW07CiBM aXNwX09iamVjdCBRcG9zdF9yZWFkX2NvbnZlcnNpb24sIFFwcmVfd3JpdGVfY29udmVyc2lvbjsK IExpc3BfT2JqZWN0IFFkZWZhdWx0X2NoYXI7CiBMaXNwX09iamVjdCBRbm9fY29udmVyc2lvbiwg UXVuZGVjaWRlZDsKLUxpc3BfT2JqZWN0IFFjaGFyc2V0LCBRaXNvXzIwMjIsIFF1dGZfOCwgUXV0 Zl8xNiwgUXNoaWZ0X2ppcywgUWJpZzU7CitMaXNwX09iamVjdCBRY2hhcnNldCwgUWlzb18yMDIy LCBRdXRmXzgsIFF1dGZfMTYsIFF1dGZfMTZsZSwgUXV0Zl8xNmJlLCBRdXRmXzE2X2xlLCBRdXRm XzE2X2JlLCBRc2hpZnRfamlzLCBRYmlnNTsKIExpc3BfT2JqZWN0IFFiaWcsIFFsaXR0bGU7CiBM aXNwX09iamVjdCBRY29kaW5nX3N5c3RlbV9oaXN0b3J5OwogTGlzcF9PYmplY3QgUXZhbGlkX2Nv ZGVzOwpAQCAtMTA0NjUsNiArMTA0NjUsMTAgQEAgc3ltc19vZl9jb2RpbmcgKCkKICAgREVGU1lN IChRdXRmXzhfZW1hY3MsICJ1dGYtOC1lbWFjcyIpOwogCiAgIERFRlNZTSAoUXV0Zl8xNiwgInV0 Zi0xNiIpOworICBERUZTWU0gKFF1dGZfMTZfbGUsICJ1dGYtMTYtbGUiKTsKKyAgREVGU1lNIChR dXRmXzE2X2JlLCAidXRmLTE2LWJlIik7CisgIERFRlNZTSAoUXV0Zl8xNmxlLCAidXRmLTE2bGUi KTsKKyAgREVGU1lNIChRdXRmXzE2YmUsICJ1dGYtMTZiZSIpOwogICBERUZTWU0gKFFiaWcsICJi aWciKTsKICAgREVGU1lNIChRbGl0dGxlLCAibGl0dGxlIik7CiAKZGlmZiAtLWdpdCBhL3NyYy9j b2RpbmcuaCBiL3NyYy9jb2RpbmcuaAppbmRleCBjYTg4NzhmLi5mMzdmZDczIDEwMDY0NAotLS0g YS9zcmMvY29kaW5nLmgKKysrIGIvc3JjL2NvZGluZy5oCkBAIC03NTcsNiArNzU3LDcgQEAgZXh0 ZXJuIExpc3BfT2JqZWN0IHByZWZlcnJlZF9jb2Rpbmdfc3lzdGVtIFBfICgoKSk7CiAKIAogZXh0 ZXJuIExpc3BfT2JqZWN0IFF1dGZfOCwgUXV0Zl84X2VtYWNzOworZXh0ZXJuIExpc3BfT2JqZWN0 IFF1dGZfMTYsIFF1dGZfMTZfbGUsIFF1dGZfMTZsZSwgUXV0Zl8xNmJlLCBRdXRmXzE2X2JlOwog CiBleHRlcm4gTGlzcF9PYmplY3QgUWNvZGluZ19zeXN0ZW0sIFFlb2xfdHlwZSwgUWNvZGluZ19j YXRlZ29yeV9pbmRleDsKIGV4dGVybiBMaXNwX09iamVjdCBRY29kaW5nX3N5c3RlbV9wOwpkaWZm IC0tZ2l0IGEvc3JjL3czMmZucy5jIGIvc3JjL3czMmZucy5jCmluZGV4IDgwMDNkNzkuLjkxY2Zh NWUgMTAwNjQ0Ci0tLSBhL3NyYy93MzJmbnMuYworKysgYi9zcmMvdzMyZm5zLmMKQEAgLTI0Nyw2 ICsyNDcsOCBAQCBzdHJ1Y3QgTU9OSVRPUl9JTkZPCiBERUNMQVJFX0hBTkRMRShITU9OSVRPUik7 CiAjZW5kaWYKIAorI2RlZmluZSBIQVNfVU5JQ09ERV9XSU5ET1dTIChjcmVhdGVfd2luZG93X2V4 X3VuaWNvZGVfZm4gIT0gTlVMTCkKKwogdHlwZWRlZiBCT09MIChXSU5BUEkgKiBUcmFja01vdXNl RXZlbnRfUHJvYykKICAgKElOIE9VVCBMUFRSQUNLTU9VU0VFVkVOVCBscEV2ZW50VHJhY2spOwog dHlwZWRlZiBMT05HIChXSU5BUEkgKiBJbW1HZXRDb21wb3NpdGlvblN0cmluZ19Qcm9jKQpAQCAt MjU4LDYgKzI2MCwyMCBAQCB0eXBlZGVmIEhXTkQgKFdJTkFQSSAqIEltbVNldENvbXBvc2l0aW9u V2luZG93X1Byb2MpIChJTiBISU1DIGNvbnRleHQsCiB0eXBlZGVmIEhNT05JVE9SIChXSU5BUEkg KiBNb25pdG9yRnJvbVBvaW50X1Byb2MpIChJTiBQT0lOVCBwdCwgSU4gRFdPUkQgZmxhZ3MpOwog dHlwZWRlZiBCT09MIChXSU5BUEkgKiBHZXRNb25pdG9ySW5mb19Qcm9jKQogICAoSU4gSE1PTklU T1IgbW9uaXRvciwgT1VUIHN0cnVjdCBNT05JVE9SX0lORk8qIGluZm8pOwordHlwZWRlZiBBVE9N IChXSU5BUEkgKiBSZWdpc3RlckNsYXNzV19Qcm9jKSAoQ09OU1QgV05EQ0xBU1MgKmxwV25kQ2xh c3MpOwordHlwZWRlZiBIV05EIChXSU5BUEkgKiBDcmVhdGVXaW5kb3dFeFdfUHJvYykKKyAgKERX T1JEIGR3RXhTdHlsZSwgTFBDV1NUUiBscENsYXNzTmFtZSwgTFBDV1NUUiBscFdpbmRvd05hbWUs IERXT1JEIGR3U3R5bGUsCisgIGludCB4LCBpbnQgeSwgaW50IG5XaWR0aCwgaW50IG5IZWlnaHQs IEhXTkQgaFduZFBhcmVudCwgSE1FTlUgaE1lbnUsCisgIEhJTlNUQU5DRSBoSW5zdGFuY2UsIExQ Vk9JRCBscFBhcmFtKTsKK3R5cGVkZWYgQk9PTCAoV0lOQVBJICogU2V0V2luZG93VGV4dF9Qcm9j KSAoSFdORCBoV25kLCBMUENTVFIgbHBTdHJpbmcpOwordHlwZWRlZiBCT09MIChXSU5BUEkgKiBH ZXRNZXNzYWdlX1Byb2MpIChMUE1TRyBscE1zZywgSFdORCBoV25kLCBVSU5UCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0ZpbHRlck1pbiwgVUlOVCB3TXNnRmls dGVyTWF4KTsKK3R5cGVkZWYgQk9PTCAoV0lOQVBJICogTWVzc2FnZVByb2NfUHJvYykgKEhXTkQg aFduZCwgVUlOVCBtc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pOwordHlwZWRlZiBMUkVTVUxUIChXSU5BUEkg KiBEaXNwYXRjaE1lc3NhZ2VfUHJvYykgKGNvbnN0IE1TRyAqbHBtc2cpOwordHlwZWRlZiBCT09M IChXSU5BUEkgKiBQZWVrTWVzc2FnZV9Qcm9jKQorICAoTFBNU0cgbHBNc2csIEhXTkQgaFduZCwg VUlOVCB3TXNnRmlsdGVyTWluLAorICBVSU5UIHdNc2dGaWx0ZXJNYXgsIFVJTlQgd1JlbW92ZU1z Zyk7CiAKIFRyYWNrTW91c2VFdmVudF9Qcm9jIHRyYWNrX21vdXNlX2V2ZW50X2ZuID0gTlVMTDsK IENsaXBib2FyZFNlcXVlbmNlX1Byb2MgY2xpcGJvYXJkX3NlcXVlbmNlX2ZuID0gTlVMTDsKQEAg LTI2Nyw2ICsyODMsMTQgQEAgSW1tUmVsZWFzZUNvbnRleHRfUHJvYyByZWxlYXNlX2ltZV9jb250 ZXh0X2ZuID0gTlVMTDsKIEltbVNldENvbXBvc2l0aW9uV2luZG93X1Byb2Mgc2V0X2ltZV9jb21w b3NpdGlvbl93aW5kb3dfZm4gPSBOVUxMOwogTW9uaXRvckZyb21Qb2ludF9Qcm9jIG1vbml0b3Jf ZnJvbV9wb2ludF9mbiA9IE5VTEw7CiBHZXRNb25pdG9ySW5mb19Qcm9jIGdldF9tb25pdG9yX2lu Zm9fZm4gPSBOVUxMOworUmVnaXN0ZXJDbGFzc1dfUHJvYyByZWdpc3Rlcl9jbGFzc191bmljb2Rl X2ZuID0gTlVMTDsKK0NyZWF0ZVdpbmRvd0V4V19Qcm9jIGNyZWF0ZV93aW5kb3dfZXhfdW5pY29k ZV9mbiA9IE5VTEw7CitTZXRXaW5kb3dUZXh0X1Byb2Mgc2V0X3dpbmRvd190ZXh0X2ZuID0gTlVM TDsKK0dldE1lc3NhZ2VfUHJvYyBnZXRfbWVzc2FnZV9mbiA9IE5VTEw7CitNZXNzYWdlUHJvY19Q cm9jIHBvc3RfbWVzc2FnZV9mbiA9IE5VTEw7CitNZXNzYWdlUHJvY19Qcm9jIGRlZl93aW5kb3df cHJvY19mbiA9IE5VTEw7CitEaXNwYXRjaE1lc3NhZ2VfUHJvYyBkaXNwYXRjaF9tZXNzYWdlX2Zu ID0gTlVMTDsKK1BlZWtNZXNzYWdlX1Byb2MgcGVla19tZXNzYWdlX2ZuID0gTlVMTDsKIAogZXh0 ZXJuIEFwcGVuZE1lbnVXX1Byb2MgdW5pY29kZV9hcHBlbmRfbWVudTsKIApAQCAtMTg3MSwxMSAr MTg5NSwxOCBAQCB4X3NldF9uYW1lIChmLCBuYW1lLCBleHBsaWNpdCkKIAogICBpZiAoRlJBTUVf VzMyX1dJTkRPVyAoZikpCiAgICAgewotICAgICAgaWYgKFNUUklOR19NVUxUSUJZVEUgKG5hbWUp KQotCW5hbWUgPSBFTkNPREVfU1lTVEVNIChuYW1lKTsKKyAgICAgIC8qIGVuc3VyZSBuYW1lIGlz IG51bGwtdGVybWluYXRlZCAqLworICAgICAgaWYgKFNSRUYgKG5hbWUsIFNCWVRFUyAobmFtZSkg LSAxKSkKKyAgICAgICAgbmFtZSA9IG1ha2Vfc3RyaW5nIChTREFUQSAobmFtZSksIFNCWVRFUyAo bmFtZSkgKyAxKTsKIAogICAgICAgQkxPQ0tfSU5QVVQ7Ci0gICAgICBTZXRXaW5kb3dUZXh0IChG UkFNRV9XMzJfV0lORE9XIChmKSwgU0RBVEEgKG5hbWUpKTsKKyAgICAgIGlmIChIQVNfVU5JQ09E RV9XSU5ET1dTKQorICAgICAgICAgIG5hbWUgPSBjb2RlX2NvbnZlcnRfc3RyaW5nX25vcmVjb3Jk KG5hbWUsIFF1dGZfMTZsZSwgMSk7CisgICAgICBlbHNlCisgICAgICAgIGlmIChTVFJJTkdfTVVM VElCWVRFIChuYW1lKSkKKyAgICAgICAgICBuYW1lID0gRU5DT0RFX1NZU1RFTSAobmFtZSk7CisK KyAgICAgIHNldF93aW5kb3dfdGV4dF9mbiAoRlJBTUVfVzMyX1dJTkRPVyAoZiksIFNEQVRBIChu YW1lKSk7CiAgICAgICBVTkJMT0NLX0lOUFVUOwogICAgIH0KIH0KQEAgLTE5MjMsMTEgKzE5NTQs MTggQEAgeF9zZXRfdGl0bGUgKGYsIG5hbWUsIG9sZF9uYW1lKQogCiAgIGlmIChGUkFNRV9XMzJf V0lORE9XIChmKSkKICAgICB7Ci0gICAgICBpZiAoU1RSSU5HX01VTFRJQllURSAobmFtZSkpCi0J bmFtZSA9IEVOQ09ERV9TWVNURU0gKG5hbWUpOworICAgICAgLyogZW5zdXJlIG5hbWUgaXMgbnVs bC10ZXJtaW5hdGVkICovCisgICAgICBpZiAoU1JFRiAobmFtZSwgU0JZVEVTIChuYW1lKSAtIDEp KQorICAgICAgICBuYW1lID0gbWFrZV9zdHJpbmcgKFNEQVRBIChuYW1lKSwgU0JZVEVTIChuYW1l KSArIDEpOwogCiAgICAgICBCTE9DS19JTlBVVDsKLSAgICAgIFNldFdpbmRvd1RleHQgKEZSQU1F X1czMl9XSU5ET1cgKGYpLCBTREFUQSAobmFtZSkpOworICAgICAgaWYgKEhBU19VTklDT0RFX1dJ TkRPV1MpCisgICAgICAgIG5hbWUgPSBjb2RlX2NvbnZlcnRfc3RyaW5nX25vcmVjb3JkKG5hbWUs IFF1dGZfMTZsZSwgMSk7CisgICAgICBlbHNlCisgICAgICAgIGlmIChTVFJJTkdfTVVMVElCWVRF IChuYW1lKSkKKyAgICAgICAgICBuYW1lID0gRU5DT0RFX1NZU1RFTSAobmFtZSk7CisgICAgICAK KyAgICAgIHNldF93aW5kb3dfdGV4dF9mbiAoRlJBTUVfVzMyX1dJTkRPVyAoZiksIFNEQVRBIChu YW1lKSk7CiAgICAgICBVTkJMT0NLX0lOUFVUOwogICAgIH0KIH0KQEAgLTE5NjgsMjAgKzIwMDYs NDIgQEAgc3RhdGljIEJPT0wKIHczMl9pbml0X2NsYXNzIChoaW5zdCkKICAgICAgSElOU1RBTkNF IGhpbnN0OwogewotICBXTkRDTEFTUyB3YzsKLQotICB3Yy5zdHlsZSA9IENTX0hSRURSQVcgfCBD U19WUkVEUkFXOwotICB3Yy5scGZuV25kUHJvYyA9IChXTkRQUk9DKSB3MzJfd25kX3Byb2M7Ci0g IHdjLmNiQ2xzRXh0cmEgPSAwOwotICB3Yy5jYlduZEV4dHJhID0gV05EX0VYVFJBX0JZVEVTOwot ICB3Yy5oSW5zdGFuY2UgPSBoaW5zdDsKLSAgd2MuaEljb24gPSBMb2FkSWNvbiAoaGluc3QsIEVN QUNTX0NMQVNTKTsKLSAgd2MuaEN1cnNvciA9IHczMl9sb2FkX2N1cnNvciAoSURDX0FSUk9XKTsK LSAgd2MuaGJyQmFja2dyb3VuZCA9IE5VTEw7IC8qIEdldFN0b2NrT2JqZWN0IChXSElURV9CUlVT SCk7ICAqLwotICB3Yy5scHN6TWVudU5hbWUgPSBOVUxMOwotICB3Yy5scHN6Q2xhc3NOYW1lID0g RU1BQ1NfQ0xBU1M7Ci0KLSAgcmV0dXJuIChSZWdpc3RlckNsYXNzICgmd2MpKTsKKyAgaWYgKHJl Z2lzdGVyX2NsYXNzX3VuaWNvZGVfZm4pCisgICAgeworICAgICAgV05EQ0xBU1NXIHdjOworCisg ICAgICB3Yy5zdHlsZSA9IENTX0hSRURSQVcgfCBDU19WUkVEUkFXOworICAgICAgd2MubHBmbldu ZFByb2MgPSAoV05EUFJPQykgdzMyX3duZF9wcm9jOworICAgICAgd2MuY2JDbHNFeHRyYSA9IDA7 CisgICAgICB3Yy5jYlduZEV4dHJhID0gV05EX0VYVFJBX0JZVEVTOworICAgICAgd2MuaEluc3Rh bmNlID0gaGluc3Q7CisgICAgICB3Yy5oSWNvbiA9IExvYWRJY29uIChoaW5zdCwgRU1BQ1NfQ0xB U1MpOworICAgICAgd2MuaEN1cnNvciA9IHczMl9sb2FkX2N1cnNvciAoSURDX0FSUk9XKTsKKyAg ICAgIHdjLmhickJhY2tncm91bmQgPSBOVUxMOyAvKiBHZXRTdG9ja09iamVjdCAoV0hJVEVfQlJV U0gpOyAgKi8KKyAgICAgIHdjLmxwc3pNZW51TmFtZSA9IE5VTEw7CisKKyAgICAgIExpc3BfT2Jq ZWN0IGNsYXNzU3RyID0gbWFrZV9zdHJpbmcoRU1BQ1NfQ0xBU1MsIHN0cmxlbihFTUFDU19DTEFT UykgKyAxKTsKKyAgICAgIGNsYXNzU3RyID0gY29kZV9jb252ZXJ0X3N0cmluZ19ub3JlY29yZChj bGFzc1N0ciwgUXV0Zl8xNmxlLCAxKTsKKyAgICAgIHdjLmxwc3pDbGFzc05hbWUgPSAoTFBXU1RS KSBTREFUQSAoY2xhc3NTdHIpOworICAgICAgcmV0dXJuIChyZWdpc3Rlcl9jbGFzc191bmljb2Rl X2ZuICgmd2MpKTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICBXTkRDTEFTU0Egd2M7CisK KyAgICAgIHdjLnN0eWxlID0gQ1NfSFJFRFJBVyB8IENTX1ZSRURSQVc7CisgICAgICB3Yy5scGZu V25kUHJvYyA9IChXTkRQUk9DKSB3MzJfd25kX3Byb2M7CisgICAgICB3Yy5jYkNsc0V4dHJhID0g MDsKKyAgICAgIHdjLmNiV25kRXh0cmEgPSBXTkRfRVhUUkFfQllURVM7CisgICAgICB3Yy5oSW5z dGFuY2UgPSBoaW5zdDsKKyAgICAgIHdjLmhJY29uID0gTG9hZEljb24gKGhpbnN0LCBFTUFDU19D TEFTUyk7CisgICAgICB3Yy5oQ3Vyc29yID0gdzMyX2xvYWRfY3Vyc29yIChJRENfQVJST1cpOwor ICAgICAgd2MuaGJyQmFja2dyb3VuZCA9IE5VTEw7IC8qIEdldFN0b2NrT2JqZWN0IChXSElURV9C UlVTSCk7ICAqLworICAgICAgd2MubHBzek1lbnVOYW1lID0gTlVMTDsKKworICAgICAgd2MubHBz ekNsYXNzTmFtZSA9IEVNQUNTX0NMQVNTOworICAgICAgcmV0dXJuIChSZWdpc3RlckNsYXNzICgm d2MpKTsKKyAgICB9CiB9CiAKIHN0YXRpYyBIV05ECkBAIC0yMDA3LDEwICsyMDY3LDExIEBAIHcz Ml9jcmVhdGV3aW5kb3cgKGYpCiB7CiAgIEhXTkQgaHduZDsKICAgUkVDVCByZWN0OworICBMaXNw X09iamVjdCBjbGFzc1N0ciA9IG1ha2Vfc3RyaW5nIChFTUFDU19DTEFTUywgc3RybGVuIChFTUFD U19DTEFTUykgKyAxKTsKKyAgTGlzcF9PYmplY3QgbmFtZVN0ciA9IG1ha2Vfc3RyaW5nIChmLT5u YW1lYnVmLCBzdHJsZW4oZi0+bmFtZWJ1ZikgKyAxKTsKICAgTGlzcF9PYmplY3QgdG9wID0gUXVu Ym91bmQ7CiAgIExpc3BfT2JqZWN0IGxlZnQgPSBRdW5ib3VuZDsKICAgc3RydWN0IHczMl9kaXNw bGF5X2luZm8gKmRweWluZm8gPSAmb25lX3czMl9kaXNwbGF5X2luZm87Ci0KICAgcmVjdC5sZWZ0 ID0gcmVjdC50b3AgPSAwOwogICByZWN0LnJpZ2h0ID0gRlJBTUVfUElYRUxfV0lEVEggKGYpOwog ICByZWN0LmJvdHRvbSA9IEZSQU1FX1BJWEVMX0hFSUdIVCAoZik7CkBAIC0yMDM4LDE4ICsyMDk5 LDQwIEBAIHczMl9jcmVhdGV3aW5kb3cgKGYpCiAgICAgICB0b3AgPSB4X2dldF9hcmcgKGRweWlu Zm8sIFFuaWwsIFF0b3AsICJ0b3AiLCAiVG9wIiwgUkVTX1RZUEVfTlVNQkVSKTsKICAgICB9CiAK LSAgRlJBTUVfVzMyX1dJTkRPVyAoZikgPSBod25kCi0gICAgPSBDcmVhdGVXaW5kb3cgKEVNQUNT X0NMQVNTLAotCQkgICAgZi0+bmFtZWJ1ZiwKLQkJICAgIGYtPm91dHB1dF9kYXRhLnczMi0+ZHdT dHlsZSB8IFdTX0NMSVBDSElMRFJFTiwKLQkJICAgIEVRIChsZWZ0LCBRdW5ib3VuZCkgPyBDV19V U0VERUZBVUxUIDogWElOVCAobGVmdCksCi0JCSAgICBFUSAodG9wLCBRdW5ib3VuZCkgPyBDV19V U0VERUZBVUxUIDogWElOVCAodG9wKSwKLQkJICAgIHJlY3QucmlnaHQgLSByZWN0LmxlZnQsCi0J CSAgICByZWN0LmJvdHRvbSAtIHJlY3QudG9wLAotCQkgICAgTlVMTCwKLQkJICAgIE5VTEwsCi0J CSAgICBoaW5zdCwKLQkJICAgIE5VTEwpOworICBpZiAoSEFTX1VOSUNPREVfV0lORE9XUykKKyAg ICB7CisgICAgICBjbGFzc1N0ciA9IGNvZGVfY29udmVydF9zdHJpbmdfbm9yZWNvcmQoY2xhc3NT dHIsIFF1dGZfMTZsZSwgMSk7CisgICAgICBuYW1lU3RyID0gY29kZV9jb252ZXJ0X3N0cmluZ19u b3JlY29yZChuYW1lU3RyLCBRdXRmXzE2bGUsIDEpOworICAgICAgRlJBTUVfVzMyX1dJTkRPVyAo ZikgPSBod25kCisgICAgICAgID0gY3JlYXRlX3dpbmRvd19leF91bmljb2RlX2ZuICgKKyAgICAg ICAgICAwLAorICAgICAgICAgIChMUFdTVFIpIFNEQVRBIChjbGFzc1N0ciksCisgICAgICAgICAg KExQV1NUUikgU0RBVEEgKG5hbWVTdHIpLAorICAgICAgICAgIGYtPm91dHB1dF9kYXRhLnczMi0+ ZHdTdHlsZSB8IFdTX0NMSVBDSElMRFJFTiwKKyAgICAgICAgICBFUSAobGVmdCwgUXVuYm91bmQp ID8gQ1dfVVNFREVGQVVMVCA6IFhJTlQgKGxlZnQpLAorICAgICAgICAgIEVRICh0b3AsIFF1bmJv dW5kKSA/IENXX1VTRURFRkFVTFQgOiBYSU5UICh0b3ApLAorICAgICAgICAgIHJlY3QucmlnaHQg LSByZWN0LmxlZnQsCisgICAgICAgICAgcmVjdC5ib3R0b20gLSByZWN0LnRvcCwKKyAgICAgICAg ICBOVUxMLAorICAgICAgICAgIE5VTEwsCisgICAgICAgICAgaGluc3QsCisgICAgICAgICAgTlVM TCk7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgRlJBTUVfVzMyX1dJTkRPVyAoZikgPSBo d25kCisgICAgICAgID0gQ3JlYXRlV2luZG93QSAoU0RBVEEgKGNsYXNzU3RyKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgIFNEQVRBIChuYW1lU3RyKSwKKyAgICAgICAgICAgICAgICAgICAgICAg IGYtPm91dHB1dF9kYXRhLnczMi0+ZHdTdHlsZSB8IFdTX0NMSVBDSElMRFJFTiwKKyAgICAgICAg ICAgICAgICAgICAgICAgIEVRIChsZWZ0LCBRdW5ib3VuZCkgPyBDV19VU0VERUZBVUxUIDogWElO VCAobGVmdCksCisgICAgICAgICAgICAgICAgICAgICAgICBFUSAodG9wLCBRdW5ib3VuZCkgPyBD V19VU0VERUZBVUxUIDogWElOVCAodG9wKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlY3Qu cmlnaHQgLSByZWN0LmxlZnQsCisgICAgICAgICAgICAgICAgICAgICAgICByZWN0LmJvdHRvbSAt IHJlY3QudG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAg ICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICBoaW5zdCwKKyAgICAgICAg ICAgICAgICAgICAgICAgIE5VTEwpOworICAgIH0KIAogICBpZiAoaHduZCkKICAgICB7CkBAIC0y NDQxLDcgKzI1MjQsNyBAQCB3MzJfbXNnX3B1bXAgKGRlZmVycmVkX21zZyAqIG1zZ19idWYpCiAK ICAgbXNoX21vdXNld2hlZWwgPSBSZWdpc3RlcldpbmRvd01lc3NhZ2UgKE1TSF9NT1VTRVdIRUVM KTsKIAotICB3aGlsZSAoR2V0TWVzc2FnZSAoJm1zZywgTlVMTCwgMCwgMCkpCisgIHdoaWxlIChn ZXRfbWVzc2FnZV9mbiAoJm1zZywgTlVMTCwgMCwgMCkpCiAgICAgewogICAgICAgaWYgKG1zZy5o d25kID09IE5VTEwpCiAJewpAQCAtMjUzNiw3ICsyNjE5LDcgQEAgdzMyX21zZ19wdW1wIChkZWZl cnJlZF9tc2cgKiBtc2dfYnVmKQogCX0KICAgICAgIGVsc2UKIAl7Ci0JICBEaXNwYXRjaE1lc3Nh Z2UgKCZtc2cpOworICAgICAgICAgIGRpc3BhdGNoX21lc3NhZ2VfZm4gKCZtc2cpOwogCX0KIAog ICAgICAgLyogRXhpdCBuZXN0ZWQgbG9vcCB3aGVuIG91ciBkZWZlcnJlZCBtZXNzYWdlIGhhcyBj b21wbGV0ZWQuICAqLwpAQCAtMjY0OSw3ICsyNzMyLDcgQEAgdzMyX21zZ193b3JrZXIgKHZvaWQg KmFyZykKIAogICAvKiBFbnN1cmUgb3VyIG1lc3NhZ2UgcXVldWUgaXMgY3JlYXRlZCAqLwogCi0g IFBlZWtNZXNzYWdlICgmbXNnLCBOVUxMLCAwLCAwLCBQTV9OT1JFTU9WRSk7CisgIHBlZWtfbWVz c2FnZV9mbiAoJm1zZywgTlVMTCwgMCwgMCwgUE1fTk9SRU1PVkUpOwogCiAgIGlmICghUG9zdFRo cmVhZE1lc3NhZ2UgKGR3TWFpblRocmVhZElkLCBXTV9FTUFDU19ET05FLCAwLCAwKSkKICAgICBh Ym9ydCAoKTsKQEAgLTI4OTcsNyArMjk4MCw3IEBAIHczMl93bmRfcHJvYyAoaHduZCwgbXNnLCB3 UGFyYW0sIGxQYXJhbSkKIAogICAgIGNhc2UgV01fSE9US0VZOgogICAgICAgLyogU3luY2hyb25p emUgaG90IGtleXMgd2l0aCBub3JtYWwgaW5wdXQuICAqLwotICAgICAgUG9zdE1lc3NhZ2UgKGh3 bmQsIFdNX0tFWURPV04sIEhJV09SRCAobFBhcmFtKSwgMCk7CisgICAgICBwb3N0X21lc3NhZ2Vf Zm4gKGh3bmQsIFdNX0tFWURPV04sIEhJV09SRCAobFBhcmFtKSwgMCk7CiAgICAgICByZXR1cm4g KDApOwogCiAgICAgY2FzZSBXTV9LRVlVUDoKQEAgLTM5NjQsMTAgKzQwNDcsMTAgQEAgdzMyX3du ZF9wcm9jIChod25kLCBtc2csIHdQYXJhbSwgbFBhcmFtKQogCSAgewogCSAgICBNU0cgYW1zZzsK IAkgICAgLyogRWF0IGFueSBtb3VzZSBtZXNzYWdlcyBkdXJpbmcgcG9wdXBtZW51ICovCi0JICAg IHdoaWxlIChQZWVrTWVzc2FnZSAoJmFtc2csIGh3bmQsIFdNX01PVVNFRklSU1QsIFdNX01PVVNF TEFTVCwKKwkgICAgd2hpbGUgKHBlZWtfbWVzc2FnZV9mbiAoJmFtc2csIGh3bmQsIFdNX01PVVNF RklSU1QsIFdNX01PVVNFTEFTVCwKIAkJCQlQTV9SRU1PVkUpKTsKIAkgICAgLyogR2V0IHRoZSBt ZW51IHNlbGVjdGlvbiwgaWYgYW55ICovCi0JICAgIGlmIChQZWVrTWVzc2FnZSAoJmFtc2csIGh3 bmQsIFdNX0NPTU1BTkQsIFdNX0NPTU1BTkQsIFBNX1JFTU9WRSkpCisJICAgIGlmIChwZWVrX21l c3NhZ2VfZm4gKCZhbXNnLCBod25kLCBXTV9DT01NQU5ELCBXTV9DT01NQU5ELCBQTV9SRU1PVkUp KQogCSAgICAgIHsKIAkJcmV0dmFsID0gIExPV09SRCAoYW1zZy53UGFyYW0pOwogCSAgICAgIH0K QEAgLTM5OTUsNyArNDA3OCw3IEBAIHczMl93bmRfcHJvYyAoaHduZCwgbXNnLCB3UGFyYW0sIGxQ YXJhbSkKIAl9CiAKICAgICBkZmx0OgotICAgICAgcmV0dXJuIERlZldpbmRvd1Byb2MgKGh3bmQs IG1zZywgd1BhcmFtLCBsUGFyYW0pOworICAgICAgcmV0dXJuIChkZWZfd2luZG93X3Byb2NfZm4g KGh3bmQsIG1zZywgd1BhcmFtLCBsUGFyYW0pKTsKICAgICB9CiAKIApAQCAtNDAxMSw3ICs0MDk0 LDcgQEAgbXlfY3JlYXRlX3dpbmRvdyAoZikKIAogICBpZiAoIVBvc3RUaHJlYWRNZXNzYWdlIChk d1dpbmRvd3NUaHJlYWRJZCwgV01fRU1BQ1NfQ1JFQVRFV0lORE9XLCAoV1BBUkFNKWYsIDApKQog ICAgIGFib3J0ICgpOwotICBHZXRNZXNzYWdlICgmbXNnLCBOVUxMLCBXTV9FTUFDU19ET05FLCBX TV9FTUFDU19ET05FKTsKKyAgZ2V0X21lc3NhZ2VfZm4gKCZtc2csIE5VTEwsIFdNX0VNQUNTX0RP TkUsIFdNX0VNQUNTX0RPTkUpOwogfQogCiAKQEAgLTYyNzcsNyArNjM2MCw3IEBAIElmIG9wdGlv bmFsIHBhcmFtZXRlciBGUkFNRSBpcyBub3Qgc3BlY2lmaWVkLCB1c2Ugc2VsZWN0ZWQgZnJhbWUu ICAqLykKIAogICBDSEVDS19OVU1CRVIgKGNvbW1hbmQpOwogCi0gIFBvc3RNZXNzYWdlIChGUkFN RV9XMzJfV0lORE9XIChmKSwgV01fU1lTQ09NTUFORCwgWElOVCAoY29tbWFuZCksIDApOworICBw b3N0X21lc3NhZ2VfZm4gKEZSQU1FX1czMl9XSU5ET1cgKGYpLCBXTV9TWVNDT01NQU5ELCBYSU5U IChjb21tYW5kKSwgMCk7CiAKICAgcmV0dXJuIFFuaWw7CiB9CkBAIC02NTA4LDcgKzY1OTEsNyBA QCBERUZVTiAoInczMi11bnJlZ2lzdGVyLWhvdC1rZXkiLCBGdzMyX3VucmVnaXN0ZXJfaG90X2tl eSwKICNlbmRpZgogCXsKIAkgIE1TRyBtc2c7Ci0JICBHZXRNZXNzYWdlICgmbXNnLCBOVUxMLCBX TV9FTUFDU19ET05FLCBXTV9FTUFDU19ET05FKTsKKyAgICAgICAgICBnZXRfbWVzc2FnZV9mbiAo Jm1zZywgTlVMTCwgV01fRU1BQ1NfRE9ORSwgV01fRU1BQ1NfRE9ORSk7CiAJfQogICAgICAgcmV0 dXJuIFF0OwogICAgIH0KQEAgLTY1ODgsNyArNjY3MSw3IEBAIGlzIHNldCB0byBvZmYgaWYgdGhl IGxvdyBiaXQgb2YgTkVXLVNUQVRFIGlzIHplcm8sIG90aGVyd2lzZSBvbi4gICovKQogI2VuZGlm CiAgICAgewogICAgICAgTVNHIG1zZzsKLSAgICAgIEdldE1lc3NhZ2UgKCZtc2csIE5VTEwsIFdN X0VNQUNTX0RPTkUsIFdNX0VNQUNTX0RPTkUpOworICAgICAgZ2V0X21lc3NhZ2VfZm4gKCZtc2cs IE5VTEwsIFdNX0VNQUNTX0RPTkUsIFdNX0VNQUNTX0RPTkUpOwogICAgICAgcmV0dXJuIG1ha2Vf bnVtYmVyIChtc2cud1BhcmFtKTsKICAgICB9CiAgIHJldHVybiBRbmlsOwpAQCAtNzMxMiw2ICs3 Mzk1LDIyIEBAIGdsb2JhbHNfb2ZfdzMyZm5zICgpCiAgICAgR2V0UHJvY0FkZHJlc3MgKHVzZXIz Ml9saWIsICJNb25pdG9yRnJvbVBvaW50Iik7CiAgIGdldF9tb25pdG9yX2luZm9fZm4gPSAoR2V0 TW9uaXRvckluZm9fUHJvYykKICAgICBHZXRQcm9jQWRkcmVzcyAodXNlcjMyX2xpYiwgIkdldE1v bml0b3JJbmZvQSIpOworICByZWdpc3Rlcl9jbGFzc191bmljb2RlX2ZuID0gKFJlZ2lzdGVyQ2xh c3NXX1Byb2MpCisgICAgR2V0UHJvY0FkZHJlc3MgKHVzZXIzMl9saWIsICJSZWdpc3RlckNsYXNz VyIpOworICBjcmVhdGVfd2luZG93X2V4X3VuaWNvZGVfZm4gPSAoQ3JlYXRlV2luZG93RXhXX1By b2MpCisgICAgR2V0UHJvY0FkZHJlc3MgKHVzZXIzMl9saWIsICJDcmVhdGVXaW5kb3dFeFciKTsK KyAgc2V0X3dpbmRvd190ZXh0X2ZuID0gKFNldFdpbmRvd1RleHRfUHJvYykKKyAgICBHZXRQcm9j QWRkcmVzcyAodXNlcjMyX2xpYiwgSEFTX1VOSUNPREVfV0lORE9XUyA/ICJTZXRXaW5kb3dUZXh0 VyIgOiAiU2V0V2luZG93VGV4dEEiKTsKKyAgZ2V0X21lc3NhZ2VfZm4gPSAoR2V0TWVzc2FnZV9Q cm9jKQorICAgIEdldFByb2NBZGRyZXNzICh1c2VyMzJfbGliLCBIQVNfVU5JQ09ERV9XSU5ET1dT ID8gIkdldE1lc3NhZ2VXIiA6ICJHZXRNZXNzYWdlQSIpOworICBwb3N0X21lc3NhZ2VfZm4gPSAo TWVzc2FnZVByb2NfUHJvYykKKyAgICBHZXRQcm9jQWRkcmVzcyAodXNlcjMyX2xpYiwgSEFTX1VO SUNPREVfV0lORE9XUyA/ICJQb3N0TWVzc2FnZVciIDogIlBvc3RNZXNzYWdlQSIpOworICBkZWZf d2luZG93X3Byb2NfZm4gPSAoTWVzc2FnZVByb2NfUHJvYykKKyAgICBHZXRQcm9jQWRkcmVzcyAo dXNlcjMyX2xpYiwgSEFTX1VOSUNPREVfV0lORE9XUyA/ICJEZWZXaW5kb3dQcm9jVyIgOiAiRGVm V2luZG93UHJvY0EiKTsKKyAgZGlzcGF0Y2hfbWVzc2FnZV9mbiA9IChEaXNwYXRjaE1lc3NhZ2Vf UHJvYykKKyAgICBHZXRQcm9jQWRkcmVzcyAodXNlcjMyX2xpYiwgSEFTX1VOSUNPREVfV0lORE9X UyA/ICJEaXNwYXRjaE1lc3NhZ2VXIiA6ICJEaXNwYXRjaE1lc3NhZ2VBIik7CisgIHBlZWtfbWVz c2FnZV9mbiA9IChQZWVrTWVzc2FnZV9Qcm9jKQorICAgIEdldFByb2NBZGRyZXNzICh1c2VyMzJf bGliLCBIQVNfVU5JQ09ERV9XSU5ET1dTID8gIlBlZWtNZXNzYWdlVyIgOiAiUGVla01lc3NhZ2VB Iik7CiAKICAgewogICAgIEhNT0RVTEUgaW1tMzJfbGliID0gR2V0TW9kdWxlSGFuZGxlICgiaW1t MzIuZGxsIik7CmRpZmYgLS1naXQgYS9zcmMvdzMydGVybS5jIGIvc3JjL3czMnRlcm0uYwppbmRl eCBiNzY0MmI0Li41ZjI4YjJiIDEwMDY0NAotLS0gYS9zcmMvdzMydGVybS5jCisrKyBiL3NyYy93 MzJ0ZXJtLmMKQEAgLTQyMjksMTAgKzQyMjksMTQgQEAgdzMyX3JlYWRfc29ja2V0IChzZCwgZXhw ZWN0ZWQsIGhvbGRfcXVpdCkKIAkgICAgICBYU0VURlJBTUUgKGluZXYuZnJhbWVfb3Jfd2luZG93 LCBmKTsKIAkgICAgICBpbmV2LnRpbWVzdGFtcCA9IG1zZy5tc2cudGltZTsKIAorCiAgICAgICAg ICAgICAgIGlmIChtc2cubXNnLm1lc3NhZ2UgPT0gV01fVU5JQ0hBUikKICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICBpbmV2LmNvZGUgPSBtc2cubXNnLndQYXJhbTsKICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UgaWYgKElzV2luZG93VW5pY29kZSAobXNn Lm1zZy5od25kKSkgeworICAgICAgICAgICAgICAgIGluZXYuY29kZSA9IG1zZy5tc2cud1BhcmFt OworICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIGVsc2UgaWYgKG1zZy5tc2cud1BhcmFt IDwgMjU2KQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIHdjaGFyX3QgY29k ZTsKQEAgLTQyNDUsNyArNDI0OSw3IEBAIHczMl9yZWFkX3NvY2tldCAoc2QsIGV4cGVjdGVkLCBo b2xkX3F1aXQpCiAgICAgICAgICAgICAgICAgICAgICAgZGJjc1swXSA9IGRiY3NfbGVhZDsKICAg ICAgICAgICAgICAgICAgICAgICBkYmNzX2xlYWQgPSAwOwogICAgICAgICAgICAgICAgICAgICAg IGlmICghTXVsdGlCeXRlVG9XaWRlQ2hhciAoa2V5Ym9hcmRfY29kZXBhZ2UsIDAsCi0JCQkJCQlk YmNzLCAyLCAmY29kZSwgMSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRiY3MsIDIsICZjb2RlLCAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogR2FyYmFnZSAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICBEZWJQcmludCAoKCJJbnZhbGlkIERCQ1Mgc2VxdWVuY2U6ICVkICVkXG4iLApA QCAtNDI1NSw3ICs0MjU5LDcgQEAgdzMyX3JlYWRfc29ja2V0IChzZCwgZXhwZWN0ZWQsIGhvbGRf cXVpdCkKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoSXNEQkNTTGVhZEJ5dGVFeCAoa2V5Ym9hcmRfY29k ZXBhZ2UsCi0JCQkJCSAgICAgKEJZVEUpIG1zZy5tc2cud1BhcmFtKSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEJZVEUpIG1zZy5tc2cud1BhcmFtKSkKICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgIGRiY3NfbGVhZCA9IChj aGFyKSBtc2cubXNnLndQYXJhbTsKICAgICAgICAgICAgICAgICAgICAgICBpbmV2LmtpbmQgPSBO T19FVkVOVDsKQEAgLTQyNjQsNyArNDI2OCw3IEBAIHczMl9yZWFkX3NvY2tldCAoc2QsIGV4cGVj dGVkLCBob2xkX3F1aXQpCiAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICBpZiAoIU11bHRpQnl0ZVRvV2lkZUNoYXIgKGtl eWJvYXJkX2NvZGVwYWdlLCAwLAotCQkJCQkJJmRiY3NbMV0sIDEsICZjb2RlLCAxKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRiY3NbMV0sIDEsICZj b2RlLCAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogV2hhdCB0byBkbyB3aXRoIGdhcmJhZ2U/ICovCiAgICAgICAgICAgICAgICAgICAg ICAgICAgIERlYlByaW50ICgoIkludmFsaWQgY2hhcmFjdGVyOiAlZFxuIiwgZGJjc1sxXSkpOwo= --00032555a0cafc73b20475482970--