From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgeu2.qq.com (smtpbgeu2.qq.com [18.194.254.142]) by sourceware.org (Postfix) with ESMTPS id 3A2173858D32 for ; Fri, 10 Nov 2023 10:13:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3A2173858D32 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 3A2173858D32 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=18.194.254.142 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699611246; cv=none; b=I3ZMTD2w4hOXuHCZjyzOpo2CwtRJbX3PaMxtalNj6YDAvLPUHBqPyCoEVm5J5Mg69dM7/MhBwuPy7RtoD5LnurV+kT8mI1H/1d1Nxp3mq2iP7kLXa/aBDaLGFpZQ2A5azp9rj8EJOFpUhlMseMtpFqbK5p5JsyH5KA8F8mdi01E= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699611246; c=relaxed/simple; bh=yxez1BTZEcOHEyE7c/jfQGcpSh986DT/+a2aNxM4ThI=; h=Date:From:To:Subject:Mime-Version:Message-ID; b=Ypcetfi1UIQLse28+ULf7CHAC1xLLekH/TDL88yRBbROcqYvXTKnJxvT2q3prksjynMwivVemdAkVbEkzWFm3HV6CmmXw1G2NxedXruk5A6uTrCHyZq12Cwf0Rv73pGcpB23HBSiwnVfdT7/hLLLc6cQ2ll3rD4N14wF7TSropc= ARC-Authentication-Results: i=1; server2.sourceware.org X-QQ-mid: bizesmtp82t1699611231thmo73go Received: from LAPTOP-EPITNQBU ( [121.35.180.247]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 10 Nov 2023 18:13:50 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: ERSZEewZJulOEJ/+NaS+unP642O+0Oh7vUthzJxCUMuKnpggV1jUtbCDDD/4k gaG8O0DTSwDEkh/rameu3VanqpdA0ic9X+gAFfcp1fhrOyE78RyZctSrDhfvK8hePBo3nyr OS4a1QwMRXjxbJUkuitlhHPouOoxNrwgXIthugT8Sys0FsGNVLK4nXZzOepmR1mNczpeVf9 TowQslbHQa6j+o7bJwV6/4BJsMo0tYHsWjwFq1EZt1wijaLyLz3DxDjxFUZ57vyqKAzTTyl PmAcFGADJ3Xr6uWGxdo0X2wdHD7DBeliOaC9oTlK97LsHyAuq07QRFUKErrO/3Tr8d7gXRh hTGPm87t96Rjsw4cYkxE+u/6LZSvSBFRjPnMA1t9N8XTKbKXMR9q8oNg+YL2bhZmUdV1h0j pQKAncIcbVZu471m0+1zjzfuApR7yOWqQzEaNrRJdOI= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 2987151620466690891 Date: Fri, 10 Nov 2023 18:13:50 +0800 From: "juzhe.zhong@rivai.ai" To: rguenther Cc: "Richard Biener" , gcc-patches , richard.sandiford , kito.cheng , Kito.cheng Subject: Re: Re: [PATCH] Middle-end: Fix bug of induction variable vectorization for RVV References: <20231108105317.1786716-1-juzhe.zhong@rivai.ai>, , , X-Priority: 3 X-GUID: 9FFDAB59-FE1A-4773-9878-636A5DD3B9D6 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <13B9AC74355D1006+2023111018134955379425@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart828660475301_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-8.7 required=5.0 tests=BAYES_00,BODY_8BITS,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE,T_SPF_HELO_TEMPERROR autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. ------=_001_NextPart828660475301_=---- Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGksIFJpY2hhcmQuDQoNCkkgYW0gc29ycnkgZm9yIGJvdGhlcmluZyB5b3Uu IEkgYW0gdHJ5aW5nIHRvIHVuZGVyc3RhbmQgd2hhdCB5b3UgbWVhbi4NCg0K SXMgdGhpcyBmb2xsb3dpbmcgY29kZXMgdGhhdCB5b3Ugd2FudCA/DQoNCiAg LyogQ3JlYXRlIHRoZSB2ZWN0b3IgdGhhdCBob2xkcyB0aGUgc3RlcCBvZiB0 aGUgaW5kdWN0aW9uLiAgKi8NCiAgaWYgKG5lc3RlZF9pbl92ZWN0X2xvb3Ap DQogICAgew0KICAgICAgLyogaXZfbG9vcCBpcyBuZXN0ZWQgaW4gdGhlIGxv b3AgdG8gYmUgdmVjdG9yaXplZC4gR2VuZXJhdGU6DQogICAgICAgICB2ZWNf c3RlcCA9IFtTLCBTLCBTLCBTXSAgKi8NCiAgICAgIG5ld19uYW1lID0gc3Rl cF9leHByOw0KICAgICAgLyogV2UgZXhwZWN0IExPT1BfVklORk9fVVNJTkdf U0VMRUNUX1ZMX1AgdG8gYmUgZmFsc2UgaW4gbmVzdGVkIGxvb3AuICAqLw0K ICAgICAgZ2NjX2Fzc2VydCAoIUxPT1BfVklORk9fVVNJTkdfU0VMRUNUX1ZM X1AgKGxvb3BfdmluZm8pKTsNCiAgICAgIHQgPSB1bnNoYXJlX2V4cHIgKG5l d19uYW1lKTsNCiAgICAgIGdjY19hc3NlcnQgKENPTlNUQU5UX0NMQVNTX1Ag KG5ld19uYW1lKQ0KICAgICAgICAgICAgICAgICAgfHwgVFJFRV9DT0RFIChu ZXdfbmFtZSkgPT0gU1NBX05BTUUpOw0KICAgICAgbmV3X3ZlYyA9IGJ1aWxk X3ZlY3Rvcl9mcm9tX3ZhbCAoc3RlcF92ZWN0eXBlLCB0KTsNCiAgICAgIHZl Y19zdGVwDQogICAgICAgID0gdmVjdF9pbml0X3ZlY3RvciAobG9vcF92aW5m bywgc3RtdF9pbmZvLCBuZXdfdmVjLCBzdGVwX3ZlY3R5cGUsIE5VTEwpOw0K ICAgIH0NCiAgZWxzZSBpZiAoTE9PUF9WSU5GT19VU0lOR19TRUxFQ1RfVkxf UCAobG9vcF92aW5mbykpDQogICAgew0KICAgICAgLyogV2hlbiB3ZSdyZSB1 c2luZyBsb29wX2xlbiBwcm9kdWNlZCBieSBTRUxFQ19WTCwgdGhlIG5vbi1m aW5hbA0KICAgICAgICAgaXRlcmF0aW9ucyBhcmUgbm90IGFsd2F5cyBwcm9j ZXNzaW5nIFZGIGVsZW1lbnRzLiAgU28gdmVjdG9yaXplDQogICAgICAgICBp bmR1Y3Rpb24gdmFyaWFibGUgaW5zdGVhZCBvZg0KDQogICAgICAgICAgIF8y MSA9IHZlY3RfdmVjX2l2Xy42XzIyICsgeyBWRiwgLi4uIH07DQoNCiAgICAg ICAgIFdlIHNob3VsZCBnZW5lcmF0ZToNCg0KICAgICAgICAgICBfMzUgPSAu U0VMRUNUX1ZMIChpdnRtcF8zMywgVkYpOw0KICAgICAgICAgICB2ZWN0X2Nz dF9fMjIgPSBbdmVjX2R1cGxpY2F0ZV9leHByXSBfMzU7DQogICAgICAgICAg IF8yMSA9IHZlY3RfdmVjX2l2Xy42XzIyICsgdmVjdF9jc3RfXzIyOyAgKi8N CiAgICAgIHZlY19sb29wX2xlbnMgKmxlbnMgPSAmTE9PUF9WSU5GT19MRU5T IChsb29wX3ZpbmZvKTsNCiAgICAgIHRyZWUgbGVuID0gdmVjdF9nZXRfbG9v cF9sZW4gKGxvb3BfdmluZm8sIE5VTEwsIGxlbnMsIDEsIHZlY3R5cGUsIDAs IDApOw0KICAgICAgZXhwciA9IGZvcmNlX2dpbXBsZV9vcGVyYW5kIChmb2xk X2NvbnZlcnQgKFRSRUVfVFlQRSAoc3RlcF9leHByKSwNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNoYXJl X2V4cHIgKGxlbikpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmc2VxLCB0cnVlLCBOVUxMX1RSRUUpOw0KICAgICAgZ3NpX2luc2Vy dF9zZXFfYmVmb3JlICgmc2ksIHNlcSwgR1NJX1NBTUVfU1RNVCk7DQogICAg ICB0ID0gdW5zaGFyZV9leHByIChuZXdfbmFtZSk7DQogICAgICBnY2NfYXNz ZXJ0IChDT05TVEFOVF9DTEFTU19QIChuZXdfbmFtZSkNCiAgICAgICAgICAg ICAgICAgIHx8IFRSRUVfQ09ERSAobmV3X25hbWUpID09IFNTQV9OQU1FKTsN CiAgICAgIG5ld192ZWMgPSBidWlsZF92ZWN0b3JfZnJvbV92YWwgKHN0ZXBf dmVjdHlwZSwgdCk7DQogICAgICB2ZWNfc3RlcA0KICAgICAgICA9IHZlY3Rf aW5pdF92ZWN0b3IgKGxvb3BfdmluZm8sIHN0bXRfaW5mbywgbmV3X3ZlYywg c3RlcF92ZWN0eXBlLCAmc2kpOw0KICAgIH0NCiAgZWxzZQ0KICAgIHsNCiAg ICAgIC8qIGl2X2xvb3AgaXMgdGhlIGxvb3AgdG8gYmUgdmVjdG9yaXplZC4g R2VuZXJhdGU6DQogICAgICAgICAgdmVjX3N0ZXAgPSBbVkYqUywgVkYqUywg VkYqUywgVkYqU10gICovDQogICAgICBnaW1wbGVfc2VxIHNlcSA9IE5VTEw7 DQogICAgICBpZiAoU0NBTEFSX0ZMT0FUX1RZUEVfUCAoVFJFRV9UWVBFIChz dGVwX2V4cHIpKSkNCiAgICAgICAgew0KICAgICAgICAgIGV4cHIgPSBidWls ZF9pbnRfY3N0IChpbnRlZ2VyX3R5cGVfbm9kZSwgdmYpOw0KICAgICAgICAg IGV4cHIgPSBnaW1wbGVfYnVpbGQgKCZzZXEsIEZMT0FUX0VYUFIsIFRSRUVf VFlQRSAoc3RlcF9leHByKSwgZXhwcik7DQogICAgICAgIH0NCiAgICAgIGVs c2UNCiAgICAgICAgZXhwciA9IGJ1aWxkX2ludF9jc3QgKFRSRUVfVFlQRSAo c3RlcF9leHByKSwgdmYpOw0KICAgICAgbmV3X25hbWUgPSBnaW1wbGVfYnVp bGQgKCZzZXEsIE1VTFRfRVhQUiwgVFJFRV9UWVBFIChzdGVwX2V4cHIpLA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cHIsIHN0ZXBfZXhw cik7DQogICAgICBpZiAoc2VxKQ0KICAgICAgICB7DQogICAgICAgICAgbmV3 X2JiID0gZ3NpX2luc2VydF9zZXFfb25fZWRnZV9pbW1lZGlhdGUgKHBlLCBz ZXEpOw0KICAgICAgICAgIGdjY19hc3NlcnQgKCFuZXdfYmIpOw0KICAgICAg ICB9DQogICAgICB0ID0gdW5zaGFyZV9leHByIChuZXdfbmFtZSk7DQogICAg ICBnY2NfYXNzZXJ0IChDT05TVEFOVF9DTEFTU19QIChuZXdfbmFtZSkNCiAg ICAgICAgICAgICAgICAgIHx8IFRSRUVfQ09ERSAobmV3X25hbWUpID09IFNT QV9OQU1FKTsNCiAgICAgIG5ld192ZWMgPSBidWlsZF92ZWN0b3JfZnJvbV92 YWwgKHN0ZXBfdmVjdHlwZSwgdCk7DQogICAgICB2ZWNfc3RlcA0KICAgICAg ICA9IHZlY3RfaW5pdF92ZWN0b3IgKGxvb3BfdmluZm8sIHN0bXRfaW5mbywg bmV3X3ZlYywgc3RlcF92ZWN0eXBlLCBOVUxMKTsNCiAgICB9DQoNCkl0IHNl ZW1zIHRoYXQgdGhpcyBmb2xsb3dpbmcgY29kZXM6DQoNCiAgICAgIHQgPSB1 bnNoYXJlX2V4cHIgKG5ld19uYW1lKTsNCiAgICAgIGdjY19hc3NlcnQgKENP TlNUQU5UX0NMQVNTX1AgKG5ld19uYW1lKQ0KICAgICAgICAgICAgICAgICAg fHwgVFJFRV9DT0RFIChuZXdfbmFtZSkgPT0gU1NBX05BTUUpOw0KICAgICAg bmV3X3ZlYyA9IGJ1aWxkX3ZlY3Rvcl9mcm9tX3ZhbCAoc3RlcF92ZWN0eXBl LCB0KTsNCiAgICAgIHZlY19zdGVwDQogICAgICAgID0gdmVjdF9pbml0X3Zl Y3RvciANCg0KYXBwZWFycyAzIHRpbWVzLiAgSSBhbSBub3Qgc3VyZSB3aGV0 aGVyIGl0IGlzIHRoZSB3YXkgeW91IHdhbnQ/DQoNClRoYW5rcy4NCg0KDQoN Cmp1emhlLnpob25nQHJpdmFpLmFpDQogDQpGcm9tOiBSaWNoYXJkIEJpZW5l cg0KRGF0ZTogMjAyMy0xMS0xMCAxNzo0Ng0KVG86IOmSn+WxheWTsg0KQ0M6 IHJpY2hhcmQuZ3VlbnRoZXI7IGdjYy1wYXRjaGVzOyByaWNoYXJkLnNhbmRp Zm9yZDsga2l0by5jaGVuZzsga2l0by5jaGVuZw0KU3ViamVjdDogUmU6IFJl OiBbUEFUQ0hdIE1pZGRsZS1lbmQ6IEZpeCBidWcgb2YgaW5kdWN0aW9uIHZh cmlhYmxlIHZlY3Rvcml6YXRpb24gZm9yIFJWVg0KT24gVGh1LCA5IE5vdiAy MDIzLCA/Pz8gd3JvdGU6DQogDQo+IEhpLCBSaWNoYXJkLg0KPiANCj4gPj4g SSB0aGluayBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gc3BsaXQgb3V0IGJ1aWxk aW5nIGEgdHJlZSBmcm9tIFZGIGZyb20gYm90aA0KPiA+PiBhcm1zIGFuZCBh dm9pZCB1c2luZyAndmYnIHdoZW4gTE9PUF9WSU5GT19VU0lOR19TRUxFQ1Rf VkxfUC4NCj4gDQo+IEkgYW0gdHJ5aW5nIHRvIHNwbGl0IG91dCBidWlsZGlu ZyB0cmVlIGZyb20gYm90aCBhcm1zIGFzIHlvdSBzdWdnZXN0ZWQuLg0KPiBD b3VsZCB5b3UgdGFrZSBhIGxvb2sgdGhlIGZvbGxvd2luZyBjb2RlcyA/DQo+ IA0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtdmVjdC1sb29wLmNjIGIvZ2Nj L3RyZWUtdmVjdC1sb29wLmNjDQo+IGluZGV4IDhhYmMxOTM3ZDc0Li4yNGE4 NjE4N2QxMSAxMDA2NDQNCj4gLS0tIGEvZ2NjL3RyZWUtdmVjdC1sb29wLmNj DQo+ICsrKyBiL2djYy90cmVlLXZlY3QtbG9vcC5jYw0KPiBAQCAtMTAzMTUs MTkgKzEwMzE1LDQ3IEBAIHZlY3Rvcml6YWJsZV9pbmR1Y3Rpb24gKGxvb3Bf dmVjX2luZm8gbG9vcF92aW5mbywNCj4gICAgICAgIC8qIGl2X2xvb3AgaXMg dGhlIGxvb3AgdG8gYmUgdmVjdG9yaXplZC4gR2VuZXJhdGU6DQo+ICAgICB2 ZWNfc3RlcCA9IFtWRipTLCBWRipTLCBWRipTLCBWRipTXSAgKi8NCj4gICAg ICAgIGdpbXBsZV9zZXEgc2VxID0gTlVMTDsNCj4gLSAgICAgIGlmIChTQ0FM QVJfRkxPQVRfVFlQRV9QIChUUkVFX1RZUEUgKHN0ZXBfZXhwcikpKQ0KPiAr ICAgICAgaWYgKExPT1BfVklORk9fVVNJTkdfU0VMRUNUX1ZMX1AgKGxvb3Bf dmluZm8pKQ0KPiAgIHsNCj4gLSAgIGV4cHIgPSBidWlsZF9pbnRfY3N0IChp bnRlZ2VyX3R5cGVfbm9kZSwgdmYpOw0KPiAtICAgZXhwciA9IGdpbXBsZV9i dWlsZCAoJnNlcSwgRkxPQVRfRVhQUiwgVFJFRV9UWVBFIChzdGVwX2V4cHIp LCBleHByKTsNCj4gKyAgIC8qIFdoZW4gd2UncmUgdXNpbmcgbG9vcF9sZW4g cHJvZHVjZWQgYnkgU0VMRUNfVkwsIHRoZSBub24tZmluYWwNCj4gKyAgICAg IGl0ZXJhdGlvbnMgYXJlIG5vdCBhbHdheXMgcHJvY2Vzc2luZyBWRiBlbGVt ZW50cy4gIFNvIHZlY3Rvcml6ZQ0KPiArICAgICAgaW5kdWN0aW9uIHZhcmlh YmxlIGluc3RlYWQgb2YNCj4gKw0KPiArICAgICAgICBfMjEgPSB2ZWN0X3Zl Y19pdl8uNl8yMiArIHsgVkYsIC4uLiB9Ow0KPiArDQo+ICsgICAgICBXZSBz aG91bGQgZ2VuZXJhdGU6DQo+ICsNCj4gKyAgICAgICBfMzUgPSAuU0VMRUNU X1ZMIChpdnRtcF8zMywgVkYpOw0KPiArICAgICAgIHZlY3RfY3N0X18yMiA9 IFt2ZWNfZHVwbGljYXRlX2V4cHJdIF8zNTsNCj4gKyAgICAgICBfMjEgPSB2 ZWN0X3ZlY19pdl8uNl8yMiArIHZlY3RfY3N0X18yMjsgICovDQo+ICsgICB2 ZWNfbG9vcF9sZW5zICpsZW5zID0gJkxPT1BfVklORk9fTEVOUyAobG9vcF92 aW5mbyk7DQo+ICsgICB0cmVlIGxlbg0KPiArICAgICA9IHZlY3RfZ2V0X2xv b3BfbGVuIChsb29wX3ZpbmZvLCBOVUxMLCBsZW5zLCAxLCB2ZWN0eXBlLCAw LCAwKTsNCj4gKyAgIGV4cHIgPSBmb3JjZV9naW1wbGVfb3BlcmFuZCAoZm9s ZF9jb252ZXJ0IChUUkVFX1RZUEUgKHN0ZXBfZXhwciksDQo+ICsgICAgICB1 bnNoYXJlX2V4cHIgKGxlbikpLA0KPiArICAgICAgICAmc2VxLCB0cnVlLCBO VUxMX1RSRUUpOw0KPiAgIH0NCj4gICAgICAgIGVsc2UNCj4gLSBleHByID0g YnVpbGRfaW50X2NzdCAoVFJFRV9UWVBFIChzdGVwX2V4cHIpLCB2Zik7DQo+ ICsgew0KPiArICAgYm9vbCBmbG9hdF9wID0gU0NBTEFSX0ZMT0FUX1RZUEVf UCAoVFJFRV9UWVBFIChzdGVwX2V4cHIpKTsNCj4gKyAgIGV4cHIgPSBidWls ZF9pbnRfY3N0IChmbG9hdF9wID8gaW50ZWdlcl90eXBlX25vZGUNCj4gKyA6 IFRSRUVfVFlQRSAoc3RlcF9leHByKSwNCj4gKyB2Zik7DQo+ICsgICBpZiAo ZmxvYXRfcCkNCj4gKyAgICAgZXhwciA9IGdpbXBsZV9idWlsZCAoJnNlcSwg RkxPQVRfRVhQUiwgVFJFRV9UWVBFIChzdGVwX2V4cHIpLCBleHByKTsNCj4g KyB9DQo+ICsNCiANCkkgbWVhbnQgeW91IGtlZXAgdGhlIGV4aXN0aW5nIGZs b3cgaW4gdGhlIGZ1bmN0aW9uLCBzcGVjaWZpY2FsbHkNCkkgdGhpbmsgeW91 IHNob3VsZCBoYW5kbGUgU0NBTEFSX0ZMT0FUX1RZUEVfUCBsaWtlIGl0IHdh cyBwcmV2aW91c2x5DQpoYW5kbGVkLCBqdXN0IGJ1aWxkICd2ZicgaW4gdGhl IGR5bmFtaWMgd2F5Lg0KIA0KPiAgICAgICAgbmV3X25hbWUgPSBnaW1wbGVf YnVpbGQgKCZzZXEsIE1VTFRfRVhQUiwgVFJFRV9UWVBFIChzdGVwX2V4cHIp LA0KPiAgICAgICAgICBleHByLCBzdGVwX2V4cHIpOw0KPiAgICAgICAgaWYg KHNlcSkNCj4gICB7DQo+IC0gICBuZXdfYmIgPSBnc2lfaW5zZXJ0X3NlcV9v bl9lZGdlX2ltbWVkaWF0ZSAocGUsIHNlcSk7DQo+IC0gICBnY2NfYXNzZXJ0 ICghbmV3X2JiKTsNCj4gKyAgIGlmIChMT09QX1ZJTkZPX1VTSU5HX1NFTEVD VF9WTF9QIChsb29wX3ZpbmZvKSkNCj4gKyAgICAgZ3NpX2luc2VydF9zZXFf YmVmb3JlICgmc2ksIHNlcSwgR1NJX1NBTUVfU1RNVCk7DQo+ICsgICBlbHNl DQo+ICsgICAgIHsNCj4gKyAgICAgICBuZXdfYmIgPSBnc2lfaW5zZXJ0X3Nl cV9vbl9lZGdlX2ltbWVkaWF0ZSAocGUsIHNlcSk7DQo+ICsgICAgICAgZ2Nj X2Fzc2VydCAoIW5ld19iYik7DQo+ICsgICAgIH0NCj4gICB9DQo+ICAgICAg fQ0KPiAgDQo+IEBAIC0xMDMzNSw5ICsxMDM2Myw5IEBAIHZlY3Rvcml6YWJs ZV9pbmR1Y3Rpb24gKGxvb3BfdmVjX2luZm8gbG9vcF92aW5mbywNCj4gICAg Z2NjX2Fzc2VydCAoQ09OU1RBTlRfQ0xBU1NfUCAobmV3X25hbWUpDQo+ICAg ICAgICAgfHwgVFJFRV9DT0RFIChuZXdfbmFtZSkgPT0gU1NBX05BTUUpOw0K PiAgICBuZXdfdmVjID0gYnVpbGRfdmVjdG9yX2Zyb21fdmFsIChzdGVwX3Zl Y3R5cGUsIHQpOw0KPiAtICB2ZWNfc3RlcCA9IHZlY3RfaW5pdF92ZWN0b3Ig KGxvb3BfdmluZm8sIHN0bXRfaW5mbywNCj4gLSAgICAgICAgbmV3X3ZlYywg c3RlcF92ZWN0eXBlLCBOVUxMKTsNCj4gLQ0KPiArICB2ZWNfc3RlcA0KPiAr ICAgID0gdmVjdF9pbml0X3ZlY3RvciAobG9vcF92aW5mbywgc3RtdF9pbmZv LCBuZXdfdmVjLCBzdGVwX3ZlY3R5cGUsDQo+ICsgTE9PUF9WSU5GT19VU0lO R19TRUxFQ1RfVkxfUCAobG9vcF92aW5mbykgPyAmc2kgOiBOVUxMKTsNCiAN CmFnYWluIHRoaXMgbWFrZXMgdGhlIGZsb3cgaGFyZCB0byBmb2xsb3cuICBJ IHN1cHBvc2UgcmVmYWN0b3JpbmcgdGhpcw0Kb3ZlcmFsbCB0bw0KIA0KICAg IGlmIChuZXN0ZWRfaW5fdmVjdF9sb29wKQ0KLi4uDQogICAgZWxzZSBpZiAo TE9PUF9WSU5GT19VU0lOR19TRUxFQ1RfVkxfUCAoLi4pKQ0KLi4uDQogICAg ZWxzZQ0KLi4uDQogDQphbmQgZHVwbGljYXRlIHRoaXMgdGFpbCBpbnRvIHRo ZSBjYXNlcyBtYWtlcyBpdCBlYXNpZXIgdG8gZm9sbG93Lg0KIA0KRm9yIG5l c3RlZF9pbl92ZWN0X2xvb3Agd2UgbmV2ZXIgaGF2ZSBMT09QX1ZJTkZPX1VT SU5HX1NFTEVDVF9WTF9QPw0KIA0KUmljaGFyZC4NCiANCiANCj4gVGhhbmtz Lg0KPiANCj4gDQo+IGp1emhlLnpob25nQHJpdmFpLmFpDQo+ICANCj4gRnJv bTogUmljaGFyZCBCaWVuZXINCj4gRGF0ZTogMjAyMy0xMS0wOSAyMDoxNg0K PiBUbzogSnV6aGUtWmhvbmcNCj4gQ0M6IGdjYy1wYXRjaGVzOyByaWNoYXJk LnNhbmRpZm9yZDsgcmd1ZW50aGVyOyBraXRvLmNoZW5nOyBraXRvLmNoZW5n DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIE1pZGRsZS1lbmQ6IEZpeCBidWcg b2YgaW5kdWN0aW9uIHZhcmlhYmxlIHZlY3Rvcml6YXRpb24gZm9yIFJWVg0K PiBPbiBXZWQsIE5vdiA4LCAyMDIzIGF0IDExOjUzP0FNIEp1emhlLVpob25n IDxqdXpoZS56aG9uZ0ByaXZhaS5haT4gd3JvdGU6DQo+ID4NCj4gPiBQUjog aHR0cHM6Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9 MTEyNDM4DQo+ID4NCj4gPiBTRUxFQ1RfVkwgcmVzdWx0IGlzIG5vdCBuZWNl c3NhcnkgYWx3YXlzIFZGIGluIG5vbi1maW5hbCBpdGVyYXRpb24uDQo+ID4N Cj4gPiBDdXJyZW50IEdJTVBMRSBJUiBpcyB3cm9uZzoNCj4gPg0KPiA+ICMg dmVjdF92ZWNfaXZfLjIxXzI1ID0gUEhJIDxfMjQoNCksIHsgMCwgMSwgMiwg Li4uIH0oMyk+DQo+ID4gLi4uDQo+ID4gXzI0ID0gdmVjdF92ZWNfaXZfLjIx XzI1ICsgeyBQT0xZX0lOVF9DU1QgWzQsIDRdLCAuLi4gfTsNCj4gPg0KPiA+ IEFmdGVyIHRoaXMgcGF0Y2ggd2hpY2ggaXMgY29ycmVjdCBmb3IgU0VMRUNU X1ZMOg0KPiA+DQo+ID4gIyB2ZWN0X3ZlY19pdl8uOF8yMiA9IFBISSA8XzIx KDQpLCB7IDAsIDEsIDIsIC4uLiB9KDMpPg0KPiA+IC4uLg0KPiA+IF8zNSA9 IC5TRUxFQ1RfVkwgKGl2dG1wXzMzLCBQT0xZX0lOVF9DU1QgWzQsIDRdKTsN Cj4gPiBfMjEgPSB2ZWN0X3ZlY19pdl8uOF8yMiArIHsgUE9MWV9JTlRfQ1NU IFs0LCA0XSwgLi4uIH07DQo+ID4NCj4gPiBraXRvLCBjb3VsZCB5b3UgZ2l2 ZSBtb3JlIGV4cGxhbmF0aW9uID8NCj4gPg0KPiA+ICAgICAgICAgUFIgbWlk ZGxlLzExMjQzOA0KPiA+DQo+ID4gZ2NjL0NoYW5nZUxvZzoNCj4gPg0KPiA+ ICAgICAgICAgKiB0cmVlLXZlY3QtbG9vcC5jYyAodmVjdG9yaXphYmxlX2lu ZHVjdGlvbik6IEZpeCBidWcuDQo+ID4NCj4gPiBnY2MvdGVzdHN1aXRlL0No YW5nZUxvZzoNCj4gPg0KPiA+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2 L3J2di9hdXRvdmVjL3ByMTEyNDM4LmM6IE5ldyB0ZXN0Lg0KPiA+DQo+ID4g LS0tDQo+ID4gIC4uLi9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3By MTEyNDM4LmMgICB8IDM1ICsrKysrKysrKysrKysrKysrDQo+ID4gIGdjYy90 cmVlLXZlY3QtbG9vcC5jYyAgICAgICAgICAgICAgICAgICAgICAgICB8IDM5 ICsrKysrKysrKysrKysrKy0tLS0NCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA2 NyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQ0KPiA+ICBjcmVhdGUg bW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9hdXRvdmVjL3ByMTEyNDM4LmMNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcHIx MTI0MzguYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YXV0b3ZlYy9wcjExMjQzOC5jDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQN Cj4gPiBpbmRleCAwMDAwMDAwMDAwMC4uYjMyNmQ1NmE1MmMNCj4gPiAtLS0g L2Rldi9udWxsDQo+ID4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9hdXRvdmVjL3ByMTEyNDM4LmMNCj4gPiBAQCAtMCwwICsx LDM1IEBADQo+ID4gKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQo+ID4gKy8q IHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NGQgLU8z IC1mbm8tdmVjdC1jb3N0LW1vZGVsIC1mZmFzdC1tYXRoIC1mZHVtcC10cmVl LW9wdGltaXplZC1kZXRhaWxzIiB9ICovDQo+ID4gKw0KPiA+ICt2b2lkDQo+ ID4gK2ZvbyAoaW50IG4sIGludCAqX19yZXN0cmljdCBpbiwgaW50ICpfX3Jl c3RyaWN0IG91dCkNCj4gPiArew0KPiA+ICsgIGZvciAoaW50IGkgPSAwOyBp IDwgbjsgaSArPSAxKQ0KPiA+ICsgICAgew0KPiA+ICsgICAgICBvdXRbaV0g PSBpbltpXSArIGk7DQo+ID4gKyAgICB9DQo+ID4gK30NCj4gPiArDQo+ID4g K3ZvaWQNCj4gPiArZm9vMiAoaW50IG4sIGZsb2F0ICogX19yZXN0cmljdCBp biwNCj4gPiArZmxvYXQgKiBfX3Jlc3RyaWN0IG91dCkNCj4gPiArew0KPiA+ ICsgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSArPSAxKQ0KPiA+ICsgICAg ew0KPiA+ICsgICAgICBvdXRbaV0gPSBpbltpXSArIGk7DQo+ID4gKyAgICB9 DQo+ID4gK30NCj4gPiArDQo+ID4gK3ZvaWQNCj4gPiArZm9vMyAoaW50IG4s IGZsb2F0ICogX19yZXN0cmljdCBpbiwNCj4gPiArZmxvYXQgKiBfX3Jlc3Ry aWN0IG91dCwgZmxvYXQgeCkNCj4gPiArew0KPiA+ICsgIGZvciAoaW50IGkg PSAwOyBpIDwgbjsgaSArPSAxKQ0KPiA+ICsgICAgew0KPiA+ICsgICAgICBv dXRbaV0gPSBpbltpXSArIGkqIGk7DQo+ID4gKyAgICB9DQo+ID4gK30NCj4g PiArDQo+ID4gKy8qIFdlIGRvbid0IHdhbnQgdG8gc2VlIHZlY3RfdmVjX2l2 Xy4yMV8yNSArIHsgUE9MWV9JTlRfQ1NUIFs0LCA0XSwgLi4uIH0uICAqLw0K PiA+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtbm90ICJcXCsg XHsgUE9MWV9JTlRfQ1NUIiAib3B0aW1pemVkIiB9IH0gKi8NCj4gPiArDQo+ ID4gZGlmZiAtLWdpdCBhL2djYy90cmVlLXZlY3QtbG9vcC5jYyBiL2djYy90 cmVlLXZlY3QtbG9vcC5jYw0KPiA+IGluZGV4IGE1NDRiYzliMDU5Li4zZTEw Mzk0NjE2OCAxMDA2NDQNCj4gPiAtLS0gYS9nY2MvdHJlZS12ZWN0LWxvb3Au Y2MNCj4gPiArKysgYi9nY2MvdHJlZS12ZWN0LWxvb3AuY2MNCj4gPiBAQCAt MTAzMDksMTAgKzEwMzA5LDMwIEBAIHZlY3Rvcml6YWJsZV9pbmR1Y3Rpb24g KGxvb3BfdmVjX2luZm8gbG9vcF92aW5mbywNCj4gPiAgICAgIG5ld19uYW1l ID0gc3RlcF9leHByOw0KPiA+ICAgIGVsc2UNCj4gPiAgICAgIHsNCj4gPiAr ICAgICAgZ2ltcGxlX3NlcSBzZXEgPSBOVUxMOw0KPiA+ICsgICAgICBpZiAo TE9PUF9WSU5GT19VU0lOR19TRUxFQ1RfVkxfUCAobG9vcF92aW5mbykpDQo+ ID4gKyAgICAgICB7DQo+ID4gKyAgICAgICAgIC8qIFdoZW4gd2UncmUgdXNp bmcgbG9vcF9sZW4gcHJvZHVjZWQgYnkgU0VMRUNfVkwsIHRoZSBub24tZmlu YWwNCj4gPiArICAgICAgICAgICAgaXRlcmF0aW9ucyBhcmUgbm90IGFsd2F5 cyBwcm9jZXNzaW5nIFZGIGVsZW1lbnRzLiAgU28gdmVjdG9yaXplDQo+ID4g KyAgICAgICAgICAgIGluZHVjdGlvbiB2YXJpYWJsZSBpbnN0ZWFkIG9mDQo+ ID4gKw0KPiA+ICsgICAgICAgICAgICAgIF8yMSA9IHZlY3RfdmVjX2l2Xy42 XzIyICsgeyBWRiwgLi4uIH07DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICBX ZSBzaG91bGQgZ2VuZXJhdGU6DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAg IF8zNSA9IC5TRUxFQ1RfVkwgKGl2dG1wXzMzLCBWRik7DQo+ID4gKyAgICAg ICAgICAgICAgdmVjdF9jc3RfXzIyID0gW3ZlY19kdXBsaWNhdGVfZXhwcl0g XzM1Ow0KPiA+ICsgICAgICAgICAgICAgIF8yMSA9IHZlY3RfdmVjX2l2Xy42 XzIyICsgdmVjdF9jc3RfXzIyOyAgKi8NCj4gPiArICAgICAgICAgdmVjX2xv b3BfbGVucyAqbGVucyA9ICZMT09QX1ZJTkZPX0xFTlMgKGxvb3BfdmluZm8p Ow0KPiA+ICsgICAgICAgICB0cmVlIGxlbg0KPiA+ICsgICAgICAgICAgID0g dmVjdF9nZXRfbG9vcF9sZW4gKGxvb3BfdmluZm8sIE5VTEwsIGxlbnMsIDEs IHZlY3R5cGUsIDAsIDApOw0KPiA+ICsgICAgICAgICBleHByID0gZm9yY2Vf Z2ltcGxlX29wZXJhbmQgKGZvbGRfY29udmVydCAoVFJFRV9UWVBFIChzdGVw X2V4cHIpLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaGFyZV9leHByIChsZW4pKSwNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2Vx LCB0cnVlLCBOVUxMX1RSRUUpOw0KPiA+ICsgICAgICAgfQ0KPiAgDQo+IEkg dGhpbmsgaXQgd291bGQgYmUgYmV0dGVyIHRvIHNwbGl0IG91dCBidWlsZGlu ZyBhIHRyZWUgZnJvbSBWRiBmcm9tIGJvdGgNCj4gYXJtcyBhbmQgYXZvaWQg dXNpbmcgJ3ZmJyB3aGVuIExPT1BfVklORk9fVVNJTkdfU0VMRUNUX1ZMX1Au DQo+ICANCj4gQnR3LCB5b3UgYXJlIG5vdCBwYXRjaGluZyB0aGUgU0xQIHBh dGggaGVyZSB3aGljaCBJIGJlbGlldmUgaGFzIHRoZSBzYW1lDQo+IHByb2Js ZW0gYnV0IGlzIGN1cnJlbnRseSBleGVtcHQgZnJvbSBub24tY29uc3RhbnQg VkYgYXQgbGVhc3QuDQo+ICANCj4gUmljaGFyZC4NCj4gIA0KPiA+ICAgICAg ICAvKiBpdl9sb29wIGlzIHRoZSBsb29wIHRvIGJlIHZlY3Rvcml6ZWQuIEdl bmVyYXRlOg0KPiA+ICAgICAgICAgICB2ZWNfc3RlcCA9IFtWRipTLCBWRipT LCBWRipTLCBWRipTXSAgKi8NCj4gPiAtICAgICAgZ2ltcGxlX3NlcSBzZXEg PSBOVUxMOw0KPiA+IC0gICAgICBpZiAoU0NBTEFSX0ZMT0FUX1RZUEVfUCAo VFJFRV9UWVBFIChzdGVwX2V4cHIpKSkNCj4gPiArICAgICAgZWxzZSBpZiAo U0NBTEFSX0ZMT0FUX1RZUEVfUCAoVFJFRV9UWVBFIChzdGVwX2V4cHIpKSkN Cj4gPiAgICAgICAgIHsNCj4gPiAgICAgICAgICAgZXhwciA9IGJ1aWxkX2lu dF9jc3QgKGludGVnZXJfdHlwZV9ub2RlLCB2Zik7DQo+ID4gICAgICAgICAg IGV4cHIgPSBnaW1wbGVfYnVpbGQgKCZzZXEsIEZMT0FUX0VYUFIsIFRSRUVf VFlQRSAoc3RlcF9leHByKSwgZXhwcik7DQo+ID4gQEAgLTEwMzIzLDggKzEw MzQzLDEzIEBAIHZlY3Rvcml6YWJsZV9pbmR1Y3Rpb24gKGxvb3BfdmVjX2lu Zm8gbG9vcF92aW5mbywNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZXhwciwgc3RlcF9leHByKTsNCj4gPiAgICAgICAgaWYgKHNlcSkN Cj4gPiAgICAgICAgIHsNCj4gPiAtICAgICAgICAgbmV3X2JiID0gZ3NpX2lu c2VydF9zZXFfb25fZWRnZV9pbW1lZGlhdGUgKHBlLCBzZXEpOw0KPiA+IC0g ICAgICAgICBnY2NfYXNzZXJ0ICghbmV3X2JiKTsNCj4gPiArICAgICAgICAg aWYgKExPT1BfVklORk9fVVNJTkdfU0VMRUNUX1ZMX1AgKGxvb3BfdmluZm8p KQ0KPiA+ICsgICAgICAgICAgIGdzaV9pbnNlcnRfc2VxX2JlZm9yZSAoJnNp LCBzZXEsIEdTSV9TQU1FX1NUTVQpOw0KPiA+ICsgICAgICAgICBlbHNlDQo+ ID4gKyAgICAgICAgICAgew0KPiA+ICsgICAgICAgICAgICAgbmV3X2JiID0g Z3NpX2luc2VydF9zZXFfb25fZWRnZV9pbW1lZGlhdGUgKHBlLCBzZXEpOw0K PiA+ICsgICAgICAgICAgICAgZ2NjX2Fzc2VydCAoIW5ld19iYik7DQo+ID4g KyAgICAgICAgICAgfQ0KPiA+ICAgICAgICAgfQ0KPiA+ICAgICAgfQ0KPiA+ DQo+ID4gQEAgLTEwMzMyLDkgKzEwMzU3LDkgQEAgdmVjdG9yaXphYmxlX2lu ZHVjdGlvbiAobG9vcF92ZWNfaW5mbyBsb29wX3ZpbmZvLA0KPiA+ICAgIGdj Y19hc3NlcnQgKENPTlNUQU5UX0NMQVNTX1AgKG5ld19uYW1lKQ0KPiA+ICAg ICAgICAgICAgICAgfHwgVFJFRV9DT0RFIChuZXdfbmFtZSkgPT0gU1NBX05B TUUpOw0KPiA+ICAgIG5ld192ZWMgPSBidWlsZF92ZWN0b3JfZnJvbV92YWwg KHN0ZXBfdmVjdHlwZSwgdCk7DQo+ID4gLSAgdmVjX3N0ZXAgPSB2ZWN0X2lu aXRfdmVjdG9yIChsb29wX3ZpbmZvLCBzdG10X2luZm8sDQo+ID4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG5ld192ZWMsIHN0ZXBfdmVjdHlw ZSwgTlVMTCk7DQo+ID4gLQ0KPiA+ICsgIHZlY19zdGVwDQo+ID4gKyAgICA9 IHZlY3RfaW5pdF92ZWN0b3IgKGxvb3BfdmluZm8sIHN0bXRfaW5mbywgbmV3 X3ZlYywgc3RlcF92ZWN0eXBlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgIExPT1BfVklORk9fVVNJTkdfU0VMRUNUX1ZMX1AgKGxvb3BfdmluZm8p ID8gJnNpIDogTlVMTCk7DQo+ID4NCj4gPiAgICAvKiBDcmVhdGUgdGhlIGZv bGxvd2luZyBkZWYtdXNlIGN5Y2xlOg0KPiA+ICAgICAgIGxvb3AgcHJvbG9n Og0KPiA+IC0tDQo+ID4gMi4zNi4zDQo+ID4NCj4gIA0KPiANCiANCi0tIA0K UmljaGFyZCBCaWVuZXIgPHJndWVudGhlckBzdXNlLmRlPg0KU1VTRSBTb2Z0 d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJILA0KRnJhbmtlbnN0cmFzc2Ug MTQ2LCA5MDQ2MSBOdWVybmJlcmcsIEdlcm1hbnk7DQpHRjogSXZvIFRvdGV2 LCBBbmRyZXcgTWNEb25hbGQsIFdlcm5lciBLbm9ibGljaDsgKEhSQiAzNjgw OSwgQUcgTnVlcm5iZXJnKQ0KIA0K ------=_001_NextPart828660475301_=------