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 6501B3858D33 for ; Wed, 1 Feb 2023 12:47:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6501B3858D33 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai X-QQ-mid: bizesmtp68t1675255620tfck6iql Received: from LAPTOP-EPITNQBU ( [58.60.1.3]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 01 Feb 2023 20:46:59 +0800 (CST) X-QQ-SSF: 01400000000000E0L000000A0000000 X-QQ-FEAT: RQW/96u6TohWvB29OeQNLABIUATlJc4NqYTG5OTrA6c3B/YQm+89bFyGA7hZq RhhtvjoPWJG9V9r2hLRattcheH5ed9zzGyMZkVmSg0LdIgYc7mEsufN+vhY/wsyMH6gJexu yUWdPa739RfRsdoeLl6WQDOGg0h8NFvpAcLibs0/oDyMVL7J5i+4iaWtzC4EcEXYBdtYXpk Ml6YGTrT04UZ7/D8uG9+g1E3wrrxolTSB4foDc4R32FJLW9MtzJV1QMJ8DOMscW3ZSfmecp d1prR8xbKCrYUijSm+8Xv2mf93+dH85HuzZayfZ3NOSI2L3GXBYpTDl0V9BFw5V5uEfId/z JdKp10DTE6udfotNXpcNZLfuHdALkIGTxgx13JDlD9OB3L+V868xaqqi8N7dCElAkjAcUTa 7oTG26zJWSWJ7r6Cd6q2gEjrM/Bpd/dm X-QQ-GoodBg: 2 Date: Wed, 1 Feb 2023 20:47:00 +0800 From: "juzhe.zhong@rivai.ai" To: rguenther Cc: gcc-patches , kito.cheng , richard.sandiford , jeffreyalaw , apinski Subject: Re: Re: [PATCH] CPROP: Allow cprop optimization when the function has a single block References: <20230201122444.253620-1-juzhe.zhong@rivai.ai>, X-Priority: 3 X-GUID: 3B847638-02E8-4519-BFED-AE3425E91E01 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart254275356134_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvr:qybglogicsvr7 X-Spam-Status: No, score=-10.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_PASS,TXREP,T_KAM_HTML_FONT_INVALID,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_NextPart254275356134_=---- Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IEkgZG9uJ3Qga25vd24gd2hldGhlciBDU0UgZG8gdGhlIGpvYi4gV2hhdCBJ IHNhdyBpcyBDUFJPUCBkbyB0aGUgb3B0aW1pemF0aW9uIHdoZW4gd2UgaGF2 ZSBtb3JlIHRoYW4gMSBibG9jay4NCg0KVGhpcyB0aGUgUlRMIGR1bXAgYmVm b3JlIENQUk9QOg0KDQooaW5zbiAxOSAxOCAyMCA0IChzZXQgKHJlZzpWTngx REkgMTUxKQ0KICAgICAgICAoaWZfdGhlbl9lbHNlOlZOeDFESSAodW5zcGVj OlZOeDFCSSBbDQogICAgICAgICAgICAgICAgICAgIChjb25zdF92ZWN0b3I6 Vk54MUJJIHJlcGVhdCBbDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg KGNvbnN0X2ludCAxIFsweDFdKQ0KICAgICAgICAgICAgICAgICAgICAgICAg XSkNCiAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA0IFsweDRdKQ0K ICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDIgWzB4Ml0pIHJlcGVh dGVkIHgyDQogICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCBbMF0p DQogICAgICAgICAgICAgICAgICAgIChyZWc6U0kgNjYgdmwpDQogICAgICAg ICAgICAgICAgICAgIChyZWc6U0kgNjcgdnR5cGUpDQogICAgICAgICAgICAg ICAgXSBVTlNQRUNfVlBSRURJQ0FURSkNCiAgICAgICAgICAgICh2ZWNfZHVw bGljYXRlOlZOeDFESSAocmVnL3Y6REkgMTQ4IFsgeCBdKSkNCiAgICAgICAg ICAgICh1bnNwZWM6Vk54MURJIFsNCiAgICAgICAgICAgICAgICAgICAgKGNv bnN0X2ludCAwIFswXSkNCiAgICAgICAgICAgICAgICBdIFVOU1BFQ19WVU5E RUYpKSkgInJ2di5jIjoyMjoyMyA2OTUge3ByZWRfYnJvYWRjYXN0dm54MWRp fQ0KICAgICAobmlsKSkNCihpbnNuIDIwIDE5IDIxIDQgKHNldCAocmVnL3Y6 Vk54MURJIDEzOSBbIHYzIF0pDQogICAgICAgIChpZl90aGVuX2Vsc2U6Vk54 MURJICh1bnNwZWM6Vk54MUJJIFsNCiAgICAgICAgICAgICAgICAgICAgKGNv bnN0X3ZlY3RvcjpWTngxQkkgcmVwZWF0IFsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoY29uc3RfaW50IDEgWzB4MV0pDQogICAgICAgICAgICAg ICAgICAgICAgICBdKQ0KICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50 IDQgWzB4NF0pDQogICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMiBb MHgyXSkgcmVwZWF0ZWQgeDINCiAgICAgICAgICAgICAgICAgICAgKGNvbnN0 X2ludCAwIFswXSkNCiAgICAgICAgICAgICAgICAgICAgKHJlZzpTSSA2NiB2 bCkNCiAgICAgICAgICAgICAgICAgICAgKHJlZzpTSSA2NyB2dHlwZSkNCiAg ICAgICAgICAgICAgICBdIFVOU1BFQ19WUFJFRElDQVRFKQ0KICAgICAgICAg ICAgKHBsdXM6Vk54MURJIChyZWcvdjpWTngxREkgMTM4IFsgdjIgXSkNCiAg ICAgICAgICAgICAgICAocmVnOlZOeDFESSAxNTEpKQ0KICAgICAgICAgICAg KHVuc3BlYzpWTngxREkgWw0KICAgICAgICAgICAgICAgICAgICAoY29uc3Rf aW50IDAgWzBdKQ0KICAgICAgICAgICAgICAgIF0gVU5TUEVDX1ZVTkRFRikp KSAicnZ2LmMiOjIyOjIzIDE1Mjgge3ByZWRfYWRkdm54MWRpfQ0KICAgICAo ZXhwcl9saXN0OlJFR19ERUFEIChyZWc6Vk54MURJIDE1MSkNCiAgICAgICAg KG5pbCkpKQ0KKGluc24gMjEgMjAgMjIgNCAoc2V0IChyZWc6Vk54MURJIDE1 MikNCiAgICAgICAgKGlmX3RoZW5fZWxzZTpWTngxREkgKHVuc3BlYzpWTngx QkkgWw0KICAgICAgICAgICAgICAgICAgICAoY29uc3RfdmVjdG9yOlZOeDFC SSByZXBlYXQgWw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25z dF9pbnQgMSBbMHgxXSkNCiAgICAgICAgICAgICAgICAgICAgICAgIF0pDQog ICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNCBbMHg0XSkNCiAgICAg ICAgICAgICAgICAgICAgKGNvbnN0X2ludCAyIFsweDJdKSByZXBlYXRlZCB4 Mg0KICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDAgWzBdKQ0KICAg ICAgICAgICAgICAgICAgICAocmVnOlNJIDY2IHZsKQ0KICAgICAgICAgICAg ICAgICAgICAocmVnOlNJIDY3IHZ0eXBlKQ0KICAgICAgICAgICAgICAgIF0g VU5TUEVDX1ZQUkVESUNBVEUpDQogICAgICAgICAgICAodmVjX2R1cGxpY2F0 ZTpWTngxREkgKHJlZy92OkRJIDE0OCBbIHggXSkpDQogICAgICAgICAgICAo dW5zcGVjOlZOeDFESSBbDQogICAgICAgICAgICAgICAgICAgIChjb25zdF9p bnQgMCBbMF0pDQogICAgICAgICAgICAgICAgXSBVTlNQRUNfVlVOREVGKSkp ICJydnYuYyI6MjM6MjMgNjk1IHtwcmVkX2Jyb2FkY2FzdHZueDFkaX0NCiAg ICAgKG5pbCkpDQooaW5zbiAyMiAyMSAyMyA0IChzZXQgKHJlZy92OlZOeDFE SSAxNDAgWyB2NCBdKQ0KICAgICAgICAoaWZfdGhlbl9lbHNlOlZOeDFESSAo dW5zcGVjOlZOeDFCSSBbDQogICAgICAgICAgICAgICAgICAgIChjb25zdF92 ZWN0b3I6Vk54MUJJIHJlcGVhdCBbDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGNvbnN0X2ludCAxIFsweDFdKQ0KICAgICAgICAgICAgICAgICAg ICAgICAgXSkNCiAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA0IFsw eDRdKQ0KICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDAgWzBdKQ0K ICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDIgWzB4Ml0pDQogICAg ICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCBbMF0pDQogICAgICAgICAg ICAgICAgICAgIChyZWc6U0kgNjYgdmwpDQogICAgICAgICAgICAgICAgICAg IChyZWc6U0kgNjcgdnR5cGUpDQogICAgICAgICAgICAgICAgXSBVTlNQRUNf VlBSRURJQ0FURSkNCiAgICAgICAgICAgIChwbHVzOlZOeDFESSAocmVnL3Y6 Vk54MURJIDEzOCBbIHYyIF0pDQogICAgICAgICAgICAgICAgKHJlZzpWTngx REkgMTUyKSkNCiAgICAgICAgICAgIChyZWcvdjpWTngxREkgMTM5IFsgdjMg XSkpKSAicnZ2LmMiOjIzOjIzIDE1Mjgge3ByZWRfYWRkdm54MWRpfQ0KICAg ICAoZXhwcl9saXN0OlJFR19ERUFEIChyZWc6Vk54MURJIDE1MikNCiAgICAg ICAgKGV4cHJfbGlzdDpSRUdfREVBRCAocmVnL3Y6Vk54MURJIDEzOSBbIHYz IF0pDQogICAgICAgICAgICAoZXhwcl9saXN0OlJFR19ERUFEIChyZWcvdjpW TngxREkgMTM4IFsgdjIgXSkNCiAgICAgICAgICAgICAgICAobmlsKSkpKSkN Cg0KQWZ0ZXIgQ1JQT1A6DQooaW5zbiAxNSAxNCAxNiA0IChzZXQgKHJlZzpW TngxREkgMTQ3KQ0KICAgICAgICAoaWZfdGhlbl9lbHNlOlZOeDFESSAodW5z cGVjOlZOeDFCSSBbDQogICAgICAgICAgICAgICAgICAgIChjb25zdF92ZWN0 b3I6Vk54MUJJIHJlcGVhdCBbDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGNvbnN0X2ludCAxIFsweDFdKQ0KICAgICAgICAgICAgICAgICAgICAg ICAgXSkNCiAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA0IFsweDRd KQ0KICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDIgWzB4Ml0pIHJl cGVhdGVkIHgyDQogICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCBb MF0pDQogICAgICAgICAgICAgICAgICAgIChyZWc6U0kgNjYgdmwpDQogICAg ICAgICAgICAgICAgICAgIChyZWc6U0kgNjcgdnR5cGUpDQogICAgICAgICAg ICAgICAgXSBVTlNQRUNfVlBSRURJQ0FURSkNCiAgICAgICAgICAgICh2ZWNf ZHVwbGljYXRlOlZOeDFESSAocmVnL3Y6REkgMTQzIFsgeCBdKSkNCiAgICAg ICAgICAgICh1bnNwZWM6Vk54MURJIFsNCiAgICAgICAgICAgICAgICAgICAg KGNvbnN0X2ludCAwIFswXSkNCiAgICAgICAgICAgICAgICBdIFVOU1BFQ19W VU5ERUYpKSkgInJ2di5jIjoxMToyMyA2OTUge3ByZWRfYnJvYWRjYXN0dm54 MWRpfQ0KICAgICAobmlsKSkNCihpbnNuIDE2IDE1IDE4IDQgKHNldCAocmVn L3Y6Vk54MURJIDEzOSBbIHYzIF0pDQogICAgICAgIChpZl90aGVuX2Vsc2U6 Vk54MURJICh1bnNwZWM6Vk54MUJJIFsNCiAgICAgICAgICAgICAgICAgICAg KGNvbnN0X3ZlY3RvcjpWTngxQkkgcmVwZWF0IFsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoY29uc3RfaW50IDEgWzB4MV0pDQogICAgICAgICAg ICAgICAgICAgICAgICBdKQ0KICAgICAgICAgICAgICAgICAgICAoY29uc3Rf aW50IDQgWzB4NF0pDQogICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQg MiBbMHgyXSkgcmVwZWF0ZWQgeDINCiAgICAgICAgICAgICAgICAgICAgKGNv bnN0X2ludCAwIFswXSkNCiAgICAgICAgICAgICAgICAgICAgKHJlZzpTSSA2 NiB2bCkNCiAgICAgICAgICAgICAgICAgICAgKHJlZzpTSSA2NyB2dHlwZSkN CiAgICAgICAgICAgICAgICBdIFVOU1BFQ19WUFJFRElDQVRFKQ0KICAgICAg ICAgICAgKHBsdXM6Vk54MURJIChyZWcvdjpWTngxREkgMTM4IFsgdjIgXSkN CiAgICAgICAgICAgICAgICAocmVnOlZOeDFESSAxNDcpKQ0KICAgICAgICAg ICAgKHVuc3BlYzpWTngxREkgWw0KICAgICAgICAgICAgICAgICAgICAoY29u c3RfaW50IDAgWzBdKQ0KICAgICAgICAgICAgICAgIF0gVU5TUEVDX1ZVTkRF RikpKSAicnZ2LmMiOjExOjIzIDE1Mjgge3ByZWRfYWRkdm54MWRpfQ0KICAg ICAoZXhwcl9saXN0OlJFR19ERUFEIChyZWc6Vk54MURJIDE0NykNCiAgICAg ICAgKGV4cHJfbGlzdDpSRUdfREVBRCAocmVnL3Y6Vk54MURJIDEzOCBbIHYy IF0pDQogICAgICAgICAgICAobmlsKSkpKQ0KKGluc24gMTggMTYgMTkgNCAo c2V0IChyZWcvdjpWTngxREkgMTQwIFsgdjQgXSkNCiAgICAgICAgKGlmX3Ro ZW5fZWxzZTpWTngxREkgKHVuc3BlYzpWTngxQkkgWw0KICAgICAgICAgICAg ICAgICAgICAoY29uc3RfdmVjdG9yOlZOeDFCSSByZXBlYXQgWw0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMSBbMHgxXSkNCiAg ICAgICAgICAgICAgICAgICAgICAgIF0pDQogICAgICAgICAgICAgICAgICAg IChjb25zdF9pbnQgNCBbMHg0XSkNCiAgICAgICAgICAgICAgICAgICAgKGNv bnN0X2ludCAyIFsweDJdKSByZXBlYXRlZCB4Mg0KICAgICAgICAgICAgICAg ICAgICAoY29uc3RfaW50IDAgWzBdKQ0KICAgICAgICAgICAgICAgICAgICAo cmVnOlNJIDY2IHZsKQ0KICAgICAgICAgICAgICAgICAgICAocmVnOlNJIDY3 IHZ0eXBlKQ0KICAgICAgICAgICAgICAgIF0gVU5TUEVDX1ZQUkVESUNBVEUp DQogICAgICAgICAgICAocGx1czpWTngxREkgKHJlZy92OlZOeDFESSAxMzkg WyB2MyBdKQ0KICAgICAgICAgICAgICAgIChyZWc6Vk54MURJIDE0NykpDQog ICAgICAgICAgICAodW5zcGVjOlZOeDFESSBbDQogICAgICAgICAgICAgICAg ICAgIChjb25zdF9pbnQgMCBbMF0pDQogICAgICAgICAgICAgICAgXSBVTlNQ RUNfVlVOREVGKSkpICJydnYuYyI6MTI6MjMgMTUyOCB7cHJlZF9hZGR2bngx ZGl9DQogICAgIChleHByX2xpc3Q6UkVHX0RFQUQgKHJlZzpWTngxREkgMTQ4 KQ0KICAgICAgICAoZXhwcl9saXN0OlJFR19ERUFEIChyZWcvdjpWTngxREkg MTM5IFsgdjMgXSkNCiAgICAgICAgICAgIChuaWwpKSkpDQoNCllvdSBjYW4g c2VlIENQUk9QIHJlbW92ZSB0aGUgc2Vjb25kIHRoZSAicHJlZF9icm9hZGNh c3QiIGluc3RydWN0aW9uIGFuZCBwcm9wYWdhdGUgdGhlIHJlc3VsdCB0byB0 aGUgc2Vjb25kICJwcmVkX2FkZCIgaW5zdHJ1Y3Rpb27jgIINCg0KDQoNCmp1 emhlLnpob25nQHJpdmFpLmFpDQogDQpGcm9tOiBSaWNoYXJkIEJpZW5lcg0K RGF0ZTogMjAyMy0wMi0wMSAyMDo0MA0KVG86IEp1LVpoZSBaaG9uZw0KQ0M6 IGdjYy1wYXRjaGVzOyBraXRvLmNoZW5nOyByaWNoYXJkLnNhbmRpZm9yZDsg amVmZnJleWFsYXc7IGFwaW5za2kNClN1YmplY3Q6IFJlOiBbUEFUQ0hdIENQ Uk9QOiBBbGxvdyBjcHJvcCBvcHRpbWl6YXRpb24gd2hlbiB0aGUgZnVuY3Rp b24gaGFzIGEgc2luZ2xlIGJsb2NrDQpPbiBXZWQsIDEgRmViIDIwMjMsIGp1 emhlLnpob25nQHJpdmFpLmFpIHdyb3RlOg0KIA0KPiBGcm9tOiBKdS1aaGUg WmhvbmcgPGp1emhlLnpob25nQHJpdmFpLmFpPg0KPiANCj4gSGksIHRoaXMg cGF0Y2ggaXMgcHJlc2VudCBmb3IgR0NDIDE0IHNpbmNlIEkgdW5kZXJzdGFu ZCBpdCdzIG5vdCBhcHByb3ByaWF0ZQ0KPiB0byBsYW5kIGl0IGluIEdDQyAx My4NCj4gDQo+IE5VTV9GSVhFRF9CTE9DS1MgPSAyIHNpbmNlIEdDQyBkZWZp bmUgZWFjaCBmdW5jdGlvbiBoYXMgYWxlYXN0IDIgYmxvY2tzDQo+IG9uZSBp cyBlbnRyeSBibG9jaywgdGhlIG90aGVyIGlzIGV4aXQgYmxvY2suDQo+IFNv IGFjY29yZGluZyB0aGlzIGNvZGUsIHRoZSBmdW5jdGlvbiB3aWxsIG5vdCBk byBjcHJvcCBvcHRpbWl6YXRpb24gd2hlbg0KPiB0aGVyZSBpcyBvbmx5IGV4 YWN0bHkgb25lIHNpbmdsZSBibG9jay4NCiANCmNwcm9wIC8gR0NTRSBhcmUg Z2xvYmFsIGRhdGFmbG93IHByb2JsZW1zLCB0aGVyZSdzICJub3RoaW5nIiB0 byBkbyBmb3INCmEgc2luZ2xlIGJsb2NrLCB0aGUgbG9jYWwgcHJvYmxlbSBw bHVzIGl0cyBhcHBsaWNhdGlvbiBpc24ndCBjb25zaWRlcmVkDQpidXQgcHJv YmFibHkgbGVmdCBmb3IgQ1NFLg0KIA0KV2h5IGRvZXMgQ1NFIG5vdCBwZXJm b3JtIHRoZSBkZXNpcmVkIHRyYW5zZm9ybT8NCiANCj4gSSBhbSBub3Qgc3Vy ZSB3aGV0aGVyIGl0J3MgY29ycmVjdCB0byBmaXggaXQgbGlrZSB0aGlzLg0K PiBDYW4gYW55b25lIHRlbGwgbWUgd2h5IGZvcmJpZCBjcHJvcCBvcHRpbWl6 YXRpb24gaWYgdGhlIGZ1bmN0aW9uIG9ubHkgaGFzIHMNCj4gc2luZ2xlIGJs b2NrID8NCj4gDQo+IExldCdzIHRha2UgYSBsb29rIGF0IHRoZXNlIDIgZXhh bXBsZXMgb2YgUlZWIGludHJpbnNpY3M6DQo+IDEuICAgIHZvaWQgZjEgKHZv aWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQ2NF90IHgsIGludCBuKQ0KPiAgICAg ICB7DQo+ICAgICAgIHZpbnQ2NG0xX3QgdiA9IF9fcmlzY3ZfdmxlNjRfdl9p NjRtMSAoaW4gKyAxLCA0KTsNCj4gICAgICAgdmludDY0bTFfdCB2MiA9IF9f cmlzY3ZfdmxlNjRfdl9pNjRtMV90dSAodiwgaW4gKyAyLCA0KTsNCj4gICAg ICAgdmludDY0bTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pNjRtMSAodjIs IHgsIDQpOw0KPiAgICAgICB2aW50NjRtMV90IHY0ID0gX19yaXNjdl92YWRk X3Z4X2k2NG0xICh2MywgeCwgNCk7DQo+ICAgICAgIF9fcmlzY3ZfdnNlNjRf dl9pNjRtMSAob3V0ICsgMiwgdjQsIDQpOw0KPiAgICAgICB9DQo+IA0KPiBh c206DQo+ICAgICAgYWRkaSBzcCxzcCwtMTYNCj4gc3cgYTIsOChzcCkNCj4g c3cgYTMsMTIoc3ApDQo+IHN3IGEyLDAoc3ApDQo+IHN3IGEzLDQoc3ApDQo+ IGFkZGkgYTUsYTAsMQ0KPiB2c2V0aXZsaSB6ZXJvLDQsZTY0LG0xLHRhLG1h DQo+IGFkZGkgYTAsYTAsMg0KPiB2bGU2NC52IHYyNCwwKGE1KQ0KPiBhZGRp IGE1LHNwLDgNCj4gdmxzZTY0LnYgdjI3LDAoYTUpLHplcm8NCj4gYWRkaSBh MSxhMSwyDQo+IHZzZXR2bGkgemVybyx6ZXJvLGU2NCxtMSx0dSxtYQ0KPiB2 bGU2NC52IHYyNCwwKGEwKQ0KPiB2c2V0dmxpIHplcm8semVybyxlNjQsbTEs dGEsbWENCj4gdmxzZTY0LnYgdjI1LDAoc3ApLHplcm8NCj4gdmFkZC52diB2 MjYsdjI0LHYyNw0KPiB2YWRkLnZ2IHYyNCx2MjYsdjI1DQo+IHZzZTY0LnYg djI0LDAoYTEpDQo+IGFkZGkgc3Asc3AsMTYNCj4ganIgcmENCj4geW91IGNh biBzZWUgaGVyZSB0aGVyZSBhcmUgMiB2bHNlNjQudiBpbnN0cnVjdGlvbnMg dGhhdCBicm9hZGNhc3QgdGhlIHNjYWxhciB2YWx1ZSAieCINCj4gR0NDIGZh aWwgdG8gZWxpbWluYXRlIHRoZSBzZWNvbmQgdmxzZTY0LnYgaW5zdHJ1Y3Rp b24gc2luY2UgR0NDIGRvZXNuJ3QgZG8gdGhlIGNwcm9wDQo+IG9wdGltaXph dGlvbiAodGhlIGZ1bmN0aW9uIG9ubHkgaGFzIDEgc2luZ2xlIGJsb2NrKS4g SXQgY2FuIGJlIG9wdGltaXplZCBpZiB3ZSBhcHBseQ0KPiB0aGlzIHBhdGNo Lg0KPiANCj4gMi4gdm9pZCBmMSAodm9pZCAqIGluLCB2b2lkICpvdXQsIGlu dDY0X3QgeCwgaW50IG4pDQo+IHsNCj4gICAgIGlmIChuKSB7DQo+ICAgICAg IHZpbnQ2NG0xX3QgdiA9IF9fcmlzY3ZfdmxlNjRfdl9pNjRtMSAoaW4gKyAx LCA0KTsNCj4gICAgICAgdmludDY0bTFfdCB2MiA9IF9fcmlzY3ZfdmxlNjRf dl9pNjRtMV90dSAodiwgaW4gKyAyLCA0KTsNCj4gICAgICAgdmludDY0bTFf dCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pNjRtMSAodjIsIHgsIDQpOw0KPiAg ICAgICB2aW50NjRtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X2k2NG0xICh2 MywgeCwgNCk7DQo+ICAgICAgIF9fcmlzY3ZfdnNlNjRfdl9pNjRtMSAob3V0 ICsgMiwgdjQsIDQpOw0KPiAgICAgfQ0KPiB9DQo+IA0KPiBhc206DQo+ICAg ZjE6DQo+IHZzZXRpdmxpIHplcm8sNCxlNjQsbTEsdGEsbWENCj4gYmVxIGE0 LHplcm8sLkw3DQo+IGFkZGkgc3Asc3AsLTE2DQo+IHN3IGEyLDgoc3ApDQo+ IHN3IGEzLDEyKHNwKQ0KPiBhZGRpIGE1LGEwLDENCj4gdmxlNjQudiB2MjQs MChhNSkNCj4gYWRkaSBhMCxhMCwyDQo+IGFkZGkgYTUsc3AsOA0KPiB2bHNl NjQudiB2MjUsMChhNSksemVybw0KPiBhZGRpIGExLGExLDINCj4gdnNldHZs aSB6ZXJvLHplcm8sZTY0LG0xLHR1LG1hDQo+IHZsZTY0LnYgdjI0LDAoYTAp DQo+IHZhZGQudnYgdjI2LHYyNCx2MjUNCj4gdmFkZC52diB2MjQsdjI2LHYy NQ0KPiB2c2U2NC52IHYyNCwwKGExKQ0KPiBhZGRpIHNwLHNwLDE2DQo+IGpy IHJhDQo+IC5MNzoNCj4gcmV0DQo+IA0KPiBIZXJlLCBpZiB3ZSBhZGQgaWYg KG4pIGNvbmRpdGlvbiBoZXJlLCB0aGUgcHJvZ3JhbSB3aWxsIGVuZCB1cCB3 aXRoIG1vcmUgdGhhbiAxIGJsb2NrLg0KPiBTbyBHQ0Mgd2lsbCBkbyB0aGUg Y3Byb3Agb3B0aW1pemF0aW9uIGFuZCB0aGUgc2Vjb25kIHZsc2U2NC52IGlu c3RydWN0aW9uIGlzIGVsaW1pbmF0ZWQuDQo+IA0KPiBJIGFtIG5vdCBzdXJl IHdoZXRoZXIgdGhpcyBwYXRjaCBpcyBjb3JyZWN0Lg0KPiBDYW4gYW55b25l IGhlbHAgbWUgd2l0aCB0aGF0ID8NCj4gVGhhbmtzLg0KPiANCj4gDQo+IGdj Yy9DaGFuZ2VMb2c6DQo+IA0KPiAgICAgICAgICogY3Byb3AuY2MgKG9uZV9j cHJvcF9wYXNzKTogUmVtb3ZlICsxLg0KPiANCj4gLS0tDQo+ICBnY2MvY3By b3AuY2MgfCAyICstDQo+ICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KyksIDEgZGVsZXRpb24oLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9nY2MvY3By b3AuY2MgYi9nY2MvY3Byb3AuY2MNCj4gaW5kZXggNmVjMGJkYTRhMjQuLjYx NWJjNTA3OGI2IDEwMDY0NA0KPiAtLS0gYS9nY2MvY3Byb3AuY2MNCj4gKysr IGIvZ2NjL2Nwcm9wLmNjDQo+IEBAIC0xNzQ5LDcgKzE3NDksNyBAQCBvbmVf Y3Byb3BfcGFzcyAodm9pZCkNCj4gICAgaW50IGNoYW5nZWQgPSAwOw0KPiAg DQo+ICAgIC8qIFJldHVybiBpZiB0aGVyZSdzIG5vdGhpbmcgdG8gZG8sIG9y IGl0IGlzIHRvbyBleHBlbnNpdmUuICAqLw0KPiAtICBpZiAobl9iYXNpY19i bG9ja3NfZm9yX2ZuIChjZnVuKSA8PSBOVU1fRklYRURfQkxPQ0tTICsgMQ0K PiArICBpZiAobl9iYXNpY19ibG9ja3NfZm9yX2ZuIChjZnVuKSA8PSBOVU1f RklYRURfQkxPQ0tTDQo+ICAgICAgICB8fCBnY3NlX29yX2Nwcm9wX2lzX3Rv b19leHBlbnNpdmUgKF8gKCJjb25zdC9jb3B5IHByb3BhZ2F0aW9uIGRpc2Fi bGVkIikpKQ0KPiAgICAgIHJldHVybiAwOw0KPiAgDQo+IA0KIA0KLS0gDQpS aWNoYXJkIEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+DQpTVVNFIFNvZnR3 YXJlIFNvbHV0aW9ucyBHZXJtYW55IEdtYkgsIEZyYW5rZW5zdHJhc3NlIDE0 NiwgOTA0NjEgTnVlcm5iZXJnLA0KR2VybWFueTsgR0Y6IEl2byBUb3Rldiwg QW5kcmV3IE15ZXJzLCBBbmRyZXcgTWNEb25hbGQsIEJvdWRpZW4gTW9lcm1h bjsNCkhSQiAzNjgwOSAoQUcgTnVlcm5iZXJnKQ0KIA0K ------=_001_NextPart254275356134_=------