From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15912 invoked by alias); 26 Oct 2011 15:07:17 -0000 Received: (qmail 15889 invoked by uid 22791); 26 Oct 2011 15:07:10 -0000 X-SWARE-Spam-Status: No, hits=2.7 required=5.0 tests=AWL,BAYES_50,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,KAM_STOCKTIP,RCVD_IN_DNSWL_LOW,TW_BJ,TW_GB,TW_YM X-Spam-Check-By: sourceware.org Received: from mail-fx0-f41.google.com (HELO mail-fx0-f41.google.com) (209.85.161.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 26 Oct 2011 15:06:44 +0000 Received: by faat2 with SMTP id t2so2149772faa.0 for ; Wed, 26 Oct 2011 08:06:42 -0700 (PDT) Received: by 10.223.92.135 with SMTP id r7mr7809065fam.35.1319641602321; Wed, 26 Oct 2011 08:06:42 -0700 (PDT) MIME-Version: 1.0 Received: by 10.152.22.6 with HTTP; Wed, 26 Oct 2011 08:06:22 -0700 (PDT) In-Reply-To: References: <4E8DCE67.80507@earthlink.net> <4E92E639.7000402@earthlink.net> <83ipnjs9i1.fsf@gnu.org> <83ipndc92n.fsf@gnu.org> <83ehy0ded8.fsf@gnu.org> <4EA753C4.60408@mentor.com> From: Justin Lebar Date: Wed, 26 Oct 2011 15:11:00 -0000 Message-ID: Subject: Re: Status of 'blacklist' patch? To: Eli Zaretskii Cc: Stan Shebs , gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=00151748e09cefeffb04b0350045 X-IsSubscribed: yes 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: 2011-10/txt/msg00696.txt.bz2 --00151748e09cefeffb04b0350045 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-length: 1142 Thanks for the testing advice; I ran the test many times on my machine, and it now works without error every time. New roll-up patch is attached. The only difference from v4 is in skip.exp. -Justin On Wed, Oct 26, 2011 at 4:09 AM, Eli Zaretskii wrote: >> Date: Tue, 25 Oct 2011 17:26:44 -0700 >> From: Stan Shebs >> >> > There's a cost to a comment like this; it's not useful to most >> > readers, but they have to parse it anyway. =C2=A0(What the heck does "= skip >> > function file" mean?) >> >> Another purpose for having niggling details in the manual is that in the >> absence of a formal specification, the manual is our promise to users of >> what they should expect to work, and how it will work. =C2=A0So users fi= nd >> themselves referring to the manual when they try something that seems >> obvious, and are surprised that it doesn't work as expected. > > I know _I_ always consult the manual (not only for GDB), because I > never remember enough details, especially subtle and obscure ones. > > Anyway, if Justin is opposed to adding this comment, I can always do > it myself later. > --00151748e09cefeffb04b0350045 Content-Type: text/x-patch; charset=US-ASCII; name="skip-5.diff" Content-Disposition: attachment; filename="skip-5.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gu8gfzr10 Content-length: 76405 ZGlmZiAtLWdpdCBhL2dkYi9DaGFuZ2VMb2cgYi9nZGIvQ2hhbmdlTG9nCmlu ZGV4IGExNjZkMTQuLjBmMTAyMjUgMTAwNjQ0Ci0tLSBhL2dkYi9DaGFuZ2VM b2cKKysrIGIvZ2RiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEx LTEwLTA2ICBKdXN0aW4gTGViYXIgIDxqdXN0aW4ubGViYXJAZ21haWwuY29t PgorCisJKiBNYWtlZmlsZS5pbjogKFNGSUxFUyk6IEFkZCBza2lwLmMuCisJ KEhGSUxFU19OT19TUkNESVIpOiBBZGQgc2tpcC5oLgorCShDT01NT05fT0JT KTogQWRkIHNraXAuby4KKwkqIHNraXAuaCwgc2tpcC5jOiBOZXcuCisJKiBi cmVha3BvaW50LmggKHNldF9kZWZhdWx0X2JyZWFrcG9pbnQpOiBSZW1vdmUu CisJKGdldF9zYWxfYXJjaCk6IERlY2xhcmUuCisJKiBicmVha3BvaW50LmM6 IFJlbW92ZSBkZWZhdWx0X2JyZWFrcG9pbnRfdmFsaWQsCisJZGVmYXVsdF9i cmVha3BvaW50X2FkZHJlc3MsIGRlZmF1bHRfYnJlYWtwb2ludF9zeW10YWIs CisJZGVmYXVsdF9icmVha3BvaW50X2xpbmUsIGRlZmF1bHRfYnJlYWtwb2lu dF9wc3BhY2UgdmFyaWFibGVzLgorCShnZXRfc2FsX2FyY2gpOiBNYWtlIHB1 YmxpYy4KKwkoc2V0X2RlZmF1bHRfYnJlYWtwb2ludCk6IFJlbW92ZS4KKwko cGFyc2VfYnJlYWtwb2ludF9zYWxzLCBjcmVhdGVfYnJlYWtwb2ludCwgY2xl YXJfY29tbWFuZCwKKwlkZWNvZGVfbGluZV9zcGVjXzEpOiBSZW1vdmUgdXNl cyBvZiBkZWZhdWx0X2JyZWFrcG9pbnQgdmFyaWFibGVzOworCXJlcGxhY2Vk IHdpdGggZnVuY3Rpb24gY2FsbHMgaW50byBzdGFjay5jLgorCSogY2xpL2Ns aS1jbWRzLmg6IEFkZCBjbWRfbGlzdF9lbGVtZW50ICpza2lwbGlzdC4KKwkq IGNsaS9jbGktY21kcy5jOiBBZGQgc2tpcGxpc3QuCisJKGluaXRfY21kX2xp c3RzKTogSW5pdGlhbGl6ZSBza2lwbGlzdC4KKwkoaW5pdF9jbGlfY21kcyk6 IEZpeCBjb21tZW50IChjbGFzc2VzIG9mIGNvbW1hbmRzIGFwcGVhciBpbgor CWFscGhhYmV0aWNhbCBvcmRlcikuCisJKiBpbmZydW4uYyAoaGFuZGxlX2lu ZmVyaW9yX2V2ZW50KTogQWRkIGNoZWNrIHRoYXQgd2UgZG9uJ3Qgc3RlcCBp bnRvCisJYSBmdW5jdGlvbiB3aG9zZSBwYyBpcyBtYXJrZWQgZm9yIHNraXAu CisJKiBzdGFjay5jOiBEZWNsYXJlIGxhc3RfZGlzcGxheWVkX3NhbF92YWxp ZCwgbGFzdF9kaXNwbGF5ZWRfcHNwYWNlLAorCWxhc3RfZGlzcGxheWVkX2Fk ZHIsIGxhc3RfZGlzcGxheWVkX3N5bXRhYiwgbGFzdF9kaXNwbGF5ZWRfbGlu ZQorCXZhcmlhYmxlcy4KKwkoc2V0X2xhc3RfZGlzcGxheWVkX3NhbCk6IE5l dyBzdGF0aWMgZnVuY3Rpb24uCisJKHByaW50X2ZyYW1lX2luZm8pOiBTd2l0 Y2ggY2FsbCB0byBzZXRfZGVmYXVsdF9icmVha3BvaW50IHRvIGNhbGwgdG8K KwlzZXRfbGFzdF9kaXNwbGF5ZWRfc2FsLgorCShjbGVhcl9sYXN0X2Rpc3Bs YXllZF9zYWwsIGxhc3RfZGlzcGxheWVkX3NhbF9pc192YWxpZCwKKwlnZXRf bGFzdF9kaXNwbGF5ZWRfcHNwYWNlLCBnZXRfbGFzdF9kaXNwbGF5ZWRfYWRk ciwKKwlnZXRfbGFzdF9kaXNwbGF5ZWRfc3ltdGFiLCBnZXRfbGFzdF9kaXNw bGF5ZWRfbGluZSwKKwlnZXRfbGFzdF9kaXNwbGF5ZWRfc2FsKTogTmV3IHB1 YmxpYyBmdW5jdGlvbnMuCisJKiBzdGFjay5oIChjbGVhcl9sYXN0X2Rpc3Bs YXllZF9zYWwsIGxhc3RfZGlzcGxheWVkX3NhbF9pc192YWxpZCwKKwlnZXRf bGFzdF9kaXNwbGF5ZWRfcHNwYWNlLCBnZXRfbGFzdF9kaXNwbGF5ZWRfYWRk ciwKKwlnZXRfbGFzdF9kaXNwbGF5ZWRfc3ltdGFiLCBnZXRfbGFzdF9kaXNw bGF5ZWRfbGluZSwKKwlnZXRfbGFzdF9kaXNwbGF5ZWRfc2FsKTogRGVjbGFy ZS4KKwogMjAxMS0xMC0wNSAgVHJpc3RhbiBHaW5nb2xkICA8Z2luZ29sZEBh ZGFjb3JlLmNvbT4KIAogCSogYWRhLXRhc2tzLmMgKHJlYWRfYXRjYik6IE1h a2UgcmF2ZW5zY2FyX3Rhc2tfbmFtZSBzdGF0aWMuCmRpZmYgLS1naXQgYS9n ZGIvTWFrZWZpbGUuaW4gYi9nZGIvTWFrZWZpbGUuaW4KaW5kZXggODI2ZDMz OS4uZDZiMDA0YiAxMDA2NDQKLS0tIGEvZ2RiL01ha2VmaWxlLmluCisrKyBi L2dkYi9NYWtlZmlsZS5pbgpAQCAtNzE5LDcgKzcxOSw3IEBAIFNGSUxFUyA9 IGFkYS1leHAueSBhZGEtbGFuZy5jIGFkYS10eXBlcHJpbnQuYyBhZGEtdmFs cHJpbnQuYyBhZGEtdGFza3MuYyBcCiAJcHJvbG9ndWUtdmFsdWUuYyBwc3lt dGFiLmMgXAogCXJlZ2NhY2hlLmMgcmVnZ3JvdXBzLmMgcmVtb3RlLmMgcmVt b3RlLWZpbGVpby5jIHJldmVyc2UuYyBcCiAJc2VudGluZWwtZnJhbWUuYyBc Ci0Jc2VyaWFsLmMgc2VyLWJhc2UuYyBzZXItdW5peC5jIFwKKwlzZXJpYWwu YyBzZXItYmFzZS5jIHNlci11bml4LmMgc2tpcC5jIFwKIAlzb2xpYi5jIHNv bGliLXRhcmdldC5jIHNvdXJjZS5jIFwKIAlzdGFic3JlYWQuYyBzdGFjay5j IHN0ZC1yZWdzLmMgc3ltZmlsZS5jIHN5bWZpbGUtbWVtLmMgc3ltbWlzYy5j IFwKIAlzeW10YWIuYyBcCkBAIC04MTksNyArODE5LDcgQEAgb3NkYXRhLmgg cHJvY2ZzLmggcHl0aG9uL3B5LWV2ZW50LmggcHl0aG9uL3B5LWV2ZW50cy5o IHB5dGhvbi9weS1zdG9wZXZlbnQuaCBcCiBweXRob24vcHl0aG9uLWludGVy bmFsLmggcHl0aG9uL3B5dGhvbi5oIHJhdmVuc2Nhci10aHJlYWQuaCByZWNv cmQuaCBcCiBzb2xpYi1kYXJ3aW4uaCBzb2xpYi1pYTY0LWhwdXguaCBzb2xp Yi1zcHUuaCB3aW5kb3dzLW5hdC5oIHhjb2ZmcmVhZC5oIFwKIGdudWxpYi9l eHRyYS9hcmctbm9ubnVsbC5oIGdudWxpYi9leHRyYS9jKytkZWZzLmggZ251 bGliL2V4dHJhL3dhcm4tb24tdXNlLmggXAotZ251bGliL3N0ZGRlZi5pbi5o IGlubGluZS1mcmFtZS5oIFwKK2dudWxpYi9zdGRkZWYuaW4uaCBpbmxpbmUt ZnJhbWUuaCBza2lwLmggXAogY29tbW9uL2NvbW1vbi11dGlscy5oIGNvbW1v bi94bWwtdXRpbHMuaCBjb21tb24vYnVmZmVyLmggY29tbW9uL3B0aWQuaCBc CiBjb21tb24vbGludXgtb3NkYXRhLmgKIApAQCAtOTA3LDcgKzkwNyw3IEBA IENPTU1PTl9PQlMgPSAkKERFUEZJTEVTKSAkKENPTkZJR19PQlMpICQoWVlP QkopIFwKIAl4bWwtc3VwcG9ydC5vIHhtbC1zeXNjYWxsLm8geG1sLXV0aWxz Lm8gXAogCXRhcmdldC1kZXNjcmlwdGlvbnMubyB0YXJnZXQtbWVtb3J5Lm8g eG1sLXRkZXNjLm8geG1sLWJ1aWx0aW4ubyBcCiAJaW5mZXJpb3IubyBvc2Rh dGEubyBnZGJfdXNsZWVwLm8gcmVjb3JkLm8gZ2NvcmUubyBcCi0Jaml0Lm8g cHJvZ3NwYWNlLm8gXAorCWppdC5vIHByb2dzcGFjZS5vIHNraXAubyBcCiAJ Y29tbW9uLXV0aWxzLm8gYnVmZmVyLm8gcHRpZC5vCiAKIFRTT0JTID0gaW5m bG93Lm8KZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MKaW5kZXgg NGQ0MzRjNS4uODIyNWNmOCAxMDA2NDQKLS0tIGEvZ2RiL05FV1MKKysrIGIv Z2RiL05FV1MKQEAgLTMsNiArMyw5IEBACiAKICoqKiBDaGFuZ2VzIHNpbmNl IEdEQiA3LjMuMQogCisqIEdEQiBub3cgYWxsb3dzIHlvdSB0byBza2lwIHVu aW50ZXJlc3RpbmcgZnVuY3Rpb25zIGFuZCBmaWxlcyB3aGVuCisgIHN0ZXBw aW5nIHdpdGggdGhlICJza2lwIGZ1bmN0aW9uIiBhbmQgInNraXAgZmlsZSIg Y29tbWFuZHMuCisKICogR0RCIGhhcyB0d28gbmV3IGNvbW1hbmRzOiAic2V0 IHJlbW90ZSBoYXJkd2FyZS13YXRjaHBvaW50LWxlbmd0aC1saW1pdCIKICAg YW5kICJzaG93IHJlbW90ZSBoYXJkd2FyZS13YXRjaHBvaW50LWxlbmd0aC1s aW1pdCIuICBUaGVzZSBhbGxvd3MgdG8KICAgc2V0IG9yIHNob3cgdGhlIG1h eGltdW0gbGVuZ3RoIGxpbWl0IChpbiBieXRlcykgb2YgYSByZW1vdGUKZGlm ZiAtLWdpdCBhL2dkYi9icmVha3BvaW50LmMgYi9nZGIvYnJlYWtwb2ludC5j CmluZGV4IDA4ZmY2OWIuLmI0MWZiNzkgMTAwNjQ0Ci0tLSBhL2dkYi9icmVh a3BvaW50LmMKKysrIGIvZ2RiL2JyZWFrcG9pbnQuYwpAQCAtNjUsNiArNjUs OCBAQAogI2luY2x1ZGUgInBhcnNlci1kZWZzLmgiCiAjaW5jbHVkZSAiY2xp L2NsaS11dGlscy5oIgogI2luY2x1ZGUgImNvbnRpbnVhdGlvbnMuaCIKKyNp bmNsdWRlICJzdGFjay5oIgorI2luY2x1ZGUgInNraXAuaCIKIAogLyogcmVh ZGxpbmUgaW5jbHVkZSBmaWxlcyAqLwogI2luY2x1ZGUgInJlYWRsaW5lL3Jl YWRsaW5lLmgiCkBAIC01NzIsMTkgKzU3NCw2IEBAIG1ha2VfY2xlYW51cF9k ZWNyZWZfY291bnRlZF9jb21tYW5kX2xpbmUgKHN0cnVjdCBjb3VudGVkX2Nv bW1hbmRfbGluZSAqKmNtZHApCiAgIHJldHVybiBtYWtlX2NsZWFudXAgKGRv X2NsZWFudXBfY291bnRlZF9jb21tYW5kX2xpbmUsIGNtZHApOwogfQogCi0v KiBEZWZhdWx0IGFkZHJlc3MsIHN5bXRhYiBhbmQgbGluZSB0byBwdXQgYSBi cmVha3BvaW50IGF0Ci0gICBmb3IgImJyZWFrIiBjb21tYW5kIHdpdGggbm8g YXJnLgotICAgSWYgZGVmYXVsdF9icmVha3BvaW50X3ZhbGlkIGlzIHplcm8s IHRoZSBvdGhlciB0aHJlZSBhcmUKLSAgIG5vdCB2YWxpZCwgYW5kICJicmVh ayIgd2l0aCBubyBhcmcgaXMgYW4gZXJyb3IuCi0KLSAgIFRoaXMgc2V0IGJ5 IHByaW50X3N0YWNrX2ZyYW1lLCB3aGljaCBjYWxscyBzZXRfZGVmYXVsdF9i cmVha3BvaW50LiAgKi8KLQotaW50IGRlZmF1bHRfYnJlYWtwb2ludF92YWxp ZDsKLUNPUkVfQUREUiBkZWZhdWx0X2JyZWFrcG9pbnRfYWRkcmVzczsKLXN0 cnVjdCBzeW10YWIgKmRlZmF1bHRfYnJlYWtwb2ludF9zeW10YWI7Ci1pbnQg ZGVmYXVsdF9icmVha3BvaW50X2xpbmU7Ci1zdHJ1Y3QgcHJvZ3JhbV9zcGFj ZSAqZGVmYXVsdF9icmVha3BvaW50X3BzcGFjZTsKLQogDAogLyogUmV0dXJu IHRoZSBicmVha3BvaW50IHdpdGggdGhlIHNwZWNpZmllZCBudW1iZXIsIG9y IE5VTEwKICAgIGlmIHRoZSBudW1iZXIgZG9lcyBub3QgcmVmZXIgdG8gYW4g ZXhpc3RpbmcgYnJlYWtwb2ludC4gICovCkBAIC01MzM5LDIwICs1MzI4LDYg QEAgZGVzY3JpYmVfb3RoZXJfYnJlYWtwb2ludHMgKHN0cnVjdCBnZGJhcmNo ICpnZGJhcmNoLAogICAgIH0KIH0KIAwKLS8qIFNldCB0aGUgZGVmYXVsdCBw bGFjZSB0byBwdXQgYSBicmVha3BvaW50Ci0gICBmb3IgdGhlIGBicmVhaycg Y29tbWFuZCB3aXRoIG5vIGFyZ3VtZW50cy4gICovCi0KLXZvaWQKLXNldF9k ZWZhdWx0X2JyZWFrcG9pbnQgKGludCB2YWxpZCwgc3RydWN0IHByb2dyYW1f c3BhY2UgKnBzcGFjZSwKLQkJCUNPUkVfQUREUiBhZGRyLCBzdHJ1Y3Qgc3lt dGFiICpzeW10YWIsCi0JCQlpbnQgbGluZSkKLXsKLSAgZGVmYXVsdF9icmVh a3BvaW50X3ZhbGlkID0gdmFsaWQ7Ci0gIGRlZmF1bHRfYnJlYWtwb2ludF9w c3BhY2UgPSBwc3BhY2U7Ci0gIGRlZmF1bHRfYnJlYWtwb2ludF9hZGRyZXNz ID0gYWRkcjsKLSAgZGVmYXVsdF9icmVha3BvaW50X3N5bXRhYiA9IHN5bXRh YjsKLSAgZGVmYXVsdF9icmVha3BvaW50X2xpbmUgPSBsaW5lOwotfQogCiAv KiBSZXR1cm4gdHJ1ZSBpZmYgaXQgaXMgbWVhbmluZ2Z1bCB0byB1c2UgdGhl IGFkZHJlc3MgbWVtYmVyIG9mCiAgICBCUFQuICBGb3Igc29tZSBicmVha3Bv aW50IHR5cGVzLCB0aGUgYWRkcmVzcyBtZW1iZXIgaXMgaXJyZWxldmFudApA QCAtNTc2NCw3ICs1NzM5LDcgQEAgc2V0X2JyZWFrcG9pbnRfbG9jYXRpb25f ZnVuY3Rpb24gKHN0cnVjdCBicF9sb2NhdGlvbiAqbG9jLCBpbnQgZXhwbGlj aXRfbG9jKQogfQogCiAvKiBBdHRlbXB0IHRvIGRldGVybWluZSBhcmNoaXRl Y3R1cmUgb2YgbG9jYXRpb24gaWRlbnRpZmllZCBieSBTQUwuICAqLwotc3Rh dGljIHN0cnVjdCBnZGJhcmNoICoKK3N0cnVjdCBnZGJhcmNoICoKIGdldF9z YWxfYXJjaCAoc3RydWN0IHN5bXRhYl9hbmRfbGluZSBzYWwpCiB7CiAgIGlm IChzYWwuc2VjdGlvbikKQEAgLTc1NDMsMjQgKzc1MTgsMjYgQEAgcGFyc2Vf YnJlYWtwb2ludF9zYWxzIChjaGFyICoqYWRkcmVzcywKICAgaWYgKCgqYWRk cmVzcykgPT0gTlVMTAogICAgICAgfHwgKHN0cm5jbXAgKCgqYWRkcmVzcyks ICJpZiIsIDIpID09IDAgJiYgaXNzcGFjZSAoKCphZGRyZXNzKVsyXSkpKQog ICAgIHsKLSAgICAgIGlmIChkZWZhdWx0X2JyZWFrcG9pbnRfdmFsaWQpCisg ICAgICAvKiBUaGUgbGFzdCBkaXNwbGF5ZWQgY29kZXBvaW50LCBpZiBpdCdz IHZhbGlkLCBpcyBvdXIgZGVmYXVsdCBicmVha3BvaW50CisgICAgICAgICBh ZGRyZXNzLiAqLworICAgICAgaWYgKGxhc3RfZGlzcGxheWVkX3NhbF9pc192 YWxpZCAoKSkKIAl7CiAJICBzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5lIHNhbDsK IAogCSAgaW5pdF9zYWwgKCZzYWwpOwkJLyogSW5pdGlhbGl6ZSB0byB6ZXJv ZXMuICAqLwogCSAgc2Fscy0+c2FscyA9IChzdHJ1Y3Qgc3ltdGFiX2FuZF9s aW5lICopCiAJICAgIHhtYWxsb2MgKHNpemVvZiAoc3RydWN0IHN5bXRhYl9h bmRfbGluZSkpOwotCSAgc2FsLnBjID0gZGVmYXVsdF9icmVha3BvaW50X2Fk ZHJlc3M7Ci0JICBzYWwubGluZSA9IGRlZmF1bHRfYnJlYWtwb2ludF9saW5l OwotCSAgc2FsLnN5bXRhYiA9IGRlZmF1bHRfYnJlYWtwb2ludF9zeW10YWI7 Ci0JICBzYWwucHNwYWNlID0gZGVmYXVsdF9icmVha3BvaW50X3BzcGFjZTsK LQkgIHNhbC5zZWN0aW9uID0gZmluZF9wY19vdmVybGF5IChzYWwucGMpOwor CisJICAvKiBTZXQgc2FsJ3MgcHNwYWNlLCBwYywgc3ltdGFiLCBhbmQgbGlu ZSB0byB0aGUgdmFsdWVzCisJICAgICBjb3JyZXNwb25kaW5nIHRvIHRoZSBs YXN0IGNhbGwgdG8gcHJpbnRfZnJhbWVfaW5mby4gKi8KKwkgIGdldF9sYXN0 X2Rpc3BsYXllZF9zYWwgKCZzYWwpOworICAgICAgICAgIHNhbC5zZWN0aW9u ID0gZmluZF9wY19vdmVybGF5IChzYWwucGMpOwogCiAJICAvKiAiYnJlYWsi IHdpdGhvdXQgYXJndW1lbnRzIGlzIGVxdWl2YWxlbnQgdG8gImJyZWFrICpQ QyIKLQkgICAgIHdoZXJlIFBDIGlzIHRoZSBkZWZhdWx0X2JyZWFrcG9pbnRf YWRkcmVzcy4gIFNvIG1ha2Ugc3VyZQotCSAgICAgdG8gc2V0IHNhbC5leHBs aWNpdF9wYyB0byBwcmV2ZW50IEdEQiBmcm9tIHRyeWluZyB0bwotCSAgICAg ZXhwYW5kIHRoZSBsaXN0IG9mIHNhbHMgdG8gaW5jbHVkZSBhbGwgb3RoZXIg aW5zdGFuY2VzCi0JICAgICB3aXRoIHRoZSBzYW1lIHN5bXRhYiBhbmQgbGlu ZS4gICovCisJICAgICB3aGVyZSBQQyBpcyB0aGUgbGFzdCBkaXNwbGF5ZWQg Y29kZXBvaW50J3MgYWRkcmVzcy4gIFNvCisJICAgICBtYWtlIHN1cmUgdG8g c2V0IHNhbC5leHBsaWNpdF9wYyB0byBwcmV2ZW50IEdEQiBmcm9tCisJICAg ICB0cnlpbmcgdG8gZXhwYW5kIHRoZSBsaXN0IG9mIHNhbHMgdG8gaW5jbHVk ZSBhbGwgb3RoZXIKKwkgICAgIGluc3RhbmNlcyB3aXRoIHRoZSBzYW1lIHN5 bXRhYiBhbmQgbGluZS4gICovCiAJICBzYWwuZXhwbGljaXRfcGMgPSAxOwog CiAJICBzYWxzLT5zYWxzWzBdID0gc2FsOwpAQCAtNzU3NCwxOSArNzU1MSwy MiBAQCBwYXJzZV9icmVha3BvaW50X3NhbHMgKGNoYXIgKiphZGRyZXNzLAog ICAgICAgLyogRm9yY2UgYWxtb3N0IGFsbCBicmVha3BvaW50cyB0byBiZSBp biB0ZXJtcyBvZiB0aGUKICAgICAgICAgIGN1cnJlbnRfc291cmNlX3N5bXRh YiAod2hpY2ggaXMgZGVjb2RlX2xpbmVfMSdzIGRlZmF1bHQpLgogICAgICAg ICAgVGhpcyBzaG91bGQgcHJvZHVjZSB0aGUgcmVzdWx0cyB3ZSB3YW50IGFs bW9zdCBhbGwgb2YgdGhlCi0gICAgICAgICB0aW1lIHdoaWxlIGxlYXZpbmcg ZGVmYXVsdF9icmVha3BvaW50XyogYWxvbmUuCisJIHRpbWUgd2hpbGUgbGVh dmluZyB0aGUgbGFzdCBkaXNwbGF5ZWQgY29kZXBvaW50IHBvaW50ZXJzCisJ IGFsb25lLgogCiAgICAgICAgICBPYmpDOiBIb3dldmVyLCBkb24ndCBtYXRj aCBhbiBPYmplY3RpdmUtQyBtZXRob2QgbmFtZSB3aGljaAogICAgICAgICAg bWF5IGhhdmUgYSAnKycgb3IgJy0nIHN1Y2NlZWRlZCBieSBhICdbJyAqLwog CSAKICAgICAgIHN0cnVjdCBzeW10YWJfYW5kX2xpbmUgY3Vyc2FsID0gZ2V0 X2N1cnJlbnRfc291cmNlX3N5bXRhYl9hbmRfbGluZSAoKTsKIAkJCQotICAg ICAgaWYgKGRlZmF1bHRfYnJlYWtwb2ludF92YWxpZAorICAgICAgaWYgKGxh c3RfZGlzcGxheWVkX3NhbF9pc192YWxpZCAoKQogCSAgJiYgKCFjdXJzYWwu c3ltdGFiCiAgCSAgICAgIHx8ICgoc3RyY2hyICgiKy0iLCAoKmFkZHJlc3Mp WzBdKSAhPSBOVUxMKQogIAkJICAmJiAoKCphZGRyZXNzKVsxXSAhPSAnWycp KSkpCi0JKnNhbHMgPSBkZWNvZGVfbGluZV8xIChhZGRyZXNzLCAxLCBkZWZh dWx0X2JyZWFrcG9pbnRfc3ltdGFiLAotCQkJICAgICAgIGRlZmF1bHRfYnJl YWtwb2ludF9saW5lLCBjYW5vbmljYWwpOworCSpzYWxzID0gZGVjb2RlX2xp bmVfMSAoYWRkcmVzcywgMSwKKwkJCSAgICAgICBnZXRfbGFzdF9kaXNwbGF5 ZWRfc3ltdGFiICgpLAorCQkJICAgICAgIGdldF9sYXN0X2Rpc3BsYXllZF9s aW5lICgpLAorCQkJICAgICAgIGNhbm9uaWNhbCk7CiAgICAgICBlbHNlCiAJ KnNhbHMgPSBkZWNvZGVfbGluZV8xIChhZGRyZXNzLCAxLCAoc3RydWN0IHN5 bXRhYiAqKSBOVUxMLCAwLAogCQkgICAgICAgICAgICAgICBjYW5vbmljYWwp OwpAQCAtOTYxMSw5ICs5NTkxLDExIEBAIHVudGlsX2JyZWFrX2NvbW1hbmQg KGNoYXIgKmFyZywgaW50IGZyb21fdHR5LCBpbnQgYW55d2hlcmUpCiAgIC8q IFNldCBhIGJyZWFrcG9pbnQgd2hlcmUgdGhlIHVzZXIgd2FudHMgaXQgYW5k IGF0IHJldHVybiBmcm9tCiAgICAgIHRoaXMgZnVuY3Rpb24uICAqLwogCi0g IGlmIChkZWZhdWx0X2JyZWFrcG9pbnRfdmFsaWQpCi0gICAgc2FscyA9IGRl Y29kZV9saW5lXzEgKCZhcmcsIDEsIGRlZmF1bHRfYnJlYWtwb2ludF9zeW10 YWIsCi0JCQkgIGRlZmF1bHRfYnJlYWtwb2ludF9saW5lLCBOVUxMKTsKKyAg aWYgKGxhc3RfZGlzcGxheWVkX3NhbF9pc192YWxpZCAoKSkKKyAgICBzYWxz ID0gZGVjb2RlX2xpbmVfMSAoJmFyZywgMSwKKwkJCSAgZ2V0X2xhc3RfZGlz cGxheWVkX3N5bXRhYiAoKSwKKwkJCSAgZ2V0X2xhc3RfZGlzcGxheWVkX2xp bmUgKCksCisJCQkgIE5VTEwpOwogICBlbHNlCiAgICAgc2FscyA9IGRlY29k ZV9saW5lXzEgKCZhcmcsIDEsIChzdHJ1Y3Qgc3ltdGFiICopIE5VTEwsIDAs IE5VTEwpOwogCkBAIC0xMDEzNSwxMCArMTAxMTcsMTEgQEAgY2xlYXJfY29t bWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHkpCiAJeG1hbGxvYyAoc2l6 ZW9mIChzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5lKSk7CiAgICAgICBtYWtlX2Ns ZWFudXAgKHhmcmVlLCBzYWxzLnNhbHMpOwogICAgICAgaW5pdF9zYWwgKCZz YWwpOwkJLyogSW5pdGlhbGl6ZSB0byB6ZXJvZXMuICAqLwotICAgICAgc2Fs LmxpbmUgPSBkZWZhdWx0X2JyZWFrcG9pbnRfbGluZTsKLSAgICAgIHNhbC5z eW10YWIgPSBkZWZhdWx0X2JyZWFrcG9pbnRfc3ltdGFiOwotICAgICAgc2Fs LnBjID0gZGVmYXVsdF9icmVha3BvaW50X2FkZHJlc3M7Ci0gICAgICBzYWwu cHNwYWNlID0gZGVmYXVsdF9icmVha3BvaW50X3BzcGFjZTsKKworICAgICAg LyogU2V0IHNhbCdzIGxpbmUsIHN5bXRhYiwgcGMsIGFuZCBwc3BhY2UgdG8g dGhlIHZhbHVlcworCSBjb3JyZXNwb25kaW5nIHRvIHRoZSBsYXN0IGNhbGwg dG8gcHJpbnRfZnJhbWVfaW5mby4gIElmIHRoZQorCSBjb2RlcG9pbnQgaXMg bm90IHZhbGlkLCB0aGlzIHdpbGwgc2V0IGFsbCB0aGUgZmllbGRzIHRvIDAu ICovCisgICAgICBnZXRfbGFzdF9kaXNwbGF5ZWRfc2FsICgmc2FsKTsKICAg ICAgIGlmIChzYWwuc3ltdGFiID09IDApCiAJZXJyb3IgKF8oIk5vIHNvdXJj ZSBmaWxlIHNwZWNpZmllZC4iKSk7CiAKQEAgLTExOTg2LDYgKzExOTY5LDkg QEAgYnJlYWtwb2ludF9yZV9zZXQgKHZvaWQpCiAgIGNyZWF0ZV9sb25nam1w X21hc3Rlcl9icmVha3BvaW50ICgpOwogICBjcmVhdGVfc3RkX3Rlcm1pbmF0 ZV9tYXN0ZXJfYnJlYWtwb2ludCAoKTsKICAgY3JlYXRlX2V4Y2VwdGlvbl9t YXN0ZXJfYnJlYWtwb2ludCAoKTsKKworICAvKiBXaGlsZSB3ZSdyZSBhdCBp dCwgcmVzZXQgdGhlIHNraXAgbGlzdCB0b28uICovCisgIHNraXBfcmVfc2V0 ICgpOwogfQogDAogLyogUmVzZXQgdGhlIHRocmVhZCBudW1iZXIgb2YgdGhp cyBicmVha3BvaW50OgpAQCAtMTI0MzUsNyArMTI0MjEsOCBAQCBpbnZhbGlk YXRlX2JwX3ZhbHVlX29uX21lbW9yeV9jaGFuZ2UgKENPUkVfQUREUiBhZGRy LCBpbnQgbGVuLAogICAgICAgfQogfQogCi0vKiBVc2UgZGVmYXVsdF9icmVh a3BvaW50XydzLCBvciBub3RoaW5nIGlmIHRoZXkgYXJlbid0IHZhbGlkLiAg Ki8KKy8qIFVzZSB0aGUgbGFzdCBkaXNwbGF5ZWQgY29kZXBvaW50J3MgdmFs dWVzLCBvciBub3RoaW5nCisgICBpZiB0aGV5IGFyZW4ndCB2YWxpZC4gKi8K IAogc3RydWN0IHN5bXRhYnNfYW5kX2xpbmVzCiBkZWNvZGVfbGluZV9zcGVj XzEgKGNoYXIgKnN0cmluZywgaW50IGZ1bmZpcnN0bGluZSkKQEAgLTEyNDQ0 LDEwICsxMjQzMSwxMCBAQCBkZWNvZGVfbGluZV9zcGVjXzEgKGNoYXIgKnN0 cmluZywgaW50IGZ1bmZpcnN0bGluZSkKIAogICBpZiAoc3RyaW5nID09IDAp CiAgICAgZXJyb3IgKF8oIkVtcHR5IGxpbmUgc3BlY2lmaWNhdGlvbi4iKSk7 Ci0gIGlmIChkZWZhdWx0X2JyZWFrcG9pbnRfdmFsaWQpCisgIGlmIChsYXN0 X2Rpc3BsYXllZF9zYWxfaXNfdmFsaWQgKCkpCiAgICAgc2FscyA9IGRlY29k ZV9saW5lXzEgKCZzdHJpbmcsIGZ1bmZpcnN0bGluZSwKLQkJCSAgZGVmYXVs dF9icmVha3BvaW50X3N5bXRhYiwKLQkJCSAgZGVmYXVsdF9icmVha3BvaW50 X2xpbmUsCisJCQkgIGdldF9sYXN0X2Rpc3BsYXllZF9zeW10YWIgKCksCisJ CQkgIGdldF9sYXN0X2Rpc3BsYXllZF9saW5lICgpLAogCQkJICBOVUxMKTsK ICAgZWxzZQogICAgIHNhbHMgPSBkZWNvZGVfbGluZV8xICgmc3RyaW5nLCBm dW5maXJzdGxpbmUsCmRpZmYgLS1naXQgYS9nZGIvYnJlYWtwb2ludC5oIGIv Z2RiL2JyZWFrcG9pbnQuaAppbmRleCA1ZTVkMWI5Li5mMTcxMDM1IDEwMDY0 NAotLS0gYS9nZGIvYnJlYWtwb2ludC5oCisrKyBiL2dkYi9icmVha3BvaW50 LmgKQEAgLTEwMzMsOSArMTAzMyw2IEBAIGV4dGVybiBzdHJ1Y3QgYnJlYWtw b2ludCAqY2xvbmVfbW9tZW50YXJ5X2JyZWFrcG9pbnQgKHN0cnVjdCBicmVh a3BvaW50ICpicGt0KTsKIAogZXh0ZXJuIHZvaWQgc2V0X2lnbm9yZV9jb3Vu dCAoaW50LCBpbnQsIGludCk7CiAKLWV4dGVybiB2b2lkIHNldF9kZWZhdWx0 X2JyZWFrcG9pbnQgKGludCwgc3RydWN0IHByb2dyYW1fc3BhY2UgKiwKLQkJ CQkgICAgQ09SRV9BRERSLCBzdHJ1Y3Qgc3ltdGFiICosIGludCk7Ci0KIGV4 dGVybiB2b2lkIGJyZWFrcG9pbnRfaW5pdF9pbmZlcmlvciAoZW51bSBpbmZf Y29udGV4dCk7CiAKIGV4dGVybiBzdHJ1Y3QgY2xlYW51cCAqbWFrZV9jbGVh bnVwX2RlbGV0ZV9icmVha3BvaW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqKTsK QEAgLTEzNTksNCArMTM1Niw4IEBAIGV4dGVybiBzdHJ1Y3QgYnJlYWtwb2lu dCAqaXRlcmF0ZV9vdmVyX2JyZWFrcG9pbnRzIChpbnQgKCopIChzdHJ1Y3Qg YnJlYWtwb2ludCAqCiAKIGV4dGVybiBpbnQgdXNlcl9icmVha3BvaW50X3Ag KHN0cnVjdCBicmVha3BvaW50ICopOwogCisvKiBBdHRlbXB0IHRvIGRldGVy bWluZSBhcmNoaXRlY3R1cmUgb2YgbG9jYXRpb24gaWRlbnRpZmllZCBieSBT QUwuICAqLworZXh0ZXJuIHN0cnVjdCBnZGJhcmNoICoKK2dldF9zYWxfYXJj aCAoc3RydWN0IHN5bXRhYl9hbmRfbGluZSBzYWwpOworCiAjZW5kaWYgLyog IWRlZmluZWQgKEJSRUFLUE9JTlRfSCkgKi8KZGlmZiAtLWdpdCBhL2dkYi9j bGkvY2xpLWNtZHMuYyBiL2dkYi9jbGkvY2xpLWNtZHMuYwppbmRleCBjY2Y2 ZWE2Li5kYWIzYTEyIDEwMDY0NAotLS0gYS9nZGIvY2xpL2NsaS1jbWRzLmMK KysrIGIvZ2RiL2NsaS9jbGktY21kcy5jCkBAIC0xODUsNiArMTg1LDggQEAg c3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKnNldGNoZWNrbGlzdDsKIAogc3Ry dWN0IGNtZF9saXN0X2VsZW1lbnQgKnNob3djaGVja2xpc3Q7CiAKK3N0cnVj dCBjbWRfbGlzdF9lbGVtZW50ICpza2lwbGlzdDsKKwogLyogQ29tbWFuZCB0 cmFjaW5nIHN0YXRlLiAgKi8KIAogaW50IHNvdXJjZV92ZXJib3NlID0gMDsK QEAgLTEzMjksNiArMTMzMSw3IEBAIGluaXRfY21kX2xpc3RzICh2b2lkKQog ICBzaG93cHJpbnRsaXN0ID0gTlVMTDsKICAgc2V0Y2hlY2tsaXN0ID0gTlVM TDsKICAgc2hvd2NoZWNrbGlzdCA9IE5VTEw7CisgIHNraXBsaXN0ID0gTlVM TDsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTEzOTQsNyArMTM5Nyw3IEBAIGlu aXRfY2xpX2NtZHMgKHZvaWQpCiAgIGNoYXIgKnNvdXJjZV9oZWxwX3RleHQ7 CiAKICAgLyogRGVmaW5lIHRoZSBjbGFzc2VzIG9mIGNvbW1hbmRzLgotICAg ICBUaGV5IHdpbGwgYXBwZWFyIGluIHRoZSBoZWxwIGxpc3QgaW4gdGhlIHJl dmVyc2Ugb2YgdGhpcyBvcmRlci4gICovCisgICAgIFRoZXkgd2lsbCBhcHBl YXIgaW4gdGhlIGhlbHAgbGlzdCBpbiBhbHBoYWJldGljYWwgb3JkZXIuICAq LwogCiAgIGFkZF9jbWQgKCJpbnRlcm5hbHMiLCBjbGFzc19tYWludGVuYW5j ZSwgTlVMTCwgXygiXAogTWFpbnRlbmFuY2UgY29tbWFuZHMuXG5cCmRpZmYg LS1naXQgYS9nZGIvY2xpL2NsaS1jbWRzLmggYi9nZGIvY2xpL2NsaS1jbWRz LmgKaW5kZXggZTc5ZGNmMC4uNzNjY2RkMiAxMDA2NDQKLS0tIGEvZ2RiL2Ns aS9jbGktY21kcy5oCisrKyBiL2dkYi9jbGkvY2xpLWNtZHMuaApAQCAtMTA2 LDYgKzEwNiw4IEBAIGV4dGVybiBzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAq c2V0Y2hlY2tsaXN0OwogCiBleHRlcm4gc3RydWN0IGNtZF9saXN0X2VsZW1l bnQgKnNob3djaGVja2xpc3Q7CiAKK2V4dGVybiBzdHJ1Y3QgY21kX2xpc3Rf ZWxlbWVudCAqc2tpcGxpc3Q7CisKIC8qIEV4cG9ydGVkIHRvIGdkYi90b3Au YyAqLwogCiB2b2lkIGluaXRfY21kX2xpc3RzICh2b2lkKTsKZGlmZiAtLWdp dCBhL2dkYi9kb2MvZ2RiLnRleGluZm8gYi9nZGIvZG9jL2dkYi50ZXhpbmZv CmluZGV4IGRkMGY3ZjYuLjM4MmRmZDQgMTAwNjQ0Ci0tLSBhL2dkYi9kb2Mv Z2RiLnRleGluZm8KKysrIGIvZ2RiL2RvYy9nZGIudGV4aW5mbwpAQCAtNDg1 NCw2ICs0ODU0LDExMSBAQCBwcm9jZWVkIHVudGlsIHRoZSBmdW5jdGlvbiBy ZXR1cm5zLgogQW4gYXJndW1lbnQgaXMgYSByZXBlYXQgY291bnQsIGFzIGlu IEBjb2Rle25leHR9LgogQGVuZCB0YWJsZQogCitAbm9kZSBTa2lwcGluZyBP dmVyIEZ1bmN0aW9ucyBhbmQgRmlsZXMKK0BzdWJzZWN0aW9uIFNraXBwaW5n IE92ZXIgRnVuY3Rpb25zIGFuZCBGaWxlcworQGNpbmRleCBza2lwcGluZyBv dmVyIGZ1bmN0aW9ucyBhbmQgZmlsZXMKKworVGhlIHByb2dyYW0geW91IGFy ZSBkZWJ1Z2dpbmcgbWF5IGNvbnRhaW4gc29tZSBmdW5jdGlvbnMgd2hpY2gg YXJlCit1bmludGVyZXN0aW5nIHRvIGRlYnVnLiAgVGhlIEBjb2Rle3NraXB9 IGNvbWFuZCBsZXRzIHlvdSB0ZWxsIEB2YWx1ZXtHREJOfSB0bworc2tpcCBh IGZ1bmN0aW9uIG9yIGFsbCBmdW5jdGlvbnMgaW4gYSBmaWxlIHdoZW4gc3Rl cHBpbmcuCisKK0ZvciBleGFtcGxlLCBjb25zaWRlciB0aGUgZm9sbG93aW5n IEMgZnVuY3Rpb246CisKK0BzbWFsbGV4YW1wbGUKKzEwMSAgICAgaW50IGZ1 bmMoKQorMTAyICAgICBAeworMTAzICAgICAgICAgZm9vKGJvcmluZygpKTsK KzEwNCAgICAgICAgIGJhcihib3JpbmcoKSk7CisxMDUgICAgIEB9CitAZW5k IHNtYWxsZXhhbXBsZQorCitAbm9pbmRlbnQKK1N1cHBvc2UgeW91IHdpc2gg dG8gc3RlcCBpbnRvIHRoZSBmdW5jdGlvbnMgQGNvZGV7Zm9vfSBhbmQgQGNv ZGV7YmFyfSwgYnV0IHlvdQorYXJlIG5vdCBpbnRlcmVzdGVkIGluIHN0ZXBw aW5nIHRocm91Z2ggQGNvZGV7Ym9yaW5nfS4gIElmIHlvdSBydW4gQGNvZGV7 c3RlcH0KK2F0IGxpbmUgMTAzLCB5b3UnbGwgZW50ZXIgQGNvZGV7Ym9yaW5n KCl9LCBidXQgaWYgeW91IHJ1biBAY29kZXtuZXh0fSwgeW91J2xsCitzdGVw IG92ZXIgYm90aCBAY29kZXtmb299IGFuZCBAY29kZXtib3Jpbmd9IQorCitP bmUgc29sdXRpb24gaXMgdG8gQGNvZGV7c3RlcH0gaW50byBAY29kZXtib3Jp bmd9IGFuZCB1c2UgdGhlIEBjb2Rle2ZpbmlzaH0KK2NvbW1hbmQgdG8gaW1t ZWRpYXRlbHkgZXhpdCBpdC4gIEJ1dCB0aGlzIGNhbiBiZWNvbWUgdGVkaW91 cyBpZiBAY29kZXtib3Jpbmd9CitpcyBjYWxsZWQgZnJvbSBtYW55IHBsYWNl cy4KKworQSBtb3JlIGZsZXhpYmxlIHNvbHV0aW9uIGlzIHRvIGV4ZWN1dGUg QGtiZHtza2lwIGJvcmluZ30uICBUaGlzIGluc3RydWN0cworQHZhbHVle0dE Qk59IG5ldmVyIHRvIHN0ZXAgaW50byBAY29kZXtib3Jpbmd9LiAgTm93IHdo ZW4geW91IGV4ZWN1dGUKK0Bjb2Rle3N0ZXB9IGF0IGxpbmUgMTAzLCB5b3Un bGwgc3RlcCBvdmVyIEBjb2Rle2JvcmluZ30gYW5kIGRpcmVjdGx5IGludG8K K0Bjb2Rle2Zvb30uCisKK1lvdSBjYW4gYWxzbyBpbnN0cnVjdCBAdmFsdWV7 R0RCTn0gdG8gc2tpcCBhbGwgZnVuY3Rpb25zIGluIGEgZmlsZSwgd2l0aCwg Zm9yCitleGFtcGxlLCBAY29kZXtza2lwIGZpbGUgYm9yaW5nLmN9LgorCitA dGFibGUgQGNvZGUKK0BraW5kZXggc2tpcCBmdW5jdGlvbgorQGl0ZW0gc2tp cCBAcntbfUB2YXJ7bGluZXNwZWN9QHJ7XX0KK0BpdGVteCBza2lwIGZ1bmN0 aW9uIEBye1t9QHZhcntsaW5lc3BlY31AcntdfQorQWZ0ZXIgcnVubmluZyB0 aGlzIGNvbW1hbmQsIHRoZSBmdW5jdGlvbiBuYW1lZCBieSBAdmFye2xpbmVz cGVjfSBvciB0aGUKK2Z1bmN0aW9uIGNvbnRhaW5pbmcgdGhlIGxpbmUgbmFt ZWQgYnkgQHZhcntsaW5lc3BlY30gd2lsbCBiZSBza2lwcGVkIG92ZXIgd2hl bgorc3RlcHBpbmcuICBAeHJlZntTcGVjaWZ5IExvY2F0aW9ufQorCitJZiB5 b3UgZG8gbm90IHNwZWNpZnkgQHZhcntsaW5lc3BlY30sIHRoZSBmdW5jdGlv biB5b3UncmUgY3VycmVudGx5IGRlYnVnZ2luZword2lsbCBiZSBza2lwcGVk LgorCisoSWYgeW91IGhhdmUgYSBmdW5jdGlvbiBjYWxsZWQgQGNvZGV7Zmls ZX0gdGhhdCB5b3Ugd2FudCB0byBza2lwLCB1c2UKK0BrYmR7c2tpcCBmdW5j dGlvbiBmaWxlfS4pCisKK0BraW5kZXggc2tpcCBmaWxlCitAaXRlbSBza2lw IGZpbGUgQHJ7W31AdmFye2ZpbGVuYW1lfUBye119CitBZnRlciBydW5uaW5n IHRoaXMgY29tbWFuZCwgYW55IGZ1bmN0aW9uIHdob3NlIHNvdXJjZSBsaXZl cyBpbiBAdmFye2ZpbGVuYW1lfQord2lsbCBiZSBza2lwcGVkIG92ZXIgd2hl biBzdGVwcGluZy4KKworSWYgeW91IGRvIG5vdCBzcGVjaWZ5IEB2YXJ7Zmls ZW5hbWV9LCBmdW5jdGlvbnMgd2hvc2Ugc291cmNlIGxpdmVzIGluIHRoZSBm aWxlCit5b3UncmUgY3VycmVudGx5IGRlYnVnZ2luZyB3aWxsIGJlIHNraXBw ZWQuCitAZW5kIHRhYmxlCisKK1NraXBzIGNhbiBiZSBsaXN0ZWQsIGRlbGV0 ZWQsIGRpc2FibGVkLCBhbmQgZW5hYmxlZCwgbXVjaCBsaWtlIGJyZWFrcG9p bnRzLgorVGhlc2UgYXJlIHRoZSBjb21tYW5kcyBmb3IgbWFuYWdpbmcgeW91 ciBsaXN0IG9mIHNraXBzOgorCitAdGFibGUgQGNvZGUKK0BraW5kZXggaW5m byBza2lwCitAaXRlbSBpbmZvIHNraXAgQHJ7W31AdmFye3JhbmdlfUBye119 CitQcmludCBkZXRhaWxzIGFib3V0IHRoZSBzcGVjaWZpZWQgc2tpcChzKS4g IElmIEB2YXJ7cmFuZ2V9IGlzIG5vdCBzcGVjaWZpZWQsCitwcmludCBhIHRh YmxlIHdpdGggZGV0YWlscyBhYm91dCBhbGwgZnVuY3Rpb25zIGFuZCBmaWxl cyBtYXJrZWQgZm9yIHNraXBwaW5nLgorQGNvZGV7aW5mbyBza2lwfSBwcmlu dHMgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbiBhYm91dCBlYWNoIHNraXA6 CisKK0B0YWJsZSBAZW1waAorQGl0ZW0gSWRlbnRpZmllcgorQSBudW1iZXIg aWRlbnRpZnlpbmcgdGhpcyBza2lwLgorQGl0ZW0gVHlwZQorVGhlIHR5cGUg b2YgdGhpcyBza2lwLCBlaXRoZXIgQHNhbXB7ZnVuY3Rpb259IG9yIEBzYW1w e2ZpbGV9LgorQGl0ZW0gRW5hYmxlZCBvciBEaXNhYmxlZAorRW5hYmxlZCBz a2lwcyBhcmUgbWFya2VkIHdpdGggQHNhbXB7eX0uICBEaXNhYmxlZCBza2lw cyBhcmUgbWFya2VkIHdpdGggQHNhbXB7bn0uCitAaXRlbSBBZGRyZXNzCitG b3IgZnVuY3Rpb24gc2tpcHMsIHRoaXMgY29sdW1uIGluZGljYXRlcyB0aGUg YWRkcmVzcyBpbiBtZW1vcnkgb2YgdGhlIGZ1bmN0aW9uCitiZWluZyBza2lw cGVkLiAgSWYgeW91J3ZlIHNldCBhIGZ1bmN0aW9uIHNraXAgb24gYSBmdW5j dGlvbiB3aGljaCBoYXMgbm90IHlldAorYmVlbiBsb2FkZWQsIHRoaXMgZmll bGQgd2lsbCBjb250YWluIEBzYW1wezxQRU5ESU5HPn0uICBPbmNlIGEgc2hh cmVkIGxpYnJhcnkKK3doaWNoIGhhcyB0aGUgZnVuY3Rpb24gaXMgbG9hZGVk LCBAY29kZXtpbmZvIHNraXB9IHdpbGwgc2hvdyB0aGUgZnVuY3Rpb24ncwor YWRkcmVzcyBoZXJlLgorQGl0ZW0gV2hhdAorRm9yIGZpbGUgc2tpcHMsIHRo aXMgZmllbGQgY29udGFpbnMgdGhlIGZpbGVuYW1lIGJlaW5nIHNraXBwZWQu ICBGb3IgZnVuY3Rpb25zCitza2lwcywgdGhpcyBmaWVsZCBjb250YWlucyB0 aGUgZnVuY3Rpb24gbmFtZSBhbmQgaXRzIGxpbmUgbnVtYmVyIGluIHRoZSBm aWxlCit3aGVyZSBpdCBpcyBkZWZpbmVkLgorQGVuZCB0YWJsZQorCitAa2lu ZGV4IHNraXAgZGVsZXRlCitAaXRlbSBza2lwIGRlbGV0ZSBAcntbfUB2YXJ7 cmFuZ2V9QHJ7XX0KK0RlbGV0ZSB0aGUgc3BlY2lmaWVkIHNraXAocykuICBJ ZiBAdmFye3JhbmdlfSBpcyBub3Qgc3BlY2lmaWVkLCBkZWxldGUgYWxsCitz a2lwcy4KKworQGtpbmRleCBza2lwIGVuYWJsZQorQGl0ZW0gc2tpcCBlbmFi bGUgQHJ7W31AdmFye3JhbmdlfUBye119CitFbmFibGUgdGhlIHNwZWNpZmll ZCBza2lwKHMpLiAgSWYgQHZhcntyYW5nZX0gaXMgbm90IHNwZWNpZmllZCwg ZW5hYmxlIGFsbAorc2tpcHMuCisKK0BraW5kZXggc2tpcCBkaXNhYmxlCitA aXRlbSBza2lwIGRpc2FibGUgQHJ7W31AdmFye3JhbmdlfUBye119CitEaXNh YmxlIHRoZSBzcGVjaWZpZWQgc2tpcChzKS4gIElmIEB2YXJ7cmFuZ2V9IGlz IG5vdCBzcGVjaWZpZWQsIGRpc2FibGUgYWxsCitza2lwcy4KKworQGVuZCB0 YWJsZQorCiBAbm9kZSBTaWduYWxzCiBAc2VjdGlvbiBTaWduYWxzCiBAY2lu ZGV4IHNpZ25hbHMKZGlmZiAtLWdpdCBhL2dkYi9nZGJjbWQuaCBiL2dkYi9n ZGJjbWQuaAppbmRleCBjMDJjZTY5Li42MDZiODEyIDEwMDY0NAotLS0gYS9n ZGIvZ2RiY21kLmgKKysrIGIvZ2RiL2dkYmNtZC5oCkBAIC0xMjQsNiArMTI0 LDggQEAgZXh0ZXJuIHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpzZXRjaGVj a2xpc3Q7CiAKIGV4dGVybiBzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqc2hv d2NoZWNrbGlzdDsKIAorZXh0ZXJuIHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50 ICpza2lwbGlzdDsKKwogLyogQ2hhaW4gY29udGFpbmluZyBhbGwgZGVmaW5l ZCAic2F2ZSIgc3ViY29tbWFuZHMuICAqLwogCiBleHRlcm4gc3RydWN0IGNt ZF9saXN0X2VsZW1lbnQgKnNhdmVfY21kbGlzdDsKZGlmZiAtLWdpdCBhL2dk Yi9pbmZydW4uYyBiL2dkYi9pbmZydW4uYwppbmRleCAyMjUwMzRjLi5lOGJl MTIxIDEwMDY0NAotLS0gYS9nZGIvaW5mcnVuLmMKKysrIGIvZ2RiL2luZnJ1 bi5jCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSAidHJhY2Vwb2ludC5o IgogI2luY2x1ZGUgImNvbnRpbnVhdGlvbnMuaCIKICNpbmNsdWRlICJpbnRl cnBzLmgiCisjaW5jbHVkZSAic2tpcC5oIgogCiAvKiBQcm90b3R5cGVzIGZv ciBsb2NhbCBmdW5jdGlvbnMgKi8KIApAQCAtNDgyOSw3ICs0ODMwLDggQEAg cHJvY2Vzc19ldmVudF9zdG9wX3Rlc3Q6CiAJfQogCiAgICAgICAvKiBJZiB3 ZSBoYXZlIGxpbmUgbnVtYmVyIGluZm9ybWF0aW9uIGZvciB0aGUgZnVuY3Rp b24gd2UgYXJlCi0gICAgICAgICB0aGlua2luZyBvZiBzdGVwcGluZyBpbnRv LCBzdGVwIGludG8gaXQuCisJIHRoaW5raW5nIG9mIHN0ZXBwaW5nIGludG8g YW5kIHRoZSBmdW5jdGlvbiBpc24ndCBvbiB0aGUgc2tpcAorCSBsaXN0LCBz dGVwIGludG8gaXQuCiAKICAgICAgICAgIElmIHRoZXJlIGFyZSBzZXZlcmFs IHN5bXRhYnMgYXQgdGhhdCBQQyAoZS5nLiB3aXRoIGluY2x1ZGUKICAgICAg ICAgIGZpbGVzKSwganVzdCB3YW50IHRvIGtub3cgd2hldGhlciAqYW55KiBv ZiB0aGVtIGhhdmUgbGluZQpAQCAtNDgzOCw3ICs0ODQwLDggQEAgcHJvY2Vz c19ldmVudF9zdG9wX3Rlc3Q6CiAJc3RydWN0IHN5bXRhYl9hbmRfbGluZSB0 bXBfc2FsOwogCiAJdG1wX3NhbCA9IGZpbmRfcGNfbGluZSAoZWNzLT5zdG9w X2Z1bmNfc3RhcnQsIDApOwotCWlmICh0bXBfc2FsLmxpbmUgIT0gMCkKKwlp ZiAodG1wX3NhbC5saW5lICE9IDAgJiYKKwkgICAgIWZ1bmN0aW9uX3BjX2lz X21hcmtlZF9mb3Jfc2tpcCAoZWNzLT5zdG9wX2Z1bmNfc3RhcnQpKQogCSAg ewogCSAgICBpZiAoZXhlY3V0aW9uX2RpcmVjdGlvbiA9PSBFWEVDX1JFVkVS U0UpCiAJICAgICAgaGFuZGxlX3N0ZXBfaW50b19mdW5jdGlvbl9iYWNrd2Fy ZCAoZ2RiYXJjaCwgZWNzKTsKZGlmZiAtLWdpdCBhL2dkYi9za2lwLmMgYi9n ZGIvc2tpcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmQyZjA2NGYKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIvc2tpcC5jCkBAIC0w LDAgKzEsNTk4IEBACisvKiBTa2lwcGluZyB1bmludGVyZXN0aW5nIGZpbGVz IGFuZCBmdW5jdGlvbnMgd2hpbGUgc3RlcHBpbmcuCisKKyAgIENvcHlyaWdo dCAoQykgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKwor ICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorICAgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2luY2x1ZGUgImRlZnMu aCIKKyNpbmNsdWRlICJza2lwLmgiCisjaW5jbHVkZSAidmFsdWUuaCIKKyNp bmNsdWRlICJ2YWxwcmludC5oIgorI2luY2x1ZGUgInVpLW91dC5oIgorI2lu Y2x1ZGUgImdkYl9zdHJpbmcuaCIKKyNpbmNsdWRlICJzeW10YWIuaCIKKyNp bmNsdWRlICJnZGJjbWQuaCIKKyNpbmNsdWRlICJjb21tYW5kLmgiCisjaW5j bHVkZSAiY29tcGxldGVyLmgiCisjaW5jbHVkZSAic3RhY2suaCIKKyNpbmNs dWRlICJjbGkvY2xpLXV0aWxzLmgiCisjaW5jbHVkZSAiYXJjaC11dGlscy5o IgorI2luY2x1ZGUgImxpbmVzcGVjLmgiCisjaW5jbHVkZSAib2JqZmlsZXMu aCIKKyNpbmNsdWRlICJleGNlcHRpb25zLmgiCisjaW5jbHVkZSAiYnJlYWtw b2ludC5oIiAvKiBmb3IgZ2V0X3NhbF9hcmNoKCkgKi8KKworc3RydWN0IHNr aXBsaXN0X2VudHJ5Cit7CisgIGludCBudW1iZXI7CisKKyAgLyogTlVMTCBp ZiB0aGlzIGlzbid0IGEgc2tpcGxpc3QgZW50cnkgZm9yIGFuIGVudGlyZSBm aWxlLgorICAgICBUaGUgc2tpcGxpc3QgZW50cnkgb3ducyB0aGlzIHBvaW50 ZXIuICAqLworICBjaGFyICpmaWxlbmFtZTsKKworICAvKiBUaGUgbmFtZSBv ZiB0aGUgbWFya2VkLWZvci1za2lwIGZ1bmN0aW9uLCBpZiB0aGlzIGlzIGEg c2tpcGxpc3QKKyAgICAgZW50cnkgZm9yIGEgZnVuY3Rpb24uICBOb3RlIHRo YXQgdGhpcyBtaWdodCBiZSBub24tbnVsbCBldmVuIGlmCisgICAgIHRoZSBw YyBpcyAwIGlmIHRoZSBlbnRyeSBpcyBwZW5kaW5nIGEgc2hhcmVkIGxpYnJh cnkgbG9hZC4KKworICAgICBUaGUgc2tpcGxpc3QgZW50cnkgb3ducyB0aGlz IHBvaW50ZXIuICAqLworICBjaGFyICpmdW5jdGlvbl9uYW1lOworCisgIC8q IDAgaWYgdGhpcyBpcyBhIHNraXBsaXN0IGVudHJ5IGZvciBhbiBlbnRpcmUg ZmlsZSwgb3IgaWYgdGhpcworICAgICBlbnRyeSB3aWxsIGJlIG9uIGEgZnVu Y3Rpb24sIHBlbmRpbmcgYSBzaGFyZWQgbGlicmFyeSBsb2FkLiAgKi8KKyAg Q09SRV9BRERSIHBjOworCisgIC8qIEFyY2hpdGVjdHVyZSB3ZSB1c2VkIHRv IGNyZWF0ZSB0aGUgc2tpcGxpc3QgZW50cnkuIE1heSBiZSBudWxsCisgICAg IGlmIHRoZSBlbnRyeSBpcyBwZW5kaW5nIGEgc2hhcmVkIGxpYnJhcnkgbG9h ZC4gICovCisgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoOworCisgIGludCBl bmFibGVkOworICBpbnQgcGVuZGluZzsKKworICBzdHJ1Y3Qgc2tpcGxpc3Rf ZW50cnkgKm5leHQ7Cit9OworCitzdGF0aWMgdm9pZCBza2lwX2Z1bmN0aW9u X2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KTsKK3N0YXRpYyB2 b2lkIHNraXBfZmlsZV9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0 eSk7CitzdGF0aWMgdm9pZCBza2lwX2luZm8gKGNoYXIgKmFyZywgaW50IGZy b21fdHR5KTsKKworc3RhdGljIHZvaWQgYWRkX3NraXBsaXN0X2VudHJ5IChz dHJ1Y3Qgc2tpcGxpc3RfZW50cnkgKmUpOworc3RhdGljIHZvaWQgc2tpcF9m dW5jdGlvbl9wYyAoQ09SRV9BRERSIHBjLCBjaGFyICpuYW1lLAorCQkJICAg ICAgc3RydWN0IGdkYmFyY2ggKmFyY2gsCisJCQkgICAgICBpbnQgcGVuZGlu Zyk7CisKK3N0YXRpYyBzdHJ1Y3Qgc2tpcGxpc3RfZW50cnkgKnNraXBsaXN0 X2VudHJ5X2NoYWluOworc3RhdGljIGludCBza2lwbGlzdF9lbnRyeV9jb3Vu dDsKKworI2RlZmluZSBBTExfU0tJUExJU1RfRU5UUklFUyhFKSBcCisgIGZv ciAoRSA9IHNraXBsaXN0X2VudHJ5X2NoYWluOyBFOyBFID0gRS0+bmV4dCkK KworI2RlZmluZSBBTExfU0tJUExJU1RfRU5UUklFU19TQUZFKEUsVE1QKSBc CisgIGZvciAoRSA9IHNraXBsaXN0X2VudHJ5X2NoYWluOyAgICAgICAgIFwK KyAgICAgICBFID8gKFRNUCA9IEUtPm5leHQsIDEpIDogMDsgICAgICAgXAor ICAgICAgIEUgPSBUTVApCisKK3N0YXRpYyB2b2lkCitza2lwX2ZpbGVfY29t bWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHkpCit7CisgIHN0cnVjdCBz a2lwbGlzdF9lbnRyeSAqZTsKKyAgc3RydWN0IHN5bXRhYiAqc3ltdGFiOwor ICBpbnQgcGVuZGluZyA9IDA7CisgIGNoYXIgKmZpbGVuYW1lID0gMDsKKwor ICAvKiBJZiBubyBhcmd1bWVudCB3YXMgZ2l2ZW4sIHRyeSB0byBkZWZhdWx0 IHRvIHRoZSBsYXN0CisgICAgIGRpc3BsYXllZCBjb2RlcG9pbnQuICovCisg IGlmIChhcmcgPT0gMCkKKyAgICB7CisgICAgICBzeW10YWIgPSBnZXRfbGFz dF9kaXNwbGF5ZWRfc3ltdGFiICgpOworICAgICAgaWYgKHN5bXRhYiA9PSAw KQorCWVycm9yIChfKCJObyBkZWZhdWx0IGZpbGUgbm93LiIpKTsKKyAgICAg IGVsc2UKKwlmaWxlbmFtZSA9IHN5bXRhYi0+ZmlsZW5hbWU7CisgICAgfQor ICBlbHNlCisgICAgeworICAgICAgc3ltdGFiID0gbG9va3VwX3N5bXRhYiAo YXJnKTsKKyAgICAgIGlmIChzeW10YWIgPT0gMCkKKwl7CisJICBmcHJpbnRm X2ZpbHRlcmVkIChnZGJfc3RkZXJyLCBfKCJObyBzb3VyY2UgZmlsZSBuYW1l ZCAlcy5cbiIpLCBhcmcpOworCSAgaWYgKCFucXVlcnkgKF8oIlwKK0lnbm9y ZSBmaWxlIHBlbmRpbmcgZnV0dXJlIHNoYXJlZCBsaWJyYXJ5IGxvYWQ/ICIp KSkKKwkgICAgcmV0dXJuOworCisJICBwZW5kaW5nID0gMTsKKwkgIGZpbGVu YW1lID0gYXJnOworCX0KKyAgICAgIGVsc2UKKwlmaWxlbmFtZSA9IHN5bXRh Yi0+ZmlsZW5hbWU7CisgICAgfQorCisgIGUgPSBYWkFMTE9DIChzdHJ1Y3Qg c2tpcGxpc3RfZW50cnkpOworICBlLT5maWxlbmFtZSA9IHhzdHJkdXAgKGZp bGVuYW1lKTsKKyAgZS0+ZW5hYmxlZCA9IDE7CisgIGUtPnBlbmRpbmcgPSBw ZW5kaW5nOworICBpZiAoc3ltdGFiICE9IDApCisgICAgZS0+Z2RiYXJjaCA9 IGdldF9vYmpmaWxlX2FyY2ggKHN5bXRhYi0+b2JqZmlsZSk7CisKKyAgYWRk X3NraXBsaXN0X2VudHJ5IChlKTsKKworICBwcmludGZfZmlsdGVyZWQgKF8o IkZpbGUgJXMgd2lsbCBiZSBza2lwcGVkIHdoZW4gc3RlcHBpbmcuXG4iKSwg ZmlsZW5hbWUpOworfQorCitzdGF0aWMgdm9pZAorc2tpcF9mdW5jdGlvbl9j b21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKK3sKKyAgQ09SRV9B RERSIGZ1bmNfcGM7CisgIGNoYXIgKm5hbWUgPSBOVUxMOworCisgIC8qIERl ZmF1bHQgdG8gdGhlIGN1cnJlbnQgZnVuY3Rpb24gaWYgbm8gYXJndW1lbnQg aXMgZ2l2ZW4uICovCisgIGlmIChhcmcgPT0gMCkKKyAgICB7CisgICAgICBD T1JFX0FERFIgcGM7CisgICAgICBpZiAoIWxhc3RfZGlzcGxheWVkX3NhbF9p c192YWxpZCAoKSkKKwllcnJvciAoXygiTm8gZGVmYXVsdCBmdW5jdGlvbiBu b3cuIikpOworCisgICAgICBwYyA9IGdldF9sYXN0X2Rpc3BsYXllZF9hZGRy ICgpOworICAgICAgaWYgKCFmaW5kX3BjX3BhcnRpYWxfZnVuY3Rpb24gKHBj LCAmbmFtZSwgJmZ1bmNfcGMsIDApKQorCXsKKwkgIGVycm9yIChfKCJObyBm dW5jdGlvbiBmb3VuZCBjb250YWluaW5nIGN1cnJlbnQgcHJvZ3JhbSBwb2lu dCAlcy4iKSwKKwkJICBwYWRkcmVzcyAoZ2V0X2N1cnJlbnRfYXJjaCAoKSwg cGMpKTsKKwl9CisgICAgICBza2lwX2Z1bmN0aW9uX3BjIChmdW5jX3BjLCBu YW1lLCBnZXRfY3VycmVudF9hcmNoICgpLCAwKTsKKyAgICB9CisgIGVsc2UK KyAgICB7CisgICAgICAvKiBEZWNvZGUgYXJnLiAgV2Ugc2V0IGZ1bmZpcnN0 bGluZT0xIHNvIGRlY29kZV9saW5lXzEgd2lsbCBnaXZlIHVzIHRoZQorCSBm aXJzdCBsaW5lIG9mIHRoZSBmdW5jdGlvbiBzcGVjaWZpZWQsIGlmIGl0IGNh biwgYW5kIHNvIHRoYXQgd2UnbGwKKwkgcmVqZWN0IHZhcmlhYmxlIG5hbWVz IGFuZCB0aGUgbGlrZS4gKi8KKworICAgICAgaW50IGk7CisgICAgICBpbnQg cGVuZGluZyA9IDA7CisgICAgICBjaGFyICpvcmlnX2FyZyA9IGFyZzsgLyog ZGVjb2RlX2xpbmVfMSBtb2RpZmllcyB0aGUgYXJnIHBvaW50ZXIuICovCisg ICAgICB2b2xhdGlsZSBzdHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBkZWNvZGVfZXhj ZXB0aW9uOworICAgICAgc3RydWN0IHN5bXRhYnNfYW5kX2xpbmVzIHNhbHM7 CisKKyAgICAgIFRSWV9DQVRDSCAoZGVjb2RlX2V4Y2VwdGlvbiwgTk9UX0ZP VU5EX0VSUk9SKQorCXsKKwkgIHNhbHMgPSBkZWNvZGVfbGluZV8xICgmYXJn LCAxLCAwLCAwLCAwKTsKKwl9CisKKyAgICAgIGlmIChkZWNvZGVfZXhjZXB0 aW9uLnJlYXNvbiA8IDApCisgICAgICAgIHsKKwkgIGZwcmludGZfZmlsdGVy ZWQgKGdkYl9zdGRlcnIsCisJCQkgICAgXygiTm8gZnVuY3Rpb24gZm91bmQg bmFtZWQgJXMuXG4iKSwgb3JpZ19hcmcpOworCisJICBpZiAobnF1ZXJ5IChf KCJcCitJZ25vcmUgZnVuY3Rpb24gcGVuZGluZyBmdXR1cmUgc2hhcmVkIGxp YnJhcnkgbG9hZD8gIikpKQorCSAgICB7CisJICAgICAgLyogQWRkIHRoZSBw ZW5kaW5nIHNraXBsaXN0IGVudHJ5LiAqLworCSAgICAgIHNraXBfZnVuY3Rp b25fcGMgKDAsIG9yaWdfYXJnLCAwLCAxKTsKKwkgICAgfQorCisJICByZXR1 cm47CisJfQorCisgICAgICBpZiAoc2Fscy5uZWx0cyA+IDEpCisJZXJyb3Ig KF8oIlNwZWNpZnkganVzdCBvbmUgZnVuY3Rpb24gYXQgYSB0aW1lLiIpKTsK KyAgICAgIGlmIChzdHJsZW4gKGFyZykgIT0gMCkKKwllcnJvciAoXygiSnVu ayBhdCBlbmQgb2YgYXJndW1lbnRzLiIpKTsKKworICAgICAgLyogVGhlIHBj IGRlY29kZV9saW5lXzEgZ2l2ZXMgdXMgaXMgdGhlIGZpcnN0IGxpbmUgb2Yg dGhlIGZ1bmN0aW9uLAorCSBidXQgd2UgYWN0dWFsbHkgd2FudCB0aGUgbGlu ZSBiZWZvcmUgdGhhdC4gIFRoZSBjYWxsIHRvCisJIGZpbmRfcGNfcGFydGlh bF9mdW5jdGlvbiBnZXRzIHVzIHRoZSB2YWx1ZSB3ZSBhY3R1YWxseSB3YW50 LiAqLworICAgICAgeworCXN0cnVjdCBzeW10YWJfYW5kX2xpbmUgc2FsID0g c2Fscy5zYWxzWzBdOworCUNPUkVfQUREUiBwYyA9IHNhbC5wYzsKKwlDT1JF X0FERFIgZnVuY19zdGFydCA9IDA7CisJc3RydWN0IGdkYmFyY2ggKmFyY2gg PSBnZXRfc2FsX2FyY2ggKHNhbCk7CisKKwlpZiAoIWZpbmRfcGNfcGFydGlh bF9mdW5jdGlvbiAocGMsICZuYW1lLCAmZnVuY19zdGFydCwgMCkpCisJICB7 CisJICAgIGVycm9yIChfKCJObyBmdW5jdGlvbiBmb3VuZCBjb250YWluaW5n IHByb2dyYW0gcG9pbnQgJXMuIiksCisJCSAgICAgcGFkZHJlc3MgKGFyY2gs IHBjKSk7CisJICB9CisKKwlza2lwX2Z1bmN0aW9uX3BjIChmdW5jX3N0YXJ0 LCBuYW1lLCBhcmNoLCAwKTsKKyAgICAgIH0KKyAgICB9Cit9CisKK3N0YXRp YyB2b2lkCitza2lwX2luZm8gKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQor eworICBzdHJ1Y3Qgc2tpcGxpc3RfZW50cnkgKmU7CisgIGludCBudW1fcHJp bnRhYmxlX2VudHJpZXMgPSAwOworICBpbnQgYWRkcmVzc193aWR0aCA9IDEw OworICBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyBvcHRzOworICBzdHJ1 Y3QgY2xlYW51cCAqdGJsX2NoYWluOworCisgIGdldF91c2VyX3ByaW50X29w dGlvbnMgKCZvcHRzKTsKKworICAvKiBDb3VudCB0aGUgbnVtYmVyIG9mIHJv d3MgaW4gdGhlIHRhYmxlIGFuZCBzZWUgaWYgd2UgbmVlZCBzcGFjZSBmb3Ig YQorICAgICA2NC1iaXQgYWRkcmVzcyBhbnl3aGVyZS4gKi8KKyAgQUxMX1NL SVBMSVNUX0VOVFJJRVMgKGUpCisgICAgaWYgKGFyZyA9PSAwIHx8IG51bWJl cl9pc19pbl9saXN0KGFyZywgZS0+bnVtYmVyKSkKKyAgICAgIHsKKwludW1f cHJpbnRhYmxlX2VudHJpZXMrKzsKKwlpZiAoZS0+Z2RiYXJjaCAmJiBnZGJh cmNoX2FkZHJfYml0IChlLT5nZGJhcmNoKSA+IDMyKQorCSAgYWRkcmVzc193 aWR0aCA9IDE4OworICAgICAgfQorCisgIGlmIChudW1fcHJpbnRhYmxlX2Vu dHJpZXMgPT0gMCkKKyAgICB7CisgICAgICBpZiAoYXJnID09IDApCisJdWlf b3V0X21lc3NhZ2UgKGN1cnJlbnRfdWlvdXQsIDAsIF8oIlwKK05vdCBza2lw cGluZyBhbnkgZmlsZXMgb3IgZnVuY3Rpb25zLlxuIikpOworICAgICAgZWxz ZQorCXVpX291dF9tZXNzYWdlIChjdXJyZW50X3Vpb3V0LCAwLAorCQkJXygi Tm8gc2tpcGxpc3QgZW50cmllcyBmb3VuZCB3aXRoIG51bWJlciAlcy5cbiIp LCBhcmcpOworCisgICAgICByZXR1cm47CisgICAgfQorCisgIGlmIChvcHRz LmFkZHJlc3NwcmludCkKKyAgICB0YmxfY2hhaW4gPSBtYWtlX2NsZWFudXBf dWlfb3V0X3RhYmxlX2JlZ2luX2VuZCAoY3VycmVudF91aW91dCwgNSwKKwkJ CQkJCSAgICAgbnVtX3ByaW50YWJsZV9lbnRyaWVzLAorCQkJCQkJICAgICAi U2tpcGxpc3RUYWJsZSIpOworICBlbHNlCisgICAgdGJsX2NoYWluCisgICAg ICAgPSBtYWtlX2NsZWFudXBfdWlfb3V0X3RhYmxlX2JlZ2luX2VuZCAoY3Vy cmVudF91aW91dCwgNCwKKwkJCQkJICAgICAgbnVtX3ByaW50YWJsZV9lbnRy aWVzLAorCQkJCQkgICAgICAiU2tpcGxpc3RUYWJsZSIpOworCisgIHVpX291 dF90YWJsZV9oZWFkZXIgKGN1cnJlbnRfdWlvdXQsIDcsIHVpX2xlZnQsICJu dW1iZXIiLCAiTnVtIik7ICAgICAgLyogMSAqLworICB1aV9vdXRfdGFibGVf aGVhZGVyIChjdXJyZW50X3Vpb3V0LCAxNCwgdWlfbGVmdCwgInR5cGUiLCAi VHlwZSIpOyAgICAgIC8qIDIgKi8KKyAgdWlfb3V0X3RhYmxlX2hlYWRlciAo Y3VycmVudF91aW91dCwgMywgdWlfbGVmdCwgImVuYWJsZWQiLCAiRW5iIik7 ICAgICAvKiAzICovCisgIGlmIChvcHRzLmFkZHJlc3NwcmludCkKKyAgICB7 CisgICAgICB1aV9vdXRfdGFibGVfaGVhZGVyIChjdXJyZW50X3Vpb3V0LCBh ZGRyZXNzX3dpZHRoLCB1aV9sZWZ0LAorCQkJICAgImFkZHIiLCAiQWRkcmVz cyIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDQgKi8KKyAgICB9 CisgIHVpX291dF90YWJsZV9oZWFkZXIgKGN1cnJlbnRfdWlvdXQsIDQwLCB1 aV9ub2FsaWduLCAid2hhdCIsICJXaGF0Iik7ICAgLyogNSAqLworICB1aV9v dXRfdGFibGVfYm9keSAoY3VycmVudF91aW91dCk7CisKKyAgQUxMX1NLSVBM SVNUX0VOVFJJRVMgKGUpCisgICAgeworICAgICAgc3RydWN0IGNsZWFudXAg KmVudHJ5X2NoYWluOworCisgICAgICBRVUlUOworICAgICAgaWYgKGFyZyAh PSAwICYmICFudW1iZXJfaXNfaW5fbGlzdChhcmcsIGUtPm51bWJlcikpCisJ Y29udGludWU7CisKKyAgICAgIGVudHJ5X2NoYWluID0gbWFrZV9jbGVhbnVw X3VpX291dF90dXBsZV9iZWdpbl9lbmQgKGN1cnJlbnRfdWlvdXQsCisJCQkJ CQkJICJibGtsc3QtZW50cnkiKTsKKyAgICAgIHVpX291dF9maWVsZF9pbnQg KGN1cnJlbnRfdWlvdXQsICJudW1iZXIiLCBlLT5udW1iZXIpOyAgICAgICAg ICAgICAvKiAxICovCisKKyAgICAgIGlmIChlLT5mdW5jdGlvbl9uYW1lICE9 IDApCisJdWlfb3V0X2ZpZWxkX3N0cmluZyAoY3VycmVudF91aW91dCwgInR5 cGUiLCAiZnVuY3Rpb24iKTsgICAgICAgICAvKiAyICovCisgICAgICBlbHNl IGlmIChlLT5maWxlbmFtZSAhPSAwKQorCXVpX291dF9maWVsZF9zdHJpbmcg KGN1cnJlbnRfdWlvdXQsICJ0eXBlIiwgImZpbGUiKTsgICAgICAgICAgICAg LyogMiAqLworICAgICAgZWxzZQorCWludGVybmFsX2Vycm9yIChfX0ZJTEVf XywgX19MSU5FX18sIF8oIlwKK1NraXBsaXN0IGVudHJ5IHNob3VsZCBoYXZl IGVpdGhlciBhIGZpbGVuYW1lIG9yIGEgZnVuY3Rpb24gbmFtZS4iKSk7CisK KyAgICAgIGlmIChlLT5lbmFibGVkKQorCXVpX291dF9maWVsZF9zdHJpbmcg KGN1cnJlbnRfdWlvdXQsICJlbmFibGVkIiwgInkiKTsgICAgICAgICAgICAg LyogMyAqLworICAgICAgZWxzZQorCXVpX291dF9maWVsZF9zdHJpbmcgKGN1 cnJlbnRfdWlvdXQsICJlbmFibGVkIiwgIm4iKTsgICAgICAgICAgICAgLyog MyAqLworCisgICAgICBpZiAob3B0cy5hZGRyZXNzcHJpbnQpCisJeworCSAg aWYgKGUtPnBjICE9IDApCisJICAgIHVpX291dF9maWVsZF9jb3JlX2FkZHIg KGN1cnJlbnRfdWlvdXQsICJhZGRyIiwKKwkJCQkgICAgZS0+Z2RiYXJjaCwg ZS0+cGMpOyAgICAgICAgICAgICAgICAgIC8qIDQgKi8KKwkgIGVsc2UKKwkg ICAgdWlfb3V0X2ZpZWxkX3N0cmluZyAoY3VycmVudF91aW91dCwgImFkZHIi LCAiIik7ICAgICAgICAgICAgIC8qIDQgKi8KKwl9CisKKyAgICAgIGlmICgh ZS0+cGVuZGluZyAmJiBlLT5mdW5jdGlvbl9uYW1lICE9IDApCisJeworCSAg IHN0cnVjdCBzeW1ib2wgKnN5bTsKKworCSAgIGdkYl9hc3NlcnQgKGUtPnBj ICE9IDApOworCSAgIHN5bSA9IGZpbmRfcGNfZnVuY3Rpb24gKGUtPnBjKTsK KwkgICBpZiAoc3ltKQorCSAgICAgdWlfb3V0X2ZpZWxkX2ZtdCAoY3VycmVu dF91aW91dCwgIndoYXQiLCAiJXMgYXQgJXM6JWQiLAorCQkJICAgICAgIHN5 bS0+Z2luZm8ubmFtZSwKKwkJCSAgICAgICBzeW0tPnN5bXRhYi0+ZmlsZW5h bWUsCisJCQkgICAgICAgc3ltLT5saW5lKTsKKwkgICBlbHNlCisJICAgICB1 aV9vdXRfZmllbGRfc3RyaW5nIChjdXJyZW50X3Vpb3V0LCAid2hhdCIsICI/ Iik7CisJfQorICAgICAgZWxzZSBpZiAoZS0+cGVuZGluZyAmJiBlLT5mdW5j dGlvbl9uYW1lICE9IDApCisJeworCSAgdWlfb3V0X2ZpZWxkX2ZtdCAoY3Vy cmVudF91aW91dCwgIndoYXQiLCAiJXMgKFBFTkRJTkcpIiwKKwkJCSAgICBl LT5mdW5jdGlvbl9uYW1lKTsKKwl9CisgICAgICBlbHNlIGlmICghZS0+cGVu ZGluZyAmJiBlLT5maWxlbmFtZSAhPSAwKQorCXVpX291dF9maWVsZF9zdHJp bmcgKGN1cnJlbnRfdWlvdXQsICJ3aGF0IiwgZS0+ZmlsZW5hbWUpOworICAg ICAgZWxzZSBpZiAoZS0+cGVuZGluZyAmJiBlLT5maWxlbmFtZSAhPSAwKQor CXVpX291dF9maWVsZF9mbXQgKGN1cnJlbnRfdWlvdXQsICJ3aGF0IiwgIiVz IChQRU5ESU5HKSIsCisJCQkgIGUtPmZpbGVuYW1lKTsKKworICAgICAgdWlf b3V0X3RleHQgKGN1cnJlbnRfdWlvdXQsICJcbiIpOworICAgICAgZG9fY2xl YW51cHMgKGVudHJ5X2NoYWluKTsKKyAgICB9CisKKyAgZG9fY2xlYW51cHMg KHRibF9jaGFpbik7Cit9CisKK3N0YXRpYyB2b2lkCitza2lwX2VuYWJsZV9j b21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKK3sKKyAgc3RydWN0 IHNraXBsaXN0X2VudHJ5ICplOworICBpbnQgZm91bmQgPSAwOworCisgIEFM TF9TS0lQTElTVF9FTlRSSUVTIChlKQorICAgIGlmIChhcmcgPT0gMCB8fCBu dW1iZXJfaXNfaW5fbGlzdChhcmcsIGUtPm51bWJlcikpCisgICAgICB7Cisg ICAgICAgIGUtPmVuYWJsZWQgPSAxOworICAgICAgICBmb3VuZCA9IDE7Cisg ICAgICB9CisKKyAgaWYgKCFmb3VuZCkKKyAgICBlcnJvciAoXygiTm8gc2tp cGxpc3QgZW50cmllcyBmb3VuZCB3aXRoIG51bWJlciAlcy4iKSwgYXJnKTsK K30KKworc3RhdGljIHZvaWQKK3NraXBfZGlzYWJsZV9jb21tYW5kIChjaGFy ICphcmcsIGludCBmcm9tX3R0eSkKK3sKKyAgc3RydWN0IHNraXBsaXN0X2Vu dHJ5ICplOworICBpbnQgZm91bmQgPSAwOworCisgIEFMTF9TS0lQTElTVF9F TlRSSUVTIChlKQorICAgIGlmIChhcmcgPT0gMCB8fCBudW1iZXJfaXNfaW5f bGlzdChhcmcsIGUtPm51bWJlcikpCisgICAgICB7CisJZS0+ZW5hYmxlZCA9 IDA7CisgICAgICAgIGZvdW5kID0gMTsKKyAgICAgIH0KKworICBpZiAoIWZv dW5kKQorICAgIGVycm9yIChfKCJObyBza2lwbGlzdCBlbnRyaWVzIGZvdW5k IHdpdGggbnVtYmVyICVzLiIpLCBhcmcpOworfQorCitzdGF0aWMgdm9pZAor c2tpcF9kZWxldGVfY29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHkp Cit7CisgIHN0cnVjdCBza2lwbGlzdF9lbnRyeSAqZSwgKnRlbXAsICpiX3By ZXY7CisgIGludCBmb3VuZCA9IDA7CisKKyAgYl9wcmV2ID0gMDsKKyAgQUxM X1NLSVBMSVNUX0VOVFJJRVNfU0FGRSAoZSwgdGVtcCkKKyAgICBpZiAoYXJn ID09IDAgfHwgbnVtYmVyX2lzX2luX2xpc3QoYXJnLCBlLT5udW1iZXIpKQor ICAgICAgeworCWlmIChiX3ByZXYgIT0gMCkKKwkgIGJfcHJldi0+bmV4dCA9 IGUtPm5leHQ7CisJZWxzZQorCSAgc2tpcGxpc3RfZW50cnlfY2hhaW4gPSBl LT5uZXh0OworCisJeGZyZWUgKGUtPmZ1bmN0aW9uX25hbWUpOworCXhmcmVl IChlLT5maWxlbmFtZSk7CisJeGZyZWUgKGUpOworICAgICAgICBmb3VuZCA9 IDE7CisgICAgICB9CisgICAgZWxzZQorICAgICAgeworCWJfcHJldiA9IGU7 CisgICAgICB9CisKKyAgaWYgKCFmb3VuZCkKKyAgICBlcnJvciAoXygiTm8g c2tpcGxpc3QgZW50cmllcyBmb3VuZCB3aXRoIG51bWJlciAlcy4iKSwgYXJn KTsKK30KKworLyogQ3JlYXRlIGEgc2tpcGxpc3QgZW50cnkgZm9yIHRoZSBn aXZlbiBwYyBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbgorICAgZnVuY3Rp b24gbmFtZSBhbmQgYWRkIGl0IHRvIHRoZSBsaXN0LiAqLworc3RhdGljIHZv aWQKK3NraXBfZnVuY3Rpb25fcGMgKENPUkVfQUREUiBwYywgY2hhciAqbmFt ZSwgc3RydWN0IGdkYmFyY2ggKmFyY2gsCisJCSAgaW50IHBlbmRpbmcpCit7 CisgIHN0cnVjdCBza2lwbGlzdF9lbnRyeSAqZSA9IFhaQUxMT0MgKHN0cnVj dCBza2lwbGlzdF9lbnRyeSk7CisKKyAgZS0+cGMgPSBwYzsKKyAgZS0+Z2Ri YXJjaCA9IGFyY2g7CisgIGUtPmVuYWJsZWQgPSAxOworICBlLT5wZW5kaW5n ID0gcGVuZGluZzsKKyAgZS0+ZnVuY3Rpb25fbmFtZSA9IHhzdHJkdXAgKG5h bWUpOworCisgIGFkZF9za2lwbGlzdF9lbnRyeSAoZSk7CisKKyAgaWYgKCFw ZW5kaW5nKQorICAgIHByaW50Zl9maWx0ZXJlZCAoXygiRnVuY3Rpb24gJXMg YXQgJXMgd2lsbCBiZSBza2lwcGVkIHdoZW4gc3RlcHBpbmcuXG4iKSwKKwkJ ICAgICBuYW1lLCBwYWRkcmVzcyAoZ2V0X2N1cnJlbnRfYXJjaCAoKSwgcGMp KTsKKyAgZWxzZQorICAgIHByaW50Zl9maWx0ZXJlZCAoXygiRnVuY3Rpb24g JXMgd2lsbCBiZSBza2lwcGVkIHdoZW4gc3RlcHBpbmcsICIKKwkJICAgICAg ICJwZW5kaW5nIHNoYXJlZCBsaWJyYXJ5IGxvYWQuXG4iKSwKKwkJICAgICBu YW1lKTsKK30KKworLyogQWRkIHRoZSBnaXZlbiBza2lwbGlzdCBlbnRyeSB0 byBvdXIgbGlzdCwgYW5kIHNldCB0aGUgZW50cnkncyBudW1iZXIuICovCitz dGF0aWMgdm9pZAorYWRkX3NraXBsaXN0X2VudHJ5IChzdHJ1Y3Qgc2tpcGxp c3RfZW50cnkgKmUpCit7CisgIHN0cnVjdCBza2lwbGlzdF9lbnRyeSAqZTE7 CisKKyAgZS0+bnVtYmVyID0gKytza2lwbGlzdF9lbnRyeV9jb3VudDsKKwor ICAvKiBBZGQgdG8gdGhlIGVuZCBvZiB0aGUgY2hhaW4gc28gdGhhdCB0aGUg bGlzdCBvZgorICAgICBza2lwbGlzdCBlbnRyaWVzIHdpbGwgYmUgaW4gbnVt ZXJpY2FsIG9yZGVyLiAqLworCisgIGUxID0gc2tpcGxpc3RfZW50cnlfY2hh aW47CisgIGlmIChlMSA9PSAwKQorICAgIHNraXBsaXN0X2VudHJ5X2NoYWlu ID0gZTsKKyAgZWxzZQorICAgIHsKKyAgICAgIHdoaWxlIChlMS0+bmV4dCkK KwllMSA9IGUxLT5uZXh0OworICAgICAgZTEtPm5leHQgPSBlOworICAgIH0K K30KKworLyogRG9lcyB0aGUgZ2l2ZW4gcGMgY29ycmVzcG9uZCB0byB0aGUg YmVnaW5uaW5nIG9mIGEgc2tpcHBlZCBmdW5jdGlvbj8gKi8KK2ludAorZnVu Y3Rpb25fcGNfaXNfbWFya2VkX2Zvcl9za2lwIChDT1JFX0FERFIgcGMpCit7 CisgIGludCBzZWFyY2hlZF9mb3Jfc2FsID0gMDsKKyAgc3RydWN0IHN5bXRh Yl9hbmRfbGluZSBzYWw7CisgIGNoYXIgKmZpbGVuYW1lID0gTlVMTDsKKyAg c3RydWN0IHNraXBsaXN0X2VudHJ5ICplOworCisgIHNhbCA9IGZpbmRfcGNf bGluZSAocGMsIDApOworICBmaWxlbmFtZSA9IHNhbC5zeW10YWItPmZpbGVu YW1lOworCisgIEFMTF9TS0lQTElTVF9FTlRSSUVTIChlKQorICAgIHsKKyAg ICAgIGlmICghZS0+ZW5hYmxlZCB8fCBlLT5wZW5kaW5nKQorCWNvbnRpbnVl OworCisgICAgICAvKiBEb2VzIHRoZSBwYyB3ZSdyZSBzdGVwcGluZyBpbnRv IG1hdGNoIGUncyBzdG9yZWQgcGM/ICovCisgICAgICBpZiAoZS0+cGMgIT0g MCAmJiBwYyA9PSBlLT5wYykKKwlyZXR1cm4gMTsKKworICAgICAgaWYgKGUt PmZpbGVuYW1lICE9IDApCisJeworCSAgLyogR2V0IHRoZSBmaWxlbmFtZSBj b3JyZXNwb25kaW5nIHRvIHRoaXMgcGMsIGlmIHdlIGhhdmVuJ3QKKwkgICAq IHlldC4gKi8KKwkgIGlmICghc2VhcmNoZWRfZm9yX3NhbCkKKwkgICAgewor CSAgICAgIHNhbCA9IGZpbmRfcGNfbGluZSAocGMsIDApOworCSAgICAgIGZp bGVuYW1lID0gc2FsLnN5bXRhYi0+ZmlsZW5hbWU7CisJICAgICAgc2VhcmNo ZWRfZm9yX3NhbCA9IDE7CisJICAgIH0KKwkgIGlmIChmaWxlbmFtZSAhPSAw ICYmIHN0cmNtcCAoZmlsZW5hbWUsIGUtPmZpbGVuYW1lKSA9PSAwKQorCSAg ICByZXR1cm4gMTsKKwl9CisgICAgfQorCisgIHJldHVybiAwOworfQorCisv KiBSZS1zZXQgdGhlIHNraXAgbGlzdCBhZnRlciBzeW1ib2xzIGhhdmUgYmVl biByZS1sb2FkZWQuICovCit2b2lkCitza2lwX3JlX3NldCAodm9pZCkKK3sK KyAgc3RydWN0IHNraXBsaXN0X2VudHJ5ICplOworCisgIEFMTF9TS0lQTElT VF9FTlRSSUVTIChlKQorICAgIHsKKyAgICAgIGlmIChlLT5maWxlbmFtZSAh PSAwKQorCXsKKwkgIC8qIElmIGl0J3MgYW4gZW50cnkgdGVsbGluZyB1cyB0 byBza2lwIGEgZmlsZSwgYnV0IHRoZSBlbnRyeSBpcworCSAgICAgY3VycmVu dGx5IHBlbmRpbmcgYSBzb2xpYiBsb2FkLCBsZXQncyBzZWUgaWYgd2Ugbm93 IGtub3cKKwkgICAgIGFib3V0IHRoZSBmaWxlLiAqLworCSAgc3RydWN0IHN5 bXRhYiAqc3ltdGFiID0gbG9va3VwX3N5bXRhYiAoZS0+ZmlsZW5hbWUpOwor CSAgaWYgKHN5bXRhYiAhPSAwKQorCSAgICB7CisJICAgICAgeGZyZWUgKGUt PmZpbGVuYW1lKTsKKwkgICAgICBlLT5maWxlbmFtZSA9IHhzdHJkdXAgKHN5 bXRhYi0+ZmlsZW5hbWUpOworCSAgICAgIGUtPmdkYmFyY2ggPSBnZXRfb2Jq ZmlsZV9hcmNoIChzeW10YWItPm9iamZpbGUpOworCSAgICAgIGUtPnBlbmRp bmcgPSAwOworCSAgICB9CisJICBlbHNlCisJICAgIHsKKwkgICAgICBlLT5w ZW5kaW5nID0gMTsKKwkgICAgfQorCX0KKyAgICAgIGVsc2UgaWYgKGUtPmZ1 bmN0aW9uX25hbWUgIT0gMCkKKyAgICAgICAgeworCSAgY2hhciAqZnVuY19u YW1lID0gZS0+ZnVuY3Rpb25fbmFtZTsKKwkgIHN0cnVjdCBzeW10YWJzX2Fu ZF9saW5lcyBzYWxzOworCSAgdm9sYXRpbGUgc3RydWN0IGdkYl9leGNlcHRp b24gZGVjb2RlX2V4Y2VwdGlvbjsKKworCSAgVFJZX0NBVENIIChkZWNvZGVf ZXhjZXB0aW9uLCBOT1RfRk9VTkRfRVJST1IpCisJICAgIHsKKwkgICAgICBz YWxzID0gZGVjb2RlX2xpbmVfMSAoJmZ1bmNfbmFtZSwgMSwgMCwgMCwgMCk7 CisJICAgIH0KKworCSAgaWYgKGRlY29kZV9leGNlcHRpb24ucmVhc29uID49 IDAKKyAgICAgICAgICAgICAgJiYgc2Fscy5uZWx0cyA9PSAxICYmIHN0cmxl biAoZnVuY19uYW1lKSA9PSAwKQorCSAgICB7CisJICAgICAgc3RydWN0IHN5 bXRhYl9hbmRfbGluZSBzYWwgPSBzYWxzLnNhbHNbMF07CisJICAgICAgQ09S RV9BRERSIHBjID0gc2FsLnBjOworCSAgICAgIENPUkVfQUREUiBmdW5jX3N0 YXJ0ID0gMDsKKwkgICAgICBzdHJ1Y3QgZ2RiYXJjaCAqYXJjaCA9IGdldF9z YWxfYXJjaCAoc2FsKTsKKyAgICAgICAgICAgICAgY2hhciAqZnVuY19uYW1l OworCisJICAgICAgaWYgKGZpbmRfcGNfcGFydGlhbF9mdW5jdGlvbiAocGMs ICZmdW5jX25hbWUsICZmdW5jX3N0YXJ0LCAwKSkKKwkJeworCQkgIGUtPnBl bmRpbmcgPSAwOworICAgICAgICAgICAgICAgICAgZS0+ZnVuY3Rpb25fbmFt ZSA9IHhzdHJkdXAgKGZ1bmNfbmFtZSk7CisJCSAgZS0+cGMgPSBmdW5jX3N0 YXJ0OworCQkgIGUtPmdkYmFyY2ggPSBhcmNoOworCQl9CisJICAgIH0KKwkg IGVsc2UKKwkgICAgeworCSAgICAgIGUtPnBlbmRpbmcgPSAxOworCSAgICB9 CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQKK19pbml0aWFsaXplX3N0 ZXBfc2tpcCAodm9pZCkKK3sKKyAgc3RydWN0IGNtZF9saXN0X2VsZW1lbnQg KmM7CisKKyAgc2tpcGxpc3RfZW50cnlfY2hhaW4gPSAwOworICBza2lwbGlz dF9lbnRyeV9jb3VudCA9IDA7CisKKyAgYWRkX3ByZWZpeF9jbWQgKCJza2lw IiwgY2xhc3NfYnJlYWtwb2ludCwgc2tpcF9mdW5jdGlvbl9jb21tYW5kLCBf KCJcCitJZ25vcmUgYSBmdW5jdGlvbiB3aGlsZSBzdGVwcGluZy5cblwKK1Vz YWdlOiBza2lwIFtGVU5DVElPTiBOQU1FXVxuXAorSWYgbm8gZnVuY3Rpb24g bmFtZSBpcyBnaXZlbiwgaWdub3JlIHRoZSBjdXJyZW50IGZ1bmN0aW9uLiIp LAorICAgICAgICAgICAgICAgICAgJnNraXBsaXN0LCAic2tpcCAiLCAxLCAm Y21kbGlzdCk7CisKKyAgYyA9IGFkZF9jbWQgKCJmaWxlIiwgY2xhc3NfYnJl YWtwb2ludCwgc2tpcF9maWxlX2NvbW1hbmQsIF8oIlwKK0lnbm9yZSBhIGZp bGUgd2hpbGUgc3RlcHBpbmcuXG5cCitVc2FnZTogc2tpcCBmaWxlIFtGSUxF TkFNRV1cblwKK0lmIG5vIGZpbGVuYW1lIGlzIGdpdmVuLCBpZ25vcmUgdGhl IGN1cnJlbnQgZmlsZS4iKSwKKwkgICAgICAgJnNraXBsaXN0KTsKKyAgc2V0 X2NtZF9jb21wbGV0ZXIgKGMsIGZpbGVuYW1lX2NvbXBsZXRlcik7CisKKyAg YyA9IGFkZF9jbWQgKCJmdW5jdGlvbiIsIGNsYXNzX2JyZWFrcG9pbnQsIHNr aXBfZnVuY3Rpb25fY29tbWFuZCwgXygiXAorSWdub3JlIGEgZnVuY3Rpb24g d2hpbGUgc3RlcHBpbmcuXG5cCitVc2FnZTogc2tpcCBmdW5jdGlvbiBbRlVO Q1RJT04gTkFNRV1cblwKK0lmIG5vIGZ1bmN0aW9uIG5hbWUgaXMgZ2l2ZW4s IHNraXAgdGhlIGN1cnJlbnQgZnVuY3Rpb24uIiksCisJICAgICAgICZza2lw bGlzdCk7CisgIHNldF9jbWRfY29tcGxldGVyIChjLCBsb2NhdGlvbl9jb21w bGV0ZXIpOworCisgIGFkZF9jbWQgKCJlbmFibGUiLCBjbGFzc19icmVha3Bv aW50LCBza2lwX2VuYWJsZV9jb21tYW5kLCBfKCJcCitFbmFibGUgc2tpcCBl bnRyaWVzLiAgWW91IGNhbiBzcGVjaWZ5IG51bWJlcnMgKGUuZy4gXCJza2lw IGVuYWJsZSAxIDNcIiksIFwKK3JhbmdlcyAoZS5nLiBcInNraXAgZW5hYmxl IDQtOFwiKSwgb3IgYm90aCAoZS5nLiBcInNraXAgZW5hYmxlIDEgMyA0LThc IikuXG5cblwKK0lmIHlvdSBkb24ndCBzcGVjaWZ5IGFueSBudW1iZXJzIG9y IHJhbmdlcywgd2UnbGwgZW5hYmxlIGFsbCBza2lwIGVudHJpZXMuXG5cblwK K1VzYWdlOiBza2lwIGVuYWJsZSBbTlVNQkVSUyBBTkQvT1IgUkFOR0VTXSIp LAorCSAgICZza2lwbGlzdCk7CisKKyAgYWRkX2NtZCAoImRpc2FibGUiLCBj bGFzc19icmVha3BvaW50LCBza2lwX2Rpc2FibGVfY29tbWFuZCwgXygiXAor RGlzYWJsZSBza2lwIGVudHJpZXMuICBZb3UgY2FuIHNwZWNpZnkgbnVtYmVy cyAoZS5nLiBcInNraXAgZGlzYWJsZSAxIDNcIiksIFwKK3JhbmdlcyAoZS5n LiBcInNraXAgZGlzYWJsZSA0LThcIiksIG9yIGJvdGggKGUuZy4gXCJza2lw IGRpc2FibGUgMSAzIDQtOFwiKS5cblxuXAorSWYgeW91IGRvbid0IHNwZWNp ZnkgYW55IG51bWJlcnMgb3IgcmFuZ2VzLCB3ZSdsbCBkaXNhYmxlIGFsbCBz a2lwIGVudHJpZXMuXG5cblwKK1VzYWdlOiBza2lwIGRpc2FibGUgW05VTUJF UlMgQU5EL09SIFJBTkdFU10iKSwKKwkgICAmc2tpcGxpc3QpOworCisgIGFk ZF9jbWQgKCJkZWxldGUiLCBjbGFzc19icmVha3BvaW50LCBza2lwX2RlbGV0 ZV9jb21tYW5kLCBfKCJcCitEZWxldGUgc2tpcCBlbnRyaWVzLiAgWW91IGNh biBzcGVjaWZ5IG51bWJlcnMgKGUuZy4gXCJza2lwIGRlbGV0ZSAxIDNcIiks IFwKK3JhbmdlcyAoZS5nLiBcInNraXAgZGVsZXRlIDQtOFwiKSwgb3IgYm90 aCAoZS5nLiBcInNraXAgZGVsZXRlIDEgMyA0LThcIikuXG5cblwKK0lmIHlv dSBkb24ndCBzcGVjaWZ5IGFueSBudW1iZXJzIG9yIHJhbmdlcywgd2UnbGwg ZGVsZXRlIGFsbCBza2lwIGVudHJpZXMuXG5cblwKK1VzYWdlOiBza2lwIGRl bGV0ZSBbTlVNQkVSUyBBTkQvT1IgUkFOR0VTXSIpLAorICAgICAgICAgICAm c2tpcGxpc3QpOworCisgIGFkZF9pbmZvICgic2tpcCIsIHNraXBfaW5mbywg XygiXAorRGlzcGxheSB0aGUgc3RhdHVzIG9mIHNraXBzLiAgWW91IGNhbiBz cGVjaWZ5IG51bWJlcnMgKGUuZy4gXCJza2lwIGluZm8gMSAzXCIpLCBcCity YW5nZXMgKGUuZy4gXCJza2lwIGluZm8gNC04XCIpLCBvciBib3RoIChlLmcu IFwic2tpcCBpbmZvIDEgMyA0LThcIikuXG5cblwKK0lmIHlvdSBkb24ndCBz cGVjaWZ5IGFueSBudW1iZXJzIG9yIHJhbmdlcywgd2UnbGwgc2hvdyBhbGwg c2tpcHMuXG5cblwKK1VzYWdlOiBza2lwIGluZm8gW05VTUJFUlMgQU5EL09S IFJBTkdFU11cblwKK1RoZSBcIlR5cGVcIiBjb2x1bW4gaW5kaWNhdGVzIG9u ZSBvZjpcblwKK1x0ZmlsZSAgICAgICAgLSBpZ25vcmVkIGZpbGVcblwKK1x0 ZnVuY3Rpb24gICAgLSBpZ25vcmVkIGZ1bmN0aW9uIikpOworfQpkaWZmIC0t Z2l0IGEvZ2RiL3NraXAuaCBiL2dkYi9za2lwLmgKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uMTQzZjdlZAotLS0gL2Rldi9udWxsCisr KyBiL2dkYi9za2lwLmgKQEAgLTAsMCArMSwyOCBAQAorLyogSGVhZGVyIGZv ciBza2lwcGluZyBvdmVyIHVuaW50ZXJlc3RpbmcgZmlsZXMgYW5kIGZ1bmN0 aW9ucyB3aGVuIGRlYnVnZ2luZy4KKworICAgQ29weXJpZ2h0IChDKSAyMDEx IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkK KyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisgICAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisg ICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uICAqLworCisjaWYgIWRlZmluZWQgKFNLSVBfSCkKKyNk ZWZpbmUgU0tJUF9ICisKKy8qIFJldHVybnMgMSBpZiB0aGUgZ2l2ZW4gcGMg aXMgbWFya2VkIGZvciBza2lwIGFuZCBzaG91bGRuJ3QgYmUKKyAgIHN0ZXBw ZWQgaW50by4gIE90aGVyd2lzZSwgcmV0dXJucyAwLiAqLworaW50IGZ1bmN0 aW9uX3BjX2lzX21hcmtlZF9mb3Jfc2tpcCAoQ09SRV9BRERSIHBjKTsKKwor LyogUmUtc2V0IHRoZSBza2lwIGxpc3QgYWZ0ZXIgc3ltYm9scyBoYXZlIGJl ZW4gcmVsb2FkZWQuICovCit2b2lkIHNraXBfcmVfc2V0ICh2b2lkKTsKKwor I2VuZGlmIC8qICFkZWZpbmVkIChTS0lQX0gpICovCmRpZmYgLS1naXQgYS9n ZGIvc3RhY2suYyBiL2dkYi9zdGFjay5jCmluZGV4IDE1NjY2ZWUuLmNmMjVl YjcgMTAwNjQ0Ci0tLSBhL2dkYi9zdGFjay5jCisrKyBiL2dkYi9zdGFjay5j CkBAIC03Myw2ICs3MywxMiBAQCBzdGF0aWMgdm9pZCBwcmludF9mcmFtZSAo c3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLCBpbnQgcHJpbnRfbGV2ZWwsCiAJ CQkgZW51bSBwcmludF93aGF0IHByaW50X3doYXQsICBpbnQgcHJpbnRfYXJn cywKIAkJCSBzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5lIHNhbCk7CiAKK3N0YXRp YyB2b2lkIHNldF9sYXN0X2Rpc3BsYXllZF9zYWwgKGludCB2YWxpZCwKKwkJ CQkgICAgc3RydWN0IHByb2dyYW1fc3BhY2UgKnBzcGFjZSwKKwkJCQkgICAg Q09SRV9BRERSIGFkZHIsCisJCQkJICAgIHN0cnVjdCBzeW10YWIgKnN5bXRh YiwKKwkJCQkgICAgaW50IGxpbmUpOworCiAvKiBaZXJvIG1lYW5zIGRvIHRo aW5ncyBub3JtYWxseTsgd2UgYXJlIGludGVyYWN0aW5nIGRpcmVjdGx5IHdp dGggdGhlCiAgICB1c2VyLiAgT25lIG1lYW5zIHByaW50IHRoZSBmdWxsIGZp bGVuYW1lIGFuZCBsaW5lbnVtYmVyIHdoZW4gYQogICAgZnJhbWUgaXMgcHJp bnRlZCwgYW5kIGRvIHNvIGluIGEgZm9ybWF0IGVtYWNzMTgvZW1hY3MxOS4y MiBjYW4KQEAgLTgwLDYgKzg2LDE0IEBAIHN0YXRpYyB2b2lkIHByaW50X2Zy YW1lIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsIGludCBwcmludF9sZXZl bCwKICAgIGNhc2VzIGFuZCBpbiBhIHNsaWdodGx5IGRpZmZlcmVudCBzeW50 YXguICAqLwogCiBpbnQgYW5ub3RhdGlvbl9sZXZlbCA9IDA7CisKKy8qIFRo ZXNlIHZhcmlhYmxlcyBob2xkIHRoZSBsYXN0IHN5bXRhYiBhbmQgbGluZSB3 ZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuCisgKiBUaGlzIGlzIHdoZXJlIHdl IGluc2VydCBhIGJyZWFrcG9pbnQgb3IgYSBza2lwbGlzdCBlbnRyeSBieSBk ZWZhdWx0LiAqLworc3RhdGljIGludCBsYXN0X2Rpc3BsYXllZF9zYWxfdmFs aWQgPSAwOworc3RhdGljIHN0cnVjdCBwcm9ncmFtX3NwYWNlICpsYXN0X2Rp c3BsYXllZF9wc3BhY2UgPSAwOworc3RhdGljIENPUkVfQUREUiBsYXN0X2Rp c3BsYXllZF9hZGRyID0gMDsKK3N0YXRpYyBzdHJ1Y3Qgc3ltdGFiICpsYXN0 X2Rpc3BsYXllZF9zeW10YWIgPSAwOworc3RhdGljIGludCBsYXN0X2Rpc3Bs YXllZF9saW5lID0gMDsKIAwKIAogLyogUmV0dXJuIDEgaWYgd2Ugc2hvdWxk IGRpc3BsYXkgdGhlIGFkZHJlc3MgaW4gYWRkaXRpb24gdG8gdGhlIGxvY2F0 aW9uLApAQCAtNTk5LDkgKzYxMyw5IEBAIHByaW50X2ZyYW1lX2luZm8gKHN0 cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgaW50IHByaW50X2xldmVsLAogICAg ICAgQ09SRV9BRERSIHBjOwogCiAgICAgICBpZiAoZ2V0X2ZyYW1lX3BjX2lm X2F2YWlsYWJsZSAoZnJhbWUsICZwYykpCi0Jc2V0X2RlZmF1bHRfYnJlYWtw b2ludCAoMSwgc2FsLnBzcGFjZSwgcGMsIHNhbC5zeW10YWIsIHNhbC5saW5l KTsKKwlzZXRfbGFzdF9kaXNwbGF5ZWRfc2FsICgxLCBzYWwucHNwYWNlLCBw Yywgc2FsLnN5bXRhYiwgc2FsLmxpbmUpOwogICAgICAgZWxzZQotCXNldF9k ZWZhdWx0X2JyZWFrcG9pbnQgKDAsIDAsIDAsIDAsIDApOworCXNldF9sYXN0 X2Rpc3BsYXllZF9zYWwgKDAsIDAsIDAsIDAsIDApOwogICAgIH0KIAogICBh bm5vdGF0ZV9mcmFtZV9lbmQgKCk7CkBAIC02MDksNiArNjIzLDk4IEBAIHBy aW50X2ZyYW1lX2luZm8gKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgaW50 IHByaW50X2xldmVsLAogICBnZGJfZmx1c2ggKGdkYl9zdGRvdXQpOwogfQog CisvKiBSZW1lbWJlciB0aGUgbGFzdCBzeW10YWIgYW5kIGxpbmUgd2UgZGlz cGxheWVkLCB3aGljaCB3ZSB1c2UgZS5nLgorICogYXMgdGhlIHBsYWNlIHRv IHB1dCBhIGJyZWFrcG9pbnQgd2hlbiB0aGUgYGJyZWFrJyBjb21tYW5kIGlz CisgKiBpbnZva2VkIHdpdGggbm8gYXJndW1lbnRzLiAgKi8KK3N0YXRpYyB2 b2lkCitzZXRfbGFzdF9kaXNwbGF5ZWRfc2FsIChpbnQgdmFsaWQsIHN0cnVj dCBwcm9ncmFtX3NwYWNlICpwc3BhY2UsCisJCQlDT1JFX0FERFIgYWRkciwg c3RydWN0IHN5bXRhYiAqc3ltdGFiLAorCQkJaW50IGxpbmUpCit7CisgIGxh c3RfZGlzcGxheWVkX3NhbF92YWxpZCA9IHZhbGlkOworICBsYXN0X2Rpc3Bs YXllZF9wc3BhY2UgPSBwc3BhY2U7CisgIGxhc3RfZGlzcGxheWVkX2FkZHIg PSBhZGRyOworICBsYXN0X2Rpc3BsYXllZF9zeW10YWIgPSBzeW10YWI7Cisg IGxhc3RfZGlzcGxheWVkX2xpbmUgPSBsaW5lOworfQorCisvKiBGb3JnZXQg dGhlIGxhc3Qgc2FsIHdlIGRpc3BsYXllZC4gICovCit2b2lkCitjbGVhcl9s YXN0X2Rpc3BsYXllZF9zYWwgKHZvaWQpCit7CisgIGxhc3RfZGlzcGxheWVk X3NhbF92YWxpZCA9IDA7CisgIGxhc3RfZGlzcGxheWVkX3BzcGFjZSA9IDA7 CisgIGxhc3RfZGlzcGxheWVkX2FkZHIgPSAwOworICBsYXN0X2Rpc3BsYXll ZF9zeW10YWIgPSAwOworICBsYXN0X2Rpc3BsYXllZF9saW5lID0gMDsKK30K KworLyogSXMgb3VyIHJlY29yZCBvZiB0aGUgbGFzdCBzYWwgd2UgZGlzcGxh eWVkIHZhbGlkPyAgSWYgbm90LAorICogdGhlIGdldF9sYXN0X2Rpc3BsYXll ZF8qIGZ1bmN0aW9ucyB3aWxsIHJldHVybiBOVUxMIG9yIDAsIGFzCisgKiBh cHByb3ByaWF0ZS4gICovCitpbnQKK2xhc3RfZGlzcGxheWVkX3NhbF9pc192 YWxpZCAodm9pZCkKK3sKKyAgcmV0dXJuIGxhc3RfZGlzcGxheWVkX3NhbF92 YWxpZDsKK30KKworLyogR2V0IHRoZSBwc3BhY2Ugb2YgdGhlIGxhc3Qgc2Fs IHdlIGRpc3BsYXllZCwgaWYgaXQncyB2YWxpZC4gICovCitzdHJ1Y3QgcHJv Z3JhbV9zcGFjZSAqCitnZXRfbGFzdF9kaXNwbGF5ZWRfcHNwYWNlICh2b2lk KQoreworICBpZiAobGFzdF9kaXNwbGF5ZWRfc2FsX3ZhbGlkKQorICAgIHJl dHVybiBsYXN0X2Rpc3BsYXllZF9wc3BhY2U7CisgIHJldHVybiAwOworfQor CisvKiBHZXQgdGhlIGFkZHJlc3Mgb2YgdGhlIGxhc3Qgc2FsIHdlIGRpc3Bs YXllZCwgaWYgaXQncyB2YWxpZC4gICovCitDT1JFX0FERFIKK2dldF9sYXN0 X2Rpc3BsYXllZF9hZGRyICh2b2lkKQoreworICBpZiAobGFzdF9kaXNwbGF5 ZWRfc2FsX3ZhbGlkKQorICAgIHJldHVybiBsYXN0X2Rpc3BsYXllZF9hZGRy OworICByZXR1cm4gMDsKK30KKworLyogR2V0IHRoZSBzeW10YWIgb2YgdGhl IGxhc3Qgc2FsIHdlIGRpc3BsYXllZCwgaWYgaXQncyB2YWxpZC4gICovCitz dHJ1Y3Qgc3ltdGFiKgorZ2V0X2xhc3RfZGlzcGxheWVkX3N5bXRhYiAodm9p ZCkKK3sKKyAgaWYgKGxhc3RfZGlzcGxheWVkX3NhbF92YWxpZCkKKyAgICBy ZXR1cm4gbGFzdF9kaXNwbGF5ZWRfc3ltdGFiOworICByZXR1cm4gMDsKK30K KworLyogR2V0IHRoZSBsaW5lIG9mIHRoZSBsYXN0IHNhbCB3ZSBkaXNwbGF5 ZWQsIGlmIGl0J3MgdmFsaWQuICAqLworaW50CitnZXRfbGFzdF9kaXNwbGF5 ZWRfbGluZSAodm9pZCkKK3sKKyAgaWYgKGxhc3RfZGlzcGxheWVkX3NhbF92 YWxpZCkKKyAgICByZXR1cm4gbGFzdF9kaXNwbGF5ZWRfbGluZTsKKyAgcmV0 dXJuIDA7Cit9CisKKy8qIEdldCB0aGUgbGFzdCBzYWwgd2UgZGlzcGxheWVk LCBpZiBpdCdzIHZhbGlkLiAgKi8KK3ZvaWQKK2dldF9sYXN0X2Rpc3BsYXll ZF9zYWwgKHN0cnVjdCBzeW10YWJfYW5kX2xpbmUgKnNhbCkKK3sKKyAgaWYg KGxhc3RfZGlzcGxheWVkX3NhbF92YWxpZCkKKyAgICB7CisgICAgICBzYWwt PnBzcGFjZSA9IGxhc3RfZGlzcGxheWVkX3BzcGFjZTsKKyAgICAgIHNhbC0+ cGMgPSBsYXN0X2Rpc3BsYXllZF9hZGRyOworICAgICAgc2FsLT5zeW10YWIg PSBsYXN0X2Rpc3BsYXllZF9zeW10YWI7CisgICAgICBzYWwtPmxpbmUgPSBs YXN0X2Rpc3BsYXllZF9saW5lOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAg ICAgIHNhbC0+cHNwYWNlID0gMDsKKyAgICAgIHNhbC0+cGMgPSAwOworICAg ICAgc2FsLT5zeW10YWIgPSAwOworICAgICAgc2FsLT5saW5lID0gMDsKKyAg ICB9Cit9CisKKwogLyogQXR0ZW1wdCB0byBvYnRhaW4gdGhlIEZVTk5BTUUs IEZVTkxBTkcgYW5kIG9wdGlvbmFsbHkgRlVOQ1Agb2YgdGhlIGZ1bmN0aW9u CiAgICBjb3JyZXNwb25kaW5nIHRvIEZSQU1FLiAgKi8KIApkaWZmIC0tZ2l0 IGEvZ2RiL3N0YWNrLmggYi9nZGIvc3RhY2suaAppbmRleCAzY2NlNjIzLi4z MTJlOGZmIDEwMDY0NAotLS0gYS9nZGIvc3RhY2suaAorKysgYi9nZGIvc3Rh Y2suaApAQCAtMzgsNCArMzgsMTQgQEAgdm9pZCBpdGVyYXRlX292ZXJfYmxv Y2tfbG9jYWxfdmFycyAoc3RydWN0IGJsb2NrICpibG9jaywKIAkJCQkgICAg aXRlcmF0ZV9vdmVyX2Jsb2NrX2FyZ19sb2NhbF92YXJzX2NiIGNiLAogCQkJ CSAgICB2b2lkICpjYl9kYXRhKTsKIAorLyogR2V0IG9yIHNldCB0aGUgbGFz dCBkaXNwbGF5ZWQgc3ltdGFiIGFuZCBsaW5lLCB3aGljaCBpcywgZS5nLiB3 aGVyZSB3ZSBzZXQgYQorICogYnJlYWtwb2ludCB3aGVuIGBicmVhaycgaXMg c3VwcGxpZWQgd2l0aCBubyBhcmd1bWVudHMuICAqLwordm9pZCBjbGVhcl9s YXN0X2Rpc3BsYXllZF9zYWwgKHZvaWQpOworaW50IGxhc3RfZGlzcGxheWVk X3NhbF9pc192YWxpZCAodm9pZCk7CitzdHJ1Y3QgcHJvZ3JhbV9zcGFjZSog Z2V0X2xhc3RfZGlzcGxheWVkX3BzcGFjZSAodm9pZCk7CitDT1JFX0FERFIg Z2V0X2xhc3RfZGlzcGxheWVkX2FkZHIgKHZvaWQpOworc3RydWN0IHN5bXRh YiogZ2V0X2xhc3RfZGlzcGxheWVkX3N5bXRhYiAodm9pZCk7CitpbnQgZ2V0 X2xhc3RfZGlzcGxheWVkX2xpbmUgKHZvaWQpOwordm9pZCBnZXRfbGFzdF9k aXNwbGF5ZWRfc2FsIChzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5lICpzYWwpOwor CiAjZW5kaWYgLyogI2lmbmRlZiBTVEFDS19IICovCmRpZmYgLS1naXQgYS9n ZGIvc3ltZmlsZS5jIGIvZ2RiL3N5bWZpbGUuYwppbmRleCAxNTQwY2I3Li4x YzRkMGM5IDEwMDY0NAotLS0gYS9nZGIvc3ltZmlsZS5jCisrKyBiL2dkYi9z eW1maWxlLmMKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJlbGYtYmZk LmgiCiAjaW5jbHVkZSAic29saWIuaCIKICNpbmNsdWRlICJyZW1vdGUuaCIK KyNpbmNsdWRlICJzdGFjay5oIgogCiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+ CiAjaW5jbHVkZSA8ZmNudGwuaD4KQEAgLTI3ODAsNyArMjc4MSw3IEBAIGNs ZWFyX3N5bXRhYl91c2VycyAoaW50IGFkZF9mbGFncykKICAgY2xlYXJfZGlz cGxheXMgKCk7CiAgIGlmICgoYWRkX2ZsYWdzICYgU1lNRklMRV9ERUZFUl9C UF9SRVNFVCkgPT0gMCkKICAgICBicmVha3BvaW50X3JlX3NldCAoKTsKLSAg c2V0X2RlZmF1bHRfYnJlYWtwb2ludCAoMCwgTlVMTCwgMCwgMCwgMCk7Cisg IGNsZWFyX2xhc3RfZGlzcGxheWVkX3NhbCAoKTsKICAgY2xlYXJfcGNfZnVu Y3Rpb25fY2FjaGUgKCk7CiAgIG9ic2VydmVyX25vdGlmeV9uZXdfb2JqZmls ZSAoTlVMTCk7CiAKZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdl TG9nIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKaW5kZXggOGY5ZWZkMS4u N2RlZWEzZSAxMDA2NDQKLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cK KysrIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA QAorMjAxMS0xMC0wNiAgSnVzdGluIExlYmFyIDxqdXN0aW4ubGViYXJAZ21h aWwuY29tPgorCisJQWRkIHRlc3RzIGZvciBza2lwIGNvbW1hbmQuCisJKiB0 ZXN0c3VpdGUvZ2RiLmJhc2Uvc2tpcC1zb2xpYi1saWIuYzogTmV3CisJKiB0 ZXN0c3VpdGUvZ2RiLmJhc2Uvc2tpcC1zb2xpYi1tYWluLmM6IE5ldworCSog dGVzdHN1aXRlL2dkYi5iYXNlL3NraXAtc29saWIuZXhwOiBOZXcKKwkqIHRl c3RzdWl0ZS9nZGIuYmFzZS9za2lwLmM6IE5ldworCSogdGVzdHN1aXRlL2dk Yi5iYXNlL3NraXAuZXhwOiBOZXcKKwkqIHRlc3RzdWl0ZS9nZGIuYmFzZS9z a2lwMS5jOiBOZXcKKwkqIHRlc3RzdWl0ZS9nZGIuYmFzZS9NYWtlZmlsZS5p bjogQWRkaW5nIG5ldyBmaWxlcy4KKwogMjAxMS0xMC0wNSAgUGllcnJlIE11 bGxlciAgPG11bGxlckBpY3MudS1zdHJhc2JnLmZyPgogCiAJQWRkIHRlc3Rz IGZvciBwYXNzaW5nIG9mIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBpbmZl cmlvci4KZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvTWFr ZWZpbGUuaW4gYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL01ha2VmaWxlLmlu CmluZGV4IDcyZjFiYTQuLjdjZWIxMjEgMTAwNjQ0Ci0tLSBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvTWFrZWZpbGUuaW4KKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9NYWtlZmlsZS5pbgpAQCAtMzAsOCArMzAsOCBAQCBFWEVD VVRBQkxFUyA9IGEyLXJ1biBhZHZhbmNlIGFsbC10eXBlcyBhbm5vdGExIGFu bm90YTEtd2F0Y2hfdGhyZWFkX251bSBcCiAJc2Vwc3ltdGFiLmRlYnVnIHNl cHN5bXRhYi5zdHJpcHBlZCBzZXRzaG93IHNldHZhciBzaG1haW4gc2hyZWxv YyBcCiAJc2lnYWxsIHNpZ2FsdHN0YWNrIHNpZ2JwdCBzaWdjaGxkIHNpZ2lu Zm8gc2lnaW5mby1hZGRyIFwKIAlzaWdpbmZvLWluZmNhbGwgc2lnaW5mby1v Ymogc2lnbmFscyBzaWdudWxsIHNpZ3JlcGVhdCBzaWdzdGVwIFwKLQlzaXpl b2Ygc29saWIgc29saWItY29ycnVwdGVkIHNvbGliLWRpc3BsYXktbWFpbiBz b2xpYi1ub2RpciBcCi0Jc29saWItb3ZlcmxhcC1tYWluLTB4NDAwMDAwMDAg c29saWItc3ltYm9sLW1haW4gc29saWItd2VhayBcCisJc2l6ZW9mIHNraXAg c2tpcC1zb2xpYiBzb2xpYiBzb2xpYi1jb3JydXB0ZWQgc29saWItZGlzcGxh eS1tYWluCisJc29saWItbm9kaXIgc29saWItb3ZlcmxhcC1tYWluLTB4NDAw MDAwMDAgc29saWItc3ltYm9sLW1haW4gc29saWItd2VhayBcCiAJc29saWIt d2Vhay1saWIyIHNvbGliX3NsIHNvLWltcGwtbGQgc28taW5kci1jbCBcCiAJ c3RhY2stY2hlY2tpbmcgc3RhcnQgc3RlcC1icmVhayBzdGVwLWJ0IHN0ZXAt bGluZSBzdGVwLXJlc3VtZS1pbmZjYWxsIFwKIAlzdGVwLXRlc3Qgc3RvcmUg c3RydWN0cy10KiBzdHJ1Y3RzMiBzdHJ1Y3RzMyBcCmRpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3NraXAtc29saWItbGliLmMgYi9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL3NraXAtc29saWItbGliLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzkyY2QwMQotLS0gL2Rldi9u dWxsCisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc2tpcC1zb2xpYi1s aWIuYwpAQCAtMCwwICsxLDExIEBACisvKiBTaW1wbGUgc2hhcmVkIGxpYnJh cnkgKi8KKworaW50IHNxdWFyZShpbnQgbnVtKQoreworICByZXR1cm4gbXVs dGlwbHkobnVtLCBudW0pOworfQorCitpbnQgbXVsdGlwbHkoaW50IGEsIGlu dCBiKQoreworICByZXR1cm4gYSAqIGI7Cit9CmRpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL3NraXAtc29saWItbWFpbi5jIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9za2lwLXNvbGliLW1haW4uYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDZiYjVmCi0tLSAvZGV2L251 bGwKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9za2lwLXNvbGliLW1h aW4uYwpAQCAtMCwwICsxLDYgQEAKK2ludCBzcXVhcmUoaW50IG51bSk7CisK K2ludCBtYWluKCkKK3sKKyAgcmV0dXJuIHNxdWFyZSgwKTsKK30KZGlmZiAt LWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc2tpcC1zb2xpYi5leHAg Yi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3NraXAtc29saWIuZXhwCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmODgzOGQKLS0tIC9k ZXYvbnVsbAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3NraXAtc29s aWIuZXhwCkBAIC0wLDAgKzEsMTI5IEBACisjICAgQ29weXJpZ2h0IDIwMTEg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyMgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uCisKKyMgVGhpcyBmaWxlIHdhcyB3cml0dGVuIGJ5IEp1c3RpbiBMZWJh ci4gKGp1c3Rpbi5sZWJhckBnbWFpbC5jb20pCisKKyMKKyMgVGVzdHMgc2tp cHBpbmcgc2hhcmVkIGxpYnJhcmllcy4KKyMKKworIyBUaGlzIG9ubHkgd29y a3Mgb24gR05VL0xpbnV4LgoraWYgeyAhW2lzbmF0aXZlXSB8fCBbaXNfcmVt b3RlIGhvc3RdIHx8ICFbaXN0YXJnZXQgKi1saW51eCpdIHx8IFtza2lwX3No bGliX3Rlc3RzXX0geworICAgIGNvbnRpbnVlCit9CisKK3NldCB0ZXN0ICJz a2lwLXNvbGliIgorc2V0IHNyY2ZpbGVfbWFpbiAiJHt0ZXN0fS1tYWluLmMi CitzZXQgYmluZmlsZV9tYWluICIke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVz dH0tdGVzdCIKK3NldCBzcmNmaWxlX2xpYiAiJHt0ZXN0fS1saWIuYyIKK3Nl dCBsaWJuYW1lICJsaWIke3Rlc3R9Igorc2V0IGJpbmZpbGVfbGliICR7b2Jq ZGlyfS8ke3N1YmRpcn0vJHtsaWJuYW1lfS5zbworCisjCisjIENvbXBpbGUg b3VyIHByb2dyYW0gdW5kZXIgdGVzdC4gIFRoZSBtYWluIHByb2dyYW0gcmVm ZXJlbmNlcyBhIHNoYXJlZCBsaWJyYXJ5CisjIGxpYnNraXAtc29saWIuc28s IHdoaWNoIGNvbnRhaW5zIHR3byBmdW5jdGlvbnMsIHNxdWFyZSgpLCB3aGlj aCBpcworIyByZWZlcmVuY2VkIGJ5IHRoZSBtYWluIHByb2dyYW0sIGFuZCBt dWx0aXBseSgpLCB3aGljaCBpcyBub3QgcmVmZXJlbmNlZCBieQorIyB0aGUg bWFpbiBwcm9ncmFtLgorIworCitpZiB7W2dkYl9jb21waWxlX3NobGliICR7 c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlX2xpYn0gJHtiaW5maWxlX2xp Yn0gW2xpc3QgZGVidWcgYWRkaXRpb25hbF9mbGFncz0tZlBJQyAtV2wsLXNv bmFtZSwke2xpYm5hbWV9LnNvXV0gIT0gIiJ9IHsKKyAgICByZXR1cm4gLTEK K30KKworaWYge1tnZGJfY29tcGlsZSAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8k e3NyY2ZpbGVfbWFpbn0iICIke2JpbmZpbGVfbWFpbn0ubyIgb2JqZWN0IGRl YnVnXSAhPSAiIn0geworICAgIHJldHVybiAtMQorfQorCitpZiB7W2dkYl9j b21waWxlICIke2JpbmZpbGVfbWFpbn0ubyIgIiR7YmluZmlsZV9tYWlufSIg ZXhlY3V0YWJsZSBcCisgICAgICAgICAgICAgICAgIFtsaXN0IGRlYnVnICJh ZGRpdGlvbmFsX2ZsYWdzPS1MJHtvYmpkaXJ9LyR7c3ViZGlyfSAtbCR7dGVz dH0gXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAtV2wsLXJwYXRoPSR7b2JqZGlyfS8ke3N1YmRpcn0iXV0gIT0g IiJ9IHsKKyAgICByZXR1cm4gLTEKK30KKworZ2RiX3N0YXJ0CitnZGJfbG9h ZCAke2JpbmZpbGVfbWFpbn0KKworIworIyBBdCB0aGlzIHBvaW50LCBpZiB3 ZSB0cnkgdG8gc2tpcCB0aGUgZmlsZSAke3NyY2ZpbGVfbGlifSBvciB0aGUg ZnVuY3Rpb24KKyMgbXVsdGlwbHkoKSwgd2Ugc2hvdWxkIGdldCBhIHByb21w dCBhc2tpbmcgdXMgaWYgd2Ugd2FudCB0byBlbmFibGUgdGhlCisjIHNraXAg ZW50cnkgcGVuZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGxvYWQuCisjCisKK2dk Yl90ZXN0ICJza2lwIGZpbGUgJHtzcmNmaWxlX2xpYn0iIFwKKyJGaWxlICR7 c3JjZmlsZV9saWJ9IHdpbGwgYmUgc2tpcHBlZCB3aGVuIHN0ZXBwaW5nLiIg XAorImlnbm9yaW5nIGZpbGUgaW4gc29saWIiIFwKKyJObyBzb3VyY2UgZmls ZSBuYW1lZCAke3NyY2ZpbGVfbGlifS4qCitJZ25vcmUgZmlsZSBwZW5kaW5n IGZ1dHVyZSBzaGFyZWQgbGlicmFyeSBsb2FkLioiXAorInkiCisKKyMKKyMg RG9lcyBpbmZvIHNraXAgbGlzdCB0aGlzIGVudHJ5IGFzIHBlbmRpbmc/Cisj CitnZGJfdGVzdCAiaW5mbyBza2lwIiBcCisiTnVtXFxzK1R5cGVcXHMrRW5i XFxzK0FkZHJlc3NcXHMrV2hhdFxccyoKKzFcXHMrZmlsZVxccyt5XFxzK1xc cyske3NyY2ZpbGVfbGlifSBcXChQRU5ESU5HXFwpXFxzKiIgXAorImluZm8g c2tpcCB3aXRoIHBlbmRpbmcgZmlsZSIKKworaWYgIVtydW50b19tYWluXSB7 IGZhaWwgInNraXAgdGVzdHMgc3VwcHJlc3NlZCIgfQorCisjCisjIFdlIHNo b3VsZG4ndCBzdGVwIGludG8gc3F1YXJlKCksIHNpbmNlIHdlIHNraXBwZWQg c2tpcC1zb2xpYi1saWIuYy4KKyMKK2dkYl90ZXN0ICJzdGVwIiAiIgorZ2Ri X3Rlc3QgImJ0IiAiIzBcXHMrbWFpbi4qIiAic3RlcCBhZnRlciBpZ25vcmlu ZyBzb2xpYiBmaWxlLiIKKworIworIyBPdXIgZW50cnkgc2hvdWxkIG5vIGxv bmdlciBiZSBwZW5kaW5nLiAgTm90ZSB0aGF0IHdlIHVuZm9ydHVuYXRlbHkg bmVlZCB0byBkbworIyBhdCBsZWFzdCBvbmUgc3RlcCBiZWZvcmUgdGhlIGVu dHJ5IHdpbGwgYmUgdW5tYXJrZWQgYXMgcGVuZGluZy4KKyMKK2dkYl90ZXN0 ICJpbmZvIHNraXAiIFwKKyJOdW1cXHMrVHlwZVxccytFbmJcXHMrQWRkcmVz c1xccytXaGF0XFxzKgorMVxccytmaWxlXFxzK3lcXHMrXFxzKy4qJHtzcmNm aWxlX2xpYn1cXHMqIiBcCisiaW5mbyBza2lwIHdpdGggcGVuZGluZyBmaWxl IgorCisjCisjIE5vdyByZXN0YXJ0IGdkYiBhbmQgdGVzdGluZyBpZ25vcmlu ZyBvZiBhIGZ1bmN0aW9uIGluc2lkZSBhIHNvbGliLgorIworZ2RiX2V4aXQK K2dkYl9zdGFydAorZ2RiX2xvYWQgJHtiaW5maWxlX21haW59CisKK2dkYl90 ZXN0ICJza2lwIGZ1bmN0aW9uIG11bHRpcGx5IiBcCisiRnVuY3Rpb24gbXVs dGlwbHkgd2lsbCBiZSBza2lwcGVkIHdoZW4gc3RlcHBpbmcsIHBlbmRpbmcg c2hhcmVkIGxpYnJhcnkgbG9hZC4iIFwKKyJpZ25vcmluZyBmdW5jdGlvbiBp biBzb2xpYiIgXAorIk5vIGZ1bmN0aW9uIGZvdW5kIG5hbWVkIG11bHRpcGx5 Li4qCitJZ25vcmUgZnVuY3Rpb24gcGVuZGluZyBmdXR1cmUgc2hhcmVkIGxp YnJhcnkgbG9hZC4qIlwKKyJ5IgorCitpZiAhW3J1bnRvX21haW5dIHsgZmFp bCAic2tpcCB0ZXN0cyBzdXBwcmVzc2VkIiB9CisKKyMKKyMgT3VyIGZpcnN0 IHN0ZXAgc2hvdWxkIHRha2UgdXMgaW50byBzcXVhcmUuCisjCitnZGJfdGVz dCAic3RlcCIgInNxdWFyZS4qIgorCisjCisjIE5vdyBvdXIgZW50cnkgc2hv dWxkIG5vIGxvbmdlciBiZSBwZW5kaW5nLgorIworZ2RiX3Rlc3QgImluZm8g c2tpcCIgXAorIk51bVxccytUeXBlXFxzK0VuYlxccytBZGRyZXNzXFxzK1do YXRcXHMqCisxXFxzK2Z1bmN0aW9uXFxzK3lcXHMrMHhcWzAtOWEtZlxdK1xc cyttdWx0aXBseSBhdCAuKiR7c3JjZmlsZV9saWJ9Oi4qXFxzKiIgXAorCisj CisjIFRoaXMgc3RlcCBzaG91bGRuJ3QgZ28gaW50byBtdWx0aXBseSAtLSB3 ZSBzaG91bGQgc2tpcCBpdCBhbmQgZ28gb24gdG8gdGhlCisjIGxhc3QgbGlu ZSBvZiBzcXVhcmUuCisjCitnZGJfdGVzdCAic3RlcCIgIiIKK2dkYl90ZXN0 ICJidCIgIiMwXFxzK3NxdWFyZS4qIgpkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9za2lwLmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L3NraXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41 NjViYTkzCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9za2lwLmMKQEAgLTAsMCArMSwxMyBAQAoraW50IGZvbygpOworaW50 IGJhcigpOworaW50IGJheihpbnQsIGludCk7CisKK2ludCBtYWluKCkKK3sK KyAgcmV0dXJuIGJheihmb28oKSwgYmFyKCkpOworfQorCitpbnQgZm9vKCkK K3sKKyAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL3NraXAuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9z a2lwLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41 YTgxY2Q0Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9za2lwLmV4cApAQCAtMCwwICsxLDE3OSBAQAorIyAgIENvcHlyaWdo dCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisjIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisj IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgorCisjIFRoaXMgZmlsZSB3YXMgd3JpdHRlbiBieSBKdXN0 aW4gTGViYXIuIChqdXN0aW4ubGViYXJAZ21haWwuY29tKQorCitpZiB7IFtw cmVwYXJlX2Zvcl90ZXN0aW5nIHNraXAuZXhwICJza2lwIiBcCisgICAgICAg ICAgICAgICAgICAgICAgICAgIHtza2lwLmMgc2tpcDEuYyB9IFwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAge2RlYnVnIG5vd2FybmluZ3N9XSB9IHsK KyAgICByZXR1cm4gLTEKK30KKworc2V0IHNyY2ZpbGUgc2tpcC5jCitzZXQg c3JjZmlsZTEgc2tpcDEuYworCisjCisjIFJpZ2h0IGFmdGVyIHdlIHN0YXJ0 IGdkYiwgdGhlcmUncyBubyBkZWZhdWx0IGZpbGUgb3IgZnVuY3Rpb24gdG8g c2tpcC4KKyMKK2dkYl90ZXN0ICJza2lwIGZpbGUiICJObyBkZWZhdWx0IGZp bGUgbm93LiIKK2dkYl90ZXN0ICJza2lwIGZ1bmN0aW9uIiAiTm8gZGVmYXVs dCBmdW5jdGlvbiBub3cuIgorZ2RiX3Rlc3QgInNraXAiICJObyBkZWZhdWx0 IGZ1bmN0aW9uIG5vdy4iCisKK2lmICFbcnVudG9fbWFpbl0geyBmYWlsICJz a2lwIHRlc3RzIHN1cHByZXNzZWQiIH0KKworIworIyBUZXN0IHxpbmZvIHNr aXB8IHdpdGggYW4gZW1wdHkgc2tpcGxpc3QuCisjCitnZGJfdGVzdCAiaW5m byBza2lwIiAiTm90IHNraXBwaW5nIGFueSBmaWxlcyBvciBmdW5jdGlvbnNc LiIgImluZm8gc2tpcCBlbXB0eSIKKworIworIyBDcmVhdGUgYSBza2lwbGlz dCBlbnRyeSBmb3IgdGhlIGN1cnJlbnQgZmlsZSBhbmQgZnVuY3Rpb24uCisj CitnZGJfdGVzdCAic2tpcCBmaWxlIiAiRmlsZSAuKiRzcmNmaWxlIHdpbGwg YmUgc2tpcHBlZCB3aGVuIHN0ZXBwaW5nXC4iCitnZGJfdGVzdCAic2tpcCIg IkZ1bmN0aW9uIG1haW4gYXQgLiogd2lsbCBiZSBza2lwcGVkIHdoZW4gc3Rl cHBpbmdcLiIKKworIworIyBDcmVhdGUgYSBza2lwbGlzdCBlbnRyeSBmb3Ig YSBzcGVjaWZpZWQgZmlsZSBhbmQgZnVuY3Rpb24uCisjCitnZGJfdGVzdCAi c2tpcCBmaWxlIHNraXAxLmMiICJGaWxlIC4qJHNyY2ZpbGUxIHdpbGwgYmUg c2tpcHBlZCB3aGVuIHN0ZXBwaW5nXC4iCitnZGJfdGVzdCAic2tpcCBmdW5j dGlvbiBiYXoiICJGdW5jdGlvbiBiYXogYXQgLiogd2lsbCBiZSBza2lwcGVk IHdoZW4gc3RlcHBpbmdcLiIKKworIworIyBUZXN0IGJhZCBza2lwbGlzdCBl bnRyeSBtb2RpZmljYXRpb24gY29tbWFuZHMKKyMKK2dkYl90ZXN0ICJza2lw IGVuYWJsZSA5OTkiICJObyBza2lwbGlzdCBlbnRyaWVzIGZvdW5kIHdpdGgg bnVtYmVyIDk5OS4iCitnZGJfdGVzdCAic2tpcCBkaXNhYmxlIDk5OSIgIk5v IHNraXBsaXN0IGVudHJpZXMgZm91bmQgd2l0aCBudW1iZXIgOTk5LiIKK2dk Yl90ZXN0ICJza2lwIGRlbGV0ZSA5OTkiICJObyBza2lwbGlzdCBlbnRyaWVz IGZvdW5kIHdpdGggbnVtYmVyIDk5OS4iCitnZGJfdGVzdCAic2tpcCBlbmFi bGUgYSIgIkFyZ3MgbXVzdCBiZSBudW1iZXJzIG9yICdcXCQnIHZhcmlhYmxl cy4iCitnZGJfdGVzdCAic2tpcCBkaXNhYmxlIGEiICJBcmdzIG11c3QgYmUg bnVtYmVycyBvciAnXFwkJyB2YXJpYWJsZXMuIgorZ2RiX3Rlc3QgInNraXAg ZGVsZXRlIGEiICJBcmdzIG11c3QgYmUgbnVtYmVycyBvciAnXFwkJyB2YXJp YWJsZXMuIgorCisjCisjIEFzayBmb3IgaW5mbyBvbiBhIHNraXBsaXN0IGVu dHJ5IHdoaWNoIGRvZXNuJ3QgZXhpc3QuCisjCitnZGJfdGVzdCAiaW5mbyBz a2lwIDk5OSIgIk5vIHNraXBsaXN0IGVudHJpZXMgZm91bmQgd2l0aCBudW1i ZXIgOTk5LiIKKworIworIyBEb2VzIHxpbmZvIHNraXB8IGxvb2sgcmlnaHQ/ CisjCitnZGJfdGVzdCAiaW5mbyBza2lwIiBcCisiTnVtXFxzK1R5cGVcXHMr RW5iXFxzK0FkZHJlc3NcXHMrV2hhdFxccyoKKzFcXHMrZmlsZVxccyt5XFxz Ky4qJHNyY2ZpbGVcXHMqCisyXFxzK2Z1bmN0aW9uXFxzK3lcXHMrMHhcWzAt OWEtZlxdKyBtYWluIGF0IC4qJHNyY2ZpbGU6XFswLTlcXStcXHMqCiszXFxz K2ZpbGVcXHMreVxccysuKiRzcmNmaWxlMVxccyoKKzRcXHMrZnVuY3Rpb25c XHMreVxccysweFxbMC05YS1mXF0rIGJheiBhdCAuKiRzcmNmaWxlMTpcWzAt OVxdK1xccyoiCisKKyMKKyMgUmlnaHQgbm93LCB3ZSBoYXZlIGFuIG91dHN0 YW5kaW5nIHNraXBsaXN0IGVudHJ5IG9uIGJvdGggc291cmNlCisjIGZpbGVz LCBzbyB3aGVuIHdlIHN0ZXAgaW50byB0aGUgZmlyc3QgbGluZSBpbiBtYWlu KCksIHdlIHNob3VsZCBzdGVwCisjIHJpZ2h0IG92ZXIgaXQgYW5kIGdvIHRv IHRoZSBzZWNvbmQgbGluZSBvZiBtYWluKCkuCisjCisKK2lmICFbcnVudG9f bWFpbl0geyBmYWlsICJza2lwIHRlc3RzIHN1cHByZXNzZWQiIH0KK2dkYl90 ZXN0ICJzdGVwIgorZ2RiX3Rlc3QgImJ0IiAiXFxzKlxcIzBcXHMrbWFpbi4q IiAic3RlcCBhZnRlciBhbGwgaWdub3JlZCIKKworIworIyBOb3cgcmVtb3Zl IHNraXAuYyBmcm9tIHRoZSBza2lwbGlzdC4gIE91ciBmaXJzdCBzdGVwIHNo b3VsZCB0YWtlIHVzCisjIGludG8gZm9vKCksIGFuZCBvdXIgc2Vjb25kIHN0 ZXAgc2hvdWxkIHRha2UgdXMgdG8gdGhlIG5leHQgbGluZSBpbgorIyBtYWlu KCkuCisjCitnZGJfdGVzdCAic2tpcCBkZWxldGUgMSIKKyMgQ2hlY2sgdGhh dCBlbnRyeSAxIGlzIG1pc3NpbmcgZnJvbSB8aW5mbyBza2lwfAorZ2RiX3Rl c3QgImluZm8gc2tpcCIgXAorIk51bVxccytUeXBlXFxzK0VuYlxccytBZGRy ZXNzXFxzK1doYXRcXHMqCisyXFxzK2Z1bmN0aW9uXFxzK3lcXHMrMHhcWzAt OWEtZlxdKyBtYWluIGF0IC4qJHNyY2ZpbGU6XFswLTlcXStcXHMqCiszXFxz K2ZpbGVcXHMreVxccysuKiRzcmNmaWxlMVxccyoKKzRcXHMrZnVuY3Rpb25c XHMreVxccysweFxbMC05YS1mXF0rIGJheiBhdCAuKiRzcmNmaWxlMTpcWzAt OVxdK1xccyoiCisKK2lmICFbcnVudG9fbWFpbl0geyBmYWlsICJza2lwIHRl c3RzIHN1cHByZXNzZWQiIH0KK2dkYl90ZXN0ICJzdGVwIiAiZm9vIFxcKFxc KSBhdC4qIiAic3RlcCBhZnRlciBkZWxldGluZyAxICgxKSIKK2dkYl90ZXN0 ICJzdGVwIjsgIyBSZXR1cm4gZnJvbSBmb28oKQorZ2RiX3Rlc3QgInN0ZXAi ICJtYWluIFxcKFxcKSBhdC4qIiAic3RlcCBhZnRlciBkZWxldGluZyAxICgy KSIKKworIworIyBOb3cgZGlzYWJsZSB0aGUgc2tpcGxpc3QgZW50cnkgZm9y ICBza2lwMS5jLiAgV2Ugc2hvdWxkIG5vdworIyBzdGVwIGludG8gZm9vKCks IHRoZW4gaW50byBiYXIoKSwgYnV0IG5vdCBpbnRvIGJheigpLgorIworZ2Ri X3Rlc3QgInNraXAgZGlzYWJsZSAzIgorIyBJcyBlbnRyeSAzIGRpc2FibGVk IGluIHxpbmZvIHNraXB8PworZ2RiX3Rlc3QgImluZm8gc2tpcCAzIiAiLipc XG4zXFxzK2ZpbGVcXHMrbi4qIiBcCisgICAgICAgICAiaW5mbyBza2lwIHNo b3dzIGVudHJ5IGFzIGRpc2FibGVkIgorCitpZiAhW3J1bnRvX21haW5dIHsg ZmFpbCAic2tpcCB0ZXN0cyBzdXBwcmVzc2VkIiB9CitnZGJfdGVzdCAic3Rl cCIgImJhciBcXChcXCkgYXQuKiIgInN0ZXAgYWZ0ZXIgZGlzYWJsaW5nIDMg KDEpIgorZ2RiX3Rlc3QgInN0ZXAiOyAjIFJldHVybiBmcm9tIGZvbygpCitn ZGJfdGVzdCAic3RlcCIgImZvbyBcXChcXCkgYXQuKiIgInN0ZXAgYWZ0ZXIg ZGlzYWJsaW5nIDMgKDIpIgorZ2RiX3Rlc3QgInN0ZXAiOyAjIFJldHVybiBm cm9tIGJhcigpCitnZGJfdGVzdCAic3RlcCIgIm1haW4gXFwoXFwpIGF0Lioi ICJzdGVwIGFmdGVyIGRpc2FibGluZyAzICgzKSIKKworIworIyBFbmFibGUg c2tpcGxpc3QgZW50cnkgMyBhbmQgbWFrZSBzdXJlIHdlIHN0ZXAgb3ZlciBp dCBsaWtlIGJlZm9yZS4KKyMKK2dkYl90ZXN0ICJza2lwIGVuYWJsZSAzIgor IyBJcyBlbnRyeSAzIGVuYWJsZWQgaW4gfGluZm8gc2tpcHw/CitnZGJfdGVz dCAiaW5mbyBza2lwIDMiICIuKlxcbjNcXHMrZmlsZVxccyt5LioiIFwKKyAg ICAgICAgICJpbmZvIHNraXAgc2hvd3MgZW50cnkgYXMgZW5hYmxlZCIKK2lm ICFbcnVudG9fbWFpbl0geyBmYWlsICJza2lwIHRlc3RzIHN1cHByZXNzZWQi IH0KK2dkYl90ZXN0ICJzdGVwIiAiZm9vIFxcKFxcKSBhdC4qIiAic3RlcCBh ZnRlciBkZWxldGluZyAxICgxKSIKK2dkYl90ZXN0ICJzdGVwIjsgIyBSZXR1 cm4gZnJvbSBmb28oKQorZ2RiX3Rlc3QgInN0ZXAiICJtYWluIFxcKFxcKSBh dC4qIiAic3RlcCBhZnRlciBkZWxldGluZyAxICgyKSIKKworZ2RiX3Rlc3Qg InNraXAgZGlzYWJsZSIKK2dkYl90ZXN0ICJpbmZvIHNraXAiIFwKKyJOdW1c XHMrVHlwZVxccytFbmJcXHMrQWRkcmVzc1xccytXaGF0XFxzKgorMlxccytm dW5jdGlvblxccytuXFxzKzB4XFswLTlhLWZcXSsgbWFpbiBhdCAuKiRzcmNm aWxlOlxbMC05XF0rXFxzKgorM1xccytmaWxlXFxzK25cXHMrLiokc3JjZmls ZTFcXHMqCis0XFxzK2Z1bmN0aW9uXFxzK25cXHMrMHhcWzAtOWEtZlxdKyBi YXogYXQgLiokc3JjZmlsZTE6XFswLTlcXStcXHMqIiBcCisiaW5mbyBza2lw IGFmdGVyIGRpc2FibGluZyBhbGwiCisKK2dkYl90ZXN0ICJza2lwIGVuYWJs ZSIKK2dkYl90ZXN0ICJpbmZvIHNraXAiIFwKKyJOdW1cXHMrVHlwZVxccytF bmJcXHMrQWRkcmVzc1xccytXaGF0XFxzKgorMlxccytmdW5jdGlvblxccyt5 XFxzKzB4XFswLTlhLWZcXSsgbWFpbiBhdCAuKiRzcmNmaWxlOlxbMC05XF0r XFxzKgorM1xccytmaWxlXFxzK3lcXHMrLiokc3JjZmlsZTFcXHMqCis0XFxz K2Z1bmN0aW9uXFxzK3lcXHMrMHhcWzAtOWEtZlxdKyBiYXogYXQgLiokc3Jj ZmlsZTE6XFswLTlcXStcXHMqIiBcCisiaW5mbyBza2lwIGFmdGVyIGVuYWJs aW5nIGFsbCIKKworZ2RiX3Rlc3QgInNraXAgZGlzYWJsZSA0IDItMyIKK2dk Yl90ZXN0ICJpbmZvIHNraXAiIFwKKyJOdW1cXHMrVHlwZVxccytFbmJcXHMr QWRkcmVzc1xccytXaGF0XFxzKgorMlxccytmdW5jdGlvblxccytuXFxzKzB4 XFswLTlhLWZcXSsgbWFpbiBhdCAuKiRzcmNmaWxlOlxbMC05XF0rXFxzKgor M1xccytmaWxlXFxzK25cXHMrLiokc3JjZmlsZTFcXHMqCis0XFxzK2Z1bmN0 aW9uXFxzK25cXHMrMHhcWzAtOWEtZlxdKyBiYXogYXQgLiokc3JjZmlsZTE6 XFswLTlcXStcXHMqIiBcCisiaW5mbyBza2lwIGFmdGVyIGRpc2FibGluZyA0 IDItMyIKKworZ2RiX3Rlc3QgInNraXAgZW5hYmxlIDItMyIKK2dkYl90ZXN0 ICJpbmZvIHNraXAiIFwKKyJOdW1cXHMrVHlwZVxccytFbmJcXHMrQWRkcmVz c1xccytXaGF0XFxzKgorMlxccytmdW5jdGlvblxccyt5XFxzKzB4XFswLTlh LWZcXSsgbWFpbiBhdCAuKiRzcmNmaWxlOlxbMC05XF0rXFxzKgorM1xccytm aWxlXFxzK3lcXHMrLiokc3JjZmlsZTFcXHMqCis0XFxzK2Z1bmN0aW9uXFxz K25cXHMrMHhcWzAtOWEtZlxdKyBiYXogYXQgLiokc3JjZmlsZTE6XFswLTlc XStcXHMqIiBcCisiaW5mbyBza2lwIGFmdGVyIGVuYWJsaW5nIDItMyIKKwor Z2RiX3Rlc3QgImluZm8gc2tpcCAyLTMiIFwKKyJOdW1cXHMrVHlwZVxccytF bmJcXHMrQWRkcmVzc1xccytXaGF0XFxzKgorMlxccytmdW5jdGlvblxccyt5 XFxzKzB4XFswLTlhLWZcXSsgbWFpbiBhdCAuKiRzcmNmaWxlOlxbMC05XF0r XFxzKgorM1xccytmaWxlXFxzK3lcXHMrLiokc3JjZmlsZTFcXHMqIiBcCisi aW5mbyBza2lwIDItMyIKKworZ2RiX3Rlc3QgInNraXAgZGVsZXRlIDIgMyIK K2dkYl90ZXN0ICJpbmZvIHNraXAiIFwKKyI0XFxzK2Z1bmN0aW9uXFxzK25c XHMrMHhcWzAtOWEtZlxdKyBiYXogYXQgLiokc3JjZmlsZTE6XFswLTlcXStc XHMqIiBcCisiaW5mbyBza2lwIGFmdGVyIGRlbGV0aW5nIDIgMyIKKworZ2Ri X3Rlc3QgInNraXAgZGVsZXRlIgorZ2RiX3Rlc3QgImluZm8gc2tpcCIgIk5v dCBza2lwcGluZyBhbnkgZmlsZXMgb3IgZnVuY3Rpb25zXC4iIFwKKyJpbmZv IHNraXAgYWZ0ZXIgZGVsZXRpbmcgYWxsIgpkaWZmIC0tZ2l0IGEvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9za2lwMS5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9za2lwMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjJkYWI1YzMKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL3NraXAxLmMKQEAgLTAsMCArMSw5IEBACitpbnQgYmFyKCkK K3sKKyAgcmV0dXJuIDE7Cit9CisKK2ludCBiYXooaW50IGEsIGludCBiKQor eworICByZXR1cm4gYSArIGI7Cit9Cg== --00151748e09cefeffb04b0350045--