From nobody Mon Aug 10 19:17:25 2026 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4hJl0f0DpMz6X9lP; Mon, 10 Aug 2026 19:18:42 +0000 (UTC) (envelope-from pouria@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hJl0d70gJz3DdJ; Mon, 10 Aug 2026 19:18:41 +0000 (UTC) (envelope-from pouria@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786389521; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=qkEcP/7xpLJ5YpAOsRYM8WdxkwUQBV1J6eeQfAOW+JY=; b=PKRvqK6zwzKGLGlkiG3VsClwDDEyor/5CG2BNcv92b/Isi+G6IPyy7VafTyx1HiwzYZN2f 69UhvANQtGK/aD0Ihh7dbgCOWyFtzhkdVIgKWUBkCiwmeCRi0PQDaTnzkLerBGgKVZEoaH Dk8htfw2pXOWIb3dFWStKhWdFC7OhPnP5dcsvSySal9pjNELLfuzUI131YpfleuIX8H1h1 DOfcmdNVQga7q/r/eKZsN0oAqGSEH1la8vC/1F1QYKTvjU57vMS1EQkU3t4aUWaS8CleMB Vbm3Rfya9t02LwNu9zKIp0WpEIvEVL3lDK/VyKLessoISo/92umN25PM4JHfrQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786389522; a=rsa-sha256; cv=none; b=R8b8Irqm+XeNrNcmR5aSAJUoE41D8g7MCeMuhZcwq8fQKU3gWRMOa4NTHktoGGgfEIEmbp b1X+dgLr6ickev86FyGP2Buj11z2qFDaWrit1WLA60myFAIgzjPabUodMOY/jV6Kazcdnd tER6hEvoISZB4Wc6Sls451VtVem8/WoeC/G9K09eYNGKEx+WvihUvQHmsxQinPR4k0zF6J ZyJtSurccJzd6fhlHEFozM+f3C6DB5hM67nPFo8zBdfc0b2gfzOc/VxgLquCXNSKVQrQfW 5PIvf9ULMX/EPFtYSzl1HeMyjci/O+UZQmNdDoqb7AExuxnAcBNIZNZNFyMSBg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786389522; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=qkEcP/7xpLJ5YpAOsRYM8WdxkwUQBV1J6eeQfAOW+JY=; b=gkGNzgbhEyfo7EC3zZr276jIhIV7FCr7Ops22IiPb6kQ8wGNex/ePaGB9Kgw3N5IImw4D3 koVy7Ns+mTAhKOnurdNtMNGMn9DV8N4Q4Hsfs3OP9VeR0h0YE0tqWjZ13sGgQKX9RyJ8mR bv8UPhSbXtjBZL/6fpKnqfv16bqDk7tkSwCaTMBXh4V8QycdjAgIftbeSAYgWJjnfMopYV H8/pxttkry54UP1BvJsKwtyzhm5ZJovBXR9WXBDOEhVGgLghapvaF0jv1p9Uh9wfhaXSJN r15Ku5Boi8yAJGbhqbitNzdK5WTcs6jLyNLILFhkmvFZCLPDjY12uql7YLCLIg== Received: from nl.mail.spmzt.net (mail.spmzt.net [193.148.248.214]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: pouria) by smtp.freebsd.org (Postfix) with ESMTPSA id 4hJl0d1T3Tz170M; Mon, 10 Aug 2026 19:18:41 +0000 (UTC) (envelope-from pouria@FreeBSD.org) Received: by nl.mail.spmzt.net (OpenSMTPD) with ESMTPSA id 64fdee41 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 10 Aug 2026 23:48:26 +0430 (+0430) Message-ID: <41b8cda3-9e4f-49f1-af9b-18c04e215ab1@FreeBSD.org> Date: Mon, 10 Aug 2026 22:47:25 +0330 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: git: d15f2551b25f - main - rtnetlink: Report SR-IOV VF status To: Kevin Bowling References: <6a782294.3e4e1.77fae9fb@gitrepo.freebsd.org> Content-Language: en-US, fa-IR Cc: dev-commits-src-main@FreeBSD.org, src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org From: Pouria Mousavizadeh Tehrani In-Reply-To: <6a782294.3e4e1.77fae9fb@gitrepo.freebsd.org> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------m6EhM5CEr5CKyPmirXmVlUJv" This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------m6EhM5CEr5CKyPmirXmVlUJv Content-Type: multipart/mixed; boundary="------------XLosreG9MzsL7OFiqWR4y56O"; protected-headers="v1"; hp="clear" Message-ID: <41b8cda3-9e4f-49f1-af9b-18c04e215ab1@FreeBSD.org> Date: Mon, 10 Aug 2026 22:47:25 +0330 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: git: d15f2551b25f - main - rtnetlink: Report SR-IOV VF status To: Kevin Bowling References: <6a782294.3e4e1.77fae9fb@gitrepo.freebsd.org> Content-Language: en-US, fa-IR Cc: dev-commits-src-main@FreeBSD.org, src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org From: Pouria Mousavizadeh Tehrani In-Reply-To: <6a782294.3e4e1.77fae9fb@gitrepo.freebsd.org> --------------XLosreG9MzsL7OFiqWR4y56O Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 SGkNCg0KT24gOC85LzI2IDEwOjE3LCBLZXZpbiBCb3dsaW5nIHdyb3RlOg0KPiBUaGUgYnJh bmNoIG1haW4gaGFzIGJlZW4gdXBkYXRlZCBieSBrYm93bGluZzoNCj4gDQo+IFVSTDogaHR0 cHM6Ly9jZ2l0LkZyZWVCU0Qub3JnL3NyYy9jb21taXQvP2lkPWQxNWYyNTUxYjI1Zjc5ZGRj YmUyODlmYWE5NWU2NTUxMDBiOTUyZGENCj4gDQo+IGNvbW1pdCBkMTVmMjU1MWIyNWY3OWRk Y2JlMjg5ZmFhOTVlNjU1MTAwYjk1MmRhDQo+IEF1dGhvcjogICAgIEtldmluIEJvd2xpbmcg PGtib3dsaW5nQEZyZWVCU0Qub3JnPg0KPiBBdXRob3JEYXRlOiAyMDI2LTA4LTA5IDAyOjA0 OjExICswMDAwDQo+IENvbW1pdDogICAgIEtldmluIEJvd2xpbmcgPGtib3dsaW5nQEZyZWVC U0Qub3JnPg0KPiBDb21taXREYXRlOiAyMDI2LTA4LTA5IDA2OjQ2OjU3ICswMDAwDQo+IA0K PiAgICAgIHJ0bmV0bGluazogUmVwb3J0IFNSLUlPViBWRiBzdGF0dXMNCj4gICAgICANCj4g ICAgICBIb25vciBSVEVYVF9GSUxURVJfVkYgb24gUlRNX0dFVExJTksgcmVxdWVzdHMgYW5k IGV4cG9zZSB0aGUgdmVyc2lvbmVkDQo+ICAgICAgU1ItSU9WIFZGIHN0YXR1cyB0aHJvdWdo IHR5cGVkIG5lc3RlZCBGcmVlQlNEIGF0dHJpYnV0ZXMuICBSZXBvcnQNCj4gICAgICBJRkxB X05VTV9WRiB3aXRoIGEgc3VjY2Vzc2Z1bCByZXF1ZXN0ZWQgcXVlcnkgYW5kIHByZXNlcnZl IHBlci1wcm92aWRlcg0KPiAgICAgIGVycm9ycyBpbiB0aGUgc3RhdHVzIGNvbnRhaW5lci4N Cj4gICAgICANCj4gICAgICBNYXAgdGhlIGNvbW1vbiBudmxpc3Qgc2NoZW1hIHRvIG5hdGl2 ZSBpbnRlZ2VyLCBib29sZWFuLCBzdHJpbmcsIGFuZA0KPiAgICAgIGJpbmFyeSBhdHRyaWJ1 dGVzLiAgQ2FycnkgbmFtZXNwYWNlZCBkcml2ZXIgZXh0ZW5zaW9ucyBhcyBwYWNrZWQNCj4g ICAgICB2ZXJzaW9uZWQgbnZsaXN0cyBzbyBhZGRpbmcgYSBkcml2ZXItc3BlY2lmaWMgZmll bGQgZG9lcyBub3QgZXhwYW5kIHRoZQ0KPiAgICAgIGNvbW1vbiBuZXRsaW5rIEFCSS4NCj4g ICAgICANCj4gICAgICBBZGQgU05MIHBhcnNlcnMsIHBhcnNlciB2ZXJpZmljYXRpb24sIGEg Y29uc3RydWN0ZWQgbmVzdGVkLXN0YXR1cyB0ZXN0LA0KPiAgICAgIGFuZCBhbiBSVE1fR0VU TElOSyB0ZXN0IGZvciBhbiBpbnRlcmZhY2Ugd2l0aG91dCBTUi1JT1Ygc3VwcG9ydC4NCj4g ICAgICBEb2N1bWVudCB0aGUgcXVlcnkgY29udHJhY3QgYW5kIGV2ZXJ5IGF0dHJpYnV0ZS4N Cj4gLS0tDQo+ICAgc2hhcmUvbWFuL21hbjQvcnRuZXRsaW5rLjQgICAgICAgICAgICAgICAg ICAgIHwgMTE4ICsrKysrKysrKystDQo+ICAgc3lzL25ldGxpbmsvbmV0bGlua19zbmxfcm91 dGVfcGFyc2Vycy5oICAgICAgIHwgMTEyICsrKysrKysrKysNCj4gICBzeXMvbmV0bGluay9y b3V0ZS9pZmFjZS5jICAgICAgICAgICAgICAgICAgICAgfCAyODQgKysrKysrKysrKysrKysr KysrKysrKysrKy0NCj4gICBzeXMvbmV0bGluay9yb3V0ZS9pbnRlcmZhY2UuaCAgICAgICAg ICAgICAgICAgfCAgODIgKysrKysrKy0NCj4gICBzeXMvbmV0bGluay9yb3V0ZS9yb3V0ZV92 YXIuaCAgICAgICAgICAgICAgICAgfCAgIDEgKw0KPiAgIHRlc3RzL2F0Zl9weXRob24vc3lz L25ldGxpbmsvYXR0cnMucHkgICAgICAgICB8ICAyOCArKysNCj4gICB0ZXN0cy9hdGZfcHl0 aG9uL3N5cy9uZXRsaW5rL25ldGxpbmtfcm91dGUucHkgfCAxMTcgKysrKysrKysrKysNCj4g ICB0ZXN0cy9zeXMvbmV0bGluay90ZXN0X3J0bmxfaWZhY2UucHkgICAgICAgICAgfCAgMTMg Ky0NCj4gICB0ZXN0cy9zeXMvbmV0bGluay90ZXN0X3NubC5jICAgICAgICAgICAgICAgICAg fCAgODkgKysrKysrKysNCj4gICA5IGZpbGVzIGNoYW5nZWQsIDgzNSBpbnNlcnRpb25zKCsp LCA5IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL3NoYXJlL21hbi9tYW40L3J0 bmV0bGluay40IGIvc2hhcmUvbWFuL21hbjQvcnRuZXRsaW5rLjQNCj4gaW5kZXggM2Q3NmM2 NmMxOTE3Li41ZDVlNjljZGJiZjAgMTAwNjQ0DQo+IC0tLSBhL3NoYXJlL21hbi9tYW40L3J0 bmV0bGluay40DQo+ICsrKyBiL3NoYXJlL21hbi9tYW40L3J0bmV0bGluay40DQo+IEBAIC0y Miw3ICsyMiw3IEBADQo+ICAgLlwiIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCj4gICAuXCIgU1VDSCBE QU1BR0UuDQo+ICAgLlwiDQo+IC0uRGQgSnVseSAyOCwgMjAyNg0KPiArLkRkIEF1Z3VzdCA4 LCAyMDI2DQo+ICAgLkR0IFJUTkVUTElOSyA0DQo+ICAgLk9zDQo+ICAgLlNoIE5BTUUNCj4g QEAgLTMyNSw3ICszMjUsMTcgQEAgVGhlIGZvbGxvd2luZyBmaWx0ZXJzIGFyZSByZWNvZ25p c2VkIGJ5IHRoZSBrZXJuZWw6DQo+ICAgaWZpX2luZGV4CWludGVyZmFjZSBpbmRleA0KPiAg IElGTEFfSUZOQU1FCWludGVyZmFjZSBuYW1lDQo+ICAgSUZMQV9BTFRfSUZOQU1FCWludGVy ZmFjZSBuYW1lDQo+ICtJRkxBX0VYVF9NQVNLCWV4dGVuZGVkIGluZm9ybWF0aW9uIHNlbGVj dGlvbiBiaXRtYXANCj4gICAuRWQNCj4gKy5QcA0KPiArU2V0dGluZyB0aGUNCj4gKy5EdiBS VEVYVF9GSUxURVJfVkYNCj4gK2JpdCBpbg0KPiArLkR2IElGTEFfRVhUX01BU0sNCj4gK3Jl cXVlc3RzIFNSLUlPViBWRiBzdGF0dXMuDQo+ICtUaGUgcXVlcnkgaXMgb3B0LWluIGJlY2F1 c2Ugb2J0YWluaW5nIHN0YXR1cyBjYW4gcmVxdWlyZSBlbnRlcmluZyB0aGUgUEYNCj4gK2Ry aXZlci4NCj4gK1ZGIHN0YXR1cyBpcyBub3QgaW5jbHVkZWQgaW4gdW5zb2xpY2l0ZWQgbGlu ayBub3RpZmljYXRpb25zLg0KPiAgIC5TcyBUTFZzDQo+ICAgLkJsIC10YWcgLXdpZHRoIGlu ZGVudA0KPiAgIC5JdCBEdiBJRkxBX0FERFJFU1MNCj4gQEAgLTM0MCw2ICszNTAsMTEyIEBA IElGTEFfQUxUX0lGTkFNRQlpbnRlcmZhY2UgbmFtZQ0KPiAgICh1aW50MzJfdCkgKHJlYWRv bmx5KSBJbnRlcmZhY2UgaW5kZXguDQo+ICAgLkl0IER2IElGTEFfTUFTVEVSDQo+ICAgKHVp bnQzMl90KSBQYXJlbnQgaW50ZXJmYWNlIGluZGV4Lg0KPiArLkl0IER2IElGTEFfTlVNX1ZG DQo+ICsodWludDMyX3QpIChyZWFkb25seSkgTnVtYmVyIG9mIGFjdGl2ZSBWRnMuDQo+ICtU aGlzIGF0dHJpYnV0ZSBpcyByZXR1cm5lZCB3aXRoIGEgc3VjY2Vzc2Z1bA0KPiArLkR2IFJU RVhUX0ZJTFRFUl9WRg0KPiArcXVlcnkuDQo+ICsuSXQgRHYgSUZMQV9GUkVFQlNEDQo+ICso bmVzdGVkKSBMb2NhbCBpbnRlcmZhY2UgYXR0cmlidXRlcy4NCj4gK1doZW4gcmVxdWVzdGVk LA0KPiArLkR2IElGTEFGX1ZGX1NUQVRVUw0KPiArY29udGFpbnMgdGhlIGZvbGxvd2luZyBu ZXN0ZWQgYXR0cmlidXRlczoNCj4gKy5CZCAtbGl0ZXJhbCAtb2Zmc2V0IGluZGVudCAtY29t cGFjdA0KPiArSUZMQUZfVkZTX1ZFUlNJT04JKHVpbnQzMl90KSBWRiBzdGF0dXMgc2NoZW1h IHZlcnNpb24NCj4gK0lGTEFGX1ZGU19FUlJPUgkJKHVpbnQzMl90KSBlcnJubyBpZiB0aGUg UEYgcXVlcnkgZmFpbGVkDQo+ICtJRkxBRl9WRlNfUEZfTElOS19TVEFURQkodWludDhfdCkg SUZMQUZfVkZfTElOS18qDQo+ICtJRkxBRl9WRlNfUEZfTElOS19TUEVFRAkodWludDY0X3Qp IGJpdHMgcGVyIHNlY29uZA0KPiArSUZMQUZfVkZTX0xJU1QJCShuZXN0ZWQpIHJlcGVhdGVk IElGTEFGX1ZGX0xJU1RfRU5UUlkNCj4gKy5FZA0KPiArLlBwDQo+ICtPbiBhIHN1Y2Nlc3Nm dWwgcXVlcnksDQo+ICsuRHYgSUZMQUZfVkZTX1ZFUlNJT04NCj4gK2FuZA0KPiArLkR2IElG TEFGX1ZGU19MSVNUDQo+ICthcmUgcHJlc2VudC4NCj4gK0lmIHRoZSBQRiBzdGF0dXMgcXVl cnkgZmFpbHMsDQo+ICsuRHYgSUZMQUZfVkZTX0VSUk9SDQo+ICtjb250YWlucyB0aGUgZXJy bm8gdmFsdWUgYW5kIHRoZSBvdGhlciBzdGF0dXMgYXR0cmlidXRlcyBhcmUgb21pdHRlZC4N Cj4gKy5QcA0KPiArRWFjaA0KPiArLkR2IElGTEFGX1ZGX0xJU1RfRU5UUlkNCj4gK21heSBj b250YWluIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczoNCj4gKy5CZCAtbGl0ZXJhbCAtb2Zm c2V0IGluZGVudCAtY29tcGFjdA0KPiArSUZMQUZfVkZfSU5ERVgJCQkodWludDMyX3QpIFBG LWxvY2FsIFZGIGluZGV4DQo+ICtJRkxBRl9WRl9DT05GSUdVUkVECQkodWludDhfdCkgUEYg YWNjZXB0ZWQgY29uZmlndXJhdGlvbg0KPiArSUZMQUZfVkZfSU5JVElBTElaRUQJCSh1aW50 OF90KSBWRiBoYW5kc2hha2UgY29tcGxldGVkDQo+ICtJRkxBRl9WRl9NQUMJCQkoYmluYXJ5 KSBQRi1rbm93biBwcmltYXJ5IE1BQyBhZGRyZXNzDQo+ICtJRkxBRl9WRl9WTEFOX01PREUJ CSh1aW50OF90KSBJRkxBRl9WRl9WTEFOXyoNCj4gK0lGTEFGX1ZGX1ZMQU4JCQkodWludDE2 X3QpIGFjY2VzcyBWTEFOIGlkZW50aWZpZXINCj4gK0lGTEFGX1ZGX1ZMQU5fQ09VTlQJCSh1 aW50MzJfdCkgZXhwbGljaXQgVkxBTiBmaWx0ZXJzDQo+ICtJRkxBRl9WRl9WTEFOX0xJTUlU CQkodWludDMyX3QpIGV4cGxpY2l0IFZMQU4tZmlsdGVyIGxpbWl0DQo+ICtJRkxBRl9WRl9O VU1fUVVFVUVTCQkodWludDMyX3QpIGFsbG9jYXRlZCBSWC9UWCBxdWV1ZSBwYWlycw0KPiAr SUZMQUZfVkZfQUxMT1dfU0VUX01BQwkJKHVpbnQ4X3QpIGFkbWluaXN0cmF0aXZlIHBlcm1p c3Npb24NCj4gK0lGTEFGX1ZGX0FMTE9XX1NFVF9WTEFOCQkodWludDhfdCkgYWRtaW5pc3Ry YXRpdmUgcGVybWlzc2lvbg0KPiArSUZMQUZfVkZfTUFDX0FOVElfU1BPT0YJCSh1aW50OF90 KSBNQUMgYW50aS1zcG9vZmluZyBlbmFibGVkDQo+ICtJRkxBRl9WRl9BTExPV19QUk9NSVND CQkodWludDhfdCkgYWRtaW5pc3RyYXRpdmUgcGVybWlzc2lvbg0KPiArSUZMQUZfVkZfVFJB RkZJQ19FTkFCTEVECSh1aW50OF90KSBWRiB0cmFmZmljIGVuYWJsZWQNCj4gK0lGTEFGX1ZG X01ERF9CTE9DS0VECQkodWludDhfdCkgbWFsaWNpb3VzLWRyaXZlciBibG9jayBhY3RpdmUN Cj4gK0lGTEFGX1ZGX1FVQVJBTlRJTkVECQkodWludDhfdCkgcGVyc2lzdGVudCBxdWFyYW50 aW5lIGFjdGl2ZQ0KPiArSUZMQUZfVkZfQVBJX1ZFUlNJT04JCShzdHJpbmcpIG5lZ290aWF0 ZWQgbWFpbGJveCBBUEkNCj4gK0lGTEFGX1ZGX0xJTktfU1RBVEVfUE9MSUNZCSh1aW50OF90 KSBJRkxBRl9WRl9MSU5LXyoNCj4gK0lGTEFGX1ZGX0VYVEVOU0lPTlMJCShuZXN0ZWQpIGRy aXZlci1zcGVjaWZpYyBuYW1lc3BhY2VzDQo+ICsuRWQNCj4gKy5QcA0KPiArLkR2IElGTEFG X1ZGX0lOREVYDQo+ICtpcyByZXF1aXJlZCBpbiBldmVyeSBsaXN0IGVudHJ5Lg0KPiArT3Ro ZXIgZmllbGRzIGFyZSBvcHRpb25hbCBhbmQgYXJlIG9taXR0ZWQgd2hlbiB0aGUgUEYgZHJp dmVyIGNhbm5vdCBvYnNlcnZlDQo+ICt0aGVtOyBvbWlzc2lvbiBkb2VzIG5vdCBtZWFuIGZh bHNlIG9yIHplcm8uDQo+ICtCb29sZWFuIGF0dHJpYnV0ZXMgY29udGFpbiB6ZXJvIG9yIG9u ZS4NCj4gKy5EdiBJRkxBRl9WRl9DT05GSUdVUkVEDQo+ICttZWFucyB0aGF0IHRoZSBQRiBh Y2NlcHRlZCB0aGUgVkYgY29uZmlndXJhdGlvbiwgd2hpbGUNCj4gKy5EdiBJRkxBRl9WRl9J TklUSUFMSVpFRA0KPiArbWVhbnMgdGhhdCB0aGUgVkYgY29tcGxldGVkIGl0cyBkcml2ZXIg b3IgbWFpbGJveCBoYW5kc2hha2Ugc2luY2UgaXRzIGxhc3QNCj4gK3Jlc2V0Lg0KPiArLlBw DQo+ICsuRHYgSUZMQUZfVkZfTlVNX1FVRVVFUw0KPiAraXMgdGhlIG51bWJlciBvZiBhbGxv Y2F0ZWQgc3ltbWV0cmljIFJYL1RYIHF1ZXVlIHBhaXJzLCBub3QgbmVjZXNzYXJpbHkgdGhl DQo+ICtudW1iZXIgY3VycmVudGx5IHVzZWQgYnkgdGhlIFZGIGRyaXZlci4NCj4gK0FjY2Vz cyBWTEFOIG1vZGUgbWVhbnMgdGhhdCB0aGUgUEYgaW1wb3Nlcw0KPiArLkR2IElGTEFGX1ZG X1ZMQU4gOw0KPiArdHJ1bmsgbW9kZSBtZWFucyB0aGF0IG5vIGFjY2VzcyBWTEFOIGlzIGlt cG9zZWQgYW5kIGRvZXMgbm90IHByb21pc2UgdW5saW1pdGVkDQo+ICtmaWx0ZXIgY2FwYWNp dHkuDQo+ICsuRHYgSUZMQUZfVkZfVkxBTl9DT1VOVA0KPiArY291bnRzIGV4cGxpY2l0IGZp bHRlcnMgcmVjb3JkZWQgYnkgdGhlIFBGIGFuZCBleGNsdWRlcyBpbXBsaWNpdCB1bnRhZ2dl ZCBhbmQNCj4gK3ByaW9yaXR5LXRhZyBtZW1iZXJzaGlwLg0KPiArVGhlIHBlcm1pc3Npb24g YXR0cmlidXRlcyBkZXNjcmliZSByZXF1ZXN0cyB0aGUgVkYgbWF5IG1ha2UsIG5vdCByZXF1 ZXN0cyBpdA0KPiAraGFzIG1hZGUuDQo+ICtUaGUgdG9wLWxldmVsIFBGIGxpbmsgc3RhdGUg YW5kIHNwZWVkIGFyZSB2YWx1ZXMgbm9ybWFsbHkgYWR2ZXJ0aXNlZCB0byBWRnMsDQo+ICtu b3QgZXZpZGVuY2UgdGhhdCBhIFZGIGRyaXZlciBpcyBvcGVyYXRpb25hbC4NCj4gKy5QcA0K PiArTGluay1zdGF0ZSB2YWx1ZXMgYXJlOg0KPiArLkJkIC1saXRlcmFsIC1vZmZzZXQgaW5k ZW50IC1jb21wYWN0DQo+ICtJRkxBRl9WRl9MSU5LX1VOS05PV04Jc3RhdGUgaXMgdW5hdmFp bGFibGUNCj4gK0lGTEFGX1ZGX0xJTktfRE9XTglsaW5rIGlzIGZvcmNlZCBvciBvYnNlcnZl ZCBkb3duDQo+ICtJRkxBRl9WRl9MSU5LX1VQCWxpbmsgaXMgZm9yY2VkIG9yIG9ic2VydmVk IHVwDQo+ICtJRkxBRl9WRl9MSU5LX0FVVE8JVkYgZm9sbG93cyBQRiBsaW5rIHN0YXRlDQo+ ICsuRWQNCj4gKy5QcA0KPiArVkxBTi1tb2RlIHZhbHVlcyBhcmU6DQo+ICsuQmQgLWxpdGVy YWwgLW9mZnNldCBpbmRlbnQgLWNvbXBhY3QNCj4gK0lGTEFGX1ZGX1ZMQU5fVU5LTk9XTglt b2RlIGlzIHVuYXZhaWxhYmxlDQo+ICtJRkxBRl9WRl9WTEFOX0FDQ0VTUwlQRiBpbXBvc2Vz IGFuIGFjY2VzcyBWTEFODQo+ICtJRkxBRl9WRl9WTEFOX1RSVU5LCW5vIGFjY2VzcyBWTEFO IGlzIGltcG9zZWQNCj4gKy5FZA0KPiArLlBwDQo+ICtEcml2ZXItc3BlY2lmaWMgZGF0YSBp cyByZXR1cm5lZCB1bmRlcg0KPiArLkR2IElGTEFGX1ZGX0VYVEVOU0lPTlMNCj4gK2FzIHJl cGVhdGVkDQo+ICsuRHYgSUZMQUZfVkZfRVhUX0xJU1RfRU5UUlkNCj4gK29iamVjdHMuDQo+ ICtFYWNoIG9iamVjdCBjb250YWlucyBhIHN0YWJsZSBuYW1lc3BhY2Ugc3RyaW5nIGluDQo+ ICsuRHYgSUZMQUZfVkZfRVhUX05BTUUNCj4gK2FuZCBpdHMgcGFja2VkLCB2ZXJzaW9uZWQN Cj4gKy5YciBudmxpc3QgOQ0KPiAraW4NCj4gKy5EdiBJRkxBRl9WRl9FWFRfREFUQSAuDQo+ ICtFYWNoIG5hbWVzcGFjZSBjb250YWlucyBhIHZlcnNpb24gbnVtYmVyLg0KPiArQ29uc3Vt ZXJzIG11c3QgaWdub3JlIHVua25vd24gbmFtZXNwYWNlcyBhbmQgZmllbGRzLg0KPiAgIC5J dCBEdiBJRkxBX0xJTktJTkZPDQo+ICAgKG5lc3RlZCkgSW50ZXJmYWNlIHR5cGUtc3BlY2lm aWMgYXR0cmlidXRlczoNCj4gICAuQmQgLWxpdGVyYWwgLW9mZnNldCBpbmRlbnQgLWNvbXBh Y3QNCj4gZGlmZiAtLWdpdCBhL3N5cy9uZXRsaW5rL25ldGxpbmtfc25sX3JvdXRlX3BhcnNl cnMuaCBiL3N5cy9uZXRsaW5rL25ldGxpbmtfc25sX3JvdXRlX3BhcnNlcnMuaA0KPiBpbmRl eCBmMDg0OTg4NGVjOTcuLjlmNjk5ZWY1MjhhMyAxMDA2NDQNCj4gLS0tIGEvc3lzL25ldGxp bmsvbmV0bGlua19zbmxfcm91dGVfcGFyc2Vycy5oDQo+ICsrKyBiL3N5cy9uZXRsaW5rL25l dGxpbmtfc25sX3JvdXRlX3BhcnNlcnMuaA0KPiBAQCAtMTc4LDYgKzE3OCwxMTMgQEAgU05M X0RFQ0xBUkVfUEFSU0VSX0VYVChzbmxfcnRtX3JvdXRlX3BhcnNlciwgc2l6ZW9mKHN0cnVj dCBydG1zZyksDQo+ICAgCQlfY2JfcF9yb3V0ZSk7DQo+ICAgDQo+ICAgLyogUlRNXzxORVd8 REVMfEdFVD5MSU5LIG1lc3NhZ2UgcGFyc2VyICovDQo+ICtzdHJ1Y3Qgc25sX3BhcnNlZF92 Zl9leHRlbnNpb24gew0KPiArCWNoYXIJCQkqbmFtZTsNCj4gKwlzdHJ1Y3QgbmxhdHRyCQkq ZGF0YTsNCj4gK307DQo+ICsNCj4gKyNkZWZpbmUJX09VVChfZmllbGQpCW9mZnNldG9mKHN0 cnVjdCBzbmxfcGFyc2VkX3ZmX2V4dGVuc2lvbiwgX2ZpZWxkKQ0KPiArc3RhdGljIGNvbnN0 IHN0cnVjdCBzbmxfYXR0cl9wYXJzZXIgX25sYV9wX3ZmX2V4dGVuc2lvbltdID0gew0KPiAr CXsgLnR5cGUgPSBJRkxBRl9WRl9FWFRfTkFNRSwgLm9mZiA9IF9PVVQobmFtZSksDQo+ICsJ ICAgIC5jYiA9IHNubF9hdHRyX2R1cF9zdHJpbmcgfSwNCj4gKwl7IC50eXBlID0gSUZMQUZf VkZfRVhUX0RBVEEsIC5vZmYgPSBfT1VUKGRhdGEpLA0KPiArCSAgICAuY2IgPSBzbmxfYXR0 cl9kdXBfbmxhIH0sDQo+ICt9Ow0KPiArI3VuZGVmIF9PVVQNCj4gK1NOTF9ERUNMQVJFX0FU VFJfUEFSU0VSX0VYVChfdmZfZXh0ZW5zaW9uX3BhcnNlciwNCj4gKwkgICAgc2l6ZW9mKHN0 cnVjdCBzbmxfcGFyc2VkX3ZmX2V4dGVuc2lvbiksIF9ubGFfcF92Zl9leHRlbnNpb24sIE5V TEwpOw0KPiArDQo+ICtzdHJ1Y3Qgc25sX3BhcnNlZF92ZiB7DQo+ICsJdWludDMyX3QJCWlu ZGV4Ow0KPiArCXVpbnQzMl90CQl2bGFuX2NvdW50Ow0KPiArCXVpbnQzMl90CQl2bGFuX2xp bWl0Ow0KPiArCXVpbnQzMl90CQludW1fcXVldWVzOw0KPiArCXVpbnQxNl90CQl2bGFuOw0K PiArCXVpbnQ4X3QJCQljb25maWd1cmVkOw0KPiArCXVpbnQ4X3QJCQlpbml0aWFsaXplZDsN Cj4gKwl1aW50OF90CQkJdmxhbl9tb2RlOw0KPiArCXVpbnQ4X3QJCQlhbGxvd19zZXRfbWFj Ow0KPiArCXVpbnQ4X3QJCQlhbGxvd19zZXRfdmxhbjsNCj4gKwl1aW50OF90CQkJbWFjX2Fu dGlfc3Bvb2Y7DQo+ICsJdWludDhfdAkJCWFsbG93X3Byb21pc2M7DQo+ICsJdWludDhfdAkJ CXRyYWZmaWNfZW5hYmxlZDsNCj4gKwl1aW50OF90CQkJbWRkX2Jsb2NrZWQ7DQo+ICsJdWlu dDhfdAkJCXF1YXJhbnRpbmVkOw0KPiArCXVpbnQ4X3QJCQlsaW5rX3N0YXRlX3BvbGljeTsN Cj4gKwljaGFyCQkJKmFwaV92ZXJzaW9uOw0KPiArCXN0cnVjdCBubGF0dHIJCSptYWM7DQo+ ICsJc3RydWN0IHNubF9wYXJyYXkJZXh0ZW5zaW9uczsNCj4gK307DQo+ICsNCj4gKyNkZWZp bmUJX09VVChfZmllbGQpCW9mZnNldG9mKHN0cnVjdCBzbmxfcGFyc2VkX3ZmLCBfZmllbGQp DQo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHNubF9hdHRyX3BhcnNlciBfbmxhX3BfdmZbXSA9 IHsNCj4gKwl7IC50eXBlID0gSUZMQUZfVkZfSU5ERVgsIC5vZmYgPSBfT1VUKGluZGV4KSwN Cj4gKwkgICAgLmNiID0gc25sX2F0dHJfZ2V0X3VpbnQzMiB9LA0KPiArCXsgLnR5cGUgPSBJ RkxBRl9WRl9DT05GSUdVUkVELCAub2ZmID0gX09VVChjb25maWd1cmVkKSwNCj4gKwkgICAg LmNiID0gc25sX2F0dHJfZ2V0X3VpbnQ4IH0sDQo+ICsJeyAudHlwZSA9IElGTEFGX1ZGX0lO SVRJQUxJWkVELCAub2ZmID0gX09VVChpbml0aWFsaXplZCksDQo+ICsJICAgIC5jYiA9IHNu bF9hdHRyX2dldF91aW50OCB9LA0KPiArCXsgLnR5cGUgPSBJRkxBRl9WRl9NQUMsIC5vZmYg PSBfT1VUKG1hYyksIC5jYiA9IHNubF9hdHRyX2R1cF9ubGEgfSwNCj4gKwl7IC50eXBlID0g SUZMQUZfVkZfVkxBTl9NT0RFLCAub2ZmID0gX09VVCh2bGFuX21vZGUpLA0KPiArCSAgICAu Y2IgPSBzbmxfYXR0cl9nZXRfdWludDggfSwNCj4gKwl7IC50eXBlID0gSUZMQUZfVkZfVkxB TiwgLm9mZiA9IF9PVVQodmxhbiksDQo+ICsJICAgIC5jYiA9IHNubF9hdHRyX2dldF91aW50 MTYgfSwNCj4gKwl7IC50eXBlID0gSUZMQUZfVkZfVkxBTl9DT1VOVCwgLm9mZiA9IF9PVVQo dmxhbl9jb3VudCksDQo+ICsJICAgIC5jYiA9IHNubF9hdHRyX2dldF91aW50MzIgfSwNCj4g Kwl7IC50eXBlID0gSUZMQUZfVkZfVkxBTl9MSU1JVCwgLm9mZiA9IF9PVVQodmxhbl9saW1p dCksDQo+ICsJICAgIC5jYiA9IHNubF9hdHRyX2dldF91aW50MzIgfSwNCj4gKwl7IC50eXBl ID0gSUZMQUZfVkZfTlVNX1FVRVVFUywgLm9mZiA9IF9PVVQobnVtX3F1ZXVlcyksDQo+ICsJ ICAgIC5jYiA9IHNubF9hdHRyX2dldF91aW50MzIgfSwNCj4gKwl7IC50eXBlID0gSUZMQUZf VkZfQUxMT1dfU0VUX01BQywgLm9mZiA9IF9PVVQoYWxsb3dfc2V0X21hYyksDQo+ICsJICAg IC5jYiA9IHNubF9hdHRyX2dldF91aW50OCB9LA0KPiArCXsgLnR5cGUgPSBJRkxBRl9WRl9B TExPV19TRVRfVkxBTiwgLm9mZiA9IF9PVVQoYWxsb3dfc2V0X3ZsYW4pLA0KPiArCSAgICAu Y2IgPSBzbmxfYXR0cl9nZXRfdWludDggfSwNCj4gKwl7IC50eXBlID0gSUZMQUZfVkZfTUFD X0FOVElfU1BPT0YsIC5vZmYgPSBfT1VUKG1hY19hbnRpX3Nwb29mKSwNCj4gKwkgICAgLmNi ID0gc25sX2F0dHJfZ2V0X3VpbnQ4IH0sDQo+ICsJeyAudHlwZSA9IElGTEFGX1ZGX0FMTE9X X1BST01JU0MsIC5vZmYgPSBfT1VUKGFsbG93X3Byb21pc2MpLA0KPiArCSAgICAuY2IgPSBz bmxfYXR0cl9nZXRfdWludDggfSwNCj4gKwl7IC50eXBlID0gSUZMQUZfVkZfVFJBRkZJQ19F TkFCTEVELCAub2ZmID0gX09VVCh0cmFmZmljX2VuYWJsZWQpLA0KPiArCSAgICAuY2IgPSBz bmxfYXR0cl9nZXRfdWludDggfSwNCj4gKwl7IC50eXBlID0gSUZMQUZfVkZfTUREX0JMT0NL RUQsIC5vZmYgPSBfT1VUKG1kZF9ibG9ja2VkKSwNCj4gKwkgICAgLmNiID0gc25sX2F0dHJf Z2V0X3VpbnQ4IH0sDQo+ICsJeyAudHlwZSA9IElGTEFGX1ZGX1FVQVJBTlRJTkVELCAub2Zm ID0gX09VVChxdWFyYW50aW5lZCksDQo+ICsJICAgIC5jYiA9IHNubF9hdHRyX2dldF91aW50 OCB9LA0KPiArCXsgLnR5cGUgPSBJRkxBRl9WRl9BUElfVkVSU0lPTiwgLm9mZiA9IF9PVVQo YXBpX3ZlcnNpb24pLA0KPiArCSAgICAuY2IgPSBzbmxfYXR0cl9kdXBfc3RyaW5nIH0sDQo+ ICsJeyAudHlwZSA9IElGTEFGX1ZGX0xJTktfU1RBVEVfUE9MSUNZLA0KPiArCSAgICAub2Zm ID0gX09VVChsaW5rX3N0YXRlX3BvbGljeSksIC5jYiA9IHNubF9hdHRyX2dldF91aW50OCB9 LA0KPiArCXsgLnR5cGUgPSBJRkxBRl9WRl9FWFRFTlNJT05TLCAub2ZmID0gX09VVChleHRl bnNpb25zKSwNCj4gKwkgICAgLmFyZyA9ICZfdmZfZXh0ZW5zaW9uX3BhcnNlciwgLmNiID0g c25sX2F0dHJfZ2V0X3BhcnJheSB9LA0KPiArfTsNCj4gKyN1bmRlZiBfT1VUDQo+ICtTTkxf REVDTEFSRV9BVFRSX1BBUlNFUl9FWFQoX3ZmX3BhcnNlciwgc2l6ZW9mKHN0cnVjdCBzbmxf cGFyc2VkX3ZmKSwNCj4gKwkgICAgX25sYV9wX3ZmLCBOVUxMKTsNCj4gKw0KPiArc3RydWN0 IHNubF9wYXJzZWRfdmZfc3RhdHVzIHsNCj4gKwl1aW50NjRfdAkJcGZfbGlua19zcGVlZDsN Cj4gKwl1aW50MzJfdAkJdmVyc2lvbjsNCj4gKwl1aW50MzJfdAkJZXJyb3I7DQo+ICsJdWlu dDhfdAkJCXBmX2xpbmtfc3RhdGU7DQo+ICsJc3RydWN0IHNubF9wYXJyYXkJdmZzOw0KPiAr fTsNCj4gKw0KPiArI2RlZmluZQlfT1VUKF9maWVsZCkJb2Zmc2V0b2Yoc3RydWN0IHNubF9w YXJzZWRfdmZfc3RhdHVzLCBfZmllbGQpDQo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHNubF9h dHRyX3BhcnNlciBfbmxhX3BfdmZfc3RhdHVzW10gPSB7DQo+ICsJeyAudHlwZSA9IElGTEFG X1ZGU19WRVJTSU9OLCAub2ZmID0gX09VVCh2ZXJzaW9uKSwNCj4gKwkgICAgLmNiID0gc25s X2F0dHJfZ2V0X3VpbnQzMiB9LA0KPiArCXsgLnR5cGUgPSBJRkxBRl9WRlNfRVJST1IsIC5v ZmYgPSBfT1VUKGVycm9yKSwNCj4gKwkgICAgLmNiID0gc25sX2F0dHJfZ2V0X3VpbnQzMiB9 LA0KPiArCXsgLnR5cGUgPSBJRkxBRl9WRlNfUEZfTElOS19TVEFURSwgLm9mZiA9IF9PVVQo cGZfbGlua19zdGF0ZSksDQo+ICsJICAgIC5jYiA9IHNubF9hdHRyX2dldF91aW50OCB9LA0K PiArCXsgLnR5cGUgPSBJRkxBRl9WRlNfUEZfTElOS19TUEVFRCwgLm9mZiA9IF9PVVQocGZf bGlua19zcGVlZCksDQo+ICsJICAgIC5jYiA9IHNubF9hdHRyX2dldF91aW50NjQgfSwNCj4g Kwl7IC50eXBlID0gSUZMQUZfVkZTX0xJU1QsIC5vZmYgPSBfT1VUKHZmcyksDQo+ICsJICAg IC5hcmcgPSAmX3ZmX3BhcnNlciwgLmNiID0gc25sX2F0dHJfZ2V0X3BhcnJheSB9LA0KPiAr fTsNCj4gKyN1bmRlZiBfT1VUDQo+ICtTTkxfREVDTEFSRV9BVFRSX1BBUlNFUl9FWFQoX3Zm X3N0YXR1c19wYXJzZXIsDQo+ICsJICAgIHNpemVvZihzdHJ1Y3Qgc25sX3BhcnNlZF92Zl9z dGF0dXMpLCBfbmxhX3BfdmZfc3RhdHVzLCBOVUxMKTsNCj4gKw0KPiAgIHN0cnVjdCBzbmxf cGFyc2VkX2xpbmsgew0KPiAgIAl1aW50MzJfdAkJCWlmaV9pbmRleDsNCj4gICAJdWludDMy X3QJCQlpZmlfZmxhZ3M7DQo+IEBAIC0xOTEsOSArMjk4LDExIEBAIHN0cnVjdCBzbmxfcGFy c2VkX2xpbmsgew0KPiAgIAlzdHJ1Y3QgbmxhdHRyCQkJKmlmbGFfYnJvYWRjYXN0Ow0KPiAg IAljaGFyCQkJCSppZmxhX2lmYWxpYXM7DQo+ICAgCXVpbnQzMl90CQkJaWZsYV9wcm9taXNj dWl0eTsNCj4gKwl1aW50MzJfdAkJCWlmbGFfbnVtX3ZmOw0KPiAgIAlzdHJ1Y3QgcnRubF9s aW5rX3N0YXRzNjQJKmlmbGFfc3RhdHM2NDsNCj4gICAJc3RydWN0IG5sYXR0cgkJCSppZmxh Zl9vcmlnX2h3YWRkcjsNCj4gICAJc3RydWN0IHNubF9hdHRyX2JpdHNldAkJaWZsYWZfY2Fw czsNCj4gKwlzdHJ1Y3Qgc25sX3BhcnNlZF92Zl9zdGF0dXMJaWZsYWZfdmZfc3RhdHVzOw0K PiAgIH07DQo+ICAgDQo+ICAgI2RlZmluZQlfSU4oX2ZpZWxkKQlvZmZzZXRvZihzdHJ1Y3Qg aWZpbmZvbXNnLCBfZmllbGQpDQo+IEBAIC0yMDEsNiArMzEwLDggQEAgc3RydWN0IHNubF9w YXJzZWRfbGluayB7DQo+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBzbmxfYXR0cl9wYXJzZXIg X25sYV9wX2xpbmtfZmJzZFtdID0gew0KPiAgIAl7IC50eXBlID0gSUZMQUZfT1JJR19IV0FE RFIsIC5vZmYgPSBfT1VUKGlmbGFmX29yaWdfaHdhZGRyKSwgLmNiID0gc25sX2F0dHJfZHVw X25sYSB9LA0KPiAgIAl7IC50eXBlID0gSUZMQUZfQ0FQUywgLm9mZiA9IF9PVVQoaWZsYWZf Y2FwcyksIC5jYiA9IHNubF9hdHRyX2dldF9iaXRzZXRfYyB9LA0KPiArCXsgLnR5cGUgPSBJ RkxBRl9WRl9TVEFUVVMsIC5vZmYgPSBfT1VUKGlmbGFmX3ZmX3N0YXR1cyksDQo+ICsJICAg IC5hcmcgPSAmX3ZmX3N0YXR1c19wYXJzZXIsIC5jYiA9IHNubF9hdHRyX2dldF9uZXN0ZWQg fSwNCj4gICB9Ow0KPiAgIFNOTF9ERUNMQVJFX0FUVFJfUEFSU0VSKF9saW5rX2Zic2RfcGFy c2VyLCBfbmxhX3BfbGlua19mYnNkKTsNCj4gICANCj4gQEAgLTIxMSw2ICszMjIsNyBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IHNubF9hdHRyX3BhcnNlciBfbmxhX3BfbGlua1tdID0gew0K PiAgIAl7IC50eXBlID0gSUZMQV9NVFUsIC5vZmYgPSBfT1VUKGlmbGFfbXR1KSwgLmNiID0g c25sX2F0dHJfZ2V0X3VpbnQzMiB9LA0KPiAgIAl7IC50eXBlID0gSUZMQV9PUEVSU1RBVEUs IC5vZmYgPSBfT1VUKGlmbGFfb3BlcnN0YXRlKSwgLmNiID0gc25sX2F0dHJfZ2V0X3VpbnQ4 IH0sDQo+ICAgCXsgLnR5cGUgPSBJRkxBX0lGQUxJQVMsIC5vZmYgPSBfT1VUKGlmbGFfaWZh bGlhcyksIC5jYiA9IHNubF9hdHRyX2R1cF9zdHJpbmcgfSwNCj4gKwl7IC50eXBlID0gSUZM QV9OVU1fVkYsIC5vZmYgPSBfT1VUKGlmbGFfbnVtX3ZmKSwgLmNiID0gc25sX2F0dHJfZ2V0 X3VpbnQzMiB9LA0KPiAgIAl7IC50eXBlID0gSUZMQV9TVEFUUzY0LCAub2ZmID0gX09VVChp ZmxhX3N0YXRzNjQpLCAuY2IgPSBzbmxfYXR0cl9kdXBfc3RydWN0IH0sDQo+ICAgCXsgLnR5 cGUgPSBJRkxBX1BST01JU0NVSVRZLCAub2ZmID0gX09VVChpZmxhX3Byb21pc2N1aXR5KSwg LmNiID0gc25sX2F0dHJfZ2V0X3VpbnQzMiB9LA0KPiAgIAl7IC50eXBlID0gSUZMQV9DQVJS SUVSLCAub2ZmID0gX09VVChpZmxhX2NhcnJpZXIpLCAuY2IgPSBzbmxfYXR0cl9nZXRfdWlu dDggfSwNCj4gZGlmZiAtLWdpdCBhL3N5cy9uZXRsaW5rL3JvdXRlL2lmYWNlLmMgYi9zeXMv bmV0bGluay9yb3V0ZS9pZmFjZS5jDQo+IGluZGV4IDViNmU1OGE1OThhYS4uYmIwNGMyYTk0 YzFlIDEwMDY0NA0KPiAtLS0gYS9zeXMvbmV0bGluay9yb3V0ZS9pZmFjZS5jDQo+ICsrKyBi L3N5cy9uZXRsaW5rL3JvdXRlL2lmYWNlLmMNCj4gQEAgLTMzLDYgKzMzLDcgQEANCj4gICAj aW5jbHVkZSA8c3lzL2tlcm5lbC5oPg0KPiAgICNpbmNsdWRlIDxzeXMvamFpbC5oPg0KPiAg ICNpbmNsdWRlIDxzeXMvbWFsbG9jLmg+DQo+ICsjaW5jbHVkZSA8c3lzL252Lmg+DQo+ICAg I2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4NCj4gICAjaW5jbHVkZSA8c3lzL3NvY2tpby5oPg0K PiAgICNpbmNsdWRlIDxzeXMvc3lzbG9nLmg+DQo+IEBAIC02NSw2ICs2Niw3IEBAIHN0cnVj dCBuZXRsaW5rX3dhbGthcmdzIHsNCj4gICAJc3RydWN0IG5scGNiICpzbzsNCj4gICAJc3Ry dWN0IHVjcmVkICpjcmVkOw0KPiAgIAl1aW50MzJfdCBmaWJudW07DQo+ICsJdWludDMyX3Qg ZXh0X21hc2s7DQo+ICAgCWludCBmYW1pbHk7DQo+ICAgCWludCBlcnJvcjsNCj4gICAJaW50 IGNvdW50Ow0KPiBAQCAtMjc5LDYgKzI4MSwyNDUgQEAgZHVtcF9pZmFjZV9jYXBzKHN0cnVj dCBubF93cml0ZXIgKm53LCBzdHJ1Y3QgaWZuZXQgKmlmcCkNCj4gICAJcmV0dXJuICh0cnVl KTsNCj4gICB9DQo+ICAgDQo+ICtzdGF0aWMgdWludDhfdA0KPiArdmZfbGlua19zdGF0ZShj b25zdCBjaGFyICpzdGF0ZSkNCj4gK3sNCj4gKw0KPiArCWlmIChzdHJjbXAoc3RhdGUsIElG VkZfTElOS19TVEFURV9ET1dOKSA9PSAwKQ0KPiArCQlyZXR1cm4gKElGTEFGX1ZGX0xJTktf RE9XTik7DQo+ICsJaWYgKHN0cmNtcChzdGF0ZSwgSUZWRl9MSU5LX1NUQVRFX1VQKSA9PSAw KQ0KPiArCQlyZXR1cm4gKElGTEFGX1ZGX0xJTktfVVApOw0KPiArCWlmIChzdHJjbXAoc3Rh dGUsIElGVkZfTElOS19TVEFURV9BVVRPKSA9PSAwKQ0KPiArCQlyZXR1cm4gKElGTEFGX1ZG X0xJTktfQVVUTyk7DQo+ICsJcmV0dXJuIChJRkxBRl9WRl9MSU5LX1VOS05PV04pOw0KPiAr fQ0KPiArDQo+ICtzdGF0aWMgYm9vbA0KPiArZHVtcF92Zl9ib29sKHN0cnVjdCBubF93cml0 ZXIgKm53LCBjb25zdCBudmxpc3RfdCAqdmYsIGNvbnN0IGNoYXIgKm5hbWUsDQo+ICsgICAg dWludDE2X3QgYXR0cikNCj4gK3sNCj4gKw0KPiArCWlmICghbnZsaXN0X2V4aXN0c19ib29s KHZmLCBuYW1lKSkNCj4gKwkJcmV0dXJuICh0cnVlKTsNCj4gKwlyZXR1cm4gKG5sYXR0cl9h ZGRfdTgobncsIGF0dHIsIG52bGlzdF9nZXRfYm9vbCh2ZiwgbmFtZSkgPyAxIDogMCkpOw0K PiArfQ0KPiArDQo+ICtzdGF0aWMgYm9vbA0KPiArZHVtcF92Zl91MTYoc3RydWN0IG5sX3dy aXRlciAqbncsIGNvbnN0IG52bGlzdF90ICp2ZiwgY29uc3QgY2hhciAqbmFtZSwNCj4gKyAg ICB1aW50MTZfdCBhdHRyKQ0KPiArew0KPiArCXVpbnQ2NF90IHZhbHVlOw0KPiArDQo+ICsJ aWYgKCFudmxpc3RfZXhpc3RzX251bWJlcih2ZiwgbmFtZSkpDQo+ICsJCXJldHVybiAodHJ1 ZSk7DQo+ICsJdmFsdWUgPSBudmxpc3RfZ2V0X251bWJlcih2ZiwgbmFtZSk7DQo+ICsJaWYg KHZhbHVlID4gVUlOVDE2X01BWCkNCj4gKwkJcmV0dXJuIChmYWxzZSk7DQo+ICsJcmV0dXJu IChubGF0dHJfYWRkX3UxNihudywgYXR0ciwgKHVpbnQxNl90KXZhbHVlKSk7DQo+ICt9DQo+ ICsNCj4gK3N0YXRpYyBib29sDQo+ICtkdW1wX3ZmX3UzMihzdHJ1Y3Qgbmxfd3JpdGVyICpu dywgY29uc3QgbnZsaXN0X3QgKnZmLCBjb25zdCBjaGFyICpuYW1lLA0KPiArICAgIHVpbnQx Nl90IGF0dHIpDQo+ICt7DQo+ICsJdWludDY0X3QgdmFsdWU7DQo+ICsNCj4gKwlpZiAoIW52 bGlzdF9leGlzdHNfbnVtYmVyKHZmLCBuYW1lKSkNCj4gKwkJcmV0dXJuICh0cnVlKTsNCj4g Kwl2YWx1ZSA9IG52bGlzdF9nZXRfbnVtYmVyKHZmLCBuYW1lKTsNCj4gKwlpZiAodmFsdWUg PiBVSU5UMzJfTUFYKQ0KPiArCQlyZXR1cm4gKGZhbHNlKTsNCj4gKwlyZXR1cm4gKG5sYXR0 cl9hZGRfdTMyKG53LCBhdHRyLCAodWludDMyX3QpdmFsdWUpKTsNCj4gK30NCj4gKw0KPiAr c3RhdGljIGJvb2wNCj4gK2R1bXBfdmZfc3RyaW5nKHN0cnVjdCBubF93cml0ZXIgKm53LCBj b25zdCBudmxpc3RfdCAqdmYsIGNvbnN0IGNoYXIgKm5hbWUsDQo+ICsgICAgdWludDE2X3Qg YXR0cikNCj4gK3sNCj4gKw0KPiArCWlmICghbnZsaXN0X2V4aXN0c19zdHJpbmcodmYsIG5h bWUpKQ0KPiArCQlyZXR1cm4gKHRydWUpOw0KPiArCXJldHVybiAobmxhdHRyX2FkZF9zdHJp bmcobncsIGF0dHIsIG52bGlzdF9nZXRfc3RyaW5nKHZmLCBuYW1lKSkpOw0KPiArfQ0KPiAr DQo+ICtzdGF0aWMgYm9vbA0KPiArZHVtcF92Zl9leHRlbnNpb25zKHN0cnVjdCBubF93cml0 ZXIgKm53LCBjb25zdCBudmxpc3RfdCAqdmYpDQo+ICt7DQo+ICsJY29uc3QgbnZsaXN0X3Qg KmV4dGVuc2lvbiwgKmV4dGVuc2lvbnM7DQo+ICsJY29uc3QgY2hhciAqbmFtZTsNCj4gKwl2 b2lkICpidWYsICpjb29raWU7DQo+ICsJc2l6ZV90IGJ1ZmxlbjsNCj4gKwlpbnQgZW50cnlf b2ZmLCBleHRlbnNpb25zX29mZiwgdHlwZTsNCj4gKwlib29sIG9rOw0KPiArDQo+ICsJaWYg KCFudmxpc3RfZXhpc3RzKHZmLCBJRlZGX1NUQVRVU19FWFRFTlNJT05TKSkNCj4gKwkJcmV0 dXJuICh0cnVlKTsNCj4gKwlpZiAoIW52bGlzdF9leGlzdHNfbnZsaXN0KHZmLCBJRlZGX1NU QVRVU19FWFRFTlNJT05TKSkNCj4gKwkJcmV0dXJuIChmYWxzZSk7DQo+ICsNCj4gKwlleHRl bnNpb25zID0gbnZsaXN0X2dldF9udmxpc3QodmYsIElGVkZfU1RBVFVTX0VYVEVOU0lPTlMp Ow0KPiArCWV4dGVuc2lvbnNfb2ZmID0gbmxhdHRyX2FkZF9uZXN0ZWQobncsIElGTEFGX1ZG X0VYVEVOU0lPTlMpOw0KPiArCWlmIChleHRlbnNpb25zX29mZiA9PSAwKQ0KPiArCQlyZXR1 cm4gKGZhbHNlKTsNCj4gKwljb29raWUgPSBOVUxMOw0KPiArCXdoaWxlICgobmFtZSA9IG52 bGlzdF9uZXh0KGV4dGVuc2lvbnMsICZ0eXBlLCAmY29va2llKSkgIT0gTlVMTCkgew0KPiAr CQlpZiAodHlwZSAhPSBOVl9UWVBFX05WTElTVCkNCj4gKwkJCXJldHVybiAoZmFsc2UpOw0K PiArCQlleHRlbnNpb24gPSBudmxpc3RfZ2V0X252bGlzdChleHRlbnNpb25zLCBuYW1lKTsN Cj4gKwkJaWYgKCFudmxpc3RfZXhpc3RzX251bWJlcihleHRlbnNpb24sDQo+ICsJCSAgICBJ RlZGX1NUQVRVU19FWFRfVkVSU0lPTikpDQo+ICsJCQlyZXR1cm4gKGZhbHNlKTsNCj4gKwkJ YnVmID0gbnZsaXN0X3BhY2soZXh0ZW5zaW9uLCAmYnVmbGVuKTsNCj4gKwkJaWYgKGJ1ZiA9 PSBOVUxMKQ0KPiArCQkJcmV0dXJuIChmYWxzZSk7DQo+ICsJCWlmIChidWZsZW4gPiBVSU5U MTZfTUFYIC0gc2l6ZW9mKHN0cnVjdCBubGF0dHIpKSB7DQo+ICsJCQlmcmVlKGJ1ZiwgTV9O VkxJU1QpOw0KPiArCQkJcmV0dXJuIChmYWxzZSk7DQo+ICsJCX0NCj4gKwkJZW50cnlfb2Zm ID0gbmxhdHRyX2FkZF9uZXN0ZWQobncsDQo+ICsJCSAgICBJRkxBRl9WRl9FWFRfTElTVF9F TlRSWSk7DQo+ICsJCWlmIChlbnRyeV9vZmYgPT0gMCkgew0KPiArCQkJZnJlZShidWYsIE1f TlZMSVNUKTsNCj4gKwkJCXJldHVybiAoZmFsc2UpOw0KPiArCQl9DQo+ICsJCW9rID0gbmxh dHRyX2FkZF9zdHJpbmcobncsIElGTEFGX1ZGX0VYVF9OQU1FLCBuYW1lKSAmJg0KPiArCQkg ICAgbmxhdHRyX2FkZChudywgSUZMQUZfVkZfRVhUX0RBVEEsICh1aW50MTZfdClidWZsZW4s IGJ1Zik7DQo+ICsJCWZyZWUoYnVmLCBNX05WTElTVCk7DQo+ICsJCWlmICghb2spDQo+ICsJ CQlyZXR1cm4gKGZhbHNlKTsNCj4gKwkJbmxhdHRyX3NldF9sZW4obncsIGVudHJ5X29mZik7 DQo+ICsJfQ0KPiArCW5sYXR0cl9zZXRfbGVuKG53LCBleHRlbnNpb25zX29mZik7DQo+ICsJ cmV0dXJuICh0cnVlKTsNCj4gK30NCj4gKw0KPiArc3RhdGljIGJvb2wNCj4gK2R1bXBfdmZf ZW50cnkoc3RydWN0IG5sX3dyaXRlciAqbncsIGNvbnN0IG52bGlzdF90ICp2ZikNCj4gK3sN Cj4gKwljb25zdCB2b2lkICptYWM7DQo+ICsJY29uc3QgY2hhciAqbW9kZSwgKnBvbGljeTsN Cj4gKwlzaXplX3QgbWFjbGVuOw0KPiArCXVpbnQ4X3Qgdmxhbl9tb2RlOw0KPiArCWludCBv ZmY7DQo+ICsJYm9vbCBvazsNCj4gKw0KPiArCW9mZiA9IG5sYXR0cl9hZGRfbmVzdGVkKG53 LCBJRkxBRl9WRl9MSVNUX0VOVFJZKTsNCj4gKwlpZiAob2ZmID09IDApDQo+ICsJCXJldHVy biAoZmFsc2UpOw0KPiArCW9rID0gZHVtcF92Zl91MzIobncsIHZmLCBJRlZGX1NUQVRVU19J TkRFWCwgSUZMQUZfVkZfSU5ERVgpICYmDQo+ICsJICAgIGR1bXBfdmZfYm9vbChudywgdmYs IElGVkZfU1RBVFVTX0NPTkZJR1VSRUQsDQo+ICsJICAgIElGTEFGX1ZGX0NPTkZJR1VSRUQp ICYmDQo+ICsJICAgIGR1bXBfdmZfYm9vbChudywgdmYsIElGVkZfU1RBVFVTX0lOSVRJQUxJ WkVELA0KPiArCSAgICBJRkxBRl9WRl9JTklUSUFMSVpFRCk7DQo+ICsJaWYgKCFvaykNCj4g KwkJcmV0dXJuIChmYWxzZSk7DQo+ICsNCj4gKwlpZiAobnZsaXN0X2V4aXN0c19iaW5hcnko dmYsIElGVkZfU1RBVFVTX01BQykpIHsNCj4gKwkJbWFjID0gbnZsaXN0X2dldF9iaW5hcnko dmYsIElGVkZfU1RBVFVTX01BQywgJm1hY2xlbik7DQo+ICsJCWlmIChtYWNsZW4gPiBVSU5U MTZfTUFYIC0gc2l6ZW9mKHN0cnVjdCBubGF0dHIpIHx8DQo+ICsJCSAgICAhbmxhdHRyX2Fk ZChudywgSUZMQUZfVkZfTUFDLCAodWludDE2X3QpbWFjbGVuLCBtYWMpKQ0KPiArCQkJcmV0 dXJuIChmYWxzZSk7DQo+ICsJfQ0KPiArCWlmIChudmxpc3RfZXhpc3RzX3N0cmluZyh2Ziwg SUZWRl9TVEFUVVNfVkxBTl9NT0RFKSkgew0KPiArCQltb2RlID0gbnZsaXN0X2dldF9zdHJp bmcodmYsIElGVkZfU1RBVFVTX1ZMQU5fTU9ERSk7DQo+ICsJCWlmIChzdHJjbXAobW9kZSwg SUZWRl9WTEFOX01PREVfQUNDRVNTKSA9PSAwKQ0KPiArCQkJdmxhbl9tb2RlID0gSUZMQUZf VkZfVkxBTl9BQ0NFU1M7DQo+ICsJCWVsc2UgaWYgKHN0cmNtcChtb2RlLCBJRlZGX1ZMQU5f TU9ERV9UUlVOSykgPT0gMCkNCj4gKwkJCXZsYW5fbW9kZSA9IElGTEFGX1ZGX1ZMQU5fVFJV Tks7DQo+ICsJCWVsc2UNCj4gKwkJCXZsYW5fbW9kZSA9IElGTEFGX1ZGX1ZMQU5fVU5LTk9X TjsNCj4gKwkJaWYgKCFubGF0dHJfYWRkX3U4KG53LCBJRkxBRl9WRl9WTEFOX01PREUsIHZs YW5fbW9kZSkpDQo+ICsJCQlyZXR1cm4gKGZhbHNlKTsNCj4gKwl9DQo+ICsJb2sgPSBkdW1w X3ZmX3UxNihudywgdmYsIElGVkZfU1RBVFVTX1ZMQU4sIElGTEFGX1ZGX1ZMQU4pICYmDQo+ ICsJICAgIGR1bXBfdmZfdTMyKG53LCB2ZiwgSUZWRl9TVEFUVVNfVkxBTl9DT1VOVCwNCj4g KwkgICAgSUZMQUZfVkZfVkxBTl9DT1VOVCkgJiYNCj4gKwkgICAgZHVtcF92Zl91MzIobncs IHZmLCBJRlZGX1NUQVRVU19WTEFOX0xJTUlULA0KPiArCSAgICBJRkxBRl9WRl9WTEFOX0xJ TUlUKSAmJg0KPiArCSAgICBkdW1wX3ZmX3UzMihudywgdmYsIElGVkZfU1RBVFVTX05VTV9R VUVVRVMsDQo+ICsJICAgIElGTEFGX1ZGX05VTV9RVUVVRVMpICYmDQo+ICsJICAgIGR1bXBf dmZfYm9vbChudywgdmYsIElGVkZfU1RBVFVTX0FMTE9XX1NFVF9NQUMsDQo+ICsJICAgIElG TEFGX1ZGX0FMTE9XX1NFVF9NQUMpICYmDQo+ICsJICAgIGR1bXBfdmZfYm9vbChudywgdmYs IElGVkZfU1RBVFVTX0FMTE9XX1NFVF9WTEFOLA0KPiArCSAgICBJRkxBRl9WRl9BTExPV19T RVRfVkxBTikgJiYNCj4gKwkgICAgZHVtcF92Zl9ib29sKG53LCB2ZiwgSUZWRl9TVEFUVVNf TUFDX0FOVElfU1BPT0YsDQo+ICsJICAgIElGTEFGX1ZGX01BQ19BTlRJX1NQT09GKSAmJg0K PiArCSAgICBkdW1wX3ZmX2Jvb2wobncsIHZmLCBJRlZGX1NUQVRVU19BTExPV19QUk9NSVND LA0KPiArCSAgICBJRkxBRl9WRl9BTExPV19QUk9NSVNDKSAmJg0KPiArCSAgICBkdW1wX3Zm X2Jvb2wobncsIHZmLCBJRlZGX1NUQVRVU19UUkFGRklDX0VOQUJMRUQsDQo+ICsJICAgIElG TEFGX1ZGX1RSQUZGSUNfRU5BQkxFRCkgJiYNCj4gKwkgICAgZHVtcF92Zl9ib29sKG53LCB2 ZiwgSUZWRl9TVEFUVVNfTUREX0JMT0NLRUQsDQo+ICsJICAgIElGTEFGX1ZGX01ERF9CTE9D S0VEKSAmJg0KPiArCSAgICBkdW1wX3ZmX2Jvb2wobncsIHZmLCBJRlZGX1NUQVRVU19RVUFS QU5USU5FRCwNCj4gKwkgICAgSUZMQUZfVkZfUVVBUkFOVElORUQpICYmDQo+ICsJICAgIGR1 bXBfdmZfc3RyaW5nKG53LCB2ZiwgSUZWRl9TVEFUVVNfQVBJX1ZFUlNJT04sDQo+ICsJICAg IElGTEFGX1ZGX0FQSV9WRVJTSU9OKTsNCj4gKwlpZiAoIW9rKQ0KPiArCQlyZXR1cm4gKGZh bHNlKTsNCj4gKwlpZiAobnZsaXN0X2V4aXN0c19zdHJpbmcodmYsIElGVkZfU1RBVFVTX0xJ TktfU1RBVEVfUE9MSUNZKSkgew0KPiArCQlwb2xpY3kgPSBudmxpc3RfZ2V0X3N0cmluZyh2 ZiwNCj4gKwkJICAgIElGVkZfU1RBVFVTX0xJTktfU1RBVEVfUE9MSUNZKTsNCj4gKwkJaWYg KCFubGF0dHJfYWRkX3U4KG53LCBJRkxBRl9WRl9MSU5LX1NUQVRFX1BPTElDWSwNCj4gKwkJ ICAgIHZmX2xpbmtfc3RhdGUocG9saWN5KSkpDQo+ICsJCQlyZXR1cm4gKGZhbHNlKTsNCj4g Kwl9DQo+ICsJaWYgKCFkdW1wX3ZmX2V4dGVuc2lvbnMobncsIHZmKSkNCj4gKwkJcmV0dXJu IChmYWxzZSk7DQo+ICsJbmxhdHRyX3NldF9sZW4obncsIG9mZik7DQo+ICsJcmV0dXJuICh0 cnVlKTsNCj4gK30NCj4gKw0KPiArc3RhdGljIGJvb2wNCj4gK2R1bXBfdmZfc3RhdHVzKHN0 cnVjdCBubF93cml0ZXIgKm53LCBjb25zdCBudmxpc3RfdCAqc3RhdHVzLCBpbnQgZXJyb3Ip DQo+ICt7DQo+ICsJY29uc3QgbnZsaXN0X3QgKiBjb25zdCAqdmZzOw0KPiArCWNvbnN0IGNo YXIgKnN0YXRlOw0KPiArCXNpemVfdCBpLCBudW1fdmZzOw0KPiArCXVpbnQ2NF90IHZlcnNp b247DQo+ICsJaW50IGxpc3Rfb2ZmLCBvZmY7DQo+ICsNCj4gKwlvZmYgPSBubGF0dHJfYWRk X25lc3RlZChudywgSUZMQUZfVkZfU1RBVFVTKTsNCj4gKwlpZiAob2ZmID09IDApDQo+ICsJ CXJldHVybiAoZmFsc2UpOw0KPiArCWlmIChlcnJvciAhPSAwKSB7DQo+ICsJCWlmICghbmxh dHRyX2FkZF91MzIobncsIElGTEFGX1ZGU19FUlJPUiwgKHVpbnQzMl90KWVycm9yKSkNCj4g KwkJCXJldHVybiAoZmFsc2UpOw0KPiArCQlubGF0dHJfc2V0X2xlbihudywgb2ZmKTsNCj4g KwkJcmV0dXJuICh0cnVlKTsNCj4gKwl9DQo+ICsNCj4gKwlpZiAoIW52bGlzdF9leGlzdHNf bnVtYmVyKHN0YXR1cywgSUZWRl9TVEFUVVNfVkVSU0lPTl9LRVkpKQ0KPiArCQlyZXR1cm4g KGZhbHNlKTsNCj4gKwl2ZXJzaW9uID0gbnZsaXN0X2dldF9udW1iZXIoc3RhdHVzLCBJRlZG X1NUQVRVU19WRVJTSU9OX0tFWSk7DQo+ICsJaWYgKHZlcnNpb24gPiBVSU5UMzJfTUFYIHx8 DQo+ICsJICAgICFubGF0dHJfYWRkX3UzMihudywgSUZMQUZfVkZTX1ZFUlNJT04sICh1aW50 MzJfdCl2ZXJzaW9uKSkNCj4gKwkJcmV0dXJuIChmYWxzZSk7DQo+ICsJaWYgKG52bGlzdF9l eGlzdHNfc3RyaW5nKHN0YXR1cywgSUZWRl9TVEFUVVNfUEZfTElOS19TVEFURSkpIHsNCj4g KwkJc3RhdGUgPSBudmxpc3RfZ2V0X3N0cmluZyhzdGF0dXMsIElGVkZfU1RBVFVTX1BGX0xJ TktfU1RBVEUpOw0KPiArCQlpZiAoIW5sYXR0cl9hZGRfdTgobncsIElGTEFGX1ZGU19QRl9M SU5LX1NUQVRFLA0KPiArCQkgICAgdmZfbGlua19zdGF0ZShzdGF0ZSkpKQ0KPiArCQkJcmV0 dXJuIChmYWxzZSk7DQo+ICsJfQ0KPiArCWlmIChudmxpc3RfZXhpc3RzX251bWJlcihzdGF0 dXMsIElGVkZfU1RBVFVTX1BGX0xJTktfU1BFRUQpICYmDQo+ICsJICAgICFubGF0dHJfYWRk X3U2NChudywgSUZMQUZfVkZTX1BGX0xJTktfU1BFRUQsDQo+ICsJICAgIG52bGlzdF9nZXRf bnVtYmVyKHN0YXR1cywgSUZWRl9TVEFUVVNfUEZfTElOS19TUEVFRCkpKQ0KPiArCQlyZXR1 cm4gKGZhbHNlKTsNCj4gKwlpZiAoIW52bGlzdF9leGlzdHNfbnZsaXN0X2FycmF5KHN0YXR1 cywgSUZWRl9TVEFUVVNfVkZTKSkNCj4gKwkJcmV0dXJuIChmYWxzZSk7DQo+ICsNCj4gKwl2 ZnMgPSBudmxpc3RfZ2V0X252bGlzdF9hcnJheShzdGF0dXMsIElGVkZfU1RBVFVTX1ZGUywg Jm51bV92ZnMpOw0KPiArCWxpc3Rfb2ZmID0gbmxhdHRyX2FkZF9uZXN0ZWQobncsIElGTEFG X1ZGU19MSVNUKTsNCj4gKwlpZiAobGlzdF9vZmYgPT0gMCkNCj4gKwkJcmV0dXJuIChmYWxz ZSk7DQo+ICsJZm9yIChpID0gMDsgaSA8IG51bV92ZnM7IGkrKykgew0KPiArCQlpZiAoIWR1 bXBfdmZfZW50cnkobncsIHZmc1tpXSkpDQo+ICsJCQlyZXR1cm4gKGZhbHNlKTsNCj4gKwl9 DQo+ICsJbmxhdHRyX3NldF9sZW4obncsIGxpc3Rfb2ZmKTsNCj4gKwlubGF0dHJfc2V0X2xl bihudywgb2ZmKTsNCj4gKwlyZXR1cm4gKHRydWUpOw0KPiArfQ0KPiArDQo+ICAgLyoNCj4g ICAgKiBEdW1wcyBpbnRlcmZhY2Ugc3RhdGUsIHByb3BlcnRpZXMgYW5kIG1ldHJpY3MuDQo+ ICAgICogQG53OiBtZXNzYWdlIHdyaXRlcg0KPiBAQCAtMjkwLDEyICs1MzEsMjYgQEAgZHVt cF9pZmFjZV9jYXBzKHN0cnVjdCBubF93cml0ZXIgKm53LCBzdHJ1Y3QgaWZuZXQgKmlmcCkN Cj4gICAgKi8NCj4gICBzdGF0aWMgYm9vbA0KPiAgIGR1bXBfaWZhY2Uoc3RydWN0IG5sX3dy aXRlciAqbncsIGlmX3QgaWZwLCBjb25zdCBzdHJ1Y3Qgbmxtc2doZHIgKmhkciwNCj4gLSAg ICBpbnQgaWZfZmxhZ3NfbWFzaywgY29uc3QgY2hhciAqaWZuYW1lKQ0KPiArICAgIGludCBp Zl9mbGFnc19tYXNrLCBjb25zdCBjaGFyICppZm5hbWUsIHVpbnQzMl90IGV4dF9tYXNrKQ0K PiAgIHsNCj4gICAJc3RydWN0IGVwb2NoX3RyYWNrZXIgZXQ7DQo+ICsJbnZsaXN0X3QgKnZm X3N0YXR1czsNCj4gKwlzaXplX3QgbnVtX3ZmczsNCj4gICAgICAgICAgIHN0cnVjdCBpZmlu Zm9tc2cgKmlmaW5mbzsNCj4gKwlib29sIGluY2x1ZGVfdmZfc3RhdHVzOw0KPiArCWludCB2 Zl9lcnJvcjsNCj4gICANCj4gICAgICAgICAgIE5MX0xPRyhMT0dfREVCVUczLCAiZHVtcGlu ZyBpbnRlcmZhY2UgJXMgZGF0YSIsIGlmX25hbWUoaWZwKSk7DQo+ICsJdmZfc3RhdHVzID0g TlVMTDsNCj4gKwl2Zl9lcnJvciA9IDA7DQo+ICsJaW5jbHVkZV92Zl9zdGF0dXMgPSAoZXh0 X21hc2sgJiBSVEVYVF9GSUxURVJfVkYpICE9IDA7DQo+ICsJaWYgKGluY2x1ZGVfdmZfc3Rh dHVzKSB7DQo+ICsJCXZmX2Vycm9yID0gaWZfZ2V0X3ZmX3N0YXR1cyhpZnAsICZ2Zl9zdGF0 dXMpOw0KPiArCQlpZiAodmZfZXJyb3IgPT0gRUlOVkFMIHx8IHZmX2Vycm9yID09IEVOT1RU WSB8fA0KPiArCQkgICAgdmZfZXJyb3IgPT0gRU5YSU8gfHwgdmZfZXJyb3IgPT0gRU5PVFNV UCB8fA0KPiArCQkgICAgdmZfZXJyb3IgPT0gRU9QTk9UU1VQUCkNCj4gKwkJCWluY2x1ZGVf dmZfc3RhdHVzID0gZmFsc2U7DQo+ICsJfQ0KPiAgIA0KPiAgIAlpZiAoIW5sbXNnX3JlcGx5 KG53LCBoZHIsIHNpemVvZihzdHJ1Y3QgaWZpbmZvbXNnKSkpDQo+ICAgCQlnb3RvIGVub21l bTsNCj4gQEAgLTM0MSw2ICs1OTYsMTQgQEAgZHVtcF9pZmFjZShzdHJ1Y3Qgbmxfd3JpdGVy ICpudywgaWZfdCBpZnAsIGNvbnN0IHN0cnVjdCBubG1zZ2hkciAqaGRyLA0KPiAgICAgICAg ICAgfQ0KPiAgIA0KPiAgICAgICAgICAgbmxhdHRyX2FkZF91MzIobncsIElGTEFfTVRVLCBp Zl9nZXRtdHUoaWZwKSk7DQo+ICsJaWYgKHZmX3N0YXR1cyAhPSBOVUxMICYmDQo+ICsJICAg IG52bGlzdF9leGlzdHNfbnZsaXN0X2FycmF5KHZmX3N0YXR1cywgSUZWRl9TVEFUVVNfVkZT KSkgew0KPiArCQkodm9pZCludmxpc3RfZ2V0X252bGlzdF9hcnJheSh2Zl9zdGF0dXMsIElG VkZfU1RBVFVTX1ZGUywNCj4gKwkJICAgICZudW1fdmZzKTsNCj4gKwkJaWYgKG51bV92ZnMg PiBVSU5UMzJfTUFYIHx8DQo+ICsJCSAgICAhbmxhdHRyX2FkZF91MzIobncsIElGTEFfTlVN X1ZGLCAodWludDMyX3QpbnVtX3ZmcykpDQo+ICsJCQlnb3RvIGVub21lbTsNCj4gKwl9DQo+ ICAgLyoNCj4gICAgICAgICAgIG5sYXR0cl9hZGRfdTMyKG53LCBJRkxBX01JTl9NVFUsIDYw KTsNCj4gICAgICAgICAgIG5sYXR0cl9hZGRfdTMyKG53LCBJRkxBX01BWF9NVFUsIDkwMDAp Ow0KPiBAQCAtMzU1LDYgKzYxOCw5IEBAIGR1bXBfaWZhY2Uoc3RydWN0IG5sX3dyaXRlciAq bncsIGlmX3QgaWZwLCBjb25zdCBzdHJ1Y3Qgbmxtc2doZHIgKmhkciwNCj4gICAJaWYgKG9m ZiAhPSAwKSB7DQo+ICAgCQlnZXRfaHdhZGRyKG53LCBpZnApOw0KPiAgIAkJZHVtcF9pZmFj ZV9jYXBzKG53LCBpZnApOw0KPiArCQlpZiAoaW5jbHVkZV92Zl9zdGF0dXMgJiYNCj4gKwkJ ICAgICFkdW1wX3ZmX3N0YXR1cyhudywgdmZfc3RhdHVzLCB2Zl9lcnJvcikpDQo+ICsJCQln b3RvIGVub21lbTsNCj4gICANCj4gICAJCW5sYXR0cl9zZXRfbGVuKG53LCBvZmYpOw0KPiAg IAl9DQo+IEBAIC0zNjgsMTEgKzYzNCwxNCBAQCBkdW1wX2lmYWNlKHN0cnVjdCBubF93cml0 ZXIgKm53LCBpZl90IGlmcCwgY29uc3Qgc3RydWN0IG5sbXNnaGRyICpoZHIsDQo+ICAgDQo+ ICAgCW53LT5pZnAgPSBpZnA7DQo+ICAgDQo+IC0gICAgICAgIGlmIChubG1zZ19lbmQobncp KQ0KPiArCWlmIChubG1zZ19lbmQobncpKSB7DQo+ICsJCW52bGlzdF9kZXN0cm95KHZmX3N0 YXR1cyk7DQo+ICAgCQlyZXR1cm4gKHRydWUpOw0KPiArCX0NCj4gICANCj4gICBlbm9tZW06 DQo+IC0gICAgICAgIE5MX0xPRyhMT0dfREVCVUcsICJ1bmFibGUgdG8gZHVtcCBpbnRlcmZh Y2UgJXMgc3RhdGUgKEVOT01FTSkiLCBpZl9uYW1lKGlmcCkpOw0KPiArCW52bGlzdF9kZXN0 cm95KHZmX3N0YXR1cyk7DQo+ICsJTkxfTE9HKExPR19ERUJVRywgInVuYWJsZSB0byBkdW1w IGludGVyZmFjZSAlcyBzdGF0ZSIsIGlmX25hbWUoaWZwKSk7DQo+ICAgICAgICAgICBubG1z Z19hYm9ydChudyk7DQo+ICAgICAgICAgICByZXR1cm4gKGZhbHNlKTsNCj4gICB9DQo+IEBA IC00MTUsNiArNjg0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBubGF0dHJfcGFyc2VyIG5s YV9wX2lmW10gPSB7DQo+ICAgCXsgLnR5cGUgPSBJRkxBX0xJTktJTkZPLCAuYXJnID0gJmxp bmZvX3BhcnNlciwgLmNiID0gbmxhdHRyX2dldF9uZXN0ZWQgfSwNCj4gICAJeyAudHlwZSA9 IElGTEFfSUZBTElBUywgLm9mZiA9IF9PVVQoaWZsYV9pZmFsaWFzKSwgLmNiID0gbmxhdHRy X2dldF9zdHJpbmcgfSwNCj4gICAJeyAudHlwZSA9IElGTEFfR1JPVVAsIC5vZmYgPSBfT1VU KGlmbGFfZ3JvdXApLCAuY2IgPSBubGF0dHJfZ2V0X3N0cmluZyB9LA0KPiArCXsgLnR5cGUg PSBJRkxBX0VYVF9NQVNLLCAub2ZmID0gX09VVChpZmxhX2V4dF9tYXNrKSwgLmNiID0gbmxh dHRyX2dldF91aW50MzIgfSwNCj4gICAJeyAudHlwZSA9IElGTEFfQUxUX0lGTkFNRSwgLm9m ZiA9IF9PVVQoaWZsYV9pZm5hbWUpLCAuY2IgPSBubGF0dHJfZ2V0X3N0cmluZyB9LA0KPiAg IH07DQo+ICAgI3VuZGVmIF9JTg0KPiBAQCAtNDQxLDcgKzcxMSw3IEBAIHN0YXRpYyBpbnQN Cj4gICBkdW1wX2NiKGlmX3QgaWZwLCB2b2lkICpfYXJnKQ0KPiAgIHsNCj4gICAJc3RydWN0 IG5ldGxpbmtfd2Fsa2FyZ3MgKndhID0gKHN0cnVjdCBuZXRsaW5rX3dhbGthcmdzICopX2Fy ZzsNCj4gLQlpZiAoIWR1bXBfaWZhY2Uod2EtPm53LCBpZnAsICZ3YS0+aGRyLCAwLCBOVUxM KSkNCj4gKwlpZiAoIWR1bXBfaWZhY2Uod2EtPm53LCBpZnAsICZ3YS0+aGRyLCAwLCBOVUxM LCB3YS0+ZXh0X21hc2spKQ0KPiAgIAkJcmV0dXJuIChFTk9NRU0pOw0KPiAgIAlyZXR1cm4g KDApOw0KPiAgIH0NCj4gQEAgLTQ3Myw2ICs3NDMsNyBAQCBydG5sX2hhbmRsZV9nZXRsaW5r KHN0cnVjdCBubG1zZ2hkciAqaGRyLCBzdHJ1Y3QgbmxwY2IgKm5scCwgc3RydWN0IG5sX3Bz dGF0ZSAqbg0KPiAgIAkJLmhkci5ubG1zZ19zZXEgPSBoZHItPm5sbXNnX3NlcSwNCj4gICAJ CS5oZHIubmxtc2dfZmxhZ3MgPSBoZHItPm5sbXNnX2ZsYWdzLA0KPiAgIAkJLmhkci5ubG1z Z190eXBlID0gTkxfUlRNX05FV0xJTkssDQo+ICsJCS5leHRfbWFzayA9IGF0dHJzLmlmbGFf ZXh0X21hc2ssDQo+ICAgCX07DQo+ICAgDQo+ICAgCS8qIEZhc3QgdHJhY2sgZm9yIGFuIGlu dGVyZmFjZSB3LyBleHBsaWNpdCBuYW1lIG9yIGluZGV4IG1hdGNoICovDQo+IEBAIC00OTEs NyArNzYyLDggQEAgcnRubF9oYW5kbGVfZ2V0bGluayhzdHJ1Y3Qgbmxtc2doZHIgKmhkciwg c3RydWN0IG5scGNiICpubHAsIHN0cnVjdCBubF9wc3RhdGUgKm4NCj4gICANCj4gICAJCWlm IChpZnAgIT0gTlVMTCkgew0KPiAgIAkJCWlmIChtYXRjaF9pZmFjZShpZnAsICZhdHRycykp IHsNCj4gLQkJCQlpZiAoIWR1bXBfaWZhY2Uod2EubncsIGlmcCwgJndhLmhkciwgMCwgTlVM TCkpDQo+ICsJCQkJaWYgKCFkdW1wX2lmYWNlKHdhLm53LCBpZnAsICZ3YS5oZHIsIDAsIE5V TEwsDQo+ICsJCQkJICAgIHdhLmV4dF9tYXNrKSkNCj4gICAJCQkJCWVycm9yID0gRU5PTUVN Ow0KPiAgIAkJCX0gZWxzZQ0KPiAgIAkJCQllcnJvciA9IEVOT0RFVjsNCj4gQEAgLTE0MTgs NyArMTY5MCw3IEBAIHJ0bmxfaGFuZGxlX2lmZXZlbnQoaWZfdCBpZnAsIGludCBubG1zZ190 eXBlLCBpbnQgaWZfZmxhZ3NfbWFzaywNCj4gICAJCU5MX0xPRyhMT0dfREVCVUcsICJlcnJv ciBhbGxvY2F0aW5nIGdyb3VwIHdyaXRlciIpOw0KPiAgIAkJcmV0dXJuOw0KPiAgIAl9DQo+ IC0JZHVtcF9pZmFjZSgmbncsIGlmcCwgJmhkciwgaWZfZmxhZ3NfbWFzaywgaWZuYW1lKTsN Cj4gKwlkdW1wX2lmYWNlKCZudywgaWZwLCAmaGRyLCBpZl9mbGFnc19tYXNrLCBpZm5hbWUs IDApOw0KPiAgICAgICAgICAgbmxtc2dfZmx1c2goJm53KTsNCj4gICB9DQo+ICAgDQo+IGRp ZmYgLS1naXQgYS9zeXMvbmV0bGluay9yb3V0ZS9pbnRlcmZhY2UuaCBiL3N5cy9uZXRsaW5r L3JvdXRlL2ludGVyZmFjZS5oDQo+IGluZGV4IGMwMThhMGFkYjIwZC4uNjZiYWIyNDA2N2Rm IDEwMDY0NA0KPiAtLS0gYS9zeXMvbmV0bGluay9yb3V0ZS9pbnRlcmZhY2UuaA0KPiArKysg Yi9zeXMvbmV0bGluay9yb3V0ZS9pbnRlcmZhY2UuaA0KPiBAQCAtOTQsNyArOTQsNyBAQCBl bnVtIHsNCj4gICAjZGVmaW5lCUlGTEFfTkVUX05TX1BJRCBJRkxBX05FVF9OU19QSUQNCj4g ICAJSUZMQV9JRkFMSUFTCT0gMjAsCS8qIHN0cmluZzogaW50ZXJmYWNlIGRlc2NyaXB0aW9u ICovDQo+ICAgI2RlZmluZQlJRkxBX0lGQUxJQVMgSUZMQV9JRkFMSUFTDQo+IC0JSUZMQV9O VU1fVkYJPSAyMSwJLyogbm90IHN1cHBvcnRlZCAqLw0KPiArCUlGTEFfTlVNX1ZGCT0gMjEs CS8qIHUzMjogYWN0aXZlIFZGcywgd2hlbiByZXF1ZXN0ZWQgKi8NCj4gICAjZGVmaW5lCUlG TEFfTlVNX1ZGIElGTEFfTlVNX1ZGDQo+ICAgCUlGTEFfVkZJTkZPX0xJU1Q9IDIyLAkvKiBu b3Qgc3VwcG9ydGVkICovDQo+ICAgI2RlZmluZQlJRkxBX1ZGSU5GT19MSVNUIElGTEFfVkZJ TkZPX0xJU1QNCj4gQEAgLTE0NywxNSArMTQ3LDk1IEBAIGVudW0gew0KPiAgIH07DQo+ICAg I2RlZmluZSBJRkxBX01BWCAoX19JRkxBX01BWCAtIDEpDQo+ICAgDQo+ICsvKiBJRkxBX0VY VF9NQVNLIHZhbHVlcy4gKi8NCj4gKyNkZWZpbmUJUlRFWFRfRklMVEVSX1ZGCQkoMVUgPDwg MCkNCj4gKw0KPiAgIGVudW0gew0KPiAgIAlJRkxBRl9VTlNQRUMJCT0gMCwNCj4gICAJSUZM QUZfT1JJR19JRk5BTUUJPSAxLAkvKiBzdHJpbmcsIG9yaWdpbmFsIGludGVyZmFjZSBuYW1l IGF0IGNyZWF0aW9uICovDQo+ICAgCUlGTEFGX09SSUdfSFdBRERSCT0gMiwJLyogYmluYXJ5 LCBvcmlnaW5hbCBoYXJkd2FyZSBhZGRyZXNzICovDQo+ICAgCUlGTEFGX0NBUFMJCT0gMywJ LyogYml0c2V0LCBpbnRlcmZhY2UgY2FwYWJpbGl0aWVzICovDQo+ICsJSUZMQUZfVkZfU1RB VFVTCQk9IDQsCS8qIG5lc3RlZCwgSUZMQUZfVkZTXyogKi8NCj4gICAJX19JRkxBRl9NQVgN Cj4gICB9Ow0KPiAgICNkZWZpbmUgSUZMQUZfTUFYIChfX0lGTEFGX01BWCAtIDEpDQo+ICAg DQo+ICsvKiBJRkxBRl9WRl9TVEFUVVMgYXR0cmlidXRlcy4gKi8NCj4gK2VudW0gew0KPiAr CUlGTEFGX1ZGU19VTlNQRUMJPSAwLA0KPiArCUlGTEFGX1ZGU19WRVJTSU9OCT0gMSwJLyog dTMyOiBJRlZGX1NUQVRVU19WRVJTSU9OICovDQo+ICsJSUZMQUZfVkZTX0VSUk9SCQk9IDIs CS8qIHUzMjogZXJybm8gZnJvbSByZXF1ZXN0ZWQgcXVlcnkgKi8NCj4gKwlJRkxBRl9WRlNf UEZfTElOS19TVEFURQk9IDMsCS8qIHU4OiBJRkxBRl9WRl9MSU5LXyogKi8NCj4gKwlJRkxB Rl9WRlNfUEZfTElOS19TUEVFRAk9IDQsCS8qIHU2NDogYml0cyBwZXIgc2Vjb25kICovDQo+ ICsJSUZMQUZfVkZTX0xJU1QJCT0gNSwJLyogbmVzdGVkLCBJRkxBRl9WRl9MSVNUXyogKi8N Cj4gKwlfX0lGTEFGX1ZGU19NQVgNCj4gK307DQo+ICsjZGVmaW5lCUlGTEFGX1ZGU19NQVgJ KF9fSUZMQUZfVkZTX01BWCAtIDEpDQo+ICsNCj4gKy8qIElGTEFGX1ZGU19MSVNUIGF0dHJp YnV0ZXMuICovDQo+ICtlbnVtIHsNCj4gKwlJRkxBRl9WRl9MSVNUX1VOU1BFQwk9IDAsDQo+ ICsJSUZMQUZfVkZfTElTVF9FTlRSWQk9IDEsCS8qIG5lc3RlZCwgSUZMQUZfVkZfKjsgcmVw ZWF0ZWQgKi8NCj4gKwlfX0lGTEFGX1ZGX0xJU1RfTUFYDQo+ICt9Ow0KPiArI2RlZmluZQlJ RkxBRl9WRl9MSVNUX01BWAkoX19JRkxBRl9WRl9MSVNUX01BWCAtIDEpDQo+ICsNCj4gKy8q IElGTEFGX1ZGX0xJU1RfRU5UUlkgYXR0cmlidXRlcy4gKi8NCj4gK2VudW0gew0KPiArCUlG TEFGX1ZGX1VOU1BFQwkJCT0gMCwNCj4gKwlJRkxBRl9WRl9JTkRFWAkJCT0gMSwJLyogdTMy ICovDQo+ICsJSUZMQUZfVkZfQ09ORklHVVJFRAkJPSAyLAkvKiB1OCBib29sZWFuICovDQo+ ICsJSUZMQUZfVkZfSU5JVElBTElaRUQJCT0gMywJLyogdTggYm9vbGVhbiAqLw0KPiArCUlG TEFGX1ZGX01BQwkJCT0gNCwJLyogYmluYXJ5ICovDQo+ICsJSUZMQUZfVkZfVkxBTl9NT0RF CQk9IDUsCS8qIHU4OiBJRkxBRl9WRl9WTEFOXyogKi8NCj4gKwlJRkxBRl9WRl9WTEFOCQkJ PSA2LAkvKiB1MTYgKi8NCj4gKwlJRkxBRl9WRl9WTEFOX0NPVU5UCQk9IDcsCS8qIHUzMiAq Lw0KPiArCUlGTEFGX1ZGX1ZMQU5fTElNSVQJCT0gOCwJLyogdTMyICovDQo+ICsJSUZMQUZf VkZfTlVNX1FVRVVFUwkJPSA5LAkvKiB1MzIgKi8NCj4gKwlJRkxBRl9WRl9BTExPV19TRVRf TUFDCQk9IDEwLAkvKiB1OCBib29sZWFuICovDQo+ICsJSUZMQUZfVkZfQUxMT1dfU0VUX1ZM QU4JCT0gMTEsCS8qIHU4IGJvb2xlYW4gKi8NCj4gKwlJRkxBRl9WRl9NQUNfQU5USV9TUE9P RgkJPSAxMiwJLyogdTggYm9vbGVhbiAqLw0KPiArCUlGTEFGX1ZGX0FMTE9XX1BST01JU0MJ CT0gMTMsCS8qIHU4IGJvb2xlYW4gKi8NCj4gKwlJRkxBRl9WRl9UUkFGRklDX0VOQUJMRUQJ PSAxNCwJLyogdTggYm9vbGVhbiAqLw0KPiArCUlGTEFGX1ZGX01ERF9CTE9DS0VECQk9IDE1 LAkvKiB1OCBib29sZWFuICovDQo+ICsJSUZMQUZfVkZfUVVBUkFOVElORUQJCT0gMTYsCS8q IHU4IGJvb2xlYW4gKi8NCj4gKwlJRkxBRl9WRl9BUElfVkVSU0lPTgkJPSAxNywJLyogc3Ry aW5nICovDQo+ICsJSUZMQUZfVkZfTElOS19TVEFURV9QT0xJQ1kJPSAxOCwJLyogdTg6IElG TEFGX1ZGX0xJTktfKiAqLw0KPiArCUlGTEFGX1ZGX0VYVEVOU0lPTlMJCT0gMTksCS8qIG5l c3RlZCwgSUZMQUZfVkZfRVhUX0xJU1RfKiAqLw0KPiArCV9fSUZMQUZfVkZfTUFYDQo+ICt9 Ow0KPiArI2RlZmluZQlJRkxBRl9WRl9NQVgJKF9fSUZMQUZfVkZfTUFYIC0gMSkNCj4gKw0K PiArLyogSUZMQUZfVkZfRVhURU5TSU9OUyBhdHRyaWJ1dGVzLiAqLw0KPiArZW51bSB7DQo+ ICsJSUZMQUZfVkZfRVhUX0xJU1RfVU5TUEVDCT0gMCwNCj4gKwlJRkxBRl9WRl9FWFRfTElT VF9FTlRSWQkJPSAxLAkvKiBuZXN0ZWQ7IHJlcGVhdGVkICovDQo+ICsJX19JRkxBRl9WRl9F WFRfTElTVF9NQVgNCj4gK307DQo+ICsjZGVmaW5lCUlGTEFGX1ZGX0VYVF9MSVNUX01BWAko X19JRkxBRl9WRl9FWFRfTElTVF9NQVggLSAxKQ0KPiArDQo+ICsvKiBJRkxBRl9WRl9FWFRf TElTVF9FTlRSWSBhdHRyaWJ1dGVzLiAqLw0KPiArZW51bSB7DQo+ICsJSUZMQUZfVkZfRVhU X1VOU1BFQwk9IDAsDQo+ICsJSUZMQUZfVkZfRVhUX05BTUUJPSAxLAkvKiBzdHJpbmc6IHN0 YWJsZSBuYW1lc3BhY2UgKi8NCj4gKwlJRkxBRl9WRl9FWFRfREFUQQk9IDIsCS8qIGJpbmFy eTogcGFja2VkIG5hbWVzcGFjZSBudmxpc3QgKi8NCj4gKwlfX0lGTEFGX1ZGX0VYVF9NQVgN Cj4gK307DQo+ICsjZGVmaW5lCUlGTEFGX1ZGX0VYVF9NQVgJKF9fSUZMQUZfVkZfRVhUX01B WCAtIDEpDQo+ICsNCj4gK2VudW0gew0KPiArCUlGTEFGX1ZGX0xJTktfVU5LTk9XTgk9IDAs DQo+ICsJSUZMQUZfVkZfTElOS19ET1dOCT0gMSwNCj4gKwlJRkxBRl9WRl9MSU5LX1VQCT0g MiwNCj4gKwlJRkxBRl9WRl9MSU5LX0FVVE8JPSAzLA0KPiArfTsNCj4gKw0KPiArZW51bSB7 DQo+ICsJSUZMQUZfVkZfVkxBTl9VTktOT1dOCT0gMCwNCj4gKwlJRkxBRl9WRl9WTEFOX0FD Q0VTUwk9IDEsDQo+ICsJSUZMQUZfVkZfVkxBTl9UUlVOSwk9IDIsDQo+ICt9Ow0KPiArDQo+ ICAgLyoNCj4gICAgKiBBdHRyaWJ1dGVzIHRoYXQgY2FuIGJlIHVzZWQgYXMgZmlsdGVyczoN Cj4gICAgKiAgSUZMQV9JRk5BTUUsIElGTEFfR1JPVVAsIElGTEFfQUxUX0lGTkFNRQ0KPiBk aWZmIC0tZ2l0IGEvc3lzL25ldGxpbmsvcm91dGUvcm91dGVfdmFyLmggYi9zeXMvbmV0bGlu ay9yb3V0ZS9yb3V0ZV92YXIuaA0KPiBpbmRleCAwMTJkYzVhZDA1OTQuLjIzYWRmMDEyNzMz ZiAxMDA2NDQNCj4gLS0tIGEvc3lzL25ldGxpbmsvcm91dGUvcm91dGVfdmFyLmgNCj4gKysr IGIvc3lzL25ldGxpbmsvcm91dGUvcm91dGVfdmFyLmgNCj4gQEAgLTc0LDYgKzc0LDcgQEAg c3RydWN0IG5sX3BhcnNlZF9saW5rIHsNCj4gICAJaW50CQlpZmlfaW5kZXg7DQo+ICAgCXVp bnQzMl90CWlmbGFfbGluazsNCj4gICAJdWludDMyX3QJaWZsYV9tdHU7DQo+ICsJdWludDMy X3QJaWZsYV9leHRfbWFzazsNCj4gICAJdWludDMyX3QJaWZpX2ZsYWdzOw0KPiAgIAl1aW50 MzJfdAlpZmlfY2hhbmdlOw0KPiAgIH07DQo+IGRpZmYgLS1naXQgYS90ZXN0cy9hdGZfcHl0 aG9uL3N5cy9uZXRsaW5rL2F0dHJzLnB5IGIvdGVzdHMvYXRmX3B5dGhvbi9zeXMvbmV0bGlu ay9hdHRycy5weQ0KPiBpbmRleCAzNmRkODE5MWRmMWMuLmIwZTAzZTUwMjU4ZSAxMDA2NDQN Cj4gLS0tIGEvdGVzdHMvYXRmX3B5dGhvbi9zeXMvbmV0bGluay9hdHRycy5weQ0KPiArKysg Yi90ZXN0cy9hdGZfcHl0aG9uL3N5cy9uZXRsaW5rL2F0dHJzLnB5DQo+IEBAIC0xMzcsNiAr MTM3LDM0IEBAIGNsYXNzIE5sQXR0clUzMihObEF0dHIpOg0KPiAgICAgICAgICAgcmV0dXJu IHNlbGYuX3RvX2J5dGVzKHN0cnVjdC5wYWNrKCJASSIsIHNlbGYudTMyKSkNCj4gICANCj4g ICANCj4gK2NsYXNzIE5sQXR0clU2NChObEF0dHIpOg0KPiArICAgIGRlZiBfX2luaXRfXyhz ZWxmLCBubGFfdHlwZSwgdmFsKToNCj4gKyAgICAgICAgc2VsZi51NjQgPSBlbnVtX29yX2lu dCh2YWwpDQo+ICsgICAgICAgIHN1cGVyKCkuX19pbml0X18obmxhX3R5cGUsIGIiIikNCj4g Kw0KPiArICAgIEBwcm9wZXJ0eQ0KPiArICAgIGRlZiBubGFfbGVuKHNlbGYpOg0KPiArICAg ICAgICByZXR1cm4gMTINCj4gKw0KPiArICAgIGRlZiBfcHJpbnRfYXR0cl92YWx1ZShzZWxm KToNCj4gKyAgICAgICAgcmV0dXJuICIgdmFsPXt9Ii5mb3JtYXQoc2VsZi51NjQpDQo+ICsN Cj4gKyAgICBAc3RhdGljbWV0aG9kDQo+ICsgICAgZGVmIF92YWxpZGF0ZShkYXRhKToNCj4g KyAgICAgICAgYXNzZXJ0IGxlbihkYXRhKSA9PSAxMg0KPiArICAgICAgICBubGFfbGVuLCBu bGFfdHlwZSA9IHN0cnVjdC51bnBhY2soIkBISCIsIGRhdGFbOjRdKQ0KPiArICAgICAgICBh c3NlcnQgbmxhX2xlbiA9PSAxMg0KPiArDQo+ICsgICAgQGNsYXNzbWV0aG9kDQo+ICsgICAg ZGVmIF9wYXJzZShjbHMsIGRhdGEpOg0KPiArICAgICAgICBubGFfbGVuLCBubGFfdHlwZSA9 IHN0cnVjdC51bnBhY2soIkBISCIsIGRhdGFbOjRdKQ0KPiArICAgICAgICB2YWwgPSBzdHJ1 Y3QudW5wYWNrKCJAUSIsIGRhdGFbNDpdKVswXQ0KPiArICAgICAgICByZXR1cm4gY2xzKG5s YV90eXBlLCB2YWwpDQo+ICsNCj4gKyAgICBkZWYgX19ieXRlc19fKHNlbGYpOg0KPiArICAg ICAgICByZXR1cm4gc2VsZi5fdG9fYnl0ZXMoc3RydWN0LnBhY2soIkBRIiwgc2VsZi51NjQp KQ0KPiArDQo+ICsNCj4gICBjbGFzcyBObEF0dHJTMzIoTmxBdHRyKToNCj4gICAgICAgZGVm IF9faW5pdF9fKHNlbGYsIG5sYV90eXBlLCB2YWwpOg0KPiAgICAgICAgICAgc2VsZi5zMzIg PSBlbnVtX29yX2ludCh2YWwpDQo+IGRpZmYgLS1naXQgYS90ZXN0cy9hdGZfcHl0aG9uL3N5 cy9uZXRsaW5rL25ldGxpbmtfcm91dGUucHkgYi90ZXN0cy9hdGZfcHl0aG9uL3N5cy9uZXRs aW5rL25ldGxpbmtfcm91dGUucHkNCj4gaW5kZXggMmNmZWI1N2RhMTNmLi5kNmVkYzZhZDg3 NWQgMTAwNjQ0DQo+IC0tLSBhL3Rlc3RzL2F0Zl9weXRob24vc3lzL25ldGxpbmsvbmV0bGlu a19yb3V0ZS5weQ0KPiArKysgYi90ZXN0cy9hdGZfcHl0aG9uL3N5cy9uZXRsaW5rL25ldGxp bmtfcm91dGUucHkNCj4gQEAgLTEzLDcgKzEzLDkgQEAgZnJvbSBhdGZfcHl0aG9uLnN5cy5u ZXRsaW5rLmF0dHJzIGltcG9ydCBObEF0dHINCj4gICBmcm9tIGF0Zl9weXRob24uc3lzLm5l dGxpbmsuYXR0cnMgaW1wb3J0IE5sQXR0cklwDQo+ICAgZnJvbSBhdGZfcHl0aG9uLnN5cy5u ZXRsaW5rLmF0dHJzIGltcG9ydCBObEF0dHJOZXN0ZWQNCj4gICBmcm9tIGF0Zl9weXRob24u c3lzLm5ldGxpbmsuYXR0cnMgaW1wb3J0IE5sQXR0clN0cg0KPiArZnJvbSBhdGZfcHl0aG9u LnN5cy5uZXRsaW5rLmF0dHJzIGltcG9ydCBObEF0dHJVMTYNCj4gICBmcm9tIGF0Zl9weXRo b24uc3lzLm5ldGxpbmsuYXR0cnMgaW1wb3J0IE5sQXR0clUzMg0KPiArZnJvbSBhdGZfcHl0 aG9uLnN5cy5uZXRsaW5rLmF0dHJzIGltcG9ydCBObEF0dHJVNjQNCj4gICBmcm9tIGF0Zl9w eXRob24uc3lzLm5ldGxpbmsuYXR0cnMgaW1wb3J0IE5sQXR0clU4DQo+ICAgZnJvbSBhdGZf cHl0aG9uLnN5cy5uZXRsaW5rLm1lc3NhZ2UgaW1wb3J0IFN0ZE5ldGxpbmtNZXNzYWdlDQo+ ICAgZnJvbSBhdGZfcHl0aG9uLnN5cy5uZXRsaW5rLm1lc3NhZ2UgaW1wb3J0IE5sTXNnUHJv cHMNCj4gQEAgLTM2MSw2ICszNjMsNTYgQEAgY2xhc3MgSWZsYWZBdHRyVHlwZShFbnVtKToN Cj4gICAgICAgSUZMQUZfVU5TUEVDID0gMA0KPiAgICAgICBJRkxBRl9PUklHX0lGTkFNRSA9 IDENCj4gICAgICAgSUZMQUZfT1JJR19IV0FERFIgPSAyDQo+ICsgICAgSUZMQUZfQ0FQUyA9 IDMNCj4gKyAgICBJRkxBRl9WRl9TVEFUVVMgPSA0DQo+ICsNCj4gKw0KPiArY2xhc3MgSWZs YWZWZlN0YXR1c1R5cGUoRW51bSk6DQo+ICsgICAgSUZMQUZfVkZTX1VOU1BFQyA9IDANCj4g KyAgICBJRkxBRl9WRlNfVkVSU0lPTiA9IDENCj4gKyAgICBJRkxBRl9WRlNfRVJST1IgPSAy DQo+ICsgICAgSUZMQUZfVkZTX1BGX0xJTktfU1RBVEUgPSAzDQo+ICsgICAgSUZMQUZfVkZT X1BGX0xJTktfU1BFRUQgPSA0DQo+ICsgICAgSUZMQUZfVkZTX0xJU1QgPSA1DQo+ICsNCj4g Kw0KPiArY2xhc3MgSWZsYWZWZkxpc3RUeXBlKEVudW0pOg0KPiArICAgIElGTEFGX1ZGX0xJ U1RfVU5TUEVDID0gMA0KPiArICAgIElGTEFGX1ZGX0xJU1RfRU5UUlkgPSAxDQo+ICsNCj4g Kw0KPiArY2xhc3MgSWZsYWZWZlR5cGUoRW51bSk6DQo+ICsgICAgSUZMQUZfVkZfVU5TUEVD ID0gMA0KPiArICAgIElGTEFGX1ZGX0lOREVYID0gMQ0KPiArICAgIElGTEFGX1ZGX0NPTkZJ R1VSRUQgPSAyDQo+ICsgICAgSUZMQUZfVkZfSU5JVElBTElaRUQgPSAzDQo+ICsgICAgSUZM QUZfVkZfTUFDID0gNA0KPiArICAgIElGTEFGX1ZGX1ZMQU5fTU9ERSA9IDUNCj4gKyAgICBJ RkxBRl9WRl9WTEFOID0gNg0KPiArICAgIElGTEFGX1ZGX1ZMQU5fQ09VTlQgPSA3DQo+ICsg ICAgSUZMQUZfVkZfVkxBTl9MSU1JVCA9IDgNCj4gKyAgICBJRkxBRl9WRl9OVU1fUVVFVUVT ID0gOQ0KPiArICAgIElGTEFGX1ZGX0FMTE9XX1NFVF9NQUMgPSAxMA0KPiArICAgIElGTEFG X1ZGX0FMTE9XX1NFVF9WTEFOID0gMTENCj4gKyAgICBJRkxBRl9WRl9NQUNfQU5USV9TUE9P RiA9IDEyDQo+ICsgICAgSUZMQUZfVkZfQUxMT1dfUFJPTUlTQyA9IDEzDQo+ICsgICAgSUZM QUZfVkZfVFJBRkZJQ19FTkFCTEVEID0gMTQNCj4gKyAgICBJRkxBRl9WRl9NRERfQkxPQ0tF RCA9IDE1DQo+ICsgICAgSUZMQUZfVkZfUVVBUkFOVElORUQgPSAxNg0KPiArICAgIElGTEFG X1ZGX0FQSV9WRVJTSU9OID0gMTcNCj4gKyAgICBJRkxBRl9WRl9MSU5LX1NUQVRFX1BPTElD WSA9IDE4DQo+ICsgICAgSUZMQUZfVkZfRVhURU5TSU9OUyA9IDE5DQo+ICsNCj4gKw0KPiAr Y2xhc3MgSWZsYWZWZkV4dExpc3RUeXBlKEVudW0pOg0KPiArICAgIElGTEFGX1ZGX0VYVF9M SVNUX1VOU1BFQyA9IDANCj4gKyAgICBJRkxBRl9WRl9FWFRfTElTVF9FTlRSWSA9IDENCj4g Kw0KPiArDQo+ICtjbGFzcyBJZmxhZlZmRXh0VHlwZShFbnVtKToNCj4gKyAgICBJRkxBRl9W Rl9FWFRfVU5TUEVDID0gMA0KPiArICAgIElGTEFGX1ZGX0VYVF9OQU1FID0gMQ0KPiArICAg IElGTEFGX1ZGX0VYVF9EQVRBID0gMg0KPiAgIA0KPiAgIA0KPiAgIGNsYXNzIElmbGlua0lu Zm8oRW51bSk6DQo+IEBAIC02MjEsNiArNjczLDY1IEBAIHJ0bmxfcm91dGVfYXR0cnMgPSBw cmVwYXJlX2F0dHJzX21hcCgNCj4gICAgICAgXQ0KPiAgICkNCj4gICANCj4gK3J0bmxfaWZs YWZfdmZfZXh0X2F0dHJzID0gWw0KPiArICAgIEF0dHJEZXNjcihJZmxhZlZmRXh0VHlwZS5J RkxBRl9WRl9FWFRfTkFNRSwgTmxBdHRyU3RyKSwNCj4gKyAgICBBdHRyRGVzY3IoSWZsYWZW ZkV4dFR5cGUuSUZMQUZfVkZfRVhUX0RBVEEsIE5sQXR0ciksDQo+ICtdDQo+ICsNCj4gK3J0 bmxfaWZsYWZfdmZfZXh0X2xpc3RfYXR0cnMgPSBbDQo+ICsgICAgQXR0ckRlc2NyKA0KPiAr ICAgICAgICBJZmxhZlZmRXh0TGlzdFR5cGUuSUZMQUZfVkZfRVhUX0xJU1RfRU5UUlksDQo+ ICsgICAgICAgIE5sQXR0ck5lc3RlZCwNCj4gKyAgICAgICAgcnRubF9pZmxhZl92Zl9leHRf YXR0cnMsDQo+ICsgICAgKSwNCj4gK10NCj4gKw0KPiArcnRubF9pZmxhZl92Zl9hdHRycyA9 IFsNCj4gKyAgICBBdHRyRGVzY3IoSWZsYWZWZlR5cGUuSUZMQUZfVkZfSU5ERVgsIE5sQXR0 clUzMiksDQo+ICsgICAgQXR0ckRlc2NyKElmbGFmVmZUeXBlLklGTEFGX1ZGX0NPTkZJR1VS RUQsIE5sQXR0clU4KSwNCj4gKyAgICBBdHRyRGVzY3IoSWZsYWZWZlR5cGUuSUZMQUZfVkZf SU5JVElBTElaRUQsIE5sQXR0clU4KSwNCj4gKyAgICBBdHRyRGVzY3IoSWZsYWZWZlR5cGUu SUZMQUZfVkZfTUFDLCBObEF0dHJNYWMpLA0KPiArICAgIEF0dHJEZXNjcihJZmxhZlZmVHlw ZS5JRkxBRl9WRl9WTEFOX01PREUsIE5sQXR0clU4KSwNCj4gKyAgICBBdHRyRGVzY3IoSWZs YWZWZlR5cGUuSUZMQUZfVkZfVkxBTiwgTmxBdHRyVTE2KSwNCj4gKyAgICBBdHRyRGVzY3Io SWZsYWZWZlR5cGUuSUZMQUZfVkZfVkxBTl9DT1VOVCwgTmxBdHRyVTMyKSwNCj4gKyAgICBB dHRyRGVzY3IoSWZsYWZWZlR5cGUuSUZMQUZfVkZfVkxBTl9MSU1JVCwgTmxBdHRyVTMyKSwN Cj4gKyAgICBBdHRyRGVzY3IoSWZsYWZWZlR5cGUuSUZMQUZfVkZfTlVNX1FVRVVFUywgTmxB dHRyVTMyKSwNCj4gKyAgICBBdHRyRGVzY3IoSWZsYWZWZlR5cGUuSUZMQUZfVkZfQUxMT1df U0VUX01BQywgTmxBdHRyVTgpLA0KPiArICAgIEF0dHJEZXNjcihJZmxhZlZmVHlwZS5JRkxB Rl9WRl9BTExPV19TRVRfVkxBTiwgTmxBdHRyVTgpLA0KPiArICAgIEF0dHJEZXNjcihJZmxh ZlZmVHlwZS5JRkxBRl9WRl9NQUNfQU5USV9TUE9PRiwgTmxBdHRyVTgpLA0KPiArICAgIEF0 dHJEZXNjcihJZmxhZlZmVHlwZS5JRkxBRl9WRl9BTExPV19QUk9NSVNDLCBObEF0dHJVOCks DQo+ICsgICAgQXR0ckRlc2NyKElmbGFmVmZUeXBlLklGTEFGX1ZGX1RSQUZGSUNfRU5BQkxF RCwgTmxBdHRyVTgpLA0KPiArICAgIEF0dHJEZXNjcihJZmxhZlZmVHlwZS5JRkxBRl9WRl9N RERfQkxPQ0tFRCwgTmxBdHRyVTgpLA0KPiArICAgIEF0dHJEZXNjcihJZmxhZlZmVHlwZS5J RkxBRl9WRl9RVUFSQU5USU5FRCwgTmxBdHRyVTgpLA0KPiArICAgIEF0dHJEZXNjcihJZmxh ZlZmVHlwZS5JRkxBRl9WRl9BUElfVkVSU0lPTiwgTmxBdHRyU3RyKSwNCj4gKyAgICBBdHRy RGVzY3IoSWZsYWZWZlR5cGUuSUZMQUZfVkZfTElOS19TVEFURV9QT0xJQ1ksIE5sQXR0clU4 KSwNCj4gKyAgICBBdHRyRGVzY3IoDQo+ICsgICAgICAgIElmbGFmVmZUeXBlLklGTEFGX1ZG X0VYVEVOU0lPTlMsDQo+ICsgICAgICAgIE5sQXR0ck5lc3RlZCwNCj4gKyAgICAgICAgcnRu bF9pZmxhZl92Zl9leHRfbGlzdF9hdHRycywNCj4gKyAgICApLA0KPiArXQ0KPiArDQo+ICty dG5sX2lmbGFmX3ZmX2xpc3RfYXR0cnMgPSBbDQo+ICsgICAgQXR0ckRlc2NyKA0KPiArICAg ICAgICBJZmxhZlZmTGlzdFR5cGUuSUZMQUZfVkZfTElTVF9FTlRSWSwNCj4gKyAgICAgICAg TmxBdHRyTmVzdGVkLA0KPiArICAgICAgICBydG5sX2lmbGFmX3ZmX2F0dHJzLA0KPiAqKiog MTk1IExJTkVTIFNLSVBQRUQgKioqDQo+IA0KDQpJIHRoaW5rIHdlIHNob3VsZCBtaW5pbWl6 ZSBvdXIgdXNlIG9mIG52bGlzdCg5KSBpbiB0aGUgbmV3IGNvZGUsIA0KZXNwZWNpYWxseSB1 bmRlciBuZXRsaW5rLg0KSU1PLCBVc2luZyBudmxpc3QgdW5kZXIgbmV0bGluayBkZWZlYXRz IHRoZSBwdXJwb3NlLg0KDQpsb29JIGRvbid0IHRoaW5rIHNubF9hdHRyX2dldF9wYXJyYXkg aXMgYXBwcm9wcmlhdGUgZm9yIHBhcnNlci1vbmx5IA0KYXR0cmlidXRlcy4NCldlIHNob3Vs ZCB1c2UgbXVsdGktYXR0ciBpbnN0ZWFkIHRvIGF2b2lkIHRvbyBtYW55IG5lc3RlZCBuZXRs aW5rIA0KYXR0cmlidXRlcy4gKGUuZy4gLyogbmVzdGVkLCBJRkxBRl9WRl8qOyByZXBlYXRl ZCAqLykNCmh0dHBzOi8vZG9jcy5rZXJuZWwub3JnL3VzZXJzcGFjZS1hcGkvbmV0bGluay9n ZW5ldGxpbmstbGVnYWN5Lmh0bWwNCg0KV2UgbWlnaHQgYWxzbyB3YW50IHRvIHVzZSBzbmxf YXR0cl9nZXRfYm9vbCBvciBzbmxfYXR0cl9nZXRfZmxhZyBmb3IgDQptYW55IG9mIHRoZSBk YXRhIHN0cnVjdHVyZXMgYWJvdmUuDQoNCkkgd2lzaCB0aGVyZSB3ZXJlIGEgcGhhYnJpY2F0 b3IgcmV2aWV3IGZvciB0aGlzIGNoYW5nZS4NCg0KLS0gDQpQb3VyaWENCg0K --------------XLosreG9MzsL7OFiqWR4y56O-- --------------m6EhM5CEr5CKyPmirXmVlUJv Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature.asc" -----BEGIN PGP SIGNATURE----- iJEEARYKADkWIQSqt7cppfvJ816gj0lUwVnUeMwagAUCanojxRsUgAAAAAAEAA5t YW51MiwyLjUrMS4xMiwyLDMACgkQVMFZ1HjMGoD4aAD+MkE/zLJHVZC2D5/yZlvE SQy0UbDOfqmXA/x4+ifqghAA/RKGUUMwB3+Vc6e7q002q7mZynmAetvL4crKwhDA q3oO =5P+p -----END PGP SIGNATURE----- --------------m6EhM5CEr5CKyPmirXmVlUJv--