From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgsg2.qq.com (smtpbgsg2.qq.com [54.254.200.128]) by sourceware.org (Postfix) with ESMTPS id 2A10E3858D35 for ; Wed, 28 Jun 2023 09:50:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2A10E3858D35 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: bizesmtp81t1687945806t8aelnda Received: from LAPTOP-EPITNQBU ( [58.60.1.5]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 28 Jun 2023 17:50:05 +0800 (CST) X-QQ-SSF: 01400000000000G0S000000A0000000 X-QQ-FEAT: +ynUkgUhZJn/s7DHtioSoYew6Pu+qzjPgMTvs4bjAy/uyMH9QokWFbh0fZ47z yArcGJFb8+NSbom137SHPfhOCoKFmJywjlwPHfsA5WAWZ032aoXvhMrJni5pKi81UuKZx/A oy8+BGCUSYXkNnEjO3h/3kkOJDWZsd3QwAM27bS4H6LqYHDCzvjH+euPcye23Qh/egSahju QRnO/Ma+u93InBTxuKGysCYDTj8n/cUX4Z9izsUkta5lIfKZHqLzG/5fBx2ZLn5X1PbvW4L 8ULWUnGy4aGS3qM08/xC8OGWB2BUaZA2xMxuoFdRp1ntlSxN1aeKZ8sfdCRMu/d//zF+oUY h/0b0AFGkHrNr+Fxrc9+OxjU7Ng0T6auc+1ifX9kbxpxZ6Chie73kU5vK6fXHAFTAJI45gK MfO9OejjA4DPgIeP+vzNEwsjwaRCeeYS X-QQ-GoodBg: 2 X-BIZMAIL-ID: 10190433735236684723 Date: Wed, 28 Jun 2023 17:50:05 +0800 From: "juzhe.zhong@rivai.ai" To: Kito.cheng Cc: gcc-patches , kito.cheng , palmer , palmer , jeffreyalaw , "Robin Dapp" Subject: Re: Re: [PATCH V2] RISC-V: Fix bug of pre-calculated const vector mask References: <20230628015944.112659-1-juzhe.zhong@rivai.ai>, , X-Priority: 3 X-GUID: 8DEB8787-7609-4CE1-9A66-7842221EA9FA X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <60AAD9874D5EC70A+2023062817500494234919@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart573872244575_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-9.8 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SCC_10_SHORT_WORD_LINES,SCC_20_SHORT_WORD_LINES,SCC_35_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_NextPart573872244575_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 SGksIGFmdGVyIGRlZXBseSBkaWdpbmcgaW50byB0aGlzIGlzc3VlOg0KSSBm aWd1cmUgb3V0IHdoYXQgaXMgaGFwcGVuaW5nLCB0aGlzIGlzIHRoZSBWMyBw YXRjaDoNCmh0dHBzOi8vZ2NjLmdudS5vcmcvcGlwZXJtYWlsL2djYy1wYXRj aGVzLzIwMjMtSnVuZS82MjMwNTIuaHRtbCANClRoZXJlIGlzIGEgY29tcHJl aGVuc2l2ZSBleHBsYW5hdGlvbiBpbiBjb21taXQgbG9nLg0KDQoNCg0KanV6 aGUuemhvbmdAcml2YWkuYWkNCiANCkZyb206IEtpdG8gQ2hlbmcNCkRhdGU6 IDIwMjMtMDYtMjggMTE6MTYNClRvOiBqdXpoZS56aG9uZ0ByaXZhaS5haQ0K Q0M6IGdjYy1wYXRjaGVzOyBraXRvLmNoZW5nOyBwYWxtZXI7IHBhbG1lcjsg amVmZnJleWFsYXc7IFJvYmluIERhcHANClN1YmplY3Q6IFJlOiBbUEFUQ0gg VjJdIFJJU0MtVjogRml4IGJ1ZyBvZiBwcmUtY2FsY3VsYXRlZCBjb25zdCB2 ZWN0b3IgbWFzaw0KRG8geW91IG1pbmQgZ2l2aW5nIHNvbWUgY29tbWVudHMg YWJvdXQgd2hhdCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZQ0KdHdvIHZl cnNpb25zPw0KIA0KT24gV2VkLCBKdW4gMjgsIDIwMjMgYXQgMTE6MTTigK9B TSBqdXpoZS56aG9uZ0ByaXZhaS5haQ0KPGp1emhlLnpob25nQHJpdmFpLmFp PiB3cm90ZToNCj4NCj4gVGhpcyBwYXRjaCBpcyB0aGUgY3JpdGljYWwgcGF0 Y2ggZm9yIGZvbGxvd2luZyBwYXRjaGVzIHNpbmNlIGl0IGlzIGEgYnVnIHdo aWNoIEkgYWxyZWFkeSBhZGRyZXNzIGluIHJ2di1uZXh0Lg0KPg0KPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiBqdXpoZS56aG9uZ0By aXZhaS5haQ0KPg0KPg0KPiBGcm9tOiBKdXpoZS1aaG9uZw0KPiBEYXRlOiAy MDIzLTA2LTI4IDA5OjU5DQo+IFRvOiBnY2MtcGF0Y2hlcw0KPiBDQzoga2l0 by5jaGVuZzsga2l0by5jaGVuZzsgcGFsbWVyOyBwYWxtZXI7IGplZmZyZXlh bGF3OyByZGFwcC5nY2M7IEp1emhlLVpob25nDQo+IFN1YmplY3Q6IFtQQVRD SCBWMl0gUklTQy1WOiBGaXggYnVnIG9mIHByZS1jYWxjdWxhdGVkIGNvbnN0 IHZlY3RvciBtYXNrDQo+IFRoaXMgYnVnIGJsb2NrcyB0aGUgZm9sbG93aW5n IHBhdGNoZXMuDQo+DQo+IEdDQyBkb2Vzbid0IGtub3cgUlZWIGlzIHVzaW5n IGNvbXBhY3QgbWFzayBtb2RlbC4NCj4gQ29uc2lkZXIgdGhpcyBmb2xsb3dp bmcgY2FzZToNCj4NCj4gI2RlZmluZSBOIDE2DQo+DQo+IGludA0KPiBtYWlu ICgpDQo+IHsNCj4gICBpbnQ4X3QgbWFza1tOXSA9IHswLCAxLCAwLCAxLCAw LCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxfTsNCj4gICBpbnQ4 X3Qgb3V0W05dID0gezB9Ow0KPiAgIGZvciAoaW50OF90IGkgPSAwOyBpIDwg TjsgKytpKQ0KPiAgICAgaWYgKG1hc2tbaV0pDQo+ICAgICAgIG91dFtpXSA9 IGk7DQo+ICAgZm9yIChpbnQ4X3QgaSA9IDA7IGkgPCBOOyArK2kpDQo+ICAg ICB7DQo+ICAgICAgIGlmIChtYXNrW2ldKQ0KPiBhc3NlcnQgKG91dFtpXSA9 PSBpKTsNCj4gICAgICAgZWxzZQ0KPiBhc3NlcnQgKG91dFtpXSA9PSAwKTsN Cj4gICAgIH0NCj4gfQ0KPg0KPiBCZWZvcmUgdGhpcyBwYXRjaCwgdGhlIHBy ZS1jYWxjdWxhdGVkIG1hc2sgaW4gY29uc3RhbnQgbWVtb3J5IHBvb2w6DQo+ IC5MQzE6DQo+ICAgICAgICAgLmJ5dGUgICA2OCA9PT09PiAwYjAxMDAwMTAw DQo+DQo+IFRoaXMgaXMgaW5jb3JyZWN0LCBzdWNoIGNhc2UgZmFpbGVkIGlu IGV4ZWN1dGlvbi4NCj4NCj4gQWZ0ZXIgdGhpcyBwYXRjaDoNCj4gLkxDMToN Cj4gLmJ5dGUgMTAgPT09PT4gMGIxMDEwDQo+DQo+IFBhc3Mgb24gZXhlY3Rp b24uDQo+DQo+IGdjYy9DaGFuZ2VMb2c6DQo+DQo+ICAgICAgICAgKiBjb25m aWcvcmlzY3YvcmlzY3Ytdi5jYyAocnZ2X2J1aWxkZXI6OmdldF9jb21wYWN0 X21hc2spOiBOZXcgZnVuY3Rpb24uDQo+ICAgICAgICAgKGV4cGFuZF9jb25z dF92ZWN0b3IpOiBEaXR0by4NCj4gICAgICAgICAqIGNvbmZpZy9yaXNjdi9y aXNjdi5jYyAocmlzY3ZfY29uc3RfaW5zbnMpOiBEaXR0by4NCj4NCj4gZ2Nj L3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6DQo+DQo+ICAgICAgICAgKiBnY2MudGFy Z2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zscy12bG1heC9iaXRtYXNrLTEuYzog TmV3IHRlc3QuDQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9h dXRvdmVjL3Zscy12bG1heC9iaXRtYXNrLTIuYzogTmV3IHRlc3QuDQo+ICAg ICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zscy12bG1h eC9iaXRtYXNrLTMuYzogTmV3IHRlc3QuDQo+ICAgICAgICAgKiBnY2MudGFy Z2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zscy12bG1heC9iaXRtYXNrLTQuYzog TmV3IHRlc3QuDQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9h dXRvdmVjL3Zscy12bG1heC9iaXRtYXNrLTUuYzogTmV3IHRlc3QuDQo+ICAg ICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zscy12bG1h eC9iaXRtYXNrLTYuYzogTmV3IHRlc3QuDQo+ICAgICAgICAgKiBnY2MudGFy Z2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zscy12bG1heC9iaXRtYXNrLTcuYzog TmV3IHRlc3QuDQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9h dXRvdmVjL3Zscy12bG1heC9iaXRtYXNrLTguYzogTmV3IHRlc3QuDQo+ICAg ICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zscy12bG1h eC9iaXRtYXNrLTkuYzogTmV3IHRlc3QuDQo+DQo+IC0tLQ0KPiBnY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LXYuY2MgICAgICAgICAgICAgICAgICAgfCA2NCAr KysrKysrKysrKysrKysrKy0tDQo+IGdjYy9jb25maWcvcmlzY3YvcmlzY3Yu Y2MgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrDQo+IC4uLi9yaXNjdi9y dnYvYXV0b3ZlYy92bHMtdmxtYXgvYml0bWFzay0xLmMgICB8IDIzICsrKysr KysNCj4gLi4uL3Jpc2N2L3J2di9hdXRvdmVjL3Zscy12bG1heC9iaXRtYXNr LTIuYyAgIHwgMjMgKysrKysrKw0KPiAuLi4vcmlzY3YvcnZ2L2F1dG92ZWMv dmxzLXZsbWF4L2JpdG1hc2stMy5jICAgfCAyMyArKysrKysrDQo+IC4uLi9y aXNjdi9ydnYvYXV0b3ZlYy92bHMtdmxtYXgvYml0bWFzay00LmMgICB8IDIz ICsrKysrKysNCj4gLi4uL3Jpc2N2L3J2di9hdXRvdmVjL3Zscy12bG1heC9i aXRtYXNrLTUuYyAgIHwgMjUgKysrKysrKysNCj4gLi4uL3Jpc2N2L3J2di9h dXRvdmVjL3Zscy12bG1heC9iaXRtYXNrLTYuYyAgIHwgMjcgKysrKysrKysN Cj4gLi4uL3Jpc2N2L3J2di9hdXRvdmVjL3Zscy12bG1heC9iaXRtYXNrLTcu YyAgIHwgMzAgKysrKysrKysrDQo+IC4uLi9yaXNjdi9ydnYvYXV0b3ZlYy92 bHMtdmxtYXgvYml0bWFzay04LmMgICB8IDMwICsrKysrKysrKw0KPiAuLi4v cmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2stOS5jICAgfCAz MCArKysrKysrKysNCj4gMTEgZmlsZXMgY2hhbmdlZCwgMjk5IGluc2VydGlv bnMoKyksIDUgZGVsZXRpb25zKC0pDQo+IGNyZWF0ZSBtb2RlIDEwMDY0NCBn Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxz LXZsbWF4L2JpdG1hc2stMS5jDQo+IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZs bWF4L2JpdG1hc2stMi5jDQo+IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4 L2JpdG1hc2stMy5jDQo+IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2Jp dG1hc2stNC5jDQo+IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2JpdG1h c2stNS5jDQo+IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2st Ni5jDQo+IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2stNy5j DQo+IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2stOC5jDQo+ IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2stOS5jDQo+DQo+ IGRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXYuY2MgYi9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXYuY2MNCj4gaW5kZXggYWRiOGQ3ZDM2 YTUuLjVkYTBkYzVlOTk4IDEwMDY0NA0KPiAtLS0gYS9nY2MvY29uZmlnL3Jp c2N2L3Jpc2N2LXYuY2MNCj4gKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di12LmNjDQo+IEBAIC0yOTEsNiArMjkxLDcgQEAgcHVibGljOg0KPiAgICBi b29sIHNpbmdsZV9zdGVwX25wYXR0ZXJuc19wICgpIGNvbnN0Ow0KPiAgICBi b29sIG5wYXR0ZXJuc19hbGxfZXF1YWxfcCAoKSBjb25zdDsNCj4gKyAgcnR4 IGdldF9jb21wYWN0X21hc2sgKCkgY29uc3Q7DQo+ICAgIG1hY2hpbmVfbW9k ZSBuZXdfbW9kZSAoKSBjb25zdCB7IHJldHVybiBtX25ld19tb2RlOyB9DQo+ ICAgIHNjYWxhcl9tb2RlIGlubmVyX21vZGUgKCkgY29uc3QgeyByZXR1cm4g bV9pbm5lcl9tb2RlOyB9DQo+IEBAIC01MDUsNiArNTA2LDQ3IEBAIHJ2dl9i dWlsZGVyOjpucGF0dGVybnNfYWxsX2VxdWFsX3AgKCkgY29uc3QNCj4gICAg cmV0dXJuIHRydWU7DQo+IH0NCj4gKy8qIEdlbmVyYXRlIHRoZSBjb21wYWN0 IG1hc2suDQo+ICsNCj4gKyAgICAgRS5nOiBtYXNrID0geyAwLCAtMSB9LCBt b2RlID0gVk54MkJJLCBiaXRzaXplID0gMTI4Yml0cy4NCj4gKw0KPiArICAg R0NDIGJ5IGRlZmF1bHQgd2lsbCBnZW5lcmF0ZSB0aGUgbWFzayA9IDBiMDAw MDAwMDF4eHh4eC4NCj4gKw0KPiArICAgSG93ZXZlciwgaXQncyBub3QgZXhw ZWN0ZWQgbWFzayBmb3IgUlZWIHNpbmNlIFJWVg0KPiArICAgcHJlZmVycyB0 aGUgY29tcGFjdCBtYXNrID0gMGIxMHh4eHh4Lg0KPiArKi8NCj4gK3J0eA0K PiArcnZ2X2J1aWxkZXI6OmdldF9jb21wYWN0X21hc2sgKCkgY29uc3QNCj4g K3sNCj4gKyAgLyogSWYgVEFSR0VUX01JTl9WTEVOID09IDMyLCB0aGUgbWlu aW11bSBMTVVMID0gMS80Lg0KPiArICAgICBPdGhlcndpc2UsIHRoZSBtaW5p bXVtIExNVUwgPSAxLzguICAqLw0KPiArICB1bnNpZ25lZCBtaW5fbG11bCA9 IFRBUkdFVF9NSU5fVkxFTiA9PSAzMiA/IDQgOiA4Ow0KPiArICB1bnNpZ25l ZCBtaW5fY29udGFpbmVyX3NpemUNCj4gKyAgICA9IEJZVEVTX1BFUl9SSVND Vl9WRUNUT1IudG9fY29uc3RhbnQgKCkgLyBtaW5fbG11bDsNCj4gKyAgdW5z aWduZWQgY29udGFpbmVyX3NpemUgPSBNQVggKENFSUwgKG5wYXR0ZXJucyAo KSwgOCksIG1pbl9jb250YWluZXJfc2l6ZSk7DQo+ICsgIG1hY2hpbmVfbW9k ZSBjb250YWluZXJfbW9kZQ0KPiArICAgID0gZ2V0X3ZlY3Rvcl9tb2RlIChR SW1vZGUsIGNvbnRhaW5lcl9zaXplKS5yZXF1aXJlICgpOw0KPiArDQo+ICsg IHVuc2lnbmVkIG51bml0cyA9IEdFVF9NT0RFX05VTklUUyAoY29udGFpbmVy X21vZGUpLnRvX2NvbnN0YW50ICgpOw0KPiArICBydHZlYyB2ID0gcnR2ZWNf YWxsb2MgKG51bml0cyk7DQo+ICsgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg PCBudW5pdHM7IGkrKykNCj4gKyAgICBSVFZFQ19FTFQgKHYsIGkpID0gY29u c3QwX3J0eDsNCj4gKw0KPiArICB1bnNpZ25lZCBjaGFyIGIgPSAwOw0KPiAr ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnBhdHRlcm5zICgpOyBpKysp DQo+ICsgICAgew0KPiArICAgICAgaWYgKElOVFZBTCAoZWx0IChpKSkpDQo+ ICsgYiA9IGIgfCAoMSA8PCAoaSAlIDgpKTsNCj4gKw0KPiArICAgICAgaWYg KChpID4gMCAmJiAoaSAlIDgpID09IDcpIHx8IChpID09IChucGF0dGVybnMg KCkgLSAxKSkpDQo+ICsgew0KPiArICAgUlRWRUNfRUxUICh2LCAoKGkgKyA3 KSAvIDgpIC0gMSkgPSBnZW5faW50X21vZGUgKGIsIFFJbW9kZSk7DQo+ICsg ICBiID0gMDsNCj4gKyB9DQo+ICsgICAgfQ0KPiArICByZXR1cm4gZ2VuX3J0 eF9DT05TVF9WRUNUT1IgKGNvbnRhaW5lcl9tb2RlLCB2KTsNCj4gK30NCj4g Kw0KPiBzdGF0aWMgdW5zaWduZWQNCj4gZ2V0X3NldyAobWFjaGluZV9tb2Rl IG1vZGUpDQo+IHsNCj4gQEAgLTExNDEsMTEgKzExODMsMjMgQEAgZXhwYW5k X2NvbnN0X3ZlY3RvciAocnR4IHRhcmdldCwgcnR4IHNyYykNCj4gICAgaWYg KEdFVF9NT0RFX0NMQVNTIChtb2RlKSA9PSBNT0RFX1ZFQ1RPUl9CT09MKQ0K PiAgICAgIHsNCj4gICAgICAgIHJ0eCBlbHQ7DQo+IC0gICAgICBnY2NfYXNz ZXJ0ICgNCj4gLSBjb25zdF92ZWNfZHVwbGljYXRlX3AgKHNyYywgJmVsdCkN Cj4gLSAmJiAocnR4X2VxdWFsX3AgKGVsdCwgY29uc3QwX3J0eCkgfHwgcnR4 X2VxdWFsX3AgKGVsdCwgY29uc3QxX3J0eCkpKTsNCj4gLSAgICAgIHJ0eCBv cHNbXSA9IHt0YXJnZXQsIHNyY307DQo+IC0gICAgICBlbWl0X3ZsbWF4X2lu c24gKGNvZGVfZm9yX3ByZWRfbW92IChtb2RlKSwgUlZWX1VOT1AsIG9wcyk7 DQo+ICsgICAgICB1bnNpZ25lZCBpbnQgbmVsdHM7DQo+ICsgICAgICBpZiAo Y29uc3RfdmVjX2R1cGxpY2F0ZV9wIChzcmMsICZlbHQpKQ0KPiArIHsNCj4g KyAgIHJ0eCBvcHNbXSA9IHt0YXJnZXQsIHNyY307DQo+ICsgICBlbWl0X3Zs bWF4X2luc24gKGNvZGVfZm9yX3ByZWRfbW92IChtb2RlKSwgUlZWX1VOT1As IG9wcyk7DQo+ICsgfQ0KPiArICAgICAgZWxzZSBpZiAoR0VUX01PREVfTlVO SVRTIChtb2RlKS5pc19jb25zdGFudCAoJm5lbHRzKSkNCj4gKyB7DQo+ICsg ICBydnZfYnVpbGRlciBidWlsZGVyIChtb2RlLCBuZWx0cywgMSk7DQo+ICsg ICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IG5lbHRzOyBpKyspDQo+ ICsgICAgIGJ1aWxkZXIucXVpY2tfcHVzaCAoQ09OU1RfVkVDVE9SX0VMVCAo c3JjLCBpKSk7DQo+ICsgICBydHggbWFzayA9IGJ1aWxkZXIuZ2V0X2NvbXBh Y3RfbWFzayAoKTsNCj4gKyAgIHJ0eCBtZW0gPSB2YWxpZGl6ZV9tZW0gKGZv cmNlX2NvbnN0X21lbSAoR0VUX01PREUgKG1hc2spLCBtYXNrKSk7DQo+ICsg ICBlbWl0X21vdmVfaW5zbiAodGFyZ2V0LCBnZW5fcnR4X01FTSAobW9kZSwg WEVYUCAobWVtLCAwKSkpOw0KPiArIH0NCj4gKyAgICAgIGVsc2UNCj4gKyBn Y2NfdW5yZWFjaGFibGUgKCk7DQo+ICAgICAgICByZXR1cm47DQo+ICAgICAg fQ0KPiBkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5jYyBi L2djYy9jb25maWcvcmlzY3YvcmlzY3YuY2MNCj4gaW5kZXggMjgwYWEwYjMz YjkuLjg2YzgzZjA5MDZkIDEwMDY0NA0KPiAtLS0gYS9nY2MvY29uZmlnL3Jp c2N2L3Jpc2N2LmNjDQo+ICsrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3Yu Y2MNCj4gQEAgLTEzMjMsNiArMTMyMywxMiBAQCByaXNjdl9jb25zdF9pbnNu cyAocnR4IHgpDQo+ICAgICAgIHJldHVybiAxICsgNDsgLyp2bXYudi54ICsg bWVtb3J5IGFjY2Vzcy4gICovDQo+ICAgfQ0KPiAgICAgICB9DQo+ICsNCj4g KyAgICAgLyogR0NDIGRvZXNuJ3Qga25vd24gUlZWIGlzIHVzaW5nIGNvbXBh Y3QgbW9kZWwgb2YgbWFzaywNCj4gKyAgICAgICAgd2Ugc2hvdWxkIGJ5IGRl ZmF1bHQgaGFuZGxlIG1hc2sgaW4gbW92PG1vZGU+IHBhdHRlcm4uICAqLw0K PiArICAgICBpZiAoR0VUX01PREVfQ0xBU1MgKEdFVF9NT0RFICh4KSkgPT0g TU9ERV9WRUNUT1JfQk9PTCkNCj4gKyAgICAgICAvKiBUT0RPOiBXZSBjYW4g YWRqdXN0IGl0IGFjY29yZGluZyByZWFsIGNvc3QgbW9kZWwgb2YgdmxtLnYu ICAqLw0KPiArICAgICAgIHJldHVybiAxOw0KPiAgIH0NCj4gLyogVE9ETzog V2UgbWF5IHN1cHBvcnQgbW9yZSBjb25zdCB2ZWN0b3IgaW4gdGhlIGZ1dHVy ZS4gICovDQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2stMS5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zs cy12bG1heC9iaXRtYXNrLTEuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0K PiBpbmRleCAwMDAwMDAwMDAwMC4uODEyMjlmZDYyYjkNCj4gLS0tIC9kZXYv bnVsbA0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2stMS5jDQo+IEBAIC0wLDAg KzEsMjMgQEANCj4gKy8qIHsgZGctZG8gcnVuIHsgdGFyZ2V0IHsgcmlzY3Zf dmVjdG9yIH0gfSB9ICovDQo+ICsvKiB7IGRnLW9wdGlvbnMgIi0tcGFyYW0g cmlzY3YtYXV0b3ZlYy1wcmVmZXJlbmNlPWZpeGVkLXZsbWF4IC1PMyIgfSAq Lw0KPiArDQo+ICsjaW5jbHVkZSA8c3RkaW50LWdjYy5oPg0KPiArI2luY2x1 ZGUgPGFzc2VydC5oPg0KPiArI2RlZmluZSBOIDE2DQo+ICsNCj4gK2ludA0K PiArbWFpbiAoKQ0KPiArew0KPiArICBpbnQgbWFza1tOXSA9IHswLCAxLCAw LCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxfTsNCj4g KyAgaW50NjRfdCBvdXRbTl0gPSB7MH07DQo+ICsgIGZvciAoaW50IGkgPSAw OyBpIDwgTjsgKytpKQ0KPiArICAgIGlmIChtYXNrW2ldKQ0KPiArICAgICAg b3V0W2ldID0gaTsNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyArK2kp DQo+ICsgICAgew0KPiArICAgICAgaWYgKG1hc2tbaV0pDQo+ICsgYXNzZXJ0 IChvdXRbaV0gPT0gaSk7DQo+ICsgICAgICBlbHNlDQo+ICsgYXNzZXJ0IChv dXRbaV0gPT0gMCk7DQo+ICsgICAgfQ0KPiArfQ0KPiBkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zs cy12bG1heC9iaXRtYXNrLTIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYXV0b3ZlYy92bHMtdmxtYXgvYml0bWFzay0yLmMNCj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLmEy M2U0NzE3MWJjDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zscy12bG1heC9i aXRtYXNrLTIuYw0KPiBAQCAtMCwwICsxLDIzIEBADQo+ICsvKiB7IGRnLWRv IHJ1biB7IHRhcmdldCB7IHJpc2N2X3ZlY3RvciB9IH0gfSAqLw0KPiArLyog eyBkZy1vcHRpb25zICItLXBhcmFtIHJpc2N2LWF1dG92ZWMtcHJlZmVyZW5j ZT1maXhlZC12bG1heCAtTzMiIH0gKi8NCj4gKw0KPiArI2luY2x1ZGUgPHN0 ZGludC1nY2MuaD4NCj4gKyNpbmNsdWRlIDxhc3NlcnQuaD4NCj4gKyNkZWZp bmUgTiAxNg0KPiArDQo+ICtpbnQNCj4gK21haW4gKCkNCj4gK3sNCj4gKyAg aW50IG1hc2tbTl0gPSB7MCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwg MCwgMSwgMCwgMSwgMCwgMX07DQo+ICsgIGludCBvdXRbTl0gPSB7MH07DQo+ ICsgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKQ0KPiArICAgIGlmICht YXNrW2ldKQ0KPiArICAgICAgb3V0W2ldID0gaTsNCj4gKyAgZm9yIChpbnQg aSA9IDA7IGkgPCBOOyArK2kpDQo+ICsgICAgew0KPiArICAgICAgaWYgKG1h c2tbaV0pDQo+ICsgYXNzZXJ0IChvdXRbaV0gPT0gaSk7DQo+ICsgICAgICBl bHNlDQo+ICsgYXNzZXJ0IChvdXRbaV0gPT0gMCk7DQo+ICsgICAgfQ0KPiAr fQ0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9hdXRvdmVjL3Zscy12bG1heC9iaXRtYXNrLTMuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy92bHMtdmxt YXgvYml0bWFzay0zLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5k ZXggMDAwMDAwMDAwMDAuLjZlYThmZGQ4OWMwDQo+IC0tLSAvZGV2L251bGwN Cj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9h dXRvdmVjL3Zscy12bG1heC9iaXRtYXNrLTMuYw0KPiBAQCAtMCwwICsxLDIz IEBADQo+ICsvKiB7IGRnLWRvIHJ1biB7IHRhcmdldCB7IHJpc2N2X3ZlY3Rv ciB9IH0gfSAqLw0KPiArLyogeyBkZy1vcHRpb25zICItLXBhcmFtIHJpc2N2 LWF1dG92ZWMtcHJlZmVyZW5jZT1maXhlZC12bG1heCAtTzMiIH0gKi8NCj4g Kw0KPiArI2luY2x1ZGUgPHN0ZGludC1nY2MuaD4NCj4gKyNpbmNsdWRlIDxh c3NlcnQuaD4NCj4gKyNkZWZpbmUgTiAxNg0KPiArDQo+ICtpbnQNCj4gK21h aW4gKCkNCj4gK3sNCj4gKyAgaW50MTZfdCBtYXNrW05dID0gezAsIDEsIDAs IDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDF9Ow0KPiAr ICBpbnQxNl90IG91dFtOXSA9IHswfTsNCj4gKyAgZm9yIChpbnQxNl90IGkg PSAwOyBpIDwgTjsgKytpKQ0KPiArICAgIGlmIChtYXNrW2ldKQ0KPiArICAg ICAgb3V0W2ldID0gaTsNCj4gKyAgZm9yIChpbnQxNl90IGkgPSAwOyBpIDwg TjsgKytpKQ0KPiArICAgIHsNCj4gKyAgICAgIGlmIChtYXNrW2ldKQ0KPiAr IGFzc2VydCAob3V0W2ldID09IGkpOw0KPiArICAgICAgZWxzZQ0KPiArIGFz c2VydCAob3V0W2ldID09IDApOw0KPiArICAgIH0NCj4gK30NCj4gZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0 b3ZlYy92bHMtdmxtYXgvYml0bWFzay00LmMgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2st NC5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAw MDAwLi4yZDk3YzI2YWJmZA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy92bHMt dmxtYXgvYml0bWFzay00LmMNCj4gQEAgLTAsMCArMSwyMyBAQA0KPiArLyog eyBkZy1kbyBydW4geyB0YXJnZXQgeyByaXNjdl92ZWN0b3IgfSB9IH0gKi8N Cj4gKy8qIHsgZGctb3B0aW9ucyAiLS1wYXJhbSByaXNjdi1hdXRvdmVjLXBy ZWZlcmVuY2U9Zml4ZWQtdmxtYXggLU8zIiB9ICovDQo+ICsNCj4gKyNpbmNs dWRlIDxzdGRpbnQtZ2NjLmg+DQo+ICsjaW5jbHVkZSA8YXNzZXJ0Lmg+DQo+ ICsjZGVmaW5lIE4gMTYNCj4gKw0KPiAraW50DQo+ICttYWluICgpDQo+ICt7 DQo+ICsgIGludDhfdCBtYXNrW05dID0gezAsIDEsIDAsIDEsIDAsIDEsIDAs IDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDF9Ow0KPiArICBpbnQ4X3Qgb3V0 W05dID0gezB9Ow0KPiArICBmb3IgKGludDhfdCBpID0gMDsgaSA8IE47ICsr aSkNCj4gKyAgICBpZiAobWFza1tpXSkNCj4gKyAgICAgIG91dFtpXSA9IGk7 DQo+ICsgIGZvciAoaW50OF90IGkgPSAwOyBpIDwgTjsgKytpKQ0KPiArICAg IHsNCj4gKyAgICAgIGlmIChtYXNrW2ldKQ0KPiArIGFzc2VydCAob3V0W2ld ID09IGkpOw0KPiArICAgICAgZWxzZQ0KPiArIGFzc2VydCAob3V0W2ldID09 IDApOw0KPiArICAgIH0NCj4gK30NCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy92bHMtdmxtYXgv Yml0bWFzay01LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2stNS5jDQo+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi5iODliNzBlOTlh Ng0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy92bHMtdmxtYXgvYml0bWFzay01 LmMNCj4gQEAgLTAsMCArMSwyNSBAQA0KPiArLyogeyBkZy1kbyBydW4geyB0 YXJnZXQgeyByaXNjdl92ZWN0b3IgfSB9IH0gKi8NCj4gKy8qIHsgZGctb3B0 aW9ucyAiLS1wYXJhbSByaXNjdi1hdXRvdmVjLXByZWZlcmVuY2U9Zml4ZWQt dmxtYXggLS1wYXJhbSByaXNjdi1hdXRvdmVjLWxtdWw9bTIgLU8zIiB9ICov DQo+ICsNCj4gKyNpbmNsdWRlIDxzdGRpbnQtZ2NjLmg+DQo+ICsjaW5jbHVk ZSA8YXNzZXJ0Lmg+DQo+ICsNCj4gKyNkZWZpbmUgTiAzMg0KPiArDQo+ICtp bnQNCj4gK21haW4gKCkNCj4gK3sNCj4gKyAgaW50OF90IG1hc2tbTl0gPSB7 MCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwg MSwNCj4gKyAgICAgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwg MSwgMCwgMSwgMCwgMX07DQo+ICsgIGludDhfdCBvdXRbTl0gPSB7MH07DQo+ ICsgIGZvciAoaW50OF90IGkgPSAwOyBpIDwgTjsgKytpKQ0KPiArICAgIGlm IChtYXNrW2ldKQ0KPiArICAgICAgb3V0W2ldID0gaTsNCj4gKyAgZm9yIChp bnQ4X3QgaSA9IDA7IGkgPCBOOyArK2kpDQo+ICsgICAgew0KPiArICAgICAg aWYgKG1hc2tbaV0pDQo+ICsgYXNzZXJ0IChvdXRbaV0gPT0gaSk7DQo+ICsg ICAgICBlbHNlDQo+ICsgYXNzZXJ0IChvdXRbaV0gPT0gMCk7DQo+ICsgICAg fQ0KPiArfQ0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zscy12bG1heC9iaXRtYXNrLTYuYyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy92 bHMtdmxtYXgvYml0bWFzay02LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQN Cj4gaW5kZXggMDAwMDAwMDAwMDAuLmFjOGQ5MWU3OTNiDQo+IC0tLSAvZGV2 L251bGwNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9hdXRvdmVjL3Zscy12bG1heC9iaXRtYXNrLTYuYw0KPiBAQCAtMCww ICsxLDI3IEBADQo+ICsvKiB7IGRnLWRvIHJ1biB7IHRhcmdldCB7IHJpc2N2 X3ZlY3RvciB9IH0gfSAqLw0KPiArLyogeyBkZy1vcHRpb25zICItLXBhcmFt IHJpc2N2LWF1dG92ZWMtcHJlZmVyZW5jZT1maXhlZC12bG1heCAtLXBhcmFt IHJpc2N2LWF1dG92ZWMtbG11bD1tNCAtTzMiIH0gKi8NCj4gKw0KPiArI2lu Y2x1ZGUgPHN0ZGludC1nY2MuaD4NCj4gKyNpbmNsdWRlIDxhc3NlcnQuaD4N Cj4gKw0KPiArI2RlZmluZSBOIDY0DQo+ICsNCj4gK2ludA0KPiArbWFpbiAo KQ0KPiArew0KPiArICBpbnQ4X3QgbWFza1tOXSA9IHswLCAxLCAwLCAxLCAw LCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLA0KPiArICAgICAw LCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAx LA0KPiArICAgICAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAx LCAwLCAxLCAwLCAxLA0KPiArICAgICAwLCAxLCAwLCAxLCAwLCAxLCAwLCAx LCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxfTsNCj4gKyAgaW50OF90IG91dFtO XSA9IHswfTsNCj4gKyAgZm9yIChpbnQ4X3QgaSA9IDA7IGkgPCBOOyArK2kp DQo+ICsgICAgaWYgKG1hc2tbaV0pDQo+ICsgICAgICBvdXRbaV0gPSBpOw0K PiArICBmb3IgKGludDhfdCBpID0gMDsgaSA8IE47ICsraSkNCj4gKyAgICB7 DQo+ICsgICAgICBpZiAobWFza1tpXSkNCj4gKyBhc3NlcnQgKG91dFtpXSA9 PSBpKTsNCj4gKyAgICAgIGVsc2UNCj4gKyBhc3NlcnQgKG91dFtpXSA9PSAw KTsNCj4gKyAgICB9DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2Jp dG1hc2stNy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9hdXRvdmVjL3Zscy12bG1heC9iaXRtYXNrLTcuYw0KPiBuZXcgZmlsZSBt b2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMC4uZjUzOGRiMjNiMWQN Cj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2stNy5j DQo+IEBAIC0wLDAgKzEsMzAgQEANCj4gKy8qIHsgZGctZG8gcnVuIHsgdGFy Z2V0IHsgcmlzY3ZfdmVjdG9yIH0gfSB9ICovDQo+ICsvKiB7IGRnLW9wdGlv bnMgIi0tcGFyYW0gcmlzY3YtYXV0b3ZlYy1wcmVmZXJlbmNlPWZpeGVkLXZs bWF4IC0tcGFyYW0gcmlzY3YtYXV0b3ZlYy1sbXVsPW04IC1PMyIgfSAqLw0K PiArDQo+ICsjaW5jbHVkZSA8c3RkaW50LWdjYy5oPg0KPiArI2luY2x1ZGUg PGFzc2VydC5oPg0KPiArDQo+ICsjZGVmaW5lIE4gMTI4DQo+ICsNCj4gK2lu dA0KPiArbWFpbiAoKQ0KPiArew0KPiArICB1aW50OF90IG1hc2tbTl0NCj4g KyAgICA9IHswLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAw LCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLA0KPiArICAgICAgIDAsIDEs IDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAs IDEsIDAsIDEsIDAsIDEsDQo+ICsgICAgICAgMCwgMSwgMCwgMSwgMCwgMSwg MCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwg MSwNCj4gKyAgICAgICAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAw LCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLA0KPiArICAgICAg IDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAs IDEsIDAsIDEsIDAsIDEsIDAsIDEsDQo+ICsgICAgICAgMCwgMSwgMCwgMSwg MCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMX07DQo+ ICsgIHVpbnQ4X3Qgb3V0W05dID0gezB9Ow0KPiArICBmb3IgKHVpbnQ4X3Qg aSA9IDA7IGkgPCBOOyArK2kpDQo+ICsgICAgaWYgKG1hc2tbaV0pDQo+ICsg ICAgICBvdXRbaV0gPSBpOw0KPiArICBmb3IgKHVpbnQ4X3QgaSA9IDA7IGkg PCBOOyArK2kpDQo+ICsgICAgew0KPiArICAgICAgaWYgKG1hc2tbaV0pDQo+ ICsgYXNzZXJ0IChvdXRbaV0gPT0gaSk7DQo+ICsgICAgICBlbHNlDQo+ICsg YXNzZXJ0IChvdXRbaV0gPT0gMCk7DQo+ICsgICAgfQ0KPiArfQ0KPiBkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9h dXRvdmVjL3Zscy12bG1heC9iaXRtYXNrLTguYyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy92bHMtdmxtYXgvYml0bWFz ay04LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAw MDAwMDAuLjVhYmIzNGMxNjg2DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zs cy12bG1heC9iaXRtYXNrLTguYw0KPiBAQCAtMCwwICsxLDMwIEBADQo+ICsv KiB7IGRnLWRvIHJ1biB7IHRhcmdldCB7IHJpc2N2X3ZlY3RvciB9IH0gfSAq Lw0KPiArLyogeyBkZy1vcHRpb25zICItLXBhcmFtIHJpc2N2LWF1dG92ZWMt cHJlZmVyZW5jZT1maXhlZC12bG1heCAtLXBhcmFtIHJpc2N2LWF1dG92ZWMt bG11bD1tOCAtTzMiIH0gKi8NCj4gKw0KPiArI2luY2x1ZGUgPHN0ZGludC1n Y2MuaD4NCj4gKyNpbmNsdWRlIDxhc3NlcnQuaD4NCj4gKw0KPiArI2RlZmlu ZSBOIDEyOA0KPiArDQo+ICtpbnQNCj4gK21haW4gKCkNCj4gK3sNCj4gKyAg aW50IG1hc2tbTl0NCj4gKyAgICA9IHswLCAxLCAwLCAxLCAwLCAxLCAwLCAx LCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLA0K PiArICAgICAgIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEs IDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsDQo+ICsgICAgICAgMCwg MSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwg MCwgMSwgMCwgMSwgMCwgMSwNCj4gKyAgICAgICAwLCAxLCAwLCAxLCAwLCAx LCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAw LCAxLA0KPiArICAgICAgIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEs IDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsDQo+ICsgICAg ICAgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwg MCwgMSwgMCwgMX07DQo+ICsgIGludCBvdXRbTl0gPSB7MH07DQo+ICsgIGZv ciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKQ0KPiArICAgIGlmIChtYXNrW2ld KQ0KPiArICAgICAgb3V0W2ldID0gaTsNCj4gKyAgZm9yIChpbnQgaSA9IDA7 IGkgPCBOOyArK2kpDQo+ICsgICAgew0KPiArICAgICAgaWYgKG1hc2tbaV0p DQo+ICsgYXNzZXJ0IChvdXRbaV0gPT0gaSk7DQo+ICsgICAgICBlbHNlDQo+ ICsgYXNzZXJ0IChvdXRbaV0gPT0gMCk7DQo+ICsgICAgfQ0KPiArfQ0KPiBk aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9hdXRvdmVjL3Zscy12bG1heC9iaXRtYXNrLTkuYyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy92bHMtdmxtYXgvYml0 bWFzay05LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAw MDAwMDAwMDAuLjZmZGFhNTE2NTM0DQo+IC0tLSAvZGV2L251bGwNCj4gKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVj L3Zscy12bG1heC9iaXRtYXNrLTkuYw0KPiBAQCAtMCwwICsxLDMwIEBADQo+ ICsvKiB7IGRnLWRvIHJ1biB7IHRhcmdldCB7IHJpc2N2X3ZlY3RvciB9IH0g fSAqLw0KPiArLyogeyBkZy1vcHRpb25zICItLXBhcmFtIHJpc2N2LWF1dG92 ZWMtcHJlZmVyZW5jZT1maXhlZC12bG1heCAtLXBhcmFtIHJpc2N2LWF1dG92 ZWMtbG11bD1tOCAtTzMiIH0gKi8NCj4gKw0KPiArI2luY2x1ZGUgPHN0ZGlu dC1nY2MuaD4NCj4gKyNpbmNsdWRlIDxhc3NlcnQuaD4NCj4gKw0KPiArI2Rl ZmluZSBOIDEyOA0KPiArDQo+ICtpbnQNCj4gK21haW4gKCkNCj4gK3sNCj4g KyAgaW50NjRfdCBtYXNrW05dDQo+ICsgICAgPSB7MCwgMSwgMCwgMSwgMCwg MSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwg MCwgMSwNCj4gKyAgICAgICAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAx LCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLA0KPiArICAg ICAgIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEs IDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsDQo+ICsgICAgICAgMCwgMSwgMCwg MSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwg MCwgMSwgMCwgMSwNCj4gKyAgICAgICAwLCAxLCAwLCAxLCAwLCAxLCAwLCAx LCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLA0K PiArICAgICAgIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEs IDAsIDEsIDAsIDEsIDAsIDF9Ow0KPiArICBpbnQ2NF90IG91dFtOXSA9IHsw fTsNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyArK2kpDQo+ICsgICAg aWYgKG1hc2tbaV0pDQo+ICsgICAgICBvdXRbaV0gPSBpOw0KPiArICBmb3Ig KGludCBpID0gMDsgaSA8IE47ICsraSkNCj4gKyAgICB7DQo+ICsgICAgICBp ZiAobWFza1tpXSkNCj4gKyBhc3NlcnQgKG91dFtpXSA9PSBpKTsNCj4gKyAg ICAgIGVsc2UNCj4gKyBhc3NlcnQgKG91dFtpXSA9PSAwKTsNCj4gKyAgICB9 DQo+ICt9DQo+IC0tDQo+IDIuMzYuMQ0KPg0KIA0K ------=_001_NextPart573872244575_=------