From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgeu2.qq.com (smtpbgeu2.qq.com [18.194.254.142]) by sourceware.org (Postfix) with ESMTPS id 62F573858C27 for ; Fri, 15 Sep 2023 02:03:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 62F573858C27 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: bizesmtp68t1694743377tdz2hfoy Received: from LAPTOP-EPITNQBU ( [61.144.172.134]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 15 Sep 2023 10:02:55 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: W+onFc5Tw4OXKeEH0uOuOox5qLuMkf7pG0WJJWG7SY24HzeJ0p7TjOEQlX3fz AYfj9Zp/xmK+ZAkohQVWfx3i1LLxpzmwVKypZ+De3ZlnO+H0y0k/+TWWxV7c3ZJgV8eOUwn /BrTUxh0aGLAohT1d0oM32Wj8yWU8P5iXh7By4zzEZbJ3sf57vmhm7zEW0tvigZwK4WxWVc nXWMoHP0o77akYEahlpkmHcOR0Md6lO3J4RunZVRFtr5rh1LH/DvvBEyqRSd6mLs3Mk1XWq 3p8bwObo7uiiiJxqyciA51kkXbNtXiSvF5tlYPw0A8WYbfdsyNt/ZE2NAuniCOsN6nNuF0I h+gaiKm7bsi0hL8hmJZBGKAblMkKYu/TK5XASy+8ztr47SZd1czQV+32JDmowtvpZXy93cd oH/jrfhDNm4GhIuVjb8yIQ== X-QQ-GoodBg: 2 X-BIZMAIL-ID: 3515011974068091117 Date: Fri, 15 Sep 2023 10:02:56 +0800 From: "juzhe.zhong@rivai.ai" To: pan2.li , gcc-patches Cc: pan2.li , yanzhang.wang , kito.cheng Subject: Re: [PATCH v3] RISC-V: Implement RESOLVE_OVERLOADED_BUILTIN for RVV intrinsic References: <20230911075727.2536198-1-pan2.li@intel.com>, <20230912084613.1552014-1-pan2.li@intel.com> X-Priority: 3 X-GUID: 5DD8E264-991A-4BA1-BD42-1281DDB8E6C6 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart381147260784_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-8.5 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_H3,RCVD_IN_MSPIKE_WL,SPF_PASS,TXREP,T_SPF_HELO_TEMPERROR 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_NextPart381147260784_=---- Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: base64 U29ycnkgZm9yIGNvbW1lbnQgYWdhaW4uDQoNCkkgYW0gbm90IGhhcHB5IHdp dGggY3VycmVudCBnZXRfbm9uX292ZXJsb2FlZGVkX2luc3RhbmNlIGZ1bmN0 aW9uLg0KDQpJIHRoaW5rIHRoZSBzZWFyY2hpbmcgYXBwcm9hY2ggaXMgdmVy eSBpbi1lZmZlY3RpdmU6DQoNCitmdW5jdGlvbl9pbnN0YW5jZSAqDQorZnVu Y3Rpb25fYmFzZTo6Z2V0X25vbl9vdmVybG9hZGVkX2luc3RhbmNlICh1bnNp Z25lZCBpbnQgY29kZSwNCisgICAgIHZlYzx0cmVlLCB2YV9nYz4gJmFyZ2xp c3QpIGNvbnN0DQorew0KKyAgdW5zaWduZWQgaW50IGNvZGVfbGltaXQgPSB2 ZWNfc2FmZV9sZW5ndGggKHJlZ2lzdGVyZWRfZnVuY3Rpb25zKTsNCisNCisg IGZvciAodW5zaWduZWQgZnVuX2NvZGUgPSBjb2RlOyBmdW5fY29kZSA8IGNv ZGVfbGltaXQ7IGZ1bl9jb2RlKyspDQorICAgIHsNCisgICAgICByZWdpc3Rl cmVkX2Z1bmN0aW9uICpyZnVuID0gKCpyZWdpc3RlcmVkX2Z1bmN0aW9ucylb ZnVuX2NvZGVdOw0KKyAgICAgIGZ1bmN0aW9uX2luc3RhbmNlIGluc3RhbmNl ID0gcmZ1bi0+aW5zdGFuY2U7DQorDQorICAgICAgaWYgKHJmdW4tPm92ZXJs b2FkZWRfcCkNCisgY29udGludWU7DQorDQorICAgICAgdW5zaWduZWQgazsN CisgICAgICBjb25zdCBydnZfYXJnX3R5cGVfaW5mbyAqYXJncyA9IGluc3Rh bmNlLm9wX2luZm8tPmFyZ3M7DQorDQorICAgICAgZm9yIChrID0gMDsgYXJn c1trXS5iYXNlX3R5cGUgIT0gTlVNX0JBU0VfVFlQRVM7IGsrKykNCisgew0K KyAgIGlmIChrID49IGFyZ2xpc3QubGVuZ3RoICgpKQ0KKyAgICAgYnJlYWs7 DQorDQorICAgaWYgKFRZUEVfTU9ERSAoaW5zdGFuY2UuZ2V0X2FyZ190eXBl IChrKSkNCisgICAgICE9IFRZUEVfTU9ERSAoVFJFRV9UWVBFIChhcmdsaXN0 W2tdKSkpDQorICAgICBicmVhazsNCisgfQ0KKw0KKyBpZiAoYXJnc1trXS5i YXNlX3R5cGUgPT0gTlVNX0JBU0VfVFlQRVMpDQorICAgcmV0dXJuICZyZnVu LT5pbnN0YW5jZTsNCisgICAgfQ0KKw0KKyAgcmV0dXJuIE5VTEw7DQorfQ0K DQoNCkluc3RlYWQsIEkgdGhpbmsgd2Ugc2hvdWxkIGJ1aWxkIHVwIGEgdGFi bGUgd2hpY2ggbWFwIG5vbi1vdmVybG9hZGVkIGZ1bmN0aW9uIGFjY29yZGlu ZyB0byB0aGUgYXJndW1lbnRzIHNvIHRoYXQgd2UgY291bGQgZ2V0IHRoZSAi aW5zdGFuY2UiIGVmZmVjdGl2ZWx5Lg0KDQpFLmcuIEZvciB2aW50OG1mOF90 IHR1bXUgdmFkZCBpbnRyaW5zaWMgdGhlIGluc3RhbmNlIGlzIGxpa2UgdGhp czoNCmZ1bmN0aW9uX2luc3RhbmNlICgidmFkZCIsIGJhc2VzOjp2YWRkLCBz aGFwZXM6OmFsdSwNCiAgICAgICAgICBpdV9vcHNbVkVDVE9SX1RZUEVfdnVp bnQ4bWY4X3RdLCBQUkVEX1RZUEVfdHVtdSwgJml1X3Z2dl9vcHMpOw0KDQpT aW5jZSB0aGUgZ2V0X25vbm92ZXJsb2FlZF9pbnN0YW5jZSBpcyBhbHJlYWR5 IHRoZSBmdW5jdGlvbiBvZiB0aGUgY2xhc3MgQkFTRS4gDQpTbywgVGhlIGZp cnN0IDMgYXJndW1lbnRzICJ2YWRkIiwgYmFzZXM6OnZhZGQsIHNoYXBlczo6 YWx1DQpzaG91bGQgYWxyZWFkeSBrbm93biBzaW5jZSBpdCBpcyBhIGtub3du IGZ1bmN0aW9uX2Jhc2UuDQoNClRoZSBsYXN0IDMgYXJndW1lbnRzIG1heSBu ZWVkIHNvbWUgZWxlZ2FudCBhbmFseXNpcyBvciBtYXAgdGFibGUgdG8gcXVp Y2tseSBncmVwLg0KDQpTbywgSSB0aGluayB3ZSBzaG91bGQgY29uc2lkZXIg dGhpcyBmcmFtZXdvcmsgc2VyaW91c2x5Lg0KDQoNCg0KanV6aGUuemhvbmdA cml2YWkuYWkNCiANCkZyb206IHBhbjIubGkNCkRhdGU6IDIwMjMtMDktMTIg MTY6NDYNClRvOiBnY2MtcGF0Y2hlcw0KQ0M6IGp1emhlLnpob25nOyBwYW4y LmxpOyB5YW56aGFuZy53YW5nOyBraXRvLmNoZW5nDQpTdWJqZWN0OiBbUEFU Q0ggdjNdIFJJU0MtVjogSW1wbGVtZW50IFJFU09MVkVfT1ZFUkxPQURFRF9C VUlMVElOIGZvciBSVlYgaW50cmluc2ljDQpGcm9tOiBQYW4gTGkgPHBhbjIu bGlAaW50ZWwuY29tPg0KIA0KVXBkYXRlIGluIHYzOg0KIA0KKiBSZXdyaXRl IGNvbW1lbnQgZm9yIG92ZXJsb2FkZWQgZnVuY3Rpb24gYWRkLg0KKiBNb3Zl IGdldF9ub25fb3ZlcmxvYWRlZF9pbnN0YW5jZSB0byBmdW5jdGlvbl9iYXNl Lg0KIA0KVXBkYXRlIGluIHYyOg0KIA0KKiBBZGQgZ2V0X25vbl9vdmVybG9h ZGVkX2luc3RhbmNlIGZvciBmdW5jdGlvbiBpbnN0YW5jZS4NCiogRml4IG92 ZXJsb2FkIGNoZWNrIGZvciBwb2xpY3kgZnVuY3Rpb24uDQoqIEVucmljaCB0 aGUgdGVzdCBjYXNlcyBjaGVjay4NCiANCk9yaWdpbmFsIGxvZzoNCiANClRo aXMgcGF0Y2ggd291bGQgbGlrZSBhZGQgdGhlIGZyYW1ld29yayB0byBzdXBw b3J0IHRoZSBSVlYgb3ZlcmxvYWRlZA0KaW50cmluc2ljIEFQSSBpbiByaXNj di14eHgteHh4LWdjYywgbGlrZSByaXNjdi14eHgteHh4LWcrKyBkaWQuDQog DQpIb3dldmVyLCBpdCBhbG1vc3QgbGV2ZXJhZ2UgdGhlIGhvb2sgVEFSR0VU X1JFU09MVkVfT1ZFUkxPQURFRF9CVUlMVElODQp3aXRoIGJlbG93IHN0ZXBz Lg0KIA0KKiBSZWdpc3RlciBvdmVybG9hZGVkIGZ1bmN0aW9ucy4NCiogQWRk IGZ1bmN0aW9uX3Jlc29sdmVyIGZvciBvdmVybG9hZGVkIGZ1bmN0aW9uIHJl c29sdmluZy4NCiogQWRkIHJlc29sdmUgQVBJIGZvciBmdW5jdGlvbiBzaGFw ZSB3aXRoIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uDQoqIEltcGxlbWVudCBI T09LIGZvciBuYXZpZ2F0aW5nIHRoZSBvdmVybG9hZGVkIEFQSSB0byBub24t b3ZlcmxvYWRlZCBBUEkuDQogDQpXZSB2YWxpZGF0ZWQgdGhpcyBmcmFtZXdv cmsgYnkgdGhlIHZtdl92IGludHJpbnNpYyBBUEkocyksIGFuZCB3ZSB3aWxs DQphZGQgbW9yZSBpbnRyaW5zIEFQSSBzdXBwb3J0IGluIHRoZSB1bmRlcmx5 aW5nIHBhdGNoZXMuDQogDQpnY2MvQ2hhbmdlTG9nOg0KIA0KKiBjb25maWcv cmlzY3YvcmlzY3YtYy5jYw0KKHJpc2N2X3Jlc29sdmVfb3ZlcmxvYWRlZF9i dWlsdGluKTogTmV3IGZ1bmN0aW9uIGZvciB0aGUgaG9vay4NCihyaXNjdl9y ZWdpc3Rlcl9wcmFnbWFzKTogUmVnaXN0ZXIgdGhlIGhvb2sNCiogY29uZmln L3Jpc2N2L3Jpc2N2LXByb3Rvcy5oIChyZXNvbHZlX292ZXJsb2FkZWRfYnVp bHRpbik6IE5ldyBkZWNsLg0KKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLXNoYXBlcy5jYyAoYnVpbGRfb25lKToNClJlZ2lzdGVyIG92 ZXJsb2FkZWQgZnVuY3Rpb24uDQooc3RydWN0IG92ZXJsb2FkZWRfYmFzZSk6 IE5ldyBzdHJ1Y3QgZm9yIG92ZXJsb2FkZWQgc2hhcGUuDQooc3RydWN0IG5v bl9vdmVybG9hZGVkX2Jhc2UpOiBOZXcgc3RydWN0IGZvciBub24gb3Zlcmxv YWRlZCBzaGFwZS4NCihzdHJ1Y3QgbW92ZV9kZWYpOiBJbmhlcml0IG92ZXJs b2FkZWQgc2hhcGUuDQoqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMuY2MNCihmdW5jdGlvbl9iYXNlOjpnZXRfbm9uX292ZXJsb2FkZWRf aW5zdGFuY2UpOiBOZXcgQVBJIGltcGwuDQooZnVuY3Rpb25fYnVpbGRlcjo6 YWRkX2Z1bmN0aW9uKTogQWRkIG92ZXJsb2FkZWQgYXJnLg0KKGZ1bmN0aW9u X3Jlc29sdmVyOjpmdW5jdGlvbl9yZXNvbHZlcik6IE5ldyBjb25zdHJ1Y3Rv ci4NCihmdW5jdGlvbl9idWlsZGVyOjphZGRfb3ZlcmxvYWRlZF9mdW5jdGlv bik6IE5ldyBBUEkgaW1wbC4NCihmdW5jdGlvbl9yZXNvbHZlcjo6cmVzb2x2 ZSk6IERpdHRvLg0KKGZ1bmN0aW9uX3Jlc29sdmVyOjpsb29rdXApOiBEaXR0 by4NCihmdW5jdGlvbl9yZXNvbHZlcjo6Z2V0X3N1Yl9jb2RlKTogRGl0dG8u DQoocmVzb2x2ZV9vdmVybG9hZGVkX2J1aWx0aW4pOiBOZXcgZnVuY3Rpb24g aW1wbC4NCiogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5o Og0KKGNsYXNzIGZ1bmN0aW9uX3Jlc29sdmVyKTogTmV3IGNsYXNzLg0KIA0K Z2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6DQogDQoqIGdjYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3Ztdl92LmM6IE5ldyB0ZXN0 Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2 NF92bXZfdi5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9vdmVybG9hZGVkX3Ztdl92Lmg6IE5ldyB0ZXN0Lg0KIA0KU2lnbmVk LW9mZi1ieTogUGFuIExpIDxwYW4yLmxpQGludGVsLmNvbT4NCi0tLQ0KZ2Nj L2NvbmZpZy9yaXNjdi9yaXNjdi1jLmNjICAgICAgICAgICAgICAgICAgIHwg IDM2ICsrKysNCmdjYy9jb25maWcvcmlzY3YvcmlzY3YtcHJvdG9zLmggICAg ICAgICAgICAgICB8ICAgMSArDQouLi4vcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLXNoYXBlcy5jYyAgICAgfCAgMjAgKystDQpnY2MvY29uZmlnL3Jp c2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYyAgICAgfCAxNTUgKysrKysr KysrKysrKysrKystDQpnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy5oICAgICAgfCAgMzYgKysrLQ0KLi4uL3Jpc2N2L3J2di9iYXNl L292ZXJsb2FkZWRfcnYzMl92bXZfdi5jICAgIHwgICA4ICsNCi4uLi9yaXNj di9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdm12X3YuYyAgICB8ICAgOCAr DQouLi4vcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92bXZfdi5oICAgICAg ICAgfCAgMjcgKysrDQo4IGZpbGVzIGNoYW5nZWQsIDI4OCBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQ0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVk X3J2MzJfdm12X3YuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRf dm12X3YuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3Ztdl92LmgNCiAN CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LWMuY2MgYi9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LWMuY2MNCmluZGV4IDI4MzA1MmFlMzEz Li4wNjBlZGQzMTI5ZCAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3Yv cmlzY3YtYy5jYw0KKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1jLmNj DQpAQCAtMjIwLDExICsyMjAsNDcgQEAgcmlzY3ZfY2hlY2tfYnVpbHRpbl9j YWxsIChsb2NhdGlvbl90IGxvYywgdmVjPGxvY2F0aW9uX3Q+IGFyZ19sb2Ms IHRyZWUgZm5kZWNsLA0KICAgZ2NjX3VucmVhY2hhYmxlICgpOw0KfQ0KKy8q IEltcGxlbWVudCBUQVJHRVRfUkVTT0xWRV9PVkVSTE9BREVEX0JVSUxUSU4u ICAqLw0KK3N0YXRpYyB0cmVlDQorcmlzY3ZfcmVzb2x2ZV9vdmVybG9hZGVk X2J1aWx0aW4gKHVuc2lnbmVkIGludCB1bmNhc3RfbG9jYXRpb24sIHRyZWUg Zm5kZWNsLA0KKyAgIHZvaWQgKnVuY2FzdF9hcmdsaXN0KQ0KK3sNCisgIHZl Yzx0cmVlLCB2YV9nYz4gZW1wdHkgPSB7fTsNCisgIGxvY2F0aW9uX3QgbG9j ID0gKGxvY2F0aW9uX3QpIHVuY2FzdF9sb2NhdGlvbjsNCisgIHZlYzx0cmVl LCB2YV9nYz4gKmFyZ2xpc3QgPSAodmVjPHRyZWUsIHZhX2djPiAqKSB1bmNh c3RfYXJnbGlzdDsNCisgIHVuc2lnbmVkIGludCBjb2RlID0gREVDTF9NRF9G VU5DVElPTl9DT0RFIChmbmRlY2wpOw0KKyAgdW5zaWduZWQgaW50IHN1YmNv ZGUgPSBjb2RlID4+IFJJU0NWX0JVSUxUSU5fU0hJRlQ7DQorICB0cmVlIG5l d19mbmRlY2wgPSBOVUxMX1RSRUU7DQorDQorICBpZiAoIWFyZ2xpc3QpDQor ICAgIGFyZ2xpc3QgPSAmZW1wdHk7DQorDQorICBzd2l0Y2ggKGNvZGUgJiBS SVNDVl9CVUlMVElOX0NMQVNTKQ0KKyAgICB7DQorICAgIGNhc2UgUklTQ1Zf QlVJTFRJTl9HRU5FUkFMOg0KKyAgICAgIGJyZWFrOw0KKyAgICBjYXNlIFJJ U0NWX0JVSUxUSU5fVkVDVE9SOg0KKyAgICAgIG5ld19mbmRlY2wgPSByaXNj dl92ZWN0b3I6OnJlc29sdmVfb3ZlcmxvYWRlZF9idWlsdGluIChsb2MsIHN1 YmNvZGUsDQorICAgICAgYXJnbGlzdCk7DQorICAgICAgYnJlYWs7DQorICAg IGRlZmF1bHQ6DQorICAgICAgZ2NjX3VucmVhY2hhYmxlICgpOw0KKyAgICB9 DQorDQorICBpZiAobmV3X2ZuZGVjbCA9PSBOVUxMX1RSRUUpDQorICAgIHJl dHVybiBuZXdfZm5kZWNsOw0KKw0KKyAgcmV0dXJuIGJ1aWxkX2Z1bmN0aW9u X2NhbGxfdmVjIChsb2MsIHZOVUxMLCBuZXdfZm5kZWNsLCBhcmdsaXN0LCBO VUxMLA0KKyAgIGZuZGVjbCk7DQorfQ0KKw0KLyogSW1wbGVtZW50IFJFR0lT VEVSX1RBUkdFVF9QUkFHTUFTLiAgKi8NCnZvaWQNCnJpc2N2X3JlZ2lzdGVy X3ByYWdtYXMgKHZvaWQpDQp7DQorICB0YXJnZXRtLnJlc29sdmVfb3Zlcmxv YWRlZF9idWlsdGluID0gcmlzY3ZfcmVzb2x2ZV9vdmVybG9hZGVkX2J1aWx0 aW47DQogICB0YXJnZXRtLmNoZWNrX2J1aWx0aW5fY2FsbCA9IHJpc2N2X2No ZWNrX2J1aWx0aW5fY2FsbDsNCisNCiAgIGNfcmVnaXN0ZXJfcHJhZ21hICgi cmlzY3YiLCAiaW50cmluc2ljIiwgcmlzY3ZfcHJhZ21hX2ludHJpbnNpYyk7 DQp9DQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1wcm90 b3MuaCBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtcHJvdG9zLmgNCmluZGV4 IDZkYmY2YjlmOTQzLi41ZDI0OTJkZDAzMSAxMDA2NDQNCi0tLSBhL2djYy9j b25maWcvcmlzY3YvcmlzY3YtcHJvdG9zLmgNCisrKyBiL2djYy9jb25maWcv cmlzY3YvcmlzY3YtcHJvdG9zLmgNCkBAIC0zODEsNiArMzgxLDcgQEAgZ2lt cGxlICpnaW1wbGVfZm9sZF9idWlsdGluICh1bnNpZ25lZCBpbnQsIGdpbXBs ZV9zdG10X2l0ZXJhdG9yICosIGdjYWxsICopOw0KcnR4IGV4cGFuZF9idWls dGluICh1bnNpZ25lZCBpbnQsIHRyZWUsIHJ0eCk7DQpib29sIGNoZWNrX2J1 aWx0aW5fY2FsbCAobG9jYXRpb25fdCwgdmVjPGxvY2F0aW9uX3Q+LCB1bnNp Z25lZCBpbnQsDQogICB0cmVlLCB1bnNpZ25lZCBpbnQsIHRyZWUgKik7DQor dHJlZSByZXNvbHZlX292ZXJsb2FkZWRfYnVpbHRpbiAobG9jYXRpb25fdCwg dW5zaWduZWQgaW50LCB2ZWM8dHJlZSwgdmFfZ2M+ICopOw0KYm9vbCBjb25z dF92ZWNfYWxsX3NhbWVfaW5fcmFuZ2VfcCAocnR4LCBIT1NUX1dJREVfSU5U LCBIT1NUX1dJREVfSU5UKTsNCmJvb2wgbGVnaXRpbWl6ZV9tb3ZlIChydHgs IHJ0eCk7DQp2b2lkIGVtaXRfdmxtYXhfdnNldHZsIChtYWNoaW5lX21vZGUs IHJ0eCk7DQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9y aXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjDQppbmRleCBmOGZkZWM4 NjNlNi4uMWMxYTJjYzk0ODggMTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jp c2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MNCisrKyBiL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5j Yw0KQEAgLTQ5LDYgKzQ5LDggQEAgYnVpbGRfb25lIChmdW5jdGlvbl9idWls ZGVyICZiLCBjb25zdCBmdW5jdGlvbl9ncm91cF9pbmZvICZncm91cCwNCiAg ICAgZ3JvdXAub3BzX2luZm9zLnR5cGVzW3ZlY190eXBlX2lkeF0uaW5kZXgp Ow0KICAgYi5hbGxvY2F0ZV9hcmd1bWVudF90eXBlcyAoZnVuY3Rpb25faW5z dGFuY2UsIGFyZ3VtZW50X3R5cGVzKTsNCiAgIGIuYXBwbHlfcHJlZGljYXRp b24gKGZ1bmN0aW9uX2luc3RhbmNlLCByZXR1cm5fdHlwZSwgYXJndW1lbnRf dHlwZXMpOw0KKw0KKyAgYi5hZGRfb3ZlcmxvYWRlZF9mdW5jdGlvbiAoZnVu Y3Rpb25faW5zdGFuY2UsICpncm91cC5zaGFwZSk7DQogICBiLmFkZF91bmlx dWVfZnVuY3Rpb24gKGZ1bmN0aW9uX2luc3RhbmNlLCAoKmdyb3VwLnNoYXBl KSwgcmV0dXJuX3R5cGUsDQphcmd1bWVudF90eXBlcyk7DQp9DQpAQCAtODcs NiArODksMjIgQEAgc3RydWN0IGJ1aWxkX2Jhc2UgOiBwdWJsaWMgZnVuY3Rp b25fc2hhcGUNCiAgIH0NCn07DQorc3RydWN0IG92ZXJsb2FkZWRfYmFzZSA6 IHB1YmxpYyBidWlsZF9iYXNlDQorew0KKyAgdHJlZSByZXNvbHZlIChmdW5j dGlvbl9yZXNvbHZlciAmcikgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisgICAg cmV0dXJuIHIubG9va3VwICgpOw0KKyAgfQ0KK307DQorDQorc3RydWN0IG5v bl9vdmVybG9hZGVkX2Jhc2UgOiBwdWJsaWMgYnVpbGRfYmFzZQ0KK3sNCisg IHRyZWUgcmVzb2x2ZSAoZnVuY3Rpb25fcmVzb2x2ZXIgJikgY29uc3Qgb3Zl cnJpZGUNCisgIHsNCisgICAgZ2NjX3VucmVhY2hhYmxlICgpOw0KKyAgfQ0K K307DQorDQovKiB2c2V0dmxfZGVmIGNsYXNzLiAgKi8NCnN0cnVjdCB2c2V0 dmxfZGVmIDogcHVibGljIGJ1aWxkX2Jhc2UNCnsNCkBAIC01MjUsNyArNTQz LDcgQEAgc3RydWN0IG5hcnJvd19hbHVfZGVmIDogcHVibGljIGJ1aWxkX2Jh c2UNCn07DQovKiBtb3ZlX2RlZiBjbGFzcy4gSGFuZGxlIHZtdi52LnYvdm12 LnYueC4gICovDQotc3RydWN0IG1vdmVfZGVmIDogcHVibGljIGJ1aWxkX2Jh c2UNCitzdHJ1Y3QgbW92ZV9kZWYgOiBwdWJsaWMgb3ZlcmxvYWRlZF9iYXNl DQp7DQogICBjaGFyICpnZXRfbmFtZSAoZnVuY3Rpb25fYnVpbGRlciAmYiwg Y29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNlLA0KICBib29sIG92 ZXJsb2FkZWRfcCkgY29uc3Qgb3ZlcnJpZGUNCmRpZmYgLS1naXQgYS9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYyBiL2djYy9j b25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjDQppbmRleCA2 ZDk5Zjk3MGVhZC4uNGY2ZmJkYzNlMjggMTAwNjQ0DQotLS0gYS9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYw0KKysrIGIvZ2Nj L2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MNCkBAIC04 MCw2ICs4MCwxMCBAQCBwdWJsaWM6DQogICAvKiBUaGUgZGVjbCBpdHNlbGYu ICAqLw0KICAgdHJlZSBHVFkgKChza2lwKSkgZGVjbDsNCisNCisgIC8qIFRy dWUgaWYgdGhlIGRlY2wgcmVwcmVzZW50cyBhbiBvdmVybG9hZGVkIGZ1bmN0 aW9uIHRoYXQgbmVlZHMgdG8gYmUNCisgICAgIHJlc29sdmVkIGJ5IGZ1bmN0 aW9uX3Jlc29sdmVyLiAgKi8NCisgIGJvb2wgb3ZlcmxvYWRlZF9wOw0KfTsN Ci8qIEhhc2ggdHJhaXRzIGZvciByZWdpc3RlcmVkX2Z1bmN0aW9uLiAgKi8N CkBAIC0zMTk2LDYgKzMyMDAsNzcgQEAgZnVuY3Rpb25faW5zdGFuY2U6OmNv dWxkX3RyYXBfcCAoKSBjb25zdA0KICAgcmV0dXJuIGZhbHNlOw0KfQ0KKy8q IFRyeSB0byBnZXQgdGhlIG5vbi1vdmVybG9hZGVkIGZ1bmN0aW9uIGluc3Rh bmNlLg0KKyAgIEFmdGVyIHdlIHJlZ2lzdGVyIHRoZSBvdmVybG9hZGVkIHRo ZSBmdW5jdGlvbnMsIHRoZSByZWdpc3RlcmVkIGZ1bmN0aW9ucw0KKyAgIHRh YmxlIG1heSBsb29rIGxpa2U6DQorDQorICAgKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKw0KKyAg IHwgaW5kZXggIHwgbmFtZSAgICAgICAgICAgICAgICAgICAgICB8IGtpbmQg ICAgICAgICAgICAgIHwNCisgICArLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rDQorICAgfCAxMjQ3 MzMgfCBfX3Jpc2N2X3Ztdl92ICAgICAgICAgICAgIHwgT3ZlcmxvYWRlZCAg ICAgICAgfCA8LSBIb29rIGZ1biBjb2RlDQorICAgKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKw0K KyAgIHwgMTI0NzM1IHwgX19yaXNjdl92bXZfdl92X2k4bWY4ICAgICB8IE5v bi1vdmVybG9hZGVkICAgIHwNCisgICArLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rDQorICAgfCAx MjQ3MzcgfCBfX3Jpc2N2X3Ztdl92ICAgICAgICAgICAgIHwgUGxhY2Vob2xk ZXIgICAgICAgfA0KKyAgICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCisgICB8IDEyNDczOSB8 IF9fcmlzY3Zfdm12X3YgICAgICAgICAgICAgfCBPdmVybG9hZGVkICAgICAg ICB8DQorICAgKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKw0KKyAgIHwgMTI0NzQxIHwgX19yaXNj dl92bXZfdl92X2k4bWY0ICAgICB8IE5vbi1vdmVybG9hZGVkICAgIHwNCisg ICArLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rDQorICAgfCAxMjQ3NDMgfCBfX3Jpc2N2X3Ztdl92 ICAgICAgICAgICAgIHwgUGxhY2Vob2xkZXIgICAgICAgfA0KKyAgICstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSsNCisgICB8IDEyNDc0NSB8IF9fcmlzY3Zfdm12X3YgICAgICAg ICAgICAgfCBPdmVybG9hZGVkICAgICAgICB8DQorICAgKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Kw0KKyAgIHwgMTI0NzQ3IHwgX19yaXNjdl92bXZfdl92X2k4bWYyICAgICB8 IE5vbi1vdmVybG9hZGVkICAgIHwNCisgICArLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rDQorICAg fCAxMjQ3NDkgfCBfX3Jpc2N2X3Ztdl92ICAgICAgICAgICAgIHwgUGxhY2Vo b2xkZXIgICAgICAgfA0KKyAgICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCisgICB8IDEyNDc1 MSB8IF9fcmlzY3Zfdm12X3YgICAgICAgICAgICAgfCBPdmVybG9hZGVkICAg ICAgICB8DQorICAgKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKw0KKyAgIHwgMTI0NzUzIHwgX19y aXNjdl92bXZfdl92X2k4bTEgICAgICB8IE5vbi1vdmVybG9hZGVkICAgIHwN CisgICArLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rDQorICAgfCAxMjQ3NTUgfCBfX3Jpc2N2X3Zt dl92ICAgICAgICAgICAgIHwgUGxhY2Vob2xkZXIgICAgICAgfA0KKyAgICst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSsNCisNCisgICBXaGVuIHdlIHJlc29sdmUgdGhlIG92ZXJs b2FkZWQgQVBJIGZyb20gdGhlIGhvb2ssIHdlIGFsd2F5cyBnZXQgdGhlIGZp cnN0DQorICAgZnVuY3Rpb24gY29kZSBvZiBvbmUgQVBJIGdyb3VwIChha2Eg dm12X3YgYXMgYWJvdmUgdGFibGUpLiBXZSB3aWxsIHNlYXJjaA0KKyAgIHN0 YXJ0IGZyb20gdGhhdCBpbmRleCB0byBmaW5kIHRoZSBvbmx5IG9uZSBub24t b3ZlcmxvYWRlZCBBUEkgd2l0aCBleGFjdGx5DQorICAgdGhlIHNhbWUgYXJn bGlzdC4gT3IgTlVMTCBpbnN0YW5jZSB3aWxsIGJlIHJldHVybmVkLg0KKyAq Lw0KK2Z1bmN0aW9uX2luc3RhbmNlICoNCitmdW5jdGlvbl9iYXNlOjpnZXRf bm9uX292ZXJsb2FkZWRfaW5zdGFuY2UgKHVuc2lnbmVkIGludCBjb2RlLA0K KyAgICAgdmVjPHRyZWUsIHZhX2djPiAmYXJnbGlzdCkgY29uc3QNCit7DQor ICB1bnNpZ25lZCBpbnQgY29kZV9saW1pdCA9IHZlY19zYWZlX2xlbmd0aCAo cmVnaXN0ZXJlZF9mdW5jdGlvbnMpOw0KKw0KKyAgZm9yICh1bnNpZ25lZCBm dW5fY29kZSA9IGNvZGU7IGZ1bl9jb2RlIDwgY29kZV9saW1pdDsgZnVuX2Nv ZGUrKykNCisgICAgew0KKyAgICAgIHJlZ2lzdGVyZWRfZnVuY3Rpb24gKnJm dW4gPSAoKnJlZ2lzdGVyZWRfZnVuY3Rpb25zKVtmdW5fY29kZV07DQorICAg ICAgZnVuY3Rpb25faW5zdGFuY2UgaW5zdGFuY2UgPSByZnVuLT5pbnN0YW5j ZTsNCisNCisgICAgICBpZiAocmZ1bi0+b3ZlcmxvYWRlZF9wKQ0KKyBjb250 aW51ZTsNCisNCisgICAgICB1bnNpZ25lZCBrOw0KKyAgICAgIGNvbnN0IHJ2 dl9hcmdfdHlwZV9pbmZvICphcmdzID0gaW5zdGFuY2Uub3BfaW5mby0+YXJn czsNCisNCisgICAgICBmb3IgKGsgPSAwOyBhcmdzW2tdLmJhc2VfdHlwZSAh PSBOVU1fQkFTRV9UWVBFUzsgaysrKQ0KKyB7DQorICAgaWYgKGsgPj0gYXJn bGlzdC5sZW5ndGggKCkpDQorICAgICBicmVhazsNCisNCisgICBpZiAoVFlQ RV9NT0RFIChpbnN0YW5jZS5nZXRfYXJnX3R5cGUgKGspKQ0KKyAgICAgIT0g VFlQRV9NT0RFIChUUkVFX1RZUEUgKGFyZ2xpc3Rba10pKSkNCisgICAgIGJy ZWFrOw0KKyB9DQorDQorIGlmIChhcmdzW2tdLmJhc2VfdHlwZSA9PSBOVU1f QkFTRV9UWVBFUykNCisgICByZXR1cm4gJnJmdW4tPmluc3RhbmNlOw0KKyAg ICB9DQorDQorICByZXR1cm4gTlVMTDsNCit9DQorDQpmdW5jdGlvbl9idWls ZGVyOjpmdW5jdGlvbl9idWlsZGVyICgpDQp7DQogICBtX2RpcmVjdF9vdmVy bG9hZHMgPSBsYW5nX0dOVV9DWFggKCk7DQpAQCAtMzM1Nyw3ICszNDMyLDgg QEAgZnVuY3Rpb25fYnVpbGRlcjo6Z2V0X2F0dHJpYnV0ZXMgKGNvbnN0IGZ1 bmN0aW9uX2luc3RhbmNlICZpbnN0YW5jZSkNCnJlZ2lzdGVyZWRfZnVuY3Rp b24gJg0KZnVuY3Rpb25fYnVpbGRlcjo6YWRkX2Z1bmN0aW9uIChjb25zdCBm dW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UsDQpjb25zdCBjaGFyICpuYW1l LCB0cmVlIGZudHlwZSwgdHJlZSBhdHRycywNCi0gYm9vbCBwbGFjZWhvbGRl cl9wKQ0KKyBib29sIHBsYWNlaG9sZGVyX3AsDQorIGJvb2wgb3ZlcmxvYWRl ZF9wID0gZmFsc2UpDQp7DQogICB1bnNpZ25lZCBpbnQgY29kZSA9IHZlY19z YWZlX2xlbmd0aCAocmVnaXN0ZXJlZF9mdW5jdGlvbnMpOw0KICAgY29kZSA9 IChjb2RlIDw8IFJJU0NWX0JVSUxUSU5fU0hJRlQpICsgUklTQ1ZfQlVJTFRJ Tl9WRUNUT1I7DQpAQCAtMzM4Myw2ICszNDU5LDcgQEAgZnVuY3Rpb25fYnVp bGRlcjo6YWRkX2Z1bmN0aW9uIChjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAm aW5zdGFuY2UsDQogICByZWdpc3RlcmVkX2Z1bmN0aW9uICZyZm4gPSAqZ2dj X2FsbG9jPHJlZ2lzdGVyZWRfZnVuY3Rpb24+ICgpOw0KICAgcmZuLmluc3Rh bmNlID0gaW5zdGFuY2U7DQogICByZm4uZGVjbCA9IGRlY2w7DQorICByZm4u b3ZlcmxvYWRlZF9wID0gb3ZlcmxvYWRlZF9wOw0KICAgdmVjX3NhZmVfcHVz aCAocmVnaXN0ZXJlZF9mdW5jdGlvbnMsICZyZm4pOw0KICAgcmV0dXJuIHJm bjsNCkBAIC0zNDMyLDYgKzM1MDksMjYgQEAgZnVuY3Rpb25fYnVpbGRlcjo6 YWRkX3VuaXF1ZV9mdW5jdGlvbiAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2Ug Jmluc3RhbmNlLA0KICAgb2JzdGFja19mcmVlICgmbV9zdHJpbmdfb2JzdGFj aywgbmFtZSk7DQp9DQordm9pZA0KK2Z1bmN0aW9uX2J1aWxkZXI6OmFkZF9v dmVybG9hZGVkX2Z1bmN0aW9uIChjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAm aW5zdGFuY2UsDQorICAgIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpzaGFwZSkN Cit7DQorICBpZiAoIWNoZWNrX3JlcXVpcmVkX2V4dGVuc2lvbnMgKGluc3Rh bmNlKSkNCisgICAgcmV0dXJuOw0KKw0KKyAgY2hhciAqbmFtZSA9IHNoYXBl LT5nZXRfbmFtZSAoKnRoaXMsIGluc3RhbmNlLCB0cnVlKTsNCisNCisgIGlm IChuYW1lKQ0KKyAgICB7DQorICAgICAgLyogVG8gYXZvaWQgQVBJIGNvbmZs aWN0aW5nLCB0YWtlIHZvaWQgcmV0dXJuIHR5cGUgYW5kIHZvaWQgYXJndW1l bnQNCisgZm9yIHRoZSBvdmVybG9hZGVkIGZ1bmN0aW9uLiAgKi8NCisgICAg ICB0cmVlIGZudHlwZSA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGUgKHZvaWRfdHlw ZV9ub2RlLCB2b2lkX2xpc3Rfbm9kZSk7DQorICAgICAgYWRkX2Z1bmN0aW9u IChpbnN0YW5jZSwgbmFtZSwgZm50eXBlLCBOVUxMX1RSRUUsIG1fZGlyZWN0 X292ZXJsb2FkcywNCisgICAgIHRydWUpOw0KKyAgICAgIG9ic3RhY2tfZnJl ZSAoJm1fc3RyaW5nX29ic3RhY2ssIG5hbWUpOw0KKyAgICB9DQorfQ0KKw0K ZnVuY3Rpb25fY2FsbF9pbmZvOjpmdW5jdGlvbl9jYWxsX2luZm8gKGxvY2F0 aW9uX3QgbG9jYXRpb25faW4sDQpjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAm aW5zdGFuY2VfaW4sDQp0cmVlIGZuZGVjbF9pbikNCkBAIC0zODUyLDYgKzM5 NDksMTMgQEAgZnVuY3Rpb25fY2hlY2tlcjo6ZnVuY3Rpb25fY2hlY2tlciAo bG9jYXRpb25fdCBsb2NhdGlvbiwNCiAgICAgbV9uYXJncyAobmFyZ3MpLCBt X2FyZ3MgKGFyZ3MpDQp7fQ0KK2Z1bmN0aW9uX3Jlc29sdmVyOjpmdW5jdGlv bl9yZXNvbHZlciAobG9jYXRpb25fdCBsb2NhdGlvbiwNCisgICAgICAgY29u c3QgZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNlLA0KKyAgICAgICB0cmVl IGZuZGVjbCwNCisgICAgICAgdmVjPHRyZWUsIHZhX2djPiAmYXJnbGlzdCkN CisgIDogZnVuY3Rpb25fY2FsbF9pbmZvIChsb2NhdGlvbiwgaW5zdGFuY2Us IGZuZGVjbCksIG1fYXJnbGlzdCAoYXJnbGlzdCkNCit7fQ0KKw0KLyogUmVw b3J0IHRoYXQgTE9DQVRJT04gaGFzIGEgY2FsbCB0byBGTkRFQ0wgaW4gd2hp Y2ggYXJndW1lbnQgQVJHTk8NCiAgICB3YXMgbm90IGFuIGludGVnZXIgY29u c3RhbnQgZXhwcmVzc2lvbi4gIEFSR05PIGNvdW50cyBmcm9tIHplcm8uICAq Lw0Kdm9pZA0KQEAgLTM5NjcsNiArNDA3MSwzOSBAQCBmdW5jdGlvbl9jaGVj a2VyOjpjaGVjayAoKQ0KICAgcmV0dXJuIHNoYXBlLT5jaGVjayAoKnRoaXMp Ow0KfQ0KK3Vuc2lnbmVkIGludA0KK2Z1bmN0aW9uX3Jlc29sdmVyOjpnZXRf c3ViX2NvZGUgKCkNCit7DQorICB1bnNpZ25lZCBpbnQgZnVuX2NvZGUgPSBE RUNMX01EX0ZVTkNUSU9OX0NPREUgKGZuZGVjbCk7DQorDQorICByZXR1cm4g ZnVuX2NvZGUgPj4gUklTQ1ZfQlVJTFRJTl9TSElGVDsNCit9DQorDQordHJl ZQ0KK2Z1bmN0aW9uX3Jlc29sdmVyOjpyZXNvbHZlICgpDQorew0KKyAgcmV0 dXJuIHNoYXBlLT5yZXNvbHZlICgqdGhpcyk7DQorfQ0KKw0KK3RyZWUNCitm dW5jdGlvbl9yZXNvbHZlcjo6bG9va3VwICgpDQorew0KKyAgdW5zaWduZWQg aW50IGZ1bl9jb2RlID0gZ2V0X3N1Yl9jb2RlICgpOw0KKyAgZnVuY3Rpb25f aW5zdGFuY2UgKmluc3RhbmNlDQorICAgID0gYmFzZS0+Z2V0X25vbl9vdmVy bG9hZGVkX2luc3RhbmNlIChmdW5fY29kZSwgbV9hcmdsaXN0KTsNCisNCisg IGlmICghaW5zdGFuY2UpDQorICAgIHJldHVybiBOVUxMX1RSRUU7DQorDQor ICBoYXNodmFsX3QgaGFzaCA9IGluc3RhbmNlLT5oYXNoICgpOw0KKyAgcmVn aXN0ZXJlZF9mdW5jdGlvbiAqcmZ1biA9IGZ1bmN0aW9uX3RhYmxlLT5maW5k X3dpdGhfaGFzaCAoKmluc3RhbmNlLCBoYXNoKTsNCisNCisgIGlmICghcmZ1 bikNCisgICAgcmV0dXJuIE5VTExfVFJFRTsNCisNCisgIHJldHVybiByZnVu LT5kZWNsOw0KK30NCisNCmlubGluZSBoYXNodmFsX3QNCnJlZ2lzdGVyZWRf ZnVuY3Rpb25faGFzaGVyOjpoYXNoICh2YWx1ZV90eXBlIHZhbHVlKQ0Kew0K QEAgLTQxOTYsNiArNDMzMywyMiBAQCBjaGVja19idWlsdGluX2NhbGwgKGxv Y2F0aW9uX3QgbG9jYXRpb24sIHZlYzxsb2NhdGlvbl90PiwgdW5zaWduZWQg aW50IGNvZGUsDQogICBUUkVFX1RZUEUgKHJmbi5kZWNsKSwgbmFyZ3MsIGFy Z3MpLmNoZWNrICgpOw0KfQ0KK3RyZWUNCityZXNvbHZlX292ZXJsb2FkZWRf YnVpbHRpbiAobG9jYXRpb25fdCBsb2MsIHVuc2lnbmVkIGludCBjb2RlLA0K KyAgICAgdmVjPHRyZWUsIHZhX2djPiAqYXJnbGlzdCkNCit7DQorICBpZiAo Y29kZSA+PSB2ZWNfc2FmZV9sZW5ndGggKHJlZ2lzdGVyZWRfZnVuY3Rpb25z KSkNCisgICAgcmV0dXJuIE5VTExfVFJFRTsNCisNCisgIGNvbnN0IHJlZ2lz dGVyZWRfZnVuY3Rpb24gKnJmdW4gPSAoKnJlZ2lzdGVyZWRfZnVuY3Rpb25z KVtjb2RlXTsNCisNCisgIGlmICghcmZ1biB8fCAhcmZ1bi0+b3ZlcmxvYWRl ZF9wKQ0KKyAgICByZXR1cm4gTlVMTF9UUkVFOw0KKw0KKyAgcmV0dXJuIGZ1 bmN0aW9uX3Jlc29sdmVyIChsb2MsIHJmdW4tPmluc3RhbmNlLCByZnVuLT5k ZWNsLCAqYXJnbGlzdCkNCisgICAgLnJlc29sdmUgKCk7DQorfQ0KKw0KZnVu Y3Rpb25faW5zdGFuY2UNCmdldF9yZWFkX3ZsX2luc3RhbmNlICh2b2lkKQ0K ew0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLmggYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy5oDQppbmRleCBlMzU4YThlNGQ5MS4uZTIwZjBmMTRjZTQgMTAw NjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWls dGlucy5oDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy5oDQpAQCAtMjc3LDYgKzI3Nyw4IEBAIHB1YmxpYzoNCiAgIHZv aWQgYXBwbHlfcHJlZGljYXRpb24gKGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNl ICYsIHRyZWUsIHZlYzx0cmVlPiAmKSBjb25zdDsNCiAgIHZvaWQgYWRkX3Vu aXF1ZV9mdW5jdGlvbiAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJiwgY29u c3QgZnVuY3Rpb25fc2hhcGUgKiwNCiAgICB0cmVlLCB2ZWM8dHJlZT4gJik7 DQorICB2b2lkIGFkZF9vdmVybG9hZGVkX2Z1bmN0aW9uIChjb25zdCBmdW5j dGlvbl9pbnN0YW5jZSAmLA0KKyBjb25zdCBmdW5jdGlvbl9zaGFwZSAqKTsN CiAgIHZvaWQgcmVnaXN0ZXJfZnVuY3Rpb25fZ3JvdXAgKGNvbnN0IGZ1bmN0 aW9uX2dyb3VwX2luZm8gJik7DQogICB2b2lkIGFwcGVuZF9uYW1lIChjb25z dCBjaGFyICopOw0KICAgdm9pZCBhcHBlbmRfYmFzZV9uYW1lIChjb25zdCBj aGFyICopOw0KQEAgLTI4OCw3ICsyOTAsNyBAQCBwcml2YXRlOg0KICAgdHJl ZSBnZXRfYXR0cmlidXRlcyAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJik7 DQogICByZWdpc3RlcmVkX2Z1bmN0aW9uICZhZGRfZnVuY3Rpb24gKGNvbnN0 IGZ1bmN0aW9uX2luc3RhbmNlICYsIGNvbnN0IGNoYXIgKiwNCi0gICAgICB0 cmVlLCB0cmVlLCBib29sKTsNCisgICAgICB0cmVlLCB0cmVlLCBib29sLCBi b29sKTsNCiAgIC8qIFRydWUgaWYgd2Ugc2hvdWxkIGNyZWF0ZSBhIHNlcGFy YXRlIGRlY2wgZm9yIGVhY2ggaW5zdGFuY2Ugb2YgYW4NCiAgICAgIG92ZXJs b2FkZWQgZnVuY3Rpb24sIGluc3RlYWQgb2YgdXNpbmcgZnVuY3Rpb25fYnVp bGRlci4gICovDQpAQCAtNDI0LDYgKzQyNiwxMSBAQCBwdWJsaWM6DQogICAv KiBFeHBhbmQgdGhlIGdpdmVuIGNhbGwgaW50byBydGwuICBSZXR1cm4gdGhl IHJlc3VsdCBvZiB0aGUgZnVuY3Rpb24sDQogICAgICBvciBhbiBhcmJpdHJh cnkgdmFsdWUgaWYgdGhlIGZ1bmN0aW9uIGRvZXNuJ3QgcmV0dXJuIGEgcmVz dWx0LiAgKi8NCiAgIHZpcnR1YWwgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhw YW5kZXIgJikgY29uc3QgPSAwOw0KKw0KKyAgLyogUmV0dXJuIHRoZSBub24t b3ZlcmxvYWRlZCBmdW5jdGlvbiBpbnN0YW5jZSBmcm9tIHRoZSByZWdpc3Rl cmVkDQorICAgICBmdW5jdGlvbiB0YWJsZSBpZiBzdWNjZXNzLCBvciBOVUxM IHdpbGwgYmUgcmV0dXJuZWQuICAqLw0KKyAgdmlydHVhbCBmdW5jdGlvbl9p bnN0YW5jZSAqIGdldF9ub25fb3ZlcmxvYWRlZF9pbnN0YW5jZSAoDQorICAg IHVuc2lnbmVkIGludCwgdmVjPHRyZWUsIHZhX2djPiAmYXJnbGlzdCkgY29u c3Q7DQp9Ow0KLyogQSBjbGFzcyBmb3IgY2hlY2tpbmcgdGhhdCB0aGUgc2Vt YW50aWMgY29uc3RyYWludHMgb24gYSBmdW5jdGlvbiBjYWxsIGFyZQ0KQEAg LTQ2Miw2ICs0NjksMjkgQEAgcHJpdmF0ZToNCiAgIHRyZWUgKm1fYXJnczsN Cn07DQorLyogQSBjbGFzcyBmb3IgcmVzb2x2aW5nIGFuIG92ZXJsb2FkZWQg ZnVuY3Rpb24gY2FsbC4gICovDQorY2xhc3MgZnVuY3Rpb25fcmVzb2x2ZXIg OiBwdWJsaWMgZnVuY3Rpb25fY2FsbF9pbmZvDQorew0KK3B1YmxpYzoNCisg IGZ1bmN0aW9uX3Jlc29sdmVyIChsb2NhdGlvbl90LCBjb25zdCBmdW5jdGlv bl9pbnN0YW5jZSAmLCB0cmVlLA0KKyAgICAgIHZlYzx0cmVlLCB2YV9nYz4g Jik7DQorDQorICAvKiBSZXNvbHZlIHRoZSBjb3JyZWxhdGVkIG5vbi1vdmVy bG9hZGVkIGZ1bmN0aW9uIGZyb20gdGhlDQorICAgICB0aGUgcmVnaXN0ZXJl ZF9mdW5jdGlvbnMgdGFibGUuICAqLw0KKyAgdHJlZSByZXNvbHZlICgpOw0K Kw0KKyAgLyogTG9va3VwIHRoZSBub24tb3ZlcmxvYWRlZCBmdW5jdGlvbiBm cm9tIHRoZSByZWdpc3RlcmVkDQorICAgICBmdW5jdGlvbiB0YWJsZS4gICov DQorICB0cmVlIGxvb2t1cCAoKTsNCisNCisgIC8qIFJldHVybiB0aGUgc3Vi IGNvZGUgb2YgdGhlIGZuZGVjbC4gICovDQorICB1bnNpZ25lZCBpbnQgZ2V0 X3N1Yl9jb2RlICgpOw0KKw0KK3ByaXZhdGU6DQorICAvKiBUaGUgYXJndW1l bnRzIHRvIHRoZSBvdmVybG9hZGVkIGZ1bmN0aW9uLiAgKi8NCisgIHZlYzx0 cmVlLCB2YV9nYz4gJm1fYXJnbGlzdDsNCit9Ow0KKw0KLyogQ2xhc3NpZmll cyBmdW5jdGlvbnMgaW50byAic2hhcGVzIiBiYXNlIG9uOg0KICAgIC0gQmFz ZSBuYW1lIG9mIHRoZSBpbnRyaW5zaWMgZnVuY3Rpb24uDQpAQCAtNDg2LDYg KzUxNiwxMCBAQCBwdWJsaWM6DQogICAvKiBDaGVjayB3aGV0aGVyIHRoZSBn aXZlbiBjYWxsIGlzIHNlbWFudGljYWxseSB2YWxpZC4gIFJldHVybiB0cnVl DQogICAgaWYgaXQgaXMsIG90aGVyd2lzZSByZXBvcnQgYW4gZXJyb3IgYW5k IHJldHVybiBmYWxzZS4gICovDQogICB2aXJ0dWFsIGJvb2wgY2hlY2sgKGZ1 bmN0aW9uX2NoZWNrZXIgJikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQ0KKw0K KyAgLyogVHJ5IHRvIHJlc29sdmUgdGhlIG92ZXJsb2FkZWQgY2FsbC4gIFJl dHVybiB0aGUgbm9uLW92ZXJsb2FkZWQNCisgICAgIGZ1bmN0aW9uIGRlY2wg b24gc3VjY2VzcyBhbmQgTlVMTF9UUkVFIG9uIGZhaWx1cmUuICAqLw0KKyAg dmlydHVhbCB0cmVlIHJlc29sdmUgKGZ1bmN0aW9uX3Jlc29sdmVyICYpIGNv bnN0IHsgcmV0dXJuIE5VTExfVFJFRTsgfTsNCn07DQpleHRlcm4gY29uc3Qg Y2hhciAqY29uc3Qgb3BlcmFuZF9zdWZmaXhlc1tOVU1fT1BfVFlQRVNdOw0K ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdm12X3YuYyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJf dm12X3YuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAw MDAwLi41NjE1NGRhMTU1Yg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRf cnYzMl92bXZfdi5jDQpAQCAtMCwwICsxLDggQEANCisvKiB7IGRnLWRvIGNv bXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJnY3Zf enZmaCAtbWFiaT1pbHAzMiAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNp bmNsdWRlICJvdmVybG9hZGVkX3Ztdl92LmgiDQorDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypb YXhdWzAtOV0rLFxzKmUzMixccyptMSxccyp0YSxccyptYX0gMiB9IH0gKi8N CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2 bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTE2LFxzKm0xLFxzKnRhLFxz Km1hfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplOCxc cyptNCxccyp0dSxccyptYX0gMiB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRl ZF9ydjY0X3Ztdl92LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3Ztdl92LmMNCm5ldyBmaWxl IG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uZjRhNjNjOTU4NWQN Ci0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdm12X3YuYw0KQEAg LTAsMCArMSw4IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7 IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2X3p2ZmggLW1hYmk9bHA2NCAt TzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJvdmVybG9hZGVk X3Ztdl92LmgiDQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxzKmUzMixc cyptMSxccyp0YSxccyptYX0gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1b MC05XSssXHMqZTE2LFxzKm0xLFxzKnRhLFxzKm1hfSAyIH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxz K3plcm8sXHMqW2F4XVswLTldKyxccyplOCxccyptNCxccyp0dSxccyptYX0g MiB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92bXZfdi5oIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRf dm12X3YuaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAw MDAwLi44NzU2YzVlMTdiNw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRf dm12X3YuaA0KQEAgLTAsMCArMSwyNyBAQA0KKyNpbmNsdWRlICJyaXNjdl92 ZWN0b3IuaCINCisNCit2aW50MzJtMV90IHRlc3Rfdm12X292ZXJsb2FkZWRf MCAodmludDMybTFfdCBzcmMsIHNpemVfdCB2bCkgew0KKyAgcmV0dXJuIF9f cmlzY3Zfdm12X3YgKHNyYywgdmwpOw0KK30NCisNCit2ZmxvYXQxNm0xX3Qg dGVzdF92bXZfb3ZlcmxvYWRlZF8xICh2ZmxvYXQxNm0xX3Qgc3JjLCBzaXpl X3QgdmwpIHsNCisgIHJldHVybiBfX3Jpc2N2X3Ztdl92IChzcmMsIHZsKTsN Cit9DQorDQordmludDhtNF90IHRlc3Rfdm12X292ZXJsb2FkZWRfMiAodmlu dDhtNF90IG1hc2tlZG9mZiwgdmludDhtNF90IHNyYywNCisgc2l6ZV90IHZs KSB7DQorICByZXR1cm4gX19yaXNjdl92bXZfdl90dSAobWFza2Vkb2ZmLCBz cmMsIHZsKTsNCit9DQorDQordmludDMybTFfdCB0ZXN0X3Ztdl9ub25fb3Zl cmxvYWRlZF8wICh2aW50MzJtMV90IHNyYywgc2l6ZV90IHZsKSB7DQorICBy ZXR1cm4gX19yaXNjdl92bXZfdl92X2kzMm0xIChzcmMsIHZsKTsNCit9DQor DQordmZsb2F0MTZtMV90IHRlc3Rfdm12X25vbl9vdmVybG9hZGVkXzEgKHZm bG9hdDE2bTFfdCBzcmMsIHNpemVfdCB2bCkgew0KKyAgcmV0dXJuIF9fcmlz Y3Zfdm12X3Zfdl9mMTZtMSAoc3JjLCB2bCk7DQorfQ0KKw0KK3ZpbnQ4bTRf dCB0ZXN0X3Ztdl9ub25fb3ZlcmxvYWRlZF8yICh2aW50OG00X3QgbWFza2Vk b2ZmLCB2aW50OG00X3Qgc3JjLA0KKyAgICAgIHNpemVfdCB2bCkgew0KKyAg cmV0dXJuIF9fcmlzY3Zfdm12X3Zfdl9pOG00X3R1IChtYXNrZWRvZmYsIHNy YywgdmwpOw0KK30NCi0tIA0KMi4zNC4xDQogDQogDQo= ------=_001_NextPart381147260784_=------