From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 37083 invoked by alias); 5 Feb 2018 12:34:23 -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 36996 invoked by uid 89); 5 Feb 2018 12:34:23 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=(unknown), olga, Olga, Hx-languages-length:2026 X-HELO: mga06.intel.com Received: from mga06.intel.com (HELO mga06.intel.com) (134.134.136.31) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 05 Feb 2018 12:34:21 +0000 X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Feb 2018 04:34:19 -0800 X-ExtLoop1: 1 Received: from irsmsx154.ger.corp.intel.com ([163.33.192.96]) by fmsmga001.fm.intel.com with ESMTP; 05 Feb 2018 04:34:18 -0800 Received: from irsmsx103.ger.corp.intel.com ([169.254.3.197]) by IRSMSX154.ger.corp.intel.com ([169.254.12.108]) with mapi id 14.03.0319.002; Mon, 5 Feb 2018 12:34:17 +0000 From: "Makhotina, Olga" To: "'gcc-patches@gcc.gnu.org'" CC: "Makhotina, Olga" , 'Kirill Yukhin' Subject: [patch][i386] Adding pconfig, wbnoinvd and wbinvd intrinsics Date: Mon, 05 Feb 2018 12:34:00 -0000 Message-ID: dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNzFiN2RiNjEtNWU3ZS00NTk3LWFlZGQtZmMwNGNiMzQ1MjM1IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJ6N2FWOFNoZklRcDU1em8rNVhPODc4YzQwUjlSS0VJTGNEXC9qNDhWeldza2FSdVk1ZzRLenhKREpTNm1mcEl6cSJ9 Content-Type: multipart/mixed; boundary="_002_DC8A343E1B673F4AA224650A1F844CCD28271CIRSMSX103gercorpi_" MIME-Version: 1.0 X-SW-Source: 2018-02/txt/msg00172.txt.bz2 --_002_DC8A343E1B673F4AA224650A1F844CCD28271CIRSMSX103gercorpi_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-length: 2008 Hi, This patch adds new intrinsics: pconfig, wbnoinvd and wbinvd. 05.02.2018 Olga Makhotina=A0 gcc/ * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCONFIG_SET, OPTION_MASK_ISA_PCONFIG_UNSET, OPTION_MASK_ISA_WBNOINVD_SET, OPTION_MASK_ISA_WBNOINVD_UNSET): New definitions. (ix86_handle_option): Handle -mpconfig and -mwbnoinvd. * config.gcc (pconfigintrin.h, wbnoinvdintrin.h) : Add headers. * config/i386/cpuid.h (bit_PCONFIG, bit_WBNOINVD): New. * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mpconfig and -mwbnoinvd. * config/i386/i386-builtin.def (__builtin_ia32_wbnoinvd, __builtin_ia32_wbinvd): New builtins. (SPECIAL_ARGS2): New. * config/i386/i386-c.c (__WBNOINVD__, __PCONFIG__): New. (SPECIAL_ARGS2): New. * config/i386/i386.c (ix86_target_string): Add -mpconfig and -mwbnoinvd. (ix86_valid_target_attribute_inner_p): Ditto. (ix86_init_mmx_sse_builtins): Add special_args2. * config/i386/i386.h (TARGET_PCONFIG, TARGET_PCONFIG_P, TARGET_WBNOINVD, TARGET_WBNOINVD_P): New. * config/i386/i386.md (UNSPECV_WBINVD, UNSPECV_WBNOINVD): New. (define_insn "wbinvd", define_insn "wbnoinvd"): New. * config/i386/i386.opt: Add -mpconfig and -mwbnoinvd. * config/i386/immintrin.h (_wbinvd): New intrinsic. * config/i386/sgxintrin.h (_enclv_u32): Ditto. * config/i386/pconfigintrin.h: New file. * config/i386/wbnoinvdintrin.h: Ditto. * config/i386/x86intrin.h: Add headers pconfigintrin.h and wbnoinvdintrin.= h. * doc/invoke.texi (-mpconfig, -mwbnoinvd): New. gcc/testsuite/ * g++.dg/other/i386-2.C: Add -mpconfig and -mwbnoinvd. * g++.dg/other/i386-3.C: Ditto. * gcc.target/i386/sse-12.c: Ditto. * gcc.target/i386/sse-13.c: Ditto. * gcc.target/i386/sse-14.c: Ditto. * gcc.target/i386/sgx.c (_enclv_u32): New tests. * gcc.target/i386/sse-23.c: Add pconfig and wbnoinvd. * gcc.target/i386/wbinvd-1.c: New test. * gcc.target/i386/wbnoinvd-1.c: Ditto. * gcc.target/i386/pconfig-1.c: Ditto. Is it ok for trunk? Thanks, Olga. --_002_DC8A343E1B673F4AA224650A1F844CCD28271CIRSMSX103gercorpi_ Content-Type: application/octet-stream; name="0001-patch.patch" Content-Description: 0001-patch.patch Content-Disposition: attachment; filename="0001-patch.patch"; size=32023; creation-date="Mon, 05 Feb 2018 12:31:44 GMT"; modification-date="Mon, 05 Feb 2018 12:31:44 GMT" Content-Transfer-Encoding: base64 Content-length: 43412 RnJvbSA3ZjU1MzdhZjUxZDBhOGU3Y2M2ZjMxMDM0OTRlOWQ3OGMyNDk2MWUx IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBPbGdhIE1ha2hvdGlu YSA8b2xnYS5tYWtob3RpbmFAaW50ZWwuY29tPgpEYXRlOiBNb24sIDUgRmVi IDIwMTggMTQ6Mzg6MTIgKzAzMDAKU3ViamVjdDogW1BBVENIXSBwYXRjaAoK LS0tCiBnY2MvY29tbW9uL2NvbmZpZy9pMzg2L2kzODYtY29tbW9uLmMgICAg ICAgfCAzMCArKysrKysrKysrKysrKysrCiBnY2MvY29uZmlnLmdjYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKy0tCiBnY2MvY29uZmln L2kzODYvY3B1aWQuaCAgICAgICAgICAgICAgICAgICAgfCAgMyArLQogZ2Nj L2NvbmZpZy9pMzg2L2RyaXZlci1pMzg2LmMgICAgICAgICAgICAgIHwgIDYg KysrKwogZ2NjL2NvbmZpZy9pMzg2L2kzODYtYnVpbHRpbi5kZWYgICAgICAg ICAgIHwgMTAgKysrKystCiBnY2MvY29uZmlnL2kzODYvaTM4Ni1jLmMgICAg ICAgICAgICAgICAgICAgfCAgNCArKysKIGdjYy9jb25maWcvaTM4Ni9pMzg2 LmMgICAgICAgICAgICAgICAgICAgICB8IDMyICsrKysrKysrKysrKysrKyst CiBnY2MvY29uZmlnL2kzODYvaTM4Ni5oICAgICAgICAgICAgICAgICAgICAg fCAgNCArKysKIGdjYy9jb25maWcvaTM4Ni9pMzg2Lm1kICAgICAgICAgICAg ICAgICAgICB8IDE2ICsrKysrKysrKwogZ2NjL2NvbmZpZy9pMzg2L2kzODYu b3B0ICAgICAgICAgICAgICAgICAgIHwgIDggKysrKysKIGdjYy9jb25maWcv aTM4Ni9pbW1pbnRyaW4uaCAgICAgICAgICAgICAgICB8ICA3ICsrKysKIGdj Yy9jb25maWcvaTM4Ni9wY29uZmlnaW50cmluLmggICAgICAgICAgICB8IDU1 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZ2NjL2NvbmZpZy9p Mzg2L3NneGludHJpbi5oICAgICAgICAgICAgICAgIHwgNDUgKysrKysrKysr KysrKysrKysrKysrKysrCiBnY2MvY29uZmlnL2kzODYvd2Jub2ludmRpbnRy aW4uaCAgICAgICAgICAgfCAyNiArKysrKysrKysrKysrKwogZ2NjL2NvbmZp Zy9pMzg2L3g4NmludHJpbi5oICAgICAgICAgICAgICAgIHwgIDQgKysrCiBn Y2MvZG9jL2ludm9rZS50ZXhpICAgICAgICAgICAgICAgICAgICAgICAgfCAg OCArKysrLQogZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvb3RoZXIvaTM4Ni0yLkMg ICAgICAgIHwgIDIgKy0KIGdjYy90ZXN0c3VpdGUvZysrLmRnL290aGVyL2kz ODYtMy5DICAgICAgICB8ICAyICstCiBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvaTM4Ni9wY29uZmlnLTEuYyAgfCAyMCArKysrKysrKysrKwogZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc2d4LmMgICAgICAgIHwgIDcgKysr KwogZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTEyLmMgICAg IHwgIDIgKy0KIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZS0x My5jICAgICB8ICAyICstCiBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4 Ni9zc2UtMTQuYyAgICAgfCAgMiArLQogZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYvc3NlLTIzLmMgICAgIHwgIDIgKy0KIGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9pMzg2L3diaW52ZC0xLmMgICB8IDExICsrKysrKwogZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvd2Jub2ludmQtMS5jIHwgMTAg KysrKysrCiAyNiBmaWxlcyBjaGFuZ2VkLCAzMTIgaW5zZXJ0aW9ucygrKSwg MTIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL2NvbmZp Zy9pMzg2L3Bjb25maWdpbnRyaW4uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdj Yy9jb25maWcvaTM4Ni93Ym5vaW52ZGludHJpbi5oCiBjcmVhdGUgbW9kZSAx MDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcGNvbmZpZy0x LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvaTM4Ni93YmludmQtMS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvd2Jub2ludmQtMS5jCgpkaWZmIC0t Z2l0IGEvZ2NjL2NvbW1vbi9jb25maWcvaTM4Ni9pMzg2LWNvbW1vbi5jIGIv Z2NjL2NvbW1vbi9jb25maWcvaTM4Ni9pMzg2LWNvbW1vbi5jCmluZGV4IDRm ZGQ0ODkuLjdlNDkyODkgMTAwNjQ0Ci0tLSBhL2djYy9jb21tb24vY29uZmln L2kzODYvaTM4Ni1jb21tb24uYworKysgYi9nY2MvY29tbW9uL2NvbmZpZy9p Mzg2L2kzODYtY29tbW9uLmMKQEAgLTEyNSw2ICsxMjUsOCBAQCBhbG9uZyB3 aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQog I2RlZmluZSBPUFRJT05fTUFTS19JU0FfQUJNX1NFVCBcCiAgIChPUFRJT05f TUFTS19JU0FfQUJNIHwgT1BUSU9OX01BU0tfSVNBX1BPUENOVCkKIAorI2Rl ZmluZSBPUFRJT05fTUFTS19JU0FfUENPTkZJR19TRVQgT1BUSU9OX01BU0tf SVNBX1BDT05GSUcKKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX1dCTk9JTlZE X1NFVCBPUFRJT05fTUFTS19JU0FfV0JOT0lOVkQKICNkZWZpbmUgT1BUSU9O X01BU0tfSVNBX1NHWF9TRVQgT1BUSU9OX01BU0tfSVNBX1NHWAogI2RlZmlu ZSBPUFRJT05fTUFTS19JU0FfQk1JX1NFVCBPUFRJT05fTUFTS19JU0FfQk1J CiAjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9CTUkyX1NFVCBPUFRJT05fTUFT S19JU0FfQk1JMgpAQCAtMjQxLDYgKzI0Myw4IEBAIGFsb25nIHdpdGggR0ND OyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlCiAjZGVmaW5l IE9QVElPTl9NQVNLX0lTQV9TSEFfVU5TRVQgT1BUSU9OX01BU0tfSVNBX1NI QQogI2RlZmluZSBPUFRJT05fTUFTS19JU0FfUENMTVVMX1VOU0VUIE9QVElP Tl9NQVNLX0lTQV9QQ0xNVUwKICNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0FC TV9VTlNFVCBPUFRJT05fTUFTS19JU0FfQUJNCisjZGVmaW5lIE9QVElPTl9N QVNLX0lTQV9QQ09ORklHX1VOU0VUIE9QVElPTl9NQVNLX0lTQV9QQ09ORklH CisjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9XQk5PSU5WRF9VTlNFVCBPUFRJ T05fTUFTS19JU0FfV0JOT0lOVkQKICNkZWZpbmUgT1BUSU9OX01BU0tfSVNB X1NHWF9VTlNFVCBPUFRJT05fTUFTS19JU0FfU0dYCiAjZGVmaW5lIE9QVElP Tl9NQVNLX0lTQV9CTUlfVU5TRVQgT1BUSU9OX01BU0tfSVNBX0JNSQogI2Rl ZmluZSBPUFRJT05fTUFTS19JU0FfQk1JMl9VTlNFVCBPUFRJT05fTUFTS19J U0FfQk1JMgpAQCAtNjkwLDYgKzY5NCwzMiBAQCBpeDg2X2hhbmRsZV9vcHRp b24gKHN0cnVjdCBnY2Nfb3B0aW9ucyAqb3B0cywKIAl9CiAgICAgICByZXR1 cm4gdHJ1ZTsKIAorICAgIGNhc2UgT1BUX21wY29uZmlnOgorICAgICAgaWYg KHZhbHVlKQorCXsKKwkgIG9wdHMtPnhfaXg4Nl9pc2FfZmxhZ3MyIHw9IE9Q VElPTl9NQVNLX0lTQV9QQ09ORklHX1NFVDsKKwkgIG9wdHMtPnhfaXg4Nl9p c2FfZmxhZ3MyX2V4cGxpY2l0IHw9IE9QVElPTl9NQVNLX0lTQV9QQ09ORklH X1NFVDsKKwl9CisgICAgICBlbHNlCisJeworCSAgb3B0cy0+eF9peDg2X2lz YV9mbGFnczIgJj0gfk9QVElPTl9NQVNLX0lTQV9QQ09ORklHX1VOU0VUOwor CSAgb3B0cy0+eF9peDg2X2lzYV9mbGFnczJfZXhwbGljaXQgfD0gT1BUSU9O X01BU0tfSVNBX1BDT05GSUdfVU5TRVQ7CisJfQorICAgICAgcmV0dXJuIHRy dWU7CisKKyAgICBjYXNlIE9QVF9td2Jub2ludmQ6CisgICAgICBpZiAodmFs dWUpCisJeworCSAgb3B0cy0+eF9peDg2X2lzYV9mbGFnczIgfD0gT1BUSU9O X01BU0tfSVNBX1dCTk9JTlZEX1NFVDsKKwkgIG9wdHMtPnhfaXg4Nl9pc2Ff ZmxhZ3MyX2V4cGxpY2l0IHw9IE9QVElPTl9NQVNLX0lTQV9XQk5PSU5WRF9T RVQ7CisJfQorICAgICAgZWxzZQorCXsKKwkgIG9wdHMtPnhfaXg4Nl9pc2Ff ZmxhZ3MyICY9IH5PUFRJT05fTUFTS19JU0FfV0JOT0lOVkRfVU5TRVQ7CisJ ICBvcHRzLT54X2l4ODZfaXNhX2ZsYWdzMl9leHBsaWNpdCB8PSBPUFRJT05f TUFTS19JU0FfV0JOT0lOVkRfVU5TRVQ7CisJfQorICAgICAgcmV0dXJuIHRy dWU7CisKICAgICBjYXNlIE9QVF9tYXZ4NTEyZHE6CiAgICAgICBpZiAodmFs dWUpCiAJewpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy5nY2MgYi9nY2MvY29u ZmlnLmdjYwppbmRleCBlYzY4MjJiLi43ZjVhNTA5IDEwMDY0NAotLS0gYS9n Y2MvY29uZmlnLmdjYworKysgYi9nY2MvY29uZmlnLmdjYwpAQCAtMzgyLDcg KzM4Miw4IEBAIGlbMzQ1NjddODYtKi0qKQogCQkgICAgICAgZ2ZuaWludHJp bi5oIGNldC5oIGF2eDUxMnZibWkyaW50cmluLmgKIAkJICAgICAgIGF2eDUx MnZibWkydmxpbnRyaW4uaCBhdng1MTJ2bm5paW50cmluLmgKIAkJICAgICAg IGF2eDUxMnZubml2bGludHJpbi5oIHZhZXNpbnRyaW4uaCB2cGNsbXVscWRx aW50cmluLmgKLQkJICAgICAgIGF2eDUxMnZwb3BjbnRkcXZsaW50cmluLmgg YXZ4NTEyYml0YWxnaW50cmluLmgiCisJCSAgICAgICBhdng1MTJ2cG9wY250 ZHF2bGludHJpbi5oIGF2eDUxMmJpdGFsZ2ludHJpbi5oCisJCSAgICAgICBw Y29uZmlnaW50cmluLmggd2Jub2ludmRpbnRyaW4uaCIKIAk7OwogeDg2XzY0 LSotKikKIAljcHVfdHlwZT1pMzg2CkBAIC00MTAsNyArNDExLDggQEAgeDg2 XzY0LSotKikKIAkJICAgICAgIGdmbmlpbnRyaW4uaCBjZXQuaCBhdng1MTJ2 Ym1pMmludHJpbi5oCiAJCSAgICAgICBhdng1MTJ2Ym1pMnZsaW50cmluLmgg YXZ4NTEydm5uaWludHJpbi5oCiAJCSAgICAgICBhdng1MTJ2bm5pdmxpbnRy aW4uaCB2YWVzaW50cmluLmggdnBjbG11bHFkcWludHJpbi5oCi0JCSAgICAg ICBhdng1MTJ2cG9wY250ZHF2bGludHJpbi5oIGF2eDUxMmJpdGFsZ2ludHJp bi5oIgorCQkgICAgICAgYXZ4NTEydnBvcGNudGRxdmxpbnRyaW4uaCBhdng1 MTJiaXRhbGdpbnRyaW4uaAorCQkgICAgICAgcGNvbmZpZ2ludHJpbi5oIHdi bm9pbnZkaW50cmluLmgiCiAJOzsKIGlhNjQtKi0qKQogCWV4dHJhX2hlYWRl cnM9aWE2NGludHJpbi5oCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2kzODYv Y3B1aWQuaCBiL2djYy9jb25maWcvaTM4Ni9jcHVpZC5oCmluZGV4IGFhOTAz NjMuLjQwOTZhMGIgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvaTM4Ni9jcHVp ZC5oCisrKyBiL2djYy9jb25maWcvaTM4Ni9jcHVpZC5oCkBAIC02Nyw2ICs2 Nyw3IEBACiAKIC8qICVlYnggICovCiAjZGVmaW5lIGJpdF9DTFpFUk8JKDEg PDwgMCkKKyNkZWZpbmUgYml0X1dCTk9JTlZECSgxIDw8IDkpCiAKIC8qIEV4 dGVuZGVkIEZlYXR1cmVzICglZWF4ID09IDcpICovCiAvKiAlZWJ4ICovCkBA IC0xMTEsNyArMTEyLDcgQEAKICNkZWZpbmUgYml0X0FWWDUxMjRWTk5JVyAo MSA8PCAyKQogI2RlZmluZSBiaXRfQVZYNTEyNEZNQVBTICgxIDw8IDMpCiAj ZGVmaW5lIGJpdF9JQlQJKDEgPDwgMjApCi0KKyNkZWZpbmUgYml0X1BDT05G SUcJKDEgPDwgMTgpCiAvKiBYRkVBVFVSRV9FTkFCTEVEX01BU0sgcmVnaXN0 ZXIgYml0cyAoJWVheCA9PSAxMywgJWVjeCA9PSAwKSAqLwogI2RlZmluZSBi aXRfQk5EUkVHUyAgICAgKDEgPDwgMykKICNkZWZpbmUgYml0X0JORENTUiAg ICAgICgxIDw8IDQpCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2kzODYvZHJp dmVyLWkzODYuYyBiL2djYy9jb25maWcvaTM4Ni9kcml2ZXItaTM4Ni5jCmlu ZGV4IDViMjA1NzUuLmM4MDk1NmUgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcv aTM4Ni9kcml2ZXItaTM4Ni5jCisrKyBiL2djYy9jb25maWcvaTM4Ni9kcml2 ZXItaTM4Ni5jCkBAIC00MDcsNiArNDA3LDcgQEAgY29uc3QgY2hhciAqaG9z dF9kZXRlY3RfbG9jYWxfY3B1IChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFy Z3YpCiAgIHVuc2lnbmVkIGludCBoYXNfZm1hID0gMCwgaGFzX2ZtYTQgPSAw LCBoYXNfeG9wID0gMDsKICAgdW5zaWduZWQgaW50IGhhc19ibWkgPSAwLCBo YXNfYm1pMiA9IDAsIGhhc190Ym0gPSAwLCBoYXNfbHpjbnQgPSAwOwogICB1 bnNpZ25lZCBpbnQgaGFzX2hsZSA9IDAsIGhhc19ydG0gPSAwLCBoYXNfc2d4 ID0gMDsKKyAgdW5zaWduZWQgaW50IGhhc19wY29uZmlnID0gMCwgaGFzX3di bm9pbnZkID0gMDsKICAgdW5zaWduZWQgaW50IGhhc19yZHJuZCA9IDAsIGhh c19mMTZjID0gMCwgaGFzX2ZzZ3NiYXNlID0gMDsKICAgdW5zaWduZWQgaW50 IGhhc19yZHNlZWQgPSAwLCBoYXNfcHJmY2h3ID0gMCwgaGFzX2FkeCA9IDA7 CiAgIHVuc2lnbmVkIGludCBoYXNfb3N4c2F2ZSA9IDAsIGhhc19meHNyID0g MCwgaGFzX3hzYXZlID0gMCwgaGFzX3hzYXZlb3B0ID0gMDsKQEAgLTUyMyw2 ICs1MjQsNyBAQCBjb25zdCBjaGFyICpob3N0X2RldGVjdF9sb2NhbF9jcHUg KGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndikKIAogICAgICAgaGFzX3No c3RrID0gZWN4ICYgYml0X1NIU1RLOwogICAgICAgaGFzX2lidCA9IGVkeCAm IGJpdF9JQlQ7CisgICAgICBoYXNfcGNvbmZpZyA9IGVkeCAmIGJpdF9QQ09O RklHOwogICAgIH0KIAogICBpZiAobWF4X2xldmVsID49IDEzKQpAQCAtNTYx LDYgKzU2Myw3IEBAIGNvbnN0IGNoYXIgKmhvc3RfZGV0ZWN0X2xvY2FsX2Nw dSAoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KQogICAgIHsKICAgICAg IF9fY3B1aWQgKDB4ODAwMDAwMDgsIGVheCwgZWJ4LCBlY3gsIGVkeCk7CiAg ICAgICBoYXNfY2x6ZXJvID0gZWJ4ICYgYml0X0NMWkVSTzsKKyAgICAgIGhh c193Ym5vaW52ZCA9IGVieCAmIGJpdF9XQk5PSU5WRDsKICAgICB9CiAKICAg LyogR2V0IFhDUl9YRkVBVFVSRV9FTkFCTEVEX01BU0sgcmVnaXN0ZXIgd2l0 aCB4Z2V0YnYuICAqLwpAQCAtMTAzOSw2ICsxMDQyLDggQEAgY29uc3QgY2hh ciAqaG9zdF9kZXRlY3RfbG9jYWxfY3B1IChpbnQgYXJnYywgY29uc3QgY2hh ciAqKmFyZ3YpCiAgICAgICBjb25zdCBjaGFyICpmbWE0ID0gaGFzX2ZtYTQg PyAiIC1tZm1hNCIgOiAiIC1tbm8tZm1hNCI7CiAgICAgICBjb25zdCBjaGFy ICp4b3AgPSBoYXNfeG9wID8gIiAtbXhvcCIgOiAiIC1tbm8teG9wIjsKICAg ICAgIGNvbnN0IGNoYXIgKmJtaSA9IGhhc19ibWkgPyAiIC1tYm1pIiA6ICIg LW1uby1ibWkiOworICAgICAgY29uc3QgY2hhciAqcGNvbmZpZyA9IGhhc19w Y29uZmlnID8gIiAtbXBjb25maWciIDogIiAtbW5vLXBjb25maWciOworICAg ICAgY29uc3QgY2hhciAqd2Jub2ludmQgPSBoYXNfd2Jub2ludmQgPyAiIC1t d2Jub2ludmQiIDogIiAtbW5vLXdibm9pbnZkIjsKICAgICAgIGNvbnN0IGNo YXIgKnNneCA9IGhhc19zZ3ggPyAiIC1tc2d4IiA6ICIgLW1uby1zZ3giOwog ICAgICAgY29uc3QgY2hhciAqYm1pMiA9IGhhc19ibWkyID8gIiAtbWJtaTIi IDogIiAtbW5vLWJtaTIiOwogICAgICAgY29uc3QgY2hhciAqdGJtID0gaGFz X3RibSA/ICIgLW10Ym0iIDogIiAtbW5vLXRibSI7CkBAIC0xMDg5LDYgKzEw OTQsNyBAQCBjb25zdCBjaGFyICpob3N0X2RldGVjdF9sb2NhbF9jcHUgKGlu dCBhcmdjLCBjb25zdCBjaGFyICoqYXJndikKICAgICAgIG9wdGlvbnMgPSBj b25jYXQgKG9wdGlvbnMsIG1teCwgbW14M2Rub3csIHNzZSwgc3NlMiwgc3Nl Mywgc3NzZTMsCiAJCQlzc2U0YSwgY3gxNiwgc2FoZiwgbW92YmUsIGFlcywg c2hhLCBwY2xtdWwsCiAJCQlwb3BjbnQsIGFibSwgbHdwLCBmbWEsIGZtYTQs IHhvcCwgYm1pLCBzZ3gsIGJtaTIsCisJCQlwY29uZmlnLCB3Ym5vaW52ZCwK IAkJCXRibSwgYXZ4LCBhdngyLCBzc2U0XzIsIHNzZTRfMSwgbHpjbnQsIHJ0 bSwKIAkJCWhsZSwgcmRybmQsIGYxNmMsIGZzZ3NiYXNlLCByZHNlZWQsIHBy ZmNodywgYWR4LAogCQkJZnhzciwgeHNhdmUsIHhzYXZlb3B0LCBhdng1MTJm LCBhdng1MTJlciwKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni9pMzg2 LWJ1aWx0aW4uZGVmIGIvZ2NjL2NvbmZpZy9pMzg2L2kzODYtYnVpbHRpbi5k ZWYKaW5kZXggMGI4MzQ3Mi4uYWI1ZTVjMiAxMDA2NDQKLS0tIGEvZ2NjL2Nv bmZpZy9pMzg2L2kzODYtYnVpbHRpbi5kZWYKKysrIGIvZ2NjL2NvbmZpZy9p Mzg2L2kzODYtYnVpbHRpbi5kZWYKQEAgLTQxNSw2ICs0MTUsOCBAQCBCREVT QyAoT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZCTUkyIHwgT1BUSU9OX01BU0tf SVNBX0FWWDUxMlZMLCBDT0RFX0ZPUl9leHBhbmR2MQogQkRFU0MgKE9QVElP Tl9NQVNLX0lTQV9BVlg1MTJWQk1JMiB8IE9QVElPTl9NQVNLX0lTQV9BVlg1 MTJWTCwgQ09ERV9GT1JfZXhwYW5kdjhoaV9tYXNrLCAiX19idWlsdGluX2lh MzJfZXhwYW5kbG9hZGhpMTI4X21hc2siLCBJWDg2X0JVSUxUSU5fUEVYUEFO RFdMT0FEMTI4LCBVTktOT1dOLCAoaW50KSBWOEhJX0ZUWVBFX1BDVjhISV9W OEhJX1VRSSkKIEJERVNDIChPUFRJT05fTUFTS19JU0FfQVZYNTEyVkJNSTIg fCBPUFRJT05fTUFTS19JU0FfQVZYNTEyVkwsIENPREVfRk9SX2V4cGFuZHY4 aGlfbWFza3osICJfX2J1aWx0aW5faWEzMl9leHBhbmRsb2FkaGkxMjhfbWFz a3oiLCBJWDg2X0JVSUxUSU5fUEVYUEFORFdMT0FEMTI4WiwgVU5LTk9XTiwg KGludCkgVjhISV9GVFlQRV9QQ1Y4SElfVjhISV9VUUkpCiAKK0JERVNDICgw LCBDT0RFX0ZPUl93YmludmQsICJfX2J1aWx0aW5faWEzMl93YmludmQiLCBJ WDg2X0JVSUxUSU5fV0JJTlZELCBVTktOT1dOLCAoaW50KSBWT0lEX0ZUWVBF X1ZPSUQpCisKIEJERVNDX0VORCAoU1BFQ0lBTF9BUkdTLCBBUkdTKQogCiAv KiBCdWlsdGlucyB3aXRoIHZhcmlhYmxlIG51bWJlciBvZiBhcmd1bWVudHMu ICAqLwpAQCAtMjgzNSw3ICsyODM3LDEzIEBAIEJERVNDIChPUFRJT05fTUFT S19JU0FfVkFFUywgQ09ERV9GT1JfdmFlc2VuY2xhc3RfdjE2cWksICJfX2J1 aWx0aW5faWEzMl92YWVzZW5jCiBCREVTQyAoT1BUSU9OX01BU0tfSVNBX1ZB RVMsIENPREVfRk9SX3ZhZXNlbmNsYXN0X3YzMnFpLCAiX19idWlsdGluX2lh MzJfdmFlc2VuY2xhc3RfdjMycWkiLCBJWDg2X0JVSUxUSU5fVkFFU0VOQ0xB U1QzMiwgVU5LTk9XTiwgKGludCkgVjMyUUlfRlRZUEVfVjMyUUlfVjMyUUkp CiBCREVTQyAoT1BUSU9OX01BU0tfSVNBX1ZBRVMsIENPREVfRk9SX3ZhZXNl bmNsYXN0X3Y2NHFpLCAiX19idWlsdGluX2lhMzJfdmFlc2VuY2xhc3RfdjY0 cWkiLCBJWDg2X0JVSUxUSU5fVkFFU0VOQ0xBU1Q2NCwgVU5LTk9XTiwgKGlu dCkgVjY0UUlfRlRZUEVfVjY0UUlfVjY0UUkpCiAKLUJERVNDX0VORCAoQVJH UzIsIE1QWCkKK0JERVNDX0VORCAoQVJHUzIsIFNQRUNJQUxfQVJHUzIpCisK K0JERVNDX0ZJUlNUIChzcGVjaWFsX2FyZ3MyLCBTUEVDSUFMX0FSR1MyLAor CU9QVElPTl9NQVNLX0lTQV9XQk5PSU5WRCwgQ09ERV9GT1Jfd2Jub2ludmQs ICJfX2J1aWx0aW5faWEzMl93Ym5vaW52ZCIsIElYODZfQlVJTFRJTl9XQk5P SU5WRCwgVU5LTk9XTiwgKGludCkgVk9JRF9GVFlQRV9WT0lEKQorCitCREVT Q19FTkQgKFNQRUNJQUxfQVJHUzIsIE1QWCkKKwogCiAvKiBCdWlsdGlucyBm b3IgTVBYLiAgKi8KIEJERVNDX0ZJUlNUIChtcHgsIE1QWCwKZGlmZiAtLWdp dCBhL2djYy9jb25maWcvaTM4Ni9pMzg2LWMuYyBiL2djYy9jb25maWcvaTM4 Ni9pMzg2LWMuYwppbmRleCA3OGRkNjU3Li5kYjlkNDA2IDEwMDY0NAotLS0g YS9nY2MvY29uZmlnL2kzODYvaTM4Ni1jLmMKKysrIGIvZ2NjL2NvbmZpZy9p Mzg2L2kzODYtYy5jCkBAIC0zNDYsNiArMzQ2LDggQEAgaXg4Nl90YXJnZXRf bWFjcm9zX2ludGVybmFsIChIT1NUX1dJREVfSU5UIGlzYV9mbGFnLAogICAg ICAgOwogICAgIH0KIAorICBpZiAoaXNhX2ZsYWcyICYgT1BUSU9OX01BU0tf SVNBX1dCTk9JTlZEKQorICAgIGRlZl9vcl91bmRlZiAocGFyc2VfaW4sICJf X1dCTk9JTlZEX18iKTsKICAgaWYgKGlzYV9mbGFnICYgT1BUSU9OX01BU0tf SVNBX01NWCkKICAgICBkZWZfb3JfdW5kZWYgKHBhcnNlX2luLCAiX19NTVhf XyIpOwogICBpZiAoaXNhX2ZsYWcgJiBPUFRJT05fTUFTS19JU0FfM0ROT1cp CkBAIC0zOTgsNiArNDAwLDggQEAgaXg4Nl90YXJnZXRfbWFjcm9zX2ludGVy bmFsIChIT1NUX1dJREVfSU5UIGlzYV9mbGFnLAogICAgIGRlZl9vcl91bmRl ZiAocGFyc2VfaW4sICJfX0FWWDUxMlZCTUkyX18iKTsKICAgaWYgKGlzYV9m bGFnICYgT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZOTkkpCiAgICAgZGVmX29y X3VuZGVmIChwYXJzZV9pbiwgIl9fQVZYNTEyVk5OSV9fIik7CisgIGlmIChp c2FfZmxhZzIgJiBPUFRJT05fTUFTS19JU0FfUENPTkZJRykKKyAgICBkZWZf b3JfdW5kZWYgKHBhcnNlX2luLCAiX19QQ09ORklHX18iKTsKICAgaWYgKGlz YV9mbGFnMiAmIE9QVElPTl9NQVNLX0lTQV9TR1gpCiAgICAgZGVmX29yX3Vu ZGVmIChwYXJzZV9pbiwgIl9fU0dYX18iKTsKICAgaWYgKGlzYV9mbGFnMiAm IE9QVElPTl9NQVNLX0lTQV9BVlg1MTI0Rk1BUFMpCmRpZmYgLS1naXQgYS9n Y2MvY29uZmlnL2kzODYvaTM4Ni5jIGIvZ2NjL2NvbmZpZy9pMzg2L2kzODYu YwppbmRleCAzNjUzZGRkLi4zYmMxZGVkIDEwMDY0NAotLS0gYS9nY2MvY29u ZmlnL2kzODYvaTM4Ni5jCisrKyBiL2djYy9jb25maWcvaTM4Ni9pMzg2LmMK QEAgLTI3NjYsNiArMjc2Niw4IEBAIGl4ODZfdGFyZ2V0X3N0cmluZyAoSE9T VF9XSURFX0lOVCBpc2EsIEhPU1RfV0lERV9JTlQgaXNhMiwKICAgICB7ICIt bW1weCIsCQlPUFRJT05fTUFTS19JU0FfTVBYIH0sCiAgICAgeyAiLW12YWVz IiwJCU9QVElPTl9NQVNLX0lTQV9WQUVTIH0sCiAgICAgeyAiLW1yZHBpZCIs CU9QVElPTl9NQVNLX0lTQV9SRFBJRCB9LAorICAgIHsgIi1tcGNvbmZpZyIs CU9QVElPTl9NQVNLX0lTQV9QQ09ORklHIH0sCisgICAgeyAiLW13Ym5vaW52 ZCIsICAgICBPUFRJT05fTUFTS19JU0FfV0JOT0lOVkQgfSwKICAgICB7ICIt bXNneCIsCQlPUFRJT05fTUFTS19JU0FfU0dYIH0sCiAgICAgeyAiLW1hdng1 MTI0dm5uaXciLCBPUFRJT05fTUFTS19JU0FfQVZYNTEyNFZOTklXIH0sCiAg ICAgeyAiLW1hdng1MTI0Zm1hcHMiLCBPUFRJT05fTUFTS19JU0FfQVZYNTEy NEZNQVBTIH0sCkBAIC01MjgwLDYgKzUyODIsOCBAQCBpeDg2X3ZhbGlkX3Rh cmdldF9hdHRyaWJ1dGVfaW5uZXJfcCAodHJlZSBhcmdzLCBjaGFyICpwX3N0 cmluZ3NbXSwKICAgICBpbnQgbWFzazsKICAgfSBhdHRyc1tdID0gewogICAg IC8qIGlzYSBvcHRpb25zICovCisgICAgSVg4Nl9BVFRSX0lTQSAoInBjb25m aWciLAlPUFRfbXBjb25maWcpLAorICAgIElYODZfQVRUUl9JU0EgKCJ3Ym5v aW52ZCIsCU9QVF9td2Jub2ludmQpLAogICAgIElYODZfQVRUUl9JU0EgKCJz Z3giLAlPUFRfbXNneCksCiAgICAgSVg4Nl9BVFRSX0lTQSAoImF2eDUxMjRm bWFwcyIsIE9QVF9tYXZ4NTEyNGZtYXBzKSwKICAgICBJWDg2X0FUVFJfSVNB ICgiYXZ4NTEyNHZubml3IiwgT1BUX21hdng1MTI0dm5uaXcpLApAQCAtMzEw MTYsOCArMzEwMjAsMTAgQEAgQkRFU0NfVkVSSUZZUyAoSVg4Nl9CVUlMVElO X19CREVTQ19ST1VORF9BUkdTX0ZJUlNULAogCSAgICAgICBJWDg2X0JVSUxU SU5fX0JERVNDX0FSR1NfTEFTVCwgMSk7CiBCREVTQ19WRVJJRllTIChJWDg2 X0JVSUxUSU5fX0JERVNDX0FSR1MyX0ZJUlNULAogCSAgICAgICBJWDg2X0JV SUxUSU5fX0JERVNDX1JPVU5EX0FSR1NfTEFTVCwgMSk7Ci1CREVTQ19WRVJJ RllTIChJWDg2X0JVSUxUSU5fX0JERVNDX01QWF9GSVJTVCwKK0JERVNDX1ZF UklGWVMgKElYODZfQlVJTFRJTl9fQkRFU0NfU1BFQ0lBTF9BUkdTMl9GSVJT VCwKIAkgICAgICAgSVg4Nl9CVUlMVElOX19CREVTQ19BUkdTMl9MQVNULCAx KTsKK0JERVNDX1ZFUklGWVMgKElYODZfQlVJTFRJTl9fQkRFU0NfTVBYX0ZJ UlNULAorCSAgICAgICBJWDg2X0JVSUxUSU5fX0JERVNDX1NQRUNJQUxfQVJH UzJfTEFTVCwgMSk7CiBCREVTQ19WRVJJRllTIChJWDg2X0JVSUxUSU5fX0JE RVNDX01QWF9DT05TVF9GSVJTVCwKIAkgICAgICAgSVg4Nl9CVUlMVElOX19C REVTQ19NUFhfTEFTVCwgMSk7CiBCREVTQ19WRVJJRllTIChJWDg2X0JVSUxU SU5fX0JERVNDX01VTFRJX0FSR19GSVJTVCwKQEAgLTMxMDU2LDYgKzMxMDYy LDIyIEBAIGl4ODZfaW5pdF9tbXhfc3NlX2J1aWx0aW5zICh2b2lkKQogCQkg SVg4Nl9CVUlMVElOX19CREVTQ19TUEVDSUFMX0FSR1NfRklSU1QsCiAJCSBB UlJBWV9TSVpFIChiZGVzY19zcGVjaWFsX2FyZ3MpIC0gMSk7CiAKKyAgLyog QWRkIGFsbCBzcGVjaWFsIGJ1aWx0aW5zIHdpdGggdmFyaWFibGUgbnVtYmVy IG9mIG9wZXJhbmRzLiAgKi8KKyAgZm9yIChpID0gMCwgZCA9IGJkZXNjX3Nw ZWNpYWxfYXJnczI7CisgICAgICAgaSA8IEFSUkFZX1NJWkUgKGJkZXNjX3Nw ZWNpYWxfYXJnczIpOworICAgICAgIGkrKywgZCsrKQorICAgIHsKKyAgICAg IEJERVNDX1ZFUklGWSAoZC0+Y29kZSwgSVg4Nl9CVUlMVElOX19CREVTQ19T UEVDSUFMX0FSR1MyX0ZJUlNULCBpKTsKKyAgICAgIGlmIChkLT5uYW1lID09 IDApCisJY29udGludWU7CisKKyAgICAgIGZ0eXBlID0gKGVudW0gaXg4Nl9i dWlsdGluX2Z1bmNfdHlwZSkgZC0+ZmxhZzsKKyAgICAgIGRlZl9idWlsdGlu MiAoZC0+bWFzaywgZC0+bmFtZSwgZnR5cGUsIGQtPmNvZGUpOworICAgIH0K KyAgQkRFU0NfVkVSSUZZUyAoSVg4Nl9CVUlMVElOX19CREVTQ19TUEVDSUFM X0FSR1MyX0xBU1QsCisJCSBJWDg2X0JVSUxUSU5fX0JERVNDX1NQRUNJQUxf QVJHUzJfRklSU1QsCisJCSBBUlJBWV9TSVpFIChiZGVzY19zcGVjaWFsX2Fy Z3MyKSAtIDEpOworCiAgIC8qIEFkZCBhbGwgYnVpbHRpbnMgd2l0aCB2YXJp YWJsZSBudW1iZXIgb2Ygb3BlcmFuZHMuICAqLwogICBmb3IgKGkgPSAwLCBk ID0gYmRlc2NfYXJnczsKICAgICAgICBpIDwgQVJSQVlfU0laRSAoYmRlc2Nf YXJncyk7CkBAIC0zODA1Nyw2ICszODA3OSwxNCBAQCByZHNlZWRfc3RlcDoK IAkJCQkJICAgICAgIHRhcmdldCk7CiAgICAgfQogCisgIGlmIChmY29kZSA+ PSBJWDg2X0JVSUxUSU5fX0JERVNDX1NQRUNJQUxfQVJHUzJfRklSU1QKKyAg ICAgICYmIGZjb2RlIDw9IElYODZfQlVJTFRJTl9fQkRFU0NfU1BFQ0lBTF9B UkdTMl9MQVNUKQorICAgIHsKKyAgICAgIGkgPSBmY29kZSAtIElYODZfQlVJ TFRJTl9fQkRFU0NfU1BFQ0lBTF9BUkdTMl9GSVJTVDsKKyAgICAgIHJldHVy biBpeDg2X2V4cGFuZF9zcGVjaWFsX2FyZ3NfYnVpbHRpbiAoYmRlc2Nfc3Bl Y2lhbF9hcmdzMiArIGksIGV4cCwKKwkJCQkJICAgICAgIHRhcmdldCk7Cisg ICAgfQorCiAgIGlmIChmY29kZSA+PSBJWDg2X0JVSUxUSU5fX0JERVNDX0FS R1NfRklSU1QKICAgICAgICYmIGZjb2RlIDw9IElYODZfQlVJTFRJTl9fQkRF U0NfQVJHU19MQVNUKQogICAgIHsKZGlmZiAtLWdpdCBhL2djYy9jb25maWcv aTM4Ni9pMzg2LmggYi9nY2MvY29uZmlnL2kzODYvaTM4Ni5oCmluZGV4IDU5 NTIyY2MuLmYzNjhhMmIgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvaTM4Ni9p Mzg2LmgKKysrIGIvZ2NjL2NvbmZpZy9pMzg2L2kzODYuaApAQCAtMTA1LDYg KzEwNSwxMCBAQCBzZWUgdGhlIGZpbGVzIENPUFlJTkczIGFuZCBDT1BZSU5H LlJVTlRJTUUgcmVzcGVjdGl2ZWx5LiAgSWYgbm90LCBzZWUKICNkZWZpbmUg VEFSR0VUX0xXUF9QKHgpCVRBUkdFVF9JU0FfTFdQX1AoeCkKICNkZWZpbmUg VEFSR0VUX0FCTQlUQVJHRVRfSVNBX0FCTQogI2RlZmluZSBUQVJHRVRfQUJN X1AoeCkJVEFSR0VUX0lTQV9BQk1fUCh4KQorI2RlZmluZSBUQVJHRVRfUENP TkZJRwlUQVJHRVRfSVNBX1BDT05GSUcKKyNkZWZpbmUgVEFSR0VUX1BDT05G SUdfUCh4KQlUQVJHRVRfSVNBX1BDT05GSUdfUCh4KQorI2RlZmluZSBUQVJH RVRfV0JOT0lOVkQJVEFSR0VUX0lTQV9XQk5PSU5WRAorI2RlZmluZSBUQVJH RVRfV0JOT0lOVkRfUCh4KQlUQVJHRVRfSVNBX1dCTk9JTlZEX1AoeCkKICNk ZWZpbmUgVEFSR0VUX1NHWAlUQVJHRVRfSVNBX1NHWAogI2RlZmluZSBUQVJH RVRfU0dYX1AoeCkJVEFSR0VUX0lTQV9TR1hfUCh4KQogI2RlZmluZSBUQVJH RVRfUkRQSUQJVEFSR0VUX0lTQV9SRFBJRApkaWZmIC0tZ2l0IGEvZ2NjL2Nv bmZpZy9pMzg2L2kzODYubWQgYi9nY2MvY29uZmlnL2kzODYvaTM4Ni5tZApp bmRleCBmZTk2NDlkLi40MWVkZmFmIDEwMDY0NAotLS0gYS9nY2MvY29uZmln L2kzODYvaTM4Ni5tZAorKysgYi9nY2MvY29uZmlnL2kzODYvaTM4Ni5tZApA QCAtMjM3LDYgKzIzNyw4IEBACiAgIFVOU1BFQ1ZfWFNBVkVDNjQKICAgVU5T UEVDVl9YR0VUQlYKICAgVU5TUEVDVl9YU0VUQlYKKyAgVU5TUEVDVl9XQklO VkQKKyAgVU5TUEVDVl9XQk5PSU5WRAogCiAgIDs7IEZvciBhdG9taWMgY29t cG91bmQgYXNzaWdubWVudHMuCiAgIFVOU1BFQ1ZfRk5TVEVOVgpAQCAtMjA1 NjMsNiArMjA1NjUsMjAgQEAKICAgInJkcGlkXHQlMCIKICAgWyhzZXRfYXR0 ciAidHlwZSIgIm90aGVyIildKQogCis7OyBJbnRpcmluc2ljcyBmb3IgPiBp NDg2CisKKyhkZWZpbmVfaW5zbiAid2JpbnZkIgorICBbKHVuc3BlY192b2xh dGlsZSBbKGNvbnN0X2ludCAwKV0gVU5TUEVDVl9XQklOVkQpXQorICAiIgor ICAid2JpbnZkIgorICBbKHNldF9hdHRyICJ0eXBlIiAib3RoZXIiKV0pCisK KyhkZWZpbmVfaW5zbiAid2Jub2ludmQiCisgIFsodW5zcGVjX3ZvbGF0aWxl IFsoY29uc3RfaW50IDApXSBVTlNQRUNWX1dCTk9JTlZEKV0KKyAgIlRBUkdF VF9XQk5PSU5WRCIKKyAgIndibm9pbnZkIgorICBbKHNldF9hdHRyICJ0eXBl IiAib3RoZXIiKV0pCisKIChpbmNsdWRlICJtbXgubWQiKQogKGluY2x1ZGUg InNzZS5tZCIpCiAoaW5jbHVkZSAic3luYy5tZCIpCmRpZmYgLS1naXQgYS9n Y2MvY29uZmlnL2kzODYvaTM4Ni5vcHQgYi9nY2MvY29uZmlnL2kzODYvaTM4 Ni5vcHQKaW5kZXggM2EzMDZiYi4uMTUwZDc4ZSAxMDA2NDQKLS0tIGEvZ2Nj L2NvbmZpZy9pMzg2L2kzODYub3B0CisrKyBiL2djYy9jb25maWcvaTM4Ni9p Mzg2Lm9wdApAQCAtNzc3LDYgKzc3NywxNCBAQCBtcG9wY250CiBUYXJnZXQg UmVwb3J0IE1hc2soSVNBX1BPUENOVCkgVmFyKGl4ODZfaXNhX2ZsYWdzKSBT YXZlCiBTdXBwb3J0IGNvZGUgZ2VuZXJhdGlvbiBvZiBwb3BjbnQgaW5zdHJ1 Y3Rpb24uCiAKK21wY29uZmlnCitUYXJnZXQgUmVwb3J0IE1hc2soSVNBX1BD T05GSUcpIFZhcihpeDg2X2lzYV9mbGFnczIpIFNhdmUKK1N1cHBvcnQgUENP TkZJRyBidWlsdC1pbiBmdW5jdGlvbnMgYW5kIGNvZGUgZ2VuZXJhdGlvbi4K KworbXdibm9pbnZkCitUYXJnZXQgUmVwb3J0IE1hc2soSVNBX1dCTk9JTlZE KSBWYXIoaXg4Nl9pc2FfZmxhZ3MyKSBTYXZlCitTdXBwb3J0IFdCTk9JTlZE IGJ1aWx0LWluIGZ1bmN0aW9ucyBhbmQgY29kZSBnZW5lcmF0aW9uLgorCiBt c2d4CiBUYXJnZXQgUmVwb3J0IE1hc2soSVNBX1NHWCkgVmFyKGl4ODZfaXNh X2ZsYWdzMikgU2F2ZQogU3VwcG9ydCBTR1ggYnVpbHQtaW4gZnVuY3Rpb25z IGFuZCBjb2RlIGdlbmVyYXRpb24uCmRpZmYgLS1naXQgYS9nY2MvY29uZmln L2kzODYvaW1taW50cmluLmggYi9nY2MvY29uZmlnL2kzODYvaW1taW50cmlu LmgKaW5kZXggYTVhZDhhZi4uYWQwZmIyMSAxMDA2NDQKLS0tIGEvZ2NjL2Nv bmZpZy9pMzg2L2ltbWludHJpbi5oCisrKyBiL2djYy9jb25maWcvaTM4Ni9p bW1pbnRyaW4uaApAQCAtMTEwLDYgKzExMCwxMyBAQAogCiAjaW5jbHVkZSA8 dnBjbG11bHFkcWludHJpbi5oPgogCitleHRlcm4gX19pbmxpbmUgdm9pZAor X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGlu ZV9fLCBfX2FydGlmaWNpYWxfXykpCitfd2JpbnZkICh2b2lkKQoreworICBf X2J1aWx0aW5faWEzMl93YmludmQgKCk7Cit9CisKICNpZm5kZWYgX19SRFJO RF9fCiAjcHJhZ21hIEdDQyBwdXNoX29wdGlvbnMKICNwcmFnbWEgR0NDIHRh cmdldCgicmRybmQiKQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9pMzg2L3Bj b25maWdpbnRyaW4uaCBiL2djYy9jb25maWcvaTM4Ni9wY29uZmlnaW50cmlu LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjc2ODVh OQotLS0gL2Rldi9udWxsCisrKyBiL2djYy9jb25maWcvaTM4Ni9wY29uZmln aW50cmluLmgKQEAgLTAsMCArMSw1NSBAQAorI2lmbmRlZiBfWDg2SU5UUklO X0hfSU5DTFVERUQKKyNlcnJvciAiTmV2ZXIgdXNlIDxwY29uZmlnaW50cmlu Lmg+IGRpcmVjdGx5OyBpbmNsdWRlIDx4ODZpbnRyaW4uaD4gaW5zdGVhZC4i CisjZW5kaWYKKworI2lmbmRlZiBfUENPTkZJR0lOVFJJTl9IX0lOQ0xVREVE CisjZGVmaW5lIF9QQ09ORklHSU5UUklOX0hfSU5DTFVERUQKKworI2lmbmRl ZiBfX1BDT05GSUdfXworI3ByYWdtYSBHQ0MgcHVzaF9vcHRpb25zCisjcHJh Z21hIEdDQyB0YXJnZXQoInBjb25maWciKQorI2RlZmluZSBfX0RJU0FCTEVf UENPTkZJR19fCisjZW5kaWYgLyogX19QQ09ORklHX18gKi8KKworI2RlZmlu ZSBfX3Bjb25maWdfYihsZWFmLCBiLCByZXR2YWwpCQkJXAorICBfX2FzbV9f IF9fdm9sYXRpbGVfXyAoInBjb25maWdcblx0IgkJCVwKKwk6ICI9YSIgKHJl dHZhbCkJCQkJCVwKKwk6ICJhIiAobGVhZiksICJiIiAoYikJCQkJXAorCTog ImNjIikKKworI2RlZmluZSBfX3Bjb25maWdfZ2VuZXJpYyhsZWFmLCBiLCBj LCBkLCByZXR2YWwpCVwKKyAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJwY29u ZmlnXG5cdCIJCQlcCisJOiAiPWEiIChyZXR2YWwpLCAiPWIiIChiKSwgIj1j IiAoYyksICI9ZCIgKGQpCVwKKwk6ICJhIiAobGVhZiksICJiIiAoYiksICJj IiAoYyksICJkIiAoZCkJCVwKKwk6ICJjYyIpCisKK2V4dGVybiBfX2lubGlu ZSBpbnQKK19fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5 c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX3Bjb25maWcgKGNvbnN0 IGludCBfX0wsIHNpemVfdCBfX0RbXSkKK3sKKyAgZW51bSBfX3Bjb25maWdf dHlwZQorICB7CisgICAgX19QQ09ORklHX0tFWV9QUk9HUkFNID0gMHgwMSwK KyAgfTsKKworICBpbnQgX19SID0gMDsKKworICBpZiAoIV9fYnVpbHRpbl9j b25zdGFudF9wIChfX0wpKQorICAgIF9fcGNvbmZpZ19nZW5lcmljIChfX0ws IF9fRFswXSwgX19EWzFdLCBfX0RbMl0sIF9fUik7CisgIGVsc2Ugc3dpdGNo IChfX0wpCisgICAgeworICAgIGNhc2UgX19QQ09ORklHX0tFWV9QUk9HUkFN OgorICAgICAgX19wY29uZmlnX2IgKF9fTCwgX19EWzBdLCBfX1IpOworICAg ICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgIHJldHVybiAtMTsKKyAg ICB9CisgIHJldHVybiBfX1I7Cit9CisKKyNpZmRlZiBfX0RJU0FCTEVfUENP TkZJR19fCisjdW5kZWYgX19ESVNBQkxFX1BDT05GSUdfXworI3ByYWdtYSBH Q0MgcG9wX29wdGlvbnMKKyNlbmRpZiAvKiBfX0RJU0FCTEVfUENPTkZJR19f ICovCisKKyNlbmRpZiAvKiBfUENPTkZJR0lOVFJJTl9IX0lOQ0xVREVEICov CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2kzODYvc2d4aW50cmluLmggYi9n Y2MvY29uZmlnL2kzODYvc2d4aW50cmluLmgKaW5kZXggZGVlOWJlOC4uMWZj NDIyNiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L3NneGludHJpbi5o CisrKyBiL2djYy9jb25maWcvaTM4Ni9zZ3hpbnRyaW4uaApAQCAtODksNiAr ODksMjMgQEAKIAkgICA6ICJhIiAobGVhZiksICJiIiAoYiksICJjIiAoYyks ICJkIiAoZCkJXAogCSAgIDogImNjIikKIAorI2RlZmluZSBfX2VuY2x2X2Jj KGxlYWYsIGIsIGMsIHJldHZhbCkJCQlcCisgIF9fYXNtX18gX192b2xhdGls ZV9fKCJlbmNsdlxuXHQiCQkJXAorCSAgIDogIj1hIiAocmV0dmFsKQkJCQlc CisJICAgOiAiYSIgKGxlYWYpLCAiYiIgKGIpLCAiYyIgKGMpCQlcCisJICAg OiAiY2MiKQorCisjZGVmaW5lIF9fZW5jbHZfY2QobGVhZiwgYywgZCwgcmV0 dmFsKQkJCVwKKyAgX19hc21fXyBfX3ZvbGF0aWxlX18oImVuY2x2XG5cdCIJ CQlcCisJICAgOiAiPWEiIChyZXR2YWwpCQkJCVwKKwkgICA6ICJhIiAobGVh ZiksICJjIiAoYyksICJkIiAoZCkJCVwKKwkgICA6ICJjYyIpCisKKyNkZWZp bmUgX19lbmNsdl9nZW5lcmljKGxlYWYsIGIsIGMsIGQsIHJldHZhbCkJCVwK KyAgX19hc21fXyBfX3ZvbGF0aWxlX18oImVuY2x2XG5cdCIJCQlcCisJICAg OiAiPWEiIChyZXR2YWwpLCAiPWIiIChiKSwgIj1jIiAoYiksICI9ZCIgKGQp XAorCSAgIDogImEiIChsZWFmKSwgImIiIChiKSwgImMiIChjKSwgImQiIChk KQlcCisJICAgOiAiY2MiKQogCiBleHRlcm4gX19pbmxpbmUgaW50CiBfX2F0 dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18s IF9fYXJ0aWZpY2lhbF9fKSkKQEAgLTE5Miw2ICsyMDksMzQgQEAgX2VuY2x1 X3UzMiAoY29uc3QgaW50IF9fTCwgc2l6ZV90IF9fRFtdKQogICByZXR1cm4g X19SOwogfQogCitleHRlcm4gX19pbmxpbmUgaW50CitfX2F0dHJpYnV0ZV9f KChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZp Y2lhbF9fKSkKK19lbmNsdl91MzIgKGNvbnN0IGludCBfX0wsIHNpemVfdCBf X0RbXSkKK3sKKyAgZW51bSBfX2VuY2x2X3R5cGUKKyAgeworICAgIF9fU0dY X0VERUNWSVJUQ0hJTEQgPSAweDAwLAorICAgIF9fU0dYX0VJTkNWSVJUQ0hJ TEQgPSAweDAxLAorICAgIF9fU0dYX0VTRVRDT05URVggICAgPSAweDAyCisg IH07CisgIGludCBfX1IgPSAwOworICBpZiAoIV9fYnVpbHRpbl9jb25zdGFu dF9wIChfX0wpKQorICAgIF9fZW5jbHZfZ2VuZXJpYyAoX19MLCBfX0RbMF0s IF9fRFsxXSwgX19EWzJdLCBfX1IpOworICBlbHNlIHN3aXRjaCAoX19MKQor ICAgIHsKKyAgICBjYXNlIF9fU0dYX0VERUNWSVJUQ0hJTEQ6CisgICAgY2Fz ZSBfX1NHWF9FSU5DVklSVENISUxEOgorICAgICAgX19lbmNsdl9iYyAoX19M LCBfX0RbMF0sIF9fRFsxXSwgX19SKTsKKyAgICAgIGJyZWFrOworICAgIGNh c2UgX19TR1hfRVNFVENPTlRFWDoKKyAgICAgIF9fZW5jbHZfY2QgKF9fTCwg X19EWzFdLCBfX0RbMl0sIF9fUik7CisgICAgICBicmVhazsKKyAgICBkZWZh dWx0OgorICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgcmV0dXJuIF9fUjsK K30KKwogI2lmZGVmIF9fRElTQUJMRV9TR1hfXwogI3VuZGVmIF9fRElTQUJM RV9TR1hfXwogI3ByYWdtYSBHQ0MgcG9wX29wdGlvbnMKZGlmZiAtLWdpdCBh L2djYy9jb25maWcvaTM4Ni93Ym5vaW52ZGludHJpbi5oIGIvZ2NjL2NvbmZp Zy9pMzg2L3dibm9pbnZkaW50cmluLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uOTMxMmEwMAotLS0gL2Rldi9udWxsCisrKyBiL2dj Yy9jb25maWcvaTM4Ni93Ym5vaW52ZGludHJpbi5oCkBAIC0wLDAgKzEsMjYg QEAKKyNpZm5kZWYgX1g4NklOVFJJTl9IX0lOQ0xVREVECisjZXJyb3IgIk5l dmVyIHVzZSA8d2Jub2ludmRpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUg PHg4NmludHJpbi5oPiBpbnN0ZWFkLiIKKyNlbmRpZgorCisjaWZuZGVmIF9X Qk5PSU5WRElOVFJJTl9IX0lOQ0xVREVECisjZGVmaW5lIF9XQk5PSU5WRElO VFJJTl9IX0lOQ0xVREVECisKKyNpZm5kZWYgX19XQk5PSU5WRF9fCisjcHJh Z21hIEdDQyBwdXNoX29wdGlvbnMKKyNwcmFnbWEgR0NDIHRhcmdldCgid2Ju b2ludmQiKQorI2RlZmluZSBfX0RJU0FCTEVfV0JOT0lOVkRfXworI2VuZGlm IC8qIF9fV0JOT0lOVkRfXyAqLworCitleHRlcm4gX19pbmxpbmUgdm9pZAor X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGlu ZV9fLCBfX2FydGlmaWNpYWxfXykpCitfd2Jub2ludmQgKHZvaWQpCit7Cisg IF9fYnVpbHRpbl9pYTMyX3dibm9pbnZkICgpOworfQorCisjaWZkZWYgX19E SVNBQkxFX1dCTk9JTlZEX18KKyN1bmRlZiBfX0RJU0FCTEVfV0JOT0lOVkRf XworI3ByYWdtYSBHQ0MgcG9wX29wdGlvbnMKKyNlbmRpZiAvKiBfX0RJU0FC TEVfV0JOT0lOVkRfXyAqLworCisjZW5kaWYgLyogX1dCTk9JTlZESU5UUklO X0hfSU5DTFVERUQgKi8KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni94 ODZpbnRyaW4uaCBiL2djYy9jb25maWcvaTM4Ni94ODZpbnRyaW4uaAppbmRl eCBiNWZkZmExLi5iMTJhZWNjIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2kz ODYveDg2aW50cmluLmgKKysrIGIvZ2NjL2NvbmZpZy9pMzg2L3g4NmludHJp bi5oCkBAIC03Nyw2ICs3Nyw4IEBACiAKICNpbmNsdWRlIDxzZ3hpbnRyaW4u aD4KIAorI2luY2x1ZGUgPHBjb25maWdpbnRyaW4uaD4KKwogI2VuZGlmIC8q IF9faWFtY3VfXyAqLwogCiAjaW5jbHVkZSA8YWR4aW50cmluLmg+CkBAIC05 NSw2ICs5Nyw4IEBACiAKICNpbmNsdWRlIDxjbHplcm9pbnRyaW4uaD4KIAor I2luY2x1ZGUgPHdibm9pbnZkaW50cmluLmg+CisKICNpbmNsdWRlIDxwa3Vp bnRyaW4uaD4KIAogI2VuZGlmIC8qIF9faWFtY3VfXyAqLwpkaWZmIC0tZ2l0 IGEvZ2NjL2RvYy9pbnZva2UudGV4aSBiL2djYy9kb2MvaW52b2tlLnRleGkK aW5kZXggZGJjNWM0Ny4uMmQ3M2UxMiAxMDA2NDQKLS0tIGEvZ2NjL2RvYy9p bnZva2UudGV4aQorKysgYi9nY2MvZG9jL2ludm9rZS50ZXhpCkBAIC0xMjA3 LDcgKzEyMDcsNyBAQCBTZWUgUlMvNjAwMCBhbmQgUG93ZXJQQyBPcHRpb25z LgogLW1tbXggIC1tc3NlICAtbXNzZTIgIC1tc3NlMyAgLW1zc3NlMyAgLW1z c2U0LjEgIC1tc3NlNC4yICAtbXNzZTQgIC1tYXZ4IEBnb2wKIC1tYXZ4MiAg LW1hdng1MTJmICAtbWF2eDUxMnBmICAtbWF2eDUxMmVyICAtbWF2eDUxMmNk ICAtbWF2eDUxMnZsIEBnb2wKIC1tYXZ4NTEyYncgIC1tYXZ4NTEyZHEgIC1t YXZ4NTEyaWZtYSAgLW1hdng1MTJ2Ym1pICAtbXNoYSAgLW1hZXMgQGdvbAot LW1wY2xtdWwgIC1tZnNnc2Jhc2UgIC1tcmRybmQgIC1tZjE2YyAgLW1mbWEg QGdvbAorLW1wY2xtdWwgIC1tZnNnc2Jhc2UgIC1tcmRybmQgIC1tZjE2YyAg LW1mbWEgLW1wY29uZmlnIC1td2Jub2ludmQgQGdvbAogLW1wcmVmZXRjaHd0 MSAgLW1jbGZsdXNob3B0ICAtbXhzYXZlYyAgLW14c2F2ZXMgQGdvbAogLW1z c2U0YSAgLW0zZG5vdyAgLW0zZG5vd2EgIC1tcG9wY250ICAtbWFibSAgLW1i bWkgIC1tdGJtICAtbWZtYTQgIC1teG9wIEBnb2wKIC1tbHpjbnQgIC1tYm1p MiAgLW1meHNyICAtbXhzYXZlICAtbXhzYXZlb3B0ICAtbXJ0bSAgLW1sd3Ag IC1tbXB4ICBAZ29sCkBAIC0yNjIyNyw2ICsyNjIyNywxMiBAQCBwcmVmZXJy ZWQgYWxpZ25tZW50IHRvIEBvcHRpb257LW1wcmVmZXJyZWQtc3RhY2stYm91 bmRhcnk9Mn0uCiBAaXRlbXggLW1mbWEKIEBvcGluZGV4IG1mbWEKIEBuZWVk IDIwMAorQGl0ZW14IC1tcGNvbmZpZworQG9waW5kZXggbXBjb25maWcKK0Bu ZWVkIDIwMAorQGl0ZW14IC1td2Jub2ludmQKK0BvcGluZGV4IG13Ym5vaW52 ZAorQG5lZWQgMjAwCiBAaXRlbXggLW1mbWE0CiBAb3BpbmRleCBtZm1hNAog QG5lZWQgMjAwCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2crKy5kZy9v dGhlci9pMzg2LTIuQyBiL2djYy90ZXN0c3VpdGUvZysrLmRnL290aGVyL2kz ODYtMi5DCmluZGV4IDc1YThjMjcuLmE3MGQ5ZjQgMTAwNjQ0Ci0tLSBhL2dj Yy90ZXN0c3VpdGUvZysrLmRnL290aGVyL2kzODYtMi5DCisrKyBiL2djYy90 ZXN0c3VpdGUvZysrLmRnL290aGVyL2kzODYtMi5DCkBAIC0xLDUgKzEsNSBA QAogLyogeyBkZy1kbyBjb21waWxlIHsgdGFyZ2V0IGk/ODYtKi0qIHg4Nl82 NC0qLSogfSB9ICovCi0vKiB7IGRnLW9wdGlvbnMgIi1PIC1wZWRhbnRpYy1l cnJvcnMgLW1hcmNoPWs4IC1tc3NlNGEgLW0zZG5vdyAtbWF2eCAtbWF2eDIg LW1mbWE0IC1teG9wIC1tYWVzIC1tcGNsbXVsIC1tcG9wY250IC1tYWJtIC1t bHpjbnQgLW1ibWkgLW1ibWkyIC1tdGJtIC1tbHdwIC1tZnNnc2Jhc2UgLW1y ZHJuZCAtbWYxNmMgLW1mbWEgLW1ydG0gLW1yZHNlZWQgLW1wcmZjaHcgLW1h ZHggLW1meHNyIC1teHNhdmVvcHQgLW1hdng1MTJmIC1tYXZ4NTEyZXIgLW1h dng1MTJjZCAtbWF2eDUxMnBmIC1tc2hhIC1tcHJlZmV0Y2h3dDEgLW14c2F2 ZWMgLW14c2F2ZXMgLW1jbGZsdXNob3B0ICAtbWF2eDUxMmRxIC1tYXZ4NTEy YncgLW1hdng1MTJ2bCAtbWF2eDUxMmlmbWEgLW1hdng1MTJ2Ym1pIC1tYXZ4 NTEyNGZtYXBzIC1tYXZ4NTEyNHZubml3IC1tYXZ4NTEydnBvcGNudGRxIC1t Y2x3YiAtbW13YWl0eCAtbWNsemVybyAtbXBrdSAtbXNneCAtbXJkcGlkIC1t Z2ZuaSAtbWF2eDUxMmJpdGFsZyIgfSAqLworLyogeyBkZy1vcHRpb25zICIt TyAtcGVkYW50aWMtZXJyb3JzIC1tYXJjaD1rOCAtbXNzZTRhIC1tM2Rub3cg LW1hdnggLW1hdngyIC1tZm1hNCAtbXhvcCAtbWFlcyAtbXBjbG11bCAtbXBv cGNudCAtbWFibSAtbWx6Y250IC1tYm1pIC1tYm1pMiAtbXRibSAtbWx3cCAt bWZzZ3NiYXNlIC1tcmRybmQgLW1mMTZjIC1tZm1hIC1tcnRtIC1tcmRzZWVk IC1tcHJmY2h3IC1tYWR4IC1tZnhzciAtbXhzYXZlb3B0IC1tYXZ4NTEyZiAt bWF2eDUxMmVyIC1tYXZ4NTEyY2QgLW1hdng1MTJwZiAtbXNoYSAtbXByZWZl dGNod3QxIC1teHNhdmVjIC1teHNhdmVzIC1tY2xmbHVzaG9wdCAgLW1hdng1 MTJkcSAtbWF2eDUxMmJ3IC1tYXZ4NTEydmwgLW1hdng1MTJpZm1hIC1tYXZ4 NTEydmJtaSAtbWF2eDUxMjRmbWFwcyAtbWF2eDUxMjR2bm5pdyAtbWF2eDUx MnZwb3BjbnRkcSAtbWNsd2IgLW1td2FpdHggLW1jbHplcm8gLW1wa3UgLW1z Z3ggLW1yZHBpZCAtbWdmbmkgLW1hdng1MTJiaXRhbGcgLW1wY29uZmlnIC1t d2Jub2ludmQiIH0gKi8KIAogLyogVGVzdCB0aGF0IHsseCxlLHAsdCxzLHcs YSxiLGl9bW1pbnRyaW4uaCwgbW0zZG5vdy5oLCBmbWE0aW50cmluLmgsCiAg ICB4b3BpbnRyaW4uaCwgYWJtaW50cmluLmgsIGJtaWludHJpbi5oLCB0Ym1p bnRyaW4uaCwgbHdwaW50cmluLmgsCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2crKy5kZy9vdGhlci9pMzg2LTMuQyBiL2djYy90ZXN0c3VpdGUvZysr LmRnL290aGVyL2kzODYtMy5DCmluZGV4IDQ0NGMyNDYuLjczZWI1ZTcgMTAw NjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZysrLmRnL290aGVyL2kzODYtMy5D CisrKyBiL2djYy90ZXN0c3VpdGUvZysrLmRnL290aGVyL2kzODYtMy5DCkBA IC0xLDUgKzEsNSBAQAogLyogeyBkZy1kbyBjb21waWxlIHsgdGFyZ2V0IGk/ ODYtKi0qIHg4Nl82NC0qLSogfSB9ICovCi0vKiB7IGRnLW9wdGlvbnMgIi1P IC1ma2VlcC1pbmxpbmUtZnVuY3Rpb25zIC1tYXJjaD1rOCAtbXNzZTRhIC1t M2Rub3cgLW1hdnggLW1hdngyIC1tZm1hNCAtbXhvcCAtbWFlcyAtbXBjbG11 bCAtbXBvcGNudCAtbWFibSAtbWx6Y250IC1tYm1pIC1tYm1pMiAtbXRibSAt bWx3cCAtbWZzZ3NiYXNlIC1tcmRybmQgLW1mMTZjIC1tZm1hIC1tcnRtIC1t cmRzZWVkIC1tcHJmY2h3IC1tYWR4IC1tZnhzciAtbXhzYXZlb3B0IC1tYXZ4 NTEyZiAtbWF2eDUxMmVyIC1tYXZ4NTEyY2QgLW1hdng1MTJwZiAtbXNoYSAt bXByZWZldGNod3QxIC1teHNhdmVjIC1teHNhdmVzIC1tY2xmbHVzaG9wdCAt bWF2eDUxMmRxIC1tYXZ4NTEyYncgLW1hdng1MTJ2bCAtbWF2eDUxMmlmbWEg LW1hdng1MTJ2Ym1pIC1tYXZ4NTEyNGZtYXBzIC1tYXZ4NTEyNHZubml3IC1t YXZ4NTEydnBvcGNudGRxIC1tY2x3YiAtbW13YWl0eCAtbWNsemVybyAtbXBr dSAtbXNneCAtbXJkcGlkIC1tZ2ZuaSAtbWF2eDUxMmJpdGFsZyIgfSAqLwor LyogeyBkZy1vcHRpb25zICItTyAtZmtlZXAtaW5saW5lLWZ1bmN0aW9ucyAt bWFyY2g9azggLW1zc2U0YSAtbTNkbm93IC1tYXZ4IC1tYXZ4MiAtbWZtYTQg LW14b3AgLW1hZXMgLW1wY2xtdWwgLW1wb3BjbnQgLW1hYm0gLW1semNudCAt bWJtaSAtbWJtaTIgLW10Ym0gLW1sd3AgLW1mc2dzYmFzZSAtbXJkcm5kIC1t ZjE2YyAtbWZtYSAtbXJ0bSAtbXJkc2VlZCAtbXByZmNodyAtbWFkeCAtbWZ4 c3IgLW14c2F2ZW9wdCAtbWF2eDUxMmYgLW1hdng1MTJlciAtbWF2eDUxMmNk IC1tYXZ4NTEycGYgLW1zaGEgLW1wcmVmZXRjaHd0MSAtbXhzYXZlYyAtbXhz YXZlcyAtbWNsZmx1c2hvcHQgLW1hdng1MTJkcSAtbWF2eDUxMmJ3IC1tYXZ4 NTEydmwgLW1hdng1MTJpZm1hIC1tYXZ4NTEydmJtaSAtbWF2eDUxMjRmbWFw cyAtbWF2eDUxMjR2bm5pdyAtbWF2eDUxMnZwb3BjbnRkcSAtbWNsd2IgLW1t d2FpdHggLW1jbHplcm8gLW1wa3UgLW1zZ3ggLW1yZHBpZCAtbWdmbmkgLW1h dng1MTJiaXRhbGcgLW1wY29uZmlnIC1td2Jub2ludmQiIH0gKi8KIAogLyog VGVzdCB0aGF0IHsseCxlLHAsdCxzLHcsYSxiLGl9bW1pbnRyaW4uaCwgbW0z ZG5vdy5oLCBmbWE0aW50cmluLmgsCiAgICB4b3BpbnRyaW4uaCwgYWJtaW50 cmluLmgsIGJtaWludHJpbi5oLCB0Ym1pbnRyaW4uaCwgbHdwaW50cmluLmgs CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9w Y29uZmlnLTEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3Bj b25maWctMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmQ5MWRhZGEKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvaTM4Ni9wY29uZmlnLTEuYwpAQCAtMCwwICsxLDIwIEBACisv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItTzIg LW1wY29uZmlnIiB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMgInBjb25maWciIDUgfSB9ICovCisKKyNpbmNsdWRlIDx4ODZp bnRyaW4uaD4KKworZXh0ZXJuIGludCBsZWFmOworCisjZGVmaW5lIFBDT05G SUdfS0VZX1BST0dSQU0gMHgwMQorCitpbnQgdGVzdCAoKQoreworICBzaXpl X3QgRFszXSA9IHsxLCAyLCAzfTsKKworICBpbnQgcmVzMSA9IF9wY29uZmln IChsZWFmLCBEKTsKKworICBpbnQgcmVzMiA9IF9wY29uZmlnIChQQ09ORklH X0tFWV9QUk9HUkFNLCBEKTsKKworICByZXR1cm4gMDsKK30KZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NneC5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc2d4LmMKaW5kZXggNDJhZDFm Yy4uNDc0NzIxMyAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYvc2d4LmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2kzODYvc2d4LmMKQEAgLTIsNiArMiw3IEBACiAvKiB7IGRnLW9wdGlvbnMg Ii1PMiAtbXNneCIgfSAqLwogLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzICJlbmNsdSIgIDIgfSB9ICovCiAvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMgImVuY2xzIiAgMiB9IH0gKi8KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiZW5jbHYiICAyIH0g fSAqLwogCiAjaW5jbHVkZSA8eDg2aW50cmluLmg+CiAKQEAgLTksNiArMTAs NyBAQCBleHRlcm4gaW50IGxlYWY7CiAKICNkZWZpbmUgU0dYX0VFTlRFUiAw eDAyCiAjZGVmaW5lIFNHWF9FQkxPQ0sgMHgwOQorI2RlZmluZSBTR1hfRUlO Q1ZJUlRDSElMRCAweDAxCiAKIGludCBmb28gKCkKIHsKQEAgLTE2LDkgKzE4 LDE0IEBAIGludCBmb28gKCkKICAgdGVzdFswXSA9IDQ7CiAgIHRlc3RbMV0g PSA1OwogICB0ZXN0WzJdID0gNjsgCisKICAgaW50IHJlczEgPSBfZW5jbHNf dTMyIChsZWFmLCB0ZXN0KTsKICAgaW50IHJlczIgPSBfZW5jbHVfdTMyIChs ZWFmLCB0ZXN0KTsKKyAgaW50IHJlczUgPSBfZW5jbHZfdTMyIChsZWFmLCB0 ZXN0KTsKKyAgCiAgIGludCByZXMzID0gX2VuY2xzX3UzMiAoU0dYX0VCTE9D SywgdGVzdCk7CiAgIGludCByZXM0ID0gX2VuY2x1X3UzMiAoU0dYX0VFTlRF UiwgdGVzdCk7CisgIGludCByZXM2ID0gX2VuY2x2X3UzMiAoU0dYX0VJTkNW SVJUQ0hJTEQsIHRlc3QpOworCiAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTEyLmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2UtMTIuYwppbmRleCBj ZDQ1MDk2Li5mN2Y1NWY0IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvaTM4Ni9zc2UtMTIuYworKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvaTM4Ni9zc2UtMTIuYwpAQCAtMyw3ICszLDcgQEAKICAgIHBv cGNudGludHJpbi5oIGdmbmlpbnRyaW4uaCBhbmQgbW1fbWFsbG9jLmggYXJl IHVzYWJsZQogICAgd2l0aCAtTyAtc3RkPWM4OSAtcGVkYW50aWMtZXJyb3Jz LiAgKi8KIC8qIHsgZGctZG8gY29tcGlsZSB9ICovCi0vKiB7IGRnLW9wdGlv bnMgIi1PIC1zdGQ9Yzg5IC1wZWRhbnRpYy1lcnJvcnMgLW1hcmNoPWs4IC1t c3NlNGEgLW0zZG5vdyAtbWF2eCAtbWF2eDIgLW1mbWE0IC1teG9wIC1tYWVz IC1tcGNsbXVsIC1tcG9wY250IC1tYWJtIC1tbHpjbnQgLW1ibWkgLW1ibWky IC1tdGJtIC1tbHdwIC1tZnNnc2Jhc2UgLW1yZHJuZCAtbWYxNmMgLW1mbWEg LW1ydG0gLW1yZHNlZWQgLW1wcmZjaHcgLW1hZHggLW1meHNyIC1teHNhdmVv cHQgLW1hdng1MTJmIC1tYXZ4NTEyZXIgLW1hdng1MTJjZCAtbWF2eDUxMnBm IC1tc2hhIC1tcHJlZmV0Y2h3dDEgLW14c2F2ZWMgLW14c2F2ZXMgLW1jbGZs dXNob3B0IC1tYXZ4NTEyYncgLW1hdng1MTJkcSAtbWF2eDUxMnZsIC1tYXZ4 NTEydmJtaSAtbWF2eDUxMmlmbWEgLW1hdng1MTI0Zm1hcHMgLW1hdng1MTI0 dm5uaXcgLW1hdng1MTJ2cG9wY250ZHEgLW1jbHdiIC1tbXdhaXR4IC1tY2x6 ZXJvIC1tcGt1IC1tc2d4IC1tcmRwaWQgLW1nZm5pIC1tYXZ4NTEyYml0YWxn IiB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PIC1zdGQ9Yzg5IC1wZWRhbnRp Yy1lcnJvcnMgLW1hcmNoPWs4IC1tc3NlNGEgLW0zZG5vdyAtbWF2eCAtbWF2 eDIgLW1mbWE0IC1teG9wIC1tYWVzIC1tcGNsbXVsIC1tcG9wY250IC1tYWJt IC1tbHpjbnQgLW1ibWkgLW1ibWkyIC1tdGJtIC1tbHdwIC1tZnNnc2Jhc2Ug LW1yZHJuZCAtbWYxNmMgLW1mbWEgLW1ydG0gLW1yZHNlZWQgLW1wcmZjaHcg LW1hZHggLW1meHNyIC1teHNhdmVvcHQgLW1hdng1MTJmIC1tYXZ4NTEyZXIg LW1hdng1MTJjZCAtbWF2eDUxMnBmIC1tc2hhIC1tcHJlZmV0Y2h3dDEgLW14 c2F2ZWMgLW14c2F2ZXMgLW1jbGZsdXNob3B0IC1tYXZ4NTEyYncgLW1hdng1 MTJkcSAtbWF2eDUxMnZsIC1tYXZ4NTEydmJtaSAtbWF2eDUxMmlmbWEgLW1h dng1MTI0Zm1hcHMgLW1hdng1MTI0dm5uaXcgLW1hdng1MTJ2cG9wY250ZHEg LW1jbHdiIC1tbXdhaXR4IC1tY2x6ZXJvIC1tcGt1IC1tc2d4IC1tcmRwaWQg LW1nZm5pIC1tYXZ4NTEyYml0YWxnIC1tcGNvbmZpZyAtbXdibm9pbnZkIiB9 ICovCiAKICNpbmNsdWRlIDx4ODZpbnRyaW4uaD4KIApkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTEzLmMgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2UtMTMuYwppbmRleCBjYzlk MDBhLi5jNmEwNzlmIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvaTM4Ni9zc2UtMTMuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvaTM4Ni9zc2UtMTMuYwpAQCAtMSw1ICsxLDUgQEAKIC8qIHsgZGct ZG8gY29tcGlsZSB9ICovCi0vKiB7IGRnLW9wdGlvbnMgIi1PMiAtV2Vycm9y LWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uIC1tYXJjaD1rOCAtbXNz ZTRhIC1tM2Rub3cgLW1hdnggLW1hdngyIC1tZm1hNCAtbXhvcCAtbWFlcyAt bXBjbG11bCAtbXBvcGNudCAtbWFibSAtbWx6Y250IC1tYm1pIC1tYm1pMiAt bXRibSAtbWx3cCAtbWZzZ3NiYXNlIC1tcmRybmQgLW1mMTZjIC1tZm1hIC1t cnRtIC1tcmRzZWVkIC1tcHJmY2h3IC1tYWR4IC1tZnhzciAtbXhzYXZlb3B0 IC1tYXZ4NTEyZiAtbWF2eDUxMmVyIC1tYXZ4NTEyY2QgLW1hdng1MTJwZiAt bXNoYSAtbXByZWZldGNod3QxIC1teHNhdmVjIC1teHNhdmVzIC1tY2xmbHVz aG9wdCAtbWF2eDUxMnZsIC1tYXZ4NTEyZHEgLW1hdng1MTJidyAtbWF2eDUx MnZibWkgLW1hdng1MTJpZm1hIC1tYXZ4NTEyNGZtYXBzIC1tYXZ4NTEyNHZu bml3IC1tYXZ4NTEydnBvcGNudGRxIC1tY2x3YiAtbW13YWl0eCAtbWNsemVy byAtbXBrdSAtbXNneCAtbXJkcGlkIC1tZ2ZuaSAtbWF2eDUxMmJpdGFsZyIg fSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLVdlcnJvci1pbXBsaWNpdC1m dW5jdGlvbi1kZWNsYXJhdGlvbiAtbWFyY2g9azggLW1zc2U0YSAtbTNkbm93 IC1tYXZ4IC1tYXZ4MiAtbWZtYTQgLW14b3AgLW1hZXMgLW1wY2xtdWwgLW1w b3BjbnQgLW1hYm0gLW1semNudCAtbWJtaSAtbWJtaTIgLW10Ym0gLW1sd3Ag LW1mc2dzYmFzZSAtbXJkcm5kIC1tZjE2YyAtbWZtYSAtbXJ0bSAtbXJkc2Vl ZCAtbXByZmNodyAtbWFkeCAtbWZ4c3IgLW14c2F2ZW9wdCAtbWF2eDUxMmYg LW1hdng1MTJlciAtbWF2eDUxMmNkIC1tYXZ4NTEycGYgLW1zaGEgLW1wcmVm ZXRjaHd0MSAtbXhzYXZlYyAtbXhzYXZlcyAtbWNsZmx1c2hvcHQgLW1hdng1 MTJ2bCAtbWF2eDUxMmRxIC1tYXZ4NTEyYncgLW1hdng1MTJ2Ym1pIC1tYXZ4 NTEyaWZtYSAtbWF2eDUxMjRmbWFwcyAtbWF2eDUxMjR2bm5pdyAtbWF2eDUx MnZwb3BjbnRkcSAtbWNsd2IgLW1td2FpdHggLW1jbHplcm8gLW1wa3UgLW1z Z3ggLW1yZHBpZCAtbWdmbmkgLW1hdng1MTJiaXRhbGcgLW1wY29uZmlnIC1t d2Jub2ludmQiIH0gKi8KIC8qIHsgZGctYWRkLW9wdGlvbnMgYmluZF9waWNf bG9jYWxseSB9ICovCiAKICNpbmNsdWRlIDxtbV9tYWxsb2MuaD4KZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZS0xNC5j IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTE0LmMKaW5k ZXggZmIyYzM1YS4uMGY2NjNiZSAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTE0LmMKKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTE0LmMKQEAgLTEsNSArMSw1IEBACiAv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLwotLyogeyBkZy1vcHRpb25zICItTzAg LVdlcnJvci1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbiAtbWFyY2g9 azggLW1zc2U0YSAtbTNkbm93IC1tYXZ4IC1tYXZ4MiAtbWZtYTQgLW14b3Ag LW1hZXMgLW1wY2xtdWwgLW1wb3BjbnQgLW1hYm0gLW1semNudCAtbWJtaSAt bWJtaTIgLW10Ym0gLW1sd3AgLW1mc2dzYmFzZSAtbXJkcm5kIC1tZjE2YyAt bWZtYSAtbXJ0bSAtbXJkc2VlZCAtbXByZmNodyAtbWFkeCAtbWZ4c3IgLW14 c2F2ZW9wdCAtbWF2eDUxMmYgLW1hdng1MTJlciAtbWF2eDUxMmNkIC1tYXZ4 NTEycGYgLW1zaGEgLW1wcmVmZXRjaHd0MSAtbXhzYXZlYyAtbXhzYXZlcyAt bWNsZmx1c2hvcHQgLW1hdng1MTJkcSAtbWF2eDUxMmJ3IC1tYXZ4NTEydmwg LW1hdng1MTJpZm1hIC1tYXZ4NTEydmJtaSAtbWF2eDUxMjRmbWFwcyAtbWF2 eDUxMjR2bm5pdyAtbWF2eDUxMnZwb3BjbnRkcSAtbWNsd2IgLW1td2FpdHgg LW1jbHplcm8gLW1wa3UgLW1zZ3ggLW1yZHBpZCAtbWdmbmkiIH0gKi8KKy8q IHsgZGctb3B0aW9ucyAiLU8wIC1XZXJyb3ItaW1wbGljaXQtZnVuY3Rpb24t ZGVjbGFyYXRpb24gLW1hcmNoPWs4IC1tc3NlNGEgLW0zZG5vdyAtbWF2eCAt bWF2eDIgLW1mbWE0IC1teG9wIC1tYWVzIC1tcGNsbXVsIC1tcG9wY250IC1t YWJtIC1tbHpjbnQgLW1ibWkgLW1ibWkyIC1tdGJtIC1tbHdwIC1tZnNnc2Jh c2UgLW1yZHJuZCAtbWYxNmMgLW1mbWEgLW1ydG0gLW1yZHNlZWQgLW1wcmZj aHcgLW1hZHggLW1meHNyIC1teHNhdmVvcHQgLW1hdng1MTJmIC1tYXZ4NTEy ZXIgLW1hdng1MTJjZCAtbWF2eDUxMnBmIC1tc2hhIC1tcHJlZmV0Y2h3dDEg LW14c2F2ZWMgLW14c2F2ZXMgLW1jbGZsdXNob3B0IC1tYXZ4NTEyZHEgLW1h dng1MTJidyAtbWF2eDUxMnZsIC1tYXZ4NTEyaWZtYSAtbWF2eDUxMnZibWkg LW1hdng1MTI0Zm1hcHMgLW1hdng1MTI0dm5uaXcgLW1hdng1MTJ2cG9wY250 ZHEgLW1jbHdiIC1tbXdhaXR4IC1tY2x6ZXJvIC1tcGt1IC1tc2d4IC1tcmRw aWQgLW1nZm5pIC1tcGNvbmZpZyAtbXdibm9pbnZkIiB9ICovCiAvKiB7IGRn LWFkZC1vcHRpb25zIGJpbmRfcGljX2xvY2FsbHkgfSAqLwogCiAjaW5jbHVk ZSA8bW1fbWFsbG9jLmg+CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvaTM4Ni9zc2UtMjMuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9pMzg2L3NzZS0yMy5jCmluZGV4IDAwZDMwYmEuLjYzMjg1MDMgMTAw NjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZS0y My5jCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZS0y My5jCkBAIC02NzYsNiArNjc2LDYgQEAKICNkZWZpbmUgX19idWlsdGluX2lh MzJfdnBjbG11bHFkcV92MmRpKEEsIEIsIEMpICBfX2J1aWx0aW5faWEzMl92 cGNsbXVscWRxX3YyZGkoQSwgQiwgMSkgCiAjZGVmaW5lIF9fYnVpbHRpbl9p YTMyX3ZwY2xtdWxxZHFfdjhkaShBLCBCLCBDKSAgX19idWlsdGluX2lhMzJf dnBjbG11bHFkcV92OGRpKEEsIEIsIDEpIAogCi0jcHJhZ21hIEdDQyB0YXJn ZXQgKCJzc2U0YSwzZG5vdyxhdngsYXZ4MixmbWE0LHhvcCxhZXMscGNsbXVs LHBvcGNudCxhYm0sbHpjbnQsYm1pLGJtaTIsdGJtLGx3cCxmc2dzYmFzZSxy ZHJuZCxmMTZjLGZtYSxydG0scmRzZWVkLHByZmNodyxhZHgsZnhzcix4c2F2 ZW9wdCxhdng1MTJmLGF2eDUxMmVyLGF2eDUxMmNkLGF2eDUxMnBmLHNoYSxw cmVmZXRjaHd0MSx4c2F2ZWMseHNhdmVzLGNsZmx1c2hvcHQsYXZ4NTEyYncs YXZ4NTEyZHEsYXZ4NTEydmwsYXZ4NTEydmJtaSxhdng1MTJpZm1hLGF2eDUx MjRmbWFwcyxhdng1MTI0dm5uaXcsYXZ4NTEydnBvcGNudGRxLGNsd2IsbXdh aXR4LGNsemVybyxwa3Usc2d4LHJkcGlkLGdmbmksYXZ4NTEydmJtaTIsdnBj bG11bHFkcSxhdng1MTJiaXRhbGciKQorI3ByYWdtYSBHQ0MgdGFyZ2V0ICgi c3NlNGEsM2Rub3csYXZ4LGF2eDIsZm1hNCx4b3AsYWVzLHBjbG11bCxwb3Bj bnQsYWJtLGx6Y250LGJtaSxibWkyLHRibSxsd3AsZnNnc2Jhc2UscmRybmQs ZjE2YyxmbWEscnRtLHJkc2VlZCxwcmZjaHcsYWR4LGZ4c3IseHNhdmVvcHQs YXZ4NTEyZixhdng1MTJlcixhdng1MTJjZCxhdng1MTJwZixzaGEscHJlZmV0 Y2h3dDEseHNhdmVjLHhzYXZlcyxjbGZsdXNob3B0LGF2eDUxMmJ3LGF2eDUx MmRxLGF2eDUxMnZsLGF2eDUxMnZibWksYXZ4NTEyaWZtYSxhdng1MTI0Zm1h cHMsYXZ4NTEyNHZubml3LGF2eDUxMnZwb3BjbnRkcSxjbHdiLG13YWl0eCxj bHplcm8scGt1LHNneCxyZHBpZCxnZm5pLGF2eDUxMnZibWkyLHZwY2xtdWxx ZHEsYXZ4NTEyYml0YWxnLHBjb25maWcsd2Jub2ludmQiKQogCiAjaW5jbHVk ZSA8eDg2aW50cmluLmg+CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvaTM4Ni93YmludmQtMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2kzODYvd2JpbnZkLTEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi43ODU0Y2MyCi0tLSAvZGV2L251bGwKKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvd2JpbnZkLTEuYwpAQCAtMCww ICsxLDExIEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1v cHRpb25zICItTzIiIH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyAid2JpbnZkIiAyIH0gfSAqLworCisjaW5jbHVkZSAiaW1t aW50cmluLmgiCisKK3ZvbGF0aWxlIHZvaWQKK3Rlc3QgKCkKK3sKKyAgX3di aW52ZCgpOworfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYvd2Jub2ludmQtMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYvd2Jub2ludmQtMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmJkYTg0Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni93Ym5vaW52ZC0xLmMKQEAgLTAs MCArMSwxMCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGct b3B0aW9ucyAiLU8yIC1td2Jub2ludmQiIH0gKi8KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyAid2Jub2ludmQiIDIgfSB9ICovCisK KyNpbmNsdWRlICJ4ODZpbnRyaW4uaCIKKwordm9pZCB0ZXN0ICgpCit7Cisg IF93Ym5vaW52ZCgpOworfQotLSAKMi41LjUKCg== --_002_DC8A343E1B673F4AA224650A1F844CCD28271CIRSMSX103gercorpi_--