From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28134 invoked by alias); 20 Feb 2012 10:26:00 -0000 Received: (qmail 28073 invoked by uid 22791); 20 Feb 2012 10:25:58 -0000 X-SWARE-Spam-Status: No, hits=-2.8 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,TW_BJ X-Spam-Check-By: sourceware.org Received: from smtp2-v.fe.bosch.de (HELO smtp2-v.fe.bosch.de) (139.15.237.6) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 20 Feb 2012 10:25:31 +0000 Received: from vsmta12.fe.internet.bosch.com (unknown [10.4.98.30]) by imta23.fe.bosch.de (Postfix) with ESMTP id 454975820839 for ; Mon, 20 Feb 2012 11:25:29 +0100 (CET) Received: from localhost (vsgw1.fe.internet.bosch.com [10.4.98.15]) by vsmta12.fe.internet.bosch.com (Postfix) with SMTP id 2FF5A1210913 for ; Mon, 20 Feb 2012 11:25:29 +0100 (CET) Received: from SI-MBX09.de.bosch.com ([10.3.153.45]) by si-hub07.de.bosch.com ([10.3.153.132]) with mapi; Mon, 20 Feb 2012 11:25:20 +0100 From: "Leutwein Tobias (BEG-PT/ESB1)" To: "gdb-patches@sourceware.org" Date: Mon, 20 Feb 2012 12:26:00 -0000 Subject: AW: [RFC, patch] ptype bitfields show bitpos and bitsize Message-ID: <1606F039DD6642449BF6D1519D43AF621619BB4553@SI-MBX09.de.bosch.com> References: <1606F039DD6642449BF6D1519D43AF6216198E7EA6@SI-MBX09.de.bosch.com> <20120125112233.GA18042@host2.jankratochvil.net> Content-Type: multipart/mixed; boundary="_002_1606F039DD6642449BF6D1519D43AF621619BB4553SIMBX09debosc_" MIME-Version: 1.0 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2012-02/txt/msg00399.txt.bz2 --_002_1606F039DD6642449BF6D1519D43AF621619BB4553SIMBX09debosc_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 4363 I have reworked the patch for showing the bitpos and bitsize of bitfields t= hrough the ptype command. Now I didn't see any test cases, which passed before, failing. Also there are some test cases regarding the new behavior of the ptype comm= and added. I haven't run the test suit on a big endian target, so probably the test ca= ses will fail on big endian targets. I have tried to change the parameter "type" to "value" at the ..._print_type functions, but I haven't got it to work. So the ..._print_type_through_value functions are still needed. Tobias * ada-lang.c: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. ada_print_type_through_value added. * ada-lang.h: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. ada_print_type_through_value added. * ada-typeprint.c: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. ada_print_type_through_valuem added. * c-lang.c: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. c_print_type_through_value added. * c-lang.h: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. c_print_type_through_value added. * c-typeprint.c: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. c_print_type_common(), c_type_print_base_common(), c_print_type_through_value() and c_type_print_base_through_value() added. * d-lang.c: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. c_print_type_through_value() added. * f-lang.c: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. f_print_type_through_value() added. * f-typeprint.c: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. f_print_type_through_value() added. * jv-lang.c: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. java_print_type_through_value () added. * jv-lang.h: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. java_print_type_through_value() added. * jv-typeprint.c: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. java_print_type_through_value() added. * language.c: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. unk_lang_print_type_through_value() added. * language.h: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. LA_PRINT_TYPE_THROUGH_VALUE, la_print_type_through_value added. * m2-lang.c: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. m2_print_type_through_value() added. * m2-lang.h: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. m2_print_type_through_value() added. * m2-typeprint.c: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. m2_print_type_through_value() added. * objc-lang.c: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. At objc_language_defn c_print_type_through_value added. * opencl-lang.c: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. At opencl_language_defn c_print_type_through_value added. * p-lang.c: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. pascal_print_type_through_value() added. * p-lang.h: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. pascal_print_type_through_value() added. * p-typeprint.c: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. pascal_print_type_through_value() added. * testsuite/gdb.base/bitfields2.exp: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. Test cases for bitfield position und size added. * testsuite/gdb.base/bitfields.exp: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. Test cases for bitfield position und size added. * typeprint.c: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. type_print_through_value() added. * value.h: Extension of ptype command for showing the bitpos and bitsize of bitfield variables. type_print_through_value() added. --_002_1606F039DD6642449BF6D1519D43AF621619BB4553SIMBX09debosc_ Content-Type: application/octet-stream; name="gdbPtype.diff" Content-Description: gdbPtype.diff Content-Disposition: attachment; filename="gdbPtype.diff"; size=28758; creation-date="Wed, 15 Feb 2012 13:24:17 GMT"; modification-date="Wed, 15 Feb 2012 13:24:17 GMT" Content-Transfer-Encoding: base64 Content-length: 38984 ZGlmZiAtdXIgNy40X29yaWcvZ2RiL2FkYS1sYW5nLmMgNy40X3B0eXBlTWl4 ZWQvZ2RiL2FkYS1sYW5nLmMKLS0tIDcuNF9vcmlnL2dkYi9hZGEtbGFuZy5j CTIwMTItMDEtMDYgMDQ6MzQ6NDUuMDAwMDAwMDAwICswMTAwCisrKyA3LjRf cHR5cGVNaXhlZC9nZGIvYWRhLWxhbmcuYwkyMDEyLTAxLTI1IDIyOjE2OjUz LjAwMDAwMDAwMCArMDEwMApAQCAtMTIzMzcsNiArMTIzMzcsNyBAQAogICBh ZGFfcHJpbnRzdHIsICAgICAgICAgICAgICAgICAvKiBGdW5jdGlvbiB0byBw cmludCBzdHJpbmcgY29uc3RhbnQgKi8KICAgZW1pdF9jaGFyLCAgICAgICAg ICAgICAgICAgICAgLyogRnVuY3Rpb24gdG8gcHJpbnQgc2luZ2xlIGNoYXIg KG5vdCB1c2VkKSAqLwogICBhZGFfcHJpbnRfdHlwZSwgICAgICAgICAgICAg ICAvKiBQcmludCBhIHR5cGUgdXNpbmcgYXBwcm9wcmlhdGUgc3ludGF4ICov CisgIGFkYV9wcmludF90eXBlX3Rocm91Z2hfdmFsdWUsIC8qIFByaW50IGEg dHlwZSB1c2luZyBhcHByb3ByaWF0ZSBzeW50YXggKi8KICAgYWRhX3ByaW50 X3R5cGVkZWYsICAgICAgICAgICAgLyogUHJpbnQgYSB0eXBlZGVmIHVzaW5n IGFwcHJvcHJpYXRlIHN5bnRheCAqLwogICBhZGFfdmFsX3ByaW50LCAgICAg ICAgICAgICAgICAvKiBQcmludCBhIHZhbHVlIHVzaW5nIGFwcHJvcHJpYXRl IHN5bnRheCAqLwogICBhZGFfdmFsdWVfcHJpbnQsICAgICAgICAgICAgICAv KiBQcmludCBhIHRvcC1sZXZlbCB2YWx1ZSAqLwpkaWZmIC11ciA3LjRfb3Jp Zy9nZGIvYWRhLWxhbmcuaCA3LjRfcHR5cGVNaXhlZC9nZGIvYWRhLWxhbmcu aAotLS0gNy40X29yaWcvZ2RiL2FkYS1sYW5nLmgJMjAxMi0wMS0wNCAwOTox Njo1NS4wMDAwMDAwMDAgKzAxMDAKKysrIDcuNF9wdHlwZU1peGVkL2dkYi9h ZGEtbGFuZy5oCTIwMTItMDEtMjUgMjI6MTY6NTMuMDAwMDAwMDAwICswMTAw CkBAIC0xNjAsNiArMTYwLDggQEAKICAgICAgICAgICAgICAgICAgICAgICAg IC8qIERlZmluZWQgaW4gYWRhLXR5cGVwcmludC5jICovCiBleHRlcm4gdm9p ZCBhZGFfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKiwgY29uc3QgY2hhciAq LCBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50KTsKK2V4dGVybiB2b2lkIGFkYV9wcmludF90eXBlX3Ro cm91Z2hfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqLCBjb25zdCBjaGFyICosIHN0 cnVjdCB1aV9maWxlICosIGludCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQpOwogCiBleHRlcm4gdm9pZCBhZGFfcHJpbnRfdHlwZWRlZiAo c3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBzeW1ib2wgKm5ld19zeW1ib2ws CiAJCQkgICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7CmRpZmYgLXVy IDcuNF9vcmlnL2dkYi9hZGEtdHlwZXByaW50LmMgNy40X3B0eXBlTWl4ZWQv Z2RiL2FkYS10eXBlcHJpbnQuYwotLS0gNy40X29yaWcvZ2RiL2FkYS10eXBl cHJpbnQuYwkyMDEyLTAxLTA0IDA5OjE2OjU1LjAwMDAwMDAwMCArMDEwMAor KysgNy40X3B0eXBlTWl4ZWQvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDEyLTAx LTI1IDIyOjE2OjUzLjAwMDAwMDAwMCArMDEwMApAQCAtODcxLDMgKzg3MSwy NSBAQAogICBhZGFfcHJpbnRfdHlwZSAodHlwZSwgIiIsIHN0cmVhbSwgMCwg MCk7CiAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIlxuIik7CiB9CisK KworLyogUHJpbnQgYSBkZXNjcmlwdGlvbiBvZiBhIHZhbHVlIHZhbHVlX3Au CisgICBPdXRwdXQgZ29lcyB0byBTVFJFQU0gKHZpYSBzdGRpbykuCisgICBJ ZiBWQVJTVFJJTkcgaXMgYSBub24tZW1wdHkgc3RyaW5nLCBwcmludCBhcyBh biBBZGEgdmFyaWFibGUvZmllbGQKKyAgICAgICBkZWNsYXJhdGlvbi4KKyAg IFNIT1crMSBpcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgbGV2ZWxzIG9mIGlu dGVybmFsIHR5cGUgc3RydWN0dXJlCisgICAgICB0byBzaG93ICh0aGlzIGFw cGxpZXMgdG8gcmVjb3JkIHR5cGVzLCBlbnVtZXJhdGVkIHR5cGVzLCBhbmQK KyAgICAgIGFycmF5IHR5cGVzKS4KKyAgIFNIT1cgaXMgdGhlIG51bWJlciBv ZiBsZXZlbHMgb2YgaW50ZXJuYWwgdHlwZSBzdHJ1Y3R1cmUgdG8gc2hvdwor ICAgICAgd2hlbiB0aGVyZSBpcyBhIHR5cGUgbmFtZSBmb3IgdGhlIFNIT1d0 aCBkZWVwZXN0IGxldmVsICgwdGggaXMKKyAgICAgIG91dGVyIGxldmVsKS4K KyAgIFdoZW4gU0hPVzwwLCBubyBpbm5lciBzdHJ1Y3R1cmUgaXMgc2hvd24u CisgICBMRVZFTCBpbmRpY2F0ZXMgbGV2ZWwgb2YgcmVjdXJzaW9uIChmb3Ig bmVzdGVkIGRlZmluaXRpb25zKS4gICovCisKK3ZvaWQKK2FkYV9wcmludF90 eXBlX3Rocm91Z2hfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsdWVfcCwgY29u c3QgY2hhciAqdmFyc3RyaW5nLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAor CQlpbnQgc2hvdywgaW50IGxldmVsKQoreworCXN0cnVjdCB0eXBlICp0eXBl X3AgPSB2YWx1ZV90eXBlKHZhbHVlX3ApOworCWFkYV9wcmludF90eXBlKHR5 cGVfcCwgdmFyc3RyaW5nLCBzdHJlYW0sIHNob3csIGxldmVsKTsKK30KZGlm ZiAtdXIgNy40X29yaWcvZ2RiL2MtbGFuZy5jIDcuNF9wdHlwZU1peGVkL2dk Yi9jLWxhbmcuYwotLS0gNy40X29yaWcvZ2RiL2MtbGFuZy5jCTIwMTItMDEt MDQgMDk6MTY6NTkuMDAwMDAwMDAwICswMTAwCisrKyA3LjRfcHR5cGVNaXhl ZC9nZGIvYy1sYW5nLmMJMjAxMi0wMS0yNSAyMjoxNjo1My4wMDAwMDAwMDAg KzAxMDAKQEAgLTg0NCw2ICs4NDQsNyBAQAogICBjX3ByaW50c3RyLAkJCS8q IEZ1bmN0aW9uIHRvIHByaW50IHN0cmluZyBjb25zdGFudCAqLwogICBjX2Vt aXRfY2hhciwJCQkvKiBQcmludCBhIHNpbmdsZSBjaGFyICovCiAgIGNfcHJp bnRfdHlwZSwJCQkvKiBQcmludCBhIHR5cGUgdXNpbmcgYXBwcm9wcmlhdGUg c3ludGF4ICovCisgIGNfcHJpbnRfdHlwZV90aHJvdWdoX3ZhbHVlLAkJCS8q IFByaW50IGEgdHlwZSB1c2luZyBhcHByb3ByaWF0ZSBzeW50YXggKi8KICAg Y19wcmludF90eXBlZGVmLAkJLyogUHJpbnQgYSB0eXBlZGVmIHVzaW5nIGFw cHJvcHJpYXRlIHN5bnRheCAqLwogICBjX3ZhbF9wcmludCwJCQkvKiBQcmlu dCBhIHZhbHVlIHVzaW5nIGFwcHJvcHJpYXRlIHN5bnRheCAqLwogICBjX3Zh bHVlX3ByaW50LAkJLyogUHJpbnQgYSB0b3AtbGV2ZWwgdmFsdWUgKi8KQEAg LTk2Nyw2ICs5NjgsNyBAQAogICBjX3ByaW50c3RyLAkJCS8qIEZ1bmN0aW9u IHRvIHByaW50IHN0cmluZyBjb25zdGFudCAqLwogICBjX2VtaXRfY2hhciwJ CQkvKiBQcmludCBhIHNpbmdsZSBjaGFyICovCiAgIGNfcHJpbnRfdHlwZSwJ CQkvKiBQcmludCBhIHR5cGUgdXNpbmcgYXBwcm9wcmlhdGUgc3ludGF4ICov CisgIGNfcHJpbnRfdHlwZV90aHJvdWdoX3ZhbHVlLAkJCS8qIFByaW50IGEg dHlwZSB1c2luZyBhcHByb3ByaWF0ZSBzeW50YXggKi8KICAgY19wcmludF90 eXBlZGVmLAkJLyogUHJpbnQgYSB0eXBlZGVmIHVzaW5nIGFwcHJvcHJpYXRl IHN5bnRheCAqLwogICBjX3ZhbF9wcmludCwJCQkvKiBQcmludCBhIHZhbHVl IHVzaW5nIGFwcHJvcHJpYXRlIHN5bnRheCAqLwogICBjX3ZhbHVlX3ByaW50 LAkJLyogUHJpbnQgYSB0b3AtbGV2ZWwgdmFsdWUgKi8KQEAgLTEwMDgsNiAr MTAxMCw3IEBACiAgIGNfcHJpbnRzdHIsCQkJLyogRnVuY3Rpb24gdG8gcHJp bnQgc3RyaW5nIGNvbnN0YW50ICovCiAgIGNfZW1pdF9jaGFyLAkJCS8qIFBy aW50IGEgc2luZ2xlIGNoYXIgKi8KICAgY19wcmludF90eXBlLAkJCS8qIFBy aW50IGEgdHlwZSB1c2luZyBhcHByb3ByaWF0ZSBzeW50YXggKi8KKyAgY19w cmludF90eXBlX3Rocm91Z2hfdmFsdWUsCQkJLyogUHJpbnQgYSB0eXBlIHVz aW5nIGFwcHJvcHJpYXRlIHN5bnRheCAqLwogICBjX3ByaW50X3R5cGVkZWYs CQkvKiBQcmludCBhIHR5cGVkZWYgdXNpbmcgYXBwcm9wcmlhdGUgc3ludGF4 ICovCiAgIGNfdmFsX3ByaW50LAkJCS8qIFByaW50IGEgdmFsdWUgdXNpbmcg YXBwcm9wcmlhdGUgc3ludGF4ICovCiAgIGNfdmFsdWVfcHJpbnQsCQkvKiBQ cmludCBhIHRvcC1sZXZlbCB2YWx1ZSAqLwpAQCAtMTA1NCw2ICsxMDU3LDcg QEAKICAgY19wcmludHN0ciwJCQkvKiBGdW5jdGlvbiB0byBwcmludCBzdHJp bmcgY29uc3RhbnQgKi8KICAgY19lbWl0X2NoYXIsCQkJLyogUHJpbnQgYSBz aW5nbGUgY2hhciAqLwogICBjX3ByaW50X3R5cGUsCQkJLyogUHJpbnQgYSB0 eXBlIHVzaW5nIGFwcHJvcHJpYXRlIHN5bnRheCAqLworICBjX3ByaW50X3R5 cGVfdGhyb3VnaF92YWx1ZSwJCQkvKiBQcmludCBhIHR5cGUgdXNpbmcgYXBw cm9wcmlhdGUgc3ludGF4ICovCiAgIGNfcHJpbnRfdHlwZWRlZiwJCS8qIFBy aW50IGEgdHlwZWRlZiB1c2luZyBhcHByb3ByaWF0ZSBzeW50YXggKi8KICAg Y192YWxfcHJpbnQsCQkJLyogUHJpbnQgYSB2YWx1ZSB1c2luZyBhcHByb3By aWF0ZSBzeW50YXggKi8KICAgY192YWx1ZV9wcmludCwJCS8qIFByaW50IGEg dG9wLWxldmVsIHZhbHVlICovCmRpZmYgLXVyIDcuNF9vcmlnL2dkYi9jLWxh bmcuaCA3LjRfcHR5cGVNaXhlZC9nZGIvYy1sYW5nLmgKLS0tIDcuNF9vcmln L2dkYi9jLWxhbmcuaAkyMDEyLTAxLTA0IDA5OjE3OjAwLjAwMDAwMDAwMCAr MDEwMAorKysgNy40X3B0eXBlTWl4ZWQvZ2RiL2MtbGFuZy5oCTIwMTItMDEt MjUgMjI6MTY6NTMuMDAwMDAwMDAwICswMTAwCkBAIC02Niw2ICs2Niw4IEBA CiAvKiBEZWZpbmVkIGluIGMtdHlwZXByaW50LmMgKi8KIGV4dGVybiB2b2lk IGNfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKiwgY29uc3QgY2hhciAqLAog CQkJICBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsIGludCk7CitleHRlcm4gdm9p ZCBjX3ByaW50X3R5cGVfdGhyb3VnaF92YWx1ZSAoc3RydWN0IHZhbHVlICos IAorICAgICAgICAgICAgICBjb25zdCBjaGFyICosIHN0cnVjdCB1aV9maWxl ICosIGludCwgaW50KTsKIAogZXh0ZXJuIHZvaWQgY19wcmludF90eXBlZGVm IChzdHJ1Y3QgdHlwZSAqLAogCQkJICAgICBzdHJ1Y3Qgc3ltYm9sICosCkBA IC0xMTEsNiArMTEzLDggQEAKIAogZXh0ZXJuIHZvaWQgY190eXBlX3ByaW50 X2Jhc2UgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB1aV9maWxlICosCiAJCQkg ICAgICAgaW50LCBpbnQpOworZXh0ZXJuIHZvaWQgY190eXBlX3ByaW50X2Jh c2VfdGhyb3VnaF92YWx1ZSAoc3RydWN0IHZhbHVlICosIAorCQkJc3RydWN0 IHVpX2ZpbGUgKiwgaW50LCBpbnQpOwogCiAvKiBUaGVzZSBhcmUgaW4gY3At dmFscHJpbnQuYyAqLwogCmRpZmYgLXVyIDcuNF9vcmlnL2dkYi9jLXR5cGVw cmludC5jIDcuNF9wdHlwZU1peGVkL2dkYi9jLXR5cGVwcmludC5jCi0tLSA3 LjRfb3JpZy9nZGIvYy10eXBlcHJpbnQuYwkyMDEyLTAxLTA0IDA5OjE3OjAw LjAwMDAwMDAwMCArMDEwMAorKysgNy40X3B0eXBlTWl4ZWQvZ2RiL2MtdHlw ZXByaW50LmMJMjAxMi0wMi0xMyAyMDowODowMS4wMDAwMDAwMDAgKzAxMDAK QEAgLTM1LDIzICszNSw1MiBAQAogI2luY2x1ZGUgImdkYl9zdHJpbmcuaCIK ICNpbmNsdWRlIDxlcnJuby5oPgogCitzdGF0aWMgdm9pZCBjX3ByaW50X3R5 cGVfY29tbW9uKCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCAKKwkJCQkJc3RydWN0 IHR5cGUgKnR5cGUsIAorCQkJCQljb25zdCBjaGFyICp2YXJzdHJpbmcsIAor CQkJCQlzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAkKKwkJCQkJaW50IHNob3cs IGludCBsZXZlbCApOworCQkJCQkKIHN0YXRpYyB2b2lkIGNfdHlwZV9wcmlu dF92YXJzcGVjX3ByZWZpeCAoc3RydWN0IHR5cGUgKiwKIAkJCQkJIHN0cnVj dCB1aV9maWxlICosCiAJCQkJCSBpbnQsIGludCwgaW50KTsKIAorLyogUHJp bnQgdGhlIG5hbWUgb2YgdGhlIHR5cGUgKi8KK3N0YXRpYyB2b2lkIGNfdHlw ZV9wcmludF9iYXNlX2NvbW1vbiAoc3RydWN0IHZhbHVlICp2YWx1ZSwgc3Ry dWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBz aG93LAorCQkgICBpbnQgbGV2ZWwpOworCiAvKiBQcmludCAiY29uc3QiLCAi dm9sYXRpbGUiLCBvciBhZGRyZXNzIHNwYWNlIG1vZGlmaWVycy4gICovCiBz dGF0aWMgdm9pZCBjX3R5cGVfcHJpbnRfbW9kaWZpZXIgKHN0cnVjdCB0eXBl ICosCiAJCQkJICAgc3RydWN0IHVpX2ZpbGUgKiwKIAkJCQkgICBpbnQsIGlu dCk7Ci0MCi0vKiBMRVZFTCBpcyB0aGUgZGVwdGggdG8gaW5kZW50IGxpbmVz IGJ5LiAgKi8KIAorCQkJCSAgIAorCisvKiAgIFxwYXJhbVtpbl0JbGV2ZWwJ IFRoZSBkZXB0aCB0byBpbmRlbnQgbGluZXMgYnkuICovCiB2b2lkCiBjX3By aW50X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLAogCSAgICAgIGNvbnN0IGNo YXIgKnZhcnN0cmluZywKIAkgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LAogCSAgICAgIGludCBzaG93LCBpbnQgbGV2ZWwpCiB7CisJY19wcmludF90 eXBlX2NvbW1vbigwLCB0eXBlLCB2YXJzdHJpbmcsIHN0cmVhbSwgc2hvdywg bGV2ZWwpOworfQorCisKKy8qICAgIAorICAgXHBhcmFtW2luXQl2YWx1ZQlQ b2ludGVyIHRvIHRoZSB2YWx1ZSBvYmplY3QuIFxiIDAsIGlmIHRoZSB2YWx1 ZSBvYmplY3QgaXMgdW5rbm93bi4KKyAgIAorICAgXHBhcmFtW2luXQl0eXBl CVBvaW50ZXIgdG8gdGhlIHR5cGUgb2JqZWN0LiBJZiB2YWx1ZSBvYmplY3Qg aXMga25vdyBpdCBjYW4gYmUgZGV0ZXJtaW5lZCB0aHJvdWdoOiB2YWx1ZV90 eXBlICh2YWx1ZSkKKworICAgXHBhcmFtW2luXQlsZXZlbAkgVGhlIGRlcHRo IHRvIGluZGVudCBsaW5lcyBieS4gIAorKi8KK3N0YXRpYyB2b2lkCitjX3By aW50X3R5cGVfY29tbW9uKCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCAKKwkJCQlz dHJ1Y3QgdHlwZSAqdHlwZSwgCisJCQkJY29uc3QgY2hhciAqdmFyc3RyaW5n LCAKKwkJCQlzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorCQkJCWludCBzaG93 LCBpbnQgbGV2ZWwgKQorewogICBlbnVtIHR5cGVfY29kZSBjb2RlOwogICBp bnQgZGVtYW5nbGVkX2FyZ3M7CiAgIGludCBuZWVkX3Bvc3Rfc3BhY2U7CkBA IC01OSw3ICs4OCw3IEBACiAgIGlmIChzaG93ID4gMCkKICAgICBDSEVDS19U WVBFREVGICh0eXBlKTsKIAotICBjX3R5cGVfcHJpbnRfYmFzZSAodHlwZSwg c3RyZWFtLCBzaG93LCBsZXZlbCk7CisgIGNfdHlwZV9wcmludF9iYXNlX2Nv bW1vbiAodmFsdWUsIHR5cGUsIHN0cmVhbSwgc2hvdywgbGV2ZWwpOwogICBj b2RlID0gVFlQRV9DT0RFICh0eXBlKTsKICAgaWYgKCh2YXJzdHJpbmcgIT0g TlVMTCAmJiAqdmFyc3RyaW5nICE9ICdcMCcpCiAgIC8qIE5lZWQgYSBzcGFj ZSBpZiBnb2luZyB0byBwcmludCBzdGFycyBvciBicmFja2V0czsKQEAgLTg4 LDYgKzExNywxNyBAQAogICAgIH0KIH0KIAorCisvKiAgICBccGFyYW1baW5d CWxldmVsCSBUaGUgZGVwdGggdG8gaW5kZW50IGxpbmVzIGJ5LiAgCisqLwor dm9pZAorY19wcmludF90eXBlX3Rocm91Z2hfdmFsdWUgKHN0cnVjdCB2YWx1 ZSAqdmFsdWUsIGNvbnN0IGNoYXIgKnZhcnN0cmluZywgc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwKKwkgICAgICBpbnQgc2hvdywgaW50IGxldmVsKQorewor CWNfcHJpbnRfdHlwZV9jb21tb24odmFsdWUsIHZhbHVlX3R5cGUodmFsdWUp LCB2YXJzdHJpbmcsIHN0cmVhbSwgc2hvdywgbGV2ZWwpOworfQorCisKIC8q IFByaW50IGEgdHlwZWRlZiB1c2luZyBDIHN5bnRheC4gIFRZUEUgaXMgdGhl IHVuZGVybHlpbmcgdHlwZS4KICAgIE5FV19TWU1CT0wgaXMgdGhlIHN5bWJv bCBuYW1pbmcgdGhlIHR5cGUuICBTVFJFQU0gaXMgdGhlIHN0cmVhbSBvbgog ICAgd2hpY2ggdG8gcHJpbnQuICAqLwpAQCAtNzE1LDYgKzc1NSw0MiBAQAog Y190eXBlX3ByaW50X2Jhc2UgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3Qg dWlfZmlsZSAqc3RyZWFtLAogCQkgICBpbnQgc2hvdywgaW50IGxldmVsKQog eworCWNfdHlwZV9wcmludF9iYXNlX2NvbW1vbigwLCB0eXBlLCBzdHJlYW0s IHNob3csIGxldmVsKTsKK30KKworCisvKiBQcmludCB0aGUgbmFtZSBvZiB0 aGUgdHlwZSAob3IgdGhlIHVsdGltYXRlIHBvaW50ZXIgdGFyZ2V0LAorICAg ZnVuY3Rpb24gdmFsdWUgb3IgYXJyYXkgZWxlbWVudCksIG9yIHRoZSBkZXNj cmlwdGlvbiBvZiBhIHN0cnVjdHVyZQorICAgb3IgdW5pb24uCisKKyAgIFNI T1cgcG9zaXRpdmUgbWVhbnMgcHJpbnQgZGV0YWlscyBhYm91dCB0aGUgdHlw ZSAoZS5nLiBlbnVtCisgICB2YWx1ZXMpLCBhbmQgcHJpbnQgc3RydWN0dXJl IGVsZW1lbnRzIHBhc3NpbmcgU0hPVyAtIDEgZm9yIHNob3cuCisKKyAgIFNI T1cgbmVnYXRpdmUgbWVhbnMganVzdCBwcmludCB0aGUgdHlwZSBuYW1lIG9y IHN0cnVjdCB0YWcgaWYgdGhlcmUKKyAgIGlzIG9uZS4gIElmIHRoZXJlIGlz IG5vIG5hbWUsIHByaW50IHNvbWV0aGluZyBzZW5zaWJsZSBidXQgY29uY2lz ZQorICAgbGlrZSAic3RydWN0IHsuLi59Ii4KKworICAgU0hPVyB6ZXJvIG1l YW5zIGp1c3QgcHJpbnQgdGhlIHR5cGUgbmFtZSBvciBzdHJ1Y3QgdGFnIGlm IHRoZXJlIGlzCisgICBvbmUuICBJZiB0aGVyZSBpcyBubyBuYW1lLCBwcmlu dCBzb21ldGhpbmcgc2Vuc2libGUgYnV0IG5vdCBhcworICAgY29uY2lzZSBs aWtlICJzdHJ1Y3Qge2ludCB4OyBpbnQgeTt9Ii4KKworICAgTEVWRUwgaXMg dGhlIG51bWJlciBvZiBzcGFjZXMgdG8gaW5kZW50IGJ5LgorICAgV2UgaW5j cmVhc2UgaXQgZm9yIHNvbWUgcmVjdXJzaXZlIGNhbGxzLiAgCisgICAKKyAg IFxwYXJhbVtpbl0JdmFsdWUJUG9pbnRlciB0byB0aGUgdmFsdWUgb2JqZWN0 LiBcYiAwLCBpZiB0aGUgdmFsdWUgb2JqZWN0IGlzIHVua25vd24uCisgICAK KyAgIFxwYXJhbVtpbl0JdHlwZQlQb2ludGVyIHRvIHRoZSB0eXBlIG9iamVj dC4gSWYgdmFsdWUgb2JqZWN0IGlzIGtub3cgaXQgY2FuIGJlIGRldGVybWlu ZWQgdGhyb3VnaDogdmFsdWVfdHlwZSAodmFsdWUpCisKKyAgIFxyZW1hcmtz IExpa2UgY190eXBlX3ByaW50X2Jhc2UgYnV0IGlmIGl0IGlzIGEgYml0Zmll bGQgdmFyaWFibGUsIHRoZSAKKyAgIHBvc2l0aW9uIGFuZCBzaXplIHdpbGwg YmUgc2hvd24gaWYgaXMgbm90IGVxdWFsIHRvIDAuCisqLworc3RhdGljIHZv aWQKK2NfdHlwZV9wcmludF9iYXNlX2NvbW1vbiAoc3RydWN0IHZhbHVlICp2 YWx1ZSwgCisJCQkJc3RydWN0IHR5cGUgKnR5cGUsIAorCQkJCXN0cnVjdCB1 aV9maWxlICpzdHJlYW0sIAorCQkJCWludCBzaG93LAorCQkJCWludCBsZXZl bCApCit7CiAgIGludCBpOwogICBpbnQgbGVuLCByZWFsX2xlbjsKICAgaW50 IGxhc3R2YWw7CkBAIC0xMjQ3LDYgKzEzMjMsMjQgQEAKIAl7CiAJICBjX3R5 cGVfcHJpbnRfbW9kaWZpZXIgKHR5cGUsIHN0cmVhbSwgMCwgMSk7CiAJICBm cHV0c19maWx0ZXJlZCAoVFlQRV9OQU1FICh0eXBlKSwgc3RyZWFtKTsKKwkg IAorCSAgaWYgKCB2YWx1ZSAhPSAwICkKKwkgIHsJLyogRnVuY3Rpb24gaXMg Y2FsbGVkIHdpdGggdmFsdWUgcG9pbnRlci4gKi8KKwkJICB7CS8qIHNob3cg dGhlIGJpdCBwb3NpdGlvbiBvZiB0aGlzIHZhbHVlLCBpZiBpdCBpcyBub3Qg ZXF1YWwgdG8gMCAqLworCQkgICAgaW50IGJpdHBvc19pID0gdmFsdWVfYml0 cG9zKHZhbHVlKTsKKwkJICAgIGlmIChiaXRwb3NfaSAhPSAwKQorCQkgICAg eworCQkgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIsIGJpdHBv cyA9ICVkIiwgYml0cG9zX2kpOworCQkgICAgfQorCQkgIH0KKwkJICB7CS8q IHNob3cgdGhlIGJpdCBzaXplIG9mIHRoaXMgdmFsdWUsIGlmIGl0IGlzIG5v dCBlcXVhbCB0byAwICovCisJCSAgICBpbnQgYml0c2l6ZV9pID0gdmFsdWVf Yml0c2l6ZSh2YWx1ZSk7CisJCSAgICBpZiAoYml0c2l6ZV9pICE9IDApCisJ CSAgICB7CisJCSAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiwg Yml0c2l6ZSA9ICVkIiwgYml0c2l6ZV9pKTsKKwkJICAgIH0KKwkJICB9CisJ ICB9CiAJfQogICAgICAgZWxzZQogCXsKQEAgLTEyNTgsMyArMTM1MiwzMSBA QAogICAgICAgYnJlYWs7CiAgICAgfQogfQorCisKKy8qIFByaW50IHRoZSBu YW1lIG9mIHRoZSB0eXBlIChvciB0aGUgdWx0aW1hdGUgcG9pbnRlciB0YXJn ZXQsCisgICBmdW5jdGlvbiB2YWx1ZSBvciBhcnJheSBlbGVtZW50KSwgb3Ig dGhlIGRlc2NyaXB0aW9uIG9mIGEKKyAgIHN0cnVjdHVyZSBvciB1bmlvbi4K KworICAgU0hPVyBwb3NpdGl2ZSBtZWFucyBwcmludCBkZXRhaWxzIGFib3V0 IHRoZSB0eXBlIChlLmcuIGVudW0gdmFsdWVzKSwKKyAgIGFuZCBwcmludCBz dHJ1Y3R1cmUgZWxlbWVudHMgcGFzc2luZyBTSE9XIC0gMSBmb3Igc2hvdy4K KyAgIFNIT1cgbmVnYXRpdmUgbWVhbnMganVzdCBwcmludCB0aGUgdHlwZSBu YW1lIG9yIHN0cnVjdCB0YWcgaWYgdGhlcmUgaXMgb25lLgorICAgSWYgdGhl cmUgaXMgbm8gbmFtZSwgcHJpbnQgc29tZXRoaW5nIHNlbnNpYmxlIGJ1dCBj b25jaXNlIGxpa2UKKyAgICJzdHJ1Y3Qgey4uLn0iLgorICAgU0hPVyB6ZXJv IG1lYW5zIGp1c3QgcHJpbnQgdGhlIHR5cGUgbmFtZSBvciBzdHJ1Y3QgdGFn IGlmIHRoZXJlIGlzIG9uZS4KKyAgIElmIHRoZXJlIGlzIG5vIG5hbWUsIHBy aW50IHNvbWV0aGluZyBzZW5zaWJsZSBidXQgbm90IGFzIGNvbmNpc2UgbGlr ZQorICAgInN0cnVjdCB7aW50IHg7IGludCB5O30iLgorCisgICBMRVZFTCBp cyB0aGUgbnVtYmVyIG9mIHNwYWNlcyB0byBpbmRlbnQgYnkuCisgICBXZSBp bmNyZWFzZSBpdCBmb3Igc29tZSByZWN1cnNpdmUgY2FsbHMuICAKKworICAg XHJlbWFya3MgTGlrZSBjX3R5cGVfcHJpbnRfYmFzZSBidXQgaWYgaXQgaXMg YSBiaXRmaWVsZCB2YXJpYWJsZSwgdGhlIAorICAgcG9zaXRpb24gYW5kIHNp emUgd2lsbCBiZSBzaG93biBpZiBpcyBub3QgZXF1YWwgdG8gMC4KKyovCit2 b2lkCitjX3R5cGVfcHJpbnRfYmFzZV90aHJvdWdoX3ZhbHVlIChzdHJ1Y3Qg dmFsdWUgKnZhbHVlLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgc2hv dywKKwkJICAgaW50IGxldmVsKQoreworCWNfdHlwZV9wcmludF9iYXNlX2Nv bW1vbih2YWx1ZSwgdmFsdWVfdHlwZSh2YWx1ZSksIHN0cmVhbSwgc2hvdywg bGV2ZWwpOworfQorCmRpZmYgLXVyIDcuNF9vcmlnL2dkYi9kLWxhbmcuYyA3 LjRfcHR5cGVNaXhlZC9nZGIvZC1sYW5nLmMKLS0tIDcuNF9vcmlnL2dkYi9k LWxhbmcuYwkyMDEyLTAxLTA0IDA5OjE3OjAwLjAwMDAwMDAwMCArMDEwMAor KysgNy40X3B0eXBlTWl4ZWQvZ2RiL2QtbGFuZy5jCTIwMTItMDItMTAgMjE6 MzQ6MzIuMDAwMDAwMDAwICswMTAwCkBAIC0yNTIsNiArMjUyLDggQEAKICAg Y19wcmludHN0ciwJCQkvKiBGdW5jdGlvbiB0byBwcmludCBzdHJpbmcgY29u c3RhbnQuICAqLwogICBjX2VtaXRfY2hhciwJCQkvKiBQcmludCBhIHNpbmds ZSBjaGFyLiAgKi8KICAgY19wcmludF90eXBlLAkJCS8qIFByaW50IGEgdHlw ZSB1c2luZyBhcHByb3ByaWF0ZSBzeW50YXguICAqLworICBjX3ByaW50X3R5 cGVfdGhyb3VnaF92YWx1ZSwJLyogUHJpbnQgYSB0eXBlIHVzaW5nIGFwcHJv cHJpYXRlIAorICAgICAgICAgICAgICAgICAgIHN5bnRheCAqLwogICBjX3By aW50X3R5cGVkZWYsCQkvKiBQcmludCBhIHR5cGVkZWYgdXNpbmcgYXBwcm9w cmlhdGUKIAkJCQkgICBzeW50YXguICAqLwogICBkX3ZhbF9wcmludCwJCQkv KiBQcmludCBhIHZhbHVlIHVzaW5nIGFwcHJvcHJpYXRlIHN5bnRheC4gICov CmRpZmYgLXVyIDcuNF9vcmlnL2dkYi9ldmFsLmMgNy40X3B0eXBlTWl4ZWQv Z2RiL2V2YWwuYwotLS0gNy40X29yaWcvZ2RiL2V2YWwuYwkyMDEyLTAxLTA5 IDIxOjI3OjQ4LjAwMDAwMDAwMCArMDEwMAorKysgNy40X3B0eXBlTWl4ZWQv Z2RiL2V2YWwuYwkyMDEyLTAyLTA3IDE5OjI0OjEzLjAwMDAwMDAwMCArMDEw MApAQCAtMTk0NSwxMiArMTk0NSw2IEBACiAgICAgICBhcmcxID0gZXZhbHVh dGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwgcG9zLCBub3NpZGUpOwogICAg ICAgaWYgKG5vc2lkZSA9PSBFVkFMX1NLSVApCiAJZ290byBub3NpZGVyZXQ7 Ci0gICAgICBpZiAobm9zaWRlID09IEVWQUxfQVZPSURfU0lERV9FRkZFQ1RT KQotCXJldHVybiB2YWx1ZV96ZXJvIChsb29rdXBfc3RydWN0X2VsdF90eXBl ICh2YWx1ZV90eXBlIChhcmcxKSwKLQkJCQkJCSAgICZleHAtPmVsdHNbcGMg KyAyXS5zdHJpbmcsCi0JCQkJCQkgICAwKSwKLQkJCSAgIGx2YWxfbWVtb3J5 KTsKLSAgICAgIGVsc2UKIAl7CiAJICBzdHJ1Y3QgdmFsdWUgKnRlbXAgPSBh cmcxOwogCmRpZmYgLXVyIDcuNF9vcmlnL2dkYi9mLWxhbmcuYyA3LjRfcHR5 cGVNaXhlZC9nZGIvZi1sYW5nLmMKLS0tIDcuNF9vcmlnL2dkYi9mLWxhbmcu YwkyMDEyLTAxLTA0IDA5OjE3OjAyLjAwMDAwMDAwMCArMDEwMAorKysgNy40 X3B0eXBlTWl4ZWQvZ2RiL2YtbGFuZy5jCTIwMTItMDEtMjUgMjI6MTY6NTMu MDAwMDAwMDAwICswMTAwCkBAIC0yOTAsNiArMjkwLDcgQEAKICAgZl9wcmlu dHN0ciwJCQkvKiBmdW5jdGlvbiB0byBwcmludCBzdHJpbmcgY29uc3RhbnQg Ki8KICAgZl9lbWl0X2NoYXIsCQkJLyogRnVuY3Rpb24gdG8gcHJpbnQgYSBz aW5nbGUgY2hhcmFjdGVyICovCiAgIGZfcHJpbnRfdHlwZSwJCQkvKiBQcmlu dCBhIHR5cGUgdXNpbmcgYXBwcm9wcmlhdGUgc3ludGF4ICovCisgIGZfcHJp bnRfdHlwZV90aHJvdWdoX3ZhbHVlLAkvKiBQcmludCBhIHR5cGUgdXNpbmcg YXBwcm9wcmlhdGUgc3ludGF4ICovCiAgIGRlZmF1bHRfcHJpbnRfdHlwZWRl ZiwJLyogUHJpbnQgYSB0eXBlZGVmIHVzaW5nIGFwcHJvcHJpYXRlIHN5bnRh eCAqLwogICBmX3ZhbF9wcmludCwJCQkvKiBQcmludCBhIHZhbHVlIHVzaW5n IGFwcHJvcHJpYXRlIHN5bnRheCAqLwogICBjX3ZhbHVlX3ByaW50LAkJLyog RklYTUUgKi8KZGlmZiAtdXIgNy40X29yaWcvZ2RiL2YtbGFuZy5oIDcuNF9w dHlwZU1peGVkL2dkYi9mLWxhbmcuaAotLS0gNy40X29yaWcvZ2RiL2YtbGFu Zy5oCTIwMTItMDEtMDQgMDk6MTc6MDIuMDAwMDAwMDAwICswMTAwCisrKyA3 LjRfcHR5cGVNaXhlZC9nZGIvZi1sYW5nLmgJMjAxMi0wMS0yNSAyMjoxNjo1 My4wMDAwMDAwMDAgKzAxMDAKQEAgLTI3LDYgKzI3LDggQEAKIAogZXh0ZXJu IHZvaWQgZl9wcmludF90eXBlIChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBjaGFy ICosIHN0cnVjdCB1aV9maWxlICosIGludCwKIAkJCSAgaW50KTsKK2V4dGVy biB2b2lkIGZfcHJpbnRfdHlwZV90aHJvdWdoX3ZhbHVlIChzdHJ1Y3QgdmFs dWUgKiwgY29uc3QgY2hhciAqLCBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCisJ CQkgIGludCk7CiAKIGV4dGVybiBpbnQgZl92YWxfcHJpbnQgKHN0cnVjdCB0 eXBlICosIGNvbnN0IGdkYl9ieXRlICosIGludCwgQ09SRV9BRERSLAogCQkJ c3RydWN0IHVpX2ZpbGUgKiwgaW50LApkaWZmIC11ciA3LjRfb3JpZy9nZGIv Zi10eXBlcHJpbnQuYyA3LjRfcHR5cGVNaXhlZC9nZGIvZi10eXBlcHJpbnQu YwotLS0gNy40X29yaWcvZ2RiL2YtdHlwZXByaW50LmMJMjAxMi0wMS0wNCAw OToxNzowMi4wMDAwMDAwMDAgKzAxMDAKKysrIDcuNF9wdHlwZU1peGVkL2dk Yi9mLXR5cGVwcmludC5jCTIwMTItMDEtMjUgMjI6MTY6NTMuMDAwMDAwMDAw ICswMTAwCkBAIC04Miw2ICs4MiwxOCBAQAogICAgfQogfQogCisKKy8qIExF VkVMIGlzIHRoZSBkZXB0aCB0byBpbmRlbnQgbGluZXMgYnkuICAqLworCit2 b2lkCitmX3ByaW50X3R5cGVfdGhyb3VnaF92YWx1ZSAoc3RydWN0IHZhbHVl ICp2YWx1ZV9wLCBjb25zdCBjaGFyICp2YXJzdHJpbmcsIHN0cnVjdCB1aV9m aWxlICpzdHJlYW0sCisJICAgICAgaW50IHNob3csIGludCBsZXZlbCkKK3sK KyAgc3RydWN0IHR5cGUgKnR5cGVfcCA9IHZhbHVlX3R5cGUodmFsdWVfcCk7 CisgIGZfcHJpbnRfdHlwZSAodHlwZV9wLCB2YXJzdHJpbmcsIHN0cmVhbSwg c2hvdywgbGV2ZWwpOworfQorCisKIC8qIFByaW50IGFueSBhc3Rlcmlza3Mg b3Igb3Blbi1wYXJlbnRoZXNlcyBuZWVkZWQgYmVmb3JlIHRoZQogICAgdmFy aWFibGUgbmFtZSAodG8gZGVzY3JpYmUgaXRzIHR5cGUpLgogCmRpZmYgLXVy IDcuNF9vcmlnL2dkYi9qdi1sYW5nLmMgNy40X3B0eXBlTWl4ZWQvZ2RiL2p2 LWxhbmcuYwotLS0gNy40X29yaWcvZ2RiL2p2LWxhbmcuYwkyMDEyLTAxLTA4 IDIyOjAyOjQ1LjAwMDAwMDAwMCArMDEwMAorKysgNy40X3B0eXBlTWl4ZWQv Z2RiL2p2LWxhbmcuYwkyMDEyLTAxLTI1IDIyOjE2OjUzLjAwMDAwMDAwMCAr MDEwMApAQCAtMTE3OCw2ICsxMTc4LDcgQEAKICAgamF2YV9wcmludHN0ciwJ CS8qIEZ1bmN0aW9uIHRvIHByaW50IHN0cmluZyBjb25zdGFudCAqLwogICBq YXZhX2VtaXRfY2hhciwJCS8qIEZ1bmN0aW9uIHRvIHByaW50IGEgc2luZ2xl IGNoYXJhY3RlciAqLwogICBqYXZhX3ByaW50X3R5cGUsCQkvKiBQcmludCBh IHR5cGUgdXNpbmcgYXBwcm9wcmlhdGUgc3ludGF4ICovCisgIGphdmFfcHJp bnRfdHlwZV90aHJvdWdoX3ZhbHVlLAkvKiBQcmludCBhIHR5cGUgdXNpbmcg YXBwcm9wcmlhdGUgc3ludGF4ICovCiAgIGRlZmF1bHRfcHJpbnRfdHlwZWRl ZiwJLyogUHJpbnQgYSB0eXBlZGVmIHVzaW5nIGFwcHJvcHJpYXRlIHN5bnRh eCAqLwogICBqYXZhX3ZhbF9wcmludCwJCS8qIFByaW50IGEgdmFsdWUgdXNp bmcgYXBwcm9wcmlhdGUgc3ludGF4ICovCiAgIGphdmFfdmFsdWVfcHJpbnQs CQkvKiBQcmludCBhIHRvcC1sZXZlbCB2YWx1ZSAqLwpkaWZmIC11ciA3LjRf b3JpZy9nZGIvanYtbGFuZy5oIDcuNF9wdHlwZU1peGVkL2dkYi9qdi1sYW5n LmgKLS0tIDcuNF9vcmlnL2dkYi9qdi1sYW5nLmgJMjAxMi0wMS0wNCAwOTox NzowNS4wMDAwMDAwMDAgKzAxMDAKKysrIDcuNF9wdHlwZU1peGVkL2dkYi9q di1sYW5nLmgJMjAxMi0wMS0yNSAyMjoxNjo1My4wMDAwMDAwMDAgKzAxMDAK QEAgLTcxLDYgKzcxLDggQEAKIC8qIERlZmluZWQgaW4ganYtdHlwZXByaW50 LmMgKi8KIGV4dGVybiB2b2lkIGphdmFfcHJpbnRfdHlwZSAoc3RydWN0IHR5 cGUgKiwgY29uc3QgY2hhciAqLAogCQkJICAgICBzdHJ1Y3QgdWlfZmlsZSAq LCBpbnQsIGludCk7CitleHRlcm4gdm9pZCBqYXZhX3ByaW50X3R5cGVfdGhy b3VnaF92YWx1ZSAoc3RydWN0IHZhbHVlICosIGNvbnN0IGNoYXIgKiwKKwkJ CQkgc3RydWN0IHVpX2ZpbGUgKiwgaW50LCBpbnQpOwogCiBleHRlcm4gY2hh ciAqamF2YV9kZW1hbmdsZV90eXBlX3NpZ25hdHVyZSAoY2hhciAqKTsKIApk aWZmIC11ciA3LjRfb3JpZy9nZGIvanYtdHlwZXByaW50LmMgNy40X3B0eXBl TWl4ZWQvZ2RiL2p2LXR5cGVwcmludC5jCi0tLSA3LjRfb3JpZy9nZGIvanYt dHlwZXByaW50LmMJMjAxMi0wMS0wNCAwOToxNzowNS4wMDAwMDAwMDAgKzAx MDAKKysrIDcuNF9wdHlwZU1peGVkL2dkYi9qdi10eXBlcHJpbnQuYwkyMDEy LTAxLTI1IDIyOjE2OjUzLjAwMDAwMDAwMCArMDEwMApAQCAtMzUyLDMgKzM1 MiwxMiBAQAogICBkZW1hbmdsZWRfYXJncyA9IHZhcnN0cmluZyAhPSBOVUxM ICYmIHN0cmNociAodmFyc3RyaW5nLCAnKCcpICE9IE5VTEw7CiAgIGNfdHlw ZV9wcmludF92YXJzcGVjX3N1ZmZpeCAodHlwZSwgc3RyZWFtLCBzaG93LCAw LCBkZW1hbmdsZWRfYXJncyk7CiB9CisKKwordm9pZAoramF2YV9wcmludF90 eXBlX3Rocm91Z2hfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsdWVfcCwgY29u c3QgY2hhciAqdmFyc3RyaW5nLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAor CQkgaW50IHNob3csIGludCBsZXZlbCkKK3sKKwlzdHJ1Y3QgdHlwZSAqdHlw ZV9wID0gdmFsdWVfdHlwZSh2YWx1ZV9wKTsKKwlqYXZhX3ByaW50X3R5cGUg KHR5cGVfcCwgdmFyc3RyaW5nLCBzdHJlYW0sIHNob3csIGxldmVsKTsKK30K ZGlmZiAtdXIgNy40X29yaWcvZ2RiL2xhbmd1YWdlLmMgNy40X3B0eXBlTWl4 ZWQvZ2RiL2xhbmd1YWdlLmMKLS0tIDcuNF9vcmlnL2dkYi9sYW5ndWFnZS5j CTIwMTItMDEtMDQgMTk6NTc6MDEuMDAwMDAwMDAwICswMTAwCisrKyA3LjRf cHR5cGVNaXhlZC9nZGIvbGFuZ3VhZ2UuYwkyMDEyLTAxLTI1IDIyOjE2OjUz LjAwMDAwMDAwMCArMDEwMApAQCAtODQ3LDYgKzg0NywxMyBAQAogCSAgICJm dW5jdGlvbiB1bmtfbGFuZ19wcmludF90eXBlIGNhbGxlZC4iKSk7CiB9CiAK K3N0YXRpYyB2b2lkCit1bmtfbGFuZ19wcmludF90eXBlX3Rocm91Z2hfdmFs dWUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGNvbnN0IGNoYXIgKnZhcnN0cmlu Zywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKKwkJICAgICBpbnQgc2hvdywg aW50IGxldmVsKQoreworICBlcnJvciAoXygiaW50ZXJuYWwgZXJyb3IgLSB1 bmltcGxlbWVudGVkIGZ1bmN0aW9uIHVua19sYW5nX3ByaW50X3R5cGVfdGhy b3VnaF92YWx1ZSBjYWxsZWQuIikpOworfQorCiBzdGF0aWMgaW50CiB1bmtf bGFuZ192YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwKIAkJICAgIGludCBlbWJlZGRlZF9vZmZzZXQsIENP UkVfQUREUiBhZGRyZXNzLApAQCAtOTE0LDYgKzkyMSw3IEBACiAgIHVua19s YW5nX3ByaW50c3RyLAogICB1bmtfbGFuZ19lbWl0X2NoYXIsCiAgIHVua19s YW5nX3ByaW50X3R5cGUsCQkvKiBQcmludCBhIHR5cGUgdXNpbmcgYXBwcm9w cmlhdGUgc3ludGF4ICovCisgIHVua19sYW5nX3ByaW50X3R5cGVfdGhyb3Vn aF92YWx1ZSwJCS8qIFByaW50IGEgdHlwZSB1c2luZyBhcHByb3ByaWF0ZSBz eW50YXggKi8KICAgZGVmYXVsdF9wcmludF90eXBlZGVmLAkvKiBQcmludCBh IHR5cGVkZWYgdXNpbmcgYXBwcm9wcmlhdGUgc3ludGF4ICovCiAgIHVua19s YW5nX3ZhbF9wcmludCwJCS8qIFByaW50IGEgdmFsdWUgdXNpbmcgYXBwcm9w cmlhdGUgc3ludGF4ICovCiAgIHVua19sYW5nX3ZhbHVlX3ByaW50LAkJLyog UHJpbnQgYSB0b3AtbGV2ZWwgdmFsdWUgKi8KQEAgLTk1Nyw2ICs5NjUsNyBA QAogICB1bmtfbGFuZ19wcmludHN0ciwKICAgdW5rX2xhbmdfZW1pdF9jaGFy LAogICB1bmtfbGFuZ19wcmludF90eXBlLAkJLyogUHJpbnQgYSB0eXBlIHVz aW5nIGFwcHJvcHJpYXRlIHN5bnRheCAqLworICB1bmtfbGFuZ19wcmludF90 eXBlX3Rocm91Z2hfdmFsdWUsCQkvKiBQcmludCBhIHR5cGUgdXNpbmcgYXBw cm9wcmlhdGUgc3ludGF4ICovCiAgIGRlZmF1bHRfcHJpbnRfdHlwZWRlZiwJ LyogUHJpbnQgYSB0eXBlZGVmIHVzaW5nIGFwcHJvcHJpYXRlIHN5bnRheCAq LwogICB1bmtfbGFuZ192YWxfcHJpbnQsCQkvKiBQcmludCBhIHZhbHVlIHVz aW5nIGFwcHJvcHJpYXRlIHN5bnRheCAqLwogICB1bmtfbGFuZ192YWx1ZV9w cmludCwJCS8qIFByaW50IGEgdG9wLWxldmVsIHZhbHVlICovCkBAIC05OTgs NiArMTAwNyw3IEBACiAgIHVua19sYW5nX3ByaW50c3RyLAogICB1bmtfbGFu Z19lbWl0X2NoYXIsCiAgIHVua19sYW5nX3ByaW50X3R5cGUsCQkvKiBQcmlu dCBhIHR5cGUgdXNpbmcgYXBwcm9wcmlhdGUgc3ludGF4ICovCisgIHVua19s YW5nX3ByaW50X3R5cGVfdGhyb3VnaF92YWx1ZSwJCS8qIFByaW50IGEgdHlw ZSB1c2luZyBhcHByb3ByaWF0ZSBzeW50YXggKi8KICAgZGVmYXVsdF9wcmlu dF90eXBlZGVmLAkvKiBQcmludCBhIHR5cGVkZWYgdXNpbmcgYXBwcm9wcmlh dGUgc3ludGF4ICovCiAgIHVua19sYW5nX3ZhbF9wcmludCwJCS8qIFByaW50 IGEgdmFsdWUgdXNpbmcgYXBwcm9wcmlhdGUgc3ludGF4ICovCiAgIHVua19s YW5nX3ZhbHVlX3ByaW50LAkJLyogUHJpbnQgYSB0b3AtbGV2ZWwgdmFsdWUg Ki8KZGlmZiAtdXIgNy40X29yaWcvZ2RiL2xhbmd1YWdlLmggNy40X3B0eXBl TWl4ZWQvZ2RiL2xhbmd1YWdlLmgKLS0tIDcuNF9vcmlnL2dkYi9sYW5ndWFn ZS5oCTIwMTItMDEtMDQgMTk6NTc6MDEuMDAwMDAwMDAwICswMTAwCisrKyA3 LjRfcHR5cGVNaXhlZC9nZGIvbGFuZ3VhZ2UuaAkyMDEyLTAxLTI1IDIyOjE2 OjUzLjAwMDAwMDAwMCArMDEwMApAQCAtMjAyLDYgKzIwMiwxMiBAQAogICAg IHZvaWQgKCpsYV9wcmludF90eXBlKSAoc3RydWN0IHR5cGUgKiwgY29uc3Qg Y2hhciAqLCBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAJCQkgICBpbnQpOwog CisgICAgLyogUHJpbnQgYSB0eXBlICh0aHJvdWdoIHZhbHVlIHN0cnVjdHVy ZSkgdXNpbmcgc3ludGF4IGFwcHJvcHJpYXRlIGZvciAKKyAgICAgICB0aGlz IGxhbmd1YWdlLiAqLworCisgICAgdm9pZCAoKmxhX3ByaW50X3R5cGVfdGhy b3VnaF92YWx1ZSkgKHN0cnVjdCB2YWx1ZSAqLCBjb25zdCBjaGFyICosIHN0 cnVjdCB1aV9maWxlICosIGludCwKKwkJCSAgIGludCk7CisKICAgICAvKiBQ cmludCBhIHR5cGVkZWYgdXNpbmcgc3ludGF4IGFwcHJvcHJpYXRlIGZvciB0 aGlzIGxhbmd1YWdlLgogICAgICAgIFRZUEUgaXMgdGhlIHVuZGVybHlpbmcg dHlwZS4gIE5FV19TWU1CT0wgaXMgdGhlIHN5bWJvbCBuYW1pbmcKICAgICAg ICB0aGUgdHlwZS4gIFNUUkVBTSBpcyB0aGUgb3V0cHV0IHN0cmVhbSBvbiB3 aGljaCB0byBwcmludC4gICovCkBAIC00MzMsNiArNDM5LDggQEAKIAogI2Rl ZmluZSBMQV9QUklOVF9UWVBFKHR5cGUsdmFyc3RyaW5nLHN0cmVhbSxzaG93 LGxldmVsKSBcCiAgIChjdXJyZW50X2xhbmd1YWdlLT5sYV9wcmludF90eXBl KHR5cGUsdmFyc3RyaW5nLHN0cmVhbSxzaG93LGxldmVsKSkKKyNkZWZpbmUg TEFfUFJJTlRfVFlQRV9USFJPVUdIX1ZBTFVFKHZhbHVlLHZhcnN0cmluZyxz dHJlYW0sc2hvdyxsZXZlbCkgXAorICAoY3VycmVudF9sYW5ndWFnZS0+bGFf cHJpbnRfdHlwZV90aHJvdWdoX3ZhbHVlKHZhbHVlLHZhcnN0cmluZyxzdHJl YW0sc2hvdyxsZXZlbCkpCiAKICNkZWZpbmUgTEFfUFJJTlRfVFlQRURFRih0 eXBlLG5ld19zeW1ib2wsc3RyZWFtKSBcCiAgIChjdXJyZW50X2xhbmd1YWdl LT5sYV9wcmludF90eXBlZGVmKHR5cGUsbmV3X3N5bWJvbCxzdHJlYW0pKQpk aWZmIC11ciA3LjRfb3JpZy9nZGIvbTItbGFuZy5jIDcuNF9wdHlwZU1peGVk L2dkYi9tMi1sYW5nLmMKLS0tIDcuNF9vcmlnL2dkYi9tMi1sYW5nLmMJMjAx Mi0wMS0wNCAwOToxNzowNS4wMDAwMDAwMDAgKzAxMDAKKysrIDcuNF9wdHlw ZU1peGVkL2dkYi9tMi1sYW5nLmMJMjAxMi0wMS0yNSAyMjoxNjo1My4wMDAw MDAwMDAgKzAxMDAKQEAgLTM4Miw2ICszODIsNyBAQAogICBtMl9wcmludHN0 ciwJCQkvKiBmdW5jdGlvbiB0byBwcmludCBzdHJpbmcgY29uc3RhbnQgKi8K ICAgbTJfZW1pdF9jaGFyLAkJCS8qIEZ1bmN0aW9uIHRvIHByaW50IGEgc2lu Z2xlIGNoYXJhY3RlciAqLwogICBtMl9wcmludF90eXBlLAkJLyogUHJpbnQg YSB0eXBlIHVzaW5nIGFwcHJvcHJpYXRlIHN5bnRheCAqLworICBtMl9wcmlu dF90eXBlX3Rocm91Z2hfdmFsdWUsCS8qIFByaW50IGEgdHlwZSB1c2luZyBh cHByb3ByaWF0ZSBzeW50YXggKi8KICAgbTJfcHJpbnRfdHlwZWRlZiwJCS8q IFByaW50IGEgdHlwZWRlZiB1c2luZyBhcHByb3ByaWF0ZSBzeW50YXggKi8K ICAgbTJfdmFsX3ByaW50LAkJCS8qIFByaW50IGEgdmFsdWUgdXNpbmcgYXBw cm9wcmlhdGUgc3ludGF4ICovCiAgIGNfdmFsdWVfcHJpbnQsCQkvKiBQcmlu dCBhIHRvcC1sZXZlbCB2YWx1ZSAqLwpkaWZmIC11ciA3LjRfb3JpZy9nZGIv bTItbGFuZy5oIDcuNF9wdHlwZU1peGVkL2dkYi9tMi1sYW5nLmgKLS0tIDcu NF9vcmlnL2dkYi9tMi1sYW5nLmgJMjAxMi0wMS0wNCAwOToxNzowNS4wMDAw MDAwMDAgKzAxMDAKKysrIDcuNF9wdHlwZU1peGVkL2dkYi9tMi1sYW5nLmgJ MjAxMi0wMS0yNSAyMjoxNjo1My4wMDAwMDAwMDAgKzAxMDAKQEAgLTI1LDYg KzI1LDggQEAKIC8qIERlZmluZWQgaW4gbTItdHlwZXByaW50LmMgKi8KIGV4 dGVybiB2b2lkIG0yX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlICosIGNvbnN0 IGNoYXIgKiwgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAogCQkJICAgaW50KTsK K2V4dGVybiB2b2lkIG0yX3ByaW50X3R5cGVfdGhyb3VnaF92YWx1ZSAoc3Ry dWN0IHZhbHVlICosIGNvbnN0IGNoYXIgKiwgc3RydWN0IHVpX2ZpbGUgKiwg aW50LAorCQkJICAgaW50KTsKIAogZXh0ZXJuIHZvaWQgbTJfcHJpbnRfdHlw ZWRlZiAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHN5bWJvbCAqLAogCQkJICAg ICAgc3RydWN0IHVpX2ZpbGUgKik7CmRpZmYgLXVyIDcuNF9vcmlnL2dkYi9t Mi10eXBlcHJpbnQuYyA3LjRfcHR5cGVNaXhlZC9nZGIvbTItdHlwZXByaW50 LmMKLS0tIDcuNF9vcmlnL2dkYi9tMi10eXBlcHJpbnQuYwkyMDEyLTAxLTA0 IDA5OjE3OjA1LjAwMDAwMDAwMCArMDEwMAorKysgNy40X3B0eXBlTWl4ZWQv Z2RiL20yLXR5cGVwcmludC5jCTIwMTItMDEtMjUgMjI6MTY6NTMuMDAwMDAw MDAwICswMTAwCkBAIC0xNTEsNiArMTUxLDE2IEBACiAgICAgfQogfQogCisK K3ZvaWQKK20yX3ByaW50X3R5cGVfdGhyb3VnaF92YWx1ZSAoc3RydWN0IHZh bHVlICp2YWx1ZV9wLCBjb25zdCBjaGFyICp2YXJzdHJpbmcsIHN0cnVjdCB1 aV9maWxlICpzdHJlYW0sCisJICAgICAgIGludCBzaG93LCBpbnQgbGV2ZWwp Cit7CisJc3RydWN0IHR5cGUgKnR5cGVfcCA9IHZhbHVlX3R5cGUodmFsdWVf cCk7CisJbTJfcHJpbnRfdHlwZSAodHlwZV9wLCB2YXJzdHJpbmcsIHN0cmVh bSwgc2hvdywgbGV2ZWwpOworfQorCisKIC8qIFByaW50IGEgdHlwZWRlZiB1 c2luZyBNMiBzeW50YXguICBUWVBFIGlzIHRoZSB1bmRlcmx5aW5nIHR5cGUu CiAgICBORVdfU1lNQk9MIGlzIHRoZSBzeW1ib2wgbmFtaW5nIHRoZSB0eXBl LiAgU1RSRUFNIGlzIHRoZSBzdHJlYW0gb24KICAgIHdoaWNoIHRvIHByaW50 LiAgKi8KZGlmZiAtdXIgNy40X29yaWcvZ2RiL29iamMtbGFuZy5jIDcuNF9w dHlwZU1peGVkL2dkYi9vYmpjLWxhbmcuYwotLS0gNy40X29yaWcvZ2RiL29i amMtbGFuZy5jCTIwMTItMDEtMDQgMDk6MTc6MDguMDAwMDAwMDAwICswMTAw CisrKyA3LjRfcHR5cGVNaXhlZC9nZGIvb2JqYy1sYW5nLmMJMjAxMi0wMS0y NSAyMjoxNjo1My4wMDAwMDAwMDAgKzAxMDAKQEAgLTUyMSw2ICs1MjEsNyBA QAogICBvYmpjX3ByaW50c3RyLAkJLyogRnVuY3Rpb24gdG8gcHJpbnQgc3Ry aW5nIGNvbnN0YW50ICovCiAgIG9iamNfZW1pdF9jaGFyLAogICBjX3ByaW50 X3R5cGUsCQkJLyogUHJpbnQgYSB0eXBlIHVzaW5nIGFwcHJvcHJpYXRlIHN5 bnRheCAqLworICBjX3ByaW50X3R5cGVfdGhyb3VnaF92YWx1ZSwJLyogUHJp bnQgYSB0eXBlIHVzaW5nIGFwcHJvcHJpYXRlIHN5bnRheCAqLwogICBjX3By aW50X3R5cGVkZWYsCQkvKiBQcmludCBhIHR5cGVkZWYgdXNpbmcgYXBwcm9w cmlhdGUgc3ludGF4ICovCiAgIGNfdmFsX3ByaW50LAkJCS8qIFByaW50IGEg dmFsdWUgdXNpbmcgYXBwcm9wcmlhdGUgc3ludGF4ICovCiAgIGNfdmFsdWVf cHJpbnQsCQkvKiBQcmludCBhIHRvcC1sZXZlbCB2YWx1ZSAqLwpkaWZmIC11 ciA3LjRfb3JpZy9nZGIvb3BlbmNsLWxhbmcuYyA3LjRfcHR5cGVNaXhlZC9n ZGIvb3BlbmNsLWxhbmcuYwotLS0gNy40X29yaWcvZ2RiL29wZW5jbC1sYW5n LmMJMjAxMi0wMS0wNCAwOToxNzowOS4wMDAwMDAwMDAgKzAxMDAKKysrIDcu NF9wdHlwZU1peGVkL2dkYi9vcGVuY2wtbGFuZy5jCTIwMTItMDEtMjUgMjI6 MTY6NTMuMDAwMDAwMDAwICswMTAwCkBAIC0xMDA1LDYgKzEwMDUsNyBAQAog ICBjX3ByaW50c3RyLAkJCS8qIEZ1bmN0aW9uIHRvIHByaW50IHN0cmluZyBj b25zdGFudCAqLwogICBjX2VtaXRfY2hhciwJCQkvKiBQcmludCBhIHNpbmds ZSBjaGFyICovCiAgIGNfcHJpbnRfdHlwZSwJCQkvKiBQcmludCBhIHR5cGUg dXNpbmcgYXBwcm9wcmlhdGUgc3ludGF4ICovCisgIGNfcHJpbnRfdHlwZV90 aHJvdWdoX3ZhbHVlLAkvKiBQcmludCBhIHR5cGUgdXNpbmcgYXBwcm9wcmlh dGUgc3ludGF4ICovCiAgIGNfcHJpbnRfdHlwZWRlZiwJCS8qIFByaW50IGEg dHlwZWRlZiB1c2luZyBhcHByb3ByaWF0ZSBzeW50YXggKi8KICAgY192YWxf cHJpbnQsCQkJLyogUHJpbnQgYSB2YWx1ZSB1c2luZyBhcHByb3ByaWF0ZSBz eW50YXggKi8KICAgY192YWx1ZV9wcmludCwJCS8qIFByaW50IGEgdG9wLWxl dmVsIHZhbHVlICovCmRpZmYgLXVyIDcuNF9vcmlnL2dkYi9wLWxhbmcuYyA3 LjRfcHR5cGVNaXhlZC9nZGIvcC1sYW5nLmMKLS0tIDcuNF9vcmlnL2dkYi9w LWxhbmcuYwkyMDEyLTAxLTA0IDA5OjE3OjA5LjAwMDAwMDAwMCArMDEwMAor KysgNy40X3B0eXBlTWl4ZWQvZ2RiL3AtbGFuZy5jCTIwMTItMDEtMjUgMjI6 MTY6NTMuMDAwMDAwMDAwICswMTAwCkBAIC00NDEsNiArNDQxLDcgQEAKICAg cGFzY2FsX3ByaW50c3RyLAkJLyogRnVuY3Rpb24gdG8gcHJpbnQgc3RyaW5n IGNvbnN0YW50ICovCiAgIHBhc2NhbF9lbWl0X2NoYXIsCQkvKiBQcmludCBh IHNpbmdsZSBjaGFyICovCiAgIHBhc2NhbF9wcmludF90eXBlLAkJLyogUHJp bnQgYSB0eXBlIHVzaW5nIGFwcHJvcHJpYXRlIHN5bnRheCAqLworICBwYXNj YWxfcHJpbnRfdHlwZV90aHJvdWdoX3ZhbHVlLAkvKiBQcmludCBhIHR5cGUg dXNpbmcgYXBwcm9wcmlhdGUgc3ludGF4ICovCiAgIHBhc2NhbF9wcmludF90 eXBlZGVmLAkJLyogUHJpbnQgYSB0eXBlZGVmIHVzaW5nIGFwcHJvcHJpYXRl IHN5bnRheCAqLwogICBwYXNjYWxfdmFsX3ByaW50LAkJLyogUHJpbnQgYSB2 YWx1ZSB1c2luZyBhcHByb3ByaWF0ZSBzeW50YXggKi8KICAgcGFzY2FsX3Zh bHVlX3ByaW50LAkJLyogUHJpbnQgYSB0b3AtbGV2ZWwgdmFsdWUgKi8KZGlm ZiAtdXIgNy40X29yaWcvZ2RiL3AtbGFuZy5oIDcuNF9wdHlwZU1peGVkL2dk Yi9wLWxhbmcuaAotLS0gNy40X29yaWcvZ2RiL3AtbGFuZy5oCTIwMTItMDEt MDQgMDk6MTc6MDkuMDAwMDAwMDAwICswMTAwCisrKyA3LjRfcHR5cGVNaXhl ZC9nZGIvcC1sYW5nLmgJMjAxMi0wMS0yNSAyMjoxNjo1My4wMDAwMDAwMDAg KzAxMDAKQEAgLTMyLDYgKzMyLDkgQEAKIGV4dGVybiB2b2lkIHBhc2NhbF9w cmludF90eXBlIChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBjaGFyICosIHN0cnVj dCB1aV9maWxlICosCiAJCQkgICAgICAgaW50LCBpbnQpOwogCitleHRlcm4g dm9pZCBwYXNjYWxfcHJpbnRfdHlwZV90aHJvdWdoX3ZhbHVlIChzdHJ1Y3Qg dmFsdWUgKiwgY29uc3QgY2hhciAqLCAKKwkgICAgICAgICAgICAgICBzdHJ1 Y3QgdWlfZmlsZSAqLCBpbnQsIGludCk7CisKIGV4dGVybiB2b2lkIHBhc2Nh bF9wcmludF90eXBlZGVmIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3Qgc3ltYm9s ICosCiAJCQkJICBzdHJ1Y3QgdWlfZmlsZSAqKTsKIApkaWZmIC11ciA3LjRf b3JpZy9nZGIvcC10eXBlcHJpbnQuYyA3LjRfcHR5cGVNaXhlZC9nZGIvcC10 eXBlcHJpbnQuYwotLS0gNy40X29yaWcvZ2RiL3AtdHlwZXByaW50LmMJMjAx Mi0wMS0wNCAwOToxNzowOS4wMDAwMDAwMDAgKzAxMDAKKysrIDcuNF9wdHlw ZU1peGVkL2dkYi9wLXR5cGVwcmludC5jCTIwMTItMDEtMjUgMjI6MTY6NTMu MDAwMDAwMDAwICswMTAwCkBAIC04OSw2ICs4OSwxOCBAQAogCiB9CiAKKwor LyogTEVWRUwgaXMgdGhlIGRlcHRoIHRvIGluZGVudCBsaW5lcyBieS4gICov CisKK3ZvaWQKK3Bhc2NhbF9wcmludF90eXBlX3Rocm91Z2hfdmFsdWUgKHN0 cnVjdCB2YWx1ZSAqdmFsdWVfcCwgY29uc3QgY2hhciAqdmFyc3RyaW5nLCBz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorCQkgICBpbnQgc2hvdywgaW50IGxl dmVsKQoreworCXN0cnVjdCB0eXBlICp0eXBlX3AgPSB2YWx1ZV90eXBlKHZh bHVlX3ApOworCXBhc2NhbF9wcmludF90eXBlICh0eXBlX3AsIHZhcnN0cmlu Zywgc3RyZWFtLCBzaG93LCBsZXZlbCk7Cit9CisKKwogLyogUHJpbnQgYSB0 eXBlZGVmIHVzaW5nIFBhc2NhbCBzeW50YXguICBUWVBFIGlzIHRoZSB1bmRl cmx5aW5nIHR5cGUuCiAgICBORVdfU1lNQk9MIGlzIHRoZSBzeW1ib2wgbmFt aW5nIHRoZSB0eXBlLiAgU1RSRUFNIGlzIHRoZSBzdHJlYW0gb24KICAgIHdo aWNoIHRvIHByaW50LiAgKi8KZGlmZiAtdXIgNy40X29yaWcvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9iaXRmaWVsZHMyLmV4cCA3LjRfcHR5cGVNaXhlZC9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2JpdGZpZWxkczIuZXhwCi0tLSA3LjRf b3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2JpdGZpZWxkczIuZXhwCTIw MTItMDEtMTYgMTc6MjE6NDQuMDAwMDAwMDAwICswMTAwCisrKyA3LjRfcHR5 cGVNaXhlZC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2JpdGZpZWxkczIuZXhw CTIwMTItMDItMTAgMjE6NDI6MTcuMDAwMDAwMDAwICswMTAwCkBAIC02Miw3 ICs2MiwzOSBAQAogICAgIH0KICAgICBjb250aW51ZV90ZXN0ICRmdW5jdGlv biAiIzAiCiB9Ci0gICAgCisKKworIworIyBUZXN0IGJpdGZpZWxkIG1lbWJl ciBiaXQgcG9zaXRpb24gYW5kIGJpdCBzaXplCisjCisKK3Byb2MgYml0Zmll bGRfcHR5cGUge30geworICAgIGdsb2JhbCBkZWNpbWFsCisgICAgZ2xvYmFs IGhleAorICAgIGdsb2JhbCBnZGJfcHJvbXB0CisgICAgZ2xvYmFsIHNyY2Zp bGUKKworCSMgXHJcbiBmb3IgbmV3IGxpbmU7ICIgKiIgZm9yIHdoaXRlIHNw YWNlcworICAgIGlmIFtnZGJfdGVzdCAicHR5cGUgZmxhZ3MiICJ0eXBlID0g c3RydWN0IGZpZWxkcyB7XHJcbiAqbG9uZyBsb25nIHVuc2lnbmVkIGludCB1 MSA6IDE1O1xyXG4gKmxvbmcgbG9uZyB1bnNpZ25lZCBpbnQgdTIgOiAzMztc clxuICpsb25nIGxvbmcgdW5zaWduZWQgaW50IHUzIDogMTY7XHJcbiAqbG9u ZyBsb25nIGludCBzMSA6IDE1O1xyXG4gKmxvbmcgbG9uZyBpbnQgczIgOiAz MztcclxuICpsb25nIGxvbmcgaW50IHMzIDogMTY7XHJcbn0iXSB7CisJCWdk Yl9zdXBwcmVzc190ZXN0czsKKyAgICB9CisKKyAgICBpZiBbZ2RiX3Rlc3Qg InB0eXBlIGZsYWdzLnUxIiAidHlwZSA9IGxvbmcgbG9uZyB1bnNpZ25lZCBp bnQsIGJpdHNpemUgPSAxNSJdIHsKKwkJZ2RiX3N1cHByZXNzX3Rlc3RzOwor CX0KKwkKKyAgICBpZiBbZ2RiX3Rlc3QgInB0eXBlIGZsYWdzLnUyIiAidHlw ZSA9IGxvbmcgbG9uZyB1bnNpZ25lZCBpbnQsIGJpdHBvcyA9IDE1LCBiaXRz aXplID0gMzMiXSB7CisJCWdkYl9zdXBwcmVzc190ZXN0czsKKyAgICB9CisJ CisgICAgaWYgW2dkYl90ZXN0ICJwdHlwZSBmbGFncy5zMSIgInR5cGUgPSBs b25nIGxvbmcgaW50LCBiaXRzaXplID0gMTUiXSB7CisJCWdkYl9zdXBwcmVz c190ZXN0czsKKyAgICB9CisJCisgICAgaWYgW2dkYl90ZXN0ICJwdHlwZSBm bGFncy5zMiIgInR5cGUgPSBsb25nIGxvbmcgaW50LCBiaXRwb3MgPSAxNSwg Yml0c2l6ZSA9IDMzIl0geworCQlnZGJfc3VwcHJlc3NfdGVzdHM7CisgICAg fQorfSAgICAKIAogIwogIyBUZXN0IGJpdGZpZWxkIGxvY2F0aW5nIGFuZCB1 bmlxdWVuZXNzLgpAQCAtMjg3LDYgKzMxOSw3IEBACiBnZGJfdGVzdF9ub19v dXRwdXQgInNldCBwcmludCBzZXZlbmJpdC1zdHJpbmdzIgogcnVudG9fbWFp bgogCitiaXRmaWVsZF9wdHlwZQogYml0ZmllbGRfdW5pcXVlbmVzcwogYml0 ZmllbGRfY29udGFpbm1lbnQKIGJpdGZpZWxkX3Vuc2lnbmVkbmVzcwpkaWZm IC11ciA3LjRfb3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2JpdGZpZWxk cy5leHAgNy40X3B0eXBlTWl4ZWQvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9i aXRmaWVsZHMuZXhwCi0tLSA3LjRfb3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2JpdGZpZWxkcy5leHAJMjAxMi0wMS0xNiAxNzoyMTo0NC4wMDAwMDAw MDAgKzAxMDAKKysrIDcuNF9wdHlwZU1peGVkL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvYml0ZmllbGRzLmV4cAkyMDEyLTAyLTEwIDIxOjI1OjA2LjAwMDAw MDAwMCArMDEwMApAQCAtMjYsNiArMjYsMzQgQEAKIH0KIAogIworIyBUZXN0 IGJpdGZpZWxkIG1lbWJlciBiaXQgcG9zaXRpb24gYW5kIGJpdCBzaXplCisj CisKK3Byb2MgYml0ZmllbGRfcHR5cGUge30geworICAgIGdsb2JhbCBkZWNp bWFsCisgICAgZ2xvYmFsIGhleAorICAgIGdsb2JhbCBnZGJfcHJvbXB0Cisg ICAgZ2xvYmFsIHNyY2ZpbGUKKworCSMgXHJcbiBmb3IgbmV3IGxpbmU7ICIg KiIgZm9yIHdoaXRlIHNwYWNlcworICAgIGlmIFtnZGJfdGVzdCAicHR5cGUg ZmxhZ3MiICJ0eXBlID0gc3RydWN0IGZpZWxkcyB7XHJcbiAqdW5zaWduZWQg Y2hhciB1YztcclxuICppbnQgczEgOiAxO1xyXG4gKnVuc2lnbmVkIGludCB1 MSA6IDE7XHJcbiAqaW50IHMyIDogMjtcclxuICp1bnNpZ25lZCBpbnQgdTIg OiAyO1xyXG4gKmludCBzMyA6IDM7XHJcbiAqdW5zaWduZWQgaW50IHUzIDog MztcclxuICppbnQgczkgOiA5O1xyXG4gKnVuc2lnbmVkIGludCB1OSA6IDk7 XHJcbiAqc2lnbmVkIGNoYXIgc2M7XHJcbn0iXSB7CisJCWdkYl9zdXBwcmVz c190ZXN0czsKKyAgICB9CisKKyAgICBpZiBbZ2RiX3Rlc3QgInB0eXBlIGZs YWdzLnM5IiAidHlwZSA9IGludCwgYml0cG9zID0gMjAsIGJpdHNpemUgPSA5 Il0geworCQlnZGJfc3VwcHJlc3NfdGVzdHM7CisJfQorCQorICAgIGlmIFtn ZGJfdGVzdCAicHR5cGUgZmxhZ3MudTkiICJ0eXBlID0gdW5zaWduZWQgaW50 LCBiaXRzaXplID0gOSJdIHsKKwkJZ2RiX3N1cHByZXNzX3Rlc3RzOworCX0K KwkKKyAgICBpZiBbZ2RiX3Rlc3QgInB0eXBlIGZsYWdzLnNjIiAidHlwZSA9 IHNpZ25lZCBjaGFyIl0geworCQlnZGJfc3VwcHJlc3NfdGVzdHM7CisJfQor fSAgICAKKworIwogIyBUZXN0IGJpdGZpZWxkIGxvY2F0aW5nIGFuZCB1bmlx dWVuZXNzLgogIyBGb3IgZWFjaCBtZW1iZXIsIHNldCB0aGF0IG1lbWJlciB0 byAxIGFuZCB2ZXJpZnkgdGhhdCB0aGUgbWVtYmVyIChhbmQgb25seQogIyB0 aGF0IG1lbWJlcikgaXMgMSwgdGhlbiByZXNldCBpdCBiYWNrIHRvIDAuCkBA IC0yNTIsNiArMjgwLDcgQEAKIAogZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQg cHJpbnQgc2V2ZW5iaXQtc3RyaW5ncyIKIAorYml0ZmllbGRfcHR5cGUKIGJp dGZpZWxkX3VuaXF1ZW5lc3MKIGlmIFtpc3RhcmdldCAibWlwcy1pZHQtKiJd IHRoZW4gewogICAgICMgUmVzdGFydCBiZWNhdXNlIElEVC9TSU0gcnVucyBv dXQgb2YgZmlsZSBkZXNjcmlwdG9ycy4KZGlmZiAtdXIgNy40X29yaWcvZ2Ri L3R5cGVwcmludC5jIDcuNF9wdHlwZU1peGVkL2dkYi90eXBlcHJpbnQuYwot LS0gNy40X29yaWcvZ2RiL3R5cGVwcmludC5jCTIwMTItMDEtMDQgMDk6Mjc6 NTcuMDAwMDAwMDAwICswMTAwCisrKyA3LjRfcHR5cGVNaXhlZC9nZGIvdHlw ZXByaW50LmMJMjAxMi0wMi0wNyAxOToyNTo1Ny4wMDAwMDAwMDAgKzAxMDAK QEAgLTc5LDYgKzc5LDIwIEBACiAgIExBX1BSSU5UX1RZUEUgKHR5cGUsIHZh cnN0cmluZywgc3RyZWFtLCBzaG93LCAwKTsKIH0KIAorLyogUHJpbnQgYSBk ZXNjcmlwdGlvbiBvZiBhIHR5cGUgVFlQRSBpbiB0aGUgZm9ybSBvZiBhIGRl Y2xhcmF0aW9uIG9mIGEKKyAgIHZhcmlhYmxlIG5hbWVkIFZBUlNUUklORy4g IChWQVJTVFJJTkcgaXMgZGVtYW5nbGVkIGlmIG5lY2Vzc2FyeS4pCisgICBP dXRwdXQgZ29lcyB0byBTVFJFQU0gKHZpYSBzdGRpbykuCisgICBJZiBTSE9X IGlzIHBvc2l0aXZlLCB3ZSBzaG93IHRoZSBjb250ZW50cyBvZiB0aGUgb3V0 ZXJtb3N0IGxldmVsCisgICBvZiBzdHJ1Y3R1cmUgZXZlbiBpZiB0aGVyZSBp cyBhIHR5cGUgbmFtZSB0aGF0IGNvdWxkIGJlIHVzZWQgaW5zdGVhZC4KKyAg IElmIFNIT1cgaXMgbmVnYXRpdmUsIHdlIG5ldmVyIHNob3cgdGhlIGRldGFp bHMgb2YgZWxlbWVudHMnIHR5cGVzLiAgKi8KKwordm9pZAordHlwZV9wcmlu dF90aHJvdWdoX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBjaGFyICp2 YXJzdHJpbmcsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCisJICAgIGludCBz aG93KQoreworICBMQV9QUklOVF9UWVBFX1RIUk9VR0hfVkFMVUUgKHZhbHVl LCB2YXJzdHJpbmcsIHN0cmVhbSwgc2hvdywgMCk7Cit9CisKIC8qIFByaW50 IFRZUEUgdG8gYSBzdHJpbmcsIHJldHVybmluZyBpdC4gIFRoZSBjYWxsZXIg aXMgcmVzcG9uc2libGUgZm9yCiAgICBmcmVlaW5nIHRoZSBzdHJpbmcuICAq LwogCkBAIC0xNjQsNyArMTc4LDEwIEBACiAgICAgICBwcmludGZfZmlsdGVy ZWQgKCIgKi9cbiIpOyAgICAKICAgICB9CiAKLSAgdHlwZV9wcmludCAodHlw ZSwgIiIsIGdkYl9zdGRvdXQsIHNob3cpOworICAvKiBUbyBzZWUgdGhlIHBv c2l0b24gYW5kIHNpemUgb2YgYml0ZmllbGRzIGNoYW5nZWQgZnJvbSAKKyAg ICAgdHlwZV9wcmludCAodHlwZSwgIiIsIGdkYl9zdGRvdXQsIHNob3cpOyAK KyAgICAgdG86ICovCisgIHR5cGVfcHJpbnRfdGhyb3VnaF92YWx1ZSAodmFs LCAiIiwgZ2RiX3N0ZG91dCwgc2hvdyk7CiAgIHByaW50Zl9maWx0ZXJlZCAo IlxuIik7CiAKICAgaWYgKGV4cCkKZGlmZiAtdXIgNy40X29yaWcvZ2RiL3Zh bHVlLmggNy40X3B0eXBlTWl4ZWQvZ2RiL3ZhbHVlLmgKLS0tIDcuNF9vcmln L2dkYi92YWx1ZS5oCTIwMTItMDEtMDQgMDk6Mjc6NTguMDAwMDAwMDAwICsw MTAwCisrKyA3LjRfcHR5cGVNaXhlZC9nZGIvdmFsdWUuaAkyMDEyLTAxLTI1 IDIyOjE2OjUzLjAwMDAwMDAwMCArMDEwMApAQCAtNzc5LDYgKzc3OSw4IEBA CiAKIGV4dGVybiB2b2lkIHR5cGVfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBl LCBjaGFyICp2YXJzdHJpbmcsCiAJCQlzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LCBpbnQgc2hvdyk7CitleHRlcm4gdm9pZCB0eXBlX3ByaW50X3Rocm91Z2hf dmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGNoYXIgKnZhcnN0cmluZywK KwkJCXN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBzaG93KTsKIAogZXh0 ZXJuIGNoYXIgKnR5cGVfdG9fc3RyaW5nIChzdHJ1Y3QgdHlwZSAqdHlwZSk7 CiAK --_002_1606F039DD6642449BF6D1519D43AF621619BB4553SIMBX09debosc_--