From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10987 invoked by alias); 11 Jul 2011 19:51:04 -0000 Received: (qmail 10973 invoked by uid 22791); 11 Jul 2011 19:51:02 -0000 X-SWARE-Spam-Status: No, hits=-6.2 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,TW_DW,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 11 Jul 2011 19:50:44 +0000 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p6BJoihY024687 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 11 Jul 2011 15:50:44 -0400 Received: from anchor.twiddle.net (vpn-225-189.phx2.redhat.com [10.3.225.189]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p6BJohHU009942 for ; Mon, 11 Jul 2011 15:50:43 -0400 Message-ID: <4E1B5413.9050702@redhat.com> Date: Mon, 11 Jul 2011 20:17:00 -0000 From: Richard Henderson User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc15 Thunderbird/3.1.10 MIME-Version: 1.0 To: GCC Patches Subject: [dwarf2cfi] Cleanup interpretation of cfa.reg Content-Type: multipart/mixed; boundary="------------060407030700050908060009" X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2011-07/txt/msg00848.txt.bz2 This is a multi-part message in MIME format. --------------060407030700050908060009 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-length: 833 Sometimes we compare cfa.reg with REGNO, and sometimes with something that has been passed through DWARF_FRAME_REGNUM. This leads to all sorts of confusion. I think that ideally we'd leave dw_cfa_location.reg in the GCC regno space, because that's convenient for the majority of the code that interprets rtl and turns it into CFIs. However, we have no inverse of DWARF_FRAME_REGNUM, which means that lookup_cfa_1 cannot read CFI data in dwarf2 regno space and produce an output in GCC regno space. Therefore, I've audited all uses of dw_cfa_location.reg to ensure that all references are in dwarf2 regno space. It would have been nice to be able to use C++ classes to be able to do this checking in perpetuity, but the equivalent struct wrapping in C would have made the source to ugly. Tested on x86_64-linux. Committed. r~ --------------060407030700050908060009 Content-Type: text/plain; name="z" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="z" Content-length: 27833 ICAgICAgICAqIGR3YXJmMmNmaS5jIChEV19TVEFDS19QT0lOVEVSX1JFR05V TSk6IE5ldy4KICAgICAgICAoRFdfRlJBTUVfUE9JTlRFUl9SRUdOVU0pOiBO ZXcuCiAgICAgICAgKGV4cGFuZF9idWlsdGluX2luaXRfZHdhcmZfcmVnX3Np emVzKTogVXNlIHVuc2lnbmVkIGZvciBybnVtLgogICAgICAgIChkZWZfY2Zh XzEpOiBEbyBub3QgY29udmVydCByZWcgdG8gRFdBUkZfRlJBTUVfUkVHTlVN IGhlcmUuCiAgICAgICAgKGR3Zl9yZWdubyk6IE5ldy4KICAgICAgICAoZHdh cmYyb3V0X2ZsdXNoX3F1ZXVlZF9yZWdfc2F2ZXMsIGR3YXJmMm91dF9mcmFt ZV9kZWJ1Z19kZWZfY2ZhLAogICAgICAgIGR3YXJmMm91dF9mcmFtZV9kZWJ1 Z19hZGp1c3RfY2ZhLCBkd2FyZjJvdXRfZnJhbWVfZGVidWdfY2ZhX3JlZ2lz dGVyLAogICAgICAgIGR3YXJmMm91dF9mcmFtZV9kZWJ1Z19jZmFfZXhwcmVz c2lvbiwgZHdhcmYyb3V0X2ZyYW1lX2RlYnVnX2V4cHIpOgogICAgICAgIFVz ZSBpdC4gCiAgICAgICAgKiBkd2FyZjJvdXQuYyAoYmFzZWRfbG9jX2Rlc2Ny KTogVXNlIGR3YXJmX2ZyYW1lX3JlZ251bS4KICAgICAgICAqIGR3YXJmMm91 dC5oIChkd2FyZl9mcmFtZV9yZWdudW0pOiBOZXcuCiAgICAgICAgKHN0cnVj dCBjZmFfbG9jKTogRG9jdW1lbnQgdGhlIGRvbWFpbiBvZiB0aGUgcmVnIG1l bWJlci4KCgpkaWZmIC0tZ2l0IGEvZ2NjL2R3YXJmMmNmaS5jIGIvZ2NjL2R3 YXJmMmNmaS5jCmluZGV4IDViODQyMGUuLjFjNzZiM2YgMTAwNjQ0Ci0tLSBh L2djYy9kd2FyZjJjZmkuYworKysgYi9nY2MvZHdhcmYyY2ZpLmMKQEAgLTU3 LDYgKzU3LDEwIEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09Q WUlORzMuICBJZiBub3Qgc2VlCiAKIC8qIE1heGltdW0gc2l6ZSAoaW4gYnl0 ZXMpIG9mIGFuIGFydGlmaWNpYWxseSBnZW5lcmF0ZWQgbGFiZWwuICAqLwog I2RlZmluZSBNQVhfQVJUSUZJQ0lBTF9MQUJFTF9CWVRFUwkzMAorCisvKiBT aG9ydC1oYW5kIGZvciBjb21tb25seSB1c2VkIHJlZ2lzdGVyIG51bWJlcnMu ICAqLworI2RlZmluZSBEV19TVEFDS19QT0lOVEVSX1JFR05VTSAgZHdhcmZf ZnJhbWVfcmVnbnVtIChTVEFDS19QT0lOVEVSX1JFR05VTSkKKyNkZWZpbmUg RFdfRlJBTUVfUE9JTlRFUl9SRUdOVU0gIGR3YXJmX2ZyYW1lX3JlZ251bSAo SEFSRF9GUkFNRV9QT0lOVEVSX1JFR05VTSkKIAwKIC8qIEEgdmVjdG9yIG9m IGNhbGwgZnJhbWUgaW5zbnMgZm9yIHRoZSBDSUUuICAqLwogY2ZpX3ZlYyBj aWVfY2ZpX3ZlYzsKQEAgLTg1LDcgKzg5LDcgQEAgc3RhdGljIHZvaWQgZHdh cmYyb3V0X2ZyYW1lX2RlYnVnX3Jlc3RvcmVfc3RhdGUgKHZvaWQpOwogcnR4 CiBleHBhbmRfYnVpbHRpbl9kd2FyZl9zcF9jb2x1bW4gKHZvaWQpCiB7Ci0g IHVuc2lnbmVkIGludCBkd2FyZl9yZWdudW0gPSBEV0FSRl9GUkFNRV9SRUdO VU0gKFNUQUNLX1BPSU5URVJfUkVHTlVNKTsKKyAgdW5zaWduZWQgaW50IGR3 YXJmX3JlZ251bSA9IERXX1NUQUNLX1BPSU5URVJfUkVHTlVNOwogICByZXR1 cm4gR0VOX0lOVCAoRFdBUkYyX0ZSQU1FX1JFR19PVVQgKGR3YXJmX3JlZ251 bSwgMSkpOwogfQogCkBAIC0xMTMsNyArMTE3LDcgQEAgZXhwYW5kX2J1aWx0 aW5faW5pdF9kd2FyZl9yZWdfc2l6ZXMgKHRyZWUgYWRkcmVzcykKIAogICBm b3IgKGkgPSAwOyBpIDwgRklSU1RfUFNFVURPX1JFR0lTVEVSOyBpKyspCiAg ICAgewotICAgICAgaW50IHJudW0gPSBEV0FSRjJfRlJBTUVfUkVHX09VVCAo RFdBUkZfRlJBTUVfUkVHTlVNIChpKSwgMSk7CisgICAgICB1bnNpZ25lZCBp bnQgcm51bSA9IERXQVJGMl9GUkFNRV9SRUdfT1VUIChkd2FyZl9mcmFtZV9y ZWdudW0gKGkpLCAxKTsKIAogICAgICAgaWYgKHJudW0gPCBEV0FSRl9GUkFN RV9SRUdJU1RFUlMpCiAJewpAQCAtMTIzLDcgKzEyNyw3IEBAIGV4cGFuZF9i dWlsdGluX2luaXRfZHdhcmZfcmVnX3NpemVzICh0cmVlIGFkZHJlc3MpCiAK IAkgIGlmIChIQVJEX1JFR05PX0NBTExfUEFSVF9DTE9CQkVSRUQgKGksIHNh dmVfbW9kZSkpCiAJICAgIHNhdmVfbW9kZSA9IGNob29zZV9oYXJkX3JlZ19t b2RlIChpLCAxLCB0cnVlKTsKLQkgIGlmIChEV0FSRl9GUkFNRV9SRUdOVU0g KGkpID09IERXQVJGX0ZSQU1FX1JFVFVSTl9DT0xVTU4pCisJICBpZiAoZHdh cmZfZnJhbWVfcmVnbnVtIChpKSA9PSBEV0FSRl9GUkFNRV9SRVRVUk5fQ09M VU1OKQogCSAgICB7CiAJICAgICAgaWYgKHNhdmVfbW9kZSA9PSBWT0lEbW9k ZSkKIAkJY29udGludWU7CkBAIC00MTUsOCArNDE5LDYgQEAgZGVmX2NmYV8x IChkd19jZmFfbG9jYXRpb24gKmxvY19wKQogICBpZiAoY2ZhX3N0b3JlLnJl ZyA9PSBsb2MucmVnICYmIGxvYy5pbmRpcmVjdCA9PSAwKQogICAgIGNmYV9z dG9yZS5vZmZzZXQgPSBsb2Mub2Zmc2V0OwogCi0gIGxvYy5yZWcgPSBEV0FS Rl9GUkFNRV9SRUdOVU0gKGxvYy5yZWcpOwotCiAgIC8qIElmIG5vdGhpbmcg Y2hhbmdlZCwgbm8gbmVlZCB0byBpc3N1ZSBhbnkgY2FsbCBmcmFtZSBpbnN0 cnVjdGlvbnMuICAqLwogICBpZiAoY2ZhX2VxdWFsX3AgKCZsb2MsICZvbGRf Y2ZhKSkKICAgICByZXR1cm47CkBAIC04MTAsMTAgKzgxMiwxMCBAQCBkd2Fy ZjJvdXRfYXJnc19zaXplIChIT1NUX1dJREVfSU5UIHNpemUpCiBzdGF0aWMg dm9pZAogZHdhcmYyb3V0X3N0YWNrX2FkanVzdCAoSE9TVF9XSURFX0lOVCBv ZmZzZXQpCiB7Ci0gIGlmIChjZmEucmVnID09IFNUQUNLX1BPSU5URVJfUkVH TlVNKQorICBpZiAoY2ZhLnJlZyA9PSBEV19TVEFDS19QT0lOVEVSX1JFR05V TSkKICAgICBjZmEub2Zmc2V0ICs9IG9mZnNldDsKIAotICBpZiAoY2ZhX3N0 b3JlLnJlZyA9PSBTVEFDS19QT0lOVEVSX1JFR05VTSkKKyAgaWYgKGNmYV9z dG9yZS5yZWcgPT0gRFdfU1RBQ0tfUE9JTlRFUl9SRUdOVU0pCiAgICAgY2Zh X3N0b3JlLm9mZnNldCArPSBvZmZzZXQ7CiAKICAgaWYgKEFDQ1VNVUxBVEVf T1VUR09JTkdfQVJHUykKQEAgLTg1OSw3ICs4NjEsNyBAQCBkd2FyZjJvdXRf bm90aWNlX3N0YWNrX2FkanVzdCAocnR4IGluc24sIGJvb2wgYWZ0ZXJfcCkK IAogICAvKiBJZiBvbmx5IGNhbGxzIGNhbiB0aHJvdywgYW5kIHdlIGhhdmUg YSBmcmFtZSBwb2ludGVyLAogICAgICBzYXZlIHVwIGFkanVzdG1lbnRzIHVu dGlsIHdlIHNlZSB0aGUgQ0FMTF9JTlNOLiAgKi8KLSAgaWYgKCFmbGFnX2Fz eW5jaHJvbm91c191bndpbmRfdGFibGVzICYmIGNmYS5yZWcgIT0gU1RBQ0tf UE9JTlRFUl9SRUdOVU0pCisgIGlmICghZmxhZ19hc3luY2hyb25vdXNfdW53 aW5kX3RhYmxlcyAmJiBjZmEucmVnICE9IERXX1NUQUNLX1BPSU5URVJfUkVH TlVNKQogICAgIHsKICAgICAgIGlmIChDQUxMX1AgKGluc24pICYmICFhZnRl cl9wKQogCXsKQEAgLTk1Miw2ICs5NTQsMTYgQEAgc3RhdGljIEdUWSgoKSkg VkVDKHJlZ19zYXZlZF9pbl9kYXRhLCBnYykgKnJlZ3Nfc2F2ZWRfaW5fcmVn czsKIAogc3RhdGljIEdUWSgoKSkgcmVnX3NhdmVkX2luX2RhdGEgKmNpZV9y ZXR1cm5fc2F2ZTsKIAorLyogU2hvcnQtaGFuZCBpbmxpbmUgZm9yIHRoZSB2 ZXJ5IGNvbW1vbiBEX0ZfUiAoUkVHTk8gKHgpKSBvcGVyYXRpb24uICAqLwor LyogPz8/IFRoaXMgb3VnaHQgdG8gZ28gaW50byBkd2FyZjJvdXQuaCBhbG9u Z3NpZGUgZHdhcmZfZnJhbWVfcmVnbnVtLAorICAgZXhjZXB0IHRoYXQgZHdh cmYyb3V0LmggaXMgdXNlZCBpbiBwbGFjZXMgd2hlcmUgcnRsIGlzIHByb2hp Yml0ZWQuICAqLworCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkCitkd2ZfcmVn bm8gKGNvbnN0X3J0eCByZWcpCit7CisgIHJldHVybiBkd2FyZl9mcmFtZV9y ZWdudW0gKFJFR05PIChyZWcpKTsKK30KKwogLyogQ29tcGFyZSBYIGFuZCBZ IGZvciBlcXVpdmFsZW5jZS4gIFRoZSBpbnB1dHMgbWF5IGJlIFJFR3Mgb3Ig UENfUlRYLiAgKi8KIAogc3RhdGljIGJvb2wKQEAgLTEwMzEsOSArMTA0Myw5 IEBAIGR3YXJmMm91dF9mbHVzaF9xdWV1ZWRfcmVnX3NhdmVzICh2b2lkKQog ICAgICAgaWYgKHEtPnJlZyA9PSBwY19ydHgpCiAJcmVnID0gRFdBUkZfRlJB TUVfUkVUVVJOX0NPTFVNTjsKICAgICAgIGVsc2UKLSAgICAgICAgcmVnID0g RFdBUkZfRlJBTUVfUkVHTlVNIChSRUdOTyAocS0+cmVnKSk7CisgICAgICAg IHJlZyA9IGR3Zl9yZWdubyAocS0+cmVnKTsKICAgICAgIGlmIChxLT5zYXZl ZF9yZWcpCi0Jc3JlZyA9IERXQVJGX0ZSQU1FX1JFR05VTSAoUkVHTk8gKHEt PnNhdmVkX3JlZykpOworCXNyZWcgPSBkd2ZfcmVnbm8gKHEtPnNhdmVkX3Jl Zyk7CiAgICAgICBlbHNlCiAJc3JlZyA9IElOVkFMSURfUkVHTlVNOwogICAg ICAgcmVnX3NhdmUgKHJlZywgc3JlZywgcS0+Y2ZhX29mZnNldCk7CkBAIC0x MTA2LDEyICsxMTE4LDEyIEBAIGR3YXJmMm91dF9mcmFtZV9kZWJ1Z19kZWZf Y2ZhIChydHggcGF0KQogICBzd2l0Y2ggKEdFVF9DT0RFIChwYXQpKQogICAg IHsKICAgICBjYXNlIFBMVVM6Ci0gICAgICBjZmEucmVnID0gUkVHTk8gKFhF WFAgKHBhdCwgMCkpOworICAgICAgY2ZhLnJlZyA9IGR3Zl9yZWdubyAoWEVY UCAocGF0LCAwKSk7CiAgICAgICBjZmEub2Zmc2V0ID0gSU5UVkFMIChYRVhQ IChwYXQsIDEpKTsKICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBSRUc6Ci0g ICAgICBjZmEucmVnID0gUkVHTk8gKHBhdCk7CisgICAgICBjZmEucmVnID0g ZHdmX3JlZ25vIChwYXQpOwogICAgICAgYnJlYWs7CiAKICAgICBjYXNlIE1F TToKQEAgLTExMjIsNyArMTEzNCw3IEBAIGR3YXJmMm91dF9mcmFtZV9kZWJ1 Z19kZWZfY2ZhIChydHggcGF0KQogCSAgY2ZhLmJhc2Vfb2Zmc2V0ID0gSU5U VkFMIChYRVhQIChwYXQsIDEpKTsKIAkgIHBhdCA9IFhFWFAgKHBhdCwgMCk7 CiAJfQotICAgICAgY2ZhLnJlZyA9IFJFR05PIChwYXQpOworICAgICAgY2Zh LnJlZyA9IGR3Zl9yZWdubyAocGF0KTsKICAgICAgIGJyZWFrOwogCiAgICAg ZGVmYXVsdDoKQEAgLTExNDcsNyArMTE1OSw3IEBAIGR3YXJmMm91dF9mcmFt ZV9kZWJ1Z19hZGp1c3RfY2ZhIChydHggcGF0KQogICBzd2l0Y2ggKEdFVF9D T0RFIChzcmMpKQogICAgIHsKICAgICBjYXNlIFBMVVM6Ci0gICAgICBnY2Nf YXNzZXJ0IChSRUdOTyAoWEVYUCAoc3JjLCAwKSkgPT0gY2ZhLnJlZyk7Cisg ICAgICBnY2NfYXNzZXJ0IChkd2ZfcmVnbm8gKFhFWFAgKHNyYywgMCkpID09 IGNmYS5yZWcpOwogICAgICAgY2ZhLm9mZnNldCAtPSBJTlRWQUwgKFhFWFAg KHNyYywgMSkpOwogICAgICAgYnJlYWs7CiAKQEAgLTExNTgsNyArMTE3MCw3 IEBAIGR3YXJmMm91dF9mcmFtZV9kZWJ1Z19hZGp1c3RfY2ZhIChydHggcGF0 KQogCWdjY191bnJlYWNoYWJsZSAoKTsKICAgICB9CiAKLSAgY2ZhLnJlZyA9 IFJFR05PIChkZXN0KTsKKyAgY2ZhLnJlZyA9IGR3Zl9yZWdubyAoZGVzdCk7 CiAgIGdjY19hc3NlcnQgKGNmYS5pbmRpcmVjdCA9PSAwKTsKIAogICBkZWZf Y2ZhXzEgKCZjZmEpOwpAQCAtMTE4MiwxMSArMTE5NCwxMSBAQCBkd2FyZjJv dXRfZnJhbWVfZGVidWdfY2ZhX29mZnNldCAocnR4IHNldCkKICAgc3dpdGNo IChHRVRfQ09ERSAoYWRkcikpCiAgICAgewogICAgIGNhc2UgUkVHOgotICAg ICAgZ2NjX2Fzc2VydCAoUkVHTk8gKGFkZHIpID09IGNmYS5yZWcpOworICAg ICAgZ2NjX2Fzc2VydCAoZHdmX3JlZ25vIChhZGRyKSA9PSBjZmEucmVnKTsK ICAgICAgIG9mZnNldCA9IC1jZmEub2Zmc2V0OwogICAgICAgYnJlYWs7CiAg ICAgY2FzZSBQTFVTOgotICAgICAgZ2NjX2Fzc2VydCAoUkVHTk8gKFhFWFAg KGFkZHIsIDApKSA9PSBjZmEucmVnKTsKKyAgICAgIGdjY19hc3NlcnQgKGR3 Zl9yZWdubyAoWEVYUCAoYWRkciwgMCkpID09IGNmYS5yZWcpOwogICAgICAg b2Zmc2V0ID0gSU5UVkFMIChYRVhQIChhZGRyLCAxKSkgLSBjZmEub2Zmc2V0 OwogICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKQEAgLTEyMDEsNyArMTIx Myw3IEBAIGR3YXJmMm91dF9mcmFtZV9kZWJ1Z19jZmFfb2Zmc2V0IChydHgg c2V0KQogICBlbHNlIAogICAgIHsKICAgICAgIHNwYW4gPSB0YXJnZXRtLmR3 YXJmX3JlZ2lzdGVyX3NwYW4gKHNyYyk7Ci0gICAgICBzcmVnbm8gPSBEV0FS Rl9GUkFNRV9SRUdOVU0gKFJFR05PIChzcmMpKTsKKyAgICAgIHNyZWdubyA9 IGR3Zl9yZWdubyAoc3JjKTsKICAgICB9CiAKICAgLyogPz8/IFdlJ2QgbGlr ZSB0byB1c2UgcXVldWVfcmVnX3NhdmUsIGJ1dCB3ZSBuZWVkIHRvIGNvbWUg dXAgd2l0aApAQCAtMTIyMyw3ICsxMjM1LDcgQEAgZHdhcmYyb3V0X2ZyYW1l X2RlYnVnX2NmYV9vZmZzZXQgKHJ0eCBzZXQpCiAJewogCSAgcnR4IGVsZW0g PSBYVkVDRVhQIChzcGFuLCAwLCBwYXJfaW5kZXgpOwogCi0JICBzcmVnbm8g PSBEV0FSRl9GUkFNRV9SRUdOVU0gKFJFR05PIChzcmMpKTsKKwkgIHNyZWdu byA9IGR3Zl9yZWdubyAoc3JjKTsKIAkgIHJlZ19zYXZlIChzcmVnbm8sIElO VkFMSURfUkVHTlVNLCBzcGFuX29mZnNldCk7CiAJICBzcGFuX29mZnNldCAr PSBHRVRfTU9ERV9TSVpFIChHRVRfTU9ERSAoZWxlbSkpOwogCX0KQEAgLTEy NDUsOSArMTI1Nyw5IEBAIGR3YXJmMm91dF9mcmFtZV9kZWJ1Z19jZmFfcmVn aXN0ZXIgKHJ0eCBzZXQpCiAgIGlmIChzcmMgPT0gcGNfcnR4KQogICAgIHNy ZWdubyA9IERXQVJGX0ZSQU1FX1JFVFVSTl9DT0xVTU47CiAgIGVsc2UKLSAg ICBzcmVnbm8gPSBEV0FSRl9GUkFNRV9SRUdOVU0gKFJFR05PIChzcmMpKTsK KyAgICBzcmVnbm8gPSBkd2ZfcmVnbm8gKHNyYyk7CiAKLSAgZHJlZ25vID0g RFdBUkZfRlJBTUVfUkVHTlVNIChSRUdOTyAoZGVzdCkpOworICBkcmVnbm8g PSBkd2ZfcmVnbm8gKGRlc3QpOwogCiAgIC8qID8/PyBXZSdkIGxpa2UgdG8g dXNlIHF1ZXVlX3JlZ19zYXZlLCBidXQgd2UgbmVlZCB0byBjb21lIHVwIHdp dGgKICAgICAgYSBkaWZmZXJlbnQgZmx1c2hpbmcgaGV1cmlzdGljIGZvciBl cGlsb2d1ZXMuICAqLwpAQCAtMTI3Miw3ICsxMjg0LDcgQEAgZHdhcmYyb3V0 X2ZyYW1lX2RlYnVnX2NmYV9leHByZXNzaW9uIChydHggc2V0KQogICBnY2Nf YXNzZXJ0ICghc3Bhbik7CiAKICAgY2ZpLT5kd19jZmlfb3BjID0gRFdfQ0ZB X2V4cHJlc3Npb247Ci0gIGNmaS0+ZHdfY2ZpX29wcm5kMS5kd19jZmlfcmVn X251bSA9IERXQVJGX0ZSQU1FX1JFR05VTSAoUkVHTk8gKHNyYykpOworICBj ZmktPmR3X2NmaV9vcHJuZDEuZHdfY2ZpX3JlZ19udW0gPSBkd2ZfcmVnbm8g KHNyYyk7CiAgIGNmaS0+ZHdfY2ZpX29wcm5kMi5kd19jZmlfbG9jCiAgICAg PSBtZW1fbG9jX2Rlc2NyaXB0b3IgKFhFWFAgKGRlc3QsIDApLCBnZXRfYWRk cmVzc19tb2RlIChkZXN0KSwKIAkJCSAgR0VUX01PREUgKGRlc3QpLCBWQVJf SU5JVF9TVEFUVVNfSU5JVElBTElaRUQpOwpAQCAtMTI4OCw3ICsxMzAwLDcg QEAgc3RhdGljIHZvaWQKIGR3YXJmMm91dF9mcmFtZV9kZWJ1Z19jZmFfcmVz dG9yZSAocnR4IHJlZykKIHsKICAgZHdfY2ZpX3JlZiBjZmkgPSBuZXdfY2Zp ICgpOwotICB1bnNpZ25lZCBpbnQgcmVnbm8gPSBEV0FSRl9GUkFNRV9SRUdO VU0gKFJFR05PIChyZWcpKTsKKyAgdW5zaWduZWQgaW50IHJlZ25vID0gZHdm X3JlZ25vIChyZWcpOwogCiAgIGNmaS0+ZHdfY2ZpX29wYyA9IChyZWdubyAm IH4weDNmID8gRFdfQ0ZBX3Jlc3RvcmVfZXh0ZW5kZWQgOiBEV19DRkFfcmVz dG9yZSk7CiAgIGNmaS0+ZHdfY2ZpX29wcm5kMS5kd19jZmlfcmVnX251bSA9 IHJlZ25vOwpAQCAtMTU4MCw3ICsxNTkyLDcgQEAgZHdhcmYyb3V0X2ZyYW1l X2RlYnVnX2V4cHIgKHJ0eCBleHByKQogCXsKIAkgIC8qIFNldHRpbmcgRlAg ZnJvbSBTUC4gICovCiAJY2FzZSBSRUc6Ci0JICBpZiAoY2ZhLnJlZyA9PSAo dW5zaWduZWQpIFJFR05PIChzcmMpKQorCSAgaWYgKGNmYS5yZWcgPT0gZHdm X3JlZ25vIChzcmMpKQogCSAgICB7CiAJICAgICAgLyogUnVsZSAxICovCiAJ ICAgICAgLyogVXBkYXRlIHRoZSBDRkEgcnVsZSB3cnQgU1Agb3IgRlAuICBN YWtlIHN1cmUgc3JjIGlzCkBAIC0xNTkwLDcgKzE2MDIsNyBAQCBkd2FyZjJv dXRfZnJhbWVfZGVidWdfZXhwciAocnR4IGV4cHIpCiAJCSBBUk0gY29waWVz IFNQIHRvIGEgdGVtcG9yYXJ5IHJlZ2lzdGVyLCBhbmQgZnJvbSB0aGVyZSB0 bwogCQkgRlAuICBTbyB3ZSBqdXN0IHJlbHkgb24gdGhlIGJhY2tlbmRzIHRv IG9ubHkgc2V0CiAJCSBSVFhfRlJBTUVfUkVMQVRFRF9QIG9uIGFwcHJvcHJp YXRlIGluc25zLiAgKi8KLQkgICAgICBjZmEucmVnID0gUkVHTk8gKGRlc3Qp OworCSAgICAgIGNmYS5yZWcgPSBkd2ZfcmVnbm8gKGRlc3QpOwogCSAgICAg IGNmYV90ZW1wLnJlZyA9IGNmYS5yZWc7CiAJICAgICAgY2ZhX3RlbXAub2Zm c2V0ID0gY2ZhLm9mZnNldDsKIAkgICAgfQpAQCAtMTU5OSw4ICsxNjExLDcg QEAgZHdhcmYyb3V0X2ZyYW1lX2RlYnVnX2V4cHIgKHJ0eCBleHByKQogCSAg ICAgIC8qIFNhdmluZyBhIHJlZ2lzdGVyIGluIGEgcmVnaXN0ZXIuICAqLwog CSAgICAgIGdjY19hc3NlcnQgKCFmaXhlZF9yZWdzIFtSRUdOTyAoZGVzdCld CiAJCQkgIC8qIEZvciB0aGUgU1BBUkMgYW5kIGl0cyByZWdpc3RlciB3aW5k b3cuICAqLwotCQkJICB8fCAoRFdBUkZfRlJBTUVfUkVHTlVNIChSRUdOTyAo c3JjKSkKLQkJCSAgICAgID09IERXQVJGX0ZSQU1FX1JFVFVSTl9DT0xVTU4p KTsKKwkJCSAgfHwgKGR3Zl9yZWdubyAoc3JjKSA9PSBEV0FSRl9GUkFNRV9S RVRVUk5fQ09MVU1OKSk7CiAKICAgICAgICAgICAgICAgLyogQWZ0ZXIgc3Rh Y2sgaXMgYWxpZ25lZCwgd2UgY2FuIG9ubHkgc2F2ZSBTUCBpbiBGUAogCQkg aWYgZHJhcCByZWdpc3RlciBpcyB1c2VkLiAgSW4gdGhpcyBjYXNlLCB3ZSBo YXZlCkBAIC0xNjExLDcgKzE2MjIsNyBAQCBkd2FyZjJvdXRfZnJhbWVfZGVi dWdfZXhwciAocnR4IGV4cHIpCiAJCSAgJiYgUkVHTk8gKHNyYykgPT0gU1RB Q0tfUE9JTlRFUl9SRUdOVU0pCiAJCWdjY19hc3NlcnQgKFJFR05PIChkZXN0 KSA9PSBIQVJEX0ZSQU1FX1BPSU5URVJfUkVHTlVNCiAJCQkgICAgJiYgZmRl LT5kcmFwX3JlZyAhPSBJTlZBTElEX1JFR05VTQotCQkJICAgICYmIGNmYS5y ZWcgIT0gUkVHTk8gKHNyYykpOworCQkJICAgICYmIGNmYS5yZWcgIT0gZHdm X3JlZ25vIChzcmMpKTsKIAkgICAgICBlbHNlCiAJCXF1ZXVlX3JlZ19zYXZl IChzcmMsIGRlc3QsIDApOwogCSAgICB9CkBAIC0xNjMwLDggKzE2NDEsNyBA QCBkd2FyZjJvdXRfZnJhbWVfZGVidWdfZXhwciAocnR4IGV4cHIpCiAJCSAg b2Zmc2V0ID0gSU5UVkFMIChYRVhQIChzcmMsIDEpKTsKIAkJICBicmVhazsK IAkJY2FzZSBSRUc6Ci0JCSAgZ2NjX2Fzc2VydCAoKHVuc2lnbmVkKSBSRUdO TyAoWEVYUCAoc3JjLCAxKSkKLQkJCSAgICAgID09IGNmYV90ZW1wLnJlZyk7 CisJCSAgZ2NjX2Fzc2VydCAoZHdmX3JlZ25vIChYRVhQIChzcmMsIDEpKSA9 PSBjZmFfdGVtcC5yZWcpOwogCQkgIG9mZnNldCA9IGNmYV90ZW1wLm9mZnNl dDsKIAkJICBicmVhazsKIAkJZGVmYXVsdDoKQEAgLTE2NDEsOCArMTY1MSw4 IEBAIGR3YXJmMm91dF9mcmFtZV9kZWJ1Z19leHByIChydHggZXhwcikKIAkg ICAgICBpZiAoWEVYUCAoc3JjLCAwKSA9PSBoYXJkX2ZyYW1lX3BvaW50ZXJf cnR4KQogCQl7CiAJCSAgLyogUmVzdG9yaW5nIFNQIGZyb20gRlAgaW4gdGhl IGVwaWxvZ3VlLiAgKi8KLQkJICBnY2NfYXNzZXJ0IChjZmEucmVnID09ICh1 bnNpZ25lZCkgSEFSRF9GUkFNRV9QT0lOVEVSX1JFR05VTSk7Ci0JCSAgY2Zh LnJlZyA9IFNUQUNLX1BPSU5URVJfUkVHTlVNOworCQkgIGdjY19hc3NlcnQg KGNmYS5yZWcgPT0gRFdfRlJBTUVfUE9JTlRFUl9SRUdOVU0pOworCQkgIGNm YS5yZWcgPSBEV19TVEFDS19QT0lOVEVSX1JFR05VTTsKIAkJfQogCSAgICAg IGVsc2UgaWYgKEdFVF9DT0RFIChzcmMpID09IExPX1NVTSkKIAkJLyogQXNz dW1lIHdlJ3ZlIHNldCB0aGUgc291cmNlIHJlZyBvZiB0aGUgTE9fU1VNIGZy b20gc3AuICAqLwpAQCAtMTY1Miw5ICsxNjYyLDkgQEAgZHdhcmYyb3V0X2Zy YW1lX2RlYnVnX2V4cHIgKHJ0eCBleHByKQogCiAJICAgICAgaWYgKEdFVF9D T0RFIChzcmMpICE9IE1JTlVTKQogCQlvZmZzZXQgPSAtb2Zmc2V0OwotCSAg ICAgIGlmIChjZmEucmVnID09IFNUQUNLX1BPSU5URVJfUkVHTlVNKQorCSAg ICAgIGlmIChjZmEucmVnID09IERXX1NUQUNLX1BPSU5URVJfUkVHTlVNKQog CQljZmEub2Zmc2V0ICs9IG9mZnNldDsKLQkgICAgICBpZiAoY2ZhX3N0b3Jl LnJlZyA9PSBTVEFDS19QT0lOVEVSX1JFR05VTSkKKwkgICAgICBpZiAoY2Zh X3N0b3JlLnJlZyA9PSBEV19TVEFDS19QT0lOVEVSX1JFR05VTSkKIAkJY2Zh X3N0b3JlLm9mZnNldCArPSBvZmZzZXQ7CiAJICAgIH0KIAkgIGVsc2UgaWYg KGRlc3QgPT0gaGFyZF9mcmFtZV9wb2ludGVyX3J0eCkKQEAgLTE2NjUsMTMg KzE2NzUsMTMgQEAgZHdhcmYyb3V0X2ZyYW1lX2RlYnVnX2V4cHIgKHJ0eCBl eHByKQogCSAgICAgIGdjY19hc3NlcnQgKGZyYW1lX3BvaW50ZXJfbmVlZGVk KTsKIAogCSAgICAgIGdjY19hc3NlcnQgKFJFR19QIChYRVhQIChzcmMsIDAp KQotCQkJICAmJiAodW5zaWduZWQpIFJFR05PIChYRVhQIChzcmMsIDApKSA9 PSBjZmEucmVnCisJCQkgICYmIGR3Zl9yZWdubyAoWEVYUCAoc3JjLCAwKSkg PT0gY2ZhLnJlZwogCQkJICAmJiBDT05TVF9JTlRfUCAoWEVYUCAoc3JjLCAx KSkpOwogCSAgICAgIG9mZnNldCA9IElOVFZBTCAoWEVYUCAoc3JjLCAxKSk7 CiAJICAgICAgaWYgKEdFVF9DT0RFIChzcmMpICE9IE1JTlVTKQogCQlvZmZz ZXQgPSAtb2Zmc2V0OwogCSAgICAgIGNmYS5vZmZzZXQgKz0gb2Zmc2V0Owot CSAgICAgIGNmYS5yZWcgPSBIQVJEX0ZSQU1FX1BPSU5URVJfUkVHTlVNOwor CSAgICAgIGNmYS5yZWcgPSBEV19GUkFNRV9QT0lOVEVSX1JFR05VTTsKIAkg ICAgfQogCSAgZWxzZQogCSAgICB7CkBAIC0xNjc5LDE0ICsxNjg5LDE0IEBA IGR3YXJmMm91dF9mcmFtZV9kZWJ1Z19leHByIChydHggZXhwcikKIAogCSAg ICAgIC8qIFJ1bGUgNCAqLwogCSAgICAgIGlmIChSRUdfUCAoWEVYUCAoc3Jj LCAwKSkKLQkJICAmJiBSRUdOTyAoWEVYUCAoc3JjLCAwKSkgPT0gY2ZhLnJl ZworCQkgICYmIGR3Zl9yZWdubyAoWEVYUCAoc3JjLCAwKSkgPT0gY2ZhLnJl ZwogCQkgICYmIENPTlNUX0lOVF9QIChYRVhQIChzcmMsIDEpKSkKIAkJewog CQkgIC8qIFNldHRpbmcgYSB0ZW1wb3JhcnkgQ0ZBIHJlZ2lzdGVyIHRoYXQg d2lsbCBiZSBjb3BpZWQKIAkJICAgICBpbnRvIHRoZSBGUCBsYXRlciBvbi4g ICovCiAJCSAgb2Zmc2V0ID0gLSBJTlRWQUwgKFhFWFAgKHNyYywgMSkpOwog CQkgIGNmYS5vZmZzZXQgKz0gb2Zmc2V0OwotCQkgIGNmYS5yZWcgPSBSRUdO TyAoZGVzdCk7CisJCSAgY2ZhLnJlZyA9IGR3Zl9yZWdubyAoZGVzdCk7CiAJ CSAgLyogT3IgdXNlZCB0byBzYXZlIHJlZ3MgdG8gdGhlIHN0YWNrLiAgKi8K IAkJICBjZmFfdGVtcC5yZWcgPSBjZmEucmVnOwogCQkgIGNmYV90ZW1wLm9m ZnNldCA9IGNmYS5vZmZzZXQ7CkBAIC0xNjk0LDEzICsxNzA0LDEzIEBAIGR3 YXJmMm91dF9mcmFtZV9kZWJ1Z19leHByIChydHggZXhwcikKIAogCSAgICAg IC8qIFJ1bGUgNSAqLwogCSAgICAgIGVsc2UgaWYgKFJFR19QIChYRVhQIChz cmMsIDApKQotCQkgICAgICAgJiYgUkVHTk8gKFhFWFAgKHNyYywgMCkpID09 IGNmYV90ZW1wLnJlZworCQkgICAgICAgJiYgZHdmX3JlZ25vIChYRVhQIChz cmMsIDApKSA9PSBjZmFfdGVtcC5yZWcKIAkJICAgICAgICYmIFhFWFAgKHNy YywgMSkgPT0gc3RhY2tfcG9pbnRlcl9ydHgpCiAJCXsKIAkJICAvKiBTZXR0 aW5nIGEgc2NyYXRjaCByZWdpc3RlciB0aGF0IHdlIHdpbGwgdXNlIGluc3Rl YWQKIAkJICAgICBvZiBTUCBmb3Igc2F2aW5nIHJlZ2lzdGVycyB0byB0aGUg c3RhY2suICAqLwotCQkgIGdjY19hc3NlcnQgKGNmYS5yZWcgPT0gU1RBQ0tf UE9JTlRFUl9SRUdOVU0pOwotCQkgIGNmYV9zdG9yZS5yZWcgPSBSRUdOTyAo ZGVzdCk7CisJCSAgZ2NjX2Fzc2VydCAoY2ZhLnJlZyA9PSBEV19TVEFDS19Q T0lOVEVSX1JFR05VTSk7CisJCSAgY2ZhX3N0b3JlLnJlZyA9IGR3Zl9yZWdu byAoZGVzdCk7CiAJCSAgY2ZhX3N0b3JlLm9mZnNldCA9IGNmYS5vZmZzZXQg LSBjZmFfdGVtcC5vZmZzZXQ7CiAJCX0KIApAQCAtMTcwOCw3ICsxNzE4LDcg QEAgZHdhcmYyb3V0X2ZyYW1lX2RlYnVnX2V4cHIgKHJ0eCBleHByKQogCSAg ICAgIGVsc2UgaWYgKEdFVF9DT0RFIChzcmMpID09IExPX1NVTQogCQkgICAg ICAgJiYgQ09OU1RfSU5UX1AgKFhFWFAgKHNyYywgMSkpKQogCQl7Ci0JCSAg Y2ZhX3RlbXAucmVnID0gUkVHTk8gKGRlc3QpOworCQkgIGNmYV90ZW1wLnJl ZyA9IGR3Zl9yZWdubyAoZGVzdCk7CiAJCSAgY2ZhX3RlbXAub2Zmc2V0ID0g SU5UVkFMIChYRVhQIChzcmMsIDEpKTsKIAkJfQogCSAgICAgIGVsc2UKQEAg LTE3MTgsMTggKzE3MjgsMTcgQEAgZHdhcmYyb3V0X2ZyYW1lX2RlYnVnX2V4 cHIgKHJ0eCBleHByKQogCiAJICAvKiBSdWxlIDYgKi8KIAljYXNlIENPTlNU X0lOVDoKLQkgIGNmYV90ZW1wLnJlZyA9IFJFR05PIChkZXN0KTsKKwkgIGNm YV90ZW1wLnJlZyA9IGR3Zl9yZWdubyAoZGVzdCk7CiAJICBjZmFfdGVtcC5v ZmZzZXQgPSBJTlRWQUwgKHNyYyk7CiAJICBicmVhazsKIAogCSAgLyogUnVs ZSA3ICovCiAJY2FzZSBJT1I6CiAJICBnY2NfYXNzZXJ0IChSRUdfUCAoWEVY UCAoc3JjLCAwKSkKLQkJICAgICAgJiYgKHVuc2lnbmVkKSBSRUdOTyAoWEVY UCAoc3JjLCAwKSkgPT0gY2ZhX3RlbXAucmVnCisJCSAgICAgICYmIGR3Zl9y ZWdubyAoWEVYUCAoc3JjLCAwKSkgPT0gY2ZhX3RlbXAucmVnCiAJCSAgICAg ICYmIENPTlNUX0lOVF9QIChYRVhQIChzcmMsIDEpKSk7CiAKLQkgIGlmICgo dW5zaWduZWQpIFJFR05PIChkZXN0KSAhPSBjZmFfdGVtcC5yZWcpCi0JICAg IGNmYV90ZW1wLnJlZyA9IFJFR05PIChkZXN0KTsKKwkgIGNmYV90ZW1wLnJl ZyA9IGR3Zl9yZWdubyAoZGVzdCk7CiAJICBjZmFfdGVtcC5vZmZzZXQgfD0g SU5UVkFMIChYRVhQIChzcmMsIDEpKTsKIAkgIGJyZWFrOwogCkBAIC0xNzU3 LDEzICsxNzY2LDEzIEBAIGR3YXJmMm91dF9mcmFtZV9kZWJ1Z19leHByIChy dHggZXhwcikKIAkJIFRodXMgd2UgbXVzdCBmbHVzaCB3aGF0ZXZlciB3ZSBo YXZlIHF1ZXVlZCBmaXJzdC4gICovCiAJICAgICAgZHdhcmYyb3V0X2ZsdXNo X3F1ZXVlZF9yZWdfc2F2ZXMgKCk7CiAKLSAgICAgICAgICAgICAgZ2NjX2Fz c2VydCAoY2ZhX3N0b3JlLnJlZyA9PSBSRUdOTyAoWEVYUCAoc3JjLCAwKSkp OworICAgICAgICAgICAgICBnY2NfYXNzZXJ0IChjZmFfc3RvcmUucmVnID09 IGR3Zl9yZWdubyAoWEVYUCAoc3JjLCAwKSkpOwogICAgICAgICAgICAgICBm ZGUtPnN0YWNrX3JlYWxpZ24gPSAxOwogICAgICAgICAgICAgICBmZGUtPnN0 YWNrX3JlYWxpZ25tZW50ID0gSU5UVkFMIChYRVhQIChzcmMsIDEpKTsKICAg ICAgICAgICAgICAgY2ZhX3N0b3JlLm9mZnNldCA9IDA7CiAKLQkgICAgICBp ZiAoY2ZhLnJlZyAhPSBTVEFDS19QT0lOVEVSX1JFR05VTQotCQkgICYmIGNm YS5yZWcgIT0gSEFSRF9GUkFNRV9QT0lOVEVSX1JFR05VTSkKKwkgICAgICBp ZiAoY2ZhLnJlZyAhPSBEV19TVEFDS19QT0lOVEVSX1JFR05VTQorCQkgICYm IGNmYS5yZWcgIT0gRFdfRlJBTUVfUE9JTlRFUl9SRUdOVU0pCiAJCWZkZS0+ ZHJhcF9yZWcgPSBjZmEucmVnOwogICAgICAgICAgICAgfQogICAgICAgICAg IHJldHVybjsKQEAgLTE3OTEsMTAgKzE4MDAsMTAgQEAgZHdhcmYyb3V0X2Zy YW1lX2RlYnVnX2V4cHIgKHJ0eCBleHByKQogCSAgb2Zmc2V0ID0gLUlOVFZB TCAoWEVYUCAoWEVYUCAoWEVYUCAoZGVzdCwgMCksIDEpLCAxKSk7CiAKIAkg IGdjY19hc3NlcnQgKFJFR05PIChYRVhQIChYRVhQIChkZXN0LCAwKSwgMCkp ID09IFNUQUNLX1BPSU5URVJfUkVHTlVNCi0JCSAgICAgICYmIGNmYV9zdG9y ZS5yZWcgPT0gU1RBQ0tfUE9JTlRFUl9SRUdOVU0pOworCQkgICAgICAmJiBj ZmFfc3RvcmUucmVnID09IERXX1NUQUNLX1BPSU5URVJfUkVHTlVNKTsKIAog CSAgY2ZhX3N0b3JlLm9mZnNldCArPSBvZmZzZXQ7Ci0JICBpZiAoY2ZhLnJl ZyA9PSBTVEFDS19QT0lOVEVSX1JFR05VTSkKKwkgIGlmIChjZmEucmVnID09 IERXX1NUQUNLX1BPSU5URVJfUkVHTlVNKQogCSAgICBjZmEub2Zmc2V0ID0g Y2ZhX3N0b3JlLm9mZnNldDsKIAogCSAgaWYgKEdFVF9DT0RFIChYRVhQIChk ZXN0LCAwKSkgPT0gUE9TVF9NT0RJRlkpCkBAIC0xODEzLDcgKzE4MjIsNyBA QCBkd2FyZjJvdXRfZnJhbWVfZGVidWdfZXhwciAocnR4IGV4cHIpCiAKIAkg IGdjY19hc3NlcnQgKChSRUdOTyAoWEVYUCAoWEVYUCAoZGVzdCwgMCksIDAp KQogCQkgICAgICAgPT0gU1RBQ0tfUE9JTlRFUl9SRUdOVU0pCi0JCSAgICAg ICYmIGNmYV9zdG9yZS5yZWcgPT0gU1RBQ0tfUE9JTlRFUl9SRUdOVU0pOwor CQkgICAgICAmJiBjZmFfc3RvcmUucmVnID09IERXX1NUQUNLX1BPSU5URVJf UkVHTlVNKTsKIAogCSAgY2ZhX3N0b3JlLm9mZnNldCArPSBvZmZzZXQ7CiAK QEAgLTE4MjQsMTEgKzE4MzMsMTEgQEAgZHdhcmYyb3V0X2ZyYW1lX2RlYnVn X2V4cHIgKHJ0eCBleHByKQogICAgICAgICAgICAgICAmJiBmZGUtPnN0YWNr X3JlYWxpZ24KICAgICAgICAgICAgICAgJiYgc3JjID09IGhhcmRfZnJhbWVf cG9pbnRlcl9ydHgpCiAJICAgIHsKLQkgICAgICBnY2NfYXNzZXJ0IChjZmEu cmVnICE9IEhBUkRfRlJBTUVfUE9JTlRFUl9SRUdOVU0pOworCSAgICAgIGdj Y19hc3NlcnQgKGNmYS5yZWcgIT0gRFdfRlJBTUVfUE9JTlRFUl9SRUdOVU0p OwogCSAgICAgIGNmYV9zdG9yZS5vZmZzZXQgPSAwOwogCSAgICB9CiAKLQkg IGlmIChjZmEucmVnID09IFNUQUNLX1BPSU5URVJfUkVHTlVNKQorCSAgaWYg KGNmYS5yZWcgPT0gRFdfU1RBQ0tfUE9JTlRFUl9SRUdOVU0pCiAJICAgIGNm YS5vZmZzZXQgPSBjZmFfc3RvcmUub2Zmc2V0OwogCiAJICBpZiAoR0VUX0NP REUgKFhFWFAgKGRlc3QsIDApKSA9PSBQT1NUX0RFQykKQEAgLTE4NDMsNyAr MTg1Miw3IEBAIGR3YXJmMm91dF9mcmFtZV9kZWJ1Z19leHByIChydHggZXhw cikKIAljYXNlIE1JTlVTOgogCWNhc2UgTE9fU1VNOgogCSAgewotCSAgICBp bnQgcmVnbm87CisJICAgIHVuc2lnbmVkIGludCByZWdubzsKIAogCSAgICBn Y2NfYXNzZXJ0IChDT05TVF9JTlRfUCAoWEVYUCAoWEVYUCAoZGVzdCwgMCks IDEpKQogCQkJJiYgUkVHX1AgKFhFWFAgKFhFWFAgKGRlc3QsIDApLCAwKSkp OwpAQCAtMTg1MSwxNSArMTg2MCwxNSBAQCBkd2FyZjJvdXRfZnJhbWVfZGVi dWdfZXhwciAocnR4IGV4cHIpCiAJICAgIGlmIChHRVRfQ09ERSAoWEVYUCAo ZGVzdCwgMCkpID09IE1JTlVTKQogCSAgICAgIG9mZnNldCA9IC1vZmZzZXQ7 CiAKLQkgICAgcmVnbm8gPSBSRUdOTyAoWEVYUCAoWEVYUCAoZGVzdCwgMCks IDApKTsKKwkgICAgcmVnbm8gPSBkd2ZfcmVnbm8gKFhFWFAgKFhFWFAgKGRl c3QsIDApLCAwKSk7CiAKLQkgICAgaWYgKGNmYS5yZWcgPT0gKHVuc2lnbmVk KSByZWdubykKKwkgICAgaWYgKGNmYS5yZWcgPT0gcmVnbm8pCiAJICAgICAg b2Zmc2V0IC09IGNmYS5vZmZzZXQ7Ci0JICAgIGVsc2UgaWYgKGNmYV9zdG9y ZS5yZWcgPT0gKHVuc2lnbmVkKSByZWdubykKKwkgICAgZWxzZSBpZiAoY2Zh X3N0b3JlLnJlZyA9PSByZWdubykKIAkgICAgICBvZmZzZXQgLT0gY2ZhX3N0 b3JlLm9mZnNldDsKIAkgICAgZWxzZQogCSAgICAgIHsKLQkJZ2NjX2Fzc2Vy dCAoY2ZhX3RlbXAucmVnID09ICh1bnNpZ25lZCkgcmVnbm8pOworCQlnY2Nf YXNzZXJ0IChjZmFfdGVtcC5yZWcgPT0gcmVnbm8pOwogCQlvZmZzZXQgLT0g Y2ZhX3RlbXAub2Zmc2V0OwogCSAgICAgIH0KIAkgIH0KQEAgLTE4NjksMTUg KzE4NzgsMTUgQEAgZHdhcmYyb3V0X2ZyYW1lX2RlYnVnX2V4cHIgKHJ0eCBl eHByKQogCSAgLyogV2l0aG91dCBhbiBvZmZzZXQuICAqLwogCWNhc2UgUkVH OgogCSAgewotCSAgICBpbnQgcmVnbm8gPSBSRUdOTyAoWEVYUCAoZGVzdCwg MCkpOworCSAgICB1bnNpZ25lZCBpbnQgcmVnbm8gPSBkd2ZfcmVnbm8gKFhF WFAgKGRlc3QsIDApKTsKIAotCSAgICBpZiAoY2ZhLnJlZyA9PSAodW5zaWdu ZWQpIHJlZ25vKQorCSAgICBpZiAoY2ZhLnJlZyA9PSByZWdubykKIAkgICAg ICBvZmZzZXQgPSAtY2ZhLm9mZnNldDsKLQkgICAgZWxzZSBpZiAoY2ZhX3N0 b3JlLnJlZyA9PSAodW5zaWduZWQpIHJlZ25vKQorCSAgICBlbHNlIGlmIChj ZmFfc3RvcmUucmVnID09IHJlZ25vKQogCSAgICAgIG9mZnNldCA9IC1jZmFf c3RvcmUub2Zmc2V0OwogCSAgICBlbHNlCiAJICAgICAgewotCQlnY2NfYXNz ZXJ0IChjZmFfdGVtcC5yZWcgPT0gKHVuc2lnbmVkKSByZWdubyk7CisJCWdj Y19hc3NlcnQgKGNmYV90ZW1wLnJlZyA9PSByZWdubyk7CiAJCW9mZnNldCA9 IC1jZmFfdGVtcC5vZmZzZXQ7CiAJICAgICAgfQogCSAgfQpAQCAtMTg4NSw4 ICsxODk0LDcgQEAgZHdhcmYyb3V0X2ZyYW1lX2RlYnVnX2V4cHIgKHJ0eCBl eHByKQogCiAJICAvKiBSdWxlIDE0ICovCiAJY2FzZSBQT1NUX0lOQzoKLQkg IGdjY19hc3NlcnQgKGNmYV90ZW1wLnJlZwotCQkgICAgICA9PSAodW5zaWdu ZWQpIFJFR05PIChYRVhQIChYRVhQIChkZXN0LCAwKSwgMCkpKTsKKwkgIGdj Y19hc3NlcnQgKGNmYV90ZW1wLnJlZyA9PSBkd2ZfcmVnbm8gKFhFWFAgKFhF WFAgKGRlc3QsIDApLCAwKSkpOwogCSAgb2Zmc2V0ID0gLWNmYV90ZW1wLm9m ZnNldDsKIAkgIGNmYV90ZW1wLm9mZnNldCAtPSBHRVRfTU9ERV9TSVpFIChH RVRfTU9ERSAoZGVzdCkpOwogCSAgYnJlYWs7CkBAIC0xOTA0LDcgKzE5MTIs NyBAQCBkd2FyZjJvdXRfZnJhbWVfZGVidWdfZXhwciAocnR4IGV4cHIpCiAg ICAgICBpZiAoUkVHX1AgKHNyYykKIAkgICYmIFJFR05PIChzcmMpICE9IFNU QUNLX1BPSU5URVJfUkVHTlVNCiAJICAmJiBSRUdOTyAoc3JjKSAhPSBIQVJE X0ZSQU1FX1BPSU5URVJfUkVHTlVNCi0JICAmJiAodW5zaWduZWQpIFJFR05P IChzcmMpID09IGNmYS5yZWcpCisJICAmJiBkd2ZfcmVnbm8gKHNyYykgPT0g Y2ZhLnJlZykKIAl7CiAJICAvKiBXZSdyZSBzdG9yaW5nIHRoZSBjdXJyZW50 IENGQSByZWcgaW50byB0aGUgc3RhY2suICAqLwogCkBAIC0xOTE5LDE0ICsx OTI3LDE0IEBAIGR3YXJmMm91dF9mcmFtZV9kZWJ1Z19leHByIChydHggZXhw cikKICAgICAgICAgICAgICAgaWYgKGZkZQogICAgICAgICAgICAgICAgICAg JiYgZmRlLT5zdGFja19yZWFsaWduCiAgICAgICAgICAgICAgICAgICAmJiBj ZmEuaW5kaXJlY3QgPT0gMAotICAgICAgICAgICAgICAgICAgJiYgY2ZhLnJl ZyAhPSBIQVJEX0ZSQU1FX1BPSU5URVJfUkVHTlVNKQorICAgICAgICAgICAg ICAgICAgJiYgY2ZhLnJlZyAhPSBEV19GUkFNRV9QT0lOVEVSX1JFR05VTSkK ICAgICAgICAgICAgICAgICB7CiAJCSAgZHdfY2ZhX2xvY2F0aW9uIGNmYV9l eHA7CiAKIAkJICBnY2NfYXNzZXJ0IChmZGUtPmRyYXBfcmVnID09IGNmYS5y ZWcpOwogCiAJCSAgY2ZhX2V4cC5pbmRpcmVjdCA9IDE7Ci0JCSAgY2ZhX2V4 cC5yZWcgPSBIQVJEX0ZSQU1FX1BPSU5URVJfUkVHTlVNOworCQkgIGNmYV9l eHAucmVnID0gRFdfRlJBTUVfUE9JTlRFUl9SRUdOVU07CiAJCSAgY2ZhX2V4 cC5iYXNlX29mZnNldCA9IG9mZnNldDsKIAkJICBjZmFfZXhwLm9mZnNldCA9 IDA7CiAKQEAgLTE5NTMsNyArMTk2MSw3IEBAIGR3YXJmMm91dF9mcmFtZV9k ZWJ1Z19leHByIChydHggZXhwcikKIAkJeCA9IFhFWFAgKHgsIDApOwogCSAg ICAgIGdjY19hc3NlcnQgKFJFR19QICh4KSk7CiAKLQkgICAgICBjZmEucmVn ID0gUkVHTk8gKHgpOworCSAgICAgIGNmYS5yZWcgPSBkd2ZfcmVnbm8gKHgp OwogCSAgICAgIGNmYS5iYXNlX29mZnNldCA9IG9mZnNldDsKIAkgICAgICBj ZmEuaW5kaXJlY3QgPSAxOwogCSAgICAgIGRlZl9jZmFfMSAoJmNmYSk7CkBA IC0yMDk2LDcgKzIxMDQsNyBAQCBkd2FyZjJvdXRfZnJhbWVfZGVidWcgKHJ0 eCBpbnNuLCBib29sIGFmdGVyX3ApCiAJICAgICAgewogCQlnY2NfYXNzZXJ0 IChmZGUtPnZkcmFwX3JlZyA9PSBJTlZBTElEX1JFR05VTSk7CiAJCWlmIChS RUdfUCAobikpCi0JCSAgZmRlLT52ZHJhcF9yZWcgPSBSRUdOTyAobik7CisJ CSAgZmRlLT52ZHJhcF9yZWcgPSBkd2ZfcmVnbm8gKG4pOwogCSAgICAgIH0K IAkgIH0KIAloYW5kbGVkX29uZSA9IHRydWU7CkBAIC0yNDE4LDcgKzI0MjYs NyBAQCBpbml0aWFsX3JldHVybl9zYXZlIChydHggcnRsKQogICAgIHsKICAg ICBjYXNlIFJFRzoKICAgICAgIC8qIFJBIGlzIGluIGEgcmVnaXN0ZXIuICAq LwotICAgICAgcmVnID0gRFdBUkZfRlJBTUVfUkVHTlVNIChSRUdOTyAocnRs KSk7CisgICAgICByZWcgPSBkd2ZfcmVnbm8gKHJ0bCk7CiAgICAgICBicmVh azsKIAogICAgIGNhc2UgTUVNOgpAQCAtMjQ4Niw3ICsyNDk0LDcgQEAgZXhl Y3V0ZV9kd2FyZjJfZnJhbWUgKHZvaWQpCiAKICAgICAgIC8qIE9uIGVudHJ5 LCB0aGUgQ2Fub25pY2FsIEZyYW1lIEFkZHJlc3MgaXMgYXQgU1AuICAqLwog ICAgICAgbWVtc2V0KCZsb2MsIDAsIHNpemVvZiAobG9jKSk7Ci0gICAgICBs b2MucmVnID0gU1RBQ0tfUE9JTlRFUl9SRUdOVU07CisgICAgICBsb2MucmVn ID0gRFdfU1RBQ0tfUE9JTlRFUl9SRUdOVU07CiAgICAgICBsb2Mub2Zmc2V0 ID0gSU5DT01JTkdfRlJBTUVfU1BfT0ZGU0VUOwogICAgICAgZGVmX2NmYV8x ICgmbG9jKTsKIApAQCAtMjUyNiw3ICsyNTM0LDcgQEAgZXhlY3V0ZV9kd2Fy ZjJfZnJhbWUgKHZvaWQpCiAgIGdjY19jaGVja2luZ19hc3NlcnQgKHJlZ3Nf c2F2ZWRfaW5fcmVncyA9PSBOVUxMKTsKIAogICBtZW1zZXQgKCZjZmEsIDAs IHNpemVvZihjZmEpKTsKLSAgY2ZhLnJlZyA9IFNUQUNLX1BPSU5URVJfUkVH TlVNOworICBjZmEucmVnID0gRFdfU1RBQ0tfUE9JTlRFUl9SRUdOVU07CiAg IGNmYS5vZmZzZXQgPSBJTkNPTUlOR19GUkFNRV9TUF9PRkZTRVQ7CiAKICAg b2xkX2NmYSA9IGNmYTsKZGlmZiAtLWdpdCBhL2djYy9kd2FyZjJvdXQuYyBi L2djYy9kd2FyZjJvdXQuYwppbmRleCBmOWExZTcwLi44MzVlNGVjIDEwMDY0 NAotLS0gYS9nY2MvZHdhcmYyb3V0LmMKKysrIGIvZ2NjL2R3YXJmMm91dC5j CkBAIC0xMDQwOCw4ICsxMDQwOCw4IEBAIGJhc2VkX2xvY19kZXNjciAocnR4 IHJlZywgSE9TVF9XSURFX0lOVCBvZmZzZXQsCiAgICAgfQogICBlbHNlIGlm ICghb3B0aW1pemUKIAkgICAmJiBmZGUKLQkgICAmJiAoZmRlLT5kcmFwX3Jl ZyA9PSBSRUdOTyAocmVnKQotCSAgICAgICB8fCBmZGUtPnZkcmFwX3JlZyA9 PSBSRUdOTyAocmVnKSkpCisJICAgJiYgKGZkZS0+ZHJhcF9yZWcgPT0gZHdh cmZfZnJhbWVfcmVnbnVtIChSRUdOTyAocmVnKSkKKwkgICAgICAgfHwgZmRl LT52ZHJhcF9yZWcgPT0gZHdhcmZfZnJhbWVfcmVnbnVtIChSRUdOTyAocmVn KSkpKQogICAgIHsKICAgICAgIC8qIFVzZSBjZmErb2Zmc2V0IHRvIHJlcHJl c2VudCB0aGUgbG9jYXRpb24gb2YgYXJndW1lbnRzIHBhc3NlZAogCSBvbiB0 aGUgc3RhY2sgd2hlbiBkcmFwIGlzIHVzZWQgdG8gYWxpZ24gc3RhY2suCmRp ZmYgLS1naXQgYS9nY2MvZHdhcmYyb3V0LmggYi9nY2MvZHdhcmYyb3V0LmgK aW5kZXggZDQxNDUzYi4uOTEyYTEwMCAxMDA2NDQKLS0tIGEvZ2NjL2R3YXJm Mm91dC5oCisrKyBiL2djYy9kd2FyZjJvdXQuaApAQCAtMTIxLDYgKzEyMSw3 IEBAIGR3X2ZkZV9ub2RlOwogdHlwZWRlZiBzdHJ1Y3QgY2ZhX2xvYyB7CiAg IEhPU1RfV0lERV9JTlQgb2Zmc2V0OwogICBIT1NUX1dJREVfSU5UIGJhc2Vf b2Zmc2V0OworICAvKiBSRUcgaXMgaW4gRFdBUkZfRlJBTUVfUkVHTlVNIHNw YWNlLCAqbm90KiBub3JtYWwgUkVHTk8gc3BhY2UuICAqLwogICB1bnNpZ25l ZCBpbnQgcmVnOwogICBCT09MX0JJVEZJRUxEIGluZGlyZWN0IDogMTsgIC8q IDEgaWYgQ0ZBIGlzIGFjY2Vzc2VkIHZpYSBhIGRlcmVmZXJlbmNlLiAgKi8K ICAgQk9PTF9CSVRGSUVMRCBpbl91c2UgOiAxOyAgICAvKiAxIGlmIGEgc2F2 ZWQgY2ZhIGlzIHN0b3JlZCBoZXJlLiAgKi8KQEAgLTI2MSw2ICsyNjIsMTUg QEAgZXh0ZXJuIHZvaWQgZHdhcmYyb3V0X3NldF9kZW1hbmdsZV9uYW1lX2Z1 bmMgKGNvbnN0IGNoYXIgKigqKSAoY29uc3QgY2hhciAqKSk7CiBleHRlcm4g dm9pZCBkd2FyZjJvdXRfdm1zX2RlYnVnX21haW5fcG9pbnRlciAodm9pZCk7 CiAjZW5kaWYKIAorLyogVW5mb3J0dW5hdGVseSwgRFdBUkZfRlJBTUVfUkVH TlVNIGlzIG5vdCB1bml2ZXJzYWxseSBkZWZpbmVkIGluIHN1Y2ggYQorICAg d2F5IGFzIHRvIGZvcmNlIGFuIHVuc2lnbmVkIHJldHVybiB0eXBlLiAgRG8g dGhhdCB2aWEgaW5saW5lIHdyYXBwZXIuICAqLworCitzdGF0aWMgaW5saW5l IHVuc2lnbmVkCitkd2FyZl9mcmFtZV9yZWdudW0gKHVuc2lnbmVkIHJlZ251 bSkKK3sKKyAgcmV0dXJuIERXQVJGX0ZSQU1FX1JFR05VTSAocmVnbnVtKTsK K30KKyAgCiBzdHJ1Y3QgYXJyYXlfZGVzY3JfaW5mbwogewogICBpbnQgbmRp bWVuc2lvbnM7Cg== --------------060407030700050908060009--