From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgjp3.qq.com (smtpbgjp3.qq.com [54.92.39.34]) by sourceware.org (Postfix) with ESMTPS id 81BB53858D33 for ; Thu, 20 Apr 2023 02:20:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 81BB53858D33 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: bizesmtp84t1681957175teusspzl Received: from LAPTOP-EPITNQBU ( [58.60.1.20]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 20 Apr 2023 10:19:34 +0800 (CST) X-QQ-SSF: 01400000000000F0P000000A0000000 X-QQ-FEAT: aBJFcW+uBGaKG9HzIkH5kxztKX8Mcwa3I0x8xgFh5/5Pwy5jygMfzduRvJgH5 MwrdBz+QD63iWY2P8JS6RMBRNMu7q53WdKF9TFbHAaxOYSRwjQxfiV+1NUEG6xWSkzLPUbp H/Q14Gx2TvH8Sz/iJsAIyapTUoUX9Q7fizfhpKG95e4JJtjT4MNYBkfLMfpVgWlkDnhyLIc /QbxrxsAW/rhtZkfucqwLWhoKpJwHEGGahFnyVlgOpw5/X51h7A0AyIEg53QLBHbF+BsYrg Qw5DCTuh4HonV+wK1AuYN3Xc3ZpTxhhQo2loRvTC7Vv52qXotiRSXNUw9nw2yHUL7BCPtwr NpkhkCKqhmU4i9Jw1fZjkLiVZMHea/c59v6zFhrk9olEOAsWMra4wdpx7I6AR0OeYpoSvf5 G3e/3cU9efV7QrOoeFcyRUirxcpyxsD/J38oytMEwetXVWwkKl0DDA== X-QQ-GoodBg: 2 X-BIZMAIL-ID: 12074937027793347830 Date: Thu, 20 Apr 2023 10:19:34 +0800 From: "juzhe.zhong@rivai.ai" To: collison , gcc-patches Cc: jeffreyalaw , Kito.cheng , kito.cheng , palmer , palmer , "Richard Biener" Subject: Re: [PATCH v4 03/10] RISC-V:autovec: Add auto-vectorization support functions References: <20230417183701.2249183-1-collison@rivosinc.com>, <20230417183701.2249183-4-collison@rivosinc.com> X-Priority: 3 X-GUID: 9456E77A-12A7-4667-A0A5-FB982FF6B8D5 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart521463688222_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvr:qybglogicsvr7 X-Spam-Status: No, score=-8.0 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,MIME_BASE64_TEXT,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,RCVD_IN_SORBS_WEB,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_NextPart521463688222_=---- Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: base64 QWxsIGZ1bmN0aW9ucyBzaG91bGQgYmUgZHJvcHBlZCBleGNlcHQgInJpc2N2 X3ZlY3Rvcl9wcmVmZXJyZWRfc2ltZF9tb2RlIi4NCkkga25vd24geW91IHRh a2UgZnJvbSAicnZ2LW5leHQiLiBIb3dldmVyLCB0aGUgaW1wbGVtZW50YXRp b24gb2YgInByZWZlcl9zaW1kX21vZGUiIGluICJydnYtbmV4dCIgaXMgaW5j b3JyZWN0Lg0KDQpUaGUgbW9zdCBpbXBvcnRhbnQgcGFydCBvZiBpbXBsZW1l bnRpbmcgdGhpcyBmdW5jdGlvbiBpcyB0aGF0IHdlIHNob3VsZCBndXJhbnRl ZSBjb21waWxlciB3aWxsIG5vdCBnZW5lcmF0ZQ0KdW5leHBlY3RlZCBhdXRv LXZlY3Rvcml6YXRpb24gY29kZXMgYWNjb3JkaW5nIHRvICItbWFyY2giLCBm b3IgZXhhbXBsZSwgd2hlbiAtbWFyY2g9cnY2NGdjX3p2ZTMyeCwgd2Ugc2hv dWxkDQpub3QgaGF2ZSBTRVcgPSA2NCBSVlYgaW5zdHJ1Y3Rpb25zLg0KDQpJ IGhhdmUgaW1wbGVtZW50ZWQ6DQogaHR0cHM6Ly9nY2MuZ251Lm9yZy9waXBl cm1haWwvZ2NjLXBhdGNoZXMvMjAyMy1BcHJpbC82MTYyMjMuaHRtbCANCllv dSBjYW4gdGFrZSBhIGxvb2sgYXQgInByZWZlcnJlZF9zaW1kX21vZGUiIGZ1 bmN0aW9uLg0KQW5kIGFsc28sIEkgaGF2ZSBhIGJ1bmNoIG9mIC1tYXJjaCBj b21iaW5hdGlvbnMgb2YgdGVzdGNhc2UsIG1ha2Ugc3VyZSBjb21waWxlciB3 aWxsIG5vdCBhdXRvLXZlY3Rvcml6ZSB0aGUgY29kZXMNCmlmIHdlIGRvbid0 IHdhbnQgaXQ6DQpodHRwczovL2djYy5nbnUub3JnL3BpcGVybWFpbC9nY2Mt cGF0Y2hlcy8yMDIzLUFwcmlsLzYxNjIyNC5odG1sIA0KDQoNCg0KanV6aGUu emhvbmdAcml2YWkuYWkNCiANCkZyb206IE1pY2hhZWwgQ29sbGlzb24NCkRh dGU6IDIwMjMtMDQtMTggMDI6MzYNClRvOiBnY2MtcGF0Y2hlcw0KU3ViamVj dDogW1BBVENIIHY0IDAzLzEwXSBSSVNDLVY6YXV0b3ZlYzogQWRkIGF1dG8t dmVjdG9yaXphdGlvbiBzdXBwb3J0IGZ1bmN0aW9ucw0KMjAyMy0wMy0wMiAg TWljaGFlbCBDb2xsaXNvbiAgPGNvbGxpc29uQHJpdm9zaW5jLmNvbT4NCiAg ICBKdXpoZSBaaG9uZyAgPGp1emhlLnpob25nQHJpdmFpLmFpPg0KIA0KKiBj b25maWcvcmlzY3YvcmlzY3Ytdi5jYyAocmlzY3ZfY2xhc3NpZnlfdmxtdWxf ZmllbGQpOg0KTmV3IGZ1bmN0aW9uLg0KKHJpc2N2X3ZlY3Rvcl9wcmVmZXJy ZWRfc2ltZF9tb2RlKTogRGl0dG8uDQooZ2V0X21hc2tfcG9saWN5X25vX3By ZWQpOiBEaXR0by4NCihnZXRfdGFpbF9wb2xpY3lfbm9fcHJlZCk6IERpdHRv Lg0KKHJpc2N2X3R1cGxlX21vZGVfcCk6IERpdHRvLg0KKHJpc2N2X2NsYXNz aWZ5X25mKTogRGl0dG8uDQoocmlzY3ZfdmxtdWxfcmVnc2l6ZSk6IERpdHRv Lg0KKHJpc2N2X3ZlY3Rvcl9tYXNrX21vZGVfcCk6IERpdHRvLg0KKHJpc2N2 X3ZlY3Rvcl9nZXRfbWFza19tb2RlKTogRGl0dG8uDQotLS0NCmdjYy9jb25m aWcvcmlzY3YvcmlzY3Ytdi5jYyB8IDE3NiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysNCjEgZmlsZSBjaGFuZ2VkLCAxNzYgaW5zZXJ0 aW9ucygrKQ0KIA0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3Yvcmlz Y3Ytdi5jYyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3Ytdi5jYw0KaW5kZXgg MzkyZjVkMDJlMTcuLjlkZjg2NDE5Y2FhIDEwMDY0NA0KLS0tIGEvZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi12LmNjDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2 L3Jpc2N2LXYuY2MNCkBAIC0zOSw5ICszOSwxMSBAQA0KI2luY2x1ZGUgImVt aXQtcnRsLmgiDQojaW5jbHVkZSAidG1fcC5oIg0KI2luY2x1ZGUgInRhcmdl dC5oIg0KKyNpbmNsdWRlICJ0YXJnaG9va3MuaCINCiNpbmNsdWRlICJleHBy LmgiDQojaW5jbHVkZSAib3B0YWJzLmgiDQojaW5jbHVkZSAidG0tY29uc3Ry cy5oIg0KKyNpbmNsdWRlICJyaXNjdi12ZWN0b3ItYnVpbHRpbnMuaCINCiNp bmNsdWRlICJydHgtdmVjdG9yLWJ1aWxkZXIuaCINCnVzaW5nIG5hbWVzcGFj ZSByaXNjdl92ZWN0b3I7DQpAQCAtMTE4LDYgKzEyMCw0MSBAQCBjb25zdF92 ZWNfYWxsX3NhbWVfaW5fcmFuZ2VfcCAocnR4IHgsIEhPU1RfV0lERV9JTlQg bWludmFsLA0KICAmJiBJTl9SQU5HRSAoSU5UVkFMIChlbHQpLCBtaW52YWws IG1heHZhbCkpOw0KfQ0KKy8qIFJldHVybiB0aGUgdmxtdWwgZmllbGQgZm9y IGEgc3BlY2lmaWMgbWFjaGluZSBtb2RlLiAgKi8NCit1bnNpZ25lZCBpbnQN CityaXNjdl9jbGFzc2lmeV92bG11bF9maWVsZCAoZW51bSBtYWNoaW5lX21v ZGUgbW9kZSkNCit7DQorICAvKiBNYWtlIHRoZSBkZWNpc2lvbiBiYXNlZCBv biB0aGUgbW9kZSdzIGVudW0gdmFsdWUgcmF0aGVyIHRoYW4gaXRzDQorICAg ICBwcm9wZXJ0aWVzLCBzbyB0aGF0IHdlIGtlZXAgdGhlIGNvcnJlY3QgY2xh c3NpZmljYXRpb24gcmVnYXJkbGVzcw0KKyAgICAgb2YgLW1yaXNjdi12ZWN0 b3ItYml0cy4gICovDQorICBzd2l0Y2ggKG1vZGUpDQorICAgIHsNCisgICAg Y2FzZSBFX1ZOeDhCSW1vZGU6DQorICAgICAgcmV0dXJuIFZMTVVMX0ZJRUxE XzExMTsNCisNCisgICAgY2FzZSBFX1ZOeDRCSW1vZGU6DQorICAgICAgcmV0 dXJuIFZMTVVMX0ZJRUxEXzExMDsNCisNCisgICAgY2FzZSBFX1ZOeDJCSW1v ZGU6DQorICAgICAgcmV0dXJuIFZMTVVMX0ZJRUxEXzEwMTsNCisNCisgICAg Y2FzZSBFX1ZOeDE2Qkltb2RlOg0KKyAgICAgIHJldHVybiBWTE1VTF9GSUVM RF8wMDA7DQorDQorICAgIGNhc2UgRV9WTngzMkJJbW9kZToNCisgICAgICBy ZXR1cm4gVkxNVUxfRklFTERfMDAxOw0KKw0KKyAgICBjYXNlIEVfVk54NjRC SW1vZGU6DQorICAgICAgcmV0dXJuIFZMTVVMX0ZJRUxEXzAxMDsNCisNCisg ICAgZGVmYXVsdDoNCisgICAgICBicmVhazsNCisgICAgfQ0KKw0KKyAgLyog d2UgZG9uJ3QgY2FyZSBhYm91dCBWTE1VTCBmb3IgTWFzay4gICovDQorICBy ZXR1cm4gVkxNVUxfRklFTERfMDAwOw0KK30NCisNCi8qIEVtaXQgYSB2bG1h eCB2c2V0dmwgaW5zdHJ1Y3Rpb24uICBUaGlzIHNob3VsZCBvbmx5IGJlIHVz ZWQgd2hlbg0KICAgIG9wdGltaXphdGlvbiBpcyBkaXNhYmxlZCBvciBhZnRl ciB2c2V0dmwgaW5zZXJ0aW9uIHBhc3MuICAqLw0Kdm9pZA0KQEAgLTE3Niw2 ICsyMTMsNjQgQEAgY2FsY3VsYXRlX3JhdGlvICh1bnNpZ25lZCBpbnQgc2V3 LCBlbnVtIHZsbXVsX3R5cGUgdmxtdWwpDQogICByZXR1cm4gcmF0aW87DQp9 DQorLyogSW1wbGVtZW50IFRBUkdFVF9WRUNUT1JJWkVfUFJFRkVSUkVEX1NJ TURfTU9ERSBmb3IgUlZWLiAgKi8NCisNCittYWNoaW5lX21vZGUNCityaXNj dl92ZWN0b3JfcHJlZmVycmVkX3NpbWRfbW9kZSAoc2NhbGFyX21vZGUgbW9k ZSwgdW5zaWduZWQgdmYpDQorew0KKyAgaWYgKCFUQVJHRVRfVkVDVE9SKQ0K KyAgICByZXR1cm4gd29yZF9tb2RlOw0KKw0KKyAgc3dpdGNoIChtb2RlKQ0K KyAgICB7DQorICAgIGNhc2UgRV9RSW1vZGU6DQorICAgICAgcmV0dXJuIHZm ID09IDEgICA/IFZOeDhRSW1vZGUNCisgICAgICA6IHZmID09IDIgPyBWTngx NlFJbW9kZQ0KKyAgICAgIDogdmYgPT0gNCA/IFZOeDMyUUltb2RlDQorICAg ICAgICA6IFZOeDY0UUltb2RlOw0KKyAgICAgIGJyZWFrOw0KKyAgICBjYXNl IEVfSEltb2RlOg0KKyAgICAgIHJldHVybiB2ZiA9PSAxICAgPyBWTng0SElt b2RlDQorICAgICAgOiB2ZiA9PSAyID8gVk54OEhJbW9kZQ0KKyAgICAgIDog dmYgPT0gNCA/IFZOeDE2SEltb2RlDQorICAgICAgICA6IFZOeDMySEltb2Rl Ow0KKyAgICAgIGJyZWFrOw0KKyAgICBjYXNlIEVfU0ltb2RlOg0KKyAgICAg IHJldHVybiB2ZiA9PSAxICAgPyBWTngyU0ltb2RlDQorICAgICAgOiB2ZiA9 PSAyID8gVk54NFNJbW9kZQ0KKyAgICAgIDogdmYgPT0gNCA/IFZOeDhTSW1v ZGUNCisgICAgICAgIDogVk54MTZTSW1vZGU7DQorICAgICAgYnJlYWs7DQor ICAgIGNhc2UgRV9ESW1vZGU6DQorICAgICAgaWYgKHJpc2N2X3ZlY3Rvcl9l bGVuX2ZsYWdzICE9IE1BU0tfVkVDVE9SX0VMRU5fMzINCisgICAmJiByaXNj dl92ZWN0b3JfZWxlbl9mbGFncyAhPSBNQVNLX1ZFQ1RPUl9FTEVOX0ZQXzMy KQ0KKyByZXR1cm4gdmYgPT0gMSA/IFZOeDFESW1vZGUNCisgICAgICAgIDog dmYgPT0gMiA/IFZOeDJESW1vZGUNCisgICAgICAgIDogdmYgPT0gNCA/IFZO eDRESW1vZGUNCisgOiBWTng4REltb2RlOw0KKyAgICAgIGJyZWFrOw0KKyAg ICBjYXNlIEVfU0Ztb2RlOg0KKyAgICAgIGlmIChUQVJHRVRfSEFSRF9GTE9B VCAmJiByaXNjdl92ZWN0b3JfZWxlbl9mbGFncyAhPSBNQVNLX1ZFQ1RPUl9F TEVOXzMyDQorICAgJiYgcmlzY3ZfdmVjdG9yX2VsZW5fZmxhZ3MgIT0gTUFT S19WRUNUT1JfRUxFTl82NCkNCisgcmV0dXJuIHZmID09IDEgPyBWTngyU0Zt b2RlDQorICAgICAgICA6IHZmID09IDIgPyBWTng0U0Ztb2RlDQorICAgICAg ICA6IHZmID09IDQgPyBWTng4U0Ztb2RlDQorIDogVk54MTZTRm1vZGU7DQor ICAgICAgYnJlYWs7DQorICAgIGNhc2UgRV9ERm1vZGU6DQorICAgICAgaWYg KFRBUkdFVF9ET1VCTEVfRkxPQVQgJiYgVEFSR0VUX1ZFQ1RPUl9FTEVOX0ZQ XzY0KQ0KKyByZXR1cm4gdmYgPT0gMSA/IFZOeDFERm1vZGUNCisgICAgICAg IDogdmYgPT0gMiA/IFZOeDJERm1vZGUNCisgICAgICAgIDogdmYgPT0gNCA/ IFZOeDRERm1vZGUNCisgOiBWTng4REZtb2RlOw0KKyAgICAgIGJyZWFrOw0K KyAgICBkZWZhdWx0Og0KKyAgICAgIGJyZWFrOw0KKyAgICB9DQorDQorICBy ZXR1cm4gd29yZF9tb2RlOw0KK30NCisNCi8qIEVtaXQgYW4gUlZWIHVubWFz ayAmJiB2bCBtb3YgZnJvbSBTUkMgdG8gREVTVC4gICovDQpzdGF0aWMgdm9p ZA0KZW1pdF9wcmVkX29wICh1bnNpZ25lZCBpY29kZSwgcnR4IG1hc2ssIHJ0 eCBkZXN0LCBydHggc3JjLCBydHggbGVuLA0KQEAgLTQyMSw2ICs1MTYsODcg QEAgZ2V0X2F2bF90eXBlX3J0eCAoZW51bSBhdmxfdHlwZSB0eXBlKQ0KICAg cmV0dXJuIGdlbl9pbnRfbW9kZSAodHlwZSwgUG1vZGUpOw0KfQ0KK3J0eA0K K2dldF9tYXNrX3BvbGljeV9ub19wcmVkICgpDQorew0KKyAgcmV0dXJuIGdl dF9tYXNrX3BvbGljeV9mb3JfcHJlZCAoUFJFRF9UWVBFX25vbmUpOw0KK30N CisNCitydHgNCitnZXRfdGFpbF9wb2xpY3lfbm9fcHJlZCAoKQ0KK3sNCisg IHJldHVybiBnZXRfbWFza19wb2xpY3lfZm9yX3ByZWQgKFBSRURfVFlQRV9u b25lKTsNCit9DQorDQorLyogUmV0dXJuIHRydWUgaWYgaXQgaXMgYSBSVlYg dHVwbGUgbW9kZS4gICovDQorYm9vbA0KK3Jpc2N2X3R1cGxlX21vZGVfcCAo bWFjaGluZV9tb2RlIG1vZGUgQVRUUklCVVRFX1VOVVNFRCkNCit7DQorICBy ZXR1cm4gZmFsc2U7DQorfQ0KKw0KKy8qIFJldHVybiBuZiBmb3IgYSBtYWNo aW5lIG1vZGUuICAqLw0KK2ludA0KK3Jpc2N2X2NsYXNzaWZ5X25mIChtYWNo aW5lX21vZGUgbW9kZSkNCit7DQorICBzd2l0Y2ggKG1vZGUpDQorICAgIHsN CisNCisgICAgZGVmYXVsdDoNCisgICAgICBicmVhazsNCisgICAgfQ0KKw0K KyAgcmV0dXJuIDE7DQorfQ0KKw0KKy8qIFJldHVybiB2bG11bCByZWdpc3Rl ciBzaXplIGZvciBhIG1hY2hpbmUgbW9kZS4gICovDQoraW50DQorcmlzY3Zf dmxtdWxfcmVnc2l6ZSAobWFjaGluZV9tb2RlIG1vZGUpDQorew0KKyAgaWYg KEdFVF9NT0RFX0NMQVNTIChtb2RlKSA9PSBNT0RFX1ZFQ1RPUl9CT09MKQ0K KyAgICByZXR1cm4gMTsNCisgIHN3aXRjaCAocmlzY3ZfY2xhc3NpZnlfdmxt dWxfZmllbGQgKG1vZGUpKQ0KKyAgICB7DQorICAgIGNhc2UgVkxNVUxfRklF TERfMDAxOg0KKyAgICAgIHJldHVybiAyOw0KKyAgICBjYXNlIFZMTVVMX0ZJ RUxEXzAxMDoNCisgICAgICByZXR1cm4gNDsNCisgICAgY2FzZSBWTE1VTF9G SUVMRF8wMTE6DQorICAgICAgcmV0dXJuIDg7DQorICAgIGNhc2UgVkxNVUxf RklFTERfMTAwOg0KKyAgICAgIGdjY191bnJlYWNoYWJsZSAoKTsNCisgICAg ZGVmYXVsdDoNCisgICAgICByZXR1cm4gMTsNCisgICAgfQ0KK30NCisNCisv KiBSZXR1cm4gdHJ1ZSBpZiBpdCBpcyBhIFJWViBtYXNrIG1vZGUuICAqLw0K K2Jvb2wNCityaXNjdl92ZWN0b3JfbWFza19tb2RlX3AgKG1hY2hpbmVfbW9k ZSBtb2RlKQ0KK3sNCisgIHJldHVybiAobW9kZSA9PSBWTngxQkltb2RlIHx8 IG1vZGUgPT0gVk54MkJJbW9kZSB8fCBtb2RlID09IFZOeDRCSW1vZGUNCisg ICB8fCBtb2RlID09IFZOeDhCSW1vZGUgfHwgbW9kZSA9PSBWTngxNkJJbW9k ZSB8fCBtb2RlID09IFZOeDMyQkltb2RlDQorICAgfHwgbW9kZSA9PSBWTng2 NEJJbW9kZSk7DQorfQ0KKw0KKy8qIEltcGxlbWVudCBUQVJHRVRfVkVDVE9S SVpFX0dFVF9NQVNLX01PREUgZm9yIFJWVi4gICovDQorDQorb3B0X21hY2hp bmVfbW9kZQ0KK3Jpc2N2X3ZlY3Rvcl9nZXRfbWFza19tb2RlIChtYWNoaW5l X21vZGUgbW9kZSkNCit7DQorICBtYWNoaW5lX21vZGUgbWFza19tb2RlOw0K KyAgaW50IG5mID0gMTsNCisgIGlmIChyaXNjdl90dXBsZV9tb2RlX3AgKG1v ZGUpKQ0KKyAgICBuZiA9IHJpc2N2X2NsYXNzaWZ5X25mIChtb2RlKTsNCisN CisgIEZPUl9FQUNIX01PREVfSU5fQ0xBU1MgKG1hc2tfbW9kZSwgTU9ERV9W RUNUT1JfQk9PTCkNCisgIGlmIChHRVRfTU9ERV9JTk5FUiAobWFza19tb2Rl KSA9PSBCSW1vZGUNCisgICAgICAmJiBrbm93bl9lcSAoR0VUX01PREVfTlVO SVRTIChtYXNrX21vZGUpICogbmYsIEdFVF9NT0RFX05VTklUUyAobW9kZSkp DQorICAgICAgJiYgcmlzY3ZfdmVjdG9yX21hc2tfbW9kZV9wIChtYXNrX21v ZGUpKQ0KKyAgICByZXR1cm4gbWFza19tb2RlOw0KKyAgcmV0dXJuIGRlZmF1 bHRfZ2V0X21hc2tfbW9kZSAobW9kZSk7DQorfQ0KKw0KLyogUmV0dXJuIHRo ZSBSVlYgdmVjdG9yIG1vZGUgdGhhdCBoYXMgTlVOSVRTIGVsZW1lbnRzIG9m IG1vZGUgSU5ORVJfTU9ERS4NCiAgICBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBv bmx5IHVzZWQgYnkgYnVpbHRpbnMsIGJ1dCBhbHNvIHdpbGwgYmUgdXNlZCBi eQ0KICAgIGF1dG8tdmVjdG9yaXphdGlvbiBpbiB0aGUgZnV0dXJlLiAgKi8N Ci0tIA0KMi4zNC4xDQo= ------=_001_NextPart521463688222_=------