Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uDMSc-009hCj-Ec for pgsql-hackers@arkaria.postgresql.org; Fri, 09 May 2025 12:04:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uDMSa-00AOJM-Fx for pgsql-hackers@arkaria.postgresql.org; Fri, 09 May 2025 12:04:12 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uDMSZ-00AOJ8-9h for pgsql-hackers@lists.postgresql.org; Fri, 09 May 2025 12:04:12 +0000 Received: from mail.postgrespro.ru ([93.174.132.70]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1uDMSN-000wsh-2Y for pgsql-hackers@postgresql.org; Fri, 09 May 2025 12:04:09 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1746792236; bh=K1whfSQPH7oSNNYDjudzYI1dZXALvhqce5CCFUvUbEc=; h=Message-ID:Date:User-Agent:Subject:From:To:Cc:References: In-Reply-To:From; b=WrF48yWycTt2winPhULB6WcbEOiy7ZQPgVgppVjkC5MrI8cGXFZU8FJQ4X/mvgvVS +cIUXI5qCm4537I1p2xSRAPM7OfPYxv6Cs3jN7oYQkgyB35owFNqgX3wKrRtOCKfY0 5YVtcB+fDEV9mpdxnXqg3ILoxxiRDCNwOsBZtW+OihJaW1cWMgzLToNmziHXRtYZE8 dkFbaHFCP8qMJ103Sjv5Ti2r2Oh+Ib5BcOXBw7tRnEl4vZqS9e2Z5epqLArbRmZqeY 2Pb+cFtWzZ8UzDAo80BOVByqbEqEIPWywnzo9VjyFe+0tXCN6eWvkmGqdTOG6qm6iF yXk1GNnSspm8w== Received: from [10.4.12.74] (unknown [93.174.131.141]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: a.rybakina@postgrespro.ru) by mail.postgrespro.ru (Postfix/587) with ESMTPSA id 4BDFF6074C; Fri, 9 May 2025 15:03:56 +0300 (MSK) Content-Type: multipart/mixed; boundary="------------IUDxn0gVtf2vbFzxDscYGnji" Message-ID: <2a04ad18-5572-4633-848b-eb57209e7ac0@postgrespro.ru> Date: Fri, 9 May 2025 15:03:55 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Vacuum statistics From: Alena Rybakina To: Alexander Korotkov , pgsql-hackers Cc: Jim Nasby , Bertrand Drouvot , Ilia Evdokimov , Kirill Reshke , Andrei Zubkov , Masahiko Sawada , Melanie Plageman , jian he , a.lepikhov@postgrespro.ru, Sami Imseih , vignesh C References: <86f76aa5-1ab5-4e2e-9b15-405051852a2a@postgrespro.ru> <1e81a0a1-a63b-48fb-905a-d6495f89ab73@postgrespro.ru> <0b4eefc7-4c38-4caa-b2ca-a4c75dd7dd12@postgrespro.ru> <333c2306-c401-4959-9f0c-a44c670a11a9@postgrespro.ru> <513f0188-b093-4cc8-98cf-4c324570d525@postgrespro.ru> <47a7b784-5218-43f2-96e3-65f9a729c5a5@tantorlabs.com> <5583261b-eede-4341-b3b1-91650fefc1cf@postgrespro.ru> Content-Language: en-US In-Reply-To: <5583261b-eede-4341-b3b1-91650fefc1cf@postgrespro.ru> X-KSMG-AntiPhishing: NotDetected, bases: 2025/05/09 09:30:00 X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 2.1.0.7854, bases: 2025/05/09 11:08:00 #27966249 X-KSMG-AntiVirus-Status: NotDetected, skipped X-KSMG-LinksScanning: not scanned, disabled by settings X-KSMG-Message-Action: skipped X-KSMG-Rule-ID: 1 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------IUDxn0gVtf2vbFzxDscYGnji Content-Type: multipart/alternative; boundary="------------TLDuawcv8gH9s5oqQIl1iQgx" --------------TLDuawcv8gH9s5oqQIl1iQgx Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, all! On 25.03.2025 09:12, Alena Rybakina wrote: > > Hi! I rebased the patches again - PGSTAT_FILE_FORMAT_ID needed to be > fixed. > On 05.02.2025 09:59, Alexander Korotkov wrote: > What is the point for disabling pgstat_track_vacuum_statistics then? > I don't see it saves any valuable resources. The original point by > Masahiko Sawada was growth of data structures in times [1] (and > corresponding memory consumption especially with large number of > tables). Now, disabling pgstat_track_vacuum_statistics only saves > some cycles of pgstat_accumulate_extvac_stats(), and that seems > insignificant. > > I see that we use hash tables with static element size. So, we can't > save space by dynamically changing entries size on the base of GUC. > But could we move vacuum statistics to separate hash tables? When GUC > is disabled, new hash tables could be just empty. > > Links > 1.https://www.postgresql.org/message-id/CAD21AoD66b3u28n%3D73kudgMp5wiGiyYUN9LuC9z2ka6YTru5Gw%40mail.gmail.com I did a rebase and finished the part with storing statistics separately from the relation statistics - now it is possible to disable the collection of statistics for relationsh using gucs and this allows us to solve the problem with the memory consumed. For now I have formatted all this as a diff file. The diff file must be applied after all patches have been applied. While looking at it I noticed that the code requires significant code refactoring, so I will do that. -- Regards, Alena Rybakina Postgres Professional --------------TLDuawcv8gH9s5oqQIl1iQgx Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit

Hi, all!

On 25.03.2025 09:12, Alena Rybakina wrote:

Hi! I rebased the patches again - PGSTAT_FILE_FORMAT_ID needed to be fixed.

On 05.02.2025 09:59, Alexander Korotkov wrote:
What is the point for disabling pgstat_track_vacuum_statistics then?
I don't see it saves any valuable resources.  The original point by
Masahiko Sawada was growth of data structures in times [1] (and
corresponding memory consumption especially with large number of
tables).  Now, disabling pgstat_track_vacuum_statistics only saves
some cycles of pgstat_accumulate_extvac_stats(), and that seems
insignificant.

I see that we use hash tables with static element size.  So, we can't
save space by dynamically changing entries size on the base of GUC.
But could we move vacuum statistics to separate hash tables?  When GUC
is disabled, new hash tables could be just empty.

Links
1. https://www.postgresql.org/message-id/CAD21AoD66b3u28n%3D73kudgMp5wiGiyYUN9LuC9z2ka6YTru5Gw%40mail.gmail.com
I did a rebase and finished the part with storing statistics separately from the relation statistics - now it is possible to disable the collection of statistics for relationsh using gucs and
this allows us to solve the problem with the memory consumed. 

For now I have formatted all this as a diff file. The diff file must be applied after all patches have been applied. While looking at it I noticed that the code requires significant code refactoring, so I will do that.

-- 
Regards,
Alena Rybakina
Postgres Professional
--------------TLDuawcv8gH9s5oqQIl1iQgx-- --------------IUDxn0gVtf2vbFzxDscYGnji Content-Type: text/x-patch; charset=UTF-8; name="v22-0001-Machinery-for-grabbing-an-extended-vacuum-statistics.patch" Content-Disposition: attachment; filename*0="v22-0001-Machinery-for-grabbing-an-extended-vacuum-statistic"; filename*1="s.patch" Content-Transfer-Encoding: base64 RnJvbSAwOTkwZTcyNTMwNmQ5NDg4MjkxZDAyMmEzN2JjMTdlYjY2ZDEyNTZjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogVGh1LCA4IE1heSAyMDI1IDIxOjE0OjIzICswMzAwClN1Ympl Y3Q6IFtQQVRDSCAxLzRdIE1hY2hpbmVyeSBmb3IgZ3JhYmJpbmcgYW4gZXh0ZW5kZWQgdmFj dXVtIHN0YXRpc3RpY3Mgb24gCiB0YWJsZSByZWxhdGlvbnMuCgpWYWx1ZSBvZiB0b3RhbF9i bGtzX2hpdCwgdG90YWxfYmxrc19yZWFkLCB0b3RhbF9ibGtzX2RpcnRpZWQgYXJlIG51bWJl ciBvZgpoaXR0ZWQsIG1pc3NlZCBhbmQgZGlydGllZCBwYWdlcyBpbiBzaGFyZWQgYnVmZmVy cyBkdXJpbmcgYSB2YWN1dW0gb3BlcmF0aW9uCnJlc3BlY3RpdmVseS4KCnRvdGFsX2Jsa3Nf ZGlydGllZCBtZWFucyAnZGlydGllZCBvbmx5IGJ5IHRoaXMgYWN0aW9uJy4gU28sIGlmIHRo aXMgcGFnZSB3YXMKZGlydHkgYmVmb3JlIHRoZSB2YWN1dW0gb3BlcmF0aW9uLCBpdCBkb2Vz bid0IGNvdW50IHRoaXMgcGFnZSBhcyAnZGlydGllZCcuCgpUaGUgdHVwbGVzX2RlbGV0ZWQg cGFyYW1ldGVyIGlzIHRoZSBudW1iZXIgb2YgdHVwbGVzIGNsZWFuZWQgdXAgYnkgdGhlIHZh Y3V1bQpvcGVyYXRpb24uCgpUaGUgZGVsYXlfdGltZSB2YWx1ZSBtZWFucyB0b3RhbCB2YWN1 dW0gc2xlZXAgdGltZSBpbiB2YWN1dW0gZGVsYXkgcG9pbnQuClRoZSBwYWdlc19yZW1vdmVk IHZhbHVlIGlzIHRoZSBudW1iZXIgb2YgcGFnZXMgYnkgd2hpY2ggdGhlIHBoeXNpY2FsIGRh dGEKc3RvcmFnZSBvZiB0aGUgcmVsYXRpb24gd2FzIHJlZHVjZWQuClRoZSB2YWx1ZSBvZiBw YWdlc19kZWxldGVkIHBhcmFtZXRlciBpcyB0aGUgbnVtYmVyIG9mIGZyZWVkIHBhZ2VzIGlu IHRoZSB0YWJsZQooZmlsZSBzaXplIG1heSBub3QgaGF2ZSBjaGFuZ2VkKS4KClRyYWNraW5n IG9mIElPIGR1cmluZyBhbiAoYXV0byl2YWN1dW0gb3BlcmF0aW9uLgpJbnRyb2R1Y2VkIHZh cmlhYmxlcyBibGtfcmVhZF90aW1lIGFuZCBibGtfd3JpdGVfdGltZSB0cmFja3Mgb25seSBh Y2Nlc3MgdG8KYnVmZmVyIHBhZ2VzIGFuZCBmbHVzaGluZyB0aGVtIHRvIGRpc2suIFJlYWRp bmcgb3BlcmF0aW9uIGlzIHRyaXZpYWwsIGJ1dAp3cml0aW5nIG1lYXN1cmVtZW50IHRlY2hu aXF1ZSBpcyBub3Qgb2J2aW91cy4KU28sIGR1cmluZyBhIHZhY3V1bSB3cml0aW5nIHRpbWUg Y2FuIGJlIHplcm8gaW5jcmVtZW50ZWQgYmVjYXVzZSBubyBhbnkgZmx1c2hpbmcKb3BlcmF0 aW9ucyB3ZXJlIHBlcmZvcm1lZC4KClN5c3RlbSB0aW1lIGFuZCB1c2VyIHRpbWUgYXJlIHBh cmFtZXRlcnMgdGhhdCBkZXNjcmliZXMgaG93IG11Y2ggdGltZSBhIHZhY3V1bQpvcGVyYXRp b24gaGFzIHNwZW50IGluIGV4ZWN1dGluZyBvZiBjb2RlIGluIHVzZXIgc3BhY2UgYW5kIGtl cm5lbCBzcGFjZQphY2NvcmRpbmdseS4gQWxzbywgYWNjdW11bGF0ZSB0b3RhbCB0aW1lIG9m IGEgdmFjdXVtIHRoYXQgaXMgYSBkaWZmIGJldHdlZW4KdGltZXN0YW1wcyBpbiBzdGFydCBh bmQgZmluaXNoIHBvaW50cyBpbiB0aGUgdmFjdXVtIGNvZGUuClJlbWVtYmVyIGFib3V0IGlk bGUgdGltZSwgd2hlbiB2YWN1dW0gd2FpdGVkIGZvciBJTyBhbmQgbG9ja3MsIHNvIHRvdGFs IHRpbWUKaXNuJ3QgZXF1YWwgYSBzdW0gb2YgdXNlciBhbmQgc3lzdGVtIHRpbWUsIGJ1dCBu byBsZXNzLgoKcGFnZXNfZnJvemVuIGlzIGEgbnVtYmVyIG9mIHBhZ2VzIHRoYXQgYXJlIG1h cmtlZCBhcyBmcm96ZW4gaW4gdm0gZHVyaW5nIHZhY3V1bS4KVGhpcyBwYXJhbWV0ZXIgaXMg aW5jcmVtZW50ZWQgaWYgcGFnZSBpcyBtYXJrZWQgYXMgYWxsLWZyb3plbi4KcGFnZXNfYWxs X3Zpc2libGUgaXMgYSBudW1iZXIgb2YgcGFnZXMgdGhhdCBhcmUgbWFya2VkIGFzIGFsbC12 aXNpYmxlIGluIHZtIGR1cmluZwp2YWN1dW0uCgp3cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50 IGlzIGEgbnVtYmVyIG9mIHRpbWVzIHdoZW4gdGhlIHZhY3V1bSBzdGFydHMgdXJnZW50IGNs ZWFudXAKdG8gcHJldmVudCB3cmFwYXJvdW5kIHByb2JsZW0gd2hpY2ggaXMgY3JpdGljYWwg Zm9yIHRoZSBkYXRhYmFzZS4KCkF1dGhvcnM6IEFsZW5hIFJ5YmFraW5hIDxsZW5hLnJpYmFj a2luYUB5YW5kZXgucnU+LAoJIEFuZHJlaSBMZXBpa2hvdiA8YS5sZXBpa2hvdkBwb3N0Z3Jl c3Byby5ydT4sCgkgQW5kcmVpIFp1YmtvdiA8YS56dWJrb3ZAcG9zdGdyZXNwcm8ucnU+ClJl dmlld2VkLWJ5OiBEaWxpcCBLdW1hciA8ZGlsaXBiYWxhdXRAZ21haWwuY29tPiwgTWFzYWhp a28gU2F3YWRhIDxzYXdhZGEubXNoa0BnbWFpbC5jb20+LAoJICAgICBJbGlhIEV2ZG9raW1v diA8aWx5YS5ldmRva2ltb3ZAdGFudG9ybGFicy5jb20+LCBqaWFuIGhlIDxqaWFuLnVuaXZl cnNhbGl0eUBnbWFpbC5jb20+LAoJICAgICBLaXJpbGwgUmVzaGtlIDxyZXNoa2VraXJpbGxA Z21haWwuY29tPiwgQWxleGFuZGVyIEtvcm90a292IDxhZWtvcm90a292QGdtYWlsLmNvbT4s CgkgICAgIEppbSBOYXNieSA8am5hc2J5QHVwZ3JhZGUuY29tPiwgU2FtaSBJbXNlaWggPHNh bWltc2VpaEBnbWFpbC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVt bGF6eS5jICAgICAgICAgIHwgMTUwICsrKysrKysrKysrLQogc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvdmlzaWJpbGl0eW1hcC5jICAgICAgIHwgIDEwICsKIHNyYy9iYWNrZW5kL2NhdGFs b2cvc3lzdGVtX3ZpZXdzLnNxbCAgICAgICAgICB8ICA1MiArKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy92YWN1dW0uYyAgICAgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5k L3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5jICAgICAgICAgICB8ICAxMiArLQogc3JjL2JhY2tl bmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMgIHwgIDQ2ICsrKy0KIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jICAgICAgICAgICB8IDE0NyArKysrKysr KysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2Vycm9yL2Vsb2cuYyAgICAgICAgICAgICAgICB8 ICAxMyArCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAgICAgICAgICAg fCAgIDkgKwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxl IHwgICAxICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAg ICB8ICAxOCArKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmggICAgICAgICAgICAg ICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3Bnc3RhdC5oICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICA4MCArKysrKy0KIHNyYy9pbmNsdWRlL3V0aWxzL2Vsb2cuaCAgICAgICAgICAg ICAgICAgICAgICB8ICAgMSArCiAuLi4vdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUt cmVhZC5vdXQgICAgfCAgNTMgKysrKwogc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9z Y2hlZHVsZSAgICAgICAgIHwgICAxICsKIC4uLi92YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0 YWJsZS1yZWFkLnNwZWMgICB8ICA1MyArKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3J1bGVzLm91dCAgICAgICAgICAgfCAgNDQgKysrLQogLi4uL2V4cGVjdGVkL3ZhY3V1bV90 YWJsZXNfc3RhdGlzdGljcy5vdXQgICAgIHwgMjI3ICsrKysrKysrKysrKysrKysrKwogc3Jj L3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICA1ICsKIC4u Li9yZWdyZXNzL3NxbC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Muc3FsICB8IDE4MyArKysr KysrKysrKysrKwogMjIgZmlsZXMgY2hhbmdlZCwgMTA5NSBpbnNlcnRpb25zKCspLCAxNiBk ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9pc29sYXRpb24vZXhw ZWN0ZWQvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5vdXQKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvdGVzdC9pc29sYXRpb24vc3BlY3MvdmFjdXVtLWV4dGVuZGluZy1p bi1yZXBldGFibGUtcmVhZC5zcGVjCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Mub3V0CiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNz LnNxbAoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenku YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCBmMjgzMjZi YWQwOS4uMjhmMjIyYWZlNjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5 LmMKQEAgLTI5MCw2ICsyOTAsNyBAQCB0eXBlZGVmIHN0cnVjdCBMVlJlbFN0YXRlCiAJLyog RXJyb3IgcmVwb3J0aW5nIHN0YXRlICovCiAJY2hhcgkgICAqZGJuYW1lOwogCWNoYXIJICAg KnJlbG5hbWVzcGFjZTsKKwlPaWQJCQlyZWxvaWQ7CiAJY2hhcgkgICAqcmVsbmFtZTsKIAlj aGFyCSAgICppbmRuYW1lOwkJLyogQ3VycmVudCBpbmRleCBuYW1lICovCiAJQmxvY2tOdW1i ZXIgYmxrbm87CQkJLyogdXNlZCBvbmx5IGZvciBoZWFwIG9wZXJhdGlvbnMgKi8KQEAgLTQw OCw2ICs0MDksOCBAQCB0eXBlZGVmIHN0cnVjdCBMVlJlbFN0YXRlCiAJICogYmVlbiBwZXJt YW5lbnRseSBkaXNhYmxlZC4KIAkgKi8KIAlCbG9ja051bWJlciBlYWdlcl9zY2FuX3JlbWFp bmluZ19mYWlsczsKKworCWludDMyCQl3cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50OyAvKiBu dW1iZXIgb2YgZW1lcmdlbmN5IHZhY3V1bXMgdG8gcHJldmVudCBhbnRpLXdyYXBhcm91bmQg c2h1dGRvd24gKi8KIH0gTFZSZWxTdGF0ZTsKIAogCkBAIC00MTksNiArNDIyLDE4IEBAIHR5 cGVkZWYgc3RydWN0IExWU2F2ZWRFcnJJbmZvCiAJVmFjRXJyUGhhc2UgcGhhc2U7CiB9IExW U2F2ZWRFcnJJbmZvOwogCisvKgorICogQ291bnRlcnMgYW5kIHVzYWdlIGRhdGEgZm9yIGV4 dGVuZGVkIHN0YXRzIHRyYWNraW5nLgorICovCit0eXBlZGVmIHN0cnVjdCBMVkV4dFN0YXRD b3VudGVycworeworCVRpbWVzdGFtcFR6IHN0YXJ0dGltZTsKKwlXYWxVc2FnZQl3YWx1c2Fn ZTsKKwlCdWZmZXJVc2FnZSBidWZ1c2FnZTsKKwlkb3VibGUJCVZhY3V1bURlbGF5VGltZTsK KwlQZ1N0YXRfQ291bnRlciBibG9ja3NfZmV0Y2hlZDsKKwlQZ1N0YXRfQ291bnRlciBibG9j a3NfaGl0OworfSBMVkV4dFN0YXRDb3VudGVyczsKIAogLyogbm9uLWV4cG9ydCBmdW5jdGlv biBwcm90b3R5cGVzICovCiBzdGF0aWMgdm9pZCBsYXp5X3NjYW5faGVhcChMVlJlbFN0YXRl ICp2YWNyZWwpOwpAQCAtNDc1LDYgKzQ5MCwxMDYgQEAgc3RhdGljIHZvaWQgdXBkYXRlX3Zh Y3V1bV9lcnJvcl9pbmZvKExWUmVsU3RhdGUgKnZhY3JlbCwKIHN0YXRpYyB2b2lkIHJlc3Rv cmVfdmFjdXVtX2Vycm9yX2luZm8oTFZSZWxTdGF0ZSAqdmFjcmVsLAogCQkJCQkJCQkJICBj b25zdCBMVlNhdmVkRXJySW5mbyAqc2F2ZWRfdmFjcmVsKTsKIAorLyogLS0tLS0tLS0tLQor ICogZXh0dmFjX3N0YXRzX3N0YXJ0KCkgLQorICoKKyAqIFNhdmUgY3V0LW9mZiB2YWx1ZXMg b2YgZXh0ZW5kZWQgdmFjdXVtIGNvdW50ZXJzIGJlZm9yZSBzdGFydCBvZiBhIHJlbGF0aW9u CisgKiBwcm9jZXNzaW5nLgorICogLS0tLS0tLS0tLQorICovCitzdGF0aWMgdm9pZAorZXh0 dmFjX3N0YXRzX3N0YXJ0KFJlbGF0aW9uIHJlbCwgTFZFeHRTdGF0Q291bnRlcnMgKmNvdW50 ZXJzKQoreworCVRpbWVzdGFtcFR6CXN0YXJ0dGltZTsKKworCWlmKCFwZ3N0YXRfdHJhY2tf dmFjdXVtX3N0YXRpc3RpY3MpCisJCXJldHVybjsKKworCW1lbXNldChjb3VudGVycywgMCwg c2l6ZW9mKExWRXh0U3RhdENvdW50ZXJzKSk7CisKKwlzdGFydHRpbWUgPSBHZXRDdXJyZW50 VGltZXN0YW1wKCk7CisKKwljb3VudGVycy0+c3RhcnR0aW1lID0gc3RhcnR0aW1lOworCWNv dW50ZXJzLT53YWx1c2FnZSA9IHBnV2FsVXNhZ2U7CisJY291bnRlcnMtPmJ1ZnVzYWdlID0g cGdCdWZmZXJVc2FnZTsKKwljb3VudGVycy0+VmFjdXVtRGVsYXlUaW1lID0gVmFjdXVtRGVs YXlUaW1lOworCWNvdW50ZXJzLT5ibG9ja3NfZmV0Y2hlZCA9IDA7CisJY291bnRlcnMtPmJs b2Nrc19oaXQgPSAwOworCisJaWYgKCFyZWwtPnBnc3RhdF9pbmZvIHx8ICFwZ3N0YXRfdHJh Y2tfY291bnRzKQorCQkvKgorCQkgKiBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZyBvciB1c2Vy IGRvZXNuJ3Qgd2FudCB0byB0cmFjayBhIGRhdGFiYXNlCisJCSAqIGFjdGl2aXR5IC0ganVz dCBzdXBwcmVzcyBpdC4KKwkJICovCisJCXJldHVybjsKKworCWNvdW50ZXJzLT5ibG9ja3Nf ZmV0Y2hlZCA9IHJlbC0+cGdzdGF0X2luZm8tPmNvdW50cy5ibG9ja3NfZmV0Y2hlZDsKKwlj b3VudGVycy0+YmxvY2tzX2hpdCA9IHJlbC0+cGdzdGF0X2luZm8tPmNvdW50cy5ibG9ja3Nf aGl0OworfQorCisvKiAtLS0tLS0tLS0tCisgKiBleHR2YWNfc3RhdHNfZW5kKCkgLQorICoK KyAqCUNhbGxlZCB0byBmaW5pc2ggYW4gZXh0ZW5kZWQgdmFjdXVtIHN0YXRpc3RpYyBnYXRo ZXJpbmcgYW5kIGZvcm0gYSByZXBvcnQuCisgKiAtLS0tLS0tLS0tCisgKi8KK3N0YXRpYyB2 b2lkCitleHR2YWNfc3RhdHNfZW5kKFJlbGF0aW9uIHJlbCwgTFZFeHRTdGF0Q291bnRlcnMg KmNvdW50ZXJzLAorCQkJCSAgRXh0VmFjUmVwb3J0ICpyZXBvcnQpCit7CisJV2FsVXNhZ2UJ d2FsdXNhZ2U7CisJQnVmZmVyVXNhZ2UJYnVmdXNhZ2U7CisJVGltZXN0YW1wVHogZW5kdGlt ZTsKKwlsb25nCQlzZWNzOworCWludAkJCXVzZWNzOworCisJaWYoIXBnc3RhdF90cmFja192 YWN1dW1fc3RhdGlzdGljcykKKwkJcmV0dXJuOworCisJLyogQ2FsY3VsYXRlIGRpZmZzIG9m IGdsb2JhbCBzdGF0IHBhcmFtZXRlcnMgb24gV0FMIGFuZCBidWZmZXIgdXNhZ2UuICovCisJ bWVtc2V0KCZ3YWx1c2FnZSwgMCwgc2l6ZW9mKFdhbFVzYWdlKSk7CisJV2FsVXNhZ2VBY2N1 bURpZmYoJndhbHVzYWdlLCAmcGdXYWxVc2FnZSwgJmNvdW50ZXJzLT53YWx1c2FnZSk7CisK KwltZW1zZXQoJmJ1ZnVzYWdlLCAwLCBzaXplb2YoQnVmZmVyVXNhZ2UpKTsKKwlCdWZmZXJV c2FnZUFjY3VtRGlmZigmYnVmdXNhZ2UsICZwZ0J1ZmZlclVzYWdlLCAmY291bnRlcnMtPmJ1 ZnVzYWdlKTsKKworCWVuZHRpbWUgPSBHZXRDdXJyZW50VGltZXN0YW1wKCk7CisJVGltZXN0 YW1wRGlmZmVyZW5jZShjb3VudGVycy0+c3RhcnR0aW1lLCBlbmR0aW1lLCAmc2VjcywgJnVz ZWNzKTsKKworCW1lbXNldChyZXBvcnQsIDAsIHNpemVvZihFeHRWYWNSZXBvcnQpKTsKKwor CS8qCisJICogRmlsbCBhZGRpdGlvbmFsIHN0YXRpc3RpY3Mgb24gYSB2YWN1dW0gcHJvY2Vz c2luZyBvcGVyYXRpb24uCisJICovCisJcmVwb3J0LT50b3RhbF9ibGtzX3JlYWQgPSBidWZ1 c2FnZS5sb2NhbF9ibGtzX3JlYWQgKyBidWZ1c2FnZS5zaGFyZWRfYmxrc19yZWFkOworCXJl cG9ydC0+dG90YWxfYmxrc19oaXQgPSBidWZ1c2FnZS5sb2NhbF9ibGtzX2hpdCArIGJ1ZnVz YWdlLnNoYXJlZF9ibGtzX2hpdDsKKwlyZXBvcnQtPnRvdGFsX2Jsa3NfZGlydGllZCA9IGJ1 ZnVzYWdlLmxvY2FsX2Jsa3NfZGlydGllZCArIGJ1ZnVzYWdlLnNoYXJlZF9ibGtzX2RpcnRp ZWQ7CisJcmVwb3J0LT50b3RhbF9ibGtzX3dyaXR0ZW4gPSBidWZ1c2FnZS5zaGFyZWRfYmxr c193cml0dGVuOworCisJcmVwb3J0LT53YWxfcmVjb3JkcyA9IHdhbHVzYWdlLndhbF9yZWNv cmRzOworCXJlcG9ydC0+d2FsX2ZwaSA9IHdhbHVzYWdlLndhbF9mcGk7CisJcmVwb3J0LT53 YWxfYnl0ZXMgPSB3YWx1c2FnZS53YWxfYnl0ZXM7CisKKwlyZXBvcnQtPmJsa19yZWFkX3Rp bWUgPSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhidWZ1c2FnZS5sb2NhbF9ibGtfcmVhZF90 aW1lKTsKKwlyZXBvcnQtPmJsa19yZWFkX3RpbWUgKz0gSU5TVFJfVElNRV9HRVRfTUlMTElT RUMoYnVmdXNhZ2Uuc2hhcmVkX2Jsa19yZWFkX3RpbWUpOworCXJlcG9ydC0+YmxrX3dyaXRl X3RpbWUgPSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhidWZ1c2FnZS5sb2NhbF9ibGtfd3Jp dGVfdGltZSk7CisJcmVwb3J0LT5ibGtfd3JpdGVfdGltZSA9IElOU1RSX1RJTUVfR0VUX01J TExJU0VDKGJ1ZnVzYWdlLnNoYXJlZF9ibGtfd3JpdGVfdGltZSk7CisJcmVwb3J0LT5kZWxh eV90aW1lID0gVmFjdXVtRGVsYXlUaW1lIC0gY291bnRlcnMtPlZhY3V1bURlbGF5VGltZTsK KworCXJlcG9ydC0+dG90YWxfdGltZSA9IHNlY3MgKiAxMDAwLiArIHVzZWNzIC8gMTAwMC47 CisKKwlpZiAoIXJlbC0+cGdzdGF0X2luZm8gfHwgIXBnc3RhdF90cmFja19jb3VudHMpCisJ CS8qCisJCSAqIGlmIHNvbWV0aGluZyBnb2VzIHdyb25nIG9yIGFuIHVzZXIgZG9lc24ndCB3 YW50IHRvIHRyYWNrIGEgZGF0YWJhc2UKKwkJICogYWN0aXZpdHkgLSBqdXN0IHN1cHByZXNz IGl0LgorCQkgKi8KKwkJcmV0dXJuOworCisJcmVwb3J0LT5ibGtzX2ZldGNoZWQgPQorCQly ZWwtPnBnc3RhdF9pbmZvLT5jb3VudHMuYmxvY2tzX2ZldGNoZWQgLSBjb3VudGVycy0+Ymxv Y2tzX2ZldGNoZWQ7CisJcmVwb3J0LT5ibGtzX2hpdCA9CisJCXJlbC0+cGdzdGF0X2luZm8t PmNvdW50cy5ibG9ja3NfaGl0IC0gY291bnRlcnMtPmJsb2Nrc19oaXQ7Cit9CiAKIAogLyoK QEAgLTYzMiw3ICs3NDcsMTQgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgVmFj dXVtUGFyYW1zICpwYXJhbXMsCiAJV2FsVXNhZ2UJc3RhcnR3YWx1c2FnZSA9IHBnV2FsVXNh Z2U7CiAJQnVmZmVyVXNhZ2Ugc3RhcnRidWZmZXJ1c2FnZSA9IHBnQnVmZmVyVXNhZ2U7CiAJ RXJyb3JDb250ZXh0Q2FsbGJhY2sgZXJyY2FsbGJhY2s7CisJTFZFeHRTdGF0Q291bnRlcnMg ZXh0VmFjQ291bnRlcnM7CisJRXh0VmFjUmVwb3J0IGV4dFZhY1JlcG9ydDsKIAljaGFyCSAg KippbmRuYW1lcyA9IE5VTEw7CisJRXh0VmFjUmVwb3J0IGFsbHplcm87CisKKwkvKiBJbml0 aWFsaXplIHZhY3V1bSBzdGF0aXN0aWNzICovCisJbWVtc2V0KCZhbGx6ZXJvLCAwLCBzaXpl b2YoRXh0VmFjUmVwb3J0KSk7CisJZXh0VmFjUmVwb3J0ID0gYWxsemVybzsKIAogCXZlcmJv c2UgPSAocGFyYW1zLT5vcHRpb25zICYgVkFDT1BUX1ZFUkJPU0UpICE9IDA7CiAJaW5zdHJ1 bWVudCA9ICh2ZXJib3NlIHx8IChBbUF1dG9WYWN1dW1Xb3JrZXJQcm9jZXNzKCkgJiYKQEAg LTY1Miw3ICs3NzQsNyBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLCBWYWN1dW1Q YXJhbXMgKnBhcmFtcywKIAogCXBnc3RhdF9wcm9ncmVzc19zdGFydF9jb21tYW5kKFBST0dS RVNTX0NPTU1BTkRfVkFDVVVNLAogCQkJCQkJCQkgIFJlbGF0aW9uR2V0UmVsaWQocmVsKSk7 Ci0KKwlleHR2YWNfc3RhdHNfc3RhcnQocmVsLCAmZXh0VmFjQ291bnRlcnMpOwogCS8qCiAJ ICogU2V0dXAgZXJyb3IgdHJhY2ViYWNrIHN1cHBvcnQgZm9yIGVyZXBvcnQoKSBmaXJzdC4g IFRoZSBpZGVhIGlzIHRvIHNldAogCSAqIHVwIGFuIGVycm9yIGNvbnRleHQgY2FsbGJhY2sg dG8gZGlzcGxheSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9uIGFueQpAQCAtNjY5LDYgKzc5 MSw3IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIFZhY3V1bVBhcmFtcyAqcGFy YW1zLAogCXZhY3JlbC0+ZGJuYW1lID0gZ2V0X2RhdGFiYXNlX25hbWUoTXlEYXRhYmFzZUlk KTsKIAl2YWNyZWwtPnJlbG5hbWVzcGFjZSA9IGdldF9uYW1lc3BhY2VfbmFtZShSZWxhdGlv bkdldE5hbWVzcGFjZShyZWwpKTsKIAl2YWNyZWwtPnJlbG5hbWUgPSBwc3RyZHVwKFJlbGF0 aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpOworCXZhY3JlbC0+cmVsb2lkID0gUmVsYXRpb25H ZXRSZWxpZChyZWwpOwogCXZhY3JlbC0+aW5kbmFtZSA9IE5VTEw7CiAJdmFjcmVsLT5waGFz ZSA9IFZBQ1VVTV9FUlJDQl9QSEFTRV9VTktOT1dOOwogCXZhY3JlbC0+dmVyYm9zZSA9IHZl cmJvc2U7CkBAIC03NTgsNiArODgxLDcgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJl bCwgVmFjdXVtUGFyYW1zICpwYXJhbXMsCiAJdmFjcmVsLT52bV9uZXdfdmlzaWJsZV9mcm96 ZW5fcGFnZXMgPSAwOwogCXZhY3JlbC0+dm1fbmV3X2Zyb3plbl9wYWdlcyA9IDA7CiAJdmFj cmVsLT5yZWxfcGFnZXMgPSBvcmlnX3JlbF9wYWdlcyA9IFJlbGF0aW9uR2V0TnVtYmVyT2ZC bG9ja3MocmVsKTsKKwl2YWNyZWwtPndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQgPSAwOwog CiAJLyoKIAkgKiBHZXQgY3V0b2ZmcyB0aGF0IGRldGVybWluZSB3aGljaCBkZWxldGVkIHR1 cGxlcyBhcmUgY29uc2lkZXJlZCBERUFELApAQCAtOTI0LDYgKzEwNDgsMjYgQEAgaGVhcF92 YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgVmFjdXVtUGFyYW1zICpwYXJhbXMsCiAJCQkJCQl2 YWNyZWwtPk5ld1JlbGZyb3plblhpZCwgdmFjcmVsLT5OZXdSZWxtaW5NeGlkLAogCQkJCQkJ JmZyb3plbnhpZF91cGRhdGVkLCAmbWlubXVsdGlfdXBkYXRlZCwgZmFsc2UpOwogCisJLyog TWFrZSBnZW5lcmljIGV4dGVuZGVkIHZhY3V1bSBzdGF0cyByZXBvcnQgKi8KKwlleHR2YWNf c3RhdHNfZW5kKHJlbCwgJmV4dFZhY0NvdW50ZXJzLCAmZXh0VmFjUmVwb3J0KTsKKworCWlm KHBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljcykKKwl7CisJCS8qIEZpbGwgaGVhcC1z cGVjaWZpYyBleHRlbmRlZCBzdGF0cyBmaWVsZHMgKi8KKwkJZXh0VmFjUmVwb3J0LnBhZ2Vz X3NjYW5uZWQgPSB2YWNyZWwtPnNjYW5uZWRfcGFnZXM7CisJCWV4dFZhY1JlcG9ydC5wYWdl c19yZW1vdmVkID0gdmFjcmVsLT5yZW1vdmVkX3BhZ2VzOworCQlleHRWYWNSZXBvcnQudm1f bmV3X2Zyb3plbl9wYWdlcyA9IHZhY3JlbC0+dm1fbmV3X2Zyb3plbl9wYWdlczsKKwkJZXh0 VmFjUmVwb3J0LnZtX25ld192aXNpYmxlX3BhZ2VzID0gdmFjcmVsLT52bV9uZXdfdmlzaWJs ZV9wYWdlczsKKwkJZXh0VmFjUmVwb3J0LnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyA9 IHZhY3JlbC0+dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzOworCQlleHRWYWNSZXBvcnQu dHVwbGVzX2RlbGV0ZWQgPSB2YWNyZWwtPnR1cGxlc19kZWxldGVkOworCQlleHRWYWNSZXBv cnQudHVwbGVzX2Zyb3plbiA9IHZhY3JlbC0+dHVwbGVzX2Zyb3plbjsKKwkJZXh0VmFjUmVw b3J0LnJlY2VudGx5X2RlYWRfdHVwbGVzID0gdmFjcmVsLT5yZWNlbnRseV9kZWFkX3R1cGxl czsKKwkJZXh0VmFjUmVwb3J0Lm1pc3NlZF9kZWFkX3R1cGxlcyA9IHZhY3JlbC0+bWlzc2Vk X2RlYWRfdHVwbGVzOworCQlleHRWYWNSZXBvcnQubWlzc2VkX2RlYWRfcGFnZXMgPSB2YWNy ZWwtPm1pc3NlZF9kZWFkX3BhZ2VzOworCQlleHRWYWNSZXBvcnQuaW5kZXhfdmFjdXVtX2Nv dW50ID0gdmFjcmVsLT5udW1faW5kZXhfc2NhbnM7CisJCWV4dFZhY1JlcG9ydC53cmFwYXJv dW5kX2ZhaWxzYWZlX2NvdW50ID0gdmFjcmVsLT53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50 OworCX0KKwogCS8qCiAJICogUmVwb3J0IHJlc3VsdHMgdG8gdGhlIGN1bXVsYXRpdmUgc3Rh dHMgc3lzdGVtLCB0b28uCiAJICoKQEAgLTkzOSw3ICsxMDgzLDggQEAgaGVhcF92YWN1dW1f cmVsKFJlbGF0aW9uIHJlbCwgVmFjdXVtUGFyYW1zICpwYXJhbXMsCiAJCQkJCQkgTWF4KHZh Y3JlbC0+bmV3X2xpdmVfdHVwbGVzLCAwKSwKIAkJCQkJCSB2YWNyZWwtPnJlY2VudGx5X2Rl YWRfdHVwbGVzICsKIAkJCQkJCSB2YWNyZWwtPm1pc3NlZF9kZWFkX3R1cGxlcywKLQkJCQkJ CSBzdGFydHRpbWUpOworCQkJCQkJIHN0YXJ0dGltZSwKKwkJCQkJCSAmZXh0VmFjUmVwb3J0 KTsKIAlwZ3N0YXRfcHJvZ3Jlc3NfZW5kX2NvbW1hbmQoKTsKIAogCWlmIChpbnN0cnVtZW50 KQpAQCAtMjk3Miw2ICszMTE3LDcgQEAgbGF6eV9jaGVja193cmFwYXJvdW5kX2ZhaWxzYWZl KExWUmVsU3RhdGUgKnZhY3JlbCkKIAkJaW50NjQJCXByb2dyZXNzX3ZhbFsyXSA9IHswLCAw fTsKIAogCQlWYWN1dW1GYWlsc2FmZUFjdGl2ZSA9IHRydWU7CisJCXZhY3JlbC0+d3JhcGFy b3VuZF9mYWlsc2FmZV9jb3VudCArKzsKIAogCQkvKgogCQkgKiBBYmFuZG9uIHVzZSBvZiBh IGJ1ZmZlciBhY2Nlc3Mgc3RyYXRlZ3kgdG8gYWxsb3cgdXNlIG9mIGFsbCBvZgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCmluZGV4IDc0NWEwNGVmMjZlLi4w NzYyM2EwNDVmYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJp bGl0eW1hcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAu YwpAQCAtOTEsNiArOTEsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy94bG9naW5zZXJ0LmgiCiAj aW5jbHVkZSAiYWNjZXNzL3hsb2d1dGlscy5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgor I2luY2x1ZGUgInBnc3RhdC5oIgogI2luY2x1ZGUgInBvcnQvcGdfYml0dXRpbHMuaCIKICNp bmNsdWRlICJzdG9yYWdlL2J1Zm1nci5oIgogI2luY2x1ZGUgInN0b3JhZ2Uvc21nci5oIgpA QCAtMTYwLDYgKzE2MSwxNSBAQCB2aXNpYmlsaXR5bWFwX2NsZWFyKFJlbGF0aW9uIHJlbCwg QmxvY2tOdW1iZXIgaGVhcEJsaywgQnVmZmVyIHZtYnVmLCB1aW50OCBmbGFncwogCiAJaWYg KG1hcFttYXBCeXRlXSAmIG1hc2spCiAJeworCQkvKgorCQkgKiBBcyBwYXJ0IG9mIHZhY3V1 bSBzdGF0cywgdHJhY2sgaG93IG9mdGVuIGFsbC12aXNpYmxlIG9yIGFsbC1mcm96ZW4KKwkJ ICogYml0cyBhcmUgY2xlYXJlZC4KKwkJICovCisJCWlmIChtYXBbbWFwQnl0ZV0gPj4gbWFw T2Zmc2V0ICYgZmxhZ3MgJiBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFKQorCQkJcGdzdGF0 X2NvdW50X3ZtX3Jldl9hbGxfdmlzaWJsZShyZWwpOworCQlpZiAobWFwW21hcEJ5dGVdID4+ IG1hcE9mZnNldCAmIGZsYWdzICYgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKQorCQkJcGdz dGF0X2NvdW50X3ZtX3Jldl9hbGxfZnJvemVuKHJlbCk7CisKIAkJbWFwW21hcEJ5dGVdICY9 IH5tYXNrOwogCiAJCU1hcmtCdWZmZXJEaXJ0eSh2bWJ1Zik7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgYi9zcmMvYmFja2VuZC9jYXRhbG9n L3N5c3RlbV92aWV3cy5zcWwKaW5kZXggMTVlZmIwMmJhZGIuLjAyMDViOWJiNThjIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC03MTMsNyArNzEzLDkgQEAg Q1JFQVRFIFZJRVcgcGdfc3RhdF9hbGxfdGFibGVzIEFTCiAgICAgICAgICAgICBwZ19zdGF0 X2dldF90b3RhbF92YWN1dW1fdGltZShDLm9pZCkgQVMgdG90YWxfdmFjdXVtX3RpbWUsCiAg ICAgICAgICAgICBwZ19zdGF0X2dldF90b3RhbF9hdXRvdmFjdXVtX3RpbWUoQy5vaWQpIEFT IHRvdGFsX2F1dG92YWN1dW1fdGltZSwKICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X3RvdGFs X2FuYWx5emVfdGltZShDLm9pZCkgQVMgdG90YWxfYW5hbHl6ZV90aW1lLAotICAgICAgICAg ICAgcGdfc3RhdF9nZXRfdG90YWxfYXV0b2FuYWx5emVfdGltZShDLm9pZCkgQVMgdG90YWxf YXV0b2FuYWx5emVfdGltZQorICAgICAgICAgICAgcGdfc3RhdF9nZXRfdG90YWxfYXV0b2Fu YWx5emVfdGltZShDLm9pZCkgQVMgdG90YWxfYXV0b2FuYWx5emVfdGltZSwKKyAgICAgICAg ICAgIHBnX3N0YXRfZ2V0X3Jldl9hbGxfZnJvemVuX3BhZ2VzKEMub2lkKSBBUyByZXZfYWxs X2Zyb3plbl9wYWdlcywKKyAgICAgICAgICAgIHBnX3N0YXRfZ2V0X3Jldl9hbGxfdmlzaWJs ZV9wYWdlcyhDLm9pZCkgQVMgcmV2X2FsbF92aXNpYmxlX3BhZ2VzCiAgICAgRlJPTSBwZ19j bGFzcyBDIExFRlQgSk9JTgogICAgICAgICAgcGdfaW5kZXggSSBPTiBDLm9pZCA9IEkuaW5k cmVsaWQKICAgICAgICAgIExFRlQgSk9JTiBwZ19uYW1lc3BhY2UgTiBPTiAoTi5vaWQgPSBD LnJlbG5hbWVzcGFjZSkKQEAgLTE0MTIsMyArMTQxNCw1MSBAQCBSRVZPS0UgQUxMIE9OIHBn X2Fpb3MgRlJPTSBQVUJMSUM7CiBHUkFOVCBTRUxFQ1QgT04gcGdfYWlvcyBUTyBwZ19yZWFk X2FsbF9zdGF0czsKIFJFVk9LRSBFWEVDVVRFIE9OIEZVTkNUSU9OIHBnX2dldF9haW9zKCkg RlJPTSBQVUJMSUM7CiBHUkFOVCBFWEVDVVRFIE9OIEZVTkNUSU9OIHBnX2dldF9haW9zKCkg VE8gcGdfcmVhZF9hbGxfc3RhdHM7CistLQorLS0gU2hvdyBleHRlbmRlZCBjdW11bGF0aXZl IHN0YXRpc3RpY3Mgb24gYSB2YWN1dW0gb3BlcmF0aW9uIG92ZXIgYWxsIHRhYmxlcyBhbmQK Ky0tIGRhdGFiYXNlcyBvZiB0aGUgaW5zdGFuY2UuCistLSBVc2UgSW52YWxpZCBPaWQgIjAi IGFzIGFuIGlucHV0IHJlbGF0aW9uIGlkIHRvIGdldCBzdGF0IG9uIGVhY2ggdGFibGUgaW4g YQorLS0gZGF0YWJhc2UuCistLQorCitDUkVBVEUgVklFVyBwZ19zdGF0X3ZhY3V1bV90YWJs ZXMgQVMKK1NFTEVDVAorICBucy5uc3BuYW1lIEFTIHNjaGVtYW5hbWUsCisgIHJlbC5yZWxu YW1lIEFTIHJlbG5hbWUsCisgIHN0YXRzLnJlbGlkIGFzIHJlbGlkLAorCisgIHN0YXRzLnRv dGFsX2Jsa3NfcmVhZCBBUyB0b3RhbF9ibGtzX3JlYWQsCisgIHN0YXRzLnRvdGFsX2Jsa3Nf aGl0IEFTIHRvdGFsX2Jsa3NfaGl0LAorICBzdGF0cy50b3RhbF9ibGtzX2RpcnRpZWQgQVMg dG90YWxfYmxrc19kaXJ0aWVkLAorICBzdGF0cy50b3RhbF9ibGtzX3dyaXR0ZW4gQVMgdG90 YWxfYmxrc193cml0dGVuLAorCisgIHN0YXRzLnJlbF9ibGtzX3JlYWQgQVMgcmVsX2Jsa3Nf cmVhZCwKKyAgc3RhdHMucmVsX2Jsa3NfaGl0IEFTIHJlbF9ibGtzX2hpdCwKKworICBzdGF0 cy5wYWdlc19zY2FubmVkIEFTIHBhZ2VzX3NjYW5uZWQsCisgIHN0YXRzLnBhZ2VzX3JlbW92 ZWQgQVMgcGFnZXNfcmVtb3ZlZCwKKyAgc3RhdHMudm1fbmV3X2Zyb3plbl9wYWdlcyBBUyB2 bV9uZXdfZnJvemVuX3BhZ2VzLAorICBzdGF0cy52bV9uZXdfdmlzaWJsZV9wYWdlcyBBUyB2 bV9uZXdfdmlzaWJsZV9wYWdlcywKKyAgc3RhdHMudm1fbmV3X3Zpc2libGVfZnJvemVuX3Bh Z2VzIEFTIHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcywKKyAgc3RhdHMubWlzc2VkX2Rl YWRfcGFnZXMgQVMgbWlzc2VkX2RlYWRfcGFnZXMsCisgIHN0YXRzLnR1cGxlc19kZWxldGVk IEFTIHR1cGxlc19kZWxldGVkLAorICBzdGF0cy50dXBsZXNfZnJvemVuIEFTIHR1cGxlc19m cm96ZW4sCisgIHN0YXRzLnJlY2VudGx5X2RlYWRfdHVwbGVzIEFTIHJlY2VudGx5X2RlYWRf dHVwbGVzLAorICBzdGF0cy5taXNzZWRfZGVhZF90dXBsZXMgQVMgbWlzc2VkX2RlYWRfdHVw bGVzLAorCisgIHN0YXRzLndyYXBhcm91bmRfZmFpbHNhZmUgQVMgd3JhcGFyb3VuZF9mYWls c2FmZSwKKyAgc3RhdHMuaW5kZXhfdmFjdXVtX2NvdW50IEFTIGluZGV4X3ZhY3V1bV9jb3Vu dCwKKyAgc3RhdHMud2FsX3JlY29yZHMgQVMgd2FsX3JlY29yZHMsCisgIHN0YXRzLndhbF9m cGkgQVMgd2FsX2ZwaSwKKyAgc3RhdHMud2FsX2J5dGVzIEFTIHdhbF9ieXRlcywKKworICBz dGF0cy5ibGtfcmVhZF90aW1lIEFTIGJsa19yZWFkX3RpbWUsCisgIHN0YXRzLmJsa193cml0 ZV90aW1lIEFTIGJsa193cml0ZV90aW1lLAorCisgIHN0YXRzLmRlbGF5X3RpbWUgQVMgZGVs YXlfdGltZSwKKyAgc3RhdHMudG90YWxfdGltZSBBUyB0b3RhbF90aW1lCisKK0ZST00gcGdf Y2xhc3MgcmVsCisgIEpPSU4gcGdfbmFtZXNwYWNlIG5zIE9OIG5zLm9pZCA9IHJlbC5yZWxu YW1lc3BhY2UsCisgIExBVEVSQUwgcGdfc3RhdF9nZXRfdmFjdXVtX3RhYmxlcyhyZWwub2lk KSBzdGF0cworV0hFUkUgcmVsLnJlbGtpbmQgPSAncic7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy92YWN1dW0uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5j CmluZGV4IDMzYTMzYmY2YjFjLi5mZmI3ZTFlZWY0YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVt LmMKQEAgLTExNSw2ICsxMTUsOSBAQCBwZ19hdG9taWNfdWludDMyICpWYWN1dW1TaGFyZWRD b3N0QmFsYW5jZSA9IE5VTEw7CiBwZ19hdG9taWNfdWludDMyICpWYWN1dW1BY3RpdmVOV29y a2VycyA9IE5VTEw7CiBpbnQJCQlWYWN1dW1Db3N0QmFsYW5jZUxvY2FsID0gMDsKIAorLyog Q3VtdWxhdGl2ZSBzdG9yYWdlIHRvIHJlcG9ydCB0b3RhbCB2YWN1dW0gZGVsYXkgdGltZS4g Ki8KK2RvdWJsZSBWYWN1dW1EZWxheVRpbWUgPSAwOyAvKiBtc2VjLiAqLworCiAvKiBub24t ZXhwb3J0IGZ1bmN0aW9uIHByb3RvdHlwZXMgKi8KIHN0YXRpYyBMaXN0ICpleHBhbmRfdmFj dXVtX3JlbChWYWN1dW1SZWxhdGlvbiAqdnJlbCwKIAkJCQkJCQkgICBNZW1vcnlDb250ZXh0 IHZhY19jb250ZXh0LCBpbnQgb3B0aW9ucyk7CkBAIC0yNTE0LDYgKzI1MTcsNyBAQCB2YWN1 dW1fZGVsYXlfcG9pbnQoYm9vbCBpc19hbmFseXplKQogCQkJZXhpdCgxKTsKIAogCQlWYWN1 dW1Db3N0QmFsYW5jZSA9IDA7CisJCVZhY3V1bURlbGF5VGltZSArPSBtc2VjOwogCiAJCS8q CiAJCSAqIEJhbGFuY2UgYW5kIHVwZGF0ZSBsaW1pdCB2YWx1ZXMgZm9yIGF1dG92YWN1dW0g d29ya2Vycy4gV2UgbXVzdCBkbwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv dmFjdXVtcGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVs LmMKaW5kZXggMmI5ZDU0OGNkZWIuLjc5MjRjNTI2Y2IwIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3ZhY3V1bXBhcmFsbGVsLmMKQEAgLTEwNTQsNiArMTA1NCw3IEBAIHBhcmFsbGVsX3Zh Y3V1bV9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAkvKiBTZXQgY29z dC1iYXNlZCB2YWN1dW0gZGVsYXkgKi8KIAlWYWN1dW1VcGRhdGVDb3N0cygpOwogCVZhY3V1 bUNvc3RCYWxhbmNlID0gMDsKKwlWYWN1dW1EZWxheVRpbWUgPSAwOwogCVZhY3V1bUNvc3RC YWxhbmNlTG9jYWwgPSAwOwogCVZhY3V1bVNoYXJlZENvc3RCYWxhbmNlID0gJihzaGFyZWQt PmNvc3RfYmFsYW5jZSk7CiAJVmFjdXVtQWN0aXZlTldvcmtlcnMgPSAmKHNoYXJlZC0+YWN0 aXZlX253b3JrZXJzKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5 L3Bnc3RhdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKaW5kZXgg OGI1Nzg0NWU4NzAuLjIzY2I2MmUzNmE3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hY3Rpdml0eS9wZ3N0YXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9w Z3N0YXQuYwpAQCAtMTkwLDcgKzE5MCw3IEBAIHN0YXRpYyB2b2lkIHBnc3RhdF9yZXNldF9h ZnRlcl9mYWlsdXJlKHZvaWQpOwogc3RhdGljIGJvb2wgcGdzdGF0X2ZsdXNoX3BlbmRpbmdf ZW50cmllcyhib29sIG5vd2FpdCk7CiAKIHN0YXRpYyB2b2lkIHBnc3RhdF9wcmVwX3NuYXBz aG90KHZvaWQpOwotc3RhdGljIHZvaWQgcGdzdGF0X2J1aWxkX3NuYXBzaG90KHZvaWQpOwor c3RhdGljIHZvaWQgcGdzdGF0X2J1aWxkX3NuYXBzaG90KFBnU3RhdF9LaW5kIHN0YXRLaW5k KTsKIHN0YXRpYyB2b2lkIHBnc3RhdF9idWlsZF9zbmFwc2hvdF9maXhlZChQZ1N0YXRfS2lu ZCBraW5kKTsKIAogc3RhdGljIGlubGluZSBib29sIHBnc3RhdF9pc19raW5kX3ZhbGlkKFBn U3RhdF9LaW5kIGtpbmQpOwpAQCAtMjAzLDcgKzIwMyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v bCBwZ3N0YXRfaXNfa2luZF92YWxpZChQZ1N0YXRfS2luZCBraW5kKTsKIAogYm9vbAkJcGdz dGF0X3RyYWNrX2NvdW50cyA9IGZhbHNlOwogaW50CQkJcGdzdGF0X2ZldGNoX2NvbnNpc3Rl bmN5ID0gUEdTVEFUX0ZFVENIX0NPTlNJU1RFTkNZX0NBQ0hFOwotCitib29sCQlwZ3N0YXRf dHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MgPSB0cnVlOwogCiAvKiAtLS0tLS0tLS0tCiAgKiBz dGF0ZSBzaGFyZWQgd2l0aCBwZ3N0YXRfKi5jCkBAIC0yNjAsNyArMjYwLDYgQEAgc3RhdGlj IGJvb2wgcGdzdGF0X2lzX2luaXRpYWxpemVkID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBwZ3N0 YXRfaXNfc2h1dGRvd24gPSBmYWxzZTsKICNlbmRpZgogCi0KIC8qCiAgKiBUaGUgZGlmZmVy ZW50IGtpbmRzIG9mIGJ1aWx0LWluIHN0YXRpc3RpY3MuCiAgKgpAQCAtODk3LDcgKzg5Niw2 IEBAIHBnc3RhdF9yZXNldF9vZl9raW5kKFBnU3RhdF9LaW5kIGtpbmQpCiAJCXBnc3RhdF9y ZXNldF9lbnRyaWVzX29mX2tpbmQoa2luZCwgdHMpOwogfQogCi0KIC8qIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICog RmV0Y2hpbmcgb2Ygc3RhdHMKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtOTY2LDcgKzk2NCw3IEBAIHBnc3Rh dF9mZXRjaF9lbnRyeShQZ1N0YXRfS2luZCBraW5kLCBPaWQgZGJvaWQsIHVpbnQ2NCBvYmpp ZCkKIAogCS8qIGlmIHdlIG5lZWQgdG8gYnVpbGQgYSBmdWxsIHNuYXBzaG90LCBkbyBzbyAq LwogCWlmIChwZ3N0YXRfZmV0Y2hfY29uc2lzdGVuY3kgPT0gUEdTVEFUX0ZFVENIX0NPTlNJ U1RFTkNZX1NOQVBTSE9UKQotCQlwZ3N0YXRfYnVpbGRfc25hcHNob3QoKTsKKwkJcGdzdGF0 X2J1aWxkX3NuYXBzaG90KFBHU1RBVF9LSU5EX0lOVkFMSUQpOwogCiAJLyogaWYgY2FjaGlu ZyBpcyBkZXNpcmVkLCBsb29rIHVwIGluIGNhY2hlICovCiAJaWYgKHBnc3RhdF9mZXRjaF9j b25zaXN0ZW5jeSA+IFBHU1RBVF9GRVRDSF9DT05TSVNURU5DWV9OT05FKQpAQCAtMTA4Miw3 ICsxMDgwLDcgQEAgcGdzdGF0X3NuYXBzaG90X2ZpeGVkKFBnU3RhdF9LaW5kIGtpbmQpCiAJ CXBnc3RhdF9jbGVhcl9zbmFwc2hvdCgpOwogCiAJaWYgKHBnc3RhdF9mZXRjaF9jb25zaXN0 ZW5jeSA9PSBQR1NUQVRfRkVUQ0hfQ09OU0lTVEVOQ1lfU05BUFNIT1QpCi0JCXBnc3RhdF9i dWlsZF9zbmFwc2hvdCgpOworCQlwZ3N0YXRfYnVpbGRfc25hcHNob3QoUEdTVEFUX0tJTkRf SU5WQUxJRCk7CiAJZWxzZQogCQlwZ3N0YXRfYnVpbGRfc25hcHNob3RfZml4ZWQoa2luZCk7 CiAKQEAgLTExMzMsNyArMTEzMSw3IEBAIHBnc3RhdF9wcmVwX3NuYXBzaG90KHZvaWQpCiB9 CiAKIHN0YXRpYyB2b2lkCi1wZ3N0YXRfYnVpbGRfc25hcHNob3Qodm9pZCkKK3Bnc3RhdF9i dWlsZF9zbmFwc2hvdChQZ1N0YXRfS2luZCBzdGF0S2luZCkKIHsKIAlkc2hhc2hfc2VxX3N0 YXR1cyBoc3RhdDsKIAlQZ1N0YXRTaGFyZWRfSGFzaEVudHJ5ICpwOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMgYi9zcmMvYmFj a2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYwppbmRleCAyODU4N2UyOTE2 Yi4uZWUwMzg1Y2Q4MDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5 L3Bnc3RhdF9yZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bn c3RhdF9yZWxhdGlvbi5jCkBAIC00Nyw2ICs0Nyw4IEBAIHN0YXRpYyB2b2lkIGFkZF90YWJz dGF0X3hhY3RfbGV2ZWwoUGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXRfaW5mbywgaW50IG5l c3RfbGV2CiBzdGF0aWMgdm9pZCBlbnN1cmVfdGFic3RhdF94YWN0X2xldmVsKFBnU3RhdF9U YWJsZVN0YXR1cyAqcGdzdGF0X2luZm8pOwogc3RhdGljIHZvaWQgc2F2ZV90cnVuY2Ryb3Bf Y291bnRlcnMoUGdTdGF0X1RhYmxlWGFjdFN0YXR1cyAqdHJhbnMsIGJvb2wgaXNfZHJvcCk7 CiBzdGF0aWMgdm9pZCByZXN0b3JlX3RydW5jZHJvcF9jb3VudGVycyhQZ1N0YXRfVGFibGVY YWN0U3RhdHVzICp0cmFucyk7CitzdGF0aWMgdm9pZCBwZ3N0YXRfYWNjdW11bGF0ZV9leHR2 YWNfc3RhdHMoRXh0VmFjUmVwb3J0ICpkc3QsIEV4dFZhY1JlcG9ydCAqc3JjLAorCQkJCQkJ CSAgIGJvb2wgYWNjdW11bGF0ZV9yZWx0eXBlX3NwZWNpZmljX2luZm8pOwogCiAKIC8qCkBA IC0yMDksNyArMjExLDcgQEAgcGdzdGF0X2Ryb3BfcmVsYXRpb24oUmVsYXRpb24gcmVsKQog dm9pZAogcGdzdGF0X3JlcG9ydF92YWN1dW0oT2lkIHRhYmxlb2lkLCBib29sIHNoYXJlZCwK IAkJCQkJIFBnU3RhdF9Db3VudGVyIGxpdmV0dXBsZXMsIFBnU3RhdF9Db3VudGVyIGRlYWR0 dXBsZXMsCi0JCQkJCSBUaW1lc3RhbXBUeiBzdGFydHRpbWUpCisJCQkJCSBUaW1lc3RhbXBU eiBzdGFydHRpbWUsIEV4dFZhY1JlcG9ydCAqcGFyYW1zKQogewogCVBnU3RhdF9FbnRyeVJl ZiAqZW50cnlfcmVmOwogCVBnU3RhdFNoYXJlZF9SZWxhdGlvbiAqc2h0YWJlbnRyeTsKQEAg LTIzNSw2ICsyMzcsOCBAQCBwZ3N0YXRfcmVwb3J0X3ZhY3V1bShPaWQgdGFibGVvaWQsIGJv b2wgc2hhcmVkLAogCXRhYmVudHJ5LT5saXZlX3R1cGxlcyA9IGxpdmV0dXBsZXM7CiAJdGFi ZW50cnktPmRlYWRfdHVwbGVzID0gZGVhZHR1cGxlczsKIAorCXBnc3RhdF9hY2N1bXVsYXRl X2V4dHZhY19zdGF0cygmdGFiZW50cnktPnZhY3V1bV9leHQsIHBhcmFtcywgdHJ1ZSk7CisK IAkvKgogCSAqIEl0IGlzIHF1aXRlIHBvc3NpYmxlIHRoYXQgYSBub24tYWdncmVzc2l2ZSBW QUNVVU0gZW5kZWQgdXAgc2tpcHBpbmcKIAkgKiB2YXJpb3VzIHBhZ2VzLCBob3dldmVyLCB3 ZSdsbCB6ZXJvIHRoZSBpbnNlcnQgY291bnRlciBoZXJlIHJlZ2FyZGxlc3MuCkBAIC04ODEs NiArODg1LDkgQEAgcGdzdGF0X3JlbGF0aW9uX2ZsdXNoX2NiKFBnU3RhdF9FbnRyeVJlZiAq ZW50cnlfcmVmLCBib29sIG5vd2FpdCkKIAl0YWJlbnRyeS0+YmxvY2tzX2ZldGNoZWQgKz0g bHN0YXRzLT5jb3VudHMuYmxvY2tzX2ZldGNoZWQ7CiAJdGFiZW50cnktPmJsb2Nrc19oaXQg Kz0gbHN0YXRzLT5jb3VudHMuYmxvY2tzX2hpdDsKIAorCXRhYmVudHJ5LT5yZXZfYWxsX2Zy b3plbl9wYWdlcyArPSBsc3RhdHMtPmNvdW50cy5yZXZfYWxsX2Zyb3plbl9wYWdlczsKKwl0 YWJlbnRyeS0+cmV2X2FsbF92aXNpYmxlX3BhZ2VzICs9IGxzdGF0cy0+Y291bnRzLnJldl9h bGxfdmlzaWJsZV9wYWdlczsKKwogCS8qIENsYW1wIGxpdmVfdHVwbGVzIGluIGNhc2Ugb2Yg bmVnYXRpdmUgZGVsdGFfbGl2ZV90dXBsZXMgKi8KIAl0YWJlbnRyeS0+bGl2ZV90dXBsZXMg PSBNYXgodGFiZW50cnktPmxpdmVfdHVwbGVzLCAwKTsKIAkvKiBMaWtld2lzZSBmb3IgZGVh ZF90dXBsZXMgKi8KQEAgLTEwMDQsMyArMTAxMSw0MCBAQCByZXN0b3JlX3RydW5jZHJvcF9j b3VudGVycyhQZ1N0YXRfVGFibGVYYWN0U3RhdHVzICp0cmFucykKIAkJdHJhbnMtPnR1cGxl c19kZWxldGVkID0gdHJhbnMtPmRlbGV0ZWRfcHJlX3RydW5jZHJvcDsKIAl9CiB9CisKK3N0 YXRpYyB2b2lkCitwZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNfc3RhdHMoRXh0VmFjUmVwb3J0 ICpkc3QsIEV4dFZhY1JlcG9ydCAqc3JjLAorCQkJCQkJCSAgIGJvb2wgYWNjdW11bGF0ZV9y ZWx0eXBlX3NwZWNpZmljX2luZm8pCit7CisJZHN0LT50b3RhbF9ibGtzX3JlYWQgKz0gc3Jj LT50b3RhbF9ibGtzX3JlYWQ7CisJZHN0LT50b3RhbF9ibGtzX2hpdCArPSBzcmMtPnRvdGFs X2Jsa3NfaGl0OworCWRzdC0+dG90YWxfYmxrc19kaXJ0aWVkICs9IHNyYy0+dG90YWxfYmxr c19kaXJ0aWVkOworCWRzdC0+dG90YWxfYmxrc193cml0dGVuICs9IHNyYy0+dG90YWxfYmxr c193cml0dGVuOworCWRzdC0+d2FsX2J5dGVzICs9IHNyYy0+d2FsX2J5dGVzOworCWRzdC0+ d2FsX2ZwaSArPSBzcmMtPndhbF9mcGk7CisJZHN0LT53YWxfcmVjb3JkcyArPSBzcmMtPndh bF9yZWNvcmRzOworCWRzdC0+YmxrX3JlYWRfdGltZSArPSBzcmMtPmJsa19yZWFkX3RpbWU7 CisJZHN0LT5ibGtfd3JpdGVfdGltZSArPSBzcmMtPmJsa193cml0ZV90aW1lOworCWRzdC0+ ZGVsYXlfdGltZSArPSBzcmMtPmRlbGF5X3RpbWU7CisJZHN0LT50b3RhbF90aW1lICs9IHNy Yy0+dG90YWxfdGltZTsKKworCWlmICghYWNjdW11bGF0ZV9yZWx0eXBlX3NwZWNpZmljX2lu Zm8pCisJCXJldHVybjsKKworCWRzdC0+Ymxrc19mZXRjaGVkICs9IHNyYy0+Ymxrc19mZXRj aGVkOworCWRzdC0+Ymxrc19oaXQgKz0gc3JjLT5ibGtzX2hpdDsKKworCWRzdC0+cGFnZXNf c2Nhbm5lZCArPSBzcmMtPnBhZ2VzX3NjYW5uZWQ7CisJZHN0LT5wYWdlc19yZW1vdmVkICs9 IHNyYy0+cGFnZXNfcmVtb3ZlZDsKKwlkc3QtPnZtX25ld19mcm96ZW5fcGFnZXMgKz0gc3Jj LT52bV9uZXdfZnJvemVuX3BhZ2VzOworCWRzdC0+dm1fbmV3X3Zpc2libGVfcGFnZXMgKz0g c3JjLT52bV9uZXdfdmlzaWJsZV9wYWdlczsKKwlkc3QtPnZtX25ld192aXNpYmxlX2Zyb3pl bl9wYWdlcyArPSBzcmMtPnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlczsKKwlkc3QtPnR1 cGxlc19kZWxldGVkICs9IHNyYy0+dHVwbGVzX2RlbGV0ZWQ7CisJZHN0LT50dXBsZXNfZnJv emVuICs9IHNyYy0+dHVwbGVzX2Zyb3plbjsKKwlkc3QtPnJlY2VudGx5X2RlYWRfdHVwbGVz ICs9IHNyYy0+cmVjZW50bHlfZGVhZF90dXBsZXM7CisJZHN0LT5pbmRleF92YWN1dW1fY291 bnQgKz0gc3JjLT5pbmRleF92YWN1dW1fY291bnQ7CisJZHN0LT53cmFwYXJvdW5kX2ZhaWxz YWZlX2NvdW50ICs9IHNyYy0+d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudDsKKwlkc3QtPm1p c3NlZF9kZWFkX3BhZ2VzICs9IHNyYy0+bWlzc2VkX2RlYWRfcGFnZXM7CisJZHN0LT5taXNz ZWRfZGVhZF90dXBsZXMgKz0gc3JjLT5taXNzZWRfZGVhZF90dXBsZXM7CisKK30KXCBObyBu ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvcGdzdGF0ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5j CmluZGV4IDk3YWY3YzY1NTRmLi40MTZmM2M1MWIwYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3Bnc3RhdGZ1bmNzLmMKQEAgLTEwNiw2ICsxMDYsMTIgQEAgUEdfU1RBVF9HRVRfUkVMRU5U UllfSU5UNjQodHVwbGVzX3VwZGF0ZWQpCiAvKiBwZ19zdGF0X2dldF92YWN1dW1fY291bnQg Ki8KIFBHX1NUQVRfR0VUX1JFTEVOVFJZX0lOVDY0KHZhY3V1bV9jb3VudCkKIAorLyogcGdf c3RhdF9nZXRfcmV2X2Zyb3plbl9wYWdlcyAqLworUEdfU1RBVF9HRVRfUkVMRU5UUllfSU5U NjQocmV2X2FsbF9mcm96ZW5fcGFnZXMpCisKKy8qIHBnX3N0YXRfZ2V0X3Jldl9hbGxfdmlz aWJsZV9wYWdlcyAqLworUEdfU1RBVF9HRVRfUkVMRU5UUllfSU5UNjQocmV2X2FsbF92aXNp YmxlX3BhZ2VzKQorCiAjZGVmaW5lIFBHX1NUQVRfR0VUX1JFTEVOVFJZX0ZMT0FUOChzdGF0 KQkJCQkJCVwKIERhdHVtCQkJCQkJCQkJCQkJCQkJXAogQ3BwQ29uY2F0KHBnX3N0YXRfZ2V0 XyxzdGF0KShQR19GVU5DVElPTl9BUkdTKQkJCQkJXApAQCAtMjI1OCwzICsyMjY0LDE0NCBA QCBwZ19zdGF0X2hhdmVfc3RhdHMoUEdfRlVOQ1RJT05fQVJHUykKIAogCVBHX1JFVFVSTl9C T09MKHBnc3RhdF9oYXZlX2VudHJ5KGtpbmQsIGRib2lkLCBvYmppZCkpOwogfQorCisKKy8q CisgKiBHZXQgdGhlIHZhY3V1bSBzdGF0aXN0aWNzIGZvciB0aGUgaGVhcCB0YWJsZXMuCisg Ki8KK0RhdHVtCitwZ19zdGF0X2dldF92YWN1dW1fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1Mp Cit7CisJI2RlZmluZSBQR19TVEFUX0dFVF9WQUNVVU1fVEFCTEVTX1NUQVRTX0NPTFMgMjYK KworCU9pZAkJCQkJCXJlbGlkID0gUEdfR0VUQVJHX09JRCgwKTsKKwlQZ1N0YXRfU3RhdFRh YkVudHJ5ICAgICAqdGFiZW50cnk7CisJRXh0VmFjUmVwb3J0IAkJCSpleHR2YWN1dW07CisJ VHVwbGVEZXNjCQkJCSB0dXBkZXNjOworCURhdHVtCQkJCQkgdmFsdWVzW1BHX1NUQVRfR0VU X1ZBQ1VVTV9UQUJMRVNfU1RBVFNfQ09MU10gPSB7MH07CisJYm9vbAkJCQkJIG51bGxzW1BH X1NUQVRfR0VUX1ZBQ1VVTV9UQUJMRVNfU1RBVFNfQ09MU10gPSB7MH07CisJY2hhcgkJCQkJ IGJ1ZlsyNTZdOworCWludAkJCQkJCSBpID0gMDsKKwlFeHRWYWNSZXBvcnQgYWxsemVybzsK KworCS8qIEluaXRpYWxpc2UgYXR0cmlidXRlcyBpbmZvcm1hdGlvbiBpbiB0aGUgdHVwbGUg ZGVzY3JpcHRvciAqLworCXR1cGRlc2MgPSBDcmVhdGVUZW1wbGF0ZVR1cGxlRGVzYyhQR19T VEFUX0dFVF9WQUNVVU1fVEFCTEVTX1NUQVRTX0NPTFMpOworCisJVHVwbGVEZXNjSW5pdEVu dHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJyZWxpZCIsCisJCQkJCSAgIElOVDRP SUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIp ICsraSwgInRvdGFsX2Jsa3NfcmVhZCIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlU dXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInRvdGFsX2Js a3NfaGl0IiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRy eSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAidG90YWxfYmxrc19kaXJ0aWVkIiwKKwkJ CQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAo QXR0ck51bWJlcikgKytpLCAidG90YWxfYmxrc193cml0dGVuIiwKKwkJCQkJICAgSU5UOE9J RCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikg KytpLCAicmVsX2Jsa3NfcmVhZCIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBs ZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInJlbF9ibGtzX2hp dCIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVw ZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInBhZ2VzX3NjYW5uZWQiLAorCQkJCQkgICBJTlQ4 T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVy KSArK2ksICJwYWdlc19yZW1vdmVkIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1 cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAidm1fbmV3X2Zy b3plbl9wYWdlcyIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0 RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInZtX25ld192aXNpYmxlX3BhZ2Vz IiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBk ZXNjLCAoQXR0ck51bWJlcikgKytpLCAidm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzIiwK KwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNj LCAoQXR0ck51bWJlcikgKytpLCAibWlzc2VkX2RlYWRfcGFnZXMiLAorCQkJCQkgICBJTlQ4 T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVy KSArK2ksICJ0dXBsZXNfZGVsZXRlZCIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlU dXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInR1cGxlc19m cm96ZW4iLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5 KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJyZWNlbnRseV9kZWFkX3R1cGxlcyIsCisJ CQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywg KEF0dHJOdW1iZXIpICsraSwgIm1pc3NlZF9kZWFkX3R1cGxlcyIsCisJCQkJCSAgIElOVDhP SUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIp ICsraSwgIndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQiLAorCQkJCQkgICBJTlQ0T0lELCAt MSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ks ICJpbmRleF92YWN1dW1fY291bnQiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVw bGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ3YWxfcmVjb3Jk cyIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVw ZGVzYywgKEF0dHJOdW1iZXIpICsraSwgIndhbF9mcGkiLAorCQkJCQkgICBJTlQ4T0lELCAt MSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ks ICJ3YWxfYnl0ZXMiLAorCQkJCQkgICBOVU1FUklDT0lELCAtMSwgMCk7CisKKwlUdXBsZURl c2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImJsa19yZWFkX3RpbWUi LAorCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVw ZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImJsa193cml0ZV90aW1lIiwKKwkJCQkJICAgRkxP QVQ4T0lELCAtMSwgMCk7CisKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJO dW1iZXIpICsraSwgImRlbGF5X3RpbWUiLAorCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsK KwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInRvdGFs X3RpbWUiLAorCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsKKworCUFzc2VydChpID09IFBH X1NUQVRfR0VUX1ZBQ1VVTV9UQUJMRVNfU1RBVFNfQ09MUyk7CisKKwlCbGVzc1R1cGxlRGVz Yyh0dXBkZXNjKTsKKworCXRhYmVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfdGFiZW50cnko cmVsaWQpOworCisJaWYgKHRhYmVudHJ5ID09IE5VTEwpCisJeworCQkvKiBJZiB0aGUgc3Vi c2NyaXB0aW9uIGlzIG5vdCBmb3VuZCwgaW5pdGlhbGlzZSBpdHMgc3RhdHMgKi8KKwkJbWVt c2V0KCZhbGx6ZXJvLCAwLCBzaXplb2YoRXh0VmFjUmVwb3J0KSk7CisJCWV4dHZhY3V1bSA9 ICZhbGx6ZXJvOworCX0KKwllbHNlCisJeworCQlleHR2YWN1dW0gPSAmKHRhYmVudHJ5LT52 YWN1dW1fZXh0KTsKKwl9CisKKwlpID0gMDsKKworCXZhbHVlc1tpKytdID0gT2JqZWN0SWRH ZXREYXR1bShyZWxpZCk7CisKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFj dXVtLT50b3RhbF9ibGtzX3JlYWQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShl eHR2YWN1dW0tPnRvdGFsX2Jsa3NfaGl0KTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0 dW0oZXh0dmFjdXVtLT50b3RhbF9ibGtzX2RpcnRpZWQpOworCXZhbHVlc1tpKytdID0gSW50 NjRHZXREYXR1bShleHR2YWN1dW0tPnRvdGFsX2Jsa3Nfd3JpdHRlbik7CisKKwl2YWx1ZXNb aSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5ibGtzX2ZldGNoZWQgLQorCQkJCQkJ CQkJZXh0dmFjdXVtLT5ibGtzX2hpdCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVt KGV4dHZhY3V1bS0+Ymxrc19oaXQpOworCisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVt KGV4dHZhY3V1bS0+cGFnZXNfc2Nhbm5lZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERh dHVtKGV4dHZhY3V1bS0+cGFnZXNfcmVtb3ZlZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdl dERhdHVtKGV4dHZhY3V1bS0+dm1fbmV3X2Zyb3plbl9wYWdlcyk7CisJdmFsdWVzW2krK10g PSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dm1fbmV3X3Zpc2libGVfcGFnZXMpOworCXZh bHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnZtX25ld192aXNpYmxlX2Zy b3plbl9wYWdlcyk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+ bWlzc2VkX2RlYWRfcGFnZXMpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2 YWN1dW0tPnR1cGxlc19kZWxldGVkKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0o ZXh0dmFjdXVtLT50dXBsZXNfZnJvemVuKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0 dW0oZXh0dmFjdXVtLT5yZWNlbnRseV9kZWFkX3R1cGxlcyk7CisJdmFsdWVzW2krK10gPSBJ bnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+bWlzc2VkX2RlYWRfdHVwbGVzKTsKKwl2YWx1ZXNb aSsrXSA9IEludDMyR2V0RGF0dW0oZXh0dmFjdXVtLT53cmFwYXJvdW5kX2ZhaWxzYWZlX2Nv dW50KTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5pbmRleF92 YWN1dW1fY291bnQpOworCisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1 bS0+d2FsX3JlY29yZHMpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1 dW0tPndhbF9mcGkpOworCisJLyogQ29udmVydCB0byBudW1lcmljLCBsaWtlIHBnX3N0YXRf c3RhdGVtZW50cyAqLworCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mIGJ1ZiwgVUlOVDY0X0ZPUk1B VCwgZXh0dmFjdXVtLT53YWxfYnl0ZXMpOworCXZhbHVlc1tpKytdID0gRGlyZWN0RnVuY3Rp b25DYWxsMyhudW1lcmljX2luLAorCQkJCQkJCQkJICBDU3RyaW5nR2V0RGF0dW0oYnVmKSwK KwkJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bSgwKSwKKwkJCQkJCQkJCSAgSW50MzJHZXRE YXR1bSgtMSkpOworCisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0t PmJsa19yZWFkX3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFj dXVtLT5ibGtfd3JpdGVfdGltZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShl eHR2YWN1dW0tPmRlbGF5X3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0o ZXh0dmFjdXVtLT50b3RhbF90aW1lKTsKKworCUFzc2VydChpID09IFBHX1NUQVRfR0VUX1ZB Q1VVTV9UQUJMRVNfU1RBVFNfQ09MUyk7CisKKwkvKiBSZXR1cm5zIHRoZSByZWNvcmQgYXMg RGF0dW0gKi8KKwlQR19SRVRVUk5fREFUVU0oSGVhcFR1cGxlR2V0RGF0dW0oaGVhcF9mb3Jt X3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVsbHMpKSk7Cit9ClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jCmluZGV4IDQ3YWY3NDM5OTBmLi44 YzllOGZiMThlMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Vycm9yL2Vsb2cuYwpAQCAtMTYyNCw2ICsxNjI0 LDE5IEBAIGdldGludGVybmFsZXJycG9zaXRpb24odm9pZCkKIAlyZXR1cm4gZWRhdGEtPmlu dGVybmFscG9zOwogfQogCisvKgorICogUmV0dXJuIGVsZXZlbCBvZiBlcnJvcnMKKyAqLwor aW50CitnZXRlcnJlbGV2ZWwodm9pZCkKK3sKKwlFcnJvckRhdGEgICplZGF0YSA9ICZlcnJv cmRhdGFbZXJyb3JkYXRhX3N0YWNrX2RlcHRoXTsKKworCS8qIHdlIGRvbid0IGJvdGhlciBp bmNyZW1lbnRpbmcgcmVjdXJzaW9uX2RlcHRoICovCisJQ0hFQ0tfU1RBQ0tfREVQVEgoKTsK KworCXJldHVybiBlZGF0YS0+ZWxldmVsOworfQogCiAvKgogICogRnVuY3Rpb25zIHRvIGFs bG93IGNvbnN0cnVjdGlvbiBvZiBlcnJvciBtZXNzYWdlIHN0cmluZ3Mgc2VwYXJhdGVseSBm cm9tCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4IDJmOGNiZDg2NzU5 Li4xMTVmMGM1MWNjMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNf dGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAg LTE1MDgsNiArMTUwOCwxNSBAQCBzdHJ1Y3QgY29uZmlnX2Jvb2wgQ29uZmlndXJlTmFtZXNC b29sW10gPQogCQlmYWxzZSwKIAkJTlVMTCwgTlVMTCwgTlVMTAogCX0sCisJeworCQl7InRy YWNrX3ZhY3V1bV9zdGF0aXN0aWNzIiwgUEdDX1NVU0VULCBTVEFUU19DVU1VTEFUSVZFLAor CQkJZ2V0dGV4dF9ub29wKCJDb2xsZWN0cyB2YWN1dW0gc3RhdGlzdGljcyBmb3IgdGFibGUg cmVsYXRpb25zLiIpLAorCQkJTlVMTAorCQl9LAorCQkmcGdzdGF0X3RyYWNrX3ZhY3V1bV9z dGF0aXN0aWNzLAorCQl0cnVlLAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwKIAl7CiAJCXsi dHJhY2tfd2FsX2lvX3RpbWluZyIsIFBHQ19TVVNFVCwgU1RBVFNfQ1VNVUxBVElWRSwKIAkJ CWdldHRleHRfbm9vcCgiQ29sbGVjdHMgdGltaW5nIHN0YXRpc3RpY3MgZm9yIFdBTCBJL08g YWN0aXZpdHkuIiksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3Rn cmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwu Y29uZi5zYW1wbGUKaW5kZXggMzQ4MjZkMDEzODAuLmI0OTcxYTlkZmZlIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBAIC02NjUs NiArNjY1LDcgQEAKICN0cmFja193YWxfaW9fdGltaW5nID0gb2ZmCiAjdHJhY2tfZnVuY3Rp b25zID0gbm9uZQkJCSMgbm9uZSwgcGwsIGFsbAogI3N0YXRzX2ZldGNoX2NvbnNpc3RlbmN5 ID0gY2FjaGUJIyBjYWNoZSwgbm9uZSwgc25hcHNob3QKKyN0cmFja192YWN1dW1fc3RhdGlz dGljcyA9IG9mZgogCiAKICMgLSBNb25pdG9yaW5nIC0KZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2Mu ZGF0CmluZGV4IDYyYmViNzFkYTI4Li5lMmFhYWY2Y2Q1OSAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0CkBAIC0xMjU2Niw0ICsxMjU2NiwyMiBAQAogICBwcm9hcmduYW1lcyA9PiAn e3BpZCxpb19pZCxpb19nZW5lcmF0aW9uLHN0YXRlLG9wZXJhdGlvbixvZmYsbGVuZ3RoLHRh cmdldCxoYW5kbGVfZGF0YV9sZW4scmF3X3Jlc3VsdCxyZXN1bHQsdGFyZ2V0X2Rlc2MsZl9z eW5jLGZfbG9jYWxtZW0sZl9idWZmZXJlZH0nLAogICBwcm9zcmMgPT4gJ3BnX2dldF9haW9z JyB9LAogCit7IG9pZCA9PiAnODAwMScsCisgIGRlc2NyID0+ICdwZ19zdGF0X2dldF92YWN1 dW1fdGFibGVzIHJldHVybnMgdmFjdXVtIHN0YXRzIHZhbHVlcyBmb3IgdGFibGUnLAorICBw cm9uYW1lID0+ICdwZ19zdGF0X2dldF92YWN1dW1fdGFibGVzJywgcHJvcm93cyA9PiAxMDAw LCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcscHJvaXNzdHJp Y3QgPT4gJ2YnLAorICBwcm9yZXRzZXQgPT4gJ3QnLAorICBwcm9hcmd0eXBlcyA9PiAnb2lk JywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3tvaWQsb2lkLGludDgsaW50OCxpbnQ4LGludDgs aW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4 LGludDgsaW50NCxpbnQ4LGludDgsaW50OCxudW1lcmljLGZsb2F0OCxmbG9hdDgsZmxvYXQ4 LGZsb2F0OH0nLAorICBwcm9hcmdtb2RlcyA9PiAne2ksbyxvLG8sbyxvLG8sbyxvLG8sbyxv LG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvfScsCisgIHByb2FyZ25hbWVzID0+ICd7 cmVsb2lkLHJlbGlkLHRvdGFsX2Jsa3NfcmVhZCx0b3RhbF9ibGtzX2hpdCx0b3RhbF9ibGtz X2RpcnRpZWQsdG90YWxfYmxrc193cml0dGVuLHJlbF9ibGtzX3JlYWQscmVsX2Jsa3NfaGl0 LHBhZ2VzX3NjYW5uZWQscGFnZXNfcmVtb3ZlZCx2bV9uZXdfZnJvemVuX3BhZ2VzLHZtX25l d192aXNpYmxlX3BhZ2VzLHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyxtaXNzZWRfZGVh ZF9wYWdlcyx0dXBsZXNfZGVsZXRlZCx0dXBsZXNfZnJvemVuLHJlY2VudGx5X2RlYWRfdHVw bGVzLG1pc3NlZF9kZWFkX3R1cGxlcyx3cmFwYXJvdW5kX2ZhaWxzYWZlLGluZGV4X3ZhY3V1 bV9jb3VudCx3YWxfcmVjb3Jkcyx3YWxfZnBpLHdhbF9ieXRlcyxibGtfcmVhZF90aW1lLGJs a193cml0ZV90aW1lLGRlbGF5X3RpbWUsdG90YWxfdGltZX0nLAorICBwcm9zcmMgPT4gJ3Bn X3N0YXRfZ2V0X3ZhY3V1bV90YWJsZXMnIH0sCisKKyAgeyBvaWQgPT4gJzgwMDInLCBkZXNj ciA9PiAnc3RhdGlzdGljczogbnVtYmVyIG9mIHRpbWVzIHRoZSBhbGwtdmlzaWJsZSBwYWdl cyBpbiB0aGUgdmlzaWJpbGl0eSBtYXAgd2FzIHJlbW92ZWQgZm9yIHBhZ2VzIG9mIHRhYmxl JywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfcmV2X2FsbF92aXNpYmxlX3BhZ2VzJywg cHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5cGUg PT4gJ2ludDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKKyAgcHJvc3JjID0+ICdwZ19zdGF0 X2dldF9yZXZfYWxsX3Zpc2libGVfcGFnZXMnIH0sCisgIHsgb2lkID0+ICc4MDAzJywgZGVz Y3IgPT4gJ3N0YXRpc3RpY3M6IG51bWJlciBvZiB0aW1lcyB0aGUgYWxsLWZyb3plbiBwYWdl cyBpbiB0aGUgdmlzaWJpbGl0eSBtYXAgd2FzIHJlbW92ZWQgZm9yIHBhZ2VzIG9mIHRhYmxl JywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfcmV2X2FsbF9mcm96ZW5fcGFnZXMnLCBw cm92b2xhdGlsZSA9PiAncycsCisgIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9 PiAnaW50OCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAorICBwcm9zcmMgPT4gJ3BnX3N0YXRf Z2V0X3Jldl9hbGxfZnJvemVuX3BhZ2VzJyB9LAogXQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY29tbWFuZHMvdmFjdXVtLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaApp bmRleCBiYzM3YTgwZGM3NC4uNmQxYjI5OTFjZTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NvbW1hbmRzL3ZhY3V1bS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5o CkBAIC0zMjcsNiArMzI3LDcgQEAgZXh0ZXJuIFBHRExMSU1QT1JUIGRvdWJsZSB2YWN1dW1f bWF4X2VhZ2VyX2ZyZWV6ZV9mYWlsdXJlX3JhdGU7CiBleHRlcm4gUEdETExJTVBPUlQgcGdf YXRvbWljX3VpbnQzMiAqVmFjdXVtU2hhcmVkQ29zdEJhbGFuY2U7CiBleHRlcm4gUEdETExJ TVBPUlQgcGdfYXRvbWljX3VpbnQzMiAqVmFjdXVtQWN0aXZlTldvcmtlcnM7CiBleHRlcm4g UEdETExJTVBPUlQgaW50IFZhY3V1bUNvc3RCYWxhbmNlTG9jYWw7CitleHRlcm4gUEdETExJ TVBPUlQgZG91YmxlIFZhY3V1bURlbGF5VGltZTsKIAogZXh0ZXJuIFBHRExMSU1QT1JUIGJv b2wgVmFjdXVtRmFpbHNhZmVBY3RpdmU7CiBleHRlcm4gUEdETExJTVBPUlQgZG91YmxlIHZh Y3V1bV9jb3N0X2RlbGF5OwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGdzdGF0LmggYi9z cmMvaW5jbHVkZS9wZ3N0YXQuaAppbmRleCAzNzhmMmYyYzJiYS4uNmM4OGQ1N2FlZjcgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Bnc3Rh dC5oCkBAIC0xMTEsNiArMTExLDUzIEBAIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9CYWNrZW5k U3ViRW50cnkKIAlQZ1N0YXRfQ291bnRlciBjb25mbGljdF9jb3VudFtDT05GTElDVF9OVU1f VFlQRVNdOwogfSBQZ1N0YXRfQmFja2VuZFN1YkVudHJ5OwogCisvKiAtLS0tLS0tLS0tCisg KgorICogRXh0VmFjUmVwb3J0CisgKgorICogQWRkaXRpb25hbCBzdGF0aXN0aWNzIG9mIHZh Y3V1bSBwcm9jZXNzaW5nIG92ZXIgYSBoZWFwIHJlbGF0aW9uLgorICogcGFnZXNfcmVtb3Zl ZCBpcyB0aGUgYW1vdW50IGJ5IHdoaWNoIHRoZSBwaHlzaWNhbGx5IHNocmFuaywKKyAqIGlm IGFueSAoaWUgdGhlIGNoYW5nZSBpbiBpdHMgdG90YWwgc2l6ZSBvbiBkaXNrKQorICogcGFn ZXNfZGVsZXRlZCByZWZlciB0byBmcmVlIHNwYWNlIHdpdGhpbiB0aGUgaW5kZXggZmlsZQor ICogLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBFeHRWYWNSZXBvcnQKK3sKKwkv KiBudW1iZXIgb2YgYmxvY2tzIG1pc3NlZCwgaGl0LCBkaXJ0aWVkIGFuZCB3cml0dGVuIGR1 cmluZyBhIHZhY3V1bSBvZiBzcGVjaWZpYyByZWxhdGlvbiAqLworCWludDY0CQl0b3RhbF9i bGtzX3JlYWQ7CisJaW50NjQJCXRvdGFsX2Jsa3NfaGl0OworCWludDY0CQl0b3RhbF9ibGtz X2RpcnRpZWQ7CisJaW50NjQJCXRvdGFsX2Jsa3Nfd3JpdHRlbjsKKworCS8qIGJsb2NrcyBt aXNzZWQgYW5kIGhpdCBmb3IganVzdCB0aGUgaGVhcCBkdXJpbmcgYSB2YWN1dW0gb2Ygc3Bl Y2lmaWMgcmVsYXRpb24gKi8KKwlpbnQ2NAkJYmxrc19mZXRjaGVkOworCWludDY0CQlibGtz X2hpdDsKKworCS8qIFZhY3V1bSBXQUwgdXNhZ2Ugc3RhdHMgKi8KKwlpbnQ2NAkJd2FsX3Jl Y29yZHM7CS8qIHdhbCB1c2FnZTogbnVtYmVyIG9mIFdBTCByZWNvcmRzICovCisJaW50NjQJ CXdhbF9mcGk7CQkvKiB3YWwgdXNhZ2U6IG51bWJlciBvZiBXQUwgZnVsbCBwYWdlIGltYWdl cyBwcm9kdWNlZCAqLworCXVpbnQ2NAkJd2FsX2J5dGVzOwkJLyogd2FsIHVzYWdlOiBzaXpl IG9mIFdBTCByZWNvcmRzIHByb2R1Y2VkICovCisKKwkvKiBUaW1lIHN0YXRzLiAqLworCWRv dWJsZQkJYmxrX3JlYWRfdGltZTsJLyogdGltZSBzcGVudCByZWFkaW5nIHBhZ2VzLCBpbiBt c2VjICovCisJZG91YmxlCQlibGtfd3JpdGVfdGltZTsgLyogdGltZSBzcGVudCB3cml0aW5n IHBhZ2VzLCBpbiBtc2VjICovCisJZG91YmxlCQlkZWxheV90aW1lOwkJLyogaG93IGxvbmcg dmFjdXVtIHNsZXB0IGluIHZhY3V1bSBkZWxheSBwb2ludCwgaW4gbXNlYyAqLworCWRvdWJs ZQkJdG90YWxfdGltZTsJCS8qIHRvdGFsIHRpbWUgb2YgYSB2YWN1dW0gb3BlcmF0aW9uLCBp biBtc2VjICovCisKKwlpbnQ2NAkJcGFnZXNfc2Nhbm5lZDsJCS8qIGhlYXAgcGFnZXMgZXhh bWluZWQgKG5vdCBza2lwcGVkIGJ5IFZNKSAqLworCWludDY0CQlwYWdlc19yZW1vdmVkOwkJ LyogaGVhcCBwYWdlcyByZW1vdmVkIGJ5IHZhY3V1bSAidHJ1bmNhdGlvbiIgKi8KKwlpbnQ2 NAkJdm1fbmV3X2Zyb3plbl9wYWdlczsJCS8qIHBhZ2VzIG1hcmtlZCBpbiBWTSBhcyBmcm96 ZW4gKi8KKwlpbnQ2NAkJdm1fbmV3X3Zpc2libGVfcGFnZXM7CS8qIHBhZ2VzIG1hcmtlZCBp biBWTSBhcyBhbGwtdmlzaWJsZSAqLworCWludDY0CQl2bV9uZXdfdmlzaWJsZV9mcm96ZW5f cGFnZXM7CS8qIHBhZ2VzIG1hcmtlZCBpbiBWTSBhcyBhbGwtdmlzaWJsZSBhbmQgZnJvemVu ICovCisJaW50NjQJCW1pc3NlZF9kZWFkX3R1cGxlczsJCS8qIHR1cGxlcyBub3QgcHJ1bmVk IGJ5IHZhY3V1bSBkdWUgdG8gZmFpbHVyZSB0byBnZXQgYSBjbGVhbnVwIGxvY2sgKi8KKwlp bnQ2NAkJbWlzc2VkX2RlYWRfcGFnZXM7CQkvKiBwYWdlcyB3aXRoIG1pc3NlZCBkZWFkIHR1 cGxlcyAqLworCWludDY0CQl0dXBsZXNfZGVsZXRlZDsJCS8qIHR1cGxlcyBkZWxldGVkIGJ5 IHZhY3V1bSAqLworCWludDY0CQl0dXBsZXNfZnJvemVuOwkJLyogdHVwbGVzIGZyb3plbiB1 cCBieSB2YWN1dW0gKi8KKwlpbnQ2NAkJcmVjZW50bHlfZGVhZF90dXBsZXM7CS8qIGRlbGV0 ZWQgdHVwbGVzIHRoYXQgYXJlIHN0aWxsIHZpc2libGUgdG8gc29tZSB0cmFuc2FjdGlvbiAq LworCWludDY0CQlpbmRleF92YWN1dW1fY291bnQ7CS8qIHRoZSBudW1iZXIgb2YgaW5kZXgg dmFjdXVtaW5ncyAqLworCWludDMyCQl3cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50OwkvKiBu dW1iZXIgb2YgZW1lcmdlbmN5IHZhY3V1bXMgdG8gcHJldmVudCBhbnRpLXdyYXBhcm91bmQg c2h1dGRvd24gKi8KK30gRXh0VmFjUmVwb3J0OworCiAvKiAtLS0tLS0tLS0tCiAgKiBQZ1N0 YXRfVGFibGVDb3VudHMJCQlUaGUgYWN0dWFsIHBlci10YWJsZSBjb3VudHMga2VwdCBieSBh IGJhY2tlbmQKICAqCkBAIC0xNTMsNiArMjAwLDE2IEBAIHR5cGVkZWYgc3RydWN0IFBnU3Rh dF9UYWJsZUNvdW50cwogCiAJUGdTdGF0X0NvdW50ZXIgYmxvY2tzX2ZldGNoZWQ7CiAJUGdT dGF0X0NvdW50ZXIgYmxvY2tzX2hpdDsKKworCVBnU3RhdF9Db3VudGVyIHJldl9hbGxfdmlz aWJsZV9wYWdlczsKKwlQZ1N0YXRfQ291bnRlciByZXZfYWxsX2Zyb3plbl9wYWdlczsKKwor CS8qCisJICogQWRkaXRpb25hbCBjdW11bGF0aXZlIHN0YXQgb24gdmFjdXVtIG9wZXJhdGlv bnMuCisJICogVXNlIGFuIGV4cGVuc2l2ZSBzdHJ1Y3R1cmUgYXMgYW4gYWJzdHJhY3Rpb24g Zm9yIGRpZmZlcmVudCB0eXBlcyBvZgorCSAqIHJlbGF0aW9ucy4KKwkgKi8KKwlFeHRWYWNS ZXBvcnQJdmFjdXVtX2V4dDsKIH0gUGdTdGF0X1RhYmxlQ291bnRzOwogCiAvKiAtLS0tLS0t LS0tCkBAIC0yMTEsNyArMjY4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1RhYmxlWGFj dFN0YXR1cwogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIAotI2RlZmluZSBQR1NUQVRfRklMRV9GT1JNQVRf SUQJMHgwMUE1QkNCNworI2RlZmluZSBQR1NUQVRfRklMRV9GT1JNQVRfSUQJMHgwMUE1QkNC OAogCiB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfQXJjaGl2ZXJTdGF0cwogewpAQCAtMzc1LDYg KzQzMiw4IEBAIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9TdGF0REJFbnRyeQogCVBnU3RhdF9D b3VudGVyIHBhcmFsbGVsX3dvcmtlcnNfbGF1bmNoZWQ7CiAKIAlUaW1lc3RhbXBUeiBzdGF0 X3Jlc2V0X3RpbWVzdGFtcDsKKworCUV4dFZhY1JlcG9ydCB2YWN1dW1fZXh0OwkJLyogZXh0 ZW5kZWQgdmFjdXVtIHN0YXRpc3RpY3MgKi8KIH0gUGdTdGF0X1N0YXREQkVudHJ5OwogCiB0 eXBlZGVmIHN0cnVjdCBQZ1N0YXRfU3RhdEZ1bmNFbnRyeQpAQCAtNDUzLDYgKzUxMiwxMSBA QCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfU3RhdFRhYkVudHJ5CiAJUGdTdGF0X0NvdW50ZXIg dG90YWxfYXV0b3ZhY3V1bV90aW1lOwogCVBnU3RhdF9Db3VudGVyIHRvdGFsX2FuYWx5emVf dGltZTsKIAlQZ1N0YXRfQ291bnRlciB0b3RhbF9hdXRvYW5hbHl6ZV90aW1lOworCisJUGdT dGF0X0NvdW50ZXIgcmV2X2FsbF92aXNpYmxlX3BhZ2VzOworCVBnU3RhdF9Db3VudGVyIHJl dl9hbGxfZnJvemVuX3BhZ2VzOworCisJRXh0VmFjUmVwb3J0IHZhY3V1bV9leHQ7CiB9IFBn U3RhdF9TdGF0VGFiRW50cnk7CiAKIC8qIC0tLS0tLQpAQCAtNjYwLDcgKzcyNCw3IEBAIGV4 dGVybiB2b2lkIHBnc3RhdF91bmxpbmtfcmVsYXRpb24oUmVsYXRpb24gcmVsKTsKIAogZXh0 ZXJuIHZvaWQgcGdzdGF0X3JlcG9ydF92YWN1dW0oT2lkIHRhYmxlb2lkLCBib29sIHNoYXJl ZCwKIAkJCQkJCQkJIFBnU3RhdF9Db3VudGVyIGxpdmV0dXBsZXMsIFBnU3RhdF9Db3VudGVy IGRlYWR0dXBsZXMsCi0JCQkJCQkJCSBUaW1lc3RhbXBUeiBzdGFydHRpbWUpOworCQkJCQkJ CQkgVGltZXN0YW1wVHogc3RhcnR0aW1lLCBFeHRWYWNSZXBvcnQgKnBhcmFtcyk7CiBleHRl cm4gdm9pZCBwZ3N0YXRfcmVwb3J0X2FuYWx5emUoUmVsYXRpb24gcmVsLAogCQkJCQkJCQkg IFBnU3RhdF9Db3VudGVyIGxpdmV0dXBsZXMsIFBnU3RhdF9Db3VudGVyIGRlYWR0dXBsZXMs CiAJCQkJCQkJCSAgYm9vbCByZXNldGNvdW50ZXIsIFRpbWVzdGFtcFR6IHN0YXJ0dGltZSk7 CkBAIC03MTEsNiArNzc1LDE3IEBAIGV4dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfYW5hbHl6 ZShSZWxhdGlvbiByZWwsCiAJCWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50X3JlbGF0aW9uKHJl bCkpCQkJCQkJXAogCQkJKHJlbCktPnBnc3RhdF9pbmZvLT5jb3VudHMuYmxvY2tzX2hpdCsr OwkJCQlcCiAJfSB3aGlsZSAoMCkKKy8qIGFjY3VtdWxhdGUgdW5mcm96ZW4gYWxsLXZpc2li bGUgYW5kIGFsbC1mcm96ZW4gcGFnZXMgKi8KKyNkZWZpbmUgcGdzdGF0X2NvdW50X3ZtX3Jl dl9hbGxfdmlzaWJsZShyZWwpCQkJCQkJXAorCWRvIHsJCQkJCQkJCQkJCQkJCQlcCisJCWlm IChwZ3N0YXRfc2hvdWxkX2NvdW50X3JlbGF0aW9uKHJlbCkpCQkJCQkJXAorCQkJKHJlbCkt PnBnc3RhdF9pbmZvLT5jb3VudHMucmV2X2FsbF92aXNpYmxlX3BhZ2VzKys7CVwKKwl9IHdo aWxlICgwKQorI2RlZmluZSBwZ3N0YXRfY291bnRfdm1fcmV2X2FsbF9mcm96ZW4ocmVsKQkJ CQkJCVwKKwlkbyB7CQkJCQkJCQkJCQkJCQkJXAorCQlpZiAocGdzdGF0X3Nob3VsZF9jb3Vu dF9yZWxhdGlvbihyZWwpKQkJCQkJCVwKKwkJCShyZWwpLT5wZ3N0YXRfaW5mby0+Y291bnRz LnJldl9hbGxfZnJvemVuX3BhZ2VzKys7CVwKKwl9IHdoaWxlICgwKQogCiBleHRlcm4gdm9p ZCBwZ3N0YXRfY291bnRfaGVhcF9pbnNlcnQoUmVsYXRpb24gcmVsLCBQZ1N0YXRfQ291bnRl ciBuKTsKIGV4dGVybiB2b2lkIHBnc3RhdF9jb3VudF9oZWFwX3VwZGF0ZShSZWxhdGlvbiBy ZWwsIGJvb2wgaG90LCBib29sIG5ld3BhZ2UpOwpAQCAtNzk5LDYgKzg3NCw3IEBAIGV4dGVy biBQZ1N0YXRfV2FsU3RhdHMgKnBnc3RhdF9mZXRjaF9zdGF0X3dhbCh2b2lkKTsKIGV4dGVy biBQR0RMTElNUE9SVCBib29sIHBnc3RhdF90cmFja19jb3VudHM7CiBleHRlcm4gUEdETExJ TVBPUlQgaW50IHBnc3RhdF90cmFja19mdW5jdGlvbnM7CiBleHRlcm4gUEdETExJTVBPUlQg aW50IHBnc3RhdF9mZXRjaF9jb25zaXN0ZW5jeTsKK2V4dGVybiBQR0RMTElNUE9SVCBib29s IHBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljczsKIAogCiAvKgpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvdXRpbHMvZWxvZy5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvZWxvZy5oCmlu ZGV4IDVlYWMwZTE2OTcwLi42YTMwYTRkYjQ3ZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv dXRpbHMvZWxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2Vsb2cuaApAQCAtMjMwLDYg KzIzMCw3IEBAIGV4dGVybiBpbnQJZ2V0ZXJyY29kZSh2b2lkKTsKIGV4dGVybiBpbnQJZ2V0 ZXJycG9zaXRpb24odm9pZCk7CiBleHRlcm4gaW50CWdldGludGVybmFsZXJycG9zaXRpb24o dm9pZCk7CiAKK2V4dGVybiBpbnQJZ2V0ZXJyZWxldmVsKHZvaWQpOwogCiAvKi0tLS0tLS0t LS0KICAqIE9sZC1zdHlsZSBlcnJvciByZXBvcnRpbmcgQVBJOiB0byBiZSB1c2VkIGluIHRo aXMgd2F5OgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3ZhY3V1 bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQub3V0IGIvc3JjL3Rlc3QvaXNvbGF0aW9u L2V4cGVjdGVkL3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQub3V0Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44N2Y3ZTQwYjRhNgotLS0gL2Rl di9udWxsCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC92YWN1dW0tZXh0ZW5k aW5nLWluLXJlcGV0YWJsZS1yZWFkLm91dApAQCAtMCwwICsxLDUzIEBACit1bnVzZWQgc3Rl cCBuYW1lOiBzMl9kZWxldGUKK1BhcnNlZCB0ZXN0IHNwZWMgd2l0aCAyIHNlc3Npb25zCisK K3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBzMl9pbnNlcnQgczJfcHJpbnRfdmFjdXVtX3N0YXRz X3RhYmxlIHMxX2JlZ2luX3JlcGVhdGFibGVfcmVhZCBzMl91cGRhdGUgczJfaW5zZXJ0X2lu dGVycnVwdCBzMl92YWN1dW0gczJfcHJpbnRfdmFjdXVtX3N0YXRzX3RhYmxlIHMxX2NvbW1p dCBzMl9jaGVja3BvaW50IHMyX3ZhY3V1bSBzMl9wcmludF92YWN1dW1fc3RhdHNfdGFibGUK K3N0ZXAgczJfaW5zZXJ0OiBJTlNFUlQgSU5UTyB0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlv bihpZCwgaXZhbCkgU0VMRUNUIGl2YWwsIGl2YWwlMTAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwxMDAwKSBBcyBpdmFsOworc3RlcCBzMl9wcmludF92YWN1dW1fc3RhdHNfdGFibGU6IAor ICAgIFNFTEVDVAorICAgIHZ0LnJlbG5hbWUsIHZ0LnR1cGxlc19kZWxldGVkLCB2dC5yZWNl bnRseV9kZWFkX3R1cGxlcywgdnQubWlzc2VkX2RlYWRfdHVwbGVzLCB2dC5taXNzZWRfZGVh ZF9wYWdlcywgdnQudHVwbGVzX2Zyb3plbgorICAgIEZST00gcGdfc3RhdF92YWN1dW1fdGFi bGVzIHZ0LCBwZ19jbGFzcyBjCisgICAgV0hFUkUgdnQucmVsbmFtZSA9ICd0ZXN0X3ZhY3V1 bV9zdGF0X2lzb2xhdGlvbicgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CisKK3JlbG5hbWUgICAg ICAgICAgICAgICAgICAgfHR1cGxlc19kZWxldGVkfHJlY2VudGx5X2RlYWRfdHVwbGVzfG1p c3NlZF9kZWFkX3R1cGxlc3xtaXNzZWRfZGVhZF9wYWdlc3x0dXBsZXNfZnJvemVuCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LQordGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb258ICAgICAgICAgICAgIDB8ICAgICAgICAg ICAgICAgICAgIDB8ICAgICAgICAgICAgICAgICAwfCAgICAgICAgICAgICAgICAwfCAgICAg ICAgICAgIDAKKygxIHJvdykKKworc3RlcCBzMV9iZWdpbl9yZXBlYXRhYmxlX3JlYWQ6IAor ICBCRUdJTiB0cmFuc2FjdGlvbiBJU09MQVRJT04gTEVWRUwgUkVQRUFUQUJMRSBSRUFEOwor ICBzZWxlY3QgY291bnQoaXZhbCkgZnJvbSB0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbiB3 aGVyZSBpZD45MDA7CisKK2NvdW50CistLS0tLQorICAxMDAKKygxIHJvdykKKworc3RlcCBz Ml91cGRhdGU6IFVQREFURSB0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbiBTRVQgaXZhbCA9 IGl2YWwgKyAyIHdoZXJlIGlkID4gOTAwOworc3RlcCBzMl9pbnNlcnRfaW50ZXJydXB0OiBJ TlNFUlQgSU5UTyB0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbiB2YWx1ZXMgKDEsMSk7Citz dGVwIHMyX3ZhY3V1bTogVkFDVVVNIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uOworc3Rl cCBzMl9wcmludF92YWN1dW1fc3RhdHNfdGFibGU6IAorICAgIFNFTEVDVAorICAgIHZ0LnJl bG5hbWUsIHZ0LnR1cGxlc19kZWxldGVkLCB2dC5yZWNlbnRseV9kZWFkX3R1cGxlcywgdnQu bWlzc2VkX2RlYWRfdHVwbGVzLCB2dC5taXNzZWRfZGVhZF9wYWdlcywgdnQudHVwbGVzX2Zy b3plbgorICAgIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCisg ICAgV0hFUkUgdnQucmVsbmFtZSA9ICd0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbicgQU5E IHZ0LnJlbGlkID0gYy5vaWQ7CisKK3JlbG5hbWUgICAgICAgICAgICAgICAgICAgfHR1cGxl c19kZWxldGVkfHJlY2VudGx5X2RlYWRfdHVwbGVzfG1pc3NlZF9kZWFkX3R1cGxlc3xtaXNz ZWRfZGVhZF9wYWdlc3x0dXBsZXNfZnJvemVuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQordGVzdF92YWN1dW1fc3RhdF9p c29sYXRpb258ICAgICAgICAgICAgIDB8ICAgICAgICAgICAgICAgICAxMDB8ICAgICAgICAg ICAgICAgICAwfCAgICAgICAgICAgICAgICAwfCAgICAgICAgICAgIDAKKygxIHJvdykKKwor c3RlcCBzMV9jb21taXQ6IENPTU1JVDsKK3N0ZXAgczJfY2hlY2twb2ludDogQ0hFQ0tQT0lO VDsKK3N0ZXAgczJfdmFjdXVtOiBWQUNVVU0gdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb247 CitzdGVwIHMyX3ByaW50X3ZhY3V1bV9zdGF0c190YWJsZTogCisgICAgU0VMRUNUCisgICAg dnQucmVsbmFtZSwgdnQudHVwbGVzX2RlbGV0ZWQsIHZ0LnJlY2VudGx5X2RlYWRfdHVwbGVz LCB2dC5taXNzZWRfZGVhZF90dXBsZXMsIHZ0Lm1pc3NlZF9kZWFkX3BhZ2VzLCB2dC50dXBs ZXNfZnJvemVuCisgICAgRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNz IGMKKyAgICBXSEVSRSB2dC5yZWxuYW1lID0gJ3Rlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9u JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKKworcmVsbmFtZSAgICAgICAgICAgICAgICAgICB8 dHVwbGVzX2RlbGV0ZWR8cmVjZW50bHlfZGVhZF90dXBsZXN8bWlzc2VkX2RlYWRfdHVwbGVz fG1pc3NlZF9kZWFkX3BhZ2VzfHR1cGxlc19mcm96ZW4KKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCit0ZXN0X3ZhY3V1bV9z dGF0X2lzb2xhdGlvbnwgICAgICAgICAgIDEwMHwgICAgICAgICAgICAgICAgIDEwMHwgICAg ICAgICAgICAgICAgIDB8ICAgICAgICAgICAgICAgIDB8ICAgICAgICAgIDEwMQorKDEgcm93 KQorCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxl IGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZQppbmRleCBlM2M2Njlh MjljNy4uNmZhZWUzYWQyYzMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29s YXRpb25fc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hl ZHVsZQpAQCAtOTYsNiArOTYsNyBAQCB0ZXN0OiB0aW1lb3V0cwogdGVzdDogdmFjdXVtLWNv bmN1cnJlbnQtZHJvcAogdGVzdDogdmFjdXVtLWNvbmZsaWN0CiB0ZXN0OiB2YWN1dW0tc2tp cC1sb2NrZWQKK3Rlc3Q6IHZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQKIHRl c3Q6IHN0YXRzCiB0ZXN0OiBob3Jpem9ucwogdGVzdDogcHJlZGljYXRlLWhhc2gKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy92YWN1dW0tZXh0ZW5kaW5nLWluLXJl cGV0YWJsZS1yZWFkLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3MvdmFjdXVtLWV4 dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi41ODkzZDg5NTczZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90 ZXN0L2lzb2xhdGlvbi9zcGVjcy92YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0YWJsZS1yZWFk LnNwZWMKQEAgLTAsMCArMSw1MyBAQAorIyBUZXN0IGZvciBjaGVja2luZyByZWNlbnRseV9k ZWFkX3R1cGxlcywgdHVwbGVzX2RlbGV0ZWQgYW5kIGZyb3plbiB0dXBsZXMgaW4gcGdfc3Rh dF92YWN1dW1fdGFibGVzLgorIyByZWNlbnRseV9kZWFkX3R1cGxlcyB2YWx1ZXMgYXJlIGNv dW50ZWQgd2hlbiB2YWN1dW0gaGFzbid0IGNsZWFyZWQgdHVwbGVzIGJlY2F1c2UgdGhleSB3 ZXJlIGRlbGV0ZWQgcmVjZW50bHkuCisjIHJlY2VudGx5X2RlYWRfdHVwbGVzIGFyZW4ndCBp bmNyZWFzZWQgYWZ0ZXIgcmVsZWFzaW5nIGxvY2sgY29tcGFyZWQgd2l0aCB0dXBsZXNfZGVs ZXRlZCwgd2hpY2ggaW5jcmVhc2VkCisjIGJ5IHRoZSB2YWx1ZSBvZiB0aGUgY2xlYXJlZCB0 dXBsZXMgdGhhdCB0aGUgdmFjdXVtIG1hbmFnZWQgdG8gY2xlYXIuCisKK3NldHVwCit7Cisg ICAgQ1JFQVRFIFRBQkxFIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uKGlkIGludCwgaXZh bCBpbnQpIFdJVEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IG9mZik7CisgICAgU0VUIHRyYWNr X2lvX3RpbWluZyA9IG9uOworICAgIFNFVCB0cmFja192YWN1dW1fc3RhdGlzdGljcyBUTyAn b24nOworfQorCit0ZWFyZG93bgoreworICAgIERST1AgVEFCTEUgdGVzdF92YWN1dW1fc3Rh dF9pc29sYXRpb24gQ0FTQ0FERTsKKyAgICBSRVNFVCB0cmFja19pb190aW1pbmc7CisgICAg UkVTRVQgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3M7Cit9CisKK3Nlc3Npb24gczEKK3N0ZXAg czFfYmVnaW5fcmVwZWF0YWJsZV9yZWFkICAgeworICBCRUdJTiB0cmFuc2FjdGlvbiBJU09M QVRJT04gTEVWRUwgUkVQRUFUQUJMRSBSRUFEOworICBzZWxlY3QgY291bnQoaXZhbCkgZnJv bSB0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbiB3aGVyZSBpZD45MDA7CisgIH0KK3N0ZXAg czFfY29tbWl0ICAgICAgICAgICAgICAgICAgeyBDT01NSVQ7IH0KKworc2Vzc2lvbiBzMgor c3RlcCBzMl9pbnNlcnQgICAgICAgICAgICAgICAgICB7IElOU0VSVCBJTlRPIHRlc3RfdmFj dXVtX3N0YXRfaXNvbGF0aW9uKGlkLCBpdmFsKSBTRUxFQ1QgaXZhbCwgaXZhbCUxMCBGUk9N IGdlbmVyYXRlX3NlcmllcygxLDEwMDApIEFzIGl2YWw7IH0KK3N0ZXAgczJfdXBkYXRlICAg ICAgICAgICAgICAgICAgeyBVUERBVEUgdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24gU0VU IGl2YWwgPSBpdmFsICsgMiB3aGVyZSBpZCA+IDkwMDsgfQorc3RlcCBzMl9kZWxldGUgICAg ICAgICAgICAgICAgICB7IERFTEVURSBGUk9NIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9u IHdoZXJlIGlkID4gOTAwOyB9CitzdGVwIHMyX2luc2VydF9pbnRlcnJ1cHQgICAgICAgIHsg SU5TRVJUIElOVE8gdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24gdmFsdWVzICgxLDEpOyB9 CitzdGVwIHMyX3ZhY3V1bSAgICAgICAgICAgICAgICAgIHsgVkFDVVVNIHRlc3RfdmFjdXVt X3N0YXRfaXNvbGF0aW9uOyB9CitzdGVwIHMyX2NoZWNrcG9pbnQgICAgICAgICAgICAgIHsg Q0hFQ0tQT0lOVDsgfQorc3RlcCBzMl9wcmludF92YWN1dW1fc3RhdHNfdGFibGUKK3sKKyAg ICBTRUxFQ1QKKyAgICB2dC5yZWxuYW1lLCB2dC50dXBsZXNfZGVsZXRlZCwgdnQucmVjZW50 bHlfZGVhZF90dXBsZXMsIHZ0Lm1pc3NlZF9kZWFkX3R1cGxlcywgdnQubWlzc2VkX2RlYWRf cGFnZXMsIHZ0LnR1cGxlc19mcm96ZW4KKyAgICBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxl cyB2dCwgcGdfY2xhc3MgYworICAgIFdIRVJFIHZ0LnJlbG5hbWUgPSAndGVzdF92YWN1dW1f c3RhdF9pc29sYXRpb24nIEFORCB2dC5yZWxpZCA9IGMub2lkOworfQorCitwZXJtdXRhdGlv bgorICAgIHMyX2luc2VydAorICAgIHMyX3ByaW50X3ZhY3V1bV9zdGF0c190YWJsZQorICAg IHMxX2JlZ2luX3JlcGVhdGFibGVfcmVhZAorICAgIHMyX3VwZGF0ZQorICAgIHMyX2luc2Vy dF9pbnRlcnJ1cHQKKyAgICBzMl92YWN1dW0KKyAgICBzMl9wcmludF92YWN1dW1fc3RhdHNf dGFibGUKKyAgICBzMV9jb21taXQKKyAgICBzMl9jaGVja3BvaW50CisgICAgczJfdmFjdXVt CisgICAgczJfcHJpbnRfdmFjdXVtX3N0YXRzX3RhYmxlClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAppbmRleCA2Y2Y4Mjhj YThkMC4uMTBhNDgyZTJkYjQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0 CkBAIC0xODI5LDcgKzE4MjksOSBAQCBwZ19zdGF0X2FsbF90YWJsZXN8IFNFTEVDVCBjLm9p ZCBBUyByZWxpZCwKICAgICBwZ19zdGF0X2dldF90b3RhbF92YWN1dW1fdGltZShjLm9pZCkg QVMgdG90YWxfdmFjdXVtX3RpbWUsCiAgICAgcGdfc3RhdF9nZXRfdG90YWxfYXV0b3ZhY3V1 bV90aW1lKGMub2lkKSBBUyB0b3RhbF9hdXRvdmFjdXVtX3RpbWUsCiAgICAgcGdfc3RhdF9n ZXRfdG90YWxfYW5hbHl6ZV90aW1lKGMub2lkKSBBUyB0b3RhbF9hbmFseXplX3RpbWUsCi0g ICAgcGdfc3RhdF9nZXRfdG90YWxfYXV0b2FuYWx5emVfdGltZShjLm9pZCkgQVMgdG90YWxf YXV0b2FuYWx5emVfdGltZQorICAgIHBnX3N0YXRfZ2V0X3RvdGFsX2F1dG9hbmFseXplX3Rp bWUoYy5vaWQpIEFTIHRvdGFsX2F1dG9hbmFseXplX3RpbWUsCisgICAgcGdfc3RhdF9nZXRf cmV2X2FsbF9mcm96ZW5fcGFnZXMoYy5vaWQpIEFTIHJldl9hbGxfZnJvemVuX3BhZ2VzLAor ICAgIHBnX3N0YXRfZ2V0X3Jldl9hbGxfdmlzaWJsZV9wYWdlcyhjLm9pZCkgQVMgcmV2X2Fs bF92aXNpYmxlX3BhZ2VzCiAgICBGUk9NICgocGdfY2xhc3MgYwogICAgICBMRUZUIEpPSU4g cGdfaW5kZXggaSBPTiAoKGMub2lkID0gaS5pbmRyZWxpZCkpKQogICAgICBMRUZUIEpPSU4g cGdfbmFtZXNwYWNlIG4gT04gKChuLm9pZCA9IGMucmVsbmFtZXNwYWNlKSkpCkBAIC0yMjIy LDcgKzIyMjQsOSBAQCBwZ19zdGF0X3N5c190YWJsZXN8IFNFTEVDVCByZWxpZCwKICAgICB0 b3RhbF92YWN1dW1fdGltZSwKICAgICB0b3RhbF9hdXRvdmFjdXVtX3RpbWUsCiAgICAgdG90 YWxfYW5hbHl6ZV90aW1lLAotICAgIHRvdGFsX2F1dG9hbmFseXplX3RpbWUKKyAgICB0b3Rh bF9hdXRvYW5hbHl6ZV90aW1lLAorICAgIHJldl9hbGxfZnJvemVuX3BhZ2VzLAorICAgIHJl dl9hbGxfdmlzaWJsZV9wYWdlcwogICAgRlJPTSBwZ19zdGF0X2FsbF90YWJsZXMKICAgV0hF UkUgKChzY2hlbWFuYW1lID0gQU5ZIChBUlJBWVsncGdfY2F0YWxvZyc6Om5hbWUsICdpbmZv cm1hdGlvbl9zY2hlbWEnOjpuYW1lXSkpIE9SIChzY2hlbWFuYW1lIH4gJ15wZ190b2FzdCc6 OnRleHQpKTsKIHBnX3N0YXRfdXNlcl9mdW5jdGlvbnN8IFNFTEVDVCBwLm9pZCBBUyBmdW5j aWQsCkBAIC0yMjc0LDkgKzIyNzgsNDMgQEAgcGdfc3RhdF91c2VyX3RhYmxlc3wgU0VMRUNU IHJlbGlkLAogICAgIHRvdGFsX3ZhY3V1bV90aW1lLAogICAgIHRvdGFsX2F1dG92YWN1dW1f dGltZSwKICAgICB0b3RhbF9hbmFseXplX3RpbWUsCi0gICAgdG90YWxfYXV0b2FuYWx5emVf dGltZQorICAgIHRvdGFsX2F1dG9hbmFseXplX3RpbWUsCisgICAgcmV2X2FsbF9mcm96ZW5f cGFnZXMsCisgICAgcmV2X2FsbF92aXNpYmxlX3BhZ2VzCiAgICBGUk9NIHBnX3N0YXRfYWxs X3RhYmxlcwogICBXSEVSRSAoKHNjaGVtYW5hbWUgPD4gQUxMIChBUlJBWVsncGdfY2F0YWxv Zyc6Om5hbWUsICdpbmZvcm1hdGlvbl9zY2hlbWEnOjpuYW1lXSkpIEFORCAoc2NoZW1hbmFt ZSAhfiAnXnBnX3RvYXN0Jzo6dGV4dCkpOworcGdfc3RhdF92YWN1dW1fdGFibGVzfCBTRUxF Q1QgbnMubnNwbmFtZSBBUyBzY2hlbWFuYW1lLAorICAgIHJlbC5yZWxuYW1lLAorICAgIHN0 YXRzLnJlbGlkLAorICAgIHN0YXRzLnRvdGFsX2Jsa3NfcmVhZCwKKyAgICBzdGF0cy50b3Rh bF9ibGtzX2hpdCwKKyAgICBzdGF0cy50b3RhbF9ibGtzX2RpcnRpZWQsCisgICAgc3RhdHMu dG90YWxfYmxrc193cml0dGVuLAorICAgIHN0YXRzLnJlbF9ibGtzX3JlYWQsCisgICAgc3Rh dHMucmVsX2Jsa3NfaGl0LAorICAgIHN0YXRzLnBhZ2VzX3NjYW5uZWQsCisgICAgc3RhdHMu cGFnZXNfcmVtb3ZlZCwKKyAgICBzdGF0cy52bV9uZXdfZnJvemVuX3BhZ2VzLAorICAgIHN0 YXRzLnZtX25ld192aXNpYmxlX3BhZ2VzLAorICAgIHN0YXRzLnZtX25ld192aXNpYmxlX2Zy b3plbl9wYWdlcywKKyAgICBzdGF0cy5taXNzZWRfZGVhZF9wYWdlcywKKyAgICBzdGF0cy50 dXBsZXNfZGVsZXRlZCwKKyAgICBzdGF0cy50dXBsZXNfZnJvemVuLAorICAgIHN0YXRzLnJl Y2VudGx5X2RlYWRfdHVwbGVzLAorICAgIHN0YXRzLm1pc3NlZF9kZWFkX3R1cGxlcywKKyAg ICBzdGF0cy53cmFwYXJvdW5kX2ZhaWxzYWZlLAorICAgIHN0YXRzLmluZGV4X3ZhY3V1bV9j b3VudCwKKyAgICBzdGF0cy53YWxfcmVjb3JkcywKKyAgICBzdGF0cy53YWxfZnBpLAorICAg IHN0YXRzLndhbF9ieXRlcywKKyAgICBzdGF0cy5ibGtfcmVhZF90aW1lLAorICAgIHN0YXRz LmJsa193cml0ZV90aW1lLAorICAgIHN0YXRzLmRlbGF5X3RpbWUsCisgICAgc3RhdHMudG90 YWxfdGltZQorICAgRlJPTSAocGdfY2xhc3MgcmVsCisgICAgIEpPSU4gcGdfbmFtZXNwYWNl IG5zIE9OICgobnMub2lkID0gcmVsLnJlbG5hbWVzcGFjZSkpKSwKKyAgICBMQVRFUkFMIHBn X3N0YXRfZ2V0X3ZhY3V1bV90YWJsZXMocmVsLm9pZCkgc3RhdHMocmVsaWQsIHRvdGFsX2Js a3NfcmVhZCwgdG90YWxfYmxrc19oaXQsIHRvdGFsX2Jsa3NfZGlydGllZCwgdG90YWxfYmxr c193cml0dGVuLCByZWxfYmxrc19yZWFkLCByZWxfYmxrc19oaXQsIHBhZ2VzX3NjYW5uZWQs IHBhZ2VzX3JlbW92ZWQsIHZtX25ld19mcm96ZW5fcGFnZXMsIHZtX25ld192aXNpYmxlX3Bh Z2VzLCB2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMsIG1pc3NlZF9kZWFkX3BhZ2VzLCB0 dXBsZXNfZGVsZXRlZCwgdHVwbGVzX2Zyb3plbiwgcmVjZW50bHlfZGVhZF90dXBsZXMsIG1p c3NlZF9kZWFkX3R1cGxlcywgd3JhcGFyb3VuZF9mYWlsc2FmZSwgaW5kZXhfdmFjdXVtX2Nv dW50LCB3YWxfcmVjb3Jkcywgd2FsX2ZwaSwgd2FsX2J5dGVzLCBibGtfcmVhZF90aW1lLCBi bGtfd3JpdGVfdGltZSwgZGVsYXlfdGltZSwgdG90YWxfdGltZSkKKyAgV0hFUkUgKHJlbC5y ZWxraW5kID0gJ3InOjoiY2hhciIpOwogcGdfc3RhdF93YWx8IFNFTEVDVCB3YWxfcmVjb3Jk cywKICAgICB3YWxfZnBpLAogICAgIHdhbF9ieXRlcywKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzLm91dApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjVlYTljOWFiMWUKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNf c3RhdGlzdGljcy5vdXQKQEAgLTAsMCArMSwyMjcgQEAKKy0tCistLSBUZXN0IGN1bXVsYXRp dmUgdmFjdXVtIHN0YXRzIHN5c3RlbQorLS0KKy0tIENoZWNrIHRoZSB3YWxsIHN0YXRpc3Rp Y3MgY29sbGVjdGVkIGR1cmluZyB2YWN1dW0gb3BlcmF0aW9uOgorLS0gbnVtYmVyIG9mIGZy b3plbiBhbmQgdmlzaWJsZSBwYWdlcyBzZXQgYnkgdmFjdXVtOworLS0gbnVtYmVyIG9mIGZy b3plbiBhbmQgdmlzaWJsZSBwYWdlcyByZW1vdmVkIGJ5IGJhY2tlbmQuCistLSBTdGF0aXN0 aWMgd2FsX2ZwaSBpcyBub3QgZGlzcGxheWVkIGluIHRoaXMgdGVzdCBiZWNhdXNlIGl0cyBi ZWhhdmlvciBpcyB1bnN0YWJsZS4KKy0tCistLSBjb25kaXRpbyBzaW5lIHF1YSBub24KK1NI T1cgdHJhY2tfY291bnRzOyAgLS0gbXVzdCBiZSBvbgorIHRyYWNrX2NvdW50cyAKKy0tLS0t LS0tLS0tLS0tCisgb24KKygxIHJvdykKKworXHNldCBzYW1wbGVfc2l6ZSAxMDAwMAorLS0g bm90IGVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0IHdlIHdhbnQgdG8gdGVzdCBpdC4uLgorU0VU IHRyYWNrX2Z1bmN0aW9ucyBUTyAnYWxsJzsKKy0tIFRlc3QgdGhhdCB2YWN1dW0gc3RhdGlz dGljcyB3aWxsIGJlIGVtcHR5IHdoZW4gcGFyYW1ldGVyIGlzIG9mZi4KK1NFVCB0cmFja192 YWN1dW1fc3RhdGlzdGljcyBUTyAnb2ZmJzsKK0NSRUFURSBUQUJMRSB2ZXN0YXQgKHggaW50 KSBXSVRIIChhdXRvdmFjdXVtX2VuYWJsZWQgPSBvZmYsIGZpbGxmYWN0b3IgPSAxMCk7CitJ TlNFUlQgSU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw6c2Ft cGxlX3NpemUpIGFzIHg7CitBTkFMWVpFIHZlc3RhdDsKK0RFTEVURSBGUk9NIHZlc3RhdCBX SEVSRSB4ICUgMiA9IDA7CitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1J VCAxMjgpIHZlc3RhdDsKKy0tIE11c3QgYmUgZW1wdHkuCitTRUxFQ1QgcmVsbmFtZSx0b3Rh bF9ibGtzX3JlYWQsIHRvdGFsX2Jsa3NfaGl0LCB0b3RhbF9ibGtzX2RpcnRpZWQsIHRvdGFs X2Jsa3Nfd3JpdHRlbixyZWxfYmxrc19yZWFkLCByZWxfYmxrc19oaXQsCitwYWdlc19zY2Fu bmVkLCBwYWdlc19yZW1vdmVkLCB2bV9uZXdfZnJvemVuX3BhZ2VzLCB2bV9uZXdfdmlzaWJs ZV9wYWdlcywgdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzLCBtaXNzZWRfZGVhZF9wYWdl cywKK3R1cGxlc19kZWxldGVkLCB0dXBsZXNfZnJvemVuLCByZWNlbnRseV9kZWFkX3R1cGxl cywgbWlzc2VkX2RlYWRfdHVwbGVzLCBpbmRleF92YWN1dW1fY291bnQsCit3YWxfcmVjb3Jk cywgd2FsX2ZwaSwgd2FsX2J5dGVzLCBibGtfcmVhZF90aW1lLCBibGtfd3JpdGVfdGltZSxk ZWxheV90aW1lLCB0b3RhbF90aW1lCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dAor V0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnOworIHJlbG5hbWUgfCB0b3RhbF9ibGtzX3Jl YWQgfCB0b3RhbF9ibGtzX2hpdCB8IHRvdGFsX2Jsa3NfZGlydGllZCB8IHRvdGFsX2Jsa3Nf d3JpdHRlbiB8IHJlbF9ibGtzX3JlYWQgfCByZWxfYmxrc19oaXQgfCBwYWdlc19zY2FubmVk IHwgcGFnZXNfcmVtb3ZlZCB8IHZtX25ld19mcm96ZW5fcGFnZXMgfCB2bV9uZXdfdmlzaWJs ZV9wYWdlcyB8IHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyB8IG1pc3NlZF9kZWFkX3Bh Z2VzIHwgdHVwbGVzX2RlbGV0ZWQgfCB0dXBsZXNfZnJvemVuIHwgcmVjZW50bHlfZGVhZF90 dXBsZXMgfCBtaXNzZWRfZGVhZF90dXBsZXMgfCBpbmRleF92YWN1dW1fY291bnQgfCB3YWxf cmVjb3JkcyB8IHdhbF9mcGkgfCB3YWxfYnl0ZXMgfCBibGtfcmVhZF90aW1lIHwgYmxrX3dy aXRlX3RpbWUgfCBkZWxheV90aW1lIHwgdG90YWxfdGltZSAKKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgdmVzdGF0ICB8 ICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAwIHwgICAgICAgICAgICAgICAgICAw IHwgICAgICAgICAgICAgICAgICAwIHwgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgMCB8 ICAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAwIHwgICAgICAgICAgICAgICAgICAgMCB8 ICAgICAgICAgICAgICAgICAgICAwIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAwIHwg ICAgICAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgIDAgfCAg ICAgICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAg ICAgICAgMCB8ICAgICAgICAgICAwIHwgICAgICAgMCB8ICAgICAgICAgMCB8ICAgICAgICAg ICAgIDAgfCAgICAgICAgICAgICAgMCB8ICAgICAgICAgIDAgfCAgICAgICAgICAwCisoMSBy b3cpCisKK1JFU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzOworRFJPUCBUQUJMRSB2ZXN0 YXQgQ0FTQ0FERTsKK1NIT1cgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3M7ICAtLSBtdXN0IGJl IG9uCisgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgb24KKygxIHJvdykKKworLS0gZW5zdXJlIHBlbmRpbmcgc3RhdHMgYXJlIGZsdXNo ZWQKK1NFTEVDVCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2goKTsKKyBwZ19zdGF0X2ZvcmNl X25leHRfZmx1c2ggCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQor CistLVNFVCBzdGF0c19mZXRjaF9jb25zaXN0ZW5jeSA9IHNuYXBzaG90OworQ1JFQVRFIFRB QkxFIHZlc3RhdCAoeCBpbnQpIFdJVEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IG9mZiwgZmls bGZhY3RvciA9IDEwKTsKK0lOU0VSVCBJTlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9NIGdlbmVy YXRlX3NlcmllcygxLDpzYW1wbGVfc2l6ZSkgYXMgeDsKK0FOQUxZWkUgdmVzdGF0OworU0VM RUNUIG9pZCBBUyByb2lkIGZyb20gcGdfY2xhc3Mgd2hlcmUgcmVsbmFtZSA9ICd2ZXN0YXQn IFxnc2V0CitERUxFVEUgRlJPTSB2ZXN0YXQgV0hFUkUgeCAlIDIgPSAwOworLS0gQmVmb3Jl IHRoZSBmaXJzdCB2YWN1dW0gZXhlY3V0aW9uIGV4dGVuZGVkIHN0YXRzIHZpZXcgaXMgZW1w dHkuCitTRUxFQ1QgdnQucmVsbmFtZSx2bV9uZXdfZnJvemVuX3BhZ2VzLHR1cGxlc19kZWxl dGVkLHJlbHBhZ2VzLHBhZ2VzX3NjYW5uZWQscGFnZXNfcmVtb3ZlZAorRlJPTSBwZ19zdGF0 X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVz dGF0JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKKyByZWxuYW1lIHwgdm1fbmV3X2Zyb3plbl9w YWdlcyB8IHR1cGxlc19kZWxldGVkIHwgcmVscGFnZXMgfCBwYWdlc19zY2FubmVkIHwgcGFn ZXNfcmVtb3ZlZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyB2 ZXN0YXQgIHwgICAgICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAwIHwgICAgICA0 NTUgfCAgICAgICAgICAgICAwIHwgICAgICAgICAgICAgMAorKDEgcm93KQorCitTRUxFQ1Qg cmVscGFnZXMgQVMgcnAKK0ZST00gcGdfY2xhc3MgYworV0hFUkUgcmVsbmFtZSA9ICd2ZXN0 YXQnIFxnc2V0CitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgs IElOREVYX0NMRUFOVVAgT0ZGKSB2ZXN0YXQ7CistLSBpdCBpcyBuZWNlc3NhcnkgdG8gY2hl Y2sgdGhlIHdhbCBzdGF0aXN0aWNzCitDSEVDS1BPSU5UOworLS0gVGhlIHRhYmxlIGFuZCBp bmRleCBleHRlbmRlZCB2YWN1dW0gc3RhdGlzdGljcyBzaG91bGQgc2hvdyB1cyB0aGF0Cist LSB2YWN1dW0gZnJvemVkIHBhZ2VzIGFuZCBjbGVhbiB1cCBwYWdlcywgYnV0IHBhZ2VzX3Jl bW92ZWQgc3RheWVkIHRoZSBzYW1lCistLSBiZWNhdXNlIG9mIG5vdCBmdWxsIHRhYmxlIGhh dmUgY2xlYW5lZCB1cAorU0VMRUNUIHZ0LnJlbG5hbWUsdm1fbmV3X2Zyb3plbl9wYWdlcyA+ IDAgQVMgdm1fbmV3X2Zyb3plbl9wYWdlcyx0dXBsZXNfZGVsZXRlZCA+IDAgQVMgdHVwbGVz X2RlbGV0ZWQscmVscGFnZXMtOnJwID0gMCBBUyByZWxwYWdlcyxwYWdlc19zY2FubmVkID4g MCBBUyBwYWdlc19zY2FubmVkLHBhZ2VzX3JlbW92ZWQgPSAwIEFTIHBhZ2VzX3JlbW92ZWQK K0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5y ZWxuYW1lID0gJ3Zlc3RhdCcgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CisgcmVsbmFtZSB8IHZt X25ld19mcm96ZW5fcGFnZXMgfCB0dXBsZXNfZGVsZXRlZCB8IHJlbHBhZ2VzIHwgcGFnZXNf c2Nhbm5lZCB8IHBhZ2VzX3JlbW92ZWQgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tCisgdmVzdGF0ICB8IGYgICAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAg ICAgICB8IHQgICAgICAgIHwgdCAgICAgICAgICAgICB8IHQKKygxIHJvdykKKworU0VMRUNU IHZtX25ld19mcm96ZW5fcGFnZXMgQVMgZnAsdHVwbGVzX2RlbGV0ZWQgQVMgdGQscmVscGFn ZXMgQVMgcnAsIHBhZ2VzX3NjYW5uZWQgQVMgcHMsIHBhZ2VzX3JlbW92ZWQgQVMgcHIKK0ZS T00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxu YW1lID0gJ3Zlc3RhdCcgQU5EIHZ0LnJlbGlkID0gYy5vaWQgXGdzZXQKKy0tIFN0b3JlIFdB TCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzIEFTIGh3cix3 YWxfYnl0ZXMgQVMgaHdiLHdhbF9mcGkgQVMgaGZwaSBGUk9NIHBnX3N0YXRfdmFjdXVtX3Rh YmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQKKy0tIExvb2sgaW50byBXQUwg cmVjb3JkcyBkZWx0YXMuCitTRUxFQ1Qgd2FsX3JlY29yZHMgPiAwIEFTIGRXUiwgd2FsX2J5 dGVzID4gMCBBUyBkV0IKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5h bWUgPSAndmVzdGF0JzsKKyBkd3IgfCBkd2IgCistLS0tLSstLS0tLQorIHQgICB8IHQKKygx IHJvdykKKworREVMRVRFIEZST00gdmVzdGF0OzsKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVG RkVSX1VTQUdFX0xJTUlUIDEyOCwgSU5ERVhfQ0xFQU5VUCBPRkYpIHZlc3RhdDsKKy0tIGl0 IGlzIG5lY2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNLUE9JTlQ7 CistLSBwYWdlc19yZW1vdmVkIG11c3QgYmUgaW5jcmVhc2VkCitTRUxFQ1QgdnQucmVsbmFt ZSx2bV9uZXdfZnJvemVuX3BhZ2VzLTpmcCA+IDAgQVMgdm1fbmV3X2Zyb3plbl9wYWdlcyx0 dXBsZXNfZGVsZXRlZC06dGQgPiAwIEFTIHR1cGxlc19kZWxldGVkLHJlbHBhZ2VzIC06cnAg PSAwIEFTIHJlbHBhZ2VzLHBhZ2VzX3NjYW5uZWQtOnBzID4gMCBBUyBwYWdlc19zY2FubmVk LHBhZ2VzX3JlbW92ZWQtOnByID4gMCBBUyBwYWdlc19yZW1vdmVkCitGUk9NIHBnX3N0YXRf dmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0 YXQnIEFORCB2dC5yZWxpZCA9IGMub2lkOworIHJlbG5hbWUgfCB2bV9uZXdfZnJvemVuX3Bh Z2VzIHwgdHVwbGVzX2RlbGV0ZWQgfCByZWxwYWdlcyB8IHBhZ2VzX3NjYW5uZWQgfCBwYWdl c19yZW1vdmVkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorIHZl c3RhdCAgfCBmICAgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgfCBmICAgICAg ICB8IHQgICAgICAgICAgICAgfCB0CisoMSByb3cpCisKK1NFTEVDVCB2bV9uZXdfZnJvemVu X3BhZ2VzIEFTIGZwLHR1cGxlc19kZWxldGVkIEFTIHRkLHJlbHBhZ2VzIEFTIHJwLCBwYWdl c19zY2FubmVkIEFTIHBzLCBwYWdlc19yZW1vdmVkIEFTIHByCitGUk9NIHBnX3N0YXRfdmFj dXVtX3RhYmxlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQn IEFORCB2dC5yZWxpZCA9IGMub2lkIFxnc2V0CistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50 byB2YXJpYWJsZXMKK1NFTEVDVCB3YWxfcmVjb3Jkcy06aHdyIEFTIGR3ciwgd2FsX2J5dGVz LTpod2IgQVMgZHdiLCB3YWxfZnBpLTpoZnBpIEFTIGRmcGkKK0ZST00gcGdfc3RhdF92YWN1 dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0JyBcZ3NldAorLS0gV0FMIGFkdmFu Y2Ugc2hvdWxkIGJlIGRldGVjdGVkLgorU0VMRUNUIDpkd3IgPiAwIEFTIGRXUiwgOmR3YiA+ IDAgQVMgZFdCOworIGR3ciB8IGR3YiAKKy0tLS0tKy0tLS0tCisgdCAgIHwgdAorKDEgcm93 KQorCistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50byB2YXJpYWJsZXMKK1NFTEVDVCB3YWxf cmVjb3JkcyBBUyBod3Isd2FsX2J5dGVzIEFTIGh3Yix3YWxfZnBpIEFTIGhmcGkgRlJPTSBw Z19zdGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnIFxnc2V0CitJ TlNFUlQgSU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw6c2Ft cGxlX3NpemUpIGFzIHg7CitERUxFVEUgRlJPTSB2ZXN0YXQgV0hFUkUgeCAlIDIgPSAwOwor LS0gVkFDVVVNIEZVTEwgZG9lc24ndCByZXBvcnQgdG8gc3RhdCBjb2xsZWN0b3IuIFNvLCBu byBhbnkgYWR2YW5jZW1lbnRzIG9mIHN0YXRpc3RpY3MKKy0tIGFyZSBkZXRlY3RlZCBoZXJl LgorVkFDVVVNIEZVTEwgdmVzdGF0OworLS0gSXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRo ZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBp bnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzLTpod3IgQVMgZHdyMiwgd2FsX2J5 dGVzLTpod2IgQVMgZHdiMiwgd2FsX2ZwaS06aGZwaSBBUyBkZnBpMgorRlJPTSBwZ19zdGF0 X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnIFxnc2V0CistLSBXQUwg YW5kIG90aGVyIHN0YXRpc3RpY3MgYWR2YW5jZSBzaG91bGQgbm90IGJlIGRldGVjdGVkLgor U0VMRUNUIDpkd3IyPTAgQVMgZFdSLCA6ZGZwaTI9MCBBUyBkRlBJLCA6ZHdiMj0wIEFTIGRX QjsKKyBkd3IgfCBkZnBpIHwgZHdiIAorLS0tLS0rLS0tLS0tKy0tLS0tCisgdCAgIHwgdCAg ICB8IHQKKygxIHJvdykKKworU0VMRUNUIHZ0LnJlbG5hbWUsdm1fbmV3X2Zyb3plbl9wYWdl cy06ZnAgPSAwIEFTIHZtX25ld19mcm96ZW5fcGFnZXMsdHVwbGVzX2RlbGV0ZWQtOnRkID0g MCBBUyB0dXBsZXNfZGVsZXRlZCxyZWxwYWdlcyAtOnJwIDwgMCBBUyByZWxwYWdlcyxwYWdl c19zY2FubmVkLTpwcyA9IDAgQVMgcGFnZXNfc2Nhbm5lZCxwYWdlc19yZW1vdmVkLTpwciA9 IDAgQVMgcGFnZXNfcmVtb3ZlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBn X2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JyBBTkQgdnQucmVsaWQgPSBj Lm9pZDsKKyByZWxuYW1lIHwgdm1fbmV3X2Zyb3plbl9wYWdlcyB8IHR1cGxlc19kZWxldGVk IHwgcmVscGFnZXMgfCBwYWdlc19zY2FubmVkIHwgcGFnZXNfcmVtb3ZlZCAKKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyB2ZXN0YXQgIHwgdCAgICAgICAgICAg ICAgICAgICB8IHQgICAgICAgICAgICAgIHwgZiAgICAgICAgfCB0ICAgICAgICAgICAgIHwg dAorKDEgcm93KQorCitTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcyBBUyBmcCx0dXBsZXNf ZGVsZXRlZCBBUyB0ZCxyZWxwYWdlcyBBUyBycCwgcGFnZXNfc2Nhbm5lZCBBUyBwcyxwYWdl c19yZW1vdmVkIEFTIHByCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xh c3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2dC5yZWxpZCA9IGMub2lk IFxnc2V0CistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50byB2YXJpYWJsZXMKK1NFTEVDVCB3 YWxfcmVjb3JkcyBBUyBod3Isd2FsX2J5dGVzIEFTIGh3Yix3YWxfZnBpIEFTIGhmcGkgRlJP TSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnIFxnc2V0 CitERUxFVEUgRlJPTSB2ZXN0YXQ7CitUUlVOQ0FURSB2ZXN0YXQ7CitWQUNVVU0gKFBBUkFM TEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgsIElOREVYX0NMRUFOVVAgT0ZGKSB2ZXN0 YXQ7CistLSBpdCBpcyBuZWNlc3NhcnkgdG8gY2hlY2sgdGhlIHdhbCBzdGF0aXN0aWNzCitD SEVDS1BPSU5UOworLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGludG8gdmFyaWFibGVzIGFmdGVy IHJlbW92aW5nIGFsbCB0dXBsZXMgZnJvbSB0aGUgdGFibGUKK1NFTEVDVCB3YWxfcmVjb3Jk cy06aHdyIEFTIGR3cjMsIHdhbF9ieXRlcy06aHdiIEFTIGR3YjMsIHdhbF9mcGktOmhmcGkg QVMgZGZwaTMKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAn dmVzdGF0JyBcZ3NldAorLS1UaGVyZSBhcmUgbm90aGluZyBjaGFuZ2VkCitTRUxFQ1QgOmR3 cjM+MCBBUyBkV1IsIDpkZnBpMz0wIEFTIGRGUEksIDpkd2IzPjAgQVMgZFdCOworIGR3ciB8 IGRmcGkgfCBkd2IgCistLS0tLSstLS0tLS0rLS0tLS0KKyB0ICAgfCB0ICAgIHwgdAorKDEg cm93KQorCistLQorLS0gTm93LCB0aGUgdGFibGUgYW5kIGluZGV4IGlzIGNvbXByZXNzZWQg aW50byB6ZXJvIG51bWJlciBvZiBwYWdlcy4gQ2hlY2sgaXQKKy0tIGluIHZhY3V1bSBleHRl bmRlZCBzdGF0aXN0aWNzLgorLS0gVGhlIHZtX25ld19mcm96ZW5fcGFnZXMsIHBhZ2VzX3Nj YW5uZWQgdmFsdWVzIHNob3VsZG4ndCBiZSBjaGFuZ2VkCistLQorU0VMRUNUIHZ0LnJlbG5h bWUsdm1fbmV3X2Zyb3plbl9wYWdlcy06ZnAgPSAwIEFTIHZtX25ld19mcm96ZW5fcGFnZXMs dHVwbGVzX2RlbGV0ZWQtOnRkID0gMCBBUyB0dXBsZXNfZGVsZXRlZCxyZWxwYWdlcyAtOnJw ID0gMCBBUyByZWxwYWdlcyxwYWdlc19zY2FubmVkLTpwcyA9IDAgQVMgcGFnZXNfc2Nhbm5l ZCxwYWdlc19yZW1vdmVkLTpwciA9IDAgQVMgcGFnZXNfcmVtb3ZlZAorRlJPTSBwZ19zdGF0 X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVz dGF0JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKKyByZWxuYW1lIHwgdm1fbmV3X2Zyb3plbl9w YWdlcyB8IHR1cGxlc19kZWxldGVkIHwgcmVscGFnZXMgfCBwYWdlc19zY2FubmVkIHwgcGFn ZXNfcmVtb3ZlZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyB2 ZXN0YXQgIHwgdCAgICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgIHwgZiAgICAg ICAgfCB0ICAgICAgICAgICAgIHwgdAorKDEgcm93KQorCitEUk9QIFRBQkxFIHZlc3RhdCBD QVNDQURFOworQ1JFQVRFIFRBQkxFIHZlc3RhdCAoeCBpbnQpIFdJVEggKGF1dG92YWN1dW1f ZW5hYmxlZCA9IG9mZiwgZmlsbGZhY3RvciA9IDEwKTsKK0lOU0VSVCBJTlRPIHZlc3RhdCBT RUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpzYW1wbGVfc2l6ZSkgYXMgeDsKK0FO QUxZWkUgdmVzdGF0OworLS0gbXVzdCBiZSBlbXB0eQorU0VMRUNUIHZtX25ld19mcm96ZW5f cGFnZXMsIHZtX25ld192aXNpYmxlX3BhZ2VzLCByZXZfYWxsX2Zyb3plbl9wYWdlcyxyZXZf YWxsX3Zpc2libGVfcGFnZXMsdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzCitGUk9NIHBn X3N0YXRfdmFjdXVtX3RhYmxlcywgcGdfc3RhdF9hbGxfdGFibGVzIFdIRVJFIHBnX3N0YXRf dmFjdXVtX3RhYmxlcy5yZWxuYW1lID0gJ3Zlc3RhdCcgYW5kIHBnX3N0YXRfdmFjdXVtX3Rh Ymxlcy5yZWxpZCA9IHBnX3N0YXRfYWxsX3RhYmxlcy5yZWxpZDsKKyB2bV9uZXdfZnJvemVu X3BhZ2VzIHwgdm1fbmV3X3Zpc2libGVfcGFnZXMgfCByZXZfYWxsX2Zyb3plbl9wYWdlcyB8 IHJldl9hbGxfdmlzaWJsZV9wYWdlcyB8IHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAwIHwgICAgICAgICAgICAgICAg ICAgIDAgfCAgICAgICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgICAgICAgMCB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorKDEgcm93KQorCitWQUNVVU0gKFBBUkFM TEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgpIHZlc3RhdDsKKy0tIGJhY2tlbmQgZGVm cmVlemVkIHBhZ2VzCitTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcyA+IDAgQVMgdm1fbmV3 X2Zyb3plbl9wYWdlcyx2bV9uZXdfdmlzaWJsZV9wYWdlcyA+IDAgQVMgdm1fbmV3X3Zpc2li bGVfcGFnZXMsdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzID4gMCBBUyB2bV9uZXdfdmlz aWJsZV9mcm96ZW5fcGFnZXMscmV2X2FsbF9mcm96ZW5fcGFnZXMgPSAwIEFTIHJldl9hbGxf ZnJvemVuX3BhZ2VzLHJldl9hbGxfdmlzaWJsZV9wYWdlcyA9IDAgQVMgcmV2X2FsbF92aXNp YmxlX3BhZ2VzCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcywgcGdfc3RhdF9hbGxfdGFi bGVzIFdIRVJFIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxuYW1lID0gJ3Zlc3RhdCcgYW5k IHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxpZCA9IHBnX3N0YXRfYWxsX3RhYmxlcy5yZWxp ZDsKKyB2bV9uZXdfZnJvemVuX3BhZ2VzIHwgdm1fbmV3X3Zpc2libGVfcGFnZXMgfCB2bV9u ZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMgfCByZXZfYWxsX2Zyb3plbl9wYWdlcyB8IHJldl9h bGxfdmlzaWJsZV9wYWdlcyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmICAgICAgICAgICAgICAgICAg IHwgdCAgICAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgICAgICAgICAg fCB0ICAgICAgICAgICAgICAgICAgICB8IHQKKygxIHJvdykKKworU0VMRUNUIHZtX25ld19m cm96ZW5fcGFnZXMgQVMgcGYsIHZtX25ld192aXNpYmxlX3BhZ2VzIEFTIHB2LHZtX25ld192 aXNpYmxlX2Zyb3plbl9wYWdlcyBBUyBwdmYsIHJldl9hbGxfZnJvemVuX3BhZ2VzIEFTIGhh ZnAscmV2X2FsbF92aXNpYmxlX3BhZ2VzIEFTIGhhdnAKK0ZST00gcGdfc3RhdF92YWN1dW1f dGFibGVzLCBwZ19zdGF0X2FsbF90YWJsZXMgV0hFUkUgcGdfc3RhdF92YWN1dW1fdGFibGVz LnJlbG5hbWUgPSAndmVzdGF0JyBhbmQgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbGlkID0g cGdfc3RhdF9hbGxfdGFibGVzLnJlbGlkIFxnc2V0CitVUERBVEUgdmVzdGF0IFNFVCB4ID0g eCArIDEwMDE7CitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgp IHZlc3RhdDsKK1NFTEVDVCB2bV9uZXdfZnJvemVuX3BhZ2VzID4gOnBmIEFTIHZtX25ld19m cm96ZW5fcGFnZXMsdm1fbmV3X3Zpc2libGVfcGFnZXMgPiA6cHYgQVMgdm1fbmV3X3Zpc2li bGVfcGFnZXMsdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzID4gOnB2ZiBBUyB2bV9uZXdf dmlzaWJsZV9mcm96ZW5fcGFnZXMscmV2X2FsbF9mcm96ZW5fcGFnZXMgPiA6aGFmcCBBUyBy ZXZfYWxsX2Zyb3plbl9wYWdlcyxyZXZfYWxsX3Zpc2libGVfcGFnZXMgPiA6aGF2cCBBUyBy ZXZfYWxsX3Zpc2libGVfcGFnZXMKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzLCBwZ19z dGF0X2FsbF90YWJsZXMgV0hFUkUgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbG5hbWUgPSAn dmVzdGF0JyBhbmQgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbGlkID0gcGdfc3RhdF9hbGxf dGFibGVzLnJlbGlkOworIHZtX25ld19mcm96ZW5fcGFnZXMgfCB2bV9uZXdfdmlzaWJsZV9w YWdlcyB8IHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyB8IHJldl9hbGxfZnJvemVuX3Bh Z2VzIHwgcmV2X2FsbF92aXNpYmxlX3BhZ2VzIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYgICAgICAg ICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgICAgIHwgZgorKDEgcm93KQorCitTRUxF Q1Qgdm1fbmV3X2Zyb3plbl9wYWdlcyBBUyBwZiwgdm1fbmV3X3Zpc2libGVfcGFnZXMgQVMg cHYsIHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyBBUyBwdmYsIHJldl9hbGxfZnJvemVu X3BhZ2VzIEFTIGhhZnAscmV2X2FsbF92aXNpYmxlX3BhZ2VzIEFTIGhhdnAKK0ZST00gcGdf c3RhdF92YWN1dW1fdGFibGVzLCBwZ19zdGF0X2FsbF90YWJsZXMgV0hFUkUgcGdfc3RhdF92 YWN1dW1fdGFibGVzLnJlbG5hbWUgPSAndmVzdGF0JyBhbmQgcGdfc3RhdF92YWN1dW1fdGFi bGVzLnJlbGlkID0gcGdfc3RhdF9hbGxfdGFibGVzLnJlbGlkIFxnc2V0CitWQUNVVU0gKFBB UkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgpIHZlc3RhdDsKKy0tIHZhY3V1bSBm cmVlemVkIHBhZ2VzCitTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcyA9IDpwZiBBUyB2bV9u ZXdfZnJvemVuX3BhZ2VzLHZtX25ld192aXNpYmxlX3BhZ2VzID0gOnB2IEFTIHZtX25ld192 aXNpYmxlX3BhZ2VzLHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyA9IDpwdmYgQVMgdm1f bmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzLCByZXZfYWxsX2Zyb3plbl9wYWdlcyA9IDpoYWZw IEFTIHJldl9hbGxfZnJvemVuX3BhZ2VzLHJldl9hbGxfdmlzaWJsZV9wYWdlcyA9IDpoYXZw IEFTIHJldl9hbGxfdmlzaWJsZV9wYWdlcworRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMs IHBnX3N0YXRfYWxsX3RhYmxlcyBXSEVSRSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsbmFt ZSA9ICd2ZXN0YXQnIGFuZCBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsaWQgPSBwZ19zdGF0 X2FsbF90YWJsZXMucmVsaWQ7Cisgdm1fbmV3X2Zyb3plbl9wYWdlcyB8IHZtX25ld192aXNp YmxlX3BhZ2VzIHwgdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzIHwgcmV2X2FsbF9mcm96 ZW5fcGFnZXMgfCByZXZfYWxsX3Zpc2libGVfcGFnZXMgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdCAg ICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICAgICAgfCB0CisoMSByb3cpCisK K0RST1AgVEFCTEUgdmVzdGF0IENBU0NBREU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hl ZHVsZQppbmRleCBhNDI0YmUyYTZiZi4uZWUwMzQzYzI3MjkgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9w YXJhbGxlbF9zY2hlZHVsZQpAQCAtMTQwLDMgKzE0MCw4IEBAIHRlc3Q6IGZhc3RfZGVmYXVs dAogIyBydW4gdGFibGVzcGFjZSB0ZXN0IGF0IHRoZSBlbmQgYmVjYXVzZSBpdCBkcm9wcyB0 aGUgdGFibGVzcGFjZSBjcmVhdGVkIGR1cmluZwogIyBzZXR1cCB0aGF0IG90aGVyIHRlc3Rz IG1heSB1c2UuCiB0ZXN0OiB0YWJsZXNwYWNlCisKKyMgLS0tLS0tLS0tLQorIyBDaGVjayB2 YWN1dW0gc3RhdGlzdGljcworIyAtLS0tLS0tLS0tCit0ZXN0OiB2YWN1dW1fdGFibGVzX3N0 YXRpc3RpY3MKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Muc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWJjMzRiZWM2NGIKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Mu c3FsCkBAIC0wLDAgKzEsMTgzIEBACistLQorLS0gVGVzdCBjdW11bGF0aXZlIHZhY3V1bSBz dGF0cyBzeXN0ZW0KKy0tCistLSBDaGVjayB0aGUgd2FsbCBzdGF0aXN0aWNzIGNvbGxlY3Rl ZCBkdXJpbmcgdmFjdXVtIG9wZXJhdGlvbjoKKy0tIG51bWJlciBvZiBmcm96ZW4gYW5kIHZp c2libGUgcGFnZXMgc2V0IGJ5IHZhY3V1bTsKKy0tIG51bWJlciBvZiBmcm96ZW4gYW5kIHZp c2libGUgcGFnZXMgcmVtb3ZlZCBieSBiYWNrZW5kLgorLS0gU3RhdGlzdGljIHdhbF9mcGkg aXMgbm90IGRpc3BsYXllZCBpbiB0aGlzIHRlc3QgYmVjYXVzZSBpdHMgYmVoYXZpb3IgaXMg dW5zdGFibGUuCistLQorCistLSBjb25kaXRpbyBzaW5lIHF1YSBub24KK1NIT1cgdHJhY2tf Y291bnRzOyAgLS0gbXVzdCBiZSBvbgorXHNldCBzYW1wbGVfc2l6ZSAxMDAwMAorCistLSBu b3QgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgd2Ugd2FudCB0byB0ZXN0IGl0Li4uCitTRVQg dHJhY2tfZnVuY3Rpb25zIFRPICdhbGwnOworCistLSBUZXN0IHRoYXQgdmFjdXVtIHN0YXRp c3RpY3Mgd2lsbCBiZSBlbXB0eSB3aGVuIHBhcmFtZXRlciBpcyBvZmYuCitTRVQgdHJhY2tf dmFjdXVtX3N0YXRpc3RpY3MgVE8gJ29mZic7CisKK0NSRUFURSBUQUJMRSB2ZXN0YXQgKHgg aW50KSBXSVRIIChhdXRvdmFjdXVtX2VuYWJsZWQgPSBvZmYsIGZpbGxmYWN0b3IgPSAxMCk7 CitJTlNFUlQgSU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw6 c2FtcGxlX3NpemUpIGFzIHg7CitBTkFMWVpFIHZlc3RhdDsKKworREVMRVRFIEZST00gdmVz dGF0IFdIRVJFIHggJSAyID0gMDsKKworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNB R0VfTElNSVQgMTI4KSB2ZXN0YXQ7CisKKy0tIE11c3QgYmUgZW1wdHkuCitTRUxFQ1QgcmVs bmFtZSx0b3RhbF9ibGtzX3JlYWQsIHRvdGFsX2Jsa3NfaGl0LCB0b3RhbF9ibGtzX2RpcnRp ZWQsIHRvdGFsX2Jsa3Nfd3JpdHRlbixyZWxfYmxrc19yZWFkLCByZWxfYmxrc19oaXQsCitw YWdlc19zY2FubmVkLCBwYWdlc19yZW1vdmVkLCB2bV9uZXdfZnJvemVuX3BhZ2VzLCB2bV9u ZXdfdmlzaWJsZV9wYWdlcywgdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzLCBtaXNzZWRf ZGVhZF9wYWdlcywKK3R1cGxlc19kZWxldGVkLCB0dXBsZXNfZnJvemVuLCByZWNlbnRseV9k ZWFkX3R1cGxlcywgbWlzc2VkX2RlYWRfdHVwbGVzLCBpbmRleF92YWN1dW1fY291bnQsCit3 YWxfcmVjb3Jkcywgd2FsX2ZwaSwgd2FsX2J5dGVzLCBibGtfcmVhZF90aW1lLCBibGtfd3Jp dGVfdGltZSxkZWxheV90aW1lLCB0b3RhbF90aW1lCitGUk9NIHBnX3N0YXRfdmFjdXVtX3Rh YmxlcyB2dAorV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnOworCitSRVNFVCB0cmFja192 YWN1dW1fc3RhdGlzdGljczsKK0RST1AgVEFCTEUgdmVzdGF0IENBU0NBREU7CisKK1NIT1cg dHJhY2tfdmFjdXVtX3N0YXRpc3RpY3M7ICAtLSBtdXN0IGJlIG9uCisKKy0tIGVuc3VyZSBw ZW5kaW5nIHN0YXRzIGFyZSBmbHVzaGVkCitTRUxFQ1QgcGdfc3RhdF9mb3JjZV9uZXh0X2Zs dXNoKCk7CisKKy0tU0VUIHN0YXRzX2ZldGNoX2NvbnNpc3RlbmN5ID0gc25hcHNob3Q7CitD UkVBVEUgVEFCTEUgdmVzdGF0ICh4IGludCkgV0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVkID0g b2ZmLCBmaWxsZmFjdG9yID0gMTApOworSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OworQU5BTFlaRSB2ZXN0 YXQ7CisKK1NFTEVDVCBvaWQgQVMgcm9pZCBmcm9tIHBnX2NsYXNzIHdoZXJlIHJlbG5hbWUg PSAndmVzdGF0JyBcZ3NldAorCitERUxFVEUgRlJPTSB2ZXN0YXQgV0hFUkUgeCAlIDIgPSAw OworLS0gQmVmb3JlIHRoZSBmaXJzdCB2YWN1dW0gZXhlY3V0aW9uIGV4dGVuZGVkIHN0YXRz IHZpZXcgaXMgZW1wdHkuCitTRUxFQ1QgdnQucmVsbmFtZSx2bV9uZXdfZnJvemVuX3BhZ2Vz LHR1cGxlc19kZWxldGVkLHJlbHBhZ2VzLHBhZ2VzX3NjYW5uZWQscGFnZXNfcmVtb3ZlZAor RlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJl bG5hbWUgPSAndmVzdGF0JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKK1NFTEVDVCByZWxwYWdl cyBBUyBycAorRlJPTSBwZ19jbGFzcyBjCitXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdz ZXQKKworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4LCBJTkRF WF9DTEVBTlVQIE9GRikgdmVzdGF0OworLS0gaXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRo ZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKworLS0gVGhlIHRhYmxlIGFuZCBpbmRl eCBleHRlbmRlZCB2YWN1dW0gc3RhdGlzdGljcyBzaG91bGQgc2hvdyB1cyB0aGF0CistLSB2 YWN1dW0gZnJvemVkIHBhZ2VzIGFuZCBjbGVhbiB1cCBwYWdlcywgYnV0IHBhZ2VzX3JlbW92 ZWQgc3RheWVkIHRoZSBzYW1lCistLSBiZWNhdXNlIG9mIG5vdCBmdWxsIHRhYmxlIGhhdmUg Y2xlYW5lZCB1cAorU0VMRUNUIHZ0LnJlbG5hbWUsdm1fbmV3X2Zyb3plbl9wYWdlcyA+IDAg QVMgdm1fbmV3X2Zyb3plbl9wYWdlcyx0dXBsZXNfZGVsZXRlZCA+IDAgQVMgdHVwbGVzX2Rl bGV0ZWQscmVscGFnZXMtOnJwID0gMCBBUyByZWxwYWdlcyxwYWdlc19zY2FubmVkID4gMCBB UyBwYWdlc19zY2FubmVkLHBhZ2VzX3JlbW92ZWQgPSAwIEFTIHBhZ2VzX3JlbW92ZWQKK0ZS T00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxu YW1lID0gJ3Zlc3RhdCcgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CitTRUxFQ1Qgdm1fbmV3X2Zy b3plbl9wYWdlcyBBUyBmcCx0dXBsZXNfZGVsZXRlZCBBUyB0ZCxyZWxwYWdlcyBBUyBycCwg cGFnZXNfc2Nhbm5lZCBBUyBwcywgcGFnZXNfcmVtb3ZlZCBBUyBwcgorRlJPTSBwZ19zdGF0 X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVz dGF0JyBBTkQgdnQucmVsaWQgPSBjLm9pZCBcZ3NldAorCistLSBTdG9yZSBXQUwgYWR2YW5j ZXMgaW50byB2YXJpYWJsZXMKK1NFTEVDVCB3YWxfcmVjb3JkcyBBUyBod3Isd2FsX2J5dGVz IEFTIGh3Yix3YWxfZnBpIEFTIGhmcGkgRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hF UkUgcmVsbmFtZSA9ICd2ZXN0YXQnIFxnc2V0CisKKy0tIExvb2sgaW50byBXQUwgcmVjb3Jk cyBkZWx0YXMuCitTRUxFQ1Qgd2FsX3JlY29yZHMgPiAwIEFTIGRXUiwgd2FsX2J5dGVzID4g MCBBUyBkV0IKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAn dmVzdGF0JzsKKworREVMRVRFIEZST00gdmVzdGF0OzsKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwg QlVGRkVSX1VTQUdFX0xJTUlUIDEyOCwgSU5ERVhfQ0xFQU5VUCBPRkYpIHZlc3RhdDsKKy0t IGl0IGlzIG5lY2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNLUE9J TlQ7CisKKy0tIHBhZ2VzX3JlbW92ZWQgbXVzdCBiZSBpbmNyZWFzZWQKK1NFTEVDVCB2dC5y ZWxuYW1lLHZtX25ld19mcm96ZW5fcGFnZXMtOmZwID4gMCBBUyB2bV9uZXdfZnJvemVuX3Bh Z2VzLHR1cGxlc19kZWxldGVkLTp0ZCA+IDAgQVMgdHVwbGVzX2RlbGV0ZWQscmVscGFnZXMg LTpycCA9IDAgQVMgcmVscGFnZXMscGFnZXNfc2Nhbm5lZC06cHMgPiAwIEFTIHBhZ2VzX3Nj YW5uZWQscGFnZXNfcmVtb3ZlZC06cHIgPiAwIEFTIHBhZ2VzX3JlbW92ZWQKK0ZST00gcGdf c3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0g J3Zlc3RhdCcgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CitTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9w YWdlcyBBUyBmcCx0dXBsZXNfZGVsZXRlZCBBUyB0ZCxyZWxwYWdlcyBBUyBycCwgcGFnZXNf c2Nhbm5lZCBBUyBwcywgcGFnZXNfcmVtb3ZlZCBBUyBwcgorRlJPTSBwZ19zdGF0X3ZhY3V1 bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JyBB TkQgdnQucmVsaWQgPSBjLm9pZCBcZ3NldAorCistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50 byB2YXJpYWJsZXMKK1NFTEVDVCB3YWxfcmVjb3Jkcy06aHdyIEFTIGR3ciwgd2FsX2J5dGVz LTpod2IgQVMgZHdiLCB3YWxfZnBpLTpoZnBpIEFTIGRmcGkKK0ZST00gcGdfc3RhdF92YWN1 dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0JyBcZ3NldAorCistLSBXQUwgYWR2 YW5jZSBzaG91bGQgYmUgZGV0ZWN0ZWQuCitTRUxFQ1QgOmR3ciA+IDAgQVMgZFdSLCA6ZHdi ID4gMCBBUyBkV0I7CisKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcwor U0VMRUNUIHdhbF9yZWNvcmRzIEFTIGh3cix3YWxfYnl0ZXMgQVMgaHdiLHdhbF9mcGkgQVMg aGZwaSBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3Rh dCcgXGdzZXQKKworSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2VuZXJhdGVf c2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OworREVMRVRFIEZST00gdmVzdGF0IFdIRVJF IHggJSAyID0gMDsKKy0tIFZBQ1VVTSBGVUxMIGRvZXNuJ3QgcmVwb3J0IHRvIHN0YXQgY29s bGVjdG9yLiBTbywgbm8gYW55IGFkdmFuY2VtZW50cyBvZiBzdGF0aXN0aWNzCistLSBhcmUg ZGV0ZWN0ZWQgaGVyZS4KK1ZBQ1VVTSBGVUxMIHZlc3RhdDsKKy0tIEl0IGlzIG5lY2Vzc2Fy eSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNLUE9JTlQ7CisKKy0tIFN0b3Jl IFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzLTpod3Ig QVMgZHdyMiwgd2FsX2J5dGVzLTpod2IgQVMgZHdiMiwgd2FsX2ZwaS06aGZwaSBBUyBkZnBp MgorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQn IFxnc2V0CisKKy0tIFdBTCBhbmQgb3RoZXIgc3RhdGlzdGljcyBhZHZhbmNlIHNob3VsZCBu b3QgYmUgZGV0ZWN0ZWQuCitTRUxFQ1QgOmR3cjI9MCBBUyBkV1IsIDpkZnBpMj0wIEFTIGRG UEksIDpkd2IyPTAgQVMgZFdCOworCitTRUxFQ1QgdnQucmVsbmFtZSx2bV9uZXdfZnJvemVu X3BhZ2VzLTpmcCA9IDAgQVMgdm1fbmV3X2Zyb3plbl9wYWdlcyx0dXBsZXNfZGVsZXRlZC06 dGQgPSAwIEFTIHR1cGxlc19kZWxldGVkLHJlbHBhZ2VzIC06cnAgPCAwIEFTIHJlbHBhZ2Vz LHBhZ2VzX3NjYW5uZWQtOnBzID0gMCBBUyBwYWdlc19zY2FubmVkLHBhZ2VzX3JlbW92ZWQt OnByID0gMCBBUyBwYWdlc19yZW1vdmVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2 dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2dC5yZWxp ZCA9IGMub2lkOworU0VMRUNUIHZtX25ld19mcm96ZW5fcGFnZXMgQVMgZnAsdHVwbGVzX2Rl bGV0ZWQgQVMgdGQscmVscGFnZXMgQVMgcnAsIHBhZ2VzX3NjYW5uZWQgQVMgcHMscGFnZXNf cmVtb3ZlZCBBUyBwcgorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNz IGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JyBBTkQgdnQucmVsaWQgPSBjLm9pZCBc Z3NldAorCistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50byB2YXJpYWJsZXMKK1NFTEVDVCB3 YWxfcmVjb3JkcyBBUyBod3Isd2FsX2J5dGVzIEFTIGh3Yix3YWxfZnBpIEFTIGhmcGkgRlJP TSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnIFxnc2V0 CisKK0RFTEVURSBGUk9NIHZlc3RhdDsKK1RSVU5DQVRFIHZlc3RhdDsKK1ZBQ1VVTSAoUEFS QUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCwgSU5ERVhfQ0xFQU5VUCBPRkYpIHZl c3RhdDsKKy0tIGl0IGlzIG5lY2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3RpY3MK K0NIRUNLUE9JTlQ7CisKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcyBh ZnRlciByZW1vdmluZyBhbGwgdHVwbGVzIGZyb20gdGhlIHRhYmxlCitTRUxFQ1Qgd2FsX3Jl Y29yZHMtOmh3ciBBUyBkd3IzLCB3YWxfYnl0ZXMtOmh3YiBBUyBkd2IzLCB3YWxfZnBpLTpo ZnBpIEFTIGRmcGkzCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1l ID0gJ3Zlc3RhdCcgXGdzZXQKKworLS1UaGVyZSBhcmUgbm90aGluZyBjaGFuZ2VkCitTRUxF Q1QgOmR3cjM+MCBBUyBkV1IsIDpkZnBpMz0wIEFTIGRGUEksIDpkd2IzPjAgQVMgZFdCOwor CistLQorLS0gTm93LCB0aGUgdGFibGUgYW5kIGluZGV4IGlzIGNvbXByZXNzZWQgaW50byB6 ZXJvIG51bWJlciBvZiBwYWdlcy4gQ2hlY2sgaXQKKy0tIGluIHZhY3V1bSBleHRlbmRlZCBz dGF0aXN0aWNzLgorLS0gVGhlIHZtX25ld19mcm96ZW5fcGFnZXMsIHBhZ2VzX3NjYW5uZWQg dmFsdWVzIHNob3VsZG4ndCBiZSBjaGFuZ2VkCistLQorU0VMRUNUIHZ0LnJlbG5hbWUsdm1f bmV3X2Zyb3plbl9wYWdlcy06ZnAgPSAwIEFTIHZtX25ld19mcm96ZW5fcGFnZXMsdHVwbGVz X2RlbGV0ZWQtOnRkID0gMCBBUyB0dXBsZXNfZGVsZXRlZCxyZWxwYWdlcyAtOnJwID0gMCBB UyByZWxwYWdlcyxwYWdlc19zY2FubmVkLTpwcyA9IDAgQVMgcGFnZXNfc2Nhbm5lZCxwYWdl c19yZW1vdmVkLTpwciA9IDAgQVMgcGFnZXNfcmVtb3ZlZAorRlJPTSBwZ19zdGF0X3ZhY3V1 bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JyBB TkQgdnQucmVsaWQgPSBjLm9pZDsKKworRFJPUCBUQUJMRSB2ZXN0YXQgQ0FTQ0FERTsKK0NS RUFURSBUQUJMRSB2ZXN0YXQgKHggaW50KSBXSVRIIChhdXRvdmFjdXVtX2VuYWJsZWQgPSBv ZmYsIGZpbGxmYWN0b3IgPSAxMCk7CisKK0lOU0VSVCBJTlRPIHZlc3RhdCBTRUxFQ1QgeCBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLDpzYW1wbGVfc2l6ZSkgYXMgeDsKK0FOQUxZWkUgdmVz dGF0OworCistLSBtdXN0IGJlIGVtcHR5CitTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcywg dm1fbmV3X3Zpc2libGVfcGFnZXMsIHJldl9hbGxfZnJvemVuX3BhZ2VzLHJldl9hbGxfdmlz aWJsZV9wYWdlcyx2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMKK0ZST00gcGdfc3RhdF92 YWN1dW1fdGFibGVzLCBwZ19zdGF0X2FsbF90YWJsZXMgV0hFUkUgcGdfc3RhdF92YWN1dW1f dGFibGVzLnJlbG5hbWUgPSAndmVzdGF0JyBhbmQgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJl bGlkID0gcGdfc3RhdF9hbGxfdGFibGVzLnJlbGlkOworCitWQUNVVU0gKFBBUkFMTEVMIDAs IEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgpIHZlc3RhdDsKKworLS0gYmFja2VuZCBkZWZyZWV6 ZWQgcGFnZXMKK1NFTEVDVCB2bV9uZXdfZnJvemVuX3BhZ2VzID4gMCBBUyB2bV9uZXdfZnJv emVuX3BhZ2VzLHZtX25ld192aXNpYmxlX3BhZ2VzID4gMCBBUyB2bV9uZXdfdmlzaWJsZV9w YWdlcyx2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMgPiAwIEFTIHZtX25ld192aXNpYmxl X2Zyb3plbl9wYWdlcyxyZXZfYWxsX2Zyb3plbl9wYWdlcyA9IDAgQVMgcmV2X2FsbF9mcm96 ZW5fcGFnZXMscmV2X2FsbF92aXNpYmxlX3BhZ2VzID0gMCBBUyByZXZfYWxsX3Zpc2libGVf cGFnZXMKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzLCBwZ19zdGF0X2FsbF90YWJsZXMg V0hFUkUgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbG5hbWUgPSAndmVzdGF0JyBhbmQgcGdf c3RhdF92YWN1dW1fdGFibGVzLnJlbGlkID0gcGdfc3RhdF9hbGxfdGFibGVzLnJlbGlkOwor U0VMRUNUIHZtX25ld19mcm96ZW5fcGFnZXMgQVMgcGYsIHZtX25ld192aXNpYmxlX3BhZ2Vz IEFTIHB2LHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyBBUyBwdmYsIHJldl9hbGxfZnJv emVuX3BhZ2VzIEFTIGhhZnAscmV2X2FsbF92aXNpYmxlX3BhZ2VzIEFTIGhhdnAKK0ZST00g cGdfc3RhdF92YWN1dW1fdGFibGVzLCBwZ19zdGF0X2FsbF90YWJsZXMgV0hFUkUgcGdfc3Rh dF92YWN1dW1fdGFibGVzLnJlbG5hbWUgPSAndmVzdGF0JyBhbmQgcGdfc3RhdF92YWN1dW1f dGFibGVzLnJlbGlkID0gcGdfc3RhdF9hbGxfdGFibGVzLnJlbGlkIFxnc2V0CisKK1VQREFU RSB2ZXN0YXQgU0VUIHggPSB4ICsgMTAwMTsKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVS X1VTQUdFX0xJTUlUIDEyOCkgdmVzdGF0OworCitTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdl cyA+IDpwZiBBUyB2bV9uZXdfZnJvemVuX3BhZ2VzLHZtX25ld192aXNpYmxlX3BhZ2VzID4g OnB2IEFTIHZtX25ld192aXNpYmxlX3BhZ2VzLHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdl cyA+IDpwdmYgQVMgdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzLHJldl9hbGxfZnJvemVu X3BhZ2VzID4gOmhhZnAgQVMgcmV2X2FsbF9mcm96ZW5fcGFnZXMscmV2X2FsbF92aXNpYmxl X3BhZ2VzID4gOmhhdnAgQVMgcmV2X2FsbF92aXNpYmxlX3BhZ2VzCitGUk9NIHBnX3N0YXRf dmFjdXVtX3RhYmxlcywgcGdfc3RhdF9hbGxfdGFibGVzIFdIRVJFIHBnX3N0YXRfdmFjdXVt X3RhYmxlcy5yZWxuYW1lID0gJ3Zlc3RhdCcgYW5kIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5y ZWxpZCA9IHBnX3N0YXRfYWxsX3RhYmxlcy5yZWxpZDsKK1NFTEVDVCB2bV9uZXdfZnJvemVu X3BhZ2VzIEFTIHBmLCB2bV9uZXdfdmlzaWJsZV9wYWdlcyBBUyBwdiwgdm1fbmV3X3Zpc2li bGVfZnJvemVuX3BhZ2VzIEFTIHB2ZiwgcmV2X2FsbF9mcm96ZW5fcGFnZXMgQVMgaGFmcCxy ZXZfYWxsX3Zpc2libGVfcGFnZXMgQVMgaGF2cAorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJs ZXMsIHBnX3N0YXRfYWxsX3RhYmxlcyBXSEVSRSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVs bmFtZSA9ICd2ZXN0YXQnIGFuZCBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsaWQgPSBwZ19z dGF0X2FsbF90YWJsZXMucmVsaWQgXGdzZXQKKworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZG RVJfVVNBR0VfTElNSVQgMTI4KSB2ZXN0YXQ7CisKKy0tIHZhY3V1bSBmcmVlemVkIHBhZ2Vz CitTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcyA9IDpwZiBBUyB2bV9uZXdfZnJvemVuX3Bh Z2VzLHZtX25ld192aXNpYmxlX3BhZ2VzID0gOnB2IEFTIHZtX25ld192aXNpYmxlX3BhZ2Vz LHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyA9IDpwdmYgQVMgdm1fbmV3X3Zpc2libGVf ZnJvemVuX3BhZ2VzLCByZXZfYWxsX2Zyb3plbl9wYWdlcyA9IDpoYWZwIEFTIHJldl9hbGxf ZnJvemVuX3BhZ2VzLHJldl9hbGxfdmlzaWJsZV9wYWdlcyA9IDpoYXZwIEFTIHJldl9hbGxf dmlzaWJsZV9wYWdlcworRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMsIHBnX3N0YXRfYWxs X3RhYmxlcyBXSEVSRSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsbmFtZSA9ICd2ZXN0YXQn IGFuZCBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsaWQgPSBwZ19zdGF0X2FsbF90YWJsZXMu cmVsaWQ7CisKK0RST1AgVEFCTEUgdmVzdGF0IENBU0NBREU7ClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQotLSAKMi4zNC4xCgo= --------------IUDxn0gVtf2vbFzxDscYGnji Content-Type: text/x-patch; charset=UTF-8; name="v22-0002-Machinery-for-grabbing-an-extended-vacuum-statistics.patch" Content-Disposition: attachment; filename*0="v22-0002-Machinery-for-grabbing-an-extended-vacuum-statistic"; filename*1="s.patch" Content-Transfer-Encoding: base64 RnJvbSA0OWU3MjhkNzg4NDM1YWU5MDllY2YwNTM3NDUwNjkxOGUxZTUyNWYyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogVGh1LCA4IE1heSAyMDI1IDIxOjIwOjI2ICswMzAwClN1Ympl Y3Q6IFtQQVRDSCAyLzRdIE1hY2hpbmVyeSBmb3IgZ3JhYmJpbmcgYW4gZXh0ZW5kZWQgdmFj dXVtIHN0YXRpc3RpY3Mgb24gCiBpbmRleCByZWxhdGlvbnMuCgpUaGV5IGFyZSBnYXRoZXJl ZCBzZXBhcmF0ZWxseSBmcm9tIHRhYmxlIHN0YXRpc3RpY3MuCgpBcyBmb3IgdGFibGVzLCB3 ZSBnYXRoZXIgdmFjdXVtIHNoYXJlZCBidWZmZXJzIHN0YXRpc3RpY3MgZm9yIGluZGV4IHJl bGF0aW9ucyBsaWtlCnZhbHVlIG9mIHRvdGFsX2Jsa3NfaGl0LCB0b3RhbF9ibGtzX3JlYWQs IHRvdGFsX2Jsa3NfZGlydGllZCwgd2FsIHN0YXRpc3RpY3MsIGlvIHRpbWUKZHVyaW5nIGZs dXNoaW5nIGJ1ZmZlciBwYWdlcyB0byBkaXNrLCBkZWxheSBhbmQgdG90YWwgdGltZS4KCkR1 ZSB0byB0aGUgZmFjdCB0aGF0IHN1Y2ggc3RhdGlzdGljcyBhcmUgY29tbW9uIGFzIGZvciB0 YWJsZXMsIGFzIGZvciBpbmRleGVzIHdlCnNldCB0aGVtIGluIHRoZSB1bmlvbiBFeHRWYWNS ZXBvcnQgc3RydWN0dXJlLiBXZSBvbmx5IGFkZGVkIHNvbWUgZGV0ZXJtaW5hdGlvbiAndHlw ZScKZmllbGQgdG8gaGlnaGxpZ2h0IHdoYXQga2luZCBiZWxvbmcgdG8gdGhlc2Ugc3RhdGlz dGljczogUEdTVEFUX0VYVFZBQ19UQUJMRSBvcgpQR1NUQVRfRVhUVkFDX0lOREVYLiBHZW5l cmFsbHksIFBHU1RBVF9FWFRWQUNfSU5WQUxJRCB0eXBlIGxlYWRzIHRvIHdyb25nIGNvZGUg cHJvY2Vzcy4KClNvbWUgc3RhdGlzdGljcyBiZWxvbmcgb25seSBvbmUgdHlwZSBvZiBib3Ro IHRhYmxlcyBvciBpbmRleGVzLiBTbywgd2UgYWRkZWQgc3Vic3RydWN0dXJlcwpzeWNoIHRh YmxlIGFuZCBpbmRleCBpbnNpZGUgRXh0VmFjUmVwb3J0IHN0cnVjdHVyZS4KClRoZXJlZm9y ZSwgd2UgZ2F0aGVyIG9ubHkgZm9yIHRhYmxlcyBzdWNoIHN0YXRpc3RpY3MgbGlrZSBudW1i ZXIgb2Ygc2Nhbm5lZCwgcmVtb3ZlZCBwYWdlcywKdGhlaXIgY2hhcmVjdGVyaXN0aWNzIGFj Y29yZGluZyBWTSAoYWxsLXZpc2libGUgYW5kIGZyb3plbikuIEluIGFkZGl0aW9uLCBmb3Ig dGFibGVzIHdlCmdhdGhlciBudW1iZXIgZnJvemVuLCBkZWxldGVkIGFuZCByZWNlbnRseSBk ZWFkIHR1cGxlcyBhbmQgaG93IG1hbnkgdGltZXMgdmFjdXVtIHByb2Nlc3NlZAppbmRleGVz IGZvciB0YWJsZXMuCgpDb250cm92ZXJzYWxseSBmb3IgaW5kZXhlcyB3ZSBnYXRoZXIgbnVt YmVyIG9mIGRlbGV0ZWQgcGFnZXMgYW5kIGRlbGV0ZWQgdHVwbGVzIG9ubHkuCgpBcyBmb3Ig dGFibGVzLCBkZWxldGVkIHBhZ2VzIGFuZCBkZWxldGVkIHR1cGxlcyByZWZsZWN0IHRoZSBv dmVyYWxsIHBlcmZvcm1hbmNlIG9mIHRoZSB2YWN1dW0KZm9yIHRoZSBpbmRleCByZWxhdGlv bnNoaXAuCgpTaW5jZSB0aGUgdmFjdXVtIGNsZWFucyB1cCByZWZlcmVuY2VzIHRvIHR1cGxl IGluZGV4ZXMgYmVmb3JlIGNsZWFuaW5nIHVwIHRhYmxlIHR1cGxlcywKd2hpY2ggYWRkcyBz b21lIGNvbXBsZXhpdHkgdG8gdGhlIHZhY3V1bSBwcm9jZXNzLCBuYW1lbHkgdGhlIHZhY3V1 bSBzd2l0Y2hlcyBmcm9tIGNsZWFuaW5nIHVwCmEgdGFibGUgdG8gaXRzIGluZGV4ZXMgYW5k IGJhY2sgZHVyaW5nIGl0cyBvcGVyYXRpb24sIHdlIG5lZWQgdG8gc2F2ZSB0aGUgdmFjdXVt IHN0YXRpc3RpY3MKY29sbGVjdGVkIGZvciB0aGUgaGVhcCBiZWZvcmUgaXQgc3RhcnRzIGNs ZWFuaW5nIHVwIHRoZSBpbmRleGVzLgpUaGF0J3Mgd2h5IGl0J3MgbmVjZXNzYXJ5IHRvIHRy YWNrIHRoZSB2YWN1dW0gc3RhdGlzdGljcyBmb3IgdGhlIGhlYXAgc2V2ZXJhbCB0aW1lcyBk dXJpbmcKdGhlIHZhY3V1bSBwcm9jZWR1cmUuIFRvIGF2b2lkIHNlbmRpbmcgdGhlIHN0YXRp c3RpY3MgdG8gdGhlIEN1bXVsYXRpdmUgU3RhdGlzdGljcyBTeXN0ZW0Kc2V2ZXJhbCB0aW1l cywgd2Ugc2F2ZSB0aGVzZSBzdGF0aXN0aWNzIGluIHRoZSBMVlJlbFN0YXRlIHN0cnVjdHVy ZSBhbmQgb25seSBhZnRlciB2YWN1dW0KZmluaXNoZXMgY2xlYW5pbmcgdXAgdGhlIGhlYXAs IGl0IHNlbmRzIHRoZW0gdG8gdGhlIEN1bXVsYXRpdmUgU3RhdGlzdGljcyBTeXN0ZW0uCgpB dXRob3JzOiBBbGVuYSBSeWJha2luYSA8bGVuYS5yaWJhY2tpbmFAeWFuZGV4LnJ1PiwKICAg QW5kcmVpIExlcGlraG92IDxhLmxlcGlraG92QHBvc3RncmVzcHJvLnJ1PiwKICAgQW5kcmVp IFp1YmtvdiA8YS56dWJrb3ZAcG9zdGdyZXNwcm8ucnU+ClJldmlld2VkLWJ5OiBEaWxpcCBL dW1hciA8ZGlsaXBiYWxhdXRAZ21haWwuY29tPiwgTWFzYWhpa28gU2F3YWRhIDxzYXdhZGEu bXNoa0BnbWFpbC5jb20+LAogICAgICAgSWxpYSBFdmRva2ltb3YgPGlseWEuZXZkb2tpbW92 QHRhbnRvcmxhYnMuY29tPiwgamlhbiBoZSA8amlhbi51bml2ZXJzYWxpdHlAZ21haWwuY29t PiwKICAgICAgIEtpcmlsbCBSZXNoa2UgPHJlc2hrZWtpcmlsbEBnbWFpbC5jb20+LCBBbGV4 YW5kZXIgS29yb3Rrb3YgPGFla29yb3Rrb3ZAZ21haWwuY29tPiwKICAgICAgIEppbSBOYXNi eSA8am5hc2J5QHVwZ3JhZGUuY29tPiwgU2FtaSBJbXNlaWggPHNhbWltc2VpaEBnbWFpbC5j b20+Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jICAgICAgICAg IHwgMjkyICsrKysrKysrKysrKysrLS0tLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1f dmlld3Muc3FsICAgICAgICAgIHwgIDMyICsrCiBzcmMvYmFja2VuZC9jb21tYW5kcy92YWN1 dW1wYXJhbGxlbC5jICAgICAgICAgfCAgMTQgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZp dHkvcGdzdGF0LmMgICAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2 aXR5L3Bnc3RhdF9yZWxhdGlvbi5jICB8ICA0OCArKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9wZ3N0YXRmdW5jcy5jICAgICAgICAgICB8IDEzMyArKysrKysrLQogc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgICAgICAgICAgIHwgICAyICstCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAgICAgfCAgIDkgKwogc3JjL2luY2x1 ZGUvY29tbWFuZHMvdmFjdXVtLmggICAgICAgICAgICAgICAgIHwgIDI1ICsrCiBzcmMvaW5j bHVkZS9wZ3N0YXQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNTggKysrLQogLi4u L3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQub3V0ICAgIHwgICA0ICstCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCAgICAgICAgICAgfCAgMjIgKysK IC4uLi9leHBlY3RlZC92YWN1dW1faW5kZXhfc3RhdGlzdGljcy5vdXQgICAgICB8IDE4MyAr KysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAg ICAgIHwgICAxICsKIC4uLi9yZWdyZXNzL3NxbC92YWN1dW1faW5kZXhfc3RhdGlzdGljcy5z cWwgICB8IDE1MSArKysrKysrKysKIDE1IGZpbGVzIGNoYW5nZWQsIDg3MyBpbnNlcnRpb25z KCspLCAxMDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC92YWN1dW1faW5kZXhfc3RhdGlzdGljcy5vdXQKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1dW1faW5kZXhfc3RhdGlzdGljcy5z cWwKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggMjhmMjIyYWZl NjAuLmY0MmM3MDBmNmJiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92 YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5j CkBAIC0yOTEsNiArMjkxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgTFZSZWxTdGF0ZQogCWNoYXIJ ICAgKmRibmFtZTsKIAljaGFyCSAgICpyZWxuYW1lc3BhY2U7CiAJT2lkCQkJcmVsb2lkOwor CU9pZAkJCWluZG9pZDsKIAljaGFyCSAgICpyZWxuYW1lOwogCWNoYXIJICAgKmluZG5hbWU7 CQkvKiBDdXJyZW50IGluZGV4IG5hbWUgKi8KIAlCbG9ja051bWJlciBibGtubzsJCQkvKiB1 c2VkIG9ubHkgZm9yIGhlYXAgb3BlcmF0aW9ucyAqLwpAQCAtNDExLDYgKzQxMiw4IEBAIHR5 cGVkZWYgc3RydWN0IExWUmVsU3RhdGUKIAlCbG9ja051bWJlciBlYWdlcl9zY2FuX3JlbWFp bmluZ19mYWlsczsKIAogCWludDMyCQl3cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50OyAvKiBu dW1iZXIgb2YgZW1lcmdlbmN5IHZhY3V1bXMgdG8gcHJldmVudCBhbnRpLXdyYXBhcm91bmQg c2h1dGRvd24gKi8KKworCUV4dFZhY1JlcG9ydCBleHRWYWNSZXBvcnQ7CiB9IExWUmVsU3Rh dGU7CiAKIApAQCAtNDIyLDE5ICs0MjUsNiBAQCB0eXBlZGVmIHN0cnVjdCBMVlNhdmVkRXJy SW5mbwogCVZhY0VyclBoYXNlIHBoYXNlOwogfSBMVlNhdmVkRXJySW5mbzsKIAotLyoKLSAq IENvdW50ZXJzIGFuZCB1c2FnZSBkYXRhIGZvciBleHRlbmRlZCBzdGF0cyB0cmFja2luZy4K LSAqLwotdHlwZWRlZiBzdHJ1Y3QgTFZFeHRTdGF0Q291bnRlcnMKLXsKLQlUaW1lc3RhbXBU eiBzdGFydHRpbWU7Ci0JV2FsVXNhZ2UJd2FsdXNhZ2U7Ci0JQnVmZmVyVXNhZ2UgYnVmdXNh Z2U7Ci0JZG91YmxlCQlWYWN1dW1EZWxheVRpbWU7Ci0JUGdTdGF0X0NvdW50ZXIgYmxvY2tz X2ZldGNoZWQ7Ci0JUGdTdGF0X0NvdW50ZXIgYmxvY2tzX2hpdDsKLX0gTFZFeHRTdGF0Q291 bnRlcnM7Ci0KIC8qIG5vbi1leHBvcnQgZnVuY3Rpb24gcHJvdG90eXBlcyAqLwogc3RhdGlj IHZvaWQgbGF6eV9zY2FuX2hlYXAoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKIHN0YXRpYyB2b2lk IGhlYXBfdmFjdXVtX2VhZ2VyX3NjYW5fc2V0dXAoTFZSZWxTdGF0ZSAqdmFjcmVsLApAQCAt NTU2LDI3ICs1NDYsMjUgQEAgZXh0dmFjX3N0YXRzX2VuZChSZWxhdGlvbiByZWwsIExWRXh0 U3RhdENvdW50ZXJzICpjb3VudGVycywKIAllbmR0aW1lID0gR2V0Q3VycmVudFRpbWVzdGFt cCgpOwogCVRpbWVzdGFtcERpZmZlcmVuY2UoY291bnRlcnMtPnN0YXJ0dGltZSwgZW5kdGlt ZSwgJnNlY3MsICZ1c2Vjcyk7CiAKLQltZW1zZXQocmVwb3J0LCAwLCBzaXplb2YoRXh0VmFj UmVwb3J0KSk7Ci0KIAkvKgogCSAqIEZpbGwgYWRkaXRpb25hbCBzdGF0aXN0aWNzIG9uIGEg dmFjdXVtIHByb2Nlc3Npbmcgb3BlcmF0aW9uLgogCSAqLwotCXJlcG9ydC0+dG90YWxfYmxr c19yZWFkID0gYnVmdXNhZ2UubG9jYWxfYmxrc19yZWFkICsgYnVmdXNhZ2Uuc2hhcmVkX2Js a3NfcmVhZDsKLQlyZXBvcnQtPnRvdGFsX2Jsa3NfaGl0ID0gYnVmdXNhZ2UubG9jYWxfYmxr c19oaXQgKyBidWZ1c2FnZS5zaGFyZWRfYmxrc19oaXQ7Ci0JcmVwb3J0LT50b3RhbF9ibGtz X2RpcnRpZWQgPSBidWZ1c2FnZS5sb2NhbF9ibGtzX2RpcnRpZWQgKyBidWZ1c2FnZS5zaGFy ZWRfYmxrc19kaXJ0aWVkOwotCXJlcG9ydC0+dG90YWxfYmxrc193cml0dGVuID0gYnVmdXNh Z2Uuc2hhcmVkX2Jsa3Nfd3JpdHRlbjsKKwlyZXBvcnQtPnRvdGFsX2Jsa3NfcmVhZCArPSBi dWZ1c2FnZS5sb2NhbF9ibGtzX3JlYWQgKyBidWZ1c2FnZS5zaGFyZWRfYmxrc19yZWFkOwor CXJlcG9ydC0+dG90YWxfYmxrc19oaXQgKz0gYnVmdXNhZ2UubG9jYWxfYmxrc19oaXQgKyBi dWZ1c2FnZS5zaGFyZWRfYmxrc19oaXQ7CisJcmVwb3J0LT50b3RhbF9ibGtzX2RpcnRpZWQg Kz0gYnVmdXNhZ2UubG9jYWxfYmxrc19kaXJ0aWVkICsgYnVmdXNhZ2Uuc2hhcmVkX2Jsa3Nf ZGlydGllZDsKKwlyZXBvcnQtPnRvdGFsX2Jsa3Nfd3JpdHRlbiArPSBidWZ1c2FnZS5zaGFy ZWRfYmxrc193cml0dGVuOwogCi0JcmVwb3J0LT53YWxfcmVjb3JkcyA9IHdhbHVzYWdlLndh bF9yZWNvcmRzOwotCXJlcG9ydC0+d2FsX2ZwaSA9IHdhbHVzYWdlLndhbF9mcGk7Ci0JcmVw b3J0LT53YWxfYnl0ZXMgPSB3YWx1c2FnZS53YWxfYnl0ZXM7CisJcmVwb3J0LT53YWxfcmVj b3JkcyArPSB3YWx1c2FnZS53YWxfcmVjb3JkczsKKwlyZXBvcnQtPndhbF9mcGkgKz0gd2Fs dXNhZ2Uud2FsX2ZwaTsKKwlyZXBvcnQtPndhbF9ieXRlcyArPSB3YWx1c2FnZS53YWxfYnl0 ZXM7CiAKLQlyZXBvcnQtPmJsa19yZWFkX3RpbWUgPSBJTlNUUl9USU1FX0dFVF9NSUxMSVNF QyhidWZ1c2FnZS5sb2NhbF9ibGtfcmVhZF90aW1lKTsKKwlyZXBvcnQtPmJsa19yZWFkX3Rp bWUgKz0gSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoYnVmdXNhZ2UubG9jYWxfYmxrX3JlYWRf dGltZSk7CiAJcmVwb3J0LT5ibGtfcmVhZF90aW1lICs9IElOU1RSX1RJTUVfR0VUX01JTExJ U0VDKGJ1ZnVzYWdlLnNoYXJlZF9ibGtfcmVhZF90aW1lKTsKLQlyZXBvcnQtPmJsa193cml0 ZV90aW1lID0gSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoYnVmdXNhZ2UubG9jYWxfYmxrX3dy aXRlX3RpbWUpOwotCXJlcG9ydC0+YmxrX3dyaXRlX3RpbWUgPSBJTlNUUl9USU1FX0dFVF9N SUxMSVNFQyhidWZ1c2FnZS5zaGFyZWRfYmxrX3dyaXRlX3RpbWUpOwotCXJlcG9ydC0+ZGVs YXlfdGltZSA9IFZhY3V1bURlbGF5VGltZSAtIGNvdW50ZXJzLT5WYWN1dW1EZWxheVRpbWU7 CisJcmVwb3J0LT5ibGtfd3JpdGVfdGltZSArPSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhi dWZ1c2FnZS5sb2NhbF9ibGtfd3JpdGVfdGltZSk7CisJcmVwb3J0LT5ibGtfd3JpdGVfdGlt ZSArPSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhidWZ1c2FnZS5zaGFyZWRfYmxrX3dyaXRl X3RpbWUpOworCXJlcG9ydC0+ZGVsYXlfdGltZSArPSBWYWN1dW1EZWxheVRpbWUgLSBjb3Vu dGVycy0+VmFjdXVtRGVsYXlUaW1lOwogCi0JcmVwb3J0LT50b3RhbF90aW1lID0gc2VjcyAq IDEwMDAuICsgdXNlY3MgLyAxMDAwLjsKKwlyZXBvcnQtPnRvdGFsX3RpbWUgKz0gc2VjcyAq IDEwMDAuICsgdXNlY3MgLyAxMDAwLjsKIAogCWlmICghcmVsLT5wZ3N0YXRfaW5mbyB8fCAh cGdzdGF0X3RyYWNrX2NvdW50cykKIAkJLyoKQEAgLTU4NSwxMiArNTczLDk2IEBAIGV4dHZh Y19zdGF0c19lbmQoUmVsYXRpb24gcmVsLCBMVkV4dFN0YXRDb3VudGVycyAqY291bnRlcnMs CiAJCSAqLwogCQlyZXR1cm47CiAKLQlyZXBvcnQtPmJsa3NfZmV0Y2hlZCA9CisJcmVwb3J0 LT5ibGtzX2ZldGNoZWQgKz0KIAkJcmVsLT5wZ3N0YXRfaW5mby0+Y291bnRzLmJsb2Nrc19m ZXRjaGVkIC0gY291bnRlcnMtPmJsb2Nrc19mZXRjaGVkOwotCXJlcG9ydC0+Ymxrc19oaXQg PQorCXJlcG9ydC0+Ymxrc19oaXQgKz0KIAkJcmVsLT5wZ3N0YXRfaW5mby0+Y291bnRzLmJs b2Nrc19oaXQgLSBjb3VudGVycy0+YmxvY2tzX2hpdDsKIH0KIAordm9pZAorZXh0dmFjX3N0 YXRzX3N0YXJ0X2lkeChSZWxhdGlvbiByZWwsIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqc3Rh dHMsCisJCQkJCSAgIExWRXh0U3RhdENvdW50ZXJzSWR4ICpjb3VudGVycykKK3sKKwlpZigh cGdzdGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzKQorCQlyZXR1cm47CisKKwkvKiBTZXQg aW5pdGlhbCB2YWx1ZXMgZm9yIGNvbW1vbiBoZWFwIGFuZCBpbmRleCBzdGF0aXN0aWNzKi8K KwlleHR2YWNfc3RhdHNfc3RhcnQocmVsLCAmY291bnRlcnMtPmNvbW1vbik7CisJY291bnRl cnMtPnBhZ2VzX2RlbGV0ZWQgPSBjb3VudGVycy0+dHVwbGVzX3JlbW92ZWQgPSAwOworCisJ aWYgKHN0YXRzICE9IE5VTEwpCisJeworCQkvKgorCQkgKiBYWFg6IFdoeSBkbyB3ZSBuZWVk IHRoaXMgY29kZSBoZXJlPyBJZiBpdCBpcyBuZWVkZWQsIEkgZmVlbCBsYWNrIG9mCisJCSAq IGNvbW1lbnRzLCBkZXNjcmliaW5nIHRoZSByZWFzb24uCisJCSAqLworCQljb3VudGVycy0+ dHVwbGVzX3JlbW92ZWQgPSBzdGF0cy0+dHVwbGVzX3JlbW92ZWQ7CisJCWNvdW50ZXJzLT5w YWdlc19kZWxldGVkID0gc3RhdHMtPnBhZ2VzX2RlbGV0ZWQ7CisJfQorfQorCit2b2lkCitl eHR2YWNfc3RhdHNfZW5kX2lkeChSZWxhdGlvbiByZWwsIEluZGV4QnVsa0RlbGV0ZVJlc3Vs dCAqc3RhdHMsCisJCQkJCSBMVkV4dFN0YXRDb3VudGVyc0lkeCAqY291bnRlcnMsIEV4dFZh Y1JlcG9ydCAqcmVwb3J0KQoreworCW1lbXNldChyZXBvcnQsIDAsIHNpemVvZihFeHRWYWNS ZXBvcnQpKTsKKworCWV4dHZhY19zdGF0c19lbmQocmVsLCAmY291bnRlcnMtPmNvbW1vbiwg cmVwb3J0KTsKKwlyZXBvcnQtPnR5cGUgPSBQR1NUQVRfRVhUVkFDX0lOREVYOworCisJaWYg KHN0YXRzICE9IE5VTEwpCisJeworCQkvKgorCQkgKiBpZiBzb21ldGhpbmcgZ29lcyB3cm9u ZyBvciBhbiB1c2VyIGRvZXNuJ3Qgd2FudCB0byB0cmFjayBhIGRhdGFiYXNlCisJCSAqIGFj dGl2aXR5IC0ganVzdCBzdXBwcmVzcyBpdC4KKwkJICovCisKKwkJLyogRmlsbCBpbmRleC1z cGVjaWZpYyBleHRlbmRlZCBzdGF0cyBmaWVsZHMgKi8KKwkJcmVwb3J0LT50dXBsZXNfZGVs ZXRlZCA9CisJCQkJCQkJc3RhdHMtPnR1cGxlc19yZW1vdmVkIC0gY291bnRlcnMtPnR1cGxl c19yZW1vdmVkOworCQlyZXBvcnQtPmluZGV4LnBhZ2VzX2RlbGV0ZWQgPQorCQkJCQkJCXN0 YXRzLT5wYWdlc19kZWxldGVkIC0gY291bnRlcnMtPnBhZ2VzX2RlbGV0ZWQ7CisJfQorfQor CisvKiBBY2N1bXVsYXRlIHZhY3V1bSBzdGF0aXN0aWNzIGZvciBoZWFwLgorICoKKyAgKiBC ZWNhdXNlIG9mIGNvbXBsZXhpdHkgb2YgdmFjdXVtIHByb2Nlc3Npbmc6IGl0IHN3aXRjaCBw cm9jZXNpbmcgYmV0d2VlbgorICAqIHRoZSBoZWFwIHJlbGF0aW9uIHRvIGluZGV4IHJlbGF0 aW9ucyBhbmQgdmlzYSB2ZXJzYSwgd2UgbmVlZCB0byBzdG9yZQorICAqIGdhdGhlcmVkIHN0 YXRpc3RpY3MgaW5mb3JtYXRpb24gZm9yIGhlYXAgcmVsYXRpb25zIHNldmVyYWwgdGltZXMg YmVmb3JlCisgICogdGhlIHZhY3V1bSBzdGFydHMgcHJvY2Vzc2luZyB0aGUgaW5kZXhlcyBh Z2Fpbi4KKyAgKgorICAqIEl0IGlzIG5lY2Vzc2FyeSB0byBnYXRoZXIgY29ycmVjdCBzdGF0 aXN0aWNzIGluZm9ybWF0aW9uIGZvciBoZWFwIGFuZCBpbmRleGVzCisgICogb3RoZXJ3aWNl IHRoZSBpbmRleCBzdGF0aXN0aWNzIGluZm9ybWF0aW9uIHdvdWxkIGJlIGFkZGVkIHRvIGhp cyBwYXJlbnQgaGVhcAorICAqIHN0YXRpc3RpY3MgaW5mb3JtYXRpb24gYW5kIGl0IHdvdWxk IGJlIGRpZmZpY3VsdCB0byBhbmFseXplIGl0IGxhdGVyLgorICAqCisgICogV2UgY2FuJ3Qg c3VidHJhY3QgdW5pb24gdmFjdXVtIHN0YXRpc3RpY3MgaW5mb3JtYXRpb24gZm9yIGluZGV4 IGZyb20gdGhlIGhlYXAgcmVsYXRpb25zCisgICogYmVjYXVzZSBvZiB0b3RhbCBhbmQgZGVs YXkgdGltZSB0aW1lIHN0YXRpc3RpY3MgY29sbGVjdGluZyBkdXJpbmcgcGFyYWxsZWwgdmFj dXVtCisgICogcHJvY3VkdXJlLgorKi8KK3N0YXRpYyB2b2lkCithY2N1bXVsYXRlX2hlYXBf dmFjdXVtX3N0YXRpc3RpY3MoTFZFeHRTdGF0Q291bnRlcnMgKmV4dFZhY0NvdW50ZXJzLCBM VlJlbFN0YXRlICp2YWNyZWwpCit7CisJaWYgKCFwZ3N0YXRfdHJhY2tfdmFjdXVtX3N0YXRp c3RpY3MpCisJCXJldHVybjsKKworCS8qIEZpbGwgaGVhcC1zcGVjaWZpYyBleHRlbmRlZCBz dGF0cyBmaWVsZHMgKi8KKwl2YWNyZWwtPmV4dFZhY1JlcG9ydC50eXBlID0gUEdTVEFUX0VY VFZBQ19UQUJMRTsKKwl2YWNyZWwtPmV4dFZhY1JlcG9ydC50YWJsZS5wYWdlc19zY2FubmVk ICs9IHZhY3JlbC0+c2Nhbm5lZF9wYWdlczsKKwl2YWNyZWwtPmV4dFZhY1JlcG9ydC50YWJs ZS5wYWdlc19yZW1vdmVkICs9IHZhY3JlbC0+cmVtb3ZlZF9wYWdlczsKKwl2YWNyZWwtPmV4 dFZhY1JlcG9ydC50YWJsZS52bV9uZXdfZnJvemVuX3BhZ2VzICs9IHZhY3JlbC0+dm1fbmV3 X2Zyb3plbl9wYWdlczsKKwl2YWNyZWwtPmV4dFZhY1JlcG9ydC50YWJsZS52bV9uZXdfdmlz aWJsZV9wYWdlcyArPSB2YWNyZWwtPnZtX25ld192aXNpYmxlX3BhZ2VzOworCXZhY3JlbC0+ ZXh0VmFjUmVwb3J0LnRhYmxlLnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyArPSB2YWNy ZWwtPnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlczsKKwl2YWNyZWwtPmV4dFZhY1JlcG9y dC50dXBsZXNfZGVsZXRlZCArPSB2YWNyZWwtPnR1cGxlc19kZWxldGVkOworCXZhY3JlbC0+ ZXh0VmFjUmVwb3J0LnRhYmxlLnR1cGxlc19mcm96ZW4gKz0gdmFjcmVsLT50dXBsZXNfZnJv emVuOworCXZhY3JlbC0+ZXh0VmFjUmVwb3J0LnRhYmxlLnJlY2VudGx5X2RlYWRfdHVwbGVz ICs9IHZhY3JlbC0+cmVjZW50bHlfZGVhZF90dXBsZXM7CisJdmFjcmVsLT5leHRWYWNSZXBv cnQudGFibGUucmVjZW50bHlfZGVhZF90dXBsZXMgKz0gdmFjcmVsLT5yZWNlbnRseV9kZWFk X3R1cGxlczsKKwl2YWNyZWwtPmV4dFZhY1JlcG9ydC50YWJsZS5taXNzZWRfZGVhZF90dXBs ZXMgKz0gdmFjcmVsLT5taXNzZWRfZGVhZF90dXBsZXM7CisJdmFjcmVsLT5leHRWYWNSZXBv cnQudGFibGUubWlzc2VkX2RlYWRfcGFnZXMgKz0gdmFjcmVsLT5taXNzZWRfZGVhZF9wYWdl czsKKwl2YWNyZWwtPmV4dFZhY1JlcG9ydC50YWJsZS5pbmRleF92YWN1dW1fY291bnQgKz0g dmFjcmVsLT5udW1faW5kZXhfc2NhbnM7CisJdmFjcmVsLT5leHRWYWNSZXBvcnQudGFibGUu d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudCArPSB2YWNyZWwtPndyYXBhcm91bmRfZmFpbHNh ZmVfY291bnQ7Cit9CisKIAogLyoKICAqIEhlbHBlciB0byBzZXQgdXAgdGhlIGVhZ2VyIHNj YW5uaW5nIHN0YXRlIGZvciB2YWN1dW1pbmcgYSBzaW5nbGUgcmVsYXRpb24uCkBAIC03NDgs MTMgKzgyMCw3IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIFZhY3V1bVBhcmFt cyAqcGFyYW1zLAogCUJ1ZmZlclVzYWdlIHN0YXJ0YnVmZmVydXNhZ2UgPSBwZ0J1ZmZlclVz YWdlOwogCUVycm9yQ29udGV4dENhbGxiYWNrIGVycmNhbGxiYWNrOwogCUxWRXh0U3RhdENv dW50ZXJzIGV4dFZhY0NvdW50ZXJzOwotCUV4dFZhY1JlcG9ydCBleHRWYWNSZXBvcnQ7CiAJ Y2hhcgkgICoqaW5kbmFtZXMgPSBOVUxMOwotCUV4dFZhY1JlcG9ydCBhbGx6ZXJvOwotCi0J LyogSW5pdGlhbGl6ZSB2YWN1dW0gc3RhdGlzdGljcyAqLwotCW1lbXNldCgmYWxsemVybywg MCwgc2l6ZW9mKEV4dFZhY1JlcG9ydCkpOwotCWV4dFZhY1JlcG9ydCA9IGFsbHplcm87CiAK IAl2ZXJib3NlID0gKHBhcmFtcy0+b3B0aW9ucyAmIFZBQ09QVF9WRVJCT1NFKSAhPSAwOwog CWluc3RydW1lbnQgPSAodmVyYm9zZSB8fCAoQW1BdXRvVmFjdXVtV29ya2VyUHJvY2Vzcygp ICYmCkBAIC03NzQsNyArODQwLDYgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwg VmFjdXVtUGFyYW1zICpwYXJhbXMsCiAKIAlwZ3N0YXRfcHJvZ3Jlc3Nfc3RhcnRfY29tbWFu ZChQUk9HUkVTU19DT01NQU5EX1ZBQ1VVTSwKIAkJCQkJCQkJICBSZWxhdGlvbkdldFJlbGlk KHJlbCkpOwotCWV4dHZhY19zdGF0c19zdGFydChyZWwsICZleHRWYWNDb3VudGVycyk7CiAJ LyoKIAkgKiBTZXR1cCBlcnJvciB0cmFjZWJhY2sgc3VwcG9ydCBmb3IgZXJlcG9ydCgpIGZp cnN0LiAgVGhlIGlkZWEgaXMgdG8gc2V0CiAJICogdXAgYW4gZXJyb3IgY29udGV4dCBjYWxs YmFjayB0byBkaXNwbGF5IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb24gYW55CkBAIC05NjEs NiArMTAyNiw4IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIFZhY3V1bVBhcmFt cyAqcGFyYW1zLAogCSAqLwogCWxhenlfc2Nhbl9oZWFwKHZhY3JlbCk7CiAKKwlleHR2YWNf c3RhdHNfc3RhcnQocmVsLCAmZXh0VmFjQ291bnRlcnMpOworCiAJLyoKIAkgKiBGcmVlIHJl c291cmNlcyBtYW5hZ2VkIGJ5IGRlYWRfaXRlbXNfYWxsb2MuICBUaGlzIGVuZHMgcGFyYWxs ZWwgbW9kZSBpbgogCSAqIHBhc3Npbmcgd2hlbiBuZWNlc3NhcnkuCkBAIC0xMDQ4LDI2ICsx MTE1LDYgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgVmFjdXVtUGFyYW1zICpw YXJhbXMsCiAJCQkJCQl2YWNyZWwtPk5ld1JlbGZyb3plblhpZCwgdmFjcmVsLT5OZXdSZWxt aW5NeGlkLAogCQkJCQkJJmZyb3plbnhpZF91cGRhdGVkLCAmbWlubXVsdGlfdXBkYXRlZCwg ZmFsc2UpOwogCi0JLyogTWFrZSBnZW5lcmljIGV4dGVuZGVkIHZhY3V1bSBzdGF0cyByZXBv cnQgKi8KLQlleHR2YWNfc3RhdHNfZW5kKHJlbCwgJmV4dFZhY0NvdW50ZXJzLCAmZXh0VmFj UmVwb3J0KTsKLQotCWlmKHBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljcykKLQl7Ci0J CS8qIEZpbGwgaGVhcC1zcGVjaWZpYyBleHRlbmRlZCBzdGF0cyBmaWVsZHMgKi8KLQkJZXh0 VmFjUmVwb3J0LnBhZ2VzX3NjYW5uZWQgPSB2YWNyZWwtPnNjYW5uZWRfcGFnZXM7Ci0JCWV4 dFZhY1JlcG9ydC5wYWdlc19yZW1vdmVkID0gdmFjcmVsLT5yZW1vdmVkX3BhZ2VzOwotCQll eHRWYWNSZXBvcnQudm1fbmV3X2Zyb3plbl9wYWdlcyA9IHZhY3JlbC0+dm1fbmV3X2Zyb3pl bl9wYWdlczsKLQkJZXh0VmFjUmVwb3J0LnZtX25ld192aXNpYmxlX3BhZ2VzID0gdmFjcmVs LT52bV9uZXdfdmlzaWJsZV9wYWdlczsKLQkJZXh0VmFjUmVwb3J0LnZtX25ld192aXNpYmxl X2Zyb3plbl9wYWdlcyA9IHZhY3JlbC0+dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzOwot CQlleHRWYWNSZXBvcnQudHVwbGVzX2RlbGV0ZWQgPSB2YWNyZWwtPnR1cGxlc19kZWxldGVk OwotCQlleHRWYWNSZXBvcnQudHVwbGVzX2Zyb3plbiA9IHZhY3JlbC0+dHVwbGVzX2Zyb3pl bjsKLQkJZXh0VmFjUmVwb3J0LnJlY2VudGx5X2RlYWRfdHVwbGVzID0gdmFjcmVsLT5yZWNl bnRseV9kZWFkX3R1cGxlczsKLQkJZXh0VmFjUmVwb3J0Lm1pc3NlZF9kZWFkX3R1cGxlcyA9 IHZhY3JlbC0+bWlzc2VkX2RlYWRfdHVwbGVzOwotCQlleHRWYWNSZXBvcnQubWlzc2VkX2Rl YWRfcGFnZXMgPSB2YWNyZWwtPm1pc3NlZF9kZWFkX3BhZ2VzOwotCQlleHRWYWNSZXBvcnQu aW5kZXhfdmFjdXVtX2NvdW50ID0gdmFjcmVsLT5udW1faW5kZXhfc2NhbnM7Ci0JCWV4dFZh Y1JlcG9ydC53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50ID0gdmFjcmVsLT53cmFwYXJvdW5k X2ZhaWxzYWZlX2NvdW50OwotCX0KLQogCS8qCiAJICogUmVwb3J0IHJlc3VsdHMgdG8gdGhl IGN1bXVsYXRpdmUgc3RhdHMgc3lzdGVtLCB0b28uCiAJICoKQEAgLTEwNzcsMTQgKzExMjQs MzcgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgVmFjdXVtUGFyYW1zICpwYXJh bXMsCiAJICogSXQgc2VlbXMgbGlrZSBhIGdvb2QgaWRlYSB0byBlcnIgb24gdGhlIHNpZGUg b2Ygbm90IHZhY3V1bWluZyBhZ2FpbiB0b28KIAkgKiBzb29uIGluIGNhc2VzIHdoZXJlIHRo ZSBmYWlsc2FmZSBwcmV2ZW50ZWQgc2lnbmlmaWNhbnQgYW1vdW50cyBvZiBoZWFwCiAJICog dmFjdXVtaW5nLgorCSAqCisJICogV2UgYXJlIHJlYWR5IHRvIHNlbmQgdmFjdXVtIHN0YXRp c3RpY3MgaW5mb3JtYXRpb24gZm9yIGhlYXAgcmVsYXRpb25zLgogCSAqLwotCXBnc3RhdF9y ZXBvcnRfdmFjdXVtKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwKKwlpZihwZ3N0YXRfdHJhY2tf dmFjdXVtX3N0YXRpc3RpY3MpCisJeworCQkvKiBNYWtlIGdlbmVyaWMgZXh0ZW5kZWQgdmFj dXVtIHN0YXRzIHJlcG9ydCBhbmQKKwkJICogZmlsbCBoZWFwLXNwZWNpZmljIGV4dGVuZGVk IHN0YXRzIGZpZWxkcy4KKwkJICovCisJCWV4dHZhY19zdGF0c19lbmQodmFjcmVsLT5yZWws ICZleHRWYWNDb3VudGVycywgJih2YWNyZWwtPmV4dFZhY1JlcG9ydCkpOworCQlhY2N1bXVs YXRlX2hlYXBfdmFjdXVtX3N0YXRpc3RpY3MoJmV4dFZhY0NvdW50ZXJzLCB2YWNyZWwpOwor CisJCXBnc3RhdF9yZXBvcnRfdmFjdXVtKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwKIAkJCQkJ CSByZWwtPnJkX3JlbC0+cmVsaXNzaGFyZWQsCiAJCQkJCQkgTWF4KHZhY3JlbC0+bmV3X2xp dmVfdHVwbGVzLCAwKSwKIAkJCQkJCSB2YWNyZWwtPnJlY2VudGx5X2RlYWRfdHVwbGVzICsK LQkJCQkJCSB2YWNyZWwtPm1pc3NlZF9kZWFkX3R1cGxlcywKKyAJCQkJCQkgdmFjcmVsLT5t aXNzZWRfZGVhZF90dXBsZXMsCiAJCQkJCQkgc3RhcnR0aW1lLAotCQkJCQkJICZleHRWYWNS ZXBvcnQpOworCQkJCQkJICYodmFjcmVsLT5leHRWYWNSZXBvcnQpKTsKKworCX0KKwllbHNl CisJeworCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1bShSZWxhdGlvbkdldFJlbGlkKHJlbCksCisJ CQkJCQkJIHJlbC0+cmRfcmVsLT5yZWxpc3NoYXJlZCwKKwkJCQkJCQkgTWF4KHZhY3JlbC0+ bmV3X2xpdmVfdHVwbGVzLCAwKSwKKwkJCQkJCQkgdmFjcmVsLT5yZWNlbnRseV9kZWFkX3R1 cGxlcyArCisJCQkJCQkJIHZhY3JlbC0+bWlzc2VkX2RlYWRfdHVwbGVzLAorCQkJCQkJCSBz dGFydHRpbWUsCisJCQkJCQkJIE5VTEwpOworCX0KKwogCXBnc3RhdF9wcm9ncmVzc19lbmRf Y29tbWFuZCgpOwogCiAJaWYgKGluc3RydW1lbnQpCkBAIC0xMzU2LDYgKzE0MjYsNyBAQCBs YXp5X3NjYW5faGVhcChMVlJlbFN0YXRlICp2YWNyZWwpCiAJCVBST0dSRVNTX1ZBQ1VVTV9N QVhfREVBRF9UVVBMRV9CWVRFUwogCX07CiAJaW50NjQJCWluaXRwcm9nX3ZhbFszXTsKKwlM VkV4dFN0YXRDb3VudGVycyBleHRWYWNDb3VudGVyczsKIAogCS8qIFJlcG9ydCB0aGF0IHdl J3JlIHNjYW5uaW5nIHRoZSBoZWFwLCBhZHZlcnRpc2luZyB0b3RhbCAjIG9mIGJsb2NrcyAq LwogCWluaXRwcm9nX3ZhbFswXSA9IFBST0dSRVNTX1ZBQ1VVTV9QSEFTRV9TQ0FOX0hFQVA7 CkBAIC0xMzcwLDYgKzE0NDEsMTMgQEAgbGF6eV9zY2FuX2hlYXAoTFZSZWxTdGF0ZSAqdmFj cmVsKQogCXZhY3JlbC0+bmV4dF91bnNraXBwYWJsZV9lYWdlcl9zY2FubmVkID0gZmFsc2U7 CiAJdmFjcmVsLT5uZXh0X3Vuc2tpcHBhYmxlX3ZtYnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsK IAorCS8qCisJICogRHVlIHRvIHRoZSBmYWN0IHRoYXQgdmFjdXVtIGhlYXAgcHJvY2Vzc2lu ZyBuZWVkcyB0aGVpciBpbmRleCB2YWN1dW1pbmcKKwkgKiB3ZSBuZWVkIHRvIHRyYWNrIHRo ZW0gc2VwYXJhdGVseSBhbmQgYWNjdW11bGF0ZSBoZWFwIHZhY3V1bSBzdGF0aXN0aWNzCisJ ICogc2VwYXJhdGVseS4gU28gbGFzdCBwcm9jZXNzZXMgYXJlIHJlbGF0ZWQgdG8gb25seSBo ZWFwIHZhY3V1bWluZyBwcm9jZXNzLgorCSAqLworCWV4dHZhY19zdGF0c19zdGFydCh2YWNy ZWwtPnJlbCwgJmV4dFZhY0NvdW50ZXJzKTsKKwogCS8qCiAJICogU2V0IHVwIHRoZSByZWFk IHN0cmVhbSBmb3IgdmFjdXVtJ3MgZmlyc3QgcGFzcyB0aHJvdWdoIHRoZSBoZWFwLgogCSAq CkBAIC0xNDM0LDggKzE1MTIsMjYgQEAgbGF6eV9zY2FuX2hlYXAoTFZSZWxTdGF0ZSAqdmFj cmVsKQogCiAJCQkvKiBQZXJmb3JtIGEgcm91bmQgb2YgaW5kZXggYW5kIGhlYXAgdmFjdXVt aW5nICovCiAJCQl2YWNyZWwtPmNvbnNpZGVyX2J5cGFzc19vcHRpbWl6YXRpb24gPSBmYWxz ZTsKKworCQkJLyoKKwkJCSAqIExhenkgdmFjdXVtIHN0YWdlIGluY2x1ZGVzIGluZGV4IHZh Y3V1bWluZyBhbmQgY2xlYW5pbmcgdXAgc3RhZ2UsIHNvCisJCQkgKiB3ZSBwcmVmZXIgdHJh Y2tpbmcgdGhlbSBzZXBhcmF0ZWx5LgorCQkJICogQmVmb3JlIHN0YXJ0aW5nIHRvIHByb2Nl c3MgdGhlIGluZGV4ZXMgc2F2ZSB0aGUgY3VycmVudCBoZWFwIHN0YXRpc3RpY3MKKwkJCSov CisJCQlleHR2YWNfc3RhdHNfZW5kKHZhY3JlbC0+cmVsLCAmZXh0VmFjQ291bnRlcnMsICYo dmFjcmVsLT5leHRWYWNSZXBvcnQpKTsKKwkJCWFjY3VtdWxhdGVfaGVhcF92YWN1dW1fc3Rh dGlzdGljcygmZXh0VmFjQ291bnRlcnMsIHZhY3JlbCk7CisKIAkJCWxhenlfdmFjdXVtKHZh Y3JlbCk7CiAKKwkJCS8qCisJCQkgKiBBZnRlciBjb21wbGV0aW9uIGxhenkgdmFjdXVtLCB3 ZSBzdGFydCBhZ2FpbiB0cmFja2luZyB2YWN1dW0gc3RhdGlzdGljcyBmb3IKKwkJCSAqIGhl YXAtcmVsYXRlZCBvYmplY3RzIGxpa2UgRlNNLCBWTSwgcHJvdmlkZSBoZWFwIHBydW5uaW5n LgorCQkJICogSXQgc2VlbXMgZGFuZ2Vyb3VzbHkgdGhhdCB3ZSBoYXZlIHN0YXJ0IHRyYWNr aW5nIGJ1dCB0aGVyZSBhcmUgbm8gZW5kLCBidXQKKwkJCSAqIGl0IGlzIHNhZmUuIFRoZSBl bmQgdHJhY2tpbmcgaXMgbG9jYXRlZCBiZWZvcmUgbGF6eSB2YWN1dW0gc3RhZ2UgaW4gdGhl IHNhbWUKKwkJCSAqIGxvb3Agb3IgYWZ0ZXIgaXQuCisgCQkJKi8KKwkJCWV4dHZhY19zdGF0 c19zdGFydCh2YWNyZWwtPnJlbCwgJmV4dFZhY0NvdW50ZXJzKTsKKwogCQkJLyoKIAkJCSAq IFZhY3V1bSB0aGUgRnJlZSBTcGFjZSBNYXAgdG8gbWFrZSBuZXdseS1mcmVlZCBzcGFjZSB2 aXNpYmxlIG9uCiAJCQkgKiB1cHBlci1sZXZlbCBGU00gcGFnZXMuIE5vdGUgdGhhdCBibGtu byBpcyB0aGUgcHJldmlvdXNseQpAQCAtMTY1OCw2ICsxNzU0LDEyIEBAIGxhenlfc2Nhbl9o ZWFwKExWUmVsU3RhdGUgKnZhY3JlbCkKIAogCXJlYWRfc3RyZWFtX2VuZChzdHJlYW0pOwog CisJLyoKKwkgKiBWYWN1dW0gY2FuIHByb2Nlc3MgbGF6eSB2YWN1dW0gYWdhaW4gYW5kIHdl IHNhdmUgaGVhcCBzdGF0aXN0aWNzIG5vdworCSAqIGp1c3QgaW4gY2FzZSBpbiB0ZW5kIHRv IGF2b2lkIGNvbGxlY3RpbmcgdmFjdXVtIGluZGV4IHN0YXRpc3RpY3MgYWdhaW4uCisJICov CisJZXh0dmFjX3N0YXRzX2VuZCh2YWNyZWwtPnJlbCwgJmV4dFZhY0NvdW50ZXJzLCAmKHZh Y3JlbC0+ZXh0VmFjUmVwb3J0KSk7CisJYWNjdW11bGF0ZV9oZWFwX3ZhY3V1bV9zdGF0aXN0 aWNzKCZleHRWYWNDb3VudGVycywgdmFjcmVsKTsKIAkvKgogCSAqIERvIGluZGV4IHZhY3V1 bWluZyAoY2FsbCBlYWNoIGluZGV4J3MgYW1idWxrZGVsZXRlIHJvdXRpbmUpLCB0aGVuIGRv CiAJICogcmVsYXRlZCBoZWFwIHZhY3V1bWluZwpAQCAtMTY2NSw2ICsxNzY3LDEyIEBAIGxh enlfc2Nhbl9oZWFwKExWUmVsU3RhdGUgKnZhY3JlbCkKIAlpZiAodmFjcmVsLT5kZWFkX2l0 ZW1zX2luZm8tPm51bV9pdGVtcyA+IDApCiAJCWxhenlfdmFjdXVtKHZhY3JlbCk7CiAKKwkv KgorCSAqIFdlIG5lZWQgdG8gdGFrZSBpbnRvIGFjY291bnQgaGVhcCB2YWN1dW0gc3RhdGlz dGljcyBkdXJpbmcgcHJvY2VzcyBvZgorCSAqIEZTTS4KKyAJICovCisJZXh0dmFjX3N0YXRz X3N0YXJ0KHZhY3JlbC0+cmVsLCAmZXh0VmFjQ291bnRlcnMpOworCiAJLyoKIAkgKiBWYWN1 dW0gdGhlIHJlbWFpbmRlciBvZiB0aGUgRnJlZSBTcGFjZSBNYXAuICBXZSBtdXN0IGRvIHRo aXMgd2hldGhlciBvcgogCSAqIG5vdCB0aGVyZSB3ZXJlIGluZGV4ZXMsIGFuZCB3aGV0aGVy IG9yIG5vdCB3ZSBieXBhc3NlZCBpbmRleCB2YWN1dW1pbmcuCkBAIC0xNjc3LDYgKzE3ODUs MTAgQEAgbGF6eV9zY2FuX2hlYXAoTFZSZWxTdGF0ZSAqdmFjcmVsKQogCS8qIHJlcG9ydCBh bGwgYmxvY2tzIHZhY3V1bWVkICovCiAJcGdzdGF0X3Byb2dyZXNzX3VwZGF0ZV9wYXJhbShQ Uk9HUkVTU19WQUNVVU1fSEVBUF9CTEtTX1ZBQ1VVTUVELCByZWxfcGFnZXMpOwogCisJLyog QmVmb3JlIHN0YXJ0aW5nIGZpbmFsIGluZGV4IGNsYW4gdXAgc3RhZ2Ugc2F2ZSBoZWFwIHN0 YXRpc3RpY3MgKi8KKwlleHR2YWNfc3RhdHNfZW5kKHZhY3JlbC0+cmVsLCAmZXh0VmFjQ291 bnRlcnMsICYodmFjcmVsLT5leHRWYWNSZXBvcnQpKTsKKwlhY2N1bXVsYXRlX2hlYXBfdmFj dXVtX3N0YXRpc3RpY3MoJmV4dFZhY0NvdW50ZXJzLCB2YWNyZWwpOworCiAJLyogRG8gZmlu YWwgaW5kZXggY2xlYW51cCAoY2FsbCBlYWNoIGluZGV4J3MgYW12YWN1dW1jbGVhbnVwIHJv dXRpbmUpICovCiAJaWYgKHZhY3JlbC0+bmluZGV4ZXMgPiAwICYmIHZhY3JlbC0+ZG9faW5k ZXhfY2xlYW51cCkKIAkJbGF6eV9jbGVhbnVwX2FsbF9pbmRleGVzKHZhY3JlbCk7CkBAIC0y NTk0LDYgKzI3MDYsNyBAQCBzdGF0aWMgdm9pZAogbGF6eV92YWN1dW0oTFZSZWxTdGF0ZSAq dmFjcmVsKQogewogCWJvb2wJCWJ5cGFzczsKKwlMVkV4dFN0YXRDb3VudGVycyBleHRWYWND b3VudGVyczsKIAogCS8qIFNob3VsZCBub3QgZW5kIHVwIGhlcmUgd2l0aCBubyBpbmRleGVz ICovCiAJQXNzZXJ0KHZhY3JlbC0+bmluZGV4ZXMgPiAwKTsKQEAgLTI2MDYsNiArMjcxOSw5 IEBAIGxhenlfdmFjdXVtKExWUmVsU3RhdGUgKnZhY3JlbCkKIAkJcmV0dXJuOwogCX0KIAor CS8qIFNldCBpbml0aWFsIHN0YXRpc3RpY3MgdmFsdWVzIHRvIGdhdGhlciB2YWN1dW0gc3Rh dGlzdGljcyBmb3IgdGhlIGhlYXAgKi8KKwlleHR2YWNfc3RhdHNfc3RhcnQodmFjcmVsLT5y ZWwsICZleHRWYWNDb3VudGVycyk7CisKIAkvKgogCSAqIENvbnNpZGVyIGJ5cGFzc2luZyBp bmRleCB2YWN1dW1pbmcgKGFuZCBoZWFwIHZhY3V1bWluZykgZW50aXJlbHkuCiAJICoKQEAg LTI2NjIsNiArMjc3OCwxNCBAQCBsYXp5X3ZhY3V1bShMVlJlbFN0YXRlICp2YWNyZWwpCiAJ CQkJICBUaWRTdG9yZU1lbW9yeVVzYWdlKHZhY3JlbC0+ZGVhZF9pdGVtcykgPCAzMiAqIDEw MjQgKiAxMDI0KTsKIAl9CiAKKwkvKgorCSAqIFZhY3V1bSBpcyBsaWtlbHkgdG8gdmFjdXVt IGluZGV4ZXMgYWdhaW4sIHNvIHNhdmUgdmFjdXVtIHN0YXRpc3RpY3MgZm9yCisJICogaGVh cCByZWxhdGlvbnMgbm93LgorCSAqIFRoZSB2YWN1dW0gcHJvY2VzcyBiZWxvdyBkb2Vzbid0 IGNvbnRhaW4gYW55IHVzZWZ1bCBzdGF0aXN0aWNzIGluZm9ybWF0aW9uCisJICogZm9yIGhl YXAgaWYgaW5kZXhlcyB3b24ndCBiZSBwcm9jZXNzZWQsIGJ1dCB3ZSB3aWxsIHRyYWNrIHRo ZW0gc2VwYXJhdGVseS4KKwkgKi8KKwlleHR2YWNfc3RhdHNfZW5kKHZhY3JlbC0+cmVsLCAm ZXh0VmFjQ291bnRlcnMsICYodmFjcmVsLT5leHRWYWNSZXBvcnQpKTsKKwogCWlmIChieXBh c3MpCiAJewogCQkvKgpAQCAtMjY3OCwxMSArMjgwMiwyMSBAQCBsYXp5X3ZhY3V1bShMVlJl bFN0YXRlICp2YWNyZWwpCiAJfQogCWVsc2UgaWYgKGxhenlfdmFjdXVtX2FsbF9pbmRleGVz KHZhY3JlbCkpCiAJewotCQkvKgotCQkgKiBXZSBzdWNjZXNzZnVsbHkgY29tcGxldGVkIGEg cm91bmQgb2YgaW5kZXggdmFjdXVtaW5nLiAgRG8gcmVsYXRlZAotCQkgKiBoZWFwIHZhY3V1 bWluZyBub3cuCi0JCSAqLwotCQlsYXp5X3ZhY3V1bV9oZWFwX3JlbCh2YWNyZWwpOworCQkv KiBOb3cgdGhlIHZhY3V1bSBpcyBnb2luZyB0byBwcm9jZXNzIGhlYXAgcmVsYXRpb24sIHNv CisJCSAqIHdlIG5lZWQgdG8gc2V0IGludGlhbCBzdGF0aXN0aWMgdmFsdWVzIGZvciB0cmFj a2luZy4KKwkJKi8KKworCQkvKiBTZXQgaW5pdGlhbCBzdGF0aXN0aWNzIHZhbHVlcyB0byBn YXRoZXIgdmFjdXVtIHN0YXRpc3RpY3MgZm9yIHRoZSBoZWFwICovCisJCWV4dHZhY19zdGF0 c19zdGFydCh2YWNyZWwtPnJlbCwgJmV4dFZhY0NvdW50ZXJzKTsKKworIAkJLyoKKyAJCSAq IFdlIHN1Y2Nlc3NmdWxseSBjb21wbGV0ZWQgYSByb3VuZCBvZiBpbmRleCB2YWN1dW1pbmcu ICBEbyByZWxhdGVkCisgCQkgKiBoZWFwIHZhY3V1bWluZyBub3cuCisgCQkgKi8KKyAJCWxh enlfdmFjdXVtX2hlYXBfcmVsKHZhY3JlbCk7CisKKwkJZXh0dmFjX3N0YXRzX2VuZCh2YWNy ZWwtPnJlbCwgJmV4dFZhY0NvdW50ZXJzLCAmKHZhY3JlbC0+ZXh0VmFjUmVwb3J0KSk7CisJ CWFjY3VtdWxhdGVfaGVhcF92YWN1dW1fc3RhdGlzdGljcygmZXh0VmFjQ291bnRlcnMsIHZh Y3JlbCk7CiAJfQogCWVsc2UKIAl7CkBAIC0zMjI5LDYgKzMzNjMsMTEgQEAgbGF6eV92YWN1 dW1fb25lX2luZGV4KFJlbGF0aW9uIGluZHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICpp c3RhdCwKIHsKIAlJbmRleFZhY3V1bUluZm8gaXZpbmZvOwogCUxWU2F2ZWRFcnJJbmZvIHNh dmVkX2Vycl9pbmZvOworCUxWRXh0U3RhdENvdW50ZXJzSWR4IGV4dFZhY0NvdW50ZXJzOwor CUV4dFZhY1JlcG9ydCBleHRWYWNSZXBvcnQ7CisKKwkvKiBTZXQgaW5pdGlhbCBzdGF0aXN0 aWNzIHZhbHVlcyB0byBnYXRoZXIgdmFjdXVtIHN0YXRpc3RpY3MgZm9yIHRoZSBpbmRleCAq LworCWV4dHZhY19zdGF0c19zdGFydF9pZHgoaW5kcmVsLCBpc3RhdCwgJmV4dFZhY0NvdW50 ZXJzKTsKIAogCWl2aW5mby5pbmRleCA9IGluZHJlbDsKIAlpdmluZm8uaGVhcHJlbCA9IHZh Y3JlbC0+cmVsOwpAQCAtMzI0Nyw2ICszMzg2LDcgQEAgbGF6eV92YWN1dW1fb25lX2luZGV4 KFJlbGF0aW9uIGluZHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICppc3RhdCwKIAkgKi8K IAlBc3NlcnQodmFjcmVsLT5pbmRuYW1lID09IE5VTEwpOwogCXZhY3JlbC0+aW5kbmFtZSA9 IHBzdHJkdXAoUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoaW5kcmVsKSk7CisJdmFjcmVsLT5p bmRvaWQgPSBSZWxhdGlvbkdldFJlbGlkKGluZHJlbCk7CiAJdXBkYXRlX3ZhY3V1bV9lcnJv cl9pbmZvKHZhY3JlbCwgJnNhdmVkX2Vycl9pbmZvLAogCQkJCQkJCSBWQUNVVU1fRVJSQ0Jf UEhBU0VfVkFDVVVNX0lOREVYLAogCQkJCQkJCSBJbnZhbGlkQmxvY2tOdW1iZXIsIEludmFs aWRPZmZzZXROdW1iZXIpOwpAQCAtMzI1NSw2ICszMzk1LDE1IEBAIGxhenlfdmFjdXVtX29u ZV9pbmRleChSZWxhdGlvbiBpbmRyZWwsIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqaXN0YXQs CiAJaXN0YXQgPSB2YWNfYnVsa2RlbF9vbmVfaW5kZXgoJml2aW5mbywgaXN0YXQsIHZhY3Jl bC0+ZGVhZF9pdGVtcywKIAkJCQkJCQkJICB2YWNyZWwtPmRlYWRfaXRlbXNfaW5mbyk7CiAK KwlpZihwZ3N0YXRfdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MpCisJeworCQkvKiBNYWtlIGV4 dGVuZGVkIHZhY3V1bSBzdGF0cyByZXBvcnQgZm9yIGluZGV4ICovCisJCWV4dHZhY19zdGF0 c19lbmRfaWR4KGluZHJlbCwgaXN0YXQsICZleHRWYWNDb3VudGVycywgJmV4dFZhY1JlcG9y dCk7CisJCXBnc3RhdF9yZXBvcnRfdmFjdXVtKFJlbGF0aW9uR2V0UmVsaWQoaW5kcmVsKSwK KwkJCQkJCQkJaW5kcmVsLT5yZF9yZWwtPnJlbGlzc2hhcmVkLAorCQkJCQkJCQkwLCAwLCAw LCAmZXh0VmFjUmVwb3J0KTsKKwl9CisKIAkvKiBSZXZlcnQgdG8gdGhlIHByZXZpb3VzIHBo YXNlIGluZm9ybWF0aW9uIGZvciBlcnJvciB0cmFjZWJhY2sgKi8KIAlyZXN0b3JlX3ZhY3V1 bV9lcnJvcl9pbmZvKHZhY3JlbCwgJnNhdmVkX2Vycl9pbmZvKTsKIAlwZnJlZSh2YWNyZWwt PmluZG5hbWUpOwpAQCAtMzI3OSw2ICszNDI4LDExIEBAIGxhenlfY2xlYW51cF9vbmVfaW5k ZXgoUmVsYXRpb24gaW5kcmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmlzdGF0LAogewog CUluZGV4VmFjdXVtSW5mbyBpdmluZm87CiAJTFZTYXZlZEVyckluZm8gc2F2ZWRfZXJyX2lu Zm87CisJTFZFeHRTdGF0Q291bnRlcnNJZHggZXh0VmFjQ291bnRlcnM7CisJRXh0VmFjUmVw b3J0IGV4dFZhY1JlcG9ydDsKKworCS8qIFNldCBpbml0aWFsIHN0YXRpc3RpY3MgdmFsdWVz IHRvIGdhdGhlciB2YWN1dW0gc3RhdGlzdGljcyBmb3IgdGhlIGluZGV4ICovCisJZXh0dmFj X3N0YXRzX3N0YXJ0X2lkeChpbmRyZWwsIGlzdGF0LCAmZXh0VmFjQ291bnRlcnMpOwogCiAJ aXZpbmZvLmluZGV4ID0gaW5kcmVsOwogCWl2aW5mby5oZWFwcmVsID0gdmFjcmVsLT5yZWw7 CkBAIC0zMjk4LDEyICszNDUyLDIyIEBAIGxhenlfY2xlYW51cF9vbmVfaW5kZXgoUmVsYXRp b24gaW5kcmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmlzdGF0LAogCSAqLwogCUFzc2Vy dCh2YWNyZWwtPmluZG5hbWUgPT0gTlVMTCk7CiAJdmFjcmVsLT5pbmRuYW1lID0gcHN0cmR1 cChSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShpbmRyZWwpKTsKKwl2YWNyZWwtPmluZG9pZCA9 IFJlbGF0aW9uR2V0UmVsaWQoaW5kcmVsKTsKIAl1cGRhdGVfdmFjdXVtX2Vycm9yX2luZm8o dmFjcmVsLCAmc2F2ZWRfZXJyX2luZm8sCiAJCQkJCQkJIFZBQ1VVTV9FUlJDQl9QSEFTRV9J TkRFWF9DTEVBTlVQLAogCQkJCQkJCSBJbnZhbGlkQmxvY2tOdW1iZXIsIEludmFsaWRPZmZz ZXROdW1iZXIpOwogCiAJaXN0YXQgPSB2YWNfY2xlYW51cF9vbmVfaW5kZXgoJml2aW5mbywg aXN0YXQpOwogCisJaWYocGdzdGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzKQorCXsKKwkJ LyogTWFrZSBleHRlbmRlZCB2YWN1dW0gc3RhdHMgcmVwb3J0IGZvciBpbmRleCAqLworCQll eHR2YWNfc3RhdHNfZW5kX2lkeChpbmRyZWwsIGlzdGF0LCAmZXh0VmFjQ291bnRlcnMsICZl eHRWYWNSZXBvcnQpOworCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1bShSZWxhdGlvbkdldFJlbGlk KGluZHJlbCksCisJCQkJCQkJCWluZHJlbC0+cmRfcmVsLT5yZWxpc3NoYXJlZCwKKwkJCQkJ CQkJMCwgMCwgMCwgJmV4dFZhY1JlcG9ydCk7CisJfQorCiAJLyogUmV2ZXJ0IHRvIHRoZSBw cmV2aW91cyBwaGFzZSBpbmZvcm1hdGlvbiBmb3IgZXJyb3IgdHJhY2ViYWNrICovCiAJcmVz dG9yZV92YWN1dW1fZXJyb3JfaW5mbyh2YWNyZWwsICZzYXZlZF9lcnJfaW5mbyk7CiAJcGZy ZWUodmFjcmVsLT5pbmRuYW1lKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv c3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNx bAppbmRleCAwMjA1YjliYjU4Yy4uYjQxODdlNWFkNTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L3N5c3RlbV92aWV3cy5zcWwKQEAgLTE0NjIsMyArMTQ2MiwzNSBAQCBGUk9NIHBnX2NsYXNz IHJlbAogICBKT0lOIHBnX25hbWVzcGFjZSBucyBPTiBucy5vaWQgPSByZWwucmVsbmFtZXNw YWNlLAogICBMQVRFUkFMIHBnX3N0YXRfZ2V0X3ZhY3V1bV90YWJsZXMocmVsLm9pZCkgc3Rh dHMKIFdIRVJFIHJlbC5yZWxraW5kID0gJ3InOworCitDUkVBVEUgVklFVyBwZ19zdGF0X3Zh Y3V1bV9pbmRleGVzIEFTCitTRUxFQ1QKKyAgcmVsLm9pZCBhcyByZWxpZCwKKyAgbnMubnNw bmFtZSBBUyBzY2hlbWFuYW1lLAorICByZWwucmVsbmFtZSBBUyByZWxuYW1lLAorCisgIHRv dGFsX2Jsa3NfcmVhZCBBUyB0b3RhbF9ibGtzX3JlYWQsCisgIHRvdGFsX2Jsa3NfaGl0IEFT IHRvdGFsX2Jsa3NfaGl0LAorICB0b3RhbF9ibGtzX2RpcnRpZWQgQVMgdG90YWxfYmxrc19k aXJ0aWVkLAorICB0b3RhbF9ibGtzX3dyaXR0ZW4gQVMgdG90YWxfYmxrc193cml0dGVuLAor CisgIHJlbF9ibGtzX3JlYWQgQVMgcmVsX2Jsa3NfcmVhZCwKKyAgcmVsX2Jsa3NfaGl0IEFT IHJlbF9ibGtzX2hpdCwKKworICBwYWdlc19kZWxldGVkIEFTIHBhZ2VzX2RlbGV0ZWQsCisg IHR1cGxlc19kZWxldGVkIEFTIHR1cGxlc19kZWxldGVkLAorCisgIHdhbF9yZWNvcmRzIEFT IHdhbF9yZWNvcmRzLAorICB3YWxfZnBpIEFTIHdhbF9mcGksCisgIHdhbF9ieXRlcyBBUyB3 YWxfYnl0ZXMsCisKKyAgYmxrX3JlYWRfdGltZSBBUyBibGtfcmVhZF90aW1lLAorICBibGtf d3JpdGVfdGltZSBBUyBibGtfd3JpdGVfdGltZSwKKworICBkZWxheV90aW1lIEFTIGRlbGF5 X3RpbWUsCisgIHRvdGFsX3RpbWUgQVMgdG90YWxfdGltZQorRlJPTQorICBwZ19jbGFzcyBy ZWwKKyAgSk9JTiBwZ19uYW1lc3BhY2UgbnMgT04gbnMub2lkID0gcmVsLnJlbG5hbWVzcGFj ZSwKKyAgTEFURVJBTCBwZ19zdGF0X2dldF92YWN1dW1faW5kZXhlcyhyZWwub2lkKSBzdGF0 cworV0hFUkUgcmVsLnJlbGtpbmQgPSAnaSc7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKaW5kZXggNzkyNGM1MjZj YjAuLjAwMDM4OGE1NjVmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1 dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVs LmMKQEAgLTg2OCw2ICs4NjgsOCBAQCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19vbmVfaW5k ZXgoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBSZWxhdGlvbiBpbmRyZWwsCiAJSW5kZXhC dWxrRGVsZXRlUmVzdWx0ICppc3RhdCA9IE5VTEw7CiAJSW5kZXhCdWxrRGVsZXRlUmVzdWx0 ICppc3RhdF9yZXM7CiAJSW5kZXhWYWN1dW1JbmZvIGl2aW5mbzsKKwlMVkV4dFN0YXRDb3Vu dGVyc0lkeCBleHRWYWNDb3VudGVyczsKKwlFeHRWYWNSZXBvcnQgZXh0VmFjUmVwb3J0Owog CiAJLyoKIAkgKiBVcGRhdGUgdGhlIHBvaW50ZXIgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYnVs ay1kZWxldGlvbiByZXN1bHQgaWYgc29tZW9uZQpAQCAtODc2LDYgKzg3OCw5IEBAIHBhcmFs bGVsX3ZhY3V1bV9wcm9jZXNzX29uZV9pbmRleChQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMs IFJlbGF0aW9uIGluZHJlbCwKIAlpZiAoaW5kc3RhdHMtPmlzdGF0X3VwZGF0ZWQpCiAJCWlz dGF0ID0gJihpbmRzdGF0cy0+aXN0YXQpOwogCisJLyogU2V0IGluaXRpYWwgc3RhdGlzdGlj cyB2YWx1ZXMgdG8gZ2F0aGVyIHZhY3V1bSBzdGF0aXN0aWNzIGZvciB0aGUgaW5kZXggKi8K KwlleHR2YWNfc3RhdHNfc3RhcnRfaWR4KGluZHJlbCwgJihpbmRzdGF0cy0+aXN0YXQpLCAm ZXh0VmFjQ291bnRlcnMpOworCiAJaXZpbmZvLmluZGV4ID0gaW5kcmVsOwogCWl2aW5mby5o ZWFwcmVsID0gcHZzLT5oZWFwcmVsOwogCWl2aW5mby5hbmFseXplX29ubHkgPSBmYWxzZTsK QEAgLTkwNCw2ICs5MDksMTUgQEAgcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3Nfb25lX2luZGV4 KFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgUmVsYXRpb24gaW5kcmVsLAogCQkJCSBSZWxh dGlvbkdldFJlbGF0aW9uTmFtZShpbmRyZWwpKTsKIAl9CiAKKwlpZihwZ3N0YXRfdHJhY2tf dmFjdXVtX3N0YXRpc3RpY3MpCisJeworCQkvKiBNYWtlIGV4dGVuZGVkIHZhY3V1bSBzdGF0 cyByZXBvcnQgZm9yIGluZGV4ICovCisJCWV4dHZhY19zdGF0c19lbmRfaWR4KGluZHJlbCwg aXN0YXRfcmVzLCAmZXh0VmFjQ291bnRlcnMsICZleHRWYWNSZXBvcnQpOworCQlwZ3N0YXRf cmVwb3J0X3ZhY3V1bShSZWxhdGlvbkdldFJlbGlkKGluZHJlbCksCisJCQkJCQkJCWluZHJl bC0+cmRfcmVsLT5yZWxpc3NoYXJlZCwKKwkJCQkJCQkJMCwgMCwgMCwgJmV4dFZhY1JlcG9y dCk7CisJfQorCiAJLyoKIAkgKiBDb3B5IHRoZSBpbmRleCBidWxrLWRlbGV0aW9uIHJlc3Vs dCByZXR1cm5lZCBmcm9tIGFtYnVsa2RlbGV0ZSBhbmQKIAkgKiBhbXZhY3V1bWNsZWFudXAg dG8gdGhlIERTTSBzZWdtZW50IGlmIGl0J3MgdGhlIGZpcnN0IGN5Y2xlIGJlY2F1c2UgdGhl eQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMgYi9z cmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXQuYwppbmRleCAyM2NiNjJlMzZhNy4u ZjVmNzVhYTQyNjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bn c3RhdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5jCkBAIC0x MTc2LDYgKzExNzYsMTAgQEAgcGdzdGF0X2J1aWxkX3NuYXBzaG90KFBnU3RhdF9LaW5kIHN0 YXRLaW5kKQogCQlpZiAocC0+ZHJvcHBlZCkKIAkJCWNvbnRpbnVlOwogCisJCWlmIChzdGF0 S2luZCAhPSBQR1NUQVRfS0lORF9JTlZBTElEICYmIHN0YXRLaW5kICE9IHAtPmtleS5raW5k KQorCQkJLyogTG9hZCBzdGF0IG9mIHNwZWNpZmljIHR5cGUsIGlmIGRlZmluZWQgKi8KKwkJ CWNvbnRpbnVlOworCiAJCUFzc2VydChwZ19hdG9taWNfcmVhZF91MzIoJnAtPnJlZmNvdW50 KSA+IDApOwogCiAJCXN0YXRzX2RhdGEgPSBkc2FfZ2V0X2FkZHJlc3MocGdTdGF0TG9jYWwu ZHNhLCBwLT5ib2R5KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5 L3Bnc3RhdF9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0 X3JlbGF0aW9uLmMKaW5kZXggZWUwMzg1Y2Q4MDkuLjllZTAzNTA5NDkwIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYworKysgYi9z cmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYwpAQCAtMTAxNiw2 ICsxMDE2LDkgQEAgc3RhdGljIHZvaWQKIHBnc3RhdF9hY2N1bXVsYXRlX2V4dHZhY19zdGF0 cyhFeHRWYWNSZXBvcnQgKmRzdCwgRXh0VmFjUmVwb3J0ICpzcmMsCiAJCQkJCQkJICAgYm9v bCBhY2N1bXVsYXRlX3JlbHR5cGVfc3BlY2lmaWNfaW5mbykKIHsKKwlpZighcGdzdGF0X3Ry YWNrX3ZhY3V1bV9zdGF0aXN0aWNzKQorCQlyZXR1cm47CisKIAlkc3QtPnRvdGFsX2Jsa3Nf cmVhZCArPSBzcmMtPnRvdGFsX2Jsa3NfcmVhZDsKIAlkc3QtPnRvdGFsX2Jsa3NfaGl0ICs9 IHNyYy0+dG90YWxfYmxrc19oaXQ7CiAJZHN0LT50b3RhbF9ibGtzX2RpcnRpZWQgKz0gc3Jj LT50b3RhbF9ibGtzX2RpcnRpZWQ7CkBAIC0xMDMxLDIwICsxMDM0LDM1IEBAIHBnc3RhdF9h Y2N1bXVsYXRlX2V4dHZhY19zdGF0cyhFeHRWYWNSZXBvcnQgKmRzdCwgRXh0VmFjUmVwb3J0 ICpzcmMsCiAJaWYgKCFhY2N1bXVsYXRlX3JlbHR5cGVfc3BlY2lmaWNfaW5mbykKIAkJcmV0 dXJuOwogCi0JZHN0LT5ibGtzX2ZldGNoZWQgKz0gc3JjLT5ibGtzX2ZldGNoZWQ7Ci0JZHN0 LT5ibGtzX2hpdCArPSBzcmMtPmJsa3NfaGl0OwotCi0JZHN0LT5wYWdlc19zY2FubmVkICs9 IHNyYy0+cGFnZXNfc2Nhbm5lZDsKLQlkc3QtPnBhZ2VzX3JlbW92ZWQgKz0gc3JjLT5wYWdl c19yZW1vdmVkOwotCWRzdC0+dm1fbmV3X2Zyb3plbl9wYWdlcyArPSBzcmMtPnZtX25ld19m cm96ZW5fcGFnZXM7Ci0JZHN0LT52bV9uZXdfdmlzaWJsZV9wYWdlcyArPSBzcmMtPnZtX25l d192aXNpYmxlX3BhZ2VzOwotCWRzdC0+dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzICs9 IHNyYy0+dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzOwotCWRzdC0+dHVwbGVzX2RlbGV0 ZWQgKz0gc3JjLT50dXBsZXNfZGVsZXRlZDsKLQlkc3QtPnR1cGxlc19mcm96ZW4gKz0gc3Jj LT50dXBsZXNfZnJvemVuOwotCWRzdC0+cmVjZW50bHlfZGVhZF90dXBsZXMgKz0gc3JjLT5y ZWNlbnRseV9kZWFkX3R1cGxlczsKLQlkc3QtPmluZGV4X3ZhY3V1bV9jb3VudCArPSBzcmMt PmluZGV4X3ZhY3V1bV9jb3VudDsKLQlkc3QtPndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQg Kz0gc3JjLT53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50OwotCWRzdC0+bWlzc2VkX2RlYWRf cGFnZXMgKz0gc3JjLT5taXNzZWRfZGVhZF9wYWdlczsKLQlkc3QtPm1pc3NlZF9kZWFkX3R1 cGxlcyArPSBzcmMtPm1pc3NlZF9kZWFkX3R1cGxlczsKKwlpZiAoZHN0LT50eXBlID09IFBH U1RBVF9FWFRWQUNfSU5WQUxJRCkKKwkJZHN0LT50eXBlID0gc3JjLT50eXBlOworCisJQXNz ZXJ0KHNyYy0+dHlwZSA9PSBQR1NUQVRfRVhUVkFDX0lOVkFMSUQgfHwgc3JjLT50eXBlID09 IGRzdC0+dHlwZSk7CisKKwlpZiAoZHN0LT50eXBlID09IHNyYy0+dHlwZSkKKwl7CisJCWRz dC0+Ymxrc19mZXRjaGVkICs9IHNyYy0+Ymxrc19mZXRjaGVkOworCQlkc3QtPmJsa3NfaGl0 ICs9IHNyYy0+Ymxrc19oaXQ7CiAKKwkJaWYgKGRzdC0+dHlwZSA9PSBQR1NUQVRfRVhUVkFD X1RBQkxFKQorCQl7CisJCQlkc3QtPnRhYmxlLnBhZ2VzX3NjYW5uZWQgKz0gc3JjLT50YWJs ZS5wYWdlc19zY2FubmVkOworCQkJZHN0LT50YWJsZS5wYWdlc19yZW1vdmVkICs9IHNyYy0+ dGFibGUucGFnZXNfcmVtb3ZlZDsKKwkJCWRzdC0+dGFibGUudm1fbmV3X2Zyb3plbl9wYWdl cyArPSBzcmMtPnRhYmxlLnZtX25ld19mcm96ZW5fcGFnZXM7CisJCQlkc3QtPnRhYmxlLnZt X25ld192aXNpYmxlX3BhZ2VzICs9IHNyYy0+dGFibGUudm1fbmV3X3Zpc2libGVfcGFnZXM7 CisJCQlkc3QtPnRhYmxlLnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyArPSBzcmMtPnRh YmxlLnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlczsKKwkJCWRzdC0+dHVwbGVzX2RlbGV0 ZWQgKz0gc3JjLT50dXBsZXNfZGVsZXRlZDsKKwkJCWRzdC0+dGFibGUudHVwbGVzX2Zyb3pl biArPSBzcmMtPnRhYmxlLnR1cGxlc19mcm96ZW47CisJCQlkc3QtPnRhYmxlLnJlY2VudGx5 X2RlYWRfdHVwbGVzICs9IHNyYy0+dGFibGUucmVjZW50bHlfZGVhZF90dXBsZXM7CisJCQlk c3QtPnRhYmxlLmluZGV4X3ZhY3V1bV9jb3VudCArPSBzcmMtPnRhYmxlLmluZGV4X3ZhY3V1 bV9jb3VudDsKKwkJCWRzdC0+dGFibGUubWlzc2VkX2RlYWRfcGFnZXMgKz0gc3JjLT50YWJs ZS5taXNzZWRfZGVhZF9wYWdlczsKKwkJCWRzdC0+dGFibGUubWlzc2VkX2RlYWRfdHVwbGVz ICs9IHNyYy0+dGFibGUubWlzc2VkX2RlYWRfdHVwbGVzOworCQkJZHN0LT50YWJsZS53cmFw YXJvdW5kX2ZhaWxzYWZlX2NvdW50ICs9IHNyYy0+dGFibGUud3JhcGFyb3VuZF9mYWlsc2Fm ZV9jb3VudDsKKwkJfQorCQllbHNlIGlmIChkc3QtPnR5cGUgPT0gUEdTVEFUX0VYVFZBQ19J TkRFWCkKKwkJeworCQkJZHN0LT5pbmRleC5wYWdlc19kZWxldGVkICs9IHNyYy0+aW5kZXgu cGFnZXNfZGVsZXRlZDsKKwkJCWRzdC0+dHVwbGVzX2RlbGV0ZWQgKz0gc3JjLT50dXBsZXNf ZGVsZXRlZDsKKwkJfQorCX0KIH0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCmluZGV4IDQxNmYzYzUxYjBjLi4xNWZhM2Rl MDg3MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKQEAgLTIzNzIsMTgg KzIzNzIsMTkgQEAgcGdfc3RhdF9nZXRfdmFjdXVtX3RhYmxlcyhQR19GVU5DVElPTl9BUkdT KQogCQkJCQkJCQkJZXh0dmFjdXVtLT5ibGtzX2hpdCk7CiAJdmFsdWVzW2krK10gPSBJbnQ2 NEdldERhdHVtKGV4dHZhY3V1bS0+Ymxrc19oaXQpOwogCi0JdmFsdWVzW2krK10gPSBJbnQ2 NEdldERhdHVtKGV4dHZhY3V1bS0+cGFnZXNfc2Nhbm5lZCk7Ci0JdmFsdWVzW2krK10gPSBJ bnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+cGFnZXNfcmVtb3ZlZCk7Ci0JdmFsdWVzW2krK10g PSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dm1fbmV3X2Zyb3plbl9wYWdlcyk7Ci0JdmFs dWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dm1fbmV3X3Zpc2libGVfcGFn ZXMpOwotCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnZtX25ld192 aXNpYmxlX2Zyb3plbl9wYWdlcyk7Ci0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4 dHZhY3V1bS0+bWlzc2VkX2RlYWRfcGFnZXMpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXRE YXR1bShleHR2YWN1dW0tPnRhYmxlLnBhZ2VzX3NjYW5uZWQpOworCXZhbHVlc1tpKytdID0g SW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxlLnBhZ2VzX3JlbW92ZWQpOworCXZhbHVl c1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxlLnZtX25ld19mcm96ZW5f cGFnZXMpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxl LnZtX25ld192aXNpYmxlX3BhZ2VzKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0o ZXh0dmFjdXVtLT50YWJsZS52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMpOworCXZhbHVl c1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxlLm1pc3NlZF9kZWFkX3Bh Z2VzKTsKIAl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50dXBsZXNf ZGVsZXRlZCk7Ci0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dHVw bGVzX2Zyb3plbik7Ci0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+ cmVjZW50bHlfZGVhZF90dXBsZXMpOwotCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShl eHR2YWN1dW0tPm1pc3NlZF9kZWFkX3R1cGxlcyk7Ci0JdmFsdWVzW2krK10gPSBJbnQzMkdl dERhdHVtKGV4dHZhY3V1bS0+d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudCk7Ci0JdmFsdWVz W2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+aW5kZXhfdmFjdXVtX2NvdW50KTsK Kwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50YWJsZS50dXBsZXNf ZnJvemVuKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50YWJs ZS5yZWNlbnRseV9kZWFkX3R1cGxlcyk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVt KGV4dHZhY3V1bS0+dGFibGUubWlzc2VkX2RlYWRfdHVwbGVzKTsKKworCXZhbHVlc1tpKytd ID0gSW50MzJHZXREYXR1bShleHR2YWN1dW0tPnRhYmxlLndyYXBhcm91bmRfZmFpbHNhZmVf Y291bnQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxl LmluZGV4X3ZhY3V1bV9jb3VudCk7CiAKIAl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0o ZXh0dmFjdXVtLT53YWxfcmVjb3Jkcyk7CiAJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVt KGV4dHZhY3V1bS0+d2FsX2ZwaSk7CkBAIC0yNDAyLDYgKzI0MDMsMTE2IEBAIHBnX3N0YXRf Z2V0X3ZhY3V1bV90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAogCUFzc2VydChpID09IFBH X1NUQVRfR0VUX1ZBQ1VVTV9UQUJMRVNfU1RBVFNfQ09MUyk7CiAKKwkvKiBSZXR1cm5zIHRo ZSByZWNvcmQgYXMgRGF0dW0gKi8KKwlQR19SRVRVUk5fREFUVU0oSGVhcFR1cGxlR2V0RGF0 dW0oaGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVsbHMpKSk7Cit9CisKKy8q CisgKiBHZXQgdGhlIHZhY3V1bSBzdGF0aXN0aWNzIGZvciB0aGUgaGVhcCB0YWJsZXMuCisg Ki8KK0RhdHVtCitwZ19zdGF0X2dldF92YWN1dW1faW5kZXhlcyhQR19GVU5DVElPTl9BUkdT KQoreworCSNkZWZpbmUgUEdfU1RBVF9HRVRfVkFDVVVNX0lOREVYX1NUQVRTX0NPTFMJMTYK KworCU9pZAkJCQkJCXJlbGlkID0gUEdfR0VUQVJHX09JRCgwKTsKKwlQZ1N0YXRfU3RhdFRh YkVudHJ5ICAgICAqdGFiZW50cnk7CisJRXh0VmFjUmVwb3J0IAkJCSpleHR2YWN1dW07CisJ VHVwbGVEZXNjCQkJCSB0dXBkZXNjOworCURhdHVtCQkJCQkgdmFsdWVzW1BHX1NUQVRfR0VU X1ZBQ1VVTV9JTkRFWF9TVEFUU19DT0xTXSA9IHswfTsKKwlib29sCQkJCQkgbnVsbHNbUEdf U1RBVF9HRVRfVkFDVVVNX0lOREVYX1NUQVRTX0NPTFNdID0gezB9OworCWNoYXIJCQkJCSBi dWZbMjU2XTsKKwlpbnQJCQkJCQkgaSA9IDA7CisJRXh0VmFjUmVwb3J0IGFsbHplcm87CisK KwkvKiBJbml0aWFsaXNlIGF0dHJpYnV0ZXMgaW5mb3JtYXRpb24gaW4gdGhlIHR1cGxlIGRl c2NyaXB0b3IgKi8KKwl0dXBkZXNjID0gQ3JlYXRlVGVtcGxhdGVUdXBsZURlc2MoUEdfU1RB VF9HRVRfVkFDVVVNX0lOREVYX1NUQVRTX0NPTFMpOworCisJVHVwbGVEZXNjSW5pdEVudHJ5 KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJyZWxpZCIsCisJCQkJCSAgIElOVDRPSUQs IC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsr aSwgInRvdGFsXyBibGtzX3JlYWQiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVw bGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ0b3RhbF9ibGtz X2hpdCIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnko dHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInRvdGFsX2Jsa3NfZGlydGllZCIsCisJCQkJ CSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0 dHJOdW1iZXIpICsraSwgInRvdGFsX2Jsa3Nfd3JpdHRlbiIsCisJCQkJCSAgIElOVDhPSUQs IC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsr aSwgInJlbF9ibGtzX3JlYWQiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVE ZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJyZWxfYmxrc19oaXQi LAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRl c2MsIChBdHRyTnVtYmVyKSArK2ksICJwYWdlc19kZWxldGVkIiwKKwkJCQkJICAgSU5UOE9J RCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikg KytpLCAidHVwbGVzX2RlbGV0ZWQiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVw bGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ3YWxfcmVjb3Jk cyIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVw ZGVzYywgKEF0dHJOdW1iZXIpICsraSwgIndhbF9mcGkiLAorCQkJCQkgICBJTlQ4T0lELCAt MSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ks ICJ3YWxfYnl0ZXMiLAorCQkJCQkgICBOVU1FUklDT0lELCAtMSwgMCk7CisKKwlUdXBsZURl c2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImJsa19yZWFkX3RpbWUi LAorCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVw ZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImJsa193cml0ZV90aW1lIiwKKwkJCQkJICAgRkxP QVQ4T0lELCAtMSwgMCk7CisKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJO dW1iZXIpICsraSwgImRlbGF5X3RpbWUiLAorCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsK KwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInRvdGFs X3RpbWUiLAorCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsKKworCUFzc2VydChpID09IFBH X1NUQVRfR0VUX1ZBQ1VVTV9JTkRFWF9TVEFUU19DT0xTKTsKKworCUJsZXNzVHVwbGVEZXNj KHR1cGRlc2MpOworCisJdGFiZW50cnkgPSBwZ3N0YXRfZmV0Y2hfc3RhdF90YWJlbnRyeShy ZWxpZCk7CisKKwlpZiAodGFiZW50cnkgPT0gTlVMTCkKKwl7CisJCS8qIElmIHRoZSBzdWJz Y3JpcHRpb24gaXMgbm90IGZvdW5kLCBpbml0aWFsaXNlIGl0cyBzdGF0cyAqLworCQltZW1z ZXQoJmFsbHplcm8sIDAsIHNpemVvZihFeHRWYWNSZXBvcnQpKTsKKwkJZXh0dmFjdXVtID0g JmFsbHplcm87CisJfQorCWVsc2UKKwl7CisJCWV4dHZhY3V1bSA9ICYodGFiZW50cnktPnZh Y3V1bV9leHQpOworCX0KKworCWkgPSAwOworCisJdmFsdWVzW2krK10gPSBPYmplY3RJZEdl dERhdHVtKHJlbGlkKTsKKworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1 dW0tPnRvdGFsX2Jsa3NfcmVhZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4 dHZhY3V1bS0+dG90YWxfYmxrc19oaXQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1 bShleHR2YWN1dW0tPnRvdGFsX2Jsa3NfZGlydGllZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2 NEdldERhdHVtKGV4dHZhY3V1bS0+dG90YWxfYmxrc193cml0dGVuKTsKKworCXZhbHVlc1tp KytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPmJsa3NfZmV0Y2hlZCAtCisJCQkJCQkJ CQlleHR2YWN1dW0tPmJsa3NfaGl0KTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0o ZXh0dmFjdXVtLT5ibGtzX2hpdCk7CisKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0o ZXh0dmFjdXVtLT5pbmRleC5wYWdlc19kZWxldGVkKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0 R2V0RGF0dW0oZXh0dmFjdXVtLT50dXBsZXNfZGVsZXRlZCk7CisKKwl2YWx1ZXNbaSsrXSA9 IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT53YWxfcmVjb3Jkcyk7CisJdmFsdWVzW2krK10g PSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+d2FsX2ZwaSk7CisKKwkvKiBDb252ZXJ0IHRv IG51bWVyaWMsIGxpa2UgcGdfc3RhdF9zdGF0ZW1lbnRzICovCisJc25wcmludGYoYnVmLCBz aXplb2YgYnVmLCBVSU5UNjRfRk9STUFULCBleHR2YWN1dW0tPndhbF9ieXRlcyk7CisJdmFs dWVzW2krK10gPSBEaXJlY3RGdW5jdGlvbkNhbGwzKG51bWVyaWNfaW4sCisJCQkJCQkJCQkg IENTdHJpbmdHZXREYXR1bShidWYpLAorCQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKDAp LAorCQkJCQkJCQkJICBJbnQzMkdldERhdHVtKC0xKSk7CisKKwl2YWx1ZXNbaSsrXSA9IEZs b2F0OEdldERhdHVtKGV4dHZhY3V1bS0+YmxrX3JlYWRfdGltZSk7CisJdmFsdWVzW2krK10g PSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPmJsa193cml0ZV90aW1lKTsKKwl2YWx1ZXNb aSsrXSA9IEZsb2F0OEdldERhdHVtKGV4dHZhY3V1bS0+ZGVsYXlfdGltZSk7CisJdmFsdWVz W2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPnRvdGFsX3RpbWUpOworCisJQXNz ZXJ0KGkgPT0gUEdfU1RBVF9HRVRfVkFDVVVNX0lOREVYX1NUQVRTX0NPTFMpOworCiAJLyog UmV0dXJucyB0aGUgcmVjb3JkIGFzIERhdHVtICovCiAJUEdfUkVUVVJOX0RBVFVNKEhlYXBU dXBsZUdldERhdHVtKGhlYXBfZm9ybV90dXBsZSh0dXBkZXNjLCB2YWx1ZXMsIG51bGxzKSkp OwogfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9n dWNfdGFibGVzLmMKaW5kZXggMTE1ZjBjNTFjYzIuLjQyZjRjYWM1ZTBlIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpAQCAtMTUxMCw3ICsxNTEwLDcgQEAgc3RydWN0 IGNvbmZpZ19ib29sIENvbmZpZ3VyZU5hbWVzQm9vbFtdID0KIAl9LAogCXsKIAkJeyJ0cmFj a192YWN1dW1fc3RhdGlzdGljcyIsIFBHQ19TVVNFVCwgU1RBVFNfQ1VNVUxBVElWRSwKLQkJ CWdldHRleHRfbm9vcCgiQ29sbGVjdHMgdmFjdXVtIHN0YXRpc3RpY3MgZm9yIHRhYmxlIHJl bGF0aW9ucy4iKSwKKwkJCWdldHRleHRfbm9vcCgiQ29sbGVjdHMgdmFjdXVtIHN0YXRpc3Rp Y3MgZm9yIHJlbGF0aW9ucy4iKSwKIAkJCU5VTEwKIAkJfSwKIAkJJnBnc3RhdF90cmFja192 YWN1dW1fc3RhdGlzdGljcywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IGUyYWFh ZjZjZDU5Li41NThiMzEzZDBkYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0x MjU4NCw0ICsxMjU4NCwxMyBAQAogICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9yZXZfYWxs X2Zyb3plbl9wYWdlcycsIHByb3ZvbGF0aWxlID0+ICdzJywKICAgcHJvcGFyYWxsZWwgPT4g J3InLCBwcm9yZXR0eXBlID0+ICdpbnQ4JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCiAgIHBy b3NyYyA9PiAncGdfc3RhdF9nZXRfcmV2X2FsbF9mcm96ZW5fcGFnZXMnIH0sCit7IG9pZCA9 PiAnODAwNCcsCisgIGRlc2NyID0+ICdwZ19zdGF0X2dldF92YWN1dW1faW5kZXhlcyByZXR1 cm4gc3RhdHMgdmFsdWVzJywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfdmFjdXVtX2lu ZGV4ZXMnLCBwcm9yb3dzID0+IDEwMDAsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlw ZSA9PiAncmVjb3JkJyxwcm9pc3N0cmljdCA9PiAnZicsCisgIHByb3JldHNldCA9PiAndCcs CisgIHByb2FyZ3R5cGVzID0+ICdvaWQnLAorICBwcm9hbGxhcmd0eXBlcyA9PiAne29pZCxv aWQsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxu dW1lcmljLGZsb2F0OCxmbG9hdDgsZmxvYXQ4LGZsb2F0OH0nLAorICBwcm9hcmdtb2RlcyA9 PiAne2ksbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sb30nLAorICBwcm9hcmduYW1l cyA9PiAne3JlbG9pZCxyZWxpZCx0b3RhbF9ibGtzX3JlYWQsdG90YWxfYmxrc19oaXQsdG90 YWxfYmxrc19kaXJ0aWVkLHRvdGFsX2Jsa3Nfd3JpdHRlbixyZWxfYmxrc19yZWFkLHJlbF9i bGtzX2hpdCxwYWdlc19kZWxldGVkLHR1cGxlc19kZWxldGVkLHdhbF9yZWNvcmRzLHdhbF9m cGksd2FsX2J5dGVzLGJsa19yZWFkX3RpbWUsYmxrX3dyaXRlX3RpbWUsZGVsYXlfdGltZSx0 b3RhbF90aW1lfScsCisgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfdmFjdXVtX2luZGV4ZXMn IH0KIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oIGIvc3Jj L2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgKaW5kZXggNmQxYjI5OTFjZTUuLmZiMTM0ZjM0 MDJlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaAorKysgYi9z cmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1 ZGUgInN0b3JhZ2UvYnVmLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sb2NrLmgiCiAjaW5jbHVk ZSAidXRpbHMvcmVsY2FjaGUuaCIKKyNpbmNsdWRlICJwZ3N0YXQuaCIKIAogLyoKICAqIEZs YWdzIGZvciBhbXBhcmFsbGVsdmFjdXVtb3B0aW9ucyB0byBjb250cm9sIHRoZSBwYXJ0aWNp cGF0aW9uIG9mIGJ1bGtkZWxldGUKQEAgLTI5NSw2ICsyOTYsMjYgQEAgdHlwZWRlZiBzdHJ1 Y3QgVmFjRGVhZEl0ZW1zSW5mbwogCWludDY0CQludW1faXRlbXM7CQkvKiBjdXJyZW50ICMg b2YgZW50cmllcyAqLwogfSBWYWNEZWFkSXRlbXNJbmZvOwogCisvKgorICogQ291bnRlcnMg YW5kIHVzYWdlIGRhdGEgZm9yIGV4dGVuZGVkIHN0YXRzIHRyYWNraW5nLgorICovCit0eXBl ZGVmIHN0cnVjdCBMVkV4dFN0YXRDb3VudGVycworeworCVRpbWVzdGFtcFR6IHN0YXJ0dGlt ZTsKKwlXYWxVc2FnZQl3YWx1c2FnZTsKKwlCdWZmZXJVc2FnZSBidWZ1c2FnZTsKKwlkb3Vi bGUJCVZhY3V1bURlbGF5VGltZTsKKwlQZ1N0YXRfQ291bnRlciBibG9ja3NfZmV0Y2hlZDsK KwlQZ1N0YXRfQ291bnRlciBibG9ja3NfaGl0OworfSBMVkV4dFN0YXRDb3VudGVyczsKKwor dHlwZWRlZiBzdHJ1Y3QgTFZFeHRTdGF0Q291bnRlcnNJZHgKK3sKKwlMVkV4dFN0YXRDb3Vu dGVycyBjb21tb247CisJaW50NjQJCXBhZ2VzX2RlbGV0ZWQ7CisJaW50NjQJCXR1cGxlc19y ZW1vdmVkOworfSBMVkV4dFN0YXRDb3VudGVyc0lkeDsKKwogLyogR1VDIHBhcmFtZXRlcnMg Ki8KIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgZGVmYXVsdF9zdGF0aXN0aWNzX3RhcmdldDsJ LyogUEdETExJTVBPUlQgZm9yIFBvc3RHSVMgKi8KIGV4dGVybiBQR0RMTElNUE9SVCBpbnQg dmFjdXVtX2ZyZWV6ZV9taW5fYWdlOwpAQCAtNDA4LDQgKzQyOSw4IEBAIGV4dGVybiBkb3Vi bGUgYW5sX3JhbmRvbV9mcmFjdCh2b2lkKTsKIGV4dGVybiBkb3VibGUgYW5sX2luaXRfc2Vs ZWN0aW9uX3N0YXRlKGludCBuKTsKIGV4dGVybiBkb3VibGUgYW5sX2dldF9uZXh0X1MoZG91 YmxlIHQsIGludCBuLCBkb3VibGUgKnN0YXRlcHRyKTsKIAorZXh0ZXJuIHZvaWQgZXh0dmFj X3N0YXRzX3N0YXJ0X2lkeChSZWxhdGlvbiByZWwsIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAq c3RhdHMsCisJCQkJCSAgIExWRXh0U3RhdENvdW50ZXJzSWR4ICpjb3VudGVycyk7CitleHRl cm4gdm9pZCBleHR2YWNfc3RhdHNfZW5kX2lkeChSZWxhdGlvbiByZWwsIEluZGV4QnVsa0Rl bGV0ZVJlc3VsdCAqc3RhdHMsCisJCQkJCSBMVkV4dFN0YXRDb3VudGVyc0lkeCAqY291bnRl cnMsIEV4dFZhY1JlcG9ydCAqcmVwb3J0KTsKICNlbmRpZgkJCQkJCQkvKiBWQUNVVU1fSCAq LwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGdzdGF0LmggYi9zcmMvaW5jbHVkZS9wZ3N0 YXQuaAppbmRleCA2Yzg4ZDU3YWVmNy4uNGRlZjJjNjBkMWQgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL3Bnc3RhdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCkBAIC0xMTEsMTEg KzExMSwxOSBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfQmFja2VuZFN1YkVudHJ5CiAJUGdT dGF0X0NvdW50ZXIgY29uZmxpY3RfY291bnRbQ09ORkxJQ1RfTlVNX1RZUEVTXTsKIH0gUGdT dGF0X0JhY2tlbmRTdWJFbnRyeTsKIAorLyogVHlwZSBvZiBFeHRWYWNSZXBvcnQgKi8KK3R5 cGVkZWYgZW51bSBFeHRWYWNSZXBvcnRUeXBlCit7CisJUEdTVEFUX0VYVFZBQ19JTlZBTElE ID0gMCwKKwlQR1NUQVRfRVhUVkFDX1RBQkxFID0gMSwKKwlQR1NUQVRfRVhUVkFDX0lOREVY ID0gMgorfSBFeHRWYWNSZXBvcnRUeXBlOworCiAvKiAtLS0tLS0tLS0tCiAgKgogICogRXh0 VmFjUmVwb3J0CiAgKgotICogQWRkaXRpb25hbCBzdGF0aXN0aWNzIG9mIHZhY3V1bSBwcm9j ZXNzaW5nIG92ZXIgYSBoZWFwIHJlbGF0aW9uLgorICogQWRkaXRpb25hbCBzdGF0aXN0aWNz IG9mIHZhY3V1bSBwcm9jZXNzaW5nIG92ZXIgYSByZWxhdGlvbi4KICAqIHBhZ2VzX3JlbW92 ZWQgaXMgdGhlIGFtb3VudCBieSB3aGljaCB0aGUgcGh5c2ljYWxseSBzaHJhbmssCiAgKiBp ZiBhbnkgKGllIHRoZSBjaGFuZ2UgaW4gaXRzIHRvdGFsIHNpemUgb24gZGlzaykKICAqIHBh Z2VzX2RlbGV0ZWQgcmVmZXIgdG8gZnJlZSBzcGFjZSB3aXRoaW4gdGhlIGluZGV4IGZpbGUK QEAgLTE0NCwxOCArMTUyLDQ0IEBAIHR5cGVkZWYgc3RydWN0IEV4dFZhY1JlcG9ydAogCWRv dWJsZQkJZGVsYXlfdGltZTsJCS8qIGhvdyBsb25nIHZhY3V1bSBzbGVwdCBpbiB2YWN1dW0g ZGVsYXkgcG9pbnQsIGluIG1zZWMgKi8KIAlkb3VibGUJCXRvdGFsX3RpbWU7CQkvKiB0b3Rh bCB0aW1lIG9mIGEgdmFjdXVtIG9wZXJhdGlvbiwgaW4gbXNlYyAqLwogCi0JaW50NjQJCXBh Z2VzX3NjYW5uZWQ7CQkvKiBoZWFwIHBhZ2VzIGV4YW1pbmVkIChub3Qgc2tpcHBlZCBieSBW TSkgKi8KLQlpbnQ2NAkJcGFnZXNfcmVtb3ZlZDsJCS8qIGhlYXAgcGFnZXMgcmVtb3ZlZCBi eSB2YWN1dW0gInRydW5jYXRpb24iICovCi0JaW50NjQJCXZtX25ld19mcm96ZW5fcGFnZXM7 CQkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMgZnJvemVuICovCi0JaW50NjQJCXZtX25ld192 aXNpYmxlX3BhZ2VzOwkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMgYWxsLXZpc2libGUgKi8K LQlpbnQ2NAkJdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzOwkvKiBwYWdlcyBtYXJrZWQg aW4gVk0gYXMgYWxsLXZpc2libGUgYW5kIGZyb3plbiAqLwotCWludDY0CQltaXNzZWRfZGVh ZF90dXBsZXM7CQkvKiB0dXBsZXMgbm90IHBydW5lZCBieSB2YWN1dW0gZHVlIHRvIGZhaWx1 cmUgdG8gZ2V0IGEgY2xlYW51cCBsb2NrICovCi0JaW50NjQJCW1pc3NlZF9kZWFkX3BhZ2Vz OwkJLyogcGFnZXMgd2l0aCBtaXNzZWQgZGVhZCB0dXBsZXMgKi8KIAlpbnQ2NAkJdHVwbGVz X2RlbGV0ZWQ7CQkvKiB0dXBsZXMgZGVsZXRlZCBieSB2YWN1dW0gKi8KLQlpbnQ2NAkJdHVw bGVzX2Zyb3plbjsJCS8qIHR1cGxlcyBmcm96ZW4gdXAgYnkgdmFjdXVtICovCi0JaW50NjQJ CXJlY2VudGx5X2RlYWRfdHVwbGVzOwkvKiBkZWxldGVkIHR1cGxlcyB0aGF0IGFyZSBzdGls bCB2aXNpYmxlIHRvIHNvbWUgdHJhbnNhY3Rpb24gKi8KLQlpbnQ2NAkJaW5kZXhfdmFjdXVt X2NvdW50OwkvKiB0aGUgbnVtYmVyIG9mIGluZGV4IHZhY3V1bWluZ3MgKi8KLQlpbnQzMgkJ d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudDsJLyogbnVtYmVyIG9mIGVtZXJnZW5jeSB2YWN1 dW1zIHRvIHByZXZlbnQgYW50aS13cmFwYXJvdW5kIHNodXRkb3duICovCisKKwlFeHRWYWNS ZXBvcnRUeXBlIHR5cGU7CQkvKiBoZWFwLCBpbmRleCwgZXRjLiAqLworCisJLyogLS0tLS0t LS0tLQorCSAqCisJICogVGhlcmUgYXJlIHNlcGFyYXRlIG1ldHJpY3Mgb2Ygc3RhdGlzdGlj IGZvciB0YWJsZXMgYW5kIGluZGV4ZXMsCisJICogd2hpY2ggY29sbGVjdCBkdXJpbmcgdmFj dXVtLgorCSAqIFRoZSB1bmlvbiBvcGVyYXRvciBhbGxvd3MgdG8gY29tYmluZSB0aGVzZSBz dGF0aXN0aWNzCisJICogc28gdGhhdCBlYWNoIG1ldHJpYyBpcyBhc3NpZ25lZCB0byBhIHNw ZWNpZmljIGNsYXNzIG9mIGNvbGxlY3RlZCBzdGF0aXN0aWNzLgorCSAqIFN1Y2ggYSBjb21i aW5lZCBzdHJ1Y3R1cmUgd2FzIGNhbGxlZCBwZXJfdHlwZV9zdGF0cy4KKwkgKiBUaGUgbmFt ZSBvZiB0aGUgc3RydWN0dXJlIGl0c2VsZiBpcyBub3QgdXNlZCBhbnl3aGVyZSwKKwkgKiBp dCBleGlzdHMgb25seSBmb3IgdW5kZXJzdGFuZGluZyB0aGUgY29kZS4KKwkgKiAtLS0tLS0t LS0tCisJKi8KKwl1bmlvbgorCXsKKwkJc3RydWN0CisJCXsKKwkJCWludDY0CQlwYWdlc19z Y2FubmVkOwkJLyogaGVhcCBwYWdlcyBleGFtaW5lZCAobm90IHNraXBwZWQgYnkgVk0pICov CisJCQlpbnQ2NAkJcGFnZXNfcmVtb3ZlZDsJCS8qIGhlYXAgcGFnZXMgcmVtb3ZlZCBieSB2 YWN1dW0gInRydW5jYXRpb24iICovCisJCQlpbnQ2NAkJcGFnZXNfZnJvemVuOwkJLyogcGFn ZXMgbWFya2VkIGluIFZNIGFzIGZyb3plbiAqLworCQkJaW50NjQJCXBhZ2VzX2FsbF92aXNp YmxlOwkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMgYWxsLXZpc2libGUgKi8KKwkJCWludDY0 CQl0dXBsZXNfZnJvemVuOwkJLyogdHVwbGVzIGZyb3plbiB1cCBieSB2YWN1dW0gKi8KKwkJ CWludDY0CQlyZWNlbnRseV9kZWFkX3R1cGxlczsJLyogZGVsZXRlZCB0dXBsZXMgdGhhdCBh cmUgc3RpbGwgdmlzaWJsZSB0byBzb21lIHRyYW5zYWN0aW9uICovCisJCQlpbnQ2NAkJdm1f bmV3X2Zyb3plbl9wYWdlczsJCS8qIHBhZ2VzIG1hcmtlZCBpbiBWTSBhcyBmcm96ZW4gKi8K KwkJCWludDY0CQl2bV9uZXdfdmlzaWJsZV9wYWdlczsJLyogcGFnZXMgbWFya2VkIGluIFZN IGFzIGFsbC12aXNpYmxlICovCisJCQlpbnQ2NAkJdm1fbmV3X3Zpc2libGVfZnJvemVuX3Bh Z2VzOwkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMgYWxsLXZpc2libGUgYW5kIGZyb3plbiAq LworCQkJaW50NjQJCW1pc3NlZF9kZWFkX3R1cGxlczsJCS8qIHR1cGxlcyBub3QgcHJ1bmVk IGJ5IHZhY3V1bSBkdWUgdG8gZmFpbHVyZSB0byBnZXQgYSBjbGVhbnVwIGxvY2sgKi8KKwkJ CWludDY0CQltaXNzZWRfZGVhZF9wYWdlczsJCS8qIHBhZ2VzIHdpdGggbWlzc2VkIGRlYWQg dHVwbGVzICovCisJCQlpbnQ2NAkJaW5kZXhfdmFjdXVtX2NvdW50OwkvKiBudW1iZXIgb2Yg aW5kZXggdmFjdXVtaW5ncyAqLworCQkJaW50MzIJCXdyYXBhcm91bmRfZmFpbHNhZmVfY291 bnQ7CS8qIG51bWJlciBvZiBlbWVyZ2VuY3kgdmFjdXVtcyB0byBwcmV2ZW50IGFudGktd3Jh cGFyb3VuZCBzaHV0ZG93biAqLworCQl9CQkJdGFibGU7CisJCXN0cnVjdAorCQl7CisJCQlp bnQ2NAkJcGFnZXNfZGVsZXRlZDsJCS8qIG51bWJlciBvZiBwYWdlcyBkZWxldGVkIGJ5IHZh Y3V1bSAqLworCQl9CQkJaW5kZXg7CisJfSAvKiBwZXJfdHlwZV9zdGF0cyAqLzsKIH0gRXh0 VmFjUmVwb3J0OwogCiAvKiAtLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29s YXRpb24vZXhwZWN0ZWQvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5vdXQg Yi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBl dGFibGUtcmVhZC5vdXQKaW5kZXggODdmN2U0MGI0YTYuLjZkOTYwNDIzOTEyIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvdmFjdXVtLWV4dGVuZGluZy1pbi1y ZXBldGFibGUtcmVhZC5vdXQKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Zh Y3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQub3V0CkBAIC0zNCw3ICszNCw3IEBA IHN0ZXAgczJfcHJpbnRfdmFjdXVtX3N0YXRzX3RhYmxlOgogCiByZWxuYW1lICAgICAgICAg ICAgICAgICAgIHx0dXBsZXNfZGVsZXRlZHxyZWNlbnRseV9kZWFkX3R1cGxlc3xtaXNzZWRf ZGVhZF90dXBsZXN8bWlzc2VkX2RlYWRfcGFnZXN8dHVwbGVzX2Zyb3plbgogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLXRl c3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9ufCAgICAgICAgICAgICAwfCAgICAgICAgICAgICAg ICAgMTAwfCAgICAgICAgICAgICAgICAgMHwgICAgICAgICAgICAgICAgMHwgICAgICAgICAg ICAwCit0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbnwgICAgICAgICAgICAgMHwgICAgICAg ICAgICAgICAgIDYwMHwgICAgICAgICAgICAgICAgIDB8ICAgICAgICAgICAgICAgIDB8ICAg ICAgICAgICAgMAogKDEgcm93KQogCiBzdGVwIHMxX2NvbW1pdDogQ09NTUlUOwpAQCAtNDgs NiArNDgsNiBAQCBzdGVwIHMyX3ByaW50X3ZhY3V1bV9zdGF0c190YWJsZToKIAogcmVsbmFt ZSAgICAgICAgICAgICAgICAgICB8dHVwbGVzX2RlbGV0ZWR8cmVjZW50bHlfZGVhZF90dXBs ZXN8bWlzc2VkX2RlYWRfdHVwbGVzfG1pc3NlZF9kZWFkX3BhZ2VzfHR1cGxlc19mcm96ZW4K IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCi10ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbnwgICAgICAgICAgIDEwMHwgICAg ICAgICAgICAgICAgIDEwMHwgICAgICAgICAgICAgICAgIDB8ICAgICAgICAgICAgICAgIDB8 ICAgICAgICAgIDEwMQordGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb258ICAgICAgICAgICAz MDB8ICAgICAgICAgICAgICAgICA2MDB8ICAgICAgICAgICAgICAgICAwfCAgICAgICAgICAg ICAgICAwfCAgICAgICAgICAzMDMKICgxIHJvdykKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3J1bGVzLm91dAppbmRleCAxMGE0ODJlMmRiNC4uNGU1ZTVjYTU0ZGEgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0yMjgzLDYgKzIyODMsMjggQEAgcGdfc3Rh dF91c2VyX3RhYmxlc3wgU0VMRUNUIHJlbGlkLAogICAgIHJldl9hbGxfdmlzaWJsZV9wYWdl cwogICAgRlJPTSBwZ19zdGF0X2FsbF90YWJsZXMKICAgV0hFUkUgKChzY2hlbWFuYW1lIDw+ IEFMTCAoQVJSQVlbJ3BnX2NhdGFsb2cnOjpuYW1lLCAnaW5mb3JtYXRpb25fc2NoZW1hJzo6 bmFtZV0pKSBBTkQgKHNjaGVtYW5hbWUgIX4gJ15wZ190b2FzdCc6OnRleHQpKTsKK3BnX3N0 YXRfdmFjdXVtX2luZGV4ZXN8IFNFTEVDVCByZWwub2lkIEFTIHJlbGlkLAorICAgIG5zLm5z cG5hbWUgQVMgc2NoZW1hbmFtZSwKKyAgICByZWwucmVsbmFtZSwKKyAgICBzdGF0cy50b3Rh bF9ibGtzX3JlYWQsCisgICAgc3RhdHMudG90YWxfYmxrc19oaXQsCisgICAgc3RhdHMudG90 YWxfYmxrc19kaXJ0aWVkLAorICAgIHN0YXRzLnRvdGFsX2Jsa3Nfd3JpdHRlbiwKKyAgICBz dGF0cy5yZWxfYmxrc19yZWFkLAorICAgIHN0YXRzLnJlbF9ibGtzX2hpdCwKKyAgICBzdGF0 cy5wYWdlc19kZWxldGVkLAorICAgIHN0YXRzLnR1cGxlc19kZWxldGVkLAorICAgIHN0YXRz LndhbF9yZWNvcmRzLAorICAgIHN0YXRzLndhbF9mcGksCisgICAgc3RhdHMud2FsX2J5dGVz LAorICAgIHN0YXRzLmJsa19yZWFkX3RpbWUsCisgICAgc3RhdHMuYmxrX3dyaXRlX3RpbWUs CisgICAgc3RhdHMuZGVsYXlfdGltZSwKKyAgICBzdGF0cy50b3RhbF90aW1lCisgICBGUk9N IChwZ19jbGFzcyByZWwKKyAgICAgSk9JTiBwZ19uYW1lc3BhY2UgbnMgT04gKChucy5vaWQg PSByZWwucmVsbmFtZXNwYWNlKSkpLAorICAgIExBVEVSQUwgcGdfc3RhdF9nZXRfdmFjdXVt X2luZGV4ZXMocmVsLm9pZCkgc3RhdHMocmVsaWQsIHRvdGFsX2Jsa3NfcmVhZCwgdG90YWxf Ymxrc19oaXQsIHRvdGFsX2Jsa3NfZGlydGllZCwgdG90YWxfYmxrc193cml0dGVuLCByZWxf Ymxrc19yZWFkLCByZWxfYmxrc19oaXQsIHBhZ2VzX2RlbGV0ZWQsIHR1cGxlc19kZWxldGVk LCB3YWxfcmVjb3Jkcywgd2FsX2ZwaSwgd2FsX2J5dGVzLCBibGtfcmVhZF90aW1lLCBibGtf d3JpdGVfdGltZSwgZGVsYXlfdGltZSwgdG90YWxfdGltZSkKKyAgV0hFUkUgKHJlbC5yZWxr aW5kID0gJ2knOjoiY2hhciIpOwogcGdfc3RhdF92YWN1dW1fdGFibGVzfCBTRUxFQ1QgbnMu bnNwbmFtZSBBUyBzY2hlbWFuYW1lLAogICAgIHJlbC5yZWxuYW1lLAogICAgIHN0YXRzLnJl bGlkLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC92YWN1dW1faW5k ZXhfc3RhdGlzdGljcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV9p bmRleF9zdGF0aXN0aWNzLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uZTAwYTBmYzY4M2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3ZhY3V1bV9pbmRleF9zdGF0aXN0aWNzLm91dApAQCAtMCwwICsxLDE4MyBA QAorLS0KKy0tIFRlc3QgY3VtdWxhdGl2ZSB2YWN1dW0gc3RhdHMgc3lzdGVtCistLQorLS0g Q2hlY2sgdGhlIHdhbGwgc3RhdGlzdGljcyBjb2xsZWN0ZWQgZHVyaW5nIHZhY3V1bSBvcGVy YXRpb246CistLSBudW1iZXIgb2YgZnJvemVuIGFuZCB2aXNpYmxlIHBhZ2VzIHNldCBieSB2 YWN1dW07CistLSBudW1iZXIgb2YgZnJvemVuIGFuZCB2aXNpYmxlIHBhZ2VzIHJlbW92ZWQg YnkgYmFja2VuZC4KKy0tIFN0YXRpc3RpYyB3YWxfZnBpIGlzIG5vdCBkaXNwbGF5ZWQgaW4g dGhpcyB0ZXN0IGJlY2F1c2UgaXRzIGJlaGF2aW9yIGlzIHVuc3RhYmxlLgorLS0KKy0tIGNv bmRpdGlvIHNpbmUgcXVhIG5vbgorU0hPVyB0cmFja19jb3VudHM7ICAtLSBtdXN0IGJlIG9u CisgdHJhY2tfY291bnRzIAorLS0tLS0tLS0tLS0tLS0KKyBvbgorKDEgcm93KQorCitcc2V0 IHNhbXBsZV9zaXplIDEwMDAwCistLSBub3QgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgd2Ug d2FudCB0byB0ZXN0IGl0Li4uCitTRVQgdHJhY2tfZnVuY3Rpb25zIFRPICdhbGwnOworLS0g VGVzdCB0aGF0IHZhY3V1bSBzdGF0aXN0aWNzIHdpbGwgYmUgZW1wdHkgd2hlbiBwYXJhbWV0 ZXIgaXMgb2ZmLgorU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzIFRPICdvZmYnOworQ1JF QVRFIFRBQkxFIHZlc3RhdCAoeCBpbnQpIFdJVEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IG9m ZiwgZmlsbGZhY3RvciA9IDEwKTsKK0lOU0VSVCBJTlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9N IGdlbmVyYXRlX3NlcmllcygxLDpzYW1wbGVfc2l6ZSkgYXMgeDsKK0FOQUxZWkUgdmVzdGF0 OworREVMRVRFIEZST00gdmVzdGF0IFdIRVJFIHggJSAyID0gMDsKK1ZBQ1VVTSAoUEFSQUxM RUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCkgdmVzdGF0OworLS0gTXVzdCBiZSBlbXB0 eS4KK1NFTEVDVCAqCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgdnQKK1dIRVJFIHZ0 LnJlbG5hbWUgPSAndmVzdGF0JzsKKyByZWxpZCB8IHNjaGVtYW5hbWUgfCByZWxuYW1lIHwg dG90YWxfYmxrc19yZWFkIHwgdG90YWxfYmxrc19oaXQgfCB0b3RhbF9ibGtzX2RpcnRpZWQg fCB0b3RhbF9ibGtzX3dyaXR0ZW4gfCByZWxfYmxrc19yZWFkIHwgcmVsX2Jsa3NfaGl0IHwg cGFnZXNfZGVsZXRlZCB8IHR1cGxlc19kZWxldGVkIHwgd2FsX3JlY29yZHMgfCB3YWxfZnBp IHwgd2FsX2J5dGVzIHwgYmxrX3JlYWRfdGltZSB8IGJsa193cml0ZV90aW1lIHwgZGVsYXlf dGltZSB8IHRvdGFsX3RpbWUgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQorKDAgcm93cykKKworUkVTRVQgdHJhY2tfdmFjdXVtX3N0YXRp c3RpY3M7CitEUk9QIFRBQkxFIHZlc3RhdCBDQVNDQURFOworU0hPVyB0cmFja192YWN1dW1f c3RhdGlzdGljczsgIC0tIG11c3QgYmUgb24KKyB0cmFja192YWN1dW1fc3RhdGlzdGljcyAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBvbgorKDEgcm93KQorCistLSBlbnN1cmUg cGVuZGluZyBzdGF0cyBhcmUgZmx1c2hlZAorU0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9m bHVzaCgpOworIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgCisoMSByb3cpCisKK1xzZXQgc2FtcGxlX3NpemUgMTAwMDAKK1NFVCB2 YWN1dW1fZnJlZXplX21pbl9hZ2UgPSAwOworU0VUIHZhY3V1bV9mcmVlemVfdGFibGVfYWdl ID0gMDsKKy0tU0VUIHN0YXRzX2ZldGNoX2NvbnNpc3RlbmN5ID0gc25hcHNob3Q7CitDUkVB VEUgVEFCTEUgdmVzdGF0ICh4IGludCBwcmltYXJ5IGtleSkgV0lUSCAoYXV0b3ZhY3V1bV9l bmFibGVkID0gb2ZmLCBmaWxsZmFjdG9yID0gMTApOworSU5TRVJUIElOVE8gdmVzdGF0IFNF TEVDVCB4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OworQU5B TFlaRSB2ZXN0YXQ7CitTRUxFQ1Qgb2lkIEFTIGlvaWQgZnJvbSBwZ19jbGFzcyB3aGVyZSBy ZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBcZ3NldAorREVMRVRFIEZST00gdmVzdGF0IFdIRVJF IHggJSAyID0gMDsKKy0tIEJlZm9yZSB0aGUgZmlyc3QgdmFjdXVtIGV4ZWN1dGlvbiBleHRl bmRlZCBzdGF0cyB2aWV3IGlzIGVtcHR5LgorU0VMRUNUIHZ0LnJlbG5hbWUscmVscGFnZXMs cGFnZXNfZGVsZXRlZCx0dXBsZXNfZGVsZXRlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRl eGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBB TkQgdnQucmVsaWQgPSBjLm9pZDsKKyAgIHJlbG5hbWUgICB8IHJlbHBhZ2VzIHwgcGFnZXNf ZGVsZXRlZCB8IHR1cGxlc19kZWxldGVkIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgdmVzdGF0X3BrZXkgfCAgICAgICAz MCB8ICAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAgMAorKDEgcm93KQorCitTRUxFQ1Qg cmVscGFnZXMgQVMgaXJwCitGUk9NIHBnX2NsYXNzIGMKK1dIRVJFIHJlbG5hbWUgPSAndmVz dGF0X3BrZXknIFxnc2V0CitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1J VCAxMjgsIElOREVYX0NMRUFOVVAgT04pIHZlc3RhdDsKKy0tIGl0IGlzIG5lY2Vzc2FyeSB0 byBjaGVjayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNLUE9JTlQ7CistLSBUaGUgdGFibGUg YW5kIGluZGV4IGV4dGVuZGVkIHZhY3V1bSBzdGF0aXN0aWNzIHNob3VsZCBzaG93IHVzIHRo YXQKKy0tIHZhY3V1bSBmcm96ZWQgcGFnZXMgYW5kIGNsZWFuIHVwIHBhZ2VzLCBidXQgcGFn ZXNfcmVtb3ZlZCBzdGF5ZWQgdGhlIHNhbWUKKy0tIGJlY2F1c2Ugb2Ygbm90IGZ1bGwgdGFi bGUgaGF2ZSBjbGVhbmVkIHVwCitTRUxFQ1QgdnQucmVsbmFtZSxyZWxwYWdlcy06aXJwID0g MCBBUyByZWxwYWdlcyxwYWdlc19kZWxldGVkID0gMCBBUyBwYWdlc19kZWxldGVkLHR1cGxl c19kZWxldGVkID4gMCBBUyB0dXBsZXNfZGVsZXRlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV9p bmRleGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdF9wa2V5 JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKKyAgIHJlbG5hbWUgICB8IHJlbHBhZ2VzIHwgcGFn ZXNfZGVsZXRlZCB8IHR1cGxlc19kZWxldGVkIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgdmVzdGF0X3BrZXkgfCB0ICAg ICAgICB8IHQgICAgICAgICAgICAgfCB0CisoMSByb3cpCisKK1NFTEVDVCB2dC5yZWxuYW1l LHJlbHBhZ2VzIEFTIGlycCxwYWdlc19kZWxldGVkIEFTIGlwZCx0dXBsZXNfZGVsZXRlZCBB UyBpdGQKK0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyB2dCwgcGdfY2xhc3MgYworV0hF UkUgdnQucmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgQU5EIHZ0LnJlbGlkID0gYy5vaWQgXGdz ZXQKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9y ZWNvcmRzIEFTIGl3cix3YWxfYnl0ZXMgQVMgaXdiLHdhbF9mcGkgQVMgaWZwaSBGUk9NIHBn X3N0YXRfdmFjdXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgXGdz ZXQKKy0tIExvb2sgaW50byBXQUwgcmVjb3JkcyBkZWx0YXMuCitTRUxFQ1Qgd2FsX3JlY29y ZHMgPiAwIEFTIGRpV1IsIHdhbF9ieXRlcyA+IDAgQVMgZGlXQgorRlJPTSBwZ19zdGF0X3Zh Y3V1bV9pbmRleGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0X3BrZXknOworIGRpd3IgfCBk aXdiIAorLS0tLS0tKy0tLS0tLQorIHQgICAgfCB0CisoMSByb3cpCisKK0RFTEVURSBGUk9N IHZlc3RhdDs7CitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgs IElOREVYX0NMRUFOVVAgT04pIHZlc3RhdDsKKy0tIGl0IGlzIG5lY2Vzc2FyeSB0byBjaGVj ayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNLUE9JTlQ7CistLSBwYWdlc19yZW1vdmVkIG11 c3QgYmUgaW5jcmVhc2VkCitTRUxFQ1QgdnQucmVsbmFtZSxyZWxwYWdlcy06aXJwID0gMCBB UyByZWxwYWdlcyxwYWdlc19kZWxldGVkLTppcGQgPiAwIEFTIHBhZ2VzX2RlbGV0ZWQsdHVw bGVzX2RlbGV0ZWQtOml0ZCA+IDAgQVMgdHVwbGVzX2RlbGV0ZWQKK0ZST00gcGdfc3RhdF92 YWN1dW1faW5kZXhlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0 YXRfcGtleScgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CisgICByZWxuYW1lICAgfCByZWxwYWdl cyB8IHBhZ2VzX2RlbGV0ZWQgfCB0dXBsZXNfZGVsZXRlZCAKKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIHZlc3RhdF9wa2V5 IHwgdCAgICAgICAgfCB0ICAgICAgICAgICAgIHwgdAorKDEgcm93KQorCitTRUxFQ1QgdnQu cmVsbmFtZSxyZWxwYWdlcyBBUyBpcnAscGFnZXNfZGVsZXRlZCBBUyBpcGQsdHVwbGVzX2Rl bGV0ZWQgQVMgaXRkCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgdnQsIHBnX2NsYXNz IGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0X3BrZXknIEFORCB2dC5yZWxpZCA9IGMu b2lkIFxnc2V0CistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50byB2YXJpYWJsZXMKK1NFTEVD VCB3YWxfcmVjb3Jkcy06aXdyIEFTIGRpd3IsIHdhbF9ieXRlcy06aXdiIEFTIGRpd2IsIHdh bF9mcGktOmlmcGkgQVMgZGlmcGkKK0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyBXSEVS RSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBcZ3NldAorLS0gV0FMIGFkdmFuY2Ugc2hvdWxk IGJlIGRldGVjdGVkLgorU0VMRUNUIDpkaXdyID4gMCBBUyBkaVdSLCA6ZGl3YiA+IDAgQVMg ZGlXQjsKKyBkaXdyIHwgZGl3YiAKKy0tLS0tLSstLS0tLS0KKyB0ICAgIHwgdAorKDEgcm93 KQorCistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50byB2YXJpYWJsZXMKK1NFTEVDVCB3YWxf cmVjb3JkcyBBUyBpd3Isd2FsX2J5dGVzIEFTIGl3Yix3YWxfZnBpIEFTIGlmcGkgRlJPTSBw Z19zdGF0X3ZhY3V1bV9pbmRleGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0X3BrZXknIFxn c2V0CitJTlNFUlQgSU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSw6c2FtcGxlX3NpemUpIGFzIHg7CitERUxFVEUgRlJPTSB2ZXN0YXQgV0hFUkUgeCAlIDIg PSAwOworLS0gVkFDVVVNIEZVTEwgZG9lc24ndCByZXBvcnQgdG8gc3RhdCBjb2xsZWN0b3Iu IFNvLCBubyBhbnkgYWR2YW5jZW1lbnRzIG9mIHN0YXRpc3RpY3MKKy0tIGFyZSBkZXRlY3Rl ZCBoZXJlLgorVkFDVVVNIEZVTEwgdmVzdGF0OworLS0gSXQgaXMgbmVjZXNzYXJ5IHRvIGNo ZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKy0tIFN0b3JlIFdBTCBhZHZh bmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzLTppd3IgQVMgZGl3cjIs IHdhbF9ieXRlcy06aXdiIEFTIGRpd2IyLCB3YWxfZnBpLTppZnBpIEFTIGRpZnBpMgorRlJP TSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0X3BrZXkn IFxnc2V0CistLSBXQUwgYW5kIG90aGVyIHN0YXRpc3RpY3MgYWR2YW5jZSBzaG91bGQgbm90 IGJlIGRldGVjdGVkLgorU0VMRUNUIDpkaXdyMj0wIEFTIGRpV1IsIDpkaWZwaTI9MCBBUyBp RlBJLCA6ZGl3YjI9MCBBUyBkaVdCOworIGRpd3IgfCBpZnBpIHwgZGl3YiAKKy0tLS0tLSst LS0tLS0rLS0tLS0tCisgdCAgICB8IHQgICAgfCB0CisoMSByb3cpCisKK1NFTEVDVCB2dC5y ZWxuYW1lLHJlbHBhZ2VzLTppcnAgPCAwIEFTIHJlbHBhZ2VzLHBhZ2VzX2RlbGV0ZWQtOmlw ZCA9IDAgQVMgcGFnZXNfZGVsZXRlZCx0dXBsZXNfZGVsZXRlZC06aXRkID0gMCBBUyB0dXBs ZXNfZGVsZXRlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBj CitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9p ZDsKKyAgIHJlbG5hbWUgICB8IHJlbHBhZ2VzIHwgcGFnZXNfZGVsZXRlZCB8IHR1cGxlc19k ZWxldGVkIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tCisgdmVzdGF0X3BrZXkgfCB0ICAgICAgICB8IHQgICAgICAgICAgICAg fCB0CisoMSByb3cpCisKK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzIEFTIGlycCxwYWdl c19kZWxldGVkIEFTIGlwZCx0dXBsZXNfZGVsZXRlZCBBUyBpdGQKK0ZST00gcGdfc3RhdF92 YWN1dW1faW5kZXhlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0 YXRfcGtleScgQU5EIHZ0LnJlbGlkID0gYy5vaWQgXGdzZXQKKy0tIFN0b3JlIFdBTCBhZHZh bmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzIEFTIGl3cix3YWxfYnl0 ZXMgQVMgaXdiLHdhbF9mcGkgQVMgaWZwaSBGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMg V0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgXGdzZXQKK0RFTEVURSBGUk9NIHZlc3Rh dDsKK1RSVU5DQVRFIHZlc3RhdDsKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdF X0xJTUlUIDEyOCwgSU5ERVhfQ0xFQU5VUCBPTikgdmVzdGF0OworLS0gaXQgaXMgbmVjZXNz YXJ5IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKy0tIFN0b3Jl IFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcyBhZnRlciByZW1vdmluZyBhbGwgdHVwbGVz IGZyb20gdGhlIHRhYmxlCitTRUxFQ1Qgd2FsX3JlY29yZHMtOml3ciBBUyBkaXdyMywgd2Fs X2J5dGVzLTppd2IgQVMgZGl3YjMsIHdhbF9mcGktOmlmcGkgQVMgZGlmcGkzCitGUk9NIHBn X3N0YXRfdmFjdXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgXGdz ZXQKKy0tVGhlcmUgYXJlIG5vdGhpbmcgY2hhbmdlZAorU0VMRUNUIDpkaXdyMz0wIEFTIGRp V1IsIDpkaWZwaTM9MCBBUyBpRlBJLCA6ZGl3YjM9MCBBUyBkaVdCOworIGRpd3IgfCBpZnBp IHwgZGl3YiAKKy0tLS0tLSstLS0tLS0rLS0tLS0tCisgdCAgICB8IHQgICAgfCB0CisoMSBy b3cpCisKKy0tCistLSBOb3csIHRoZSB0YWJsZSBhbmQgaW5kZXggaXMgY29tcHJlc3NlZCBp bnRvIHplcm8gbnVtYmVyIG9mIHBhZ2VzLiBDaGVjayBpdAorLS0gaW4gdmFjdXVtIGV4dGVu ZGVkIHN0YXRpc3RpY3MuCistLSBUaGUgcGFnZXNfZnJvemVuLCBwYWdlc19zY2FubmVkIHZh bHVlcyBzaG91bGRuJ3QgYmUgY2hhbmdlZAorLS0KK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBh Z2VzLTppcnAgPSAwIEFTIHJlbHBhZ2VzLHBhZ2VzX2RlbGV0ZWQtOmlwZCA9IDAgQVMgcGFn ZXNfZGVsZXRlZCx0dXBsZXNfZGVsZXRlZC06aXRkID0gMCBBUyB0dXBsZXNfZGVsZXRlZAor RlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5y ZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKKyAgIHJlbG5h bWUgICB8IHJlbHBhZ2VzIHwgcGFnZXNfZGVsZXRlZCB8IHR1cGxlc19kZWxldGVkIAorLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t CisgdmVzdGF0X3BrZXkgfCBmICAgICAgICB8IHQgICAgICAgICAgICAgfCB0CisoMSByb3cp CisKK0RST1AgVEFCTEUgdmVzdGF0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9w YXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUK aW5kZXggZWUwMzQzYzI3MjkuLjAxOTc4MzBiNWNkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxs ZWxfc2NoZWR1bGUKQEAgLTE0NCw0ICsxNDQsNSBAQCB0ZXN0OiB0YWJsZXNwYWNlCiAjIC0t LS0tLS0tLS0KICMgQ2hlY2sgdmFjdXVtIHN0YXRpc3RpY3MKICMgLS0tLS0tLS0tLQordGVz dDogdmFjdXVtX2luZGV4X3N0YXRpc3RpY3MKIHRlc3Q6IHZhY3V1bV90YWJsZXNfc3RhdGlz dGljcwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV9pbmRleF9zdGF0aXN0aWNzLnNxbCBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3ZhY3V1bV9pbmRleF9zdGF0aXN0aWNzLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWUxNDZlMWQyM2YKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1dW1faW5kZXhfc3RhdGlzdGljcy5zcWwKQEAg LTAsMCArMSwxNTEgQEAKKy0tCistLSBUZXN0IGN1bXVsYXRpdmUgdmFjdXVtIHN0YXRzIHN5 c3RlbQorLS0KKy0tIENoZWNrIHRoZSB3YWxsIHN0YXRpc3RpY3MgY29sbGVjdGVkIGR1cmlu ZyB2YWN1dW0gb3BlcmF0aW9uOgorLS0gbnVtYmVyIG9mIGZyb3plbiBhbmQgdmlzaWJsZSBw YWdlcyBzZXQgYnkgdmFjdXVtOworLS0gbnVtYmVyIG9mIGZyb3plbiBhbmQgdmlzaWJsZSBw YWdlcyByZW1vdmVkIGJ5IGJhY2tlbmQuCistLSBTdGF0aXN0aWMgd2FsX2ZwaSBpcyBub3Qg ZGlzcGxheWVkIGluIHRoaXMgdGVzdCBiZWNhdXNlIGl0cyBiZWhhdmlvciBpcyB1bnN0YWJs ZS4KKy0tCistLSBjb25kaXRpbyBzaW5lIHF1YSBub24KK1NIT1cgdHJhY2tfY291bnRzOyAg LS0gbXVzdCBiZSBvbgorCitcc2V0IHNhbXBsZV9zaXplIDEwMDAwCisKKy0tIG5vdCBlbmFi bGVkIGJ5IGRlZmF1bHQsIGJ1dCB3ZSB3YW50IHRvIHRlc3QgaXQuLi4KK1NFVCB0cmFja19m dW5jdGlvbnMgVE8gJ2FsbCc7CisKKy0tIFRlc3QgdGhhdCB2YWN1dW0gc3RhdGlzdGljcyB3 aWxsIGJlIGVtcHR5IHdoZW4gcGFyYW1ldGVyIGlzIG9mZi4KK1NFVCB0cmFja192YWN1dW1f c3RhdGlzdGljcyBUTyAnb2ZmJzsKKworQ1JFQVRFIFRBQkxFIHZlc3RhdCAoeCBpbnQpIFdJ VEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IG9mZiwgZmlsbGZhY3RvciA9IDEwKTsKK0lOU0VS VCBJTlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpzYW1wbGVf c2l6ZSkgYXMgeDsKK0FOQUxZWkUgdmVzdGF0OworCitERUxFVEUgRlJPTSB2ZXN0YXQgV0hF UkUgeCAlIDIgPSAwOworCitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1J VCAxMjgpIHZlc3RhdDsKKworLS0gTXVzdCBiZSBlbXB0eS4KK1NFTEVDVCAqCitGUk9NIHBn X3N0YXRfdmFjdXVtX2luZGV4ZXMgdnQKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JzsK KworUkVTRVQgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3M7CitEUk9QIFRBQkxFIHZlc3RhdCBD QVNDQURFOworCitTSE9XIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzOyAgLS0gbXVzdCBiZSBv bgorCistLSBlbnN1cmUgcGVuZGluZyBzdGF0cyBhcmUgZmx1c2hlZAorU0VMRUNUIHBnX3N0 YXRfZm9yY2VfbmV4dF9mbHVzaCgpOworCitcc2V0IHNhbXBsZV9zaXplIDEwMDAwCitTRVQg dmFjdXVtX2ZyZWV6ZV9taW5fYWdlID0gMDsKK1NFVCB2YWN1dW1fZnJlZXplX3RhYmxlX2Fn ZSA9IDA7CistLVNFVCBzdGF0c19mZXRjaF9jb25zaXN0ZW5jeSA9IHNuYXBzaG90OworQ1JF QVRFIFRBQkxFIHZlc3RhdCAoeCBpbnQgcHJpbWFyeSBrZXkpIFdJVEggKGF1dG92YWN1dW1f ZW5hYmxlZCA9IG9mZiwgZmlsbGZhY3RvciA9IDEwKTsKK0lOU0VSVCBJTlRPIHZlc3RhdCBT RUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpzYW1wbGVfc2l6ZSkgYXMgeDsKK0FO QUxZWkUgdmVzdGF0OworCitTRUxFQ1Qgb2lkIEFTIGlvaWQgZnJvbSBwZ19jbGFzcyB3aGVy ZSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBcZ3NldAorCitERUxFVEUgRlJPTSB2ZXN0YXQg V0hFUkUgeCAlIDIgPSAwOworLS0gQmVmb3JlIHRoZSBmaXJzdCB2YWN1dW0gZXhlY3V0aW9u IGV4dGVuZGVkIHN0YXRzIHZpZXcgaXMgZW1wdHkuCitTRUxFQ1QgdnQucmVsbmFtZSxyZWxw YWdlcyxwYWdlc19kZWxldGVkLHR1cGxlc19kZWxldGVkCitGUk9NIHBnX3N0YXRfdmFjdXVt X2luZGV4ZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0X3Br ZXknIEFORCB2dC5yZWxpZCA9IGMub2lkOworU0VMRUNUIHJlbHBhZ2VzIEFTIGlycAorRlJP TSBwZ19jbGFzcyBjCitXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBcZ3NldAorCitW QUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgsIElOREVYX0NMRUFO VVAgT04pIHZlc3RhdDsKKy0tIGl0IGlzIG5lY2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0 YXRpc3RpY3MKK0NIRUNLUE9JTlQ7CisKKy0tIFRoZSB0YWJsZSBhbmQgaW5kZXggZXh0ZW5k ZWQgdmFjdXVtIHN0YXRpc3RpY3Mgc2hvdWxkIHNob3cgdXMgdGhhdAorLS0gdmFjdXVtIGZy b3plZCBwYWdlcyBhbmQgY2xlYW4gdXAgcGFnZXMsIGJ1dCBwYWdlc19yZW1vdmVkIHN0YXll ZCB0aGUgc2FtZQorLS0gYmVjYXVzZSBvZiBub3QgZnVsbCB0YWJsZSBoYXZlIGNsZWFuZWQg dXAKK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzLTppcnAgPSAwIEFTIHJlbHBhZ2VzLHBh Z2VzX2RlbGV0ZWQgPSAwIEFTIHBhZ2VzX2RlbGV0ZWQsdHVwbGVzX2RlbGV0ZWQgPiAwIEFT IHR1cGxlc19kZWxldGVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgdnQsIHBnX2Ns YXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0X3BrZXknIEFORCB2dC5yZWxpZCA9 IGMub2lkOworU0VMRUNUIHZ0LnJlbG5hbWUscmVscGFnZXMgQVMgaXJwLHBhZ2VzX2RlbGV0 ZWQgQVMgaXBkLHR1cGxlc19kZWxldGVkIEFTIGl0ZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV9p bmRleGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdF9wa2V5 JyBBTkQgdnQucmVsaWQgPSBjLm9pZCBcZ3NldAorCistLSBTdG9yZSBXQUwgYWR2YW5jZXMg aW50byB2YXJpYWJsZXMKK1NFTEVDVCB3YWxfcmVjb3JkcyBBUyBpd3Isd2FsX2J5dGVzIEFT IGl3Yix3YWxfZnBpIEFTIGlmcGkgRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIFdIRVJF IHJlbG5hbWUgPSAndmVzdGF0X3BrZXknIFxnc2V0CisKKy0tIExvb2sgaW50byBXQUwgcmVj b3JkcyBkZWx0YXMuCitTRUxFQ1Qgd2FsX3JlY29yZHMgPiAwIEFTIGRpV1IsIHdhbF9ieXRl cyA+IDAgQVMgZGlXQgorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIFdIRVJFIHJlbG5h bWUgPSAndmVzdGF0X3BrZXknOworCitERUxFVEUgRlJPTSB2ZXN0YXQ7OworVkFDVVVNIChQ QVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4LCBJTkRFWF9DTEVBTlVQIE9OKSB2 ZXN0YXQ7CistLSBpdCBpcyBuZWNlc3NhcnkgdG8gY2hlY2sgdGhlIHdhbCBzdGF0aXN0aWNz CitDSEVDS1BPSU5UOworCistLSBwYWdlc19yZW1vdmVkIG11c3QgYmUgaW5jcmVhc2VkCitT RUxFQ1QgdnQucmVsbmFtZSxyZWxwYWdlcy06aXJwID0gMCBBUyByZWxwYWdlcyxwYWdlc19k ZWxldGVkLTppcGQgPiAwIEFTIHBhZ2VzX2RlbGV0ZWQsdHVwbGVzX2RlbGV0ZWQtOml0ZCA+ IDAgQVMgdHVwbGVzX2RlbGV0ZWQKK0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyB2dCwg cGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgQU5EIHZ0LnJl bGlkID0gYy5vaWQ7CitTRUxFQ1QgdnQucmVsbmFtZSxyZWxwYWdlcyBBUyBpcnAscGFnZXNf ZGVsZXRlZCBBUyBpcGQsdHVwbGVzX2RlbGV0ZWQgQVMgaXRkCitGUk9NIHBnX3N0YXRfdmFj dXVtX2luZGV4ZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0 X3BrZXknIEFORCB2dC5yZWxpZCA9IGMub2lkIFxnc2V0CisKKy0tIFN0b3JlIFdBTCBhZHZh bmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzLTppd3IgQVMgZGl3ciwg d2FsX2J5dGVzLTppd2IgQVMgZGl3Yiwgd2FsX2ZwaS06aWZwaSBBUyBkaWZwaQorRlJPTSBw Z19zdGF0X3ZhY3V1bV9pbmRleGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0X3BrZXknIFxn c2V0CisKKy0tIFdBTCBhZHZhbmNlIHNob3VsZCBiZSBkZXRlY3RlZC4KK1NFTEVDVCA6ZGl3 ciA+IDAgQVMgZGlXUiwgOmRpd2IgPiAwIEFTIGRpV0I7CisKKy0tIFN0b3JlIFdBTCBhZHZh bmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzIEFTIGl3cix3YWxfYnl0 ZXMgQVMgaXdiLHdhbF9mcGkgQVMgaWZwaSBGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMg V0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgXGdzZXQKKworSU5TRVJUIElOVE8gdmVz dGF0IFNFTEVDVCB4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4 OworREVMRVRFIEZST00gdmVzdGF0IFdIRVJFIHggJSAyID0gMDsKKy0tIFZBQ1VVTSBGVUxM IGRvZXNuJ3QgcmVwb3J0IHRvIHN0YXQgY29sbGVjdG9yLiBTbywgbm8gYW55IGFkdmFuY2Vt ZW50cyBvZiBzdGF0aXN0aWNzCistLSBhcmUgZGV0ZWN0ZWQgaGVyZS4KK1ZBQ1VVTSBGVUxM IHZlc3RhdDsKKy0tIEl0IGlzIG5lY2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3Rp Y3MKK0NIRUNLUE9JTlQ7CisKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxl cworU0VMRUNUIHdhbF9yZWNvcmRzLTppd3IgQVMgZGl3cjIsIHdhbF9ieXRlcy06aXdiIEFT IGRpd2IyLCB3YWxfZnBpLTppZnBpIEFTIGRpZnBpMgorRlJPTSBwZ19zdGF0X3ZhY3V1bV9p bmRleGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0X3BrZXknIFxnc2V0CisKKy0tIFdBTCBh bmQgb3RoZXIgc3RhdGlzdGljcyBhZHZhbmNlIHNob3VsZCBub3QgYmUgZGV0ZWN0ZWQuCitT RUxFQ1QgOmRpd3IyPTAgQVMgZGlXUiwgOmRpZnBpMj0wIEFTIGlGUEksIDpkaXdiMj0wIEFT IGRpV0I7CisKK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzLTppcnAgPCAwIEFTIHJlbHBh Z2VzLHBhZ2VzX2RlbGV0ZWQtOmlwZCA9IDAgQVMgcGFnZXNfZGVsZXRlZCx0dXBsZXNfZGVs ZXRlZC06aXRkID0gMCBBUyB0dXBsZXNfZGVsZXRlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV9p bmRleGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdF9wa2V5 JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzIEFT IGlycCxwYWdlc19kZWxldGVkIEFTIGlwZCx0dXBsZXNfZGVsZXRlZCBBUyBpdGQKK0ZST00g cGdfc3RhdF92YWN1dW1faW5kZXhlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFt ZSA9ICd2ZXN0YXRfcGtleScgQU5EIHZ0LnJlbGlkID0gYy5vaWQgXGdzZXQKKworLS0gU3Rv cmUgV0FMIGFkdmFuY2VzIGludG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMgQVMg aXdyLHdhbF9ieXRlcyBBUyBpd2Isd2FsX2ZwaSBBUyBpZnBpIEZST00gcGdfc3RhdF92YWN1 dW1faW5kZXhlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBcZ3NldAorCitERUxF VEUgRlJPTSB2ZXN0YXQ7CitUUlVOQ0FURSB2ZXN0YXQ7CitWQUNVVU0gKFBBUkFMTEVMIDAs IEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgsIElOREVYX0NMRUFOVVAgT04pIHZlc3RhdDsKKy0t IGl0IGlzIG5lY2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNLUE9J TlQ7CisKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcyBhZnRlciByZW1v dmluZyBhbGwgdHVwbGVzIGZyb20gdGhlIHRhYmxlCitTRUxFQ1Qgd2FsX3JlY29yZHMtOml3 ciBBUyBkaXdyMywgd2FsX2J5dGVzLTppd2IgQVMgZGl3YjMsIHdhbF9mcGktOmlmcGkgQVMg ZGlmcGkzCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9ICd2 ZXN0YXRfcGtleScgXGdzZXQKKworLS1UaGVyZSBhcmUgbm90aGluZyBjaGFuZ2VkCitTRUxF Q1QgOmRpd3IzPTAgQVMgZGlXUiwgOmRpZnBpMz0wIEFTIGlGUEksIDpkaXdiMz0wIEFTIGRp V0I7CisKKy0tCistLSBOb3csIHRoZSB0YWJsZSBhbmQgaW5kZXggaXMgY29tcHJlc3NlZCBp bnRvIHplcm8gbnVtYmVyIG9mIHBhZ2VzLiBDaGVjayBpdAorLS0gaW4gdmFjdXVtIGV4dGVu ZGVkIHN0YXRpc3RpY3MuCistLSBUaGUgcGFnZXNfZnJvemVuLCBwYWdlc19zY2FubmVkIHZh bHVlcyBzaG91bGRuJ3QgYmUgY2hhbmdlZAorLS0KK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBh Z2VzLTppcnAgPSAwIEFTIHJlbHBhZ2VzLHBhZ2VzX2RlbGV0ZWQtOmlwZCA9IDAgQVMgcGFn ZXNfZGVsZXRlZCx0dXBsZXNfZGVsZXRlZC06aXRkID0gMCBBUyB0dXBsZXNfZGVsZXRlZAor RlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5y ZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKKworRFJPUCBU QUJMRSB2ZXN0YXQ7Ci0tIAoyLjM0LjEKCg== --------------IUDxn0gVtf2vbFzxDscYGnji Content-Type: text/x-patch; charset=UTF-8; name="v22-0003-Machinery-for-grabbing-an-extended-vacuum-statistics.patch" Content-Disposition: attachment; filename*0="v22-0003-Machinery-for-grabbing-an-extended-vacuum-statistic"; filename*1="s.patch" Content-Transfer-Encoding: base64 RnJvbSBlMTllNDZlMjAzMzliNDc3ZmJjZDQ1MzhmMGI5ODUzODZmOWI3ZGZhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogVHVlLCA0IEZlYiAyMDI1IDE3OjU3OjQ0ICswMzAwClN1Ympl Y3Q6IFtQQVRDSCAzLzRdIE1hY2hpbmVyeSBmb3IgZ3JhYmJpbmcgYW4gZXh0ZW5kZWQgdmFj dXVtIHN0YXRpc3RpY3Mgb24KIGRhdGFiYXNlcy4KCkRhdGFiYXNlIHZhY3V1bSBzdGF0aXN0 aWNzIGluZm9ybWF0aW9uIGlzIHRoZSBjb2xsZWN0ZWQgZ2VuZXJhbAp2YWN1dW0gc3RhdGlz dGljcyBpbmRleGVzIGFuZCB0YWJsZXMgb3duZWQgYnkgdGhlIGRhdGFiYXNlcywgd2hpY2gK dGhleSBiZWxvbmcgdG8uCgpJbiBhZGRpdGlvbiB0byB0aGUgZmFjdCB0aGF0IHRoZXJlIGFy ZSBmYXIgZmV3ZXIgZGF0YWJhc2VzIGluIGEgc3lzdGVtCnRoYW4gcmVsYXRpb25zLCB2YWN1 dW0gc3RhdGlzdGljcyBmb3IgYSBkYXRhYmFzZSBjb250YWluIGZld2VyIHN0YXRpc3RpY3MK dGhhbiByZWxhdGlvbnMsIGJ1dCB0aGV5IGFyZSBlbm91Z2ggdG8gaW5kaWNhdGUgdGhhdCBz b21ldGhpbmcgbWF5IGJlCndyb25nIGluIHRoZSBzeXN0ZW0gYW5kIHByb21wdCB0aGUgYWRt aW5pc3RyYXRvciB0byBlbmFibGUgZXh0ZW5kZWQKbW9uaXRvcmluZyBmb3IgcmVsYXRpb25z LgoKU28sIGJ1ZmZlciwgd2FsLCBzdGF0aXN0aWNzIG9mIEkvTyB0aW1lIG9mIHJlYWQgYW5k IHdyaXRlbiBibG9ja3MKc3RhdGlzdGljcyB3aWxsIGJlIG9ic2VydmVkIGJlY2F1c2UgdGhl eSBhcmUgY29sbGVjdGVkIGZvciBib3RoCnRhYmxlcywgaW5kZXhlcy4gSW4gYWRkaXRpb24s IHdlIHNob3cgdGhlIG51bWJlciBvZiBlcnJvcnMgY2F1Z2h0CmR1cmluZyBvcGVyYXRpb24g b2YgdGhlIHZhY3V1bSBvbmx5IGZvciB0aGUgZXJyb3IgbGV2ZWwuCgp3cmFwYXJvdW5kX2Zh aWxzYWZlX2NvdW50IGlzIGEgbnVtYmVyIG9mIHRpbWVzIHdoZW4gdGhlIHZhY3V1bSBzdGFy dHMKdXJnZW50IGNsZWFudXAgdG8gcHJldmVudCB3cmFwYXJvdW5kIHByb2JsZW0gd2hpY2gg aXMgY3JpdGljYWwgZm9yCnRoZSBkYXRhYmFzZS4KCkF1dGhvcnM6IEFsZW5hIFJ5YmFraW5h IDxsZW5hLnJpYmFja2luYUB5YW5kZXgucnU+LAogICBBbmRyZWkgTGVwaWtob3YgPGEubGVw aWtob3ZAcG9zdGdyZXNwcm8ucnU+LAogICBBbmRyZWkgWnVia292IDxhLnp1YmtvdkBwb3N0 Z3Jlc3Byby5ydT4KUmV2aWV3ZWQtYnk6IERpbGlwIEt1bWFyIDxkaWxpcGJhbGF1dEBnbWFp bC5jb20+LCBNYXNhaGlrbyBTYXdhZGEgPHNhd2FkYS5tc2hrQGdtYWlsLmNvbT4sCiAgICAg ICBJbGlhIEV2ZG9raW1vdiA8aWx5YS5ldmRva2ltb3ZAdGFudG9ybGFicy5jb20+LCBqaWFu IGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+LAogICAgICAgS2lyaWxsIFJlc2hr ZSA8cmVzaGtla2lyaWxsQGdtYWlsLmNvbT4sIEFsZXhhbmRlciBLb3JvdGtvdiA8YWVrb3Jv dGtvdkBnbWFpbC5jb20+LAogICAgICAgSmltIE5hc2J5IDxqbmFzYnlAdXBncmFkZS5jb20+ LCBTYW1pIEltc2VpaCA8c2FtaW1zZWloQGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgICAgICAgfCAgMTcgKystCiBzcmMvYmFja2Vu ZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgICAgICAgICAgfCAgMjcgKysrKy0KIHNyYy9i YWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5jICAgICAgICAgICB8ICAgMiArLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2RhdGFiYXNlLmMgIHwgICAxICsKIHNy Yy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jICB8ICA0NiArKysr KysrLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgICAgICAgICAgIHwg MTAwICsrKysrKysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFi bGVzLmMgICAgICAgICAgIHwgICAyICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2Mu ZGF0ICAgICAgICAgICAgICAgfCAgMTMgKystCiBzcmMvaW5jbHVkZS9wZ3N0YXQuaCAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIC4uLi92YWN1dW0tZXh0ZW5kaW5nLWlu LXJlcGV0YWJsZS1yZWFkLnNwZWMgICB8ICAgNiArKwogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ydWxlcy5vdXQgICAgICAgICAgIHwgIDE3ICsrKwogLi4uL2V4cGVjdGVkL3ZhY3V1 bV9pbmRleF9zdGF0aXN0aWNzLm91dCAgICAgIHwgIDE2ICstLQogLi4udXQgPT4gdmFjdXVt X3RhYmxlc19hbmRfZGJfc3RhdGlzdGljcy5vdXR9IHwgIDg3ICsrKysrKysrKysrKystLQog c3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAyICst CiAuLi4vcmVncmVzcy9zcWwvdmFjdXVtX2luZGV4X3N0YXRpc3RpY3Muc3FsICAgfCAgIDYg Ky0KIC4uLnFsID0+IHZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Muc3FsfSB8ICA2 OSArKysrKysrKysrKy0KIDE2IGZpbGVzIGNoYW5nZWQsIDM4MSBpbnNlcnRpb25zKCspLCAz NSBkZWxldGlvbnMoLSkKIHJlbmFtZSBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3t2YWN1 dW1fdGFibGVzX3N0YXRpc3RpY3Mub3V0ID0+IHZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRp c3RpY3Mub3V0fSAoODIlKQogcmVuYW1lIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3t2YWN1dW1f dGFibGVzX3N0YXRpc3RpY3Muc3FsID0+IHZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3Rp Y3Muc3FsfSAoODElKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zh Y3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRl eCBmNDJjNzAwZjZiYi4uMWNhZjNhYzNiMzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92 YWN1dW1sYXp5LmMKQEAgLTY2MCw3ICs2NjAsNyBAQCBhY2N1bXVsYXRlX2hlYXBfdmFjdXVt X3N0YXRpc3RpY3MoTFZFeHRTdGF0Q291bnRlcnMgKmV4dFZhY0NvdW50ZXJzLCBMVlJlbFN0 YXRlCiAJdmFjcmVsLT5leHRWYWNSZXBvcnQudGFibGUubWlzc2VkX2RlYWRfdHVwbGVzICs9 IHZhY3JlbC0+bWlzc2VkX2RlYWRfdHVwbGVzOwogCXZhY3JlbC0+ZXh0VmFjUmVwb3J0LnRh YmxlLm1pc3NlZF9kZWFkX3BhZ2VzICs9IHZhY3JlbC0+bWlzc2VkX2RlYWRfcGFnZXM7CiAJ dmFjcmVsLT5leHRWYWNSZXBvcnQudGFibGUuaW5kZXhfdmFjdXVtX2NvdW50ICs9IHZhY3Jl bC0+bnVtX2luZGV4X3NjYW5zOwotCXZhY3JlbC0+ZXh0VmFjUmVwb3J0LnRhYmxlLndyYXBh cm91bmRfZmFpbHNhZmVfY291bnQgKz0gdmFjcmVsLT53cmFwYXJvdW5kX2ZhaWxzYWZlX2Nv dW50OworCXZhY3JlbC0+ZXh0VmFjUmVwb3J0LndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQg Kz0gdmFjcmVsLT53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50OwogfQogCiAKQEAgLTQwODAs NiArNDA4MCw5IEBAIHZhY3V1bV9lcnJvcl9jYWxsYmFjayh2b2lkICphcmcpCiAJc3dpdGNo IChlcnJpbmZvLT5waGFzZSkKIAl7CiAJCWNhc2UgVkFDVVVNX0VSUkNCX1BIQVNFX1NDQU5f SEVBUDoKKwkJCWlmKGdldGVycmVsZXZlbCgpID09IEVSUk9SKQorCQkJCQlwZ3N0YXRfcmVw b3J0X3ZhY3V1bV9lcnJvcihlcnJpbmZvLT5yZWxvaWQsIFBHU1RBVF9FWFRWQUNfVEFCTEUp OworCiAJCQlpZiAoQmxvY2tOdW1iZXJJc1ZhbGlkKGVycmluZm8tPmJsa25vKSkKIAkJCXsK IAkJCQlpZiAoT2Zmc2V0TnVtYmVySXNWYWxpZChlcnJpbmZvLT5vZmZudW0pKQpAQCAtNDA5 NSw2ICs0MDk4LDkgQEAgdmFjdXVtX2Vycm9yX2NhbGxiYWNrKHZvaWQgKmFyZykKIAkJCWJy ZWFrOwogCiAJCWNhc2UgVkFDVVVNX0VSUkNCX1BIQVNFX1ZBQ1VVTV9IRUFQOgorCQkJaWYo Z2V0ZXJyZWxldmVsKCkgPT0gRVJST1IpCisJCQkJcGdzdGF0X3JlcG9ydF92YWN1dW1fZXJy b3IoZXJyaW5mby0+cmVsb2lkLCBQR1NUQVRfRVhUVkFDX1RBQkxFKTsKKwogCQkJaWYgKEJs b2NrTnVtYmVySXNWYWxpZChlcnJpbmZvLT5ibGtubykpCiAJCQl7CiAJCQkJaWYgKE9mZnNl dE51bWJlcklzVmFsaWQoZXJyaW5mby0+b2ZmbnVtKSkKQEAgLTQxMTAsMTYgKzQxMTYsMjUg QEAgdmFjdXVtX2Vycm9yX2NhbGxiYWNrKHZvaWQgKmFyZykKIAkJCWJyZWFrOwogCiAJCWNh c2UgVkFDVVVNX0VSUkNCX1BIQVNFX1ZBQ1VVTV9JTkRFWDoKKwkJCWlmKGdldGVycmVsZXZl bCgpID09IEVSUk9SKQorCQkJCXBnc3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9yKGVycmluZm8t PmluZG9pZCwgUEdTVEFUX0VYVFZBQ19JTkRFWCk7CisKIAkJCWVycmNvbnRleHQoIndoaWxl IHZhY3V1bWluZyBpbmRleCBcIiVzXCIgb2YgcmVsYXRpb24gXCIlcy4lc1wiIiwKIAkJCQkJ ICAgZXJyaW5mby0+aW5kbmFtZSwgZXJyaW5mby0+cmVsbmFtZXNwYWNlLCBlcnJpbmZvLT5y ZWxuYW1lKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgVkFDVVVNX0VSUkNCX1BIQVNFX0lOREVY X0NMRUFOVVA6CisJCQlpZihnZXRlcnJlbGV2ZWwoKSA9PSBFUlJPUikKKwkJCQlwZ3N0YXRf cmVwb3J0X3ZhY3V1bV9lcnJvcihlcnJpbmZvLT5pbmRvaWQsIFBHU1RBVF9FWFRWQUNfSU5E RVgpOworCiAJCQllcnJjb250ZXh0KCJ3aGlsZSBjbGVhbmluZyB1cCBpbmRleCBcIiVzXCIg b2YgcmVsYXRpb24gXCIlcy4lc1wiIiwKIAkJCQkJICAgZXJyaW5mby0+aW5kbmFtZSwgZXJy aW5mby0+cmVsbmFtZXNwYWNlLCBlcnJpbmZvLT5yZWxuYW1lKTsKIAkJCWJyZWFrOwogCiAJ CWNhc2UgVkFDVVVNX0VSUkNCX1BIQVNFX1RSVU5DQVRFOgorCQkJaWYoZ2V0ZXJyZWxldmVs KCkgPT0gRVJST1IpCisJCQkJcGdzdGF0X3JlcG9ydF92YWN1dW1fZXJyb3IoZXJyaW5mby0+ cmVsb2lkLCBQR1NUQVRfRVhUVkFDX1RBQkxFKTsKKwogCQkJaWYgKEJsb2NrTnVtYmVySXNW YWxpZChlcnJpbmZvLT5ibGtubykpCiAJCQkJZXJyY29udGV4dCgid2hpbGUgdHJ1bmNhdGlu ZyByZWxhdGlvbiBcIiVzLiVzXCIgdG8gJXUgYmxvY2tzIiwKIAkJCQkJCSAgIGVycmluZm8t PnJlbG5hbWVzcGFjZSwgZXJyaW5mby0+cmVsbmFtZSwgZXJyaW5mby0+Ymxrbm8pOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IGI0MTg3ZTVhZDU0Li4wZjgz NDZkN2IzYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Mu c3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApAQCAtMTQ5 Myw0ICsxNDkzLDI5IEBAIEZST00KICAgcGdfY2xhc3MgcmVsCiAgIEpPSU4gcGdfbmFtZXNw YWNlIG5zIE9OIG5zLm9pZCA9IHJlbC5yZWxuYW1lc3BhY2UsCiAgIExBVEVSQUwgcGdfc3Rh dF9nZXRfdmFjdXVtX2luZGV4ZXMocmVsLm9pZCkgc3RhdHMKLVdIRVJFIHJlbC5yZWxraW5k ID0gJ2knOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK1dIRVJFIHJlbC5yZWxraW5k ID0gJ2knOworCitDUkVBVEUgVklFVyBwZ19zdGF0X3ZhY3V1bV9kYXRhYmFzZSBBUworU0VM RUNUCisgIGRiLm9pZCBhcyBkYm9pZCwKKyAgZGIuZGF0bmFtZSBBUyBkYm5hbWUsCisKKyAg c3RhdHMuZGJfYmxrc19yZWFkIEFTIGRiX2Jsa3NfcmVhZCwKKyAgc3RhdHMuZGJfYmxrc19o aXQgQVMgZGJfYmxrc19oaXQsCisgIHN0YXRzLnRvdGFsX2Jsa3NfZGlydGllZCBBUyB0b3Rh bF9ibGtzX2RpcnRpZWQsCisgIHN0YXRzLnRvdGFsX2Jsa3Nfd3JpdHRlbiBBUyB0b3RhbF9i bGtzX3dyaXR0ZW4sCisKKyAgc3RhdHMud2FsX3JlY29yZHMgQVMgd2FsX3JlY29yZHMsCisg IHN0YXRzLndhbF9mcGkgQVMgd2FsX2ZwaSwKKyAgc3RhdHMud2FsX2J5dGVzIEFTIHdhbF9i eXRlcywKKworICBzdGF0cy5ibGtfcmVhZF90aW1lIEFTIGJsa19yZWFkX3RpbWUsCisgIHN0 YXRzLmJsa193cml0ZV90aW1lIEFTIGJsa193cml0ZV90aW1lLAorCisgIHN0YXRzLmRlbGF5 X3RpbWUgQVMgZGVsYXlfdGltZSwKKyAgc3RhdHMudG90YWxfdGltZSBBUyB0b3RhbF90aW1l LAorICBzdGF0cy53cmFwYXJvdW5kX2ZhaWxzYWZlIEFTIHdyYXBhcm91bmRfZmFpbHNhZmUs CisgIHN0YXRzLmVycm9ycyBBUyBlcnJvcnMKK0ZST00KKyAgcGdfZGF0YWJhc2UgZGIsCisg IExBVEVSQUwgcGdfc3RhdF9nZXRfdmFjdXVtX2RhdGFiYXNlKGRiLm9pZCkgc3RhdHM7Clwg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvYWN0aXZpdHkvcGdzdGF0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0 YXQuYwppbmRleCBmNWY3NWFhNDI2NC4uODU1NTc3MzZhM2EgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L3Bnc3RhdC5jCkBAIC0yMDMsNyArMjAzLDcgQEAgc3RhdGljIGlubGluZSBi b29sIHBnc3RhdF9pc19raW5kX3ZhbGlkKFBnU3RhdF9LaW5kIGtpbmQpOwogCiBib29sCQlw Z3N0YXRfdHJhY2tfY291bnRzID0gZmFsc2U7CiBpbnQJCQlwZ3N0YXRfZmV0Y2hfY29uc2lz dGVuY3kgPSBQR1NUQVRfRkVUQ0hfQ09OU0lTVEVOQ1lfQ0FDSEU7Ci1ib29sCQlwZ3N0YXRf dHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MgPSB0cnVlOworYm9vbAkJcGdzdGF0X3RyYWNrX3Zh Y3V1bV9zdGF0aXN0aWNzID0gZmFsc2U7CiAKIC8qIC0tLS0tLS0tLS0KICAqIHN0YXRlIHNo YXJlZCB3aXRoIHBnc3RhdF8qLmMKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fj dGl2aXR5L3Bnc3RhdF9kYXRhYmFzZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkv cGdzdGF0X2RhdGFiYXNlLmMKaW5kZXggYjMxZjIwZDQxYmMuLjY1MjA3ZDMwMzc4IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2UuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2UuYwpAQCAt NDg1LDYgKzQ4NSw3IEBAIHBnc3RhdF9kYXRhYmFzZV9mbHVzaF9jYihQZ1N0YXRfRW50cnlS ZWYgKmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpCiAJcGdzdGF0X3VubG9ja19lbnRyeShlbnRy eV9yZWYpOwogCiAJbWVtc2V0KHBlbmRpbmdlbnQsIDAsIHNpemVvZigqcGVuZGluZ2VudCkp OworCW1lbXNldCgmKHBlbmRpbmdlbnQpLT52YWN1dW1fZXh0LCAwLCBzaXplb2YoRXh0VmFj UmVwb3J0KSk7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMKaW5kZXggOWVlMDM1MDk0OTAuLjE2OTU2ODBl YTYyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVs YXRpb24uYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRp b24uYwpAQCAtMjA1LDYgKzIwNSwzOCBAQCBwZ3N0YXRfZHJvcF9yZWxhdGlvbihSZWxhdGlv biByZWwpCiAJfQogfQogCisvKiAtLS0tLS0tLS0KKyAqIHBnc3RhdF9yZXBvcnRfdmFjdXVt X2Vycm9yKCkgLQorICoKKyAqCVRlbGwgdGhlIGNvbGxlY3RvciBhYm91dCBhbiAoYXV0byl2 YWN1dW0gaW50ZXJydXB0aW9uLgorICogLS0tLS0tLS0tCisgKi8KK3ZvaWQKK3Bnc3RhdF9y ZXBvcnRfdmFjdXVtX2Vycm9yKE9pZCB0YWJsZW9pZCwgRXh0VmFjUmVwb3J0VHlwZSBtX3R5 cGUpCit7CisJUGdTdGF0X0VudHJ5UmVmICplbnRyeV9yZWY7CisJUGdTdGF0U2hhcmVkX1Jl bGF0aW9uICpzaHRhYmVudHJ5OworCVBnU3RhdF9TdGF0VGFiRW50cnkgKnRhYmVudHJ5Owor CU9pZAkJCWRib2lkID0gIE15RGF0YWJhc2VJZDsKKwlQZ1N0YXRfU3RhdERCRW50cnkgKmRi ZW50cnk7CS8qIHBlbmRpbmcgZGF0YWJhc2UgZW50cnkgKi8KKworCWlmICghcGdzdGF0X3Ry YWNrX2NvdW50cykKKwkJcmV0dXJuOworCisJZW50cnlfcmVmID0gcGdzdGF0X2dldF9lbnRy eV9yZWZfbG9ja2VkKFBHU1RBVF9LSU5EX1JFTEFUSU9OLAorCQkJCQkJCQkJCQlkYm9pZCwg dGFibGVvaWQsIGZhbHNlKTsKKworCXNodGFiZW50cnkgPSAoUGdTdGF0U2hhcmVkX1JlbGF0 aW9uICopIGVudHJ5X3JlZi0+c2hhcmVkX3N0YXRzOworCXRhYmVudHJ5ID0gJnNodGFiZW50 cnktPnN0YXRzOworCisJdGFiZW50cnktPnZhY3V1bV9leHQudHlwZSA9IG1fdHlwZTsKKwlw Z3N0YXRfdW5sb2NrX2VudHJ5KGVudHJ5X3JlZik7CisKKwlkYmVudHJ5ID0gcGdzdGF0X3By ZXBfZGF0YWJhc2VfcGVuZGluZyhkYm9pZCk7CisJZGJlbnRyeS0+dmFjdXVtX2V4dC5lcnJv cnMrKzsKKwlkYmVudHJ5LT52YWN1dW1fZXh0LnR5cGUgPSBtX3R5cGU7Cit9CisKIC8qCiAg KiBSZXBvcnQgdGhhdCB0aGUgdGFibGUgd2FzIGp1c3QgdmFjdXVtZWQgYW5kIGZsdXNoIElP IHN0YXRpc3RpY3MuCiAgKi8KQEAgLTIxNiw2ICsyNDgsNyBAQCBwZ3N0YXRfcmVwb3J0X3Zh Y3V1bShPaWQgdGFibGVvaWQsIGJvb2wgc2hhcmVkLAogCVBnU3RhdF9FbnRyeVJlZiAqZW50 cnlfcmVmOwogCVBnU3RhdFNoYXJlZF9SZWxhdGlvbiAqc2h0YWJlbnRyeTsKIAlQZ1N0YXRf U3RhdFRhYkVudHJ5ICp0YWJlbnRyeTsKKwlQZ1N0YXRTaGFyZWRfRGF0YWJhc2UgKmRiZW50 cnk7CiAJT2lkCQkJZGJvaWQgPSAoc2hhcmVkID8gSW52YWxpZE9pZCA6IE15RGF0YWJhc2VJ ZCk7CiAJVGltZXN0YW1wVHogdHM7CiAJUGdTdGF0X0NvdW50ZXIgZWxhcHNlZHRpbWU7CkBA IC0yNzQsNiArMzA3LDE2IEBAIHBnc3RhdF9yZXBvcnRfdmFjdXVtKE9pZCB0YWJsZW9pZCwg Ym9vbCBzaGFyZWQsCiAJICovCiAJcGdzdGF0X2ZsdXNoX2lvKGZhbHNlKTsKIAkodm9pZCkg cGdzdGF0X2ZsdXNoX2JhY2tlbmQoZmFsc2UsIFBHU1RBVF9CQUNLRU5EX0ZMVVNIX0lPKTsK KworCWlmIChkYm9pZCAhPSBJbnZhbGlkT2lkKQorCXsKKwkJZW50cnlfcmVmID0gcGdzdGF0 X2dldF9lbnRyeV9yZWZfbG9ja2VkKFBHU1RBVF9LSU5EX0RBVEFCQVNFLAorCQkJCQkJCQkJ CQlkYm9pZCwgSW52YWxpZE9pZCwgZmFsc2UpOworCQlkYmVudHJ5ID0gKFBnU3RhdFNoYXJl ZF9EYXRhYmFzZSAqKSBlbnRyeV9yZWYtPnNoYXJlZF9zdGF0czsKKworCQlwZ3N0YXRfYWNj dW11bGF0ZV9leHR2YWNfc3RhdHMoJmRiZW50cnktPnN0YXRzLnZhY3V1bV9leHQsIHBhcmFt cywgZmFsc2UpOworCQlwZ3N0YXRfdW5sb2NrX2VudHJ5KGVudHJ5X3JlZik7CisJfQogfQog CiAvKgpAQCAtMTAzMCw2ICsxMDczLDggQEAgcGdzdGF0X2FjY3VtdWxhdGVfZXh0dmFjX3N0 YXRzKEV4dFZhY1JlcG9ydCAqZHN0LCBFeHRWYWNSZXBvcnQgKnNyYywKIAlkc3QtPmJsa193 cml0ZV90aW1lICs9IHNyYy0+YmxrX3dyaXRlX3RpbWU7CiAJZHN0LT5kZWxheV90aW1lICs9 IHNyYy0+ZGVsYXlfdGltZTsKIAlkc3QtPnRvdGFsX3RpbWUgKz0gc3JjLT50b3RhbF90aW1l OworCWRzdC0+d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudCArPSBzcmMtPndyYXBhcm91bmRf ZmFpbHNhZmVfY291bnQ7CisJZHN0LT5lcnJvcnMgKz0gc3JjLT5lcnJvcnM7CiAKIAlpZiAo IWFjY3VtdWxhdGVfcmVsdHlwZV9zcGVjaWZpY19pbmZvKQogCQlyZXR1cm47CkBAIC0xMDU3 LDcgKzExMDIsNiBAQCBwZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNfc3RhdHMoRXh0VmFjUmVw b3J0ICpkc3QsIEV4dFZhY1JlcG9ydCAqc3JjLAogCQkJZHN0LT50YWJsZS5pbmRleF92YWN1 dW1fY291bnQgKz0gc3JjLT50YWJsZS5pbmRleF92YWN1dW1fY291bnQ7CiAJCQlkc3QtPnRh YmxlLm1pc3NlZF9kZWFkX3BhZ2VzICs9IHNyYy0+dGFibGUubWlzc2VkX2RlYWRfcGFnZXM7 CiAJCQlkc3QtPnRhYmxlLm1pc3NlZF9kZWFkX3R1cGxlcyArPSBzcmMtPnRhYmxlLm1pc3Nl ZF9kZWFkX3R1cGxlczsKLQkJCWRzdC0+dGFibGUud3JhcGFyb3VuZF9mYWlsc2FmZV9jb3Vu dCArPSBzcmMtPnRhYmxlLndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQ7CiAJCX0KIAkJZWxz ZSBpZiAoZHN0LT50eXBlID09IFBHU1RBVF9FWFRWQUNfSU5ERVgpCiAJCXsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKaW5kZXggMTVmYTNkZTA4NzEuLmMyYWNkY2YwZTBl IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwpAQCAtMjM4Myw3ICsyMzgz LDcgQEAgcGdfc3RhdF9nZXRfdmFjdXVtX3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCXZh bHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxlLnJlY2VudGx5X2Rl YWRfdHVwbGVzKTsKIAl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50 YWJsZS5taXNzZWRfZGVhZF90dXBsZXMpOwogCi0JdmFsdWVzW2krK10gPSBJbnQzMkdldERh dHVtKGV4dHZhY3V1bS0+dGFibGUud3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudCk7CisJdmFs dWVzW2krK10gPSBJbnQzMkdldERhdHVtKGV4dHZhY3V1bS0+d3JhcGFyb3VuZF9mYWlsc2Fm ZV9jb3VudCk7CiAJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dGFi bGUuaW5kZXhfdmFjdXVtX2NvdW50KTsKIAogCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1 bShleHR2YWN1dW0tPndhbF9yZWNvcmRzKTsKQEAgLTI1MTMsNiArMjUxMywxMDQgQEAgcGdf c3RhdF9nZXRfdmFjdXVtX2luZGV4ZXMoUEdfRlVOQ1RJT05fQVJHUykKIAogCUFzc2VydChp ID09IFBHX1NUQVRfR0VUX1ZBQ1VVTV9JTkRFWF9TVEFUU19DT0xTKTsKIAorCS8qIFJldHVy bnMgdGhlIHJlY29yZCBhcyBEYXR1bSAqLworCVBHX1JFVFVSTl9EQVRVTShIZWFwVHVwbGVH ZXREYXR1bShoZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBudWxscykpKTsKK30K KworRGF0dW0KK3BnX3N0YXRfZ2V0X3ZhY3V1bV9kYXRhYmFzZShQR19GVU5DVElPTl9BUkdT KQoreworCSNkZWZpbmUgUEdfU1RBVF9HRVRfVkFDVVVNX0RBVEFCQVNFX1NUQVRTX0NPTFMJ MTQKKworCU9pZAkJCQkJCSBkYmlkID0gUEdfR0VUQVJHX09JRCgwKTsKKwlQZ1N0YXRfU3Rh dERCRW50cnkgCQkqZGJlbnRyeTsKKwlFeHRWYWNSZXBvcnQgCQkJKmV4dHZhY3V1bTsKKwlU dXBsZURlc2MJCQkJIHR1cGRlc2M7CisJRGF0dW0JCQkJCSB2YWx1ZXNbUEdfU1RBVF9HRVRf VkFDVVVNX0RBVEFCQVNFX1NUQVRTX0NPTFNdID0gezB9OworCWJvb2wJCQkJCSBudWxsc1tQ R19TVEFUX0dFVF9WQUNVVU1fREFUQUJBU0VfU1RBVFNfQ09MU10gPSB7MH07CisJY2hhcgkJ CQkJIGJ1ZlsyNTZdOworCWludAkJCQkJCSBpID0gMDsKKwlFeHRWYWNSZXBvcnQgYWxsemVy bzsKKworCS8qIEluaXRpYWxpc2UgYXR0cmlidXRlcyBpbmZvcm1hdGlvbiBpbiB0aGUgdHVw bGUgZGVzY3JpcHRvciAqLworCXR1cGRlc2MgPSBDcmVhdGVUZW1wbGF0ZVR1cGxlRGVzYyhQ R19TVEFUX0dFVF9WQUNVVU1fREFUQUJBU0VfU1RBVFNfQ09MUyk7CisKKwlUdXBsZURlc2NJ bml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImRiaWQiLAorCQkJCQkgICBJ TlQ0T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVt YmVyKSArK2ksICJ0b3RhbF8gYmxrc19yZWFkIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDAp OworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAidG90 YWxfYmxrc19oaXQiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5p dEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ0b3RhbF9ibGtzX2RpcnRpZWQi LAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRl c2MsIChBdHRyTnVtYmVyKSArK2ksICJ0b3RhbF9ibGtzX3dyaXR0ZW4iLAorCQkJCQkgICBJ TlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVt YmVyKSArK2ksICJ3YWxfcmVjb3JkcyIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlU dXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgIndhbF9mcGki LAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRl c2MsIChBdHRyTnVtYmVyKSArK2ksICJ3YWxfYnl0ZXMiLAorCQkJCQkgICBOVU1FUklDT0lE LCAtMSwgMCk7CisKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIp ICsraSwgImJsa19yZWFkX3RpbWUiLAorCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsKKwlU dXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImJsa193cml0 ZV90aW1lIiwKKwkJCQkJICAgRkxPQVQ4T0lELCAtMSwgMCk7CisKKwlUdXBsZURlc2NJbml0 RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImRlbGF5X3RpbWUiLAorCQkJCQkg ICBGTE9BVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0 dHJOdW1iZXIpICsraSwgInRvdGFsX3RpbWUiLAorCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAw KTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgIndy YXBhcm91bmRfZmFpbHNhZmVfY291bnQiLAorCQkJCQkgICBJTlQ0T0lELCAtMSwgMCk7CisJ VHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJlcnJvcnMi LAorCQkJCQkgICBJTlQ0T0lELCAtMSwgMCk7CisKKwlBc3NlcnQoaSA9PSBQR19TVEFUX0dF VF9WQUNVVU1fREFUQUJBU0VfU1RBVFNfQ09MUyk7CisKKwlCbGVzc1R1cGxlRGVzYyh0dXBk ZXNjKTsKKworCWRiZW50cnkgPSBwZ3N0YXRfZmV0Y2hfc3RhdF9kYmVudHJ5KGRiaWQpOwor CisJaWYgKGRiZW50cnkgPT0gTlVMTCkKKwl7CisJCS8qIElmIHRoZSBzdWJzY3JpcHRpb24g aXMgbm90IGZvdW5kLCBpbml0aWFsaXNlIGl0cyBzdGF0cyAqLworCQltZW1zZXQoJmFsbHpl cm8sIDAsIHNpemVvZihFeHRWYWNSZXBvcnQpKTsKKwkJZXh0dmFjdXVtID0gJmFsbHplcm87 CisJfQorCWVsc2UKKwl7CisJCWV4dHZhY3V1bSA9ICYoZGJlbnRyeS0+dmFjdXVtX2V4dCk7 CisJfQorCisJaSA9IDA7CisKKwl2YWx1ZXNbaSsrXSA9IE9iamVjdElkR2V0RGF0dW0oZGJp ZCk7CisKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50b3RhbF9i bGtzX3JlYWQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRv dGFsX2Jsa3NfaGl0KTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVt LT50b3RhbF9ibGtzX2RpcnRpZWQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShl eHR2YWN1dW0tPnRvdGFsX2Jsa3Nfd3JpdHRlbik7CisKKwl2YWx1ZXNbaSsrXSA9IEludDY0 R2V0RGF0dW0oZXh0dmFjdXVtLT53YWxfcmVjb3Jkcyk7CisJdmFsdWVzW2krK10gPSBJbnQ2 NEdldERhdHVtKGV4dHZhY3V1bS0+d2FsX2ZwaSk7CisKKwkvKiBDb252ZXJ0IHRvIG51bWVy aWMsIGxpa2UgcGdfc3RhdF9zdGF0ZW1lbnRzICovCisJc25wcmludGYoYnVmLCBzaXplb2Yg YnVmLCBVSU5UNjRfRk9STUFULCBleHR2YWN1dW0tPndhbF9ieXRlcyk7CisJdmFsdWVzW2kr K10gPSBEaXJlY3RGdW5jdGlvbkNhbGwzKG51bWVyaWNfaW4sCisJCQkJCQkJCQkgIENTdHJp bmdHZXREYXR1bShidWYpLAorCQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKDApLAorCQkJ CQkJCQkJICBJbnQzMkdldERhdHVtKC0xKSk7CisKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdl dERhdHVtKGV4dHZhY3V1bS0+YmxrX3JlYWRfdGltZSk7CisJdmFsdWVzW2krK10gPSBGbG9h dDhHZXREYXR1bShleHR2YWN1dW0tPmJsa193cml0ZV90aW1lKTsKKwl2YWx1ZXNbaSsrXSA9 IEZsb2F0OEdldERhdHVtKGV4dHZhY3V1bS0+ZGVsYXlfdGltZSk7CisJdmFsdWVzW2krK10g PSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPnRvdGFsX3RpbWUpOworCXZhbHVlc1tpKytd ID0gSW50MzJHZXREYXR1bShleHR2YWN1dW0tPndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQp OworCXZhbHVlc1tpKytdID0gSW50MzJHZXREYXR1bShleHR2YWN1dW0tPmVycm9ycyk7CisK KwlBc3NlcnQoaSA9PSBQR19TVEFUX0dFVF9WQUNVVU1fREFUQUJBU0VfU1RBVFNfQ09MUyk7 CisKIAkvKiBSZXR1cm5zIHRoZSByZWNvcmQgYXMgRGF0dW0gKi8KIAlQR19SRVRVUk5fREFU VU0oSGVhcFR1cGxlR2V0RGF0dW0oaGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywg bnVsbHMpKSk7CiB9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgYi9zcmMvYmFja2VuZC91dGls cy9taXNjL2d1Y190YWJsZXMuYwppbmRleCA0MmY0Y2FjNWUwZS4uYTI0ZGVjNjNmM2EgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCkBAIC0xNTE0LDcgKzE1MTQsNyBA QCBzdHJ1Y3QgY29uZmlnX2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10gPQogCQkJTlVMTAog CQl9LAogCQkmcGdzdGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzLAotCQl0cnVlLAorCQlm YWxzZSwKIAkJTlVMTCwgTlVMTCwgTlVMTAogCX0sCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJv Yy5kYXQKaW5kZXggNTU4YjMxM2QwZGIuLjQ3MTBiZjk5N2M0IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKQEAgLTEyNTg1LDEyICsxMjU4NSwyMSBAQAogICBwcm9wYXJhbGxlbCA9 PiAncicsIHByb3JldHR5cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKICAg cHJvc3JjID0+ICdwZ19zdGF0X2dldF9yZXZfYWxsX2Zyb3plbl9wYWdlcycgfSwKIHsgb2lk ID0+ICc4MDA0JywKLSAgZGVzY3IgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRleGVzIHJl dHVybiBzdGF0cyB2YWx1ZXMnLAorICBkZXNjciA9PiAncGdfc3RhdF9nZXRfdmFjdXVtX2lu ZGV4ZXMgcmV0dXJucyB2YWN1dW0gc3RhdHMgdmFsdWVzIGZvciBpbmRleCcsCiAgIHByb25h bWUgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRleGVzJywgcHJvcm93cyA9PiAxMDAwLCBw cm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcscHJvaXNzdHJpY3Qg PT4gJ2YnLAogICBwcm9yZXRzZXQgPT4gJ3QnLAogICBwcm9hcmd0eXBlcyA9PiAnb2lkJywK ICAgcHJvYWxsYXJndHlwZXMgPT4gJ3tvaWQsb2lkLGludDgsaW50OCxpbnQ4LGludDgsaW50 OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsbnVtZXJpYyxmbG9hdDgsZmxvYXQ4LGZsb2F0 OCxmbG9hdDh9JywKICAgcHJvYXJnbW9kZXMgPT4gJ3tpLG8sbyxvLG8sbyxvLG8sbyxvLG8s byxvLG8sbyxvLG99JywKICAgcHJvYXJnbmFtZXMgPT4gJ3tyZWxvaWQscmVsaWQsdG90YWxf Ymxrc19yZWFkLHRvdGFsX2Jsa3NfaGl0LHRvdGFsX2Jsa3NfZGlydGllZCx0b3RhbF9ibGtz X3dyaXR0ZW4scmVsX2Jsa3NfcmVhZCxyZWxfYmxrc19oaXQscGFnZXNfZGVsZXRlZCx0dXBs ZXNfZGVsZXRlZCx3YWxfcmVjb3Jkcyx3YWxfZnBpLHdhbF9ieXRlcyxibGtfcmVhZF90aW1l LGJsa193cml0ZV90aW1lLGRlbGF5X3RpbWUsdG90YWxfdGltZX0nLAotICBwcm9zcmMgPT4g J3BnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRleGVzJyB9CisgIHByb3NyYyA9PiAncGdfc3RhdF9n ZXRfdmFjdXVtX2luZGV4ZXMnIH0sCit7IG9pZCA9PiAnODAwNScsCisgIGRlc2NyID0+ICdw Z19zdGF0X2dldF92YWN1dW1fZGF0YWJhc2UgcmV0dXJucyB2YWN1dW0gc3RhdHMgdmFsdWVz IGZvciBkYXRhYmFzZScsCisgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV9kYXRh YmFzZScsIHByb3Jvd3MgPT4gMTAwMCwgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBl ID0+ICdyZWNvcmQnLHByb2lzc3RyaWN0ID0+ICdmJywKKyAgcHJvcmV0c2V0ID0+ICd0JywK KyAgcHJvYXJndHlwZXMgPT4gJ29pZCcsCisgIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLG9p ZCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxudW1lcmljLGZsb2F0OCxmbG9hdDgs ZmxvYXQ4LGZsb2F0OCxpbnQ0LGludDR9JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tpLG8sbyxv LG8sbyxvLG8sbyxvLG8sbyxvLG8sb30nLAorICBwcm9hcmduYW1lcyA9PiAne2RiaWQsZGJv aWQsZGJfYmxrc19yZWFkLGRiX2Jsa3NfaGl0LHRvdGFsX2Jsa3NfZGlydGllZCx0b3RhbF9i bGtzX3dyaXR0ZW4sd2FsX3JlY29yZHMsd2FsX2ZwaSx3YWxfYnl0ZXMsYmxrX3JlYWRfdGlt ZSxibGtfd3JpdGVfdGltZSxkZWxheV90aW1lLHRvdGFsX3RpbWUsd3JhcGFyb3VuZF9mYWls c2FmZSxlcnJvcnN9JywKKyAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF92YWN1dW1fZGF0YWJh c2UnIH0sCiBdCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaCBiL3NyYy9pbmNs dWRlL3Bnc3RhdC5oCmluZGV4IDRkZWYyYzYwZDFkLi5mODE1OGFhMzUzYyAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvcGdzdGF0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKQEAg LTE1NCw2ICsxNTQsOSBAQCB0eXBlZGVmIHN0cnVjdCBFeHRWYWNSZXBvcnQKIAogCWludDY0 CQl0dXBsZXNfZGVsZXRlZDsJCS8qIHR1cGxlcyBkZWxldGVkIGJ5IHZhY3V1bSAqLwogCisJ aW50MzIJCWVycm9yczsKKwlpbnQzMgkJd3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudDsJLyog dGhlIG51bWJlciBvZiB0aW1lcyB0byBwcmV2ZW50IHdyYXBhcm91bmQgcHJvYmxlbSAqLwor CiAJRXh0VmFjUmVwb3J0VHlwZSB0eXBlOwkJLyogaGVhcCwgaW5kZXgsIGV0Yy4gKi8KIAog CS8qIC0tLS0tLS0tLS0KQEAgLTE4Myw3ICsxODYsNiBAQCB0eXBlZGVmIHN0cnVjdCBFeHRW YWNSZXBvcnQKIAkJCWludDY0CQltaXNzZWRfZGVhZF90dXBsZXM7CQkvKiB0dXBsZXMgbm90 IHBydW5lZCBieSB2YWN1dW0gZHVlIHRvIGZhaWx1cmUgdG8gZ2V0IGEgY2xlYW51cCBsb2Nr ICovCiAJCQlpbnQ2NAkJbWlzc2VkX2RlYWRfcGFnZXM7CQkvKiBwYWdlcyB3aXRoIG1pc3Nl ZCBkZWFkIHR1cGxlcyAqLwogCQkJaW50NjQJCWluZGV4X3ZhY3V1bV9jb3VudDsJLyogbnVt YmVyIG9mIGluZGV4IHZhY3V1bWluZ3MgKi8KLQkJCWludDMyCQl3cmFwYXJvdW5kX2ZhaWxz YWZlX2NvdW50OwkvKiBudW1iZXIgb2YgZW1lcmdlbmN5IHZhY3V1bXMgdG8gcHJldmVudCBh bnRpLXdyYXBhcm91bmQgc2h1dGRvd24gKi8KIAkJfQkJCXRhYmxlOwogCQlzdHJ1Y3QKIAkJ ewpAQCAtNzYyLDYgKzc2NCw3IEBAIGV4dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfdmFjdXVt KE9pZCB0YWJsZW9pZCwgYm9vbCBzaGFyZWQsCiBleHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0 X2FuYWx5emUoUmVsYXRpb24gcmVsLAogCQkJCQkJCQkgIFBnU3RhdF9Db3VudGVyIGxpdmV0 dXBsZXMsIFBnU3RhdF9Db3VudGVyIGRlYWR0dXBsZXMsCiAJCQkJCQkJCSAgYm9vbCByZXNl dGNvdW50ZXIsIFRpbWVzdGFtcFR6IHN0YXJ0dGltZSk7CitleHRlcm4gdm9pZCBwZ3N0YXRf cmVwb3J0X3ZhY3V1bV9lcnJvcihPaWQgdGFibGVvaWQsIEV4dFZhY1JlcG9ydFR5cGUgbV90 eXBlKTsKIAogLyoKICAqIElmIHN0YXRzIGFyZSBlbmFibGVkLCBidXQgcGVuZGluZyBkYXRh IGhhc24ndCBiZWVuIHByZXBhcmVkIHlldCwgY2FsbApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv aXNvbGF0aW9uL3NwZWNzL3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQuc3Bl YyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy92YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0 YWJsZS1yZWFkLnNwZWMKaW5kZXggNTg5M2Q4OTU3M2QuLmNmZWMzMTU5NTgwIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3MvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBl dGFibGUtcmVhZC5zcGVjCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy92YWN1dW0t ZXh0ZW5kaW5nLWluLXJlcGV0YWJsZS1yZWFkLnNwZWMKQEAgLTE4LDYgKzE4LDkgQEAgdGVh cmRvd24KIH0KIAogc2Vzc2lvbiBzMQorc2V0dXAJCXsKKyAgICBTRVQgdHJhY2tfdmFjdXVt X3N0YXRpc3RpY3MgVE8gJ29uJzsKKyAgICB9CiBzdGVwIHMxX2JlZ2luX3JlcGVhdGFibGVf cmVhZCAgIHsKICAgQkVHSU4gdHJhbnNhY3Rpb24gSVNPTEFUSU9OIExFVkVMIFJFUEVBVEFC TEUgUkVBRDsKICAgc2VsZWN0IGNvdW50KGl2YWwpIGZyb20gdGVzdF92YWN1dW1fc3RhdF9p c29sYXRpb24gd2hlcmUgaWQ+OTAwOwpAQCAtMjUsNiArMjgsOSBAQCBzdGVwIHMxX2JlZ2lu X3JlcGVhdGFibGVfcmVhZCAgIHsKIHN0ZXAgczFfY29tbWl0ICAgICAgICAgICAgICAgICAg eyBDT01NSVQ7IH0KIAogc2Vzc2lvbiBzMgorc2V0dXAJCXsKKyAgICBTRVQgdHJhY2tfdmFj dXVtX3N0YXRpc3RpY3MgVE8gJ29uJzsKKyAgICB9CiBzdGVwIHMyX2luc2VydCAgICAgICAg ICAgICAgICAgIHsgSU5TRVJUIElOVE8gdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24oaWQs IGl2YWwpIFNFTEVDVCBpdmFsLCBpdmFsJTEwIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAw MCkgQXMgaXZhbDsgfQogc3RlcCBzMl91cGRhdGUgICAgICAgICAgICAgICAgICB7IFVQREFU RSB0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbiBTRVQgaXZhbCA9IGl2YWwgKyAyIHdoZXJl IGlkID4gOTAwOyB9CiBzdGVwIHMyX2RlbGV0ZSAgICAgICAgICAgICAgICAgIHsgREVMRVRF IEZST00gdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24gd2hlcmUgaWQgPiA5MDA7IH0KZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggNGU1ZTVjYTU0ZGEuLmY2M2Yy NWY5NGQ4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dApAQCAtMjI4Myw2 ICsyMjgzLDIzIEBAIHBnX3N0YXRfdXNlcl90YWJsZXN8IFNFTEVDVCByZWxpZCwKICAgICBy ZXZfYWxsX3Zpc2libGVfcGFnZXMKICAgIEZST00gcGdfc3RhdF9hbGxfdGFibGVzCiAgIFdI RVJFICgoc2NoZW1hbmFtZSA8PiBBTEwgKEFSUkFZWydwZ19jYXRhbG9nJzo6bmFtZSwgJ2lu Zm9ybWF0aW9uX3NjaGVtYSc6Om5hbWVdKSkgQU5EIChzY2hlbWFuYW1lICF+ICdecGdfdG9h c3QnOjp0ZXh0KSk7CitwZ19zdGF0X3ZhY3V1bV9kYXRhYmFzZXwgU0VMRUNUIGRiLm9pZCBB UyBkYm9pZCwKKyAgICBkYi5kYXRuYW1lIEFTIGRibmFtZSwKKyAgICBzdGF0cy5kYl9ibGtz X3JlYWQsCisgICAgc3RhdHMuZGJfYmxrc19oaXQsCisgICAgc3RhdHMudG90YWxfYmxrc19k aXJ0aWVkLAorICAgIHN0YXRzLnRvdGFsX2Jsa3Nfd3JpdHRlbiwKKyAgICBzdGF0cy53YWxf cmVjb3JkcywKKyAgICBzdGF0cy53YWxfZnBpLAorICAgIHN0YXRzLndhbF9ieXRlcywKKyAg ICBzdGF0cy5ibGtfcmVhZF90aW1lLAorICAgIHN0YXRzLmJsa193cml0ZV90aW1lLAorICAg IHN0YXRzLmRlbGF5X3RpbWUsCisgICAgc3RhdHMudG90YWxfdGltZSwKKyAgICBzdGF0cy53 cmFwYXJvdW5kX2ZhaWxzYWZlLAorICAgIHN0YXRzLmVycm9ycworICAgRlJPTSBwZ19kYXRh YmFzZSBkYiwKKyAgICBMQVRFUkFMIHBnX3N0YXRfZ2V0X3ZhY3V1bV9kYXRhYmFzZShkYi5v aWQpIHN0YXRzKGRib2lkLCBkYl9ibGtzX3JlYWQsIGRiX2Jsa3NfaGl0LCB0b3RhbF9ibGtz X2RpcnRpZWQsIHRvdGFsX2Jsa3Nfd3JpdHRlbiwgd2FsX3JlY29yZHMsIHdhbF9mcGksIHdh bF9ieXRlcywgYmxrX3JlYWRfdGltZSwgYmxrX3dyaXRlX3RpbWUsIGRlbGF5X3RpbWUsIHRv dGFsX3RpbWUsIHdyYXBhcm91bmRfZmFpbHNhZmUsIGVycm9ycyk7CiBwZ19zdGF0X3ZhY3V1 bV9pbmRleGVzfCBTRUxFQ1QgcmVsLm9pZCBBUyByZWxpZCwKICAgICBucy5uc3BuYW1lIEFT IHNjaGVtYW5hbWUsCiAgICAgcmVsLnJlbG5hbWUsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV9pbmRleF9zdGF0aXN0aWNzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVtX2luZGV4X3N0YXRpc3RpY3Mub3V0CmluZGV4IGUw MGEwZmM2ODNjLi45ZTVkMzMzNDJjOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC92YWN1dW1faW5kZXhfc3RhdGlzdGljcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC92YWN1dW1faW5kZXhfc3RhdGlzdGljcy5vdXQKQEAgLTE2LDggKzE2 LDEyIEBAIFNIT1cgdHJhY2tfY291bnRzOyAgLS0gbXVzdCBiZSBvbgogXHNldCBzYW1wbGVf c2l6ZSAxMDAwMAogLS0gbm90IGVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0IHdlIHdhbnQgdG8g dGVzdCBpdC4uLgogU0VUIHRyYWNrX2Z1bmN0aW9ucyBUTyAnYWxsJzsKLS0tIFRlc3QgdGhh dCB2YWN1dW0gc3RhdGlzdGljcyB3aWxsIGJlIGVtcHR5IHdoZW4gcGFyYW1ldGVyIGlzIG9m Zi4KLVNFVCB0cmFja192YWN1dW1fc3RhdGlzdGljcyBUTyAnb2ZmJzsKK1NIT1cgdHJhY2tf dmFjdXVtX3N0YXRpc3RpY3M7ICAtLSBtdXN0IGJlIG9mZgorIHRyYWNrX3ZhY3V1bV9zdGF0 aXN0aWNzIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIG9mZgorKDEgcm93KQorCiBD UkVBVEUgVEFCTEUgdmVzdGF0ICh4IGludCkgV0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVkID0g b2ZmLCBmaWxsZmFjdG9yID0gMTApOwogSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OwogQU5BTFlaRSB2ZXN0 YXQ7CkBAIC0zMywxMiArMzcsNyBAQCBXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdCc7CiAK IFJFU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzOwogRFJPUCBUQUJMRSB2ZXN0YXQgQ0FT Q0FERTsKLVNIT1cgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3M7ICAtLSBtdXN0IGJlIG9uCi0g dHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0g b24KLSgxIHJvdykKLQorU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzIFRPICdvbic7CiAt LSBlbnN1cmUgcGVuZGluZyBzdGF0cyBhcmUgZmx1c2hlZAogU0VMRUNUIHBnX3N0YXRfZm9y Y2VfbmV4dF9mbHVzaCgpOwogIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCAKQEAgLTE4MSwz ICsxODAsNCBAQCBXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBBTkQgdnQucmVs aWQgPSBjLm9pZDsKICgxIHJvdykKIAogRFJPUCBUQUJMRSB2ZXN0YXQ7CitSRVNFVCB0cmFj a192YWN1dW1fc3RhdGlzdGljczsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvdmFjdXVtX3RhYmxlc19hbmRfZGJfc3RhdGlzdGljcy5vdXQKc2ltaWxhcml0 eSBpbmRleCA4MiUKcmVuYW1lIGZyb20gc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC92YWN1 dW1fdGFibGVzX3N0YXRpc3RpY3Mub3V0CnJlbmFtZSB0byBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3ZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Mub3V0CmluZGV4IGI1ZWE5 YzlhYjFlLi4wMzAwZTdiNjI3NiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Mub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvdmFjdXVtX3RhYmxlc19hbmRfZGJfc3RhdGlzdGljcy5vdXQKQEAgLTYs NyArNiw2IEBACiAtLSBudW1iZXIgb2YgZnJvemVuIGFuZCB2aXNpYmxlIHBhZ2VzIHJlbW92 ZWQgYnkgYmFja2VuZC4KIC0tIFN0YXRpc3RpYyB3YWxfZnBpIGlzIG5vdCBkaXNwbGF5ZWQg aW4gdGhpcyB0ZXN0IGJlY2F1c2UgaXRzIGJlaGF2aW9yIGlzIHVuc3RhYmxlLgogLS0KLS0t IGNvbmRpdGlvIHNpbmUgcXVhIG5vbgogU0hPVyB0cmFja19jb3VudHM7ICAtLSBtdXN0IGJl IG9uCiAgdHJhY2tfY291bnRzIAogLS0tLS0tLS0tLS0tLS0KQEAgLTE2LDggKzE1LDEyIEBA IFNIT1cgdHJhY2tfY291bnRzOyAgLS0gbXVzdCBiZSBvbgogXHNldCBzYW1wbGVfc2l6ZSAx MDAwMAogLS0gbm90IGVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0IHdlIHdhbnQgdG8gdGVzdCBp dC4uLgogU0VUIHRyYWNrX2Z1bmN0aW9ucyBUTyAnYWxsJzsKLS0tIFRlc3QgdGhhdCB2YWN1 dW0gc3RhdGlzdGljcyB3aWxsIGJlIGVtcHR5IHdoZW4gcGFyYW1ldGVyIGlzIG9mZi4KLVNF VCB0cmFja192YWN1dW1fc3RhdGlzdGljcyBUTyAnb2ZmJzsKK1NIT1cgdHJhY2tfdmFjdXVt X3N0YXRpc3RpY3M7ICAtLSBtdXN0IGJlIG9mZgorIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNz IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIG9mZgorKDEgcm93KQorCiBDUkVBVEUg VEFCTEUgdmVzdGF0ICh4IGludCkgV0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmLCBm aWxsZmFjdG9yID0gMTApOwogSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OwogQU5BTFlaRSB2ZXN0YXQ7CkBA IC0zNywxMiArNDAsMTIgQEAgV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnOwogCiBSRVNF VCB0cmFja192YWN1dW1fc3RhdGlzdGljczsKIERST1AgVEFCTEUgdmVzdGF0IENBU0NBREU7 Ci1TSE9XIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzOyAgLS0gbXVzdCBiZSBvbgotIHRyYWNr X3ZhY3V1bV9zdGF0aXN0aWNzIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIG9uCi0o MSByb3cpCi0KK0NSRUFURSBEQVRBQkFTRSByZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1f ZGI7CitDUkVBVEUgREFUQUJBU0UgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiMTsK K1xjIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYjsKK1NFVCB0cmFja192YWN1dW1f c3RhdGlzdGljcyBUTyBvbjsKKy0tIG5vdCBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCB3ZSB3 YW50IHRvIHRlc3QgaXQuLi4KK1NFVCB0cmFja19mdW5jdGlvbnMgVE8gJ2FsbCc7CiAtLSBl bnN1cmUgcGVuZGluZyBzdGF0cyBhcmUgZmx1c2hlZAogU0VMRUNUIHBnX3N0YXRfZm9yY2Vf bmV4dF9mbHVzaCgpOwogIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCAKQEAgLTIyNSwzICsy MjgsNjkgQEAgRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMsIHBnX3N0YXRfYWxsX3RhYmxl cyBXSEVSRSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsbmEKICgxIHJvdykKIAogRFJPUCBU QUJMRSB2ZXN0YXQgQ0FTQ0FERTsKKy0tIE5vdyBjaGVjayB2YWN1dW0gc3RhdGlzdGljcyBm b3IgY3VycmVudCBkYXRhYmFzZQorU0VMRUNUIGRibmFtZSwKKyAgICAgICBkYl9ibGtzX2hp dCA+IDAgQVMgZGJfYmxrc19oaXQsCisgICAgICAgdG90YWxfYmxrc19kaXJ0aWVkID4gMCBB UyB0b3RhbF9ibGtzX2RpcnRpZWQsCisgICAgICAgdG90YWxfYmxrc193cml0dGVuID4gMCBB UyB0b3RhbF9ibGtzX3dyaXR0ZW4sCisgICAgICAgd2FsX3JlY29yZHMgPiAwIEFTIHdhbF9y ZWNvcmRzLAorICAgICAgIHdhbF9mcGkgPiAwIEFTIHdhbF9mcGksCisgICAgICAgd2FsX2J5 dGVzID4gMCBBUyB3YWxfYnl0ZXMsCisgICAgICAgdG90YWxfdGltZSA+IDAgQVMgdG90YWxf dGltZQorRlJPTQorcGdfc3RhdF92YWN1dW1fZGF0YWJhc2UKK1dIRVJFIGRibmFtZSA9IGN1 cnJlbnRfZGF0YWJhc2UoKTsKKyAgICAgICAgICAgICBkYm5hbWUgICAgICAgICAgICAgfCBk Yl9ibGtzX2hpdCB8IHRvdGFsX2Jsa3NfZGlydGllZCB8IHRvdGFsX2Jsa3Nfd3JpdHRlbiB8 IHdhbF9yZWNvcmRzIHwgd2FsX2ZwaSB8IHdhbF9ieXRlcyB8IHRvdGFsX3RpbWUgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1 bV9kYiB8IHQgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAg ICAgICAgIHwgdCAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgdAorKDEgcm93 KQorCistLSBlbnN1cmUgcGVuZGluZyBzdGF0cyBhcmUgZmx1c2hlZAorU0VMRUNUIHBnX3N0 YXRfZm9yY2VfbmV4dF9mbHVzaCgpOworIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK0NSRUFURSBUQUJMRSB2 ZXN0YXQgKHggaW50KSBXSVRIIChhdXRvdmFjdXVtX2VuYWJsZWQgPSBvZmYsIGZpbGxmYWN0 b3IgPSAxMCk7CitJTlNFUlQgSU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSw6c2FtcGxlX3NpemUpIGFzIHg7CitBTkFMWVpFIHZlc3RhdDsKK1VQREFURSB2 ZXN0YXQgU0VUIHggPSAxMDAwMTsKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdF X0xJTUlUIDEyOCkgdmVzdGF0OworXGMgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2Ri MTsKK1NFVCB0cmFja192YWN1dW1fc3RhdGlzdGljcyBUTyBvbjsKKy0tIE5vdyBjaGVjayB2 YWN1dW0gc3RhdGlzdGljcyBmb3IgcG9zdGdyZXMgZGF0YWJhc2UgZnJvbSBhbm90aGVyIGRh dGFiYXNlCitTRUxFQ1QgZGJuYW1lLAorICAgICAgIGRiX2Jsa3NfaGl0ID4gMCBBUyBkYl9i bGtzX2hpdCwKKyAgICAgICB0b3RhbF9ibGtzX2RpcnRpZWQgPiAwIEFTIHRvdGFsX2Jsa3Nf ZGlydGllZCwKKyAgICAgICB0b3RhbF9ibGtzX3dyaXR0ZW4gPiAwIEFTIHRvdGFsX2Jsa3Nf d3JpdHRlbiwKKyAgICAgICB3YWxfcmVjb3JkcyA+IDAgQVMgd2FsX3JlY29yZHMsCisgICAg ICAgd2FsX2ZwaSA+IDAgQVMgd2FsX2ZwaSwKKyAgICAgICB3YWxfYnl0ZXMgPiAwIEFTIHdh bF9ieXRlcywKKyAgICAgICB0b3RhbF90aW1lID4gMCBBUyB0b3RhbF90aW1lCitGUk9NCitw Z19zdGF0X3ZhY3V1bV9kYXRhYmFzZQorV0hFUkUgZGJuYW1lID0gJ3JlZ3Jlc3Npb25fc3Rh dGlzdGljX3ZhY3V1bV9kYic7CisgICAgICAgICAgICAgZGJuYW1lICAgICAgICAgICAgIHwg ZGJfYmxrc19oaXQgfCB0b3RhbF9ibGtzX2RpcnRpZWQgfCB0b3RhbF9ibGtzX3dyaXR0ZW4g fCB3YWxfcmVjb3JkcyB8IHdhbF9mcGkgfCB3YWxfYnl0ZXMgfCB0b3RhbF90aW1lIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyByZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1 dW1fZGIgfCB0ICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAg ICAgICAgICB8IHQgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHQKKygxIHJv dykKKworXGMgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiCitTRVQgdHJhY2tfdmFj dXVtX3N0YXRpc3RpY3MgVE8gb247CitEUk9QIFRBQkxFIHZlc3RhdCBDQVNDQURFOworXGMg cmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiMTsKK1NFVCB0cmFja192YWN1dW1fc3Rh dGlzdGljcyBUTyBvbjsKK1NFTEVDVCBjb3VudCgqKQorRlJPTSBwZ19kYXRhYmFzZSBkCitD Uk9TUyBKT0lOIHBnX3N0YXRfZ2V0X3ZhY3V1bV90YWJsZXMoMCkKK1dIRVJFIG9pZCA9IDA7 IC0tIG11c3QgYmUgMAorIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK1xj IHBvc3RncmVzCitEUk9QIERBVEFCQVNFIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9k YjE7CitEUk9QIERBVEFCQVNFIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYjsKK1JF U0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2No ZWR1bGUKaW5kZXggMDE5NzgzMGI1Y2QuLmZhMjQ4OTcxNmNjIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv cGFyYWxsZWxfc2NoZWR1bGUKQEAgLTE0NSw0ICsxNDUsNCBAQCB0ZXN0OiB0YWJsZXNwYWNl CiAjIENoZWNrIHZhY3V1bSBzdGF0aXN0aWNzCiAjIC0tLS0tLS0tLS0KIHRlc3Q6IHZhY3V1 bV9pbmRleF9zdGF0aXN0aWNzCi10ZXN0OiB2YWN1dW1fdGFibGVzX3N0YXRpc3RpY3MKXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit0ZXN0OiB2YWN1dW1fdGFibGVzX2FuZF9kYl9z dGF0aXN0aWNzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvdmFjdXVtX2luZGV4X3N0YXRpc3RpY3Muc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvdmFjdXVtX2luZGV4X3N0YXRpc3RpY3Muc3FsCmluZGV4IGFlMTQ2 ZTFkMjNmLi45YjdlNjQ1MTg3ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv dmFjdXVtX2luZGV4X3N0YXRpc3RpY3Muc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3ZhY3V1bV9pbmRleF9zdGF0aXN0aWNzLnNxbApAQCAtMTQsOCArMTQsNyBAQCBTSE9XIHRy YWNrX2NvdW50czsgIC0tIG11c3QgYmUgb24KIC0tIG5vdCBlbmFibGVkIGJ5IGRlZmF1bHQs IGJ1dCB3ZSB3YW50IHRvIHRlc3QgaXQuLi4KIFNFVCB0cmFja19mdW5jdGlvbnMgVE8gJ2Fs bCc7CiAKLS0tIFRlc3QgdGhhdCB2YWN1dW0gc3RhdGlzdGljcyB3aWxsIGJlIGVtcHR5IHdo ZW4gcGFyYW1ldGVyIGlzIG9mZi4KLVNFVCB0cmFja192YWN1dW1fc3RhdGlzdGljcyBUTyAn b2ZmJzsKK1NIT1cgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3M7ICAtLSBtdXN0IGJlIG9mZgog CiBDUkVBVEUgVEFCTEUgdmVzdGF0ICh4IGludCkgV0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVk ID0gb2ZmLCBmaWxsZmFjdG9yID0gMTApOwogSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4 IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OwpAQCAtMzMsNyAr MzIsNyBAQCBXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdCc7CiBSRVNFVCB0cmFja192YWN1 dW1fc3RhdGlzdGljczsKIERST1AgVEFCTEUgdmVzdGF0IENBU0NBREU7CiAKLVNIT1cgdHJh Y2tfdmFjdXVtX3N0YXRpc3RpY3M7ICAtLSBtdXN0IGJlIG9uCitTRVQgdHJhY2tfdmFjdXVt X3N0YXRpc3RpY3MgVE8gJ29uJzsKIAogLS0gZW5zdXJlIHBlbmRpbmcgc3RhdHMgYXJlIGZs dXNoZWQKIFNFTEVDVCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2goKTsKQEAgLTE0OSwzICsx NDgsNCBAQCBGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgdnQsIHBnX2NsYXNzIGMKIFdI RVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0X3BrZXknIEFORCB2dC5yZWxpZCA9IGMub2lkOwog CiBEUk9QIFRBQkxFIHZlc3RhdDsKK1JFU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzOwpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdmFjdXVtX3RhYmxlc19zdGF0aXN0 aWNzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNfYW5kX2RiX3N0 YXRpc3RpY3Muc3FsCnNpbWlsYXJpdHkgaW5kZXggODElCnJlbmFtZSBmcm9tIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGljcy5zcWwKcmVuYW1lIHRvIHNy Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Muc3Fs CmluZGV4IDViYzM0YmVjNjRiLi5jYTdkYmRlOTM4NyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzLnNxbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC92YWN1dW1fdGFibGVzX2FuZF9kYl9zdGF0aXN0aWNzLnNxbApAQCAt NywxNSArNywxMyBAQAogLS0gU3RhdGlzdGljIHdhbF9mcGkgaXMgbm90IGRpc3BsYXllZCBp biB0aGlzIHRlc3QgYmVjYXVzZSBpdHMgYmVoYXZpb3IgaXMgdW5zdGFibGUuCiAtLQogCi0t LSBjb25kaXRpbyBzaW5lIHF1YSBub24KIFNIT1cgdHJhY2tfY291bnRzOyAgLS0gbXVzdCBi ZSBvbgogXHNldCBzYW1wbGVfc2l6ZSAxMDAwMAogCiAtLSBub3QgZW5hYmxlZCBieSBkZWZh dWx0LCBidXQgd2Ugd2FudCB0byB0ZXN0IGl0Li4uCiBTRVQgdHJhY2tfZnVuY3Rpb25zIFRP ICdhbGwnOwogCi0tLSBUZXN0IHRoYXQgdmFjdXVtIHN0YXRpc3RpY3Mgd2lsbCBiZSBlbXB0 eSB3aGVuIHBhcmFtZXRlciBpcyBvZmYuCi1TRVQgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3Mg VE8gJ29mZic7CitTSE9XIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzOyAgLS0gbXVzdCBiZSBv ZmYKIAogQ1JFQVRFIFRBQkxFIHZlc3RhdCAoeCBpbnQpIFdJVEggKGF1dG92YWN1dW1fZW5h YmxlZCA9IG9mZiwgZmlsbGZhY3RvciA9IDEwKTsKIElOU0VSVCBJTlRPIHZlc3RhdCBTRUxF Q1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpzYW1wbGVfc2l6ZSkgYXMgeDsKQEAgLTM2 LDcgKzM0LDEzIEBAIFdIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JzsKIFJFU0VUIHRyYWNr X3ZhY3V1bV9zdGF0aXN0aWNzOwogRFJPUCBUQUJMRSB2ZXN0YXQgQ0FTQ0FERTsKIAotU0hP VyB0cmFja192YWN1dW1fc3RhdGlzdGljczsgIC0tIG11c3QgYmUgb24KK0NSRUFURSBEQVRB QkFTRSByZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGI7CitDUkVBVEUgREFUQUJBU0Ug cmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiMTsKK1xjIHJlZ3Jlc3Npb25fc3RhdGlz dGljX3ZhY3V1bV9kYjsKK1NFVCB0cmFja192YWN1dW1fc3RhdGlzdGljcyBUTyBvbjsKKwor LS0gbm90IGVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0IHdlIHdhbnQgdG8gdGVzdCBpdC4uLgor U0VUIHRyYWNrX2Z1bmN0aW9ucyBUTyAnYWxsJzsKIAogLS0gZW5zdXJlIHBlbmRpbmcgc3Rh dHMgYXJlIGZsdXNoZWQKIFNFTEVDVCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2goKTsKQEAg LTE4MCw0ICsxODQsNTkgQEAgVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElN SVQgMTI4KSB2ZXN0YXQ7CiBTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcyA9IDpwZiBBUyB2 bV9uZXdfZnJvemVuX3BhZ2VzLHZtX25ld192aXNpYmxlX3BhZ2VzID0gOnB2IEFTIHZtX25l d192aXNpYmxlX3BhZ2VzLHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyA9IDpwdmYgQVMg dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzLCByZXZfYWxsX2Zyb3plbl9wYWdlcyA9IDpo YWZwIEFTIHJldl9hbGxfZnJvemVuX3BhZ2VzLHJldl9hbGxfdmlzaWJsZV9wYWdlcyA9IDpo YXZwIEFTIHJldl9hbGxfdmlzaWJsZV9wYWdlcwogRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJs ZXMsIHBnX3N0YXRfYWxsX3RhYmxlcyBXSEVSRSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVs bmFtZSA9ICd2ZXN0YXQnIGFuZCBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsaWQgPSBwZ19z dGF0X2FsbF90YWJsZXMucmVsaWQ7CiAKLURST1AgVEFCTEUgdmVzdGF0IENBU0NBREU7Clwg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorRFJPUCBUQUJMRSB2ZXN0YXQgQ0FTQ0FERTsK KworLS0gTm93IGNoZWNrIHZhY3V1bSBzdGF0aXN0aWNzIGZvciBjdXJyZW50IGRhdGFiYXNl CitTRUxFQ1QgZGJuYW1lLAorICAgICAgIGRiX2Jsa3NfaGl0ID4gMCBBUyBkYl9ibGtzX2hp dCwKKyAgICAgICB0b3RhbF9ibGtzX2RpcnRpZWQgPiAwIEFTIHRvdGFsX2Jsa3NfZGlydGll ZCwKKyAgICAgICB0b3RhbF9ibGtzX3dyaXR0ZW4gPiAwIEFTIHRvdGFsX2Jsa3Nfd3JpdHRl biwKKyAgICAgICB3YWxfcmVjb3JkcyA+IDAgQVMgd2FsX3JlY29yZHMsCisgICAgICAgd2Fs X2ZwaSA+IDAgQVMgd2FsX2ZwaSwKKyAgICAgICB3YWxfYnl0ZXMgPiAwIEFTIHdhbF9ieXRl cywKKyAgICAgICB0b3RhbF90aW1lID4gMCBBUyB0b3RhbF90aW1lCitGUk9NCitwZ19zdGF0 X3ZhY3V1bV9kYXRhYmFzZQorV0hFUkUgZGJuYW1lID0gY3VycmVudF9kYXRhYmFzZSgpOwor CistLSBlbnN1cmUgcGVuZGluZyBzdGF0cyBhcmUgZmx1c2hlZAorU0VMRUNUIHBnX3N0YXRf Zm9yY2VfbmV4dF9mbHVzaCgpOworCitDUkVBVEUgVEFCTEUgdmVzdGF0ICh4IGludCkgV0lU SCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmLCBmaWxsZmFjdG9yID0gMTApOworSU5TRVJU IElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9z aXplKSBhcyB4OworQU5BTFlaRSB2ZXN0YXQ7CitVUERBVEUgdmVzdGF0IFNFVCB4ID0gMTAw MDE7CitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgpIHZlc3Rh dDsKKworXGMgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiMTsKK1NFVCB0cmFja192 YWN1dW1fc3RhdGlzdGljcyBUTyBvbjsKKworLS0gTm93IGNoZWNrIHZhY3V1bSBzdGF0aXN0 aWNzIGZvciBwb3N0Z3JlcyBkYXRhYmFzZSBmcm9tIGFub3RoZXIgZGF0YWJhc2UKK1NFTEVD VCBkYm5hbWUsCisgICAgICAgZGJfYmxrc19oaXQgPiAwIEFTIGRiX2Jsa3NfaGl0LAorICAg ICAgIHRvdGFsX2Jsa3NfZGlydGllZCA+IDAgQVMgdG90YWxfYmxrc19kaXJ0aWVkLAorICAg ICAgIHRvdGFsX2Jsa3Nfd3JpdHRlbiA+IDAgQVMgdG90YWxfYmxrc193cml0dGVuLAorICAg ICAgIHdhbF9yZWNvcmRzID4gMCBBUyB3YWxfcmVjb3JkcywKKyAgICAgICB3YWxfZnBpID4g MCBBUyB3YWxfZnBpLAorICAgICAgIHdhbF9ieXRlcyA+IDAgQVMgd2FsX2J5dGVzLAorICAg ICAgIHRvdGFsX3RpbWUgPiAwIEFTIHRvdGFsX3RpbWUKK0ZST00KK3BnX3N0YXRfdmFjdXVt X2RhdGFiYXNlCitXSEVSRSBkYm5hbWUgPSAncmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVt X2RiJzsKKworXGMgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiCitTRVQgdHJhY2tf dmFjdXVtX3N0YXRpc3RpY3MgVE8gb247CisKK0RST1AgVEFCTEUgdmVzdGF0IENBU0NBREU7 CisKK1xjIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYjE7CitTRVQgdHJhY2tfdmFj dXVtX3N0YXRpc3RpY3MgVE8gb247CitTRUxFQ1QgY291bnQoKikKK0ZST00gcGdfZGF0YWJh c2UgZAorQ1JPU1MgSk9JTiBwZ19zdGF0X2dldF92YWN1dW1fdGFibGVzKDApCitXSEVSRSBv aWQgPSAwOyAtLSBtdXN0IGJlIDAKKworXGMgcG9zdGdyZXMKK0RST1AgREFUQUJBU0UgcmVn cmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiMTsKK0RST1AgREFUQUJBU0UgcmVncmVzc2lv bl9zdGF0aXN0aWNfdmFjdXVtX2RiOworUkVTRVQgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3M7 ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotLSAKMi4zNC4xCgo= --------------IUDxn0gVtf2vbFzxDscYGnji Content-Type: text/x-patch; charset=UTF-8; name="v22-0004-Add-documentation-about-the-system-views-that-are-us.patch" Content-Disposition: attachment; filename*0="v22-0004-Add-documentation-about-the-system-views-that-are-u"; filename*1="s.patch" Content-Transfer-Encoding: base64 RnJvbSBkNmZmNGNkZmMyMmUyNzIxZmY3ZDFjMWU5MWUzNDA5NzY0MjBlMjllIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogVGh1LCAxOSBEZWMgMjAyNCAxMjo1Nzo0OSArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggNC80XSBBZGQgZG9jdW1lbnRhdGlvbiBhYm91dCB0aGUgc3lzdGVtIHZp ZXdzIHRoYXQgYXJlIHVzZWQgaW4KIHRoZSBtYWNoaW5lcnkgb2YgdmFjdXVtIHN0YXRpc3Rp Y3MuCgotLS0KIGRvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbCB8IDc1NSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA3NTUgaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbCBi L2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbAppbmRleCBiNThjNTJlYTUwZi4uN2U1 YWNkN2M1MmUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwKQEAgLTU0NzQsNCArNTQ3NCw3 NTkgQEAgU0VMRUNUICogRlJPTSBwZ19sb2NrcyBwbCBMRUZUIEpPSU4gcGdfcHJlcGFyZWRf eGFjdHMgcHB4CiAgIDwvdGFibGU+CiAgPC9zZWN0MT4KIAorPHNlY3QxIGlkPSJ2aWV3LXBn LXN0YXQtdmFjdXVtLWRhdGFiYXNlIj4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3N0YXRf dmFjdXVtX2RhdGFiYXNlPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6 b25lPSJ2aWV3LXBnLXN0YXQtdmFjdXVtLWRhdGFiYXNlIj4KKyAgIDxwcmltYXJ5PnBnX3N0 YXRfdmFjdXVtX2RhdGFiYXNlPC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8cGFy YT4KKyAgIFRoZSB2aWV3IDxzdHJ1Y3RuYW1lPnBnX3N0YXRfdmFjdXVtX2RhdGFiYXNlPC9z dHJ1Y3RuYW1lPiB3aWxsIGNvbnRhaW4KKyAgIG9uZSByb3cgZm9yIGVhY2ggZGF0YWJhc2Ug aW4gdGhlIGN1cnJlbnQgY2x1c3Rlciwgc2hvd2luZyBzdGF0aXN0aWNzIGFib3V0CisgICB2 YWN1dW1pbmcgdGhhdCBkYXRhYmFzZS4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0 aXRsZT48c3RydWN0bmFtZT5wZ19zdGF0X3ZhY3V1bV9kYXRhYmFzZTwvc3RydWN0bmFtZT4g Q29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4K KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmRi aWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBPSUQgb2YgYSBkYXRhYmFzZQorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9ibGtzX3JlYWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5p bnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJl ciBvZiBkYXRhYmFzZSBibG9ja3MgcmVhZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAg ICBwZXJmb3JtZWQgb24gdGhpcyBkYXRhYmFzZQorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD50b3RhbF9ibGtzX2hpdDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRp bWVzIGRhdGFiYXNlIGJsb2NrcyB3ZXJlIGZvdW5kIGluIHRoZQorICAgICAgICBidWZmZXIg Y2FjaGUgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMg ZGF0YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfYmxr c19kaXJ0aWVkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGF0YWJhc2UgYmxvY2tzIGRp cnRpZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMg ZGF0YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfYmxr c193cml0dGVuPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGF0YWJhc2UgYmxvY2tzIHdy aXR0ZW4gYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMg ZGF0YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX3JlY29y ZHM8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgIFRvdGFsIG51bWJlciBvZiBXQUwgcmVjb3JkcyBnZW5lcmF0 ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgZGF0 YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX2ZwaTwvc3Ry dWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICAgVG90YWwgbnVtYmVyIG9mIFdBTCBmdWxsIHBhZ2UgaW1hZ2VzIGdlbmVy YXRlZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyBk YXRhYmFzZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD53YWxfYnl0ZXM8 L3N0cnVjdGZpZWxkPiA8dHlwZT5udW1lcmljPC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgIFRvdGFsIGFtb3VudCBvZiBXQUwgYnl0ZXMgZ2VuZXJhdGVk IGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIGRhdGFi YXNlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmJsa19yZWFkX3RpbWU8 L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCByZWFkaW5nIGRhdGFiYXNlIGJsb2NrcyBi eSB2YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24KKyAgICAgICAgdGhpcyBkYXRhYmFz ZSwgaW4gbWlsbGlzZWNvbmRzIChpZiA8eHJlZiBsaW5rZW5kPSJndWMtdHJhY2staW8tdGlt aW5nIi8+IGlzIGVuYWJsZWQsCisgICAgICAgIG90aGVyd2lzZSB6ZXJvKQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ibGtfd3JpdGVfdGltZTwvc3RydWN0ZmllbGQ+ IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgICBUaW1lIHNwZW50IHdyaXRpbmcgZGF0YWJhc2UgYmxvY2tzIGJ5IHZhY3V1bSBvcGVy YXRpb25zIHBlcmZvcm1lZCBvbgorICAgICAgICB0aGlzIGRhdGFiYXNlLCBpbiBtaWxsaXNl Y29uZHMgKGlmIDx4cmVmIGxpbmtlbmQ9Imd1Yy10cmFjay1pby10aW1pbmciLz4gaXMgZW5h YmxlZCwKKyAgICAgICAgb3RoZXJ3aXNlIHplcm8pCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPmRlbGF5X3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCBz bGVlcGluZyBpbiBhIHZhY3V1bSBkZWxheSBwb2ludCBieSB2YWN1dW0gb3BlcmF0aW9ucyBw ZXJmb3JtZWQgb24KKyAgICAgICAgdGhpcyBkYXRhYmFzZSwgaW4gbWlsbGlzZWNvbmRzIChz ZWUgPHhyZWYgbGlua2VuZD0icnVudGltZS1jb25maWctcmVzb3VyY2UtdmFjdXVtLWNvc3Qi Lz4KKyAgICAgICAgZm9yIGRldGFpbHMpCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnN5c3RlbV90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFN5c3RlbSBDUFUgdGltZSBv ZiB2YWN1dW1pbmcgdGhpcyBkYXRhYmFzZSwgaW4gbWlsbGlzZWNvbmRzCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnVzZXJfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBl PmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBV c2VyIENQVSB0aW1lIG9mIHZhY3V1bWluZyB0aGlzIGRhdGFiYXNlLCBpbiBtaWxsaXNlY29u ZHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfdGltZTwvc3Ry dWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgICBUb3RhbCB0aW1lIG9mIHZhY3V1bWluZyB0aGlzIGRhdGFiYXNlLCBp biBtaWxsaXNlY29uZHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d3Jh cGFyb3VuZF9mYWlsc2FmZV9jb3VudDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRpbWVz IHRoZSB2YWN1dW0gd2FzIHJ1biB0byBwcmV2ZW50IGEgd3JhcGFyb3VuZCBwcm9ibGVtLgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5lcnJvcnM8L3N0cnVjdGZpZWxk PiA8dHlwZT5pbnQ0PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgIE51bWJlciBvZiB0aW1lcyB2YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24gdGhp cyBkYXRhYmFzZQorICAgICAgICB3ZXJlIGludGVycnVwdGVkIG9uIGFueSBlcnJvcnMKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90 Z3JvdXA+CisgIDwvdGFibGU+CisgPC9zZWN0MT4KKworICA8c2VjdDEgaWQ9InZpZXctcGct c3RhdC12YWN1dW0taW5kZXhlcyI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19zdGF0X3Zh Y3V1bV9pbmRleGVzPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25l PSJ2aWV3LXBnLXN0YXQtdmFjdXVtLWluZGV4ZXMiPgorICAgPHByaW1hcnk+cGdfc3RhdF92 YWN1dW1faW5kZXhlczwvcHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+Cisg ICBUaGUgdmlldyA8c3RydWN0bmFtZT5wZ19zdGF0X3ZhY3V1bV9pbmRleGVzPC9zdHJ1Y3Ru YW1lPiB3aWxsIGNvbnRhaW4KKyAgIG9uZSByb3cgZm9yIGVhY2ggaW5kZXggaW4gdGhlIGN1 cnJlbnQgZGF0YWJhc2UgKGluY2x1ZGluZyBUT0FTVAorICAgdGFibGUgaW5kZXhlcyksIHNo b3dpbmcgc3RhdGlzdGljcyBhYm91dCB2YWN1dW1pbmcgdGhhdCBzcGVjaWZpYyBpbmRleC4K KyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19zdGF0 X3ZhY3V1bV9pbmRleGVzPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0Z3Jv dXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cmVsaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5v aWQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBPSUQgb2Yg YW4gaW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+c2NoZW1hPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+bmFtZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgICBOYW1lIG9mIHRoZSBzY2hlbWEgdGhpcyBpbmRleCBpcyBpbgorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5yZWxuYW1lPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+bmFtZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IE5hbWUgb2YgdGhpcyBpbmRleAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD50b3RhbF9ibGtzX3JlYWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiBkYXRhYmFzZSBi bG9ja3MgcmVhZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24g dGhpcyBpbmRleAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9i bGtzX2hpdDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRpbWVzIGRhdGFiYXNlIGJsb2Nr cyB3ZXJlIGZvdW5kIGluIHRoZQorICAgICAgICBidWZmZXIgY2FjaGUgYnkgdmFjdXVtIG9w ZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgaW5kZXgKKyAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfYmxrc19kaXJ0aWVkPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgICBOdW1iZXIgb2YgZGF0YWJhc2UgYmxvY2tzIGRpcnRpZWQgYnkgdmFjdXVtIG9wZXJh dGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgaW5kZXgKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfYmxrc193cml0dGVuPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg ICBOdW1iZXIgb2YgZGF0YWJhc2UgYmxvY2tzIHdyaXR0ZW4gYnkgdmFjdXVtIG9wZXJhdGlv bnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgaW5kZXgKKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAg ICAgICA8c3RydWN0ZmllbGQ+cmVsX2Jsa3NfcmVhZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmlu dDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVy IG9mIGJsb2NrcyB2YWN1dW0gb3BlcmF0aW9ucyByZWFkIGZyb20gdGhpcworICAgICAgICBp bmRleAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5yZWxfYmxrc19oaXQ8 L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgIE51bWJlciBvZiB0aW1lcyBibG9ja3Mgb2YgdGhpcyBpbmRleCB3 ZXJlIGFscmVhZHkgZm91bmQKKyAgICAgICAgaW4gdGhlIGJ1ZmZlciBjYWNoZSBieSB2YWN1 dW0gb3BlcmF0aW9ucywgc28gdGhhdCBhIHJlYWQgd2FzIG5vdCBuZWNlc3NhcnkKKyAgICAg ICAgKHRoaXMgb25seSBpbmNsdWRlcyBoaXRzIGluIHRoZQorICAgICAgICBwcm9qZWN0OyBi dWZmZXIgY2FjaGUsIG5vdCB0aGUgb3BlcmF0aW5nIHN5c3RlbSdzIGZpbGUgc3lzdGVtIGNh Y2hlKQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wYWdlc19kZWxldGVk PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgcGFnZXMgZGVsZXRlZCBieSB2YWN1dW0gb3Bl cmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyBpbmRleAorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD50dXBsZXNfZGVsZXRlZDwvc3RydWN0ZmllbGQ+IDx0 eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAg TnVtYmVyIG9mIGRlYWQgdHVwbGVzIHZhY3V1bSBvcGVyYXRpb25zIGRlbGV0ZWQgZnJvbSB0 aGlzIGluZGV4CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPndhbF9yZWNv cmRzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgICBUb3RhbCBudW1iZXIgb2YgV0FMIHJlY29yZHMgZ2VuZXJh dGVkIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIGlu ZGV4CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPndhbF9mcGk8L3N0cnVj dGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgIFRvdGFsIG51bWJlciBvZiBXQUwgZnVsbCBwYWdlIGltYWdlcyBnZW5lcmF0 ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgaW5k ZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX2J5dGVzPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+bnVtZXJpYzwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgICBUb3RhbCBhbW91bnQgb2YgV0FMIGJ5dGVzIGdlbmVyYXRlZCBieSB2 YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyBpbmRleAorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ibGtfcmVhZF90aW1lPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgICBUaW1lIHNwZW50IHJlYWRpbmcgZGF0YWJhc2UgYmxvY2tzIGJ5IHZhY3V1bSBv cGVyYXRpb25zIHBlcmZvcm1lZCBvbgorICAgICAgICB0aGlzIGluZGV4LCBpbiBtaWxsaXNl Y29uZHMgKGlmIDx4cmVmIGxpbmtlbmQ9Imd1Yy10cmFjay1pby10aW1pbmciLz4gaXMgZW5h YmxlZCwKKyAgICAgICAgb3RoZXJ3aXNlIHplcm8pCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPmJsa193cml0ZV90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUaW1lIHNwZW50 IHdyaXRpbmcgZGF0YWJhc2UgYmxvY2tzIGJ5IHZhY3V1bSBvcGVyYXRpb25zIHBlcmZvcm1l ZCBvbgorICAgICAgICB0aGlzIGluZGV4LCBpbiBtaWxsaXNlY29uZHMgKGlmIDx4cmVmIGxp bmtlbmQ9Imd1Yy10cmFjay1pby10aW1pbmciLz4gaXMgZW5hYmxlZCwKKyAgICAgICAgb3Ro ZXJ3aXNlIHplcm8pCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmRlbGF5 X3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCBzbGVlcGluZyBpbiBhIHZhY3V1 bSBkZWxheSBwb2ludCBieSB2YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24KKyAgICAg ICAgdGhpcyBpbmRleCwgaW4gbWlsbGlzZWNvbmRzIChzZWUgPHhyZWYgbGlua2VuZD0icnVu dGltZS1jb25maWctcmVzb3VyY2UtdmFjdXVtLWNvc3QiLz4KKyAgICAgICAgZm9yIGRldGFp bHMpCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnN5c3RlbV90aW1lPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgIFN5c3RlbSBDUFUgdGltZSBvZiB2YWN1dW1pbmcgdGhpcyBpbmRl eCwgaW4gbWlsbGlzZWNvbmRzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PnVzZXJfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBVc2VyIENQVSB0aW1lIG9mIHZhY3V1bWlu ZyB0aGlzIGluZGV4LCBpbiBtaWxsaXNlY29uZHMKKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+dG90YWxfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlw ZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUb3RhbCB0aW1lIG9m IHZhY3V1bWluZyB0aGlzIGluZGV4LCBpbiBtaWxsaXNlY29uZHMKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAg PC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJ2aWV3LXBnLXN0YXQtdmFjdXVt LXRhYmxlcyI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19zdGF0X3ZhY3V1bV90YWJsZXM8 L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9InZpZXctcGctc3Rh dC12YWN1dW0tdGFibGVzIj4KKyAgIDxwcmltYXJ5PnBnX3N0YXRfdmFjdXVtX3RhYmxlczwv cHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgdmlldyA8c3Ry dWN0bmFtZT5wZ19zdGF0X3ZhY3V1bV90YWJsZXM8L3N0cnVjdG5hbWU+IHdpbGwgY29udGFp bgorICAgb25lIHJvdyBmb3IgZWFjaCB0YWJsZSBpbiB0aGUgY3VycmVudCBkYXRhYmFzZSAo aW5jbHVkaW5nIFRPQVNUCisgICB0YWJsZXMpLCBzaG93aW5nIHN0YXRpc3RpY3MgYWJvdXQg dmFjdXVtaW5nIHRoYXQgc3BlY2lmaWMgdGFibGUuCisgIDwvcGFyYT4KKworICA8dGFibGU+ CisgICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfc3RhdF92YWN1dW1fdGFibGVzPC9zdHJ1Y3Ru YW1lPiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFk PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRi b2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+cmVsaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBPSUQgb2YgYSB0YWJsZQorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5zY2hlbWE8L3N0cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE5hbWUgb2YgdGhl IHNjaGVtYSB0aGlzIHRhYmxlIGlzIGluCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnJlbG5hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90eXBlPgorICAgICAg PC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGlzIHRhYmxlCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX2Jsa3NfcmVhZDwvc3RydWN0 ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICAgTnVtYmVyIG9mIGRhdGFiYXNlIGJsb2NrcyByZWFkIGJ5IHZhY3V1bSBvcGVy YXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIHRhYmxlCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX2Jsa3NfaGl0PC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBO dW1iZXIgb2YgdGltZXMgZGF0YWJhc2UgYmxvY2tzIHdlcmUgZm91bmQgaW4gdGhlCisgICAg ICAgIGJ1ZmZlciBjYWNoZSBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3Jt ZWQgb24gdGhpcyB0YWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50 b3RhbF9ibGtzX2RpcnRpZWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiBibG9ja3Mgd3Jp dHRlbiBkaXJlY3RseSBieSB2YWN1dW0gb3IgYXV0byB2YWN1dW0uCisgICAgICAgIEJsb2Nr cyB0aGF0IGFyZSBkaXJ0aWVkIGJ5IGEgdmFjdXVtIHByb2Nlc3MgY2FuIGJlIHdyaXR0ZW4g b3V0IGJ5IGFub3RoZXIgcHJvY2Vzcy4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+dG90YWxfYmxrc193cml0dGVuPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlw ZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGF0 YWJhc2UgYmxvY2tzIHdyaXR0ZW4gYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVy Zm9ybWVkIG9uIHRoaXMgdGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+cmVsX2Jsa3NfcmVhZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIGJsb2NrcyB2YWN1 dW0gb3BlcmF0aW9ucyByZWFkIGZyb20gdGhpcworICAgICAgICB0YWJsZQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5yZWxfYmxrc19oaXQ8L3N0cnVjdGZpZWxkPiA8 dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg IE51bWJlciBvZiB0aW1lcyBibG9ja3Mgb2YgdGhpcyB0YWJsZSB3ZXJlIGFscmVhZHkgZm91 bmQKKyAgICAgICAgaW4gdGhlIGJ1ZmZlciBjYWNoZSBieSB2YWN1dW0gb3BlcmF0aW9ucywg c28gdGhhdCBhIHJlYWQgd2FzIG5vdCBuZWNlc3NhcnkKKyAgICAgICAgKHRoaXMgb25seSBp bmNsdWRlcyBoaXRzIGluIHRoZQorICAgICAgICBwcm9qZWN0OyBidWZmZXIgY2FjaGUsIG5v dCB0aGUgb3BlcmF0aW5nIHN5c3RlbSdzIGZpbGUgc3lzdGVtIGNhY2hlKQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wYWdlc19zY2FubmVkPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg ICBOdW1iZXIgb2YgcGFnZXMgZXhhbWluZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAg ICAgcGVyZm9ybWVkIG9uIHRoaXMgdGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+cGFnZXNfcmVtb3ZlZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHBhZ2Vz IHJlbW92ZWQgZnJvbSB0aGUgcGh5c2ljYWwgc3RvcmFnZSBieSB2YWN1dW0gb3BlcmF0aW9u cworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyB0YWJsZQorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD52bV9uZXdfZnJvemVuX3BhZ2VzPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBO dW1iZXIgb2YgdGhlIG51bWJlciBvZiBwYWdlcyBuZXdseSBzZXQgYWxsLWZyb3plbiBieSB2 YWN1dW0KKyAgICAgICAgaW4gdGhlIHZpc2liaWxpdHkgbWFwLgorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD52bV9uZXdfdmlzaWJsZV9wYWdlczwvc3RydWN0ZmllbGQ+ IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICAgTnVtYmVyIG9mIHRoZSBudW1iZXIgb2YgcGFnZXMgbmV3bHkgc2V0IGFsbC12aXNpYmxl IGJ5IHZhY3V1bQorICAgICAgICBpbiB0aGUgdmlzaWJpbGl0eSBtYXAuCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlczwv c3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRoZSBudW1iZXIgb2YgcGFnZXMgbmV3bHkgc2V0 IGFsbC12aXNpYmxlIGFuZCBhbGwtZnJvemVuCisgICAgICAgIGJ5IHZhY3V1bSBpbiB0aGUg dmlzaWJpbGl0eSBtYXAuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnR1 cGxlc19kZWxldGVkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGVhZCB0dXBsZXMgdmFj dXVtIG9wZXJhdGlvbnMgZGVsZXRlZCBmcm9tIHRoaXMgdGFibGUKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+dHVwbGVzX2Zyb3plbjwvc3RydWN0ZmllbGQ+IDx0eXBl PmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVt YmVyIG9mIHR1cGxlcyBvZiB0aGlzIHRhYmxlIHRoYXQgdmFjdXVtIG9wZXJhdGlvbnMgbWFy a2VkIGFzCisgICAgICAgIGZyb3plbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD5yZWNlbnRseV9kZWFkX3R1cGxlczwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIGRl YWQgdHVwbGVzIHZhY3V1bSBvcGVyYXRpb25zIGxlZnQgaW4gdGhpcyB0YWJsZSBkdWUKKyAg ICAgICAgdG8gdGhlaXIgdmlzaWJpbGl0eSBpbiB0cmFuc2FjdGlvbnMKKyAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5taXNzZWRfZGVhZF90dXBsZXM8L3N0cnVjdGZpZWxk PiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgIE51bWJlciBvZiBmdWxseSBERUFEIChub3QganVzdCBSRUNFTlRMWV9ERUFEKSB0dXBs ZXMgIHRoYXQgY291bGQgbm90IGJlCisgICAgICAgIHBydW5lZCBkdWUgdG8gZmFpbHVyZSB0 byBhY3F1aXJlIGEgY2xlYW51cCBsb2NrIG9uIGEgaGVhcCBwYWdlLgorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5pbmRleF92YWN1dW1fY291bnQ8L3N0cnVjdGZpZWxk PiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgIE51bWJlciBvZiB0aW1lcyBpbmRleGVzIG9uIHRoaXMgdGFibGUgd2VyZSB2YWN1dW1l ZAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD53cmFwYXJvdW5kX2ZhaWxz YWZlX2NvdW50PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50NDwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgdGltZXMgdGhlIHZhY3V1bSB3 YXMgcnVuIHRvIHByZXZlbnQgYSB3cmFwYXJvdW5kIHByb2JsZW0uCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPm1pc3NlZF9kZWFkX3BhZ2VzPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg ICBOdW1iZXIgb2YgcGFnZXMgdGhhdCBoYWQgYXQgbGVhc3Qgb25lIG1pc3NlZF9kZWFkX3R1 cGxlcy4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX3JlY29yZHM8 L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgIFRvdGFsIG51bWJlciBvZiBXQUwgcmVjb3JkcyBnZW5lcmF0ZWQg YnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgdGFibGUK KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX2ZwaTwvc3RydWN0Zmll bGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICAgVG90YWwgbnVtYmVyIG9mIFdBTCBmdWxsIHBhZ2UgaW1hZ2VzIGdlbmVyYXRlZCBi eSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyB0YWJsZQor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD53YWxfYnl0ZXM8L3N0cnVjdGZp ZWxkPiA8dHlwZT5udW1lcmljPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgIFRvdGFsIGFtb3VudCBvZiBXQUwgYnl0ZXMgZ2VuZXJhdGVkIGJ5IHZhY3V1 bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIHRhYmxlCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmJsa19yZWFkX3RpbWU8L3N0cnVjdGZpZWxk PiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgIFRpbWUgc3BlbnQgcmVhZGluZyBkYXRhYmFzZSBibG9ja3MgYnkgdmFjdXVtIG9wZXJh dGlvbnMgcGVyZm9ybWVkIG9uCisgICAgICAgIHRoaXMgdGFibGUsIGluIG1pbGxpc2Vjb25k cyAoaWYgPHhyZWYgbGlua2VuZD0iZ3VjLXRyYWNrLWlvLXRpbWluZyIvPiBpcyBlbmFibGVk LAorICAgICAgICBvdGhlcndpc2UgemVybykKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+YmxrX3dyaXRlX3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBl PgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRpbWUgc3BlbnQgd3Jp dGluZyBkYXRhYmFzZSBibG9ja3MgYnkgdmFjdXVtIG9wZXJhdGlvbnMgcGVyZm9ybWVkIG9u CisgICAgICAgIHRoaXMgdGFibGUsIGluIG1pbGxpc2Vjb25kcyAoaWYgPHhyZWYgbGlua2Vu ZD0iZ3VjLXRyYWNrLWlvLXRpbWluZyIvPiBpcyBlbmFibGVkLAorICAgICAgICBvdGhlcndp c2UgemVybykKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ZGVsYXlfdGlt ZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgICBUaW1lIHNwZW50IHNsZWVwaW5nIGluIGEgdmFjdXVtIGRl bGF5IHBvaW50IGJ5IHZhY3V1bSBvcGVyYXRpb25zIHBlcmZvcm1lZCBvbgorICAgICAgICB0 aGlzIHRhYmxlLCBpbiBtaWxsaXNlY29uZHMgKHNlZSA8eHJlZiBsaW5rZW5kPSJydW50aW1l LWNvbmZpZy1yZXNvdXJjZS12YWN1dW0tY29zdCIvPgorICAgICAgICBmb3IgZGV0YWlscykK KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+c3lzdGVtX3RpbWU8L3N0cnVj dGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICAgU3lzdGVtIENQVSB0aW1lIG9mIHZhY3V1bWluZyB0aGlzIHRhYmxlLCBp biBtaWxsaXNlY29uZHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dXNl cl90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgIFVzZXIgQ1BVIHRpbWUgb2YgdmFjdXVtaW5nIHRo aXMgdGFibGUsIGluIG1pbGxpc2Vjb25kcworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg IDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD50b3RhbF90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRvdGFsIHRpbWUgb2YgdmFj dXVtaW5nIHRoaXMgdGFibGUsIGluIG1pbGxpc2Vjb25kcworICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3Rh YmxlPgorICA8cGFyYT5Db2x1bW5zIDxzdHJ1Y3RmaWVsZD50b3RhbF8qPC9zdHJ1Y3RmaWVs ZD4sIDxzdHJ1Y3RmaWVsZD53YWxfKjwvc3RydWN0ZmllbGQ+CisgICAgYW5kIDxzdHJ1Y3Rm aWVsZD5ibGtfKjwvc3RydWN0ZmllbGQ+IGluY2x1ZGUgZGF0YSBvbiB2YWN1dW1pbmcgaW5k ZXhlcyBvbiB0aGlzIHRhYmxlLCB3aGlsZSBjb2x1bW5zCisgICAgPHN0cnVjdGZpZWxkPnN5 c3RlbV90aW1lPC9zdHJ1Y3RmaWVsZD4gYW5kIDxzdHJ1Y3RmaWVsZD51c2VyX3RpbWU8L3N0 cnVjdGZpZWxkPiBvbmx5IGluY2x1ZGUgZGF0YQorICAgIG9uIHZhY3V1bWluZyB0aGUgaGVh cC48L3BhcmE+CisgPC9zZWN0MT4KIDwvY2hhcHRlcj4KLS0gCjIuMzQuMQoK --------------IUDxn0gVtf2vbFzxDscYGnji Content-Type: text/x-patch; charset=UTF-8; name="vacuum_stats.diff" Content-Disposition: attachment; filename="vacuum_stats.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCAxY2FmM2FjM2IzNi4u OGEzMjg2MzhmZDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1 bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAg LTQxMyw3ICs0MTMsNyBAQCB0eXBlZGVmIHN0cnVjdCBMVlJlbFN0YXRlCiAKIAlpbnQzMgkJ d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudDsgLyogbnVtYmVyIG9mIGVtZXJnZW5jeSB2YWN1 dW1zIHRvIHByZXZlbnQgYW50aS13cmFwYXJvdW5kIHNodXRkb3duICovCiAKLQlFeHRWYWNS ZXBvcnQgZXh0VmFjUmVwb3J0OworCVBnU3RhdF9WYWN1dW1SZWxhdGlvbkNvdW50cyBleHRW YWNSZXBvcnQ7CiB9IExWUmVsU3RhdGU7CiAKIApAQCAtNTI1LDcgKzUyNSw3IEBAIGV4dHZh Y19zdGF0c19zdGFydChSZWxhdGlvbiByZWwsIExWRXh0U3RhdENvdW50ZXJzICpjb3VudGVy cykKICAqLwogc3RhdGljIHZvaWQKIGV4dHZhY19zdGF0c19lbmQoUmVsYXRpb24gcmVsLCBM VkV4dFN0YXRDb3VudGVycyAqY291bnRlcnMsCi0JCQkJICBFeHRWYWNSZXBvcnQgKnJlcG9y dCkKKwkJCQkgUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzICpyZXBvcnQpCiB7CiAJV2Fs VXNhZ2UJd2FsdXNhZ2U7CiAJQnVmZmVyVXNhZ2UJYnVmdXNhZ2U7CkBAIC02MDMsOSArNjAz LDkgQEAgZXh0dmFjX3N0YXRzX3N0YXJ0X2lkeChSZWxhdGlvbiByZWwsIEluZGV4QnVsa0Rl bGV0ZVJlc3VsdCAqc3RhdHMsCiAKIHZvaWQKIGV4dHZhY19zdGF0c19lbmRfaWR4KFJlbGF0 aW9uIHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICpzdGF0cywKLQkJCQkJIExWRXh0U3Rh dENvdW50ZXJzSWR4ICpjb3VudGVycywgRXh0VmFjUmVwb3J0ICpyZXBvcnQpCisJCQkJCSBM VkV4dFN0YXRDb3VudGVyc0lkeCAqY291bnRlcnMsIFBnU3RhdF9WYWN1dW1SZWxhdGlvbkNv dW50cyAqcmVwb3J0KQogewotCW1lbXNldChyZXBvcnQsIDAsIHNpemVvZihFeHRWYWNSZXBv cnQpKTsKKwltZW1zZXQocmVwb3J0LCAwLCBzaXplb2YoUGdTdGF0X1ZhY3V1bVJlbGF0aW9u Q291bnRzKSk7CiAKIAlleHR2YWNfc3RhdHNfZW5kKHJlbCwgJmNvdW50ZXJzLT5jb21tb24s IHJlcG9ydCk7CiAJcmVwb3J0LT50eXBlID0gUEdTVEFUX0VYVFZBQ19JTkRFWDsKQEAgLTEx MjcsMzMgKzExMjcsMTggQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgVmFjdXVt UGFyYW1zICpwYXJhbXMsCiAJICoKIAkgKiBXZSBhcmUgcmVhZHkgdG8gc2VuZCB2YWN1dW0g c3RhdGlzdGljcyBpbmZvcm1hdGlvbiBmb3IgaGVhcCByZWxhdGlvbnMuCiAJICovCi0JaWYo cGdzdGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzKQotCXsKLQkJLyogTWFrZSBnZW5lcmlj IGV4dGVuZGVkIHZhY3V1bSBzdGF0cyByZXBvcnQgYW5kCi0JCSAqIGZpbGwgaGVhcC1zcGVj aWZpYyBleHRlbmRlZCBzdGF0cyBmaWVsZHMuCi0JCSAqLwotCQlleHR2YWNfc3RhdHNfZW5k KHZhY3JlbC0+cmVsLCAmZXh0VmFjQ291bnRlcnMsICYodmFjcmVsLT5leHRWYWNSZXBvcnQp KTsKLQkJYWNjdW11bGF0ZV9oZWFwX3ZhY3V1bV9zdGF0aXN0aWNzKCZleHRWYWNDb3VudGVy cywgdmFjcmVsKTsKIAotCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1bShSZWxhdGlvbkdldFJlbGlk KHJlbCksCisJcGdzdGF0X3JlcG9ydF92YWN1dW0oUmVsYXRpb25HZXRSZWxpZChyZWwpLAog CQkJCQkJIHJlbC0+cmRfcmVsLT5yZWxpc3NoYXJlZCwKIAkJCQkJCSBNYXgodmFjcmVsLT5u ZXdfbGl2ZV90dXBsZXMsIDApLAogCQkJCQkJIHZhY3JlbC0+cmVjZW50bHlfZGVhZF90dXBs ZXMgKwotIAkJCQkJCSB2YWNyZWwtPm1pc3NlZF9kZWFkX3R1cGxlcywKLQkJCQkJCSBzdGFy dHRpbWUsCi0JCQkJCQkgJih2YWNyZWwtPmV4dFZhY1JlcG9ydCkpOworCQkJCQkJIHZhY3Jl bC0+bWlzc2VkX2RlYWRfdHVwbGVzLAorCQkJCQkJIHN0YXJ0dGltZSk7CiAKLQl9Ci0JZWxz ZQotCXsKLQkJcGdzdGF0X3JlcG9ydF92YWN1dW0oUmVsYXRpb25HZXRSZWxpZChyZWwpLAot CQkJCQkJCSByZWwtPnJkX3JlbC0+cmVsaXNzaGFyZWQsCi0JCQkJCQkJIE1heCh2YWNyZWwt Pm5ld19saXZlX3R1cGxlcywgMCksCi0JCQkJCQkJIHZhY3JlbC0+cmVjZW50bHlfZGVhZF90 dXBsZXMgKwotCQkJCQkJCSB2YWNyZWwtPm1pc3NlZF9kZWFkX3R1cGxlcywKLQkJCQkJCQkg c3RhcnR0aW1lLAotCQkJCQkJCSBOVUxMKTsKLQl9CisJLyogTWFrZSBnZW5lcmljIGV4dGVu ZGVkIHZhY3V1bSBzdGF0cyByZXBvcnQgYW5kIGZpbGwgaGVhcC1zcGVjaWZpYyBleHRlbmRl ZCBzdGF0cyBmaWVsZHMgKi8KKwlleHR2YWNfc3RhdHNfZW5kKHZhY3JlbC0+cmVsLCAmZXh0 VmFjQ291bnRlcnMsICYodmFjcmVsLT5leHRWYWNSZXBvcnQpKTsKKwlhY2N1bXVsYXRlX2hl YXBfdmFjdXVtX3N0YXRpc3RpY3MoJmV4dFZhY0NvdW50ZXJzLCB2YWNyZWwpOworCXBnc3Rh dF9yZXBvcnRfdGFiX3ZhY3V1bV9leHRzdGF0cyh2YWNyZWwtPnJlbG9pZCwgcmVsLT5yZF9y ZWwtPnJlbGlzc2hhcmVkLCAmKHZhY3JlbC0+ZXh0VmFjUmVwb3J0KSk7CiAKIAlwZ3N0YXRf cHJvZ3Jlc3NfZW5kX2NvbW1hbmQoKTsKIApAQCAtMzM2NCw3ICszMzQ5LDcgQEAgbGF6eV92 YWN1dW1fb25lX2luZGV4KFJlbGF0aW9uIGluZHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVzdWx0 ICppc3RhdCwKIAlJbmRleFZhY3V1bUluZm8gaXZpbmZvOwogCUxWU2F2ZWRFcnJJbmZvIHNh dmVkX2Vycl9pbmZvOwogCUxWRXh0U3RhdENvdW50ZXJzSWR4IGV4dFZhY0NvdW50ZXJzOwot CUV4dFZhY1JlcG9ydCBleHRWYWNSZXBvcnQ7CisJUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291 bnRzIGV4dFZhY1JlcG9ydDsKIAogCS8qIFNldCBpbml0aWFsIHN0YXRpc3RpY3MgdmFsdWVz IHRvIGdhdGhlciB2YWN1dW0gc3RhdGlzdGljcyBmb3IgdGhlIGluZGV4ICovCiAJZXh0dmFj X3N0YXRzX3N0YXJ0X2lkeChpbmRyZWwsIGlzdGF0LCAmZXh0VmFjQ291bnRlcnMpOwpAQCAt MzM5NSwxNCArMzM4MCwxMCBAQCBsYXp5X3ZhY3V1bV9vbmVfaW5kZXgoUmVsYXRpb24gaW5k cmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmlzdGF0LAogCWlzdGF0ID0gdmFjX2J1bGtk ZWxfb25lX2luZGV4KCZpdmluZm8sIGlzdGF0LCB2YWNyZWwtPmRlYWRfaXRlbXMsCiAJCQkJ CQkJCSAgdmFjcmVsLT5kZWFkX2l0ZW1zX2luZm8pOwogCi0JaWYocGdzdGF0X3RyYWNrX3Zh Y3V1bV9zdGF0aXN0aWNzKQotCXsKLQkJLyogTWFrZSBleHRlbmRlZCB2YWN1dW0gc3RhdHMg cmVwb3J0IGZvciBpbmRleCAqLwotCQlleHR2YWNfc3RhdHNfZW5kX2lkeChpbmRyZWwsIGlz dGF0LCAmZXh0VmFjQ291bnRlcnMsICZleHRWYWNSZXBvcnQpOwotCQlwZ3N0YXRfcmVwb3J0 X3ZhY3V1bShSZWxhdGlvbkdldFJlbGlkKGluZHJlbCksCi0JCQkJCQkJCWluZHJlbC0+cmRf cmVsLT5yZWxpc3NoYXJlZCwKLQkJCQkJCQkJMCwgMCwgMCwgJmV4dFZhY1JlcG9ydCk7Ci0J fQorCS8qIE1ha2UgZXh0ZW5kZWQgdmFjdXVtIHN0YXRzIHJlcG9ydCBmb3IgaW5kZXggKi8K KwlleHR2YWNfc3RhdHNfZW5kX2lkeChpbmRyZWwsIGlzdGF0LCAmZXh0VmFjQ291bnRlcnMs ICZleHRWYWNSZXBvcnQpOworCXBnc3RhdF9yZXBvcnRfdGFiX3ZhY3V1bV9leHRzdGF0cyh2 YWNyZWwtPmluZG9pZCwgaW5kcmVsLT5yZF9yZWwtPnJlbGlzc2hhcmVkLAorCQkJCQkJCQkJ CSZleHRWYWNSZXBvcnQpOwogCiAJLyogUmV2ZXJ0IHRvIHRoZSBwcmV2aW91cyBwaGFzZSBp bmZvcm1hdGlvbiBmb3IgZXJyb3IgdHJhY2ViYWNrICovCiAJcmVzdG9yZV92YWN1dW1fZXJy b3JfaW5mbyh2YWNyZWwsICZzYXZlZF9lcnJfaW5mbyk7CkBAIC0zNDI5LDcgKzM0MTAsNyBA QCBsYXp5X2NsZWFudXBfb25lX2luZGV4KFJlbGF0aW9uIGluZHJlbCwgSW5kZXhCdWxrRGVs ZXRlUmVzdWx0ICppc3RhdCwKIAlJbmRleFZhY3V1bUluZm8gaXZpbmZvOwogCUxWU2F2ZWRF cnJJbmZvIHNhdmVkX2Vycl9pbmZvOwogCUxWRXh0U3RhdENvdW50ZXJzSWR4IGV4dFZhY0Nv dW50ZXJzOwotCUV4dFZhY1JlcG9ydCBleHRWYWNSZXBvcnQ7CisJUGdTdGF0X1ZhY3V1bVJl bGF0aW9uQ291bnRzIGV4dFZhY1JlcG9ydDsKIAogCS8qIFNldCBpbml0aWFsIHN0YXRpc3Rp Y3MgdmFsdWVzIHRvIGdhdGhlciB2YWN1dW0gc3RhdGlzdGljcyBmb3IgdGhlIGluZGV4ICov CiAJZXh0dmFjX3N0YXRzX3N0YXJ0X2lkeChpbmRyZWwsIGlzdGF0LCAmZXh0VmFjQ291bnRl cnMpOwpAQCAtMzQ1OSwxNCArMzQ0MCwxMCBAQCBsYXp5X2NsZWFudXBfb25lX2luZGV4KFJl bGF0aW9uIGluZHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICppc3RhdCwKIAogCWlzdGF0 ID0gdmFjX2NsZWFudXBfb25lX2luZGV4KCZpdmluZm8sIGlzdGF0KTsKIAotCWlmKHBnc3Rh dF90cmFja192YWN1dW1fc3RhdGlzdGljcykKLQl7Ci0JCS8qIE1ha2UgZXh0ZW5kZWQgdmFj dXVtIHN0YXRzIHJlcG9ydCBmb3IgaW5kZXggKi8KLQkJZXh0dmFjX3N0YXRzX2VuZF9pZHgo aW5kcmVsLCBpc3RhdCwgJmV4dFZhY0NvdW50ZXJzLCAmZXh0VmFjUmVwb3J0KTsKLQkJcGdz dGF0X3JlcG9ydF92YWN1dW0oUmVsYXRpb25HZXRSZWxpZChpbmRyZWwpLAotCQkJCQkJCQlp bmRyZWwtPnJkX3JlbC0+cmVsaXNzaGFyZWQsCi0JCQkJCQkJCTAsIDAsIDAsICZleHRWYWNS ZXBvcnQpOwotCX0KKwkvKiBNYWtlIGV4dGVuZGVkIHZhY3V1bSBzdGF0cyByZXBvcnQgZm9y IGluZGV4ICovCisJZXh0dmFjX3N0YXRzX2VuZF9pZHgoaW5kcmVsLCBpc3RhdCwgJmV4dFZh Y0NvdW50ZXJzLCAmZXh0VmFjUmVwb3J0KTsKKwlwZ3N0YXRfcmVwb3J0X3RhYl92YWN1dW1f ZXh0c3RhdHModmFjcmVsLT5pbmRvaWQsIGluZHJlbC0+cmRfcmVsLT5yZWxpc3NoYXJlZCwK KwkJCQkJCQkJCQkmZXh0VmFjUmVwb3J0KTsKIAogCS8qIFJldmVydCB0byB0aGUgcHJldmlv dXMgcGhhc2UgaW5mb3JtYXRpb24gZm9yIGVycm9yIHRyYWNlYmFjayAqLwogCXJlc3RvcmVf dmFjdXVtX2Vycm9yX2luZm8odmFjcmVsLCAmc2F2ZWRfZXJyX2luZm8pOwpAQCAtNDA4MSw3 ICs0MDU4LDcgQEAgdmFjdXVtX2Vycm9yX2NhbGxiYWNrKHZvaWQgKmFyZykKIAl7CiAJCWNh c2UgVkFDVVVNX0VSUkNCX1BIQVNFX1NDQU5fSEVBUDoKIAkJCWlmKGdldGVycmVsZXZlbCgp ID09IEVSUk9SKQotCQkJCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1bV9lcnJvcihlcnJpbmZvLT5y ZWxvaWQsIFBHU1RBVF9FWFRWQUNfVEFCTEUpOworCQkJCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1 bV9lcnJvcigpOwogCiAJCQlpZiAoQmxvY2tOdW1iZXJJc1ZhbGlkKGVycmluZm8tPmJsa25v KSkKIAkJCXsKQEAgLTQwOTksNyArNDA3Niw3IEBAIHZhY3V1bV9lcnJvcl9jYWxsYmFjayh2 b2lkICphcmcpCiAKIAkJY2FzZSBWQUNVVU1fRVJSQ0JfUEhBU0VfVkFDVVVNX0hFQVA6CiAJ CQlpZihnZXRlcnJlbGV2ZWwoKSA9PSBFUlJPUikKLQkJCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1 bV9lcnJvcihlcnJpbmZvLT5yZWxvaWQsIFBHU1RBVF9FWFRWQUNfVEFCTEUpOworCQkJCXBn c3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9yKCk7CiAKIAkJCWlmIChCbG9ja051bWJlcklzVmFs aWQoZXJyaW5mby0+Ymxrbm8pKQogCQkJewpAQCAtNDExNyw3ICs0MDk0LDcgQEAgdmFjdXVt X2Vycm9yX2NhbGxiYWNrKHZvaWQgKmFyZykKIAogCQljYXNlIFZBQ1VVTV9FUlJDQl9QSEFT RV9WQUNVVU1fSU5ERVg6CiAJCQlpZihnZXRlcnJlbGV2ZWwoKSA9PSBFUlJPUikKLQkJCQlw Z3N0YXRfcmVwb3J0X3ZhY3V1bV9lcnJvcihlcnJpbmZvLT5pbmRvaWQsIFBHU1RBVF9FWFRW QUNfSU5ERVgpOworCQkJCXBnc3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9yKCk7CiAKIAkJCWVy cmNvbnRleHQoIndoaWxlIHZhY3V1bWluZyBpbmRleCBcIiVzXCIgb2YgcmVsYXRpb24gXCIl cy4lc1wiIiwKIAkJCQkJICAgZXJyaW5mby0+aW5kbmFtZSwgZXJyaW5mby0+cmVsbmFtZXNw YWNlLCBlcnJpbmZvLT5yZWxuYW1lKTsKQEAgLTQxMjUsNyArNDEwMiw3IEBAIHZhY3V1bV9l cnJvcl9jYWxsYmFjayh2b2lkICphcmcpCiAKIAkJY2FzZSBWQUNVVU1fRVJSQ0JfUEhBU0Vf SU5ERVhfQ0xFQU5VUDoKIAkJCWlmKGdldGVycmVsZXZlbCgpID09IEVSUk9SKQotCQkJCXBn c3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9yKGVycmluZm8tPmluZG9pZCwgUEdTVEFUX0VYVFZB Q19JTkRFWCk7CisJCQkJcGdzdGF0X3JlcG9ydF92YWN1dW1fZXJyb3IoKTsKIAogCQkJZXJy Y29udGV4dCgid2hpbGUgY2xlYW5pbmcgdXAgaW5kZXggXCIlc1wiIG9mIHJlbGF0aW9uIFwi JXMuJXNcIiIsCiAJCQkJCSAgIGVycmluZm8tPmluZG5hbWUsIGVycmluZm8tPnJlbG5hbWVz cGFjZSwgZXJyaW5mby0+cmVsbmFtZSk7CkBAIC00MTMzLDcgKzQxMTAsNyBAQCB2YWN1dW1f ZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJnKQogCiAJCWNhc2UgVkFDVVVNX0VSUkNCX1BIQVNF X1RSVU5DQVRFOgogCQkJaWYoZ2V0ZXJyZWxldmVsKCkgPT0gRVJST1IpCi0JCQkJcGdzdGF0 X3JlcG9ydF92YWN1dW1fZXJyb3IoZXJyaW5mby0+cmVsb2lkLCBQR1NUQVRfRVhUVkFDX1RB QkxFKTsKKwkJCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1bV9lcnJvcigpOwogCiAJCQlpZiAoQmxv Y2tOdW1iZXJJc1ZhbGlkKGVycmluZm8tPmJsa25vKSkKIAkJCQllcnJjb250ZXh0KCJ3aGls ZSB0cnVuY2F0aW5nIHJlbGF0aW9uIFwiJXMuJXNcIiB0byAldSBibG9ja3MiLApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9n L2hlYXAuYwppbmRleCBmYmFlZDUzNTlhZC4uNzJjOGUzMzljNDUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVh cC5jCkBAIC0xODczLDYgKzE4NzMsNyBAQCBoZWFwX2Ryb3Bfd2l0aF9jYXRhbG9nKE9pZCBy ZWxpZCkKIAogCS8qIGVuc3VyZSB0aGF0IHN0YXRzIGFyZSBkcm9wcGVkIGlmIHRyYW5zYWN0 aW9uIGNvbW1pdHMgKi8KIAlwZ3N0YXRfZHJvcF9yZWxhdGlvbihyZWwpOworCXBnc3RhdF92 YWN1dW1fcmVsYXRpb25fZGVsZXRlX3BlbmRpbmdfY2IoUmVsYXRpb25HZXRSZWxpZChyZWwp KTsKIAogCS8qCiAJICogQ2xvc2UgcmVsY2FjaGUgZW50cnksIGJ1dCAqa2VlcCogQWNjZXNz RXhjbHVzaXZlTG9jayBvbiB0aGUgcmVsYXRpb24KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvaW5kZXguYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYwppbmRleCA3 MzlhOTJiZGNjMS4uZTRmYTc1NGFhYjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvaW5kZXguYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMKQEAgLTIzMjcs NiArMjMyNyw3IEBAIGluZGV4X2Ryb3AoT2lkIGluZGV4SWQsIGJvb2wgY29uY3VycmVudCwg Ym9vbCBjb25jdXJyZW50X2xvY2tfbW9kZSkKIAogCS8qIGVuc3VyZSB0aGF0IHN0YXRzIGFy ZSBkcm9wcGVkIGlmIHRyYW5zYWN0aW9uIGNvbW1pdHMgKi8KIAlwZ3N0YXRfZHJvcF9yZWxh dGlvbih1c2VySW5kZXhSZWxhdGlvbik7CisJcGdzdGF0X3ZhY3V1bV9yZWxhdGlvbl9kZWxl dGVfcGVuZGluZ19jYihSZWxhdGlvbkdldFJlbGlkKHVzZXJJbmRleFJlbGF0aW9uKSk7CiAK IAkvKgogCSAqIENsb3NlIGFuZCBmbHVzaCB0aGUgaW5kZXgncyByZWxjYWNoZSBlbnRyeSwg dG8gZW5zdXJlIHJlbGNhY2hlIGRvZXNuJ3QKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2RiY29tbWFuZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2RiY29tbWFuZHMu YwppbmRleCA1ZmJiY2RhYWJiMS4uYzRiOTEwY2Q5MjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2RiY29tbWFuZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9k YmNvbW1hbmRzLmMKQEAgLTE3ODksNiArMTc4OSw3IEBAIGRyb3BkYihjb25zdCBjaGFyICpk Ym5hbWUsIGJvb2wgbWlzc2luZ19vaywgYm9vbCBmb3JjZSkKIAkgKiBUZWxsIHRoZSBjdW11 bGF0aXZlIHN0YXRzIHN5c3RlbSB0byBmb3JnZXQgaXQgaW1tZWRpYXRlbHksIHRvby4KIAkg Ki8KIAlwZ3N0YXRfZHJvcF9kYXRhYmFzZShkYl9pZCk7CisJcGdzdGF0X2Ryb3BfdmFjdXVt X2RhdGFiYXNlKGRiX2lkKTsKIAogCS8qCiAJICogRXhjZXB0IGZvciB0aGUgZGVsZXRpb24g b2YgdGhlIGNhdGFsb2cgcm93LCBzdWJzZXF1ZW50IGFjdGlvbnMgYXJlIG5vdApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKaW5kZXggMDAwMzg4YTU2NWYuLjk0MDFl NDZkNzU1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxl bC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKQEAgLTg2 OSw3ICs4NjksNyBAQCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19vbmVfaW5kZXgoUGFyYWxs ZWxWYWN1dW1TdGF0ZSAqcHZzLCBSZWxhdGlvbiBpbmRyZWwsCiAJSW5kZXhCdWxrRGVsZXRl UmVzdWx0ICppc3RhdF9yZXM7CiAJSW5kZXhWYWN1dW1JbmZvIGl2aW5mbzsKIAlMVkV4dFN0 YXRDb3VudGVyc0lkeCBleHRWYWNDb3VudGVyczsKLQlFeHRWYWNSZXBvcnQgZXh0VmFjUmVw b3J0OworCVBnU3RhdF9WYWN1dW1SZWxhdGlvbkNvdW50cyBleHRWYWNSZXBvcnQ7CiAKIAkv KgogCSAqIFVwZGF0ZSB0aGUgcG9pbnRlciB0byB0aGUgY29ycmVzcG9uZGluZyBidWxrLWRl bGV0aW9uIHJlc3VsdCBpZiBzb21lb25lCkBAIC05MDksMTQgKzkwOSwxMCBAQCBwYXJhbGxl bF92YWN1dW1fcHJvY2Vzc19vbmVfaW5kZXgoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBS ZWxhdGlvbiBpbmRyZWwsCiAJCQkJIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGluZHJlbCkp OwogCX0KIAotCWlmKHBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljcykKLQl7Ci0JCS8q IE1ha2UgZXh0ZW5kZWQgdmFjdXVtIHN0YXRzIHJlcG9ydCBmb3IgaW5kZXggKi8KLQkJZXh0 dmFjX3N0YXRzX2VuZF9pZHgoaW5kcmVsLCBpc3RhdF9yZXMsICZleHRWYWNDb3VudGVycywg JmV4dFZhY1JlcG9ydCk7Ci0JCXBnc3RhdF9yZXBvcnRfdmFjdXVtKFJlbGF0aW9uR2V0UmVs aWQoaW5kcmVsKSwKLQkJCQkJCQkJaW5kcmVsLT5yZF9yZWwtPnJlbGlzc2hhcmVkLAotCQkJ CQkJCQkwLCAwLCAwLCAmZXh0VmFjUmVwb3J0KTsKLQl9CisJLyogTWFrZSBleHRlbmRlZCB2 YWN1dW0gc3RhdHMgcmVwb3J0IGZvciBpbmRleCAqLworCWV4dHZhY19zdGF0c19lbmRfaWR4 KGluZHJlbCwgaXN0YXRfcmVzLCAmZXh0VmFjQ291bnRlcnMsICZleHRWYWNSZXBvcnQpOwor CXBnc3RhdF9yZXBvcnRfdGFiX3ZhY3V1bV9leHRzdGF0cyhSZWxhdGlvbkdldFJlbGlkKGlu ZHJlbCksIGluZHJlbC0+cmRfcmVsLT5yZWxpc3NoYXJlZCwKKwkJCQkJCQkJCQkmZXh0VmFj UmVwb3J0KTsKIAogCS8qCiAJICogQ29weSB0aGUgaW5kZXggYnVsay1kZWxldGlvbiByZXN1 bHQgcmV0dXJuZWQgZnJvbSBhbWJ1bGtkZWxldGUgYW5kCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9hY3Rpdml0eS9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2 aXR5L01ha2VmaWxlCmluZGV4IDljMjQ0M2UxZWNkLi4xODNmNzUxNGQyZCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWN0aXZpdHkvTWFrZWZpbGUKQEAgLTI3LDYgKzI3LDcgQEAgT0JKUyA9IFwK IAlwZ3N0YXRfZnVuY3Rpb24ubyBcCiAJcGdzdGF0X2lvLm8gXAogCXBnc3RhdF9yZWxhdGlv bi5vIFwKKwlwZ3N0YXRfdmFjdXVtLm8gXAogCXBnc3RhdF9yZXBsc2xvdC5vIFwKIAlwZ3N0 YXRfc2htZW0ubyBcCiAJcGdzdGF0X3NscnUubyBcCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hY3Rpdml0eS9wZ3N0YXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5 L3Bnc3RhdC5jCmluZGV4IDg1NTU3NzM2YTNhLi5jYTc2NGEzYTIxNCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKQEAgLTQ3OCw2ICs0NzgsMzQgQEAgc3RhdGljIGNv bnN0IFBnU3RhdF9LaW5kSW5mbyBwZ3N0YXRfa2luZF9idWlsdGluX2luZm9zW1BHU1RBVF9L SU5EX0JVSUxUSU5fU0laRV0KIAkJLnJlc2V0X2FsbF9jYiA9IHBnc3RhdF93YWxfcmVzZXRf YWxsX2NiLAogCQkuc25hcHNob3RfY2IgPSBwZ3N0YXRfd2FsX3NuYXBzaG90X2NiLAogCX0s CisJW1BHU1RBVF9LSU5EX1ZBQ1VVTV9EQl0gPSB7CisJCS5uYW1lID0gInZhY3V1bSBzdGF0 aXN0aWNzIiwKKworCQkuZml4ZWRfYW1vdW50ID0gZmFsc2UsCisJCS53cml0ZV90b19maWxl ID0gdHJ1ZSwKKwkJLyogc28gcGdfc3RhdF9kYXRhYmFzZSBlbnRyaWVzIGNhbiBiZSBzZWVu IGluIGFsbCBkYXRhYmFzZXMgKi8KKwkJLmFjY2Vzc2VkX2Fjcm9zc19kYXRhYmFzZXMgPSB0 cnVlLAorCisJCS5zaGFyZWRfc2l6ZSA9IHNpemVvZihQZ1N0YXRTaGFyZWRfVmFjdXVtREIp LAorCQkuc2hhcmVkX2RhdGFfb2ZmID0gb2Zmc2V0b2YoUGdTdGF0U2hhcmVkX1ZhY3V1bURC LCBzdGF0cyksCisJCS5zaGFyZWRfZGF0YV9sZW4gPSBzaXplb2YoKChQZ1N0YXRTaGFyZWRf VmFjdXVtREIgKikgMCktPnN0YXRzKSwKKwkJLnBlbmRpbmdfc2l6ZSA9IHNpemVvZihQZ1N0 YXRfVmFjdXVtREJDb3VudHMpLAorCisJCS5mbHVzaF9wZW5kaW5nX2NiID0gcGdzdGF0X3Zh Y3V1bV9kYl9mbHVzaF9jYiwKKwl9LAorCVtQR1NUQVRfS0lORF9WQUNVVU1fUkVMQVRJT05d ID0geworCQkubmFtZSA9ICJ2YWN1dW0gc3RhdGlzdGljcyIsCisKKwkJLmZpeGVkX2Ftb3Vu dCA9IGZhbHNlLAorCQkud3JpdGVfdG9fZmlsZSA9IHRydWUsCisKKwkJLnNoYXJlZF9zaXpl ID0gc2l6ZW9mKFBnU3RhdFNoYXJlZF9WYWN1dW1SZWxhdGlvbiksCisJCS5zaGFyZWRfZGF0 YV9vZmYgPSBvZmZzZXRvZihQZ1N0YXRTaGFyZWRfVmFjdXVtUmVsYXRpb24sIHN0YXRzKSwK KwkJLnNoYXJlZF9kYXRhX2xlbiA9IHNpemVvZigoKFBnU3RhdFNoYXJlZF9WYWN1dW1SZWxh dGlvbiAqKSAwKS0+c3RhdHMpLAorCQkucGVuZGluZ19zaXplID0gc2l6ZW9mKFBnU3RhdF9S ZWxhdGlvblZhY3V1bVBlbmRpbmcpLAorCisJCS5mbHVzaF9wZW5kaW5nX2NiID0gcGdzdGF0 X3ZhY3V1bV9yZWxhdGlvbl9mbHVzaF9jYgorCX0sCiB9OwogCiAvKgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2RhdGFiYXNlLmMgYi9zcmMvYmFj a2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2UuYwppbmRleCA2NTIwN2QzMDM3 OC4uODBlNmM3YzIyOWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5 L3Bnc3RhdF9kYXRhYmFzZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bn c3RhdF9kYXRhYmFzZS5jCkBAIC00Niw2ICs0NiwxNSBAQCBwZ3N0YXRfZHJvcF9kYXRhYmFz ZShPaWQgZGF0YWJhc2VpZCkKIAlwZ3N0YXRfZHJvcF90cmFuc2FjdGlvbmFsKFBHU1RBVF9L SU5EX0RBVEFCQVNFLCBkYXRhYmFzZWlkLCBJbnZhbGlkT2lkKTsKIH0KIAorLyoKKyAqIFJl bW92ZSBlbnRyeSBmb3IgdGhlIGRhdGFiYXNlIGJlaW5nIGRyb3BwZWQuCisgKi8KK3ZvaWQK K3Bnc3RhdF9kcm9wX3ZhY3V1bV9kYXRhYmFzZShPaWQgZGF0YWJhc2VpZCkKK3sKKwlwZ3N0 YXRfZHJvcF90cmFuc2FjdGlvbmFsKFBHU1RBVF9LSU5EX1ZBQ1VVTV9EQiwgZGF0YWJhc2Vp ZCwgSW52YWxpZE9pZCk7Cit9CisKIC8qCiAgKiBDYWxsZWQgZnJvbSBhdXRvdmFjdXVtLmMg dG8gcmVwb3J0IHN0YXJ0dXAgb2YgYW4gYXV0b3ZhY3V1bSBwcm9jZXNzLgogICogV2UgYXJl IGNhbGxlZCBiZWZvcmUgSW5pdFBvc3RncmVzIGlzIGRvbmUsIHNvIGNhbid0IHJlbHkgb24g TXlEYXRhYmFzZUlkOwpAQCAtNDg1LDcgKzQ5NCw2IEBAIHBnc3RhdF9kYXRhYmFzZV9mbHVz aF9jYihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpCiAJcGdzdGF0 X3VubG9ja19lbnRyeShlbnRyeV9yZWYpOwogCiAJbWVtc2V0KHBlbmRpbmdlbnQsIDAsIHNp emVvZigqcGVuZGluZ2VudCkpOwotCW1lbXNldCgmKHBlbmRpbmdlbnQpLT52YWN1dW1fZXh0 LCAwLCBzaXplb2YoRXh0VmFjUmVwb3J0KSk7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMKaW5kZXggMTY5 NTY4MGVhNjIuLmFjYzhmMGI4YTUyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h Y3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rp dml0eS9wZ3N0YXRfcmVsYXRpb24uYwpAQCAtNDcsOCArNDcsNiBAQCBzdGF0aWMgdm9pZCBh ZGRfdGFic3RhdF94YWN0X2xldmVsKFBnU3RhdF9UYWJsZVN0YXR1cyAqcGdzdGF0X2luZm8s IGludCBuZXN0X2xldgogc3RhdGljIHZvaWQgZW5zdXJlX3RhYnN0YXRfeGFjdF9sZXZlbChQ Z1N0YXRfVGFibGVTdGF0dXMgKnBnc3RhdF9pbmZvKTsKIHN0YXRpYyB2b2lkIHNhdmVfdHJ1 bmNkcm9wX2NvdW50ZXJzKFBnU3RhdF9UYWJsZVhhY3RTdGF0dXMgKnRyYW5zLCBib29sIGlz X2Ryb3ApOwogc3RhdGljIHZvaWQgcmVzdG9yZV90cnVuY2Ryb3BfY291bnRlcnMoUGdTdGF0 X1RhYmxlWGFjdFN0YXR1cyAqdHJhbnMpOwotc3RhdGljIHZvaWQgcGdzdGF0X2FjY3VtdWxh dGVfZXh0dmFjX3N0YXRzKEV4dFZhY1JlcG9ydCAqZHN0LCBFeHRWYWNSZXBvcnQgKnNyYywK LQkJCQkJCQkgICBib29sIGFjY3VtdWxhdGVfcmVsdHlwZV9zcGVjaWZpY19pbmZvKTsKIAog CiAvKgpAQCAtMjA1LDUwICsyMDMsMTcgQEAgcGdzdGF0X2Ryb3BfcmVsYXRpb24oUmVsYXRp b24gcmVsKQogCX0KIH0KIAotLyogLS0tLS0tLS0tCi0gKiBwZ3N0YXRfcmVwb3J0X3ZhY3V1 bV9lcnJvcigpIC0KLSAqCi0gKglUZWxsIHRoZSBjb2xsZWN0b3IgYWJvdXQgYW4gKGF1dG8p dmFjdXVtIGludGVycnVwdGlvbi4KLSAqIC0tLS0tLS0tLQotICovCi12b2lkCi1wZ3N0YXRf cmVwb3J0X3ZhY3V1bV9lcnJvcihPaWQgdGFibGVvaWQsIEV4dFZhY1JlcG9ydFR5cGUgbV90 eXBlKQotewotCVBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmOwotCVBnU3RhdFNoYXJlZF9S ZWxhdGlvbiAqc2h0YWJlbnRyeTsKLQlQZ1N0YXRfU3RhdFRhYkVudHJ5ICp0YWJlbnRyeTsK LQlPaWQJCQlkYm9pZCA9ICBNeURhdGFiYXNlSWQ7Ci0JUGdTdGF0X1N0YXREQkVudHJ5ICpk YmVudHJ5OwkvKiBwZW5kaW5nIGRhdGFiYXNlIGVudHJ5ICovCi0KLQlpZiAoIXBnc3RhdF90 cmFja19jb3VudHMpCi0JCXJldHVybjsKLQotCWVudHJ5X3JlZiA9IHBnc3RhdF9nZXRfZW50 cnlfcmVmX2xvY2tlZChQR1NUQVRfS0lORF9SRUxBVElPTiwKLQkJCQkJCQkJCQkJZGJvaWQs IHRhYmxlb2lkLCBmYWxzZSk7Ci0KLQlzaHRhYmVudHJ5ID0gKFBnU3RhdFNoYXJlZF9SZWxh dGlvbiAqKSBlbnRyeV9yZWYtPnNoYXJlZF9zdGF0czsKLQl0YWJlbnRyeSA9ICZzaHRhYmVu dHJ5LT5zdGF0czsKLQotCXRhYmVudHJ5LT52YWN1dW1fZXh0LnR5cGUgPSBtX3R5cGU7Ci0J cGdzdGF0X3VubG9ja19lbnRyeShlbnRyeV9yZWYpOwotCi0JZGJlbnRyeSA9IHBnc3RhdF9w cmVwX2RhdGFiYXNlX3BlbmRpbmcoZGJvaWQpOwotCWRiZW50cnktPnZhY3V1bV9leHQuZXJy b3JzKys7Ci0JZGJlbnRyeS0+dmFjdXVtX2V4dC50eXBlID0gbV90eXBlOwotfQotCiAvKgog ICogUmVwb3J0IHRoYXQgdGhlIHRhYmxlIHdhcyBqdXN0IHZhY3V1bWVkIGFuZCBmbHVzaCBJ TyBzdGF0aXN0aWNzLgogICovCiB2b2lkCiBwZ3N0YXRfcmVwb3J0X3ZhY3V1bShPaWQgdGFi bGVvaWQsIGJvb2wgc2hhcmVkLAogCQkJCQkgUGdTdGF0X0NvdW50ZXIgbGl2ZXR1cGxlcywg UGdTdGF0X0NvdW50ZXIgZGVhZHR1cGxlcywKLQkJCQkJIFRpbWVzdGFtcFR6IHN0YXJ0dGlt ZSwgRXh0VmFjUmVwb3J0ICpwYXJhbXMpCisJCQkJCSBUaW1lc3RhbXBUeiBzdGFydHRpbWUp CiB7CiAJUGdTdGF0X0VudHJ5UmVmICplbnRyeV9yZWY7CiAJUGdTdGF0U2hhcmVkX1JlbGF0 aW9uICpzaHRhYmVudHJ5OwogCVBnU3RhdF9TdGF0VGFiRW50cnkgKnRhYmVudHJ5OwotCVBn U3RhdFNoYXJlZF9EYXRhYmFzZSAqZGJlbnRyeTsKIAlPaWQJCQlkYm9pZCA9IChzaGFyZWQg PyBJbnZhbGlkT2lkIDogTXlEYXRhYmFzZUlkKTsKIAlUaW1lc3RhbXBUeiB0czsKIAlQZ1N0 YXRfQ291bnRlciBlbGFwc2VkdGltZTsKQEAgLTI3MCw4ICsyMzUsNiBAQCBwZ3N0YXRfcmVw b3J0X3ZhY3V1bShPaWQgdGFibGVvaWQsIGJvb2wgc2hhcmVkLAogCXRhYmVudHJ5LT5saXZl X3R1cGxlcyA9IGxpdmV0dXBsZXM7CiAJdGFiZW50cnktPmRlYWRfdHVwbGVzID0gZGVhZHR1 cGxlczsKIAotCXBnc3RhdF9hY2N1bXVsYXRlX2V4dHZhY19zdGF0cygmdGFiZW50cnktPnZh Y3V1bV9leHQsIHBhcmFtcywgdHJ1ZSk7Ci0KIAkvKgogCSAqIEl0IGlzIHF1aXRlIHBvc3Np YmxlIHRoYXQgYSBub24tYWdncmVzc2l2ZSBWQUNVVU0gZW5kZWQgdXAgc2tpcHBpbmcKIAkg KiB2YXJpb3VzIHBhZ2VzLCBob3dldmVyLCB3ZSdsbCB6ZXJvIHRoZSBpbnNlcnQgY291bnRl ciBoZXJlIHJlZ2FyZGxlc3MuCkBAIC0zMDcsMTYgKzI3MCw2IEBAIHBnc3RhdF9yZXBvcnRf dmFjdXVtKE9pZCB0YWJsZW9pZCwgYm9vbCBzaGFyZWQsCiAJICovCiAJcGdzdGF0X2ZsdXNo X2lvKGZhbHNlKTsKIAkodm9pZCkgcGdzdGF0X2ZsdXNoX2JhY2tlbmQoZmFsc2UsIFBHU1RB VF9CQUNLRU5EX0ZMVVNIX0lPKTsKLQotCWlmIChkYm9pZCAhPSBJbnZhbGlkT2lkKQotCXsK LQkJZW50cnlfcmVmID0gcGdzdGF0X2dldF9lbnRyeV9yZWZfbG9ja2VkKFBHU1RBVF9LSU5E X0RBVEFCQVNFLAotCQkJCQkJCQkJCQlkYm9pZCwgSW52YWxpZE9pZCwgZmFsc2UpOwotCQlk YmVudHJ5ID0gKFBnU3RhdFNoYXJlZF9EYXRhYmFzZSAqKSBlbnRyeV9yZWYtPnNoYXJlZF9z dGF0czsKLQotCQlwZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNfc3RhdHMoJmRiZW50cnktPnN0 YXRzLnZhY3V1bV9leHQsIHBhcmFtcywgZmFsc2UpOwotCQlwZ3N0YXRfdW5sb2NrX2VudHJ5 KGVudHJ5X3JlZik7Ci0JfQogfQogCiAvKgpAQCAtOTUxLDYgKzkwNCwxMiBAQCBwZ3N0YXRf cmVsYXRpb25fZmx1c2hfY2IoUGdTdGF0X0VudHJ5UmVmICplbnRyeV9yZWYsIGJvb2wgbm93 YWl0KQogCXJldHVybiB0cnVlOwogfQogCit2b2lkCitwZ3N0YXRfdmFjdXVtX3JlbGF0aW9u X2RlbGV0ZV9wZW5kaW5nX2NiKE9pZCByZWxpZCkKK3sKKwlwZ3N0YXRfZHJvcF90cmFuc2Fj dGlvbmFsKFBHU1RBVF9LSU5EX1ZBQ1VVTV9SRUxBVElPTiwgcmVsaWQsIEludmFsaWRPaWQp OworfQorCiB2b2lkCiBwZ3N0YXRfcmVsYXRpb25fZGVsZXRlX3BlbmRpbmdfY2IoUGdTdGF0 X0VudHJ5UmVmICplbnRyeV9yZWYpCiB7CkBAIC0xMDUzLDYwICsxMDEyLDQgQEAgcmVzdG9y ZV90cnVuY2Ryb3BfY291bnRlcnMoUGdTdGF0X1RhYmxlWGFjdFN0YXR1cyAqdHJhbnMpCiAJ CXRyYW5zLT50dXBsZXNfdXBkYXRlZCA9IHRyYW5zLT51cGRhdGVkX3ByZV90cnVuY2Ryb3A7 CiAJCXRyYW5zLT50dXBsZXNfZGVsZXRlZCA9IHRyYW5zLT5kZWxldGVkX3ByZV90cnVuY2Ry b3A7CiAJfQotfQotCi1zdGF0aWMgdm9pZAotcGdzdGF0X2FjY3VtdWxhdGVfZXh0dmFjX3N0 YXRzKEV4dFZhY1JlcG9ydCAqZHN0LCBFeHRWYWNSZXBvcnQgKnNyYywKLQkJCQkJCQkgICBi b29sIGFjY3VtdWxhdGVfcmVsdHlwZV9zcGVjaWZpY19pbmZvKQotewotCWlmKCFwZ3N0YXRf dHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MpCi0JCXJldHVybjsKLQotCWRzdC0+dG90YWxfYmxr c19yZWFkICs9IHNyYy0+dG90YWxfYmxrc19yZWFkOwotCWRzdC0+dG90YWxfYmxrc19oaXQg Kz0gc3JjLT50b3RhbF9ibGtzX2hpdDsKLQlkc3QtPnRvdGFsX2Jsa3NfZGlydGllZCArPSBz cmMtPnRvdGFsX2Jsa3NfZGlydGllZDsKLQlkc3QtPnRvdGFsX2Jsa3Nfd3JpdHRlbiArPSBz cmMtPnRvdGFsX2Jsa3Nfd3JpdHRlbjsKLQlkc3QtPndhbF9ieXRlcyArPSBzcmMtPndhbF9i eXRlczsKLQlkc3QtPndhbF9mcGkgKz0gc3JjLT53YWxfZnBpOwotCWRzdC0+d2FsX3JlY29y ZHMgKz0gc3JjLT53YWxfcmVjb3JkczsKLQlkc3QtPmJsa19yZWFkX3RpbWUgKz0gc3JjLT5i bGtfcmVhZF90aW1lOwotCWRzdC0+YmxrX3dyaXRlX3RpbWUgKz0gc3JjLT5ibGtfd3JpdGVf dGltZTsKLQlkc3QtPmRlbGF5X3RpbWUgKz0gc3JjLT5kZWxheV90aW1lOwotCWRzdC0+dG90 YWxfdGltZSArPSBzcmMtPnRvdGFsX3RpbWU7Ci0JZHN0LT53cmFwYXJvdW5kX2ZhaWxzYWZl X2NvdW50ICs9IHNyYy0+d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudDsKLQlkc3QtPmVycm9y cyArPSBzcmMtPmVycm9yczsKLQotCWlmICghYWNjdW11bGF0ZV9yZWx0eXBlX3NwZWNpZmlj X2luZm8pCi0JCXJldHVybjsKLQotCWlmIChkc3QtPnR5cGUgPT0gUEdTVEFUX0VYVFZBQ19J TlZBTElEKQotCQlkc3QtPnR5cGUgPSBzcmMtPnR5cGU7Ci0KLQlBc3NlcnQoc3JjLT50eXBl ID09IFBHU1RBVF9FWFRWQUNfSU5WQUxJRCB8fCBzcmMtPnR5cGUgPT0gZHN0LT50eXBlKTsK LQotCWlmIChkc3QtPnR5cGUgPT0gc3JjLT50eXBlKQotCXsKLQkJZHN0LT5ibGtzX2ZldGNo ZWQgKz0gc3JjLT5ibGtzX2ZldGNoZWQ7Ci0JCWRzdC0+Ymxrc19oaXQgKz0gc3JjLT5ibGtz X2hpdDsKLQotCQlpZiAoZHN0LT50eXBlID09IFBHU1RBVF9FWFRWQUNfVEFCTEUpCi0JCXsK LQkJCWRzdC0+dGFibGUucGFnZXNfc2Nhbm5lZCArPSBzcmMtPnRhYmxlLnBhZ2VzX3NjYW5u ZWQ7Ci0JCQlkc3QtPnRhYmxlLnBhZ2VzX3JlbW92ZWQgKz0gc3JjLT50YWJsZS5wYWdlc19y ZW1vdmVkOwotCQkJZHN0LT50YWJsZS52bV9uZXdfZnJvemVuX3BhZ2VzICs9IHNyYy0+dGFi bGUudm1fbmV3X2Zyb3plbl9wYWdlczsKLQkJCWRzdC0+dGFibGUudm1fbmV3X3Zpc2libGVf cGFnZXMgKz0gc3JjLT50YWJsZS52bV9uZXdfdmlzaWJsZV9wYWdlczsKLQkJCWRzdC0+dGFi bGUudm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzICs9IHNyYy0+dGFibGUudm1fbmV3X3Zp c2libGVfZnJvemVuX3BhZ2VzOwotCQkJZHN0LT50dXBsZXNfZGVsZXRlZCArPSBzcmMtPnR1 cGxlc19kZWxldGVkOwotCQkJZHN0LT50YWJsZS50dXBsZXNfZnJvemVuICs9IHNyYy0+dGFi bGUudHVwbGVzX2Zyb3plbjsKLQkJCWRzdC0+dGFibGUucmVjZW50bHlfZGVhZF90dXBsZXMg Kz0gc3JjLT50YWJsZS5yZWNlbnRseV9kZWFkX3R1cGxlczsKLQkJCWRzdC0+dGFibGUuaW5k ZXhfdmFjdXVtX2NvdW50ICs9IHNyYy0+dGFibGUuaW5kZXhfdmFjdXVtX2NvdW50OwotCQkJ ZHN0LT50YWJsZS5taXNzZWRfZGVhZF9wYWdlcyArPSBzcmMtPnRhYmxlLm1pc3NlZF9kZWFk X3BhZ2VzOwotCQkJZHN0LT50YWJsZS5taXNzZWRfZGVhZF90dXBsZXMgKz0gc3JjLT50YWJs ZS5taXNzZWRfZGVhZF90dXBsZXM7Ci0JCX0KLQkJZWxzZSBpZiAoZHN0LT50eXBlID09IFBH U1RBVF9FWFRWQUNfSU5ERVgpCi0JCXsKLQkJCWRzdC0+aW5kZXgucGFnZXNfZGVsZXRlZCAr PSBzcmMtPmluZGV4LnBhZ2VzX2RlbGV0ZWQ7Ci0JCQlkc3QtPnR1cGxlc19kZWxldGVkICs9 IHNyYy0+dHVwbGVzX2RlbGV0ZWQ7Ci0JCX0KLQl9CiB9ClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNz LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwppbmRleCBjMmFjZGNm MGUwZS4uNDIzYTI1NmM4M2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9w Z3N0YXRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5j CkBAIC0yMjc1LDg5ICsyMjc1LDI5IEBAIHBnX3N0YXRfZ2V0X3ZhY3V1bV90YWJsZXMoUEdf RlVOQ1RJT05fQVJHUykKIAkjZGVmaW5lIFBHX1NUQVRfR0VUX1ZBQ1VVTV9UQUJMRVNfU1RB VFNfQ09MUyAyNgogCiAJT2lkCQkJCQkJcmVsaWQgPSBQR19HRVRBUkdfT0lEKDApOwotCVBn U3RhdF9TdGF0VGFiRW50cnkgICAgICp0YWJlbnRyeTsKLQlFeHRWYWNSZXBvcnQgCQkJKmV4 dHZhY3V1bTsKKwlQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMgCQkJKmV4dHZhY3V1bTsK KwlQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMgKnBlbmRpbmc7CiAJVHVwbGVEZXNjCQkJ CSB0dXBkZXNjOwogCURhdHVtCQkJCQkgdmFsdWVzW1BHX1NUQVRfR0VUX1ZBQ1VVTV9UQUJM RVNfU1RBVFNfQ09MU10gPSB7MH07CiAJYm9vbAkJCQkJIG51bGxzW1BHX1NUQVRfR0VUX1ZB Q1VVTV9UQUJMRVNfU1RBVFNfQ09MU10gPSB7MH07CiAJY2hhcgkJCQkJIGJ1ZlsyNTZdOwog CWludAkJCQkJCSBpID0gMDsKLQlFeHRWYWNSZXBvcnQgYWxsemVybzsKKwlQZ1N0YXRfVmFj dXVtUmVsYXRpb25Db3VudHMgYWxsemVybzsKIAotCS8qIEluaXRpYWxpc2UgYXR0cmlidXRl cyBpbmZvcm1hdGlvbiBpbiB0aGUgdHVwbGUgZGVzY3JpcHRvciAqLwotCXR1cGRlc2MgPSBD cmVhdGVUZW1wbGF0ZVR1cGxlRGVzYyhQR19TVEFUX0dFVF9WQUNVVU1fVEFCTEVTX1NUQVRT X0NPTFMpOwotCi0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSAr K2ksICJyZWxpZCIsCi0JCQkJCSAgIElOVDRPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0 RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInRvdGFsX2Jsa3NfcmVhZCIsCi0J CQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywg KEF0dHJOdW1iZXIpICsraSwgInRvdGFsX2Jsa3NfaGl0IiwKLQkJCQkJICAgSU5UOE9JRCwg LTEsIDApOwotCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytp LCAidG90YWxfYmxrc19kaXJ0aWVkIiwKLQkJCQkJICAgSU5UOE9JRCwgLTEsIDApOwotCVR1 cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAidG90YWxfYmxr c193cml0dGVuIiwKLQkJCQkJICAgSU5UOE9JRCwgLTEsIDApOwotCVR1cGxlRGVzY0luaXRF bnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAicmVsX2Jsa3NfcmVhZCIsCi0JCQkJ CSAgIElOVDhPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0 dHJOdW1iZXIpICsraSwgInJlbF9ibGtzX2hpdCIsCi0JCQkJCSAgIElOVDhPSUQsIC0xLCAw KTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInBh Z2VzX3NjYW5uZWQiLAotCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5p dEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJwYWdlc19yZW1vdmVkIiwKLQkJ CQkJICAgSU5UOE9JRCwgLTEsIDApOwotCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAo QXR0ck51bWJlcikgKytpLCAidm1fbmV3X2Zyb3plbl9wYWdlcyIsCi0JCQkJCSAgIElOVDhP SUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIp ICsraSwgInZtX25ld192aXNpYmxlX3BhZ2VzIiwKLQkJCQkJICAgSU5UOE9JRCwgLTEsIDAp OwotCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAidm1f bmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzIiwKLQkJCQkJICAgSU5UOE9JRCwgLTEsIDApOwot CVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAibWlzc2Vk X2RlYWRfcGFnZXMiLAotCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5p dEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ0dXBsZXNfZGVsZXRlZCIsCi0J CQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywg KEF0dHJOdW1iZXIpICsraSwgInR1cGxlc19mcm96ZW4iLAotCQkJCQkgICBJTlQ4T0lELCAt MSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ks ICJyZWNlbnRseV9kZWFkX3R1cGxlcyIsCi0JCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKLQlU dXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgIm1pc3NlZF9k ZWFkX3R1cGxlcyIsCi0JCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0 RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgIndyYXBhcm91bmRfZmFpbHNhZmVf Y291bnQiLAotCQkJCQkgICBJTlQ0T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5 KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJpbmRleF92YWN1dW1fY291bnQiLAotCQkJ CQkgICBJTlQ4T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChB dHRyTnVtYmVyKSArK2ksICJ3YWxfcmVjb3JkcyIsCi0JCQkJCSAgIElOVDhPSUQsIC0xLCAw KTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgIndh bF9mcGkiLAotCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5 KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ3YWxfYnl0ZXMiLAotCQkJCQkgICBOVU1F UklDT0lELCAtMSwgMCk7CisJLyogQnVpbGQgYSB0dXBsZSBkZXNjcmlwdG9yIGZvciBvdXIg cmVzdWx0IHR5cGUgKi8KKwlpZiAoZ2V0X2NhbGxfcmVzdWx0X3R5cGUoZmNpbmZvLCBOVUxM LCAmdHVwZGVzYykgIT0gVFlQRUZVTkNfQ09NUE9TSVRFKQorCQllbG9nKEVSUk9SLCAicmV0 dXJuIHR5cGUgbXVzdCBiZSBhIHJvdyB0eXBlIik7CiAKLQlUdXBsZURlc2NJbml0RW50cnko dHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImJsa19yZWFkX3RpbWUiLAotCQkJCQkgICBG TE9BVDhPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJO dW1iZXIpICsraSwgImJsa193cml0ZV90aW1lIiwKLQkJCQkJICAgRkxPQVQ4T0lELCAtMSwg MCk7Ci0KLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwg ImRlbGF5X3RpbWUiLAotCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJ bml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInRvdGFsX3RpbWUiLAotCQkJ CQkgICBGTE9BVDhPSUQsIC0xLCAwKTsKLQotCUFzc2VydChpID09IFBHX1NUQVRfR0VUX1ZB Q1VVTV9UQUJMRVNfU1RBVFNfQ09MUyk7Ci0KLQlCbGVzc1R1cGxlRGVzYyh0dXBkZXNjKTsK KwlwZW5kaW5nID0gcGdzdGF0X2ZldGNoX3N0YXRfdmFjdXVtX3RhYmVudHJ5KHJlbGlkLCBN eURhdGFiYXNlSWQpOwogCi0JdGFiZW50cnkgPSBwZ3N0YXRfZmV0Y2hfc3RhdF90YWJlbnRy eShyZWxpZCk7Ci0KLQlpZiAodGFiZW50cnkgPT0gTlVMTCkKKwlpZiAocGVuZGluZyA9PSBO VUxMKQogCXsKIAkJLyogSWYgdGhlIHN1YnNjcmlwdGlvbiBpcyBub3QgZm91bmQsIGluaXRp YWxpc2UgaXRzIHN0YXRzICovCi0JCW1lbXNldCgmYWxsemVybywgMCwgc2l6ZW9mKEV4dFZh Y1JlcG9ydCkpOworCQltZW1zZXQoJmFsbHplcm8sIDAsIHNpemVvZihQZ1N0YXRfVmFjdXVt UmVsYXRpb25Db3VudHMpKTsKIAkJZXh0dmFjdXVtID0gJmFsbHplcm87CiAJfQogCWVsc2UK LQl7Ci0JCWV4dHZhY3V1bSA9ICYodGFiZW50cnktPnZhY3V1bV9leHQpOwotCX0KKwkJZXh0 dmFjdXVtID0gcGVuZGluZzsKIAogCWkgPSAwOwogCkBAIC0yNDE2LDY5ICsyMzU2LDI5IEBA IHBnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRleGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJI2RlZmlu ZSBQR19TVEFUX0dFVF9WQUNVVU1fSU5ERVhfU1RBVFNfQ09MUwkxNgogCiAJT2lkCQkJCQkJ cmVsaWQgPSBQR19HRVRBUkdfT0lEKDApOwotCVBnU3RhdF9TdGF0VGFiRW50cnkgICAgICp0 YWJlbnRyeTsKLQlFeHRWYWNSZXBvcnQgCQkJKmV4dHZhY3V1bTsKKwlQZ1N0YXRfVmFjdXVt UmVsYXRpb25Db3VudHMgCQkJKmV4dHZhY3V1bTsKKwlQZ1N0YXRfVmFjdXVtUmVsYXRpb25D b3VudHMgKnBlbmRpbmc7CiAJVHVwbGVEZXNjCQkJCSB0dXBkZXNjOwogCURhdHVtCQkJCQkg dmFsdWVzW1BHX1NUQVRfR0VUX1ZBQ1VVTV9JTkRFWF9TVEFUU19DT0xTXSA9IHswfTsKIAli b29sCQkJCQkgbnVsbHNbUEdfU1RBVF9HRVRfVkFDVVVNX0lOREVYX1NUQVRTX0NPTFNdID0g ezB9OwogCWNoYXIJCQkJCSBidWZbMjU2XTsKIAlpbnQJCQkJCQkgaSA9IDA7Ci0JRXh0VmFj UmVwb3J0IGFsbHplcm87Ci0KLQkvKiBJbml0aWFsaXNlIGF0dHJpYnV0ZXMgaW5mb3JtYXRp b24gaW4gdGhlIHR1cGxlIGRlc2NyaXB0b3IgKi8KLQl0dXBkZXNjID0gQ3JlYXRlVGVtcGxh dGVUdXBsZURlc2MoUEdfU1RBVF9HRVRfVkFDVVVNX0lOREVYX1NUQVRTX0NPTFMpOwotCi0J VHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJyZWxpZCIs Ci0JCQkJCSAgIElOVDRPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVz YywgKEF0dHJOdW1iZXIpICsraSwgInRvdGFsXyBibGtzX3JlYWQiLAotCQkJCQkgICBJTlQ4 T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVy KSArK2ksICJ0b3RhbF9ibGtzX2hpdCIsCi0JCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKLQlU dXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInRvdGFsX2Js a3NfZGlydGllZCIsCi0JCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0 RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInRvdGFsX2Jsa3Nfd3JpdHRlbiIs Ci0JCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVz YywgKEF0dHJOdW1iZXIpICsraSwgInJlbF9ibGtzX3JlYWQiLAotCQkJCQkgICBJTlQ4T0lE LCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSAr K2ksICJyZWxfYmxrc19oaXQiLAotCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7Ci0JVHVwbGVE ZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJwYWdlc19kZWxldGVk IiwKLQkJCQkJICAgSU5UOE9JRCwgLTEsIDApOwotCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBk ZXNjLCAoQXR0ck51bWJlcikgKytpLCAidHVwbGVzX2RlbGV0ZWQiLAotCQkJCQkgICBJTlQ4 T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVy KSArK2ksICJ3YWxfcmVjb3JkcyIsCi0JCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKLQlUdXBs ZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgIndhbF9mcGkiLAot CQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2Ms IChBdHRyTnVtYmVyKSArK2ksICJ3YWxfYnl0ZXMiLAotCQkJCQkgICBOVU1FUklDT0lELCAt MSwgMCk7CisJUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzIGFsbHplcm87CiAKLQlUdXBs ZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImJsa19yZWFkX3Rp bWUiLAotCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnko dHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImJsa193cml0ZV90aW1lIiwKLQkJCQkJICAg RkxPQVQ4T0lELCAtMSwgMCk7CisJLyogQnVpbGQgYSB0dXBsZSBkZXNjcmlwdG9yIGZvciBv dXIgcmVzdWx0IHR5cGUgKi8KKwlpZiAoZ2V0X2NhbGxfcmVzdWx0X3R5cGUoZmNpbmZvLCBO VUxMLCAmdHVwZGVzYykgIT0gVFlQRUZVTkNfQ09NUE9TSVRFKQorCQllbG9nKEVSUk9SLCAi cmV0dXJuIHR5cGUgbXVzdCBiZSBhIHJvdyB0eXBlIik7CiAKLQlUdXBsZURlc2NJbml0RW50 cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImRlbGF5X3RpbWUiLAotCQkJCQkgICBG TE9BVDhPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJO dW1iZXIpICsraSwgInRvdGFsX3RpbWUiLAotCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsK KwlwZW5kaW5nID0gcGdzdGF0X2ZldGNoX3N0YXRfdmFjdXVtX3RhYmVudHJ5KHJlbGlkLCBN eURhdGFiYXNlSWQpOwogCi0JQXNzZXJ0KGkgPT0gUEdfU1RBVF9HRVRfVkFDVVVNX0lOREVY X1NUQVRTX0NPTFMpOwotCi0JQmxlc3NUdXBsZURlc2ModHVwZGVzYyk7Ci0KLQl0YWJlbnRy eSA9IHBnc3RhdF9mZXRjaF9zdGF0X3RhYmVudHJ5KHJlbGlkKTsKLQotCWlmICh0YWJlbnRy eSA9PSBOVUxMKQorCWlmIChwZW5kaW5nID09IE5VTEwpCiAJewogCQkvKiBJZiB0aGUgc3Vi c2NyaXB0aW9uIGlzIG5vdCBmb3VuZCwgaW5pdGlhbGlzZSBpdHMgc3RhdHMgKi8KLQkJbWVt c2V0KCZhbGx6ZXJvLCAwLCBzaXplb2YoRXh0VmFjUmVwb3J0KSk7CisJCW1lbXNldCgmYWxs emVybywgMCwgc2l6ZW9mKFBnU3RhdF9WYWN1dW1SZWxhdGlvbkNvdW50cykpOwogCQlleHR2 YWN1dW0gPSAmYWxsemVybzsKIAl9CiAJZWxzZQotCXsKLQkJZXh0dmFjdXVtID0gJih0YWJl bnRyeS0+dmFjdXVtX2V4dCk7Ci0JfQorCQlleHR2YWN1dW0gPSBwZW5kaW5nOwogCiAJaSA9 IDA7CiAKQEAgLTI1MjMsNjcgKzI0MjMsMjkgQEAgcGdfc3RhdF9nZXRfdmFjdXVtX2RhdGFi YXNlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJI2RlZmluZSBQR19TVEFUX0dFVF9WQUNVVU1fREFU QUJBU0VfU1RBVFNfQ09MUwkxNAogCiAJT2lkCQkJCQkJIGRiaWQgPSBQR19HRVRBUkdfT0lE KDApOwotCVBnU3RhdF9TdGF0REJFbnRyeSAJCSpkYmVudHJ5OwotCUV4dFZhY1JlcG9ydCAJ CQkqZXh0dmFjdXVtOworCVBnU3RhdF9WYWN1dW1EQkNvdW50cwkqZXh0dmFjdXVtOworCVBn U3RhdF9WYWN1dW1EQkNvdW50cwkqcGVuZGluZzsKIAlUdXBsZURlc2MJCQkJIHR1cGRlc2M7 CiAJRGF0dW0JCQkJCSB2YWx1ZXNbUEdfU1RBVF9HRVRfVkFDVVVNX0RBVEFCQVNFX1NUQVRT X0NPTFNdID0gezB9OwogCWJvb2wJCQkJCSBudWxsc1tQR19TVEFUX0dFVF9WQUNVVU1fREFU QUJBU0VfU1RBVFNfQ09MU10gPSB7MH07CiAJY2hhcgkJCQkJIGJ1ZlsyNTZdOwogCWludAkJ CQkJCSBpID0gMDsKLQlFeHRWYWNSZXBvcnQgYWxsemVybzsKLQotCS8qIEluaXRpYWxpc2Ug YXR0cmlidXRlcyBpbmZvcm1hdGlvbiBpbiB0aGUgdHVwbGUgZGVzY3JpcHRvciAqLwotCXR1 cGRlc2MgPSBDcmVhdGVUZW1wbGF0ZVR1cGxlRGVzYyhQR19TVEFUX0dFVF9WQUNVVU1fREFU QUJBU0VfU1RBVFNfQ09MUyk7Ci0KLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0 dHJOdW1iZXIpICsraSwgImRiaWQiLAotCQkJCQkgICBJTlQ0T0lELCAtMSwgMCk7Ci0JVHVw bGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ0b3RhbF8gYmxr c19yZWFkIiwKLQkJCQkJICAgSU5UOE9JRCwgLTEsIDApOwotCVR1cGxlRGVzY0luaXRFbnRy eSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAidG90YWxfYmxrc19oaXQiLAotCQkJCQkg ICBJTlQ4T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRy TnVtYmVyKSArK2ksICJ0b3RhbF9ibGtzX2RpcnRpZWQiLAotCQkJCQkgICBJTlQ4T0lELCAt MSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ks ICJ0b3RhbF9ibGtzX3dyaXR0ZW4iLAotCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7Ci0JVHVw bGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ3YWxfcmVjb3Jk cyIsCi0JCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVw ZGVzYywgKEF0dHJOdW1iZXIpICsraSwgIndhbF9mcGkiLAotCQkJCQkgICBJTlQ4T0lELCAt MSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ks ICJ3YWxfYnl0ZXMiLAotCQkJCQkgICBOVU1FUklDT0lELCAtMSwgMCk7CisJUGdTdGF0X1Zh Y3V1bURCQ291bnRzIGFsbHplcm87CiAKLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywg KEF0dHJOdW1iZXIpICsraSwgImJsa19yZWFkX3RpbWUiLAotCQkJCQkgICBGTE9BVDhPSUQs IC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsr aSwgImJsa193cml0ZV90aW1lIiwKLQkJCQkJICAgRkxPQVQ4T0lELCAtMSwgMCk7CisJLyog QnVpbGQgYSB0dXBsZSBkZXNjcmlwdG9yIGZvciBvdXIgcmVzdWx0IHR5cGUgKi8KKwlpZiAo Z2V0X2NhbGxfcmVzdWx0X3R5cGUoZmNpbmZvLCBOVUxMLCAmdHVwZGVzYykgIT0gVFlQRUZV TkNfQ09NUE9TSVRFKQorCQllbG9nKEVSUk9SLCAicmV0dXJuIHR5cGUgbXVzdCBiZSBhIHJv dyB0eXBlIik7CiAKLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIp ICsraSwgImRlbGF5X3RpbWUiLAotCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsKLQlUdXBs ZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInRvdGFsX3RpbWUi LAotCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVw ZGVzYywgKEF0dHJOdW1iZXIpICsraSwgIndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQiLAot CQkJCQkgICBJTlQ0T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2Ms IChBdHRyTnVtYmVyKSArK2ksICJlcnJvcnMiLAotCQkJCQkgICBJTlQ0T0lELCAtMSwgMCk7 CisJcGVuZGluZyA9IHBnc3RhdF9mZXRjaF9zdGF0X3ZhY3V1bV9kYmVudHJ5KGRiaWQpOwog Ci0JQXNzZXJ0KGkgPT0gUEdfU1RBVF9HRVRfVkFDVVVNX0RBVEFCQVNFX1NUQVRTX0NPTFMp OwotCi0JQmxlc3NUdXBsZURlc2ModHVwZGVzYyk7Ci0KLQlkYmVudHJ5ID0gcGdzdGF0X2Zl dGNoX3N0YXRfZGJlbnRyeShkYmlkKTsKLQotCWlmIChkYmVudHJ5ID09IE5VTEwpCisJaWYg KHBlbmRpbmcgPT0gTlVMTCkKIAl7CiAJCS8qIElmIHRoZSBzdWJzY3JpcHRpb24gaXMgbm90 IGZvdW5kLCBpbml0aWFsaXNlIGl0cyBzdGF0cyAqLwotCQltZW1zZXQoJmFsbHplcm8sIDAs IHNpemVvZihFeHRWYWNSZXBvcnQpKTsKKwkJbWVtc2V0KCZhbGx6ZXJvLCAwLCBzaXplb2Yo UGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzKSk7CiAJCWV4dHZhY3V1bSA9ICZhbGx6ZXJv OwogCX0KIAllbHNlCi0JewotCQlleHR2YWN1dW0gPSAmKGRiZW50cnktPnZhY3V1bV9leHQp OwotCX0KLQotCWkgPSAwOworCQlleHR2YWN1dW0gPSBwZW5kaW5nOwogCiAJdmFsdWVzW2kr K10gPSBPYmplY3RJZEdldERhdHVtKGRiaWQpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jb21tYW5kcy92YWN1dW0uaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCmlu ZGV4IGZiMTM0ZjM0MDJlLi5mODk1MTUxY2EwOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv Y29tbWFuZHMvdmFjdXVtLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgK QEAgLTQzMiw1ICs0MzIsNSBAQCBleHRlcm4gZG91YmxlIGFubF9nZXRfbmV4dF9TKGRvdWJs ZSB0LCBpbnQgbiwgZG91YmxlICpzdGF0ZXB0cik7CiBleHRlcm4gdm9pZCBleHR2YWNfc3Rh dHNfc3RhcnRfaWR4KFJlbGF0aW9uIHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICpzdGF0 cywKIAkJCQkJICAgTFZFeHRTdGF0Q291bnRlcnNJZHggKmNvdW50ZXJzKTsKIGV4dGVybiB2 b2lkIGV4dHZhY19zdGF0c19lbmRfaWR4KFJlbGF0aW9uIHJlbCwgSW5kZXhCdWxrRGVsZXRl UmVzdWx0ICpzdGF0cywKLQkJCQkJIExWRXh0U3RhdENvdW50ZXJzSWR4ICpjb3VudGVycywg RXh0VmFjUmVwb3J0ICpyZXBvcnQpOworCQkJCQkgTFZFeHRTdGF0Q291bnRlcnNJZHggKmNv dW50ZXJzLCBQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMgKnJlcG9ydCk7CiAjZW5kaWYJ CQkJCQkJLyogVkFDVVVNX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5o IGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKaW5kZXggZjgxNThhYTM1M2MuLmY1N2E5NmQzYWEy IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaAorKysgYi9zcmMvaW5jbHVkZS9w Z3N0YXQuaApAQCAtMTE2LDEyICsxMTYsNjAgQEAgdHlwZWRlZiBlbnVtIEV4dFZhY1JlcG9y dFR5cGUKIHsKIAlQR1NUQVRfRVhUVkFDX0lOVkFMSUQgPSAwLAogCVBHU1RBVF9FWFRWQUNf VEFCTEUgPSAxLAotCVBHU1RBVF9FWFRWQUNfSU5ERVggPSAyCisJUEdTVEFUX0VYVFZBQ19J TkRFWCA9IDIsCisJUEdTVEFUX0VYVFZBQ19EQiA9IDMsCiB9IEV4dFZhY1JlcG9ydFR5cGU7 CiAKIC8qIC0tLS0tLS0tLS0KKyAqIFBnU3RhdF9UYWJsZUNvdW50cwkJCVRoZSBhY3R1YWwg cGVyLXRhYmxlIGNvdW50cyBrZXB0IGJ5IGEgYmFja2VuZAorICoKKyAqIFRoaXMgc3RydWN0 IHNob3VsZCBjb250YWluIG9ubHkgYWN0dWFsIGV2ZW50IGNvdW50ZXJzLCBiZWNhdXNlIHdl IG1ha2UgdXNlCisgKiBvZiBwZ19tZW1vcnlfaXNfYWxsX3plcm9zKCkgdG8gZGV0ZWN0IHdo ZXRoZXIgdGhlcmUgYXJlIGFueSBzdGF0cyB1cGRhdGVzCisgKiB0byBhcHBseS4KICAqCi0g KiBFeHRWYWNSZXBvcnQKKyAqIEl0IGlzIGEgY29tcG9uZW50IG9mIFBnU3RhdF9UYWJsZVN0 YXR1cyAod2l0aGluLWJhY2tlbmQgc3RhdGUpLgorICoKKyAqIE5vdGU6IGZvciBhIHRhYmxl LCB0dXBsZXNfcmV0dXJuZWQgaXMgdGhlIG51bWJlciBvZiB0dXBsZXMgc3VjY2Vzc2Z1bGx5 CisgKiBmZXRjaGVkIGJ5IGhlYXBfZ2V0bmV4dCwgd2hpbGUgdHVwbGVzX2ZldGNoZWQgaXMg dGhlIG51bWJlciBvZiB0dXBsZXMKKyAqIHN1Y2Nlc3NmdWxseSBmZXRjaGVkIGJ5IGhlYXBf ZmV0Y2ggdW5kZXIgdGhlIGNvbnRyb2wgb2YgYml0bWFwIGluZGV4c2NhbnMuCisgKiBGb3Ig YW4gaW5kZXgsIHR1cGxlc19yZXR1cm5lZCBpcyB0aGUgbnVtYmVyIG9mIGluZGV4IGVudHJp ZXMgcmV0dXJuZWQgYnkKKyAqIHRoZSBpbmRleCBBTSwgd2hpbGUgdHVwbGVzX2ZldGNoZWQg aXMgdGhlIG51bWJlciBvZiB0dXBsZXMgc3VjY2Vzc2Z1bGx5CisgKiBmZXRjaGVkIGJ5IGhl YXBfZmV0Y2ggdW5kZXIgdGhlIGNvbnRyb2wgb2Ygc2ltcGxlIGluZGV4c2NhbnMgZm9yIHRo aXMgaW5kZXguCisgKgorICogdHVwbGVzX2luc2VydGVkL3VwZGF0ZWQvZGVsZXRlZC9ob3Rf dXBkYXRlZC9uZXdwYWdlX3VwZGF0ZWQgY291bnQgYXR0ZW1wdGVkCisgKiBhY3Rpb25zLCBy ZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHRyYW5zYWN0aW9uIGNvbW1pdHRlZC4gIGRlbHRh X2xpdmVfdHVwbGVzLAorICogZGVsdGFfZGVhZF90dXBsZXMsIGFuZCBjaGFuZ2VkX3R1cGxl cyBhcmUgc2V0IGRlcGVuZGluZyBvbiBjb21taXQgb3IgYWJvcnQuCisgKiBOb3RlIHRoYXQg ZGVsdGFfbGl2ZV90dXBsZXMgYW5kIGRlbHRhX2RlYWRfdHVwbGVzIGNhbiBiZSBuZWdhdGl2 ZSEKKyAqIC0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1RhYmxlQ291 bnRzCit7CisJUGdTdGF0X0NvdW50ZXIgbnVtc2NhbnM7CisKKwlQZ1N0YXRfQ291bnRlciB0 dXBsZXNfcmV0dXJuZWQ7CisJUGdTdGF0X0NvdW50ZXIgdHVwbGVzX2ZldGNoZWQ7CisKKwlQ Z1N0YXRfQ291bnRlciB0dXBsZXNfaW5zZXJ0ZWQ7CisJUGdTdGF0X0NvdW50ZXIgdHVwbGVz X3VwZGF0ZWQ7CisJUGdTdGF0X0NvdW50ZXIgdHVwbGVzX2RlbGV0ZWQ7CisJUGdTdGF0X0Nv dW50ZXIgdHVwbGVzX2hvdF91cGRhdGVkOworCVBnU3RhdF9Db3VudGVyIHR1cGxlc19uZXdw YWdlX3VwZGF0ZWQ7CisJYm9vbAkJdHJ1bmNkcm9wcGVkOworCisJUGdTdGF0X0NvdW50ZXIg ZGVsdGFfbGl2ZV90dXBsZXM7CisJUGdTdGF0X0NvdW50ZXIgZGVsdGFfZGVhZF90dXBsZXM7 CisJUGdTdGF0X0NvdW50ZXIgY2hhbmdlZF90dXBsZXM7CisKKwlQZ1N0YXRfQ291bnRlciBi bG9ja3NfZmV0Y2hlZDsKKwlQZ1N0YXRfQ291bnRlciBibG9ja3NfaGl0OworCisJUGdTdGF0 X0NvdW50ZXIgcmV2X2FsbF92aXNpYmxlX3BhZ2VzOworCVBnU3RhdF9Db3VudGVyIHJldl9h bGxfZnJvemVuX3BhZ2VzOworfSBQZ1N0YXRfVGFibGVDb3VudHM7CisKKy8qIC0tLS0tLS0t LS0KKyAqCisgKiBQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMKICAqCiAgKiBBZGRpdGlv bmFsIHN0YXRpc3RpY3Mgb2YgdmFjdXVtIHByb2Nlc3Npbmcgb3ZlciBhIHJlbGF0aW9uLgog ICogcGFnZXNfcmVtb3ZlZCBpcyB0aGUgYW1vdW50IGJ5IHdoaWNoIHRoZSBwaHlzaWNhbGx5 IHNocmFuaywKQEAgLTEyOSw3ICsxNzcsNyBAQCB0eXBlZGVmIGVudW0gRXh0VmFjUmVwb3J0 VHlwZQogICogcGFnZXNfZGVsZXRlZCByZWZlciB0byBmcmVlIHNwYWNlIHdpdGhpbiB0aGUg aW5kZXggZmlsZQogICogLS0tLS0tLS0tLQogICovCi10eXBlZGVmIHN0cnVjdCBFeHRWYWNS ZXBvcnQKK3R5cGVkZWYgc3RydWN0IFBnU3RhdF9WYWN1dW1SZWxhdGlvbkNvdW50cwogewog CS8qIG51bWJlciBvZiBibG9ja3MgbWlzc2VkLCBoaXQsIGRpcnRpZWQgYW5kIHdyaXR0ZW4g ZHVyaW5nIGEgdmFjdXVtIG9mIHNwZWNpZmljIHJlbGF0aW9uICovCiAJaW50NjQJCXRvdGFs X2Jsa3NfcmVhZDsKQEAgLTE1NCw3ICsyMDIsNiBAQCB0eXBlZGVmIHN0cnVjdCBFeHRWYWNS ZXBvcnQKIAogCWludDY0CQl0dXBsZXNfZGVsZXRlZDsJCS8qIHR1cGxlcyBkZWxldGVkIGJ5 IHZhY3V1bSAqLwogCi0JaW50MzIJCWVycm9yczsKIAlpbnQzMgkJd3JhcGFyb3VuZF9mYWls c2FmZV9jb3VudDsJLyogdGhlIG51bWJlciBvZiB0aW1lcyB0byBwcmV2ZW50IHdyYXBhcm91 bmQgcHJvYmxlbSAqLwogCiAJRXh0VmFjUmVwb3J0VHlwZSB0eXBlOwkJLyogaGVhcCwgaW5k ZXgsIGV0Yy4gKi8KQEAgLTE5Miw2MSArMjM5LDQ0IEBAIHR5cGVkZWYgc3RydWN0IEV4dFZh Y1JlcG9ydAogCQkJaW50NjQJCXBhZ2VzX2RlbGV0ZWQ7CQkvKiBudW1iZXIgb2YgcGFnZXMg ZGVsZXRlZCBieSB2YWN1dW0gKi8KIAkJfQkJCWluZGV4OwogCX0gLyogcGVyX3R5cGVfc3Rh dHMgKi87Ci19IEV4dFZhY1JlcG9ydDsKK30gUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRz OwogCi0vKiAtLS0tLS0tLS0tCi0gKiBQZ1N0YXRfVGFibGVDb3VudHMJCQlUaGUgYWN0dWFs IHBlci10YWJsZSBjb3VudHMga2VwdCBieSBhIGJhY2tlbmQKLSAqCi0gKiBUaGlzIHN0cnVj dCBzaG91bGQgY29udGFpbiBvbmx5IGFjdHVhbCBldmVudCBjb3VudGVycywgYmVjYXVzZSB3 ZSBtYWtlIHVzZQotICogb2YgcGdfbWVtb3J5X2lzX2FsbF96ZXJvcygpIHRvIGRldGVjdCB3 aGV0aGVyIHRoZXJlIGFyZSBhbnkgc3RhdHMgdXBkYXRlcwotICogdG8gYXBwbHkuCi0gKgot ICogSXQgaXMgYSBjb21wb25lbnQgb2YgUGdTdGF0X1RhYmxlU3RhdHVzICh3aXRoaW4tYmFj a2VuZCBzdGF0ZSkuCi0gKgotICogTm90ZTogZm9yIGEgdGFibGUsIHR1cGxlc19yZXR1cm5l ZCBpcyB0aGUgbnVtYmVyIG9mIHR1cGxlcyBzdWNjZXNzZnVsbHkKLSAqIGZldGNoZWQgYnkg aGVhcF9nZXRuZXh0LCB3aGlsZSB0dXBsZXNfZmV0Y2hlZCBpcyB0aGUgbnVtYmVyIG9mIHR1 cGxlcwotICogc3VjY2Vzc2Z1bGx5IGZldGNoZWQgYnkgaGVhcF9mZXRjaCB1bmRlciB0aGUg Y29udHJvbCBvZiBiaXRtYXAgaW5kZXhzY2Fucy4KLSAqIEZvciBhbiBpbmRleCwgdHVwbGVz X3JldHVybmVkIGlzIHRoZSBudW1iZXIgb2YgaW5kZXggZW50cmllcyByZXR1cm5lZCBieQot ICogdGhlIGluZGV4IEFNLCB3aGlsZSB0dXBsZXNfZmV0Y2hlZCBpcyB0aGUgbnVtYmVyIG9m IHR1cGxlcyBzdWNjZXNzZnVsbHkKLSAqIGZldGNoZWQgYnkgaGVhcF9mZXRjaCB1bmRlciB0 aGUgY29udHJvbCBvZiBzaW1wbGUgaW5kZXhzY2FucyBmb3IgdGhpcyBpbmRleC4KLSAqCi0g KiB0dXBsZXNfaW5zZXJ0ZWQvdXBkYXRlZC9kZWxldGVkL2hvdF91cGRhdGVkL25ld3BhZ2Vf dXBkYXRlZCBjb3VudCBhdHRlbXB0ZWQKLSAqIGFjdGlvbnMsIHJlZ2FyZGxlc3Mgb2Ygd2hl dGhlciB0aGUgdHJhbnNhY3Rpb24gY29tbWl0dGVkLiAgZGVsdGFfbGl2ZV90dXBsZXMsCi0g KiBkZWx0YV9kZWFkX3R1cGxlcywgYW5kIGNoYW5nZWRfdHVwbGVzIGFyZSBzZXQgZGVwZW5k aW5nIG9uIGNvbW1pdCBvciBhYm9ydC4KLSAqIE5vdGUgdGhhdCBkZWx0YV9saXZlX3R1cGxl cyBhbmQgZGVsdGFfZGVhZF90dXBsZXMgY2FuIGJlIG5lZ2F0aXZlIQotICogLS0tLS0tLS0t LQotICovCi10eXBlZGVmIHN0cnVjdCBQZ1N0YXRfVGFibGVDb3VudHMKK3R5cGVkZWYgc3Ry dWN0IFBnU3RhdF9WYWN1dW1SZWxhdGlvblN0YXR1cwogewotCVBnU3RhdF9Db3VudGVyIG51 bXNjYW5zOworCU9pZAkJCWlkOwkJCQkvKiB0YWJsZSdzIE9JRCAqLworCWJvb2wJCXNoYXJl ZDsJCQkvKiBpcyBpdCBhIHNoYXJlZCBjYXRhbG9nPyAqLworCVBnU3RhdF9WYWN1dW1SZWxh dGlvbkNvdW50cyBjb3VudHM7CS8qIGV2ZW50IGNvdW50cyB0byBiZSBzZW50ICovCit9IFBn U3RhdF9WYWN1dW1SZWxhdGlvblN0YXR1czsKIAotCVBnU3RhdF9Db3VudGVyIHR1cGxlc19y ZXR1cm5lZDsKLQlQZ1N0YXRfQ291bnRlciB0dXBsZXNfZmV0Y2hlZDsKK3R5cGVkZWYgc3Ry dWN0IFBnU3RhdF9WYWN1dW1EQkNvdW50cworeworCU9pZAkJCWRiamlkOworCS8qIG51bWJl ciBvZiBibG9ja3MgbWlzc2VkLCBoaXQsIGRpcnRpZWQgYW5kIHdyaXR0ZW4gZHVyaW5nIGEg dmFjdXVtIG9mIHNwZWNpZmljIHJlbGF0aW9uICovCisJaW50NjQJCXRvdGFsX2Jsa3NfcmVh ZDsKKwlpbnQ2NAkJdG90YWxfYmxrc19oaXQ7CisJaW50NjQJCXRvdGFsX2Jsa3NfZGlydGll ZDsKKwlpbnQ2NAkJdG90YWxfYmxrc193cml0dGVuOwogCi0JUGdTdGF0X0NvdW50ZXIgdHVw bGVzX2luc2VydGVkOwotCVBnU3RhdF9Db3VudGVyIHR1cGxlc191cGRhdGVkOwotCVBnU3Rh dF9Db3VudGVyIHR1cGxlc19kZWxldGVkOwotCVBnU3RhdF9Db3VudGVyIHR1cGxlc19ob3Rf dXBkYXRlZDsKLQlQZ1N0YXRfQ291bnRlciB0dXBsZXNfbmV3cGFnZV91cGRhdGVkOwotCWJv b2wJCXRydW5jZHJvcHBlZDsKKwkvKiBibG9ja3MgbWlzc2VkIGFuZCBoaXQgZm9yIGp1c3Qg dGhlIGhlYXAgZHVyaW5nIGEgdmFjdXVtIG9mIHNwZWNpZmljIHJlbGF0aW9uICovCisJaW50 NjQJCWJsa3NfZmV0Y2hlZDsKKwlpbnQ2NAkJYmxrc19oaXQ7CiAKLQlQZ1N0YXRfQ291bnRl ciBkZWx0YV9saXZlX3R1cGxlczsKLQlQZ1N0YXRfQ291bnRlciBkZWx0YV9kZWFkX3R1cGxl czsKLQlQZ1N0YXRfQ291bnRlciBjaGFuZ2VkX3R1cGxlczsKKwkvKiBWYWN1dW0gV0FMIHVz YWdlIHN0YXRzICovCisJaW50NjQJCXdhbF9yZWNvcmRzOwkvKiB3YWwgdXNhZ2U6IG51bWJl ciBvZiBXQUwgcmVjb3JkcyAqLworCWludDY0CQl3YWxfZnBpOwkJLyogd2FsIHVzYWdlOiBu dW1iZXIgb2YgV0FMIGZ1bGwgcGFnZSBpbWFnZXMgcHJvZHVjZWQgKi8KKwl1aW50NjQJCXdh bF9ieXRlczsJCS8qIHdhbCB1c2FnZTogc2l6ZSBvZiBXQUwgcmVjb3JkcyBwcm9kdWNlZCAq LwogCi0JUGdTdGF0X0NvdW50ZXIgYmxvY2tzX2ZldGNoZWQ7Ci0JUGdTdGF0X0NvdW50ZXIg YmxvY2tzX2hpdDsKKwkvKiBUaW1lIHN0YXRzLiAqLworCWRvdWJsZQkJYmxrX3JlYWRfdGlt ZTsJLyogdGltZSBzcGVudCByZWFkaW5nIHBhZ2VzLCBpbiBtc2VjICovCisJZG91YmxlCQli bGtfd3JpdGVfdGltZTsgLyogdGltZSBzcGVudCB3cml0aW5nIHBhZ2VzLCBpbiBtc2VjICov CisJZG91YmxlCQlkZWxheV90aW1lOwkJLyogaG93IGxvbmcgdmFjdXVtIHNsZXB0IGluIHZh Y3V1bSBkZWxheSBwb2ludCwgaW4gbXNlYyAqLworCWRvdWJsZQkJdG90YWxfdGltZTsJCS8q IHRvdGFsIHRpbWUgb2YgYSB2YWN1dW0gb3BlcmF0aW9uLCBpbiBtc2VjICovCiAKLQlQZ1N0 YXRfQ291bnRlciByZXZfYWxsX3Zpc2libGVfcGFnZXM7Ci0JUGdTdGF0X0NvdW50ZXIgcmV2 X2FsbF9mcm96ZW5fcGFnZXM7CisJaW50NjQJCXR1cGxlc19kZWxldGVkOwkJLyogdHVwbGVz IGRlbGV0ZWQgYnkgdmFjdXVtICovCiAKLQkvKgotCSAqIEFkZGl0aW9uYWwgY3VtdWxhdGl2 ZSBzdGF0IG9uIHZhY3V1bSBvcGVyYXRpb25zLgotCSAqIFVzZSBhbiBleHBlbnNpdmUgc3Ry dWN0dXJlIGFzIGFuIGFic3RyYWN0aW9uIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YKLQkgKiBy ZWxhdGlvbnMuCi0JICovCi0JRXh0VmFjUmVwb3J0CXZhY3V1bV9leHQ7Ci19IFBnU3RhdF9U YWJsZUNvdW50czsKKwlpbnQzMgkJZXJyb3JzOworCWludDMyCQl3cmFwYXJvdW5kX2ZhaWxz YWZlX2NvdW50OwkvKiB0aGUgbnVtYmVyIG9mIHRpbWVzIHRvIHByZXZlbnQgd3JhcGFyb3Vu ZCBwcm9ibGVtICovCit9IFBnU3RhdF9WYWN1dW1EQkNvdW50czsKIAogLyogLS0tLS0tLS0t LQogICogUGdTdGF0X1RhYmxlU3RhdHVzCQkJUGVyLXRhYmxlIHN0YXR1cyB3aXRoaW4gYSBi YWNrZW5kCkBAIC0yNzIsNiArMzAyLDEyIEBAIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9UYWJs ZVN0YXR1cwogCVJlbGF0aW9uCXJlbGF0aW9uOwkJLyogcmVsIHRoYXQgaXMgdXNpbmcgdGhp cyBlbnRyeSAqLwogfSBQZ1N0YXRfVGFibGVTdGF0dXM7CiAKK3R5cGVkZWYgc3RydWN0IFBn U3RhdF9SZWxhdGlvblZhY3V1bVBlbmRpbmcKK3sKKwlPaWQJCQlpZDsJCQkJLyogdGFibGUn cyBPSUQgKi8KKwlQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMgY291bnRzOwkvKiBldmVu dCBjb3VudHMgdG8gYmUgc2VudCAqLworfSBQZ1N0YXRfUmVsYXRpb25WYWN1dW1QZW5kaW5n OworCiAvKiAtLS0tLS0tLS0tCiAgKiBQZ1N0YXRfVGFibGVYYWN0U3RhdHVzCQlQZXItdGFi bGUsIHBlci1zdWJ0cmFuc2FjdGlvbiBzdGF0dXMKICAqIC0tLS0tLS0tLS0KQEAgLTQ2OCw4 ICs1MDQsNiBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfU3RhdERCRW50cnkKIAlQZ1N0YXRf Q291bnRlciBwYXJhbGxlbF93b3JrZXJzX2xhdW5jaGVkOwogCiAJVGltZXN0YW1wVHogc3Rh dF9yZXNldF90aW1lc3RhbXA7Ci0KLQlFeHRWYWNSZXBvcnQgdmFjdXVtX2V4dDsJCS8qIGV4 dGVuZGVkIHZhY3V1bSBzdGF0aXN0aWNzICovCiB9IFBnU3RhdF9TdGF0REJFbnRyeTsKIAog dHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0YXRGdW5jRW50cnkKQEAgLTU1MSw4ICs1ODUsNiBA QCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfU3RhdFRhYkVudHJ5CiAKIAlQZ1N0YXRfQ291bnRl ciByZXZfYWxsX3Zpc2libGVfcGFnZXM7CiAJUGdTdGF0X0NvdW50ZXIgcmV2X2FsbF9mcm96 ZW5fcGFnZXM7Ci0KLQlFeHRWYWNSZXBvcnQgdmFjdXVtX2V4dDsKIH0gUGdTdGF0X1N0YXRU YWJFbnRyeTsKIAogLyogLS0tLS0tCkBAIC03NjAsMTEgKzc5MiwxMSBAQCBleHRlcm4gdm9p ZCBwZ3N0YXRfdW5saW5rX3JlbGF0aW9uKFJlbGF0aW9uIHJlbCk7CiAKIGV4dGVybiB2b2lk IHBnc3RhdF9yZXBvcnRfdmFjdXVtKE9pZCB0YWJsZW9pZCwgYm9vbCBzaGFyZWQsCiAJCQkJ CQkJCSBQZ1N0YXRfQ291bnRlciBsaXZldHVwbGVzLCBQZ1N0YXRfQ291bnRlciBkZWFkdHVw bGVzLAotCQkJCQkJCQkgVGltZXN0YW1wVHogc3RhcnR0aW1lLCBFeHRWYWNSZXBvcnQgKnBh cmFtcyk7CisJCQkJCQkJCSBUaW1lc3RhbXBUeiBzdGFydHRpbWUpOwogZXh0ZXJuIHZvaWQg cGdzdGF0X3JlcG9ydF9hbmFseXplKFJlbGF0aW9uIHJlbCwKIAkJCQkJCQkJICBQZ1N0YXRf Q291bnRlciBsaXZldHVwbGVzLCBQZ1N0YXRfQ291bnRlciBkZWFkdHVwbGVzLAogCQkJCQkJ CQkgIGJvb2wgcmVzZXRjb3VudGVyLCBUaW1lc3RhbXBUeiBzdGFydHRpbWUpOwotZXh0ZXJu IHZvaWQgcGdzdGF0X3JlcG9ydF92YWN1dW1fZXJyb3IoT2lkIHRhYmxlb2lkLCBFeHRWYWNS ZXBvcnRUeXBlIG1fdHlwZSk7CitleHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0X3ZhY3V1bV9l cnJvcigpOwogCiAvKgogICogSWYgc3RhdHMgYXJlIGVuYWJsZWQsIGJ1dCBwZW5kaW5nIGRh dGEgaGFzbid0IGJlZW4gcHJlcGFyZWQgeWV0LCBjYWxsCkBAIC04OTUsNiArOTI3LDE1IEBA IGV4dGVybiBpbnQJcGdzdGF0X2dldF90cmFuc2FjdGlvbmFsX2Ryb3BzKGJvb2wgaXNDb21t aXQsIHN0cnVjdCB4bF94YWN0X3N0YXRzX2l0CiBleHRlcm4gdm9pZCBwZ3N0YXRfZXhlY3V0 ZV90cmFuc2FjdGlvbmFsX2Ryb3BzKGludCBuZHJvcHMsIHN0cnVjdCB4bF94YWN0X3N0YXRz X2l0ZW0gKml0ZW1zLCBib29sIGlzX3JlZG8pOwogCiAKK2V4dGVybiB2b2lkIHBnc3RhdF9k cm9wX3ZhY3V1bV9kYXRhYmFzZShPaWQgZGF0YWJhc2VpZCk7CitleHRlcm4gdm9pZCBwZ3N0 YXRfdmFjdXVtX3JlbGF0aW9uX2RlbGV0ZV9wZW5kaW5nX2NiKE9pZCByZWxpZCk7CitleHRl cm4gdm9pZAorcGdzdGF0X3JlcG9ydF90YWJfdmFjdXVtX2V4dHN0YXRzKE9pZCB0YWJsZW9p ZCwgYm9vbCBzaGFyZWQsCisJCQkJCQkJCSAgUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRz ICpwYXJhbXMpOworZXh0ZXJuIFBnU3RhdF9SZWxhdGlvblZhY3V1bVBlbmRpbmcgKiBmaW5k X3ZhY3V1bV9yZWxhdGlvbl9lbnRyeShPaWQgcmVsaWQpOworZXh0ZXJuIFBnU3RhdF9WYWN1 dW1EQkNvdW50cyAqcGdzdGF0X3ByZXBfdmFjdXVtX2RhdGFiYXNlX3BlbmRpbmcoT2lkIGRi b2lkKTsKK2V4dGVybiBQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMgKnBnc3RhdF9mZXRj aF9zdGF0X3ZhY3V1bV90YWJlbnRyeShPaWQgcmVsaWQsIE9pZCBkYmlkKTsKK1BnU3RhdF9W YWN1dW1EQkNvdW50cyAqcGdzdGF0X2ZldGNoX3N0YXRfdmFjdXVtX2RiZW50cnkoT2lkIGRi aWQpOwogLyoKICAqIEZ1bmN0aW9ucyBpbiBwZ3N0YXRfd2FsLmMKICAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0X2ludGVybmFsLmggYi9zcmMvaW5jbHVkZS91 dGlscy9wZ3N0YXRfaW50ZXJuYWwuaAppbmRleCBkNTU1N2U2ZTk5OC4uMTQwYWRiY2RiZDYg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3Bnc3RhdF9pbnRlcm5hbC5oCisrKyBi L3NyYy9pbmNsdWRlL3V0aWxzL3Bnc3RhdF9pbnRlcm5hbC5oCkBAIC00MzksNiArNDM5LDE4 IEBAIHR5cGVkZWYgc3RydWN0IFBnU3RhdFNoYXJlZF9SZWxhdGlvbgogCVBnU3RhdF9TdGF0 VGFiRW50cnkgc3RhdHM7CiB9IFBnU3RhdFNoYXJlZF9SZWxhdGlvbjsKIAordHlwZWRlZiBz dHJ1Y3QgUGdTdGF0U2hhcmVkX1ZhY3V1bURCCit7CisJUGdTdGF0U2hhcmVkX0NvbW1vbiBo ZWFkZXI7CisJUGdTdGF0X1ZhY3V1bURCQ291bnRzIHN0YXRzOworfSBQZ1N0YXRTaGFyZWRf VmFjdXVtREI7CisKK3R5cGVkZWYgc3RydWN0IFBnU3RhdFNoYXJlZF9WYWN1dW1SZWxhdGlv bgoreworCVBnU3RhdFNoYXJlZF9Db21tb24gaGVhZGVyOworCVBnU3RhdF9WYWN1dW1SZWxh dGlvbkNvdW50cyBzdGF0czsKK30gUGdTdGF0U2hhcmVkX1ZhY3V1bVJlbGF0aW9uOworCiB0 eXBlZGVmIHN0cnVjdCBQZ1N0YXRTaGFyZWRfRnVuY3Rpb24KIHsKIAlQZ1N0YXRTaGFyZWRf Q29tbW9uIGhlYWRlcjsKQEAgLTYwNyw2ICs2MTksOSBAQCBleHRlcm4gUGdTdGF0X0VudHJ5 UmVmICpwZ3N0YXRfZmV0Y2hfcGVuZGluZ19lbnRyeShQZ1N0YXRfS2luZCBraW5kLAogZXh0 ZXJuIHZvaWQgKnBnc3RhdF9mZXRjaF9lbnRyeShQZ1N0YXRfS2luZCBraW5kLCBPaWQgZGJv aWQsIHVpbnQ2NCBvYmppZCk7CiBleHRlcm4gdm9pZCBwZ3N0YXRfc25hcHNob3RfZml4ZWQo UGdTdGF0X0tpbmQga2luZCk7CiAKK2Jvb2wgcGdzdGF0X3ZhY3V1bV9kYl9mbHVzaF9jYihQ Z1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpOworZXh0ZXJuIGJvb2wg cGdzdGF0X3ZhY3V1bV9yZWxhdGlvbl9mbHVzaF9jYihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5 X3JlZiwgYm9vbCBub3dhaXQpOworCiAKIC8qCiAgKiBGdW5jdGlvbnMgaW4gcGdzdGF0X2Fy Y2hpdmVyLmMKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3Bnc3RhdF9raW5kLmgg Yi9zcmMvaW5jbHVkZS91dGlscy9wZ3N0YXRfa2luZC5oCmluZGV4IGY0NDE2OWZkNWEzLi40 NTQ2NjFmOWQ2YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0X2tpbmQu aAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9wZ3N0YXRfa2luZC5oCkBAIC0zOCw5ICszOCwx MSBAQAogI2RlZmluZSBQR1NUQVRfS0lORF9JTwkxMAogI2RlZmluZSBQR1NUQVRfS0lORF9T TFJVCTExCiAjZGVmaW5lIFBHU1RBVF9LSU5EX1dBTAkxMgorI2RlZmluZSBQR1NUQVRfS0lO RF9WQUNVVU1fREIJMTMKKyNkZWZpbmUgUEdTVEFUX0tJTkRfVkFDVVVNX1JFTEFUSU9OCTE0 CiAKICNkZWZpbmUgUEdTVEFUX0tJTkRfQlVJTFRJTl9NSU4gUEdTVEFUX0tJTkRfREFUQUJB U0UKLSNkZWZpbmUgUEdTVEFUX0tJTkRfQlVJTFRJTl9NQVggUEdTVEFUX0tJTkRfV0FMCisj ZGVmaW5lIFBHU1RBVF9LSU5EX0JVSUxUSU5fTUFYIFBHU1RBVF9LSU5EX1ZBQ1VVTV9SRUxB VElPTgogI2RlZmluZSBQR1NUQVRfS0lORF9CVUlMVElOX1NJWkUgKFBHU1RBVF9LSU5EX0JV SUxUSU5fTUFYICsgMSkKIAogLyogQ3VzdG9tIHN0YXRzIGtpbmRzICovCg== --------------IUDxn0gVtf2vbFzxDscYGnji--