From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbg154.qq.com (smtpbg154.qq.com [15.184.224.54]) by sourceware.org (Postfix) with ESMTPS id 2A8FA3858D35 for ; Mon, 8 May 2023 14:42:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2A8FA3858D35 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: bizesmtp89t1683556939t3s2kf0w Received: from TABLET-POE6JQHH ( [115.44.118.116]) by bizesmtp.qq.com (ESMTP) with id ; Mon, 08 May 2023 22:42:18 +0800 (CST) X-QQ-SSF: 01400000000000F0Q000000A0000000 X-QQ-FEAT: k8Irs33ik7stL8tt/FloaXjqO0mSWk2Xi6OI6Dd7IDA9t/nHf8YV0u7mkwuFv S6leSWo1R/goHFAEphaAnoRyHFVtdmcVH7u1uUJRRdjbFHN0LM2OlETPlw5smaJBB9zpFJ8 Z2LOr4KKxoodYQTCJqIMbUrTggMnZCMsvxneUsqB8QbJTMfk36yq1VQYC/5yjq8DShIUYdE X2Rgy4TVKS7MYPF4UCigxHcCE7c9R/dkoEYOobGnd+WY0KknMyJaGmj6zcm3bzQH38bzrQC YESvRfL4Jb9slDRFdrVhj84LGeDoiO6ZWf/1OEDwwbzdPfr0pvF9ZSuuoUQP+RwudaJFDos UDTRW4UWI/wNBPvn0p7HhD9tLwBdzJ53tejqEx7i8YFpQESwY50yvVU+x7AManjSZ95zXJ9 mHbJ0oa5gS7a4UtzWgELIRluPCbNLqCl6ePBxydCRTc= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 6342925776874998450 Date: Mon, 8 May 2023 22:42:19 +0800 From: =?UTF-8?B?6ZKf5bGF5ZOy?= To: kito.cheng Cc: gcc-patches Subject: Re: Re: [PATCH] RISC-V: Optimize vsetvli of LCM INSERTED edge for user vsetvli [PR 109743] References: <20230506111449.2128575-1-juzhe.zhong@rivai.ai>, , X-Priority: 3 X-GUID: 1C5E4D0E-4300-4B54-A1AF-BA17E8916EC9 X-Has-Attach: no X-Mailer: Foxmail 7.2.23.121[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart333758435023_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-9.3 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,LIKELY_SPAM_BODY,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SCC_10_SHORT_WORD_LINES,SCC_20_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,SPF_HELO_PASS,SPF_PASS,TXREP,T_KAM_HTML_FONT_INVALID,T_SCC_BODY_TEXT_LINE 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_NextPart333758435023_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 T2suIEFkZHJlc3MgY29tbWVudCBhbmQgVjIgcGF0Y2g6DQpodHRwczovL2dj Yy5nbnUub3JnL3BpcGVybWFpbC9nY2MtcGF0Y2hlcy8yMDIzLU1heS82MTc4 MjEuaHRtbCANCg0KVGhhbmtzLg0KDQoNCmp1emhlLnpob25nQHJpdmFpLmFp DQogDQpGcm9tOiBLaXRvIENoZW5nDQpEYXRlOiAyMDIzLTA1LTA4IDE3OjUz DQpUbzoganV6aGUuemhvbmdAcml2YWkuYWkNCkNDOiBnY2MtcGF0Y2hlcw0K U3ViamVjdDogUmU6IFtQQVRDSF0gUklTQy1WOiBPcHRpbWl6ZSB2c2V0dmxp IG9mIExDTSBJTlNFUlRFRCBlZGdlIGZvciB1c2VyIHZzZXR2bGkgW1BSIDEw OTc0M10NCkkgYW0gd29uZGVyaW5nIGlmIGl0IGlzIHBvc3NpYmxlIHRvIGRv IHRoaXMgb24NCmxvY2FsX2VsaW1pbmF0ZV92c2V0dmxfaW5zbj8gSSBmZWVs IHRoaXMgaXMgc29ydCBvZiBsb2NhbCBlbGltaW5hdGlvbiwNCnNvIHB1dHRp bmcgdGhlbSB0b2dldGhlciB3b3VsZCBiZSBiZXR0ZXIgdGhhbiBoYW5kbGlu ZyB0aGF0IGluIG1hbnkNCmRpZmZlcmVudCBwbGFjZXMuDQogDQpPbiBNb24s IE1heSA4LCAyMDIzIGF0IDk6MzXigK9BTSBqdXpoZS56aG9uZ0ByaXZhaS5h aQ0KPGp1emhlLnpob25nQHJpdmFpLmFpPiB3cm90ZToNCj4NCj4gR2VudGxl IHBpbmcgdGhpcyBwYXRjaC4NCj4NCj4gSXMgdGhpcyBPayBmb3IgdHJ1bms/ IFRoYW5rcy4NCj4NCj4NCj4ganV6aGUuemhvbmdAcml2YWkuYWkNCj4NCj4g RnJvbToganV6aGUuemhvbmcNCj4gRGF0ZTogMjAyMy0wNS0wNiAxOToxNA0K PiBUbzogZ2NjLXBhdGNoZXMNCj4gQ0M6IGtpdG8uY2hlbmc7IEp1emhlLVpo b25nDQo+IFN1YmplY3Q6IFtQQVRDSF0gUklTQy1WOiBPcHRpbWl6ZSB2c2V0 dmxpIG9mIExDTSBJTlNFUlRFRCBlZGdlIGZvciB1c2VyIHZzZXR2bGkgW1BS IDEwOTc0M10NCj4gRnJvbTogSnV6aGUtWmhvbmcgPGp1emhlLnpob25nQHJp dmFpLmFpPg0KPg0KPiBUaGlzIHBhdGNoIGlzIGZpeGluZzogaHR0cHM6Ly9n Y2MuZ251Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTA5NzQzLg0K Pg0KPiBUaGlzIGlzc3VlIGhhcHBlbnMgaXMgYmVjYXVzZSB3ZSBhcmUgY3Vy cmVudGx5IHZlcnkgY29uc2VydmF0aXZlIGluIG9wdGltaXphdGlvbiBvZiB1 c2VyIHZzZXR2bGkuDQo+DQo+IENvbnNpZGVyIHRoaXMgZm9sbG93aW5nIGNh c2U6DQo+DQo+IGJiIDE6DQo+ICAgdnNldHZsaSBhNSxhNC4uLiAoZGVtYW5k IEFWTCA9IGE0KS4NCj4gYmIgMjoNCj4gICBSVlYgaW5zbiB1c2UgYTUgKGRl bWFuZCBBVkwgPSBhNSkuDQo+DQo+IExDTSB3aWxsIGhvaXN0IHZzZXR2bCBv ZiBiYiAyIGludG8gYmIgMS4NCj4gV2UgZG9uJ3QgZG8gQVZMIHByb3BhZ2F0 aW9uIGZvciB0aGlzIHNpdHVhdGlvbiBzaW5jZSBpdCdzIGNvbXBsaWNhdGVk IHRoYXQNCj4gd2Ugc2hvdWxkIGFuYWx5emUgdGhlIGNvZGUgc2VxdWVuY2Ug YmV0d2VlbiB2c2V0dmxpIGluIGJiIDEgYW5kIFJWViBpbnNuIGluIGJiIDIu DQo+IFRoZXkgYXJlIG5vdCBuZWNlc3NhcnkgdGhlIGNvbnNlY3V0aXZlIGJs b2Nrcy4NCj4NCj4gVGhpcyBwYXRjaCBpcyBkb2luZyB0aGUgb3B0aW1pemF0 aW9ucyBhZnRlciBMQ00sIHdlIHdpbGwgY2hlY2sgYW5kIGVsaW1pbmF0ZSB0 aGUgdnNldHZsaQ0KPiBpbiBMQ00gaW5zZXJ0ZWQgZWRnZSBpZiBzdWNoIHZz ZXR2bGkgaXMgcmVkdW5kYW50LiBTdWNoIGFwcHJvYWNoIGlzIG11Y2ggc2lt cGxpZXIgYW5kIHNhZmUuDQo+DQo+IGNvZGU6DQo+IHZvaWQNCj4gZm9vMiAo aW50MzJfdCAqYSwgaW50MzJfdCAqYiwgaW50IG4pDQo+IHsNCj4gICBpZiAo biA8PSAwKQ0KPiAgICAgICByZXR1cm47DQo+ICAgaW50IGkgPSBuOw0KPiAg IHNpemVfdCB2bCA9IF9fcmlzY3ZfdnNldHZsX2UzMm0xIChpKTsNCj4NCj4g ICBmb3IgKDsgaSA+PSAwOyBpLS0pDQo+ICAgew0KPiAgICAgdmludDMybTFf dCB2ID0gX19yaXNjdl92bGUzMl92X2kzMm0xIChhLCB2bCk7DQo+ICAgICBf X3Jpc2N2X3ZzZTMyX3ZfaTMybTEgKGIsIHYsIHZsKTsNCj4NCj4gICAgIGlm IChpID49IHZsKQ0KPiAgICAgICBjb250aW51ZTsNCj4NCj4gICAgIGlmIChp ID09IDApDQo+ICAgICAgIHJldHVybjsNCj4NCj4gICAgIHZsID0gX19yaXNj dl92c2V0dmxfZTMybTEgKGkpOw0KPiAgIH0NCj4gfQ0KPg0KPiBCZWZvcmUg dGhpcyBwYXRjaDoNCj4gZm9vMjoNCj4gLkxGQjI6DQo+ICAgICAgICAgLmNm aV9zdGFydHByb2MNCj4gICAgICAgICBibGUgICAgIGEyLHplcm8sLkwxDQo+ ICAgICAgICAgbXYgICAgICBhNCxhMg0KPiAgICAgICAgIGxpICAgICAgYTMs LTENCj4gICAgICAgICB2c2V0dmxpIGE1LGEyLGUzMixtMSx0YSxtdQ0KPiAg ICAgICAgIHZzZXR2bGkgemVybyxhNSxlMzIsbTEsdGEsbWEgIDwtIGNhbiBi ZSBlbGltaW5hdGVkLg0KPiAuTDU6DQo+ICAgICAgICAgdmxlMzIudiB2MSww KGEwKQ0KPiAgICAgICAgIHZzZTMyLnYgdjEsMChhMSkNCj4gICAgICAgICBi Z2V1ICAgIGE0LGE1LC5MMw0KPiAuTDEwOg0KPiAgICAgICAgIGJlcSAgICAg YTIsemVybywuTDENCj4gICAgICAgICB2c2V0dmxpIGE1LGE0LGUzMixtMSx0 YSxtdQ0KPiAgICAgICAgIGFkZGkgICAgYTQsYTQsLTENCj4gICAgICAgICB2 c2V0dmxpIHplcm8sYTUsZTMyLG0xLHRhLG1hICA8LSBjYW4gYmUgZWxpbWlu YXRlZC4NCj4gICAgICAgICB2bGUzMi52IHYxLDAoYTApDQo+ICAgICAgICAg dnNlMzIudiB2MSwwKGExKQ0KPiAgICAgICAgIGFkZGl3ICAgYTIsYTIsLTEN Cj4gICAgICAgICBibHR1ICAgIGE0LGE1LC5MMTANCj4gLkwzOg0KPiAgICAg ICAgIGFkZGl3ICAgYTIsYTIsLTENCj4gICAgICAgICBhZGRpICAgIGE0LGE0 LC0xDQo+ICAgICAgICAgYm5lICAgICBhMixhMywuTDUNCj4gLkwxOg0KPiAg ICAgICAgIHJldA0KPg0KPiBBZnRlciB0aGlzIHBhdGNoOg0KPiBmOg0KPiAg ICAgICAgIGJsZSAgICAgYTIsemVybywuTDENCj4gICAgICAgICBtdiAgICAg IGE0LGEyDQo+ICAgICAgICAgbGkgICAgICBhMywtMQ0KPiAgICAgICAgIHZz ZXR2bGkgYTUsYTIsZTMyLG0xLHRhLG1hDQo+IC5MNToNCj4gICAgICAgICB2 bGUzMi52IHYxLDAoYTApDQo+ICAgICAgICAgdnNlMzIudiB2MSwwKGExKQ0K PiAgICAgICAgIGJnZXUgICAgYTQsYTUsLkwzDQo+IC5MMTA6DQo+ICAgICAg ICAgYmVxICAgICBhMix6ZXJvLC5MMQ0KPiAgICAgICAgIHZzZXR2bGkgYTUs YTQsZTMyLG0xLHRhLG1hDQo+ICAgICAgICAgYWRkaSAgICBhNCxhNCwtMQ0K PiAgICAgICAgIHZsZTMyLnYgdjEsMChhMCkNCj4gICAgICAgICB2c2UzMi52 IHYxLDAoYTEpDQo+ICAgICAgICAgYWRkaXcgICBhMixhMiwtMQ0KPiAgICAg ICAgIGJsdHUgICAgYTQsYTUsLkwxMA0KPiAuTDM6DQo+ICAgICAgICAgYWRk aXcgICBhMixhMiwtMQ0KPiAgICAgICAgIGFkZGkgICAgYTQsYTQsLTENCj4g ICAgICAgICBibmUgICAgIGEyLGEzLC5MNQ0KPiAuTDE6DQo+ICAgICAgICAg cmV0DQo+DQo+ICAgICAgICAgUFIgdGFyZ2V0LzEwOTc0Mw0KPg0KPiBnY2Mv Q2hhbmdlTG9nOg0KPg0KPiAgICAgICAgICogY29uZmlnL3Jpc2N2L3Jpc2N2 LXZzZXR2bC5jYyAocGFzc192c2V0dmw6OmNvbW1pdF92c2V0dmxzKTogQWRk IG9wdGltaXphdGlvbiBmb3IgTENNIGluc2VydGVkIGVkZ2UuDQo+DQo+IGdj Yy90ZXN0c3VpdGUvQ2hhbmdlTG9nOg0KPg0KPiAgICAgICAgICogZ2NjLnRh cmdldC9yaXNjdi9ydnYvdnNldHZsL3ByMTA5NzQzLTEuYzogTmV3IHRlc3Qu DQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di92c2V0dmwvcHIx MDk3NDMtMi5jOiBOZXcgdGVzdC4NCj4gICAgICAgICAqIGdjYy50YXJnZXQv cmlzY3YvcnZ2L3ZzZXR2bC9wcjEwOTc0My0zLmM6IE5ldyB0ZXN0Lg0KPiAg ICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvdnNldHZsL3ByMTA5NzQz LTQuYzogTmV3IHRlc3QuDQo+DQo+IC0tLQ0KPiBnY2MvY29uZmlnL3Jpc2N2 L3Jpc2N2LXZzZXR2bC5jYyAgICAgICAgICAgICAgfCA0MiArKysrKysrKysr KysrKysrKysrDQo+IC4uLi9nY2MudGFyZ2V0L3Jpc2N2L3J2di92c2V0dmwv cHIxMDk3NDMtMS5jICB8IDI2ICsrKysrKysrKysrKw0KPiAuLi4vZ2NjLnRh cmdldC9yaXNjdi9ydnYvdnNldHZsL3ByMTA5NzQzLTIuYyAgfCAyNyArKysr KysrKysrKysNCj4gLi4uL2djYy50YXJnZXQvcmlzY3YvcnZ2L3ZzZXR2bC9w cjEwOTc0My0zLmMgIHwgMjggKysrKysrKysrKysrKw0KPiAuLi4vZ2NjLnRh cmdldC9yaXNjdi9ydnYvdnNldHZsL3ByMTA5NzQzLTQuYyAgfCAyOCArKysr KysrKysrKysrDQo+IDUgZmlsZXMgY2hhbmdlZCwgMTUxIGluc2VydGlvbnMo KykNCj4gY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvdnNldHZsL3ByMTA5NzQzLTEuYw0KPiBjcmVhdGUg bW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di92c2V0dmwvcHIxMDk3NDMtMi5jDQo+IGNyZWF0ZSBtb2RlIDEwMDY0NCBn Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3ZzZXR2bC9wcjEw OTc0My0zLmMNCj4gY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvdnNldHZsL3ByMTA5NzQzLTQuYw0KPg0K PiBkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12c2V0dmwu Y2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZzZXR2bC5jYw0KPiBpbmRl eCBmNTU5MDdhNDEwZS4uZmNlZTdmZGYzMjMgMTAwNjQ0DQo+IC0tLSBhL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YtdnNldHZsLmNjDQo+ICsrKyBiL2djYy9j b25maWcvcmlzY3YvcmlzY3YtdnNldHZsLmNjDQo+IEBAIC0zODM0LDYgKzM4 MzQsNDggQEAgcGFzc192c2V0dmw6OmNvbW1pdF92c2V0dmxzICh2b2lkKQ0K PiAgICAgICBjb25zdCB2ZWN0b3JfaW5zbl9pbmZvICpyZXF1aXJlDQo+ID0g bV92ZWN0b3JfbWFuYWdlci0+dmVjdG9yX2V4cHJzW2ldOw0KPiAgICAgICBn Y2NfYXNzZXJ0IChyZXF1aXJlLT52YWxpZF9vcl9kaXJ0eV9wICgpKTsNCj4g Kw0KPiArICAgICAgIC8qIEhlcmUgd2Ugb3B0aW1pemUgdGhlIFZTRVRWTCBp cyBob2lzdGVkIGJ5IExDTToNCj4gKw0KPiArIEJlZm9yZSBMQ006DQo+ICsg ICAgYmIgMToNCj4gKyAgICAgIHZzZXR2bGkgYTUsYTIsZTMyLG0xLHRhLG11 DQo+ICsgICAgYmIgMjoNCj4gKyAgICAgIHZzZXR2bGkgemVybyxhNSxlMzIs bTEsdGEsbXUNCj4gKyAgICAgIC4uLg0KPiArDQo+ICsgQWZ0ZXIgTENNOg0K PiArICAgIGJiIDE6DQo+ICsgICAgICB2c2V0dmxpIGE1LGEyLGUzMixtMSx0 YSxtdQ0KPiArICAgICAgTENNIElOU0VSVEVEOiB2c2V0dmxpIHplcm8sYTUs ZTMyLG0xLHRhLG11IC0tPiBlbGltaW5hdGUNCj4gKyAgICBiYiAyOg0KPiAr ICAgICAgLi4uDQo+ICsgICAgICAgICovDQo+ICsgICAgICAgY29uc3QgYmFz aWNfYmxvY2sgcHJlZF9jZmdfYmIgPSBlZy0+c3JjOw0KPiArICAgICAgIGNv bnN0IGF1dG8gYmxvY2tfaW5mbw0KPiArID0gbV92ZWN0b3JfbWFuYWdlci0+ dmVjdG9yX2Jsb2NrX2luZm9zW3ByZWRfY2ZnX2JiLT5pbmRleF07DQo+ICsg ICAgICAgY29uc3QgaW5zbl9pbmZvICpwcmVkX2luc24gPSBibG9ja19pbmZv LnJlYWNoaW5nX291dC5nZXRfaW5zbiAoKTsNCj4gKyAgICAgICBpZiAocHJl ZF9pbnNuICYmIHZzZXR2bF9pbnNuX3AgKHByZWRfaW5zbi0+cnRsICgpKQ0K PiArICAgJiYgcmVxdWlyZS0+Z2V0X2F2bF9zb3VyY2UgKCkNCj4gKyAgICYm IHJlcXVpcmUtPmdldF9hdmxfc291cmNlICgpLT5pbnNuICgpDQo+ICsgICAm JiByZXF1aXJlLT5za2lwX2F2bF9jb21wYXRpYmxlX3AgKGJsb2NrX2luZm8u cmVhY2hpbmdfb3V0KSkNCj4gKyB7DQo+ICsgICB2ZWN0b3JfaW5zbl9pbmZv IG5ld19pbmZvID0gKnJlcXVpcmU7DQo+ICsgICBuZXdfaW5mby5zZXRfYXZs X2luZm8gKA0KPiArICAgICBibG9ja19pbmZvLnJlYWNoaW5nX291dC5nZXRf YXZsX2luZm8gKCkpOw0KPiArICAgbmV3X2luZm8NCj4gKyAgICAgPSBibG9j a19pbmZvLnJlYWNoaW5nX291dC5tZXJnZSAobmV3X2luZm8sIExPQ0FMX01F UkdFKTsNCj4gKyAgIGNoYW5nZV92c2V0dmxfaW5zbiAocHJlZF9pbnNuLCBu ZXdfaW5mbyk7DQo+ICsgICBiaXRtYXBfY2xlYXJfYml0IChtX3ZlY3Rvcl9t YW5hZ2VyLT52ZWN0b3JfaW5zZXJ0W2VkXSwgaSk7DQo+ICsgICBpZiAoZHVt cF9maWxlKQ0KPiArICAgICBmcHJpbnRmICgNCj4gKyAgICAgICBkdW1wX2Zp bGUsDQo+ICsgICAgICAgIlxuTENNIElOU0VSVEVEIGVkZ2UgJWQgZnJvbSBi YiAlZCB0byBiYiAlZCBmb3IgVlNFVFZMICINCj4gKyAgICAgICAiZXhwclsl bGRdIGlzIHJlbW92ZWRcbiIsDQo+ICsgICAgICAgZWQsIGVnLT5zcmMtPmlu ZGV4LCBlZy0+ZGVzdC0+aW5kZXgsIGkpOw0KPiArICAgY29udGludWU7DQo+ ICsgfQ0KPiArDQo+ICAgICAgIHJ0bF9wcm9maWxlX2Zvcl9lZGdlIChlZyk7 DQo+ICAgICAgIHN0YXJ0X3NlcXVlbmNlICgpOw0KPiBkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di92c2V0dmwvcHIx MDk3NDMtMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di92c2V0dmwvcHIxMDk3NDMtMS5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+IGluZGV4IDAwMDAwMDAwMDAwLi5mMzAyNzVjODI4MA0KPiAtLS0gL2Rl di9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvdnNldHZsL3ByMTA5NzQzLTEuYw0KPiBAQCAtMCwwICsxLDI2IEBA DQo+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPiArLyogeyBkZy1vcHRp b25zICItbWFyY2g9cnYzMmdjdiAtbWFiaT1pbHAzMiAtZm5vLXRyZWUtdmVj dG9yaXplIC1mbm8tc2NoZWR1bGUtaW5zbnMgLWZuby1zY2hlZHVsZS1pbnNu czIiIH0gKi8NCj4gKw0KPiArI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0K PiArDQo+ICt2b2lkIGYgKGludDMyX3QgKiBhLCBpbnQzMl90ICogYiwgaW50 IG4pDQo+ICt7DQo+ICsgICAgaWYgKG4gPD0gMCkNCj4gKyAgICAgIHJldHVy bjsNCj4gKyAgICBpbnQgaSA9IG47DQo+ICsgICAgc2l6ZV90IHZsID0gX19y aXNjdl92c2V0dmxfZTMybTEgKGkpOw0KPiArICAgIGZvciAoOyBpID49IDA7 IGktLSkNCj4gKyAgICAgIHsNCj4gKyAgICAgICAgdmludDMybTFfdCB2ID0g X19yaXNjdl92bGUzMl92X2kzMm0xIChhLCB2bCk7DQo+ICsgICAgICAgIF9f cmlzY3ZfdnNlMzJfdl9pMzJtMSAoYiwgdiwgdmwpOw0KPiArDQo+ICsgICAg ICAgIGlmIChpID49IHZsKQ0KPiArICAgICAgICAgIGNvbnRpbnVlOw0KPiAr ICAgICAgICBpZiAoaSA9PSAwKQ0KPiArICAgICAgICAgIHJldHVybjsNCj4g KyAgICAgICAgdmwgPSBfX3Jpc2N2X3ZzZXR2bF9lMzJtMSAoaSk7DQo+ICsg ICAgICB9DQo+ICt9DQo+ICsNCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXgwLTldKyxccypbYS14MC05 XSssXHMqZTMyLFxzKm0xLFxzKnRbYXVdLFxzKm1bYXVdfSAyIHsgdGFyZ2V0 IHsgbm8tb3B0cyAiLU8wIiBuby1vcHRzICItTzEiIG5vLW9wdHMgIi1PcyIg bm8tb3B0cyAiLU96IiBuby1vcHRzICItZyIgbm8tb3B0cyAiLWZ1bnJvbGwt bG9vcHMiIH0gfSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dnNldHZsaX0gMiB7IHRhcmdldCB7IG5vLW9wdHMg Ii1PMCIgbm8tb3B0cyAiLU8xIiBuby1vcHRzICItT3MiIG5vLW9wdHMgIi1P eiIgbm8tb3B0cyAiLWciIG5vLW9wdHMgIi1mdW5yb2xsLWxvb3BzIiB9IH0g fSB9ICovDQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L3ZzZXR2bC9wcjEwOTc0My0yLmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3ZzZXR2bC9wcjEwOTc0My0yLmMN Cj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAu LjVmNjY0N2JiOTE2DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di92c2V0dmwvcHIxMDk3NDMt Mi5jDQo+IEBAIC0wLDAgKzEsMjcgQEANCj4gKy8qIHsgZGctZG8gY29tcGls ZSB9ICovDQo+ICsvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N2IC1t YWJpPWlscDMyIC1mbm8tdHJlZS12ZWN0b3JpemUgLWZuby1zY2hlZHVsZS1p bnNucyAtZm5vLXNjaGVkdWxlLWluc25zMiIgfSAqLw0KPiArDQo+ICsjaW5j bHVkZSAicmlzY3ZfdmVjdG9yLmgiDQo+ICsNCj4gK3ZvaWQgZiAoaW50MzJf dCAqIGEsIGludDMyX3QgKiBiLCBpbnQgbikNCj4gK3sNCj4gKyAgICBpZiAo biA8PSAwKQ0KPiArICAgICAgcmV0dXJuOw0KPiArICAgIGludCBpID0gbjsN Cj4gKyAgICBzaXplX3QgdmwgPSBfX3Jpc2N2X3ZzZXR2bF9lOG1mNCAoaSk7 DQo+ICsgICAgZm9yICg7IGkgPj0gMDsgaS0tKQ0KPiArICAgICAgew0KPiAr ICAgICAgICB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3ZsZTMyX3ZfaTMybTEg KGEsIHZsKTsNCj4gKyAgICAgICAgX19yaXNjdl92c2UzMl92X2kzMm0xIChi LCB2LCB2bCk7DQo+ICsNCj4gKyAgICAgICAgaWYgKGkgPj0gdmwpDQo+ICsg ICAgICAgICAgY29udGludWU7DQo+ICsgICAgICAgIGlmIChpID09IDApDQo+ ICsgICAgICAgICAgcmV0dXJuOw0KPiArICAgICAgICB2bCA9IF9fcmlzY3Zf dnNldHZsX2UzMm0xIChpKTsNCj4gKyAgICAgIH0NCj4gK30NCj4gKw0KPiAr DQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zz ZXR2bGlccytbYS14MC05XSssXHMqW2EteDAtOV0rLFxzKmUzMixccyptMSxc cyp0W2F1XSxccyptW2F1XX0gMiB7IHRhcmdldCB7IG5vLW9wdHMgIi1PMCIg bm8tb3B0cyAiLU8xIiBuby1vcHRzICItT3MiIG5vLW9wdHMgIi1PeiIgbm8t b3B0cyAiLWciIG5vLW9wdHMgIi1mdW5yb2xsLWxvb3BzIiB9IH0gfSB9ICov DQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zz ZXR2bGl9IDIgeyB0YXJnZXQgeyBuby1vcHRzICItTzAiIG5vLW9wdHMgIi1P MSIgbm8tb3B0cyAiLU9zIiBuby1vcHRzICItT3oiIG5vLW9wdHMgIi1nIiBu by1vcHRzICItZnVucm9sbC1sb29wcyIgfSB9IH0gfSAqLw0KPiBkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di92c2V0 dmwvcHIxMDk3NDMtMy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di92c2V0dmwvcHIxMDk3NDMtMy5jDQo+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi41ZGJjODcxZWQxMg0KPiAt LS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvdnNldHZsL3ByMTA5NzQzLTMuYw0KPiBAQCAtMCwwICsx LDI4IEBADQo+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPiArLyogeyBk Zy1vcHRpb25zICItbWFyY2g9cnYzMmdjdiAtbWFiaT1pbHAzMiAtZm5vLXRy ZWUtdmVjdG9yaXplIC1mbm8tc2NoZWR1bGUtaW5zbnMgLWZuby1zY2hlZHVs ZS1pbnNuczIiIH0gKi8NCj4gKw0KPiArI2luY2x1ZGUgInJpc2N2X3ZlY3Rv ci5oIg0KPiArDQo+ICt2b2lkIGYgKGludDMyX3QgKiBhLCBpbnQzMl90ICog YiwgaW50IG4pDQo+ICt7DQo+ICsgICAgaWYgKG4gPD0gMCkNCj4gKyAgICAg IHJldHVybjsNCj4gKyAgICBpbnQgaSA9IG47DQo+ICsgICAgc2l6ZV90IHZs ID0gX19yaXNjdl92c2V0dmxfZThtZjIgKGkpOw0KPiArICAgIGZvciAoOyBp ID49IDA7IGktLSkNCj4gKyAgICAgIHsNCj4gKyAgICAgICAgdmludDMybTFf dCB2ID0gX19yaXNjdl92bGUzMl92X2kzMm0xIChhLCB2bCk7DQo+ICsgICAg ICAgIF9fcmlzY3ZfdnNlMzJfdl9pMzJtMSAoYiwgdiwgdmwpOw0KPiArDQo+ ICsgICAgICAgIGlmIChpID49IHZsKQ0KPiArICAgICAgICAgIGNvbnRpbnVl Ow0KPiArICAgICAgICBpZiAoaSA9PSAwKQ0KPiArICAgICAgICAgIHJldHVy bjsNCj4gKyAgICAgICAgdmwgPSBfX3Jpc2N2X3ZzZXR2bF9lMzJtMSAoaSk7 DQo+ICsgICAgICB9DQo+ICt9DQo+ICsNCj4gKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXgwLTldKyxccypb YS14MC05XSssXHMqZTgsXHMqbWYyLFxzKnRbYXVdLFxzKm1bYXVdfSAxIHsg dGFyZ2V0IHsgbm8tb3B0cyAiLU8wIiBuby1vcHRzICItTzEiIG5vLW9wdHMg Ii1PcyIgbm8tb3B0cyAiLU96IiBuby1vcHRzICItZyIgbm8tb3B0cyAiLWZ1 bnJvbGwtbG9vcHMiIH0gfSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXgwLTldKyxccypb YS14MC05XSssXHMqZTMyLFxzKm0xLFxzKnRbYXVdLFxzKm1bYXVdfSAxIHsg dGFyZ2V0IHsgbm8tb3B0cyAiLU8wIiBuby1vcHRzICItTzEiIG5vLW9wdHMg Ii1PcyIgbm8tb3B0cyAiLU96IiBuby1vcHRzICItZyIgbm8tb3B0cyAiLWZ1 bnJvbGwtbG9vcHMiIH0gfSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2EteDAt OV0rLFxzKmUzMixccyptMSxccyp0W2F1XSxccyptW2F1XX0gMSB7IHRhcmdl dCB7IG5vLW9wdHMgIi1PMCIgbm8tb3B0cyAiLU8xIiBuby1vcHRzICItT3Mi IG5vLW9wdHMgIi1PeiIgbm8tb3B0cyAiLWciIG5vLW9wdHMgIi1mdW5yb2xs LWxvb3BzIiB9IH0gfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZzZXR2bGl9IDMgeyB0YXJnZXQgeyBuby1vcHRz ICItTzAiIG5vLW9wdHMgIi1PMSIgbm8tb3B0cyAiLU9zIiBuby1vcHRzICIt T3oiIG5vLW9wdHMgIi1nIiBuby1vcHRzICItZnVucm9sbC1sb29wcyIgfSB9 IH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di92c2V0dmwvcHIxMDk3NDMtNC5jIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di92c2V0dmwvcHIxMDk3NDMtNC5j DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAw Li5lZGQxMjg1NWY1OA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvdnNldHZsL3ByMTA5NzQz LTQuYw0KPiBAQCAtMCwwICsxLDI4IEBADQo+ICsvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLw0KPiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjdiAt bWFiaT1pbHAzMiAtZm5vLXRyZWUtdmVjdG9yaXplIC1mbm8tc2NoZWR1bGUt aW5zbnMgLWZuby1zY2hlZHVsZS1pbnNuczIiIH0gKi8NCj4gKw0KPiArI2lu Y2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KPiArDQo+ICt2b2lkDQo+ICtmIChp bnQzMl90ICphLCBpbnQzMl90ICpiLCBpbnQgbikNCj4gK3sNCj4gKyAgaWYg KG4gPD0gMCkNCj4gKyAgICByZXR1cm47DQo+ICsgIGludCBpID0gbjsNCj4g KyAgc2l6ZV90IHZsID0gX19yaXNjdl92c2V0dmxfZThtZjQgKGkpOw0KPiAr ICBmb3IgKDsgaSA+PSAwOyBpLS0pDQo+ICsgICAgew0KPiArICAgICAgdmlu dDMybTFfdCB2ID0gX19yaXNjdl92bGUzMl92X2kzMm0xIChhICsgaSwgdmwp Ow0KPiArICAgICAgdiA9IF9fcmlzY3ZfdmxlMzJfdl9pMzJtMV90dSAodiwg YSArIGkgKyAxMDAsIHZsKTsNCj4gKyAgICAgIF9fcmlzY3ZfdnNlMzJfdl9p MzJtMSAoYiArIGksIHYsIHZsKTsNCj4gKw0KPiArICAgICAgaWYgKGkgPj0g dmwpDQo+ICsgY29udGludWU7DQo+ICsgICAgICBpZiAoaSA9PSAwKQ0KPiAr IHJldHVybjsNCj4gKyAgICAgIHZsID0gX19yaXNjdl92c2V0dmxfZThtZjQg KGkpOw0KPiArICAgIH0NCj4gK30NCj4gKw0KPiArLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteDAtOV0rLFxz KlthLXgwLTldKyxccyplMzIsXHMqbTEsXHMqdHUsXHMqbVthdV19IDIgeyB0 YXJnZXQgeyBuby1vcHRzICItTzAiIG5vLW9wdHMgIi1PMSIgbm8tb3B0cyAi LU9zIiBuby1vcHRzICItT3oiIG5vLW9wdHMgIi1nIiBuby1vcHRzICItZnVu cm9sbC1sb29wcyIgfSB9IH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpfSAyIHsgdGFyZ2V0IHsgbm8t b3B0cyAiLU8wIiBuby1vcHRzICItTzEiIG5vLW9wdHMgIi1PcyIgbm8tb3B0 cyAiLU96IiBuby1vcHRzICItZyIgbm8tb3B0cyAiLWZ1bnJvbGwtbG9vcHMi IH0gfSB9IH0gKi8NCj4gLS0NCj4gMi4zNi4zDQo+DQogDQo= ------=_001_NextPart333758435023_=------