From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbg153.qq.com (smtpbg153.qq.com [13.245.218.24]) by sourceware.org (Postfix) with ESMTPS id C71F53858C53 for ; Wed, 23 Aug 2023 01:27:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C71F53858C53 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: bizesmtp88t1692754027tlnlaelr Received: from LAPTOP-EPITNQBU ( [119.123.199.188]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 23 Aug 2023 09:27:06 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: kN2ypXZVqgzdGbmLV1rJIiulkPIeaH41qNORB+eoK1sg5tdoA3zQR6P4tBAQG C7NWBr3V6ZcXKo40njZKTqWuk/nlM9wuiNIkeSN9YsHouiJucGx+gohRBVfmNxBBBlHxPPX e/92QmvexViTcRt1nAmPEBxcMtkuxMXEDMjTrZqNKLQBbMrIWzs463EIv5lEE9vOgpXCWYi khdq0js+JXIQCkJGL3cEJKsJZkmJ3I+e7ndv39WFAwnqnNpd/Mzg8VuACYrzTrDuaMLlsNC A7Snbycfdm/zRu4vDazx874Cj9O4P8MD2sh5hSNbuzvrykjf3r/V5m6Y+i6T23JHmmiToUl JulQa5QCBj+SIorthxUR1QV7GdIpUVdA+Rrc79piDiPKZqWTU7/LJFlsgZ99PUC6sPw6Fs2 ylg0u6WWaLie8blmjaT5pw== X-QQ-GoodBg: 2 X-BIZMAIL-ID: 9112312059488413479 Date: Wed, 23 Aug 2023 09:27:07 +0800 From: "juzhe.zhong@rivai.ai" To: Kito.cheng , kito.cheng Cc: "Robin Dapp" , gcc-patches , jeffreyalaw Subject: Re: Re: [PATCH] RISC-V: Refactor Phase 3 (Demand fusion) of VSETVL PASS References: <20230821015951.399184-1-juzhe.zhong@rivai.ai>, , , X-Priority: 3 X-GUID: 1519AC33-51D2-4721-9B7F-D625CF0AE495 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <57759CE1B510F56E+202308230927064061654@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart567346247478_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,TXREP,T_KAM_HTML_FONT_INVALID 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_NextPart567346247478_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Pj4gVGhpcyBzZWVtcyByZWxheCB0aGUgY29tcGF0aWJsaXRseSBjaGVjayB0 byBhbGxvdyBvcHRpbWl6ZSBtb3JlIGNhc2UsCj4+IGlmIHNvIHRoaXMgc2hv dWxkIGJlIGEgc3BlcmF0ZWQgcGF0Y2guDQpUaGlzIGlzIG5vdCBhIG9wdGlt aXphdGlvbiBmaXgsIEl0J3MgYW4gYnVnIGZpeC4NCg0KU2luY2UgZnVzaW9u IGZvciB0aGVzZSAyIGRlbWFuZHM6DQoxLiBkZW1hbmQgU0VXIGFuZCBHRV9T RVcgKG1lYW5pbmcgZGVtYW5kIGEgU0VXIGxhcmdlciB0aGFuIGEgc3BlY2lm aWMgU0VXKS4NCjIuIGRlbWFuZCBTRVcgYW5kIEdFX1NFVyAobWVhbmluZyBk ZW1hbmQgYSBTRVcgbGFyZ2VyIHRoYW4gYSBzcGVjaWZpYyBTRVcpIGFuZCBk ZW1hbmQgUkFUSU8uDQoNClRoZSBuZXcgZnVzaW9uIGRlbWFuZCBzaG91bGQg aW5jbHVkZSBSQVRJTyBkZW1hbmQgYnV0IGl0IGRpZG4ndCBiZWZvcmUuIEl0 J3MgYW4gYnVnLg0KSXQncyBsdWNreSB0aGF0IHByZXZpb3VzIHRlc3RzIGRp ZG4ndCBleHBvc2Ugc3VjaCBidWcgYmVmb3JlIHJlZmFjdG9yLg0KQnV0IHN1 Y2ggYnVnIGlzIGV4cG9zZWQgYWZ0ZXIgcmVmYWN0b3IuDQoNCkkgY29tbWl0 dGVkIGl0IHdpdGggYSBzZXBhcmF0ZSBwYXRjaC4NClRoYW5rcy4NCg0KDQpq dXpoZS56aG9uZ0ByaXZhaS5haQ0KIA0KRnJvbTogS2l0byBDaGVuZw0KRGF0 ZTogMjAyMy0wOC0yMiAyMzozNQ0KVG86IEtpdG8gQ2hlbmcNCkNDOiBSb2Jp biBEYXBwOyBKdXpoZS1aaG9uZzsgR0NDIFBhdGNoZXM7IEplZmYgTGF3DQpT dWJqZWN0OiBSZTogW1BBVENIXSBSSVNDLVY6IFJlZmFjdG9yIFBoYXNlIDMg KERlbWFuZCBmdXNpb24pIG9mIFZTRVRWTCBQQVNTDQpJdCdzIHJlYWxseSBn cmVhdCBpbXByb3ZlbWVudCwgaXQncyBkcm9wIHNvbWUgc3RhdGUgbGlrZSBI QVJEX0VNUFRZDQphbmQgRElSVFlfV0lUSF9LSUxMRURfQVZMIHdoaWNoIG1h a2UgdGhpcyBhbGdvcml0aG0gbW9yZSBlYXN5IHRvDQp1bmRlcnN0YW5kIQ0K YWxzbyB0aGlzIGFsc28gZnVuZGFtZW50YWxseSBpbXByb3ZlZCB0aGUgcGhh c2UgMywgYWx0aG91Z2ggb25lDQpjb25jZXJuIGlzIHRoZSB0aW1lIGNvbXBs ZXhpdHkgbWlnaHQgYmUgY29tZSBtb3JlIGhpZ2hlciBvcmRlciwNCihhbmQg aXQncyBhbHJlYWR5IGhpZ2ggZW5vdWdoIGluIGZhY3QuKQ0KYnV0IG1vc3Rs eSB0aG9zZSB2ZWN0b3JpemVkIGNvZGUgYXJlIG9ubHkgYXBwZWFyZCB3aXRo aW4gdGhlIGlubmVyDQptb3N0IGxvb3AsIHNvIHRoYXQgaXMgYWNjZXB0YWJs ZSBpbiBnZW5lcmFsbHkNCiANClNvIEkgd2lsbCB0cnkgbXkgYmVzdCB0byBy ZXZpZXcgdGhpcyBjbG9zZWx5IHRvIG1ha2UgaXQgbW9yZSBjbG9zZSB0bw0K dGhlIHBlcmZlY3QgOikNCiANCkkgc2F3IHlvdSBoYXMgdXBkYXRlIHNlcnZl cmFsIHRlc3RjYXNlLCB3aHkgdXBkYXRlIGluc3RlYWQgb2YgYWRkIG5ldyB0 ZXN0Y2FzZT8/DQpjb3VsZCB5b3Ugc2F5IG1vcmUgYWJvdXQgd2h5IHNvbWUg dGVzdGNhc2UgYWRkZWQgX19yaXNjdl92YWRkX3Z2X2k4bWY4DQpvciBhZGQg c29tZSBtb3JlIGRlcGVuZGVuY3kgb2YgdmwgdmFyaWFibGU/DQogDQogDQog DQo+IEBAIC0xNDIzLDggKzE0MDksMTMgQEAgc3RhdGljIGJvb2wNCj4gIGdl X3Nld19yYXRpb191bmF2YWlsYWJsZV9wIChjb25zdCB2ZWN0b3JfaW5zbl9p bmZvICZpbmZvMSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHZlY3Rvcl9pbnNuX2luZm8gJmluZm8yKQ0KPiAgew0KPiAtICBpZiAo IWluZm8yLmRlbWFuZF9wIChERU1BTkRfTE1VTCkgJiYgaW5mbzIuZGVtYW5k X3AgKERFTUFORF9HRV9TRVcpKQ0KPiAtICAgIHJldHVybiBpbmZvMS5nZXRf c2V3ICgpIDwgaW5mbzIuZ2V0X3NldyAoKTsNCj4gKyAgaWYgKCFpbmZvMi5k ZW1hbmRfcCAoREVNQU5EX0xNVUwpKQ0KPiArICAgIHsNCj4gKyAgICAgIGlm IChpbmZvMi5kZW1hbmRfcCAoREVNQU5EX0dFX1NFVykpDQo+ICsgICAgICAg cmV0dXJuIGluZm8xLmdldF9zZXcgKCkgPCBpbmZvMi5nZXRfc2V3ICgpOw0K PiArICAgICAgZWxzZSBpZiAoIWluZm8yLmRlbWFuZF9wIChERU1BTkRfU0VX KSkNCj4gKyAgICAgICByZXR1cm4gZmFsc2U7DQo+ICsgICAgfQ0KIA0KVGhp cyBzZWVtcyByZWxheCB0aGUgY29tcGF0aWJsaXRseSBjaGVjayB0byBhbGxv dyBvcHRpbWl6ZSBtb3JlIGNhc2UsDQppZiBzbyB0aGlzIHNob3VsZCBiZSBh IHNwZXJhdGVkIHBhdGNoLg0KIA0KPiAgICByZXR1cm4gdHJ1ZTsNCj4gIH0N CiANCiANCj4gQEAgLTE4MTUsNyArMTczNyw3IEBAIHZlY3Rvcl9pbnNuX2lu Zm86OnBhcnNlX2luc24gKHJ0eF9pbnNuICpyaW5zbikNCj4gICAgICByZXR1 cm47DQo+ICAgIGlmIChvcHRpbWl6ZSA9PSAwICYmICFoYXNfdnR5cGVfb3Ag KHJpbnNuKSkNCj4gICAgICByZXR1cm47DQo+IC0gIGlmIChvcHRpbWl6ZSA+ IDAgJiYgIXZzZXR2bF9pbnNuX3AgKHJpbnNuKSkNCj4gKyAgaWYgKG9wdGlt aXplID4gMCAmJiB2c2V0dmxfZGlzY2FyZF9yZXN1bHRfaW5zbl9wIChyaW5z bikpDQogDQpJIGRpZG4ndCBnZXQgdGhpcyBjaGFuZ2UsIGNvdWxkIHlvdSBl eHBsYW4gZmV3IG1vcmUgYWJvdXQgdGhhdD8gaXQgd2FzDQplYXJseSBleGl0 IGZvciBub24gdnNldHZsIGluc24sIGJ1dCBub3cgaXQgYWxsb3dlZCB0aGF0 IG5vdz8NCiANCj4gICAgICByZXR1cm47DQo+ICAgIG1fc3RhdGUgPSBWQUxJ RDsNCj4gICAgZXh0cmFjdF9pbnNuX2NhY2hlZCAocmluc24pOw0KIA0KPiBA QCAtMjIwNiw5ICsyMTI4LDkgQEAgdmVjdG9yX2luc25faW5mbzo6ZnVzZV9t YXNrX3BvbGljeSAoY29uc3QgdmVjdG9yX2luc25faW5mbyAmaW5mbzEsDQo+ DQo+ICB2ZWN0b3JfaW5zbl9pbmZvDQo+ICB2ZWN0b3JfaW5zbl9pbmZvOjpt ZXJnZSAoY29uc3QgdmVjdG9yX2luc25faW5mbyAmbWVyZ2VfaW5mbywNCj4g LSAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gbWVyZ2VfdHlwZSB0eXBl KSBjb25zdA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBtZXJn ZV90eXBlIHR5cGUsIHVuc2lnbmVkIGJiX2luZGV4KSBjb25zdA0KPiAgew0K PiAtICBpZiAoIXZzZXR2bF9pbnNuX3AgKGdldF9pbnNuICgpLT5ydGwgKCkp KQ0KPiArICBpZiAoIXZzZXR2bF9pbnNuX3AgKGdldF9pbnNuICgpLT5ydGwg KCkpICYmICp0aGlzICE9IG1lcmdlX2luZm8pDQogDQpXaHkgbmVlZCB0aGlz IGV4Y2VwdGlvbj8NCiANCj4gICAgICBnY2NfYXNzZXJ0ICh0aGlzLT5jb21w YXRpYmxlX3AgKG1lcmdlX2luZm8pDQo+ICAgICAgICAgICAgICAgICAmJiAi Q2FuJ3QgbWVyZ2UgaW5jb21wYXRpYmxlIGRlbWFuZGVkIGluZm9zIik7DQog DQo+IEBAIC0yNDAzLDE4ICsyMzQ4LDIyIEBAIHZlY3Rvcl9pbmZvc19tYW5h Z2VyOjpnZXRfYWxsX2F2YWlsYWJsZV9leHBycyAoDQo+ICB9DQo+DQo+ICBi b29sDQo+IC12ZWN0b3JfaW5mb3NfbWFuYWdlcjo6YWxsX2VtcHR5X3ByZWRl Y2Vzc29yX3AgKGNvbnN0IGJhc2ljX2Jsb2NrIGNmZ19iYikgY29uc3QNCj4g K3ZlY3Rvcl9pbmZvc19tYW5hZ2VyOjplYXJsaWVzdF9mdXNpb25fd29ydGh3 aGlsZV9wICgNCj4gKyAgY29uc3QgYmFzaWNfYmxvY2sgY2ZnX2JiKSBjb25z dA0KPiAgew0KPiAtICBoYXNoX3NldDxiYXNpY19ibG9jaz4gcHJlZF9jZmdf YmJzID0gZ2V0X2FsbF9wcmVkZWNlc3NvcnMgKGNmZ19iYik7DQo+IC0gIGZv ciAoY29uc3QgYmFzaWNfYmxvY2sgcHJlZF9jZmdfYmIgOiBwcmVkX2NmZ19i YnMpDQo+ICsgIGVkZ2UgZTsNCj4gKyAgZWRnZV9pdGVyYXRvciBlaTsNCj4g KyAgcHJvZmlsZV9wcm9iYWJpbGl0eSBwcm9iID0gcHJvZmlsZV9wcm9iYWJp bGl0eTo6dW5pbml0aWFsaXplZCAoKTsNCj4gKyAgRk9SX0VBQ0hfRURHRSAo ZSwgZWksIGNmZ19iYi0+c3VjY3MpDQo+ICAgICAgew0KPiAtICAgICAgY29u c3QgYXV0byAmcHJlZF9ibG9ja19pbmZvID0gdmVjdG9yX2Jsb2NrX2luZm9z W3ByZWRfY2ZnX2JiLT5pbmRleF07DQo+IC0gICAgICBpZiAoIXByZWRfYmxv Y2tfaW5mby5sb2NhbF9kZW0udmFsaWRfb3JfZGlydHlfcCAoKQ0KPiAtICAg ICAgICAgJiYgIXByZWRfYmxvY2tfaW5mby5yZWFjaGluZ19vdXQudmFsaWRf b3JfZGlydHlfcCAoKSkNCj4gKyAgICAgIGlmIChwcm9iID09IHByb2ZpbGVf cHJvYmFiaWxpdHk6OnVuaW5pdGlhbGl6ZWQgKCkpDQo+ICsgICAgICAgcHJv YiA9IHZlY3Rvcl9ibG9ja19pbmZvc1tlLT5kZXN0LT5pbmRleF0ucHJvYmFi aWxpdHk7DQo+ICsgICAgICBlbHNlIGlmIChwcm9iID09IHZlY3Rvcl9ibG9j a19pbmZvc1tlLT5kZXN0LT5pbmRleF0ucHJvYmFiaWxpdHkpDQo+ICAgICAg ICAgY29udGludWU7DQo+IC0gICAgICByZXR1cm4gZmFsc2U7DQo+ICsgICAg ICBlbHNlDQo+ICsgICAgICAgcmV0dXJuIHRydWU7DQogDQpNYWtlIHN1cmUg SSB1bmRlcnN0YW5kIHRoaXMgY29ycmVjdGx5OiBpdCdzIHdvcnRoIGlmIHRo b2UgZWRnZXMgaGFzDQpkaWZmZXJlbnQgcHJvYmFiaWxpdHk/DQogDQo+ICAg ICAgfQ0KPiAtICByZXR1cm4gdHJ1ZTsNCj4gKyAgcmV0dXJuIGZhbHNlOw0K IA0KSWYgYWxsIHByb2JhYmlsaXR5IGlzIHNhbWUsIHRoZW4gaXQncyBub3Qg d29ydGg/DQogDQpQbHogYWRkIGZldyBjb21tZW50cyBubyBtYXR0ZXIgbXkg dW5kZXJzdGFuZCBpcyByaWdodCBvciBub3QgOikNCiANCj4gIH0NCj4NCj4g IGJvb2wNCiANCj4gQEAgLTI0MjgsMTIgKzIzNzcsMTIgQEAgdmVjdG9yX2lu Zm9zX21hbmFnZXI6OmFsbF9zYW1lX3JhdGlvX3AgKHNiaXRtYXAgYml0ZGF0 YSkgY29uc3QNCj4gICAgc2JpdG1hcF9pdGVyYXRvciBzYmk7DQo+DQo+ICAg IEVYRUNVVEVfSUZfU0VUX0lOX0JJVE1BUCAoYml0ZGF0YSwgMCwgYmJfaW5k ZXgsIHNiaSkNCj4gLSAgew0KPiAtICAgIGlmIChyYXRpbyA9PSAtMSkNCj4g LSAgICAgIHJhdGlvID0gdmVjdG9yX2V4cHJzW2JiX2luZGV4XS0+Z2V0X3Jh dGlvICgpOw0KPiAtICAgIGVsc2UgaWYgKHZlY3Rvcl9leHByc1tiYl9pbmRl eF0tPmdldF9yYXRpbyAoKSAhPSByYXRpbykNCj4gLSAgICAgIHJldHVybiBm YWxzZTsNCj4gLSAgfQ0KPiArICAgIHsNCj4gKyAgICAgIGlmIChyYXRpbyA9 PSAtMSkNCj4gKyAgICAgICByYXRpbyA9IHZlY3Rvcl9leHByc1tiYl9pbmRl eF0tPmdldF9yYXRpbyAoKTsNCj4gKyAgICAgIGVsc2UgaWYgKHZlY3Rvcl9l eHByc1tiYl9pbmRleF0tPmdldF9yYXRpbyAoKSAhPSByYXRpbykNCj4gKyAg ICAgICByZXR1cm4gZmFsc2U7DQo+ICsgICAgfQ0KPiAgICByZXR1cm4gdHJ1 ZTsNCj4gIH0NCiANClNwbGl0IHRoaXMgaW50byBhIE5GQyBwYXRjaCwgeW91 IGNhbiBjb21taXQgdGhhdCB3aXRob3V0IGFza2luZyByZXZpZXcuDQogDQo+ IEBAIC05MDcsOCArODkzLDggQEAgY2hhbmdlX2luc24gKGZ1bmN0aW9uX2lu Zm8gKnNzYSwgaW5zbl9jaGFuZ2UgY2hhbmdlLCBpbnNuX2luZm8gKmluc24s DQo+ICAgICAgICAgICAgICAgICBdIFVOU1BFQ19WUFJFRElDQVRFKQ0KPiAg ICAgICAgICAgICAocGx1czpSVlZNNERJIChyZWcvdjpSVlZNNERJIDEwNCB2 OCBbb3JpZzoxMzcgb3AxIF0gWzEzN10pDQo+ICAgICAgICAgICAgICAgICAo c2lnbl9leHRlbmQ6UlZWTTRESSAodmVjX2R1cGxpY2F0ZTpSVlZNNFNJIChy ZWc6U0kgMTUgYTUNCj4gLSAgICBbMTQwXSkpKSkgKHVuc3BlYzpSVlZNNERJ IFsgKGNvbnN0X2ludCAwIFswXSkgXSBVTlNQRUNfVlVOREVGKSkpICJydnYu YyI6ODoxMg0KPiAtICAgIDI3ODQge3ByZWRfc2luZ2xlX3dpZGVuX2FkZHN2 bng4ZGlfc2NhbGFyfSAoZXhwcl9saXN0OlJFR19FUVVJVg0KPiArICAgIFsx NDBdKSkpKSAodW5zcGVjOlJWVk00REkgWyAoY29uc3RfaW50IDAgWzBdKSBd IFVOU1BFQ19WVU5ERUYpKSkNCj4gKyAgICAicnZ2LmMiOjg6MTIgMjc4NCB7 cHJlZF9zaW5nbGVfd2lkZW5fYWRkc3ZueDhkaV9zY2FsYXJ9IChleHByX2xp c3Q6UkVHX0VRVUlWDQo+ICAgICAgKG1lbS9jOlJWVk00REkgKHJlZzpESSAx MCBhMCBbMTQyXSkgWzEgPHJldHZhbD4rMCBTWzY0LCA2NF0gQTEyOF0pDQo+ ICAgICAgICAgKGV4cHJfbGlzdDpSRUdfRVFVQUwgKGlmX3RoZW5fZWxzZTpS VlZNNERJICh1bnNwZWM6UlZWTUY4QkkgWw0KPiAgICAgICAgICAgICAgICAg ICAgICAgICAoY29uc3RfdmVjdG9yOlJWVk1GOEJJIHJlcGVhdCBbDQogDQpT cGxpdCB0aGlzIGludG8gYSBORkMgcGF0Y2gsIHlvdSBjYW4gY29tbWl0IHRo YXQgd2l0aG91dCBhc2tpbmcgcmV2aWV3Lg0KIA0KIA0KPiBAQCAtMjc3Nyw2 ICsyNzcwLDE3IEBAIHBhc3NfdnNldHZsOjp1cGRhdGVfdmVjdG9yX2luZm8g KGNvbnN0IGluc25faW5mbyAqaSwNCj4gICAgbV92ZWN0b3JfbWFuYWdlci0+ dmVjdG9yX2luc25faW5mb3NbaS0+dWlkICgpXSA9IG5ld19pbmZvOw0KPiAg fQ0KPg0KPiArdm9pZA0KPiArcGFzc192c2V0dmw6OnVwZGF0ZV9ibG9ja19p bmZvIChpbnQgaW5kZXgsIHByb2ZpbGVfcHJvYmFiaWxpdHkgcHJvYiwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3JfaW5zbl9p bmZvIG5ld19pbmZvKQ0KY29uc3QgdmVjdG9yX2luc25faW5mbyAmbmV3X2lu Zm8NCiANCiANCj4gK3sNCj4gKyAgbV92ZWN0b3JfbWFuYWdlci0+dmVjdG9y X2Jsb2NrX2luZm9zW2luZGV4XS5wcm9iYWJpbGl0eSA9IHByb2I7DQo+ICsg IGlmIChtX3ZlY3Rvcl9tYW5hZ2VyLT52ZWN0b3JfYmxvY2tfaW5mb3NbaW5k ZXhdLmxvY2FsX2RlbQ0KPiArICAgICAgPT0gbV92ZWN0b3JfbWFuYWdlci0+ dmVjdG9yX2Jsb2NrX2luZm9zW2luZGV4XS5yZWFjaGluZ19vdXQpDQo+ICsg ICAgbV92ZWN0b3JfbWFuYWdlci0+dmVjdG9yX2Jsb2NrX2luZm9zW2luZGV4 XS5sb2NhbF9kZW0gPSBuZXdfaW5mbzsNCj4gKyAgbV92ZWN0b3JfbWFuYWdl ci0+dmVjdG9yX2Jsb2NrX2luZm9zW2luZGV4XS5yZWFjaGluZ19vdXQgPSBu ZXdfaW5mbzsNCj4gK30NCj4gKw0KIA0Kew0KICBhdXRvICZibG9ja19pbmZv ID0gbV92ZWN0b3JfbWFuYWdlci0+dmVjdG9yX2Jsb2NrX2luZm9zW2luZGV4 XTsNCiAgYmxvY2tfaW5mby5wcm9iYWJpbGl0eSA9IHByb2I7DQogIGlmIChi bG9ja19pbmZvLmxvY2FsX2RlbSA9PSBibG9ja19pbmZvLnJlYWNoaW5nX291 dCkNCiAgICBibG9ja19pbmZvLmxvY2FsX2RlbSA9IG5ld19pbmZvOw0KICBi bG9ja19pbmZvLnJlYWNoaW5nX291dCA9IG5ld19pbmZvOw0KfQ0KIA0KPiAg LyogU2ltcGxlIG1fdnNldHZsX2luc2VydCB2c2V0dmwgZm9yIG9wdGltaXpl ID09IDAuICAqLw0KPiAgdm9pZA0KPiAgcGFzc192c2V0dmw6OnNpbXBsZV92 c2V0dmwgKHZvaWQpIGNvbnN0DQogDQogDQo+ICsgICAgICBmb3IgKGluc25f aW5mbyAqaSA9IGVhcmxpZXN0X3ByZWQtPmVuZF9pbnNuICgpLT5wcmV2X25v bmRlYnVnX2luc24gKCk7DQo+ICsgICAgICAgICAgcmVhbF9pbnNuX2FuZF9z YW1lX2JiX3AgKGksIGVhcmxpZXN0X3ByZWQpDQo+ICsgICAgICAgICAgJiYg YWZ0ZXJfb3Jfc2FtZV9wIChpLCBsYXN0X2luc24pOw0KPiArICAgICAgICAg IGkgPSBpLT5wcmV2X25vbmRlYnVnX2luc24gKCkpDQo+ICAgICAgICAgew0K PiArICAgICAgICAgaWYgKCF2bCAmJiBmaW5kX2FjY2VzcyAoaS0+ZGVmcyAo KSwgUkVHTk8gKGF2bCkpKQ0KPiArICAgICAgICAgICByZXR1cm4gZmFsc2U7 DQo+ICsgICAgICAgICBpZiAodmwgJiYgZmluZF9hY2Nlc3MgKGktPmRlZnMg KCksIFJFR05PICh2bCkpKQ0KPiArICAgICAgICAgICByZXR1cm4gZmFsc2U7 DQo+ICsgICAgICAgICBpZiAodmwgJiYgZmluZF9hY2Nlc3MgKGktPnVzZXMg KCksIFJFR05PICh2bCkpKQ0KPiArICAgICAgICAgICByZXR1cm4gZmFsc2U7 DQogDQpzaG91bGQgd2UgY2hlY2sgYGktPmlzX2NhbGwgKCkgfHwgaS0+aXNf YXNtICgpYD8NCiANCiANCj4gQEAgLTM4OTIsNyArMzQwOCw3IEBAIHBhc3Nf dnNldHZsOjpyZWZpbmVfdnNldHZscyAodm9pZCkgY29uc3QNCj4gICAgYmFz aWNfYmxvY2sgY2ZnX2JiOw0KPiAgICBGT1JfRUFDSF9CQl9GTiAoY2ZnX2Ji LCBjZnVuKQ0KPiAgICAgIHsNCj4gLSAgICAgIGF1dG8gaW5mbyA9IGdldF9i bG9ja19pbmZvKGNmZ19iYikubG9jYWxfZGVtOw0KPiArICAgICAgYXV0byBp bmZvID0gZ2V0X2Jsb2NrX2luZm8gKGNmZ19iYikubG9jYWxfZGVtOw0KPiAg ICAgICAgaW5zbl9pbmZvICppbnNuID0gaW5mby5nZXRfaW5zbiAoKTsNCj4g ICAgICAgIGlmICghaW5mby52YWxpZF9wICgpKQ0KPiAgICAgICAgIGNvbnRp bnVlOw0KIA0KU3BsaXQgdGhpcyBpbnRvIGEgTkZDIHBhdGNoLCB5b3UgY2Fu IGNvbW1pdCB0aGF0IHdpdGhvdXQgYXNraW5nIHJldmlldy4NCiANCj4gQEAg LTM5MzgsOCArMzQ1NCw3IEBAIHBhc3NfdnNldHZsOjpjbGVhbnVwX3ZzZXR2 bHMgKCkNCj4gICAgYmFzaWNfYmxvY2sgY2ZnX2JiOw0KPiAgICBGT1JfRUFD SF9CQl9GTiAoY2ZnX2JiLCBjZnVuKQ0KPiAgICAgIHsNCj4gLSAgICAgIGF1 dG8gJmluZm8NCj4gLSAgICAgICA9IGdldF9ibG9ja19pbmZvKGNmZ19iYiku cmVhY2hpbmdfb3V0Ow0KPiArICAgICAgYXV0byAmaW5mbyA9IGdldF9ibG9j a19pbmZvIChjZmdfYmIpLnJlYWNoaW5nX291dDsNCj4gICAgICAgIGdjY19h c3NlcnQgKG1fdmVjdG9yX21hbmFnZXItPmV4cHJfc2V0X251bSAoDQo+ICAg ICAgICAgICAgICAgICAgICAgbV92ZWN0b3JfbWFuYWdlci0+dmVjdG9yX2Rl bFtjZmdfYmItPmluZGV4XSkNCj4gICAgICAgICAgICAgICAgICAgPD0gMSk7 DQogDQpTcGxpdCB0aGlzIGludG8gYSBORkMgcGF0Y2gsIHlvdSBjYW4gY29t bWl0IHRoYXQgd2l0aG91dCBhc2tpbmcgcmV2aWV3Lg0KIA0KPiBAQCAtMzk1 MSw5ICszNDY2LDcgQEAgcGFzc192c2V0dmw6OmNsZWFudXBfdnNldHZscyAo KQ0KPiAgICAgICAgICAgICAgICAgaW5mby5zZXRfdW5rbm93biAoKTsNCj4g ICAgICAgICAgICAgICBlbHNlDQo+ICAgICAgICAgICAgICAgICB7DQo+IC0g ICAgICAgICAgICAgICAgIGNvbnN0IGF1dG8gZGVtDQo+IC0gICAgICAgICAg ICAgICAgICAgPSBnZXRfYmxvY2tfaW5mbyhjZmdfYmIpDQo+IC0gICAgICAg ICAgICAgICAgICAgICAgIC5sb2NhbF9kZW07DQo+ICsgICAgICAgICAgICAg ICAgIGNvbnN0IGF1dG8gZGVtID0gZ2V0X2Jsb2NrX2luZm8gKGNmZ19iYiku bG9jYWxfZGVtOw0KPiAgICAgICAgICAgICAgICAgICBnY2NfYXNzZXJ0IChk ZW0gPT0gKm1fdmVjdG9yX21hbmFnZXItPnZlY3Rvcl9leHByc1tpXSk7DQo+ ICAgICAgICAgICAgICAgICAgIGluc25faW5mbyAqaW5zbiA9IGRlbS5nZXRf aW5zbiAoKTsNCj4gICAgICAgICAgICAgICAgICAgZ2NjX2Fzc2VydCAoaW5z biAmJiBpbnNuLT5ydGwgKCkpOw0KIA0KU3BsaXQgdGhpcyBpbnRvIGEgTkZD IHBhdGNoLCB5b3UgY2FuIGNvbW1pdCB0aGF0IHdpdGhvdXQgYXNraW5nIHJl dmlldy4NCiANCj4gQEAgLTQwMjAsMzMgKzM1NDMsMTAgQEAgcGFzc192c2V0 dmw6OmNvbW1pdF92c2V0dmxzICh2b2lkKQ0KPiAgICBmb3IgKGNvbnN0IGJi X2luZm8gKmJiIDogY3J0bC0+c3NhLT5iYnMgKCkpDQo+ICAgICAgew0KPiAg ICAgICAgYmFzaWNfYmxvY2sgY2ZnX2JiID0gYmItPmNmZ19iYiAoKTsNCj4g LSAgICAgIGNvbnN0IGF1dG8gcmVhY2hpbmdfb3V0DQo+IC0gICAgICAgPSBn ZXRfYmxvY2tfaW5mbyhjZmdfYmIpLnJlYWNoaW5nX291dDsNCj4gKyAgICAg IGNvbnN0IGF1dG8gcmVhY2hpbmdfb3V0ID0gZ2V0X2Jsb2NrX2luZm8gKGNm Z19iYikucmVhY2hpbmdfb3V0Ow0KIA0KU3BsaXQgdGhpcyBpbnRvIGEgTkZD IHBhdGNoLCB5b3UgY2FuIGNvbW1pdCB0aGF0IHdpdGhvdXQgYXNraW5nIHJl dmlldy4NCiANCj4gQEAgLTQyNjMsNyArMzc4Myw4IEBAIHBhc3NfdnNldHZs Ojpsb2NhbF9lbGltaW5hdGVfdnNldHZsX2luc24gKGNvbnN0IGJiX2luZm8g KmJiKSBjb25zdA0KPg0KPiAgICAgICAgLyogTG9jYWwgQVZMIGNvbXBhdGli aWxpdHkgY2hlY2tpbmcgaXMgc2ltcGxlciB0aGFuIGdsb2JhbCwgd2Ugb25s eQ0KPiAgICAgICAgICBuZWVkIHRvIGNoZWNrIHRoZSBSRUdOTyBpcyBzYW1l LiAgKi8NCj4gLSAgICAgIGlmIChwcmV2X2RlbS52YWxpZF9vcl9kaXJ0eV9w ICgpICYmIHByZXZfZGVtLnNraXBfYXZsX2NvbXBhdGlibGVfcCAoY3Vycl9k ZW0pDQo+ICsgICAgICBpZiAocHJldl9kZW0udmFsaWRfb3JfZGlydHlfcCAo KQ0KPiArICAgICAgICAgJiYgcHJldl9kZW0uc2tpcF9hdmxfY29tcGF0aWJs ZV9wIChjdXJyX2RlbSkNCj4gICAgICAgICAgICYmIGxvY2FsX2F2bF9jb21w YXRpYmxlX3AgKHByZXZfYXZsLCBjdXJyX2F2bCkpDQo+ICAgICAgICAgew0K PiAgICAgICAgICAgLyogY3Vycl9kZW0gYW5kIHByZXZfZGVtIGlzIGNvbXBh dGlibGUhICAqLw0KIA0KU3BsaXQgdGhpcyBpbnRvIGEgTkZDIHBhdGNoLCB5 b3UgY2FuIGNvbW1pdCB0aGF0IHdpdGhvdXQgYXNraW5nIHJldmlldy4NCiAN Cj5AQCAtNDY1NSw4ICs0MjQwLDcgQEAgcGFzc192c2V0dmw6OmNvbXB1dGVf cHJvYmFiaWxpdGllcyAodm9pZCkNCj4gICBmb3IgKGNvbnN0IGJiX2luZm8g KmJiIDogY3J0bC0+c3NhLT5iYnMgKCkpDQo+ICAgICB7DQo+ICAgICAgIGJh c2ljX2Jsb2NrIGNmZ19iYiA9IGJiLT5jZmdfYmIgKCk7DQo+LSAgICAgIGF1 dG8gJmN1cnJfcHJvYg0KPi0gICAgICAgPSBnZXRfYmxvY2tfaW5mbyhjZmdf YmIpLnByb2JhYmlsaXR5Ow0KPisgICAgICBhdXRvICZjdXJyX3Byb2IgPSBn ZXRfYmxvY2tfaW5mbyAoY2ZnX2JiKS5wcm9iYWJpbGl0eTsNCj4NCj4gICAg ICAgLyogR0NDIGFzc3VtZSBlbnRyeSBibG9jayAoYmIgMCkgYXJlIGFsd2F5 cyBzbw0KPiAgICAgICAgIGV4ZWN1dGVkIHNvIHNldCBpdHMgcHJvYmFiaWxp dHkgYXMgImFsd2F5cyIuICAqLw0KIA0KU3BsaXQgdGhpcyBpbnRvIGEgTkZD IHBhdGNoLCB5b3UgY2FuIGNvbW1pdCB0aGF0IHdpdGhvdXQgYXNraW5nIHJl dmlldy4NCiANCj4gQEAgLTQ2NjksOCArNDI1Myw3IEBAIHBhc3NfdnNldHZs Ojpjb21wdXRlX3Byb2JhYmlsaXRpZXMgKHZvaWQpDQo+ICAgICAgICBnY2Nf YXNzZXJ0IChjdXJyX3Byb2IuaW5pdGlhbGl6ZWRfcCAoKSk7DQo+ICAgICAg ICBGT1JfRUFDSF9FREdFIChlLCBlaSwgY2ZnX2JiLT5zdWNjcykNCj4gICAg ICAgICB7DQo+IC0gICAgICAgICBhdXRvICZuZXdfcHJvYg0KPiAtICAgICAg ICAgICA9IGdldF9ibG9ja19pbmZvKGUtPmRlc3QpLnByb2JhYmlsaXR5Ow0K PiArICAgICAgICAgYXV0byAmbmV3X3Byb2IgPSBnZXRfYmxvY2tfaW5mbyAo ZS0+ZGVzdCkucHJvYmFiaWxpdHk7DQo+ICAgICAgICAgICBpZiAoIW5ld19w cm9iLmluaXRpYWxpemVkX3AgKCkpDQo+ICAgICAgICAgICAgIG5ld19wcm9i ID0gY3Vycl9wcm9iICogZS0+cHJvYmFiaWxpdHk7DQo+ICAgICAgICAgICBl bHNlIGlmIChuZXdfcHJvYiA9PSBwcm9maWxlX3Byb2JhYmlsaXR5OjphbHdh eXMgKCkpDQogDQogDQpTcGxpdCB0aGlzIGludG8gYSBORkMgcGF0Y2gsIHlv dSBjYW4gY29tbWl0IHRoYXQgd2l0aG91dCBhc2tpbmcgcmV2aWV3Lg0KIA0K IA0KPiBAQCAtNDI5OCw3ICszODE5LDggQEAgcGFzc192c2V0dmw6OmxvY2Fs X2VsaW1pbmF0ZV92c2V0dmxfaW5zbiAoY29uc3QgYmJfaW5mbyAqYmIpIGNv bnN0DQo+ICAgICBub25lIGV4aXN0cyBvciBpZiBhIHVzZXIgUlZWIGluc3Ry dWN0aW9uIGlzIGVub3VudGVyZWQNCj4gICAgIHByaW9yIHRvIGFueSB2c2V0 dmwuICAqLw0KPiAgc3RhdGljIHJ0eF9pbnNuICoNCj4gLWdldF9maXJzdF92 c2V0dmxfYmVmb3JlX3J2dl9pbnNucyAoYmFzaWNfYmxvY2sgY2ZnX2JiKQ0K PiArZ2V0X2ZpcnN0X3ZzZXR2bF9iZWZvcmVfcnZ2X2luc25zIChiYXNpY19i bG9jayBjZmdfYmIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZW51bSB2c2V0dmxfdHlwZSBpbnNuX3R5cGUpDQo+ICB7DQogDQph ZGQgZ2NjX2Fzc2VydCAoaW5zbl90eXBlID09IFZTRVRWTF9ESVNDQVJEX1JF U1VMVCB8fCBpbnNuX3R5cGUgPT0NClZTRVRWTF9WVFlQRV9DSEFOR0VfT05M WSkuDQogDQo+ICAgIHJ0eF9pbnNuICpyaW5zbjsNCj4gICAgRk9SX0JCX0lO U05TIChjZmdfYmIsIHJpbnNuKQ0KPiBAQCAtNDMxMCw3ICszODMyLDExIEBA IGdldF9maXJzdF92c2V0dmxfYmVmb3JlX3J2dl9pbnNucyAoYmFzaWNfYmxv Y2sgY2ZnX2JiKQ0KPiAgICAgICAgaWYgKGhhc192dHlwZV9vcCAocmluc24p IHx8IHZzZXR2bF9pbnNuX3AgKHJpbnNuKSkNCj4gICAgICAgICByZXR1cm4g bnVsbHB0cjsNCj4NCj4gLSAgICAgIGlmICh2c2V0dmxfZGlzY2FyZF9yZXN1 bHRfaW5zbl9wIChyaW5zbikpDQo+ICsgICAgICBpZiAoaW5zbl90eXBlID09 IFZTRVRWTF9ESVNDQVJEX1JFU1VMVA0KPiArICAgICAgICAgJiYgdnNldHZs X2Rpc2NhcmRfcmVzdWx0X2luc25fcCAocmluc24pKQ0KPiArICAgICAgIHJl dHVybiByaW5zbjsNCj4gKyAgICAgIGlmIChpbnNuX3R5cGUgPT0gVlNFVFZM X1ZUWVBFX0NIQU5HRV9PTkxZDQo+ICsgICAgICAgICAmJiB2c2V0dmxfdnR5 cGVfY2hhbmdlX29ubHlfcCAocmluc24pKQ0KPiAgICAgICAgIHJldHVybiBy aW5zbjsNCj4gICAgICB9DQo+ICAgIHJldHVybiBudWxscHRyOw0KIA0KIA0K PiBkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12c2V0dmwu ZGVmIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12c2V0dmwuZGVmDQo+IGlu ZGV4IDdhNzMxNDlmMWRhLi43Mjg5YzAxZWZjZiAxMDA2NDQNCj4gLS0tIGEv Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12c2V0dmwuZGVmDQo+ICsrKyBiL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YtdnNldHZsLmRlZg0KPiBAQCAtMzE5LDcg KzMxOSw3IEBAIERFRl9TRVdfTE1VTF9GVVNFX1JVTEUgKC8qU0VXKi8gREVN QU5EX1RSVUUsIC8qTE1VTCovIERFTUFORF9GQUxTRSwNCj4gICAgICAgICAg ICAgICAgICAgICAgICAgLypSQVRJTyovIERFTUFORF9UUlVFLCAvKkdFX1NF VyovIERFTUFORF9GQUxTRSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAg LypORVdfREVNQU5EX1NFVyovIHRydWUsDQo+ICAgICAgICAgICAgICAgICAg ICAgICAgIC8qTkVXX0RFTUFORF9MTVVMKi8gZmFsc2UsDQo+IC0gICAgICAg ICAgICAgICAgICAgICAgIC8qTkVXX0RFTUFORF9SQVRJTyovIGZhbHNlLA0K PiArICAgICAgICAgICAgICAgICAgICAgICAvKk5FV19ERU1BTkRfUkFUSU8q LyB0cnVlLA0KIA0KVGhpcyBzZWVtcyByZWxheCB0aGUgY29tcGF0aWJsaXRs eSBjaGVjayB0byBhbGxvdyBvcHRpbWl6ZSBtb3JlIGNhc2UsDQppZiBzbyB0 aGlzIHNob3VsZCBiZSBhIHNwZXJhdGVkIHBhdGNoLg0KIA0KPiAgICAgICAg ICAgICAgICAgICAgICAgICAvKk5FV19ERU1BTkRfR0VfU0VXKi8gdHJ1ZSwg Zmlyc3Rfc2V3LA0KPiAgICAgICAgICAgICAgICAgICAgICAgICB2bG11bF9m b3JfZmlyc3Rfc2V3X3NlY29uZF9yYXRpbywgc2Vjb25kX3JhdGlvKQ0KPiAg REVGX1NFV19MTVVMX0ZVU0VfUlVMRSAoLypTRVcqLyBERU1BTkRfVFJVRSwg LypMTVVMKi8gREVNQU5EX0ZBTFNFLA0KIA0KIA0KPiBAQCAtMzg2LDcgKzMz Nyw4IEBAIHB1YmxpYzoNCj4gICAgYm9vbCBjb21wYXRpYmxlX2F2bF9wIChj b25zdCBhdmxfaW5mbyAmKSBjb25zdDsNCj4gICAgYm9vbCBjb21wYXRpYmxl X3Z0eXBlX3AgKGNvbnN0IHZsX3Z0eXBlX2luZm8gJikgY29uc3Q7DQo+ICAg IGJvb2wgY29tcGF0aWJsZV9wIChjb25zdCB2bF92dHlwZV9pbmZvICYpIGNv bnN0Ow0KPiAtICB2ZWN0b3JfaW5zbl9pbmZvIG1lcmdlIChjb25zdCB2ZWN0 b3JfaW5zbl9pbmZvICYsIGVudW0gbWVyZ2VfdHlwZSkgY29uc3Q7DQo+ICsg IHZlY3Rvcl9pbnNuX2luZm8gbWVyZ2UgKGNvbnN0IHZlY3Rvcl9pbnNuX2lu Zm8gJiwgZW51bSBtZXJnZV90eXBlLA0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkID0gMCkgY29uc3Q7DQogDQppdCBzZWVtcyB3ZWly ZWQgdG8gc2V0IGJiX2luZGV4IGFzIDAgYnkgZGVmYXVsdD8NCiANCj4NCj4g ICAgcnRsX3NzYTo6aW5zbl9pbmZvICpnZXRfaW5zbiAoKSBjb25zdCB7IHJl dHVybiBtX2luc247IH0NCj4gICAgY29uc3QgYm9vbCAqZ2V0X2RlbWFuZHMg KHZvaWQpIGNvbnN0IHsgcmV0dXJuIG1fZGVtYW5kczsgfQ0KIA0KIA0KPiBk aWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi90LXJpc2N2IGIvZ2NjL2Nv bmZpZy9yaXNjdi90LXJpc2N2DQo+IGluZGV4IDEyNTJkNmY4NTFhLi5mM2Nl NjZjY2RkNCAxMDA2NDQNCj4gLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi90LXJp c2N2DQo+ICsrKyBiL2djYy9jb25maWcvcmlzY3YvdC1yaXNjdg0KPiBAQCAt NjIsNyArNjIsOCBAQCByaXNjdi12c2V0dmwubzogJChzcmNkaXIpL2NvbmZp Zy9yaXNjdi9yaXNjdi12c2V0dmwuY2MgXA0KPiAgICAkKENPTkZJR19IKSAk KFNZU1RFTV9IKSBjb3JldHlwZXMuaCAkKFRNX0gpICQoUlRMX0gpICQoUkVH U19IKSBcDQo+ICAgICQoVEFSR0VUX0gpIHRyZWUtcGFzcy5oIGRmLmggcnRs LXNzYS5oIGNmZ2NsZWFudXAuaCBpbnNuLWNvbmZpZy5oIFwNCj4gICAgaW5z bi1hdHRyLmggaW5zbi1vcGluaXQuaCB0bS1jb25zdHJzLmggY2ZncnRsLmgg Y2ZnYW5hbC5oIGxjbS5oIFwNCj4gLSAgcHJlZGljdC5oIHByb2ZpbGUtY291 bnQuaCAkKHNyY2RpcikvY29uZmlnL3Jpc2N2L3Jpc2N2LXZzZXR2bC5oDQo+ ICsgIHByZWRpY3QuaCBwcm9maWxlLWNvdW50LmggJChzcmNkaXIpL2NvbmZp Zy9yaXNjdi9yaXNjdi12c2V0dmwuaCBcDQo+ICsgICQoc3JjZGlyKS9jb25m aWcvcmlzY3YvcmlzY3YtdnNldHZsLmRlZg0KIA0KVGhpcyBzaG91bGQgYmUg YSBzZXBlcmF0ZSBmaXggYW5kIGJhY2twb3J0IHRvIEdDQyAxMyBhcyB3ZWxs LA0KcHJlLWFwcHJvdmUgZm9yIGJvdGggbWFzdGVyIGFuZCBHQ0MtMTMgYnJh bmNoIGZvciB0aGlzIGZpeC4NCiANCj4gICAgICAgICAkKENPTVBJTEVSKSAt YyAkKEFMTF9DT01QSUxFUkZMQUdTKSAkKEFMTF9DUFBGTEFHUykgJChJTkNM VURFUykgXA0KPiAgICAgICAgICAgICAgICAgJChzcmNkaXIpL2NvbmZpZy9y aXNjdi9yaXNjdi12c2V0dmwuY2MNCiANCg== ------=_001_NextPart567346247478_=------