From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 42654 invoked by alias); 30 May 2019 17:27:10 -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 42646 invoked by uid 89); 30 May 2019 17:27:09 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-10.1 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_2,GIT_PATCH_3,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=slight, classification X-HELO: mail-lf1-f48.google.com Received: from mail-lf1-f48.google.com (HELO mail-lf1-f48.google.com) (209.85.167.48) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 30 May 2019 17:27:07 +0000 Received: by mail-lf1-f48.google.com with SMTP id b11so5671350lfa.5 for ; Thu, 30 May 2019 10:27:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=golang-org.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=Kqo8iQ2fyW1eEof8Hj8YK5Z6K3mxGDC2XJwP7SwcYSE=; b=V+u5CbQyEv7A8Jbt/apl99NCUIWcY0t3c7Uc3Jh03rMlpKd4UKxxa+OhpiUIyA+bbn ZW6tsK033tph0F+CivWxML6tNu9AMxfaCDYd+DN0yhgE+OWMa5jbC0jZniHBty7d6+rP azWw6o8cXS4vyYZ0qD4yAYNm0JvRX07UNMWUddmIwtAcopKtEVGeIsQwBRNs6XQd/fgL PDm052QAFl7zdxZqE9+lIpKkCUVBkGSNQvxoHV5gMixQCYFFpIIPegjFzLcoWAFy749a KvdWsk8c6e3xo0qiYaTgwNxmBZ7oeeQeMRKn76SJMCKHJZL/4pblT4cVbOU0RjHyQD12 U3CQ== MIME-Version: 1.0 From: Ian Lance Taylor Date: Thu, 30 May 2019 17:27:00 -0000 Message-ID: Subject: Go patch committed: intrinsify sync/atomic functions To: gcc-patches , gofrontend-dev Content-Type: multipart/mixed; boundary="000000000000e4a076058a1e3451" X-SW-Source: 2019-05/txt/msg02034.txt.bz2 --000000000000e4a076058a1e3451 Content-Type: text/plain; charset="UTF-8" Content-length: 237 This Go frontend patch by Cherry Zhang intrinsifies the sync/atomic functions. It also makes sure not to intrinsify calls in go or defer statements. Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed to mainline. Ian --000000000000e4a076058a1e3451 Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jwaxkrcl0 Content-length: 12993 SW5kZXg6IGdjYy9nby9nb2Zyb250ZW5kL01FUkdFCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIGdjYy9nby9nb2Zyb250ZW5kL01FUkdFCShyZXZpc2lv biAyNzE3NjEpCisrKyBnY2MvZ28vZ29mcm9udGVuZC9NRVJHRQkod29ya2lu ZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLTg0YjgwMDBjMzJmNjcxYzZjYzg5 ZGYxMjkwZWQ2ZTAxNzAzMDg2NDQKKzRkYzYwZDk4OTI5M2QwNzA3MDIwMjRl N2RlYTUyYjk4NDlmNzQ3NzUKIAogVGhlIGZpcnN0IGxpbmUgb2YgdGhpcyBm aWxlIGhvbGRzIHRoZSBnaXQgcmV2aXNpb24gbnVtYmVyIG9mIHRoZSBsYXN0 CiBtZXJnZSBkb25lIGZyb20gdGhlIGdvZnJvbnRlbmQgcmVwb3NpdG9yeS4K SW5kZXg6IGdjYy9nby9nb2Zyb250ZW5kL2V4cHJlc3Npb25zLmNjCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIGdjYy9nby9nb2Zyb250ZW5kL2V4cHJl c3Npb25zLmNjCShyZXZpc2lvbiAyNzE2NjkpCisrKyBnY2MvZ28vZ29mcm9u dGVuZC9leHByZXNzaW9ucy5jYwkod29ya2luZyBjb3B5KQpAQCAtMTA0MzIs NyArMTA0MzIsOCBAQCBDYWxsX2V4cHJlc3Npb246OmRvX2ZsYXR0ZW4oR29n byogZ29nbywKIAogICAvLyBMb3dlciB0byBjb21waWxlciBpbnRyaW5zaWMg aWYgcG9zc2libGUuCiAgIEZ1bmNfZXhwcmVzc2lvbiogZmUgPSB0aGlzLT5m bl8tPmZ1bmNfZXhwcmVzc2lvbigpOwotICBpZiAoZmUgIT0gTlVMTAorICBp ZiAoIXRoaXMtPmlzX2NvbmN1cnJlbnRfICYmICF0aGlzLT5pc19kZWZlcnJl ZF8KKyAgICAgICYmIGZlICE9IE5VTEwKICAgICAgICYmIChmZS0+bmFtZWRf b2JqZWN0KCktPmlzX2Z1bmN0aW9uX2RlY2xhcmF0aW9uKCkKICAgICAgICAg ICB8fCBmZS0+bmFtZWRfb2JqZWN0KCktPmlzX2Z1bmN0aW9uKCkpKQogICAg IHsKQEAgLTEwNDcxLDYgKzEwNDcyLDczIEBAIENhbGxfZXhwcmVzc2lvbjo6 aW50cmluc2lmeShHb2dvKiBnb2dvLAogICBpbnQgaW50X3NpemUgPSBpbnRf dHlwZS0+bmFtZWRfdHlwZSgpLT5yZWFsX3R5cGUoKS0+aW50ZWdlcl90eXBl KCktPmJpdHMoKSAvIDg7CiAgIGludCBwdHJfc2l6ZSA9IHVpbnRwdHJfdHlw ZS0+bmFtZWRfdHlwZSgpLT5yZWFsX3R5cGUoKS0+aW50ZWdlcl90eXBlKCkt PmJpdHMoKSAvIDg7CiAKKyAgaWYgKHBhY2thZ2UgPT0gInN5bmMvYXRvbWlj IikKKyAgICB7CisgICAgICAvLyBzeW5jL2F0b21pYyBmdW5jdGlvbnMgYW5k IHJ1bnRpbWUvaW50ZXJuYWwvYXRvbWljIGZ1bmN0aW9ucworICAgICAgLy8g YXJlIHZlcnkgc2ltaWxhci4gSW4gb3JkZXIgbm90IHRvIGR1cGxpY2F0ZSBj b2RlLCB3ZSBqdXN0CisgICAgICAvLyByZWRpcmVjdCB0byB0aGUgbGF0dGVy IGFuZCBsZXQgdGhlIGNvZGUgYmVsb3cgdG8gaGFuZGxlIHRoZW0uCisgICAg ICAvLyBJbiBjYXNlIHRoZXJlIGlzIG5vIGVxdWl2YWxlbnQgZnVuY3Rpb25z IChzbGlnaHQgdmFyaWFuY2UKKyAgICAgIC8vIGluIHR5cGVzKSwgd2UganVz dCBtYWtlIGFuIGFydGlmaWNpYWwgbmFtZSAoYmVnaW4gd2l0aCAnJCcpLgor ICAgICAgLy8gTm90ZTogbm8gU3RvcmVQb2ludGVyLCBTd2FwUG9pbnRlciwg YW5kIENvbXBhcmVBbmRTd2FwUG9pbnRlciwKKyAgICAgIC8vIGFzIHRoZXkg bmVlZCB3cml0ZSBiYXJyaWVycy4KKyAgICAgIGlmIChuYW1lID09ICJMb2Fk SW50MzIiKQorICAgICAgICBuYW1lID0gIiRMb2FkaW50MzIiOworICAgICAg ZWxzZSBpZiAobmFtZSA9PSAiTG9hZEludDY0IikKKyAgICAgICAgbmFtZSA9 ICJMb2FkaW50NjQiOworICAgICAgZWxzZSBpZiAobmFtZSA9PSAiTG9hZFVp bnQzMiIpCisgICAgICAgIG5hbWUgPSAiTG9hZCI7CisgICAgICBlbHNlIGlm IChuYW1lID09ICJMb2FkVWludDY0IikKKyAgICAgICAgbmFtZSA9ICJMb2Fk NjQiOworICAgICAgZWxzZSBpZiAobmFtZSA9PSAiTG9hZFVpbnRwdHIiKQor ICAgICAgICBuYW1lID0gIkxvYWR1aW50cHRyIjsKKyAgICAgIGVsc2UgaWYg KG5hbWUgPT0gIkxvYWRQb2ludGVyIikKKyAgICAgICAgbmFtZSA9ICJMb2Fk cCI7CisgICAgICBlbHNlIGlmIChuYW1lID09ICJTdG9yZUludDMyIikKKyAg ICAgICAgbmFtZSA9ICIkU3RvcmVpbnQzMiI7CisgICAgICBlbHNlIGlmIChu YW1lID09ICJTdG9yZUludDY0IikKKyAgICAgICAgbmFtZSA9ICIkU3RvcmVp bnQ2NCI7CisgICAgICBlbHNlIGlmIChuYW1lID09ICJTdG9yZVVpbnQzMiIp CisgICAgICAgIG5hbWUgPSAiU3RvcmUiOworICAgICAgZWxzZSBpZiAobmFt ZSA9PSAiU3RvcmVVaW50NjQiKQorICAgICAgICBuYW1lID0gIlN0b3JlNjQi OworICAgICAgZWxzZSBpZiAobmFtZSA9PSAiU3RvcmVVaW50cHRyIikKKyAg ICAgICAgbmFtZSA9ICJTdG9yZXVpbnRwdHIiOworICAgICAgZWxzZSBpZiAo bmFtZSA9PSAiQWRkSW50MzIiKQorICAgICAgICBuYW1lID0gIiRYYWRkaW50 MzIiOworICAgICAgZWxzZSBpZiAobmFtZSA9PSAiQWRkSW50NjQiKQorICAg ICAgICBuYW1lID0gIlhhZGRpbnQ2NCI7CisgICAgICBlbHNlIGlmIChuYW1l ID09ICJBZGRVaW50MzIiKQorICAgICAgICBuYW1lID0gIlhhZGQiOworICAg ICAgZWxzZSBpZiAobmFtZSA9PSAiQWRkVWludDY0IikKKyAgICAgICAgbmFt ZSA9ICJYYWRkNjQiOworICAgICAgZWxzZSBpZiAobmFtZSA9PSAiQWRkVWlu dHB0ciIpCisgICAgICAgIG5hbWUgPSAiWGFkZHVpbnRwdHIiOworICAgICAg ZWxzZSBpZiAobmFtZSA9PSAiU3dhcEludDMyIikKKyAgICAgICAgbmFtZSA9 ICIkWGNoZ2ludDMyIjsKKyAgICAgIGVsc2UgaWYgKG5hbWUgPT0gIlN3YXBJ bnQ2NCIpCisgICAgICAgIG5hbWUgPSAiJFhjaGdpbnQ2NCI7CisgICAgICBl bHNlIGlmIChuYW1lID09ICJTd2FwVWludDMyIikKKyAgICAgICAgbmFtZSA9 ICJYY2hnIjsKKyAgICAgIGVsc2UgaWYgKG5hbWUgPT0gIlN3YXBVaW50NjQi KQorICAgICAgICBuYW1lID0gIlhjaGc2NCI7CisgICAgICBlbHNlIGlmIChu YW1lID09ICJTd2FwVWludHB0ciIpCisgICAgICAgIG5hbWUgPSAiWGNoZ3Vp bnRwdHIiOworICAgICAgZWxzZSBpZiAobmFtZSA9PSAiQ29tcGFyZUFuZFN3 YXBJbnQzMiIpCisgICAgICAgIG5hbWUgPSAiJENhc2ludDMyIjsKKyAgICAg IGVsc2UgaWYgKG5hbWUgPT0gIkNvbXBhcmVBbmRTd2FwSW50NjQiKQorICAg ICAgICBuYW1lID0gIiRDYXNpbnQ2NCI7CisgICAgICBlbHNlIGlmIChuYW1l ID09ICJDb21wYXJlQW5kU3dhcFVpbnQzMiIpCisgICAgICAgIG5hbWUgPSAi Q2FzIjsKKyAgICAgIGVsc2UgaWYgKG5hbWUgPT0gIkNvbXBhcmVBbmRTd2Fw VWludDY0IikKKyAgICAgICAgbmFtZSA9ICJDYXM2NCI7CisgICAgICBlbHNl IGlmIChuYW1lID09ICJDb21wYXJlQW5kU3dhcFVpbnRwdHIiKQorICAgICAg ICBuYW1lID0gIkNhc3VpbnRwdHIiOworICAgICAgZWxzZQorICAgICAgICBy ZXR1cm4gTlVMTDsKKworICAgICAgcGFja2FnZSA9ICJydW50aW1lL2ludGVy bmFsL2F0b21pYyI7CisgICAgfQorCiAgIGlmIChwYWNrYWdlID09ICJydW50 aW1lIikKICAgICB7CiAgICAgICAvLyBIYW5kbGUgYSBjb3VwbGUgb2Ygc3Bl Y2lhbCBydW50aW1lIGZ1bmN0aW9ucy4gIEluIHRoZSBydW50aW1lCkBAIC0x MDU1Nyw3ICsxMDYyNSw4IEBAIENhbGxfZXhwcmVzc2lvbjo6aW50cmluc2lm eShHb2dvKiBnb2dvLAogICAgICAgaW50IG1lbW9yZGVyID0gX19BVE9NSUNf U0VRX0NTVDsKIAogICAgICAgaWYgKChuYW1lID09ICJMb2FkIiB8fCBuYW1l ID09ICJMb2FkNjQiIHx8IG5hbWUgPT0gIkxvYWRpbnQ2NCIgfHwgbmFtZSA9 PSAiTG9hZHAiCi0gICAgICAgICAgIHx8IG5hbWUgPT0gIkxvYWR1aW50IiB8 fCBuYW1lID09ICJMb2FkdWludHB0ciIgfHwgbmFtZSA9PSAiTG9hZEFjcSIp CisgICAgICAgICAgIHx8IG5hbWUgPT0gIkxvYWR1aW50IiB8fCBuYW1lID09 ICJMb2FkdWludHB0ciIgfHwgbmFtZSA9PSAiTG9hZEFjcSIKKyAgICAgICAg ICAgfHwgbmFtZSA9PSAiJExvYWRpbnQzMiIpCiAgICAgICAgICAgJiYgdGhp cy0+YXJnc18gIT0gTlVMTCAmJiB0aGlzLT5hcmdzXy0+c2l6ZSgpID09IDEp CiAgICAgICAgIHsKICAgICAgICAgICBpZiAoaW50X3NpemUgPCA4ICYmIChu YW1lID09ICJMb2FkNjQiIHx8IG5hbWUgPT0gIkxvYWRpbnQ2NCIpKQpAQCAt MTA1NzcsNiArMTA2NDYsMTEgQEAgQ2FsbF9leHByZXNzaW9uOjppbnRyaW5z aWZ5KEdvZ28qIGdvZ28sCiAgICAgICAgICAgICAgIGNvZGUgPSBSdW50aW1l OjpBVE9NSUNfTE9BRF84OwogICAgICAgICAgICAgICByZXNfdHlwZSA9IHVp bnQ2NF90eXBlOwogICAgICAgICAgICAgfQorICAgICAgICAgIGVsc2UgaWYg KG5hbWUgPT0gIiRMb2FkaW50MzIiKQorICAgICAgICAgICAgeworICAgICAg ICAgICAgICBjb2RlID0gUnVudGltZTo6QVRPTUlDX0xPQURfNDsKKyAgICAg ICAgICAgICAgcmVzX3R5cGUgPSBpbnQzMl90eXBlOworICAgICAgICAgICAg fQogICAgICAgICAgIGVsc2UgaWYgKG5hbWUgPT0gIkxvYWRpbnQ2NCIpCiAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGNvZGUgPSBSdW50aW1lOjpB VE9NSUNfTE9BRF84OwpAQCAtMTA2MTgsMTAgKzEwNjkyLDExIEBAIENhbGxf ZXhwcmVzc2lvbjo6aW50cmluc2lmeShHb2dvKiBnb2dvLAogICAgICAgICB9 CiAKICAgICAgIGlmICgobmFtZSA9PSAiU3RvcmUiIHx8IG5hbWUgPT0gIlN0 b3JlNjQiIHx8IG5hbWUgPT0gIlN0b3JlcE5vV0IiCi0gICAgICAgICAgIHx8 IG5hbWUgPT0gIlN0b3JldWludHB0ciIgfHwgbmFtZSA9PSAiU3RvcmVSZWwi KQorICAgICAgICAgICB8fCBuYW1lID09ICJTdG9yZXVpbnRwdHIiIHx8IG5h bWUgPT0gIlN0b3JlUmVsIgorICAgICAgICAgICB8fCBuYW1lID09ICIkU3Rv cmVpbnQzMiIgfHwgbmFtZSA9PSAiJFN0b3JlaW50NjQiKQogICAgICAgICAg ICYmIHRoaXMtPmFyZ3NfICE9IE5VTEwgJiYgdGhpcy0+YXJnc18tPnNpemUo KSA9PSAyKQogICAgICAgICB7Ci0gICAgICAgICAgaWYgKGludF9zaXplIDwg OCAmJiBuYW1lID09ICJTdG9yZTY0IikKKyAgICAgICAgICBpZiAoaW50X3Np emUgPCA4ICYmIChuYW1lID09ICJTdG9yZTY0IiB8fCBuYW1lID09ICIkU3Rv cmVpbnQ2NCIpKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICAg ICAgICBSdW50aW1lOjpGdW5jdGlvbiBjb2RlOwpAQCAtMTA2MzEsNiArMTA3 MDYsMTAgQEAgQ2FsbF9leHByZXNzaW9uOjppbnRyaW5zaWZ5KEdvZ28qIGdv Z28sCiAgICAgICAgICAgICBjb2RlID0gUnVudGltZTo6QVRPTUlDX1NUT1JF XzQ7CiAgICAgICAgICAgZWxzZSBpZiAobmFtZSA9PSAiU3RvcmU2NCIpCiAg ICAgICAgICAgICBjb2RlID0gUnVudGltZTo6QVRPTUlDX1NUT1JFXzg7Cisg ICAgICAgICAgZWxzZSBpZiAobmFtZSA9PSAiJFN0b3JlaW50MzIiKQorICAg ICAgICAgICAgY29kZSA9IFJ1bnRpbWU6OkFUT01JQ19TVE9SRV80OworICAg ICAgICAgIGVsc2UgaWYgKG5hbWUgPT0gIiRTdG9yZWludDY0IikKKyAgICAg ICAgICAgIGNvZGUgPSBSdW50aW1lOjpBVE9NSUNfU1RPUkVfODsKICAgICAg ICAgICBlbHNlIGlmIChuYW1lID09ICJTdG9yZXVpbnRwdHIiKQogICAgICAg ICAgICAgY29kZSA9IChwdHJfc2l6ZSA9PSA4ID8gUnVudGltZTo6QVRPTUlD X1NUT1JFXzggOiBSdW50aW1lOjpBVE9NSUNfU1RPUkVfNCk7CiAgICAgICAg ICAgZWxzZSBpZiAobmFtZSA9PSAiU3RvcmVwTm9XQiIpCkBAIC0xMDY1MCwx MCArMTA3MjksMTEgQEAgQ2FsbF9leHByZXNzaW9uOjppbnRyaW5zaWZ5KEdv Z28qIGdvZ28sCiAgICAgICAgICAgcmV0dXJuIFJ1bnRpbWU6Om1ha2VfY2Fs bChjb2RlLCBsb2MsIDMsIGExLCBhMiwgYTMpOwogICAgICAgICB9CiAKLSAg ICAgIGlmICgobmFtZSA9PSAiWGNoZyIgfHwgbmFtZSA9PSAiWGNoZzY0IiB8 fCBuYW1lID09ICJYY2hndWludHB0ciIpCisgICAgICBpZiAoKG5hbWUgPT0g IlhjaGciIHx8IG5hbWUgPT0gIlhjaGc2NCIgfHwgbmFtZSA9PSAiWGNoZ3Vp bnRwdHIiCisgICAgICAgICAgIHx8IG5hbWUgPT0gIiRYY2hnaW50MzIiIHx8 IG5hbWUgPT0gIiRYY2hnaW50NjQiKQogICAgICAgICAgICYmIHRoaXMtPmFy Z3NfICE9IE5VTEwgJiYgdGhpcy0+YXJnc18tPnNpemUoKSA9PSAyKQogICAg ICAgICB7Ci0gICAgICAgICAgaWYgKGludF9zaXplIDwgOCAmJiBuYW1lID09 ICJYY2hnNjQiKQorICAgICAgICAgIGlmIChpbnRfc2l6ZSA8IDggJiYgKG5h bWUgPT0gIlhjaGc2NCIgfHwgbmFtZSA9PSAiWGNoZ2ludDY0IikpCiAgICAg ICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgICAgICAgIFJ1bnRpbWU6OkZ1 bmN0aW9uIGNvZGU7CkBAIC0xMDY2OCw2ICsxMDc0OCwxNiBAQCBDYWxsX2V4 cHJlc3Npb246OmludHJpbnNpZnkoR29nbyogZ29nbywKICAgICAgICAgICAg ICAgY29kZSA9IFJ1bnRpbWU6OkFUT01JQ19FWENIQU5HRV84OwogICAgICAg ICAgICAgICByZXNfdHlwZSA9IHVpbnQ2NF90eXBlOwogICAgICAgICAgICAg fQorICAgICAgICAgIGVsc2UgaWYgKG5hbWUgPT0gIiRYY2hnaW50MzIiKQor ICAgICAgICAgICAgeworICAgICAgICAgICAgICBjb2RlID0gUnVudGltZTo6 QVRPTUlDX0VYQ0hBTkdFXzQ7CisgICAgICAgICAgICAgIHJlc190eXBlID0g aW50MzJfdHlwZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBlbHNlIGlm IChuYW1lID09ICIkWGNoZ2ludDY0IikKKyAgICAgICAgICAgIHsKKyAgICAg ICAgICAgICAgY29kZSA9IFJ1bnRpbWU6OkFUT01JQ19FWENIQU5HRV84Owor ICAgICAgICAgICAgICByZXNfdHlwZSA9IGludDY0X3R5cGU7CisgICAgICAg ICAgICB9CiAgICAgICAgICAgZWxzZSBpZiAobmFtZSA9PSAiWGNoZ3VpbnRw dHIiKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICBjb2RlID0gKHB0 cl9zaXplID09IDgKQEAgLTEwNjg1LDEwICsxMDc3NSwxMSBAQCBDYWxsX2V4 cHJlc3Npb246OmludHJpbnNpZnkoR29nbyogZ29nbywKICAgICAgICAgfQog CiAgICAgICBpZiAoKG5hbWUgPT0gIkNhcyIgfHwgbmFtZSA9PSAiQ2FzNjQi IHx8IG5hbWUgPT0gIkNhc3VpbnRwdHIiCi0gICAgICAgICAgIHx8IG5hbWUg PT0gIkNhc3AxIiB8fCBuYW1lID09ICJDYXNSZWwiKQorICAgICAgICAgICB8 fCBuYW1lID09ICJDYXNwMSIgfHwgbmFtZSA9PSAiQ2FzUmVsIgorICAgICAg ICAgICB8fCBuYW1lID09ICIkQ2FzaW50MzIiIHx8IG5hbWUgPT0gIiRDYXNp bnQ2NCIpCiAgICAgICAgICAgJiYgdGhpcy0+YXJnc18gIT0gTlVMTCAmJiB0 aGlzLT5hcmdzXy0+c2l6ZSgpID09IDMpCiAgICAgICAgIHsKLSAgICAgICAg ICBpZiAoaW50X3NpemUgPCA4ICYmIG5hbWUgPT0gIkNhczY0IikKKyAgICAg ICAgICBpZiAoaW50X3NpemUgPCA4ICYmIChuYW1lID09ICJDYXM2NCIgfHwg bmFtZSA9PSAiJENhc2ludDY0IikpCiAgICAgICAgICAgICByZXR1cm4gTlVM TDsKIAogICAgICAgICAgIFJ1bnRpbWU6OkZ1bmN0aW9uIGNvZGU7CkBAIC0x MDcwNyw2ICsxMDc5OCwxMCBAQCBDYWxsX2V4cHJlc3Npb246OmludHJpbnNp ZnkoR29nbyogZ29nbywKICAgICAgICAgICAgIGNvZGUgPSBSdW50aW1lOjpB VE9NSUNfQ09NUEFSRV9FWENIQU5HRV80OwogICAgICAgICAgIGVsc2UgaWYg KG5hbWUgPT0gIkNhczY0IikKICAgICAgICAgICAgIGNvZGUgPSBSdW50aW1l OjpBVE9NSUNfQ09NUEFSRV9FWENIQU5HRV84OworICAgICAgICAgIGVsc2Ug aWYgKG5hbWUgPT0gIiRDYXNpbnQzMiIpCisgICAgICAgICAgICBjb2RlID0g UnVudGltZTo6QVRPTUlDX0NPTVBBUkVfRVhDSEFOR0VfNDsKKyAgICAgICAg ICBlbHNlIGlmIChuYW1lID09ICIkQ2FzaW50NjQiKQorICAgICAgICAgICAg Y29kZSA9IFJ1bnRpbWU6OkFUT01JQ19DT01QQVJFX0VYQ0hBTkdFXzg7CiAg ICAgICAgICAgZWxzZSBpZiAobmFtZSA9PSAiQ2FzdWludHB0ciIpCiAgICAg ICAgICAgICBjb2RlID0gKHB0cl9zaXplID09IDgKICAgICAgICAgICAgICAg ICAgICAgPyBSdW50aW1lOjpBVE9NSUNfQ09NUEFSRV9FWENIQU5HRV84CkBA IC0xMDczMyw3ICsxMDgyOCw3IEBAIENhbGxfZXhwcmVzc2lvbjo6aW50cmlu c2lmeShHb2dvKiBnb2dvLAogICAgICAgICB9CiAKICAgICAgIGlmICgobmFt ZSA9PSAiWGFkZCIgfHwgbmFtZSA9PSAiWGFkZDY0IiB8fCBuYW1lID09ICJY YWRkaW50NjQiCi0gICAgICAgICAgIHx8IG5hbWUgPT0gIlhhZGR1aW50cHRy IikKKyAgICAgICAgICAgfHwgbmFtZSA9PSAiWGFkZHVpbnRwdHIiIHx8IG5h bWUgPT0gIiRYYWRkaW50MzIiKQogICAgICAgICAgICYmIHRoaXMtPmFyZ3Nf ICE9IE5VTEwgJiYgdGhpcy0+YXJnc18tPnNpemUoKSA9PSAyKQogICAgICAg ICB7CiAgICAgICAgICAgaWYgKGludF9zaXplIDwgOCAmJiAobmFtZSA9PSAi WGFkZDY0IiB8fCBuYW1lID09ICJYYWRkaW50NjQiKSkKQEAgLTEwNzUxLDYg KzEwODQ2LDExIEBAIENhbGxfZXhwcmVzc2lvbjo6aW50cmluc2lmeShHb2dv KiBnb2dvLAogICAgICAgICAgICAgICBjb2RlID0gUnVudGltZTo6QVRPTUlD X0FERF9GRVRDSF84OwogICAgICAgICAgICAgICByZXNfdHlwZSA9IHVpbnQ2 NF90eXBlOwogICAgICAgICAgICAgfQorICAgICAgICAgIGVsc2UgaWYgKG5h bWUgPT0gIiRYYWRkaW50MzIiKQorICAgICAgICAgICAgeworICAgICAgICAg ICAgICBjb2RlID0gUnVudGltZTo6QVRPTUlDX0FERF9GRVRDSF80OworICAg ICAgICAgICAgICByZXNfdHlwZSA9IGludDMyX3R5cGU7CisgICAgICAgICAg ICB9CiAgICAgICAgICAgZWxzZSBpZiAobmFtZSA9PSAiWGFkZGludDY0IikK ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgY29kZSA9IFJ1bnRpbWU6 OkFUT01JQ19BRERfRkVUQ0hfODsKSW5kZXg6IGdjYy9nby9nb2Zyb250ZW5k L3N0YXRlbWVudHMuY2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2Nj L2dvL2dvZnJvbnRlbmQvc3RhdGVtZW50cy5jYwkocmV2aXNpb24gMjcxNjY5 KQorKysgZ2NjL2dvL2dvZnJvbnRlbmQvc3RhdGVtZW50cy5jYwkod29ya2lu ZyBjb3B5KQpAQCAtMjY4Miw4ICsyNjgyLDYgQEAgVGh1bmtfc3RhdGVtZW50 OjpidWlsZF90aHVuayhHb2dvKiBnb2dvLAogCiAgIGdvZ28tPmFkZF9jb252 ZXJzaW9uc19pbl9ibG9jayhiKTsKIAotICBnb2dvLT5mbGF0dGVuX2Jsb2Nr KGZ1bmN0aW9uLCBiKTsKLQogICBpZiAobWF5X2NhbGxfcmVjb3ZlcgogICAg ICAgfHwgcmVjb3Zlcl9hcmcgIT0gTlVMTAogICAgICAgfHwgdGhpcy0+Y2xh c3NpZmljYXRpb24oKSA9PSBTVEFURU1FTlRfR08pCkBAIC0yNzA3LDYgKzI3 MDUsOCBAQCBUaHVua19zdGF0ZW1lbnQ6OmJ1aWxkX3RodW5rKEdvZ28qIGdv Z28sCiAJfQogICAgIH0KIAorICBnb2dvLT5mbGF0dGVuX2Jsb2NrKGZ1bmN0 aW9uLCBiKTsKKwogICAvLyBUaGF0IGlzIGFsbCB0aGUgdGh1bmsgaGFzIHRv IGRvLgogICBnb2dvLT5maW5pc2hfZnVuY3Rpb24obG9jYXRpb24pOwogfQo= --000000000000e4a076058a1e3451--