From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgbr2.qq.com (smtpbgbr2.qq.com [54.207.22.56]) by sourceware.org (Postfix) with ESMTPS id B78EE385660C for ; Fri, 9 Jun 2023 14:46:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B78EE385660C 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: bizesmtp85t1686321990tzn3vwds Received: from TABLET-POE6JQHH ( [115.44.118.116]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 09 Jun 2023 22:46:28 +0800 (CST) X-QQ-SSF: 01400000000000F0S000000A0000000 X-QQ-FEAT: W+onFc5Tw4PZC7tnkoI1zLL95W/CCOogLB9A99qN4+RmID4Ziu5o+B34M0RL3 m//n4Al6c2Fuv3OlCZkbZcYCNHE0v414t/nUPKG4jmysOSXBQt0UcO0IreKLfH6Dng4aiLu dAynhUUMeGXQiLwLnPgphcR/jh5WxIn52CCKMaHKEzntdJSAAkuN/hBo6RIz2h+/H3g/OVl j2Qimsgq+Dd8SLafmQ+iVE85zkoFUZvCUvEc7wnc275lAkDd6GMP2D1XY9IEM0xaQFIDP1q 0XH0HMoh5W6A83u/uDrEbLukA+nA6IU0gds8rGfincNZUmNL5agSeO5Ws6kLIQgSIuPA7WO i4I3MANqRNLiCp8zlTaetfuM5Mg/5/wr6Tx8+FRNGQeDbGRCvZsKCxeeYTQ5aikt9svcU3h 5ZmqWPZfFtUcfB7M3JmkV53x+g4ZvfHy8XqVAWUI5sc= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 15994414306277269808 Date: Fri, 9 Jun 2023 22:46:30 +0800 From: =?UTF-8?B?6ZKf5bGF5ZOy?= To: "Jeff Law" , gcc-patches Cc: kito.cheng , kito.cheng , palmer , palmer , rdapp.gcc , pan2.li Subject: Re: Re: [PATCH V2] RISC-V: Rework Phase 5 && Phase 6 of VSETVL PASS References: <20230609104105.9100-1-juzhe.zhong@rivai.ai>, X-Priority: 3 X-GUID: 76DA1267-D4EE-42D6-9D9E-1D01BAD47DEB X-Has-Attach: no X-Mailer: Foxmail 7.2.23.121[cn] Mime-Version: 1.0 Message-ID: <9850E07AE9088D28+2023060922462934884421@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart428377824160_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-5.2 required=5.0 tests=BAYES_00,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,TXREP,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_NextPart428377824160_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 VGhhbmtzIEplZmYuDQpBY3R1YWxseSwgUlRMX1NTQSBmcmFtZXdvcmsgaXMg YSB2ZXJ5IHVzZWZ1bGwgdG9vbCB2ZXJ5IHNpbWlsYXIgdGhlIGZyYW13b3Jr IG9mIFNEbm9kZSBvZiBMTFZNLg0Kd2hpY2ggaXMgdGhlIGZyYW1ld29yayBJ IGFtIGZhbWlsYXIgd2l0aC4gSSBqdXN0IHJlYWxpemUgdGhhdCB0aGUgMm5k IGJ1aWxkIG9mIFJUTF9TU0EgY2F1c2VzIGJ1Z3MNCnRoYXQncyB3aHkgSSBj aGFuZ2UgaXQgaW50byBkYXRhLWZsb3cuDQoNCkFkZHJlc3MgYWxsIGNvbW1l bnRzIHdpbGwgc2VuZCBWMyBzb29uLg0KDQpUaGFua3MuDQoNCg0KanV6aGUu emhvbmdAcml2YWkuYWkNCiANCkZyb206IEplZmYgTGF3DQpEYXRlOiAyMDIz LTA2LTA5IDIyOjMzDQpUbzoganV6aGUuemhvbmc7IGdjYy1wYXRjaGVzDQpD Qzoga2l0by5jaGVuZzsga2l0by5jaGVuZzsgcGFsbWVyOyBwYWxtZXI7IHJk YXBwLmdjYzsgcGFuMi5saQ0KU3ViamVjdDogUmU6IFtQQVRDSCBWMl0gUklT Qy1WOiBSZXdvcmsgUGhhc2UgNSAmJiBQaGFzZSA2IG9mIFZTRVRWTCBQQVNT DQogDQogDQpPbiA2LzkvMjMgMDQ6NDEsIGp1emhlLnpob25nQHJpdmFpLmFp IHdyb3RlOg0KPiBGcm9tOiBKdXpoZS1aaG9uZyA8anV6aGUuemhvbmdAcml2 YWkuYWk+DQo+IA0KPiBUaGlzIHBhdGNoIGlzIHRvIHJld29yayBQaGFzZSA1 ICYmIFBoYXNlIDYgb2YgVlNFVFZMIFBBU1Mgc2luY2UgUGhhc2UgNSAmJiBQ aGFzZSA2DQo+IGFyZSBxdWl0ZSBtZXNzeSBhbmQgY2F1c2Ugc29tZSBidWdz IGRpc2NvdmVyZWQgYnkgbXkgZG93bnN0cmVhbSBhdXRvLXZlY3Rvcml6YXRp b24NCj4gdGVzdC1nZW5lcmF0b3IuDQo+IA0KPiBCZWZvcmUgdGhpcyBwYXRj aC4NCj4gDQo+IFBoYXNlIDUgaXMgY2xlYW51cF9pbnNucyBpcyB0aGUgZnVu Y3Rpb24gcmVtb3ZlIEFWTCBvcGVyYW5kIGRlcGVuZGVuY3kgZnJvbSBlYWNo IFJWViBpbnN0cnVjdGlvbi4NCj4gRS5nLiB2YWRkLnZ2ICh1c2UgYTUpLCBh ZnRlciBQaGFzZSA1LCA9PT09PiB2YWRkLnZ2ICh1c2UgY29uc3RfaW50IDAp LiBTaW5jZSAiYTUiIGlzIHVzZWQgaW4gInZzZXR2bCIgaW5zdHJ1Y3Rpb25z IGFuZA0KPiBhZnRlciB0aGUgY29ycmVjdCAidnNldHZsIiBpbnN0cnVjdGlv bnMgYXJlIGluc2VydGVkLCBlYWNoIFJWViBpbnN0cnVjdGlvbiBkb2Vzbid0 IG5lZWQgQVZMIG9wZXJhbmQgImE1IiBhbnltb3JlLiBUaGVuLA0KPiB3ZSBy ZW1vdmUgdGhpcyBvcGVyYW5kIGRlcGVuZGVuY3kgaGVscHMgZm9yIHRoZSBm b2xsb3dpbmcgc2NoZWR1bGluZyBQQVNTLg0KUmlnaHQuICBSZW1vdmFsIG9m IHRoZSB1bnVzZWQgb3BlcmFuZCBnaXZlcyB0aGUgc2NoZWR1bGVyIG1vcmUg ZnJlZWRvbS4gDQpJdCdzIG5vdCBjbGVhciB5ZXQgaG93IG11Y2ggZ2FpbiB0 aGVyZSBpcyBmb3Igc2NoZWR1bGluZyB2ZWN0b3Igb24gUlYsIA0KYnV0IHRo ZXJlJ3Mgbm8gZ29vZCByZWFzb24gdG8gaGFuZGN1ZmYgaXQgd2l0aCB1bm5l Y2Vzc2FyeSBkZXBlbmRlbmNpZXMuDQogDQogDQo+IA0KPiBQaGFzZSA2IGlz IHByb3BhZ2F0ZV9hdmwgZG8gdGhlIGZvbGxvd2luZyAyIHRoaW5nczoNCj4g MS4gTG9jYWwgJiYgR2xvYmFsIHVzZXIgdnNldHZsIGluc3RydWN0aW9ucyBv cHRpbWl6YXRpb24uDQo+ICAgICBFLmcuDQo+ICAgICAgICB2c2V0dmxpIGEy LCBhMiwgZTgsIG1mOCAgID09PT09PT4gQ2hhbmdlIGl0IGludG8gdnNldHZs aSBhMiwgYTIsIGUzMiwgbWYyDQo+ICAgICAgICB2c2V0dmxpIHplcm8sYTIs IGUzMiwgbWYyICA9PT09PT0+IGVsaW1pbmF0ZQ0KQWx3YXlzIGdvb2QgdG8g ZWxpbWluYXRlIG1vcmUgaW5zdHJ1Y3Rpb25zLiAgIFNvIHdoaWxlIHZzZXR2 bCBpcyANCmRlc2lnbmVkIHRvIGJlIG1pbmltYWwgb3ZlcmhlYWQgYW5kIGl0 J3MgZnVsbHkgZXhwZWN0ZWQgdGhhdCB3ZSdsbCBzZWUgYSANCmxvdCBvZiB0 aGVtLCB0aGVyZSdzIG5vIGdvb2QgcmVhc29uIHRvIGhhdmUgdW5ubmVjZXNz YXJ5IG9uZXMgaW4gdGhlIHN0cmVhbS4NCiANCiANCj4gMi4gT3B0aW1pemUg dXNlciB2c2V0dmwgZnJvbSAidnNldHZsIGEyLGEyIiBpbnRvICJ2c2V0dmwg emVybyxhMiIgaWYgImEyIiBpcyBub3QgdXNlZCBieSBhbnkgaW5zdHJ1Y3Rp b25zLg0KPiBTaW5jZSBmcm9tIFBoYXNlIDEgfiBQaGFzZSA0IHdoaWNoIGlu c2VydHMgInZzZXR2bGkiIGluc3RydWN0aW9ucyBiYXNlIG9uIExDTSB3aGlj aCBjaGFuZ2UgdGhlIENGRywgSSByZS1uZXcgYSBuZXcNCj4gUlRMX1NTQSBm cmFtZXdvcmsgKHdoaWNoIGlzIG1vcmUgZXhwZW5zaXZlIHRoYW4ganVzdCB1 c2luZyBERikgZm9yIFBoYXNlIDYgYW5kIG9wdG1pemUgdXNlciB2c2V0dmxp IGJhc2Ugb24gdGhlIG5ldyBSVExfU1NBLg0KVGhpcyBvbmUgaXNuJ3QgYXMg Y2xlYXIgY3V0LCBidXQgSSBzdGlsbCB0aGluayBpdCdzIHRoZSByaWdodCB0 aGluZyB0byANCmRvLiAgVGhlIGZpcnN0IGZvcm0gZXhwbGljaXRseSBraWxs cyB0aGUgdmFsdWUgaW4gYTIgd2hpbGUgdGhlIHNlY29uZCANCmRvZXMgbm90 LiAgVGhvdWdoIGlmIHRoZSB2YWx1ZSBpcyBkZWFkIGl0J3MgZ29pbmcgdG8g YmUgZGlzY292ZXJhYmxlIGJ5IA0KREYgYW5kIHdlIHNob3VsZCBhbHNvIGVu ZCB1cCB3aXRoIFJFR19ERUFEIG5vdGUgYXMgd2VsbC4gICBJdCBkb2VzIGhh dmUgDQp0aGUgYWR2YW50YWdlIHRoYXQgaXQgZG9lcyBub3Qgb3BlbiBhIG5l dyBsaXZlIHJhbmdlLg0KIA0KPiANCj4gVGhlcmUgYXJlIDIgaXNzdWVzIGlu IFBoYXNlIDUgJiYgUGhhc2UgNjoNCj4gMS4gbG9jYWxfZWxpbWluYXRlX3Zz ZXR2bF9pbnNuIHdhcyBpbnRyb2R1Y2VkIGJ5IEBraXRvIHdoaWNoIGNhbiBk byBiZXR0ZXIgbG9jYWwgdXNlciB2c2V0dmwgb3B0aW1pemF0aW9ucyBiZXR0 ZXIgdGhhbg0KPiAgICAgUGhhc2UgNiBkbywgc3VjaCBhcHByb2FjaCBkb2Vz bid0IG5lZWQgdG8gcmUtbmV3IHRoZSBSVExfU1NBIGZyYW1ld29yay4gU28g dGhlIGxvY2FsIHVzZXIgdnNldHZsaSBpbnN0cnVjdGlvbnMgb3B0aW1pemFp dG9uDQo+ICAgICBpbiBQaGFzZSA2IGlzIHJlZHVuZGFudCBhbmQgc2hvdWxk IGJlIHJlbW92ZWQuDQo+IDIuIEEgYnVnIGRpc2NvdmVyZWQgYnkgbXkgZG93 bnN0cmVhbSBhdXRvLXZlY3Rvcml6YXRpb24gdGVzdC1nZW5lcmF0b3IgKEkg Y2FuJ3QgcHV0IHRoZSB0ZXN0IGluIHRoaXMgcGF0Y2ggc2luY2Ugd2UgYXJl IG1pc3NpbmcgYXV0b3ZlYw0KPiAgICAgcGF0dGVybnMgZm9yIGl0IHNvIHdl IGNhbid0IHVzZSB0aGUgdXBzdHJlYW0gR0NDIGRpcmVjdGx5IHJlcHJvZHVj ZSBzdWNoIGlzc3VlIGJ1dCBJIHdpbGwgcmVtZW1iZXIgcHV0IGl0IGJhY2sg YWZ0ZXIgSSBzdXBwb3J0IHRoZQ0KPiAgICAgbmVjZXNzYXJ5IGF1dG92ZWMg cGF0dGVybnMpLiBTdWNoIGJ1ZyBpcyBjYXVzaW5nIGJ5IHVzaW5nIFJUTF9T U0EgcmUtbmV3IGZyYW1ld29yay4gVGhlIGlzc3VlIGRlc2NyaXB0aW9uIGlz IHRoaXM6DQpOb3RlIHRoYXQgeW91IGNvdWxkIHBvdGVudGlhbGx5IGdvIGFo ZWFkIGFuZCBzdWJtaXQgdGhhdCB0ZXN0IGFuZCBqdXN0IA0KeGZhaWwgaXQu ICBOb3QgYSByZXF1aXJlbWVudCwgYnV0IGEgcG9zc2liaWxpdHkgdGhhdCBJ IHNvbWV0aW1lcyB1c2UgaWYgDQpJIGtub3cgSSd2ZSBnb3QgYSBmaXggY29t aW5nIHNob3J0bHkuDQogDQogDQo+ICAgICANCj4gQmVmb3JlIFBoYXNlIDY6 DQo+ICAgICAuLi4NCj4gICAgIGluc24xOiB2c2V0bHZpIGEzLCAxNyA8PT09 PT09PT09PSBnZW5lcmF0ZWQgYnkgU0VMRUNUX1ZMIGF1dG8tdmVjIHBhdHRl cm4uDQo+ICAgICBzbGxpIGE0LGEzLDMNCj4gICAgIC4uLg0KPiAgICAgaW5z bjI6IHZzZXR2bGkgemVybywgYTMsIC4uLg0KPiAgICAgbG9hZCAodXNlIGNv bnN0X2ludCAwLCBiZWZvcmUgUGhhc2UgNSwgaXQncyB1c2luZyBhMywgYnV0 IHRoZSB1c2Ugb2YgImEzIiBpcyByZW1vdmVkIGluIFBoYXNlIDUpDQo+ICAg ICAuLi4NCj4gDQo+IEluIFBoYXNlIDYsIHdlIGl0ZXJhdGUgdG8gaW5zbjIs IHRoZW4gZ2V0IHRoZSBkZWYgb2YgImEzIiB3aGljaCBpcyB0aGUgaW5zbjEu DQo+IGluc24yIGlzIHRoZSB2c2V0dmxpIGluc3RydWN0aW9uIGluc2VydGVk IGluIFBoYXNlIDQgd2hpY2ggaXMgbm90IGluY2x1ZGVkIGluIHRoZSBSTFRf U1NBIGZyYW1ld29yaw0KPiBldmVuIHRob3VnaCB3ZSByZW5ldyBpdCAoSSBk aWRuJ3QgdGFrZSBhIGxvb2sgYXQgaXQgYW5kIEkgZG9uJ3QgdGhpbmsgd2Ug bmVlZCB0byBub3cpLg0KPiBCYXNlIG9uIHRoaXMgc2l0dWF0aW9uLCB0aGUg ZGVmX2luZm8gb2YgaW5zbjIgaGFzIHRoZSBpbmZvcm1hdGlvbiAic2V0LT5z aW5nbGVfbm9uZGVidWdfaW5zbl91c2UgKCkiDQo+IHdoaWNoIHJldHVybiB0 cnVlLiBPYnZpb3VzbHksIHRoaXMgaW5mb3JtYXRpb24gaXMgbm90IGNvcnJl Y3QsIHNpbmNlIGluc24xIGhhcyBhbGVhc3QgMiB1c2VzOg0KPiAxKS4gc2xs aSBhNCxhMywzIDIpLmluc24yOiB2c2V0dmxpIHplcm8sIGEzLCAuLi4gVGhl biwgdGhlIHRlc3QgZ2VuZXJhdGVkIGJ5IG15IGRvd25zdHJlYW0gdGVzdC1n ZW5lcmF0b3INCj4gZXhlY3V0aW9uIHRlc3QgZmFpbGVkLg0KVW5kZXJzdG9v ZC4NCiANCj4gDQo+IENvbmNsdXNpb24gb2YgUlRMX1NTQSBmcmFtZXdvcms6 DQo+IEJlZm9yZSB0aGlzIHBhdGNoLCB3ZSBpbml0aWFsaXplIFJUTF9TU0Eg MiB0aW1lcy4gT25lIGlzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIFZTRVRW TCBQQVNTIHdoaWNoIGlzIGFic29sdXRlbHkgY29ycmVjdCwgdGhlIG90aGVy DQo+IGlzIHJlLW5ldyBhZnRlciBQaGFzZSA0IChMQ00pIGhhcyBpbmNvcnJl Y3QgaW5mb3JtYXRpb24gdGhhdCBjYXVzZXMgYnVncy4NCj4gDQo+IEJlc2lk ZXMsIHdlIGRvbid0IGxpa2UgdG8gaW5pdGlhbGl6ZSBSVExfU1NBIHNlY29u ZCB0aW1lIGl0IHNlZW1zIHRvIGJlIGEgd2FzdGUgc2luY2Ugd2UganVzdCBu ZWVkIHRvIGRvIGEgbGl0dGxlIG9wdGltaXphdGlvbi4NCj4gDQo+IEJhc2Ug b24gYWxsIGNpcmN1bXN0YW5jZXMgSSBkZXNjcmliZWQgYWJvdmUsIEkgcmV3 b3JrIGFuZCByZW9yZ2FuaXplIFBoYXNlIDUgJiYgUGhhc2UgNiBhcyBmb2xs b3dzOg0KPiAxLiBQaGFzZSA1IGlzIGNhbGxlZCBzc2FfcG9zdF9vcHRpbWl6 YXRpb24gd2hpY2ggaXMgZG9pbmcgdGhlIG9wdGltaXphdGlvbiBiYXNlIG9u IHRoZSBSVExfU1NBIGluZm9ybWF0aW9uIChUaGUgUlRMX1NTQSBpcyBpbml0 aWFsaXplZA0KPiAgICAgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgVlNFVFZM IFBBU1MsIG5vIG5lZWQgdG8gcmUtbmV3IGl0IGFnYWluKS4gVGhpcyBwaGFz ZSBpbmNsdWRlcyAzIG9wdGltaXphaXRvbnM6DQo+ICAgICAxKS4gbG9jYWxf ZWxpbWluYXRlX3ZzZXR2bF9pbnNuIHdlIGFscmVhZHkgaGF2ZSAobm8gY2hh bmdlKS4NCj4gICAgIDIpLiBnbG9iYWxfZWxpbWluYXRlX3ZzZXR2bF9pbnNu IC0tLT4gbmV3IG9wdGltaXphaXRvbiBzcGxpdHRlZCBmcm9tIG9yaWduYWwg UGhhc2UgNiBidXQgd2l0aCBtb3JlIHBvd2VyZnVsIGFuZCByZWxpYWJsZSBp bXBsZW1lbnRhdGlvbi4NCj4gICAgICAgIEUuZy4NCj4gICAgICAgIHZvaWQg ZihpbnQ4X3QgKmJhc2UsIGludDhfdCAqb3V0LCBzaXplX3QgdmwsIHNpemVf dCBtLCBzaXplX3Qgaykgew0KPiAgICAgICAgICBzaXplX3QgYXZsOw0KPiAg ICAgICAgICBpZiAobSA+IDEwMCkNCj4gICAgICAgICAgICBhdmwgPSBfX3Jp c2N2X3ZzZXR2bF9lMTZtZjQodmwgPDwgNCk7DQo+ICAgICAgICAgIGVsc2UN Cj4gICAgICAgICAgICBhdmwgPSBfX3Jpc2N2X3ZzZXR2bF9lMzJtZjIodmwg Pj4gOCk7DQo+ICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbTsg aSsrKSB7DQo+ICAgICAgICAgICAgdmludDhtZjhfdCB2MCA9IF9fcmlzY3Zf dmxlOF92X2k4bWY4KGJhc2UgKyBpLCBhdmwpOw0KPiAgICAgICAgICAgIHYw ID0gX19yaXNjdl92YWRkX3Z2X2k4bWY4ICh2MCwgdjAsIGF2bCk7DQo+ICAg ICAgICAgICAgX19yaXNjdl92c2U4X3ZfaThtZjgob3V0ICsgaSwgdjAsIGF2 bCk7DQo+ICAgICAgICAgIH0NCj4gICAgICAgIH0NCj4gDQo+ICAgICAgICBU aGlzIGV4YW1wbGUgZmFpbGVkIHRvIGdsb2JhbCB1c2VyIHZzZXR2bCBvcHRp bWl6ZSBiZWZvcmUgdGhpcyBwYXRjaDoNCj4gICAgICAgIGY6DQo+ICAgICAg ICAgICAgICAgIGxpICAgICAgYTUsMTAwDQo+ICAgICAgICAgICAgICAgIGJs ZXUgICAgYTMsYTUsLkwyDQo+ICAgICAgICAgICAgICAgIHNsbGkgICAgYTIs YTIsNA0KPiAgICAgICAgICAgICAgICB2c2V0dmxpIGE0LGEyLGUxNixtZjQs dGEsbXUNCj4gICAgICAgIC5MMzoNCj4gICAgICAgICAgICAgICAgbGkgICAg ICBhNSwwDQo+ICAgICAgICAgICAgICAgIHZzZXR2bGkgemVybyxhNCxlOCxt ZjgsdGEsbWENCj4gICAgICAgIC5MNToNCj4gICAgICAgICAgICAgICAgYWRk ICAgICBhNixhMCxhNQ0KPiAgICAgICAgICAgICAgICBhZGQgICAgIGEyLGEx LGE1DQo+ICAgICAgICAgICAgICAgIHZsZTgudiAgdjEsMChhNikNCj4gICAg ICAgICAgICAgICAgYWRkaSAgICBhNSxhNSwxDQo+ICAgICAgICAgICAgICAg IHZhZGQudnYgdjEsdjEsdjENCj4gICAgICAgICAgICAgICAgdnNlOC52ICB2 MSwwKGEyKQ0KPiAgICAgICAgICAgICAgICBiZ3R1ICAgIGEzLGE1LC5MNQ0K PiAgICAgICAgLkwxMDoNCj4gICAgICAgICAgICAgICAgcmV0DQo+ICAgICAg ICAuTDI6DQo+ICAgICAgICAgICAgICAgIGJlcSAgICAgYTMsemVybywuTDEw DQo+ICAgICAgICAgICAgICAgIHNybGkgICAgYTIsYTIsOA0KPiAgICAgICAg ICAgICAgICB2c2V0dmxpIGE0LGEyLGUzMixtZjIsdGEsbXUNCj4gICAgICAg ICAgICAgICAgaiAgICAgICAuTDMNCj4gICAgICAgIFdpdGggdGhpcyBwYXRj aDoNCj4gICAgICAgIGY6DQo+ICAgICAgICAgICAgICAgIGxpICAgICAgYTUs MTAwDQo+ICAgICAgICAgICAgICAgIGJsZXUgICAgYTMsYTUsLkwyDQo+ICAg ICAgICAgICAgICAgIHNsbGkgICAgYTIsYTIsNA0KPiAgICAgICAgICAgICAg ICB2c2V0dmxpIHplcm8sYTIsZTgsbWY4LHRhLG1hDQo+ICAgICAgICAuTDM6 DQo+ICAgICAgICAgICAgICAgIGxpICAgICAgYTUsMA0KPiAgICAgICAgLkw1 Og0KPiAgICAgICAgICAgICAgICBhZGQgICAgIGE2LGEwLGE1DQo+ICAgICAg ICAgICAgICAgIGFkZCAgICAgYTIsYTEsYTUNCj4gICAgICAgICAgICAgICAg dmxlOC52ICB2MSwwKGE2KQ0KPiAgICAgICAgICAgICAgICBhZGRpICAgIGE1 LGE1LDENCj4gICAgICAgICAgICAgICAgdmFkZC52diB2MSx2MSx2MQ0KPiAg ICAgICAgICAgICAgICB2c2U4LnYgIHYxLDAoYTIpDQo+ICAgICAgICAgICAg ICAgIGJndHUgICAgYTMsYTUsLkw1DQo+ICAgICAgICAuTDEwOg0KPiAgICAg ICAgICAgICAgICByZXQNCj4gICAgICAgIC5MMjoNCj4gICAgICAgICAgICAg ICAgYmVxICAgICBhMyx6ZXJvLC5MMTANCj4gICAgICAgICAgICAgICAgc3Js aSAgICBhMixhMiw4DQo+ICAgICAgICAgICAgICAgIHZzZXR2bGkgemVybyxh MixlOCxtZjgsdGEsbWENCj4gICAgICAgICAgICAgICAgaiAgICAgICAuTDMN Cj4gDQo+ICAgICAzKS4gUmVtb3ZlIEFWTCBvcGVyYW5kIGRlcGVuZGVuY3kg b2YgZWFjaCBSVlYgaW5zdHJ1Y3Rpb25zLg0KPiANCj4gMi4gUGhhc2UgNiBp cyBjYWxsZWQgZGZfcG9zdF9vcHRpbWl6YXRpb246IE9wdGltaXplICJ2c2V0 dmwgYTMsYTIuLi4uIiBpbnRvIE9wdGltaXplICJ2c2V0dmwgemVybyxhMi4u Li4iIGJhc2Ugb24NCj4gICAgIGRhdGFmbG93IGFuYWx5c2lzIG9mIG5ldyBD RkcgKG5ldyBDRkcgaXMgY3JlYXRlZCBieSBMQ00pLiBUaGUgcmVhc29uIHdl IG5lZWQgdG8gZG8gdXNlIG5ldyBDRkcgYW5kIGFmdGVyIFBoYXNlIDU6DQo+ ICAgICAuLi4NCj4gICAgIHZzZXR2bCBhMywgYTIuLi4NCj4gICAgIHZhZGQu dnYgKHVzZSBhMykNCj4gICAgIElmIHdlIGRvbid0IGhhdmUgUGhhc2UgNSB3 aGljaCByZW1vdmVzIHRoZSAiYTMiIHVzZSBpbiB2YWRkLnZ2LCB3ZSB3aWxs IGZhaWwgdG8gb3B0aW1pemUgdnNldHZsIGEzLGEyIGludG8gdnNldHZsIHpl cm8sYTIuDQo+ICAgICANCj4gICAgIFRoaXMgcGF0Y2ggcGFzc2VkIGFsbCB0 ZXN0cyBpbiBydnYuZXhwIHdpdGggT05MWSBwZWZvcm1hbmNlICYmIGNvZGVn ZW4gaW1wcm92ZWQgKG5vIHBlcmZvcm1hbmNlIGRlY2xpbmUgYW5kIG5vIGJ1 Z3MgaW5jbHVkaW5nIG15DQo+ICAgICBkb3duc3RyZWFtIHRlc3RzKS4NCj4g DQo+IGdjYy9DaGFuZ2VMb2c6DQo+IA0KPiAgICAgICAgICAqIGNvbmZpZy9y aXNjdi9yaXNjdi12c2V0dmwuY2MgKGF2YWlsYWJsZV9vY2N1cnJlbmNlX3Ap OiBFaGFuY2UgdXNlciB2c2V0dmwgb3B0aW1pemF0aW9uLg0KPiAgICAgICAg ICAodmVjdG9yX2luc25faW5mbzo6cGFyc2VfaW5zbik6IEFkZCBydHhfaW5z biBwYXJzZS4NCj4gICAgICAgICAgKHBhc3NfdnNldHZsOjpsb2NhbF9lbGlt aW5hdGVfdnNldHZsX2luc24pOiBFaGFuY2UgdXNlciB2c2V0dmwgb3B0aW1p emF0aW9uLg0KPiAgICAgICAgICAoZ2V0X2ZpcnN0X3ZzZXR2bCk6IE5ldyBm dW5jdGlvbi4NCj4gICAgICAgICAgKHBhc3NfdnNldHZsOjpnbG9iYWxfZWxp bWluYXRlX3ZzZXR2bF9pbnNuKTogRGl0dG8uDQo+ICAgICAgICAgIChwYXNz X3ZzZXR2bDo6Y2xlYW51cF9pbnNucyk6IFJlbW92ZSBpdC4NCj4gICAgICAg ICAgKHBhc3NfdnNldHZsOjpzc2FfcG9zdF9vcHRpbWl6YXRpb24pOiBOZXcg ZnVuY3Rpb24uDQo+ICAgICAgICAgIChoYXNfbm9fdXNlcyk6IERpdHRvLg0K PiAgICAgICAgICAocGFzc192c2V0dmw6OnByb3BhZ2F0ZV9hdmwpOiBSZW1v dmUgaXQuDQo+ICAgICAgICAgIChwYXNzX3ZzZXR2bDo6ZGZfcG9zdF9vcHRp bWl6YXRpb24pOiBOZXcgZnVuY3Rpb24uDQo+ICAgICAgICAgIChwYXNzX3Zz ZXR2bDo6bGF6eV92c2V0dmwpOiBSZXdvcmsgUGhhc2UgNSAmJiBQaGFzZSA2 Lg0KPiAgICAgICAgICAqIGNvbmZpZy9yaXNjdi9yaXNjdi12c2V0dmwuaDog QWRhcHQgZGVjbGFyYXRpb24uDQo+IA0KPiBnY2MvdGVzdHN1aXRlL0NoYW5n ZUxvZzoNCj4gDQo+ICAgICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYv dnNldHZsL3ZzZXR2bC0xNi5jOiBBZGFwdCB0ZXN0Lg0KPiAgICAgICAgICAq IGdjYy50YXJnZXQvcmlzY3YvcnZ2L3ZzZXR2bC92c2V0dmwtMi5jOiBEaXR0 by4NCj4gICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di92c2V0dmwv dnNldHZsLTMuYzogRGl0dG8uDQo+ICAgICAgICAgICogZ2NjLnRhcmdldC9y aXNjdi9ydnYvdnNldHZsL3ZzZXR2bC0yMS5jOiBOZXcgdGVzdC4NCj4gICAg ICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di92c2V0dmwvdnNldHZsLTIy LmM6IE5ldyB0ZXN0Lg0KPiAgICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3Yv cnZ2L3ZzZXR2bC92c2V0dmwtMjMuYzogTmV3IHRlc3QuDQpzL0VoYW5jZS9F bmhhbmNlLw0KIA0KSSB3b3VsZCBwcm9iYWJseSBoYXZlIHN1Z2dlc3RlZCB0 aGlzIGdldCBicm9rZW4gZG93biBpbnRvIHNtYWxsZXIgDQpjaHVua3MuICBJ IHRoaW5rIHlvdSd2ZSBnb3QgbXVsdGlwbGUgdGhpbmdzIGdvaW5nIG9uIGlu IHRoaXMgcGF0Y2guICBJIA0KcmVhbGl6ZSB0aGVyZSBtYXkgYmUgc29tZSBp bnRlcmRlcGVuZGVuY2llcywgYnV0IHRoZXkgY2FuIG9mdGVuIGJlIGRlYWx0 IA0Kd2l0aC4NCiANCiANCiANCj4gQEAgLTQyNzcsMjcgKzQyODUsMTg3IEBA IHBhc3NfdnNldHZsOjpsb2NhbF9lbGltaW5hdGVfdnNldHZsX2luc24gKGNv bnN0IGJiX2luZm8gKmJiKSBjb25zdA0KPiAgICAgICB9DQo+ICAgfQ0KPiAg IA0KPiAtLyogQmVmb3JlIFZTRVRWTCBQQVNTLCBSVlYgaW5zdHJ1Y3Rpb25z IHBhdHRlcm4gaXMgZGVwZW5kaW5nIG9uIEFWTCBvcGVyYW5kDQo+IC0gICBp bXBsaWNpdGx5LiBTaW5jZSB3ZSB3aWxsIGVtaXQgVlNFVFZMIGluc3RydWN0 aW9uIGFuZCBtYWtlIFJWViBpbnN0cnVjdGlvbnMNCj4gLSAgIGRlcGVuZGlu ZyBvbiBWTC9WVFlQRSBnbG9iYWwgc3RhdHVzIHJlZ2lzdGVycywgd2UgcmVt b3ZlIHRoZSBzdWNoIEFWTCBvcGVyYW5kDQo+IC0gICBpbiB0aGUgUlZWIGlu c3RydWN0aW9ucyBwYXR0ZXJuIGhlcmUgaW4gb3JkZXIgdG8gcmVtb3ZlIEFW TCBkZXBlbmRlbmNpZXMgd2hlbg0KPiAtICAgQVZMIG9wZXJhbmQgaXMgYSBy ZWdpc3RlciBvcGVyYW5kLg0KPiAtDQo+IC0gICBCZWZvcmUgdGhlIFZTRVRW TCBQQVNTOg0KPiAtICAgICBsaSBhNSwzMg0KPiAtICAgICAuLi4NCj4gLSAg ICAgdmFkZC52diAoLi4uLCBhNSkNCj4gLSAgIEFmdGVyIHRoZSBWU0VUVkwg UEFTUzoNCj4gLSAgICAgbGkgYTUsMzINCj4gLSAgICAgdnNldHZsaSB6ZXJv LCBhNSwgLi4uDQo+IC0gICAgIC4uLg0KPiAtICAgICB2YWRkLnZ2ICguLi4s IGNvbnN0X2ludCAwKS4gICovDQo+ICsvKiBHZXQgdGhlIGZpcnN0IHZzZXR2 bCBpbnN0cnVjdGlvbnMgb2YgdGhlIGJsb2NrLiAgKi8NCkknZCBhZGp1c3Qg dGhlIGNvbW1lbnQgYSBiaXQsIHBlcmhhcHMgc29tZXRoaW5nIGxpa2UgdGhp czoNCiANCi8qIFJldHVybiB0aGUgZmlyc3QgdnNldHZsIGluc3RydWN0aW9u IGluIENGR19CQiBvciBOVUxMIGlmDQogICAgbm9uZSBleGlzdHMgb3IgaWYg YSB1c2VyIFJWViBpbnN0cnVjdGlvbiBpcyBlbm91bnRlcmVkDQogICAgcHJp b3IgdG8gYW55IHZzZXR2bC4gICovDQogDQo+ICtzdGF0aWMgcnR4X2luc24g Kg0KPiArZ2V0X2ZpcnN0X3ZzZXR2bCAoYmFzaWNfYmxvY2sgY2ZnX2JiKQ0K SSdkIHByb2JhYmx5IGFkanVzdCB0aGUgbmFtZSBhcyB3ZWxsLiAgVGhlcmUn cyBhbiBpbXBvcnRhbnQgZXhjZXB0aW9uIHRvIA0KcmV0dXJuaW5nIHRoZSBm aXJzdCB2c2V0dmwgLS0geW91IHN0b3AgdGhlIHNlYXJjaCBpZiB5b3UgZW5j b3VudGVyIGEgDQp1c2VyIFJWViBpbnN0cnVjdGlvbi4NCiANCiANCiANCj4g K2Jvb2wNCj4gK3Bhc3NfdnNldHZsOjpnbG9iYWxfZWxpbWluYXRlX3ZzZXR2 bF9pbnNuIChjb25zdCBiYl9pbmZvICpiYikgY29uc3QNCj4gK3sNClsgLi4u IF0NCj4gKw0KPiArICAvKiBObyBuZWVkIHRvIG9wdGltaXplIGlmIGJsb2Nr IGRvZXNuJ3QgaGF2ZSB2c2V0dmwgaW5zdHJ1Y3Rpb25zLiAgKi8NCj4gKyAg aWYgKCFkZW0udmFsaWRfb3JfZGlydHlfcCAoKSB8fCAhdnNldHZsX3JpbnNu IHx8ICFkZW0uZ2V0X2F2bF9zb3VyY2UgKCkNCj4gKyAgICAgIHx8ICFkZW0u aGFzX2F2bF9yZWcgKCkpDQo+ICsgICAgcmV0dXJuIGZhbHNlOw0KSXQgaXMg Y29uc2lkZXJlZCBiZXN0IHByYWN0aWNlIHRvIHRlc3QgdGhlIGNoZWFwZXN0 IGNvbmRpdGlvbmFsIGZpcnN0IA0KKHdpdGhpbiB0aGUgY29uc3RyYWludHMg b2YgY29ycmVjdG5lc3MpLiAgU28gSSBwcm9iYWJseSB3b3VsZCBoYXZlIA0K Y2hlY2tlZCAhdnNldHZsX3JpbnNuIGZpcnN0LiAgIFJlc3VsdGluZyBpbg0K IA0KICAgaWYgKCF2c2V0dmxfcmluc24gfHwgIWRlbS52YWxpZF9vcl9kaXJ0 eV9wICgpDQogICAgICAgfHwgIWRlbS5nZXRfYXZsX3NvdXJjZSAoKSB8fCAh ZGVtLmhhc19hdmxfcmVnICgpKQ0KIA0KT3INCiANCiAgIGlmICghdnNldHZs X3JpbnNuDQogICAgICAgfHwgIWRlbS52YWxpZF9vcl9kaXJ0eV9wICgpDQog ICAgICAgfHwgIWRlbS5nZXRfYXZsX3NvdXJjZSAoKQ0KICAgICAgIHx8ICFk ZW0uaGFzX2F2bF9yZWcgKCkpDQogDQogDQpUaGUgZm9ybWF0dGluZyBpbiB0 aGlzIGNhc2UgaXMgbW9yZSBhIHBlcnNvbmFsIHByZWZlcmVuY2UuICBTbyBk b24ndCANCmNvbnNpZGVyIGNoYW5naW5nIHRoZSBmb3JtYXR0aW5nIHRvIGJl IGEgcmVxdWlyZW1lbnQgdG8gbW92ZSBmb3J3YXJkLg0KIA0KIA0KPiArDQo+ ICsgIC8qIElmIGFsbCBwcmVkcyBoYXMgVkwvVlRZUEUgc3RhdHVzIHNldHRl ZCBieSB1c2VyIHZzZXR2bHMsIGFuZCB0aGVzZQ0KPiArICAgICB1c2VyIHZz ZXR2bHMgYXJlIGFsbCBza2lwX2F2bF9jb21wYXRpYmxlX3Agd2l0aCB0aGUg dnNldHZsIGluIHRoaXMNCj4gKyAgICAgYmxvY2ssIHdlIGNhbiBlbGltaW5h dGUgdGhpcyB2c2V0dmwgaW5zdHJ1Y3Rpb24uICAqLw0KPiArICBzYml0bWFw IGF2aW4gPSBtX3ZlY3Rvcl9tYW5hZ2VyLT52ZWN0b3JfYXZpbltjZmdfYmIt PmluZGV4XTsNCj4gKw0KPiArICB1bnNpZ25lZCBpbnQgYmJfaW5kZXg7DQo+ ICsgIHNiaXRtYXBfaXRlcmF0b3Igc2JpOw0KPiArICBydHggYXZsID0gZ2V0 X2F2bCAoZGVtLmdldF9pbnNuICgpLT5ydGwgKCkpOw0KPiArICBoYXNoX3Nl dDxzZXRfaW5mbyAqPiBzZXRzDQo+ICsgICAgPSBnZXRfYWxsX3NldHMgKGRl bS5nZXRfYXZsX3NvdXJjZSAoKSwgdHJ1ZSwgZmFsc2UsIGZhbHNlKTsNCj4g KyAgLyogQ29uZGl0aW9uIDE6IEFsbCBWTC9WVFlQRSBhdmFpbGFibGUgaW4g YXJlIGFsbCBjb21wYXRpYmxlLiAgKi8NCj4gKyAgRVhFQ1VURV9JRl9TRVRf SU5fQklUTUFQIChhdmluLCAwLCBiYl9pbmRleCwgc2JpKQ0KPiArICAgIHsN Cj4gKyAgICAgIGNvbnN0IGF1dG8gJmV4cHIgPSBtX3ZlY3Rvcl9tYW5hZ2Vy LT52ZWN0b3JfZXhwcnNbYmJfaW5kZXhdOw0KPiArICAgICAgY29uc3QgYXV0 byAmaW5zbiA9IGV4cHItPmdldF9pbnNuICgpOw0KPiArICAgICAgZGVmX2lu Zm8gKmRlZiA9IGZpbmRfYWNjZXNzIChpbnNuLT5kZWZzICgpLCBSRUdOTyAo YXZsKSk7DQo+ICsgICAgICBzZXRfaW5mbyAqc2V0ID0gc2FmZV9keW5fY2Fz dDxzZXRfaW5mbyAqPiAoZGVmKTsNCj4gKyAgICAgIGlmICghdnNldHZsX2lu c25fcCAoaW5zbi0+cnRsICgpKSB8fCBpbnNuLT5iYiAoKSA9PSBiYg0KPiAr ICAgfHwgIXNldHMuY29udGFpbnMgKHNldCkpDQo+ICsgcmV0dXJuIGZhbHNl Ow0KPiArICAgIH0NCj4gKw0KPiArICAvKiBDb25kaXRpb24gMjogQ2hlY2sg aXQgaGFzIHByZWRzLiAgKi8NCj4gKyAgaWYgKEVER0VfQ09VTlQgKGNmZ19i Yi0+cHJlZHMpID09IDApDQo+ICsgICAgcmV0dXJuIGZhbHNlOw0KTm90IGEg YmlnIGRlYWwsIGJ1dCB1bmRlciB3aGF0IGNpcmN1bXN0YW5jZXMgYXJlIHdl IHJ1bm5pbmcgaW50byBibG9ja3MgDQp3aXRoIG5vIHByZWRlY2Vzc29ycz8g IFRoZSBvbmx5IGJsb2NrIHRoYXQgc2hvdWxkIGhhdmUgdGhhdCBwcm9wZXJ0 eSBpcyANCnRoZSBlbnRyeSBibG9jay4gICBTaW1pbGFybHkgaWYgeW91IGhh dmUgbm8gcHJlZHMsIHRoZW4gSVNUTSB0aGF0IGF2aW4gDQp3aWxsIGFsd2F5 cyBiZSBlbXB0eS4gIFNvIGlmIHdlIGNhbiB2YWxpZGx5IGhhdmUgYSBibG9j ayB3aXRoIG5vIHByZWRzLCANCnRoZW4gc2hvdWxkbid0IHRoaXMgY2hlY2sg Z28gYmVmb3JlIHdhbGtpbmcgQVZJTiBqdXN0IGZyb20gYSANCmNvbXBpbGUt dGltZSBzdGFuZHBvaW50Pw0KIA0KIA0KIA0KIA0KPiBAQCAtNDM0MiwxMzUg KzQ1MTAsODEgQEAgcGFzc192c2V0dmw6OmNsZWFudXBfaW5zbnMgKHZvaWQp IGNvbnN0DQo+ICAgICAgIH0NCj4gICB9DQo+ICAgDQo+ICsvKiBSZXR1cm4g dHJ1ZSBpZiB0aGUgU0VUIHJlc3VsdCBpcyBub3QgdXNlZCBieSBhbnkgaW5z dHJ1Y3Rpb25zLiAgKi8NCj4gK3N0YXRpYyBib29sDQo+ICtoYXNfbm9fdXNl cyAoYmFzaWNfYmxvY2sgY2ZnX2JiLCBydHhfaW5zbiAqcmluc24sIGludCBy ZWdubykNCj4gK3sNCj4gKyAgLyogSGFuZGxlIHRoZSBmb2xsb3dpbmcgY2Fz ZSB0aGF0IGNhbiBub3QgYmUgZGV0ZWN0ZWQgaW4gUlRMX1NTQS4gICovDQo+ ICsgIC8qIEUuZy4NCj4gKyAgIGxpIGE1LCAxMDANCj4gKyAgIHZzZXR2bGkg YTYsIGE1Li4uDQo+ICsgICAuLi4NCj4gKyAgIHZhZGQgKHVzZSBhNikNCj4g Kw0KPiArIFRoZSB1c2Ugb2YgImE2IiBpcyByZW1vdmVkIGZyb20gInZhZGQi IGJ1dCB0aGUgaW5mb3JtYXRpb24gaXMNCj4gKyBub3QgdXBkYXRlZCBpbiBS VExfU1NBIGZyYW1ld29yay4gV2UgZG9uJ3Qgd2FudCB0byByZS1uZXcNCj4g KyBhIG5ldyBSVExfU1NBIHdoaWNoIGlzIGV4cGVuc2l2ZSwgaW5zdGVhZCwg d2UgdXNlIGRhdGEtZmxvdw0KPiArIGFuYWx5c2lzIHRvIGNoZWNrIHdoZXRo ZXIgImE2IiBoYXMgbm8gdXNlcy4gICovDQpJJ20gYSBiaXQgc3VycHJpc2Vk IHRoZXJlIHdhc24ndCBhIHJlYXNvbmFibGUgd2F5IHRvIHVwZGF0ZSB0aGUg UlRMIFNTQSANCmZyYW1ld29yayBmb3IgdGhpcyBjYXNlLiAgSWYgd2Ugd2Vy ZSB0byByZW1vdmUgdGhlIGVudGlyZSB2YWRkLCB0aGVuIHdlIA0Kd291bGQg aGF2ZSB0byB1cGRhdGUgdGhlIHVzZXMgb2YgYTYuICBJZiB3ZSBoYXZlIHRo YXQgY2FwYWJpbGl0eSwgdGhlbiBJIA0Kd291bGQgZXhwZWN0IHdlIGNvdWxk IHJlZmFjdG9yIHRoZSB1cGRhdGluZyBjb2RlIHNvIHRoYXQgd2UgaGFkIGFu IEFQSSANCnRvIHJlbW92ZSBhbiBvcGVyYW5kIGZyb20gYW4gaW5zdHJ1Y3Rp b24uDQogDQpJbiBmYWN0LCBpZiB3ZSBoYXZlIGEgY29uc3RhbnQgcHJvcGFn YXRvciBpbiB0aGUgUlRMIFNTQSBmcmFtZXdvcmssIA0Kd291bGRuJ3QgaXQg aGF2ZSB0byBoYXZlIHRoaXMgY2FwYWJpbGl0eT8NCiANCkknbSBub3Qgb2Jq ZWN0aW5nIHRvIHdoYXQgeW91J3ZlIGRvbmUgYXQgdGhpcyB0aW1lLCBidXQg aXQgc2VlbXMgbGlrZSBhIA0KYmV0dGVyIHdheSBtaWdodCBiZSBwb3NzaWJs ZS4gIFNvIHRoZSBhc2sgaXMgdG8gcmV2aWV3IHRoZSBSVEwgU1NBIGNvZGUg DQp0byBzZWUgaWYgdGhlcmUncyByZWFzb25hYmxlIGJ1aWxkaW5nIGJsb2Nr cyB0byBkbyB3aGF0IHlvdSB3YW50Lg0KIA0KIA0KT3ZlcmFsbCBpdCBsb29r cyBwcmV0dHkgZ29vZC4gIFRoZSBiaWdnZXN0IGNvbmNlcm4gaXMgdGhlIGNo YW5nZSB0byB1c2UgDQpERiB1c2UgaW5mb3JtYXRpb24gcmF0aGVyIHRoYW4g dGhlIFJUTCBTU0EgZnJhbWV3b3JrLiAgVGhhdCBtYXkgDQp1bHRpbWF0ZWx5 IGJlIGEgcmVhc29uYWJsZSB0aGluZyB0byBkbywgYnV0IEknZCBsaWtlIHlv dSB0byBjb25maXJtIHRoYXQgDQp3ZSBkb24ndCBoYXZlIHRoZSByaWdodCBi dWlsZGluZyBibG9ja3MgaW4gdGhlIFJUTCBTU0EgZnJhbWV3b3JrIHRvIGRv IA0KdGhlIGluY3JlbWVudGFsIHVwZGF0ZSB5b3Ugc2VlbSB0byBuZWVkLg0K IA0KVGhhbmtzLA0KamVmZg0KIA0KIA0K ------=_001_NextPart428377824160_=------