From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 51884 invoked by alias); 31 May 2019 10:28:55 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 51875 invoked by uid 89); 31 May 2019 10:28:55 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-20.3 required=5.0 tests=AWL,BAYES_00,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=sk:ATTR_CO, sk:attr_co, sk:bt_fn_d, roundevenf X-HELO: mail-ed1-f49.google.com Received: from mail-ed1-f49.google.com (HELO mail-ed1-f49.google.com) (209.85.208.49) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 31 May 2019 10:28:52 +0000 Received: by mail-ed1-f49.google.com with SMTP id n17so13878798edb.0 for ; Fri, 31 May 2019 03:28:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=zv4T6VpAjn+BRRTuKBf4QxDIMTdi7SNQKOT1Iv60sE4=; b=AZeYY+svCPh6nIEDJNxULHfzv4hQJeyjugtUQrNqch630vrZUOT874bU1h9Tl4HUfy tFqhlRmjHvemgdNG1GOvjrk9KXOs2h8lkeCIBRsdLGAsq0KU51dAGIxQK/SLA1Up0u77 RZ/8DQQwKa3+qTM826gN1Ex+WNiRTEBrLMxxIUauunyeiZsctFH+h3OUKcd3YlueS0p/ J9l3O2S/IvK9US9J5Qqq7QEkTw8CziXp/f4MyOgmoA/FV4C7etNU7n8NBedHHuTWUZtT 2cKZJFEXeLmhNffBIpI6aafrDS2AFy5Lc4CL1BAS1bdSEcaBsQ11O25IdgbjyyulmVkG +JrA== MIME-Version: 1.0 References: <20190530213839.GF31586@gate.crashing.org> In-Reply-To: From: Tejas Joshi Date: Fri, 31 May 2019 10:28:00 -0000 Message-ID: Subject: Re: About GSOC. To: gcc@gcc.gnu.org Cc: Martin Jambor , hubicka@ucw.cz Content-Type: multipart/mixed; boundary="000000000000fa49fc058a2c7a81" X-IsSubscribed: yes X-SW-Source: 2019-05/txt/msg00275.txt.bz2 --000000000000fa49fc058a2c7a81 Content-Type: text/plain; charset="UTF-8" Content-length: 2379 Hello. The f128 suffix worked. Based on all the corrections you all pointed out, I have created another patch. I think I took most of the things under consideration but please mention if I missed anything. The following test cases were inspected with this patch. I am not sure if the second test case is supposed to be carried out like I did. Thanks, -Tejas /* { dg-do link } */ extern int link_error (int); #define TEST(FN, VALUE, RESULT) \ if (__builtin_##FN (VALUE) != RESULT) link_error (__LINE__); int main (void) { TEST(roundeven, 0, 0); TEST(roundeven, 0.5, 0); TEST(roundeven, -0.5, 0); TEST(roundeven, 6, 6); TEST(roundeven, -8, -8); TEST(roundeven, 2.5, 2); TEST(roundeven, 3.5, 4); TEST(roundeven, -1.5, -2); TEST(roundeven, 3.499, 3); TEST(roundeven, 3.501, 4); return 0; } second test case : /* { dg-do link } */ /* { dg-add-options float128 } */ /* { dg-require-effective-target float128 } */ extern int link_error (int); #define TEST(FN, VALUE, RESULT) \ if (__builtin_##FN (VALUE) != RESULT) link_error (__LINE__); int main (void) { TEST(roundevenf128, (0x1p64+0.5), (0x1p64)); return 0; } On Fri, 31 May 2019 at 15:41, Martin Jambor wrote: > > On Thu, May 30 2019, Segher Boessenkool wrote: > > On Thu, May 30, 2019 at 07:08:45PM +0200, Martin Jambor wrote: > >> Interesting, I was also puzzled for a moment. But notice that: > >> > >> int main () > >> { > >> _Float128 x = 18446744073709551617.5f128; > >> _Float128 y = __builtin_roundf128 (x); > >> } > >> > >> behaves as expected... the difference is of course the suffix pegged to > >> the literal constant (see > >> https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Floating-Types.html). > >> > >> I would also expect GCC to use a larger type if a constant does not fit > >> into a double, but apparently that does not happen. I would have to > >> check but it is probably the right behavior according to the standard. > > > > 6.4.4.2/4: "An unsuffixed floating constant has type double." I don't > > think your suggestion would be okay? > > Sorry if I was not clear but I was definitely not suggesting that we > change this (or anything). I wrote that I was also surprised but > believed that GCC was doing the correct thing. > > Thanks for pointing out where exactly the standard says what has to be > done though. > > Martin --000000000000fa49fc058a2c7a81 Content-Type: text/x-patch; charset="US-ASCII"; name="roundeven.patch" Content-Disposition: attachment; filename="roundeven.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jwby8ab80 Content-length: 9590 ZGlmZiAtLWdpdCBhL2djYy9idWlsdGlucy5jIGIvZ2NjL2J1aWx0aW5zLmMK aW5kZXggMjVlMDFlNDA5MmIuLjBiMmQ2YmY4MmY5IDEwMDY0NAotLS0gYS9n Y2MvYnVpbHRpbnMuYworKysgYi9nY2MvYnVpbHRpbnMuYwpAQCAtMjA2Nyw2 ICsyMDY3LDcgQEAgbWF0aGZuX2J1aWx0X2luXzIgKHRyZWUgdHlwZSwgY29t YmluZWRfZm4gZm4pCiAgICAgQ0FTRV9NQVRIRk4gKFJFTVFVTykKICAgICBD QVNFX01BVEhGTl9GTE9BVE4gKFJJTlQpCiAgICAgQ0FTRV9NQVRIRk5fRkxP QVROIChST1VORCkKKyAgICBDQVNFX01BVEhGTiAoUk9VTkRFVkVOKQogICAg IENBU0VfTUFUSEZOIChTQ0FMQikKICAgICBDQVNFX01BVEhGTiAoU0NBTEJM TikKICAgICBDQVNFX01BVEhGTiAoU0NBTEJOKQpkaWZmIC0tZ2l0IGEvZ2Nj L2J1aWx0aW5zLmRlZiBiL2djYy9idWlsdGlucy5kZWYKaW5kZXggZWY4OTcy OWZkMGMuLmYyODRhM2VhZTNiIDEwMDY0NAotLS0gYS9nY2MvYnVpbHRpbnMu ZGVmCisrKyBiL2djYy9idWlsdGlucy5kZWYKQEAgLTU0MiwxMiArNTQyLDE4 IEBAIERFRl9DOTlfQlVJTFRJTiAgICAgICAgKEJVSUxUX0lOX1JJTlRMLCAi cmludGwiLCBCVF9GTl9MT05HRE9VQkxFX0xPTkdET1VCTEUsIEFUCiAjZGVm aW5lIFJJTlRfVFlQRShGKSBCVF9GTl8jI0YjI18jI0YKIERFRl9FWFRfTElC X0ZMT0FUTl9OWF9CVUlMVElOUyAoQlVJTFRfSU5fUklOVCwgInJpbnQiLCBS SU5UX1RZUEUsIEFUVFJfQ09OU1RfTk9USFJPV19MRUFGX0xJU1QpCiAjdW5k ZWYgUklOVF9UWVBFCitERUZfRVhUX0xJQl9CVUlMVElOICAgIChCVUlMVF9J Tl9ST1VOREVWRU4sICJyb3VuZGV2ZW4iLCBCVF9GTl9ET1VCTEVfRE9VQkxF LCBBVFRSX0NPTlNUX05PVEhST1dfTEVBRl9MSVNUKQorREVGX0VYVF9MSUJf QlVJTFRJTiAgICAoQlVJTFRfSU5fUk9VTkRFVkVORiwgInJvdW5kZXZlbmYi LCBCVF9GTl9GTE9BVF9GTE9BVCwgQVRUUl9DT05TVF9OT1RIUk9XX0xFQUZf TElTVCkKK0RFRl9FWFRfTElCX0JVSUxUSU4gICAgKEJVSUxUX0lOX1JPVU5E RVZFTkwsICJyb3VuZGV2ZW5sIiwgQlRfRk5fTE9OR0RPVUJMRV9MT05HRE9V QkxFLCBBVFRSX0NPTlNUX05PVEhST1dfTEVBRl9MSVNUKQogREVGX0M5OV9C VUlMVElOICAgICAgICAoQlVJTFRfSU5fUk9VTkQsICJyb3VuZCIsIEJUX0ZO X0RPVUJMRV9ET1VCTEUsIEFUVFJfQ09OU1RfTk9USFJPV19MRUFGX0xJU1Qp CiBERUZfQzk5X0JVSUxUSU4gICAgICAgIChCVUlMVF9JTl9ST1VOREYsICJy b3VuZGYiLCBCVF9GTl9GTE9BVF9GTE9BVCwgQVRUUl9DT05TVF9OT1RIUk9X X0xFQUZfTElTVCkKIERFRl9DOTlfQlVJTFRJTiAgICAgICAgKEJVSUxUX0lO X1JPVU5ETCwgInJvdW5kbCIsIEJUX0ZOX0xPTkdET1VCTEVfTE9OR0RPVUJM RSwgQVRUUl9DT05TVF9OT1RIUk9XX0xFQUZfTElTVCkKICNkZWZpbmUgUk9V TkRfVFlQRShGKSBCVF9GTl8jI0YjI18jI0YKIERFRl9FWFRfTElCX0ZMT0FU Tl9OWF9CVUlMVElOUyAoQlVJTFRfSU5fUk9VTkQsICJyb3VuZCIsIFJPVU5E X1RZUEUsIEFUVFJfQ09OU1RfTk9USFJPV19MRUFGX0xJU1QpCiAjdW5kZWYg Uk9VTkRfVFlQRQorI2RlZmluZSBST1VOREVWRU5fVFlQRShGKSBCVF9GTl8j I0YjI18jI0YKK0RFRl9FWFRfTElCX0ZMT0FUTl9OWF9CVUlMVElOUyAoQlVJ TFRfSU5fUk9VTkRFVkVOLCAicm91bmRldmVuIiwgUk9VTkRFVkVOX1RZUEUs IEFUVFJfQ09OU1RfTk9USFJPV19MRUFGX0xJU1QpCisjdW5kZWYgUk9VTkRF VkVOX1RZUEUKIERFRl9FWFRfTElCX0JVSUxUSU4gICAgKEJVSUxUX0lOX1ND QUxCLCAic2NhbGIiLCBCVF9GTl9ET1VCTEVfRE9VQkxFX0RPVUJMRSwgQVRU Ul9NQVRIRk5fRlBST1VORElOR19FUlJOTykKIERFRl9FWFRfTElCX0JVSUxU SU4gICAgKEJVSUxUX0lOX1NDQUxCRiwgInNjYWxiZiIsIEJUX0ZOX0ZMT0FU X0ZMT0FUX0ZMT0FULCBBVFRSX01BVEhGTl9GUFJPVU5ESU5HX0VSUk5PKQog REVGX0VYVF9MSUJfQlVJTFRJTiAgICAoQlVJTFRfSU5fU0NBTEJMLCAic2Nh bGJsIiwgQlRfRk5fTE9OR0RPVUJMRV9MT05HRE9VQkxFX0xPTkdET1VCTEUs IEFUVFJfTUFUSEZOX0ZQUk9VTkRJTkdfRVJSTk8pCmRpZmYgLS1naXQgYS9n Y2MvZm9sZC1jb25zdC1jYWxsLmMgYi9nY2MvZm9sZC1jb25zdC1jYWxsLmMK aW5kZXggMDZhNDIwNjAxYzAuLjU0MzE1ZDA1N2EyIDEwMDY0NAotLS0gYS9n Y2MvZm9sZC1jb25zdC1jYWxsLmMKKysrIGIvZ2NjL2ZvbGQtY29uc3QtY2Fs bC5jCkBAIC03OTIsNiArNzkyLDE1IEBAIGZvbGRfY29uc3RfY2FsbF9zcyAo cmVhbF92YWx1ZSAqcmVzdWx0LCBjb21iaW5lZF9mbiBmbiwKIAl9CiAgICAg ICByZXR1cm4gZmFsc2U7CiAKKyAgICBDQVNFX0NGTl9ST1VOREVWRU46Cisg ICAgQ0FTRV9DRk5fUk9VTkRFVkVOX0ZOOgorICAgICAgaWYgKCFSRUFMX1ZB TFVFX0lTTkFOICgqYXJnKSB8fCAhZmxhZ19lcnJub19tYXRoKQorICB7Cisg ICAgcmVhbF9yb3VuZGV2ZW4gKHJlc3VsdCwgZm9ybWF0LCBhcmcpOworICAg IHJldHVybiB0cnVlOworICB9CisgICAgICByZXR1cm4gZmFsc2U7CisKICAg ICBDQVNFX0NGTl9MT0dCOgogICAgICAgcmV0dXJuIGZvbGRfY29uc3RfbG9n YiAocmVzdWx0LCBhcmcsIGZvcm1hdCk7CiAKQEAgLTg1NCw2ICs4NjMsMTAg QEAgZm9sZF9jb25zdF9jYWxsX3NzICh3aWRlX2ludCAqcmVzdWx0LCBjb21i aW5lZF9mbiBmbiwKICAgICAgIHJldHVybiBmb2xkX2NvbnN0X2NvbnZlcnNp b24gKHJlc3VsdCwgcmVhbF9yb3VuZCwgYXJnLAogCQkJCSAgICBwcmVjaXNp b24sIGZvcm1hdCk7CiAKKyAgICBDQVNFX0NGTl9ST1VOREVWRU46CisgICAg Q0FTRV9DRk5fUk9VTkRFVkVOX0ZOOgorICAgICAgcmV0dXJuIGZvbGRfY29u c3RfY29udmVyc2lvbiAocmVzdWx0LCByZWFsX3JvdW5kZXZlbiwgYXJnLCBw cmVjaXNpb24sIGZvcm1hdCk7CisKICAgICBDQVNFX0NGTl9JUklOVDoKICAg ICBDQVNFX0NGTl9MUklOVDoKICAgICBDQVNFX0NGTl9MTFJJTlQ6CmRpZmYg LS1naXQgYS9nY2MvZm9sZC1jb25zdC5jIGIvZ2NjL2ZvbGQtY29uc3QuYwpp bmRleCA1OWNlZGVhZmQ3MS4uYWI5NmYxOTdkNWYgMTAwNjQ0Ci0tLSBhL2dj Yy9mb2xkLWNvbnN0LmMKKysrIGIvZ2NjL2ZvbGQtY29uc3QuYwpAQCAtMzI5 LDYgKzMyOSw4IEBAIG5lZ2F0ZV9tYXRoZm5fcCAoY29tYmluZWRfZm4gZm4p CiAgICAgQ0FTRV9DRk5fTExST1VORDoKICAgICBDQVNFX0NGTl9MUk9VTkQ6 CiAgICAgQ0FTRV9DRk5fUk9VTkQ6CisgICAgQ0FTRV9DRk5fUk9VTkRFVkVO OgorICAgIENBU0VfQ0ZOX1JPVU5ERVZFTl9GTjoKICAgICBDQVNFX0NGTl9T SU46CiAgICAgQ0FTRV9DRk5fU0lOSDoKICAgICBDQVNFX0NGTl9UQU46CkBA IC0xMzA2MCw2ICsxMzA2Miw4IEBAIHRyZWVfY2FsbF9ub25uZWdhdGl2ZV93 YXJudl9wICh0cmVlIHR5cGUsIGNvbWJpbmVkX2ZuIGZuLCB0cmVlIGFyZzAs IHRyZWUgYXJnMSwKICAgICBDQVNFX0NGTl9SSU5UX0ZOOgogICAgIENBU0Vf Q0ZOX1JPVU5EOgogICAgIENBU0VfQ0ZOX1JPVU5EX0ZOOgorICAgIENBU0Vf Q0ZOX1JPVU5ERVZFTjoKKyAgICBDQVNFX0NGTl9ST1VOREVWRU5fRk46CiAg ICAgQ0FTRV9DRk5fU0NBTEI6CiAgICAgQ0FTRV9DRk5fU0NBTEJMTjoKICAg ICBDQVNFX0NGTl9TQ0FMQk46CkBAIC0xMzU4Myw2ICsxMzU4Nyw4IEBAIGlu dGVnZXJfdmFsdWVkX3JlYWxfY2FsbF9wIChjb21iaW5lZF9mbiBmbiwgdHJl ZSBhcmcwLCB0cmVlIGFyZzEsIGludCBkZXB0aCkKICAgICBDQVNFX0NGTl9S SU5UX0ZOOgogICAgIENBU0VfQ0ZOX1JPVU5EOgogICAgIENBU0VfQ0ZOX1JP VU5EX0ZOOgorICAgIENBU0VfQ0ZOX1JPVU5ERVZFTjoKKyAgICBDQVNFX0NG Tl9ST1VOREVWRU5fRk46CiAgICAgQ0FTRV9DRk5fVFJVTkM6CiAgICAgQ0FT RV9DRk5fVFJVTkNfRk46CiAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdp dCBhL2djYy9yZWFsLmMgYi9nY2MvcmVhbC5jCmluZGV4IGY4MjJhZTgyZDYx Li41NDFmYTZiNmU0MyAxMDA2NDQKLS0tIGEvZ2NjL3JlYWwuYworKysgYi9n Y2MvcmVhbC5jCkBAIC01MDEwLDYgKzUwMTAsODAgQEAgcmVhbF9yb3VuZCAo UkVBTF9WQUxVRV9UWVBFICpyLCBmb3JtYXRfaGVscGVyIGZtdCwKICAgICBy ZWFsX2NvbnZlcnQgKHIsIGZtdCwgcik7CiB9CiAKKy8qIFJldHVybiB0cnVl IGlmIGludGVnZXIgcGFydCBvZiBSIGlzIGV2ZW4sIGVsc2UgcmV0dXJuIGZh bHNlLiAqLworCitib29sCitpc19ldmVuIChSRUFMX1ZBTFVFX1RZUEUgKnIp Cit7CisgIGlmIChSRUFMX0VYUCAocikgPD0gMCkKKyAgICByZXR1cm4gZmFs c2U7CisKKyAgZWxzZSBpZiAoUkVBTF9FWFAgKHIpIDwgU0lHTklGSUNBTkRf QklUUykKKyAgeworICAgIHVuc2lnbmVkIGludCBuID0gU0lHTklGSUNBTkRf QklUUyAtIFJFQUxfRVhQIChyKTsKKyAgICBpbnQgdyA9IG4gLyBIT1NUX0JJ VFNfUEVSX0xPTkc7CisKKyAgICB1bnNpZ25lZCBsb25nIG51bSA9ICgodW5z aWduZWQgbG9uZykxIDw8IChuICUgSE9TVF9CSVRTX1BFUl9MT05HKSk7CisK KyAgICBpZiAoKHItPnNpZ1t3XSAmIG51bSkgPT0gMCkKKyAgICAgIHJldHVy biB0cnVlOworICB9CisgIHJldHVybiBmYWxzZTsKK30KKworLyogUmV0dXJu IHRydWUgaWYgUiBpcyBoYWxmd2F5IGJldHdlZW4gdHdvIGludGVnZXJzLCBl bHNlIHJldHVybiBmYWxzZS4gKi8KKworYm9vbAoraXNfaGFsZndheV9iZWxv dyAoY29uc3QgUkVBTF9WQUxVRV9UWVBFICpyKQoreworICBpZiAoUkVBTF9F WFAgKHIpIDwgMCkKKyAgICByZXR1cm4gZmFsc2U7CisKKyAgaWYgKFJFQUxf RVhQIChyKSA9PSAwKQorICB7CisgICAgdW5zaWduZWQgbG9uZyB0ZW1wID0g KCh1bnNpZ25lZCBsb25nKTEgPDwgNjMpOworCisgICAgaWYgKCgoci0+c2ln W1NJR1NaLTFdICYgdGVtcCkgIT0gMCkgJiYgKChyLT5zaWdbU0lHU1otMV0g JiAodGVtcC0xKSkgPT0gMCkpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBl bHNlCisgICAgICByZXR1cm4gZmFsc2U7CisgIH0KKworICBlbHNlIGlmIChS RUFMX0VYUCAocikgPCBTSUdOSUZJQ0FORF9CSVRTKQorICB7CisgICAgdW5z aWduZWQgaW50IG4gPSBTSUdOSUZJQ0FORF9CSVRTIC0gUkVBTF9FWFAgKHIp OworICAgIGludCBpLCB3ID0gbiAvIEhPU1RfQklUU19QRVJfTE9ORzsKKwor ICAgIGZvciAoaSA9IDA7IGkgPCB3OyArK2kpCisgICAgeworICAgICAgaWYg KHItPnNpZ1tpXSAhPSAwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg fQorCisgICAgdW5zaWduZWQgbG9uZyBudW0gPSAoKHVuc2lnbmVkIGxvbmcp MSA8PCAoKG4gLSAxKSAlIEhPU1RfQklUU19QRVJfTE9ORykpOworCisgICAg aWYgKCgoci0+c2lnW3ddICYgbnVtKSAhPSAwKSAmJiAoKHItPnNpZ1t3XSAm IChudW0tMSkpID09IDApKQorICAgICAgcmV0dXJuIHRydWU7CisgIH0KKyAg cmV0dXJuIGZhbHNlOworfQorCisvKiBSb3VuZCBYIHRvIG5lYXJlc3QgaW50 ZWdlciwgcm91bmRpbmcgaGFsZndheSBjYXNlcyB0b3dhcmRzIGV2ZW4uICov CisKK3ZvaWQKK3JlYWxfcm91bmRldmVuIChSRUFMX1ZBTFVFX1RZUEUgKnIs IGZvcm1hdF9oZWxwZXIgZm10LAorCQljb25zdCBSRUFMX1ZBTFVFX1RZUEUg KngpCit7CisgIGlmIChpc19oYWxmd2F5X2JlbG93ICh4KSkKKyAgeworICAg IGRvX2FkZCAociwgeCwgJmRjb25zdGhhbGYsIHgtPnNpZ24pOworICAgIGlm ICghaXNfZXZlbiAocikpCisgICAgICBkb19hZGQgKHIsIHIsICZkY29uc3Rt MSwgeC0+c2lnbik7CisgIH0KKyAgZWxzZQorICAgIHJlYWxfcm91bmQgKHIs IGZtdCwgeCk7Cit9CisKIC8qIFNldCB0aGUgc2lnbiBvZiBSIHRvIHRoZSBz aWduIG9mIFguICAqLwogCiB2b2lkCmRpZmYgLS1naXQgYS9nY2MvcmVhbC5o IGIvZ2NjL3JlYWwuaAppbmRleCAwY2U0MjU2NTcwOC4uZWJlNjZkMjM0YWYg MTAwNjQ0Ci0tLSBhL2djYy9yZWFsLmgKKysrIGIvZ2NjL3JlYWwuaApAQCAt NDEsMTEgKzQxLDE4IEBAIHN0cnVjdCBHVFkoKCkpIHJlYWxfdmFsdWUgewog ICAgICBzdXJlIHRoZXkncmUgcGFja2VkIHRvZ2V0aGVyLCBvdGhlcndpc2Ug UkVBTF9WQUxVRV9UWVBFX1NJWkUgd2lsbAogICAgICBiZSBtaXNjb21wdXRl ZC4gICovCiAgIHVuc2lnbmVkIGludCAvKiBFTlVNX0JJVEZJRUxEIChyZWFs X3ZhbHVlX2NsYXNzKSAqLyBjbCA6IDI7CisgIC8qIDEgaWYgbnVtYmVyIGlz IGRlY2ltYWwgZmxvYXRpbmcgcG9pbnQgKi8KICAgdW5zaWduZWQgaW50IGRl Y2ltYWwgOiAxOworICAvKiAxIGlmIG51bWJlciBpcyBuZWdhdGl2ZSAqLwog ICB1bnNpZ25lZCBpbnQgc2lnbiA6IDE7CisgIC8qIDEgaWYgbnVtYmVyIGlz IHNpZ25hbGxpbmcgKi8KICAgdW5zaWduZWQgaW50IHNpZ25hbGxpbmcgOiAx OworICAvKiAxIGlmIG51bWJlciBpcyBjYW5vbmljYWwKKyAgQWxsIGFyZSBn ZW5lcmFsbHkgdXNlZCBmb3IgaGFuZGxpbmcgY2FzZXMgaW4gcmVhbC5jICov CiAgIHVuc2lnbmVkIGludCBjYW5vbmljYWwgOiAxOworICAvKiB1bmJpYXNl ZCBleHBvbmVudCBvZiB0aGUgbnVtYmVyICovCiAgIHVuc2lnbmVkIGludCB1 ZXhwIDogRVhQX0JJVFM7CisgIC8qIHNpZ25pZmljYW5kIG9mIHRoZSBudW1i ZXIgKi8KICAgdW5zaWduZWQgbG9uZyBzaWdbU0lHU1pdOwogfTsKIApAQCAt NDk5LDYgKzUwNiw4IEBAIGV4dGVybiB2b2lkIHJlYWxfY2VpbCAoUkVBTF9W QUxVRV9UWVBFICosIGZvcm1hdF9oZWxwZXIsCiAJCSAgICAgICBjb25zdCBS RUFMX1ZBTFVFX1RZUEUgKik7CiBleHRlcm4gdm9pZCByZWFsX3JvdW5kIChS RUFMX1ZBTFVFX1RZUEUgKiwgZm9ybWF0X2hlbHBlciwKIAkJCWNvbnN0IFJF QUxfVkFMVUVfVFlQRSAqKTsKK2V4dGVybiB2b2lkIHJlYWxfcm91bmRldmVu IChSRUFMX1ZBTFVFX1RZUEUgKiwgZm9ybWF0X2hlbHBlciwKKyAgICAgIGNv bnN0IFJFQUxfVkFMVUVfVFlQRSAqKTsKIAogLyogU2V0IHRoZSBzaWduIG9m IFIgdG8gdGhlIHNpZ24gb2YgWC4gICovCiBleHRlcm4gdm9pZCByZWFsX2Nv cHlzaWduIChSRUFMX1ZBTFVFX1RZUEUgKiwgY29uc3QgUkVBTF9WQUxVRV9U WVBFICopOwo= --000000000000fa49fc058a2c7a81--