From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by sourceware.org (Postfix) with ESMTPS id 88079389202B for ; Mon, 16 Nov 2020 06:56:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 88079389202B Received: from pps.filterd (m0098409.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 0AG6WG5K091067; Mon, 16 Nov 2020 01:56:58 -0500 Received: from ppma03ams.nl.ibm.com (62.31.33a9.ip4.static.sl-reverse.com [169.51.49.98]) by mx0a-001b2d01.pphosted.com with ESMTP id 34um5prffp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 16 Nov 2020 01:56:58 -0500 Received: from pps.filterd (ppma03ams.nl.ibm.com [127.0.0.1]) by ppma03ams.nl.ibm.com (8.16.0.42/8.16.0.42) with SMTP id 0AG6lw4T030834; Mon, 16 Nov 2020 06:56:56 GMT Received: from b06avi18878370.portsmouth.uk.ibm.com (b06avi18878370.portsmouth.uk.ibm.com [9.149.26.194]) by ppma03ams.nl.ibm.com with ESMTP id 34t6v89tnh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 16 Nov 2020 06:56:56 +0000 Received: from d06av24.portsmouth.uk.ibm.com (mk.ibm.com [9.149.105.60]) by b06avi18878370.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 0AG6urqG28508510 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Nov 2020 06:56:53 GMT Received: from d06av24.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 28D5142042; Mon, 16 Nov 2020 06:56:53 +0000 (GMT) Received: from d06av24.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E1A704203F; Mon, 16 Nov 2020 06:56:51 +0000 (GMT) Received: from [9.200.100.181] (unknown [9.200.100.181]) by d06av24.portsmouth.uk.ibm.com (Postfix) with ESMTP; Mon, 16 Nov 2020 06:56:51 +0000 (GMT) Subject: Re: [PATCH, rs6000] Add non-relative jump table support on Power Linux From: HAO CHEN GUI To: Segher Boessenkool Cc: gcc-patches , wschmidt@linux.ibm.com References: <20200820001420.GY28786@gate.crashing.org> <06184808-e0a2-ea80-9e6a-dc3c41fd33cf@linux.ibm.com> <20200907214633.GT28786@gate.crashing.org> <3c2e3bb1-f34a-60ad-5c8b-e2eb83c2d532@linux.ibm.com> <20200928224642.GR28786@gate.crashing.org> <49a7f3d3-6675-1beb-ba92-7d7f76194706@linux.ibm.com> <59e2dd75-0076-bd51-869d-3376fd5d733b@linux.ibm.com> Message-ID: Date: Mon, 16 Nov 2020 14:56:49 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: <59e2dd75-0076-bd51-869d-3376fd5d733b@linux.ibm.com> Content-Type: multipart/mixed; boundary="------------B87F2752E535321BAD37CED0" Content-Language: en-US X-TM-AS-GCONF: 00 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.312, 18.0.737 definitions=2020-11-16_01:2020-11-13, 2020-11-16 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 malwarescore=0 bulkscore=0 suspectscore=0 adultscore=0 mlxscore=0 clxscore=1015 mlxlogscore=999 priorityscore=1501 lowpriorityscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2011160037 X-Spam-Status: No, score=-11.0 required=5.0 tests=BAYES_00, BODY_8BITS, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Nov 2020 06:57:01 -0000 This is a multi-part message in MIME format. --------------B87F2752E535321BAD37CED0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Hi, Gentle ping this: https://gcc.gnu.org/pipermail/gcc-patches/2020-October/556236.html Thanks. Gui Haochen On 6/11/2020 上午 9:02, HAO CHEN GUI wrote: > Hi, > > Gentle ping this: > > https://gcc.gnu.org/pipermail/gcc-patches/2020-October/556236.html > > Thanks. > > Gui Haochen > > > On 15/10/2020 下午 4:46, HAO CHEN GUI wrote: >> Segher, >> >>     I re-wrote the patch based on parameterized name. >> >>     The attachments are the patch diff file and change log file. >> >>     Bootstrapped and tested on powerpc64le-linux-gnu with no >> regressions.  Is this okay for trunk? Any recommendations? Thanks a lot. >> >> >> On 29/9/2020 上午 6:46, Segher Boessenkool wrote: >>> Hi hao Chen, >>> >>> On Wed, Sep 09, 2020 at 04:55:29PM +0800, HAO CHEN GUI wrote: >>>>      Thanks for your advice. I removed macros defined in linux64.h and >>>> linux.h. So they take relative jump tables by default. When >>>> no-relative-jumptables is set, the absolute jump tables are taken. All >>>> things relevant to section relocations are put in another patch. >>>> Thanks >>>> again. >>> [ Please do not insert patches into discussions ] >>> >>>> +/* Implement TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC. >>>> +   Return true if rs6000_relative_jumptables is set.  */ >>> Don't just say what the code does (we can see that ;-) ); say *why*. >>> Of course it is terribly simple in this case, so maybe just that first >>> line is plenty. >>> >>>> +/* Specify the machine mode that this machine uses >>>> +   for the index in the tablejump instruction.  */ >>>> +#define CASE_VECTOR_MODE \ >>>> +  (TARGET_32BIT || rs6000_relative_jumptables ? SImode : Pmode) >>> If TARGET_32BIT is true, SImode and Pmode are the same, so this is >>> simpler said as >>> >>> #define CASE_VECTOR_MODE (rs6000_relative_jumptables ? SImode : Pmode) >>> >>> >>> I'll have the tablejump* patterns converted to paremeterized names >>> hopefully tonight or tomorrow, which will make your patch much easier >>> to read.  It looks like it will be fine, thanks :-) >>> >>> >>> Segher --------------B87F2752E535321BAD37CED0 Content-Type: text/plain; charset=UTF-8; name="ChangeLog" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="ChangeLog" CSogY29uZmlnL3JzNjAwMC9yczYwMDAtcHJvdG9zLmggKHJzNjAwMF9vdXRwdXRfYWRkcl92 ZWNfZWx0KTogRGVjbGFyZS4NCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKFRBUkdFVF9B U01fR0VORVJBVEVfUElDX0FERFJfRElGRl9WRUMpOg0KCURlZmluZS4NCgkocnM2MDAwX2dl bl9waWNfYWRkcl9kaWZmX3ZlYywgcnM2MDAwX291dHB1dF9hZGRyX3ZlY19lbHQpOiBJbXBs ZW1lbnQuDQoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5oIChDQVNFX1ZFQ1RPUl9QQ19SRUxB VElWRSwNCglDQVNFX1ZFQ1RPUl9NT0RFLCBBU01fT1VUUFVUX0FERFJfVkVDX0VMVCk6IERl ZmluZS4NCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1kICh0YWJsZWp1bXA8bW9kZT5fYWJz b2x1dGUsDQoJdGFibGVqdW1wPG1vZGU+X2Fic29sdXRlX25vc3BlYyk6IE5ldyBleHBhbmRl cnMuDQoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5vcHQgKG1yZWxhdGl2ZS1qdW1wdGFibGVz KTogQWRkDQoJbXJlbGF0aXZlLWp1bXB0YWJsZXMuDQo= --------------B87F2752E535321BAD37CED0 Content-Type: text/plain; charset=UTF-8; name="patch.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch.diff" ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC1wcm90b3MuaCBiL2djYy9j b25maWcvcnM2MDAwL3JzNjAwMC1wcm90b3MuaAppbmRleCAyNWZhNWRkNTdjZC4uNDlhYjUx MDQyYzUgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC1wcm90b3MuaAor KysgYi9nY2MvY29uZmlnL3JzNjAwMC9yczYwMDAtcHJvdG9zLmgKQEAgLTE1NSw2ICsxNTUs NyBAQCBleHRlcm4gdm9pZCByczYwMDBfc3BsaXRfbG9naWNhbCAocnR4IFtdLCBlbnVtIHJ0 eF9jb2RlLCBib29sLCBib29sLCBib29sKTsKIGV4dGVybiBib29sIHJzNjAwMF9mdW5jdGlv bl9wY3JlbF9wIChzdHJ1Y3QgZnVuY3Rpb24gKik7CiBleHRlcm4gYm9vbCByczYwMDBfcGNy ZWxfcCAodm9pZCk7CiBleHRlcm4gYm9vbCByczYwMDBfZm5kZWNsX3BjcmVsX3AgKGNvbnN0 X3RyZWUpOworZXh0ZXJuIHZvaWQgcnM2MDAwX291dHB1dF9hZGRyX3ZlY19lbHQgKEZJTEUg KiwgaW50KTsKIAogLyogRGlmZmVyZW50IFBvd2VyUEMgaW5zdHJ1Y3Rpb24gZm9ybWF0cyB0 aGF0IGFyZSB1c2VkIGJ5IEdDQy4gIFRoZXJlIGFyZQogICAgdmFyaW91cyBvdGhlciBpbnN0 cnVjdGlvbiBmb3JtYXRzIHVzZWQgYnkgdGhlIFBvd2VyUEMgaGFyZHdhcmUsIGJ1dCB0aGVz ZQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmMgYi9nY2MvY29uZmln L3JzNjAwMC9yczYwMDAuYwppbmRleCBiNThlZWFlMmI5OC4uN2U0NDFmN2U3MzAgMTAwNjQ0 Ci0tLSBhL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC5jCisrKyBiL2djYy9jb25maWcvcnM2 MDAwL3JzNjAwMC5jCkBAIC0xMzY3LDYgKzEzNjcsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGF0dHJpYnV0ZV9zcGVjIHJzNjAwMF9hdHRyaWJ1dGVfdGFibGVbXSA9CiAjdW5kZWYgVEFS R0VUX0FTTV9PVVRQVVRfQUREUl9DT05TVF9FWFRSQQogI2RlZmluZSBUQVJHRVRfQVNNX09V VFBVVF9BRERSX0NPTlNUX0VYVFJBIHJzNjAwMF9vdXRwdXRfYWRkcl9jb25zdF9leHRyYQog CisjdW5kZWYgIFRBUkdFVF9BU01fR0VORVJBVEVfUElDX0FERFJfRElGRl9WRUMKKyNkZWZp bmUgVEFSR0VUX0FTTV9HRU5FUkFURV9QSUNfQUREUl9ESUZGX1ZFQyByczYwMDBfZ2VuX3Bp Y19hZGRyX2RpZmZfdmVjCisKICN1bmRlZiBUQVJHRVRfTEVHSVRJTUlaRV9BRERSRVNTCiAj ZGVmaW5lIFRBUkdFVF9MRUdJVElNSVpFX0FERFJFU1MgcnM2MDAwX2xlZ2l0aW1pemVfYWRk cmVzcwogCkBAIC0yNzA1Myw2ICsyNzA1NiwyNyBAQCByczYwMDBfZW1pdF94eHNwbHRpZHBf djJkZiAocnR4IGRzdCwgbG9uZyB2YWx1ZSkKICAgZW1pdF9pbnNuKCBnZW5feHhzcGx0aWRw X3YyZGZfaW5zdCAoZHN0LCBHRU5fSU5UICh2YWx1ZSkpKTsKIH0KIAorLyogSW1wbGVtZW50 IFRBUkdFVF9BU01fR0VORVJBVEVfUElDX0FERFJfRElGRl9WRUMuCisgICBNYXJjbyByZWxh dGl2ZSBqdW1wc3RhYmxlcyBpbmRpY2F0ZXMgYWRkcl9kaWZmX3ZlYyBvciBhZGRyX3ZlYy4g ICovCisKK3N0YXRpYyBib29sCityczYwMDBfZ2VuX3BpY19hZGRyX2RpZmZfdmVjICh2b2lk KQoreworICByZXR1cm4gcnM2MDAwX3JlbGF0aXZlX2p1bXB0YWJsZXM7Cit9CisKK3ZvaWQK K3JzNjAwMF9vdXRwdXRfYWRkcl92ZWNfZWx0IChGSUxFICpmaWxlLCBpbnQgdmFsdWUpCit7 CisgIGNvbnN0IGNoYXIgKmRpcmVjdGl2ZSA9IFRBUkdFVF82NEJJVCA/IERPVUJMRV9JTlRf QVNNX09QIDogIlx0LmxvbmdcdCI7CisgIGNoYXIgYnVmWzEwMF07CisKKyAgZnByaW50ZiAo ZmlsZSwgIiVzIiwgZGlyZWN0aXZlKTsKKyAgQVNNX0dFTkVSQVRFX0lOVEVSTkFMX0xBQkVM IChidWYsICJMIiwgdmFsdWUpOworICBhc3NlbWJsZV9uYW1lIChmaWxlLCBidWYpOworICBm cHJpbnRmIChmaWxlLCAiXG4iKTsKK30KKwogc3RydWN0IGdjY190YXJnZXQgdGFyZ2V0bSA9 IFRBUkdFVF9JTklUSUFMSVpFUjsKIAogI2luY2x1ZGUgImd0LXJzNjAwMC5oIgpkaWZmIC0t Z2l0IGEvZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmggYi9nY2MvY29uZmlnL3JzNjAwMC9y czYwMDAuaAppbmRleCBiYmQ4MDYwZTE0My4uNGE5NDhlMjVmNzEgMTAwNjQ0Ci0tLSBhL2dj Yy9jb25maWcvcnM2MDAwL3JzNjAwMC5oCisrKyBiL2djYy9jb25maWcvcnM2MDAwL3JzNjAw MC5oCkBAIC0xNzU0LDE1ICsxNzU0LDE1IEBAIHR5cGVkZWYgc3RydWN0IHJzNjAwMF9hcmdz CiAKIC8qICNkZWZpbmUgTEVHSVRJTUFURV9QSUNfT1BFUkFORF9QIChYKSAqLwogDAotLyog U3BlY2lmeSB0aGUgbWFjaGluZSBtb2RlIHRoYXQgdGhpcyBtYWNoaW5lIHVzZXMKLSAgIGZv ciB0aGUgaW5kZXggaW4gdGhlIHRhYmxlanVtcCBpbnN0cnVjdGlvbi4gICovCi0jZGVmaW5l IENBU0VfVkVDVE9SX01PREUgU0ltb2RlCi0KIC8qIERlZmluZSBhcyBDIGV4cHJlc3Npb24g d2hpY2ggZXZhbHVhdGVzIHRvIG5vbnplcm8gaWYgdGhlIHRhYmxlanVtcAogICAgaW5zdHJ1 Y3Rpb24gZXhwZWN0cyB0aGUgdGFibGUgdG8gY29udGFpbiBvZmZzZXRzIGZyb20gdGhlIGFk ZHJlc3Mgb2YgdGhlCiAgICB0YWJsZS4KICAgIERvIG5vdCBkZWZpbmUgdGhpcyBpZiB0aGUg dGFibGUgc2hvdWxkIGNvbnRhaW4gYWJzb2x1dGUgYWRkcmVzc2VzLiAgKi8KLSNkZWZpbmUg Q0FTRV9WRUNUT1JfUENfUkVMQVRJVkUgMQorI2RlZmluZSBDQVNFX1ZFQ1RPUl9QQ19SRUxB VElWRSByczYwMDBfcmVsYXRpdmVfanVtcHRhYmxlcworCisvKiBTcGVjaWZ5IHRoZSBtYWNo aW5lIG1vZGUgdGhhdCB0aGlzIG1hY2hpbmUgdXNlcworICAgZm9yIHRoZSBpbmRleCBpbiB0 aGUgdGFibGVqdW1wIGluc3RydWN0aW9uLiAgKi8KKyNkZWZpbmUgQ0FTRV9WRUNUT1JfTU9E RSAocnM2MDAwX3JlbGF0aXZlX2p1bXB0YWJsZXMgPyBTSW1vZGUgOiBQbW9kZSkKIAogLyog RGVmaW5lIHRoaXMgYXMgMSBpZiBgY2hhcicgc2hvdWxkIGJ5IGRlZmF1bHQgYmUgc2lnbmVk OyBlbHNlIGFzIDAuICAqLwogI2RlZmluZSBERUZBVUxUX1NJR05FRF9DSEFSIDAKQEAgLTIx OTIsNiArMjE5MiwxMSBAQCBleHRlcm4gY2hhciByczYwMDBfcmVnX25hbWVzW11bOF07CS8q IHJlZ2lzdGVyIG5hbWVzICgwIHZzLiAlcjApLiAgKi8KICAgICAgICBwdXRjICgnXG4nLCBG SUxFKTsJCQkJXAogICAgICB9IHdoaWxlICgwKQogCisvKiBUaGlzIGlzIGhvdyB0byBvdXRw dXQgYW4gZWxlbWVudCBvZiBhIGNhc2UtdmVjdG9yCisgICB0aGF0IGlzIG5vbi1yZWxhdGl2 ZS4gICovCisjZGVmaW5lIEFTTV9PVVRQVVRfQUREUl9WRUNfRUxUKEZJTEUsIFZBTFVFKSBc CisgIHJzNjAwMF9vdXRwdXRfYWRkcl92ZWNfZWx0ICgoRklMRSksIChWQUxVRSkpCisKIC8q IFRoaXMgaXMgaG93IHRvIG91dHB1dCBhbiBhc3NlbWJsZXIgbGluZQogICAgdGhhdCBzYXlz IHRvIGFkdmFuY2UgdGhlIGxvY2F0aW9uIGNvdW50ZXIKICAgIHRvIGEgbXVsdGlwbGUgb2Yg MioqTE9HIGJ5dGVzLiAgKi8KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcnM2MDAwL3JzNjAw MC5tZCBiL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC5tZAppbmRleCA3NzliZmQxMTIzNy4u NGYxMjY1ZDY0MzcgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC5tZAor KysgYi9nY2MvY29uZmlnL3JzNjAwMC9yczYwMDAubWQKQEAgLTEyNjk3LDE1ICsxMjY5Nywy NyBAQAogICAiIgogewogICBpZiAocnM2MDAwX3NwZWN1bGF0ZV9pbmRpcmVjdF9qdW1wcykK LSAgICBlbWl0X2p1bXBfaW5zbiAoZ2VuX3RhYmxlanVtcF9ub3JtYWwgKFBtb2RlLCBvcGVy YW5kc1swXSwgb3BlcmFuZHNbMV0pKTsKKyAgICB7CisgICAgICBpZiAocnM2MDAwX3JlbGF0 aXZlX2p1bXB0YWJsZXMpCisJZW1pdF9qdW1wX2luc24gKGdlbl90YWJsZWp1bXBfbm9ybWFs IChQbW9kZSwgb3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdKSk7CisgICAgICBlbHNlCisJZW1p dF9qdW1wX2luc24gKGdlbl90YWJsZWp1bXBfYWJzb2x1dGUgKFBtb2RlLCBvcGVyYW5kc1sw XSwKKwkJCQkJCW9wZXJhbmRzWzFdKSk7CisgICAgfQogICBlbHNlCiAgICAgewogICAgICAg cnR4IGNjcmVnID0gZ2VuX3JlZ19ydHggKENDbW9kZSk7CiAgICAgICBydHgganVtcDsKLSAg ICAgIGlmIChUQVJHRVRfMzJCSVQpCi0JanVtcCA9IGdlbl90YWJsZWp1bXBzaV9ub3NwZWMg KG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSwgY2NyZWcpOworICAgICAgaWYgKHJzNjAwMF9y ZWxhdGl2ZV9qdW1wdGFibGVzKQorCXsKKwkgIGlmIChUQVJHRVRfMzJCSVQpCisJICAgIGp1 bXAgPSBnZW5fdGFibGVqdW1wc2lfbm9zcGVjIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0s IGNjcmVnKTsKKwkgIGVsc2UKKwkgICAganVtcCA9IGdlbl90YWJsZWp1bXBkaV9ub3NwZWMg KG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSwgY2NyZWcpOworCX0KICAgICAgIGVsc2UKLQlq dW1wID0gZ2VuX3RhYmxlanVtcGRpX25vc3BlYyAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFd LCBjY3JlZyk7CisJanVtcCA9IGdlbl90YWJsZWp1bXBfYWJzb2x1dGVfbm9zcGVjIChQbW9k ZSwgb3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdLAorCQkJCQkgICAgICBjY3JlZyk7CiAgICAg ICBlbWl0X2p1bXBfaW5zbiAoanVtcCk7CiAgICAgfQogICBET05FOwpAQCAtMTI3MTQsNyAr MTI3MjYsNyBAQAogKGRlZmluZV9leHBhbmQgIkB0YWJsZWp1bXA8bW9kZT5fbm9ybWFsIgog ICBbKHVzZSAobWF0Y2hfb3BlcmFuZDpTSSAwKSkKICAgICh1c2UgKG1hdGNoX29wZXJhbmQ6 UCAxKSldCi0gICJyczYwMDBfc3BlY3VsYXRlX2luZGlyZWN0X2p1bXBzIgorICAicnM2MDAw X3NwZWN1bGF0ZV9pbmRpcmVjdF9qdW1wcyAmJiByczYwMDBfcmVsYXRpdmVfanVtcHRhYmxl cyIKIHsKICAgcnR4IG9mZjsKICAgb3BlcmFuZHNbMF0gPSBmb3JjZV9yZWcgKFNJbW9kZSwg b3BlcmFuZHNbMF0pOwpAQCAtMTI3MzUsMTEgKzEyNzQ3LDIzIEBACiAgIERPTkU7CiB9KQog CisoZGVmaW5lX2V4cGFuZCAiQHRhYmxlanVtcDxtb2RlPl9hYnNvbHV0ZSIKKyAgWyh1c2Ug KG1hdGNoX29wZXJhbmQ6UCAwKSkKKyAgICh1c2UgKG1hdGNoX29wZXJhbmQ6UCAxKSldCisg ICJyczYwMDBfc3BlY3VsYXRlX2luZGlyZWN0X2p1bXBzICYmICFyczYwMDBfcmVsYXRpdmVf anVtcHRhYmxlcyIKK3sKKyAgcnR4IGFkZHIgPSBnZW5fcmVnX3J0eCAoUG1vZGUpOworICBl bWl0X21vdmVfaW5zbiAoYWRkciwgb3BlcmFuZHNbMF0pOworCisgIGVtaXRfanVtcF9pbnNu IChnZW5fdGFibGVqdW1wX2luc25fbm9ybWFsIChQbW9kZSwgYWRkciwgb3BlcmFuZHNbMV0p KTsKKyAgRE9ORTsKK30pCisKIChkZWZpbmVfZXhwYW5kICJAdGFibGVqdW1wPG1vZGU+X25v c3BlYyIKICAgWyh1c2UgKG1hdGNoX29wZXJhbmQ6U0kgMCkpCiAgICAodXNlIChtYXRjaF9v cGVyYW5kOlAgMSkpCiAgICAodXNlIChtYXRjaF9vcGVyYW5kOkNDIDIpKV0KLSAgIiFyczYw MDBfc3BlY3VsYXRlX2luZGlyZWN0X2p1bXBzIgorICAiIXJzNjAwMF9zcGVjdWxhdGVfaW5k aXJlY3RfanVtcHMgJiYgcnM2MDAwX3JlbGF0aXZlX2p1bXB0YWJsZXMiCiB7CiAgIHJ0eCBv ZmY7CiAgIG9wZXJhbmRzWzBdID0gZm9yY2VfcmVnIChTSW1vZGUsIG9wZXJhbmRzWzBdKTsK QEAgLTEyNzYxLDYgKzEyNzg1LDIwIEBACiAgIERPTkU7CiB9KQogCisoZGVmaW5lX2V4cGFu ZCAiQHRhYmxlanVtcDxtb2RlPl9hYnNvbHV0ZV9ub3NwZWMiCisgIFsodXNlIChtYXRjaF9v cGVyYW5kOlAgMCkpCisgICAodXNlIChtYXRjaF9vcGVyYW5kOlAgMSkpCisgICAodXNlICht YXRjaF9vcGVyYW5kOkNDIDIpKV0KKyAgIiFyczYwMDBfc3BlY3VsYXRlX2luZGlyZWN0X2p1 bXBzICYmICFyczYwMDBfcmVsYXRpdmVfanVtcHRhYmxlcyIKK3sKKyAgcnR4IGFkZHIgPSBn ZW5fcmVnX3J0eCAoUG1vZGUpOworICBlbWl0X21vdmVfaW5zbiAoYWRkciwgb3BlcmFuZHNb MF0pOworCisgIGVtaXRfanVtcF9pbnNuIChnZW5fdGFibGVqdW1wX2luc25fbm9zcGVjIChQ bW9kZSwgYWRkciwgb3BlcmFuZHNbMV0sCisJCQkJCSAgICAgb3BlcmFuZHNbMl0pKTsKKyAg RE9ORTsKK30pCisKIChkZWZpbmVfaW5zbiAiQHRhYmxlanVtcDxtb2RlPl9pbnNuX25vcm1h bCIKICAgWyhzZXQgKHBjKQogCShtYXRjaF9vcGVyYW5kOlAgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgImMsKmwiKSkKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC5vcHQg Yi9nY2MvY29uZmlnL3JzNjAwMC9yczYwMDAub3B0CmluZGV4IGIyYTcwZTg4Y2E4Li4yODg4 MTcyY2IyNyAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLm9wdAorKysg Yi9nY2MvY29uZmlnL3JzNjAwMC9yczYwMDAub3B0CkBAIC01ODksMyArNTg5LDYgQEAgR2Vu ZXJhdGUgKGRvIG5vdCBnZW5lcmF0ZSkgcGMtcmVsYXRpdmUgbWVtb3J5IGFkZHJlc3Npbmcu CiBtbW1hCiBUYXJnZXQgUmVwb3J0IE1hc2soTU1BKSBWYXIocnM2MDAwX2lzYV9mbGFncykK IEdlbmVyYXRlIChkbyBub3QgZ2VuZXJhdGUpIE1NQSBpbnN0cnVjdGlvbnMuCisKK21yZWxh dGl2ZS1qdW1wdGFibGVzCitUYXJnZXQgVW5kb2N1bWVudGVkIFZhcihyczYwMDBfcmVsYXRp dmVfanVtcHRhYmxlcykgSW5pdCgxKSBTYXZlCg== --------------B87F2752E535321BAD37CED0--