From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-x32f.google.com (mail-ot1-x32f.google.com [IPv6:2607:f8b0:4864:20::32f]) by sourceware.org (Postfix) with ESMTPS id 05A7C3857839 for ; Thu, 21 Jan 2021 00:19:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 05A7C3857839 Received: by mail-ot1-x32f.google.com with SMTP id i20so10214otl.7 for ; Wed, 20 Jan 2021 16:19:51 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=41D4KRj9FT/3dfcLbfW9mMXTbvLQHeUIM2qDqqLkv10=; b=nO9oK7jnkQaPRWIPEkNwd7ZHmrzYgZjkvAbee62Xlp9dQFSNb8QlE/qXuI4p8gO+Mi yuki+ZwtvR9CzFyP9xDIZ2wvhMLqa8rD1Aquvk2suLPHEvlCt3tERegR7vZ/hAufeh49 /fer44I6BxWRA1K6dTfCrnzb1apA483dtynVpSTvHqVO1w8sG0/NHYONyNhXLHsfTbJO a+GVBZ4Mi/mN54SI07WkIFLUIof8mYLPnfGCF3+HlI1hXZ4soIVUsOknUQM040uq1bcB uNMBqANHWfuVuTw/ly6lj1ek+BLMzX8keknuV3aZ/VmkmJq21YYjlseJE6kFbbBIIGFZ nWLQ== X-Gm-Message-State: AOAM533nQO5Dp/+Vt87pZ51k6fIE4+dQG+2Rf3BPYBwADVlQzKmgTkpZ +v83sUkV6uIipzH8UCMI+/pi7blKkCt2adsS+GH4lkZye4I= X-Google-Smtp-Source: ABdhPJydozunEWnky9w6/gIZ98Q3CuDhIv/CKQA9JiJgj17Dlw4XZTXNhg3jRL+A01fN2zmTB49a7bBLi1o55kwyw2E= X-Received: by 2002:a9d:170a:: with SMTP id i10mr20875ota.179.1611188390843; Wed, 20 Jan 2021 16:19:50 -0800 (PST) MIME-Version: 1.0 References: <20201225162451.1657088-1-hjl.tools@gmail.com> <87h7nc6ikc.fsf@oldenburg.str.redhat.com> <20210120144339.GA1866418@gmail.com> <87turb4n2x.fsf@oldenburg.str.redhat.com> In-Reply-To: <87turb4n2x.fsf@oldenburg.str.redhat.com> From: "H.J. Lu" Date: Wed, 20 Jan 2021 16:19:14 -0800 Message-ID: Subject: V3 [PATCH] : Remove the C preprocessor magic To: Florian Weimer Cc: "H.J. Lu via Libc-alpha" Content-Type: multipart/mixed; boundary="000000000000b3fcad05b95e07ed" X-Spam-Status: No, score=-3038.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jan 2021 00:20:00 -0000 --000000000000b3fcad05b95e07ed Content-Type: text/plain; charset="UTF-8" On Wed, Jan 20, 2021 at 7:58 AM Florian Weimer wrote: > > * H. J. Lu via Libc-alpha: > > > On Wed, Jan 20, 2021 at 10:53:07AM +0100, Florian Weimer wrote: > >> * H. J. Lu via Libc-alpha: > >> > >> > +enum > >> > +{ > >> > + COMMON_CPUID_INDEX_1 = 0, > >> > + COMMON_CPUID_INDEX_7, > >> > + COMMON_CPUID_INDEX_80000001, > >> > + COMMON_CPUID_INDEX_D_ECX_1, > >> > + COMMON_CPUID_INDEX_80000007, > >> > + COMMON_CPUID_INDEX_80000008, > >> > + COMMON_CPUID_INDEX_7_ECX_1, > >> > + COMMON_CPUID_INDEX_19, > >> > + /* Keep the following line at the end. */ > >> > + COMMON_CPUID_INDEX_MAX > >> > +}; > >> > >> COMMON_CPUID_INDEX_MAX should not be in the public header because it > >> subject to changes. > > > > Fixed. > > > >> > >> > +struct cpuid_registers > >> > +{ > >> > + unsigned int eax; > >> > + unsigned int ebx; > >> > + unsigned int ecx; > >> > + unsigned int edx; > >> > +}; > >> > >> Should the non-public interfaces use __? > > > > Moved to sysdeps/x86/include/cpu-features.h. > > > >> > >> > +enum cpu_features_kind > >> > +{ > >> > + arch_kind_unknown = 0, > >> > + arch_kind_intel, > >> > + arch_kind_amd, > >> > + arch_kind_zhaoxin, > >> > + arch_kind_other > >> > +}; > >> > + > >> > +struct cpu_features_basic > >> > +{ > >> > + enum cpu_features_kind kind; > >> > + int max_cpuid; > >> > + unsigned int family; > >> > + unsigned int model; > >> > + unsigned int stepping; > >> > +}; > >> > >> Should we really expose all this? It's not documented. enum > >> cpu_features_kind doesn't seem to be compatible with how people use > >> virtualization. > > > > Moved to sysdeps/x86/include/cpu-features.h. > > > >> > >> > diff --git a/sysdeps/x86/dl-get-cpu-features.c b/sysdeps/x86/dl-get-cpu-features.c > >> > index 349472d99f..4636d9f4a7 100644 > >> > --- a/sysdeps/x86/dl-get-cpu-features.c > >> > +++ b/sysdeps/x86/dl-get-cpu-features.c > >> > @@ -46,9 +46,9 @@ __ifunc (__x86_cpu_features, __x86_cpu_features, NULL, void, > >> > #undef __x86_get_cpu_features > >> > > >> > const struct cpu_features * > >> > -__x86_get_cpu_features (unsigned int max) > >> > +__x86_get_cpu_features (unsigned int index) > >> > { > >> > - if (max > COMMON_CPUID_INDEX_MAX) > >> > + if (index > COMMON_CPUID_INDEX_MAX * 8 * sizeof (unsigned int) * 4) > >> > return NULL; > >> > return &GLRO(dl_x86_cpu_features); > >> > } > >> > >> This should work in principle (but I haven't verified the boundary > >> condition). > >> > >> Could you pass the COMMON_CPUID_INDEX_* value (without the register and > >> bit selectors)? Then more calls can be subject to common subexpression > >> elimination in the caller, leading to more compact code. > > > > My current public API uses a single enum index for each CPU feature > > detection. Use 2 indices for each CPU feature makes it less user > > friendly. Internally, we use the C preprocessor magic so that more > > calls can be subject to common subexpression elimination in the caller, > > leading to more compact code for glibc. > > I had this in mind for the implementation: > > struct cpuid_feature > { > unsigned int cpuid_array[4]; > unsigned int usable_array[4]; > }; > > const struct cpuid_feature * > __x86_get_cpu_features (unsigned int leaf) > { > const struct cpu_feature future = { }; > if (leaf < CPUID_INDEX_MAX) > return &GLRO(dl_x86_cpu_features).features[leaf]; > else > return &future; > } > > And in the header: > > unsigned int leaf = index / (8 * sizeof (unsigned int) * 4); > > const struct cpuid_feature * __x86_get_cpu_features (unsigned int leaf) > __attribute__ ((pure)); > > static inline const struct cpuid_feature * > __x86_get_cpu_leaf (unsigned int index) > { > return __x86_get_cpu_features (index / (8 * sizeof (unsigned int) * 4)); > } > #define HAS_CPU_FEATURE(name) \ > (x86_cpu_has_feature (__x86_get_cpu_leaf (x86_cpu_##name), \ > x86_cpu_##name)) > #define HAS_CPU_FEATURE(name) \ > (x86_cpu_is_usable (__x86_get_cpu_leaf (x86_cpu_##name), \ > x86_cpu_##name)) > > > I expect that the index arguments to __x86_get_cpu_features are > constant-folded by GCC, and many of the __x86_get_cpu_features calls can > be CSE'ed as a result. > > In the public interface, the max_cpuid field appears redundant, so this > is why I think this will work. > > Here is the updated patch. The public function is changed to /* Get a pointer to the CPU feature structure. */ extern const struct cpuid_feature *__x86_get_cpuid_feature_leaf (unsigned int) __attribute__ ((pure)); OK for master? Thanks. -- H.J. --000000000000b3fcad05b95e07ed Content-Type: text/x-patch; charset="US-ASCII"; name="0001-sys-platform-x86.h-Remove-the-C-preprocessor-magic.patch" Content-Disposition: attachment; filename="0001-sys-platform-x86.h-Remove-the-C-preprocessor-magic.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kk63wb650 RnJvbSA4NDY0ZWVhZGQ3MGYzZTQxZmE4MzEzNjM5ODg0NDczYzgxODAzZTdlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IEZyaSwgMjUgRGVjIDIwMjAgMDc6MzA6NDYgLTA4MDAKU3ViamVjdDogW1BBVENIXSA8c3lzL3Bs YXRmb3JtL3g4Ni5oPjogUmVtb3ZlIHRoZSBDIHByZXByb2Nlc3NvciBtYWdpYwoKSW4gPHN5cy9w bGF0Zm9ybS94ODYuaD4sIGRlZmluZSBDUFUgZmVhdHVyZXMgYXMgZW51bSBpbnN0ZWFkIG9mIHVz aW5nCnRoZSBDIHByZXByb2Nlc3NvciBtYWdpYyB0byBtYWtlIGl0IGVhc2llciB0byB3cmFwIHRo aXMgZnVuY3Rpb25hbGl0eQppbiBvdGhlciBsYW5ndWFnZXMuICBNb3ZlIHRoZSBDIHByZXByb2Nl c3NvciBtYWdpYyB0byBpbnRlcm5hbCBoZWFkZXIKZm9yIGJldHRlciBHQ0MgY29kZWdlbiB3aGVu IG1vcmUgdGhhbiBvbmUgZmVhdHVyZXMgYXJlIGNoZWNrZWQgaW4gYQpzaW5nbGUgZXhwcmVzc2lv biBhcyBpbiB4ODYtNjQgZGwtaHdjYXBzLXN1YmRpcnMuYy4KCjEuIFJlbmFtZSBDT01NT05fQ1BV SURfSU5ERVhfWFhYIHRvIENQVUlEX0lOREVYX1hYWC4KMi4gTW92ZSBDUFVJRF9JTkRFWF9NQVgg dG8gc3lzZGVwcy94ODYvaW5jbHVkZS9jcHUtZmVhdHVyZXMuaC4KMy4gUmVtb3ZlIHN0cnVjdCBj cHVfZmVhdHVyZXMgYW5kIF9feDg2X2dldF9jcHVfZmVhdHVyZXMgZnJvbQo8c3lzL3BsYXRmb3Jt L3g4Ni5oPi4KNC4gQWRkIF9feDg2X2dldF9jcHVpZF9mZWF0dXJlX2xlYWYgdG8gPHN5cy9wbGF0 Zm9ybS94ODYuaD4uCjUuIE1ha2UgX19nZXRfY3B1X2ZlYXR1cmVzKCkgcHJpdmF0ZSB0byBnbGli Yy4KNi4gUmVwbGFjZSBfX3g4Nl9nZXRfY3B1X2ZlYXR1cmVzKE4pIHdpdGggX19nZXRfY3B1X2Zl YXR1cmVzKCkuCjcuIEFkZCBfZGxfeDg2X2dldF9jcHVfZmVhdHVyZXMgdG8gR0xJQkNfUFJJVkFU RS4KOC4gVXNlIGEgc2luZ2xlIGVudW0gaW5kZXggZm9yIGVhY2ggQ1BVIGZlYXR1cmUgZGV0ZWN0 aW9uLgo5LiBQYXNzIHRoZSBDUFVJRCBmZWF0dXJlIGxlYWYgdG8gX194ODZfZ2V0X2NwdWlkX2Zl YXR1cmVfbGVhZi4KMTAuIFJldHVybiB6ZXJvIHN0cnVjdCBjcHVpZF9mZWF0dXJlIGZvciB0aGUg b2xkZXIgZ2xpYmMgYmluYXJ5IHdpdGggYQpzbWFsbGVyIENQVUlEX0lOREVYX01BWCBbQlogIzI3 MTA0XS4KMTEuIEluc2lkZSBnbGliYywgdXNlIHRoZSBDIHByZXByb2Nlc3NvciBtYWdpYyBzbyB0 aGF0IGNwdV9mZWF0dXJlcyBkYXRhCmNhbiBiZSBsb2FkZWQganVzdCBvbmNlIGxlYWRpbmcgdG8g bW9yZSBjb21wYWN0IGNvZGUgZm9yIGdsaWJjLgoKMjU2IGJpdHMgYXJlIHVzZWQgZm9yIGVhY2gg Q1BVSUQgbGVhZi4gIFNvbWUgbGVhdmVzIG9ubHkgY29udGFpbiBhIGZldwpmZWF0dXJlcy4gIFdl IGNhbiBhZGQgZXhjZXB0aW9ucyB0byBzdWNoIGxlYXZlcy4gIEJ1dCBpdCB3aWxsIGluY3JlYXNl CmNvZGUgc2l6ZXMgYW5kIGl0IGlzIGhhcmRlciB0byBwcm92aWRlIGJhY2t3YXJkL2ZvcndhcmQg Y29tcGF0aWJpbGl0aWVzCndoZW4gbmV3IGZlYXR1cmVzIGFyZSBhZGRlZCB0byBzdWNoIGxlYXZl cyBpbiB0aGUgZnV0dXJlLgoKV2hlbiBuZXcgbGVhdmVzIGFyZSBhZGRlZCwgX3J0bGRfZ2xvYmFs X3JvIG9mZnNldHMgd2lsbCBjaGFuZ2Ugd2hpY2gKbGVhZHMgdG8gcmFjZSBjb25kaXRpb24gZHVy aW5nIGluLXBsYWNlIHVwZGF0ZXMuIFdlIG1heSBhdm9pZCBpbi1wbGFjZQp1cGRhdGVzIGJ5Cgox LiBSZW5hbWUgdGhlIG9sZCBnbGliYy4KMi4gSW5zdGFsbCB0aGUgbmV3IGdsaWJjLgozLiBSZW1v dmUgdGhlIG9sZCBnbGliYy4KCk5COiBBIGZ1bmN0aW9uLCBfX3g4Nl9nZXRfY3B1aWRfZmVhdHVy ZV9sZWFmICwgaXMgdXNlZCB0byBhdm9pZCB0aGUgY29weQpyZWxvY2F0aW9uIGlzc3VlIHdpdGgg SUZVTkMgcmVzb2x2ZXIgYXMgc2hvd24gaW4gSUZVTkMgcmVzb2x2ZXIgdGVzdHMuCi0tLQogbWFu dWFsL3BsYXRmb3JtLnRleGkgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICstCiBzeXNk ZXBzL21hY2gvaHVyZC9pMzg2L2xkLmFiaWxpc3QgICAgICAgICAgICAgfCAgIDIgKy0KIHN5c2Rl cHMvdW5peC9zeXN2L2xpbnV4L2kzODYvbGQuYWJpbGlzdCAgICAgICB8ICAgMiArLQogc3lzZGVw cy91bml4L3N5c3YvbGludXgveDg2XzY0LzY0L2xkLmFiaWxpc3QgIHwgICAyICstCiAuLi4vc3lz di9saW51eC94ODZfNjQvdHN0LWdsaWJjLWh3Y2Fwcy0yLmMgICAgfCAgIDMgKy0KIHN5c2RlcHMv dW5peC9zeXN2L2xpbnV4L3g4Nl82NC94MzIvbGQuYWJpbGlzdCB8ICAgMiArLQogc3lzZGVwcy94 ODYvVmVyc2lvbnMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICstCiBzeXNkZXBzL3g4 Ni9iaXRzL3BsYXRmb3JtL3g4Ni5oICAgICAgICAgICAgICAgfCAyOTkgKysrKysrKwogc3lzZGVw cy94ODYvY3B1LWZlYXR1cmVzLmMgICAgICAgICAgICAgICAgICAgIHwgIDY4ICstCiBzeXNkZXBz L3g4Ni9kbC1jYWNoZWluZm8uaCAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIHN5c2RlcHMv eDg2L2RsLWdldC1jcHUtZmVhdHVyZXMuYyAgICAgICAgICAgICB8ICAxNyArLQogc3lzZGVwcy94 ODYvZ2V0LWlzYS1sZXZlbC5oICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzeXNkZXBzL3g4 Ni9pbmNsdWRlL2NwdS1mZWF0dXJlcy5oICAgICAgICAgICAgfCA3NTkgKysrKysrKysrKysrKysr Ky0KIHN5c2RlcHMveDg2L3N5cy9wbGF0Zm9ybS94ODYuaCAgICAgICAgICAgICAgICB8IDc3NyAr LS0tLS0tLS0tLS0tLS0tLS0KIHN5c2RlcHMveDg2L3RzdC1nZXQtY3B1LWZlYXR1cmVzLmMgICAg ICAgICAgICB8ICAyOSArLQogc3lzZGVwcy94ODYvdHN0LWlzYS1sZXZlbC0xLmMgICAgICAgICAg ICAgICAgIHwgICAzICstCiBzeXNkZXBzL3g4Nl82NC9kbC1od2NhcHMtc3ViZGlycy5jICAgICAg ICAgICAgfCAgIDMgKy0KIHN5c2RlcHMveDg2XzY0L3RzdC1nbGliYy1od2NhcHMuYyAgICAgICAg ICAgICB8ICAgMyArLQogMTggZmlsZXMgY2hhbmdlZCwgMTE0MCBpbnNlcnRpb25zKCspLCA4NDcg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy94ODYvYml0cy9wbGF0Zm9y bS94ODYuaAoKZGlmZiAtLWdpdCBhL21hbnVhbC9wbGF0Zm9ybS50ZXhpIGIvbWFudWFsL3BsYXRm b3JtLnRleGkKaW5kZXggYjY3NjgzYWViMy4uNmNhZjY4ZDc5NiAxMDA2NDQKLS0tIGEvbWFudWFs L3BsYXRmb3JtLnRleGkKKysrIGIvbWFudWFsL3BsYXRmb3JtLnRleGkKQEAgLTE0MiwxMyArMTQy LDEwIEBAIHJlc2VydmVkLgogRmFjaWxpdGllcyBzcGVjaWZpYyB0byBYODYgdGhhdCBhcmUgbm90 IHNwZWNpZmljIHRvIGEgcGFydGljdWxhcgogb3BlcmF0aW5nIHN5c3RlbSBhcmUgZGVjbGFyZWQg aW4gQGZpbGV7c3lzL3BsYXRmb3JtL3g4Ni5ofS4KIAotQGRlZnR5cGVmdW4ge2NvbnN0IHN0cnVj dCBjcHVfZmVhdHVyZXMgKn0gX194ODZfZ2V0X2NwdV9mZWF0dXJlcyAodW5zaWduZWQgaW50IEB2 YXJ7bWF4fSkKK0BkZWZ0eXBlZnVuIHtjb25zdCBzdHJ1Y3QgY3B1aWRfZmVhdHVyZSAqfSBfX3g4 Nl9nZXRfY3B1aWRfZmVhdHVyZV9sZWFmICh1bnNpZ25lZCBpbnQgQHZhcntsZWFmfSkKIEBzYWZl dHl7QHByZWxpbXt9QG10c2FmZXt9QGFzc2FmZXt9QGFjc2FmZXt9fQogUmV0dXJuIGEgcG9pbnRl ciB0byB4ODYgQ1BVIGZlYXR1cmUgc3RydWN0dXJlIHVzZWQgYnkgcXVlcnkgbWFjcm9zIGZvciB4 ODYKLUNQVSBmZWF0dXJlcy4gIElmIEB2YXJ7bWF4fSBleGNlZWRzIEBjb2Rle0NPTU1PTl9DUFVJ RF9JTkRFWF9NQVh9IHdoaWNoCi1pcyB0aGUgbGltaXQgb2YgdGhlIENQVUlEIGxlYXZlcyBzdXBw b3J0ZWQgYnkgQFRoZWdsaWJje30sIHRoZSBmdW5jdGlvbgotcmV0dXJucyBAY29kZXtOVUxMfSwg aW5kaWNhdGluZyB0aGF0IHRoZSBxdWVyaWVkIHByb2Nlc3NvciBmZWF0dXJlIGlzCi11bnN1cHBv cnRlZCBieSBAVGhlZ2xpYmN7fSBydW4tdGltZS4KK0NQVSBmZWF0dXJlIEB2YXJ7bGVhZn0uCiBA ZW5kIGRlZnR5cGVmdW4KIAogQGRlZnR5cGVmbiBNYWNybyBpbnQgSEFTX0NQVV9GRUFUVVJFIChA dmFye25hbWV9KQpkaWZmIC0tZ2l0IGEvc3lzZGVwcy9tYWNoL2h1cmQvaTM4Ni9sZC5hYmlsaXN0 IGIvc3lzZGVwcy9tYWNoL2h1cmQvaTM4Ni9sZC5hYmlsaXN0CmluZGV4IDc1MTY2NGJjZGEuLjZm OWNlMDAzMzMgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMvbWFjaC9odXJkL2kzODYvbGQuYWJpbGlzdAor KysgYi9zeXNkZXBzL21hY2gvaHVyZC9pMzg2L2xkLmFiaWxpc3QKQEAgLTE2LDQgKzE2LDQgQEAg R0xJQkNfMi4yLjYgX3JfZGVidWcgRCAweDE0CiBHTElCQ18yLjIuNiBhYm9ydCBGCiBHTElCQ18y LjMgX19fdGxzX2dldF9hZGRyIEYKIEdMSUJDXzIuMyBfX3Rsc19nZXRfYWRkciBGCi1HTElCQ18y LjMzIF9feDg2X2dldF9jcHVfZmVhdHVyZXMgRgorR0xJQkNfMi4zMyBfX3g4Nl9nZXRfY3B1aWRf ZmVhdHVyZV9sZWFmIEYKZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYv bGQuYWJpbGlzdCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvbGQuYWJpbGlzdAppbmRl eCAwNDY1NTY1MWIwLi44NDdiMTdmNDVhIDEwMDY0NAotLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9s aW51eC9pMzg2L2xkLmFiaWxpc3QKKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9s ZC5hYmlsaXN0CkBAIC0zLDQgKzMsNCBAQCBHTElCQ18yLjEgX19saWJjX3N0YWNrX2VuZCBEIDB4 NAogR0xJQkNfMi4xIF9kbF9tY291bnQgRgogR0xJQkNfMi4zIF9fX3Rsc19nZXRfYWRkciBGCiBH TElCQ18yLjMgX190bHNfZ2V0X2FkZHIgRgotR0xJQkNfMi4zMyBfX3g4Nl9nZXRfY3B1X2ZlYXR1 cmVzIEYKK0dMSUJDXzIuMzMgX194ODZfZ2V0X2NwdWlkX2ZlYXR1cmVfbGVhZiBGCmRpZmYgLS1n aXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODZfNjQvNjQvbGQuYWJpbGlzdCBiL3N5c2Rl cHMvdW5peC9zeXN2L2xpbnV4L3g4Nl82NC82NC9sZC5hYmlsaXN0CmluZGV4IGU2MzJjNjE5OGUu LmM3YjQwODljNWMgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Nl82NC82 NC9sZC5hYmlsaXN0CisrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Nl82NC82NC9sZC5h YmlsaXN0CkBAIC0yLDQgKzIsNCBAQCBHTElCQ18yLjIuNSBfX2xpYmNfc3RhY2tfZW5kIEQgMHg4 CiBHTElCQ18yLjIuNSBfZGxfbWNvdW50IEYKIEdMSUJDXzIuMi41IF9yX2RlYnVnIEQgMHgyOAog R0xJQkNfMi4zIF9fdGxzX2dldF9hZGRyIEYKLUdMSUJDXzIuMzMgX194ODZfZ2V0X2NwdV9mZWF0 dXJlcyBGCitHTElCQ18yLjMzIF9feDg2X2dldF9jcHVpZF9mZWF0dXJlX2xlYWYgRgpkaWZmIC0t Z2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L3RzdC1nbGliYy1od2NhcHMtMi5j IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L3RzdC1nbGliYy1od2NhcHMtMi5jCmlu ZGV4IGZlOTFiZmQyMjQuLjJkOGY3ZWM0NjIgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMvdW5peC9zeXN2 L2xpbnV4L3g4Nl82NC90c3QtZ2xpYmMtaHdjYXBzLTIuYworKysgYi9zeXNkZXBzL3VuaXgvc3lz di9saW51eC94ODZfNjQvdHN0LWdsaWJjLWh3Y2Fwcy0yLmMKQEAgLTI5LDggKzI5LDcgQEAgZXh0 ZXJuIGludCBkc29faXNhX2xldmVsICh2b2lkKTsKIHN0YXRpYyBpbnQKIGRvX3Rlc3QgKHZvaWQp CiB7Ci0gIGNvbnN0IHN0cnVjdCBjcHVfZmVhdHVyZXMgKmNwdV9mZWF0dXJlcwotICAgID0gX194 ODZfZ2V0X2NwdV9mZWF0dXJlcyAoQ09NTU9OX0NQVUlEX0lOREVYX01BWCk7CisgIGNvbnN0IHN0 cnVjdCBjcHVfZmVhdHVyZXMgKmNwdV9mZWF0dXJlcyA9IF9fZ2V0X2NwdV9mZWF0dXJlcyAoKTsK ICAgdW5zaWduZWQgaW50IGlzYV9sZXZlbCA9IGdldF9pc2FfbGV2ZWwgKGNwdV9mZWF0dXJlcyk7 CiAgIGJvb2wgaGFzX2lzYV9iYXNlbGluZSA9ICgoaXNhX2xldmVsICYgR05VX1BST1BFUlRZX1g4 Nl9JU0FfMV9CQVNFTElORSkKIAkJCSAgID09IEdOVV9QUk9QRVJUWV9YODZfSVNBXzFfQkFTRUxJ TkUpOwpkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L3gzMi9sZC5h YmlsaXN0IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L3gzMi9sZC5hYmlsaXN0Cmlu ZGV4IDlkOWQwYmVmZGUuLjAyZWFhOWEzNDcgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMvdW5peC9zeXN2 L2xpbnV4L3g4Nl82NC94MzIvbGQuYWJpbGlzdAorKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51 eC94ODZfNjQveDMyL2xkLmFiaWxpc3QKQEAgLTIsNCArMiw0IEBAIEdMSUJDXzIuMTYgX19saWJj X3N0YWNrX2VuZCBEIDB4NAogR0xJQkNfMi4xNiBfX3Rsc19nZXRfYWRkciBGCiBHTElCQ18yLjE2 IF9kbF9tY291bnQgRgogR0xJQkNfMi4xNiBfcl9kZWJ1ZyBEIDB4MTQKLUdMSUJDXzIuMzMgX194 ODZfZ2V0X2NwdV9mZWF0dXJlcyBGCitHTElCQ18yLjMzIF9feDg2X2dldF9jcHVpZF9mZWF0dXJl X2xlYWYgRgpkaWZmIC0tZ2l0IGEvc3lzZGVwcy94ODYvVmVyc2lvbnMgYi9zeXNkZXBzL3g4Ni9W ZXJzaW9ucwppbmRleCA1OWRiNTc4YTlkLi44YzY4MDEyMzhjIDEwMDY0NAotLS0gYS9zeXNkZXBz L3g4Ni9WZXJzaW9ucworKysgYi9zeXNkZXBzL3g4Ni9WZXJzaW9ucwpAQCAtMSw1ICsxLDggQEAK IGxkIHsKICAgR0xJQkNfMi4zMyB7Ci0gICAgX194ODZfZ2V0X2NwdV9mZWF0dXJlczsKKyAgICBf X3g4Nl9nZXRfY3B1aWRfZmVhdHVyZV9sZWFmOworICB9CisgIEdMSUJDX1BSSVZBVEUgeworICAg IF9kbF94ODZfZ2V0X2NwdV9mZWF0dXJlczsKICAgfQogfQpkaWZmIC0tZ2l0IGEvc3lzZGVwcy94 ODYvYml0cy9wbGF0Zm9ybS94ODYuaCBiL3N5c2RlcHMveDg2L2JpdHMvcGxhdGZvcm0veDg2LmgK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOGY0MjNhZTcyMQotLS0gL2Rl di9udWxsCisrKyBiL3N5c2RlcHMveDg2L2JpdHMvcGxhdGZvcm0veDg2LmgKQEAgLTAsMCArMSwy OTkgQEAKKy8qIENvbnN0YW50cyBhbmQgZGF0YSBzdHJ1Y3R1cmVzIGZvciB4ODYgQ1BVIGZlYXR1 cmVzLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisgICBDb3B5 cmlnaHQgKEMpIDIwMDgtMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAg VGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBv ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05VIEMgTGli cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor ICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGggdGhl IEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LiAgKi8KKworI2lmbmRlZiBfU1lTX1BMQVRGT1JNX1g4Nl9ICisjIGVycm9yICJOZXZl ciBpbmNsdWRlIDxiaXRzL3BsYXRmb3JtL3g4Ni5oPiBkaXJlY3RseTsgdXNlIDxzeXMvcGxhdGZv cm0veDg2Lmg+IGluc3RlYWQuIgorI2VuZGlmCisKK2VudW0KK3sKKyAgQ1BVSURfSU5ERVhfMSA9 IDAsCisgIENQVUlEX0lOREVYXzcsCisgIENQVUlEX0lOREVYXzgwMDAwMDAxLAorICBDUFVJRF9J TkRFWF9EX0VDWF8xLAorICBDUFVJRF9JTkRFWF84MDAwMDAwNywKKyAgQ1BVSURfSU5ERVhfODAw MDAwMDgsCisgIENQVUlEX0lOREVYXzdfRUNYXzEsCisgIENQVUlEX0lOREVYXzE5Cit9OworCitz dHJ1Y3QgY3B1aWRfZmVhdHVyZQoreworICB1bnNpZ25lZCBpbnQgY3B1aWRfYXJyYXlbNF07Cisg IHVuc2lnbmVkIGludCB1c2FibGVfYXJyYXlbNF07Cit9OworCitlbnVtIGNwdWlkX3JlZ2lzdGVy X2luZGV4Cit7CisgIGNwdWlkX3JlZ2lzdGVyX2luZGV4X2VheCA9IDAsCisgIGNwdWlkX3JlZ2lz dGVyX2luZGV4X2VieCwKKyAgY3B1aWRfcmVnaXN0ZXJfaW5kZXhfZWN4LAorICBjcHVpZF9yZWdp c3Rlcl9pbmRleF9lZHgKK307CisKKy8qIENQVSBmZWF0dXJlcy4gICovCisKK2VudW0KK3sKKyAg eDg2X2NwdV9pbmRleF8xX2VjeAorICAgID0gKENQVUlEX0lOREVYXzEgKiA4ICogNCAqIHNpemVv ZiAodW5zaWduZWQgaW50KQorICAgICAgICsgY3B1aWRfcmVnaXN0ZXJfaW5kZXhfZWN4ICogOCAq IHNpemVvZiAodW5zaWduZWQgaW50KSksCisKKyAgeDg2X2NwdV9TU0UzCQkJPSB4ODZfY3B1X2lu ZGV4XzFfZWN4LAorICB4ODZfY3B1X1BDTE1VTFFEUQkJPSB4ODZfY3B1X2luZGV4XzFfZWN4ICsg MSwKKyAgeDg2X2NwdV9EVEVTNjQJCT0geDg2X2NwdV9pbmRleF8xX2VjeCArIDIsCisgIHg4Nl9j cHVfTU9OSVRPUgkJPSB4ODZfY3B1X2luZGV4XzFfZWN4ICsgMywKKyAgeDg2X2NwdV9EU19DUEwJ CT0geDg2X2NwdV9pbmRleF8xX2VjeCArIDQsCisgIHg4Nl9jcHVfVk1YCQkJPSB4ODZfY3B1X2lu ZGV4XzFfZWN4ICsgNSwKKyAgeDg2X2NwdV9TTVgJCQk9IHg4Nl9jcHVfaW5kZXhfMV9lY3ggKyA2 LAorICB4ODZfY3B1X0VJU1QJCQk9IHg4Nl9jcHVfaW5kZXhfMV9lY3ggKyA3LAorICB4ODZfY3B1 X1RNMgkJCT0geDg2X2NwdV9pbmRleF8xX2VjeCArIDgsCisgIHg4Nl9jcHVfU1NTRTMJCQk9IHg4 Nl9jcHVfaW5kZXhfMV9lY3ggKyA5LAorICB4ODZfY3B1X0NOWFRfSUQJCT0geDg2X2NwdV9pbmRl eF8xX2VjeCArIDEwLAorICB4ODZfY3B1X1NEQkcJCQk9IHg4Nl9jcHVfaW5kZXhfMV9lY3ggKyAx MSwKKyAgeDg2X2NwdV9GTUEJCQk9IHg4Nl9jcHVfaW5kZXhfMV9lY3ggKyAxMiwKKyAgeDg2X2Nw dV9DTVBYQ0hHMTZCCQk9IHg4Nl9jcHVfaW5kZXhfMV9lY3ggKyAxMywKKyAgeDg2X2NwdV9YVFBS VVBEQ1RSTAkJPSB4ODZfY3B1X2luZGV4XzFfZWN4ICsgMTQsCisgIHg4Nl9jcHVfUERDTQkJCT0g eDg2X2NwdV9pbmRleF8xX2VjeCArIDE1LAorICB4ODZfY3B1X0lOREVYXzFfRUNYXzE2CT0geDg2 X2NwdV9pbmRleF8xX2VjeCArIDE2LAorICB4ODZfY3B1X1BDSUQJCQk9IHg4Nl9jcHVfaW5kZXhf MV9lY3ggKyAxNywKKyAgeDg2X2NwdV9EQ0EJCQk9IHg4Nl9jcHVfaW5kZXhfMV9lY3ggKyAxOCwK KyAgeDg2X2NwdV9TU0U0XzEJCT0geDg2X2NwdV9pbmRleF8xX2VjeCArIDE5LAorICB4ODZfY3B1 X1NTRTRfMgkJPSB4ODZfY3B1X2luZGV4XzFfZWN4ICsgMjAsCisgIHg4Nl9jcHVfWDJBUElDCQk9 IHg4Nl9jcHVfaW5kZXhfMV9lY3ggKyAyMSwKKyAgeDg2X2NwdV9NT1ZCRQkJCT0geDg2X2NwdV9p bmRleF8xX2VjeCArIDIyLAorICB4ODZfY3B1X1BPUENOVAkJPSB4ODZfY3B1X2luZGV4XzFfZWN4 ICsgMjMsCisgIHg4Nl9jcHVfVFNDX0RFQURMSU5FCQk9IHg4Nl9jcHVfaW5kZXhfMV9lY3ggKyAy NCwKKyAgeDg2X2NwdV9BRVMJCQk9IHg4Nl9jcHVfaW5kZXhfMV9lY3ggKyAyNSwKKyAgeDg2X2Nw dV9YU0FWRQkJCT0geDg2X2NwdV9pbmRleF8xX2VjeCArIDI2LAorICB4ODZfY3B1X09TWFNBVkUJ CT0geDg2X2NwdV9pbmRleF8xX2VjeCArIDI3LAorICB4ODZfY3B1X0FWWAkJCT0geDg2X2NwdV9p bmRleF8xX2VjeCArIDI4LAorICB4ODZfY3B1X0YxNkMJCQk9IHg4Nl9jcHVfaW5kZXhfMV9lY3gg KyAyOSwKKyAgeDg2X2NwdV9SRFJBTkQJCT0geDg2X2NwdV9pbmRleF8xX2VjeCArIDMwLAorICB4 ODZfY3B1X0lOREVYXzFfRUNYXzMxCT0geDg2X2NwdV9pbmRleF8xX2VjeCArIDMxLAorCisgIHg4 Nl9jcHVfaW5kZXhfMV9lZHgKKyAgICA9IChDUFVJRF9JTkRFWF8xICogOCAqIDQgKiBzaXplb2Yg KHVuc2lnbmVkIGludCkKKyAgICAgICArIGNwdWlkX3JlZ2lzdGVyX2luZGV4X2VkeCAqIDggKiBz aXplb2YgKHVuc2lnbmVkIGludCkpLAorCisgIHg4Nl9jcHVfRlBVCQkJPSB4ODZfY3B1X2luZGV4 XzFfZWR4LAorICB4ODZfY3B1X1ZNRQkJCT0geDg2X2NwdV9pbmRleF8xX2VkeCArIDEsCisgIHg4 Nl9jcHVfREUJCQk9IHg4Nl9jcHVfaW5kZXhfMV9lZHggKyAyLAorICB4ODZfY3B1X1BTRQkJCT0g eDg2X2NwdV9pbmRleF8xX2VkeCArIDMsCisgIHg4Nl9jcHVfVFNDCQkJPSB4ODZfY3B1X2luZGV4 XzFfZWR4ICsgNCwKKyAgeDg2X2NwdV9NU1IJCQk9IHg4Nl9jcHVfaW5kZXhfMV9lZHggKyA1LAor ICB4ODZfY3B1X1BBRQkJCT0geDg2X2NwdV9pbmRleF8xX2VkeCArIDYsCisgIHg4Nl9jcHVfTUNF CQkJPSB4ODZfY3B1X2luZGV4XzFfZWR4ICsgNywKKyAgeDg2X2NwdV9DWDgJCQk9IHg4Nl9jcHVf aW5kZXhfMV9lZHggKyA4LAorICB4ODZfY3B1X0FQSUMJCQk9IHg4Nl9jcHVfaW5kZXhfMV9lZHgg KyA5LAorICB4ODZfY3B1X0lOREVYXzFfRURYXzEwCT0geDg2X2NwdV9pbmRleF8xX2VkeCArIDEw LAorICB4ODZfY3B1X1NFUAkJCT0geDg2X2NwdV9pbmRleF8xX2VkeCArIDExLAorICB4ODZfY3B1 X01UUlIJCQk9IHg4Nl9jcHVfaW5kZXhfMV9lZHggKyAxMiwKKyAgeDg2X2NwdV9QR0UJCQk9IHg4 Nl9jcHVfaW5kZXhfMV9lZHggKyAxMywKKyAgeDg2X2NwdV9NQ0EJCQk9IHg4Nl9jcHVfaW5kZXhf MV9lZHggKyAxNCwKKyAgeDg2X2NwdV9DTU9WCQkJPSB4ODZfY3B1X2luZGV4XzFfZWR4ICsgMTUs CisgIHg4Nl9jcHVfUEFUCQkJPSB4ODZfY3B1X2luZGV4XzFfZWR4ICsgMTYsCisgIHg4Nl9jcHVf UFNFXzM2CQk9IHg4Nl9jcHVfaW5kZXhfMV9lZHggKyAxNywKKyAgeDg2X2NwdV9QU04JCQk9IHg4 Nl9jcHVfaW5kZXhfMV9lZHggKyAxOCwKKyAgeDg2X2NwdV9DTEZTSAkJCT0geDg2X2NwdV9pbmRl eF8xX2VkeCArIDE5LAorICB4ODZfY3B1X0lOREVYXzFfRURYXzIwCT0geDg2X2NwdV9pbmRleF8x X2VkeCArIDIwLAorICB4ODZfY3B1X0RTCQkJPSB4ODZfY3B1X2luZGV4XzFfZWR4ICsgMjEsCisg IHg4Nl9jcHVfQUNQSQkJCT0geDg2X2NwdV9pbmRleF8xX2VkeCArIDIyLAorICB4ODZfY3B1X01N WAkJCT0geDg2X2NwdV9pbmRleF8xX2VkeCArIDIzLAorICB4ODZfY3B1X0ZYU1IJCQk9IHg4Nl9j cHVfaW5kZXhfMV9lZHggKyAyNCwKKyAgeDg2X2NwdV9TU0UJCQk9IHg4Nl9jcHVfaW5kZXhfMV9l ZHggKyAyNSwKKyAgeDg2X2NwdV9TU0UyCQkJPSB4ODZfY3B1X2luZGV4XzFfZWR4ICsgMjYsCisg IHg4Nl9jcHVfU1MJCQk9IHg4Nl9jcHVfaW5kZXhfMV9lZHggKyAyNywKKyAgeDg2X2NwdV9IVFQJ CQk9IHg4Nl9jcHVfaW5kZXhfMV9lZHggKyAyOCwKKyAgeDg2X2NwdV9UTQkJCT0geDg2X2NwdV9p bmRleF8xX2VkeCArIDI5LAorICB4ODZfY3B1X0lOREVYXzFfRURYXzMwCT0geDg2X2NwdV9pbmRl eF8xX2VkeCArIDMwLAorICB4ODZfY3B1X1BCRQkJCT0geDg2X2NwdV9pbmRleF8xX2VkeCArIDMx LAorCisgIHg4Nl9jcHVfaW5kZXhfN19lYngKKyAgICA9IChDUFVJRF9JTkRFWF83ICogOCAqIDQg KiBzaXplb2YgKHVuc2lnbmVkIGludCkKKyAgICAgICArIGNwdWlkX3JlZ2lzdGVyX2luZGV4X2Vi eCAqIDggKiBzaXplb2YgKHVuc2lnbmVkIGludCkpLAorCisgIHg4Nl9jcHVfRlNHU0JBU0UJCT0g eDg2X2NwdV9pbmRleF83X2VieCwKKyAgeDg2X2NwdV9UU0NfQURKVVNUCQk9IHg4Nl9jcHVfaW5k ZXhfN19lYnggKyAxLAorICB4ODZfY3B1X1NHWAkJCT0geDg2X2NwdV9pbmRleF83X2VieCArIDIs CisgIHg4Nl9jcHVfQk1JMQkJCT0geDg2X2NwdV9pbmRleF83X2VieCArIDMsCisgIHg4Nl9jcHVf SExFCQkJPSB4ODZfY3B1X2luZGV4XzdfZWJ4ICsgNCwKKyAgeDg2X2NwdV9BVlgyCQkJPSB4ODZf Y3B1X2luZGV4XzdfZWJ4ICsgNSwKKyAgeDg2X2NwdV9JTkRFWF83X0VCWF82CQk9IHg4Nl9jcHVf aW5kZXhfN19lYnggKyA2LAorICB4ODZfY3B1X1NNRVAJCQk9IHg4Nl9jcHVfaW5kZXhfN19lYngg KyA3LAorICB4ODZfY3B1X0JNSTIJCQk9IHg4Nl9jcHVfaW5kZXhfN19lYnggKyA4LAorICB4ODZf Y3B1X0VSTVMJCQk9IHg4Nl9jcHVfaW5kZXhfN19lYnggKyA5LAorICB4ODZfY3B1X0lOVlBDSUQJ CT0geDg2X2NwdV9pbmRleF83X2VieCArIDEwLAorICB4ODZfY3B1X1JUTQkJCT0geDg2X2NwdV9p bmRleF83X2VieCArIDExLAorICB4ODZfY3B1X1JEVF9NCQkJPSB4ODZfY3B1X2luZGV4XzdfZWJ4 ICsgMTIsCisgIHg4Nl9jcHVfREVQUl9GUFVfQ1NfRFMJPSB4ODZfY3B1X2luZGV4XzdfZWJ4ICsg MTMsCisgIHg4Nl9jcHVfTVBYCQkJPSB4ODZfY3B1X2luZGV4XzdfZWJ4ICsgMTQsCisgIHg4Nl9j cHVfUkRUX0EJCQk9IHg4Nl9jcHVfaW5kZXhfN19lYnggKyAxNSwKKyAgeDg2X2NwdV9BVlg1MTJG CQk9IHg4Nl9jcHVfaW5kZXhfN19lYnggKyAxNiwKKyAgeDg2X2NwdV9BVlg1MTJEUQkJPSB4ODZf Y3B1X2luZGV4XzdfZWJ4ICsgMTcsCisgIHg4Nl9jcHVfUkRTRUVECQk9IHg4Nl9jcHVfaW5kZXhf N19lYnggKyAxOCwKKyAgeDg2X2NwdV9BRFgJCQk9IHg4Nl9jcHVfaW5kZXhfN19lYnggKyAxOSwK KyAgeDg2X2NwdV9TTUFQCQkJPSB4ODZfY3B1X2luZGV4XzdfZWJ4ICsgMjAsCisgIHg4Nl9jcHVf QVZYNTEyX0lGTUEJCT0geDg2X2NwdV9pbmRleF83X2VieCArIDIxLAorICB4ODZfY3B1X0lOREVY XzdfRUJYXzIyCT0geDg2X2NwdV9pbmRleF83X2VieCArIDIyLAorICB4ODZfY3B1X0NMRkxVU0hP UFQJCT0geDg2X2NwdV9pbmRleF83X2VieCArIDIzLAorICB4ODZfY3B1X0NMV0IJCQk9IHg4Nl9j cHVfaW5kZXhfN19lYnggKyAyNCwKKyAgeDg2X2NwdV9UUkFDRQkJCT0geDg2X2NwdV9pbmRleF83 X2VieCArIDI1LAorICB4ODZfY3B1X0FWWDUxMlBGCQk9IHg4Nl9jcHVfaW5kZXhfN19lYnggKyAy NiwKKyAgeDg2X2NwdV9BVlg1MTJFUgkJPSB4ODZfY3B1X2luZGV4XzdfZWJ4ICsgMjcsCisgIHg4 Nl9jcHVfQVZYNTEyQ0QJCT0geDg2X2NwdV9pbmRleF83X2VieCArIDI4LAorICB4ODZfY3B1X1NI QQkJCT0geDg2X2NwdV9pbmRleF83X2VieCArIDI5LAorICB4ODZfY3B1X0FWWDUxMkJXCQk9IHg4 Nl9jcHVfaW5kZXhfN19lYnggKyAzMCwKKyAgeDg2X2NwdV9BVlg1MTJWTAkJPSB4ODZfY3B1X2lu ZGV4XzdfZWJ4ICsgMzEsCisKKyAgeDg2X2NwdV9pbmRleF83X2VjeAorICAgID0gKENQVUlEX0lO REVYXzcgKiA4ICogNCAqIHNpemVvZiAodW5zaWduZWQgaW50KQorICAgICAgICsgY3B1aWRfcmVn aXN0ZXJfaW5kZXhfZWN4ICogOCAqIHNpemVvZiAodW5zaWduZWQgaW50KSksCisKKyAgeDg2X2Nw dV9QUkVGRVRDSFdUMQkJPSB4ODZfY3B1X2luZGV4XzdfZWN4LAorICB4ODZfY3B1X0FWWDUxMl9W Qk1JCQk9IHg4Nl9jcHVfaW5kZXhfN19lY3ggKyAxLAorICB4ODZfY3B1X1VNSVAJCQk9IHg4Nl9j cHVfaW5kZXhfN19lY3ggKyAyLAorICB4ODZfY3B1X1BLVQkJCT0geDg2X2NwdV9pbmRleF83X2Vj eCArIDMsCisgIHg4Nl9jcHVfT1NQS0UJCQk9IHg4Nl9jcHVfaW5kZXhfN19lY3ggKyA0LAorICB4 ODZfY3B1X1dBSVRQS0cJCT0geDg2X2NwdV9pbmRleF83X2VjeCArIDUsCisgIHg4Nl9jcHVfQVZY NTEyX1ZCTUkyCQk9IHg4Nl9jcHVfaW5kZXhfN19lY3ggKyA2LAorICB4ODZfY3B1X1NIU1RLCQkJ PSB4ODZfY3B1X2luZGV4XzdfZWN4ICsgNywKKyAgeDg2X2NwdV9HRk5JCQkJPSB4ODZfY3B1X2lu ZGV4XzdfZWN4ICsgOCwKKyAgeDg2X2NwdV9WQUVTCQkJPSB4ODZfY3B1X2luZGV4XzdfZWN4ICsg OSwKKyAgeDg2X2NwdV9WUENMTVVMUURRCQk9IHg4Nl9jcHVfaW5kZXhfN19lY3ggKyAxMCwKKyAg eDg2X2NwdV9BVlg1MTJfVk5OSQkJPSB4ODZfY3B1X2luZGV4XzdfZWN4ICsgMTEsCisgIHg4Nl9j cHVfQVZYNTEyX0JJVEFMRwkJPSB4ODZfY3B1X2luZGV4XzdfZWN4ICsgMTIsCisgIHg4Nl9jcHVf SU5ERVhfN19FQ1hfMTMJPSB4ODZfY3B1X2luZGV4XzdfZWN4ICsgMTMsCisgIHg4Nl9jcHVfQVZY NTEyX1ZQT1BDTlREUQk9IHg4Nl9jcHVfaW5kZXhfN19lY3ggKyAxNCwKKyAgeDg2X2NwdV9JTkRF WF83X0VDWF8xCQk9IHg4Nl9jcHVfaW5kZXhfN19lY3ggKyAxNSwKKyAgeDg2X2NwdV9JTkRFWF83 X0VDWF8xNgk9IHg4Nl9jcHVfaW5kZXhfN19lY3ggKyAxNiwKKy8qIE5vdGU6IEJpdHMgMTctMjE6 IFRoZSB2YWx1ZSBvZiBNQVdBVSB1c2VkIGJ5IHRoZSBCTkRMRFggYW5kIEJORFNUWAorICAgaW5z dHJ1Y3Rpb25zIGluIDY0LWJpdCBtb2RlLiAgKi8KKyAgeDg2X2NwdV9SRFBJRAkJCT0geDg2X2Nw dV9pbmRleF83X2VjeCArIDIyLAorICB4ODZfY3B1X0tMCQkJPSB4ODZfY3B1X2luZGV4XzdfZWN4 ICsgMjMsCisgIHg4Nl9jcHVfSU5ERVhfN19FQ1hfMjQJPSB4ODZfY3B1X2luZGV4XzdfZWN4ICsg MjQsCisgIHg4Nl9jcHVfQ0xERU1PVEUJCT0geDg2X2NwdV9pbmRleF83X2VjeCArIDI1LAorICB4 ODZfY3B1X0lOREVYXzdfRUNYXzI2CT0geDg2X2NwdV9pbmRleF83X2VjeCArIDI2LAorICB4ODZf Y3B1X01PVkRJUkkJCT0geDg2X2NwdV9pbmRleF83X2VjeCArIDI3LAorICB4ODZfY3B1X01PVkRJ UjY0QgkJPSB4ODZfY3B1X2luZGV4XzdfZWN4ICsgMjgsCisgIHg4Nl9jcHVfRU5RQ01ECQk9IHg4 Nl9jcHVfaW5kZXhfN19lY3ggKyAyOSwKKyAgeDg2X2NwdV9TR1hfTEMJCT0geDg2X2NwdV9pbmRl eF83X2VjeCArIDMwLAorICB4ODZfY3B1X1BLUwkJCT0geDg2X2NwdV9pbmRleF83X2VjeCArIDMx LAorCisgIHg4Nl9jcHVfaW5kZXhfN19lZHgKKyAgICA9IChDUFVJRF9JTkRFWF83ICogOCAqIDQg KiBzaXplb2YgKHVuc2lnbmVkIGludCkKKyAgICAgICArIGNwdWlkX3JlZ2lzdGVyX2luZGV4X2Vk eCAqIDggKiBzaXplb2YgKHVuc2lnbmVkIGludCkpLAorCisgIHg4Nl9jcHVfSU5ERVhfN19FRFhf MAkJPSB4ODZfY3B1X2luZGV4XzdfZWR4LAorICB4ODZfY3B1X0lOREVYXzdfRURYXzEJCT0geDg2 X2NwdV9pbmRleF83X2VkeCArIDEsCisgIHg4Nl9jcHVfQVZYNTEyXzRWTk5JVwkJPSB4ODZfY3B1 X2luZGV4XzdfZWR4ICsgMiwKKyAgeDg2X2NwdV9BVlg1MTJfNEZNQVBTCQk9IHg4Nl9jcHVfaW5k ZXhfN19lZHggKyAzLAorICB4ODZfY3B1X0ZTUk0JCQk9IHg4Nl9jcHVfaW5kZXhfN19lZHggKyA0 LAorICB4ODZfY3B1X1VJTlRSCQkJPSB4ODZfY3B1X2luZGV4XzdfZWR4ICsgNSwKKyAgeDg2X2Nw dV9JTkRFWF83X0VEWF82CQk9IHg4Nl9jcHVfaW5kZXhfN19lZHggKyA2LAorICB4ODZfY3B1X0lO REVYXzdfRURYXzcJCT0geDg2X2NwdV9pbmRleF83X2VkeCArIDcsCisgIHg4Nl9jcHVfQVZYNTEy X1ZQMklOVEVSU0VDVAk9IHg4Nl9jcHVfaW5kZXhfN19lZHggKyA4LAorICB4ODZfY3B1X0lOREVY XzdfRURYXzkJCT0geDg2X2NwdV9pbmRleF83X2VkeCArIDksCisgIHg4Nl9jcHVfTURfQ0xFQVIJ CT0geDg2X2NwdV9pbmRleF83X2VkeCArIDEwLAorICB4ODZfY3B1X0lOREVYXzdfRURYXzExCT0g eDg2X2NwdV9pbmRleF83X2VkeCArIDExLAorICB4ODZfY3B1X0lOREVYXzdfRURYXzEyCT0geDg2 X2NwdV9pbmRleF83X2VkeCArIDEyLAorICB4ODZfY3B1X0lOREVYXzdfRURYXzEzCT0geDg2X2Nw dV9pbmRleF83X2VkeCArIDEzLAorICB4ODZfY3B1X1NFUklBTElaRQkJPSB4ODZfY3B1X2luZGV4 XzdfZWR4ICsgMTQsCisgIHg4Nl9jcHVfSFlCUklECQk9IHg4Nl9jcHVfaW5kZXhfN19lZHggKyAx NSwKKyAgeDg2X2NwdV9UU1hMRFRSSwkJPSB4ODZfY3B1X2luZGV4XzdfZWR4ICsgMTYsCisgIHg4 Nl9jcHVfSU5ERVhfN19FRFhfMTcJPSB4ODZfY3B1X2luZGV4XzdfZWR4ICsgMTcsCisgIHg4Nl9j cHVfUENPTkZJRwkJPSB4ODZfY3B1X2luZGV4XzdfZWR4ICsgMTgsCisgIHg4Nl9jcHVfSU5ERVhf N19FRFhfMTkJPSB4ODZfY3B1X2luZGV4XzdfZWR4ICsgMTksCisgIHg4Nl9jcHVfSUJUCQkJPSB4 ODZfY3B1X2luZGV4XzdfZWR4ICsgMjAsCisgIHg4Nl9jcHVfSU5ERVhfN19FRFhfMjEJPSB4ODZf Y3B1X2luZGV4XzdfZWR4ICsgMjEsCisgIHg4Nl9jcHVfQU1YX0JGMTYJCT0geDg2X2NwdV9pbmRl eF83X2VkeCArIDIyLAorICB4ODZfY3B1X0FWWDUxMl9GUDE2CQk9IHg4Nl9jcHVfaW5kZXhfN19l ZHggKyAyMywKKyAgeDg2X2NwdV9BTVhfVElMRQkJPSB4ODZfY3B1X2luZGV4XzdfZWR4ICsgMjQs CisgIHg4Nl9jcHVfQU1YX0lOVDgJCT0geDg2X2NwdV9pbmRleF83X2VkeCArIDI1LAorICB4ODZf Y3B1X0lCUlNfSUJQQgkJPSB4ODZfY3B1X2luZGV4XzdfZWR4ICsgMjYsCisgIHg4Nl9jcHVfU1RJ QlAJCQk9IHg4Nl9jcHVfaW5kZXhfN19lZHggKyAyNywKKyAgeDg2X2NwdV9MMURfRkxVU0gJCT0g eDg2X2NwdV9pbmRleF83X2VkeCArIDI4LAorICB4ODZfY3B1X0FSQ0hfQ0FQQUJJTElUSUVTCT0g eDg2X2NwdV9pbmRleF83X2VkeCArIDI5LAorICB4ODZfY3B1X0NPUkVfQ0FQQUJJTElUSUVTCT0g eDg2X2NwdV9pbmRleF83X2VkeCArIDMwLAorICB4ODZfY3B1X1NTQkQJCQk9IHg4Nl9jcHVfaW5k ZXhfN19lZHggKyAzMSwKKworICB4ODZfY3B1X2luZGV4XzgwMDAwMDAxX2VjeAorICAgID0gKENQ VUlEX0lOREVYXzgwMDAwMDAxICogOCAqIDQgKiBzaXplb2YgKHVuc2lnbmVkIGludCkKKyAgICAg ICArIGNwdWlkX3JlZ2lzdGVyX2luZGV4X2VjeCAqIDggKiBzaXplb2YgKHVuc2lnbmVkIGludCkp LAorCisgIHg4Nl9jcHVfTEFIRjY0X1NBSEY2NAkJPSB4ODZfY3B1X2luZGV4XzgwMDAwMDAxX2Vj eCwKKyAgeDg2X2NwdV9TVk0JCQk9IHg4Nl9jcHVfaW5kZXhfODAwMDAwMDFfZWN4ICsgMiwKKyAg eDg2X2NwdV9MWkNOVAkJCT0geDg2X2NwdV9pbmRleF84MDAwMDAwMV9lY3ggKyA1LAorICB4ODZf Y3B1X1NTRTRBCQkJPSB4ODZfY3B1X2luZGV4XzgwMDAwMDAxX2VjeCArIDYsCisgIHg4Nl9jcHVf UFJFRkVUQ0hXCQk9IHg4Nl9jcHVfaW5kZXhfODAwMDAwMDFfZWN4ICsgOCwKKyAgeDg2X2NwdV9Y T1AJCQk9IHg4Nl9jcHVfaW5kZXhfODAwMDAwMDFfZWN4ICsgMTEsCisgIHg4Nl9jcHVfTFdQCQkJ PSB4ODZfY3B1X2luZGV4XzgwMDAwMDAxX2VjeCArIDE1LAorICB4ODZfY3B1X0ZNQTQJCQk9IHg4 Nl9jcHVfaW5kZXhfODAwMDAwMDFfZWN4ICsgMTYsCisgIHg4Nl9jcHVfVEJNCQkJPSB4ODZfY3B1 X2luZGV4XzgwMDAwMDAxX2VjeCArIDIwLAorCisgIHg4Nl9jcHVfaW5kZXhfODAwMDAwMDFfZWR4 CisgICAgPSAoQ1BVSURfSU5ERVhfODAwMDAwMDEgKiA4ICogNCAqIHNpemVvZiAodW5zaWduZWQg aW50KQorICAgICAgICsgY3B1aWRfcmVnaXN0ZXJfaW5kZXhfZWR4ICogOCAqIHNpemVvZiAodW5z aWduZWQgaW50KSksCisKKyAgeDg2X2NwdV9TWVNDQUxMX1NZU1JFVAk9IHg4Nl9jcHVfaW5kZXhf ODAwMDAwMDFfZWR4ICsgMTEsCisgIHg4Nl9jcHVfTlgJCQk9IHg4Nl9jcHVfaW5kZXhfODAwMDAw MDFfZWR4ICsgMjAsCisgIHg4Nl9jcHVfUEFHRTFHQgkJPSB4ODZfY3B1X2luZGV4XzgwMDAwMDAx X2VkeCArIDI2LAorICB4ODZfY3B1X1JEVFNDUAkJPSB4ODZfY3B1X2luZGV4XzgwMDAwMDAxX2Vk eCArIDI3LAorICB4ODZfY3B1X0xNCQkJPSB4ODZfY3B1X2luZGV4XzgwMDAwMDAxX2VkeCArIDI5 LAorCisgIHg4Nl9jcHVfaW5kZXhfZF9lY3hfMV9lYXgKKyAgICA9IChDUFVJRF9JTkRFWF9EX0VD WF8xICogOCAqIDQgKiBzaXplb2YgKHVuc2lnbmVkIGludCkKKyAgICAgICArIGNwdWlkX3JlZ2lz dGVyX2luZGV4X2VheCAqIDggKiBzaXplb2YgKHVuc2lnbmVkIGludCkpLAorCisgIHg4Nl9jcHVf WFNBVkVPUFQJCT0geDg2X2NwdV9pbmRleF9kX2VjeF8xX2VheCwKKyAgeDg2X2NwdV9YU0FWRUMJ CT0geDg2X2NwdV9pbmRleF9kX2VjeF8xX2VheCArIDEsCisgIHg4Nl9jcHVfWEdFVEJWX0VDWF8x CQk9IHg4Nl9jcHVfaW5kZXhfZF9lY3hfMV9lYXggKyAyLAorICB4ODZfY3B1X1hTQVZFUwkJPSB4 ODZfY3B1X2luZGV4X2RfZWN4XzFfZWF4ICsgMywKKyAgeDg2X2NwdV9YRkQJCQk9IHg4Nl9jcHVf aW5kZXhfZF9lY3hfMV9lYXggKyA0LAorCisgIHg4Nl9jcHVfaW5kZXhfODAwMDAwMDdfZWR4Cisg ICAgPSAoQ1BVSURfSU5ERVhfODAwMDAwMDcgKiA4ICogNCAqIHNpemVvZiAodW5zaWduZWQgaW50 KQorICAgICAgICsgY3B1aWRfcmVnaXN0ZXJfaW5kZXhfZWR4ICogOCAqIHNpemVvZiAodW5zaWdu ZWQgaW50KSksCisKKyAgeDg2X2NwdV9JTlZBUklBTlRfVFNDCQk9IHg4Nl9jcHVfaW5kZXhfODAw MDAwMDdfZWR4ICsgOCwKKworICB4ODZfY3B1X2luZGV4XzgwMDAwMDA4X2VieAorICAgID0gKENQ VUlEX0lOREVYXzgwMDAwMDA4ICogOCAqIDQgKiBzaXplb2YgKHVuc2lnbmVkIGludCkKKyAgICAg ICArIGNwdWlkX3JlZ2lzdGVyX2luZGV4X2VieCAqIDggKiBzaXplb2YgKHVuc2lnbmVkIGludCkp LAorCisgIHg4Nl9jcHVfV0JOT0lOVkQJCT0geDg2X2NwdV9pbmRleF84MDAwMDAwOF9lYnggKyA5 LAorCisgIHg4Nl9jcHVfaW5kZXhfN19lY3hfMV9lYXgKKyAgICA9IChDUFVJRF9JTkRFWF83X0VD WF8xICogOCAqIDQgKiBzaXplb2YgKHVuc2lnbmVkIGludCkKKyAgICAgICArIGNwdWlkX3JlZ2lz dGVyX2luZGV4X2VheCAqIDggKiBzaXplb2YgKHVuc2lnbmVkIGludCkpLAorCisgIHg4Nl9jcHVf QVZYX1ZOTkkJCT0geDg2X2NwdV9pbmRleF83X2VjeF8xX2VheCArIDQsCisgIHg4Nl9jcHVfQVZY NTEyX0JGMTYJCT0geDg2X2NwdV9pbmRleF83X2VjeF8xX2VheCArIDUsCisgIHg4Nl9jcHVfRlpM Uk0JCQk9IHg4Nl9jcHVfaW5kZXhfN19lY3hfMV9lYXggKyAxMCwKKyAgeDg2X2NwdV9GU1JTCQkJ PSB4ODZfY3B1X2luZGV4XzdfZWN4XzFfZWF4ICsgMTEsCisgIHg4Nl9jcHVfRlNSQ1MJCQk9IHg4 Nl9jcHVfaW5kZXhfN19lY3hfMV9lYXggKyAxMiwKKyAgeDg2X2NwdV9IUkVTRVQJCT0geDg2X2Nw dV9pbmRleF83X2VjeF8xX2VheCArIDIyLAorICB4ODZfY3B1X0xBTQkJCT0geDg2X2NwdV9pbmRl eF83X2VjeF8xX2VheCArIDI2LAorCisgIHg4Nl9jcHVfaW5kZXhfMTlfZWJ4CisgICAgPSAoQ1BV SURfSU5ERVhfMTkgKiA4ICogNCAqIHNpemVvZiAodW5zaWduZWQgaW50KQorICAgICAgICsgY3B1 aWRfcmVnaXN0ZXJfaW5kZXhfZWJ4ICogOCAqIHNpemVvZiAodW5zaWduZWQgaW50KSksCisKKyAg eDg2X2NwdV9BRVNLTEUJCT0geDg2X2NwdV9pbmRleF8xOV9lYngsCisgIHg4Nl9jcHVfV0lERV9L TAkJPSB4ODZfY3B1X2luZGV4XzE5X2VieCArIDIKK307CmRpZmYgLS1naXQgYS9zeXNkZXBzL3g4 Ni9jcHUtZmVhdHVyZXMuYyBiL3N5c2RlcHMveDg2L2NwdS1mZWF0dXJlcy5jCmluZGV4IDA2ZTQz MDdiNzEuLjY0OTY1MTJhMGQgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMveDg2L2NwdS1mZWF0dXJlcy5j CisrKyBiL3N5c2RlcHMveDg2L2NwdS1mZWF0dXJlcy5jCkBAIC0yOTMsMjIgKzI5MywyMiBAQCBn ZXRfZXh0ZW5kZWRfaW5kaWNlcyAoc3RydWN0IGNwdV9mZWF0dXJlcyAqY3B1X2ZlYXR1cmVzKQog ICBfX2NwdWlkICgweDgwMDAwMDAwLCBlYXgsIGVieCwgZWN4LCBlZHgpOwogICBpZiAoZWF4ID49 IDB4ODAwMDAwMDEpCiAgICAgX19jcHVpZCAoMHg4MDAwMDAwMSwKLQkgICAgIGNwdV9mZWF0dXJl cy0+ZmVhdHVyZXNbQ09NTU9OX0NQVUlEX0lOREVYXzgwMDAwMDAxXS5jcHVpZC5lYXgsCi0JICAg ICBjcHVfZmVhdHVyZXMtPmZlYXR1cmVzW0NPTU1PTl9DUFVJRF9JTkRFWF84MDAwMDAwMV0uY3B1 aWQuZWJ4LAotCSAgICAgY3B1X2ZlYXR1cmVzLT5mZWF0dXJlc1tDT01NT05fQ1BVSURfSU5ERVhf ODAwMDAwMDFdLmNwdWlkLmVjeCwKLQkgICAgIGNwdV9mZWF0dXJlcy0+ZmVhdHVyZXNbQ09NTU9O X0NQVUlEX0lOREVYXzgwMDAwMDAxXS5jcHVpZC5lZHgpOworCSAgICAgY3B1X2ZlYXR1cmVzLT5m ZWF0dXJlc1tDUFVJRF9JTkRFWF84MDAwMDAwMV0uY3B1aWQuZWF4LAorCSAgICAgY3B1X2ZlYXR1 cmVzLT5mZWF0dXJlc1tDUFVJRF9JTkRFWF84MDAwMDAwMV0uY3B1aWQuZWJ4LAorCSAgICAgY3B1 X2ZlYXR1cmVzLT5mZWF0dXJlc1tDUFVJRF9JTkRFWF84MDAwMDAwMV0uY3B1aWQuZWN4LAorCSAg ICAgY3B1X2ZlYXR1cmVzLT5mZWF0dXJlc1tDUFVJRF9JTkRFWF84MDAwMDAwMV0uY3B1aWQuZWR4 KTsKICAgaWYgKGVheCA+PSAweDgwMDAwMDA3KQogICAgIF9fY3B1aWQgKDB4ODAwMDAwMDcsCi0J ICAgICBjcHVfZmVhdHVyZXMtPmZlYXR1cmVzW0NPTU1PTl9DUFVJRF9JTkRFWF84MDAwMDAwN10u Y3B1aWQuZWF4LAotCSAgICAgY3B1X2ZlYXR1cmVzLT5mZWF0dXJlc1tDT01NT05fQ1BVSURfSU5E RVhfODAwMDAwMDddLmNwdWlkLmVieCwKLQkgICAgIGNwdV9mZWF0dXJlcy0+ZmVhdHVyZXNbQ09N TU9OX0NQVUlEX0lOREVYXzgwMDAwMDA3XS5jcHVpZC5lY3gsCi0JICAgICBjcHVfZmVhdHVyZXMt PmZlYXR1cmVzW0NPTU1PTl9DUFVJRF9JTkRFWF84MDAwMDAwN10uY3B1aWQuZWR4KTsKKwkgICAg IGNwdV9mZWF0dXJlcy0+ZmVhdHVyZXNbQ1BVSURfSU5ERVhfODAwMDAwMDddLmNwdWlkLmVheCwK KwkgICAgIGNwdV9mZWF0dXJlcy0+ZmVhdHVyZXNbQ1BVSURfSU5ERVhfODAwMDAwMDddLmNwdWlk LmVieCwKKwkgICAgIGNwdV9mZWF0dXJlcy0+ZmVhdHVyZXNbQ1BVSURfSU5ERVhfODAwMDAwMDdd LmNwdWlkLmVjeCwKKwkgICAgIGNwdV9mZWF0dXJlcy0+ZmVhdHVyZXNbQ1BVSURfSU5ERVhfODAw MDAwMDddLmNwdWlkLmVkeCk7CiAgIGlmIChlYXggPj0gMHg4MDAwMDAwOCkKICAgICBfX2NwdWlk ICgweDgwMDAwMDA4LAotCSAgICAgY3B1X2ZlYXR1cmVzLT5mZWF0dXJlc1tDT01NT05fQ1BVSURf SU5ERVhfODAwMDAwMDhdLmNwdWlkLmVheCwKLQkgICAgIGNwdV9mZWF0dXJlcy0+ZmVhdHVyZXNb Q09NTU9OX0NQVUlEX0lOREVYXzgwMDAwMDA4XS5jcHVpZC5lYngsCi0JICAgICBjcHVfZmVhdHVy ZXMtPmZlYXR1cmVzW0NPTU1PTl9DUFVJRF9JTkRFWF84MDAwMDAwOF0uY3B1aWQuZWN4LAotCSAg ICAgY3B1X2ZlYXR1cmVzLT5mZWF0dXJlc1tDT01NT05fQ1BVSURfSU5ERVhfODAwMDAwMDhdLmNw dWlkLmVkeCk7CisJICAgICBjcHVfZmVhdHVyZXMtPmZlYXR1cmVzW0NQVUlEX0lOREVYXzgwMDAw MDA4XS5jcHVpZC5lYXgsCisJICAgICBjcHVfZmVhdHVyZXMtPmZlYXR1cmVzW0NQVUlEX0lOREVY XzgwMDAwMDA4XS5jcHVpZC5lYngsCisJICAgICBjcHVfZmVhdHVyZXMtPmZlYXR1cmVzW0NQVUlE X0lOREVYXzgwMDAwMDA4XS5jcHVpZC5lY3gsCisJICAgICBjcHVfZmVhdHVyZXMtPmZlYXR1cmVz W0NQVUlEX0lOREVYXzgwMDAwMDA4XS5jcHVpZC5lZHgpOwogfQogCiBzdGF0aWMgdm9pZApAQCAt MzIwLDEwICszMjAsMTAgQEAgZ2V0X2NvbW1vbl9pbmRpY2VzIChzdHJ1Y3QgY3B1X2ZlYXR1cmVz ICpjcHVfZmVhdHVyZXMsCiAgICAgewogICAgICAgdW5zaWduZWQgaW50IGVheDsKICAgICAgIF9f Y3B1aWQgKDEsIGVheCwKLQkgICAgICAgY3B1X2ZlYXR1cmVzLT5mZWF0dXJlc1tDT01NT05fQ1BV SURfSU5ERVhfMV0uY3B1aWQuZWJ4LAotCSAgICAgICBjcHVfZmVhdHVyZXMtPmZlYXR1cmVzW0NP TU1PTl9DUFVJRF9JTkRFWF8xXS5jcHVpZC5lY3gsCi0JICAgICAgIGNwdV9mZWF0dXJlcy0+ZmVh dHVyZXNbQ09NTU9OX0NQVUlEX0lOREVYXzFdLmNwdWlkLmVkeCk7Ci0gICAgICBjcHVfZmVhdHVy ZXMtPmZlYXR1cmVzW0NPTU1PTl9DUFVJRF9JTkRFWF8xXS5jcHVpZC5lYXggPSBlYXg7CisJICAg ICAgIGNwdV9mZWF0dXJlcy0+ZmVhdHVyZXNbQ1BVSURfSU5ERVhfMV0uY3B1aWQuZWJ4LAorCSAg ICAgICBjcHVfZmVhdHVyZXMtPmZlYXR1cmVzW0NQVUlEX0lOREVYXzFdLmNwdWlkLmVjeCwKKwkg ICAgICAgY3B1X2ZlYXR1cmVzLT5mZWF0dXJlc1tDUFVJRF9JTkRFWF8xXS5jcHVpZC5lZHgpOwor ICAgICAgY3B1X2ZlYXR1cmVzLT5mZWF0dXJlc1tDUFVJRF9JTkRFWF8xXS5jcHVpZC5lYXggPSBl YXg7CiAgICAgICAqZmFtaWx5ID0gKGVheCA+PiA4KSAmIDB4MGY7CiAgICAgICAqbW9kZWwgPSAo ZWF4ID4+IDQpICYgMHgwZjsKICAgICAgICpleHRlbmRlZF9tb2RlbCA9IChlYXggPj4gMTIpICYg MHhmMDsKQEAgLTMzOCwzMCArMzM4LDMwIEBAIGdldF9jb21tb25faW5kaWNlcyAoc3RydWN0IGNw dV9mZWF0dXJlcyAqY3B1X2ZlYXR1cmVzLAogICBpZiAoY3B1X2ZlYXR1cmVzLT5iYXNpYy5tYXhf Y3B1aWQgPj0gNykKICAgICB7CiAgICAgICBfX2NwdWlkX2NvdW50ICg3LCAwLAotCQkgICAgIGNw dV9mZWF0dXJlcy0+ZmVhdHVyZXNbQ09NTU9OX0NQVUlEX0lOREVYXzddLmNwdWlkLmVheCwKLQkJ ICAgICBjcHVfZmVhdHVyZXMtPmZlYXR1cmVzW0NPTU1PTl9DUFVJRF9JTkRFWF83XS5jcHVpZC5l YngsCi0JCSAgICAgY3B1X2ZlYXR1cmVzLT5mZWF0dXJlc1tDT01NT05fQ1BVSURfSU5ERVhfN10u Y3B1aWQuZWN4LAotCQkgICAgIGNwdV9mZWF0dXJlcy0+ZmVhdHVyZXNbQ09NTU9OX0NQVUlEX0lO REVYXzddLmNwdWlkLmVkeCk7CisJCSAgICAgY3B1X2ZlYXR1cmVzLT5mZWF0dXJlc1tDUFVJRF9J TkRFWF83XS5jcHVpZC5lYXgsCisJCSAgICAgY3B1X2ZlYXR1cmVzLT5mZWF0dXJlc1tDUFVJRF9J TkRFWF83XS5jcHVpZC5lYngsCisJCSAgICAgY3B1X2ZlYXR1cmVzLT5mZWF0dXJlc1tDUFVJRF9J TkRFWF83XS5jcHVpZC5lY3gsCisJCSAgICAgY3B1X2ZlYXR1cmVzLT5mZWF0dXJlc1tDUFVJRF9J TkRFWF83XS5jcHVpZC5lZHgpOwogICAgICAgX19jcHVpZF9jb3VudCAoNywgMSwKLQkJICAgICBj cHVfZmVhdHVyZXMtPmZlYXR1cmVzW0NPTU1PTl9DUFVJRF9JTkRFWF83X0VDWF8xXS5jcHVpZC5l YXgsCi0JCSAgICAgY3B1X2ZlYXR1cmVzLT5mZWF0dXJlc1tDT01NT05fQ1BVSURfSU5ERVhfN19F Q1hfMV0uY3B1aWQuZWJ4LAotCQkgICAgIGNwdV9mZWF0dXJlcy0+ZmVhdHVyZXNbQ09NTU9OX0NQ VUlEX0lOREVYXzdfRUNYXzFdLmNwdWlkLmVjeCwKLQkJICAgICBjcHVfZmVhdHVyZXMtPmZlYXR1 cmVzW0NPTU1PTl9DUFVJRF9JTkRFWF83X0VDWF8xXS5jcHVpZC5lZHgpOworCQkgICAgIGNwdV9m ZWF0dXJlcy0+ZmVhdHVyZXNbQ1BVSURfSU5ERVhfN19FQ1hfMV0uY3B1aWQuZWF4LAorCQkgICAg IGNwdV9mZWF0dXJlcy0+ZmVhdHVyZXNbQ1BVSURfSU5ERVhfN19FQ1hfMV0uY3B1aWQuZWJ4LAor CQkgICAgIGNwdV9mZWF0dXJlcy0+ZmVhdHVyZXNbQ1BVSURfSU5ERVhfN19FQ1hfMV0uY3B1aWQu ZWN4LAorCQkgICAgIGNwdV9mZWF0dXJlcy0+ZmVhdHVyZXNbQ1BVSURfSU5ERVhfN19FQ1hfMV0u Y3B1aWQuZWR4KTsKICAgICB9CiAKICAgaWYgKGNwdV9mZWF0dXJlcy0+YmFzaWMubWF4X2NwdWlk ID49IDB4ZCkKICAgICBfX2NwdWlkX2NvdW50ICgweGQsIDEsCi0JCSAgIGNwdV9mZWF0dXJlcy0+ ZmVhdHVyZXNbQ09NTU9OX0NQVUlEX0lOREVYX0RfRUNYXzFdLmNwdWlkLmVheCwKLQkJICAgY3B1 X2ZlYXR1cmVzLT5mZWF0dXJlc1tDT01NT05fQ1BVSURfSU5ERVhfRF9FQ1hfMV0uY3B1aWQuZWJ4 LAotCQkgICBjcHVfZmVhdHVyZXMtPmZlYXR1cmVzW0NPTU1PTl9DUFVJRF9JTkRFWF9EX0VDWF8x XS5jcHVpZC5lY3gsCi0JCSAgIGNwdV9mZWF0dXJlcy0+ZmVhdHVyZXNbQ09NTU9OX0NQVUlEX0lO REVYX0RfRUNYXzFdLmNwdWlkLmVkeCk7CisJCSAgIGNwdV9mZWF0dXJlcy0+ZmVhdHVyZXNbQ1BV SURfSU5ERVhfRF9FQ1hfMV0uY3B1aWQuZWF4LAorCQkgICBjcHVfZmVhdHVyZXMtPmZlYXR1cmVz W0NQVUlEX0lOREVYX0RfRUNYXzFdLmNwdWlkLmVieCwKKwkJICAgY3B1X2ZlYXR1cmVzLT5mZWF0 dXJlc1tDUFVJRF9JTkRFWF9EX0VDWF8xXS5jcHVpZC5lY3gsCisJCSAgIGNwdV9mZWF0dXJlcy0+ ZmVhdHVyZXNbQ1BVSURfSU5ERVhfRF9FQ1hfMV0uY3B1aWQuZWR4KTsKIAogICBpZiAoY3B1X2Zl YXR1cmVzLT5iYXNpYy5tYXhfY3B1aWQgPj0gMHgxOSkKICAgICBfX2NwdWlkX2NvdW50ICgweDE5 LCAwLAotCQkgICBjcHVfZmVhdHVyZXMtPmZlYXR1cmVzW0NPTU1PTl9DUFVJRF9JTkRFWF8xOV0u Y3B1aWQuZWF4LAotCQkgICBjcHVfZmVhdHVyZXMtPmZlYXR1cmVzW0NPTU1PTl9DUFVJRF9JTkRF WF8xOV0uY3B1aWQuZWJ4LAotCQkgICBjcHVfZmVhdHVyZXMtPmZlYXR1cmVzW0NPTU1PTl9DUFVJ RF9JTkRFWF8xOV0uY3B1aWQuZWN4LAotCQkgICBjcHVfZmVhdHVyZXMtPmZlYXR1cmVzW0NPTU1P Tl9DUFVJRF9JTkRFWF8xOV0uY3B1aWQuZWR4KTsKKwkJICAgY3B1X2ZlYXR1cmVzLT5mZWF0dXJl c1tDUFVJRF9JTkRFWF8xOV0uY3B1aWQuZWF4LAorCQkgICBjcHVfZmVhdHVyZXMtPmZlYXR1cmVz W0NQVUlEX0lOREVYXzE5XS5jcHVpZC5lYngsCisJCSAgIGNwdV9mZWF0dXJlcy0+ZmVhdHVyZXNb Q1BVSURfSU5ERVhfMTldLmNwdWlkLmVjeCwKKwkJICAgY3B1X2ZlYXR1cmVzLT5mZWF0dXJlc1tD UFVJRF9JTkRFWF8xOV0uY3B1aWQuZWR4KTsKIH0KIAogX1N0YXRpY19hc3NlcnQgKCgoaW5kZXhf YXJjaF9GYXN0X1VuYWxpZ25lZF9Mb2FkCkBAIC01MzYsMTEgKzUzNiwxMSBAQCBpbml0X2NwdV9m ZWF0dXJlcyAoc3RydWN0IGNwdV9mZWF0dXJlcyAqY3B1X2ZlYXR1cmVzKQogCiAgICAgICB1cGRh dGVfdXNhYmxlIChjcHVfZmVhdHVyZXMpOwogCi0gICAgICBlY3ggPSBjcHVfZmVhdHVyZXMtPmZl YXR1cmVzW0NPTU1PTl9DUFVJRF9JTkRFWF8xXS5jcHVpZC5lY3g7CisgICAgICBlY3ggPSBjcHVf ZmVhdHVyZXMtPmZlYXR1cmVzW0NQVUlEX0lOREVYXzFdLmNwdWlkLmVjeDsKIAogICAgICAgaWYg KENQVV9GRUFUVVJFX1VTQUJMRV9QIChjcHVfZmVhdHVyZXMsIEFWWCkpCiAJewotCSAgLyogU2lu Y2UgdGhlIEZNQTQgYml0IGlzIGluIENPTU1PTl9DUFVJRF9JTkRFWF84MDAwMDAwMSBhbmQKKwkg IC8qIFNpbmNlIHRoZSBGTUE0IGJpdCBpcyBpbiBDUFVJRF9JTkRFWF84MDAwMDAwMSBhbmQKIAkg ICAgIEZNQTQgcmVxdWlyZXMgQVZYLCBkZXRlcm1pbmUgaWYgRk1BNCBpcyB1c2FibGUgaGVyZS4g ICovCiAJICBDUFVfRkVBVFVSRV9TRVRfVVNBQkxFIChjcHVfZmVhdHVyZXMsIEZNQTQpOwogCX0K ZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2L2RsLWNhY2hlaW5mby5oIGIvc3lzZGVwcy94ODYvZGwt Y2FjaGVpbmZvLmgKaW5kZXggOTZjNDlmMjQxMS4uYTMxZmEwNzgzYSAxMDA2NDQKLS0tIGEvc3lz ZGVwcy94ODYvZGwtY2FjaGVpbmZvLmgKKysrIGIvc3lzZGVwcy94ODYvZGwtY2FjaGVpbmZvLmgK QEAgLTY3Miw4ICs2NzIsOCBAQCBpbnRlbF9idWdfbm9fY2FjaGVfaW5mbzoKICAgICAgICAgICAv KiBBc3N1bWUgdGhhdCBhbGwgbG9naWNhbCB0aHJlYWRzIHNoYXJlIHRoZSBoaWdoZXN0IGNhY2hl CiAgICAgICAgICAgICAgbGV2ZWwuICAqLwogICAgICAgICAgIHRocmVhZHMKLSAgICAgICAgICAg ID0gKChjcHVfZmVhdHVyZXMtPmZlYXR1cmVzW0NPTU1PTl9DUFVJRF9JTkRFWF8xXS5jcHVpZC5l YngKLSAgICAgICAgICAgICAgICA+PiAxNikgJiAweGZmKTsKKyAgICAgICAgICAgID0gKChjcHVf ZmVhdHVyZXMtPmZlYXR1cmVzW0NQVUlEX0lOREVYXzFdLmNwdWlkLmVieCA+PiAxNikKKwkgICAg ICAgJiAweGZmKTsKICAgICAgICAgfQogCiAgICAgICAgIC8qIENhcCB1c2FnZSBvZiBoaWdoZXN0 IGNhY2hlIGxldmVsIHRvIHRoZSBudW1iZXIgb2Ygc3VwcG9ydGVkCmRpZmYgLS1naXQgYS9zeXNk ZXBzL3g4Ni9kbC1nZXQtY3B1LWZlYXR1cmVzLmMgYi9zeXNkZXBzL3g4Ni9kbC1nZXQtY3B1LWZl YXR1cmVzLmMKaW5kZXggMTlmYzRmMWVlYi4uZDczZjI3NWRkMyAxMDA2NDQKLS0tIGEvc3lzZGVw cy94ODYvZGwtZ2V0LWNwdS1mZWF0dXJlcy5jCisrKyBiL3N5c2RlcHMveDg2L2RsLWdldC1jcHUt ZmVhdHVyZXMuYwpAQCAtNDMsMTIgKzQzLDIxIEBAIF9faWZ1bmMgKF9feDg2X2NwdV9mZWF0dXJl cywgX194ODZfY3B1X2ZlYXR1cmVzLCBOVUxMLCB2b2lkLAogCSBfZGxfeDg2X2luaXRfY3B1X2Zl YXR1cmVzKTsKICNlbmRpZgogCi0jdW5kZWYgX194ODZfZ2V0X2NwdV9mZWF0dXJlcworI3VuZGVm IF9kbF94ODZfZ2V0X2NwdV9mZWF0dXJlcwogCiBjb25zdCBzdHJ1Y3QgY3B1X2ZlYXR1cmVzICoK LV9feDg2X2dldF9jcHVfZmVhdHVyZXMgKHVuc2lnbmVkIGludCBtYXgpCitfZGxfeDg2X2dldF9j cHVfZmVhdHVyZXMgKHZvaWQpCiB7Ci0gIGlmIChtYXggPiBDT01NT05fQ1BVSURfSU5ERVhfTUFY KQotICAgIHJldHVybiBOVUxMOwogICByZXR1cm4gJkdMUk8oZGxfeDg2X2NwdV9mZWF0dXJlcyk7 CiB9CisKK2NvbnN0IHN0cnVjdCBjcHVpZF9mZWF0dXJlICoKK19feDg2X2dldF9jcHVpZF9mZWF0 dXJlX2xlYWYgKHVuc2lnbmVkIGludCBsZWFmKQoreworICBzdGF0aWMgY29uc3Qgc3RydWN0IGNw dWlkX2ZlYXR1cmVfaW50ZXJuYWwgZmVhdHVyZSA9IHt9OworICBpZiAobGVhZiA8IENQVUlEX0lO REVYX01BWCkKKyAgICByZXR1cm4gKChjb25zdCBzdHJ1Y3QgY3B1aWRfZmVhdHVyZSAqKQorCSAg ICAgICZHTFJPKGRsX3g4Nl9jcHVfZmVhdHVyZXMpLmZlYXR1cmVzW2xlYWZdKTsKKyAgZWxzZQor ICAgIHJldHVybiAoY29uc3Qgc3RydWN0IGNwdWlkX2ZlYXR1cmUgKikgJmZlYXR1cmU7Cit9CmRp ZmYgLS1naXQgYS9zeXNkZXBzL3g4Ni9nZXQtaXNhLWxldmVsLmggYi9zeXNkZXBzL3g4Ni9nZXQt aXNhLWxldmVsLmgKaW5kZXggM2YwZTI3ZWU1OS4uYWE4MGY1NmNhNiAxMDA2NDQKLS0tIGEvc3lz ZGVwcy94ODYvZ2V0LWlzYS1sZXZlbC5oCisrKyBiL3N5c2RlcHMveDg2L2dldC1pc2EtbGV2ZWwu aApAQCAtMTcsNyArMTcsNyBAQAogICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4g ICovCiAKICNpbmNsdWRlIDxlbGYuaD4KLSNpbmNsdWRlIDxzeXMvcGxhdGZvcm0veDg2Lmg+Cisj aW5jbHVkZSA8Y3B1LWZlYXR1cmVzLmg+CiAKIC8qIEdldCBHTlVfUFJPUEVSVFlfWDg2X0lTQV8x X0JBU0VMSU5FIGFuZCBHTlVfUFJPUEVSVFlfWDg2X0lTQV8xX1ZbMjM0XQogICAgSVNBIGxldmVs LiAgKi8KZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2L2luY2x1ZGUvY3B1LWZlYXR1cmVzLmggYi9z eXNkZXBzL3g4Ni9pbmNsdWRlL2NwdS1mZWF0dXJlcy5oCmluZGV4IDUwY2I1YTE1ZjUuLjYyNDcz NmI0MGUgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMveDg2L2luY2x1ZGUvY3B1LWZlYXR1cmVzLmgKKysr IGIvc3lzZGVwcy94ODYvaW5jbHVkZS9jcHUtZmVhdHVyZXMuaApAQCAtMjMsMTYgKzIzLDE0IEBA CiAjIGVycm9yIHRoaXMgc2hvdWxkIGJlIGltcG9zc2libGUKICNlbmRpZgogCi0vKiBHZXQgbW9z dCBvZiB0aGUgY29udGVudHMgZnJvbSB0aGUgcHVibGljIGhlYWRlciwgYnV0IHdlIGRlZmluZSBh Ci0gICBkaWZmZXJlbnQgYHN0cnVjdCBjcHVfZmVhdHVyZXMnIHR5cGUgZm9yIHByaXZhdGUgdXNl LiAgKi8KLSNkZWZpbmUgY3B1X2ZlYXR1cmVzCQljcHVfZmVhdHVyZXNfcHVibGljCi0jZGVmaW5l IF9feDg2X2dldF9jcHVfZmVhdHVyZXMJX194ODZfZ2V0X2NwdV9mZWF0dXJlc19wdWJsaWMKKy8q IEdldCBkYXRhIHN0cnVjdHVyZXMgd2l0aG91dCBpbmxpbmUgZnVuY3Rpb25zLiAgKi8KKyNkZWZp bmUgX1NZU19QTEFURk9STV9YODZfSAorI2luY2x1ZGUgPGJpdHMvcGxhdGZvcm0veDg2Lmg+CiAK LSNpbmNsdWRlIDxzeXNkZXBzL3g4Ni9zeXMvcGxhdGZvcm0veDg2Lmg+Ci0KLSN1bmRlZgljcHVf ZmVhdHVyZXMKLSN1bmRlZiBfX3g4Nl9nZXRfY3B1X2ZlYXR1cmVzCi0jZGVmaW5lIF9fZ2V0X2Nw dV9mZWF0dXJlcygpCV9feDg2X2dldF9jcHVfZmVhdHVyZXMgKDApCitlbnVtCit7CisgIENQVUlE X0lOREVYX01BWCA9IENQVUlEX0lOREVYXzE5ICsgMQorfTsKIAogZW51bQogewpAQCAtNTQsMTQg KzUyLDIwIEBAIGVudW0KICNkZWZpbmUgQ1BVX0ZFQVRVUkVfUFJFRkVSUkVEX1AocHRyLCBuYW1l KSBcCiAgICgocHRyLT5wcmVmZXJyZWRbaW5kZXhfYXJjaF8jI25hbWVdICYgYml0X2FyY2hfIyNu YW1lKSAhPSAwKQogCisjZGVmaW5lIENQVV9GRUFUVVJFX0NIRUNLX1AocHRyLCBuYW1lLCBjaGVj aykgXAorICAoKHB0ci0+ZmVhdHVyZXNbaW5kZXhfY3B1XyMjbmFtZV0uY2hlY2sucmVnXyMjbmFt ZSBcCisgICAgJiBiaXRfY3B1XyMjbmFtZSkgIT0gMCkKKyNkZWZpbmUgQ1BVX0ZFQVRVUkVfQ1BV X1AocHRyLCBuYW1lKSBcCisgIENQVV9GRUFUVVJFX0NIRUNLX1AgKHB0ciwgbmFtZSwgY3B1aWQp CisjZGVmaW5lIENQVV9GRUFUVVJFX1VTQUJMRV9QKHB0ciwgbmFtZSkgXAorICBDUFVfRkVBVFVS RV9DSEVDS19QIChwdHIsIG5hbWUsIHVzYWJsZSkKKwogLyogSEFTX0NQVV9GRUFUVVJFIGV2YWx1 YXRlcyB0byB0cnVlIGlmIENQVSBzdXBwb3J0cyB0aGUgZmVhdHVyZS4gICovCi0jdW5kZWYgSEFT X0NQVV9GRUFUVVJFCiAjZGVmaW5lIEhBU19DUFVfRkVBVFVSRShuYW1lKSBcCi0gIENQVV9GRUFU VVJFX0NQVV9QIChfX3g4Nl9nZXRfY3B1X2ZlYXR1cmVzICgwKSwgbmFtZSkKKyAgQ1BVX0ZFQVRV UkVfQ1BVX1AgKF9fZ2V0X2NwdV9mZWF0dXJlcyAoKSwgbmFtZSkKIC8qIENQVV9GRUFUVVJFX1VT QUJMRSBldmFsdWF0ZXMgdG8gdHJ1ZSBpZiB0aGUgZmVhdHVyZSBpcyB1c2FibGUuICAqLwotI3Vu ZGVmIENQVV9GRUFUVVJFX1VTQUJMRQogI2RlZmluZSBDUFVfRkVBVFVSRV9VU0FCTEUobmFtZSkg XAotICBDUFVfRkVBVFVSRV9VU0FCTEVfUCAoX194ODZfZ2V0X2NwdV9mZWF0dXJlcyAoMCksIG5h bWUpCisgIENQVV9GRUFUVVJFX1VTQUJMRV9QIChfX2dldF9jcHVfZmVhdHVyZXMgKCksIG5hbWUp CiAvKiBDUFVfRkVBVFVSRV9QUkVGRVIgZXZhbHVhdGVzIHRvIHRydWUgaWYgd2UgcHJlZmVyIHRo ZSBmZWF0dXJlIGF0CiAgICBydW50aW1lLiAgKi8KICNkZWZpbmUgQ1BVX0ZFQVRVUkVfUFJFRkVS UkVEKG5hbWUpIFwKQEAgLTc0LDYgKzc4LDY4NSBAQCBlbnVtCiAjZGVmaW5lIEhBU19BUkNIX0ZF QVRVUkUobmFtZSkgXAogICBDUFVfRkVBVFVSRV9QUkVGRVJSRUQgKG5hbWUpCiAKKy8qIENQVSBm ZWF0dXJlcy4gICovCisKKy8qIENQVUlEX0lOREVYXzEuICAqLworCisvKiBFQ1guICAqLworI2Rl ZmluZSBiaXRfY3B1X1NTRTMJCSgxdSA8PCAwKQorI2RlZmluZSBiaXRfY3B1X1BDTE1VTFFEUQko MXUgPDwgMSkKKyNkZWZpbmUgYml0X2NwdV9EVEVTNjQJCSgxdSA8PCAyKQorI2RlZmluZSBiaXRf Y3B1X01PTklUT1IJCSgxdSA8PCAzKQorI2RlZmluZSBiaXRfY3B1X0RTX0NQTAkJKDF1IDw8IDQp CisjZGVmaW5lIGJpdF9jcHVfVk1YCQkoMXUgPDwgNSkKKyNkZWZpbmUgYml0X2NwdV9TTVgJCSgx dSA8PCA2KQorI2RlZmluZSBiaXRfY3B1X0VJU1QJCSgxdSA8PCA3KQorI2RlZmluZSBiaXRfY3B1 X1RNMgkJKDF1IDw8IDgpCisjZGVmaW5lIGJpdF9jcHVfU1NTRTMJCSgxdSA8PCA5KQorI2RlZmlu ZSBiaXRfY3B1X0NOWFRfSUQJCSgxdSA8PCAxMCkKKyNkZWZpbmUgYml0X2NwdV9TREJHCQkoMXUg PDwgMTEpCisjZGVmaW5lIGJpdF9jcHVfRk1BCQkoMXUgPDwgMTIpCisjZGVmaW5lIGJpdF9jcHVf Q01QWENIRzE2QgkoMXUgPDwgMTMpCisjZGVmaW5lIGJpdF9jcHVfWFRQUlVQRENUUkwJKDF1IDw8 IDE0KQorI2RlZmluZSBiaXRfY3B1X1BEQ00JCSgxdSA8PCAxNSkKKyNkZWZpbmUgYml0X2NwdV9J TkRFWF8xX0VDWF8xNgkoMXUgPDwgMTYpCisjZGVmaW5lIGJpdF9jcHVfUENJRAkJKDF1IDw8IDE3 KQorI2RlZmluZSBiaXRfY3B1X0RDQQkJKDF1IDw8IDE4KQorI2RlZmluZSBiaXRfY3B1X1NTRTRf MQkJKDF1IDw8IDE5KQorI2RlZmluZSBiaXRfY3B1X1NTRTRfMgkJKDF1IDw8IDIwKQorI2RlZmlu ZSBiaXRfY3B1X1gyQVBJQwkJKDF1IDw8IDIxKQorI2RlZmluZSBiaXRfY3B1X01PVkJFCQkoMXUg PDwgMjIpCisjZGVmaW5lIGJpdF9jcHVfUE9QQ05UCQkoMXUgPDwgMjMpCisjZGVmaW5lIGJpdF9j cHVfVFNDX0RFQURMSU5FCSgxdSA8PCAyNCkKKyNkZWZpbmUgYml0X2NwdV9BRVMJCSgxdSA8PCAy NSkKKyNkZWZpbmUgYml0X2NwdV9YU0FWRQkJKDF1IDw8IDI2KQorI2RlZmluZSBiaXRfY3B1X09T WFNBVkUJCSgxdSA8PCAyNykKKyNkZWZpbmUgYml0X2NwdV9BVlgJCSgxdSA8PCAyOCkKKyNkZWZp bmUgYml0X2NwdV9GMTZDCQkoMXUgPDwgMjkpCisjZGVmaW5lIGJpdF9jcHVfUkRSQU5ECQkoMXUg PDwgMzApCisjZGVmaW5lIGJpdF9jcHVfSU5ERVhfMV9FQ1hfMzEJKDF1IDw8IDMxKQorCisvKiBF RFguICAqLworI2RlZmluZSBiaXRfY3B1X0ZQVQkJKDF1IDw8IDApCisjZGVmaW5lIGJpdF9jcHVf Vk1FCQkoMXUgPDwgMSkKKyNkZWZpbmUgYml0X2NwdV9ERQkJKDF1IDw8IDIpCisjZGVmaW5lIGJp dF9jcHVfUFNFCQkoMXUgPDwgMykKKyNkZWZpbmUgYml0X2NwdV9UU0MJCSgxdSA8PCA0KQorI2Rl ZmluZSBiaXRfY3B1X01TUgkJKDF1IDw8IDUpCisjZGVmaW5lIGJpdF9jcHVfUEFFCQkoMXUgPDwg NikKKyNkZWZpbmUgYml0X2NwdV9NQ0UJCSgxdSA8PCA3KQorI2RlZmluZSBiaXRfY3B1X0NYOAkJ KDF1IDw8IDgpCisjZGVmaW5lIGJpdF9jcHVfQVBJQwkJKDF1IDw8IDkpCisjZGVmaW5lIGJpdF9j cHVfSU5ERVhfMV9FRFhfMTAJKDF1IDw8IDEwKQorI2RlZmluZSBiaXRfY3B1X1NFUAkJKDF1IDw8 IDExKQorI2RlZmluZSBiaXRfY3B1X01UUlIJCSgxdSA8PCAxMikKKyNkZWZpbmUgYml0X2NwdV9Q R0UJCSgxdSA8PCAxMykKKyNkZWZpbmUgYml0X2NwdV9NQ0EJCSgxdSA8PCAxNCkKKyNkZWZpbmUg Yml0X2NwdV9DTU9WCQkoMXUgPDwgMTUpCisjZGVmaW5lIGJpdF9jcHVfUEFUCQkoMXUgPDwgMTYp CisjZGVmaW5lIGJpdF9jcHVfUFNFXzM2CQkoMXUgPDwgMTcpCisjZGVmaW5lIGJpdF9jcHVfUFNO CQkoMXUgPDwgMTgpCisjZGVmaW5lIGJpdF9jcHVfQ0xGU0gJCSgxdSA8PCAxOSkKKyNkZWZpbmUg Yml0X2NwdV9JTkRFWF8xX0VEWF8yMAkoMXUgPDwgMjApCisjZGVmaW5lIGJpdF9jcHVfRFMJCSgx dSA8PCAyMSkKKyNkZWZpbmUgYml0X2NwdV9BQ1BJCQkoMXUgPDwgMjIpCisjZGVmaW5lIGJpdF9j cHVfTU1YCQkoMXUgPDwgMjMpCisjZGVmaW5lIGJpdF9jcHVfRlhTUgkJKDF1IDw8IDI0KQorI2Rl ZmluZSBiaXRfY3B1X1NTRQkJKDF1IDw8IDI1KQorI2RlZmluZSBiaXRfY3B1X1NTRTIJCSgxdSA8 PCAyNikKKyNkZWZpbmUgYml0X2NwdV9TUwkJKDF1IDw8IDI3KQorI2RlZmluZSBiaXRfY3B1X0hU VAkJKDF1IDw8IDI4KQorI2RlZmluZSBiaXRfY3B1X1RNCQkoMXUgPDwgMjkpCisjZGVmaW5lIGJp dF9jcHVfSU5ERVhfMV9FRFhfMzAJKDF1IDw8IDMwKQorI2RlZmluZSBiaXRfY3B1X1BCRQkJKDF1 IDw8IDMxKQorCisvKiBDUFVJRF9JTkRFWF83LiAgKi8KKworLyogRUJYLiAgKi8KKyNkZWZpbmUg Yml0X2NwdV9GU0dTQkFTRQkoMXUgPDwgMCkKKyNkZWZpbmUgYml0X2NwdV9UU0NfQURKVVNUCSgx dSA8PCAxKQorI2RlZmluZSBiaXRfY3B1X1NHWAkJKDF1IDw8IDIpCisjZGVmaW5lIGJpdF9jcHVf Qk1JMQkJKDF1IDw8IDMpCisjZGVmaW5lIGJpdF9jcHVfSExFCQkoMXUgPDwgNCkKKyNkZWZpbmUg Yml0X2NwdV9BVlgyCQkoMXUgPDwgNSkKKyNkZWZpbmUgYml0X2NwdV9JTkRFWF83X0VCWF82CSgx dSA8PCA2KQorI2RlZmluZSBiaXRfY3B1X1NNRVAJCSgxdSA8PCA3KQorI2RlZmluZSBiaXRfY3B1 X0JNSTIJCSgxdSA8PCA4KQorI2RlZmluZSBiaXRfY3B1X0VSTVMJCSgxdSA8PCA5KQorI2RlZmlu ZSBiaXRfY3B1X0lOVlBDSUQJCSgxdSA8PCAxMCkKKyNkZWZpbmUgYml0X2NwdV9SVE0JCSgxdSA8 PCAxMSkKKyNkZWZpbmUgYml0X2NwdV9SRFRfTQkJKDF1IDw8IDEyKQorI2RlZmluZSBiaXRfY3B1 X0RFUFJfRlBVX0NTX0RTCSgxdSA8PCAxMykKKyNkZWZpbmUgYml0X2NwdV9NUFgJCSgxdSA8PCAx NCkKKyNkZWZpbmUgYml0X2NwdV9SRFRfQQkJKDF1IDw8IDE1KQorI2RlZmluZSBiaXRfY3B1X0FW WDUxMkYJCSgxdSA8PCAxNikKKyNkZWZpbmUgYml0X2NwdV9BVlg1MTJEUQkoMXUgPDwgMTcpCisj ZGVmaW5lIGJpdF9jcHVfUkRTRUVECQkoMXUgPDwgMTgpCisjZGVmaW5lIGJpdF9jcHVfQURYCQko MXUgPDwgMTkpCisjZGVmaW5lIGJpdF9jcHVfU01BUAkJKDF1IDw8IDIwKQorI2RlZmluZSBiaXRf Y3B1X0FWWDUxMl9JRk1BCSgxdSA8PCAyMSkKKyNkZWZpbmUgYml0X2NwdV9JTkRFWF83X0VCWF8y MgkoMXUgPDwgMjIpCisjZGVmaW5lIGJpdF9jcHVfQ0xGTFVTSE9QVAkoMXUgPDwgMjMpCisjZGVm aW5lIGJpdF9jcHVfQ0xXQgkJKDF1IDw8IDI0KQorI2RlZmluZSBiaXRfY3B1X1RSQUNFCQkoMXUg PDwgMjUpCisjZGVmaW5lIGJpdF9jcHVfQVZYNTEyUEYJKDF1IDw8IDI2KQorI2RlZmluZSBiaXRf Y3B1X0FWWDUxMkVSCSgxdSA8PCAyNykKKyNkZWZpbmUgYml0X2NwdV9BVlg1MTJDRAkoMXUgPDwg MjgpCisjZGVmaW5lIGJpdF9jcHVfU0hBCQkoMXUgPDwgMjkpCisjZGVmaW5lIGJpdF9jcHVfQVZY NTEyQlcJKDF1IDw8IDMwKQorI2RlZmluZSBiaXRfY3B1X0FWWDUxMlZMCSgxdSA8PCAzMSkKKwor LyogRUNYLiAgKi8KKyNkZWZpbmUgYml0X2NwdV9QUkVGRVRDSFdUMQkoMXUgPDwgMCkKKyNkZWZp bmUgYml0X2NwdV9BVlg1MTJfVkJNSQkoMXUgPDwgMSkKKyNkZWZpbmUgYml0X2NwdV9VTUlQCQko MXUgPDwgMikKKyNkZWZpbmUgYml0X2NwdV9QS1UJCSgxdSA8PCAzKQorI2RlZmluZSBiaXRfY3B1 X09TUEtFCQkoMXUgPDwgNCkKKyNkZWZpbmUgYml0X2NwdV9XQUlUUEtHCQkoMXUgPDwgNSkKKyNk ZWZpbmUgYml0X2NwdV9BVlg1MTJfVkJNSTIJKDF1IDw8IDYpCisjZGVmaW5lIGJpdF9jcHVfU0hT VEsJCSgxdSA8PCA3KQorI2RlZmluZSBiaXRfY3B1X0dGTkkJCSgxdSA8PCA4KQorI2RlZmluZSBi aXRfY3B1X1ZBRVMJCSgxdSA8PCA5KQorI2RlZmluZSBiaXRfY3B1X1ZQQ0xNVUxRRFEJKDF1IDw8 IDEwKQorI2RlZmluZSBiaXRfY3B1X0FWWDUxMl9WTk5JCSgxdSA8PCAxMSkKKyNkZWZpbmUgYml0 X2NwdV9BVlg1MTJfQklUQUxHCSgxdSA8PCAxMikKKyNkZWZpbmUgYml0X2NwdV9JTkRFWF83X0VD WF8xMwkoMXUgPDwgMTMpCisjZGVmaW5lIGJpdF9jcHVfQVZYNTEyX1ZQT1BDTlREUSAoMXUgPDwg MTQpCisjZGVmaW5lIGJpdF9jcHVfSU5ERVhfN19FQ1hfMTUJKDF1IDw8IDE1KQorI2RlZmluZSBi aXRfY3B1X0lOREVYXzdfRUNYXzE2CSgxdSA8PCAxNikKKy8qIE5vdGU6IEJpdHMgMTctMjE6IFRo ZSB2YWx1ZSBvZiBNQVdBVSB1c2VkIGJ5IHRoZSBCTkRMRFggYW5kIEJORFNUWAorICAgaW5zdHJ1 Y3Rpb25zIGluIDY0LWJpdCBtb2RlLiAgKi8KKyNkZWZpbmUgYml0X2NwdV9SRFBJRAkJKDF1IDw8 IDIyKQorI2RlZmluZSBiaXRfY3B1X0tMCQkoMXUgPDwgMjMpCisjZGVmaW5lIGJpdF9jcHVfSU5E RVhfN19FQ1hfMjQJKDF1IDw8IDI0KQorI2RlZmluZSBiaXRfY3B1X0NMREVNT1RFCSgxdSA8PCAy NSkKKyNkZWZpbmUgYml0X2NwdV9JTkRFWF83X0VDWF8yNgkoMXUgPDwgMjYpCisjZGVmaW5lIGJp dF9jcHVfTU9WRElSSQkJKDF1IDw8IDI3KQorI2RlZmluZSBiaXRfY3B1X01PVkRJUjY0QgkoMXUg PDwgMjgpCisjZGVmaW5lIGJpdF9jcHVfRU5RQ01ECQkoMXUgPDwgMjkpCisjZGVmaW5lIGJpdF9j cHVfU0dYX0xDCQkoMXUgPDwgMzApCisjZGVmaW5lIGJpdF9jcHVfUEtTCQkoMXUgPDwgMzEpCisK Ky8qIEVEWC4gICovCisjZGVmaW5lIGJpdF9jcHVfSU5ERVhfN19FRFhfMAkoMXUgPDwgMCkKKyNk ZWZpbmUgYml0X2NwdV9JTkRFWF83X0VEWF8xCSgxdSA8PCAxKQorI2RlZmluZSBiaXRfY3B1X0FW WDUxMl80Vk5OSVcJKDF1IDw8IDIpCisjZGVmaW5lIGJpdF9jcHVfQVZYNTEyXzRGTUFQUwkoMXUg PDwgMykKKyNkZWZpbmUgYml0X2NwdV9GU1JNCQkoMXUgPDwgNCkKKyNkZWZpbmUgYml0X2NwdV9V SU5UUgkJKDF1IDw8IDUpCisjZGVmaW5lIGJpdF9jcHVfSU5ERVhfN19FRFhfNgkoMXUgPDwgNikK KyNkZWZpbmUgYml0X2NwdV9JTkRFWF83X0VEWF83CSgxdSA8PCA3KQorI2RlZmluZSBiaXRfY3B1 X0FWWDUxMl9WUDJJTlRFUlNFQ1QgKDF1IDw8IDgpCisjZGVmaW5lIGJpdF9jcHVfSU5ERVhfN19F RFhfOQkoMXUgPDwgOSkKKyNkZWZpbmUgYml0X2NwdV9NRF9DTEVBUgkoMXUgPDwgMTApCisjZGVm aW5lIGJpdF9jcHVfSU5ERVhfN19FRFhfMTEJKDF1IDw8IDExKQorI2RlZmluZSBiaXRfY3B1X0lO REVYXzdfRURYXzEyCSgxdSA8PCAxMikKKyNkZWZpbmUgYml0X2NwdV9JTkRFWF83X0VEWF8xMwko MXUgPDwgMTMpCisjZGVmaW5lIGJpdF9jcHVfU0VSSUFMSVpFCSgxdSA8PCAxNCkKKyNkZWZpbmUg Yml0X2NwdV9IWUJSSUQJCSgxdSA8PCAxNSkKKyNkZWZpbmUgYml0X2NwdV9UU1hMRFRSSwkoMXUg PDwgMTYpCisjZGVmaW5lIGJpdF9jcHVfSU5ERVhfN19FRFhfMTcJKDF1IDw8IDE3KQorI2RlZmlu ZSBiaXRfY3B1X1BDT05GSUcJCSgxdSA8PCAxOCkKKyNkZWZpbmUgYml0X2NwdV9JTkRFWF83X0VE WF8xOQkoMXUgPDwgMTkpCisjZGVmaW5lIGJpdF9jcHVfSUJUCQkoMXUgPDwgMjApCisjZGVmaW5l IGJpdF9jcHVfSU5ERVhfN19FRFhfMjEJKDF1IDw8IDIxKQorI2RlZmluZSBiaXRfY3B1X0FNWF9C RjE2CSgxdSA8PCAyMikKKyNkZWZpbmUgYml0X2NwdV9BVlg1MTJfRlAxNgkoMXUgPDwgMjMpCisj ZGVmaW5lIGJpdF9jcHVfQU1YX1RJTEUJKDF1IDw8IDI0KQorI2RlZmluZSBiaXRfY3B1X0FNWF9J TlQ4CSgxdSA8PCAyNSkKKyNkZWZpbmUgYml0X2NwdV9JQlJTX0lCUEIJKDF1IDw8IDI2KQorI2Rl ZmluZSBiaXRfY3B1X1NUSUJQCQkoMXUgPDwgMjcpCisjZGVmaW5lIGJpdF9jcHVfTDFEX0ZMVVNI CSgxdSA8PCAyOCkKKyNkZWZpbmUgYml0X2NwdV9BUkNIX0NBUEFCSUxJVElFUyAoMXUgPDwgMjkp CisjZGVmaW5lIGJpdF9jcHVfQ09SRV9DQVBBQklMSVRJRVMgKDF1IDw8IDMwKQorI2RlZmluZSBi aXRfY3B1X1NTQkQJCSgxdSA8PCAzMSkKKworLyogQ1BVSURfSU5ERVhfODAwMDAwMDEuICAqLwor CisvKiBFQ1guICAqLworI2RlZmluZSBiaXRfY3B1X0xBSEY2NF9TQUhGNjQJKDF1IDw8IDApCisj ZGVmaW5lIGJpdF9jcHVfU1ZNCQkoMXUgPDwgMikKKyNkZWZpbmUgYml0X2NwdV9MWkNOVAkJKDF1 IDw8IDUpCisjZGVmaW5lIGJpdF9jcHVfU1NFNEEJCSgxdSA8PCA2KQorI2RlZmluZSBiaXRfY3B1 X1BSRUZFVENIVwkoMXUgPDwgOCkKKyNkZWZpbmUgYml0X2NwdV9YT1AJCSgxdSA8PCAxMSkKKyNk ZWZpbmUgYml0X2NwdV9MV1AJCSgxdSA8PCAxNSkKKyNkZWZpbmUgYml0X2NwdV9GTUE0CQkoMXUg PDwgMTYpCisjZGVmaW5lIGJpdF9jcHVfVEJNCQkoMXUgPDwgMjEpCisKKy8qIEVEWC4gICovCisj ZGVmaW5lIGJpdF9jcHVfU1lTQ0FMTF9TWVNSRVQJKDF1IDw8IDExKQorI2RlZmluZSBiaXRfY3B1 X05YCQkoMXUgPDwgMjApCisjZGVmaW5lIGJpdF9jcHVfUEFHRTFHQgkJKDF1IDw8IDI2KQorI2Rl ZmluZSBiaXRfY3B1X1JEVFNDUAkJKDF1IDw8IDI3KQorI2RlZmluZSBiaXRfY3B1X0xNCQkoMXUg PDwgMjkpCisKKy8qIENQVUlEX0lOREVYX0RfRUNYXzEuICAqLworCisvKiBFQVguICAqLworI2Rl ZmluZSBiaXRfY3B1X1hTQVZFT1BUCSgxdSA8PCAwKQorI2RlZmluZSBiaXRfY3B1X1hTQVZFQwkJ KDF1IDw8IDEpCisjZGVmaW5lIGJpdF9jcHVfWEdFVEJWX0VDWF8xCSgxdSA8PCAyKQorI2RlZmlu ZSBiaXRfY3B1X1hTQVZFUwkJKDF1IDw8IDMpCisjZGVmaW5lIGJpdF9jcHVfWEZECQkoMXUgPDwg NCkKKworLyogQ1BVSURfSU5ERVhfODAwMDAwMDcuICAqLworCisvKiBFRFguICAqLworI2RlZmlu ZSBiaXRfY3B1X0lOVkFSSUFOVF9UU0MJKDF1IDw8IDgpCisKKy8qIENQVUlEX0lOREVYXzgwMDAw MDA4LiAgKi8KKworLyogRUJYLiAgKi8KKyNkZWZpbmUgYml0X2NwdV9XQk5PSU5WRAkoMXUgPDwg OSkKKworLyogQ1BVSURfSU5ERVhfN19FQ1hfMS4gICovCisKKy8qIEVBWC4gICovCisjZGVmaW5l IGJpdF9jcHVfQVZYX1ZOTkkJKDF1IDw8IDQpCisjZGVmaW5lIGJpdF9jcHVfQVZYNTEyX0JGMTYJ KDF1IDw8IDUpCisjZGVmaW5lIGJpdF9jcHVfRlpMUk0JCSgxdSA8PCAxMCkKKyNkZWZpbmUgYml0 X2NwdV9GU1JTCQkoMXUgPDwgMTEpCisjZGVmaW5lIGJpdF9jcHVfRlNSQ1MJCSgxdSA8PCAxMikK KyNkZWZpbmUgYml0X2NwdV9IUkVTRVQJCSgxdSA8PCAyMikKKyNkZWZpbmUgYml0X2NwdV9MQU0J CSgxdSA8PCAyNikKKworLyogQ1BVSURfSU5ERVhfMTkuICAqLworCisvKiBFQlguICAqLworI2Rl ZmluZSBiaXRfY3B1X0FFU0tMRQkJKDF1IDw8IDApCisjZGVmaW5lIGJpdF9jcHVfV0lERV9LTAkJ KDF1IDw8IDIpCisKKy8qIENQVUlEX0lOREVYXzEuICAqLworCisvKiBFQ1guICAqLworI2RlZmlu ZSBpbmRleF9jcHVfU1NFMwkJQ1BVSURfSU5ERVhfMQorI2RlZmluZSBpbmRleF9jcHVfUENMTVVM UURRCUNQVUlEX0lOREVYXzEKKyNkZWZpbmUgaW5kZXhfY3B1X0RURVM2NAlDUFVJRF9JTkRFWF8x CisjZGVmaW5lIGluZGV4X2NwdV9NT05JVE9SCUNQVUlEX0lOREVYXzEKKyNkZWZpbmUgaW5kZXhf Y3B1X0RTX0NQTAlDUFVJRF9JTkRFWF8xCisjZGVmaW5lIGluZGV4X2NwdV9WTVgJCUNQVUlEX0lO REVYXzEKKyNkZWZpbmUgaW5kZXhfY3B1X1NNWAkJQ1BVSURfSU5ERVhfMQorI2RlZmluZSBpbmRl eF9jcHVfRUlTVAkJQ1BVSURfSU5ERVhfMQorI2RlZmluZSBpbmRleF9jcHVfVE0yCQlDUFVJRF9J TkRFWF8xCisjZGVmaW5lIGluZGV4X2NwdV9TU1NFMwkJQ1BVSURfSU5ERVhfMQorI2RlZmluZSBp bmRleF9jcHVfQ05YVF9JRAlDUFVJRF9JTkRFWF8xCisjZGVmaW5lIGluZGV4X2NwdV9TREJHCQlD UFVJRF9JTkRFWF8xCisjZGVmaW5lIGluZGV4X2NwdV9GTUEJCUNQVUlEX0lOREVYXzEKKyNkZWZp bmUgaW5kZXhfY3B1X0NNUFhDSEcxNkIJQ1BVSURfSU5ERVhfMQorI2RlZmluZSBpbmRleF9jcHVf WFRQUlVQRENUUkwJQ1BVSURfSU5ERVhfMQorI2RlZmluZSBpbmRleF9jcHVfUERDTQkJQ1BVSURf SU5ERVhfMQorI2RlZmluZSBpbmRleF9jcHVfSU5ERVhfMV9FQ1hfMTYgQ1BVSURfSU5ERVhfMQor I2RlZmluZSBpbmRleF9jcHVfUENJRAkJQ1BVSURfSU5ERVhfMQorI2RlZmluZSBpbmRleF9jcHVf RENBCQlDUFVJRF9JTkRFWF8xCisjZGVmaW5lIGluZGV4X2NwdV9TU0U0XzEJQ1BVSURfSU5ERVhf MQorI2RlZmluZSBpbmRleF9jcHVfU1NFNF8yCUNQVUlEX0lOREVYXzEKKyNkZWZpbmUgaW5kZXhf Y3B1X1gyQVBJQwlDUFVJRF9JTkRFWF8xCisjZGVmaW5lIGluZGV4X2NwdV9NT1ZCRQkJQ1BVSURf SU5ERVhfMQorI2RlZmluZSBpbmRleF9jcHVfUE9QQ05UCUNQVUlEX0lOREVYXzEKKyNkZWZpbmUg aW5kZXhfY3B1X1RTQ19ERUFETElORQlDUFVJRF9JTkRFWF8xCisjZGVmaW5lIGluZGV4X2NwdV9B RVMJCUNQVUlEX0lOREVYXzEKKyNkZWZpbmUgaW5kZXhfY3B1X1hTQVZFCQlDUFVJRF9JTkRFWF8x CisjZGVmaW5lIGluZGV4X2NwdV9PU1hTQVZFCUNQVUlEX0lOREVYXzEKKyNkZWZpbmUgaW5kZXhf Y3B1X0FWWAkJQ1BVSURfSU5ERVhfMQorI2RlZmluZSBpbmRleF9jcHVfRjE2QwkJQ1BVSURfSU5E RVhfMQorI2RlZmluZSBpbmRleF9jcHVfUkRSQU5ECUNQVUlEX0lOREVYXzEKKyNkZWZpbmUgaW5k ZXhfY3B1X0lOREVYXzFfRUNYXzMxIENQVUlEX0lOREVYXzEKKworLyogRUNYLiAgKi8KKyNkZWZp bmUgaW5kZXhfY3B1X0ZQVQkJQ1BVSURfSU5ERVhfMQorI2RlZmluZSBpbmRleF9jcHVfVk1FCQlD UFVJRF9JTkRFWF8xCisjZGVmaW5lIGluZGV4X2NwdV9ERQkJQ1BVSURfSU5ERVhfMQorI2RlZmlu ZSBpbmRleF9jcHVfUFNFCQlDUFVJRF9JTkRFWF8xCisjZGVmaW5lIGluZGV4X2NwdV9UU0MJCUNQ VUlEX0lOREVYXzEKKyNkZWZpbmUgaW5kZXhfY3B1X01TUgkJQ1BVSURfSU5ERVhfMQorI2RlZmlu ZSBpbmRleF9jcHVfUEFFCQlDUFVJRF9JTkRFWF8xCisjZGVmaW5lIGluZGV4X2NwdV9NQ0UJCUNQ VUlEX0lOREVYXzEKKyNkZWZpbmUgaW5kZXhfY3B1X0NYOAkJQ1BVSURfSU5ERVhfMQorI2RlZmlu ZSBpbmRleF9jcHVfQVBJQwkJQ1BVSURfSU5ERVhfMQorI2RlZmluZSBpbmRleF9jcHVfSU5ERVhf MV9FRFhfMTAgQ1BVSURfSU5ERVhfMQorI2RlZmluZSBpbmRleF9jcHVfU0VQCQlDUFVJRF9JTkRF WF8xCisjZGVmaW5lIGluZGV4X2NwdV9NVFJSCQlDUFVJRF9JTkRFWF8xCisjZGVmaW5lIGluZGV4 X2NwdV9QR0UJCUNQVUlEX0lOREVYXzEKKyNkZWZpbmUgaW5kZXhfY3B1X01DQQkJQ1BVSURfSU5E RVhfMQorI2RlZmluZSBpbmRleF9jcHVfQ01PVgkJQ1BVSURfSU5ERVhfMQorI2RlZmluZSBpbmRl eF9jcHVfUEFUCQlDUFVJRF9JTkRFWF8xCisjZGVmaW5lIGluZGV4X2NwdV9QU0VfMzYJQ1BVSURf SU5ERVhfMQorI2RlZmluZSBpbmRleF9jcHVfUFNOCQlDUFVJRF9JTkRFWF8xCisjZGVmaW5lIGlu ZGV4X2NwdV9DTEZTSAkJQ1BVSURfSU5ERVhfMQorI2RlZmluZSBpbmRleF9jcHVfSU5ERVhfMV9F RFhfMjAgQ1BVSURfSU5ERVhfMQorI2RlZmluZSBpbmRleF9jcHVfRFMJCUNQVUlEX0lOREVYXzEK KyNkZWZpbmUgaW5kZXhfY3B1X0FDUEkJCUNQVUlEX0lOREVYXzEKKyNkZWZpbmUgaW5kZXhfY3B1 X01NWAkJQ1BVSURfSU5ERVhfMQorI2RlZmluZSBpbmRleF9jcHVfRlhTUgkJQ1BVSURfSU5ERVhf MQorI2RlZmluZSBpbmRleF9jcHVfU1NFCQlDUFVJRF9JTkRFWF8xCisjZGVmaW5lIGluZGV4X2Nw dV9TU0UyCQlDUFVJRF9JTkRFWF8xCisjZGVmaW5lIGluZGV4X2NwdV9TUwkJQ1BVSURfSU5ERVhf MQorI2RlZmluZSBpbmRleF9jcHVfSFRUCQlDUFVJRF9JTkRFWF8xCisjZGVmaW5lIGluZGV4X2Nw dV9UTQkJQ1BVSURfSU5ERVhfMQorI2RlZmluZSBpbmRleF9jcHVfSU5ERVhfMV9FRFhfMzAgQ1BV SURfSU5ERVhfMQorI2RlZmluZSBpbmRleF9jcHVfUEJFCQlDUFVJRF9JTkRFWF8xCisKKy8qIENQ VUlEX0lOREVYXzcuICAqLworCisvKiBFQlguICAqLworI2RlZmluZSBpbmRleF9jcHVfRlNHU0JB U0UJQ1BVSURfSU5ERVhfNworI2RlZmluZSBpbmRleF9jcHVfVFNDX0FESlVTVAlDUFVJRF9JTkRF WF83CisjZGVmaW5lIGluZGV4X2NwdV9TR1gJCUNQVUlEX0lOREVYXzcKKyNkZWZpbmUgaW5kZXhf Y3B1X0JNSTEJCUNQVUlEX0lOREVYXzcKKyNkZWZpbmUgaW5kZXhfY3B1X0hMRQkJQ1BVSURfSU5E RVhfNworI2RlZmluZSBpbmRleF9jcHVfQVZYMgkJQ1BVSURfSU5ERVhfNworI2RlZmluZSBpbmRl eF9jcHVfSU5ERVhfN19FQlhfNglDUFVJRF9JTkRFWF83CisjZGVmaW5lIGluZGV4X2NwdV9TTUVQ CQlDUFVJRF9JTkRFWF83CisjZGVmaW5lIGluZGV4X2NwdV9CTUkyCQlDUFVJRF9JTkRFWF83Cisj ZGVmaW5lIGluZGV4X2NwdV9FUk1TCQlDUFVJRF9JTkRFWF83CisjZGVmaW5lIGluZGV4X2NwdV9J TlZQQ0lECUNQVUlEX0lOREVYXzcKKyNkZWZpbmUgaW5kZXhfY3B1X1JUTQkJQ1BVSURfSU5ERVhf NworI2RlZmluZSBpbmRleF9jcHVfUkRUX00JCUNQVUlEX0lOREVYXzcKKyNkZWZpbmUgaW5kZXhf Y3B1X0RFUFJfRlBVX0NTX0RTIENQVUlEX0lOREVYXzcKKyNkZWZpbmUgaW5kZXhfY3B1X01QWAkJ Q1BVSURfSU5ERVhfNworI2RlZmluZSBpbmRleF9jcHVfUkRUX0EJCUNQVUlEX0lOREVYXzcKKyNk ZWZpbmUgaW5kZXhfY3B1X0FWWDUxMkYJQ1BVSURfSU5ERVhfNworI2RlZmluZSBpbmRleF9jcHVf QVZYNTEyRFEJQ1BVSURfSU5ERVhfNworI2RlZmluZSBpbmRleF9jcHVfUkRTRUVECUNQVUlEX0lO REVYXzcKKyNkZWZpbmUgaW5kZXhfY3B1X0FEWAkJQ1BVSURfSU5ERVhfNworI2RlZmluZSBpbmRl eF9jcHVfU01BUAkJQ1BVSURfSU5ERVhfNworI2RlZmluZSBpbmRleF9jcHVfQVZYNTEyX0lGTUEJ Q1BVSURfSU5ERVhfNworI2RlZmluZSBpbmRleF9jcHVfSU5ERVhfN19FQlhfMjIgQ1BVSURfSU5E RVhfNworI2RlZmluZSBpbmRleF9jcHVfQ0xGTFVTSE9QVAlDUFVJRF9JTkRFWF83CisjZGVmaW5l IGluZGV4X2NwdV9DTFdCCQlDUFVJRF9JTkRFWF83CisjZGVmaW5lIGluZGV4X2NwdV9UUkFDRQkJ Q1BVSURfSU5ERVhfNworI2RlZmluZSBpbmRleF9jcHVfQVZYNTEyUEYJQ1BVSURfSU5ERVhfNwor I2RlZmluZSBpbmRleF9jcHVfQVZYNTEyRVIJQ1BVSURfSU5ERVhfNworI2RlZmluZSBpbmRleF9j cHVfQVZYNTEyQ0QJQ1BVSURfSU5ERVhfNworI2RlZmluZSBpbmRleF9jcHVfU0hBCQlDUFVJRF9J TkRFWF83CisjZGVmaW5lIGluZGV4X2NwdV9BVlg1MTJCVwlDUFVJRF9JTkRFWF83CisjZGVmaW5l IGluZGV4X2NwdV9BVlg1MTJWTAlDUFVJRF9JTkRFWF83CisKKy8qIEVDWC4gICovCisjZGVmaW5l IGluZGV4X2NwdV9QUkVGRVRDSFdUMQlDUFVJRF9JTkRFWF83CisjZGVmaW5lIGluZGV4X2NwdV9B Vlg1MTJfVkJNSQlDUFVJRF9JTkRFWF83CisjZGVmaW5lIGluZGV4X2NwdV9VTUlQCQlDUFVJRF9J TkRFWF83CisjZGVmaW5lIGluZGV4X2NwdV9QS1UJCUNQVUlEX0lOREVYXzcKKyNkZWZpbmUgaW5k ZXhfY3B1X09TUEtFCQlDUFVJRF9JTkRFWF83CisjZGVmaW5lIGluZGV4X2NwdV9XQUlUUEtHCUNQ VUlEX0lOREVYXzcKKyNkZWZpbmUgaW5kZXhfY3B1X0FWWDUxMl9WQk1JMglDUFVJRF9JTkRFWF83 CisjZGVmaW5lIGluZGV4X2NwdV9TSFNUSwkJQ1BVSURfSU5ERVhfNworI2RlZmluZSBpbmRleF9j cHVfR0ZOSQkJQ1BVSURfSU5ERVhfNworI2RlZmluZSBpbmRleF9jcHVfVkFFUwkJQ1BVSURfSU5E RVhfNworI2RlZmluZSBpbmRleF9jcHVfVlBDTE1VTFFEUQlDUFVJRF9JTkRFWF83CisjZGVmaW5l IGluZGV4X2NwdV9BVlg1MTJfVk5OSQlDUFVJRF9JTkRFWF83CisjZGVmaW5lIGluZGV4X2NwdV9B Vlg1MTJfQklUQUxHIENQVUlEX0lOREVYXzcKKyNkZWZpbmUgaW5kZXhfY3B1X0lOREVYXzdfRUNY XzEzIENQVUlEX0lOREVYXzcKKyNkZWZpbmUgaW5kZXhfY3B1X0FWWDUxMl9WUE9QQ05URFEgQ1BV SURfSU5ERVhfNworI2RlZmluZSBpbmRleF9jcHVfSU5ERVhfN19FQ1hfMTUgQ1BVSURfSU5ERVhf NworI2RlZmluZSBpbmRleF9jcHVfSU5ERVhfN19FQ1hfMTYgQ1BVSURfSU5ERVhfNworI2RlZmlu ZSBpbmRleF9jcHVfUkRQSUQJCUNQVUlEX0lOREVYXzcKKyNkZWZpbmUgaW5kZXhfY3B1X0tMCQlD UFVJRF9JTkRFWF83CisjZGVmaW5lIGluZGV4X2NwdV9JTkRFWF83X0VDWF8yNCBDUFVJRF9JTkRF WF83CisjZGVmaW5lIGluZGV4X2NwdV9DTERFTU9URQlDUFVJRF9JTkRFWF83CisjZGVmaW5lIGlu ZGV4X2NwdV9JTkRFWF83X0VDWF8yNiBDUFVJRF9JTkRFWF83CisjZGVmaW5lIGluZGV4X2NwdV9N T1ZESVJJCUNQVUlEX0lOREVYXzcKKyNkZWZpbmUgaW5kZXhfY3B1X01PVkRJUjY0QglDUFVJRF9J TkRFWF83CisjZGVmaW5lIGluZGV4X2NwdV9FTlFDTUQJQ1BVSURfSU5ERVhfNworI2RlZmluZSBp bmRleF9jcHVfU0dYX0xDCUNQVUlEX0lOREVYXzcKKyNkZWZpbmUgaW5kZXhfY3B1X1BLUwkJQ1BV SURfSU5ERVhfNworCisvKiBFRFguICAqLworI2RlZmluZSBpbmRleF9jcHVfSU5ERVhfN19FRFhf MAlDUFVJRF9JTkRFWF83CisjZGVmaW5lIGluZGV4X2NwdV9JTkRFWF83X0VEWF8xCUNQVUlEX0lO REVYXzcKKyNkZWZpbmUgaW5kZXhfY3B1X0FWWDUxMl80Vk5OSVcgQ1BVSURfSU5ERVhfNworI2Rl ZmluZSBpbmRleF9jcHVfQVZYNTEyXzRGTUFQUwlDUFVJRF9JTkRFWF83CisjZGVmaW5lIGluZGV4 X2NwdV9GU1JNCQlDUFVJRF9JTkRFWF83CisjZGVmaW5lIGluZGV4X2NwdV9VSU5UUgkJQ1BVSURf SU5ERVhfNworI2RlZmluZSBpbmRleF9jcHVfSU5ERVhfN19FRFhfNglDUFVJRF9JTkRFWF83Cisj ZGVmaW5lIGluZGV4X2NwdV9JTkRFWF83X0VEWF83CUNQVUlEX0lOREVYXzcKKyNkZWZpbmUgaW5k ZXhfY3B1X0FWWDUxMl9WUDJJTlRFUlNFQ1QgQ1BVSURfSU5ERVhfNworI2RlZmluZSBpbmRleF9j cHVfSU5ERVhfN19FRFhfOQlDUFVJRF9JTkRFWF83CisjZGVmaW5lIGluZGV4X2NwdV9NRF9DTEVB UglDUFVJRF9JTkRFWF83CisjZGVmaW5lIGluZGV4X2NwdV9JTkRFWF83X0VEWF8xMSBDUFVJRF9J TkRFWF83CisjZGVmaW5lIGluZGV4X2NwdV9JTkRFWF83X0VEWF8xMiBDUFVJRF9JTkRFWF83Cisj ZGVmaW5lIGluZGV4X2NwdV9JTkRFWF83X0VEWF8xMyBDUFVJRF9JTkRFWF83CisjZGVmaW5lIGlu ZGV4X2NwdV9TRVJJQUxJWkUJQ1BVSURfSU5ERVhfNworI2RlZmluZSBpbmRleF9jcHVfSFlCUklE CUNQVUlEX0lOREVYXzcKKyNkZWZpbmUgaW5kZXhfY3B1X1RTWExEVFJLCUNQVUlEX0lOREVYXzcK KyNkZWZpbmUgaW5kZXhfY3B1X0lOREVYXzdfRURYXzE3IENQVUlEX0lOREVYXzcKKyNkZWZpbmUg aW5kZXhfY3B1X1BDT05GSUcJQ1BVSURfSU5ERVhfNworI2RlZmluZSBpbmRleF9jcHVfSU5ERVhf N19FRFhfMTkgQ1BVSURfSU5ERVhfNworI2RlZmluZSBpbmRleF9jcHVfSUJUCQlDUFVJRF9JTkRF WF83CisjZGVmaW5lIGluZGV4X2NwdV9JTkRFWF83X0VEWF8yMSBDUFVJRF9JTkRFWF83CisjZGVm aW5lIGluZGV4X2NwdV9BTVhfQkYxNglDUFVJRF9JTkRFWF83CisjZGVmaW5lIGluZGV4X2NwdV9B Vlg1MTJfRlAxNglDUFVJRF9JTkRFWF83CisjZGVmaW5lIGluZGV4X2NwdV9BTVhfVElMRQlDUFVJ RF9JTkRFWF83CisjZGVmaW5lIGluZGV4X2NwdV9BTVhfSU5UOAlDUFVJRF9JTkRFWF83CisjZGVm aW5lIGluZGV4X2NwdV9JQlJTX0lCUEIJQ1BVSURfSU5ERVhfNworI2RlZmluZSBpbmRleF9jcHVf U1RJQlAJCUNQVUlEX0lOREVYXzcKKyNkZWZpbmUgaW5kZXhfY3B1X0wxRF9GTFVTSAlDUFVJRF9J TkRFWF83CisjZGVmaW5lIGluZGV4X2NwdV9BUkNIX0NBUEFCSUxJVElFUyBDUFVJRF9JTkRFWF83 CisjZGVmaW5lIGluZGV4X2NwdV9DT1JFX0NBUEFCSUxJVElFUyBDUFVJRF9JTkRFWF83CisjZGVm aW5lIGluZGV4X2NwdV9TU0JECQlDUFVJRF9JTkRFWF83CisKKy8qIENQVUlEX0lOREVYXzgwMDAw MDAxLiAgKi8KKworLyogRUNYLiAgKi8KKyNkZWZpbmUgaW5kZXhfY3B1X0xBSEY2NF9TQUhGNjQg Q1BVSURfSU5ERVhfODAwMDAwMDEKKyNkZWZpbmUgaW5kZXhfY3B1X1NWTQkJQ1BVSURfSU5ERVhf ODAwMDAwMDEKKyNkZWZpbmUgaW5kZXhfY3B1X0xaQ05UCQlDUFVJRF9JTkRFWF84MDAwMDAwMQor I2RlZmluZSBpbmRleF9jcHVfU1NFNEEJCUNQVUlEX0lOREVYXzgwMDAwMDAxCisjZGVmaW5lIGlu ZGV4X2NwdV9QUkVGRVRDSFcJQ1BVSURfSU5ERVhfODAwMDAwMDEKKyNkZWZpbmUgaW5kZXhfY3B1 X1hPUAkJQ1BVSURfSU5ERVhfODAwMDAwMDEKKyNkZWZpbmUgaW5kZXhfY3B1X0xXUAkJQ1BVSURf SU5ERVhfODAwMDAwMDEKKyNkZWZpbmUgaW5kZXhfY3B1X0ZNQTQJCUNQVUlEX0lOREVYXzgwMDAw MDAxCisjZGVmaW5lIGluZGV4X2NwdV9UQk0JCUNQVUlEX0lOREVYXzgwMDAwMDAxCisKKy8qIEVE WC4gICovCisjZGVmaW5lIGluZGV4X2NwdV9TWVNDQUxMX1NZU1JFVCBDUFVJRF9JTkRFWF84MDAw MDAwMQorI2RlZmluZSBpbmRleF9jcHVfTlgJCUNQVUlEX0lOREVYXzgwMDAwMDAxCisjZGVmaW5l IGluZGV4X2NwdV9QQUdFMUdCCUNQVUlEX0lOREVYXzgwMDAwMDAxCisjZGVmaW5lIGluZGV4X2Nw dV9SRFRTQ1AJQ1BVSURfSU5ERVhfODAwMDAwMDEKKyNkZWZpbmUgaW5kZXhfY3B1X0xNCQlDUFVJ RF9JTkRFWF84MDAwMDAwMQorCisvKiBDUFVJRF9JTkRFWF9EX0VDWF8xLiAgKi8KKworLyogRUFY LiAgKi8KKyNkZWZpbmUgaW5kZXhfY3B1X1hTQVZFT1BUCUNQVUlEX0lOREVYX0RfRUNYXzEKKyNk ZWZpbmUgaW5kZXhfY3B1X1hTQVZFQwlDUFVJRF9JTkRFWF9EX0VDWF8xCisjZGVmaW5lIGluZGV4 X2NwdV9YR0VUQlZfRUNYXzEJQ1BVSURfSU5ERVhfRF9FQ1hfMQorI2RlZmluZSBpbmRleF9jcHVf WFNBVkVTCUNQVUlEX0lOREVYX0RfRUNYXzEKKyNkZWZpbmUgaW5kZXhfY3B1X1hGRAkJQ1BVSURf SU5ERVhfRF9FQ1hfMQorCisvKiBDUFVJRF9JTkRFWF84MDAwMDAwNy4gICovCisKKy8qIEVEWC4g ICovCisjZGVmaW5lIGluZGV4X2NwdV9JTlZBUklBTlRfVFNDCUNQVUlEX0lOREVYXzgwMDAwMDA3 CisKKy8qIENQVUlEX0lOREVYXzgwMDAwMDA4LiAgKi8KKworLyogRUJYLiAgKi8KKyNkZWZpbmUg aW5kZXhfY3B1X1dCTk9JTlZECUNQVUlEX0lOREVYXzgwMDAwMDA4CisKKy8qIENQVUlEX0lOREVY XzdfRUNYXzEuICAqLworCisvKiBFQVguICAqLworI2RlZmluZSBpbmRleF9jcHVfQVZYX1ZOTkkJ Q1BVSURfSU5ERVhfN19FQ1hfMQorI2RlZmluZSBpbmRleF9jcHVfQVZYNTEyX0JGMTYJQ1BVSURf SU5ERVhfN19FQ1hfMQorI2RlZmluZSBpbmRleF9jcHVfRlpMUk0JCUNQVUlEX0lOREVYXzdfRUNY XzEKKyNkZWZpbmUgaW5kZXhfY3B1X0ZTUlMJCUNQVUlEX0lOREVYXzdfRUNYXzEKKyNkZWZpbmUg aW5kZXhfY3B1X0ZTUkNTCQlDUFVJRF9JTkRFWF83X0VDWF8xCisjZGVmaW5lIGluZGV4X2NwdV9I UkVTRVQJQ1BVSURfSU5ERVhfN19FQ1hfMQorI2RlZmluZSBpbmRleF9jcHVfTEFNCQlDUFVJRF9J TkRFWF83X0VDWF8xCisKKy8qIENQVUlEX0lOREVYXzE5LiAgKi8KKworLyogRUJYLiAgKi8KKyNk ZWZpbmUgaW5kZXhfY3B1X0FFU0tMRQlDUFVJRF9JTkRFWF8xOQorI2RlZmluZSBpbmRleF9jcHVf V0lERV9LTAlDUFVJRF9JTkRFWF8xOQorCisvKiBDUFVJRF9JTkRFWF8xLiAgKi8KKworLyogRUNY LiAgKi8KKyNkZWZpbmUgcmVnX1NTRTMJCWVjeAorI2RlZmluZSByZWdfUENMTVVMUURRCQllY3gK KyNkZWZpbmUgcmVnX0RURVM2NAkJZWN4CisjZGVmaW5lIHJlZ19NT05JVE9SCQllY3gKKyNkZWZp bmUgcmVnX0RTX0NQTAkJZWN4CisjZGVmaW5lIHJlZ19WTVgJCQllY3gKKyNkZWZpbmUgcmVnX1NN WAkJCWVjeAorI2RlZmluZSByZWdfRUlTVAkJZWN4CisjZGVmaW5lIHJlZ19UTTIJCQllY3gKKyNk ZWZpbmUgcmVnX1NTU0UzCQllY3gKKyNkZWZpbmUgcmVnX0NOWFRfSUQJCWVjeAorI2RlZmluZSBy ZWdfU0RCRwkJZWN4CisjZGVmaW5lIHJlZ19GTUEJCQllY3gKKyNkZWZpbmUgcmVnX0NNUFhDSEcx NkIJCWVjeAorI2RlZmluZSByZWdfWFRQUlVQRENUUkwJCWVjeAorI2RlZmluZSByZWdfUERDTQkJ ZWN4CisjZGVmaW5lIHJlZ19JTkRFWF8xX0VDWF8xNgllY3gKKyNkZWZpbmUgcmVnX1BDSUQJCWVj eAorI2RlZmluZSByZWdfRENBCQkJZWN4CisjZGVmaW5lIHJlZ19TU0U0XzEJCWVjeAorI2RlZmlu ZSByZWdfU1NFNF8yCQllY3gKKyNkZWZpbmUgcmVnX1gyQVBJQwkJZWN4CisjZGVmaW5lIHJlZ19N T1ZCRQkJZWN4CisjZGVmaW5lIHJlZ19QT1BDTlQJCWVjeAorI2RlZmluZSByZWdfVFNDX0RFQURM SU5FCWVjeAorI2RlZmluZSByZWdfQUVTCQkJZWN4CisjZGVmaW5lIHJlZ19YU0FWRQkJZWN4Cisj ZGVmaW5lIHJlZ19PU1hTQVZFCQllY3gKKyNkZWZpbmUgcmVnX0FWWAkJCWVjeAorI2RlZmluZSBy ZWdfRjE2QwkJZWN4CisjZGVmaW5lIHJlZ19SRFJBTkQJCWVjeAorI2RlZmluZSByZWdfSU5ERVhf MV9FQ1hfMzEJZWN4CisKKy8qIEVEWC4gICovCisjZGVmaW5lIHJlZ19GUFUJCQllZHgKKyNkZWZp bmUgcmVnX1ZNRQkJCWVkeAorI2RlZmluZSByZWdfREUJCQllZHgKKyNkZWZpbmUgcmVnX1BTRQkJ CWVkeAorI2RlZmluZSByZWdfVFNDCQkJZWR4CisjZGVmaW5lIHJlZ19NU1IJCQllZHgKKyNkZWZp bmUgcmVnX1BBRQkJCWVkeAorI2RlZmluZSByZWdfTUNFCQkJZWR4CisjZGVmaW5lIHJlZ19DWDgJ CQllZHgKKyNkZWZpbmUgcmVnX0FQSUMJCWVkeAorI2RlZmluZSByZWdfSU5ERVhfMV9FRFhfMTAJ ZWR4CisjZGVmaW5lIHJlZ19TRVAJCQllZHgKKyNkZWZpbmUgcmVnX01UUlIJCWVkeAorI2RlZmlu ZSByZWdfUEdFCQkJZWR4CisjZGVmaW5lIHJlZ19NQ0EJCQllZHgKKyNkZWZpbmUgcmVnX0NNT1YJ CWVkeAorI2RlZmluZSByZWdfUEFUCQkJZWR4CisjZGVmaW5lIHJlZ19QU0VfMzYJCWVkeAorI2Rl ZmluZSByZWdfUFNOCQkJZWR4CisjZGVmaW5lIHJlZ19DTEZTSAkJZWR4CisjZGVmaW5lIHJlZ19J TkRFWF8xX0VEWF8yMAllZHgKKyNkZWZpbmUgcmVnX0RTCQkJZWR4CisjZGVmaW5lIHJlZ19BQ1BJ CQllZHgKKyNkZWZpbmUgcmVnX01NWAkJCWVkeAorI2RlZmluZSByZWdfRlhTUgkJZWR4CisjZGVm aW5lIHJlZ19TU0UJCQllZHgKKyNkZWZpbmUgcmVnX1NTRTIJCWVkeAorI2RlZmluZSByZWdfU1MJ CQllZHgKKyNkZWZpbmUgcmVnX0hUVAkJCWVkeAorI2RlZmluZSByZWdfVE0JCQllZHgKKyNkZWZp bmUgcmVnX0lOREVYXzFfRURYXzMwCWVkeAorI2RlZmluZSByZWdfUEJFCQkJZWR4CisKKy8qIENQ VUlEX0lOREVYXzcuICAqLworCisvKiBFQlguICAqLworI2RlZmluZSByZWdfRlNHU0JBU0UJCWVi eAorI2RlZmluZSByZWdfVFNDX0FESlVTVAkJZWJ4CisjZGVmaW5lIHJlZ19TR1gJCQllYngKKyNk ZWZpbmUgcmVnX0JNSTEJCWVieAorI2RlZmluZSByZWdfSExFCQkJZWJ4CisjZGVmaW5lIHJlZ19C TUkyCQllYngKKyNkZWZpbmUgcmVnX0FWWDIJCWVieAorI2RlZmluZSByZWdfSU5ERVhfN19FQlhf NgllYngKKyNkZWZpbmUgcmVnX1NNRVAJCWVieAorI2RlZmluZSByZWdfRVJNUwkJZWJ4CisjZGVm aW5lIHJlZ19JTlZQQ0lECQllYngKKyNkZWZpbmUgcmVnX1JUTQkJCWVieAorI2RlZmluZSByZWdf UkRUX00JCWVieAorI2RlZmluZSByZWdfREVQUl9GUFVfQ1NfRFMJZWJ4CisjZGVmaW5lIHJlZ19N UFgJCQllYngKKyNkZWZpbmUgcmVnX1JEVF9BCQllYngKKyNkZWZpbmUgcmVnX0FWWDUxMkYJCWVi eAorI2RlZmluZSByZWdfQVZYNTEyRFEJCWVieAorI2RlZmluZSByZWdfUkRTRUVECQllYngKKyNk ZWZpbmUgcmVnX0FEWAkJCWVieAorI2RlZmluZSByZWdfU01BUAkJZWJ4CisjZGVmaW5lIHJlZ19B Vlg1MTJfSUZNQQkJZWJ4CisjZGVmaW5lIHJlZ19JTkRFWF83X0VCWF8yMgllYngKKyNkZWZpbmUg cmVnX0NMRkxVU0hPUFQJCWVieAorI2RlZmluZSByZWdfQ0xXQgkJZWJ4CisjZGVmaW5lIHJlZ19U UkFDRQkJZWJ4CisjZGVmaW5lIHJlZ19BVlg1MTJQRgkJZWJ4CisjZGVmaW5lIHJlZ19BVlg1MTJF UgkJZWJ4CisjZGVmaW5lIHJlZ19BVlg1MTJDRAkJZWJ4CisjZGVmaW5lIHJlZ19TSEEJCQllYngK KyNkZWZpbmUgcmVnX0FWWDUxMkJXCQllYngKKyNkZWZpbmUgcmVnX0FWWDUxMlZMCQllYngKKwor LyogRUNYLiAgKi8KKyNkZWZpbmUgcmVnX1BSRUZFVENIV1QxCQllY3gKKyNkZWZpbmUgcmVnX0FW WDUxMl9WQk1JCQllY3gKKyNkZWZpbmUgcmVnX1VNSVAJCWVjeAorI2RlZmluZSByZWdfUEtVCQkJ ZWN4CisjZGVmaW5lIHJlZ19PU1BLRQkJZWN4CisjZGVmaW5lIHJlZ19XQUlUUEtHCQllY3gKKyNk ZWZpbmUgcmVnX0FWWDUxMl9WQk1JMgllY3gKKyNkZWZpbmUgcmVnX1NIU1RLCQllY3gKKyNkZWZp bmUgcmVnX0dGTkkJCWVjeAorI2RlZmluZSByZWdfVkFFUwkJZWN4CisjZGVmaW5lIHJlZ19WUENM TVVMUURRCQllY3gKKyNkZWZpbmUgcmVnX0FWWDUxMl9WTk5JCQllY3gKKyNkZWZpbmUgcmVnX0FW WDUxMl9CSVRBTEcJZWN4CisjZGVmaW5lIHJlZ19JTkRFWF83X0VDWF8xMwllY3gKKyNkZWZpbmUg cmVnX0FWWDUxMl9WUE9QQ05URFEJZWN4CisjZGVmaW5lIHJlZ19JTkRFWF83X0VDWF8xNQllY3gK KyNkZWZpbmUgcmVnX0lOREVYXzdfRUNYXzE2CWVjeAorI2RlZmluZSByZWdfUkRQSUQJCWVjeAor I2RlZmluZSByZWdfS0wJCQllY3gKKyNkZWZpbmUgcmVnX0lOREVYXzdfRUNYXzI0CWVjeAorI2Rl ZmluZSByZWdfQ0xERU1PVEUJCWVjeAorI2RlZmluZSByZWdfSU5ERVhfN19FQ1hfMjYJZWN4Cisj ZGVmaW5lIHJlZ19NT1ZESVJJCQllY3gKKyNkZWZpbmUgcmVnX01PVkRJUjY0QgkJZWN4CisjZGVm aW5lIHJlZ19FTlFDTUQJCWVjeAorI2RlZmluZSByZWdfU0dYX0xDCQllY3gKKyNkZWZpbmUgcmVn X1BLUwkJCWVjeAorCisvKiBFRFguICAqLworI2RlZmluZSByZWdfSU5ERVhfN19FRFhfMAllZHgK KyNkZWZpbmUgcmVnX0lOREVYXzdfRURYXzEJZWR4CisjZGVmaW5lIHJlZ19BVlg1MTJfNFZOTklX CWVkeAorI2RlZmluZSByZWdfQVZYNTEyXzRGTUFQUwllZHgKKyNkZWZpbmUgcmVnX0ZTUk0JCWVk eAorI2RlZmluZSByZWdfVUlOVFIJCWVkeAorI2RlZmluZSByZWdfSU5ERVhfN19FRFhfNgllZHgK KyNkZWZpbmUgcmVnX0lOREVYXzdfRURYXzcJZWR4CisjZGVmaW5lIHJlZ19BVlg1MTJfVlAySU5U RVJTRUNUCWVkeAorI2RlZmluZSByZWdfSU5ERVhfN19FRFhfOQllZHgKKyNkZWZpbmUgcmVnX01E X0NMRUFSCQllZHgKKyNkZWZpbmUgcmVnX0lOREVYXzdfRURYXzExCWVkeAorI2RlZmluZSByZWdf SU5ERVhfN19FRFhfMTIJZWR4CisjZGVmaW5lIHJlZ19JTkRFWF83X0VEWF8xMwllZHgKKyNkZWZp bmUgcmVnX1NFUklBTElaRQkJZWR4CisjZGVmaW5lIHJlZ19IWUJSSUQJCWVkeAorI2RlZmluZSBy ZWdfVFNYTERUUksJCWVkeAorI2RlZmluZSByZWdfSU5ERVhfN19FRFhfMTcJZWR4CisjZGVmaW5l IHJlZ19QQ09ORklHCQllZHgKKyNkZWZpbmUgcmVnX0lOREVYXzdfRURYXzE5CWVkeAorI2RlZmlu ZSByZWdfSUJUCQkJZWR4CisjZGVmaW5lIHJlZ19JTkRFWF83X0VEWF8yMQllZHgKKyNkZWZpbmUg cmVnX0FNWF9CRjE2CQllZHgKKyNkZWZpbmUgcmVnX0FWWDUxMl9GUDE2CQllZHgKKyNkZWZpbmUg cmVnX0FNWF9USUxFCQllZHgKKyNkZWZpbmUgcmVnX0FNWF9JTlQ4CQllZHgKKyNkZWZpbmUgcmVn X0lCUlNfSUJQQgkJZWR4CisjZGVmaW5lIHJlZ19TVElCUAkJZWR4CisjZGVmaW5lIHJlZ19MMURf RkxVU0gJCWVkeAorI2RlZmluZSByZWdfQVJDSF9DQVBBQklMSVRJRVMJZWR4CisjZGVmaW5lIHJl Z19DT1JFX0NBUEFCSUxJVElFUwllZHgKKyNkZWZpbmUgcmVnX1NTQkQJCWVkeAorCisvKiBDUFVJ RF9JTkRFWF84MDAwMDAwMS4gICovCisKKy8qIEVDWC4gICovCisjZGVmaW5lIHJlZ19MQUhGNjRf U0FIRjY0CWVjeAorI2RlZmluZSByZWdfU1ZNCQkJZWN4CisjZGVmaW5lIHJlZ19MWkNOVAkJZWN4 CisjZGVmaW5lIHJlZ19TU0U0QQkJZWN4CisjZGVmaW5lIHJlZ19QUkVGRVRDSFcJCWVjeAorI2Rl ZmluZSByZWdfWE9QCQkJZWN4CisjZGVmaW5lIHJlZ19MV1AJCQllY3gKKyNkZWZpbmUgcmVnX0ZN QTQJCWVjeAorI2RlZmluZSByZWdfVEJNCQkJZWN4CisKKy8qIEVEWC4gICovCisjZGVmaW5lIHJl Z19TWVNDQUxMX1NZU1JFVAllZHgKKyNkZWZpbmUgcmVnX05YCQkJZWR4CisjZGVmaW5lIHJlZ19Q QUdFMUdCCQllZHgKKyNkZWZpbmUgcmVnX1JEVFNDUAkJZWR4CisjZGVmaW5lIHJlZ19MTQkJCWVk eAorCisvKiBDUFVJRF9JTkRFWF9EX0VDWF8xLiAgKi8KKworLyogRUFYLiAgKi8KKyNkZWZpbmUg cmVnX1hTQVZFT1BUCQllYXgKKyNkZWZpbmUgcmVnX1hTQVZFQwkJZWF4CisjZGVmaW5lIHJlZ19Y R0VUQlZfRUNYXzEJZWF4CisjZGVmaW5lIHJlZ19YU0FWRVMJCWVheAorI2RlZmluZSByZWdfWEZE CQkJZWF4CisKKy8qIENQVUlEX0lOREVYXzgwMDAwMDA3LiAgKi8KKworLyogRURYLiAgKi8KKyNk ZWZpbmUgcmVnX0lOVkFSSUFOVF9UU0MJZWR4CisKKy8qIENQVUlEX0lOREVYXzgwMDAwMDA4LiAg Ki8KKworLyogRUJYLiAgKi8KKyNkZWZpbmUgcmVnX1dCTk9JTlZECQllYngKKworLyogQ1BVSURf SU5ERVhfN19FQ1hfMS4gICovCisKKy8qIEVBWC4gICovCisjZGVmaW5lIHJlZ19BVlhfVk5OSQkJ ZWF4CisjZGVmaW5lIHJlZ19BVlg1MTJfQkYxNgkJZWF4CisjZGVmaW5lIHJlZ19GWkxSTQkJZWF4 CisjZGVmaW5lIHJlZ19GU1JTCQllYXgKKyNkZWZpbmUgcmVnX0ZTUkNTCQllYXgKKyNkZWZpbmUg cmVnX0hSRVNFVAkJZWF4CisjZGVmaW5lIHJlZ19MQU0JCQllYXgKKworLyogQ1BVSURfSU5ERVhf MTkuICAqLworCisvKiBFQlguICAqLworI2RlZmluZSByZWdfQUVTS0xFCQllYngKKyNkZWZpbmUg cmVnX1dJREVfS0wJCWVieAorCiAvKiBQUkVGRVJSRURfRkVBVFVSRV9JTkRFWF8xLiAgKi8KICNk ZWZpbmUgYml0X2FyY2hfSTU4NgkJCQkoMXUgPDwgMCkKICNkZWZpbmUgYml0X2FyY2hfSTY4NgkJ CQkoMXUgPDwgMSkKQEAgLTExOCwxMCArODAxLDUwIEBAIGVudW0KICNkZWZpbmUgYml0X1hUSUxF Q0ZHX3N0YXRlCSgxdSA8PCAxNykKICNkZWZpbmUgYml0X1hUSUxFREFUQV9zdGF0ZQkoMXUgPDwg MTgpCiAKK2VudW0gY3B1X2ZlYXR1cmVzX2tpbmQKK3sKKyAgYXJjaF9raW5kX3Vua25vd24gPSAw LAorICBhcmNoX2tpbmRfaW50ZWwsCisgIGFyY2hfa2luZF9hbWQsCisgIGFyY2hfa2luZF96aGFv eGluLAorICBhcmNoX2tpbmRfb3RoZXIKK307CisKK3N0cnVjdCBjcHVfZmVhdHVyZXNfYmFzaWMK K3sKKyAgZW51bSBjcHVfZmVhdHVyZXNfa2luZCBraW5kOworICBpbnQgbWF4X2NwdWlkOworICB1 bnNpZ25lZCBpbnQgZmFtaWx5OworICB1bnNpZ25lZCBpbnQgbW9kZWw7CisgIHVuc2lnbmVkIGlu dCBzdGVwcGluZzsKK307CisKK3N0cnVjdCBjcHVpZF9yZWdpc3RlcnMKK3sKKyAgdW5zaWduZWQg aW50IGVheDsKKyAgdW5zaWduZWQgaW50IGVieDsKKyAgdW5zaWduZWQgaW50IGVjeDsKKyAgdW5z aWduZWQgaW50IGVkeDsKK307CisKK3N0cnVjdCBjcHVpZF9mZWF0dXJlX2ludGVybmFsCit7Cisg IHVuaW9uCisgICAgeworICAgICAgdW5zaWduZWQgaW50IGNwdWlkX2FycmF5WzRdOworICAgICAg c3RydWN0IGNwdWlkX3JlZ2lzdGVycyBjcHVpZDsKKyAgICB9OworICB1bmlvbgorICAgIHsKKyAg ICAgIHVuc2lnbmVkIGludCB1c2FibGVfYXJyYXlbNF07CisgICAgICBzdHJ1Y3QgY3B1aWRfcmVn aXN0ZXJzIHVzYWJsZTsKKyAgICB9OworfTsKKwogc3RydWN0IGNwdV9mZWF0dXJlcwogewogICBz dHJ1Y3QgY3B1X2ZlYXR1cmVzX2Jhc2ljIGJhc2ljOwotICBzdHJ1Y3QgY3B1aWRfZmVhdHVyZXMg ZmVhdHVyZXNbQ09NTU9OX0NQVUlEX0lOREVYX01BWF07CisgIHN0cnVjdCBjcHVpZF9mZWF0dXJl X2ludGVybmFsIGZlYXR1cmVzW0NQVUlEX0lOREVYX01BWF07CiAgIHVuc2lnbmVkIGludCBwcmVm ZXJyZWRbUFJFRkVSUkVEX0ZFQVRVUkVfSU5ERVhfTUFYXTsKICAgLyogWDg2IG1pY3JvLWFyY2hp dGVjdHVyZSBJU0EgbGV2ZWxzLiAgKi8KICAgdW5zaWduZWQgaW50IGlzYV8xOwpAQCAtMTczLDEw ICs4OTYsMTYgQEAgc3RydWN0IGNwdV9mZWF0dXJlcwogICB1bnNpZ25lZCBsb25nIGludCBsZXZl bDRfY2FjaGVfc2l6ZTsKIH07CiAKKy8qIEdldCBhIHBvaW50ZXIgdG8gdGhlIENQVSBmZWF0dXJl cyBzdHJ1Y3R1cmUuICAqLworZXh0ZXJuIGNvbnN0IHN0cnVjdCBjcHVfZmVhdHVyZXMgKl9kbF94 ODZfZ2V0X2NwdV9mZWF0dXJlcyAodm9pZCkKKyAgICAgX19hdHRyaWJ1dGVfXyAoKHB1cmUpKTsK KworI2RlZmluZSBfX2dldF9jcHVfZmVhdHVyZXMoKSBfZGxfeDg2X2dldF9jcHVfZmVhdHVyZXMo KQorCiAjaWYgZGVmaW5lZCAoX0xJQkMpICYmICFJU19JTiAobm9ubGliKQogLyogVW51c2VkIGZv ciB4ODYuICAqLwogIyBkZWZpbmUgSU5JVF9BUkNIKCkKLSMgZGVmaW5lIF9feDg2X2dldF9jcHVf ZmVhdHVyZXMobWF4KSAoJkdMUk8oZGxfeDg2X2NwdV9mZWF0dXJlcykpCisjIGRlZmluZSBfZGxf eDg2X2dldF9jcHVfZmVhdHVyZXMoKSAoJkdMUk8oZGxfeDg2X2NwdV9mZWF0dXJlcykpCiBleHRl cm4gdm9pZCBfZGxfeDg2X2luaXRfY3B1X2ZlYXR1cmVzICh2b2lkKSBhdHRyaWJ1dGVfaGlkZGVu OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2L3N5cy9wbGF0Zm9ybS94ODYuaCBi L3N5c2RlcHMveDg2L3N5cy9wbGF0Zm9ybS94ODYuaAppbmRleCA3Yzk2NGZmOTA3Li5lOTMwMjE5 OTQ0IDEwMDY0NAotLS0gYS9zeXNkZXBzL3g4Ni9zeXMvcGxhdGZvcm0veDg2LmgKKysrIGIvc3lz ZGVwcy94ODYvc3lzL3BsYXRmb3JtL3g4Ni5oCkBAIC0xOSw3NjAgKzE5LDQ3IEBACiAjaWZuZGVm IF9TWVNfUExBVEZPUk1fWDg2X0gKICNkZWZpbmUgX1NZU19QTEFURk9STV9YODZfSAogCi1lbnVt Ci17Ci0gIENPTU1PTl9DUFVJRF9JTkRFWF8xID0gMCwKLSAgQ09NTU9OX0NQVUlEX0lOREVYXzcs Ci0gIENPTU1PTl9DUFVJRF9JTkRFWF84MDAwMDAwMSwKLSAgQ09NTU9OX0NQVUlEX0lOREVYX0Rf RUNYXzEsCi0gIENPTU1PTl9DUFVJRF9JTkRFWF84MDAwMDAwNywKLSAgQ09NTU9OX0NQVUlEX0lO REVYXzgwMDAwMDA4LAotICBDT01NT05fQ1BVSURfSU5ERVhfN19FQ1hfMSwKLSAgQ09NTU9OX0NQ VUlEX0lOREVYXzE5LAotICAvKiBLZWVwIHRoZSBmb2xsb3dpbmcgbGluZSBhdCB0aGUgZW5kLiAg Ki8KLSAgQ09NTU9OX0NQVUlEX0lOREVYX01BWAotfTsKKyNpbmNsdWRlIDxmZWF0dXJlcy5oPgor I2luY2x1ZGUgPHN0ZGJvb2wuaD4KKyNpbmNsdWRlIDxiaXRzL3BsYXRmb3JtL3g4Ni5oPgogCi1z dHJ1Y3QgY3B1aWRfcmVnaXN0ZXJzCi17Ci0gIHVuc2lnbmVkIGludCBlYXg7Ci0gIHVuc2lnbmVk IGludCBlYng7Ci0gIHVuc2lnbmVkIGludCBlY3g7Ci0gIHVuc2lnbmVkIGludCBlZHg7Ci19Owor X19CRUdJTl9ERUNMUwogCi1zdHJ1Y3QgY3B1aWRfZmVhdHVyZXMKLXsKLSAgc3RydWN0IGNwdWlk X3JlZ2lzdGVycyBjcHVpZDsKLSAgc3RydWN0IGNwdWlkX3JlZ2lzdGVycyB1c2FibGU7Ci19Owor LyogR2V0IGEgcG9pbnRlciB0byB0aGUgQ1BVIGZlYXR1cmUgc3RydWN0dXJlLiAgKi8KK2V4dGVy biBjb25zdCBzdHJ1Y3QgY3B1aWRfZmVhdHVyZSAqX194ODZfZ2V0X2NwdWlkX2ZlYXR1cmVfbGVh ZiAodW5zaWduZWQgaW50KQorICAgICBfX2F0dHJpYnV0ZV9fICgocHVyZSkpOwogCi1lbnVtIGNw dV9mZWF0dXJlc19raW5kCitzdGF0aWMgX19pbmxpbmVfXyBfQm9vbAoreDg2X2NwdV9oYXNfZmVh dHVyZSAodW5zaWduZWQgaW50IF9faW5kZXgpCiB7Ci0gIGFyY2hfa2luZF91bmtub3duID0gMCwK LSAgYXJjaF9raW5kX2ludGVsLAotICBhcmNoX2tpbmRfYW1kLAotICBhcmNoX2tpbmRfemhhb3hp biwKLSAgYXJjaF9raW5kX290aGVyCi19OwotCi1zdHJ1Y3QgY3B1X2ZlYXR1cmVzX2Jhc2ljCisg IGNvbnN0IHN0cnVjdCBjcHVpZF9mZWF0dXJlICpfX3B0ciA9IF9feDg2X2dldF9jcHVpZF9mZWF0 dXJlX2xlYWYKKyAgICAoX19pbmRleCAvICg4ICogc2l6ZW9mICh1bnNpZ25lZCBpbnQpICogNCkp OworICB1bnNpZ25lZCBpbnQgX19yZWcKKyAgICAgPSBfX2luZGV4ICYgKDggKiBzaXplb2YgKHVu c2lnbmVkIGludCkgKiA0IC0gMSk7CisgIHVuc2lnbmVkIGludCBfX2JpdCA9IF9fcmVnICYgKDgg KiBzaXplb2YgKHVuc2lnbmVkIGludCkgLSAxKTsKKyAgX19yZWcgLz0gOCAqIHNpemVvZiAodW5z aWduZWQgaW50KTsKKworICByZXR1cm4gX19wdHItPmNwdWlkX2FycmF5W19fcmVnXSAmICgxIDw8 IF9fYml0KTsKK30KKworc3RhdGljIF9faW5saW5lX18gX0Jvb2wKK3g4Nl9jcHVfaXNfdXNhYmxl ICh1bnNpZ25lZCBpbnQgX19pbmRleCkKIHsKLSAgZW51bSBjcHVfZmVhdHVyZXNfa2luZCBraW5k OwotICBpbnQgbWF4X2NwdWlkOwotICB1bnNpZ25lZCBpbnQgZmFtaWx5OwotICB1bnNpZ25lZCBp bnQgbW9kZWw7Ci0gIHVuc2lnbmVkIGludCBzdGVwcGluZzsKLX07CisgIGNvbnN0IHN0cnVjdCBj cHVpZF9mZWF0dXJlICpfX3B0ciA9IF9feDg2X2dldF9jcHVpZF9mZWF0dXJlX2xlYWYKKyAgICAo X19pbmRleCAvICg4ICogc2l6ZW9mICh1bnNpZ25lZCBpbnQpICogNCkpOworICB1bnNpZ25lZCBp bnQgX19yZWcKKyAgICAgPSBfX2luZGV4ICYgKDggKiBzaXplb2YgKHVuc2lnbmVkIGludCkgKiA0 IC0gMSk7CisgIHVuc2lnbmVkIGludCBfX2JpdCA9IF9fcmVnICYgKDggKiBzaXplb2YgKHVuc2ln bmVkIGludCkgLSAxKTsKKyAgX19yZWcgLz0gOCAqIHNpemVvZiAodW5zaWduZWQgaW50KTsKIAot c3RydWN0IGNwdV9mZWF0dXJlcwotewotICBzdHJ1Y3QgY3B1X2ZlYXR1cmVzX2Jhc2ljIGJhc2lj OwotICBzdHJ1Y3QgY3B1aWRfZmVhdHVyZXMgZmVhdHVyZXNbQ09NTU9OX0NQVUlEX0lOREVYX01B WF07Ci19OwotCi0vKiBHZXQgYSBwb2ludGVyIHRvIHRoZSBDUFUgZmVhdHVyZXMgc3RydWN0dXJl LiAgKi8KLWV4dGVybiBjb25zdCBzdHJ1Y3QgY3B1X2ZlYXR1cmVzICpfX3g4Nl9nZXRfY3B1X2Zl YXR1cmVzICh1bnNpZ25lZCBpbnQpCi0gICAgIF9fYXR0cmlidXRlX18gKChjb25zdCkpOwotCi0j ZGVmaW5lIENQVV9GRUFUVVJFX0NIRUNLX1AocHRyLCBuYW1lLCBjaGVjaykgXAotICAoKHB0ci0+ ZmVhdHVyZXNbaW5kZXhfY3B1XyMjbmFtZV0uY2hlY2sucmVnXyMjbmFtZSBcCi0gICAgJiBiaXRf Y3B1XyMjbmFtZSkgIT0gMCkKLSNkZWZpbmUgQ1BVX0ZFQVRVUkVfQ1BVX1AocHRyLCBuYW1lKSBc Ci0gIENQVV9GRUFUVVJFX0NIRUNLX1AgKHB0ciwgbmFtZSwgY3B1aWQpCi0jZGVmaW5lIENQVV9G RUFUVVJFX1VTQUJMRV9QKHB0ciwgbmFtZSkgXAotICBDUFVfRkVBVFVSRV9DSEVDS19QIChwdHIs IG5hbWUsIHVzYWJsZSkKKyAgcmV0dXJuIF9fcHRyLT51c2FibGVfYXJyYXlbX19yZWddICYgKDEg PDwgX19iaXQpOworfQogCiAvKiBIQVNfQ1BVX0ZFQVRVUkUgZXZhbHVhdGVzIHRvIHRydWUgaWYg Q1BVIHN1cHBvcnRzIHRoZSBmZWF0dXJlLiAgKi8KLSNkZWZpbmUgSEFTX0NQVV9GRUFUVVJFKG5h bWUpCQkJCQlcCi0gIChfX2V4dGVuc2lvbl9fCQkJCQkJXAotICAgKHsgY29uc3Qgc3RydWN0IGNw dV9mZWF0dXJlcyAqX19wdHIgPQkJCVwKLQlfX3g4Nl9nZXRfY3B1X2ZlYXR1cmVzIChDT01NT05f Q1BVSURfSU5ERVhfTUFYKTsJXAotICAgICAgX19wdHIgJiYgQ1BVX0ZFQVRVUkVfQ1BVX1AgKF9f cHRyLCBuYW1lKTsgfSkpCisjZGVmaW5lIEhBU19DUFVfRkVBVFVSRShuYW1lKSB4ODZfY3B1X2hh c19mZWF0dXJlICh4ODZfY3B1XyMjbmFtZSkKIC8qIENQVV9GRUFUVVJFX1VTQUJMRSBldmFsdWF0 ZXMgdG8gdHJ1ZSBpZiB0aGUgZmVhdHVyZSBpcyB1c2FibGUuICAqLwotI2RlZmluZSBDUFVfRkVB VFVSRV9VU0FCTEUobmFtZSkJCQkJXAotICAoX19leHRlbnNpb25fXwkJCQkJCVwKLSAgICh7IGNv bnN0IHN0cnVjdCBjcHVfZmVhdHVyZXMgKl9fcHRyID0JCQlcCi0JX194ODZfZ2V0X2NwdV9mZWF0 dXJlcyAoQ09NTU9OX0NQVUlEX0lOREVYX01BWCk7CVwKLSAgICAgIF9fcHRyICYmIENQVV9GRUFU VVJFX1VTQUJMRV9QIChfX3B0ciwgbmFtZSk7IH0pKQotCi0vKiBDUFUgZmVhdHVyZXMuICAqLwot Ci0vKiBDT01NT05fQ1BVSURfSU5ERVhfMS4gICovCi0KLS8qIEVDWC4gICovCi0jZGVmaW5lIGJp dF9jcHVfU1NFMwkJKDF1IDw8IDApCi0jZGVmaW5lIGJpdF9jcHVfUENMTVVMUURRCSgxdSA8PCAx KQotI2RlZmluZSBiaXRfY3B1X0RURVM2NAkJKDF1IDw8IDIpCi0jZGVmaW5lIGJpdF9jcHVfTU9O SVRPUgkJKDF1IDw8IDMpCi0jZGVmaW5lIGJpdF9jcHVfRFNfQ1BMCQkoMXUgPDwgNCkKLSNkZWZp bmUgYml0X2NwdV9WTVgJCSgxdSA8PCA1KQotI2RlZmluZSBiaXRfY3B1X1NNWAkJKDF1IDw8IDYp Ci0jZGVmaW5lIGJpdF9jcHVfRUlTVAkJKDF1IDw8IDcpCi0jZGVmaW5lIGJpdF9jcHVfVE0yCQko MXUgPDwgOCkKLSNkZWZpbmUgYml0X2NwdV9TU1NFMwkJKDF1IDw8IDkpCi0jZGVmaW5lIGJpdF9j cHVfQ05YVF9JRAkJKDF1IDw8IDEwKQotI2RlZmluZSBiaXRfY3B1X1NEQkcJCSgxdSA8PCAxMSkK LSNkZWZpbmUgYml0X2NwdV9GTUEJCSgxdSA8PCAxMikKLSNkZWZpbmUgYml0X2NwdV9DTVBYQ0hH MTZCCSgxdSA8PCAxMykKLSNkZWZpbmUgYml0X2NwdV9YVFBSVVBEQ1RSTAkoMXUgPDwgMTQpCi0j ZGVmaW5lIGJpdF9jcHVfUERDTQkJKDF1IDw8IDE1KQotI2RlZmluZSBiaXRfY3B1X0lOREVYXzFf RUNYXzE2CSgxdSA8PCAxNikKLSNkZWZpbmUgYml0X2NwdV9QQ0lECQkoMXUgPDwgMTcpCi0jZGVm aW5lIGJpdF9jcHVfRENBCQkoMXUgPDwgMTgpCi0jZGVmaW5lIGJpdF9jcHVfU1NFNF8xCQkoMXUg PDwgMTkpCi0jZGVmaW5lIGJpdF9jcHVfU1NFNF8yCQkoMXUgPDwgMjApCi0jZGVmaW5lIGJpdF9j cHVfWDJBUElDCQkoMXUgPDwgMjEpCi0jZGVmaW5lIGJpdF9jcHVfTU9WQkUJCSgxdSA8PCAyMikK LSNkZWZpbmUgYml0X2NwdV9QT1BDTlQJCSgxdSA8PCAyMykKLSNkZWZpbmUgYml0X2NwdV9UU0Nf REVBRExJTkUJKDF1IDw8IDI0KQotI2RlZmluZSBiaXRfY3B1X0FFUwkJKDF1IDw8IDI1KQotI2Rl ZmluZSBiaXRfY3B1X1hTQVZFCQkoMXUgPDwgMjYpCi0jZGVmaW5lIGJpdF9jcHVfT1NYU0FWRQkJ KDF1IDw8IDI3KQotI2RlZmluZSBiaXRfY3B1X0FWWAkJKDF1IDw8IDI4KQotI2RlZmluZSBiaXRf Y3B1X0YxNkMJCSgxdSA8PCAyOSkKLSNkZWZpbmUgYml0X2NwdV9SRFJBTkQJCSgxdSA8PCAzMCkK LSNkZWZpbmUgYml0X2NwdV9JTkRFWF8xX0VDWF8zMQkoMXUgPDwgMzEpCi0KLS8qIEVEWC4gICov Ci0jZGVmaW5lIGJpdF9jcHVfRlBVCQkoMXUgPDwgMCkKLSNkZWZpbmUgYml0X2NwdV9WTUUJCSgx dSA8PCAxKQotI2RlZmluZSBiaXRfY3B1X0RFCQkoMXUgPDwgMikKLSNkZWZpbmUgYml0X2NwdV9Q U0UJCSgxdSA8PCAzKQotI2RlZmluZSBiaXRfY3B1X1RTQwkJKDF1IDw8IDQpCi0jZGVmaW5lIGJp dF9jcHVfTVNSCQkoMXUgPDwgNSkKLSNkZWZpbmUgYml0X2NwdV9QQUUJCSgxdSA8PCA2KQotI2Rl ZmluZSBiaXRfY3B1X01DRQkJKDF1IDw8IDcpCi0jZGVmaW5lIGJpdF9jcHVfQ1g4CQkoMXUgPDwg OCkKLSNkZWZpbmUgYml0X2NwdV9BUElDCQkoMXUgPDwgOSkKLSNkZWZpbmUgYml0X2NwdV9JTkRF WF8xX0VEWF8xMAkoMXUgPDwgMTApCi0jZGVmaW5lIGJpdF9jcHVfU0VQCQkoMXUgPDwgMTEpCi0j ZGVmaW5lIGJpdF9jcHVfTVRSUgkJKDF1IDw8IDEyKQotI2RlZmluZSBiaXRfY3B1X1BHRQkJKDF1 IDw8IDEzKQotI2RlZmluZSBiaXRfY3B1X01DQQkJKDF1IDw8IDE0KQotI2RlZmluZSBiaXRfY3B1 X0NNT1YJCSgxdSA8PCAxNSkKLSNkZWZpbmUgYml0X2NwdV9QQVQJCSgxdSA8PCAxNikKLSNkZWZp bmUgYml0X2NwdV9QU0VfMzYJCSgxdSA8PCAxNykKLSNkZWZpbmUgYml0X2NwdV9QU04JCSgxdSA8 PCAxOCkKLSNkZWZpbmUgYml0X2NwdV9DTEZTSAkJKDF1IDw8IDE5KQotI2RlZmluZSBiaXRfY3B1 X0lOREVYXzFfRURYXzIwCSgxdSA8PCAyMCkKLSNkZWZpbmUgYml0X2NwdV9EUwkJKDF1IDw8IDIx KQotI2RlZmluZSBiaXRfY3B1X0FDUEkJCSgxdSA8PCAyMikKLSNkZWZpbmUgYml0X2NwdV9NTVgJ CSgxdSA8PCAyMykKLSNkZWZpbmUgYml0X2NwdV9GWFNSCQkoMXUgPDwgMjQpCi0jZGVmaW5lIGJp dF9jcHVfU1NFCQkoMXUgPDwgMjUpCi0jZGVmaW5lIGJpdF9jcHVfU1NFMgkJKDF1IDw8IDI2KQot I2RlZmluZSBiaXRfY3B1X1NTCQkoMXUgPDwgMjcpCi0jZGVmaW5lIGJpdF9jcHVfSFRUCQkoMXUg PDwgMjgpCi0jZGVmaW5lIGJpdF9jcHVfVE0JCSgxdSA8PCAyOSkKLSNkZWZpbmUgYml0X2NwdV9J TkRFWF8xX0VEWF8zMAkoMXUgPDwgMzApCi0jZGVmaW5lIGJpdF9jcHVfUEJFCQkoMXUgPDwgMzEp Ci0KLS8qIENPTU1PTl9DUFVJRF9JTkRFWF83LiAgKi8KLQotLyogRUJYLiAgKi8KLSNkZWZpbmUg Yml0X2NwdV9GU0dTQkFTRQkoMXUgPDwgMCkKLSNkZWZpbmUgYml0X2NwdV9UU0NfQURKVVNUCSgx dSA8PCAxKQotI2RlZmluZSBiaXRfY3B1X1NHWAkJKDF1IDw8IDIpCi0jZGVmaW5lIGJpdF9jcHVf Qk1JMQkJKDF1IDw8IDMpCi0jZGVmaW5lIGJpdF9jcHVfSExFCQkoMXUgPDwgNCkKLSNkZWZpbmUg Yml0X2NwdV9BVlgyCQkoMXUgPDwgNSkKLSNkZWZpbmUgYml0X2NwdV9JTkRFWF83X0VCWF82CSgx dSA8PCA2KQotI2RlZmluZSBiaXRfY3B1X1NNRVAJCSgxdSA8PCA3KQotI2RlZmluZSBiaXRfY3B1 X0JNSTIJCSgxdSA8PCA4KQotI2RlZmluZSBiaXRfY3B1X0VSTVMJCSgxdSA8PCA5KQotI2RlZmlu ZSBiaXRfY3B1X0lOVlBDSUQJCSgxdSA8PCAxMCkKLSNkZWZpbmUgYml0X2NwdV9SVE0JCSgxdSA8 PCAxMSkKLSNkZWZpbmUgYml0X2NwdV9SRFRfTQkJKDF1IDw8IDEyKQotI2RlZmluZSBiaXRfY3B1 X0RFUFJfRlBVX0NTX0RTCSgxdSA8PCAxMykKLSNkZWZpbmUgYml0X2NwdV9NUFgJCSgxdSA8PCAx NCkKLSNkZWZpbmUgYml0X2NwdV9SRFRfQQkJKDF1IDw8IDE1KQotI2RlZmluZSBiaXRfY3B1X0FW WDUxMkYJCSgxdSA8PCAxNikKLSNkZWZpbmUgYml0X2NwdV9BVlg1MTJEUQkoMXUgPDwgMTcpCi0j ZGVmaW5lIGJpdF9jcHVfUkRTRUVECQkoMXUgPDwgMTgpCi0jZGVmaW5lIGJpdF9jcHVfQURYCQko MXUgPDwgMTkpCi0jZGVmaW5lIGJpdF9jcHVfU01BUAkJKDF1IDw8IDIwKQotI2RlZmluZSBiaXRf Y3B1X0FWWDUxMl9JRk1BCSgxdSA8PCAyMSkKLSNkZWZpbmUgYml0X2NwdV9JTkRFWF83X0VCWF8y MgkoMXUgPDwgMjIpCi0jZGVmaW5lIGJpdF9jcHVfQ0xGTFVTSE9QVAkoMXUgPDwgMjMpCi0jZGVm aW5lIGJpdF9jcHVfQ0xXQgkJKDF1IDw8IDI0KQotI2RlZmluZSBiaXRfY3B1X1RSQUNFCQkoMXUg PDwgMjUpCi0jZGVmaW5lIGJpdF9jcHVfQVZYNTEyUEYJKDF1IDw8IDI2KQotI2RlZmluZSBiaXRf Y3B1X0FWWDUxMkVSCSgxdSA8PCAyNykKLSNkZWZpbmUgYml0X2NwdV9BVlg1MTJDRAkoMXUgPDwg MjgpCi0jZGVmaW5lIGJpdF9jcHVfU0hBCQkoMXUgPDwgMjkpCi0jZGVmaW5lIGJpdF9jcHVfQVZY NTEyQlcJKDF1IDw8IDMwKQotI2RlZmluZSBiaXRfY3B1X0FWWDUxMlZMCSgxdSA8PCAzMSkKLQot LyogRUNYLiAgKi8KLSNkZWZpbmUgYml0X2NwdV9QUkVGRVRDSFdUMQkoMXUgPDwgMCkKLSNkZWZp bmUgYml0X2NwdV9BVlg1MTJfVkJNSQkoMXUgPDwgMSkKLSNkZWZpbmUgYml0X2NwdV9VTUlQCQko MXUgPDwgMikKLSNkZWZpbmUgYml0X2NwdV9QS1UJCSgxdSA8PCAzKQotI2RlZmluZSBiaXRfY3B1 X09TUEtFCQkoMXUgPDwgNCkKLSNkZWZpbmUgYml0X2NwdV9XQUlUUEtHCQkoMXUgPDwgNSkKLSNk ZWZpbmUgYml0X2NwdV9BVlg1MTJfVkJNSTIJKDF1IDw8IDYpCi0jZGVmaW5lIGJpdF9jcHVfU0hT VEsJCSgxdSA8PCA3KQotI2RlZmluZSBiaXRfY3B1X0dGTkkJCSgxdSA8PCA4KQotI2RlZmluZSBi aXRfY3B1X1ZBRVMJCSgxdSA8PCA5KQotI2RlZmluZSBiaXRfY3B1X1ZQQ0xNVUxRRFEJKDF1IDw8 IDEwKQotI2RlZmluZSBiaXRfY3B1X0FWWDUxMl9WTk5JCSgxdSA8PCAxMSkKLSNkZWZpbmUgYml0 X2NwdV9BVlg1MTJfQklUQUxHCSgxdSA8PCAxMikKLSNkZWZpbmUgYml0X2NwdV9JTkRFWF83X0VD WF8xMwkoMXUgPDwgMTMpCi0jZGVmaW5lIGJpdF9jcHVfQVZYNTEyX1ZQT1BDTlREUSAoMXUgPDwg MTQpCi0jZGVmaW5lIGJpdF9jcHVfSU5ERVhfN19FQ1hfMTUJKDF1IDw8IDE1KQotI2RlZmluZSBi aXRfY3B1X0lOREVYXzdfRUNYXzE2CSgxdSA8PCAxNikKLS8qIE5vdGU6IEJpdHMgMTctMjE6IFRo ZSB2YWx1ZSBvZiBNQVdBVSB1c2VkIGJ5IHRoZSBCTkRMRFggYW5kIEJORFNUWAotICAgaW5zdHJ1 Y3Rpb25zIGluIDY0LWJpdCBtb2RlLiAgKi8KLSNkZWZpbmUgYml0X2NwdV9SRFBJRAkJKDF1IDw8 IDIyKQotI2RlZmluZSBiaXRfY3B1X0tMCQkoMXUgPDwgMjMpCi0jZGVmaW5lIGJpdF9jcHVfSU5E RVhfN19FQ1hfMjQJKDF1IDw8IDI0KQotI2RlZmluZSBiaXRfY3B1X0NMREVNT1RFCSgxdSA8PCAy NSkKLSNkZWZpbmUgYml0X2NwdV9JTkRFWF83X0VDWF8yNgkoMXUgPDwgMjYpCi0jZGVmaW5lIGJp dF9jcHVfTU9WRElSSQkJKDF1IDw8IDI3KQotI2RlZmluZSBiaXRfY3B1X01PVkRJUjY0QgkoMXUg PDwgMjgpCi0jZGVmaW5lIGJpdF9jcHVfRU5RQ01ECQkoMXUgPDwgMjkpCi0jZGVmaW5lIGJpdF9j cHVfU0dYX0xDCQkoMXUgPDwgMzApCi0jZGVmaW5lIGJpdF9jcHVfUEtTCQkoMXUgPDwgMzEpCi0K LS8qIEVEWC4gICovCi0jZGVmaW5lIGJpdF9jcHVfSU5ERVhfN19FRFhfMAkoMXUgPDwgMCkKLSNk ZWZpbmUgYml0X2NwdV9JTkRFWF83X0VEWF8xCSgxdSA8PCAxKQotI2RlZmluZSBiaXRfY3B1X0FW WDUxMl80Vk5OSVcJKDF1IDw8IDIpCi0jZGVmaW5lIGJpdF9jcHVfQVZYNTEyXzRGTUFQUwkoMXUg PDwgMykKLSNkZWZpbmUgYml0X2NwdV9GU1JNCQkoMXUgPDwgNCkKLSNkZWZpbmUgYml0X2NwdV9V SU5UUgkJKDF1IDw8IDUpCi0jZGVmaW5lIGJpdF9jcHVfSU5ERVhfN19FRFhfNgkoMXUgPDwgNikK LSNkZWZpbmUgYml0X2NwdV9JTkRFWF83X0VEWF83CSgxdSA8PCA3KQotI2RlZmluZSBiaXRfY3B1 X0FWWDUxMl9WUDJJTlRFUlNFQ1QgKDF1IDw8IDgpCi0jZGVmaW5lIGJpdF9jcHVfSU5ERVhfN19F RFhfOQkoMXUgPDwgOSkKLSNkZWZpbmUgYml0X2NwdV9NRF9DTEVBUgkoMXUgPDwgMTApCi0jZGVm aW5lIGJpdF9jcHVfSU5ERVhfN19FRFhfMTEJKDF1IDw8IDExKQotI2RlZmluZSBiaXRfY3B1X0lO REVYXzdfRURYXzEyCSgxdSA8PCAxMikKLSNkZWZpbmUgYml0X2NwdV9JTkRFWF83X0VEWF8xMwko MXUgPDwgMTMpCi0jZGVmaW5lIGJpdF9jcHVfU0VSSUFMSVpFCSgxdSA8PCAxNCkKLSNkZWZpbmUg Yml0X2NwdV9IWUJSSUQJCSgxdSA8PCAxNSkKLSNkZWZpbmUgYml0X2NwdV9UU1hMRFRSSwkoMXUg PDwgMTYpCi0jZGVmaW5lIGJpdF9jcHVfSU5ERVhfN19FRFhfMTcJKDF1IDw8IDE3KQotI2RlZmlu ZSBiaXRfY3B1X1BDT05GSUcJCSgxdSA8PCAxOCkKLSNkZWZpbmUgYml0X2NwdV9JTkRFWF83X0VE WF8xOQkoMXUgPDwgMTkpCi0jZGVmaW5lIGJpdF9jcHVfSUJUCQkoMXUgPDwgMjApCi0jZGVmaW5l IGJpdF9jcHVfSU5ERVhfN19FRFhfMjEJKDF1IDw8IDIxKQotI2RlZmluZSBiaXRfY3B1X0FNWF9C RjE2CSgxdSA8PCAyMikKLSNkZWZpbmUgYml0X2NwdV9BVlg1MTJfRlAxNgkoMXUgPDwgMjMpCi0j ZGVmaW5lIGJpdF9jcHVfQU1YX1RJTEUJKDF1IDw8IDI0KQotI2RlZmluZSBiaXRfY3B1X0FNWF9J TlQ4CSgxdSA8PCAyNSkKLSNkZWZpbmUgYml0X2NwdV9JQlJTX0lCUEIJKDF1IDw8IDI2KQotI2Rl ZmluZSBiaXRfY3B1X1NUSUJQCQkoMXUgPDwgMjcpCi0jZGVmaW5lIGJpdF9jcHVfTDFEX0ZMVVNI CSgxdSA8PCAyOCkKLSNkZWZpbmUgYml0X2NwdV9BUkNIX0NBUEFCSUxJVElFUyAoMXUgPDwgMjkp Ci0jZGVmaW5lIGJpdF9jcHVfQ09SRV9DQVBBQklMSVRJRVMgKDF1IDw8IDMwKQotI2RlZmluZSBi aXRfY3B1X1NTQkQJCSgxdSA8PCAzMSkKLQotLyogQ09NTU9OX0NQVUlEX0lOREVYXzgwMDAwMDAx LiAgKi8KLQotLyogRUNYLiAgKi8KLSNkZWZpbmUgYml0X2NwdV9MQUhGNjRfU0FIRjY0CSgxdSA8 PCAwKQotI2RlZmluZSBiaXRfY3B1X1NWTQkJKDF1IDw8IDIpCi0jZGVmaW5lIGJpdF9jcHVfTFpD TlQJCSgxdSA8PCA1KQotI2RlZmluZSBiaXRfY3B1X1NTRTRBCQkoMXUgPDwgNikKLSNkZWZpbmUg Yml0X2NwdV9QUkVGRVRDSFcJKDF1IDw8IDgpCi0jZGVmaW5lIGJpdF9jcHVfWE9QCQkoMXUgPDwg MTEpCi0jZGVmaW5lIGJpdF9jcHVfTFdQCQkoMXUgPDwgMTUpCi0jZGVmaW5lIGJpdF9jcHVfRk1B NAkJKDF1IDw8IDE2KQotI2RlZmluZSBiaXRfY3B1X1RCTQkJKDF1IDw8IDIxKQotCi0vKiBFRFgu ICAqLwotI2RlZmluZSBiaXRfY3B1X1NZU0NBTExfU1lTUkVUCSgxdSA8PCAxMSkKLSNkZWZpbmUg Yml0X2NwdV9OWAkJKDF1IDw8IDIwKQotI2RlZmluZSBiaXRfY3B1X1BBR0UxR0IJCSgxdSA8PCAy NikKLSNkZWZpbmUgYml0X2NwdV9SRFRTQ1AJCSgxdSA8PCAyNykKLSNkZWZpbmUgYml0X2NwdV9M TQkJKDF1IDw8IDI5KQotCi0vKiBDT01NT05fQ1BVSURfSU5ERVhfRF9FQ1hfMS4gICovCi0KLS8q IEVBWC4gICovCi0jZGVmaW5lIGJpdF9jcHVfWFNBVkVPUFQJKDF1IDw8IDApCi0jZGVmaW5lIGJp dF9jcHVfWFNBVkVDCQkoMXUgPDwgMSkKLSNkZWZpbmUgYml0X2NwdV9YR0VUQlZfRUNYXzEJKDF1 IDw8IDIpCi0jZGVmaW5lIGJpdF9jcHVfWFNBVkVTCQkoMXUgPDwgMykKLSNkZWZpbmUgYml0X2Nw dV9YRkQJCSgxdSA8PCA0KQotCi0vKiBDT01NT05fQ1BVSURfSU5ERVhfODAwMDAwMDcuICAqLwot Ci0vKiBFRFguICAqLwotI2RlZmluZSBiaXRfY3B1X0lOVkFSSUFOVF9UU0MJKDF1IDw8IDgpCi0K LS8qIENPTU1PTl9DUFVJRF9JTkRFWF84MDAwMDAwOC4gICovCi0KLS8qIEVCWC4gICovCi0jZGVm aW5lIGJpdF9jcHVfV0JOT0lOVkQJKDF1IDw8IDkpCi0KLS8qIENPTU1PTl9DUFVJRF9JTkRFWF83 X0VDWF8xLiAgKi8KLQotLyogRUFYLiAgKi8KLSNkZWZpbmUgYml0X2NwdV9BVlhfVk5OSQkoMXUg PDwgNCkKLSNkZWZpbmUgYml0X2NwdV9BVlg1MTJfQkYxNgkoMXUgPDwgNSkKLSNkZWZpbmUgYml0 X2NwdV9GWkxSTQkJKDF1IDw8IDEwKQotI2RlZmluZSBiaXRfY3B1X0ZTUlMJCSgxdSA8PCAxMSkK LSNkZWZpbmUgYml0X2NwdV9GU1JDUwkJKDF1IDw8IDEyKQotI2RlZmluZSBiaXRfY3B1X0hSRVNF VAkJKDF1IDw8IDIyKQotI2RlZmluZSBiaXRfY3B1X0xBTQkJKDF1IDw8IDI2KQotCi0vKiBDT01N T05fQ1BVSURfSU5ERVhfMTkuICAqLwotCi0vKiBFQlguICAqLwotI2RlZmluZSBiaXRfY3B1X0FF U0tMRQkJKDF1IDw8IDApCi0jZGVmaW5lIGJpdF9jcHVfV0lERV9LTAkJKDF1IDw8IDIpCi0KLS8q IENPTU1PTl9DUFVJRF9JTkRFWF8xLiAgKi8KLQotLyogRUNYLiAgKi8KLSNkZWZpbmUgaW5kZXhf Y3B1X1NTRTMJCUNPTU1PTl9DUFVJRF9JTkRFWF8xCi0jZGVmaW5lIGluZGV4X2NwdV9QQ0xNVUxR RFEJQ09NTU9OX0NQVUlEX0lOREVYXzEKLSNkZWZpbmUgaW5kZXhfY3B1X0RURVM2NAlDT01NT05f Q1BVSURfSU5ERVhfMQotI2RlZmluZSBpbmRleF9jcHVfTU9OSVRPUglDT01NT05fQ1BVSURfSU5E RVhfMQotI2RlZmluZSBpbmRleF9jcHVfRFNfQ1BMCUNPTU1PTl9DUFVJRF9JTkRFWF8xCi0jZGVm aW5lIGluZGV4X2NwdV9WTVgJCUNPTU1PTl9DUFVJRF9JTkRFWF8xCi0jZGVmaW5lIGluZGV4X2Nw dV9TTVgJCUNPTU1PTl9DUFVJRF9JTkRFWF8xCi0jZGVmaW5lIGluZGV4X2NwdV9FSVNUCQlDT01N T05fQ1BVSURfSU5ERVhfMQotI2RlZmluZSBpbmRleF9jcHVfVE0yCQlDT01NT05fQ1BVSURfSU5E RVhfMQotI2RlZmluZSBpbmRleF9jcHVfU1NTRTMJCUNPTU1PTl9DUFVJRF9JTkRFWF8xCi0jZGVm aW5lIGluZGV4X2NwdV9DTlhUX0lECUNPTU1PTl9DUFVJRF9JTkRFWF8xCi0jZGVmaW5lIGluZGV4 X2NwdV9TREJHCQlDT01NT05fQ1BVSURfSU5ERVhfMQotI2RlZmluZSBpbmRleF9jcHVfRk1BCQlD T01NT05fQ1BVSURfSU5ERVhfMQotI2RlZmluZSBpbmRleF9jcHVfQ01QWENIRzE2QglDT01NT05f Q1BVSURfSU5ERVhfMQotI2RlZmluZSBpbmRleF9jcHVfWFRQUlVQRENUUkwJQ09NTU9OX0NQVUlE X0lOREVYXzEKLSNkZWZpbmUgaW5kZXhfY3B1X1BEQ00JCUNPTU1PTl9DUFVJRF9JTkRFWF8xCi0j ZGVmaW5lIGluZGV4X2NwdV9JTkRFWF8xX0VDWF8xNiBDT01NT05fQ1BVSURfSU5ERVhfMQotI2Rl ZmluZSBpbmRleF9jcHVfUENJRAkJQ09NTU9OX0NQVUlEX0lOREVYXzEKLSNkZWZpbmUgaW5kZXhf Y3B1X0RDQQkJQ09NTU9OX0NQVUlEX0lOREVYXzEKLSNkZWZpbmUgaW5kZXhfY3B1X1NTRTRfMQlD T01NT05fQ1BVSURfSU5ERVhfMQotI2RlZmluZSBpbmRleF9jcHVfU1NFNF8yCUNPTU1PTl9DUFVJ RF9JTkRFWF8xCi0jZGVmaW5lIGluZGV4X2NwdV9YMkFQSUMJQ09NTU9OX0NQVUlEX0lOREVYXzEK LSNkZWZpbmUgaW5kZXhfY3B1X01PVkJFCQlDT01NT05fQ1BVSURfSU5ERVhfMQotI2RlZmluZSBp bmRleF9jcHVfUE9QQ05UCUNPTU1PTl9DUFVJRF9JTkRFWF8xCi0jZGVmaW5lIGluZGV4X2NwdV9U U0NfREVBRExJTkUJQ09NTU9OX0NQVUlEX0lOREVYXzEKLSNkZWZpbmUgaW5kZXhfY3B1X0FFUwkJ Q09NTU9OX0NQVUlEX0lOREVYXzEKLSNkZWZpbmUgaW5kZXhfY3B1X1hTQVZFCQlDT01NT05fQ1BV SURfSU5ERVhfMQotI2RlZmluZSBpbmRleF9jcHVfT1NYU0FWRQlDT01NT05fQ1BVSURfSU5ERVhf MQotI2RlZmluZSBpbmRleF9jcHVfQVZYCQlDT01NT05fQ1BVSURfSU5ERVhfMQotI2RlZmluZSBp bmRleF9jcHVfRjE2QwkJQ09NTU9OX0NQVUlEX0lOREVYXzEKLSNkZWZpbmUgaW5kZXhfY3B1X1JE UkFORAlDT01NT05fQ1BVSURfSU5ERVhfMQotI2RlZmluZSBpbmRleF9jcHVfSU5ERVhfMV9FQ1hf MzEgQ09NTU9OX0NQVUlEX0lOREVYXzEKLQotLyogRUNYLiAgKi8KLSNkZWZpbmUgaW5kZXhfY3B1 X0ZQVQkJQ09NTU9OX0NQVUlEX0lOREVYXzEKLSNkZWZpbmUgaW5kZXhfY3B1X1ZNRQkJQ09NTU9O X0NQVUlEX0lOREVYXzEKLSNkZWZpbmUgaW5kZXhfY3B1X0RFCQlDT01NT05fQ1BVSURfSU5ERVhf MQotI2RlZmluZSBpbmRleF9jcHVfUFNFCQlDT01NT05fQ1BVSURfSU5ERVhfMQotI2RlZmluZSBp bmRleF9jcHVfVFNDCQlDT01NT05fQ1BVSURfSU5ERVhfMQotI2RlZmluZSBpbmRleF9jcHVfTVNS CQlDT01NT05fQ1BVSURfSU5ERVhfMQotI2RlZmluZSBpbmRleF9jcHVfUEFFCQlDT01NT05fQ1BV SURfSU5ERVhfMQotI2RlZmluZSBpbmRleF9jcHVfTUNFCQlDT01NT05fQ1BVSURfSU5ERVhfMQot I2RlZmluZSBpbmRleF9jcHVfQ1g4CQlDT01NT05fQ1BVSURfSU5ERVhfMQotI2RlZmluZSBpbmRl eF9jcHVfQVBJQwkJQ09NTU9OX0NQVUlEX0lOREVYXzEKLSNkZWZpbmUgaW5kZXhfY3B1X0lOREVY XzFfRURYXzEwIENPTU1PTl9DUFVJRF9JTkRFWF8xCi0jZGVmaW5lIGluZGV4X2NwdV9TRVAJCUNP TU1PTl9DUFVJRF9JTkRFWF8xCi0jZGVmaW5lIGluZGV4X2NwdV9NVFJSCQlDT01NT05fQ1BVSURf SU5ERVhfMQotI2RlZmluZSBpbmRleF9jcHVfUEdFCQlDT01NT05fQ1BVSURfSU5ERVhfMQotI2Rl ZmluZSBpbmRleF9jcHVfTUNBCQlDT01NT05fQ1BVSURfSU5ERVhfMQotI2RlZmluZSBpbmRleF9j cHVfQ01PVgkJQ09NTU9OX0NQVUlEX0lOREVYXzEKLSNkZWZpbmUgaW5kZXhfY3B1X1BBVAkJQ09N TU9OX0NQVUlEX0lOREVYXzEKLSNkZWZpbmUgaW5kZXhfY3B1X1BTRV8zNglDT01NT05fQ1BVSURf SU5ERVhfMQotI2RlZmluZSBpbmRleF9jcHVfUFNOCQlDT01NT05fQ1BVSURfSU5ERVhfMQotI2Rl ZmluZSBpbmRleF9jcHVfQ0xGU0gJCUNPTU1PTl9DUFVJRF9JTkRFWF8xCi0jZGVmaW5lIGluZGV4 X2NwdV9JTkRFWF8xX0VEWF8yMCBDT01NT05fQ1BVSURfSU5ERVhfMQotI2RlZmluZSBpbmRleF9j cHVfRFMJCUNPTU1PTl9DUFVJRF9JTkRFWF8xCi0jZGVmaW5lIGluZGV4X2NwdV9BQ1BJCQlDT01N T05fQ1BVSURfSU5ERVhfMQotI2RlZmluZSBpbmRleF9jcHVfTU1YCQlDT01NT05fQ1BVSURfSU5E RVhfMQotI2RlZmluZSBpbmRleF9jcHVfRlhTUgkJQ09NTU9OX0NQVUlEX0lOREVYXzEKLSNkZWZp bmUgaW5kZXhfY3B1X1NTRQkJQ09NTU9OX0NQVUlEX0lOREVYXzEKLSNkZWZpbmUgaW5kZXhfY3B1 X1NTRTIJCUNPTU1PTl9DUFVJRF9JTkRFWF8xCi0jZGVmaW5lIGluZGV4X2NwdV9TUwkJQ09NTU9O X0NQVUlEX0lOREVYXzEKLSNkZWZpbmUgaW5kZXhfY3B1X0hUVAkJQ09NTU9OX0NQVUlEX0lOREVY XzEKLSNkZWZpbmUgaW5kZXhfY3B1X1RNCQlDT01NT05fQ1BVSURfSU5ERVhfMQotI2RlZmluZSBp bmRleF9jcHVfSU5ERVhfMV9FRFhfMzAgQ09NTU9OX0NQVUlEX0lOREVYXzEKLSNkZWZpbmUgaW5k ZXhfY3B1X1BCRQkJQ09NTU9OX0NQVUlEX0lOREVYXzEKLQotLyogQ09NTU9OX0NQVUlEX0lOREVY XzcuICAqLwotCi0vKiBFQlguICAqLwotI2RlZmluZSBpbmRleF9jcHVfRlNHU0JBU0UJQ09NTU9O X0NQVUlEX0lOREVYXzcKLSNkZWZpbmUgaW5kZXhfY3B1X1RTQ19BREpVU1QJQ09NTU9OX0NQVUlE X0lOREVYXzcKLSNkZWZpbmUgaW5kZXhfY3B1X1NHWAkJQ09NTU9OX0NQVUlEX0lOREVYXzcKLSNk ZWZpbmUgaW5kZXhfY3B1X0JNSTEJCUNPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4 X2NwdV9ITEUJCUNPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4X2NwdV9BVlgyCQlD T01NT05fQ1BVSURfSU5ERVhfNwotI2RlZmluZSBpbmRleF9jcHVfSU5ERVhfN19FQlhfNglDT01N T05fQ1BVSURfSU5ERVhfNwotI2RlZmluZSBpbmRleF9jcHVfU01FUAkJQ09NTU9OX0NQVUlEX0lO REVYXzcKLSNkZWZpbmUgaW5kZXhfY3B1X0JNSTIJCUNPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVm aW5lIGluZGV4X2NwdV9FUk1TCQlDT01NT05fQ1BVSURfSU5ERVhfNwotI2RlZmluZSBpbmRleF9j cHVfSU5WUENJRAlDT01NT05fQ1BVSURfSU5ERVhfNwotI2RlZmluZSBpbmRleF9jcHVfUlRNCQlD T01NT05fQ1BVSURfSU5ERVhfNwotI2RlZmluZSBpbmRleF9jcHVfUkRUX00JCUNPTU1PTl9DUFVJ RF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4X2NwdV9ERVBSX0ZQVV9DU19EUyBDT01NT05fQ1BVSURf SU5ERVhfNwotI2RlZmluZSBpbmRleF9jcHVfTVBYCQlDT01NT05fQ1BVSURfSU5ERVhfNwotI2Rl ZmluZSBpbmRleF9jcHVfUkRUX0EJCUNPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4 X2NwdV9BVlg1MTJGCUNPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4X2NwdV9BVlg1 MTJEUQlDT01NT05fQ1BVSURfSU5ERVhfNwotI2RlZmluZSBpbmRleF9jcHVfUkRTRUVECUNPTU1P Tl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4X2NwdV9BRFgJCUNPTU1PTl9DUFVJRF9JTkRF WF83Ci0jZGVmaW5lIGluZGV4X2NwdV9TTUFQCQlDT01NT05fQ1BVSURfSU5ERVhfNwotI2RlZmlu ZSBpbmRleF9jcHVfQVZYNTEyX0lGTUEJQ09NTU9OX0NQVUlEX0lOREVYXzcKLSNkZWZpbmUgaW5k ZXhfY3B1X0lOREVYXzdfRUJYXzIyIENPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4 X2NwdV9DTEZMVVNIT1BUCUNPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4X2NwdV9D TFdCCQlDT01NT05fQ1BVSURfSU5ERVhfNwotI2RlZmluZSBpbmRleF9jcHVfVFJBQ0UJCUNPTU1P Tl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4X2NwdV9BVlg1MTJQRglDT01NT05fQ1BVSURf SU5ERVhfNwotI2RlZmluZSBpbmRleF9jcHVfQVZYNTEyRVIJQ09NTU9OX0NQVUlEX0lOREVYXzcK LSNkZWZpbmUgaW5kZXhfY3B1X0FWWDUxMkNECUNPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5l IGluZGV4X2NwdV9TSEEJCUNPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4X2NwdV9B Vlg1MTJCVwlDT01NT05fQ1BVSURfSU5ERVhfNwotI2RlZmluZSBpbmRleF9jcHVfQVZYNTEyVkwJ Q09NTU9OX0NQVUlEX0lOREVYXzcKLQotLyogRUNYLiAgKi8KLSNkZWZpbmUgaW5kZXhfY3B1X1BS RUZFVENIV1QxCUNPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4X2NwdV9BVlg1MTJf VkJNSQlDT01NT05fQ1BVSURfSU5ERVhfNwotI2RlZmluZSBpbmRleF9jcHVfVU1JUAkJQ09NTU9O X0NQVUlEX0lOREVYXzcKLSNkZWZpbmUgaW5kZXhfY3B1X1BLVQkJQ09NTU9OX0NQVUlEX0lOREVY XzcKLSNkZWZpbmUgaW5kZXhfY3B1X09TUEtFCQlDT01NT05fQ1BVSURfSU5ERVhfNwotI2RlZmlu ZSBpbmRleF9jcHVfV0FJVFBLRwlDT01NT05fQ1BVSURfSU5ERVhfNwotI2RlZmluZSBpbmRleF9j cHVfQVZYNTEyX1ZCTUkyCUNPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4X2NwdV9T SFNUSwkJQ09NTU9OX0NQVUlEX0lOREVYXzcKLSNkZWZpbmUgaW5kZXhfY3B1X0dGTkkJCUNPTU1P Tl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4X2NwdV9WQUVTCQlDT01NT05fQ1BVSURfSU5E RVhfNwotI2RlZmluZSBpbmRleF9jcHVfVlBDTE1VTFFEUQlDT01NT05fQ1BVSURfSU5ERVhfNwot I2RlZmluZSBpbmRleF9jcHVfQVZYNTEyX1ZOTkkJQ09NTU9OX0NQVUlEX0lOREVYXzcKLSNkZWZp bmUgaW5kZXhfY3B1X0FWWDUxMl9CSVRBTEcgQ09NTU9OX0NQVUlEX0lOREVYXzcKLSNkZWZpbmUg aW5kZXhfY3B1X0lOREVYXzdfRUNYXzEzIENPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGlu ZGV4X2NwdV9BVlg1MTJfVlBPUENOVERRIENPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGlu ZGV4X2NwdV9JTkRFWF83X0VDWF8xNSBDT01NT05fQ1BVSURfSU5ERVhfNwotI2RlZmluZSBpbmRl eF9jcHVfSU5ERVhfN19FQ1hfMTYgQ09NTU9OX0NQVUlEX0lOREVYXzcKLSNkZWZpbmUgaW5kZXhf Y3B1X1JEUElECQlDT01NT05fQ1BVSURfSU5ERVhfNwotI2RlZmluZSBpbmRleF9jcHVfS0wJCUNP TU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4X2NwdV9JTkRFWF83X0VDWF8yNCBDT01N T05fQ1BVSURfSU5ERVhfNwotI2RlZmluZSBpbmRleF9jcHVfQ0xERU1PVEUJQ09NTU9OX0NQVUlE X0lOREVYXzcKLSNkZWZpbmUgaW5kZXhfY3B1X0lOREVYXzdfRUNYXzI2IENPTU1PTl9DUFVJRF9J TkRFWF83Ci0jZGVmaW5lIGluZGV4X2NwdV9NT1ZESVJJCUNPTU1PTl9DUFVJRF9JTkRFWF83Ci0j ZGVmaW5lIGluZGV4X2NwdV9NT1ZESVI2NEIJQ09NTU9OX0NQVUlEX0lOREVYXzcKLSNkZWZpbmUg aW5kZXhfY3B1X0VOUUNNRAlDT01NT05fQ1BVSURfSU5ERVhfNwotI2RlZmluZSBpbmRleF9jcHVf U0dYX0xDCUNPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4X2NwdV9QS1MJCUNPTU1P Tl9DUFVJRF9JTkRFWF83Ci0KLS8qIEVEWC4gICovCi0jZGVmaW5lIGluZGV4X2NwdV9JTkRFWF83 X0VEWF8wCUNPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4X2NwdV9JTkRFWF83X0VE WF8xCUNPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4X2NwdV9BVlg1MTJfNFZOTklX IENPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4X2NwdV9BVlg1MTJfNEZNQVBTCUNP TU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4X2NwdV9GU1JNCQlDT01NT05fQ1BVSURf SU5ERVhfNwotI2RlZmluZSBpbmRleF9jcHVfVUlOVFIJCUNPTU1PTl9DUFVJRF9JTkRFWF83Ci0j ZGVmaW5lIGluZGV4X2NwdV9JTkRFWF83X0VEWF82CUNPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVm aW5lIGluZGV4X2NwdV9JTkRFWF83X0VEWF83CUNPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5l IGluZGV4X2NwdV9BVlg1MTJfVlAySU5URVJTRUNUIENPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVm aW5lIGluZGV4X2NwdV9JTkRFWF83X0VEWF85CUNPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5l IGluZGV4X2NwdV9NRF9DTEVBUglDT01NT05fQ1BVSURfSU5ERVhfNwotI2RlZmluZSBpbmRleF9j cHVfSU5ERVhfN19FRFhfMTEgQ09NTU9OX0NQVUlEX0lOREVYXzcKLSNkZWZpbmUgaW5kZXhfY3B1 X0lOREVYXzdfRURYXzEyIENPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4X2NwdV9J TkRFWF83X0VEWF8xMyBDT01NT05fQ1BVSURfSU5ERVhfNwotI2RlZmluZSBpbmRleF9jcHVfU0VS SUFMSVpFCUNPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4X2NwdV9IWUJSSUQJQ09N TU9OX0NQVUlEX0lOREVYXzcKLSNkZWZpbmUgaW5kZXhfY3B1X1RTWExEVFJLCUNPTU1PTl9DUFVJ RF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4X2NwdV9JTkRFWF83X0VEWF8xNyBDT01NT05fQ1BVSURf SU5ERVhfNwotI2RlZmluZSBpbmRleF9jcHVfUENPTkZJRwlDT01NT05fQ1BVSURfSU5ERVhfNwot I2RlZmluZSBpbmRleF9jcHVfSU5ERVhfN19FRFhfMTkgQ09NTU9OX0NQVUlEX0lOREVYXzcKLSNk ZWZpbmUgaW5kZXhfY3B1X0lCVAkJQ09NTU9OX0NQVUlEX0lOREVYXzcKLSNkZWZpbmUgaW5kZXhf Y3B1X0lOREVYXzdfRURYXzIxIENPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4X2Nw dV9BTVhfQkYxNglDT01NT05fQ1BVSURfSU5ERVhfNwotI2RlZmluZSBpbmRleF9jcHVfQVZYNTEy X0ZQMTYJQ09NTU9OX0NQVUlEX0lOREVYXzcKLSNkZWZpbmUgaW5kZXhfY3B1X0FNWF9USUxFCUNP TU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGluZGV4X2NwdV9BTVhfSU5UOAlDT01NT05fQ1BV SURfSU5ERVhfNwotI2RlZmluZSBpbmRleF9jcHVfSUJSU19JQlBCCUNPTU1PTl9DUFVJRF9JTkRF WF83Ci0jZGVmaW5lIGluZGV4X2NwdV9TVElCUAkJQ09NTU9OX0NQVUlEX0lOREVYXzcKLSNkZWZp bmUgaW5kZXhfY3B1X0wxRF9GTFVTSAlDT01NT05fQ1BVSURfSU5ERVhfNwotI2RlZmluZSBpbmRl eF9jcHVfQVJDSF9DQVBBQklMSVRJRVMgQ09NTU9OX0NQVUlEX0lOREVYXzcKLSNkZWZpbmUgaW5k ZXhfY3B1X0NPUkVfQ0FQQUJJTElUSUVTIENPTU1PTl9DUFVJRF9JTkRFWF83Ci0jZGVmaW5lIGlu ZGV4X2NwdV9TU0JECQlDT01NT05fQ1BVSURfSU5ERVhfNwotCi0vKiBDT01NT05fQ1BVSURfSU5E RVhfODAwMDAwMDEuICAqLwotCi0vKiBFQ1guICAqLwotI2RlZmluZSBpbmRleF9jcHVfTEFIRjY0 X1NBSEY2NCBDT01NT05fQ1BVSURfSU5ERVhfODAwMDAwMDEKLSNkZWZpbmUgaW5kZXhfY3B1X1NW TQkJQ09NTU9OX0NQVUlEX0lOREVYXzgwMDAwMDAxCi0jZGVmaW5lIGluZGV4X2NwdV9MWkNOVAkJ Q09NTU9OX0NQVUlEX0lOREVYXzgwMDAwMDAxCi0jZGVmaW5lIGluZGV4X2NwdV9TU0U0QQkJQ09N TU9OX0NQVUlEX0lOREVYXzgwMDAwMDAxCi0jZGVmaW5lIGluZGV4X2NwdV9QUkVGRVRDSFcJQ09N TU9OX0NQVUlEX0lOREVYXzgwMDAwMDAxCi0jZGVmaW5lIGluZGV4X2NwdV9YT1AJCUNPTU1PTl9D UFVJRF9JTkRFWF84MDAwMDAwMQotI2RlZmluZSBpbmRleF9jcHVfTFdQCQlDT01NT05fQ1BVSURf SU5ERVhfODAwMDAwMDEKLSNkZWZpbmUgaW5kZXhfY3B1X0ZNQTQJCUNPTU1PTl9DUFVJRF9JTkRF WF84MDAwMDAwMQotI2RlZmluZSBpbmRleF9jcHVfVEJNCQlDT01NT05fQ1BVSURfSU5ERVhfODAw MDAwMDEKLQotLyogRURYLiAgKi8KLSNkZWZpbmUgaW5kZXhfY3B1X1NZU0NBTExfU1lTUkVUIENP TU1PTl9DUFVJRF9JTkRFWF84MDAwMDAwMQotI2RlZmluZSBpbmRleF9jcHVfTlgJCUNPTU1PTl9D UFVJRF9JTkRFWF84MDAwMDAwMQotI2RlZmluZSBpbmRleF9jcHVfUEFHRTFHQglDT01NT05fQ1BV SURfSU5ERVhfODAwMDAwMDEKLSNkZWZpbmUgaW5kZXhfY3B1X1JEVFNDUAlDT01NT05fQ1BVSURf SU5ERVhfODAwMDAwMDEKLSNkZWZpbmUgaW5kZXhfY3B1X0xNCQlDT01NT05fQ1BVSURfSU5ERVhf ODAwMDAwMDEKLQotLyogQ09NTU9OX0NQVUlEX0lOREVYX0RfRUNYXzEuICAqLwotCi0vKiBFQVgu ICAqLwotI2RlZmluZSBpbmRleF9jcHVfWFNBVkVPUFQJQ09NTU9OX0NQVUlEX0lOREVYX0RfRUNY XzEKLSNkZWZpbmUgaW5kZXhfY3B1X1hTQVZFQwlDT01NT05fQ1BVSURfSU5ERVhfRF9FQ1hfMQot I2RlZmluZSBpbmRleF9jcHVfWEdFVEJWX0VDWF8xCUNPTU1PTl9DUFVJRF9JTkRFWF9EX0VDWF8x Ci0jZGVmaW5lIGluZGV4X2NwdV9YU0FWRVMJQ09NTU9OX0NQVUlEX0lOREVYX0RfRUNYXzEKLSNk ZWZpbmUgaW5kZXhfY3B1X1hGRAkJQ09NTU9OX0NQVUlEX0lOREVYX0RfRUNYXzEKLQotLyogQ09N TU9OX0NQVUlEX0lOREVYXzgwMDAwMDA3LiAgKi8KLQotLyogRURYLiAgKi8KLSNkZWZpbmUgaW5k ZXhfY3B1X0lOVkFSSUFOVF9UU0MJQ09NTU9OX0NQVUlEX0lOREVYXzgwMDAwMDA3Ci0KLS8qIENP TU1PTl9DUFVJRF9JTkRFWF84MDAwMDAwOC4gICovCi0KLS8qIEVCWC4gICovCi0jZGVmaW5lIGlu ZGV4X2NwdV9XQk5PSU5WRAlDT01NT05fQ1BVSURfSU5ERVhfODAwMDAwMDgKLQotLyogQ09NTU9O X0NQVUlEX0lOREVYXzdfRUNYXzEuICAqLwotCi0vKiBFQVguICAqLwotI2RlZmluZSBpbmRleF9j cHVfQVZYX1ZOTkkJQ09NTU9OX0NQVUlEX0lOREVYXzdfRUNYXzEKLSNkZWZpbmUgaW5kZXhfY3B1 X0FWWDUxMl9CRjE2CUNPTU1PTl9DUFVJRF9JTkRFWF83X0VDWF8xCi0jZGVmaW5lIGluZGV4X2Nw dV9GWkxSTQkJQ09NTU9OX0NQVUlEX0lOREVYXzdfRUNYXzEKLSNkZWZpbmUgaW5kZXhfY3B1X0ZT UlMJCUNPTU1PTl9DUFVJRF9JTkRFWF83X0VDWF8xCi0jZGVmaW5lIGluZGV4X2NwdV9GU1JDUwkJ Q09NTU9OX0NQVUlEX0lOREVYXzdfRUNYXzEKLSNkZWZpbmUgaW5kZXhfY3B1X0hSRVNFVAlDT01N T05fQ1BVSURfSU5ERVhfN19FQ1hfMQotI2RlZmluZSBpbmRleF9jcHVfTEFNCQlDT01NT05fQ1BV SURfSU5ERVhfN19FQ1hfMQotCi0vKiBDT01NT05fQ1BVSURfSU5ERVhfMTkuICAqLwotCi0vKiBF QlguICAqLwotI2RlZmluZSBpbmRleF9jcHVfQUVTS0xFCUNPTU1PTl9DUFVJRF9JTkRFWF8xOQot I2RlZmluZSBpbmRleF9jcHVfV0lERV9LTAlDT01NT05fQ1BVSURfSU5ERVhfMTkKLQotLyogQ09N TU9OX0NQVUlEX0lOREVYXzEuICAqLwotCi0vKiBFQ1guICAqLwotI2RlZmluZSByZWdfU1NFMwkJ ZWN4Ci0jZGVmaW5lIHJlZ19QQ0xNVUxRRFEJCWVjeAotI2RlZmluZSByZWdfRFRFUzY0CQllY3gK LSNkZWZpbmUgcmVnX01PTklUT1IJCWVjeAotI2RlZmluZSByZWdfRFNfQ1BMCQllY3gKLSNkZWZp bmUgcmVnX1ZNWAkJCWVjeAotI2RlZmluZSByZWdfU01YCQkJZWN4Ci0jZGVmaW5lIHJlZ19FSVNU CQllY3gKLSNkZWZpbmUgcmVnX1RNMgkJCWVjeAotI2RlZmluZSByZWdfU1NTRTMJCWVjeAotI2Rl ZmluZSByZWdfQ05YVF9JRAkJZWN4Ci0jZGVmaW5lIHJlZ19TREJHCQllY3gKLSNkZWZpbmUgcmVn X0ZNQQkJCWVjeAotI2RlZmluZSByZWdfQ01QWENIRzE2QgkJZWN4Ci0jZGVmaW5lIHJlZ19YVFBS VVBEQ1RSTAkJZWN4Ci0jZGVmaW5lIHJlZ19QRENNCQllY3gKLSNkZWZpbmUgcmVnX0lOREVYXzFf RUNYXzE2CWVjeAotI2RlZmluZSByZWdfUENJRAkJZWN4Ci0jZGVmaW5lIHJlZ19EQ0EJCQllY3gK LSNkZWZpbmUgcmVnX1NTRTRfMQkJZWN4Ci0jZGVmaW5lIHJlZ19TU0U0XzIJCWVjeAotI2RlZmlu ZSByZWdfWDJBUElDCQllY3gKLSNkZWZpbmUgcmVnX01PVkJFCQllY3gKLSNkZWZpbmUgcmVnX1BP UENOVAkJZWN4Ci0jZGVmaW5lIHJlZ19UU0NfREVBRExJTkUJZWN4Ci0jZGVmaW5lIHJlZ19BRVMJ CQllY3gKLSNkZWZpbmUgcmVnX1hTQVZFCQllY3gKLSNkZWZpbmUgcmVnX09TWFNBVkUJCWVjeAot I2RlZmluZSByZWdfQVZYCQkJZWN4Ci0jZGVmaW5lIHJlZ19GMTZDCQllY3gKLSNkZWZpbmUgcmVn X1JEUkFORAkJZWN4Ci0jZGVmaW5lIHJlZ19JTkRFWF8xX0VDWF8zMQllY3gKLQotLyogRURYLiAg Ki8KLSNkZWZpbmUgcmVnX0ZQVQkJCWVkeAotI2RlZmluZSByZWdfVk1FCQkJZWR4Ci0jZGVmaW5l IHJlZ19ERQkJCWVkeAotI2RlZmluZSByZWdfUFNFCQkJZWR4Ci0jZGVmaW5lIHJlZ19UU0MJCQll ZHgKLSNkZWZpbmUgcmVnX01TUgkJCWVkeAotI2RlZmluZSByZWdfUEFFCQkJZWR4Ci0jZGVmaW5l IHJlZ19NQ0UJCQllZHgKLSNkZWZpbmUgcmVnX0NYOAkJCWVkeAotI2RlZmluZSByZWdfQVBJQwkJ ZWR4Ci0jZGVmaW5lIHJlZ19JTkRFWF8xX0VEWF8xMAllZHgKLSNkZWZpbmUgcmVnX1NFUAkJCWVk eAotI2RlZmluZSByZWdfTVRSUgkJZWR4Ci0jZGVmaW5lIHJlZ19QR0UJCQllZHgKLSNkZWZpbmUg cmVnX01DQQkJCWVkeAotI2RlZmluZSByZWdfQ01PVgkJZWR4Ci0jZGVmaW5lIHJlZ19QQVQJCQll ZHgKLSNkZWZpbmUgcmVnX1BTRV8zNgkJZWR4Ci0jZGVmaW5lIHJlZ19QU04JCQllZHgKLSNkZWZp bmUgcmVnX0NMRlNICQllZHgKLSNkZWZpbmUgcmVnX0lOREVYXzFfRURYXzIwCWVkeAotI2RlZmlu ZSByZWdfRFMJCQllZHgKLSNkZWZpbmUgcmVnX0FDUEkJCWVkeAotI2RlZmluZSByZWdfTU1YCQkJ ZWR4Ci0jZGVmaW5lIHJlZ19GWFNSCQllZHgKLSNkZWZpbmUgcmVnX1NTRQkJCWVkeAotI2RlZmlu ZSByZWdfU1NFMgkJZWR4Ci0jZGVmaW5lIHJlZ19TUwkJCWVkeAotI2RlZmluZSByZWdfSFRUCQkJ ZWR4Ci0jZGVmaW5lIHJlZ19UTQkJCWVkeAotI2RlZmluZSByZWdfSU5ERVhfMV9FRFhfMzAJZWR4 Ci0jZGVmaW5lIHJlZ19QQkUJCQllZHgKLQotLyogQ09NTU9OX0NQVUlEX0lOREVYXzcuICAqLwot Ci0vKiBFQlguICAqLwotI2RlZmluZSByZWdfRlNHU0JBU0UJCWVieAotI2RlZmluZSByZWdfVFND X0FESlVTVAkJZWJ4Ci0jZGVmaW5lIHJlZ19TR1gJCQllYngKLSNkZWZpbmUgcmVnX0JNSTEJCWVi eAotI2RlZmluZSByZWdfSExFCQkJZWJ4Ci0jZGVmaW5lIHJlZ19CTUkyCQllYngKLSNkZWZpbmUg cmVnX0FWWDIJCWVieAotI2RlZmluZSByZWdfSU5ERVhfN19FQlhfNgllYngKLSNkZWZpbmUgcmVn X1NNRVAJCWVieAotI2RlZmluZSByZWdfRVJNUwkJZWJ4Ci0jZGVmaW5lIHJlZ19JTlZQQ0lECQll YngKLSNkZWZpbmUgcmVnX1JUTQkJCWVieAotI2RlZmluZSByZWdfUkRUX00JCWVieAotI2RlZmlu ZSByZWdfREVQUl9GUFVfQ1NfRFMJZWJ4Ci0jZGVmaW5lIHJlZ19NUFgJCQllYngKLSNkZWZpbmUg cmVnX1JEVF9BCQllYngKLSNkZWZpbmUgcmVnX0FWWDUxMkYJCWVieAotI2RlZmluZSByZWdfQVZY NTEyRFEJCWVieAotI2RlZmluZSByZWdfUkRTRUVECQllYngKLSNkZWZpbmUgcmVnX0FEWAkJCWVi eAotI2RlZmluZSByZWdfU01BUAkJZWJ4Ci0jZGVmaW5lIHJlZ19BVlg1MTJfSUZNQQkJZWJ4Ci0j ZGVmaW5lIHJlZ19JTkRFWF83X0VCWF8yMgllYngKLSNkZWZpbmUgcmVnX0NMRkxVU0hPUFQJCWVi eAotI2RlZmluZSByZWdfQ0xXQgkJZWJ4Ci0jZGVmaW5lIHJlZ19UUkFDRQkJZWJ4Ci0jZGVmaW5l IHJlZ19BVlg1MTJQRgkJZWJ4Ci0jZGVmaW5lIHJlZ19BVlg1MTJFUgkJZWJ4Ci0jZGVmaW5lIHJl Z19BVlg1MTJDRAkJZWJ4Ci0jZGVmaW5lIHJlZ19TSEEJCQllYngKLSNkZWZpbmUgcmVnX0FWWDUx MkJXCQllYngKLSNkZWZpbmUgcmVnX0FWWDUxMlZMCQllYngKLQotLyogRUNYLiAgKi8KLSNkZWZp bmUgcmVnX1BSRUZFVENIV1QxCQllY3gKLSNkZWZpbmUgcmVnX0FWWDUxMl9WQk1JCQllY3gKLSNk ZWZpbmUgcmVnX1VNSVAJCWVjeAotI2RlZmluZSByZWdfUEtVCQkJZWN4Ci0jZGVmaW5lIHJlZ19P U1BLRQkJZWN4Ci0jZGVmaW5lIHJlZ19XQUlUUEtHCQllY3gKLSNkZWZpbmUgcmVnX0FWWDUxMl9W Qk1JMgllY3gKLSNkZWZpbmUgcmVnX1NIU1RLCQllY3gKLSNkZWZpbmUgcmVnX0dGTkkJCWVjeAot I2RlZmluZSByZWdfVkFFUwkJZWN4Ci0jZGVmaW5lIHJlZ19WUENMTVVMUURRCQllY3gKLSNkZWZp bmUgcmVnX0FWWDUxMl9WTk5JCQllY3gKLSNkZWZpbmUgcmVnX0FWWDUxMl9CSVRBTEcJZWN4Ci0j ZGVmaW5lIHJlZ19JTkRFWF83X0VDWF8xMwllY3gKLSNkZWZpbmUgcmVnX0FWWDUxMl9WUE9QQ05U RFEJZWN4Ci0jZGVmaW5lIHJlZ19JTkRFWF83X0VDWF8xNQllY3gKLSNkZWZpbmUgcmVnX0lOREVY XzdfRUNYXzE2CWVjeAotI2RlZmluZSByZWdfUkRQSUQJCWVjeAotI2RlZmluZSByZWdfS0wJCQll Y3gKLSNkZWZpbmUgcmVnX0lOREVYXzdfRUNYXzI0CWVjeAotI2RlZmluZSByZWdfQ0xERU1PVEUJ CWVjeAotI2RlZmluZSByZWdfSU5ERVhfN19FQ1hfMjYJZWN4Ci0jZGVmaW5lIHJlZ19NT1ZESVJJ CQllY3gKLSNkZWZpbmUgcmVnX01PVkRJUjY0QgkJZWN4Ci0jZGVmaW5lIHJlZ19FTlFDTUQJCWVj eAotI2RlZmluZSByZWdfU0dYX0xDCQllY3gKLSNkZWZpbmUgcmVnX1BLUwkJCWVjeAotCi0vKiBF RFguICAqLwotI2RlZmluZSByZWdfSU5ERVhfN19FRFhfMAllZHgKLSNkZWZpbmUgcmVnX0lOREVY XzdfRURYXzEJZWR4Ci0jZGVmaW5lIHJlZ19BVlg1MTJfNFZOTklXCWVkeAotI2RlZmluZSByZWdf QVZYNTEyXzRGTUFQUwllZHgKLSNkZWZpbmUgcmVnX0ZTUk0JCWVkeAotI2RlZmluZSByZWdfVUlO VFIJCWVkeAotI2RlZmluZSByZWdfSU5ERVhfN19FRFhfNgllZHgKLSNkZWZpbmUgcmVnX0lOREVY XzdfRURYXzcJZWR4Ci0jZGVmaW5lIHJlZ19BVlg1MTJfVlAySU5URVJTRUNUCWVkeAotI2RlZmlu ZSByZWdfSU5ERVhfN19FRFhfOQllZHgKLSNkZWZpbmUgcmVnX01EX0NMRUFSCQllZHgKLSNkZWZp bmUgcmVnX0lOREVYXzdfRURYXzExCWVkeAotI2RlZmluZSByZWdfSU5ERVhfN19FRFhfMTIJZWR4 Ci0jZGVmaW5lIHJlZ19JTkRFWF83X0VEWF8xMwllZHgKLSNkZWZpbmUgcmVnX1NFUklBTElaRQkJ ZWR4Ci0jZGVmaW5lIHJlZ19IWUJSSUQJCWVkeAotI2RlZmluZSByZWdfVFNYTERUUksJCWVkeAot I2RlZmluZSByZWdfSU5ERVhfN19FRFhfMTcJZWR4Ci0jZGVmaW5lIHJlZ19QQ09ORklHCQllZHgK LSNkZWZpbmUgcmVnX0lOREVYXzdfRURYXzE5CWVkeAotI2RlZmluZSByZWdfSUJUCQkJZWR4Ci0j ZGVmaW5lIHJlZ19JTkRFWF83X0VEWF8yMQllZHgKLSNkZWZpbmUgcmVnX0FNWF9CRjE2CQllZHgK LSNkZWZpbmUgcmVnX0FWWDUxMl9GUDE2CQllZHgKLSNkZWZpbmUgcmVnX0FNWF9USUxFCQllZHgK LSNkZWZpbmUgcmVnX0FNWF9JTlQ4CQllZHgKLSNkZWZpbmUgcmVnX0lCUlNfSUJQQgkJZWR4Ci0j ZGVmaW5lIHJlZ19TVElCUAkJZWR4Ci0jZGVmaW5lIHJlZ19MMURfRkxVU0gJCWVkeAotI2RlZmlu ZSByZWdfQVJDSF9DQVBBQklMSVRJRVMJZWR4Ci0jZGVmaW5lIHJlZ19DT1JFX0NBUEFCSUxJVElF UwllZHgKLSNkZWZpbmUgcmVnX1NTQkQJCWVkeAotCi0vKiBDT01NT05fQ1BVSURfSU5ERVhfODAw MDAwMDEuICAqLwotCi0vKiBFQ1guICAqLwotI2RlZmluZSByZWdfTEFIRjY0X1NBSEY2NAllY3gK LSNkZWZpbmUgcmVnX1NWTQkJCWVjeAotI2RlZmluZSByZWdfTFpDTlQJCWVjeAotI2RlZmluZSBy ZWdfU1NFNEEJCWVjeAotI2RlZmluZSByZWdfUFJFRkVUQ0hXCQllY3gKLSNkZWZpbmUgcmVnX1hP UAkJCWVjeAotI2RlZmluZSByZWdfTFdQCQkJZWN4Ci0jZGVmaW5lIHJlZ19GTUE0CQllY3gKLSNk ZWZpbmUgcmVnX1RCTQkJCWVjeAotCi0vKiBFRFguICAqLwotI2RlZmluZSByZWdfU1lTQ0FMTF9T WVNSRVQJZWR4Ci0jZGVmaW5lIHJlZ19OWAkJCWVkeAotI2RlZmluZSByZWdfUEFHRTFHQgkJZWR4 Ci0jZGVmaW5lIHJlZ19SRFRTQ1AJCWVkeAotI2RlZmluZSByZWdfTE0JCQllZHgKLQotLyogQ09N TU9OX0NQVUlEX0lOREVYX0RfRUNYXzEuICAqLwotCi0vKiBFQVguICAqLwotI2RlZmluZSByZWdf WFNBVkVPUFQJCWVheAotI2RlZmluZSByZWdfWFNBVkVDCQllYXgKLSNkZWZpbmUgcmVnX1hHRVRC Vl9FQ1hfMQllYXgKLSNkZWZpbmUgcmVnX1hTQVZFUwkJZWF4Ci0jZGVmaW5lIHJlZ19YRkQJCQll YXgKLQotLyogQ09NTU9OX0NQVUlEX0lOREVYXzgwMDAwMDA3LiAgKi8KLQotLyogRURYLiAgKi8K LSNkZWZpbmUgcmVnX0lOVkFSSUFOVF9UU0MJZWR4Ci0KLS8qIENPTU1PTl9DUFVJRF9JTkRFWF84 MDAwMDAwOC4gICovCi0KLS8qIEVCWC4gICovCi0jZGVmaW5lIHJlZ19XQk5PSU5WRAkJZWJ4Ci0K LS8qIENPTU1PTl9DUFVJRF9JTkRFWF83X0VDWF8xLiAgKi8KLQotLyogRUFYLiAgKi8KLSNkZWZp bmUgcmVnX0FWWF9WTk5JCQllYXgKLSNkZWZpbmUgcmVnX0FWWDUxMl9CRjE2CQllYXgKLSNkZWZp bmUgcmVnX0ZaTFJNCQllYXgKLSNkZWZpbmUgcmVnX0ZTUlMJCWVheAotI2RlZmluZSByZWdfRlNS Q1MJCWVheAotI2RlZmluZSByZWdfSFJFU0VUCQllYXgKLSNkZWZpbmUgcmVnX0xBTQkJCWVheAot Ci0vKiBDT01NT05fQ1BVSURfSU5ERVhfMTkuICAqLworI2RlZmluZSBDUFVfRkVBVFVSRV9VU0FC TEUobmFtZSkgeDg2X2NwdV9pc191c2FibGUgKHg4Nl9jcHVfIyNuYW1lKQogCi0vKiBFQlguICAq LwotI2RlZmluZSByZWdfQUVTS0xFCQllYngKLSNkZWZpbmUgcmVnX1dJREVfS0wJCWVieAorX19F TkRfREVDTFMKIAogI2VuZGlmICAvKiBfU1lTX1BMQVRGT1JNX1g4Nl9IICovCmRpZmYgLS1naXQg YS9zeXNkZXBzL3g4Ni90c3QtZ2V0LWNwdS1mZWF0dXJlcy5jIGIvc3lzZGVwcy94ODYvdHN0LWdl dC1jcHUtZmVhdHVyZXMuYwppbmRleCAzOWYyODdkMmEwLi5kY2RiODZiYjkzIDEwMDY0NAotLS0g YS9zeXNkZXBzL3g4Ni90c3QtZ2V0LWNwdS1mZWF0dXJlcy5jCisrKyBiL3N5c2RlcHMveDg2L3Rz dC1nZXQtY3B1LWZlYXR1cmVzLmMKQEAgLTEsNCArMSw0IEBACi0vKiBUZXN0IGNhc2UgZm9yIF9f eDg2X2dldF9jcHVfZmVhdHVyZXMgaW50ZXJmYWNlCisvKiBUZXN0IGNhc2UgZm9yIDxzeXMvcGxh dGZvcm0veDg2Lmg+IGludGVyZmFjZQogICAgQ29weXJpZ2h0IChDKSAyMDE1LTIwMjEgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05V IEMgTGlicmFyeS4KIApAQCAtMzMsMzYgKzMzLDkgQEAKICAgICAgIHByaW50ZiAoIiAgIiAjbmFt ZSAiXG4iKTsJCVwKICAgfQogCi1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGNwdV9raW5kc1td ID0KLXsKLSAgIlVua25vd24iLAotICAiSW50ZWwiLAotICAiQU1EIiwKLSAgIlpIQU9YSU4iLAot ICAiT3RoZXIiLAotfTsKLQogc3RhdGljIGludAogZG9fdGVzdCAodm9pZCkKIHsKLSAgY29uc3Qg c3RydWN0IGNwdV9mZWF0dXJlcyAqY3B1X2ZlYXR1cmVzID0gX194ODZfZ2V0X2NwdV9mZWF0dXJl cyAoMCk7Ci0KLSAgc3dpdGNoIChjcHVfZmVhdHVyZXMtPmJhc2ljLmtpbmQpCi0gICAgewotICAg IGNhc2UgYXJjaF9raW5kX2ludGVsOgotICAgIGNhc2UgYXJjaF9raW5kX2FtZDoKLSAgICBjYXNl IGFyY2hfa2luZF96aGFveGluOgotICAgIGNhc2UgYXJjaF9raW5kX290aGVyOgotICAgICAgcHJp bnRmICgiVmVuZG9yOiAlc1xuIiwgY3B1X2tpbmRzW2NwdV9mZWF0dXJlcy0+YmFzaWMua2luZF0p OwotICAgICAgcHJpbnRmICgiRmFtaWx5OiAweCV4XG4iLCBjcHVfZmVhdHVyZXMtPmJhc2ljLmZh bWlseSk7Ci0gICAgICBwcmludGYgKCJNb2RlbDogMHgleFxuIiwgY3B1X2ZlYXR1cmVzLT5iYXNp Yy5tb2RlbCk7Ci0gICAgICBwcmludGYgKCJTdGVwcGluZzogMHgleFxuIiwgY3B1X2ZlYXR1cmVz LT5iYXNpYy5zdGVwcGluZyk7Ci0gICAgICBicmVhazsKLQotICAgIGRlZmF1bHQ6Ci0gICAgICBh Ym9ydCAoKTsKLSAgICB9Ci0KICNpZmRlZiBfX1NTRTJfXwogICBURVNUX1ZFUklGWV9FWElUIChI QVNfQ1BVX0ZFQVRVUkUgKFNTRTIpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lzZGVwcy94ODYv dHN0LWlzYS1sZXZlbC0xLmMgYi9zeXNkZXBzL3g4Ni90c3QtaXNhLWxldmVsLTEuYwppbmRleCBj ZjYxMWU4Yjc4Li4zOGVkYWJlNzVkIDEwMDY0NAotLS0gYS9zeXNkZXBzL3g4Ni90c3QtaXNhLWxl dmVsLTEuYworKysgYi9zeXNkZXBzL3g4Ni90c3QtaXNhLWxldmVsLTEuYwpAQCAtNjAsOCArNjAs NyBAQCBkb190ZXN0XzEgKGNvbnN0IGNoYXIgKm1vZG5hbWUsIGJvb2wgZmFpbCkKIHN0YXRpYyBp bnQKIGRvX3Rlc3QgKHZvaWQpCiB7Ci0gIGNvbnN0IHN0cnVjdCBjcHVfZmVhdHVyZXMgKmNwdV9m ZWF0dXJlcwotICAgID0gX194ODZfZ2V0X2NwdV9mZWF0dXJlcyAoQ09NTU9OX0NQVUlEX0lOREVY X01BWCk7CisgIGNvbnN0IHN0cnVjdCBjcHVfZmVhdHVyZXMgKmNwdV9mZWF0dXJlcyA9IF9fZ2V0 X2NwdV9mZWF0dXJlcyAoKTsKICAgdW5zaWduZWQgaW50IGlzYV9sZXZlbCA9IGdldF9pc2FfbGV2 ZWwgKGNwdV9mZWF0dXJlcyk7CiAgIGJvb2wgaGFzX2lzYV9iYXNlbGluZSA9ICgoaXNhX2xldmVs ICYgR05VX1BST1BFUlRZX1g4Nl9JU0FfMV9CQVNFTElORSkKIAkJCSAgID09IEdOVV9QUk9QRVJU WV9YODZfSVNBXzFfQkFTRUxJTkUpOwpkaWZmIC0tZ2l0IGEvc3lzZGVwcy94ODZfNjQvZGwtaHdj YXBzLXN1YmRpcnMuYyBiL3N5c2RlcHMveDg2XzY0L2RsLWh3Y2Fwcy1zdWJkaXJzLmMKaW5kZXgg NGFjZDM0MzE4My4uYjhmMjdkN2Y5OCAxMDA2NDQKLS0tIGEvc3lzZGVwcy94ODZfNjQvZGwtaHdj YXBzLXN1YmRpcnMuYworKysgYi9zeXNkZXBzL3g4Nl82NC9kbC1od2NhcHMtc3ViZGlycy5jCkBA IC0yNyw4ICsyNyw3IEBAIGVudW0geyBzdWJkaXJzX2NvdW50ID0gMyB9OyAvKiBOdW1iZXIgb2Yg Y29tcG9uZW50cyBpbiBfZGxfaHdjYXBzX3N1YmRpcnMuICAqLwogdWludDMyX3QKIF9kbF9od2Nh cHNfc3ViZGlyc19hY3RpdmUgKHZvaWQpCiB7Ci0gIGNvbnN0IHN0cnVjdCBjcHVfZmVhdHVyZXMg KmNwdV9mZWF0dXJlcwotICAgID0gX194ODZfZ2V0X2NwdV9mZWF0dXJlcyAoQ09NTU9OX0NQVUlE X0lOREVYX01BWCk7CisgIGNvbnN0IHN0cnVjdCBjcHVfZmVhdHVyZXMgKmNwdV9mZWF0dXJlcyA9 IF9fZ2V0X2NwdV9mZWF0dXJlcyAoKTsKICAgdW5zaWduZWQgaW50IGlzYV9sZXZlbCA9IGdldF9p c2FfbGV2ZWwgKGNwdV9mZWF0dXJlcyk7CiAgIGludCBhY3RpdmUgPSAwOwogCmRpZmYgLS1naXQg YS9zeXNkZXBzL3g4Nl82NC90c3QtZ2xpYmMtaHdjYXBzLmMgYi9zeXNkZXBzL3g4Nl82NC90c3Qt Z2xpYmMtaHdjYXBzLmMKaW5kZXggMzdiNjFkM2M4NC4uNGM4ZDI0YjNmMiAxMDA2NDQKLS0tIGEv c3lzZGVwcy94ODZfNjQvdHN0LWdsaWJjLWh3Y2Fwcy5jCisrKyBiL3N5c2RlcHMveDg2XzY0L3Rz dC1nbGliYy1od2NhcHMuYwpAQCAtMzAsOCArMzAsNyBAQCBleHRlcm4gaW50IG1hcmtlcjQgKHZv aWQpOwogc3RhdGljIGludAogY29tcHV0ZV9sZXZlbCAodm9pZCkKIHsKLSAgY29uc3Qgc3RydWN0 IGNwdV9mZWF0dXJlcyAqY3B1X2ZlYXR1cmVzCi0gICAgPSBfX3g4Nl9nZXRfY3B1X2ZlYXR1cmVz IChDT01NT05fQ1BVSURfSU5ERVhfTUFYKTsKKyAgY29uc3Qgc3RydWN0IGNwdV9mZWF0dXJlcyAq Y3B1X2ZlYXR1cmVzID0gX19nZXRfY3B1X2ZlYXR1cmVzICgpOwogICB1bnNpZ25lZCBpbnQgaXNh X2xldmVsID0gZ2V0X2lzYV9sZXZlbCAoY3B1X2ZlYXR1cmVzKTsKIAogICBpZiAoIShpc2FfbGV2 ZWwgJiBHTlVfUFJPUEVSVFlfWDg2X0lTQV8xX1YyKSkKLS0gCjIuMjkuMgoK --000000000000b3fcad05b95e07ed--