From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 86477 invoked by alias); 29 Apr 2016 14:11:37 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 86464 invoked by uid 89); 29 Apr 2016 14:11:36 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.7 required=5.0 tests=AWL,BAYES_50,KAM_ASCII_DIVIDERS,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_NONE,RP_MATCHES_RCVD autolearn=no version=3.3.2 spammy=icbi, 0.5, 1525, shari X-HELO: mailout09.t-online.de Received: from mailout09.t-online.de (HELO mailout09.t-online.de) (194.25.134.84) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Fri, 29 Apr 2016 14:11:18 +0000 Received: from fwd27.aul.t-online.de (fwd27.aul.t-online.de [172.20.26.132]) by mailout09.t-online.de (Postfix) with SMTP id 7BF3D46FFE6 for ; Fri, 29 Apr 2016 16:11:12 +0200 (CEST) Received: from [192.168.0.16] (ZYM4OBZZrhWAOSzdCUN-Sniw2lganCm-WoIqXl65kle55Uw3f6oLRuBj3S6FOb8ZsG@[115.165.93.200]) by fwd27.t-online.de with (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384 encrypted) esmtp id 1aw98P-0ljdOC0; Fri, 29 Apr 2016 16:11:09 +0200 Message-ID: <1461939066.31604.38.camel@t-online.de> Subject: Re: [SH][committed] Remove SH5 support in compiler From: Oleg Endo To: gcc-patches Date: Fri, 29 Apr 2016 14:11:00 -0000 In-Reply-To: <1461926715.31604.28.camel@t-online.de> References: <1461806825.31604.5.camel@t-online.de> <1461926715.31604.28.camel@t-online.de> Content-Type: multipart/mixed; boundary="=-DKe2w3XL8Ofl8YoBaK4L" Mime-Version: 1.0 X-IsSubscribed: yes X-SW-Source: 2016-04/txt/msg02015.txt.bz2 --=-DKe2w3XL8Ofl8YoBaK4L Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Content-length: 1170 On Fri, 2016-04-29 at 19:45 +0900, Oleg Endo wrote: > On Thu, 2016-04-28 at 10:27 +0900, Oleg Endo wrote: > > > The removal of SH5 support from GCC has been announced here > > https://gcc.gnu.org/ml/gcc/2015-08/msg00101.html > > > > The attached patch removes support for SH5 in the compiler back > > end. > > There are still some leftovers and new simplification > > opportunities. > > These will be addressed in later follow up patches. > > > > Tested on sh-elf with > > > > make -k check RUNTESTFLAGS="--target_board=sh-sim\{-m2/-ml,-m2/-mb, > > -m2a/-mb,-m4/-ml,-m4/-mb,-m4a/-ml,-m4a/-mb}" > > The attached patch removes some leftovers and reinstantes the divsf3 > expander pattern which got accidentally deleted by the previous > patch. The attached patch removes SH5 support from libgcc. Tested as above. Committed as r235640. Cheers, Oleg libgcc/ChangeLog: * config/sh/crt1.S: Remove SH5 support. * config/sh/crti.S: Likewise. * config/sh/crtn.S: Likewise. * config/sh/lib1funcs-4-300.S: Likewise. * config/sh/lib1funcs-Os-4-200.S: Likewise. * config/sh/lib1funcs.S: Likewise. * config/sh/linux-unwind.h: Likewise. * config/sh/t-sh64: Delete. --=-DKe2w3XL8Ofl8YoBaK4L Content-Disposition: attachment; filename="remove_sh64_sh5_libgcc_4.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="remove_sh64_sh5_libgcc_4.patch"; charset="UTF-8" Content-length: 105530 ZGlmZiAtLWdpdCBhL2xpYmdjYy9jb25maWcvc2gvY3J0MS5TIGIvbGliZ2Nj L2NvbmZpZy9zaC9jcnQxLlMKaW5kZXggNDVlNGFhZC4uNGUzYzI3ZCAxMDA2 NDQKLS0tIGEvbGliZ2NjL2NvbmZpZy9zaC9jcnQxLlMKKysrIGIvbGliZ2Nj L2NvbmZpZy9zaC9jcnQxLlMKQEAgLTM4LDY0OCArMzgsNiBAQCBfX3RpbWVy X3N0YWNrOgogCS8qIDstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAJTm9ybWFsIG5ld2xpYiBjcnQxLlMgKi8KIAotI2lmZGVm IF9fU0g1X18KLQkuc2VjdGlvbiAuZGF0YSwiYXciCi0JLmdsb2JhbCBfX19k YXRhCi1fX19kYXRhOgotCi0JLnNlY3Rpb24gLnJvZGF0YSwiYSIKLQkuZ2xv YmFsIF9fX3JvZGF0YQotX19fcm9kYXRhOgotCi0jZGVmaW5lIElDQ1JfQkFT RSAgMHgwMTYwMDAwMAotI2RlZmluZSBPQ0NSX0JBU0UgIDB4MDFlMDAwMDAK LSNkZWZpbmUgTU1VSVJfQkFTRSAweDAwMDAwMDAwCi0jZGVmaW5lIE1NVURS X0JBU0UgMHgwMDgwMDAwMAotCi0jZGVmaW5lIFBURV9FTkFCTEVEICAgICAx Ci0jZGVmaW5lIFBURV9ESVNBQkxFRCAgICAwCi0KLSNkZWZpbmUgUFRFX1NI QVJFRCAoMSA8PCAxKQotI2RlZmluZSBQVEVfTk9UX1NIQVJFRCAgMAotCi0j ZGVmaW5lIFBURV9DQl9VTkNBQ0hFQUJMRSAgMAotI2RlZmluZSBQVEVfQ0Jf REVWSUNFICAgICAgIDEKLSNkZWZpbmUgUFRFX0NCX0NBQ0hFQUJMRV9XQiAy Ci0jZGVmaW5lIFBURV9DQl9DQUNIRUFCTEVfV1QgMwotCi0jZGVmaW5lIFBU RV9TWl80S0IgICAoMCA8PCAzKQotI2RlZmluZSBQVEVfU1pfNjRLQiAgKDEg PDwgMykKLSNkZWZpbmUgUFRFX1NaXzFNQiAgICgyIDw8IDMpCi0jZGVmaW5l IFBURV9TWl81MTJNQiAoMyA8PCAzKQotCi0jZGVmaW5lIFBURV9QUlIgICAg ICAoMSA8PCA2KQotI2RlZmluZSBQVEVfUFJYICAgICAgKDEgPDwgNykKLSNk ZWZpbmUgUFRFX1BSVyAgICAgICgxIDw8IDgpCi0jZGVmaW5lIFBURV9QUlUg ICAgICAoMSA8PCA5KQotCi0jZGVmaW5lIFNSX01NVV9CSVQgICAgICAgICAg MzEKLSNkZWZpbmUgU1JfQkxfQklUICAgICAgICAgICAyOAotCi0jZGVmaW5l IEFMSUdOXzRLQiAgKDB4ZmZmKQotI2RlZmluZSBBTElHTl8xTUIgICgweGZm ZmZmKQotI2RlZmluZSBBTElHTl81MTJNQiAoMHgxZmZmZmZmZikKLQotI2Rl ZmluZSBEWU5BQ09OX0JBU0UgICAgICAgICAgICAgICAweDBmMDAwMDAwCi0j ZGVmaW5lIERNX0NCX0RMSU5LX0JBU0UgICAgICAgICAgIDB4MGMwMDAwMDAK LSNkZWZpbmUgRE1fREJfRExJTktfQkFTRSAgICAgICAgICAgMHgwYjAwMDAw MAotCi0jZGVmaW5lIEZFTUlfQVJFQV8wICAgICAgICAgICAgICAgIDB4MDAw MDAwMDAKLSNkZWZpbmUgRkVNSV9BUkVBXzEgICAgICAgICAgICAgICAgMHgw NDAwMDAwMAotI2RlZmluZSBGRU1JX0FSRUFfMiAgICAgICAgICAgICAgICAw eDA1MDAwMDAwCi0jZGVmaW5lIEZFTUlfQVJFQV8zICAgICAgICAgICAgICAg IDB4MDYwMDAwMDAKLSNkZWZpbmUgRkVNSV9BUkVBXzQgICAgICAgICAgICAg ICAgMHgwNzAwMDAwMAotI2RlZmluZSBGRU1JX0NCICAgICAgICAgICAgICAg ICAgICAweDA4MDAwMDAwCi0KLSNkZWZpbmUgRU1JX0JBU0UgICAgICAgICAg ICAgICAgICAgMFg4MDAwMDAwMAotCi0jZGVmaW5lIERNQV9CQVNFICAgICAg ICAgICAgICAgICAgIDBYMGUwMDAwMDAKLQotI2RlZmluZSBDUFVfQkFTRSAg ICAgICAgICAgICAgICAgICAwWDBkMDAwMDAwCi0KLSNkZWZpbmUgUEVSSVBI X0JBU0UgICAgICAgICAgICAgICAgMFgwOTAwMDAwMAotI2RlZmluZSBETUFD X0JBU0UgICAgICAgICAgICAgICAgICAweDBlMDAwMDAwCi0jZGVmaW5lIElO VENfQkFTRSAgICAgICAgICAgICAgICAgIDB4MGEwMDAwMDAKLSNkZWZpbmUg Q1BSQ19CQVNFICAgICAgICAgICAgICAgICAgMHgwYTAxMDAwMAotI2RlZmlu ZSBUTVVfQkFTRSAgICAgICAgICAgICAgICAgICAweDBhMDIwMDAwCi0jZGVm aW5lIFNDSUZfQkFTRSAgICAgICAgICAgICAgICAgIDB4MGEwMzAwMDAKLSNk ZWZpbmUgUlRDX0JBU0UgICAgICAgICAgICAgICAgICAgMHgwYTA0MDAwMAot Ci0KLQotI2RlZmluZSBMT0FEX0NPTlNUMzIodmFsLCByZWcpIFwKLQltb3Zp CSgodmFsKSA+PiAxNikgJiA2NTUzNSwgcmVnOyBcCi0Jc2hvcmkJKHZhbCkg JiA2NTUzNSwgcmVnCi0KLSNkZWZpbmUgTE9BRF9QVEVIX1ZBTChzeW0sIGFs aWduLCBiaXRzLCBzY3JhdGNoX3JlZywgcmVnKSBcCi0JTE9BRF9BRERSIChz eW0sIHJlZyk7IFwKLQlMT0FEX0NPTlNUMzIgKChhbGlnbiksIHNjcmF0Y2hf cmVnKTsgXAotCWFuZGMJcmVnLCBzY3JhdGNoX3JlZywgcmVnOyBcCi0JTE9B RF9DT05TVDMyICgoYml0cyksIHNjcmF0Y2hfcmVnKTsgXAotCW9yCXJlZywg c2NyYXRjaF9yZWcsIHJlZwotCi0jZGVmaW5lIExPQURfUFRFTF9WQUwoc3lt LCBhbGlnbiwgYml0cywgc2NyYXRjaF9yZWcsIHJlZykgXAotCUxPQURfQURE UiAoc3ltLCByZWcpOyBcCi0JTE9BRF9DT05TVDMyICgoYWxpZ24pLCBzY3Jh dGNoX3JlZyk7IFwKLQlhbmRjCXJlZywgc2NyYXRjaF9yZWcsIHJlZzsgXAot CUxPQURfQ09OU1QzMiAoKGJpdHMpLCBzY3JhdGNoX3JlZyk7IFwKLQlvcgly ZWcsIHNjcmF0Y2hfcmVnLCByZWcKLQotI2RlZmluZSBTRVRfUFRFKHB0ZV9h ZGRyX3JlZywgcHRlaF92YWxfcmVnLCBwdGVsX3ZhbF9yZWcpIFwKLQlwdXRj ZmcgIHB0ZV9hZGRyX3JlZywgMCwgcjYzOyBcCi0JcHV0Y2ZnICBwdGVfYWRk cl9yZWcsIDEsIHB0ZWxfdmFsX3JlZzsgXAotCXB1dGNmZyAgcHRlX2FkZHJf cmVnLCAwLCBwdGVoX3ZhbF9yZWcKLQotI2lmIF9fU0g1X18gPT0gNjQKLQku c2VjdGlvbiAudGV4dCwiYXgiCi0jZGVmaW5lIExPQURfQUREUihzeW0sIHJl ZykgXAotCW1vdmkJKHN5bSA+PiA0OCkgJiA2NTUzNSwgcmVnOyBcCi0Jc2hv cmkJKHN5bSA+PiAzMikgJiA2NTUzNSwgcmVnOyBcCi0Jc2hvcmkJKHN5bSA+ PiAxNikgJiA2NTUzNSwgcmVnOyBcCi0Jc2hvcmkJc3ltICYgNjU1MzUsIHJl ZwotI2Vsc2UKLQkubW9kZQlTSG1lZGlhCi0JLnNlY3Rpb24gLnRleHQuLlNI bWVkaWEzMiwiYXgiCi0jZGVmaW5lIExPQURfQUREUihzeW0sIHJlZykgXAot CW1vdmkJKHN5bSA+PiAxNikgJiA2NTUzNSwgcmVnOyBcCi0Jc2hvcmkJc3lt ICYgNjU1MzUsIHJlZwotI2VuZGlmCi0JLmdsb2JhbCBzdGFydAotc3RhcnQ6 Ci0JTE9BRF9BRERSIChfc3RhY2ssIHIxNSkKLQotI2lmZGVmIE1NVV9TVVBQ T1JUCi0JISBTZXQgdXAgdGhlIFZNIHVzaW5nIHRoZSBNTVUgYW5kIGNhY2hl cwotCi0JISAudm1fZXAgaXMgZmlyc3QgaW5zdHJ1Y3Rpb24gdG8gZXhlY3V0 ZQotCSEgYWZ0ZXIgVk0gaW5pdGlhbGl6YXRpb24KLQlwdC9sCS52bV9lcCwg dHIxCi0JCi0JISBDb25maWd1cmUgaW5zdHJ1Y3Rpb24gY2FjaGUgKElDQ1Ip Ci0JbW92aQkzLCByMgotCW1vdmkJMCwgcjMKLQlMT0FEX0FERFIgKElDQ1Jf QkFTRSwgcjEpCi0JcHV0Y2ZnCXIxLCAwLCByMgotCXB1dGNmZwlyMSwgMSwg cjMKLQotCSEgbW92aQk3LCByMiAhIHdyaXRlIHRocm91Z2gKLQkhIENvbmZp Z3VyZSBvcGVyYW5kIGNhY2hlIChPQ0NSKQotCUxPQURfQUREUiAoT0NDUl9C QVNFLCByMSkKLQlwdXRjZmcJcjEsIDAsIHIyCi0JcHV0Y2ZnCXIxLCAxLCBy MwotCi0JISBEaXNhYmxlIGFsbCBQVEUgdHJhbnNsYXRpb25zCi0JTE9BRF9B RERSIChNTVVJUl9CQVNFLCByMSkKLQlMT0FEX0FERFIgKE1NVURSX0JBU0Us IHIyKQotCW1vdmkJNjQsIHIzCi0JcHQvbAkuZGlzYWJsZV9wdGVzX2xvb3As IHRyMAotLmRpc2FibGVfcHRlc19sb29wOgotCXB1dGNmZwlyMSwgMCwgcjYz Ci0JcHV0Y2ZnCXIyLCAwLCByNjMKLQlhZGRpCXIxLCAxNiwgcjEKLQlhZGRp CXIyLCAxNiwgcjIKLQlhZGRpCXIzLCAtMSwgcjMKLQliZ3QJcjMsIHI2Mywg dHIwCi0KLQlMT0FEX0FERFIgKE1NVUlSX0JBU0UsIHIxKQotCi0JISBGRU1J IGluc3RydWN0aW9uIG1hcHBpbmdzCi0JISAgIEFyZWEgMCAtIDFNYiBjYWNo ZWFibGUgYXQgMHgwMDAwMDAwMAotCSEgICBBcmVhIDEgLSBOb25lCi0JISAg IEFyZWEgMiAtIDFNYiBjYWNoZWFibGUgYXQgMHgwNTAwMDAwMAotCSEgICAg ICAgICAgLSAxTWIgY2FjaGVhYmxlIGF0IDB4MDUxMDAwMDAKLQkhICAgQXJl YSAzIC0gTm9uZQotCSEgICBBcmVhIDQgLSBOb25lCi0KLQkhIE1hcCBhIDFN YiBwYWdlIGZvciBpbnN0cnVjdGlvbnMgYXQgMHgwMDAwMDAwMAotCUxPQURf UFRFSF9WQUwgKEZFTUlfQVJFQV8wLCBBTElHTl8xTUIsIFBURV9FTkFCTEVE IHwgUFRFX05PVF9TSEFSRUQsIHIyNSwgcjIpCi0JTE9BRF9QVEVMX1ZBTCAo RkVNSV9BUkVBXzAsIEFMSUdOXzFNQiwgUFRFX0NCX0NBQ0hFQUJMRV9XQiB8 IFBURV9TWl8xTUIgfCBQVEVfUFJYIHwgUFRFX1BSVSwgcjI1LCByMykKLQlT RVRfUFRFIChyMSwgcjIsIHIzKQotCi0JISBNYXAgYSAxTWIgcGFnZSBmb3Ig aW5zdHJ1Y3Rpb25zIGF0IDB4MDUwMDAwMDAKLQlhZGRpCXIxLCAxNiwgcjEK LQlMT0FEX1BURUhfVkFMIChGRU1JX0FSRUFfMiwgQUxJR05fMU1CLCBQVEVf RU5BQkxFRCB8IFBURV9OT1RfU0hBUkVELCByMjUsIHIyKQotCUxPQURfUFRF TF9WQUwgKEZFTUlfQVJFQV8yLCBBTElHTl8xTUIsIFBURV9DQl9DQUNIRUFC TEVfV0IgfCBQVEVfU1pfMU1CIHwgUFRFX1BSWCB8IFBURV9QUlUsIHIyNSwg cjMpCi0JU0VUX1BURSAocjEsIHIyLCByMykKLQotCSEgTWFwIGEgMU1iIHBh Z2UgZm9yIGluc3RydWN0aW9ucyBhdCAweDA1MTAwMDAwCi0JYWRkaQlyMSwg MTYsIHIxCi0JTE9BRF9QVEVIX1ZBTCAoKEZFTUlfQVJFQV8yKzB4MTAwMDAw KSwgQUxJR05fMU1CLCBQVEVfRU5BQkxFRCB8IFBURV9OT1RfU0hBUkVELCBy MjUsIHIyKQotCUxPQURfUFRFTF9WQUwgKChGRU1JX0FSRUFfMisweDEwMDAw MCksIEFMSUdOXzFNQiwgUFRFX0NCX0NBQ0hFQUJMRV9XQiB8IFBURV9TWl8x TUIgfCBQVEVfUFJYIHwgUFRFX1BSVSwgcjI1LCByMykKLQlTRVRfUFRFIChy MSwgcjIsIHIzKQotCi0JISBNYXAgYSA1MTJNIHBhZ2UgZm9yIGluc3RydWN0 aW9ucyBhdCBFTUkgYmFzZQotCWFkZGkJcjEsIDE2LCByMQotCUxPQURfUFRF SF9WQUwgKEVNSV9CQVNFLCBBTElHTl81MTJNQiwgUFRFX0VOQUJMRUQgfCBQ VEVfTk9UX1NIQVJFRCwgcjI1LCByMikKLQlMT0FEX1BURUxfVkFMIChFTUlf QkFTRSwgQUxJR05fNTEyTUIsIFBURV9DQl9DQUNIRUFCTEVfV0IgfCBQVEVf U1pfNTEyTUIgfCBQVEVfUFJYIHwgUFRFX1BSVSwgcjI1LCByMykKLQlTRVRf UFRFIChyMSwgcjIsIHIzKQotCi0JISBNYXAgYSA0SyBwYWdlIGZvciBpbnN0 cnVjdGlvbnMgYXQgRE1fREJfRExJTktfQkFTRQotCWFkZGkJcjEsIDE2LCBy MQotCUxPQURfUFRFSF9WQUwgKERNX0RCX0RMSU5LX0JBU0UsIEFMSUdOXzRL QiwgUFRFX0VOQUJMRUQgfCBQVEVfTk9UX1NIQVJFRCwgcjI1LCByMikKLQlM T0FEX1BURUxfVkFMIChETV9EQl9ETElOS19CQVNFLCBBTElHTl80S0IsIFBU RV9DQl9DQUNIRUFCTEVfV0IgfCBQVEVfU1pfNEtCIHwgUFRFX1BSWCB8IFBU RV9QUlUsIHIyNSwgcjMpCi0JU0VUX1BURSAocjEsIHIyLCByMykKLQotCUxP QURfQUREUiAoTU1VRFJfQkFTRSwgcjEpCi0KLQkhIEZFTUkgZGF0YSBtYXBw aW5ncwotCSEgICBBcmVhIDAgLSAxTWIgY2FjaGVhYmxlIGF0IDB4MDAwMDAw MDAKLQkhICAgQXJlYSAxIC0gMU1iIGRldmljZSBhdCAweDA0MDAwMDAwCi0J ISAgIEFyZWEgMiAtIDFNYiBjYWNoZWFibGUgYXQgMHgwNTAwMDAwMAotCSEg ICAgICAgICAgLSAxTWIgY2FjaGVhYmxlIGF0IDB4MDUxMDAwMDAKLQkhICAg QXJlYSAzIC0gTm9uZQotCSEgICBBcmVhIDQgLSBOb25lCi0JISAgIENCICAg ICAtIDFNYiBkZXZpY2UgYXQgMHgwODAwMDAwMAotCi0JISBNYXAgYSAxTWIg cGFnZSBmb3IgZGF0YSBhdCAweDAwMDAwMDAwCi0JTE9BRF9QVEVIX1ZBTCAo RkVNSV9BUkVBXzAsIEFMSUdOXzFNQiwgUFRFX0VOQUJMRUQgfCBQVEVfTk9U X1NIQVJFRCwgcjI1LCByMikKLQlMT0FEX1BURUxfVkFMIChGRU1JX0FSRUFf MCwgQUxJR05fMU1CLCBQVEVfQ0JfQ0FDSEVBQkxFX1dCIHwgUFRFX1NaXzFN QiB8IFBURV9QUlIgfCBQVEVfUFJXIHwgUFRFX1BSVSwgcjI1LCByMykKLQlT RVRfUFRFIChyMSwgcjIsIHIzKQotCi0JISBNYXAgYSAxTWIgcGFnZSBmb3Ig ZGF0YSBhdCAweDA0MDAwMDAwCi0JYWRkaQlyMSwgMTYsIHIxCi0JTE9BRF9Q VEVIX1ZBTCAoRkVNSV9BUkVBXzEsIEFMSUdOXzFNQiwgUFRFX0VOQUJMRUQg fCBQVEVfTk9UX1NIQVJFRCwgcjI1LCByMikKLQlMT0FEX1BURUxfVkFMIChG RU1JX0FSRUFfMSwgQUxJR05fMU1CLCBQVEVfQ0JfREVWSUNFIHwgUFRFX1Na XzFNQiB8IFBURV9QUlIgfCBQVEVfUFJXIHwgUFRFX1BSVSwgcjI1LCByMykK LQlTRVRfUFRFIChyMSwgcjIsIHIzKQotCi0JISBNYXAgYSAxTWIgcGFnZSBm b3IgZGF0YSBhdCAweDA1MDAwMDAwCi0JYWRkaQlyMSwgMTYsIHIxCi0JTE9B RF9QVEVIX1ZBTCAoRkVNSV9BUkVBXzIsIEFMSUdOXzFNQiwgUFRFX0VOQUJM RUQgfCBQVEVfTk9UX1NIQVJFRCwgcjI1LCByMikKLQlMT0FEX1BURUxfVkFM IChGRU1JX0FSRUFfMiwgQUxJR05fMU1CLCBQVEVfQ0JfQ0FDSEVBQkxFX1dC IHwgUFRFX1NaXzFNQiB8IFBURV9QUlIgfCBQVEVfUFJXIHwgUFRFX1BSVSwg cjI1LCByMykKLQlTRVRfUFRFIChyMSwgcjIsIHIzKQotCi0JISBNYXAgYSAx TWIgcGFnZSBmb3IgZGF0YSBhdCAweDA1MTAwMDAwCi0JYWRkaQlyMSwgMTYs IHIxCi0JTE9BRF9QVEVIX1ZBTCAoKEZFTUlfQVJFQV8yKzB4MTAwMDAwKSwg QUxJR05fMU1CLCBQVEVfRU5BQkxFRCB8IFBURV9OT1RfU0hBUkVELCByMjUs IHIyKQotCUxPQURfUFRFTF9WQUwgKChGRU1JX0FSRUFfMisweDEwMDAwMCks IEFMSUdOXzFNQiwgUFRFX0NCX0NBQ0hFQUJMRV9XQiB8IFBURV9TWl8xTUIg fCBQVEVfUFJSIHwgUFRFX1BSVyB8IFBURV9QUlUsIHIyNSwgcjMpCi0JU0VU X1BURSAocjEsIHIyLCByMykKLQotCSEgTWFwIGEgNEsgcGFnZSBmb3IgcmVn aXN0ZXJzIGF0IDB4MDgwMDAwMDAKLQlhZGRpCXIxLCAxNiwgcjEKLQlMT0FE X1BURUhfVkFMIChGRU1JX0NCLCBBTElHTl80S0IsIFBURV9FTkFCTEVEIHwg UFRFX05PVF9TSEFSRUQsIHIyNSwgcjIpCi0JTE9BRF9QVEVMX1ZBTCAoRkVN SV9DQiwgQUxJR05fNEtCLCBQVEVfQ0JfREVWSUNFIHwgUFRFX1NaXzRLQiB8 IFBURV9QUlIgfCBQVEVfUFJXIHwgUFRFX1BSVSwgcjI1LCByMykKLQlTRVRf UFRFIChyMSwgcjIsIHIzKQotCi0JISBNYXAgYSA1MTJNIHBhZ2UgZm9yIGRh dGEgYXQgRU1JCi0JYWRkaQlyMSwgMTYsIHIxCi0JTE9BRF9QVEVIX1ZBTCAo RU1JX0JBU0UsIEFMSUdOXzUxMk1CLCBQVEVfRU5BQkxFRCB8IFBURV9OT1Rf U0hBUkVELCByMjUsIHIyKQotCUxPQURfUFRFTF9WQUwgKEVNSV9CQVNFLCBB TElHTl81MTJNQiwgUFRFX0NCX0NBQ0hFQUJMRV9XQiB8IFBURV9TWl81MTJN QiB8IFBURV9QUlIgfCBQVEVfUFJXIHwgUFRFX1BSVSwgcjI1LCByMykKLQlT RVRfUFRFIChyMSwgcjIsIHIzKQotCi0JISBNYXAgYSA0SyBwYWdlIGZvciBE WU5BQ09OIGF0IERZTkFDT05fQkFTRQotCWFkZGkJcjEsIDE2LCByMQotCUxP QURfUFRFSF9WQUwgKERZTkFDT05fQkFTRSwgQUxJR05fNEtCLCBQVEVfRU5B QkxFRCB8IFBURV9OT1RfU0hBUkVELCByMjUsIHIyKQotCUxPQURfUFRFTF9W QUwgKERZTkFDT05fQkFTRSwgQUxJR05fNEtCLCBQVEVfQ0JfREVWSUNFIHwg UFRFX1NaXzRLQiB8IFBURV9QUlIgfCBQVEVfUFJXIHwgUFRFX1BSVSwgcjI1 LCByMykKLQlTRVRfUFRFIChyMSwgcjIsIHIzKQotCi0JISBNYXAgYSA0SyBw YWdlIGZvciBpbnN0cnVjdGlvbnMgYXQgRE1fREJfRExJTktfQkFTRQotCWFk ZGkJcjEsIDE2LCByMQotCUxPQURfUFRFSF9WQUwgKERNX0RCX0RMSU5LX0JB U0UsIEFMSUdOXzRLQiwgUFRFX0VOQUJMRUQgfCBQVEVfTk9UX1NIQVJFRCwg cjI1LCByMikKLQlMT0FEX1BURUxfVkFMIChETV9EQl9ETElOS19CQVNFLCBB TElHTl80S0IsIFBURV9DQl9DQUNIRUFCTEVfV0IgfCBQVEVfU1pfNEtCIHwg UFRFX1BSUiB8IFBURV9QUlcgfCBQVEVfUFJVLCByMjUsIHIzKQotCVNFVF9Q VEUgKHIxLCByMiwgcjMpCi0KLQkhIE1hcCBhIDRLIHBhZ2UgZm9yIGRhdGEg YXQgRE1fREJfRExJTktfQkFTRSsweDEwMDAKLQlhZGRpCXIxLCAxNiwgcjEK LQlMT0FEX1BURUhfVkFMICgoRE1fREJfRExJTktfQkFTRSsweDEwMDApLCBB TElHTl80S0IsIFBURV9FTkFCTEVEIHwgUFRFX05PVF9TSEFSRUQsIHIyNSwg cjIpCi0JTE9BRF9QVEVMX1ZBTCAoKERNX0RCX0RMSU5LX0JBU0UrMHgxMDAw KSwgQUxJR05fNEtCLCBQVEVfQ0JfVU5DQUNIRUFCTEUgfCBQVEVfU1pfNEtC IHwgUFRFX1BSUiB8IFBURV9QUlcgfCBQVEVfUFJVLCByMjUsIHIzKQotCVNF VF9QVEUgKHIxLCByMiwgcjMpCi0KLQkhIE1hcCBhIDRLIHBhZ2UgZm9yIHN0 YWNrIERNX0RCX0RMSU5LX0JBU0UrMHgyMDAwCi0JYWRkaQlyMSwgMTYsIHIx Ci0JTE9BRF9QVEVIX1ZBTCAoKERNX0RCX0RMSU5LX0JBU0UrMHgyMDAwKSwg QUxJR05fNEtCLCBQVEVfRU5BQkxFRCB8IFBURV9OT1RfU0hBUkVELCByMjUs IHIyKQotCUxPQURfUFRFTF9WQUwgKChETV9EQl9ETElOS19CQVNFKzB4MjAw MCksIEFMSUdOXzRLQiwgUFRFX0NCX0NBQ0hFQUJMRV9XQiB8IFBURV9TWl80 S0IgfCBQVEVfUFJSIHwgUFRFX1BSVyB8IFBURV9QUlUsIHIyNSwgcjMpCi0J U0VUX1BURSAocjEsIHIyLCByMykKLQotCSEgTWFwIGEgMU0gcGFnZSBmb3Ig RE1fQ0JfQkFTRTIgYXQgRE1fQ0JfRExJTksgCi0JISAweDBjMDAwMDAwIC0g MHgwYzBmZmZmZgotCWFkZGkJcjEsIDE2LCByMQotCUxPQURfUFRFSF9WQUwg KERNX0NCX0RMSU5LX0JBU0UsIEFMSUdOXzFNQiwgUFRFX0VOQUJMRUQgfCBQ VEVfTk9UX1NIQVJFRCwgcjI1LCByMikKLQlMT0FEX1BURUxfVkFMIChETV9D Ql9ETElOS19CQVNFLCBBTElHTl8xTUIsIFBURV9DQl9ERVZJQ0UgfCBQVEVf U1pfMU1CIHwgUFRFX1BSUiB8IFBURV9QUlcgfCBQVEVfUFJVLCByMjUsIHIz KQotCVNFVF9QVEUgKHIxLCByMiwgcjMpCi0KLQkhIE1hcCBhIDFNIHBhZ2Ug Zm9yIERNX0NCX0JBU0UyIGF0IERNX0NCX0RMSU5LIAotCSEgMHgwYzEwMDAw MCAtIDB4MGMxZmZmZmYKLQlhZGRpCXIxLCAxNiwgcjEKLQlMT0FEX1BURUhf VkFMICgoRE1fQ0JfRExJTktfQkFTRSsweDEwMDAwMCksIEFMSUdOXzFNQiwg UFRFX0VOQUJMRUQgfCBQVEVfTk9UX1NIQVJFRCwgcjI1LCByMikKLQlMT0FE X1BURUxfVkFMICgoRE1fQ0JfRExJTktfQkFTRSsweDEwMDAwMCksIEFMSUdO XzFNQiwgUFRFX0NCX0RFVklDRSB8IFBURV9TWl8xTUIgfCBQVEVfUFJSIHwg UFRFX1BSVyB8IFBURV9QUlUsIHIyNSwgcjMpCi0JU0VUX1BURSAocjEsIHIy LCByMykKLQotCSEgTWFwIGEgMU0gcGFnZSBmb3IgRE1fQ0JfQkFTRTIgYXQg RE1fQ0JfRExJTksgCi0JISAweDBjMjAwMDAwIC0gMHgwYzJmZmZmZgotCWFk ZGkJcjEsIDE2LCByMQotCUxPQURfUFRFSF9WQUwgKChETV9DQl9ETElOS19C QVNFKzB4MjAwMDAwKSwgQUxJR05fMU1CLCBQVEVfRU5BQkxFRCB8IFBURV9O T1RfU0hBUkVELCByMjUsIHIyKQotCUxPQURfUFRFTF9WQUwgKChETV9DQl9E TElOS19CQVNFKzB4MjAwMDAwKSwgQUxJR05fMU1CLCBQVEVfQ0JfREVWSUNF IHwgUFRFX1NaXzFNQiB8IFBURV9QUlIgfCBQVEVfUFJXIHwgUFRFX1BSVSwg cjI1LCByMykKLQlTRVRfUFRFIChyMSwgcjIsIHIzKQotCi0JISBNYXAgYSAx TSBwYWdlIGZvciBETV9DQl9CQVNFMiBhdCBETV9DQl9ETElOSyAKLQkhIDB4 MGM0MDAwMDAgLSAweDBjNGZmZmZmCi0JYWRkaQlyMSwgMTYsIHIxCi0JTE9B RF9QVEVIX1ZBTCAoKERNX0NCX0RMSU5LX0JBU0UrMHg0MDAwMDApLCBBTElH Tl8xTUIsIFBURV9FTkFCTEVEIHwgUFRFX05PVF9TSEFSRUQsIHIyNSwgcjIp Ci0JTE9BRF9QVEVMX1ZBTCAoKERNX0NCX0RMSU5LX0JBU0UrMHg0MDAwMDAp LCBBTElHTl8xTUIsIFBURV9DQl9ERVZJQ0UgfCBQVEVfU1pfMU1CIHwgUFRF X1BSUiB8IFBURV9QUlcgfCBQVEVfUFJVLCByMjUsIHIzKQotCVNFVF9QVEUg KHIxLCByMiwgcjMpCi0KLQkhIE1hcCBhIDFNIHBhZ2UgZm9yIERNX0NCX0JB U0UyIGF0IERNX0NCX0RMSU5LIAotCSEgMHgwYzgwMDAwMCAtIDB4MGM4ZmZm ZmYKLQlhZGRpCXIxLCAxNiwgcjEKLQlMT0FEX1BURUhfVkFMICgoRE1fQ0Jf RExJTktfQkFTRSsweDgwMDAwMCksIEFMSUdOXzFNQiwgUFRFX0VOQUJMRUQg fCBQVEVfTk9UX1NIQVJFRCwgcjI1LCByMikKLQlMT0FEX1BURUxfVkFMICgo RE1fQ0JfRExJTktfQkFTRSsweDgwMDAwMCksIEFMSUdOXzFNQiwgUFRFX0NC X0RFVklDRSB8IFBURV9TWl8xTUIgfCBQVEVfUFJSIHwgUFRFX1BSVyB8IFBU RV9QUlUsIHIyNSwgcjMpCi0JU0VUX1BURSAocjEsIHIyLCByMykKLQotCSEg TWFwIGEgNEsgcGFnZSBmb3IgRE1BIGNvbnRyb2wgcmVnaXN0ZXJzCi0JYWRk aQlyMSwgMTYsIHIxCi0JTE9BRF9QVEVIX1ZBTCAoRE1BX0JBU0UsIEFMSUdO XzRLQiwgUFRFX0VOQUJMRUQgfCBQVEVfTk9UX1NIQVJFRCwgcjI1LCByMikK LQlMT0FEX1BURUxfVkFMIChETUFfQkFTRSwgQUxJR05fNEtCLCBQVEVfQ0Jf REVWSUNFIHwgUFRFX1NaXzRLQiB8IFBURV9QUlIgfCBQVEVfUFJXIHwgUFRF X1BSVSwgcjI1LCByMykKLQlTRVRfUFRFIChyMSwgcjIsIHIzKQotCi0JISBN YXAgbG90cyBvZiA0SyBwYWdlcyBmb3IgcGVyaXBoZXJhbHMKLQotCSEgLyog cGVyaXBoZXJhbCAqLwotCWFkZGkJcjEsIDE2LCByMQotCUxPQURfUFRFSF9W QUwgKFBFUklQSF9CQVNFLCBBTElHTl80S0IsIFBURV9FTkFCTEVEIHwgUFRF X05PVF9TSEFSRUQsIHIyNSwgcjIpCi0JTE9BRF9QVEVMX1ZBTCAoUEVSSVBI X0JBU0UsIEFMSUdOXzRLQiwgUFRFX0NCX0RFVklDRSB8IFBURV9TWl80S0Ig fCBQVEVfUFJSIHwgUFRFX1BSVyB8IFBURV9QUlUsIHIyNSwgcjMpCi0JU0VU X1BURSAocjEsIHIyLCByMykKLQkhIC8qIGRtYWMgKi8KLQlhZGRpCXIxLCAx NiwgcjEKLQlMT0FEX1BURUhfVkFMIChETUFDX0JBU0UsIEFMSUdOXzRLQiwg UFRFX0VOQUJMRUQgfCBQVEVfTk9UX1NIQVJFRCwgcjI1LCByMikKLQlMT0FE X1BURUxfVkFMIChETUFDX0JBU0UsIEFMSUdOXzRLQiwgUFRFX0NCX0RFVklD RSB8IFBURV9TWl80S0IgfCBQVEVfUFJSIHwgUFRFX1BSVyB8IFBURV9QUlUs IHIyNSwgcjMpCi0JU0VUX1BURSAocjEsIHIyLCByMykKLQkhIC8qIGludGMg Ki8KLQlhZGRpCXIxLCAxNiwgcjEKLQlMT0FEX1BURUhfVkFMIChJTlRDX0JB U0UsIEFMSUdOXzRLQiwgUFRFX0VOQUJMRUQgfCBQVEVfTk9UX1NIQVJFRCwg cjI1LCByMikKLQlMT0FEX1BURUxfVkFMIChJTlRDX0JBU0UsIEFMSUdOXzRL QiwgUFRFX0NCX0RFVklDRSB8IFBURV9TWl80S0IgfCBQVEVfUFJSIHwgUFRF X1BSVyB8IFBURV9QUlUsIHIyNSwgcjMpCi0JU0VUX1BURSAocjEsIHIyLCBy MykKLQkhIC8qIHJ0YyAqLwotCWFkZGkJcjEsIDE2LCByMQotCUxPQURfUFRF SF9WQUwgKFJUQ19CQVNFLCBBTElHTl80S0IsIFBURV9FTkFCTEVEIHwgUFRF X05PVF9TSEFSRUQsIHIyNSwgcjIpCi0JTE9BRF9QVEVMX1ZBTCAoUlRDX0JB U0UsIEFMSUdOXzRLQiwgUFRFX0NCX0RFVklDRSB8IFBURV9TWl80S0IgfCBQ VEVfUFJSIHwgUFRFX1BSVyB8IFBURV9QUlUsIHIyNSwgcjMpCi0JU0VUX1BU RSAocjEsIHIyLCByMykKLQkhIC8qIGRtYWMgKi8KLQlhZGRpCXIxLCAxNiwg cjEKLQlMT0FEX1BURUhfVkFMIChUTVVfQkFTRSwgQUxJR05fNEtCLCBQVEVf RU5BQkxFRCB8IFBURV9OT1RfU0hBUkVELCByMjUsIHIyKQotCUxPQURfUFRF TF9WQUwgKFRNVV9CQVNFLCBBTElHTl80S0IsIFBURV9DQl9ERVZJQ0UgfCBQ VEVfU1pfNEtCIHwgUFRFX1BSUiB8IFBURV9QUlcgfCBQVEVfUFJVLCByMjUs IHIzKQotCVNFVF9QVEUgKHIxLCByMiwgcjMpCi0JISAvKiBzY2lmICovCi0J YWRkaQlyMSwgMTYsIHIxCi0JTE9BRF9QVEVIX1ZBTCAoU0NJRl9CQVNFLCBB TElHTl80S0IsIFBURV9FTkFCTEVEIHwgUFRFX05PVF9TSEFSRUQsIHIyNSwg cjIpCi0JTE9BRF9QVEVMX1ZBTCAoU0NJRl9CQVNFLCBBTElHTl80S0IsIFBU RV9DQl9ERVZJQ0UgfCBQVEVfU1pfNEtCIHwgUFRFX1BSUiB8IFBURV9QUlcg fCBQVEVfUFJVLCByMjUsIHIzKQotCVNFVF9QVEUgKHIxLCByMiwgcjMpCi0J ISAvKiBjcHJjICovCi0JYWRkaQlyMSwgMTYsIHIxCi0JTE9BRF9QVEVIX1ZB TCAoQ1BSQ19CQVNFLCBBTElHTl80S0IsIFBURV9FTkFCTEVEIHwgUFRFX05P VF9TSEFSRUQsIHIyNSwgcjIpCi0JTE9BRF9QVEVMX1ZBTCAoQ1BSQ19CQVNF LCBBTElHTl80S0IsIFBURV9DQl9ERVZJQ0UgfCBQVEVfU1pfNEtCIHwgUFRF X1BSUiB8IFBURV9QUlcgfCBQVEVfUFJVLCByMjUsIHIzKQotCVNFVF9QVEUg KHIxLCByMiwgcjMpCi0KLQkhIE1hcCBDUFUgV1BDIHJlZ2lzdGVycyAKLQlh ZGRpCXIxLCAxNiwgcjEKLQlMT0FEX1BURUhfVkFMIChDUFVfQkFTRSwgQUxJ R05fMU1CLCBQVEVfRU5BQkxFRCB8IFBURV9OT1RfU0hBUkVELCByMjUsIHIy KQotCUxPQURfUFRFTF9WQUwgKENQVV9CQVNFLCBBTElHTl8xTUIsIFBURV9D Ql9ERVZJQ0UgfCBQVEVfU1pfMU1CIHwgUFRFX1BSUiB8IFBURV9QUlcgfCBQ VEVfUFJVLCByMjUsIHIzKQotCVNFVF9QVEUgKHIxLCByMiwgcjMpCi0JYWRk aQlyMSwgMTYsIHIxCi0KLQlMT0FEX1BURUhfVkFMICgoQ1BVX0JBU0UrMHgx MDAwMDApLCBBTElHTl8xTUIsIFBURV9FTkFCTEVEIHwgUFRFX05PVF9TSEFS RUQsIHIyNSwgcjIpCi0JTE9BRF9QVEVMX1ZBTCAoKENQVV9CQVNFKzB4MTAw MDAwKSwgQUxJR05fMU1CLCBQVEVfQ0JfREVWSUNFIHwgUFRFX1NaXzFNQiB8 IFBURV9QUlIgfCBQVEVfUFJXIHwgUFRFX1BSVSwgcjI1LCByMykKLQlTRVRf UFRFIChyMSwgcjIsIHIzKQotCi0JYWRkaQlyMSwgMTYsIHIxCi0JTE9BRF9Q VEVIX1ZBTCAoKENQVV9CQVNFKzB4MjAwMDAwKSwgQUxJR05fMU1CLCBQVEVf RU5BQkxFRCB8IFBURV9OT1RfU0hBUkVELCByMjUsIHIyKQotCUxPQURfUFRF TF9WQUwgKChDUFVfQkFTRSsweDIwMDAwMCksIEFMSUdOXzFNQiwgUFRFX0NC X0RFVklDRSB8IFBURV9TWl8xTUIgfCBQVEVfUFJSIHwgUFRFX1BSVyB8IFBU RV9QUlUsIHIyNSwgcjMpCi0JU0VUX1BURSAocjEsIHIyLCByMykKLQotCWFk ZGkJcjEsIDE2LCByMQotCUxPQURfUFRFSF9WQUwgKChDUFVfQkFTRSsweDQw MDAwMCksIEFMSUdOXzFNQiwgUFRFX0VOQUJMRUQgfCBQVEVfTk9UX1NIQVJF RCwgcjI1LCByMikKLQlMT0FEX1BURUxfVkFMICgoQ1BVX0JBU0UrMHg0MDAw MDApLCBBTElHTl8xTUIsIFBURV9DQl9ERVZJQ0UgfCBQVEVfU1pfMU1CIHwg UFRFX1BSUiB8IFBURV9QUlcgfCBQVEVfUFJVLCByMjUsIHIzKQotCVNFVF9Q VEUgKHIxLCByMiwgcjMpCi0KLQkhIFN3aXRjaCBvdmVyIHRvIHZpcnR1YWwg YWRkcmVzc2luZyBhbmQgZW5hYmxlZCBjYWNoZQotCWdldGNvbglzciwgcjEK LQltb3ZpCTEsIHIyCi0Jc2hsbGkJcjIsIFNSX0JMX0JJVCwgcjIKLQlvcgly MSwgcjIsIHIxCi0JcHV0Y29uCXIxLCBzc3IKLQlnZXRjb24Jc3IsIHIxCi0J bW92aQkxLCByMgotCXNobGxpCXIyLCBTUl9NTVVfQklULCByMgotCW9yCXIx LCByMiwgcjEKLQlwdXRjb24JcjEsIHNzcgotCWdldHRyCXRyMSwgcjEKLQlw dXRjb24JcjEsIHNwYwotCXN5bmNvCi0JcnRlCi0KLQkhIFZNIGVudHJ5IHBv aW50LiAgRnJvbSBub3cgb24sIHdlIGFyZSBpbiBWTSBtb2RlLgotLnZtX2Vw OgotCi0JISBJbnN0YWxsIHRoZSB0cmFwIGhhbmRsZXIsIGJ5IHNlZWRpbmcg dmJyIHdpdGggdGhlCi0JISBjb3JyZWN0IHZhbHVlLCBhbmQgYnkgYXNzaWdu aW5nIHNyLmJsID0gMC4KLQotCUxPQURfQUREUiAodmJyX3N0YXJ0LCByMSkK LQlwdXRjb24JcjEsIHZicgotCW1vdmkJfigxPDwyOCksIHIxCi0JZ2V0Y29u CXNyLCByMgotCWFuZCAgICAgcjEsIHIyLCByMgotCXB1dGNvbglyMiwgc3IK LSNlbmRpZiAvKiBNTVVfU1VQUE9SVCAqLwotCi0JcHQvbAkuTHplcm9fYnNz X2xvb3AsIHRyMAotCXB0L2wJR0xPQkFMKF9pbml0KSwgdHI1Ci0JcHQvbAlf X19zZXR1cF9hcmd2X2FuZF9jYWxsX21haW4sIHRyNgotCXB0L2wJX2V4aXQs IHRyNwotCi0JISB6ZXJvIG91dCBic3MKLQlMT0FEX0FERFIgKF9lZGF0YSwg cjApCi0JTE9BRF9BRERSIChfZW5kLCByMSkKLS5MemVyb19ic3NfbG9vcDoK LQlzdHgucQlyMCwgcjYzLCByNjMKLQlhZGRpCXIwLCA4LCByMAotCWJndC9s CXIxLCByMCwgdHIwCi0KLQlMT0FEX0FERFIgKF9fX2RhdGEsIHIyNikKLQlM T0FEX0FERFIgKF9fX3JvZGF0YSwgcjI3KQotCi0jaWZkZWYgX19TSF9GUFVf QU5ZX18KLQlnZXRjb24Jc3IsIHIwCi0JISBlbmFibGUgdGhlIEZQIHVuaXQs IGJ5IHJlc2V0dGluZyBTUi5GRAotCSEgYWxzbyB6ZXJvIG91dCBTUi5GUiwg U1IuU1ogYW5kIFNSLlBSLCBhcyBtYW5kYXRlZCBieSB0aGUgQUJJCi0JbW92 aQkwLCByMQotCXNob3JpCTB4ZjAwMCwgcjEKLQlhbmRjCXIwLCByMSwgcjAK LQlwdXRjb24JcjAsIHNyCi0jaWYgX19TSDVfXyA9PSAzMgotCXB0L2wgX19f c2V0X2Zwc2NyLCB0cjAKLQltb3ZpCTAsIHI0Ci0JYmxpbmsJdHIwLCByMTgK LSNlbmRpZgotI2VuZGlmCi0KLQkhIGFycmFuZ2UgZm9yIGV4aXQgdG8gY2Fs bCBmaW5pCi0JcHQvbAlfYXRleGl0LCB0cjEKLQlMT0FEX0FERFIgKEdMT0JB TChfZmluaSksIHIyKQotCWJsaW5rCXRyMSwgcjE4Ci0KLQkhIGNhbGwgaW5p dAotCWJsaW5rCXRyNSwgcjE4Ci0KLQkhIGNhbGwgdGhlIG1haW5saW5lCi0J YmxpbmsJdHI2LCByMTgKLQotCSEgY2FsbCBleGl0Ci0JYmxpbmsJdHI3LCBy MTgKLQkhIFdlIHNob3VsZCBuZXZlciByZXR1cm4gZnJvbSBfZXhpdCBidXQg aW4gY2FzZSB3ZSBkbyB3ZSB3b3VsZCBlbnRlciB0aGUKLQkhIHRoZSBmb2xs b3dpbmcgdGlnaHQgbG9vcC4gVGhpcyBhdm9pZHMgZXhlY3V0aW5nIGFueSBk YXRhIHRoYXQgbWlnaHQgZm9sbG93LgotbGltYm86Ci0JcHQvbCBsaW1ibywg dHIwCi0JYmxpbmsgdHIwLCByNjMKLQkKLSNpZmRlZiBNTVVfU1VQUE9SVAot CSEgQWxsIHRoZXNlIHRyYXBzIGFyZSBoYW5kbGVkIGluIHRoZSBzYW1lIHBs YWNlLiAKLQkuYmFsaWduIDI1NgotdmJyX3N0YXJ0OgotCXB0L2wgaGFuZGxl ciwgdHIwCSEgdHIwIHRyYXNoZWQuCi0JYmxpbmsgdHIwLCByNjMKLQkuYmFs aWduIDI1NgotdmJyXzEwMDoKLQlwdC9sIGhhbmRsZXIsIHRyMAkhIHRyMCB0 cmFzaGVkLgotCWJsaW5rIHRyMCwgcjYzCi12YnJfMTAwX2VuZDoKLQkuYmFs aWduIDI1NgotdmJyXzIwMDoKLQlwdC9sIGhhbmRsZXIsIHRyMAkhIHRyMCB0 cmFzaGVkLgotCWJsaW5rIHRyMCwgcjYzCi0JLmJhbGlnbiAyNTYKLXZicl8z MDA6Ci0JcHQvbCBoYW5kbGVyLCB0cjAJISB0cjAgdHJhc2hlZC4KLQlibGlu ayB0cjAsIHI2MwotCS5iYWxpZ24gMjU2CQotdmJyXzQwMDoJISBTaG91bGQg YmUgYXQgdmJyKzB4NDAwCi1oYW5kbGVyOgotCS8qIElmIHRoZSB0cmFwIGhh bmRsZXIgaXMgdGhlcmUgY2FsbCBpdCAqLwotCUxPQURfQUREUiAoX19zdXBl cmhfdHJhcF9oYW5kbGVyLCByMikKLQlwdGEgY2hhbmRsZXIsdHIyCi0JYmVx IHIyLCByNjMsIHRyMiAvKiBJZiB6ZXJvLCBpZSBub3QgcHJlc2VudCBicmFu Y2ggYXJvdW5kIHRvIGNoYW5kbGVyICovCi0JLyogTm93IGNhbGwgdGhlIHRy YXAgaGFuZGxlciB3aXRoIGFzIG11Y2ggb2YgdGhlIGNvbnRleHQgdW5jaGFu Z2VkIGFzIHBvc3NpYmxlLgotCSAgIE1vdmUgdHJhcHBpbmcgYWRkcmVzcyBp bnRvIFIxOCB0byBtYWtlIGl0IGxvb2sgbGlrZSB0aGUgdHJhcCBwb2ludCAq LwotCWdldGNvbiBzcGMsIHIxOAotCXB0L2wgX19zdXBlcmhfdHJhcF9oYW5k bGVyLCB0cjAKLQlibGluayB0cjAsIHI3Ci1jaGFuZGxlcjoJCi0JZ2V0Y29u CXNwYywgcjYyCi0JZ2V0Y29uIGV4cGV2dCwgcjIKLQlwdC9sCV9leGl0LCB0 cjAKLQlibGluawl0cjAsIHI2MwotCi0JLyogU2ltdWxhdGVkIHRyYXAgaGFu ZGxlciAqLwotCS5zZWN0aW9uCS50ZXh0Li5TSG1lZGlhMzIsImF4IgotZ2Nj Ml9jb21waWxlZC46Ci0JLnNlY3Rpb24JLmRlYnVnX2FiYnJldgotLkxkZWJ1 Z19hYmJyZXYwOgotCS5zZWN0aW9uCS50ZXh0Li5TSG1lZGlhMzIKLS5MdGV4 dDA6Ci0JLnNlY3Rpb24JLmRlYnVnX2luZm8KLS5MZGVidWdfaW5mbzA6Ci0J LnNlY3Rpb24JLmRlYnVnX2xpbmUKLS5MZGVidWdfbGluZTA6Ci0JLnNlY3Rp b24JLnRleHQuLlNIbWVkaWEzMiwiYXgiCi0JLmFsaWduIDUKLQkuZ2xvYmFs CV9fc3VwZXJoX3RyYXBfaGFuZGxlcgotCS50eXBlCV9fc3VwZXJoX3RyYXBf aGFuZGxlcixAZnVuY3Rpb24KLV9fc3VwZXJoX3RyYXBfaGFuZGxlcjoKLS5M RkIxOgotCXB0YWJzCXIxOCwgdHIwCi0JYWRkaS5sCXIxNSwgLTgsIHIxNQot CXN0LmwJcjE1LCA0LCByMTQKLQlhZGRpLmwJcjE1LCAtOCwgcjE1Ci0JYWRk LmwJcjE1LCByNjMsIHIxNAotCXN0LmwJcjE0LCAwLCByMgotCSBwdGFicyBy NywgdHIwIAotCWFkZGkubAlyMTQsIDgsIHIxNAotCWFkZC5sCXIxNCwgcjYz LCByMTUKLQlsZC5sCXIxNSwgNCwgcjE0Ci0JYWRkaS5sCXIxNSwgOCwgcjE1 Ci0JYmxpbmsJdHIwLCByNjMKLS5MRkUxOgotLkxmZTE6Ci0JLnNpemUJX19z dXBlcmhfdHJhcF9oYW5kbGVyLC5MZmUxLV9fc3VwZXJoX3RyYXBfaGFuZGxl cgotCi0JLnNlY3Rpb24JLnRleHQuLlNIbWVkaWEzMgotLkxldGV4dDA6Ci0K LQkuc2VjdGlvbgkuZGVidWdfaW5mbwotCS51YWxvbmcJMHhhNwotCS51YXdv cmQJMHgyCi0JLnVhbG9uZwkuTGRlYnVnX2FiYnJldjAKLQkuYnl0ZQkweDQK LQkuYnl0ZQkweDEKLQkudWFsb25nCS5MZGVidWdfbGluZTAKLQkudWFsb25n CS5MZXRleHQwCi0JLnVhbG9uZwkuTHRleHQwCi0JLnN0cmluZwkidHJhcF9o YW5kbGVyLmMiCi0KLQkuc3RyaW5nCSJ4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4IgotCi0JLnN0cmluZwkiR05VIEMgMi45Ny1zaDUtMDEwNTIyIgot Ci0JLmJ5dGUJMHgxCi0JLmJ5dGUJMHgyCi0JLnVhbG9uZwkweDlhCi0JLmJ5 dGUJMHgxCi0JLnN0cmluZwkiX3N1cGVyaF90cmFwX2hhbmRsZXIiCi0KLQku Ynl0ZQkweDEKLQkuYnl0ZQkweDIKLQkuYnl0ZQkweDEKLQkudWFsb25nCS5M RkIxCi0JLnVhbG9uZwkuTEZFMQotCS5ieXRlCTB4MQotCS5ieXRlCTB4NWUK LQkuYnl0ZQkweDMKLQkuc3RyaW5nCSJ0cmFwX3JlYXNvbiIKLQotCS5ieXRl CTB4MQotCS5ieXRlCTB4MQotCS51YWxvbmcJMHg5YQotCS5ieXRlCTB4Mgot CS5ieXRlCTB4OTEKLQkuYnl0ZQkweDAKLQkuYnl0ZQkweDAKLQkuYnl0ZQkw eDQKLQkuc3RyaW5nCSJ1bnNpZ25lZCBpbnQiCi0KLQkuYnl0ZQkweDQKLQku Ynl0ZQkweDcKLQkuYnl0ZQkweDAKLQotCS5zZWN0aW9uCS5kZWJ1Z19hYmJy ZXYKLQkuYnl0ZQkweDEKLQkuYnl0ZQkweDExCi0JLmJ5dGUJMHgxCi0JLmJ5 dGUJMHgxMAotCS5ieXRlCTB4NgotCS5ieXRlCTB4MTIKLQkuYnl0ZQkweDEK LQkuYnl0ZQkweDExCi0JLmJ5dGUJMHgxCi0JLmJ5dGUJMHgzCi0JLmJ5dGUJ MHg4Ci0JLmJ5dGUJMHgxYgotCS5ieXRlCTB4OAotCS5ieXRlCTB4MjUKLQku Ynl0ZQkweDgKLQkuYnl0ZQkweDEzCi0JLmJ5dGUJMHhiCi0JLmJ5dGUJMCww Ci0JLmJ5dGUJMHgyCi0JLmJ5dGUJMHgyZQotCS5ieXRlCTB4MQotCS5ieXRl CTB4MQotCS5ieXRlCTB4MTMKLQkuYnl0ZQkweDNmCi0JLmJ5dGUJMHhjCi0J LmJ5dGUJMHgzCi0JLmJ5dGUJMHg4Ci0JLmJ5dGUJMHgzYQotCS5ieXRlCTB4 YgotCS5ieXRlCTB4M2IKLQkuYnl0ZQkweGIKLQkuYnl0ZQkweDI3Ci0JLmJ5 dGUJMHhjCi0JLmJ5dGUJMHgxMQotCS5ieXRlCTB4MQotCS5ieXRlCTB4MTIK LQkuYnl0ZQkweDEKLQkuYnl0ZQkweDQwCi0JLmJ5dGUJMHhhCi0JLmJ5dGUJ MCwwCi0JLmJ5dGUJMHgzCi0JLmJ5dGUJMHg1Ci0JLmJ5dGUJMHgwCi0JLmJ5 dGUJMHgzCi0JLmJ5dGUJMHg4Ci0JLmJ5dGUJMHgzYQotCS5ieXRlCTB4Ygot CS5ieXRlCTB4M2IKLQkuYnl0ZQkweGIKLQkuYnl0ZQkweDQ5Ci0JLmJ5dGUJ MHgxMwotCS5ieXRlCTB4MgotCS5ieXRlCTB4YQotCS5ieXRlCTAsMAotCS5i eXRlCTB4NAotCS5ieXRlCTB4MjQKLQkuYnl0ZQkweDAKLQkuYnl0ZQkweDMK LQkuYnl0ZQkweDgKLQkuYnl0ZQkweGIKLQkuYnl0ZQkweGIKLQkuYnl0ZQkw eDNlCi0JLmJ5dGUJMHhiCi0JLmJ5dGUJMCwwCi0JLmJ5dGUJMAotCi0JLnNl Y3Rpb24JLmRlYnVnX3B1Ym5hbWVzCi0JLnVhbG9uZwkweDI3Ci0JLnVhd29y ZAkweDIKLQkudWFsb25nCS5MZGVidWdfaW5mbzAKLQkudWFsb25nCTB4YWIK LQkudWFsb25nCTB4NWIKLQkuc3RyaW5nCSJfc3VwZXJoX3RyYXBfaGFuZGxl ciIKLQotCS51YWxvbmcJMHgwCi0KLQkuc2VjdGlvbgkuZGVidWdfYXJhbmdl cwotCS51YWxvbmcJMHgxYwotCS51YXdvcmQJMHgyCi0JLnVhbG9uZwkuTGRl YnVnX2luZm8wCi0JLmJ5dGUJMHg0Ci0JLmJ5dGUJMHgwCi0JLnVhd29yZAkw eDAsMAotCS51YWxvbmcJLkx0ZXh0MAotCS51YWxvbmcJLkxldGV4dDAtLkx0 ZXh0MAotCS51YWxvbmcJMHgwCi0JLnVhbG9uZwkweDAKLQkuaWRlbnQJIkdD QzogKEdOVSkgMi45Ny1zaDUtMDEwNTIyIgotI2VuZGlmIC8qIE1NVV9TVVBQ T1JUICovCi0jZWxzZSAvKiAhIF9fU0g1X18gKi8KLQogCSEgbWFrZSBhIHBs YWNlIHRvIGtlZXAgYW55IHByZXZpb3VzIHZhbHVlIG9mIHRoZSB2YnIgcmVn aXN0ZXIKIAkhIHRoaXMgd2lsbCBvbmx5IGhhdmUgYSB2YWx1ZSBpZiBpdCBo YXMgYmVlbiBzZXQgYnkgcmVkYm9vdCAoZm9yIGV4YW1wbGUpCiAJLnNlY3Rp b24gLmJzcwpAQCAtMTM2NCw0ICs3MjIsMyBAQCBfX3N1cGVyaF90cmFwX2hh bmRsZXI6CiAJLnVhbG9uZwkweDAKIAkudWFsb25nCTB4MAogI2VuZGlmIC8q IFZCUl9TRVRVUCAqLwotI2VuZGlmIC8qICEgX19TSDVfXyAqLwpkaWZmIC0t Z2l0IGEvbGliZ2NjL2NvbmZpZy9zaC9jcnRpLlMgYi9saWJnY2MvY29uZmln L3NoL2NydGkuUwppbmRleCAwYzdhMjhiLi40NGU4ZGQ1IDEwMDY0NAotLS0g YS9saWJnY2MvY29uZmlnL3NoL2NydGkuUworKysgYi9saWJnY2MvY29uZmln L3NoL2NydGkuUwpAQCAtNDcsMTkgKzQ3LDYgQEAgc2VlIHRoZSBmaWxlcyBD T1BZSU5HMyBhbmQgQ09QWUlORy5SVU5USU1FIHJlc3BlY3RpdmVseS4gIElm IG5vdCwgc2VlCiAjZW5kaWYKIAkuZ2xvYmFsCSBHTE9CQUwoX2luaXQpCiBH TE9CQUwoX2luaXQpOgotI2lmIF9fU0hNRURJQV9fCi0JYWRkaQlyMTUsIC0x NiwgcjE1Ci0Jc3QucQlyMTUsIDgsIHIxNAotCXN0LnEJcjE1LCAwLCByMTgK LQlhZGQJcjE1LCByNjMsIHIxNAotI2VsaWYgX19TSDVfXyAmJiAhIF9fU0hN RURJQV9fCi0JbW92CXIxNSxyMAotCWFkZAkjLTgscjE1Ci0JbW92LmwJcjE0 LEAtcjAKLQlzdHMubAlwcixALXIwCi0JbW92CXIxNSxyMTQKLQlub3AKLSNl bHNlCiAjaWZkZWYgX19FTEZfXwogCW1vdi5sCXIxMixALXIxNQogCW1vdmEJ MGYscjAKQEAgLTc4LDcgKzY1LDYgQEAgR0xPQkFMKF9pbml0KToKIDA6CS5s b25nCV9HTE9CQUxfT0ZGU0VUX1RBQkxFXwogMToKICNlbmRpZgotI2VuZGlm IC8qIF9fU0hNRURJQV9fICovCiAKIAkuc2VjdGlvbiAuZmluaQogLyogVGhl IGFsaWdubWVudCBiZWxvdyBjYW4ndCBiZSBzbWFsbGVyLCBvdGhlcndpc2Ug dGhlIG1vdmEgYmVsb3cKQEAgLTkyLDE5ICs3OCw2IEBAIEdMT0JBTChfaW5p dCk6CiAjZW5kaWYKIAkuZ2xvYmFsICBHTE9CQUwoX2ZpbmkpCiBHTE9CQUwo X2ZpbmkpOgkKLSNpZiBfX1NITUVESUFfXwotCWFkZGkJcjE1LCAtMTYsIHIx NQotCXN0LnEJcjE1LCA4LCByMTQKLQlzdC5xCXIxNSwgMCwgcjE4Ci0JYWRk CXIxNSwgcjYzLCByMTQKLSNlbGlmIF9fU0g1X18gJiYgISBfX1NITUVESUFf XwotCW1vdglyMTUscjAKLQlhZGQJIy04LHIxNQotCW1vdi5sCXIxNCxALXIw Ci0Jc3RzLmwJcHIsQC1yMAotCW1vdglyMTUscjE0Ci0Jbm9wCi0jZWxzZQog I2lmZGVmIF9fRUxGX18KIAltb3YubAlyMTIsQC1yMTUKIAltb3ZhCTBmLHIw CkBAIC0xMjMsNCArOTYsMyBAQCBHTE9CQUwoX2ZpbmkpOgogMDoJLmxvbmcJ X0dMT0JBTF9PRkZTRVRfVEFCTEVfCiAxOgogI2VuZGlmCi0jZW5kaWYgLyog X19TSE1FRElBX18gKi8KZGlmZiAtLWdpdCBhL2xpYmdjYy9jb25maWcvc2gv Y3J0bi5TIGIvbGliZ2NjL2NvbmZpZy9zaC9jcnRuLlMKaW5kZXggMWNhNzZj OC4uNjNiODQyMSAxMDA2NDQKLS0tIGEvbGliZ2NjL2NvbmZpZy9zaC9jcnRu LlMKKysrIGIvbGliZ2NjL2NvbmZpZy9zaC9jcnRuLlMKQEAgLTI1LDIwICsy NSw2IEBAIHNlZSB0aGUgZmlsZXMgQ09QWUlORzMgYW5kIENPUFlJTkcuUlVO VElNRSByZXNwZWN0aXZlbHkuICBJZiBub3QsIHNlZQogLyogU2VlIGFuIGV4 cGxhbmF0aW9uIGFib3V0IC5pbml0IGFuZCAuZmluaSBpbiBjcnRpLlMuICAq LwogCiAJLnNlY3Rpb24gLmluaXQKLSNpZiBfX1NITUVESUFfXwotCWFkZAly MTQsIHI2MywgcjE1Ci0JbGQucQlyMTUsIDAsIHIxOAotCXB0YWJzCXIxOCwg dHIwCi0JbGQucQlyMTUsIDgsIHIxNAotCWFkZGkJcjE1LCAxNiwgcjE1Ci0J YmxpbmsJdHIwLCByNjMKLSNlbGlmIF9fU0g1X18gJiYgISBfX1NITUVESUFf XwotCW1vdglyMTQscjE1Ci0JbGRzLmwJQHIxNCsscHIKLQltb3YubAlAcjE0 LHIxNAotCXJ0cwotCWFkZAkjOCxyMTUKLSNlbHNlCiAJbW92CXIxNCxyMTUK IAlsZHMubAlAcjE1KyxwcgogCW1vdi5sCUByMTUrLHIxNApAQCAtNDgsMjMg KzM0LDggQEAgc2VlIHRoZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlORy5S VU5USU1FIHJlc3BlY3RpdmVseS4gIElmIG5vdCwgc2VlCiAjZWxzZQogCW5v cAogI2VuZGlmCi0jZW5kaWYgLyogX19TSE1FRElBX18gKi8KIAogCS5zZWN0 aW9uIC5maW5pCi0jaWYgX19TSE1FRElBX18KLQlhZGQJcjE0LCByNjMsIHIx NQotCWxkLnEJcjE1LCAwLCByMTgKLQlwdGFicwlyMTgsIHRyMAotCWxkLnEJ cjE1LCA4LCByMTQKLQlhZGRpCXIxNSwgMTYsIHIxNQotCWJsaW5rCXRyMCwg cjYzCi0jZWxpZiBfX1NINV9fICYmICEgX19TSE1FRElBX18KLQltb3YJcjE0 LHIxNQotCWxkcy5sCUByMTQrLHByCi0JbW92LmwJQHIxNCxyMTQKLQlydHMK LQlhZGQJIzgscjE1Ci0jZWxzZQogCW1vdglyMTQscjE1CiAJbGRzLmwJQHIx NSsscHIKIAltb3YubAlAcjE1KyxyMTQKQEAgLTc0LDQgKzQ1LDMgQEAgc2Vl IHRoZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlORy5SVU5USU1FIHJlc3Bl Y3RpdmVseS4gIElmIG5vdCwgc2VlCiAjZWxzZQogCW5vcAogI2VuZGlmCi0j ZW5kaWYgLyogX19TSE1FRElBX18gKi8KZGlmZiAtLWdpdCBhL2xpYmdjYy9j b25maWcvc2gvbGliMWZ1bmNzLTQtMzAwLlMgYi9saWJnY2MvY29uZmlnL3No L2xpYjFmdW5jcy00LTMwMC5TCmluZGV4IGNhZjQ5ZjcuLjY1MTU2N2IgMTAw NjQ0Ci0tLSBhL2xpYmdjYy9jb25maWcvc2gvbGliMWZ1bmNzLTQtMzAwLlMK KysrIGIvbGliZ2NjL2NvbmZpZy9zaC9saWIxZnVuY3MtNC0zMDAuUwpAQCAt MjUsNyArMjUsNiBAQCBzZWUgdGhlIGZpbGVzIENPUFlJTkczIGFuZCBDT1BZ SU5HLlJVTlRJTUUgcmVzcGVjdGl2ZWx5LiAgSWYgbm90LCBzZWUKIAogI2lu Y2x1ZGUgImxpYjFmdW5jcy5oIgogCi0jaWYgIV9fU0hNRURJQV9fCiAjaWZk ZWYgTF9kaXZfdGFibGUKICNpZiBkZWZpbmVkIChfX1NIM19fKSB8fCBkZWZp bmVkIChfX1NIM0VfXykgfHwgZGVmaW5lZCAoX19TSDRfXykgfHwgZGVmaW5l ZCAoX19TSDRfU0lOR0xFX18pIHx8IGRlZmluZWQgKF9fU0g0X1NJTkdMRV9P TkxZX18pIHx8IGRlZmluZWQgKF9fU0g0X05PRlBVX18pCiAvKiBUaGlzIGNv ZGUgdXNlZCBzaGxkLCB0aHVzIGlzIG5vdCBzdWl0YWJsZSBmb3IgU0gxIC8g U0gyLiAgKi8KQEAgLTkzMyw0ICs5MzIsMyBAQCBMT0NBTChkaXZfdGFibGVf aW52KToKICNlbmRpZiAvKiBTSDMgLyBTSDQgKi8KIAogI2VuZGlmIC8qIExf ZGl2X3RhYmxlICovCi0jZW5kaWYgLyogIV9fU0hNRURJQV9fICovCmRpZmYg LS1naXQgYS9saWJnY2MvY29uZmlnL3NoL2xpYjFmdW5jcy1Pcy00LTIwMC5T IGIvbGliZ2NjL2NvbmZpZy9zaC9saWIxZnVuY3MtT3MtNC0yMDAuUwppbmRl eCAxY2I4MjZmLi40ZmNkOGE2IDEwMDY0NAotLS0gYS9saWJnY2MvY29uZmln L3NoL2xpYjFmdW5jcy1Pcy00LTIwMC5TCisrKyBiL2xpYmdjYy9jb25maWcv c2gvbGliMWZ1bmNzLU9zLTQtMjAwLlMKQEAgLTI1LDcgKzI1LDYgQEAgc2Vl IHRoZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlORy5SVU5USU1FIHJlc3Bl Y3RpdmVseS4gIElmIG5vdCwgc2VlCiAKICNpbmNsdWRlICJsaWIxZnVuY3Mu aCIKIAotI2lmICFfX1NITUVESUFfXwogI2lmZGVmIExfdWRpdnNpM19pNGkK IAogLyogODggYnl0ZXM7IHNoNC0yMDAgY3ljbGUgY291bnRzOgpAQCAtMzE5 LDQgKzMxOCwzIEBAIEwxOgogCUVOREZVTkMoR0xPQkFMKHNkaXZzaTNfaTRp KSkKICNlbmRpZiAvKiBfX1NIX0ZQVV9ET1VCTEVfXyAqLwogI2VuZGlmIC8q IExfc2RpdnNpM19pNGkgKi8KLSNlbmRpZiAvKiAhX19TSE1FRElBX18gKi8K ZGlmZiAtLWdpdCBhL2xpYmdjYy9jb25maWcvc2gvbGliMWZ1bmNzLlMgYi9s aWJnY2MvY29uZmlnL3NoL2xpYjFmdW5jcy5TCmluZGV4IDkwNWU1ZWYuLjMz ZGQ1ZmQgMTAwNjQ0Ci0tLSBhL2xpYmdjYy9jb25maWcvc2gvbGliMWZ1bmNz LlMKKysrIGIvbGliZ2NjL2NvbmZpZy9zaC9saWIxZnVuY3MuUwpAQCAtNDYs NyArNDYsNiBAQCBzZWUgdGhlIGZpbGVzIENPUFlJTkczIGFuZCBDT1BZSU5H LlJVTlRJTUUgcmVzcGVjdGl2ZWx5LiAgSWYgbm90LCBzZWUKICNkZWZpbmUg Tk9fRlBTQ1JfVkFMVUVTCiAjZW5kaWYKIAkKLSNpZiAhIF9fU0g1X18KICNp ZmRlZiBMX2FzaGlmdHJ0CiAJLmdsb2JhbAlHTE9CQUwoYXNoaWZ0cnRfcjRf MCkKIAkuZ2xvYmFsCUdMT0JBTChhc2hpZnRydF9yNF8xKQpAQCAtMTAwMiw3 ICsxMDAxLDYgQEAgaGlzZXQ6CXN0cwltYWNsLHIwCQkhIHIwID0gYmIqZGQK IAogCUVOREZVTkMoR0xPQkFMKG11bHNpMykpCiAjZW5kaWYKLSNlbmRpZiAv KiAhIF9fU0g1X18gKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICAgMzIgYml0IHNpZ25lZCBpbnRlZ2VyIGRpdmlzaW9uIHRo YXQgdXNlcyBGUFUgZG91YmxlIHByZWNpc2lvbiBkaXZpc2lvbi4gICovCkBA IC0xMDI4LDE3ICsxMDI2LDEzIEBAIEdMT0JBTChzZGl2c2kzX2k0KToKIAog CUVOREZVTkMoR0xPQkFMKHNkaXZzaTNfaTQpKQogCi0jZWxpZiBkZWZpbmVk IChfX1NIMkFfU0lOR0xFX18pIHx8IGRlZmluZWQgKF9fU0gyQV9TSU5HTEVf T05MWV9fKSB8fCBkZWZpbmVkKF9fU0g0X1NJTkdMRV9fKSB8fCBkZWZpbmVk KF9fU0g0X1NJTkdMRV9PTkxZX18pIHx8IChkZWZpbmVkIChfX1NINV9fKSAm JiAhIGRlZmluZWQgX19TSDRfTk9GUFVfXykKKyNlbGlmIGRlZmluZWQgKF9f U0gyQV9TSU5HTEVfXykgfHwgZGVmaW5lZCAoX19TSDJBX1NJTkdMRV9PTkxZ X18pIHx8IGRlZmluZWQoX19TSDRfU0lOR0xFX18pIHx8IGRlZmluZWQoX19T SDRfU0lOR0xFX09OTFlfXykKIC8qIFRoaXMgdmFyaWFudCBpcyB1c2VkIHdo ZW4gRlBTQ1IuUFIgPSAwIChzaWdsZSBwcmVjaXNpb24pIGlzIHRoZSBkZWZh dWx0CiAgICBzZXR0aW5nLgogICAgQXJncyBpbiByNCBhbmQgcjUsIHJlc3Vs dCBpbiBmcHVsLCBjbG9iYmVyIHIyLCBkcjAsIGRyMi4KICAgIEZvciB0aGlz IHRvIHdvcmssIHdlIG11c3QgdGVtcG9yYXJpbHkgc3dpdGNoIHRoZSBGUFUg ZG8gZG91YmxlIHByZWNpc2lvbiwKICAgIGJ1dCB3ZSBiZXR0ZXIgZG8gbm90 IHRvdWNoIEZQU0NSLkZSLiAgU2VlIFBSIDY1MjYuICAqLwogCi0jaWYgISBf X1NINV9fIHx8IF9fU0g1X18gPT0gMzIKLSNpZiBfX1NINV9fCi0JLm1vZGUJ U0hjb21wYWN0Ci0jZW5kaWYKIAkuZ2xvYmFsCUdMT0JBTChzZGl2c2kzX2k0 KQogCUhJRERFTl9GVU5DKEdMT0JBTChzZGl2c2kzX2k0KSkKIEdMT0JBTChz ZGl2c2kzX2k0KToKQEAgLTEwNzQsNyArMTA2OCw2IEBAIEdMT0JBTChzZGl2 c2kzX2k0KToKICNlbmRpZiAvKiBfX1NINEFfXyAgKi8KIAogCUVOREZVTkMo R0xPQkFMKHNkaXZzaTNfaTQpKQotI2VuZGlmIC8qICEgX19TSDVfXyB8fCBf X1NINV9fID09IDMyICovCiAjZW5kaWYgLyogISBfX1NINF9fIHx8IF9fU0gy QV9fICAqLwogI2VuZGlmIC8qIExfc2RpdnNpM19pNCAgKi8KIApAQCAtMTA5 MSwyMjYgKzEwODQsOCBAQCBHTE9CQUwoc2RpdnNpM19pNCk6CiAhISBhcmdz IGluIHI0IGFuZCByNSwgcmVzdWx0IGluIHIwIGNsb2JiZXIgcjEsIHIyLCBy MywgYW5kIHQgYml0CiAKIAkuZ2xvYmFsCUdMT0JBTChzZGl2c2kzKQotI2lm IF9fU0hNRURJQV9fCi0jaWYgX19TSDVfXyA9PSAzMgotCS5zZWN0aW9uCS50 ZXh0Li5TSG1lZGlhMzIsImF4IgotI2Vsc2UKLQkudGV4dAotI2VuZGlmCiAJ LmFsaWduCTIKLSNpZiAwCi0vKiBUaGUgYXNzZW1ibHkgY29kZSB0aGF0IGZv bGxvd3MgaXMgYSBoYW5kLW9wdGltaXplZCB2ZXJzaW9uIG9mIHRoZSBDCi0g ICBjb2RlIHRoYXQgZm9sbG93cy4gIE5vdGUgdGhhdCB0aGUgcmVnaXN0ZXJz IHRoYXQgYXJlIG1vZGlmaWVkIGFyZQotICAgZXhhY3RseSB0aG9zZSBsaXN0 ZWQgYXMgY2xvYmJlcmVkIGluIHRoZSBwYXR0ZXJucyBkaXZzaTNfaTEgYW5k Ci0gICBkaXZzaTNfaTFfbWVkaWEuCi0JCi1pbnQgX19zZGl2c2kzIChpLCBq KQotICAgICBpbnQgaSwgajsKLXsKLSAgcmVnaXN0ZXIgdW5zaWduZWQgbG9u ZyBsb25nIHIxOCBhc20gKCJyMTgiKTsKLSAgcmVnaXN0ZXIgdW5zaWduZWQg bG9uZyBsb25nIHIxOSBhc20gKCJyMTkiKTsKLSAgcmVnaXN0ZXIgdW5zaWdu ZWQgbG9uZyBsb25nIHIwIGFzbSAoInIwIikgPSAwOwotICByZWdpc3RlciB1 bnNpZ25lZCBsb25nIGxvbmcgcjEgYXNtICgicjEiKSA9IDE7Ci0gIHJlZ2lz dGVyIGludCByMiBhc20gKCJyMiIpID0gaSA+PiAzMTsKLSAgcmVnaXN0ZXIg aW50IHIzIGFzbSAoInIzIikgPSBqID4+IDMxOwotCi0gIHIyID0gcjIgPyBy MiA6IHIxOwotICByMyA9IHIzID8gcjMgOiByMTsKLSAgcjE4ID0gaSAqIHIy OwotICByMTkgPSBqICogcjM7Ci0gIHIyICo9IHIzOwotICAKLSAgcjE5IDw8 PSAzMTsKLSAgcjEgPDw9IDMxOwotICBkbwotICAgIGlmIChyMTggPj0gcjE5 KQotICAgICAgcjAgfD0gcjEsIHIxOCAtPSByMTk7Ci0gIHdoaWxlIChyMTkg Pj49IDEsIHIxID4+PSAxKTsKLQotICByZXR1cm4gcjIgKiAoaW50KXIwOwot fQotKi8KLUdMT0JBTChzZGl2c2kzKToKLQlwdC9sCUxPQ0FMKHNkaXZzaTNf ZG9udGFkZCksIHRyMgotCXB0L2wJTE9DQUwoc2RpdnNpM19sb29wKSwgdHIx Ci0JcHRhYnMvbAlyMTgsIHRyMAotCW1vdmkJMCwgcjAKLQltb3ZpCTEsIHIx Ci0Jc2hhcmkubAlyNCwgMzEsIHIyCi0Jc2hhcmkubAlyNSwgMzEsIHIzCi0J Y212ZXEJcjIsIHIxLCByMgotCWNtdmVxCXIzLCByMSwgcjMKLQltdWxzLmwJ cjQsIHIyLCByMTgKLQltdWxzLmwJcjUsIHIzLCByMTkKLQltdWxzLmwJcjIs IHIzLCByMgotCXNobGxpCXIxOSwgMzEsIHIxOQotCXNobGxpCXIxLCAzMSwg cjEKLUxPQ0FMKHNkaXZzaTNfbG9vcCk6Ci0JYmd0dQlyMTksIHIxOCwgdHIy Ci0Jb3IJcjAsIHIxLCByMAotCXN1YglyMTgsIHIxOSwgcjE4Ci1MT0NBTChz ZGl2c2kzX2RvbnRhZGQpOgotCXNobHJpCXIxLCAxLCByMQotCXNobHJpCXIx OSwgMSwgcjE5Ci0JYm5laQlyMSwgMCwgdHIxCi0JbXVscy5sCXIwLCByMiwg cjAKLQlhZGQubAlyMCwgcjYzLCByMAotCWJsaW5rCXRyMCwgcjYzCi0jZWxp ZiAwIC8qICEgMCAqLwotIC8vIGlucHV0czogcjQscjUKLSAvLyBjbG9iYmVy ZWQ6IHIxLHIyLHIzLHIxOCxyMTkscjIwLHIyMSxyMjUsdHIwCi0gLy8gcmVz dWx0IGluIHIwCi1HTE9CQUwoc2RpdnNpMyk6Ci0gLy8gY2FuIGNyZWF0ZSBh YnNvbHV0ZSB2YWx1ZSB3aXRob3V0IGV4dHJhIGxhdGVuY3ksCi0gLy8gYnV0 IGRlcGVuZGVudCBvbiBwcm9wZXIgc2lnbiBleHRlbnNpb24gb2YgaW5wdXRz OgotIC8vIHNoYXJpLmwgcjUsMzEscjIKLSAvLyB4b3IgcjUscjIscjIwCi0g Ly8gc3ViIHIyMCxyMixyMjAgLy8gcjIwIGlzIG5vdyBhYnNvbHV0ZSB2YWx1 ZSBvZiByNSwgemVyby1leHRlbmRlZC4KLSBzaGFyaS5sIHI1LDMxLHIyCi0g b3JpIHIyLDEscjIKLSBtdWxzLmwgcjUscjIscjIwIC8vIHIyMCBpcyBub3cg YWJzb2x1dGUgdmFsdWUgb2YgcjUsIHplcm8tZXh0ZW5kZWQuCi0gbW92aSAw eGZmZmZmZmZmZmZmZmJiMGMscjE5IC8vIHNoaWZ0IGNvdW50IGVxaXYgNzYK LSBzaGFyaS5sIHI0LDMxLHIzCi0gbnNiIHIyMCxyMAotIHNobGxkIHIyMCxy MCxyMjUKLSBzaGxyaSByMjUsNDgscjI1Ci0gc3ViIHIxOSxyMjUscjEKLSBt bXVsZngudyByMSxyMSxyMgotIG1zaGZsby53IHIxLHI2MyxyMQotIC8vIElm IHI0IHdhcyB0byBiZSB1c2VkIGluLXBsYWNlIGluc3RlYWQgb2YgcjIxLCBj b3VsZCB1c2UgdGhpcyBzZXF1ZW5jZQotIC8vIHRvIGNvbXB1dGUgYWJzb2x1 dGU6Ci0gLy8gc3ViIHI2MyxyNCxyMTkgLy8gY29tcHV0ZSBhYnNvbHV0ZSB2 YWx1ZSBvZiByNAotIC8vIHNobHJpIHI0LDMyLHIzIC8vIGludG8gbG93ZXIg MzIgYml0IG9mIHI0LCBrZWVwaW5nCi0gLy8gbWNtdiByMTkscjMscjQgLy8g dGhlIHNpZ24gaW4gdGhlIHVwcGVyIDMyIGJpdHMgaW50YWN0LgotIG9yaSBy MywxLHIzCi0gbW11bGZ4LncgcjI1LHIyLHIyCi0gc3ViIHIxOSxyMCxyMAot IG11bHMubCByNCxyMyxyMjEKLSBtc3ViLncgcjEscjIscjIKLSBhZGRpIHIy LC0yLHIxCi0gbXVsdS5sIHIyMSxyMSxyMTkKLSBtbXVsZngudyByMixyMixy MgotIHNobGxpIHIxLDE1LHIxCi0gc2hscmQgcjE5LHIwLHIxOQotIG11bHUu bCByMTkscjIwLHIzCi0gbW1hY25meC53bCByMjUscjIscjEKLSBwdGFicyBy MTgsdHIwCi0gc3ViIHIyMSxyMyxyMjUKLQotIG11bHUubCByMjUscjEscjIK LSBhZGRpIHIwLDE0LHIwCi0geG9yIHI0LHI1LHIxOAotIHNobHJkIHIyLHIw LHIyCi0gbXVsdS5sIHIyLHIyMCxyMwotIGFkZCByMTkscjIscjE5Ci0gc2hh cmkubCByMTgsMzEscjE4Ci0gc3ViIHIyNSxyMyxyMjUKLQotIG11bHUubCBy MjUscjEscjIKLSBzdWIgcjI1LHIyMCxyMjUKLSBhZGQgcjE5LHIxOCxyMTkK LSBzaGxyZCByMixyMCxyMgotIG11bHUubCByMixyMjAscjMKLSBhZGRpIHIy NSwxLHIyNQotIGFkZCByMTkscjIscjE5Ci0KLSBjbXBndCByMjUscjMscjI1 Ci0gYWRkLmwgcjE5LHIyNSxyMAotIHhvciByMCxyMTgscjAKLSBibGluayB0 cjAscjYzCi0jZWxzZSAvKiAhIDAgJiYgISAwICovCi0KLSAvLyBpbnB1dHM6 IHI0LHI1Ci0gLy8gY2xvYmJlcmVkOiByMSxyMTgscjE5LHIyMCxyMjEscjI1 LHRyMAotIC8vIHJlc3VsdCBpbiByMAotCUhJRERFTl9GVU5DKEdMT0JBTChz ZGl2c2kzXzIpKQotI2lmbmRlZiBfX3BpY19fCi0JRlVOQyhHTE9CQUwoc2Rp dnNpMykpCi1HTE9CQUwoc2RpdnNpMyk6IC8qIHRoaXMgaXMgdGhlIHNoY29t cGFjdCBlbnRyeSBwb2ludCAqLwotIC8vIFRoZSBzcGVjaWFsIFNIbWVkaWEg ZW50cnkgcG9pbnQgc2RpdnNpM18xIHByZXZlbnRzIGFjY2lkZW50YWwgbGlu a2luZwotIC8vIHdpdGggdGhlIFNIY29tcGFjdCBpbXBsZW1lbnRhdGlvbiwg d2hpY2ggY2xvYmJlcnMgdHIxIC8gdHIyLgotIC5nbG9iYWwgR0xPQkFMKHNk aXZzaTNfMSkKLUdMT0JBTChzZGl2c2kzXzEpOgotIC5nbG9iYWwgR0xPQkFM KGRpdl90YWJsZV9pbnRlcm5hbCkKLSBtb3ZpIChHTE9CQUwoZGl2X3RhYmxl X2ludGVybmFsKSA+PiAxNikgJiA2NTUzNSwgcjIwCi0gc2hvcmkgR0xPQkFM KGRpdl90YWJsZV9pbnRlcm5hbCkgJiA2NTUzNSwgcjIwCi0jZW5kaWYKLSAu Z2xvYmFsIEdMT0JBTChzZGl2c2kzXzIpCi0gLy8gZGl2X3RhYmxlIGluIHIy MAotIC8vIGNsb2JiZXJlZDogcjEscjE4LHIxOSxyMjEscjI1LHRyMAotR0xP QkFMKHNkaXZzaTNfMik6Ci0gbnNiIHI1LCByMQotIHNobGxkIHI1LCByMSwg cjI1ICAgIC8vIG5vcm1hbGl6ZTsgWy0yIC4uMSwgMS4uMikgaW4gczIuNjIK LSBzaGFyaSByMjUsIDU4LCByMjEgICAvLyBleHRyYWN0IDUoNikgYml0IGlu ZGV4IChzMi40IHdpdGggaG9sZSAtMS4uMSkKLSBsZHgudWIgcjIwLCByMjEs IHIxOSAvLyB1MC44Ci0gc2hhcmkgcjI1LCAzMiwgcjI1ICAgLy8gbm9ybWFs aXplIHRvIHMyLjMwCi0gc2hsbGkgcjIxLCAxLCByMjEKLSBtdWxzLmwgcjI1 LCByMTksIHIxOSAvLyBzMi4zOAotIGxkeC53IHIyMCwgcjIxLCByMjEgIC8v IHMyLjE0Ci0gIHB0YWJzIHIxOCwgdHIwCi0gc2hhcmkgcjE5LCAyNCwgcjE5 ICAgLy8gdHJ1bmNhdGUgdG8gczIuMTQKLSBzdWIgcjIxLCByMTksIHIxOSAg ICAvLyBzb21lIDExIGJpdCBpbnZlcnNlIGluIHMxLjE0Ci0gbXVscy5sIHIx OSwgcjE5LCByMjEgLy8gdTAuMjgKLSAgc3ViIHI2MywgcjEsIHIxCi0gIGFk ZGkgcjEsIDkyLCByMQotIG11bHMubCByMjUsIHIyMSwgcjE4IC8vIHMyLjU4 Ci0gc2hsbGkgcjE5LCA0NSwgcjE5ICAgLy8gbXVsdGlwbHkgYnkgdHdvIGFu ZCBjb252ZXJ0IHRvIHMyLjU4Ci0gIC8qIGJ1YmJsZSAqLwotIHN1YiByMTks IHIxOCwgcjE4Ci0gc2hhcmkgcjE4LCAyOCwgcjE4ICAgLy8gc29tZSAyMiBi aXQgaW52ZXJzZSBpbiBzMS4zMAotIG11bHMubCByMTgsIHIyNSwgcjAgIC8v IHMyLjYwCi0gIG11bHMubCByMTgsIHI0LCByMjUgLy8gczMyLjMwCi0gIC8q IGJ1YmJsZSAqLwotIHNoYXJpIHIwLCAxNiwgcjE5ICAgLy8gcy0xNi40NAot IG11bHMubCByMTksIHIxOCwgcjE5IC8vIHMtMTYuNzQKLSAgc2hhcmkgcjI1 LCA2MywgcjAKLSAgc2hhcmkgcjQsIDE0LCByMTggICAvLyBzMTkuLTE0Ci0g c2hhcmkgcjE5LCAzMCwgcjE5ICAgLy8gcy0xNi40NAotIG11bHMubCByMTks IHIxOCwgcjE5IC8vIHMxNS4zMAotICB4b3IgcjIxLCByMCwgcjIxICAgIC8v IFlvdSBjb3VsZCBhbHNvIHVzZSB0aGUgY29uc3RhbnQgMSA8PCAyNy4KLSAg YWRkIHIyMSwgcjI1LCByMjEKLSBzdWIgcjIxLCByMTksIHIyMQotIHNoYXJk IHIyMSwgcjEsIHIyMQotIHN1YiByMjEsIHIwLCByMAotIGJsaW5rIHRyMCwg cjYzCi0jaWZuZGVmIF9fcGljX18KLQlFTkRGVU5DKEdMT0JBTChzZGl2c2kz KSkKLSNlbmRpZgotCUVOREZVTkMoR0xPQkFMKHNkaXZzaTNfMikpCi0jZW5k aWYKLSNlbGlmIF9fU0hNRURJQV9fCi0vKiBtNWNvbXBhY3Qtbm9mcHUgKi8K LSAvLyBjbG9iYmVyZWQ6IHIxOCxyMTkscjIwLHIyMSxyMjUsdHIwLHRyMSx0 cjIKLQkubW9kZQlTSG1lZGlhCi0JLnNlY3Rpb24JLnRleHQuLlNIbWVkaWEz MiwiYXgiCi0JLmFsaWduCTIKLQlGVU5DKEdMT0JBTChzZGl2c2kzKSkKLUdM T0JBTChzZGl2c2kzKToKLQlwdC9sIExPQ0FMKHNkaXZzaTNfZG9udHN1Yiks IHRyMAotCXB0L2wgTE9DQUwoc2RpdnNpM19sb29wKSwgdHIxCi0JcHRhYnMv bCByMTgsdHIyCi0Jc2hhcmkubCByNCwzMSxyMTgKLQlzaGFyaS5sIHI1LDMx LHIxOQotCXhvciByNCxyMTgscjIwCi0JeG9yIHI1LHIxOSxyMjEKLQlzdWIu bCByMjAscjE4LHIyMAotCXN1Yi5sIHIyMSxyMTkscjIxCi0JeG9yIHIxOCxy MTkscjE5Ci0Jc2hsbGkgcjIxLDMyLHIyNQotCWFkZGkgcjI1LC0xLHIyMQot CWFkZHoubCByMjAscjYzLHIyMAotTE9DQUwoc2RpdnNpM19sb29wKToKLQlz aGxsaSByMjAsMSxyMjAKLQliZ2V1L3UgcjIxLHIyMCx0cjAKLQlzdWIgcjIw LHIyMSxyMjAKLUxPQ0FMKHNkaXZzaTNfZG9udHN1Yik6Ci0JYWRkaS5sIHIy NSwtMSxyMjUKLQlibmVpIHIyNSwtMzIsdHIxCi0JeG9yIHIyMCxyMTkscjIw Ci0Jc3ViLmwgcjIwLHIxOSxyMAotCWJsaW5rIHRyMixyNjMKLQlFTkRGVU5D KEdMT0JBTChzZGl2c2kzKSkKLSNlbHNlIC8qICEgX19TSE1FRElBX18gKi8K KwogCUZVTkMoR0xPQkFMKHNkaXZzaTMpKQogR0xPQkFMKHNkaXZzaTMpOgog CW1vdglyNCxyMQpAQCAtMTM5Nyw3ICsxMTcyLDYgQEAgZGl2MDoJcnRzCiAJ bW92CSMwLHIwCiAKIAlFTkRGVU5DKEdMT0JBTChzZGl2c2kzKSkKLSNlbmRp ZiAvKiAhIF9fU0hNRURJQV9fICAqLwogI2VuZGlmIC8qIExfc2RpdnNpMyAg Ki8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAg LTE0NTEsMjggKzEyMjUsNiBAQCBMMToKIAogCUVOREZVTkMoR0xPQkFMKHVk aXZzaTNfaTQpKQogCi0jZWxpZiBkZWZpbmVkIChfX1NINV9fKSAmJiAhIGRl ZmluZWQgKF9fU0g0X05PRlBVX18pICYmICEgZGVmaW5lZCAoX19TSDJBX05P RlBVX18pCi0jaWYgISBfX1NINV9fIHx8IF9fU0g1X18gPT0gMzIKLSEhIGFy Z3MgaW4gcjQgYW5kIHI1LCByZXN1bHQgaW4gZnB1bCwgY2xvYmJlciByMjAs IHIyMSwgZHIwLCBmcjMzCi0JLm1vZGUJU0htZWRpYQotCS5nbG9iYWwJR0xP QkFMKHVkaXZzaTNfaTQpCi0JSElEREVOX0ZVTkMoR0xPQkFMKHVkaXZzaTNf aTQpKQotR0xPQkFMKHVkaXZzaTNfaTQpOgotCWFkZHoubAlyNCxyNjMscjIw Ci0JYWRkei5sCXI1LHI2MyxyMjEKLQlmbW92LnFkCXIyMCxkcjAKLQlmbW92 LnFkCXIyMSxkcjMyCi0JcHRhYnMJcjE4LHRyMAotCWZsb2F0LnFkIGRyMCxk cjAKLQlmbG9hdC5xZCBkcjMyLGRyMzIKLQlmZGl2LmQJZHIwLGRyMzIsZHIw Ci0JZnRyYy5kcSBkcjAsZHIzMgotCWZtb3YucyBmcjMzLGZyMzIKLQlibGlu ayB0cjAscjYzCi0KLQlFTkRGVU5DKEdMT0JBTCh1ZGl2c2kzX2k0KSkKLSNl bmRpZiAvKiAhIF9fU0g1X18gfHwgX19TSDVfXyA9PSAzMiAqLwotCiAjZWxp ZiBkZWZpbmVkIChfX1NIMkFfU0lOR0xFX18pIHx8IGRlZmluZWQgKF9fU0gy QV9TSU5HTEVfT05MWV9fKSB8fCBkZWZpbmVkKF9fU0g0X1NJTkdMRV9fKSB8 fCBkZWZpbmVkKF9fU0g0X1NJTkdMRV9PTkxZX18pCiAvKiBUaGlzIHZhcmlh bnQgaXMgdXNlZCB3aGVuIEZQU0NSLlBSID0gMCAoc2lnbGUgcHJlY2lzaW9u KSBpcyB0aGUgZGVmYXVsdAogICAgc2V0dGluZy4KQEAgLTE1ODEsMTMzICsx MzMzLDYgQEAgTDE6CiAJLmdsb2JhbAlHTE9CQUwodWRpdnNpMykKIAlISURE RU5fRlVOQyhHTE9CQUwodWRpdnNpMykpCiAKLSNpZiBfX1NITUVESUFfXwot I2lmIF9fU0g1X18gPT0gMzIKLQkuc2VjdGlvbgkudGV4dC4uU0htZWRpYTMy LCJheCIKLSNlbHNlCi0JLnRleHQKLSNlbmRpZgotCS5hbGlnbgkyCi0jaWYg MAotLyogVGhlIGFzc2VtYmx5IGNvZGUgdGhhdCBmb2xsb3dzIGlzIGEgaGFu ZC1vcHRpbWl6ZWQgdmVyc2lvbiBvZiB0aGUgQwotICAgY29kZSB0aGF0IGZv bGxvd3MuICBOb3RlIHRoYXQgdGhlIHJlZ2lzdGVycyB0aGF0IGFyZSBtb2Rp ZmllZCBhcmUKLSAgIGV4YWN0bHkgdGhvc2UgbGlzdGVkIGFzIGNsb2JiZXJl ZCBpbiB0aGUgcGF0dGVybnMgdWRpdnNpM19pMSBhbmQKLSAgIHVkaXZzaTNf aTFfbWVkaWEuCi0JCi11bnNpZ25lZCAKLV9fdWRpdnNpMyAoaSwgaikKLSAg ICB1bnNpZ25lZCBpLCBqOyAKLXsKLSAgcmVnaXN0ZXIgdW5zaWduZWQgbG9u ZyBsb25nIHIwIGFzbSAoInIwIikgPSAwOwotICByZWdpc3RlciB1bnNpZ25l ZCBsb25nIGxvbmcgcjE4IGFzbSAoInIxOCIpID0gMTsKLSAgcmVnaXN0ZXIg dW5zaWduZWQgbG9uZyBsb25nIHI0IGFzbSAoInI0IikgPSBpOwotICByZWdp c3RlciB1bnNpZ25lZCBsb25nIGxvbmcgcjE5IGFzbSAoInIxOSIpID0gajsK LQotICByMTkgPDw9IDMxOwotICByMTggPDw9IDMxOwotICBkbwotICAgIGlm IChyNCA+PSByMTkpCi0gICAgICByMCB8PSByMTgsIHI0IC09IHIxOTsKLSAg d2hpbGUgKHIxOSA+Pj0gMSwgcjE4ID4+PSAxKTsKLQotICByZXR1cm4gcjA7 Ci19Ci0qLwotR0xPQkFMKHVkaXZzaTMpOgotCXB0L2wJTE9DQUwodWRpdnNp M19kb250YWRkKSwgdHIyCi0JcHQvbAlMT0NBTCh1ZGl2c2kzX2xvb3ApLCB0 cjEKLQlwdGFicy9sCXIxOCwgdHIwCi0JbW92aQkwLCByMAotCW1vdmkJMSwg cjE4Ci0JYWRkei5sCXI1LCByNjMsIHIxOQotCWFkZHoubAlyNCwgcjYzLCBy NAotCXNobGxpCXIxOSwgMzEsIHIxOQotCXNobGxpCXIxOCwgMzEsIHIxOAot TE9DQUwodWRpdnNpM19sb29wKToKLQliZ3R1CXIxOSwgcjQsIHRyMgotCW9y CXIwLCByMTgsIHIwCi0Jc3ViCXI0LCByMTksIHI0Ci1MT0NBTCh1ZGl2c2kz X2RvbnRhZGQpOgotCXNobHJpCXIxOCwgMSwgcjE4Ci0Jc2hscmkJcjE5LCAx LCByMTkKLQlibmVpCXIxOCwgMCwgdHIxCi0JYmxpbmsJdHIwLCByNjMKLSNl bHNlCi1HTE9CQUwodWRpdnNpMyk6Ci0gLy8gaW5wdXRzOiByNCxyNQotIC8v IGNsb2JiZXJlZDogcjE4LHIxOSxyMjAscjIxLHIyMixyMjUsdHIwCi0gLy8g cmVzdWx0IGluIHIwLgotIGFkZHoubCByNSxyNjMscjIyCi0gbnNiIHIyMixy MAotIHNobGxkIHIyMixyMCxyMjUKLSBzaGxyaSByMjUsNDgscjI1Ci0gbW92 aSAweGZmZmZmZmZmZmZmZmJiMGMscjIwIC8vIHNoaWZ0IGNvdW50IGVxaXYg NzYKLSBzdWIgcjIwLHIyNSxyMjEKLSBtbXVsZngudyByMjEscjIxLHIxOQot IG1zaGZsby53IHIyMSxyNjMscjIxCi0gcHRhYnMgcjE4LHRyMAotIG1tdWxm eC53IHIyNSxyMTkscjE5Ci0gc3ViIHIyMCxyMCxyMAotIC8qIGJ1YmJsZSAq LwotIG1zdWIudyByMjEscjE5LHIxOQotIGFkZGkgcjE5LC0yLHIyMSAvKiBJ dCB3b3VsZCBiZSBuaWNlIGZvciBzY2hlZHVsaW5nIHRvIGRvIHRoaXMgYWRk IHRvIHIyMQotCQkgICAgYmVmb3JlIHRoZSBtc3ViLncsIGJ1dCB3ZSBuZWVk IGEgZGlmZmVyZW50IHZhbHVlIGZvcgotCQkgICAgcjE5IHRvIGtlZXAgZXJy b3JzIHVuZGVyIGNvbnRyb2wuICAqLwotIG11bHUubCByNCxyMjEscjE4Ci0g bW11bGZ4LncgcjE5LHIxOSxyMTkKLSBzaGxsaSByMjEsMTUscjIxCi0gc2hs cmQgcjE4LHIwLHIxOAotIG11bHUubCByMTgscjIyLHIyMAotIG1tYWNuZngu d2wgcjI1LHIxOSxyMjEKLSAvKiBidWJibGUgKi8KLSBzdWIgcjQscjIwLHIy NQotCi0gbXVsdS5sIHIyNSxyMjEscjE5Ci0gYWRkaSByMCwxNCxyMAotIC8q IGJ1YmJsZSAqLwotIHNobHJkIHIxOSxyMCxyMTkKLSBtdWx1LmwgcjE5LHIy MixyMjAKLSBhZGQgcjE4LHIxOSxyMTgKLSAvKiBidWJibGUgKi8KLSBzdWIu bCByMjUscjIwLHIyNQotCi0gbXVsdS5sIHIyNSxyMjEscjE5Ci0gYWRkei5s IHIyNSxyNjMscjI1Ci0gc3ViIHIyNSxyMjIscjI1Ci0gc2hscmQgcjE5LHIw LHIxOQotIG11bHUubCByMTkscjIyLHIyMAotIGFkZGkgcjI1LDEscjI1Ci0g YWRkIHIxOCxyMTkscjE4Ci0KLSBjbXBndCByMjUscjIwLHIyNQotIGFkZC5s IHIxOCxyMjUscjAKLSBibGluayB0cjAscjYzCi0jZW5kaWYKLSNlbGlmIF9f U0hNRURJQV9fCi0vKiBtNWNvbXBhY3Qtbm9mcHUgLSBtb3JlIGVtcGhhc2lz IG9uIGNvZGUgc2l6ZSB0aGFuIG9uIHNwZWVkLCBidXQgZG9uJ3QKLSAgIGln bm9yZSBzcGVlZCBhbHRvZ2V0aGVyIC0gZGl2MSBuZWVkcyA5IGN5Y2xlcywg c3ViYyA3IGFuZCByb3RjbCA0LgotICAgU28gdXNlIGEgc2hvcnQgc2htZWRp YSBsb29wLiAgKi8KLSAvLyBjbG9iYmVyZWQ6IHIyMCxyMjEscjI1LHRyMCx0 cjEsdHIyCi0JLm1vZGUJU0htZWRpYQotCS5zZWN0aW9uCS50ZXh0Li5TSG1l ZGlhMzIsImF4IgotCS5hbGlnbgkyCi1HTE9CQUwodWRpdnNpMyk6Ci0gcHQv bCBMT0NBTCh1ZGl2c2kzX2RvbnRzdWIpLCB0cjAKLSBwdC9sIExPQ0FMKHVk aXZzaTNfbG9vcCksIHRyMQotIHB0YWJzL2wgcjE4LHRyMgotIHNobGxpIHI1 LDMyLHIyNQotIGFkZGkgcjI1LC0xLHIyMQotIGFkZHoubCByNCxyNjMscjIw Ci1MT0NBTCh1ZGl2c2kzX2xvb3ApOgotIHNobGxpIHIyMCwxLHIyMAotIGJn ZXUvdSByMjEscjIwLHRyMAotIHN1YiByMjAscjIxLHIyMAotTE9DQUwodWRp dnNpM19kb250c3ViKToKLSBhZGRpLmwgcjI1LC0xLHIyNQotIGJuZWkgcjI1 LC0zMix0cjEKLSBhZGQubCByMjAscjYzLHIwCi0gYmxpbmsgdHIyLHI2Mwot I2Vsc2UgLyogISBfX1NITUVESUFfXyAqLwogTE9DQUwoZGl2OCk6CiAgZGl2 MSByNSxyNAogTE9DQUwoZGl2Nyk6CkBAIC0xNzY5LDMyMCArMTM5NCwxMSBA QCBMT0NBTChsYXJnZV9kaXZpc29yKToKICByb3RjbCByMAogCiAJRU5ERlVO QyhHTE9CQUwodWRpdnNpMykpCi0jZW5kaWYgLyogISBfX1NITUVESUFfXyAq LwogI2VuZGlmIC8qIExfdWRpdnNpMyAqLwogCi0jaWZkZWYgTF91ZGl2ZGkz Ci0jaWYgX19TSE1FRElBX18KLQkubW9kZQlTSG1lZGlhCi0JLnNlY3Rpb24J LnRleHQuLlNIbWVkaWEzMiwiYXgiCi0JLmFsaWduCTIKLQkuZ2xvYmFsCUdM T0JBTCh1ZGl2ZGkzKQotCUZVTkMoR0xPQkFMKHVkaXZkaTMpKQotR0xPQkFM KHVkaXZkaTMpOgotCUhJRERFTl9BTElBUyh1ZGl2ZGkzX2ludGVybmFsLHVk aXZkaTMpCi0Jc2hscmkgcjMsMSxyNAotCW5zYiByNCxyMjIKLQlzaGxsZCBy MyxyMjIscjYKLQlzaGxyaSByNiw0OSxyNQotCW1vdmkgMHhmZmZmZmZmZmZm ZmZiYWYxLHIyMSAvKiAubCBzaGlmdCBjb3VudCAxNy4gICovCi0Jc3ViIHIy MSxyNSxyMQotCW1tdWxmeC53IHIxLHIxLHI0Ci0JbXNoZmxvLncgcjEscjYz LHIxCi0Jc3ViIHI2MyxyMjIscjIwIC8vIHI2MyA9PSA2NCAlIDY0Ci0JbW11 bGZ4LncgcjUscjQscjQKLQlwdGEgTE9DQUwobGFyZ2VfZGl2aXNvciksdHIw Ci0JYWRkaSByMjAsMzIscjkKLQltc3ViLncgcjEscjQscjEKLQltYWRkLncg cjEscjEscjEKLQltbXVsZngudyByMSxyMSxyNAotCXNobHJpIHI2LDMyLHI3 Ci0JYmd0L3UgcjkscjYzLHRyMCAvLyBsYXJnZV9kaXZpc29yCi0JbW11bGZ4 LncgcjUscjQscjQKLQlzaGxyaSByMiwzMisxNCxyMTkKLQlhZGRpIHIyMiwt MzEscjAKLQltc3ViLncgcjEscjQscjEKLQotCW11bHUubCByMSxyNyxyNAot CWFkZGkgcjEsLTMscjUKLQltdWx1LmwgcjUscjE5LHI1Ci0Jc3ViIHI2Myxy NCxyNCAvLyBOZWdhdGUgdG8gbWFrZSBzdXJlIHIxIGVuZHMgdXAgPD0gMS9y MgotCXNobHJpIHI0LDIscjQgLyogY2hvcCBvZmYgbGVhZGluZyAlMDAwMDAw MDAwMDAwMDAwMCAwMDEuMDAwMDAwMDAwMDAgLSBvciwgYXMKLQkgICAgICAg ICAgICAgICAgIHRoZSBjYXNlIG1heSBiZSwgJTAwMDAwMDAwMDAwMDAwMDAg MDAwLjExMTExMTExMTExLCBzdGlsbCAqLwotCW11bHMubCByMSxyNCxyNCAv KiBsZWF2aW5nIGF0IGxlYXN0IG9uZSBzaWduIGJpdC4gICovCi0JbXVsdS5s IHI1LHIzLHI4Ci0JbXNoYWxkcy5sIHIxLHIyMSxyMQotCXNoYXJpIHI0LDI2 LHI0Ci0Jc2hsbGQgcjgscjAscjgKLQlhZGQgcjEscjQscjEgLy8gMzEgYml0 IHVuc2lnbmVkIHJlY2lwcm9jYWwgbm93IGluIHIxIChtc2IgZXF1aXYuIDAu NSkKLQlzdWIgcjIscjgscjIKLQkvKiBDYW4gZG8gc2Vjb25kIHN0ZXAgb2Yg NjQgOiAzMiBkaXYgbm93LCB1c2luZyByMSBhbmQgdGhlIHJlc3QgaW4gcjIu ICAqLwotCi0Jc2hscmkgcjIsMjIscjIxCi0JbXVsdS5sIHIyMSxyMSxyMjEK LQlzaGxsZCByNSxyMCxyOAotCWFkZGkgcjIwLDMwLTIyLHIwCi0Jc2hscmQg cjIxLHIwLHIyMQotCW11bHUubCByMjEscjMscjUKLQlhZGQgcjgscjIxLHI4 Ci0JbWNtcGd0LmwgcjIxLHI2MyxyMjEgLy8gU2VlIE5vdGUgMQotCWFkZGkg cjIwLDMwLHIwCi0JbXNoZmhpLmwgcjYzLHIyMSxyMjEKLQlzdWIgcjIscjUs cjIKLQlhbmRjIHIyLHIyMSxyMgotCi0JLyogc21hbGwgZGl2aXNvcjogbmVl ZCBhIHRoaXJkIGRpdmlkZSBzdGVwICovCi0JbXVsdS5sIHIyLHIxLHI3Ci0J cHRhYnMgcjE4LHRyMAotCWFkZGkgcjIsMSxyMgotCXNobHJkIHI3LHIwLHI3 Ci0JbXVsdS5sIHI3LHIzLHI1Ci0JYWRkIHI4LHI3LHI4Ci0Jc3ViIHIyLHIz LHIyCi0JY21wZ3QgcjIscjUscjUKLQlhZGQgcjgscjUscjIKLQkvKiBjb3Vs ZCB0ZXN0IHIzIGhlcmUgdG8gY2hlY2sgZm9yIGRpdmlkZSBieSB6ZXJvLiAg Ki8KLQlibGluayB0cjAscjYzCi0KLUxPQ0FMKGxhcmdlX2Rpdmlzb3IpOgot CW1tdWxmeC53IHI1LHI0LHI0Ci0Jc2hscmQgcjIscjkscjI1Ci0Jc2hscmkg cjI1LDMyLHI4Ci0JbXN1Yi53IHIxLHI0LHIxCi0KLQltdWx1LmwgcjEscjcs cjQKLQlhZGRpIHIxLC0zLHI1Ci0JbXVsdS5sIHI1LHI4LHI1Ci0Jc3ViIHI2 MyxyNCxyNCAvLyBOZWdhdGUgdG8gbWFrZSBzdXJlIHIxIGVuZHMgdXAgPD0g MS9yMgotCXNobHJpIHI0LDIscjQgLyogY2hvcCBvZmYgbGVhZGluZyAlMDAw MDAwMDAwMDAwMDAwMCAwMDEuMDAwMDAwMDAwMDAgLSBvciwgYXMKLQkgICAg ICAgICAgICAgICAgIHRoZSBjYXNlIG1heSBiZSwgJTAwMDAwMDAwMDAwMDAw MDAgMDAwLjExMTExMTExMTExLCBzdGlsbCAqLwotCW11bHMubCByMSxyNCxy NCAvKiBsZWF2aW5nIGF0IGxlYXN0IG9uZSBzaWduIGJpdC4gICovCi0Jc2hs cmkgcjUsMTQtMSxyOAotCW11bHUubCByOCxyNyxyNQotCW1zaGFsZHMubCBy MSxyMjEscjEKLQlzaGFyaSByNCwyNixyNAotCWFkZCByMSxyNCxyMSAvLyAz MSBiaXQgdW5zaWduZWQgcmVjaXByb2NhbCBub3cgaW4gcjEgKG1zYiBlcXVp di4gMC41KQotCXN1YiByMjUscjUscjI1Ci0JLyogQ2FuIGRvIHNlY29uZCBz dGVwIG9mIDY0IDogMzIgZGl2IG5vdywgdXNpbmcgcjEgYW5kIHRoZSByZXN0 IGluIHIyNS4gICovCi0KLQlzaGxyaSByMjUsMjIscjIxCi0JbXVsdS5sIHIy MSxyMSxyMjEKLQlwdGEgTE9DQUwobm9fbG9fYWRqKSx0cjAKLQlhZGRpIHIy MiwzMixyMAotCXNobHJpIHIyMSw0MCxyMjEKLQltdWx1LmwgcjIxLHI3LHI1 Ci0JYWRkIHI4LHIyMSxyOAotCXNobGxkIHIyLHIwLHIyCi0Jc3ViIHIyNSxy NSxyMjUKLQliZ3R1L3UgcjcscjI1LHRyMCAvLyBub19sb19hZGoKLQlhZGRp IHI4LDEscjgKLQlzdWIgcjI1LHI3LHIyNQotTE9DQUwobm9fbG9fYWRqKToK LQltZXh0cjQgcjIscjI1LHIyCi0KLQkvKiBsYXJnZV9kaXZpc29yOiBvbmx5 IG5lZWRzIGEgZmV3IGFkanVzdG1lbnRzLiAgKi8KLQltdWx1LmwgcjgscjYs cjUKLQlwdGFicyByMTgsdHIwCi0JLyogYnViYmxlICovCi0JY21wZ3R1IHI1 LHIyLHI1Ci0Jc3ViIHI4LHI1LHIyCi0JYmxpbmsgdHIwLHI2MwotCUVOREZV TkMoR0xPQkFMKHVkaXZkaTMpKQotLyogTm90ZSAxOiBUbyBzaGlmdCB0aGUg cmVzdWx0IG9mIHRoZSBzZWNvbmQgZGl2aWRlIHN0YWdlIHNvIHRoYXQgdGhl IHJlc3VsdAotICAgYWx3YXlzIGZpdHMgaW50byAzMiBiaXRzLCB5ZXQgd2Ug c3RpbGwgcmVkdWNlIHRoZSByZXN0IHN1ZmZpY2llbnRseQotICAgd291bGQg cmVxdWlyZSBhIGxvdCBvZiBpbnN0cnVjdGlvbnMgdG8gZG8gdGhlIHNoaWZ0 cyBqdXN0IHJpZ2h0LiAgVXNpbmcKLSAgIHRoZSBmdWxsIDY0IGJpdCBzaGlm dCByZXN1bHQgdG8gbXVsdGlwbHkgd2l0aCB0aGUgZGl2aXNvciB3b3VsZCBy ZXF1aXJlCi0gICBmb3VyIGV4dHJhIGluc3RydWN0aW9ucyBmb3IgdGhlIHVw cGVyIDMyIGJpdHMgKHNoaWZ0IC8gbXVsdSAvIHNoaWZ0IC8gc3ViKS4KLSAg IEZvcnR1bmF0ZWx5LCBpZiB0aGUgdXBwZXIgMzIgYml0cyBvZiB0aGUgc2hp ZnQgcmVzdWx0IGFyZSBub256ZXJvLCB3ZQotICAga25vdyB0aGF0IHRoZSBy ZXN0IGFmdGVyIHRha2luZyB0aGlzIHBhcnRpYWwgcmVzdWx0IGludG8gYWNj b3VudCB3aWxsCi0gICBmaXQgaW50byAzMiBiaXRzLiAgU28gd2UganVzdCBj bGVhciB0aGUgdXBwZXIgMzIgYml0cyBvZiB0aGUgcmVzdCBpZiB0aGUKLSAg IHVwcGVyIDMyIGJpdHMgb2YgdGhlIHBhcnRpYWwgcmVzdWx0IGFyZSBub256 ZXJvLiAgKi8KLSNlbmRpZiAvKiBfX1NITUVESUFfXyAqLwotI2VuZGlmIC8q IExfdWRpdmRpMyAqLwotCi0jaWZkZWYgTF9kaXZkaTMKLSNpZiBfX1NITUVE SUFfXwotCS5tb2RlCVNIbWVkaWEKLQkuc2VjdGlvbgkudGV4dC4uU0htZWRp YTMyLCJheCIKLQkuYWxpZ24JMgotCS5nbG9iYWwJR0xPQkFMKGRpdmRpMykK LQlGVU5DKEdMT0JBTChkaXZkaTMpKQotR0xPQkFMKGRpdmRpMyk6Ci0JcHRh IEdMT0JBTCh1ZGl2ZGkzX2ludGVybmFsKSx0cjAKLQlzaGFyaSByMiw2Myxy MjIKLQlzaGFyaSByMyw2MyxyMjMKLQl4b3IgcjIscjIyLHIyCi0JeG9yIHIz LHIyMyxyMwotCXN1YiByMixyMjIscjIKLQlzdWIgcjMscjIzLHIzCi0JYmVx L3UgcjIyLHIyMyx0cjAKLQlwdGFicyByMTgsdHIxCi0JYmxpbmsgdHIwLHIx OAotCXN1YiByNjMscjIscjIKLQlibGluayB0cjEscjYzCi0JRU5ERlVOQyhH TE9CQUwoZGl2ZGkzKSkKLSNlbmRpZiAvKiBfX1NITUVESUFfXyAqLwotI2Vu ZGlmIC8qIExfZGl2ZGkzICovCi0KLSNpZmRlZiBMX3Vtb2RkaTMKLSNpZiBf X1NITUVESUFfXwotCS5tb2RlCVNIbWVkaWEKLQkuc2VjdGlvbgkudGV4dC4u U0htZWRpYTMyLCJheCIKLQkuYWxpZ24JMgotCS5nbG9iYWwJR0xPQkFMKHVt b2RkaTMpCi0JRlVOQyhHTE9CQUwodW1vZGRpMykpCi1HTE9CQUwodW1vZGRp Myk6Ci0JSElEREVOX0FMSUFTKHVtb2RkaTNfaW50ZXJuYWwsdW1vZGRpMykK LQlzaGxyaSByMywxLHI0Ci0JbnNiIHI0LHIyMgotCXNobGxkIHIzLHIyMixy NgotCXNobHJpIHI2LDQ5LHI1Ci0JbW92aSAweGZmZmZmZmZmZmZmZmJhZjEs cjIxIC8qIC5sIHNoaWZ0IGNvdW50IDE3LiAgKi8KLQlzdWIgcjIxLHI1LHIx Ci0JbW11bGZ4LncgcjEscjEscjQKLQltc2hmbG8udyByMSxyNjMscjEKLQlz dWIgcjYzLHIyMixyMjAgLy8gcjYzID09IDY0ICUgNjQKLQltbXVsZngudyBy NSxyNCxyNAotCXB0YSBMT0NBTChsYXJnZV9kaXZpc29yKSx0cjAKLQlhZGRp IHIyMCwzMixyOQotCW1zdWIudyByMSxyNCxyMQotCW1hZGQudyByMSxyMSxy MQotCW1tdWxmeC53IHIxLHIxLHI0Ci0Jc2hscmkgcjYsMzIscjcKLQliZ3Qv dSByOSxyNjMsdHIwIC8vIGxhcmdlX2Rpdmlzb3IKLQltbXVsZngudyByNSxy NCxyNAotCXNobHJpIHIyLDMyKzE0LHIxOQotCWFkZGkgcjIyLC0zMSxyMAot CW1zdWIudyByMSxyNCxyMQotCi0JbXVsdS5sIHIxLHI3LHI0Ci0JYWRkaSBy MSwtMyxyNQotCW11bHUubCByNSxyMTkscjUKLQlzdWIgcjYzLHI0LHI0IC8v IE5lZ2F0ZSB0byBtYWtlIHN1cmUgcjEgZW5kcyB1cCA8PSAxL3IyCi0Jc2hs cmkgcjQsMixyNCAvKiBjaG9wIG9mZiBsZWFkaW5nICUwMDAwMDAwMDAwMDAw MDAwIDAwMS4wMDAwMDAwMDAwMCAtIG9yLCBhcwotCSAgICAgICAgICAgICAg ICAgdGhlIGNhc2UgbWF5IGJlLCAlMDAwMDAwMDAwMDAwMDAwMCAwMDAuMTEx MTExMTExMTEsIHN0aWxsICovCi0JbXVscy5sIHIxLHI0LHI0IC8qIGxlYXZp bmcgYXQgbGVhc3Qgb25lIHNpZ24gYml0LiAgKi8KLQltdWx1LmwgcjUscjMs cjUKLQltc2hhbGRzLmwgcjEscjIxLHIxCi0Jc2hhcmkgcjQsMjYscjQKLQlz aGxsZCByNSxyMCxyNQotCWFkZCByMSxyNCxyMSAvLyAzMSBiaXQgdW5zaWdu ZWQgcmVjaXByb2NhbCBub3cgaW4gcjEgKG1zYiBlcXVpdi4gMC41KQotCXN1 YiByMixyNSxyMgotCS8qIENhbiBkbyBzZWNvbmQgc3RlcCBvZiA2NCA6IDMy IGRpdiBub3csIHVzaW5nIHIxIGFuZCB0aGUgcmVzdCBpbiByMi4gICovCi0K LQlzaGxyaSByMiwyMixyMjEKLQltdWx1LmwgcjIxLHIxLHIyMQotCWFkZGkg cjIwLDMwLTIyLHIwCi0JLyogYnViYmxlICovIC8qIGNvdWxkIHRlc3QgcjMg aGVyZSB0byBjaGVjayBmb3IgZGl2aWRlIGJ5IHplcm8uICAqLwotCXNobHJk IHIyMSxyMCxyMjEKLQltdWx1LmwgcjIxLHIzLHI1Ci0JbWNtcGd0LmwgcjIx LHI2MyxyMjEgLy8gU2VlIE5vdGUgMQotCWFkZGkgcjIwLDMwLHIwCi0JbXNo ZmhpLmwgcjYzLHIyMSxyMjEKLQlzdWIgcjIscjUscjIKLQlhbmRjIHIyLHIy MSxyMgotCi0JLyogc21hbGwgZGl2aXNvcjogbmVlZCBhIHRoaXJkIGRpdmlk ZSBzdGVwICovCi0JbXVsdS5sIHIyLHIxLHI3Ci0JcHRhYnMgcjE4LHRyMAot CXN1YiByMixyMyxyOCAvKiByZS11c2UgcjggaGVyZSBmb3IgcmVzdCAtIHIz ICovCi0Jc2hscmQgcjcscjAscjcKLQltdWx1LmwgcjcscjMscjUKLQkvKiBi dWJibGUgKi8KLQlhZGRpIHI4LDEscjcKLQljbXBndCByNyxyNSxyNwotCWNt dm5lIHI3LHI4LHIyCi0Jc3ViIHIyLHI1LHIyCi0JYmxpbmsgdHIwLHI2Mwot Ci1MT0NBTChsYXJnZV9kaXZpc29yKToKLQltbXVsZngudyByNSxyNCxyNAot CXNobHJkIHIyLHI5LHIyNQotCXNobHJpIHIyNSwzMixyOAotCW1zdWIudyBy MSxyNCxyMQotCi0JbXVsdS5sIHIxLHI3LHI0Ci0JYWRkaSByMSwtMyxyNQot CW11bHUubCByNSxyOCxyNQotCXN1YiByNjMscjQscjQgLy8gTmVnYXRlIHRv IG1ha2Ugc3VyZSByMSBlbmRzIHVwIDw9IDEvcjIKLQlzaGxyaSByNCwyLHI0 IC8qIGNob3Agb2ZmIGxlYWRpbmcgJTAwMDAwMDAwMDAwMDAwMDAgMDAxLjAw MDAwMDAwMDAwIC0gb3IsIGFzCi0JICAgICAgICAgICAgICAgICB0aGUgY2Fz ZSBtYXkgYmUsICUwMDAwMDAwMDAwMDAwMDAwIDAwMC4xMTExMTExMTExMSwg c3RpbGwgKi8KLQltdWxzLmwgcjEscjQscjQgLyogbGVhdmluZyBhdCBsZWFz dCBvbmUgc2lnbiBiaXQuICAqLwotCXNobHJpIHI1LDE0LTEscjgKLQltdWx1 LmwgcjgscjcscjUKLQltc2hhbGRzLmwgcjEscjIxLHIxCi0Jc2hhcmkgcjQs MjYscjQKLQlhZGQgcjEscjQscjEgLy8gMzEgYml0IHVuc2lnbmVkIHJlY2lw cm9jYWwgbm93IGluIHIxIChtc2IgZXF1aXYuIDAuNSkKLQlzdWIgcjI1LHI1 LHIyNQotCS8qIENhbiBkbyBzZWNvbmQgc3RlcCBvZiA2NCA6IDMyIGRpdiBu b3csIHVzaW5nIHIxIGFuZCB0aGUgcmVzdCBpbiByMjUuICAqLwotCi0Jc2hs cmkgcjI1LDIyLHIyMQotCW11bHUubCByMjEscjEscjIxCi0JcHRhIExPQ0FM KG5vX2xvX2FkaiksdHIwCi0JYWRkaSByMjIsMzIscjAKLQlzaGxyaSByMjEs NDAscjIxCi0JbXVsdS5sIHIyMSxyNyxyNQotCWFkZCByOCxyMjEscjgKLQlz aGxsZCByMixyMCxyMgotCXN1YiByMjUscjUscjI1Ci0JYmd0dS91IHI3LHIy NSx0cjAgLy8gbm9fbG9fYWRqCi0JYWRkaSByOCwxLHI4Ci0Jc3ViIHIyNSxy NyxyMjUKLUxPQ0FMKG5vX2xvX2Fkaik6Ci0JbWV4dHI0IHIyLHIyNSxyMgot Ci0JLyogbGFyZ2VfZGl2aXNvcjogb25seSBuZWVkcyBhIGZldyBhZGp1c3Rt ZW50cy4gICovCi0JbXVsdS5sIHI4LHI2LHI1Ci0JcHRhYnMgcjE4LHRyMAot CWFkZCByMixyNixyNwotCWNtcGd0dSByNSxyMixyOAotCWNtdm5lIHI4LHI3 LHIyCi0Jc3ViIHIyLHI1LHIyCi0Jc2hscmQgcjIscjIyLHIyCi0JYmxpbmsg dHIwLHI2MwotCUVOREZVTkMoR0xPQkFMKHVtb2RkaTMpKQotLyogTm90ZSAx OiBUbyBzaGlmdCB0aGUgcmVzdWx0IG9mIHRoZSBzZWNvbmQgZGl2aWRlIHN0 YWdlIHNvIHRoYXQgdGhlIHJlc3VsdAotICAgYWx3YXlzIGZpdHMgaW50byAz MiBiaXRzLCB5ZXQgd2Ugc3RpbGwgcmVkdWNlIHRoZSByZXN0IHN1ZmZpY2ll bnRseQotICAgd291bGQgcmVxdWlyZSBhIGxvdCBvZiBpbnN0cnVjdGlvbnMg dG8gZG8gdGhlIHNoaWZ0cyBqdXN0IHJpZ2h0LiAgVXNpbmcKLSAgIHRoZSBm dWxsIDY0IGJpdCBzaGlmdCByZXN1bHQgdG8gbXVsdGlwbHkgd2l0aCB0aGUg ZGl2aXNvciB3b3VsZCByZXF1aXJlCi0gICBmb3VyIGV4dHJhIGluc3RydWN0 aW9ucyBmb3IgdGhlIHVwcGVyIDMyIGJpdHMgKHNoaWZ0IC8gbXVsdSAvIHNo aWZ0IC8gc3ViKS4KLSAgIEZvcnR1bmF0ZWx5LCBpZiB0aGUgdXBwZXIgMzIg Yml0cyBvZiB0aGUgc2hpZnQgcmVzdWx0IGFyZSBub256ZXJvLCB3ZQotICAg a25vdyB0aGF0IHRoZSByZXN0IGFmdGVyIHRha2luZyB0aGlzIHBhcnRpYWwg cmVzdWx0IGludG8gYWNjb3VudCB3aWxsCi0gICBmaXQgaW50byAzMiBiaXRz LiAgU28gd2UganVzdCBjbGVhciB0aGUgdXBwZXIgMzIgYml0cyBvZiB0aGUg cmVzdCBpZiB0aGUKLSAgIHVwcGVyIDMyIGJpdHMgb2YgdGhlIHBhcnRpYWwg cmVzdWx0IGFyZSBub256ZXJvLiAgKi8KLSNlbmRpZiAvKiBfX1NITUVESUFf XyAqLwotI2VuZGlmIC8qIExfdW1vZGRpMyAqLwotCi0jaWZkZWYgTF9tb2Rk aTMKLSNpZiBfX1NITUVESUFfXwotCS5tb2RlCVNIbWVkaWEKLQkuc2VjdGlv bgkudGV4dC4uU0htZWRpYTMyLCJheCIKLQkuYWxpZ24JMgotCS5nbG9iYWwJ R0xPQkFMKG1vZGRpMykKLQlGVU5DKEdMT0JBTChtb2RkaTMpKQotR0xPQkFM KG1vZGRpMyk6Ci0JcHRhIEdMT0JBTCh1bW9kZGkzX2ludGVybmFsKSx0cjAK LQlzaGFyaSByMiw2MyxyMjIKLQlzaGFyaSByMyw2MyxyMjMKLQl4b3IgcjIs cjIyLHIyCi0JeG9yIHIzLHIyMyxyMwotCXN1YiByMixyMjIscjIKLQlzdWIg cjMscjIzLHIzCi0JYmVxL3UgcjIyLHI2Myx0cjAKLQlwdGFicyByMTgsdHIx Ci0JYmxpbmsgdHIwLHIxOAotCXN1YiByNjMscjIscjIKLQlibGluayB0cjEs cjYzCi0JRU5ERlVOQyhHTE9CQUwobW9kZGkzKSkKLSNlbmRpZiAvKiBfX1NI TUVESUFfXyAqLwotI2VuZGlmIC8qIExfbW9kZGkzICovCi0KICNpZmRlZiBM X3NldF9mcHNjcgogI2lmICFkZWZpbmVkIChfX1NIMkFfTk9GUFVfXykKLSNp ZiBkZWZpbmVkIChfX1NIMkVfXykgfHwgZGVmaW5lZCAoX19TSDJBX18pIHx8 IGRlZmluZWQgKF9fU0gzRV9fKSB8fCBkZWZpbmVkKF9fU0g0X1NJTkdMRV9f KSB8fCBkZWZpbmVkKF9fU0g0X18pIHx8IGRlZmluZWQoX19TSDRfU0lOR0xF X09OTFlfXykgfHwgX19TSDVfXyA9PSAzMgotI2lmZGVmIF9fU0g1X18KLQku bW9kZQlTSGNvbXBhY3QKLSNlbmRpZgorI2lmIGRlZmluZWQgKF9fU0gyRV9f KSB8fCBkZWZpbmVkIChfX1NIMkFfXykgfHwgZGVmaW5lZCAoX19TSDNFX18p IHx8IGRlZmluZWQoX19TSDRfU0lOR0xFX18pIHx8IGRlZmluZWQoX19TSDRf XykgfHwgZGVmaW5lZChfX1NINF9TSU5HTEVfT05MWV9fKQogCS5nbG9iYWwg R0xPQkFMKHNldF9mcHNjcikKIAlISURERU5fRlVOQyhHTE9CQUwoc2V0X2Zw c2NyKSkKIEdMT0JBTChzZXRfZnBzY3IpOgpAQCAtMjE2MSwzOSArMTQ3Nyw4 IEBAIExPQ0FMKHNldF9mcHNjcl9MMSk6CiAjZW5kaWYgLyogX19TSDJBX05P RlBVX18gKi8KICNlbmRpZiAvKiBMX3NldF9mcHNjciAqLwogI2lmZGVmIExf aWNfaW52YWxpZGF0ZQotI2lmIF9fU0g1X18gPT0gMzIKLQkubW9kZQlTSG1l ZGlhCi0JLnNlY3Rpb24JLnRleHQuLlNIbWVkaWEzMiwiYXgiCi0JLmFsaWdu CTIKLQkuZ2xvYmFsCUdMT0JBTChpbml0X3RyYW1wb2xpbmUpCi0JSElEREVO X0ZVTkMoR0xPQkFMKGluaXRfdHJhbXBvbGluZSkpCi1HTE9CQUwoaW5pdF90 cmFtcG9saW5lKToKLQlzdC5sCXIwLDgscjIKLSNpZmRlZiBfX0xJVFRMRV9F TkRJQU5fXwotCW1vdmkJOSxyMjAKLQlzaG9yaQkweDQwMmIscjIwCi0Jc2hv cmkJMHhkMTAxLHIyMAotCXNob3JpCTB4ZDAwMixyMjAKLSNlbHNlCi0JbW92 aQkweGZmZmZmZmZmZmZmZmQwMDIscjIwCi0Jc2hvcmkJMHhkMTAxLHIyMAot CXNob3JpCTB4NDAyYixyMjAKLQlzaG9yaQk5LHIyMAotI2VuZGlmCi0Jc3Qu cQlyMCwwLHIyMAotCXN0LmwJcjAsMTIscjMKLQlFTkRGVU5DKEdMT0JBTChp bml0X3RyYW1wb2xpbmUpKQotCS5nbG9iYWwJR0xPQkFMKGljX2ludmFsaWRh dGUpCi0JSElEREVOX0ZVTkMoR0xPQkFMKGljX2ludmFsaWRhdGUpKQotR0xP QkFMKGljX2ludmFsaWRhdGUpOgotCW9jYndiCXIwLDAKLQlzeW5jbwotCWlj YmkJcjAsIDAKLQlwdGFicwlyMTgsIHRyMAotCXN5bmNpCi0JYmxpbmsJdHIw LCByNjMKLQlFTkRGVU5DKEdMT0JBTChpY19pbnZhbGlkYXRlKSkKLSNlbGlm IGRlZmluZWQoX19TSDRBX18pCisKKyNpZiBkZWZpbmVkKF9fU0g0QV9fKQog CS5nbG9iYWwgR0xPQkFMKGljX2ludmFsaWRhdGUpCiAJSElEREVOX0ZVTkMo R0xPQkFMKGljX2ludmFsaWRhdGUpKQogR0xPQkFMKGljX2ludmFsaWRhdGUp OgpAQCAtMjIwMyw3ICsxNDg4LDcgQEAgR0xPQkFMKGljX2ludmFsaWRhdGUp OgogCXJ0cwogCSAgbm9wCiAJRU5ERlVOQyhHTE9CQUwoaWNfaW52YWxpZGF0 ZSkpCi0jZWxpZiBkZWZpbmVkKF9fU0g0X1NJTkdMRV9fKSB8fCBkZWZpbmVk KF9fU0g0X18pIHx8IGRlZmluZWQoX19TSDRfU0lOR0xFX09OTFlfXykgfHwg KGRlZmluZWQoX19TSDRfTk9GUFVfXykgJiYgIWRlZmluZWQoX19TSDVfXykp CisjZWxpZiBkZWZpbmVkKF9fU0g0X1NJTkdMRV9fKSB8fCBkZWZpbmVkKF9f U0g0X18pIHx8IGRlZmluZWQoX19TSDRfU0lOR0xFX09OTFlfXykgfHwgZGVm aW5lZChfX1NINF9OT0ZQVV9fKQogCS8qIEZvciBzeXN0ZW0gY29kZSwgd2Ug dXNlIGljX2ludmFsaWRhdGVfbGluZV9pLCBidXQgdXNlciBjb2RlCiAJICAg bmVlZHMgYSBkaWZmZXJlbnQgbWVjaGFuaXNtLiAgQSBrZXJuZWwgY2FsbCBp cyBnZW5lcmFsbHkgbm90CiAJICAgYXZhaWxhYmxlLCBhbmQgaXQgd291bGQg YWxzbyBiZSBzbG93LiAgRGlmZmVyZW50IFNINCB2YXJpYW50cyB1c2UKQEAg LTIyNTksNyArMTU0NCw3IEBAIEdMT0JBTChpY19pbnZhbGlkYXRlKToKICNl bmRpZiAvKiBMX2ljX2ludmFsaWRhdGUgKi8KIAogI2lmZGVmIExfaWNfaW52 YWxpZGF0ZV9hcnJheQotI2lmIGRlZmluZWQoX19TSDRBX18pIHx8IChkZWZp bmVkIChfX0ZPUkNFX1NINEFfXykgJiYgKGRlZmluZWQoX19TSDRfU0lOR0xF X18pIHx8IGRlZmluZWQoX19TSDRfXykgfHwgZGVmaW5lZChfX1NINF9TSU5H TEVfT05MWV9fKSB8fCAoZGVmaW5lZChfX1NINF9OT0ZQVV9fKSAmJiAhZGVm aW5lZChfX1NINV9fKSkpKQorI2lmIGRlZmluZWQoX19TSDRBX18pIHx8IChk ZWZpbmVkIChfX0ZPUkNFX1NINEFfXykgJiYgKGRlZmluZWQoX19TSDRfU0lO R0xFX18pIHx8IGRlZmluZWQoX19TSDRfXykgfHwgZGVmaW5lZChfX1NINF9T SU5HTEVfT05MWV9fKSB8fCBkZWZpbmVkKF9fU0g0X05PRlBVX18pKSkKIAku Z2xvYmFsIEdMT0JBTChpY19pbnZhbGlkYXRlX2FycmF5KQogCS8qIFRoaXMg aXMgbmVlZGVkIHdoZW4gYW4gU0g0IGRzbyB3aXRoIHRyYW1wb2xpbmVzIGlz IHVzZWQgb24gU0g0QS4gICovCiAJLmdsb2JhbCBHTE9CQUwoaWNfaW52YWxp ZGF0ZV9hcnJheSkKQEAgLTIyNzMsNyArMTU1OCw3IEBAIEdMT0JBTChpY19p bnZhbGlkYXRlX2FycmF5KToKIAkuYWxpZ24gMgogCS5sb25nCTAKIAlFTkRG VU5DKEdMT0JBTChpY19pbnZhbGlkYXRlX2FycmF5KSkKLSNlbGlmIGRlZmlu ZWQoX19TSDRfU0lOR0xFX18pIHx8IGRlZmluZWQoX19TSDRfXykgfHwgZGVm aW5lZChfX1NINF9TSU5HTEVfT05MWV9fKSB8fCAoZGVmaW5lZChfX1NINF9O T0ZQVV9fKSAmJiAhZGVmaW5lZChfX1NINV9fKSkKKyNlbGlmIGRlZmluZWQo X19TSDRfU0lOR0xFX18pIHx8IGRlZmluZWQoX19TSDRfXykgfHwgZGVmaW5l ZChfX1NINF9TSU5HTEVfT05MWV9fKSB8fCBkZWZpbmVkKF9fU0g0X05PRlBV X18pCiAJLmdsb2JhbCBHTE9CQUwoaWNfaW52YWxpZGF0ZV9hcnJheSkKIAku cDJhbGlnbiA1CiAJRlVOQyhHTE9CQUwoaWNfaW52YWxpZGF0ZV9hcnJheSkp CkBAIC0yMzI5LDEwNDcgKzE2MTQsMTAgQEAgR0xPQkFMKGljX2ludmFsaWRh dGVfYXJyYXkpOgogI2VuZGlmIC8qIFNINCAqLwogI2VuZGlmIC8qIExfaWNf aW52YWxpZGF0ZV9hcnJheSAqLwogCi0jaWYgZGVmaW5lZCAoX19TSDVfXykg JiYgX19TSDVfXyA9PSAzMgotI2lmZGVmIExfc2hjb21wYWN0X2NhbGxfdHJh bXBvbGluZQotCS5zZWN0aW9uCS5yb2RhdGEKLQkuYWxpZ24JMQotTE9DQUwo Y3RfbWFpbl90YWJsZSk6Ci0ud29yZAlMT0NBTChjdF9yMl9mcCkgLSBkYXRh bGFiZWwgTE9DQUwoY3RfbWFpbl9sYWJlbCkKLS53b3JkCUxPQ0FMKGN0X3Iy X2xkKSAtIGRhdGFsYWJlbCBMT0NBTChjdF9tYWluX2xhYmVsKQotLndvcmQJ TE9DQUwoY3RfcjJfcG9wKSAtIGRhdGFsYWJlbCBMT0NBTChjdF9tYWluX2xh YmVsKQotLndvcmQJTE9DQUwoY3RfcjNfZnApIC0gZGF0YWxhYmVsIExPQ0FM KGN0X21haW5fbGFiZWwpCi0ud29yZAlMT0NBTChjdF9yM19sZCkgLSBkYXRh bGFiZWwgTE9DQUwoY3RfbWFpbl9sYWJlbCkKLS53b3JkCUxPQ0FMKGN0X3Iz X3BvcCkgLSBkYXRhbGFiZWwgTE9DQUwoY3RfbWFpbl9sYWJlbCkKLS53b3Jk CUxPQ0FMKGN0X3I0X2ZwKSAtIGRhdGFsYWJlbCBMT0NBTChjdF9tYWluX2xh YmVsKQotLndvcmQJTE9DQUwoY3RfcjRfbGQpIC0gZGF0YWxhYmVsIExPQ0FM KGN0X21haW5fbGFiZWwpCi0ud29yZAlMT0NBTChjdF9yNF9wb3ApIC0gZGF0 YWxhYmVsIExPQ0FMKGN0X21haW5fbGFiZWwpCi0ud29yZAlMT0NBTChjdF9y NV9mcCkgLSBkYXRhbGFiZWwgTE9DQUwoY3RfbWFpbl9sYWJlbCkKLS53b3Jk CUxPQ0FMKGN0X3I1X2xkKSAtIGRhdGFsYWJlbCBMT0NBTChjdF9tYWluX2xh YmVsKQotLndvcmQJTE9DQUwoY3RfcjVfcG9wKSAtIGRhdGFsYWJlbCBMT0NB TChjdF9tYWluX2xhYmVsKQotLndvcmQJTE9DQUwoY3RfcjZfZnBoKSAtIGRh dGFsYWJlbCBMT0NBTChjdF9tYWluX2xhYmVsKQotLndvcmQJTE9DQUwoY3Rf cjZfZnBsKSAtIGRhdGFsYWJlbCBMT0NBTChjdF9tYWluX2xhYmVsKQotLndv cmQJTE9DQUwoY3RfcjZfbGQpIC0gZGF0YWxhYmVsIExPQ0FMKGN0X21haW5f bGFiZWwpCi0ud29yZAlMT0NBTChjdF9yNl9wb3ApIC0gZGF0YWxhYmVsIExP Q0FMKGN0X21haW5fbGFiZWwpCi0ud29yZAlMT0NBTChjdF9yN19mcGgpIC0g ZGF0YWxhYmVsIExPQ0FMKGN0X21haW5fbGFiZWwpCi0ud29yZAlMT0NBTChj dF9yN19mcGwpIC0gZGF0YWxhYmVsIExPQ0FMKGN0X21haW5fbGFiZWwpCi0u d29yZAlMT0NBTChjdF9yN19sZCkgLSBkYXRhbGFiZWwgTE9DQUwoY3RfbWFp bl9sYWJlbCkKLS53b3JkCUxPQ0FMKGN0X3I3X3BvcCkgLSBkYXRhbGFiZWwg TE9DQUwoY3RfbWFpbl9sYWJlbCkKLS53b3JkCUxPQ0FMKGN0X3I4X2ZwaCkg LSBkYXRhbGFiZWwgTE9DQUwoY3RfbWFpbl9sYWJlbCkKLS53b3JkCUxPQ0FM KGN0X3I4X2ZwbCkgLSBkYXRhbGFiZWwgTE9DQUwoY3RfbWFpbl9sYWJlbCkK LS53b3JkCUxPQ0FMKGN0X3I4X2xkKSAtIGRhdGFsYWJlbCBMT0NBTChjdF9t YWluX2xhYmVsKQotLndvcmQJTE9DQUwoY3RfcjhfcG9wKSAtIGRhdGFsYWJl bCBMT0NBTChjdF9tYWluX2xhYmVsKQotLndvcmQJTE9DQUwoY3RfcjlfZnBo KSAtIGRhdGFsYWJlbCBMT0NBTChjdF9tYWluX2xhYmVsKQotLndvcmQJTE9D QUwoY3RfcjlfZnBsKSAtIGRhdGFsYWJlbCBMT0NBTChjdF9tYWluX2xhYmVs KQotLndvcmQJTE9DQUwoY3RfcjlfbGQpIC0gZGF0YWxhYmVsIExPQ0FMKGN0 X21haW5fbGFiZWwpCi0ud29yZAlMT0NBTChjdF9yOV9wb3ApIC0gZGF0YWxh YmVsIExPQ0FMKGN0X21haW5fbGFiZWwpCi0ud29yZAlMT0NBTChjdF9wb3Bf c2VxKSAtIGRhdGFsYWJlbCBMT0NBTChjdF9tYWluX2xhYmVsKQotLndvcmQJ TE9DQUwoY3RfcG9wX3NlcSkgLSBkYXRhbGFiZWwgTE9DQUwoY3RfbWFpbl9s YWJlbCkKLS53b3JkCUxPQ0FMKGN0X3I5X3BvcCkgLSBkYXRhbGFiZWwgTE9D QUwoY3RfbWFpbl9sYWJlbCkKLS53b3JkCUxPQ0FMKGN0X3JldF93aWRlKSAt IGRhdGFsYWJlbCBMT0NBTChjdF9tYWluX2xhYmVsKQotLndvcmQJTE9DQUwo Y3RfY2FsbF9mdW5jKSAtIGRhdGFsYWJlbCBMT0NBTChjdF9tYWluX2xhYmVs KQotCS5tb2RlCVNIbWVkaWEKLQkuc2VjdGlvbgkudGV4dC4uU0htZWRpYTMy LCAiYXgiCi0JLmFsaWduCTIKLQkKLSAgICAgLyogVGhpcyBmdW5jdGlvbiBs b2FkcyA2NC1iaXQgZ2VuZXJhbC1wdXJwb3NlIHJlZ2lzdGVycyBmcm9tIHRo ZQotCXN0YWNrLCBmcm9tIGEgbWVtb3J5IGFkZHJlc3MgY29udGFpbmVkIGlu IHRoZW0gb3IgZnJvbSBhbiBGUAotCXJlZ2lzdGVyLCBhY2NvcmRpbmcgdG8g YSBjb29raWUgcGFzc2VkIGluIHIxLiAgSXRzIGV4ZWN1dGlvbgotCXRpbWUg aXMgbGluZWFyIG9uIHRoZSBudW1iZXIgb2YgcmVnaXN0ZXJzIHRoYXQgYWN0 dWFsbHkgaGF2ZQotCXRvIGJlIGNvcGllZC4gIFNlZSBzaC5oIGZvciBkZXRh aWxzIG9uIHRoZSBhY3R1YWwgYml0IHBhdHRlcm4uCi0KLQlUaGUgZnVuY3Rp b24gdG8gYmUgY2FsbGVkIGlzIHBhc3NlZCBpbiByMC4gIElmIGEgMzItYml0 IHJldHVybgotCXZhbHVlIGlzIGV4cGVjdGVkLCB0aGUgYWN0dWFsIGZ1bmN0 aW9uIHdpbGwgYmUgdGFpbC1jYWxsZWQsCi0Jb3RoZXJ3aXNlIHRoZSByZXR1 cm4gYWRkcmVzcyB3aWxsIGJlIHN0b3JlZCBpbiByMTAgKHRoYXQgdGhlCi0J Y2FsbGVyIHNob3VsZCBleHBlY3QgdG8gYmUgY2xvYmJlcmVkKSBhbmQgdGhl IHJldHVybiB2YWx1ZQotCXdpbGwgYmUgZXhwYW5kZWQgaW50byByMi9yMyB1 cG9uIHJldHVybi4gICovCi0JCi0JLmdsb2JhbAlHTE9CQUwoR0NDX3NoY29t cGFjdF9jYWxsX3RyYW1wb2xpbmUpCi0JRlVOQyhHTE9CQUwoR0NDX3NoY29t cGFjdF9jYWxsX3RyYW1wb2xpbmUpKQotR0xPQkFMKEdDQ19zaGNvbXBhY3Rf Y2FsbF90cmFtcG9saW5lKToKLQlwdGFicy9sCXIwLCB0cjAJLyogUHJlcGFy ZSB0byBjYWxsIHRoZSBhY3R1YWwgZnVuY3Rpb24uICAqLwotCW1vdmkJKChk YXRhbGFiZWwgTE9DQUwoY3RfbWFpbl90YWJsZSkgLSAzMSAqIDIpID4+IDE2 KSAmIDY1NTM1LCByMAotCXB0L2wJTE9DQUwoY3RfbG9vcCksIHRyMQotCWFk ZHoubAlyMSwgcjYzLCByMQotCXNob3JpCSgoZGF0YWxhYmVsIExPQ0FMKGN0 X21haW5fdGFibGUpIC0gMzEgKiAyKSkgJiA2NTUzNSwgcjAKLUxPQ0FMKGN0 X2xvb3ApOgotCW5zYglyMSwgcjI4Ci0Jc2hsbGkJcjI4LCAxLCByMjkKLQls ZHgudwlyMCwgcjI5LCByMzAKLUxPQ0FMKGN0X21haW5fbGFiZWwpOgotCXB0 cmVsL2wJcjMwLCB0cjIKLQlibGluawl0cjIsIHI2MwotTE9DQUwoY3RfcjJf ZnApOgkvKiBDb3B5IHIyIGZyb20gYW4gRlAgcmVnaXN0ZXIuICAqLwotCS8q IEl0IG11c3QgYmUgZHIwLCBzbyBqdXN0IGRvIGl0LiAgKi8KLQlmbW92LmRx CWRyMCwgcjIKLQltb3ZpCTcsIHIzMAotCXNobGxpCXIzMCwgMjksIHIzMQot CWFuZGMJcjEsIHIzMSwgcjEKLQlibGluawl0cjEsIHI2MwotTE9DQUwoY3Rf cjNfZnApOgkvKiBDb3B5IHIzIGZyb20gYW4gRlAgcmVnaXN0ZXIuICAqLwot CS8qIEl0IGlzIGVpdGhlciBkcjAgb3IgZHIyLiAgKi8KLQltb3ZpCTcsIHIz MAotCXNobHJpCXIxLCAyNiwgcjMyCi0Jc2hsbGkJcjMwLCAyNiwgcjMxCi0J YW5kYwlyMSwgcjMxLCByMQotCWZtb3YuZHEJZHIwLCByMwotCWJlcWkvbAly MzIsIDQsIHRyMQotCWZtb3YuZHEJZHIyLCByMwotCWJsaW5rCXRyMSwgcjYz Ci1MT0NBTChjdF9yNF9mcCk6CS8qIENvcHkgcjQgZnJvbSBhbiBGUCByZWdp c3Rlci4gICovCi0Jc2hscmkJcjEsIDIzIC0gMywgcjM0Ci0JYW5kaQlyMzQs IDMgPDwgMywgcjMzCi0JYWRkaQlyMzMsIExPQ0FMKGN0X3I0X2ZwX2NvcHkp IC0gZGF0YWxhYmVsIExPQ0FMKGN0X3I0X2ZwX2Jhc2UpLCByMzIKLUxPQ0FM KGN0X3I0X2ZwX2Jhc2UpOgotCXB0cmVsL2wJcjMyLCB0cjIKLQltb3ZpCTcs IHIzMAotCXNobGxpCXIzMCwgMjMsIHIzMQotCWFuZGMJcjEsIHIzMSwgcjEK LQlibGluawl0cjIsIHI2MwotTE9DQUwoY3RfcjRfZnBfY29weSk6Ci0JZm1v di5kcQlkcjAsIHI0Ci0JYmxpbmsJdHIxLCByNjMKLQlmbW92LmRxCWRyMiwg cjQKLQlibGluawl0cjEsIHI2MwotCWZtb3YuZHEJZHI0LCByNAotCWJsaW5r CXRyMSwgcjYzCi1MT0NBTChjdF9yNV9mcCk6CS8qIENvcHkgcjUgZnJvbSBh biBGUCByZWdpc3Rlci4gICovCi0Jc2hscmkJcjEsIDIwIC0gMywgcjM0Ci0J YW5kaQlyMzQsIDMgPDwgMywgcjMzCi0JYWRkaQlyMzMsIExPQ0FMKGN0X3I1 X2ZwX2NvcHkpIC0gZGF0YWxhYmVsIExPQ0FMKGN0X3I1X2ZwX2Jhc2UpLCBy MzIKLUxPQ0FMKGN0X3I1X2ZwX2Jhc2UpOgotCXB0cmVsL2wJcjMyLCB0cjIK LQltb3ZpCTcsIHIzMAotCXNobGxpCXIzMCwgMjAsIHIzMQotCWFuZGMJcjEs IHIzMSwgcjEKLQlibGluawl0cjIsIHI2MwotTE9DQUwoY3RfcjVfZnBfY29w eSk6Ci0JZm1vdi5kcQlkcjAsIHI1Ci0JYmxpbmsJdHIxLCByNjMKLQlmbW92 LmRxCWRyMiwgcjUKLQlibGluawl0cjEsIHI2MwotCWZtb3YuZHEJZHI0LCBy NQotCWJsaW5rCXRyMSwgcjYzCi0JZm1vdi5kcQlkcjYsIHI1Ci0JYmxpbmsJ dHIxLCByNjMKLUxPQ0FMKGN0X3I2X2ZwaCk6CS8qIENvcHkgcjYgZnJvbSBh IGhpZ2ggRlAgcmVnaXN0ZXIuICAqLwotCS8qIEl0IG11c3QgYmUgZHI4LiAg Ki8KLQlmbW92LmRxCWRyOCwgcjYKLQltb3ZpCTE1LCByMzAKLQlzaGxsaQly MzAsIDE2LCByMzEKLQlhbmRjCXIxLCByMzEsIHIxCi0JYmxpbmsJdHIxLCBy NjMKLUxPQ0FMKGN0X3I2X2ZwbCk6CS8qIENvcHkgcjYgZnJvbSBhIGxvdyBG UCByZWdpc3Rlci4gICovCi0Jc2hscmkJcjEsIDE2IC0gMywgcjM0Ci0JYW5k aQlyMzQsIDMgPDwgMywgcjMzCi0JYWRkaQlyMzMsIExPQ0FMKGN0X3I2X2Zw X2NvcHkpIC0gZGF0YWxhYmVsIExPQ0FMKGN0X3I2X2ZwX2Jhc2UpLCByMzIK LUxPQ0FMKGN0X3I2X2ZwX2Jhc2UpOgotCXB0cmVsL2wJcjMyLCB0cjIKLQlt b3ZpCTcsIHIzMAotCXNobGxpCXIzMCwgMTYsIHIzMQotCWFuZGMJcjEsIHIz MSwgcjEKLQlibGluawl0cjIsIHI2MwotTE9DQUwoY3RfcjZfZnBfY29weSk6 Ci0JZm1vdi5kcQlkcjAsIHI2Ci0JYmxpbmsJdHIxLCByNjMKLQlmbW92LmRx CWRyMiwgcjYKLQlibGluawl0cjEsIHI2MwotCWZtb3YuZHEJZHI0LCByNgot CWJsaW5rCXRyMSwgcjYzCi0JZm1vdi5kcQlkcjYsIHI2Ci0JYmxpbmsJdHIx LCByNjMKLUxPQ0FMKGN0X3I3X2ZwaCk6CS8qIENvcHkgcjcgZnJvbSBhIGhp Z2ggRlAgcmVnaXN0ZXIuICAqLwotCS8qIEl0IGlzIGVpdGhlciBkcjggb3Ig ZHIxMC4gICovCi0JbW92aQkxNSA8PCAxMiwgcjMxCi0Jc2hscmkJcjEsIDEy LCByMzIKLQlhbmRjCXIxLCByMzEsIHIxCi0JZm1vdi5kcQlkcjgsIHI3Ci0J YmVxaS9sCXIzMiwgOCwgdHIxCi0JZm1vdi5kcQlkcjEwLCByNwotCWJsaW5r CXRyMSwgcjYzCi1MT0NBTChjdF9yN19mcGwpOgkvKiBDb3B5IHI3IGZyb20g YSBsb3cgRlAgcmVnaXN0ZXIuICAqLwotCXNobHJpCXIxLCAxMiAtIDMsIHIz NAotCWFuZGkJcjM0LCAzIDw8IDMsIHIzMwotCWFkZGkJcjMzLCBMT0NBTChj dF9yN19mcF9jb3B5KSAtIGRhdGFsYWJlbCBMT0NBTChjdF9yN19mcF9iYXNl KSwgcjMyCi1MT0NBTChjdF9yN19mcF9iYXNlKToKLQlwdHJlbC9sCXIzMiwg dHIyCi0JbW92aQk3IDw8IDEyLCByMzEKLQlhbmRjCXIxLCByMzEsIHIxCi0J YmxpbmsJdHIyLCByNjMKLUxPQ0FMKGN0X3I3X2ZwX2NvcHkpOgotCWZtb3Yu ZHEJZHIwLCByNwotCWJsaW5rCXRyMSwgcjYzCi0JZm1vdi5kcQlkcjIsIHI3 Ci0JYmxpbmsJdHIxLCByNjMKLQlmbW92LmRxCWRyNCwgcjcKLQlibGluawl0 cjEsIHI2MwotCWZtb3YuZHEJZHI2LCByNwotCWJsaW5rCXRyMSwgcjYzCi1M T0NBTChjdF9yOF9mcGgpOgkvKiBDb3B5IHI4IGZyb20gYSBoaWdoIEZQIHJl Z2lzdGVyLiAgKi8KLQkvKiBJdCBpcyBlaXRoZXIgZHI4IG9yIGRyMTAuICAq LwotCW1vdmkJMTUgPDwgOCwgcjMxCi0JYW5kaQlyMSwgMSA8PCA4LCByMzIK LQlhbmRjCXIxLCByMzEsIHIxCi0JZm1vdi5kcQlkcjgsIHI4Ci0JYmVxL2wJ cjMyLCByNjMsIHRyMQotCWZtb3YuZHEJZHIxMCwgcjgKLQlibGluawl0cjEs IHI2MwotTE9DQUwoY3RfcjhfZnBsKToJLyogQ29weSByOCBmcm9tIGEgbG93 IEZQIHJlZ2lzdGVyLiAgKi8KLQlzaGxyaQlyMSwgOCAtIDMsIHIzNAotCWFu ZGkJcjM0LCAzIDw8IDMsIHIzMwotCWFkZGkJcjMzLCBMT0NBTChjdF9yOF9m cF9jb3B5KSAtIGRhdGFsYWJlbCBMT0NBTChjdF9yOF9mcF9iYXNlKSwgcjMy Ci1MT0NBTChjdF9yOF9mcF9iYXNlKToKLQlwdHJlbC9sCXIzMiwgdHIyCi0J bW92aQk3IDw8IDgsIHIzMQotCWFuZGMJcjEsIHIzMSwgcjEKLQlibGluawl0 cjIsIHI2MwotTE9DQUwoY3RfcjhfZnBfY29weSk6Ci0JZm1vdi5kcQlkcjAs IHI4Ci0JYmxpbmsJdHIxLCByNjMKLQlmbW92LmRxCWRyMiwgcjgKLQlibGlu awl0cjEsIHI2MwotCWZtb3YuZHEJZHI0LCByOAotCWJsaW5rCXRyMSwgcjYz Ci0JZm1vdi5kcQlkcjYsIHI4Ci0JYmxpbmsJdHIxLCByNjMKLUxPQ0FMKGN0 X3I5X2ZwaCk6CS8qIENvcHkgcjkgZnJvbSBhIGhpZ2ggRlAgcmVnaXN0ZXIu ICAqLwotCS8qIEl0IGlzIGVpdGhlciBkcjggb3IgZHIxMC4gICovCi0JbW92 aQkxNSA8PCA0LCByMzEKLQlhbmRpCXIxLCAxIDw8IDQsIHIzMgotCWFuZGMJ cjEsIHIzMSwgcjEKLQlmbW92LmRxCWRyOCwgcjkKLQliZXEvbAlyMzIsIHI2 MywgdHIxCi0JZm1vdi5kcQlkcjEwLCByOQotCWJsaW5rCXRyMSwgcjYzCi1M T0NBTChjdF9yOV9mcGwpOgkvKiBDb3B5IHI5IGZyb20gYSBsb3cgRlAgcmVn aXN0ZXIuICAqLwotCXNobHJpCXIxLCA0IC0gMywgcjM0Ci0JYW5kaQlyMzQs IDMgPDwgMywgcjMzCi0JYWRkaQlyMzMsIExPQ0FMKGN0X3I5X2ZwX2NvcHkp IC0gZGF0YWxhYmVsIExPQ0FMKGN0X3I5X2ZwX2Jhc2UpLCByMzIKLUxPQ0FM KGN0X3I5X2ZwX2Jhc2UpOgotCXB0cmVsL2wJcjMyLCB0cjIKLQltb3ZpCTcg PDwgNCwgcjMxCi0JYW5kYwlyMSwgcjMxLCByMQotCWJsaW5rCXRyMiwgcjYz Ci1MT0NBTChjdF9yOV9mcF9jb3B5KToKLQlmbW92LmRxCWRyMCwgcjkKLQli bGluawl0cjEsIHI2MwotCWZtb3YuZHEJZHIyLCByOQotCWJsaW5rCXRyMSwg cjYzCi0JZm1vdi5kcQlkcjQsIHI5Ci0JYmxpbmsJdHIxLCByNjMKLQlmbW92 LmRxCWRyNiwgcjkKLQlibGluawl0cjEsIHI2MwotTE9DQUwoY3RfcjJfbGQp OgkvKiBDb3B5IHIyIGZyb20gYSBtZW1vcnkgYWRkcmVzcy4gICovCi0JcHQv bAlMT0NBTChjdF9yMl9sb2FkKSwgdHIyCi0JbW92aQkzLCByMzAKLQlzaGxs aQlyMzAsIDI5LCByMzEKLQlhbmQJcjEsIHIzMSwgcjMyCi0JYW5kYwlyMSwg cjMxLCByMQotCWJlcS9sCXIzMSwgcjMyLCB0cjIKLQlhZGRpLmwJcjIsIDgs IHIzCi0JbGR4LnEJcjIsIHI2MywgcjIKLQkvKiBGYWxsIHRocm91Z2guICAq LwotTE9DQUwoY3RfcjNfbGQpOgkvKiBDb3B5IHIzIGZyb20gYSBtZW1vcnkg YWRkcmVzcy4gICovCi0JcHQvbAlMT0NBTChjdF9yM19sb2FkKSwgdHIyCi0J bW92aQkzLCByMzAKLQlzaGxsaQlyMzAsIDI2LCByMzEKLQlhbmQJcjEsIHIz MSwgcjMyCi0JYW5kYwlyMSwgcjMxLCByMQotCWJlcS9sCXIzMSwgcjMyLCB0 cjIKLQlhZGRpLmwJcjMsIDgsIHI0Ci0JbGR4LnEJcjMsIHI2MywgcjMKLUxP Q0FMKGN0X3I0X2xkKToJLyogQ29weSByNCBmcm9tIGEgbWVtb3J5IGFkZHJl c3MuICAqLwotCXB0L2wJTE9DQUwoY3RfcjRfbG9hZCksIHRyMgotCW1vdmkJ MywgcjMwCi0Jc2hsbGkJcjMwLCAyMywgcjMxCi0JYW5kCXIxLCByMzEsIHIz MgotCWFuZGMJcjEsIHIzMSwgcjEKLQliZXEvbAlyMzEsIHIzMiwgdHIyCi0J YWRkaS5sCXI0LCA4LCByNQotCWxkeC5xCXI0LCByNjMsIHI0Ci1MT0NBTChj dF9yNV9sZCk6CS8qIENvcHkgcjUgZnJvbSBhIG1lbW9yeSBhZGRyZXNzLiAg Ki8KLQlwdC9sCUxPQ0FMKGN0X3I1X2xvYWQpLCB0cjIKLQltb3ZpCTMsIHIz MAotCXNobGxpCXIzMCwgMjAsIHIzMQotCWFuZAlyMSwgcjMxLCByMzIKLQlh bmRjCXIxLCByMzEsIHIxCi0JYmVxL2wJcjMxLCByMzIsIHRyMgotCWFkZGku bAlyNSwgOCwgcjYKLQlsZHgucQlyNSwgcjYzLCByNQotTE9DQUwoY3RfcjZf bGQpOgkvKiBDb3B5IHI2IGZyb20gYSBtZW1vcnkgYWRkcmVzcy4gICovCi0J cHQvbAlMT0NBTChjdF9yNl9sb2FkKSwgdHIyCi0JbW92aQkzIDw8IDE2LCBy MzEKLQlhbmQJcjEsIHIzMSwgcjMyCi0JYW5kYwlyMSwgcjMxLCByMQotCWJl cS9sCXIzMSwgcjMyLCB0cjIKLQlhZGRpLmwJcjYsIDgsIHI3Ci0JbGR4LnEJ cjYsIHI2MywgcjYKLUxPQ0FMKGN0X3I3X2xkKToJLyogQ29weSByNyBmcm9t IGEgbWVtb3J5IGFkZHJlc3MuICAqLwotCXB0L2wJTE9DQUwoY3RfcjdfbG9h ZCksIHRyMgotCW1vdmkJMyA8PCAxMiwgcjMxCi0JYW5kCXIxLCByMzEsIHIz MgotCWFuZGMJcjEsIHIzMSwgcjEKLQliZXEvbAlyMzEsIHIzMiwgdHIyCi0J YWRkaS5sCXI3LCA4LCByOAotCWxkeC5xCXI3LCByNjMsIHI3Ci1MT0NBTChj dF9yOF9sZCk6CS8qIENvcHkgcjggZnJvbSBhIG1lbW9yeSBhZGRyZXNzLiAg Ki8KLQlwdC9sCUxPQ0FMKGN0X3I4X2xvYWQpLCB0cjIKLQltb3ZpCTMgPDwg OCwgcjMxCi0JYW5kCXIxLCByMzEsIHIzMgotCWFuZGMJcjEsIHIzMSwgcjEK LQliZXEvbAlyMzEsIHIzMiwgdHIyCi0JYWRkaS5sCXI4LCA4LCByOQotCWxk eC5xCXI4LCByNjMsIHI4Ci1MT0NBTChjdF9yOV9sZCk6CS8qIENvcHkgcjkg ZnJvbSBhIG1lbW9yeSBhZGRyZXNzLiAgKi8KLQlwdC9sCUxPQ0FMKGN0X2No ZWNrX3RyYW1wKSwgdHIyCi0JbGR4LnEJcjksIHI2MywgcjkKLQlibGluawl0 cjIsIHI2MwotTE9DQUwoY3RfcjJfbG9hZCk6Ci0JbGR4LnEJcjIsIHI2Mywg cjIKLQlibGluawl0cjEsIHI2MwotTE9DQUwoY3RfcjNfbG9hZCk6Ci0JbGR4 LnEJcjMsIHI2MywgcjMKLQlibGluawl0cjEsIHI2MwotTE9DQUwoY3RfcjRf bG9hZCk6Ci0JbGR4LnEJcjQsIHI2MywgcjQKLQlibGluawl0cjEsIHI2Mwot TE9DQUwoY3RfcjVfbG9hZCk6Ci0JbGR4LnEJcjUsIHI2MywgcjUKLQlibGlu awl0cjEsIHI2MwotTE9DQUwoY3RfcjZfbG9hZCk6Ci0JbGR4LnEJcjYsIHI2 MywgcjYKLQlibGluawl0cjEsIHI2MwotTE9DQUwoY3RfcjdfbG9hZCk6Ci0J bGR4LnEJcjcsIHI2MywgcjcKLQlibGluawl0cjEsIHI2MwotTE9DQUwoY3Rf cjhfbG9hZCk6Ci0JbGR4LnEJcjgsIHI2MywgcjgKLQlibGluawl0cjEsIHI2 MwotTE9DQUwoY3RfcjJfcG9wKToJLyogUG9wIHIyIGZyb20gdGhlIHN0YWNr LiAgKi8KLQltb3ZpCTEsIHIzMAotCWxkeC5xCXIxNSwgcjYzLCByMgotCXNo bGxpCXIzMCwgMjksIHIzMQotCWFkZGkubAlyMTUsIDgsIHIxNQotCWFuZGMJ cjEsIHIzMSwgcjEKLQlibGluawl0cjEsIHI2MwotTE9DQUwoY3RfcjNfcG9w KToJLyogUG9wIHIzIGZyb20gdGhlIHN0YWNrLiAgKi8KLQltb3ZpCTEsIHIz MAotCWxkeC5xCXIxNSwgcjYzLCByMwotCXNobGxpCXIzMCwgMjYsIHIzMQot CWFkZGkubAlyMTUsIDgsIHIxNQotCWFuZGMJcjEsIHIzMSwgcjEKLQlibGlu awl0cjEsIHI2MwotTE9DQUwoY3RfcjRfcG9wKToJLyogUG9wIHI0IGZyb20g dGhlIHN0YWNrLiAgKi8KLQltb3ZpCTEsIHIzMAotCWxkeC5xCXIxNSwgcjYz LCByNAotCXNobGxpCXIzMCwgMjMsIHIzMQotCWFkZGkubAlyMTUsIDgsIHIx NQotCWFuZGMJcjEsIHIzMSwgcjEKLQlibGluawl0cjEsIHI2MwotTE9DQUwo Y3RfcjVfcG9wKToJLyogUG9wIHI1IGZyb20gdGhlIHN0YWNrLiAgKi8KLQlt b3ZpCTEsIHIzMAotCWxkeC5xCXIxNSwgcjYzLCByNQotCXNobGxpCXIzMCwg MjAsIHIzMQotCWFkZGkubAlyMTUsIDgsIHIxNQotCWFuZGMJcjEsIHIzMSwg cjEKLQlibGluawl0cjEsIHI2MwotTE9DQUwoY3RfcjZfcG9wKToJLyogUG9w IHI2IGZyb20gdGhlIHN0YWNrLiAgKi8KLQltb3ZpCTEsIHIzMAotCWxkeC5x CXIxNSwgcjYzLCByNgotCXNobGxpCXIzMCwgMTYsIHIzMQotCWFkZGkubAly MTUsIDgsIHIxNQotCWFuZGMJcjEsIHIzMSwgcjEKLQlibGluawl0cjEsIHI2 MwotTE9DQUwoY3RfcjdfcG9wKToJLyogUG9wIHI3IGZyb20gdGhlIHN0YWNr LiAgKi8KLQlsZHgucQlyMTUsIHI2MywgcjcKLQltb3ZpCTEgPDwgMTIsIHIz MQotCWFkZGkubAlyMTUsIDgsIHIxNQotCWFuZGMJcjEsIHIzMSwgcjEKLQli bGluawl0cjEsIHI2MwotTE9DQUwoY3RfcjhfcG9wKToJLyogUG9wIHI4IGZy b20gdGhlIHN0YWNrLiAgKi8KLQlsZHgucQlyMTUsIHI2MywgcjgKLQltb3Zp CTEgPDwgOCwgcjMxCi0JYWRkaS5sCXIxNSwgOCwgcjE1Ci0JYW5kYwlyMSwg cjMxLCByMQotCWJsaW5rCXRyMSwgcjYzCi1MT0NBTChjdF9wb3Bfc2VxKToJ LyogUG9wIGEgc2VxdWVuY2Ugb2YgcmVnaXN0ZXJzIG9mZiB0aGUgc3RhY2su ICAqLwotCWFuZGkJcjEsIDcgPDwgMSwgcjMwCi0JbW92aQkoTE9DQUwoY3Rf ZW5kX29mX3BvcF9zZXEpID4+IDE2KSAmIDY1NTM1LCByMzIKLQlzaGxsaQly MzAsIDIsIHIzMQotCXNob3JpCUxPQ0FMKGN0X2VuZF9vZl9wb3Bfc2VxKSAm IDY1NTM1LCByMzIKLQlzdWIubAlyMzIsIHIzMSwgcjMzCi0JcHRhYnMvbAly MzMsIHRyMgotCWJsaW5rCXRyMiwgcjYzCi1MT0NBTChjdF9zdGFydF9vZl9w b3Bfc2VxKToJLyogQmVnaW5uaW5nIG9mIHBvcCBzZXF1ZW5jZS4gICovCi0J bGR4LnEJcjE1LCByNjMsIHIzCi0JYWRkaS5sCXIxNSwgOCwgcjE1Ci0JbGR4 LnEJcjE1LCByNjMsIHI0Ci0JYWRkaS5sCXIxNSwgOCwgcjE1Ci0JbGR4LnEJ cjE1LCByNjMsIHI1Ci0JYWRkaS5sCXIxNSwgOCwgcjE1Ci0JbGR4LnEJcjE1 LCByNjMsIHI2Ci0JYWRkaS5sCXIxNSwgOCwgcjE1Ci0JbGR4LnEJcjE1LCBy NjMsIHI3Ci0JYWRkaS5sCXIxNSwgOCwgcjE1Ci0JbGR4LnEJcjE1LCByNjMs IHI4Ci0JYWRkaS5sCXIxNSwgOCwgcjE1Ci1MT0NBTChjdF9yOV9wb3ApOgkv KiBQb3AgcjkgZnJvbSB0aGUgc3RhY2suICAqLwotCWxkeC5xCXIxNSwgcjYz LCByOQotCWFkZGkubAlyMTUsIDgsIHIxNQotTE9DQUwoY3RfZW5kX29mX3Bv cF9zZXEpOiAvKiBMYWJlbCB1c2VkIHRvIGNvbXB1dGUgZmlyc3QgcG9wIGlu c3RydWN0aW9uLiAgKi8KLUxPQ0FMKGN0X2NoZWNrX3RyYW1wKToJLyogQ2hl Y2sgd2hldGhlciB3ZSBuZWVkIGEgdHJhbXBvbGluZS4gICovCi0JcHQvdQlM T0NBTChjdF9yZXRfd2lkZSksIHRyMgotCWFuZGkJcjEsIDEsIHIxCi0JYm5l L3UJcjEsIHI2MywgdHIyCi1MT0NBTChjdF9jYWxsX2Z1bmMpOgkvKiBKdXN0 IGJyYW5jaCB0byB0aGUgZnVuY3Rpb24uICAqLwotCWJsaW5rCXRyMCwgcjYz Ci1MT0NBTChjdF9yZXRfd2lkZSk6CS8qIENhbGwgdGhlIGZ1bmN0aW9uLCBz byB0aGF0IHdlIGNhbiB1bnBhY2sgaXRzIAotCQkJICAgNjQtYml0IHJldHVy biB2YWx1ZS4gICovCi0JYWRkLmwJcjE4LCByNjMsIHIxMAotCWJsaW5rCXRy MCwgcjE4Ci0JcHRhYnMJcjEwLCB0cjAKLSNpZiBfX0xJVFRMRV9FTkRJQU5f XwotCXNoYXJpCXIyLCAzMiwgcjMKLQlhZGQubAlyMiwgcjYzLCByMgotI2Vs c2UKLQlhZGQubAlyMiwgcjYzLCByMwotCXNoYXJpCXIyLCAzMiwgcjIKLSNl bmRpZgotCWJsaW5rCXRyMCwgcjYzCi0KLQlFTkRGVU5DKEdMT0JBTChHQ0Nf c2hjb21wYWN0X2NhbGxfdHJhbXBvbGluZSkpCi0jZW5kaWYgLyogTF9zaGNv bXBhY3RfY2FsbF90cmFtcG9saW5lICovCi0KLSNpZmRlZiBMX3NoY29tcGFj dF9yZXR1cm5fdHJhbXBvbGluZQotICAgICAvKiBUaGlzIGZ1bmN0aW9uIGRv ZXMgdGhlIGNvbnZlcnNlIG9mIHRoZSBjb2RlIGluIGByZXRfd2lkZScKLQlh Ym92ZS4gIEl0IGlzIHRhaWwtY2FsbGVkIGJ5IFNIY29tcGFjdCBmdW5jdGlv bnMgcmV0dXJuaW5nCi0JNjQtYml0IG5vbi1mbG9hdGluZy1wb2ludCB2YWx1 ZXMsIHRvIHBhY2sgdGhlIDMyLWJpdCB2YWx1ZXMgaW4KLQlyMiBhbmQgcjMg aW50byByMi4gICovCi0KLQkubW9kZQlTSG1lZGlhCi0JLnNlY3Rpb24JLnRl eHQuLlNIbWVkaWEzMiwgImF4IgotCS5hbGlnbgkyCi0JLmdsb2JhbAlHTE9C QUwoR0NDX3NoY29tcGFjdF9yZXR1cm5fdHJhbXBvbGluZSkKLQlISURERU5f RlVOQyhHTE9CQUwoR0NDX3NoY29tcGFjdF9yZXR1cm5fdHJhbXBvbGluZSkp Ci1HTE9CQUwoR0NDX3NoY29tcGFjdF9yZXR1cm5fdHJhbXBvbGluZSk6Ci0J cHRhYnMvbAlyMTgsIHRyMAotI2lmIF9fTElUVExFX0VORElBTl9fCi0JYWRk ei5sCXIyLCByNjMsIHIyCi0Jc2hsbGkJcjMsIDMyLCByMwotI2Vsc2UKLQlh ZGR6LmwJcjMsIHI2MywgcjMKLQlzaGxsaQlyMiwgMzIsIHIyCi0jZW5kaWYK LQlvcglyMywgcjIsIHIyCi0JYmxpbmsJdHIwLCByNjMKLQotCUVOREZVTkMo R0xPQkFMKEdDQ19zaGNvbXBhY3RfcmV0dXJuX3RyYW1wb2xpbmUpKQotI2Vu ZGlmIC8qIExfc2hjb21wYWN0X3JldHVybl90cmFtcG9saW5lICovCi0KLSNp ZmRlZiBMX3NoY29tcGFjdF9pbmNvbWluZ19hcmdzCi0JLnNlY3Rpb24JLnJv ZGF0YQotCS5hbGlnbgkxCi1MT0NBTChpYV9tYWluX3RhYmxlKToKLS53b3Jk CTEgLyogSW52YWxpZCwganVzdCBsb29wICovCi0ud29yZAlMT0NBTChpYV9y Ml9sZCkgLSBkYXRhbGFiZWwgTE9DQUwoaWFfbWFpbl9sYWJlbCkKLS53b3Jk CUxPQ0FMKGlhX3IyX3B1c2gpIC0gZGF0YWxhYmVsIExPQ0FMKGlhX21haW5f bGFiZWwpCi0ud29yZAkxIC8qIEludmFsaWQsIGp1c3QgbG9vcCAqLwotLndv cmQJTE9DQUwoaWFfcjNfbGQpIC0gZGF0YWxhYmVsIExPQ0FMKGlhX21haW5f bGFiZWwpCi0ud29yZAlMT0NBTChpYV9yM19wdXNoKSAtIGRhdGFsYWJlbCBM T0NBTChpYV9tYWluX2xhYmVsKQotLndvcmQJMSAvKiBJbnZhbGlkLCBqdXN0 IGxvb3AgKi8KLS53b3JkCUxPQ0FMKGlhX3I0X2xkKSAtIGRhdGFsYWJlbCBM T0NBTChpYV9tYWluX2xhYmVsKQotLndvcmQJTE9DQUwoaWFfcjRfcHVzaCkg LSBkYXRhbGFiZWwgTE9DQUwoaWFfbWFpbl9sYWJlbCkKLS53b3JkCTEgLyog SW52YWxpZCwganVzdCBsb29wICovCi0ud29yZAlMT0NBTChpYV9yNV9sZCkg LSBkYXRhbGFiZWwgTE9DQUwoaWFfbWFpbl9sYWJlbCkKLS53b3JkCUxPQ0FM KGlhX3I1X3B1c2gpIC0gZGF0YWxhYmVsIExPQ0FMKGlhX21haW5fbGFiZWwp Ci0ud29yZAkxIC8qIEludmFsaWQsIGp1c3QgbG9vcCAqLwotLndvcmQJMSAv KiBJbnZhbGlkLCBqdXN0IGxvb3AgKi8KLS53b3JkCUxPQ0FMKGlhX3I2X2xk KSAtIGRhdGFsYWJlbCBMT0NBTChpYV9tYWluX2xhYmVsKQotLndvcmQJTE9D QUwoaWFfcjZfcHVzaCkgLSBkYXRhbGFiZWwgTE9DQUwoaWFfbWFpbl9sYWJl bCkKLS53b3JkCTEgLyogSW52YWxpZCwganVzdCBsb29wICovCi0ud29yZAkx IC8qIEludmFsaWQsIGp1c3QgbG9vcCAqLwotLndvcmQJTE9DQUwoaWFfcjdf bGQpIC0gZGF0YWxhYmVsIExPQ0FMKGlhX21haW5fbGFiZWwpCi0ud29yZAlM T0NBTChpYV9yN19wdXNoKSAtIGRhdGFsYWJlbCBMT0NBTChpYV9tYWluX2xh YmVsKQotLndvcmQJMSAvKiBJbnZhbGlkLCBqdXN0IGxvb3AgKi8KLS53b3Jk CTEgLyogSW52YWxpZCwganVzdCBsb29wICovCi0ud29yZAlMT0NBTChpYV9y OF9sZCkgLSBkYXRhbGFiZWwgTE9DQUwoaWFfbWFpbl9sYWJlbCkKLS53b3Jk CUxPQ0FMKGlhX3I4X3B1c2gpIC0gZGF0YWxhYmVsIExPQ0FMKGlhX21haW5f bGFiZWwpCi0ud29yZAkxIC8qIEludmFsaWQsIGp1c3QgbG9vcCAqLwotLndv cmQJMSAvKiBJbnZhbGlkLCBqdXN0IGxvb3AgKi8KLS53b3JkCUxPQ0FMKGlh X3I5X2xkKSAtIGRhdGFsYWJlbCBMT0NBTChpYV9tYWluX2xhYmVsKQotLndv cmQJTE9DQUwoaWFfcjlfcHVzaCkgLSBkYXRhbGFiZWwgTE9DQUwoaWFfbWFp bl9sYWJlbCkKLS53b3JkCUxPQ0FMKGlhX3B1c2hfc2VxKSAtIGRhdGFsYWJl bCBMT0NBTChpYV9tYWluX2xhYmVsKQotLndvcmQJTE9DQUwoaWFfcHVzaF9z ZXEpIC0gZGF0YWxhYmVsIExPQ0FMKGlhX21haW5fbGFiZWwpCi0ud29yZAlM T0NBTChpYV9yOV9wdXNoKSAtIGRhdGFsYWJlbCBMT0NBTChpYV9tYWluX2xh YmVsKQotLndvcmQJTE9DQUwoaWFfcmV0dXJuKSAtIGRhdGFsYWJlbCBMT0NB TChpYV9tYWluX2xhYmVsKQotLndvcmQJTE9DQUwoaWFfcmV0dXJuKSAtIGRh dGFsYWJlbCBMT0NBTChpYV9tYWluX2xhYmVsKQotCS5tb2RlCVNIbWVkaWEK LQkuc2VjdGlvbgkudGV4dC4uU0htZWRpYTMyLCAiYXgiCi0JLmFsaWduCTIK LQkKLSAgICAgLyogVGhpcyBmdW5jdGlvbiBzdG9yZXMgNjQtYml0IGdlbmVy YWwtcHVycG9zZSByZWdpc3RlcnMgYmFjayBpbgotCXRoZSBzdGFjaywgYW5k IGxvYWRzIHRoZSBhZGRyZXNzIGluIHdoaWNoIGVhY2ggcmVnaXN0ZXIKLQl3 YXMgc3RvcmVkIGludG8gaXRzZWxmLiAgVGhlIGxvd2VyIDMyIGJpdHMgb2Yg cjE3IGhvbGQgdGhlIGFkZHJlc3MKLQl0byBiZWdpbiBzdG9yaW5nLCBhbmQg dGhlIHVwcGVyIDMyIGJpdHMgb2YgcjE3IGhvbGQgdGhlIGNvb2tpZS4KLQlJ dHMgZXhlY3V0aW9uIHRpbWUgaXMgbGluZWFyIG9uIHRoZQotCW51bWJlciBv ZiByZWdpc3RlcnMgdGhhdCBhY3R1YWxseSBoYXZlIHRvIGJlIGNvcGllZCwg YW5kIGl0IGlzCi0Jb3B0aW1pemVkIGZvciBzdHJ1Y3R1cmVzIGxhcmdlciB0 aGFuIDY0IGJpdHMsIGFzIG9wcG9zZWQgdG8KLQlpbmRpdmlkdWFsIGBsb25n IGxvbmcnIGFyZ3VtZW50cy4gIFNlZSBzaC5oIGZvciBkZXRhaWxzIG9uIHRo ZQotCWFjdHVhbCBiaXQgcGF0dGVybi4gICovCi0JCi0JLmdsb2JhbAlHTE9C QUwoR0NDX3NoY29tcGFjdF9pbmNvbWluZ19hcmdzKQotIAlGVU5DKEdMT0JB TChHQ0Nfc2hjb21wYWN0X2luY29taW5nX2FyZ3MpKQotR0xPQkFMKEdDQ19z aGNvbXBhY3RfaW5jb21pbmdfYXJncyk6Ci0JcHRhYnMvbAlyMTgsIHRyMAkv KiBQcmVwYXJlIHRvIHJldHVybi4gICovCi0Jc2hscmkJcjE3LCAzMiwgcjAJ LyogTG9hZCB0aGUgY29va2llLiAgKi8KLQltb3ZpCSgoZGF0YWxhYmVsIExP Q0FMKGlhX21haW5fdGFibGUpIC0gMzEgKiAyKSA+PiAxNikgJiA2NTUzNSwg cjQzCi0JcHQvbAlMT0NBTChpYV9sb29wKSwgdHIxCi0JYWRkLmwJcjE3LCBy NjMsIHIxNwotCXNob3JpCSgoZGF0YWxhYmVsIExPQ0FMKGlhX21haW5fdGFi bGUpIC0gMzEgKiAyKSkgJiA2NTUzNSwgcjQzCi1MT0NBTChpYV9sb29wKToK LQluc2IJcjAsIHIzNgotCXNobGxpCXIzNiwgMSwgcjM3Ci0JbGR4LncJcjQz LCByMzcsIHIzOAotTE9DQUwoaWFfbWFpbl9sYWJlbCk6Ci0JcHRyZWwvbAly MzgsIHRyMgotCWJsaW5rCXRyMiwgcjYzCi1MT0NBTChpYV9yMl9sZCk6CS8q IFN0b3JlIHIyIGFuZCBsb2FkIGl0cyBhZGRyZXNzLiAgKi8KLQltb3ZpCTMs IHIzOAotCXNobGxpCXIzOCwgMjksIHIzOQotCWFuZAlyMCwgcjM5LCByNDAK LQlhbmRjCXIwLCByMzksIHIwCi0Jc3R4LnEJcjE3LCByNjMsIHIyCi0JYWRk LmwJcjE3LCByNjMsIHIyCi0JYWRkaS5sCXIxNywgOCwgcjE3Ci0JYmVxL3UJ cjM5LCByNDAsIHRyMQotTE9DQUwoaWFfcjNfbGQpOgkvKiBTdG9yZSByMyBh bmQgbG9hZCBpdHMgYWRkcmVzcy4gICovCi0JbW92aQkzLCByMzgKLQlzaGxs aQlyMzgsIDI2LCByMzkKLQlhbmQJcjAsIHIzOSwgcjQwCi0JYW5kYwlyMCwg cjM5LCByMAotCXN0eC5xCXIxNywgcjYzLCByMwotCWFkZC5sCXIxNywgcjYz LCByMwotCWFkZGkubAlyMTcsIDgsIHIxNwotCWJlcS91CXIzOSwgcjQwLCB0 cjEKLUxPQ0FMKGlhX3I0X2xkKToJLyogU3RvcmUgcjQgYW5kIGxvYWQgaXRz IGFkZHJlc3MuICAqLwotCW1vdmkJMywgcjM4Ci0Jc2hsbGkJcjM4LCAyMywg cjM5Ci0JYW5kCXIwLCByMzksIHI0MAotCWFuZGMJcjAsIHIzOSwgcjAKLQlz dHgucQlyMTcsIHI2MywgcjQKLQlhZGQubAlyMTcsIHI2MywgcjQKLQlhZGRp LmwJcjE3LCA4LCByMTcKLQliZXEvdQlyMzksIHI0MCwgdHIxCi1MT0NBTChp YV9yNV9sZCk6CS8qIFN0b3JlIHI1IGFuZCBsb2FkIGl0cyBhZGRyZXNzLiAg Ki8KLQltb3ZpCTMsIHIzOAotCXNobGxpCXIzOCwgMjAsIHIzOQotCWFuZAly MCwgcjM5LCByNDAKLQlhbmRjCXIwLCByMzksIHIwCi0Jc3R4LnEJcjE3LCBy NjMsIHI1Ci0JYWRkLmwJcjE3LCByNjMsIHI1Ci0JYWRkaS5sCXIxNywgOCwg cjE3Ci0JYmVxL3UJcjM5LCByNDAsIHRyMQotTE9DQUwoaWFfcjZfbGQpOgkv KiBTdG9yZSByNiBhbmQgbG9hZCBpdHMgYWRkcmVzcy4gICovCi0JbW92aQkz LCByMzgKLQlzaGxsaQlyMzgsIDE2LCByMzkKLQlhbmQJcjAsIHIzOSwgcjQw Ci0JYW5kYwlyMCwgcjM5LCByMAotCXN0eC5xCXIxNywgcjYzLCByNgotCWFk ZC5sCXIxNywgcjYzLCByNgotCWFkZGkubAlyMTcsIDgsIHIxNwotCWJlcS91 CXIzOSwgcjQwLCB0cjEKLUxPQ0FMKGlhX3I3X2xkKToJLyogU3RvcmUgcjcg YW5kIGxvYWQgaXRzIGFkZHJlc3MuICAqLwotCW1vdmkJMyA8PCAxMiwgcjM5 Ci0JYW5kCXIwLCByMzksIHI0MAotCWFuZGMJcjAsIHIzOSwgcjAKLQlzdHgu cQlyMTcsIHI2MywgcjcKLQlhZGQubAlyMTcsIHI2MywgcjcKLQlhZGRpLmwJ cjE3LCA4LCByMTcKLQliZXEvdQlyMzksIHI0MCwgdHIxCi1MT0NBTChpYV9y OF9sZCk6CS8qIFN0b3JlIHI4IGFuZCBsb2FkIGl0cyBhZGRyZXNzLiAgKi8K LQltb3ZpCTMgPDwgOCwgcjM5Ci0JYW5kCXIwLCByMzksIHI0MAotCWFuZGMJ cjAsIHIzOSwgcjAKLQlzdHgucQlyMTcsIHI2MywgcjgKLQlhZGQubAlyMTcs IHI2MywgcjgKLQlhZGRpLmwJcjE3LCA4LCByMTcKLQliZXEvdQlyMzksIHI0 MCwgdHIxCi1MT0NBTChpYV9yOV9sZCk6CS8qIFN0b3JlIHI5IGFuZCBsb2Fk IGl0cyBhZGRyZXNzLiAgKi8KLQlzdHgucQlyMTcsIHI2MywgcjkKLQlhZGQu bAlyMTcsIHI2MywgcjkKLQlibGluawl0cjAsIHI2MwotTE9DQUwoaWFfcjJf cHVzaCk6CS8qIFB1c2ggcjIgb250byB0aGUgc3RhY2suICAqLwotCW1vdmkJ MSwgcjM4Ci0Jc2hsbGkJcjM4LCAyOSwgcjM5Ci0JYW5kYwlyMCwgcjM5LCBy MAotCXN0eC5xCXIxNywgcjYzLCByMgotCWFkZGkubAlyMTcsIDgsIHIxNwot CWJsaW5rCXRyMSwgcjYzCi1MT0NBTChpYV9yM19wdXNoKToJLyogUHVzaCBy MyBvbnRvIHRoZSBzdGFjay4gICovCi0JbW92aQkxLCByMzgKLQlzaGxsaQly MzgsIDI2LCByMzkKLQlhbmRjCXIwLCByMzksIHIwCi0Jc3R4LnEJcjE3LCBy NjMsIHIzCi0JYWRkaS5sCXIxNywgOCwgcjE3Ci0JYmxpbmsJdHIxLCByNjMK LUxPQ0FMKGlhX3I0X3B1c2gpOgkvKiBQdXNoIHI0IG9udG8gdGhlIHN0YWNr LiAgKi8KLQltb3ZpCTEsIHIzOAotCXNobGxpCXIzOCwgMjMsIHIzOQotCWFu ZGMJcjAsIHIzOSwgcjAKLQlzdHgucQlyMTcsIHI2MywgcjQKLQlhZGRpLmwJ cjE3LCA4LCByMTcKLQlibGluawl0cjEsIHI2MwotTE9DQUwoaWFfcjVfcHVz aCk6CS8qIFB1c2ggcjUgb250byB0aGUgc3RhY2suICAqLwotCW1vdmkJMSwg cjM4Ci0Jc2hsbGkJcjM4LCAyMCwgcjM5Ci0JYW5kYwlyMCwgcjM5LCByMAot CXN0eC5xCXIxNywgcjYzLCByNQotCWFkZGkubAlyMTcsIDgsIHIxNwotCWJs aW5rCXRyMSwgcjYzCi1MT0NBTChpYV9yNl9wdXNoKToJLyogUHVzaCByNiBv bnRvIHRoZSBzdGFjay4gICovCi0JbW92aQkxLCByMzgKLQlzaGxsaQlyMzgs IDE2LCByMzkKLQlhbmRjCXIwLCByMzksIHIwCi0Jc3R4LnEJcjE3LCByNjMs IHI2Ci0JYWRkaS5sCXIxNywgOCwgcjE3Ci0JYmxpbmsJdHIxLCByNjMKLUxP Q0FMKGlhX3I3X3B1c2gpOgkvKiBQdXNoIHI3IG9udG8gdGhlIHN0YWNrLiAg Ki8KLQltb3ZpCTEgPDwgMTIsIHIzOQotCWFuZGMJcjAsIHIzOSwgcjAKLQlz dHgucQlyMTcsIHI2MywgcjcKLQlhZGRpLmwJcjE3LCA4LCByMTcKLQlibGlu awl0cjEsIHI2MwotTE9DQUwoaWFfcjhfcHVzaCk6CS8qIFB1c2ggcjggb250 byB0aGUgc3RhY2suICAqLwotCW1vdmkJMSA8PCA4LCByMzkKLQlhbmRjCXIw LCByMzksIHIwCi0Jc3R4LnEJcjE3LCByNjMsIHI4Ci0JYWRkaS5sCXIxNywg OCwgcjE3Ci0JYmxpbmsJdHIxLCByNjMKLUxPQ0FMKGlhX3B1c2hfc2VxKToJ LyogUHVzaCBhIHNlcXVlbmNlIG9mIHJlZ2lzdGVycyBvbnRvIHRoZSBzdGFj ay4gICovCi0JYW5kaQlyMCwgNyA8PCAxLCByMzgKLQltb3ZpCShMT0NBTChp YV9lbmRfb2ZfcHVzaF9zZXEpID4+IDE2KSAmIDY1NTM1LCByNDAKLQlzaGxs aQlyMzgsIDIsIHIzOQotCXNob3JpCUxPQ0FMKGlhX2VuZF9vZl9wdXNoX3Nl cSkgJiA2NTUzNSwgcjQwCi0Jc3ViLmwJcjQwLCByMzksIHI0MQotCXB0YWJz L2wJcjQxLCB0cjIKLQlibGluawl0cjIsIHI2MwotTE9DQUwoaWFfc3RhY2tf b2ZfcHVzaF9zZXEpOgkgLyogQmVnaW5uaW5nIG9mIHB1c2ggc2VxdWVuY2Uu ICAqLwotCXN0eC5xCXIxNywgcjYzLCByMwotCWFkZGkubAlyMTcsIDgsIHIx NwotCXN0eC5xCXIxNywgcjYzLCByNAotCWFkZGkubAlyMTcsIDgsIHIxNwot CXN0eC5xCXIxNywgcjYzLCByNQotCWFkZGkubAlyMTcsIDgsIHIxNwotCXN0 eC5xCXIxNywgcjYzLCByNgotCWFkZGkubAlyMTcsIDgsIHIxNwotCXN0eC5x CXIxNywgcjYzLCByNwotCWFkZGkubAlyMTcsIDgsIHIxNwotCXN0eC5xCXIx NywgcjYzLCByOAotCWFkZGkubAlyMTcsIDgsIHIxNwotTE9DQUwoaWFfcjlf cHVzaCk6CS8qIFB1c2ggcjkgb250byB0aGUgc3RhY2suICAqLwotCXN0eC5x CXIxNywgcjYzLCByOQotTE9DQUwoaWFfcmV0dXJuKToJLyogUmV0dXJuLiAg Ki8KLQlibGluawl0cjAsIHI2MwotTE9DQUwoaWFfZW5kX29mX3B1c2hfc2Vx KTogLyogTGFiZWwgdXNlZCB0byBjb21wdXRlIHRoZSBmaXJzdCBwdXNoIGlu c3RydWN0aW9uLiAgKi8KLQlFTkRGVU5DKEdMT0JBTChHQ0Nfc2hjb21wYWN0 X2luY29taW5nX2FyZ3MpKQotI2VuZGlmIC8qIExfc2hjb21wYWN0X2luY29t aW5nX2FyZ3MgKi8KLSNlbmRpZgotI2lmIF9fU0g1X18KLSNpZmRlZiBMX25l c3RlZF90cmFtcG9saW5lCi0jaWYgX19TSDVfXyA9PSAzMgotCS5zZWN0aW9u CS50ZXh0Li5TSG1lZGlhMzIsImF4IgotI2Vsc2UKLQkudGV4dAotI2VuZGlm Ci0JLmFsaWduCTMgLyogSXQgaXMgY29waWVkIGluIHVuaXRzIG9mIDggYnl0 ZXMgaW4gU0htZWRpYSBtb2RlLiAgKi8KLQkuZ2xvYmFsCUdMT0JBTChHQ0Nf bmVzdGVkX3RyYW1wb2xpbmUpCi0JSElEREVOX0ZVTkMoR0xPQkFMKEdDQ19u ZXN0ZWRfdHJhbXBvbGluZSkpCi1HTE9CQUwoR0NDX25lc3RlZF90cmFtcG9s aW5lKToKLQkubW9kZQlTSG1lZGlhCi0JcHRyZWwvdQlyNjMsIHRyMAotCWdl dHRyCXRyMCwgcjAKLSNpZiBfX1NINV9fID09IDY0Ci0JbGQucQlyMCwgMjQs IHIxCi0jZWxzZQotCWxkLmwJcjAsIDI0LCByMQotI2VuZGlmCi0JcHRhYnMv bAlyMSwgdHIxCi0jaWYgX19TSDVfXyA9PSA2NAotCWxkLnEJcjAsIDMyLCBy MQotI2Vsc2UKLQlsZC5sCXIwLCAyOCwgcjEKLSNlbmRpZgotCWJsaW5rCXRy MSwgcjYzCi0KLQlFTkRGVU5DKEdMT0JBTChHQ0NfbmVzdGVkX3RyYW1wb2xp bmUpKQotI2VuZGlmIC8qIExfbmVzdGVkX3RyYW1wb2xpbmUgKi8KLSNlbmRp ZiAvKiBfX1NINV9fICovCi0jaWYgX19TSDVfXyA9PSAzMgotI2lmZGVmIExf cHVzaF9wb3Bfc2htZWRpYV9yZWdzCi0JLnNlY3Rpb24JLnRleHQuLlNIbWVk aWEzMiwiYXgiCi0JLm1vZGUJU0htZWRpYQotCS5hbGlnbgkyCi0jaWZuZGVm IF9fU0g0X05PRlBVX18JCi0JLmdsb2JhbAlHTE9CQUwoR0NDX3B1c2hfc2ht ZWRpYV9yZWdzKQotCUZVTkMoR0xPQkFMKEdDQ19wdXNoX3NobWVkaWFfcmVn cykpCi1HTE9CQUwoR0NDX3B1c2hfc2htZWRpYV9yZWdzKToKLQlhZGRpLmwJ cjE1LCAtMTQqOCwgcjE1Ci0JZnN0LmQJcjE1LCAxMyo4LCBkcjYyCi0JZnN0 LmQJcjE1LCAxMio4LCBkcjYwCi0JZnN0LmQJcjE1LCAxMSo4LCBkcjU4Ci0J ZnN0LmQJcjE1LCAxMCo4LCBkcjU2Ci0JZnN0LmQJcjE1LCAgOSo4LCBkcjU0 Ci0JZnN0LmQJcjE1LCAgOCo4LCBkcjUyCi0JZnN0LmQJcjE1LCAgNyo4LCBk cjUwCi0JZnN0LmQJcjE1LCAgNio4LCBkcjQ4Ci0JZnN0LmQJcjE1LCAgNSo4 LCBkcjQ2Ci0JZnN0LmQJcjE1LCAgNCo4LCBkcjQ0Ci0JZnN0LmQJcjE1LCAg Myo4LCBkcjQyCi0JZnN0LmQJcjE1LCAgMio4LCBkcjQwCi0JZnN0LmQJcjE1 LCAgMSo4LCBkcjM4Ci0JZnN0LmQJcjE1LCAgMCo4LCBkcjM2Ci0jZWxzZSAv KiAhIF9fU0g0X05PRlBVX18gKi8KLQkuZ2xvYmFsCUdMT0JBTChHQ0NfcHVz aF9zaG1lZGlhX3JlZ3Nfbm9mcHUpCi0JRlVOQyhHTE9CQUwoR0NDX3B1c2hf c2htZWRpYV9yZWdzX25vZnB1KSkKLUdMT0JBTChHQ0NfcHVzaF9zaG1lZGlh X3JlZ3Nfbm9mcHUpOgotI2VuZGlmIC8qICEgX19TSDRfTk9GUFVfXyAqLwot CXB0YWJzL2wJcjE4LCB0cjAKLQlhZGRpLmwJcjE1LCAtMjcqOCwgcjE1Ci0J Z2V0dHIJdHI3LCByNjIKLQlnZXR0cgl0cjYsIHI2MQotCWdldHRyCXRyNSwg cjYwCi0Jc3QucQlyMTUsIDI2KjgsIHI2MgotCXN0LnEJcjE1LCAyNSo4LCBy NjEKLQlzdC5xCXIxNSwgMjQqOCwgcjYwCi0Jc3QucQlyMTUsIDIzKjgsIHI1 OQotCXN0LnEJcjE1LCAyMio4LCByNTgKLQlzdC5xCXIxNSwgMjEqOCwgcjU3 Ci0Jc3QucQlyMTUsIDIwKjgsIHI1NgotCXN0LnEJcjE1LCAxOSo4LCByNTUK LQlzdC5xCXIxNSwgMTgqOCwgcjU0Ci0Jc3QucQlyMTUsIDE3KjgsIHI1Mwot CXN0LnEJcjE1LCAxNio4LCByNTIKLQlzdC5xCXIxNSwgMTUqOCwgcjUxCi0J c3QucQlyMTUsIDE0KjgsIHI1MAotCXN0LnEJcjE1LCAxMyo4LCByNDkKLQlz dC5xCXIxNSwgMTIqOCwgcjQ4Ci0Jc3QucQlyMTUsIDExKjgsIHI0NwotCXN0 LnEJcjE1LCAxMCo4LCByNDYKLQlzdC5xCXIxNSwgIDkqOCwgcjQ1Ci0Jc3Qu cQlyMTUsICA4KjgsIHI0NAotCXN0LnEJcjE1LCAgNyo4LCByMzUKLQlzdC5x CXIxNSwgIDYqOCwgcjM0Ci0Jc3QucQlyMTUsICA1KjgsIHIzMwotCXN0LnEJ cjE1LCAgNCo4LCByMzIKLQlzdC5xCXIxNSwgIDMqOCwgcjMxCi0Jc3QucQly MTUsICAyKjgsIHIzMAotCXN0LnEJcjE1LCAgMSo4LCByMjkKLQlzdC5xCXIx NSwgIDAqOCwgcjI4Ci0JYmxpbmsJdHIwLCByNjMKLSNpZm5kZWYgX19TSDRf Tk9GUFVfXwkKLQlFTkRGVU5DKEdMT0JBTChHQ0NfcHVzaF9zaG1lZGlhX3Jl Z3MpKQotI2Vsc2UKLQlFTkRGVU5DKEdMT0JBTChHQ0NfcHVzaF9zaG1lZGlh X3JlZ3Nfbm9mcHUpKQotI2VuZGlmCi0jaWZuZGVmIF9fU0g0X05PRlBVX18J Ci0JLmdsb2JhbAlHTE9CQUwoR0NDX3BvcF9zaG1lZGlhX3JlZ3MpCi0JRlVO QyhHTE9CQUwoR0NDX3BvcF9zaG1lZGlhX3JlZ3MpKQotR0xPQkFMKEdDQ19w b3Bfc2htZWRpYV9yZWdzKToKLQlwdAkuTDAsIHRyMQotCW1vdmkJNDEqOCwg cjAKLQlmbGQuZAlyMTUsIDQwKjgsIGRyNjIKLQlmbGQuZAlyMTUsIDM5Kjgs IGRyNjAKLQlmbGQuZAlyMTUsIDM4KjgsIGRyNTgKLQlmbGQuZAlyMTUsIDM3 KjgsIGRyNTYKLQlmbGQuZAlyMTUsIDM2KjgsIGRyNTQKLQlmbGQuZAlyMTUs IDM1KjgsIGRyNTIKLQlmbGQuZAlyMTUsIDM0KjgsIGRyNTAKLQlmbGQuZAly MTUsIDMzKjgsIGRyNDgKLQlmbGQuZAlyMTUsIDMyKjgsIGRyNDYKLQlmbGQu ZAlyMTUsIDMxKjgsIGRyNDQKLQlmbGQuZAlyMTUsIDMwKjgsIGRyNDIKLQlm bGQuZAlyMTUsIDI5KjgsIGRyNDAKLQlmbGQuZAlyMTUsIDI4KjgsIGRyMzgK LQlmbGQuZAlyMTUsIDI3KjgsIGRyMzYKLQlibGluawl0cjEsIHI2MwotI2Vs c2UgLyogISBfX1NINF9OT0ZQVV9fCSovCi0JLmdsb2JhbAlHTE9CQUwoR0ND X3BvcF9zaG1lZGlhX3JlZ3Nfbm9mcHUpCi0JRlVOQyhHTE9CQUwoR0NDX3Bv cF9zaG1lZGlhX3JlZ3Nfbm9mcHUpKQotR0xPQkFMKEdDQ19wb3Bfc2htZWRp YV9yZWdzX25vZnB1KToKLSNlbmRpZiAvKiAhIF9fU0g0X05PRlBVX18JKi8K LQltb3ZpCTI3KjgsIHIwCi0uTDA6Ci0JcHRhYnMJcjE4LCB0cjAKLQlsZC5x CXIxNSwgMjYqOCwgcjYyCi0JbGQucQlyMTUsIDI1KjgsIHI2MQotCWxkLnEJ cjE1LCAyNCo4LCByNjAKLQlwdGFicwlyNjIsIHRyNwotCXB0YWJzCXI2MSwg dHI2Ci0JcHRhYnMJcjYwLCB0cjUKLQlsZC5xCXIxNSwgMjMqOCwgcjU5Ci0J bGQucQlyMTUsIDIyKjgsIHI1OAotCWxkLnEJcjE1LCAyMSo4LCByNTcKLQls ZC5xCXIxNSwgMjAqOCwgcjU2Ci0JbGQucQlyMTUsIDE5KjgsIHI1NQotCWxk LnEJcjE1LCAxOCo4LCByNTQKLQlsZC5xCXIxNSwgMTcqOCwgcjUzCi0JbGQu cQlyMTUsIDE2KjgsIHI1MgotCWxkLnEJcjE1LCAxNSo4LCByNTEKLQlsZC5x CXIxNSwgMTQqOCwgcjUwCi0JbGQucQlyMTUsIDEzKjgsIHI0OQotCWxkLnEJ cjE1LCAxMio4LCByNDgKLQlsZC5xCXIxNSwgMTEqOCwgcjQ3Ci0JbGQucQly MTUsIDEwKjgsIHI0NgotCWxkLnEJcjE1LCAgOSo4LCByNDUKLQlsZC5xCXIx NSwgIDgqOCwgcjQ0Ci0JbGQucQlyMTUsICA3KjgsIHIzNQotCWxkLnEJcjE1 LCAgNio4LCByMzQKLQlsZC5xCXIxNSwgIDUqOCwgcjMzCi0JbGQucQlyMTUs ICA0KjgsIHIzMgotCWxkLnEJcjE1LCAgMyo4LCByMzEKLQlsZC5xCXIxNSwg IDIqOCwgcjMwCi0JbGQucQlyMTUsICAxKjgsIHIyOQotCWxkLnEJcjE1LCAg MCo4LCByMjgKLQlhZGQubAlyMTUsIHIwLCByMTUKLQlibGluawl0cjAsIHI2 MwotCi0jaWZuZGVmIF9fU0g0X05PRlBVX18KLQlFTkRGVU5DKEdMT0JBTChH Q0NfcG9wX3NobWVkaWFfcmVncykpCi0jZWxzZQotCUVOREZVTkMoR0xPQkFM KEdDQ19wb3Bfc2htZWRpYV9yZWdzX25vZnB1KSkKLSNlbmRpZgotI2VuZGlm IC8qIF9fU0g1X18gPT0gMzIgKi8KLSNlbmRpZiAvKiBMX3B1c2hfcG9wX3No bWVkaWFfcmVncyAqLwogCiAjaWZkZWYgTF9kaXZfdGFibGUKLSNpZiBfX1NI NV9fCi0jaWYgZGVmaW5lZChfX3BpY19fKSAmJiBfX1NITUVESUFfXwotCS5n bG9iYWwJR0xPQkFMKHNkaXZzaTMpCi0JRlVOQyhHTE9CQUwoc2RpdnNpMykp Ci0jaWYgX19TSDVfXyA9PSAzMgotCS5zZWN0aW9uCS50ZXh0Li5TSG1lZGlh MzIsImF4IgotI2Vsc2UKLQkudGV4dAotI2VuZGlmCi0jaWYgMAotLyogPz8/ IEZJWE1FOiBQcmVzdW1hYmx5IGR1ZSB0byBhIGxpbmtlciBidWcsIGV4cG9y dGluZyBkYXRhIHN5bWJvbHMKLSAgIGluIGEgdGV4dCBzZWN0aW9uIGRvZXMg bm90IHdvcmsgKGF0IGxlYXN0IGZvciBzaGFyZWQgbGlicmFyaWVzKToKLSAg IHRoZSBsaW5rZXIgc2V0cyB0aGUgTFNCIG9mIHRoZSBhZGRyZXNzIGFzIGlm IHRoaXMgd2FzIFNIbWVkaWEgY29kZS4gICovCi0jZGVmaW5lIFRFWFRfREFU QV9CVUcKLSNlbmRpZgotCS5hbGlnbgkyCi0gLy8gaW5wdXRzOiByNCxyNQot IC8vIGNsb2JiZXJlZDogcjEscjE4LHIxOSxyMjAscjIxLHIyNSx0cjAKLSAv LyByZXN1bHQgaW4gcjAKLSAuZ2xvYmFsIEdMT0JBTChzZGl2c2kzKQotR0xP QkFMKHNkaXZzaTMpOgotI2lmZGVmIFRFWFRfREFUQV9CVUcKLSBwdGIgZGF0 YWxhYmVsIExvY2FsX2Rpdl90YWJsZSx0cjAKLSNlbHNlCi0gcHRiIEdMT0JB TChkaXZfdGFibGVfaW50ZXJuYWwpLHRyMAotI2VuZGlmCi0gbnNiIHI1LCBy MQotIHNobGxkIHI1LCByMSwgcjI1ICAgIC8vIG5vcm1hbGl6ZTsgWy0yIC4u MSwgMS4uMikgaW4gczIuNjIKLSBzaGFyaSByMjUsIDU4LCByMjEgICAvLyBl eHRyYWN0IDUoNikgYml0IGluZGV4IChzMi40IHdpdGggaG9sZSAtMS4uMSkK LSAvKiBidWJibGUgKi8KLSBnZXR0ciB0cjAscjIwCi0gbGR4LnViIHIyMCwg cjIxLCByMTkgLy8gdTAuOAotIHNoYXJpIHIyNSwgMzIsIHIyNSAgIC8vIG5v cm1hbGl6ZSB0byBzMi4zMAotIHNobGxpIHIyMSwgMSwgcjIxCi0gbXVscy5s IHIyNSwgcjE5LCByMTkgLy8gczIuMzgKLSBsZHgudyByMjAsIHIyMSwgcjIx ICAvLyBzMi4xNAotICBwdGFicyByMTgsIHRyMAotIHNoYXJpIHIxOSwgMjQs IHIxOSAgIC8vIHRydW5jYXRlIHRvIHMyLjE0Ci0gc3ViIHIyMSwgcjE5LCBy MTkgICAgLy8gc29tZSAxMSBiaXQgaW52ZXJzZSBpbiBzMS4xNAotIG11bHMu bCByMTksIHIxOSwgcjIxIC8vIHUwLjI4Ci0gIHN1YiByNjMsIHIxLCByMQot ICBhZGRpIHIxLCA5MiwgcjEKLSBtdWxzLmwgcjI1LCByMjEsIHIxOCAvLyBz Mi41OAotIHNobGxpIHIxOSwgNDUsIHIxOSAgIC8vIG11bHRpcGx5IGJ5IHR3 byBhbmQgY29udmVydCB0byBzMi41OAotICAvKiBidWJibGUgKi8KLSBzdWIg cjE5LCByMTgsIHIxOAotIHNoYXJpIHIxOCwgMjgsIHIxOCAgIC8vIHNvbWUg MjIgYml0IGludmVyc2UgaW4gczEuMzAKLSBtdWxzLmwgcjE4LCByMjUsIHIw ICAvLyBzMi42MAotICBtdWxzLmwgcjE4LCByNCwgcjI1IC8vIHMzMi4zMAot ICAvKiBidWJibGUgKi8KLSBzaGFyaSByMCwgMTYsIHIxOSAgIC8vIHMtMTYu NDQKLSBtdWxzLmwgcjE5LCByMTgsIHIxOSAvLyBzLTE2Ljc0Ci0gIHNoYXJp IHIyNSwgNjMsIHIwCi0gIHNoYXJpIHI0LCAxNCwgcjE4ICAgLy8gczE5Li0x NAotIHNoYXJpIHIxOSwgMzAsIHIxOSAgIC8vIHMtMTYuNDQKLSBtdWxzLmwg cjE5LCByMTgsIHIxOSAvLyBzMTUuMzAKLSAgeG9yIHIyMSwgcjAsIHIyMSAg ICAvLyBZb3UgY291bGQgYWxzbyB1c2UgdGhlIGNvbnN0YW50IDEgPDwgMjcu Ci0gIGFkZCByMjEsIHIyNSwgcjIxCi0gc3ViIHIyMSwgcjE5LCByMjEKLSBz aGFyZCByMjEsIHIxLCByMjEKLSBzdWIgcjIxLCByMCwgcjAKLSBibGluayB0 cjAsIHI2MwotCUVOREZVTkMoR0xPQkFMKHNkaXZzaTMpKQotLyogVGhpcyB0 YWJsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgZGl2dGFiLmMgLgotRGVmZWN0 cyBmb3IgYmlhcyAtMzMwOgotICAgTWF4IGRlZmVjdDogNi4wODE1MzZlLTA3 IGF0IC0xLjAwMDAwMGUrMDAKLSAgIE1pbiBkZWZlY3Q6IDIuODQ5NTE2ZS0w OCBhdCAxLjAzMDY1MWUrMDAKLSAgIE1heCAybmQgc3RlcCBkZWZlY3Q6IDku NjA2NTM5ZS0xMiBhdCAtMS4wMDAwMDBlKzAwCi0gICBNaW4gMm5kIHN0ZXAg ZGVmZWN0OiAwLjAwMDAwMGUrMDAgYXQgMC4wMDAwMDBlKzAwCi0gICBEZWZl Y3QgYXQgMTogMS4yMzg2NTllLTA3Ci0gICBEZWZlY3QgYXQgLTI6IDEuMDYx NzA4ZS0wNyAqLwotI2Vsc2UgLyogISBfX3BpY19fIHx8ICEgX19TSE1FRElB X18gKi8KLQkuc2VjdGlvbgkucm9kYXRhCi0jZW5kaWYgLyogX19waWNfXyAq LwotI2lmIGRlZmluZWQoVEVYVF9EQVRBX0JVRykgJiYgZGVmaW5lZChfX3Bp Y19fKSAmJiBfX1NITUVESUFfXwotCS5iYWxpZ24gMgotCS50eXBlCUxvY2Fs X2Rpdl90YWJsZSxAb2JqZWN0Ci0JLnNpemUJTG9jYWxfZGl2X3RhYmxlLDEy OAotLyogbmVnYXRpdmUgZGl2aXNpb24gY29uc3RhbnRzICovCi0JLndvcmQJ LTE2NjM4Ci0JLndvcmQJLTE3MTM1Ci0JLndvcmQJLTE3NzM3Ci0JLndvcmQJ LTE4NDMzCi0JLndvcmQJLTE5MTAzCi0JLndvcmQJLTE5NzUxCi0JLndvcmQJ LTIwNTgzCi0JLndvcmQJLTIxMzgzCi0JLndvcmQJLTIyMzQzCi0JLndvcmQJ LTIzMzUzCi0JLndvcmQJLTI0NDA3Ci0JLndvcmQJLTI1NTgyCi0JLndvcmQJ LTI2ODYzCi0JLndvcmQJLTI4MzgyCi0JLndvcmQJLTI5OTY1Ci0JLndvcmQJ LTMxODAwCi0vKiBuZWdhdGl2ZSBkaXZpc2lvbiBmYWN0b3JzICovCi0JLmJ5 dGUJNjYKLQkuYnl0ZQk3MAotCS5ieXRlCTc1Ci0JLmJ5dGUJODEKLQkuYnl0 ZQk4NwotCS5ieXRlCTkzCi0JLmJ5dGUJMTAxCi0JLmJ5dGUJMTA5Ci0JLmJ5 dGUJMTE5Ci0JLmJ5dGUJMTMwCi0JLmJ5dGUJMTQyCi0JLmJ5dGUJMTU2Ci0J LmJ5dGUJMTcyCi0JLmJ5dGUJMTkyCi0JLmJ5dGUJMjE0Ci0JLmJ5dGUJMjQx Ci0JLnNraXAgMTYKLUxvY2FsX2Rpdl90YWJsZToKLQkuc2tpcCAxNgotLyog cG9zaXRpdmUgZGl2aXNpb24gZmFjdG9ycyAqLwotCS5ieXRlCTI0MQotCS5i eXRlCTIxNAotCS5ieXRlCTE5MgotCS5ieXRlCTE3MgotCS5ieXRlCTE1Ngot CS5ieXRlCTE0MgotCS5ieXRlCTEzMAotCS5ieXRlCTExOQotCS5ieXRlCTEw OQotCS5ieXRlCTEwMQotCS5ieXRlCTkzCi0JLmJ5dGUJODcKLQkuYnl0ZQk4 MQotCS5ieXRlCTc1Ci0JLmJ5dGUJNzAKLQkuYnl0ZQk2NgotLyogcG9zaXRp dmUgZGl2aXNpb24gY29uc3RhbnRzICovCi0JLndvcmQJMzE4MDEKLQkud29y ZAkyOTk2NgotCS53b3JkCTI4MzgzCi0JLndvcmQJMjY4NjQKLQkud29yZAky NTU4MwotCS53b3JkCTI0NDA4Ci0JLndvcmQJMjMzNTQKLQkud29yZAkyMjM0 NAotCS53b3JkCTIxMzg0Ci0JLndvcmQJMjA1ODQKLQkud29yZAkxOTc1Mgot CS53b3JkCTE5MTA0Ci0JLndvcmQJMTg0MzQKLQkud29yZAkxNzczOAotCS53 b3JkCTE3MTM2Ci0JLndvcmQJMTY2MzkKLQkuc2VjdGlvbgkucm9kYXRhCi0j ZW5kaWYgLyogVEVYVF9EQVRBX0JVRyAqLwotCS5iYWxpZ24gMgotCS50eXBl CUdMT0JBTChkaXZfdGFibGUpLEBvYmplY3QKLQkuc2l6ZQlHTE9CQUwoZGl2 X3RhYmxlKSwxMjgKLS8qIG5lZ2F0aXZlIGRpdmlzaW9uIGNvbnN0YW50cyAq LwotCS53b3JkCS0xNjYzOAotCS53b3JkCS0xNzEzNQotCS53b3JkCS0xNzcz NwotCS53b3JkCS0xODQzMwotCS53b3JkCS0xOTEwMwotCS53b3JkCS0xOTc1 MQotCS53b3JkCS0yMDU4MwotCS53b3JkCS0yMTM4MwotCS53b3JkCS0yMjM0 MwotCS53b3JkCS0yMzM1MwotCS53b3JkCS0yNDQwNwotCS53b3JkCS0yNTU4 MgotCS53b3JkCS0yNjg2MwotCS53b3JkCS0yODM4MgotCS53b3JkCS0yOTk2 NQotCS53b3JkCS0zMTgwMAotLyogbmVnYXRpdmUgZGl2aXNpb24gZmFjdG9y cyAqLwotCS5ieXRlCTY2Ci0JLmJ5dGUJNzAKLQkuYnl0ZQk3NQotCS5ieXRl CTgxCi0JLmJ5dGUJODcKLQkuYnl0ZQk5MwotCS5ieXRlCTEwMQotCS5ieXRl CTEwOQotCS5ieXRlCTExOQotCS5ieXRlCTEzMAotCS5ieXRlCTE0MgotCS5i eXRlCTE1NgotCS5ieXRlCTE3MgotCS5ieXRlCTE5MgotCS5ieXRlCTIxNAot CS5ieXRlCTI0MQotCS5za2lwIDE2Ci0JLmdsb2JhbAlHTE9CQUwoZGl2X3Rh YmxlKQotR0xPQkFMKGRpdl90YWJsZSk6Ci0JSElEREVOX0FMSUFTKGRpdl90 YWJsZV9pbnRlcm5hbCxkaXZfdGFibGUpCi0JLnNraXAgMTYKLS8qIHBvc2l0 aXZlIGRpdmlzaW9uIGZhY3RvcnMgKi8KLQkuYnl0ZQkyNDEKLQkuYnl0ZQky MTQKLQkuYnl0ZQkxOTIKLQkuYnl0ZQkxNzIKLQkuYnl0ZQkxNTYKLQkuYnl0 ZQkxNDIKLQkuYnl0ZQkxMzAKLQkuYnl0ZQkxMTkKLQkuYnl0ZQkxMDkKLQku Ynl0ZQkxMDEKLQkuYnl0ZQk5MwotCS5ieXRlCTg3Ci0JLmJ5dGUJODEKLQku Ynl0ZQk3NQotCS5ieXRlCTcwCi0JLmJ5dGUJNjYKLS8qIHBvc2l0aXZlIGRp dmlzaW9uIGNvbnN0YW50cyAqLwotCS53b3JkCTMxODAxCi0JLndvcmQJMjk5 NjYKLQkud29yZAkyODM4MwotCS53b3JkCTI2ODY0Ci0JLndvcmQJMjU1ODMK LQkud29yZAkyNDQwOAotCS53b3JkCTIzMzU0Ci0JLndvcmQJMjIzNDQKLQku d29yZAkyMTM4NAotCS53b3JkCTIwNTg0Ci0JLndvcmQJMTk3NTIKLQkud29y ZAkxOTEwNAotCS53b3JkCTE4NDM0Ci0JLndvcmQJMTc3MzgKLQkud29yZAkx NzEzNgotCS53b3JkCTE2NjM5Ci0KLSNlbGlmIGRlZmluZWQgKF9fU0gyQV9f KSB8fCBkZWZpbmVkIChfX1NIM19fKSB8fCBkZWZpbmVkIChfX1NIM0VfXykg fHwgZGVmaW5lZCAoX19TSDRfXykgfHwgZGVmaW5lZCAoX19TSDRfU0lOR0xF X18pIHx8IGRlZmluZWQgKF9fU0g0X1NJTkdMRV9PTkxZX18pIHx8IGRlZmlu ZWQgKF9fU0g0X05PRlBVX18pCisKKyNpZiBkZWZpbmVkIChfX1NIMkFfXykg fHwgZGVmaW5lZCAoX19TSDNfXykgfHwgZGVmaW5lZCAoX19TSDNFX18pIHx8 IGRlZmluZWQgKF9fU0g0X18pIHx8IGRlZmluZWQgKF9fU0g0X1NJTkdMRV9f KSB8fCBkZWZpbmVkIChfX1NINF9TSU5HTEVfT05MWV9fKSB8fCBkZWZpbmVk IChfX1NINF9OT0ZQVV9fKQogLyogVGhpcyBjb2RlIHVzZXMgc2hsZCwgdGh1 cyBpcyBub3Qgc3VpdGFibGUgZm9yIFNIMSAvIFNIMi4gICovCiAKIC8qIFNp Z25lZCAvIHVuc2lnbmVkIGRpdmlzaW9uIHdpdGhvdXQgdXNlIG9mIEZQVSwg b3B0aW1pemVkIGZvciBTSDQuCkBAIC0zOTk5LDcgKzIyNDcsNiBAQCBMT0NB TChkaXZfdGFibGVfaW52KToKICNlbmRpZiAvKiBMX2Rpdl90YWJsZSAqLwog CiAjaWZkZWYgTF91ZGl2X3Fybm5kXzE2Ci0jaWYgIV9fU0hNRURJQV9fCiAJ SElEREVOX0ZVTkMoR0xPQkFMKHVkaXZfcXJubmRfMTYpKQogCS8qIHIwOiBy biByMTogcW4gKi8gLyogcjA6IG4xIHI0OiBuMCByNTogZCByNjogZDEgKi8g LyogcjI6IF9fbSAqLwogCS8qIG4xIDwgZCwgYnV0IG4xIG1pZ2h0IGJlIGxh cmdlciB0aGFuIGQxLiAgKi8KQEAgLTQwNDMsNSArMjI5MCw0IEBAIEdMT0JB TCh1ZGl2X3Fybm5kXzE2KToKIDA6CXJ0cwogCW5vcAogCUVOREZVTkMoR0xP QkFMKHVkaXZfcXJubmRfMTYpKQotI2VuZGlmIC8qICFfX1NITUVESUFfXyAq LwogI2VuZGlmIC8qIExfdWRpdl9xcm5uZF8xNiAqLwpkaWZmIC0tZ2l0IGEv bGliZ2NjL2NvbmZpZy9zaC9saW51eC11bndpbmQuaCBiL2xpYmdjYy9jb25m aWcvc2gvbGludXgtdW53aW5kLmgKaW5kZXggZTM4OWNhYy4uNjUwMDViZSAx MDA2NDQKLS0tIGEvbGliZ2NjL2NvbmZpZy9zaC9saW51eC11bndpbmQuaAor KysgYi9saWJnY2MvY29uZmlnL3NoL2xpbnV4LXVud2luZC5oCkBAIC0zMywx NCArMzMsNiBAQCBzZWUgdGhlIGZpbGVzIENPUFlJTkczIGFuZCBDT1BZSU5H LlJVTlRJTUUgcmVzcGVjdGl2ZWx5LiAgSWYgbm90LCBzZWUKICNpbmNsdWRl IDxzeXMvdWNvbnRleHQuaD4KICNpbmNsdWRlICJpbnNuLWNvbnN0YW50cy5o IgogCi0jIGlmIGRlZmluZWQgKF9fU0g1X18pCi0jZGVmaW5lIFNIX0RXQVJG X0ZSQU1FX0dQMAkwCi0jZGVmaW5lIFNIX0RXQVJGX0ZSQU1FX0ZQMAk3Nwot I2RlZmluZSBTSF9EV0FSRl9GUkFNRV9CVDAJNjgKLSNkZWZpbmUgU0hfRFdB UkZfRlJBTUVfUFJfTUVESUEJMTgKLSNkZWZpbmUgU0hfRFdBUkZfRlJBTUVf U1IJNjUKLSNkZWZpbmUgU0hfRFdBUkZfRlJBTUVfRlBTQ1IJNzYKLSNlbHNl CiAjZGVmaW5lIFNIX0RXQVJGX0ZSQU1FX0dQMAkwCiAjZGVmaW5lIFNIX0RX QVJGX0ZSQU1FX0ZQMAkyNQogI2RlZmluZSBTSF9EV0FSRl9GUkFNRV9YRDAJ ODcKQEAgLTUyLDk2ICs0NCw2IEBAIHNlZSB0aGUgZmlsZXMgQ09QWUlORzMg YW5kIENPUFlJTkcuUlVOVElNRSByZXNwZWN0aXZlbHkuICBJZiBub3QsIHNl ZQogI2RlZmluZSBTSF9EV0FSRl9GUkFNRV9TUgkyMgogI2RlZmluZSBTSF9E V0FSRl9GUkFNRV9GUFVMCTIzCiAjZGVmaW5lIFNIX0RXQVJGX0ZSQU1FX0ZQ U0NSCTI0Ci0jZW5kaWYgLyogZGVmaW5lZCAoX19TSDVfXykgKi8KLQotI2lm IGRlZmluZWQgKF9fU0g1X18pCi0KLSNkZWZpbmUgTURfRkFMTEJBQ0tfRlJB TUVfU1RBVEVfRk9SIHNobWVkaWFfZmFsbGJhY2tfZnJhbWVfc3RhdGUKLQot c3RhdGljIF9VbndpbmRfUmVhc29uX0NvZGUKLXNobWVkaWFfZmFsbGJhY2tf ZnJhbWVfc3RhdGUgKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKmNvbnRleHQs Ci0JCQkgICAgICBfVW53aW5kX0ZyYW1lU3RhdGUgKmZzKQotewotICB1bnNp Z25lZCBjaGFyICpwYyA9IGNvbnRleHQtPnJhOwotICBzdHJ1Y3Qgc2lnY29u dGV4dCAqc2M7Ci0gIGxvbmcgbmV3X2NmYTsKLSAgaW50IGksIHI7Ci0KLSAg LyogbW92aSAweDEwLHI5OyBzaG9yaSAweDc3LHI5OyB0cmFwYQlyOTsgbm9w IChzaWdyZXR1cm4pICAqLwotICAvKiBtb3ZpIDB4MTAscjk7IHNob3JpIDB4 YWQscjk7IHRyYXBhCXI5OyBub3AgKHJ0X3NpZ3JldHVybikgICovCi0gIGlm ICgoKih1bnNpZ25lZCBsb25nICopIChwYy0xKSAgPT0gMHhjYzAwNDA5MCkK LSAgICAgICYmICgqKHVuc2lnbmVkIGxvbmcgKikgKHBjKzMpICA9PSAweGM4 MDFkYzkwKQotICAgICAgJiYgKCoodW5zaWduZWQgbG9uZyAqKSAocGMrNykg ID09IDB4NmM5MWZmZjApCi0gICAgICAmJiAoKih1bnNpZ25lZCBsb25nICop IChwYysxMSkgID09IDB4NmZmMGZmZjApKQotICAgIHNjID0gY29udGV4dC0+ Y2ZhOwotICBlbHNlIGlmICgoKih1bnNpZ25lZCBsb25nICopIChwYy0xKSAg PT0gMHhjYzAwNDA5MCkKLQkgICAmJiAoKih1bnNpZ25lZCBsb25nICopIChw YyszKSAgPT0gMHhjODAyYjQ5MCkKLQkgICAmJiAoKih1bnNpZ25lZCBsb25n ICopIChwYys3KSAgPT0gMHg2YzkxZmZmMCkKLQkgICAmJiAoKih1bnNpZ25l ZCBsb25nICopIChwYysxMSkgID09IDB4NmZmMGZmZjApKQotICAgIHsKLSAg ICAgIHN0cnVjdCBydF9zaWdmcmFtZSB7Ci0Jc2lnaW5mb190ICpwaW5mbzsK LQl2b2lkICpwdWM7Ci0Jc2lnaW5mb190IGluZm87Ci0Jc3RydWN0IHVjb250 ZXh0IHVjOwotICAgICAgfSAqcnRfID0gY29udGV4dC0+Y2ZhOwotICAgICAg LyogVGhlIHZvaWQgKiBjYXN0IGlzIG5lY2Vzc2FyeSB0byBhdm9pZCBhbiBh bGlhc2luZyB3YXJuaW5nLgotICAgICAgICAgVGhlIGFsaWFzaW5nIHdhcm5p bmcgaXMgY29ycmVjdCwgYnV0IHNob3VsZCBub3QgYmUgYSBwcm9ibGVtCi0g ICAgICAgICBiZWNhdXNlIGl0IGRvZXMgbm90IGFsaWFzIGFueXRoaW5nLiAg Ki8KLSAgICAgIHNjID0gKHN0cnVjdCBzaWdjb250ZXh0ICopICh2b2lkICop ICZydF8tPnVjLnVjX21jb250ZXh0OwotICAgIH0KLSAgZWxzZQotICAgIHJl dHVybiBfVVJDX0VORF9PRl9TVEFDSzsKLQotICBuZXdfY2ZhID0gc2MtPnNj X3JlZ3NbMTVdOwotICBmcy0+cmVncy5jZmFfaG93ID0gQ0ZBX1JFR19PRkZT RVQ7Ci0gIGZzLT5yZWdzLmNmYV9yZWcgPSAxNTsKLSAgZnMtPnJlZ3MuY2Zh X29mZnNldCA9IG5ld19jZmEgLSAobG9uZykgY29udGV4dC0+Y2ZhOwotCi0g IGZvciAoaSA9IDA7IGkgPCA2MzsgaSsrKQotICAgIHsKLSAgICAgIGlmIChp ID09IDE1KQotCWNvbnRpbnVlOwotCi0gICAgICBmcy0+cmVncy5yZWdbaV0u aG93ID0gUkVHX1NBVkVEX09GRlNFVDsKLSAgICAgIGZzLT5yZWdzLnJlZ1tp XS5sb2Mub2Zmc2V0Ci0JPSAobG9uZykmKHNjLT5zY19yZWdzW2ldKSAtIG5l d19jZmE7Ci0gICAgfQotCi0gIGZzLT5yZWdzLnJlZ1tTSF9EV0FSRl9GUkFN RV9TUl0uaG93ID0gUkVHX1NBVkVEX09GRlNFVDsKLSAgZnMtPnJlZ3MucmVn W1NIX0RXQVJGX0ZSQU1FX1NSXS5sb2Mub2Zmc2V0Ci0gICAgPSAobG9uZykm KHNjLT5zY19zcikgLSBuZXdfY2ZhOwotCi0gIHIgPSBTSF9EV0FSRl9GUkFN RV9CVDA7Ci0gIGZvciAoaSA9IDA7IGkgPCA4OyBpKyspCi0gICAgewotICAg ICAgZnMtPnJlZ3MucmVnW3IraV0uaG93ID0gUkVHX1NBVkVEX09GRlNFVDsK LSAgICAgIGZzLT5yZWdzLnJlZ1tyK2ldLmxvYy5vZmZzZXQKLQk9IChsb25n KSYoc2MtPnNjX3RyZWdzW2ldKSAtIG5ld19jZmE7Ci0gICAgfQotCi0gIHIg PSBTSF9EV0FSRl9GUkFNRV9GUDA7Ci0gIGZvciAoaSA9IDA7IGkgPCAzMjsg aSsrKQotICAgIHsKLSAgICAgIGZzLT5yZWdzLnJlZ1tyK2ldLmhvdyA9IFJF R19TQVZFRF9PRkZTRVQ7Ci0gICAgICBmcy0+cmVncy5yZWdbcitpXS5sb2Mu b2Zmc2V0Ci0JPSAobG9uZykmKHNjLT5zY19mcHJlZ3NbaV0pIC0gbmV3X2Nm YTsKLSAgICB9Ci0KLSAgZnMtPnJlZ3MucmVnW1NIX0RXQVJGX0ZSQU1FX0ZQ U0NSXS5ob3cgPSBSRUdfU0FWRURfT0ZGU0VUOwotICBmcy0+cmVncy5yZWdb U0hfRFdBUkZfRlJBTUVfRlBTQ1JdLmxvYy5vZmZzZXQKLSAgICA9IChsb25n KSYoc2MtPnNjX2Zwc2NyKSAtIG5ld19jZmE7Ci0KLSAgLyogV2UgdXNlIHRo ZSBzbG90IGZvciB0aGUgemVybyByZWdpc3RlciB0byBzYXZlIHJldHVybiBh ZGRyZXNzLiAgKi8KLSAgZnMtPnJlZ3MucmVnWzYzXS5ob3cgPSBSRUdfU0FW RURfT0ZGU0VUOwotICBmcy0+cmVncy5yZWdbNjNdLmxvYy5vZmZzZXQKLSAg ICA9IChsb25nKSYoc2MtPnNjX3BjKSAtIG5ld19jZmE7Ci0gIGZzLT5yZXRh ZGRyX2NvbHVtbiA9IDYzOwotICBmcy0+c2lnbmFsX2ZyYW1lID0gMTsKLSAg cmV0dXJuIF9VUkNfTk9fUkVBU09OOwotfQotCi0jZWxzZSAvKiBkZWZpbmVk IChfX1NINV9fKSAqLwogCiAjZGVmaW5lIE1EX0ZBTExCQUNLX0ZSQU1FX1NU QVRFX0ZPUiBzaF9mYWxsYmFja19mcmFtZV9zdGF0ZQogCkBAIC0yNTAsNiAr MTUyLDUgQEAgc2hfZmFsbGJhY2tfZnJhbWVfc3RhdGUgKHN0cnVjdCBfVW53 aW5kX0NvbnRleHQgKmNvbnRleHQsCiAgIGZzLT5zaWduYWxfZnJhbWUgPSAx OwogICByZXR1cm4gX1VSQ19OT19SRUFTT047CiB9Ci0jZW5kaWYgLyogZGVm aW5lZCAoX19TSDVfXykgKi8KIAogI2VuZGlmIC8qIGluaGliaXRfbGliYyAq LwpkaWZmIC0tZ2l0IGEvbGliZ2NjL2NvbmZpZy9zaC90LXNoNjQgYi9saWJn Y2MvY29uZmlnL3NoL3Qtc2g2NApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggZmE5OTUwZS4uMDAwMDAwMAotLS0gYS9saWJnY2MvY29uZmlnL3No L3Qtc2g2NAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotTElCMUFT TUZVTkNTID0gXAotICBfc2RpdnNpMyBfc2RpdnNpM19pNCBfdWRpdnNpMyBf dWRpdnNpM19pNCBfc2V0X2Zwc2NyIFwKLSAgX3NoY29tcGFjdF9jYWxsX3Ry YW1wb2xpbmUgX3NoY29tcGFjdF9yZXR1cm5fdHJhbXBvbGluZSBcCi0gIF9z aGNvbXBhY3RfaW5jb21pbmdfYXJncyBfaWNfaW52YWxpZGF0ZSBfbmVzdGVk X3RyYW1wb2xpbmUgXAotICBfcHVzaF9wb3Bfc2htZWRpYV9yZWdzIFwKLSAg X3VkaXZkaTMgX2RpdmRpMyBfdW1vZGRpMyBfbW9kZGkzIF9kaXZfdGFibGUK --=-DKe2w3XL8Ofl8YoBaK4L--