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 1seWB0-008DMC-FY for pgsql-hackers@arkaria.postgresql.org; Thu, 15 Aug 2024 08:49:47 +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 1seWAz-00Fcal-4I for pgsql-hackers@arkaria.postgresql.org; Thu, 15 Aug 2024 08:49:45 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1seWAy-00Fcac-DZ for pgsql-hackers@lists.postgresql.org; Thu, 15 Aug 2024 08:49:44 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1seWAs-004xUj-IR for pgsql-hackers@postgresql.org; Thu, 15 Aug 2024 08:49:43 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1723711777; bh=l3ICAcpYp4xkcq6kcVjJoXOs/TUJgDWoQpe9AFXD/w0=; h=Message-ID:Date:User-Agent:Subject:To:Cc:References:From: In-Reply-To:From; b=eYEJzfKeOWNDK5JJwi1PADFMyAKSu19r735XMCguiOfmtX3jgfs/xHzRxJSstJcBr u+qRBa1s6ktrhw2qEhNS3tpbuHmhWu/WcoBuBCt3LEVC+zSowQSdrEI4zteWcF4Mxx rV5ttdS4boqKXzMYBTUNR2m2Vn4PFLLmD7eqzxefeu2i1T4GzENXFTfvIHhtKd1YiZ lj/SBom381mGieHNvUvouGcRGa3u49lRVhAoK2lQ42bHfA7sxxlJ8YONYuCrJLpuNu T5rg1ifinCsZ2YTI6AaKXMzFDpghQGcKIIKOF6RhDDUko7iwQl8wPmIEsZYMvnzE+x byq9hLRLH4qtQ== Received: from [172.30.35.38] (unknown [172.30.35.38]) (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 D1E6D5FFDD; Thu, 15 Aug 2024 11:49:36 +0300 (MSK) Content-Type: multipart/mixed; boundary="------------pH7wJoYVW1CRnjNgrE7OaUvT" Message-ID: <4a902cea-54fb-41b5-b208-b84731a5f577@postgrespro.ru> Date: Thu, 15 Aug 2024 11:49:36 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Vacuum statistics To: Ilia Evdokimov , Andrei Zubkov , Alena Rybakina Cc: pgsql-hackers , a.lepikhov@postgrespro.ru References: <53c47c2d-72a5-44f2-900c-9973b2af1808@tantorlabs.com> Content-Language: en-US From: Alena Rybakina In-Reply-To: X-KSMG-AntiPhishing: NotDetected, bases: 2024/08/15 08:03: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: 2024/08/15 04:47:00 #26317879 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. --------------pH7wJoYVW1CRnjNgrE7OaUvT Content-Type: multipart/alternative; boundary="------------v50K5G0VyQD0hnsU8Yi0dijq" --------------v50K5G0VyQD0hnsU8Yi0dijq Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi! On 13.08.2024 16:18, Ilia Evdokimov wrote: > > On 10.8.24 22:37, Andrei Zubkov wrote: > >> Hi, Ilia! >> >>> Do you consider not to create new table in pg_catalog but to save >>> statistics in existing table? I mean pg_class or >>> pg_stat_progress_analyze, pg_stat_progress_vacuum? >>> >> Thank you for your interest on our patch! >> >> *_progress views is not our case. They hold online statistics while >> vacuum is in progress. Once work is done on a table the entry is gone >> from those views. Idea of this patch is the opposite - it doesn't >> provide online statistics but it accumulates statistics about rosources >> consumed by all vacuum passes over all relations. It's much closer to >> the pg_stat_all_tables than pg_stat_progress_vacuum. >> >> It seems pg_class is not the right place because it is not a statistic >> view - it holds the current relation state and haven't anything about >> the relation workload. >> >> Maybe the pg_stat_all_tables is the right place but I have several >> thoughts about why it is not: >> - Some statistics provided by this patch is really vacuum specific. I >> don't think we want them in the relation statistics view. >> - Postgres is extreamly extensible. I'm sure someday there will be >> table AMs that does not need the vacuum at all. >> >> Right now vacuum specific workload views seems optimal choice to me. >> >> Regards, > > > Agreed. They are not god places to store such statistics. > > > I have some suggestions: > > 1. pgstatfuncs.c in functions tuplestore_put_for_database() and > tuplestore_put_for_relation you can remove 'nulls' array if you're > sure that columns cannot be NULL. > We need to use this for tuplestore_putvalues function. With this function, we fill the table with the values of the statistics. > > 1. > > > 2. These functions are almost the same and I would think of writing > one function depending of type 'ExtVacReportType' > I'm not sure that I fully understand what you mean. Can you explain it more clearly, please? On 13.08.2024 16:37, Ilia Evdokimov wrote: > And I have one suggestion for pg_stat_vacuum_database: I suppose we > should add database's name column after 'dboid' column because it is > difficult to read statistics without database's name. We could call it > 'datname' just like in 'pg_stat_database' view. > Thank you. Fixed. -- Regards, Alena Rybakina Postgres Professional:http://www.postgrespro.com The Russian Postgres Company --------------v50K5G0VyQD0hnsU8Yi0dijq Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit

Hi!

On 13.08.2024 16:18, Ilia Evdokimov wrote:

On 10.8.24 22:37, Andrei Zubkov wrote:

Hi, Ilia!

Do you consider not to create new table in pg_catalog but to save 
statistics in existing table? I mean pg_class or 
pg_stat_progress_analyze, pg_stat_progress_vacuum?

Thank you for your interest on our patch!

*_progress views is not our case. They hold online statistics while
vacuum is in progress. Once work is done on a table the entry is gone
from those views. Idea of this patch is the opposite - it doesn't
provide online statistics but it accumulates statistics about rosources
consumed by all vacuum passes over all relations. It's much closer to
the pg_stat_all_tables than pg_stat_progress_vacuum.

It seems pg_class is not the right place because it is not a statistic
view - it holds the current relation state and haven't anything about
the relation workload.

Maybe the pg_stat_all_tables is the right place but I have several
thoughts about why it is not:
- Some statistics provided by this patch is really vacuum specific. I
don't think we want them in the relation statistics view.
- Postgres is extreamly extensible. I'm sure someday there will be
table AMs that does not need the vacuum at all.

Right now vacuum specific workload views seems optimal choice to me.

Regards,


Agreed. They are not god places to store such statistics.


I have some suggestions:

  1. pgstatfuncs.c in functions tuplestore_put_for_database() and tuplestore_put_for_relation you can remove 'nulls' array if you're sure that columns cannot be NULL.
We need to use this for tuplestore_putvalues function. With this function, we fill the table with the values of the statistics.

  1. These functions are almost the same and I would think of writing one function depending of type 'ExtVacReportType'
I'm not sure that I fully understand what you mean. Can you explain it more clearly, please?

On 13.08.2024 16:37, Ilia Evdokimov wrote:
And I have one suggestion for pg_stat_vacuum_database: I suppose we should add database's name column after 'dboid' column because it is difficult to read statistics without database's name. We could call it 'datname' just like in 'pg_stat_database' view.

Thank you. Fixed.
-- 
Regards,
Alena Rybakina
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company
--------------v50K5G0VyQD0hnsU8Yi0dijq-- --------------pH7wJoYVW1CRnjNgrE7OaUvT Content-Type: text/x-patch; charset=UTF-8; name="v5-0001-Machinery-for-grabbing-an-extended-vacuum-statistics.patch" Content-Disposition: attachment; filename*0="v5-0001-Machinery-for-grabbing-an-extended-vacuum-statistics"; filename*1=".patch" Content-Transfer-Encoding: base64 RnJvbSBjZTgzNzdmYjgxNjZkYTM2MzZhNzMyMDFkNjBkZWMwNmY0NjY1NWIxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogVGh1LCAxNSBBdWcgMjAyNCAxMTozMDoxMyArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMS80XSBNYWNoaW5lcnkgZm9yIGdyYWJiaW5nIGFuIGV4dGVuZGVkIHZh Y3V1bSBzdGF0aXN0aWNzIG9uIAogaGVhcCByZWxhdGlvbnMuCgpWYWx1ZSBvZiB0b3RhbF9i bGtzX2hpdCwgdG90YWxfYmxrc19yZWFkLCB0b3RhbF9ibGtzX2RpcnRpZWQgYXJlIG51bWJl ciBvZgpoaXR0ZWQsIG1pc3NlZCBhbmQgZGlydGllZCBwYWdlcyBpbiBzaGFyZWQgYnVmZmVy cyBkdXJpbmcgYSB2YWN1dW0gb3BlcmF0aW9uCnJlc3BlY3RpdmVseS4KCnRvdGFsX2Jsa3Nf ZGlydGllZCBtZWFucyAnZGlydGllZCBvbmx5IGJ5IHRoaXMgYWN0aW9uJy4gU28sIGlmIHRo aXMgcGFnZSB3YXMKZGlydHkgYmVmb3JlIHRoZSB2YWN1dW0gb3BlcmF0aW9uLCBpdCBkb2Vz bid0IGNvdW50IHRoaXMgcGFnZSBhcyAnZGlydGllZCcuCgpUaGUgdHVwbGVzX2RlbGV0ZWQg cGFyYW1ldGVyIGlzIHRoZSBudW1iZXIgb2YgdHVwbGVzIGNsZWFuZWQgdXAgYnkgdGhlIHZh Y3V1bQpvcGVyYXRpb24uCgpUaGUgZGVsYXlfdGltZSB2YWx1ZSBtZWFucyB0b3RhbCB2YWN1 dW0gc2xlZXAgdGltZSBpbiB2YWN1dW0gZGVsYXkgcG9pbnQuClRoZSBwYWdlc19yZW1vdmVk IHZhbHVlIGlzIHRoZSBudW1iZXIgb2YgcGFnZXMgYnkgd2hpY2ggdGhlIHBoeXNpY2FsIGRh dGEKc3RvcmFnZSBvZiB0aGUgcmVsYXRpb24gd2FzIHJlZHVjZWQuClRoZSB2YWx1ZSBvZiBw YWdlc19kZWxldGVkIHBhcmFtZXRlciBpcyB0aGUgbnVtYmVyIG9mIGZyZWVkIHBhZ2VzIGlu IHRoZSB0YWJsZQooZmlsZSBzaXplIG1heSBub3QgaGF2ZSBjaGFuZ2VkKS4KCkludGVycnVw dGlvbnMgbnVtYmVyIG9mIChhdXRvKXZhY3V1bSBwcm9jZXNzIGR1cmluZyB2YWN1dW1pbmcg b2YgYSByZWxhdGlvbi4KV2UgcmVwb3J0IGZyb20gdGhlIHZhY3V1bV9lcnJvcl9jYWxsYmFj ayByb3V0aW5lLiBTbyB3ZSBjYW4gbG9nIGFsbCBFUlJPUgpyZXBvcnRzLiBJbiB0aGUgY2Fz ZSBvZiBhdXRvdmFjdXVtIHdlIGNhbiByZXBvcnQgU0lHSU5UIHNpZ25hbHMgdG9vLgpJdCBt YXliZSBkYW5nZXJvdXMgdG8gbWFrZSBzdWNoIGNvbXBsZXggdGFzayAoc2VuZCkgaW4gYW4g ZXJyb3IgY2FsbGJhY2sgLQp3ZSBjYW4gY2F0Y2ggRVJST1IgaW4gRVJST1IgcHJvYmxlbS4g QnV0IGl0IGxvb2tzIGxpa2Ugd2UgaGF2ZSBzbyBzbWFsbApjaGFuY2UgdG8gc3R1Y2sgaW50 byB0aGlzIHByb2JsZW0uIFNvLCBsZXQncyB0cnkgdG8gdXNlLgpUaGlzIHBhcmFtZXRlciBy ZWxhdGVzIHRvIGEgcHJvYmxlbSwgY292ZXJlZCBieSBiMTllNDI1MC4KClRyYWNraW5nIG9m IElPIGR1cmluZyBhbiAoYXV0byl2YWN1dW0gb3BlcmF0aW9uLgpJbnRyb2R1Y2VkIHZhcmlh YmxlcyBibGtfcmVhZF90aW1lIGFuZCBibGtfd3JpdGVfdGltZSB0cmFja3Mgb25seSBhY2Nl c3MgdG8KYnVmZmVyIHBhZ2VzIGFuZCBmbHVzaGluZyB0aGVtIHRvIGRpc2suIFJlYWRpbmcg b3BlcmF0aW9uIGlzIHRyaXZpYWwsIGJ1dAp3cml0aW5nIG1lYXN1cmVtZW50IHRlY2huaXF1 ZSBpcyBub3Qgb2J2aW91cy4KU28sIGR1cmluZyBhIHZhY3V1bSB3cml0aW5nIHRpbWUgY2Fu IGJlIHplcm8gaW5jcmVtZW50ZWQgYmVjYXVzZSBubyBhbnkgZmx1c2hpbmcKb3BlcmF0aW9u cyB3ZXJlIHBlcmZvcm1lZC4KClN5c3RlbSB0aW1lIGFuZCB1c2VyIHRpbWUgYXJlIHBhcmFt ZXRlcnMgdGhhdCBkZXNjcmliZXMgaG93IG11Y2ggdGltZSBhIHZhY3V1bQpvcGVyYXRpb24g aGFzIHNwZW50IGluIGV4ZWN1dGluZyBvZiBjb2RlIGluIHVzZXIgc3BhY2UgYW5kIGtlcm5l bCBzcGFjZQphY2NvcmRpbmdseS4gQWxzbywgYWNjdW11bGF0ZSB0b3RhbCB0aW1lIG9mIGEg dmFjdXVtIHRoYXQgaXMgYSBkaWZmIGJldHdlZW4KdGltZXN0YW1wcyBpbiBzdGFydCBhbmQg ZmluaXNoIHBvaW50cyBpbiB0aGUgdmFjdXVtIGNvZGUuClJlbWVtYmVyIGFib3V0IGlkbGUg dGltZSwgd2hlbiB2YWN1dW0gd2FpdGVkIGZvciBJTyBhbmQgbG9ja3MsIHNvIHRvdGFsIHRp bWUKaXNuJ3QgZXF1YWwgYSBzdW0gb2YgdXNlciBhbmQgc3lzdGVtIHRpbWUsIGJ1dCBubyBs ZXNzLgoKcGFnZXNfZnJvemVuIC0gbnVtYmVyIG9mIHBhZ2VzIHRoYXQgYXJlIG1hcmtlZCBh cyBmcm96ZW4gaW4gdm0gZHVyaW5nIHZhY3V1bS4KVGhpcyBwYXJhbWV0ZXIgaXMgaW5jcmVt ZW50ZWQgaWYgcGFnZSBpcyBtYXJrZWQgYXMgYWxsLWZyb3plbi4KcGFnZXNfYWxsX3Zpc2li bGUgLSBudW1iZXIgb2YgcGFnZXMgdGhhdCBhcmUgbWFya2VkIGFzIGFsbC12aXNpYmxlIGlu IHZtIGR1cmluZwp2YWN1dW0uCgpBdXRob3JzOiBBbGVuYSBSeWJha2luYSA8bGVuYS5yaWJh Y2tpbmFAeWFuZGV4LnJ1PiwKCSBBbmRyZWkgTGVwaWtob3YgPGEubGVwaWtob3ZAcG9zdGdy ZXNwcm8ucnU+LAoJIEFuZHJlaSBadWJrb3YgPGEuenVia292QHBvc3RncmVzcHJvLnJ1Pgot LS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyAgICAgICAgICB8IDE1 OSArKysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1h cC5jICAgICAgIHwgIDEzICsrCiBzcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5z cWwgICAgICAgICAgfCAgNTQgKysrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5j ICAgICAgICAgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1w YXJhbGxlbC5jICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkv cGdzdGF0LmMgICAgICAgICAgIHwgIDkyICsrKysrLS0tCiBzcmMvYmFja2VuZC91dGlscy9h Y3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYyAgfCAgMzUgKystCiBzcmMvYmFja2VuZC91dGls cy9hZHQvcGdzdGF0ZnVuY3MuYyAgICAgICAgICAgfCAxODYgKysrKysrKysrKysrKysrKwog c3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jICAgICAgICAgICAgICAgIHwgIDEzICsr CiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAgICAgfCAgMTAg Ky0KIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oICAgICAgICAgICAgICAgICB8ICAg MSArCiBzcmMvaW5jbHVkZS9wZ3N0YXQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ODQgKysrKysrKy0KIHNyYy9pbmNsdWRlL3V0aWxzL2Vsb2cuaCAgICAgICAgICAgICAgICAg ICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0X2ludGVybmFsLmggICAg ICAgICAgIHwgIDM2ICsrKy0KIC4uLi92YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0YWJsZS1y ZWFkLm91dCAgICB8ICA1MyArKysrKwogc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9z Y2hlZHVsZSAgICAgICAgIHwgICAxICsKIC4uLi92YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0 YWJsZS1yZWFkLnNwZWMgICB8ICA1MSArKysrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9vcHJfc2FuaXR5Lm91dCAgICAgIHwgICA3ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3J1bGVzLm91dCAgICAgICAgICAgfCAgMzQgKysrCiAuLi4vZXhwZWN0ZWQvdmFjdXVt X3RhYmxlc19zdGF0aXN0aWNzLm91dCAgICAgfCAyMDAgKysrKysrKysrKysrKysrKysrCiBz cmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAgfCAgIDUgKwog Li4uL3JlZ3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGljcy5zcWwgIHwgMTU4ICsr KysrKysrKysrKysrCiAyMiBmaWxlcyBjaGFuZ2VkLCAxMTU1IGluc2VydGlvbnMoKyksIDQ0 IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xhdGlvbi9l eHBlY3RlZC92YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0YWJsZS1yZWFkLm91dAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy92YWN1dW0tZXh0ZW5kaW5n LWluLXJlcGV0YWJsZS1yZWFkLnNwZWMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGljcy5vdXQKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1dW1fdGFibGVzX3N0YXRpc3Rp Y3Muc3FsCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6 eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IGQ4MmFh M2Q0ODk2Li4zOTQxYWUyNmYyZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxh enkuYwpAQCAtMTY3LDYgKzE2Nyw3IEBAIHR5cGVkZWYgc3RydWN0IExWUmVsU3RhdGUKIAkv KiBFcnJvciByZXBvcnRpbmcgc3RhdGUgKi8KIAljaGFyCSAgICpkYm5hbWU7CiAJY2hhcgkg ICAqcmVsbmFtZXNwYWNlOworCU9pZAkJCXJlbG9pZDsKIAljaGFyCSAgICpyZWxuYW1lOwog CWNoYXIJICAgKmluZG5hbWU7CQkvKiBDdXJyZW50IGluZGV4IG5hbWUgKi8KIAlCbG9ja051 bWJlciBibGtubzsJCQkvKiB1c2VkIG9ubHkgZm9yIGhlYXAgb3BlcmF0aW9ucyAqLwpAQCAt MTk0LDYgKzE5NSw4IEBAIHR5cGVkZWYgc3RydWN0IExWUmVsU3RhdGUKIAlCbG9ja051bWJl ciBscGRlYWRfaXRlbV9wYWdlczsJLyogIyBwYWdlcyB3aXRoIExQX0RFQUQgaXRlbXMgKi8K IAlCbG9ja051bWJlciBtaXNzZWRfZGVhZF9wYWdlczsJLyogIyBwYWdlcyB3aXRoIG1pc3Nl ZCBkZWFkIHR1cGxlcyAqLwogCUJsb2NrTnVtYmVyIG5vbmVtcHR5X3BhZ2VzOyAvKiBhY3R1 YWxseSwgbGFzdCBub25lbXB0eSBwYWdlICsgMSAqLworCUJsb2NrTnVtYmVyIHNldF9mcm96 ZW5fcGFnZXM7IC8qIHBhZ2VzIGFyZSBtYXJrZWQgYXMgZnJvemVuIGluIHZtIGR1cmluZyB2 YWN1dW0gKi8KKwlCbG9ja051bWJlciBzZXRfYWxsX3Zpc2libGVfcGFnZXM7CS8qIHBhZ2Vz IGFyZSBtYXJrZWQgYXMgYWxsLXZpc2libGUgaW4gdm0gZHVyaW5nIHZhY3V1bSAqLwogCiAJ LyogU3RhdGlzdGljcyBvdXRwdXQgYnkgdXMsIGZvciB0YWJsZSAqLwogCWRvdWJsZQkJbmV3 X3JlbF90dXBsZXM7IC8qIG5ldyBlc3RpbWF0ZWQgdG90YWwgIyBvZiB0dXBsZXMgKi8KQEAg LTIyNiw2ICsyMjksMjIgQEAgdHlwZWRlZiBzdHJ1Y3QgTFZTYXZlZEVyckluZm8KIAlWYWNF cnJQaGFzZSBwaGFzZTsKIH0gTFZTYXZlZEVyckluZm87CiAKKy8qCisgKiBDdXQtb2ZmIHZh bHVlcyBvZiBwYXJhbWV0ZXJzIHdoaWNoIGNoYW5nZXMgaW1wbGljaXRseSBkdXJpbmcgYSB2 YWN1dW0KKyAqIHByb2Nlc3MuCisgKiBWYWN1dW0gY2FuJ3QgY29udHJvbCB0aGVpciB2YWx1 ZXMsIHNvIHdlIHNob3VsZCBzdG9yZSB0aGVtIGJlZm9yZSBhbmQgYWZ0ZXIKKyAqIHRoZSBw cm9jZXNzaW5nLgorICovCit0eXBlZGVmIHN0cnVjdCBMVkV4dFN0YXRDb3VudGVycworewor CVRpbWVzdGFtcFR6IHRpbWU7CisJUEdSVXNhZ2UJcnU7CisJV2FsVXNhZ2UJd2FsdXNhZ2U7 CisJQnVmZmVyVXNhZ2UgYnVmdXNhZ2U7CisJZG91YmxlCQlWYWN1dW1EZWxheVRpbWU7CisJ UGdTdGF0X0NvdW50ZXIgYmxvY2tzX2ZldGNoZWQ7CisJUGdTdGF0X0NvdW50ZXIgYmxvY2tz X2hpdDsKK30gTFZFeHRTdGF0Q291bnRlcnM7CiAKIC8qIG5vbi1leHBvcnQgZnVuY3Rpb24g cHJvdG90eXBlcyAqLwogc3RhdGljIHZvaWQgbGF6eV9zY2FuX2hlYXAoTFZSZWxTdGF0ZSAq dmFjcmVsKTsKQEAgLTI3OSw2ICsyOTgsMTE1IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV92YWN1 dW1fZXJyb3JfaW5mbyhMVlJlbFN0YXRlICp2YWNyZWwsCiBzdGF0aWMgdm9pZCByZXN0b3Jl X3ZhY3V1bV9lcnJvcl9pbmZvKExWUmVsU3RhdGUgKnZhY3JlbCwKIAkJCQkJCQkJCSAgY29u c3QgTFZTYXZlZEVyckluZm8gKnNhdmVkX3ZhY3JlbCk7CiAKKy8qIC0tLS0tLS0tLS0KKyAq IGV4dHZhY19zdGF0c19zdGFydCgpIC0KKyAqCisgKiBTYXZlIGN1dC1vZmYgdmFsdWVzIG9m IGV4dGVuZGVkIHZhY3V1bSBjb3VudGVycyBiZWZvcmUgc3RhcnQgb2YgYSByZWxhdGlvbgor ICogcHJvY2Vzc2luZy4KKyAqIC0tLS0tLS0tLS0KKyAqLworc3RhdGljIHZvaWQKK2V4dHZh Y19zdGF0c19zdGFydChSZWxhdGlvbiByZWwsIExWRXh0U3RhdENvdW50ZXJzICpjb3VudGVy cykKK3sKKwlUaW1lc3RhbXBUeglzdGFydHRpbWU7CisJUEdSVXNhZ2UJcnUwOworCisJbWVt c2V0KGNvdW50ZXJzLCAwLCBzaXplb2YoTFZFeHRTdGF0Q291bnRlcnMpKTsKKworCXBnX3J1 c2FnZV9pbml0KCZydTApOworCXN0YXJ0dGltZSA9IEdldEN1cnJlbnRUaW1lc3RhbXAoKTsK KworCWNvdW50ZXJzLT5ydSA9IHJ1MDsKKwljb3VudGVycy0+dGltZSA9IHN0YXJ0dGltZTsK Kwljb3VudGVycy0+d2FsdXNhZ2UgPSBwZ1dhbFVzYWdlOworCWNvdW50ZXJzLT5idWZ1c2Fn ZSA9IHBnQnVmZmVyVXNhZ2U7CisJY291bnRlcnMtPlZhY3V1bURlbGF5VGltZSA9IFZhY3V1 bURlbGF5VGltZTsKKwljb3VudGVycy0+YmxvY2tzX2ZldGNoZWQgPSAwOworCWNvdW50ZXJz LT5ibG9ja3NfaGl0ID0gMDsKKworCWlmICghcmVsLT5wZ3N0YXRfaW5mbyB8fCAhcGdzdGF0 X3RyYWNrX2NvdW50cykKKwkJLyoKKwkJICogaWYgc29tZXRoaW5nIGdvZXMgd3Jvbmcgb3Ig YW4gdXNlciBkb2Vzbid0IHdhbnQgdG8gdHJhY2sgYSBkYXRhYmFzZQorCQkgKiBhY3Rpdml0 eSAtIGp1c3Qgc3VwcHJlc3MgaXQuCisJCSAqLworCQlyZXR1cm47CisKKwljb3VudGVycy0+ YmxvY2tzX2ZldGNoZWQgPSByZWwtPnBnc3RhdF9pbmZvLT5jb3VudHMuYmxvY2tzX2ZldGNo ZWQ7CisJY291bnRlcnMtPmJsb2Nrc19oaXQgPSByZWwtPnBnc3RhdF9pbmZvLT5jb3VudHMu YmxvY2tzX2hpdDsKK30KKworLyogLS0tLS0tLS0tLQorICogZXh0dmFjX3N0YXRzX2VuZCgp IC0KKyAqCisgKglDYWxsZWQgdG8gZmluaXNoIGFuIGV4dGVuZGVkIHZhY3V1bSBzdGF0aXN0 aWMgZ2F0aGVyaW5nIGFuZCBmb3JtIGEgcmVwb3J0LgorICogLS0tLS0tLS0tLQorICovCitz dGF0aWMgdm9pZAorZXh0dmFjX3N0YXRzX2VuZChSZWxhdGlvbiByZWwsIExWRXh0U3RhdENv dW50ZXJzICpjb3VudGVycywKKwkJCQkgIEV4dFZhY1JlcG9ydCAqcmVwb3J0KQoreworCVdh bFVzYWdlCXdhbHVzYWdlOworCUJ1ZmZlclVzYWdlCWJ1ZnVzYWdlOworCVRpbWVzdGFtcFR6 IGVuZHRpbWU7CisJbG9uZwkJc2VjczsKKwlpbnQJCQl1c2VjczsKKwlQR1JVc2FnZQlydTE7 CisKKwkvKiBDYWxjdWxhdGUgZGlmZnMgb2YgZ2xvYmFsIHN0YXQgcGFyYW1ldGVycyBvbiBX QUwgYW5kIGJ1ZmZlciB1c2FnZS4gKi8KKwltZW1zZXQoJndhbHVzYWdlLCAwLCBzaXplb2Yo V2FsVXNhZ2UpKTsKKwlXYWxVc2FnZUFjY3VtRGlmZigmd2FsdXNhZ2UsICZwZ1dhbFVzYWdl LCAmY291bnRlcnMtPndhbHVzYWdlKTsKKworCW1lbXNldCgmYnVmdXNhZ2UsIDAsIHNpemVv ZihCdWZmZXJVc2FnZSkpOworCUJ1ZmZlclVzYWdlQWNjdW1EaWZmKCZidWZ1c2FnZSwgJnBn QnVmZmVyVXNhZ2UsICZjb3VudGVycy0+YnVmdXNhZ2UpOworCisJZW5kdGltZSA9IEdldEN1 cnJlbnRUaW1lc3RhbXAoKTsKKwlUaW1lc3RhbXBEaWZmZXJlbmNlKGNvdW50ZXJzLT50aW1l LCBlbmR0aW1lLCAmc2VjcywgJnVzZWNzKTsKKworCW1lbXNldChyZXBvcnQsIDAsIHNpemVv ZihFeHRWYWNSZXBvcnQpKTsKKworCS8qCisJICogRmlsbCBhZGRpdGlvbmFsIHN0YXRpc3Rp Y3Mgb24gYSB2YWN1dW0gcHJvY2Vzc2luZyBvcGVyYXRpb24uCisJICovCisJcmVwb3J0LT50 b3RhbF9ibGtzX3JlYWQgPSBidWZ1c2FnZS5sb2NhbF9ibGtzX3JlYWQgKyBidWZ1c2FnZS5z aGFyZWRfYmxrc19yZWFkOworCXJlcG9ydC0+dG90YWxfYmxrc19oaXQgPSBidWZ1c2FnZS5s b2NhbF9ibGtzX2hpdCArIGJ1ZnVzYWdlLnNoYXJlZF9ibGtzX2hpdDsKKwlyZXBvcnQtPnRv dGFsX2Jsa3NfZGlydGllZCA9IGJ1ZnVzYWdlLmxvY2FsX2Jsa3NfZGlydGllZCArIGJ1ZnVz YWdlLnNoYXJlZF9ibGtzX2RpcnRpZWQ7CisJcmVwb3J0LT50b3RhbF9ibGtzX3dyaXR0ZW4g PSBidWZ1c2FnZS5zaGFyZWRfYmxrc193cml0dGVuOworCisJcmVwb3J0LT53YWxfcmVjb3Jk cyA9IHdhbHVzYWdlLndhbF9yZWNvcmRzOworCXJlcG9ydC0+d2FsX2ZwaSA9IHdhbHVzYWdl LndhbF9mcGk7CisJcmVwb3J0LT53YWxfYnl0ZXMgPSB3YWx1c2FnZS53YWxfYnl0ZXM7CisK KwlyZXBvcnQtPmJsa19yZWFkX3RpbWUgPSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhidWZ1 c2FnZS5sb2NhbF9ibGtfcmVhZF90aW1lKTsKKwlyZXBvcnQtPmJsa19yZWFkX3RpbWUgKz0g SU5TVFJfVElNRV9HRVRfTUlMTElTRUMoYnVmdXNhZ2Uuc2hhcmVkX2Jsa19yZWFkX3RpbWUp OworCXJlcG9ydC0+YmxrX3dyaXRlX3RpbWUgPSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhi dWZ1c2FnZS5sb2NhbF9ibGtfd3JpdGVfdGltZSk7CisJcmVwb3J0LT5ibGtfd3JpdGVfdGlt ZSA9IElOU1RSX1RJTUVfR0VUX01JTExJU0VDKGJ1ZnVzYWdlLnNoYXJlZF9ibGtfd3JpdGVf dGltZSk7CisJcmVwb3J0LT5kZWxheV90aW1lID0gVmFjdXVtRGVsYXlUaW1lIC0gY291bnRl cnMtPlZhY3V1bURlbGF5VGltZTsKKworCS8qCisJICogR2V0IGRpZmZlcmVuY2Ugb2YgYSBz eXN0ZW0gdGltZSBhbmQgdXNlciB0aW1lIHZhbHVlcyBpbiBtaWxsaXNlY29uZHMuCisJICog VXNlIGZsb2F0aW5nIHBvaW50IHJlcHJlc2VudGF0aW9uIHRvIHNob3cgdGFpbHMgb2YgdGlt ZSBkaWZmcy4KKwkgKi8KKwlwZ19ydXNhZ2VfaW5pdCgmcnUxKTsKKwlyZXBvcnQtPnN5c3Rl bV90aW1lID0KKwkJKHJ1MS5ydS5ydV9zdGltZS50dl9zZWMgLSBjb3VudGVycy0+cnUucnUu cnVfc3RpbWUudHZfc2VjKSAqIDEwMDAuICsKKwkJKHJ1MS5ydS5ydV9zdGltZS50dl91c2Vj IC0gY291bnRlcnMtPnJ1LnJ1LnJ1X3N0aW1lLnR2X3VzZWMpICogMC4wMDE7CisJcmVwb3J0 LT51c2VyX3RpbWUgPQorCQkocnUxLnJ1LnJ1X3V0aW1lLnR2X3NlYyAtIGNvdW50ZXJzLT5y dS5ydS5ydV91dGltZS50dl9zZWMpICogMTAwMC4gKworCQkocnUxLnJ1LnJ1X3V0aW1lLnR2 X3VzZWMgLSBjb3VudGVycy0+cnUucnUucnVfdXRpbWUudHZfdXNlYykgKiAwLjAwMTsKKwly ZXBvcnQtPnRvdGFsX3RpbWUgPSBzZWNzICogMTAwMC4gKyB1c2VjcyAvIDEwMDAuOworCisJ aWYgKCFyZWwtPnBnc3RhdF9pbmZvIHx8ICFwZ3N0YXRfdHJhY2tfY291bnRzKQorCQkvKgor CQkgKiBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZyBvciBhbiB1c2VyIGRvZXNuJ3Qgd2FudCB0 byB0cmFjayBhIGRhdGFiYXNlCisJCSAqIGFjdGl2aXR5IC0ganVzdCBzdXBwcmVzcyBpdC4K KwkJICovCisJCXJldHVybjsKKworCXJlcG9ydC0+Ymxrc19mZXRjaGVkID0KKwkJcmVsLT5w Z3N0YXRfaW5mby0+Y291bnRzLmJsb2Nrc19mZXRjaGVkIC0gY291bnRlcnMtPmJsb2Nrc19m ZXRjaGVkOworCXJlcG9ydC0+Ymxrc19oaXQgPQorCQlyZWwtPnBnc3RhdF9pbmZvLT5jb3Vu dHMuYmxvY2tzX2hpdCAtIGNvdW50ZXJzLT5ibG9ja3NfaGl0OworfQogCiAvKgogICoJaGVh cF92YWN1dW1fcmVsKCkgLS0gcGVyZm9ybSBWQUNVVU0gZm9yIG9uZSBoZWFwIHJlbGF0aW9u CkBAIC0zMTEsNiArNDM5LDggQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgVmFj dXVtUGFyYW1zICpwYXJhbXMsCiAJV2FsVXNhZ2UJc3RhcnR3YWx1c2FnZSA9IHBnV2FsVXNh Z2U7CiAJQnVmZmVyVXNhZ2Ugc3RhcnRidWZmZXJ1c2FnZSA9IHBnQnVmZmVyVXNhZ2U7CiAJ RXJyb3JDb250ZXh0Q2FsbGJhY2sgZXJyY2FsbGJhY2s7CisJTFZFeHRTdGF0Q291bnRlcnMg ZXh0VmFjQ291bnRlcnM7CisJRXh0VmFjUmVwb3J0IGV4dFZhY1JlcG9ydDsKIAljaGFyCSAg KippbmRuYW1lcyA9IE5VTEw7CiAKIAl2ZXJib3NlID0gKHBhcmFtcy0+b3B0aW9ucyAmIFZB Q09QVF9WRVJCT1NFKSAhPSAwOwpAQCAtMzI5LDcgKzQ1OSw3IEBAIGhlYXBfdmFjdXVtX3Jl bChSZWxhdGlvbiByZWwsIFZhY3V1bVBhcmFtcyAqcGFyYW1zLAogCiAJcGdzdGF0X3Byb2dy ZXNzX3N0YXJ0X2NvbW1hbmQoUFJPR1JFU1NfQ09NTUFORF9WQUNVVU0sCiAJCQkJCQkJCSAg UmVsYXRpb25HZXRSZWxpZChyZWwpKTsKLQorCWV4dHZhY19zdGF0c19zdGFydChyZWwsICZl eHRWYWNDb3VudGVycyk7CiAJLyoKIAkgKiBTZXR1cCBlcnJvciB0cmFjZWJhY2sgc3VwcG9y dCBmb3IgZXJlcG9ydCgpIGZpcnN0LiAgVGhlIGlkZWEgaXMgdG8gc2V0CiAJICogdXAgYW4g ZXJyb3IgY29udGV4dCBjYWxsYmFjayB0byBkaXNwbGF5IGFkZGl0aW9uYWwgaW5mb3JtYXRp b24gb24gYW55CkBAIC0zNDYsNiArNDc2LDcgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9u IHJlbCwgVmFjdXVtUGFyYW1zICpwYXJhbXMsCiAJdmFjcmVsLT5kYm5hbWUgPSBnZXRfZGF0 YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpOwogCXZhY3JlbC0+cmVsbmFtZXNwYWNlID0gZ2V0 X25hbWVzcGFjZV9uYW1lKFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJlbCkpOwogCXZhY3JlbC0+ cmVsbmFtZSA9IHBzdHJkdXAoUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSk7CisJdmFj cmVsLT5yZWxvaWQgPSBSZWxhdGlvbkdldFJlbGlkKHJlbCk7CiAJdmFjcmVsLT5pbmRuYW1l ID0gTlVMTDsKIAl2YWNyZWwtPnBoYXNlID0gVkFDVVVNX0VSUkNCX1BIQVNFX1VOS05PV047 CiAJdmFjcmVsLT52ZXJib3NlID0gdmVyYm9zZTsKQEAgLTQxMyw2ICs1NDQsOCBAQCBoZWFw X3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLCBWYWN1dW1QYXJhbXMgKnBhcmFtcywKIAl2YWNy ZWwtPmxwZGVhZF9pdGVtX3BhZ2VzID0gMDsKIAl2YWNyZWwtPm1pc3NlZF9kZWFkX3BhZ2Vz ID0gMDsKIAl2YWNyZWwtPm5vbmVtcHR5X3BhZ2VzID0gMDsKKwl2YWNyZWwtPnNldF9mcm96 ZW5fcGFnZXMgPSAwOworCXZhY3JlbC0+c2V0X2FsbF92aXNpYmxlX3BhZ2VzID0gMDsKIAkv KiBkZWFkX2l0ZW1zX2FsbG9jIGFsbG9jYXRlcyB2YWNyZWwtPmRlYWRfaXRlbXMgbGF0ZXIg b24gKi8KIAogCS8qIEFsbG9jYXRlL2luaXRpYWxpemUgb3V0cHV0IHN0YXRpc3RpY3Mgc3Rh dGUgKi8KQEAgLTU3NCw2ICs3MDcsMTkgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJl bCwgVmFjdXVtUGFyYW1zICpwYXJhbXMsCiAJCQkJCQl2YWNyZWwtPk5ld1JlbGZyb3plblhp ZCwgdmFjcmVsLT5OZXdSZWxtaW5NeGlkLAogCQkJCQkJJmZyb3plbnhpZF91cGRhdGVkLCAm bWlubXVsdGlfdXBkYXRlZCwgZmFsc2UpOwogCisJLyogTWFrZSBnZW5lcmljIGV4dGVuZGVk IHZhY3V1bSBzdGF0cyByZXBvcnQgKi8KKwlleHR2YWNfc3RhdHNfZW5kKHJlbCwgJmV4dFZh Y0NvdW50ZXJzLCAmZXh0VmFjUmVwb3J0KTsKKworCS8qIEZpbGwgaGVhcC1zcGVjaWZpYyBl eHRlbmRlZCBzdGF0cyBmaWVsZHMgKi8KKwlleHRWYWNSZXBvcnQucGFnZXNfc2Nhbm5lZCA9 IHZhY3JlbC0+c2Nhbm5lZF9wYWdlczsKKwlleHRWYWNSZXBvcnQucGFnZXNfcmVtb3ZlZCA9 IHZhY3JlbC0+cmVtb3ZlZF9wYWdlczsKKwlleHRWYWNSZXBvcnQucGFnZXNfZnJvemVuID0g dmFjcmVsLT5zZXRfZnJvemVuX3BhZ2VzOworCWV4dFZhY1JlcG9ydC5wYWdlc19hbGxfdmlz aWJsZSA9IHZhY3JlbC0+c2V0X2FsbF92aXNpYmxlX3BhZ2VzOworCWV4dFZhY1JlcG9ydC50 dXBsZXNfZGVsZXRlZCA9IHZhY3JlbC0+dHVwbGVzX2RlbGV0ZWQ7CisJZXh0VmFjUmVwb3J0 LnR1cGxlc19mcm96ZW4gPSB2YWNyZWwtPnR1cGxlc19mcm96ZW47CisJZXh0VmFjUmVwb3J0 LmRlYWRfdHVwbGVzID0gdmFjcmVsLT5yZWNlbnRseV9kZWFkX3R1cGxlcyArIHZhY3JlbC0+ bWlzc2VkX2RlYWRfdHVwbGVzOworCWV4dFZhY1JlcG9ydC5pbmRleF92YWN1dW1fY291bnQg PSB2YWNyZWwtPm51bV9pbmRleF9zY2FuczsKKwogCS8qCiAJICogUmVwb3J0IHJlc3VsdHMg dG8gdGhlIGN1bXVsYXRpdmUgc3RhdHMgc3lzdGVtLCB0b28uCiAJICoKQEAgLTU4OCw3ICs3 MzQsOCBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLCBWYWN1dW1QYXJhbXMgKnBh cmFtcywKIAkJCQkJCSByZWwtPnJkX3JlbC0+cmVsaXNzaGFyZWQsCiAJCQkJCQkgTWF4KHZh Y3JlbC0+bmV3X2xpdmVfdHVwbGVzLCAwKSwKIAkJCQkJCSB2YWNyZWwtPnJlY2VudGx5X2Rl YWRfdHVwbGVzICsKLQkJCQkJCSB2YWNyZWwtPm1pc3NlZF9kZWFkX3R1cGxlcyk7CisJCQkJ CQkgdmFjcmVsLT5taXNzZWRfZGVhZF90dXBsZXMsCisJCQkJCQkgJmV4dFZhY1JlcG9ydCk7 CiAJcGdzdGF0X3Byb2dyZXNzX2VuZF9jb21tYW5kKCk7CiAKIAlpZiAoaW5zdHJ1bWVudCkK QEAgLTEzODAsNiArMTUyNyw4IEBAIGxhenlfc2Nhbl9uZXdfb3JfZW1wdHkoTFZSZWxTdGF0 ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLCBCbG9ja051bWJlciBibGtubywKIAkJCQkJCQkgIHZt YnVmZmVyLCBJbnZhbGlkVHJhbnNhY3Rpb25JZCwKIAkJCQkJCQkgIFZJU0lCSUxJVFlNQVBf QUxMX1ZJU0lCTEUgfCBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pOwogCQkJRU5EX0NSSVRf U0VDVElPTigpOworCQkJdmFjcmVsLT5zZXRfYWxsX3Zpc2libGVfcGFnZXMrKzsKKwkJCXZh Y3JlbC0+c2V0X2Zyb3plbl9wYWdlcysrOwogCQl9CiAKIAkJZnJlZXNwYWNlID0gUGFnZUdl dEhlYXBGcmVlU3BhY2UocGFnZSk7CkBAIC0yMjc3LDExICsyNDI2LDEzIEBAIGxhenlfdmFj dXVtX2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBC dWZmZXIgYnVmZmVyLAogCQkJCQkJCQkgJmFsbF9mcm96ZW4pKQogCXsKIAkJdWludDgJCWZs YWdzID0gVklTSUJJTElUWU1BUF9BTExfVklTSUJMRTsKKwkJdmFjcmVsLT5zZXRfYWxsX3Zp c2libGVfcGFnZXMrKzsKIAogCQlpZiAoYWxsX2Zyb3plbikKIAkJewogCQkJQXNzZXJ0KCFU cmFuc2FjdGlvbklkSXNWYWxpZCh2aXNpYmlsaXR5X2N1dG9mZl94aWQpKTsKIAkJCWZsYWdz IHw9IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTjsKKwkJCXZhY3JlbC0+c2V0X2Zyb3plbl9w YWdlcysrOwogCQl9CiAKIAkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CkBAIC0zMTIyLDYg KzMyNzMsOCBAQCB2YWN1dW1fZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJnKQogCXN3aXRjaCAo ZXJyaW5mby0+cGhhc2UpCiAJewogCQljYXNlIFZBQ1VVTV9FUlJDQl9QSEFTRV9TQ0FOX0hF QVA6CisJCQlpZihnZXRlcnJlbGV2ZWwoKSA+PSBFUlJPUikKKwkJCQlwZ3N0YXRfcmVwb3J0 X3ZhY3V1bV9lcnJvcihlcnJpbmZvLT5yZWxvaWQpOwogCQkJaWYgKEJsb2NrTnVtYmVySXNW YWxpZChlcnJpbmZvLT5ibGtubykpCiAJCQl7CiAJCQkJaWYgKE9mZnNldE51bWJlcklzVmFs aWQoZXJyaW5mby0+b2ZmbnVtKSkKQEAgLTMxMzcsNiArMzI5MCw4IEBAIHZhY3V1bV9lcnJv cl9jYWxsYmFjayh2b2lkICphcmcpCiAJCQlicmVhazsKIAogCQljYXNlIFZBQ1VVTV9FUlJD Ql9QSEFTRV9WQUNVVU1fSEVBUDoKKwkJCWlmKGdldGVycmVsZXZlbCgpID49IEVSUk9SKQor CQkJCXBnc3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9yKGVycmluZm8tPnJlbG9pZCk7CiAJCQlp ZiAoQmxvY2tOdW1iZXJJc1ZhbGlkKGVycmluZm8tPmJsa25vKSkKIAkJCXsKIAkJCQlpZiAo T2Zmc2V0TnVtYmVySXNWYWxpZChlcnJpbmZvLT5vZmZudW0pKQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCmluZGV4IDhiMjRlN2JjMzNjLi5kNzJjYWRlNjBh NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYwpAQCAtOTEs NiArOTEsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy94bG9naW5zZXJ0LmgiCiAjaW5jbHVkZSAi YWNjZXNzL3hsb2d1dGlscy5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUg InBnc3RhdC5oIgogI2luY2x1ZGUgInBvcnQvcGdfYml0dXRpbHMuaCIKICNpbmNsdWRlICJz dG9yYWdlL2J1Zm1nci5oIgogI2luY2x1ZGUgInN0b3JhZ2Uvc21nci5oIgpAQCAtMTYwLDYg KzE2MSwxOCBAQCB2aXNpYmlsaXR5bWFwX2NsZWFyKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1i ZXIgaGVhcEJsaywgQnVmZmVyIHZtYnVmLCB1aW50OCBmbGFncwogCiAJaWYgKG1hcFttYXBC eXRlXSAmIG1hc2spCiAJeworCQkvKgorCQkgKiBJbml0aWFsbHksIGl0IGRpZG4ndCBtYXR0 ZXIgd2hhdCB0eXBlIG9mIGZsYWdzIChhbGwtdmlzaWJsZSBvciBmcm96ZW4pIHdlIHJlY2Vp dmVkLAorCQkgKiB3ZSBqdXN0IHBlcmZvcm1lZCBhIHJldmVyc2UgY29uY2F0ZW5hdGlvbiBv cGVyYXRpb24uIEJ1dCB0aGlzIGluZm9ybWF0aW9uIGlzIHZlcnkgaW1wb3J0YW50CisJCSAq IGZvciB2YWN1dW0gc3RhdGlzdGljcy4gV2UgbmVlZCB0byBmaW5kIG91dCB0aGlzIHVzaW5n dGhlIGJpdCBjb25jYXRlbmF0aW9uIG9wZXJhdGlvbgorCQkgKiB3aXRoIHRoZSBWSVNJQklM SVRZTUFQX0FMTF9WSVNJQkxFIGFuZCBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4gbWFza3Ms CisJCSAqIGFuZCB3aGVyZSB0aGUgZGVzaXJlZCBvbmUgbWF0Y2hlcywgd2UgaW5jcmVtZW50 IHRoZSB2YWx1ZSB0aGVyZS4KKwkJKi8KKwkJaWYgKG1hcFttYXBCeXRlXSA+PiBtYXBPZmZz ZXQgJiBmbGFncyAmIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUpCisJCQlwZ3N0YXRfY291 bnRfdm1fcmV2X2FsbF92aXNpYmxlKHJlbCk7CisJCWlmIChtYXBbbWFwQnl0ZV0gPj4gbWFw T2Zmc2V0ICYgZmxhZ3MgJiBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pCisJCQlwZ3N0YXRf Y291bnRfdm1fcmV2X2FsbF9mcm96ZW4ocmVsKTsKKwogCQltYXBbbWFwQnl0ZV0gJj0gfm1h c2s7CiAKIAkJTWFya0J1ZmZlckRpcnR5KHZtYnVmKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lz dGVtX3ZpZXdzLnNxbAppbmRleCAxOWNhYmM5YTQ3Zi4uNjhlNmJmZTYxMTUgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAorKysgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKQEAgLTEzNzEsMyArMTM3MSw1NyBAQCBD UkVBVEUgVklFVyBwZ19zdGF0X3N1YnNjcmlwdGlvbl9zdGF0cyBBUwogCiBDUkVBVEUgVklF VyBwZ193YWl0X2V2ZW50cyBBUwogICAgIFNFTEVDVCAqIEZST00gcGdfZ2V0X3dhaXRfZXZl bnRzKCk7CistLQorLS0gU2hvdyBleHRlbmRlZCBjdW11bGF0aXZlIHN0YXRpc3RpY3Mgb24g YSB2YWN1dW0gb3BlcmF0aW9uIG92ZXIgYWxsIHRhYmxlcyBhbmQKKy0tIGRhdGFiYXNlcyBv ZiB0aGUgaW5zdGFuY2UuCistLSBVc2UgSW52YWxpZCBPaWQgIjAiIGFzIGFuIGlucHV0IHJl bGF0aW9uIGlkIHRvIGdldCBzdGF0IG9uIGVhY2ggdGFibGUgaW4gYQorLS0gZGF0YWJhc2Uu CistLQorCitDUkVBVEUgVklFVyBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgQVMKK1NFTEVDVAor ICByZWwub2lkIGFzIHJlbGlkLAorICBucy5uc3BuYW1lIEFTICJzY2hlbWEiLAorICByZWwu cmVsbmFtZSBBUyByZWxuYW1lLAorCisgIHN0YXRzLnRvdGFsX2Jsa3NfcmVhZCwKKyAgc3Rh dHMudG90YWxfYmxrc19oaXQsCisgIHN0YXRzLnRvdGFsX2Jsa3NfZGlydGllZCwKKyAgc3Rh dHMudG90YWxfYmxrc193cml0dGVuLAorCisgIHN0YXRzLnJlbF9ibGtzX3JlYWQsCisgIHN0 YXRzLnJlbF9ibGtzX2hpdCwKKworICBzdGF0cy5wYWdlc19zY2FubmVkLAorICBzdGF0cy5w YWdlc19yZW1vdmVkLAorICBzdGF0cy5wYWdlc19mcm96ZW4sCisgIHN0YXRzLnBhZ2VzX2Fs bF92aXNpYmxlLAorICBzdGF0cy50dXBsZXNfZGVsZXRlZCwKKyAgc3RhdHMudHVwbGVzX2Zy b3plbiwKKyAgc3RhdHMuZGVhZF90dXBsZXMsCisKKyAgc3RhdHMuaW5kZXhfdmFjdXVtX2Nv dW50LAorICBzdGF0cy5yZXZfYWxsX2Zyb3plbl9wYWdlcywKKyAgc3RhdHMucmV2X2FsbF92 aXNpYmxlX3BhZ2VzLAorCisgIHN0YXRzLndhbF9yZWNvcmRzLAorICBzdGF0cy53YWxfZnBp LAorICBzdGF0cy53YWxfYnl0ZXMsCisKKyAgc3RhdHMuYmxrX3JlYWRfdGltZSwKKyAgc3Rh dHMuYmxrX3dyaXRlX3RpbWUsCisKKyAgc3RhdHMuZGVsYXlfdGltZSwKKyAgc3RhdHMuc3lz dGVtX3RpbWUsCisgIHN0YXRzLnVzZXJfdGltZSwKKyAgc3RhdHMudG90YWxfdGltZSwKKyAg c3RhdHMuaW50ZXJydXB0cworRlJPTQorICBwZ19kYXRhYmFzZSBkYiwKKyAgcGdfY2xhc3Mg cmVsLAorICBwZ19uYW1lc3BhY2UgbnMsCisgIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyhkYi5v aWQsIHJlbC5vaWQpIHN0YXRzCitXSEVSRQorICBkYi5kYXRuYW1lID0gY3VycmVudF9kYXRh YmFzZSgpIEFORAorICByZWwub2lkID0gc3RhdHMucmVsaWQgQU5ECisgIG5zLm9pZCA9IHJl bC5yZWxuYW1lc3BhY2U7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1 dW0uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jCmluZGV4IDdkOGU5ZDIwNDU0 Li4zNjM5MjRkMDBkYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVt LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMKQEAgLTEwMyw2ICsxMDMs OSBAQCBwZ19hdG9taWNfdWludDMyICpWYWN1dW1TaGFyZWRDb3N0QmFsYW5jZSA9IE5VTEw7 CiBwZ19hdG9taWNfdWludDMyICpWYWN1dW1BY3RpdmVOV29ya2VycyA9IE5VTEw7CiBpbnQJ CQlWYWN1dW1Db3N0QmFsYW5jZUxvY2FsID0gMDsKIAorLyogQ3VtdWxhdGl2ZSBzdG9yYWdl IHRvIHJlcG9ydCB0b3RhbCB2YWN1dW0gZGVsYXkgdGltZS4gKi8KK2RvdWJsZSBWYWN1dW1E ZWxheVRpbWUgPSAwOyAvKiBtc2VjLiAqLworCiAvKiBub24tZXhwb3J0IGZ1bmN0aW9uIHBy b3RvdHlwZXMgKi8KIHN0YXRpYyBMaXN0ICpleHBhbmRfdmFjdXVtX3JlbChWYWN1dW1SZWxh dGlvbiAqdnJlbCwKIAkJCQkJCQkgICBNZW1vcnlDb250ZXh0IHZhY19jb250ZXh0LCBpbnQg b3B0aW9ucyk7CkBAIC0yMzk0LDYgKzIzOTcsNyBAQCB2YWN1dW1fZGVsYXlfcG9pbnQodm9p ZCkKIAkJCWV4aXQoMSk7CiAKIAkJVmFjdXVtQ29zdEJhbGFuY2UgPSAwOworCQlWYWN1dW1E ZWxheVRpbWUgKz0gbXNlYzsKIAogCQkvKgogCQkgKiBCYWxhbmNlIGFuZCB1cGRhdGUgbGlt aXQgdmFsdWVzIGZvciBhdXRvdmFjdXVtIHdvcmtlcnMuIFdlIG11c3QgZG8KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCmluZGV4IDIyYzA1N2ZlNjFiLi4xM2FiNjMz MDg2YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwu YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCkBAIC0xMDQz LDYgKzEwNDMsNyBAQCBwYXJhbGxlbF92YWN1dW1fbWFpbihkc21fc2VnbWVudCAqc2VnLCBz aG1fdG9jICp0b2MpCiAJLyogU2V0IGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5ICovCiAJVmFj dXVtVXBkYXRlQ29zdHMoKTsKIAlWYWN1dW1Db3N0QmFsYW5jZSA9IDA7CisJVmFjdXVtRGVs YXlUaW1lID0gMDsKIAlWYWN1dW1Db3N0QmFsYW5jZUxvY2FsID0gMDsKIAlWYWN1dW1TaGFy ZWRDb3N0QmFsYW5jZSA9ICYoc2hhcmVkLT5jb3N0X2JhbGFuY2UpOwogCVZhY3V1bUFjdGl2 ZU5Xb3JrZXJzID0gJihzaGFyZWQtPmFjdGl2ZV9ud29ya2Vycyk7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L3Bnc3RhdC5jCmluZGV4IGIyY2EzZjM5YjdhLi42YTc4OGYyYjU4NiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKQEAgLTE0NiwzNCArMTQ2LDYgQEAK ICNkZWZpbmUgUEdTVEFUX0ZJTEVfRU5UUllfSEFTSAknUycgLyogc3RhdHMgZW50cnkgaWRl bnRpZmllZCBieQogCQkJCQkJCQkJICogUGdTdGF0X0hhc2hLZXkgKi8KIAotLyogaGFzaCB0 YWJsZSBmb3Igc3RhdGlzdGljcyBzbmFwc2hvdHMgZW50cnkgKi8KLXR5cGVkZWYgc3RydWN0 IFBnU3RhdF9TbmFwc2hvdEVudHJ5Ci17Ci0JUGdTdGF0X0hhc2hLZXkga2V5OwotCWNoYXIJ CXN0YXR1czsJCQkvKiBmb3Igc2ltcGxlaGFzaCB1c2UgKi8KLQl2b2lkCSAgICpkYXRhOwkJ CS8qIHRoZSBzdGF0cyBkYXRhIGl0c2VsZiAqLwotfSBQZ1N0YXRfU25hcHNob3RFbnRyeTsK LQotCi0vKiAtLS0tLS0tLS0tCi0gKiBCYWNrZW5kLWxvY2FsIEhhc2ggVGFibGUgRGVmaW5p dGlvbnMKLSAqIC0tLS0tLS0tLS0KLSAqLwotCi0vKiBmb3Igc3RhdHMgc25hcHNob3QgZW50 cmllcyAqLwotI2RlZmluZSBTSF9QUkVGSVggcGdzdGF0X3NuYXBzaG90Ci0jZGVmaW5lIFNI X0VMRU1FTlRfVFlQRSBQZ1N0YXRfU25hcHNob3RFbnRyeQotI2RlZmluZSBTSF9LRVlfVFlQ RSBQZ1N0YXRfSGFzaEtleQotI2RlZmluZSBTSF9LRVkga2V5Ci0jZGVmaW5lIFNIX0hBU0hf S0VZKHRiLCBrZXkpIFwKLQlwZ3N0YXRfaGFzaF9oYXNoX2tleSgma2V5LCBzaXplb2YoUGdT dGF0X0hhc2hLZXkpLCBOVUxMKQotI2RlZmluZSBTSF9FUVVBTCh0YiwgYSwgYikgXAotCXBn c3RhdF9jbXBfaGFzaF9rZXkoJmEsICZiLCBzaXplb2YoUGdTdGF0X0hhc2hLZXkpLCBOVUxM KSA9PSAwCi0jZGVmaW5lIFNIX1NDT1BFIHN0YXRpYyBpbmxpbmUKLSNkZWZpbmUgU0hfREVG SU5FCi0jZGVmaW5lIFNIX0RFQ0xBUkUKLSNpbmNsdWRlICJsaWIvc2ltcGxlaGFzaC5oIgot CiAKIC8qIC0tLS0tLS0tLS0KICAqIExvY2FsIGZ1bmN0aW9uIGZvcndhcmQgZGVjbGFyYXRp b25zCkBAIC0xOTAsNyArMTYyLDcgQEAgc3RhdGljIHZvaWQgcGdzdGF0X3Jlc2V0X2FmdGVy X2ZhaWx1cmUodm9pZCk7CiBzdGF0aWMgYm9vbCBwZ3N0YXRfZmx1c2hfcGVuZGluZ19lbnRy aWVzKGJvb2wgbm93YWl0KTsKIAogc3RhdGljIHZvaWQgcGdzdGF0X3ByZXBfc25hcHNob3Qo dm9pZCk7Ci1zdGF0aWMgdm9pZCBwZ3N0YXRfYnVpbGRfc25hcHNob3Qodm9pZCk7CitzdGF0 aWMgdm9pZCBwZ3N0YXRfYnVpbGRfc25hcHNob3QoUGdTdGF0X0tpbmQgc3RhdEtpbmQpOwog c3RhdGljIHZvaWQgcGdzdGF0X2J1aWxkX3NuYXBzaG90X2ZpeGVkKFBnU3RhdF9LaW5kIGtp bmQpOwogCiBzdGF0aWMgaW5saW5lIGJvb2wgcGdzdGF0X2lzX2tpbmRfdmFsaWQoUGdTdGF0 X0tpbmQga2luZCk7CkBAIC04MzAsNiArODAyLDQwIEBAIHBnc3RhdF9yZXNldF9vZl9raW5k KFBnU3RhdF9LaW5kIGtpbmQpCiAJCXBnc3RhdF9yZXNldF9lbnRyaWVzX29mX2tpbmQoa2lu ZCwgdHMpOwogfQogCit2b2lkCitwZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNfc3RhdHMoRXh0 VmFjUmVwb3J0ICpkc3QsIEV4dFZhY1JlcG9ydCAqc3JjLAorCQkJCQkJCSAgIGJvb2wgYWNj dW11bGF0ZV9yZWx0eXBlX3NwZWNpZmljX2luZm8pCit7CisJZHN0LT50b3RhbF9ibGtzX3Jl YWQgKz0gc3JjLT50b3RhbF9ibGtzX3JlYWQ7CisJZHN0LT50b3RhbF9ibGtzX2hpdCArPSBz cmMtPnRvdGFsX2Jsa3NfaGl0OworCWRzdC0+dG90YWxfYmxrc19kaXJ0aWVkICs9IHNyYy0+ dG90YWxfYmxrc19kaXJ0aWVkOworCWRzdC0+dG90YWxfYmxrc193cml0dGVuICs9IHNyYy0+ dG90YWxfYmxrc193cml0dGVuOworCWRzdC0+d2FsX2J5dGVzICs9IHNyYy0+d2FsX2J5dGVz OworCWRzdC0+d2FsX2ZwaSArPSBzcmMtPndhbF9mcGk7CisJZHN0LT53YWxfcmVjb3JkcyAr PSBzcmMtPndhbF9yZWNvcmRzOworCWRzdC0+YmxrX3JlYWRfdGltZSArPSBzcmMtPmJsa19y ZWFkX3RpbWU7CisJZHN0LT5ibGtfd3JpdGVfdGltZSArPSBzcmMtPmJsa193cml0ZV90aW1l OworCWRzdC0+ZGVsYXlfdGltZSArPSBzcmMtPmRlbGF5X3RpbWU7CisJZHN0LT5zeXN0ZW1f dGltZSArPSBzcmMtPnN5c3RlbV90aW1lOworCWRzdC0+dXNlcl90aW1lICs9IHNyYy0+dXNl cl90aW1lOworCWRzdC0+dG90YWxfdGltZSArPSBzcmMtPnRvdGFsX3RpbWU7CisJZHN0LT5p bnRlcnJ1cHRzICs9IHNyYy0+aW50ZXJydXB0czsKKworCWlmICghYWNjdW11bGF0ZV9yZWx0 eXBlX3NwZWNpZmljX2luZm8pCisJCXJldHVybjsKKworCWRzdC0+Ymxrc19mZXRjaGVkICs9 IHNyYy0+Ymxrc19mZXRjaGVkOworCWRzdC0+Ymxrc19oaXQgKz0gc3JjLT5ibGtzX2hpdDsK KworCWRzdC0+cGFnZXNfc2Nhbm5lZCArPSBzcmMtPnBhZ2VzX3NjYW5uZWQ7CisJZHN0LT5w YWdlc19yZW1vdmVkICs9IHNyYy0+cGFnZXNfcmVtb3ZlZDsKKwlkc3QtPnBhZ2VzX2Zyb3pl biArPSBzcmMtPnBhZ2VzX2Zyb3plbjsKKwlkc3QtPnBhZ2VzX2FsbF92aXNpYmxlICs9IHNy Yy0+cGFnZXNfYWxsX3Zpc2libGU7CisJZHN0LT50dXBsZXNfZGVsZXRlZCArPSBzcmMtPnR1 cGxlc19kZWxldGVkOworCWRzdC0+dHVwbGVzX2Zyb3plbiArPSBzcmMtPnR1cGxlc19mcm96 ZW47CisJZHN0LT5kZWFkX3R1cGxlcyArPSBzcmMtPmRlYWRfdHVwbGVzOworCWRzdC0+aW5k ZXhfdmFjdXVtX2NvdW50ICs9IHNyYy0+aW5kZXhfdmFjdXVtX2NvdW50OworfQogCiAvKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICAqIEZldGNoaW5nIG9mIHN0YXRzCkBAIC04OTYsNyArOTAyLDcgQEAgcGdzdGF0 X2ZldGNoX2VudHJ5KFBnU3RhdF9LaW5kIGtpbmQsIE9pZCBkYm9pZCwgT2lkIG9iam9pZCkK IAogCS8qIGlmIHdlIG5lZWQgdG8gYnVpbGQgYSBmdWxsIHNuYXBzaG90LCBkbyBzbyAqLwog CWlmIChwZ3N0YXRfZmV0Y2hfY29uc2lzdGVuY3kgPT0gUEdTVEFUX0ZFVENIX0NPTlNJU1RF TkNZX1NOQVBTSE9UKQotCQlwZ3N0YXRfYnVpbGRfc25hcHNob3QoKTsKKwkJcGdzdGF0X2J1 aWxkX3NuYXBzaG90KFBHU1RBVF9LSU5EX0lOVkFMSUQpOwogCiAJLyogaWYgY2FjaGluZyBp cyBkZXNpcmVkLCBsb29rIHVwIGluIGNhY2hlICovCiAJaWYgKHBnc3RhdF9mZXRjaF9jb25z aXN0ZW5jeSA+IFBHU1RBVF9GRVRDSF9DT05TSVNURU5DWV9OT05FKQpAQCAtMTAxMiw3ICsx MDE4LDcgQEAgcGdzdGF0X3NuYXBzaG90X2ZpeGVkKFBnU3RhdF9LaW5kIGtpbmQpCiAJCXBn c3RhdF9jbGVhcl9zbmFwc2hvdCgpOwogCiAJaWYgKHBnc3RhdF9mZXRjaF9jb25zaXN0ZW5j eSA9PSBQR1NUQVRfRkVUQ0hfQ09OU0lTVEVOQ1lfU05BUFNIT1QpCi0JCXBnc3RhdF9idWls ZF9zbmFwc2hvdCgpOworCQlwZ3N0YXRfYnVpbGRfc25hcHNob3QoUEdTVEFUX0tJTkRfSU5W QUxJRCk7CiAJZWxzZQogCQlwZ3N0YXRfYnVpbGRfc25hcHNob3RfZml4ZWQoa2luZCk7CiAK QEAgLTEwNjIsOCArMTA2OCwzMCBAQCBwZ3N0YXRfcHJlcF9zbmFwc2hvdCh2b2lkKQogCQkJ CQkJCSAgIE5VTEwpOwogfQogCisKKy8qCisgKiBUcml2aWFsIGV4dGVybmFsIGludGVyZmFj ZSB0byBidWlsZCBhIHNuYXBzaG90IGZvciB0YWJsZSBzdGF0aXN0aWNzIG9ubHkuCisgKi8K K3ZvaWQKK3Bnc3RhdF91cGRhdGVfc25hcHNob3QoUGdTdGF0X0tpbmQga2luZCkKK3sKKwlp bnQgc2F2ZV9jb25zaXN0ZW5jeV9ndWMgPSBwZ3N0YXRfZmV0Y2hfY29uc2lzdGVuY3k7CisJ cGdzdGF0X2NsZWFyX3NuYXBzaG90KCk7CisKKwlQR19UUlkoKTsKKwl7CisJCXBnc3RhdF9m ZXRjaF9jb25zaXN0ZW5jeSA9IFBHU1RBVF9GRVRDSF9DT05TSVNURU5DWV9TTkFQU0hPVDsK KwkJcGdzdGF0X2J1aWxkX3NuYXBzaG90KFBHU1RBVF9LSU5EX1JFTEFUSU9OKTsKKwl9CisJ UEdfRklOQUxMWSgpOworCXsKKwkJcGdzdGF0X2ZldGNoX2NvbnNpc3RlbmN5ID0gc2F2ZV9j b25zaXN0ZW5jeV9ndWM7CisJfQorCVBHX0VORF9UUlkoKTsKK30KKwogc3RhdGljIHZvaWQK LXBnc3RhdF9idWlsZF9zbmFwc2hvdCh2b2lkKQorcGdzdGF0X2J1aWxkX3NuYXBzaG90KFBn U3RhdF9LaW5kIHN0YXRLaW5kKQogewogCWRzaGFzaF9zZXFfc3RhdHVzIGhzdGF0OwogCVBn U3RhdFNoYXJlZF9IYXNoRW50cnkgKnA7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2 aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCmluZGV4IDhhM2Y3ZDQzNGNmLi5kNDBkNDNjZGI0YSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9u LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMK QEAgLTIwNCwxMiArMjA0LDQwIEBAIHBnc3RhdF9kcm9wX3JlbGF0aW9uKFJlbGF0aW9uIHJl bCkKIAl9CiB9CiAKKy8qIC0tLS0tLS0tLQorICogcGdzdGF0X3JlcG9ydF92YWN1dW1fZXJy b3IoKSAtCisgKgorICoJVGVsbCB0aGUgY29sbGVjdG9yIGFib3V0IGFuIChhdXRvKXZhY3V1 bSBpbnRlcnJ1cHRpb24uCisgKiAtLS0tLS0tLS0KKyAqLwordm9pZAorcGdzdGF0X3JlcG9y dF92YWN1dW1fZXJyb3IoT2lkIHRhYmxlb2lkKQoreworCVBnU3RhdF9FbnRyeVJlZiAqZW50 cnlfcmVmOworCVBnU3RhdFNoYXJlZF9SZWxhdGlvbiAqc2h0YWJlbnRyeTsKKwlQZ1N0YXRf U3RhdFRhYkVudHJ5ICp0YWJlbnRyeTsKKwlPaWQJCQlkYm9pZCA9ICBNeURhdGFiYXNlSWQ7 CisKKwlpZiAoIXBnc3RhdF90cmFja19jb3VudHMpCisJCXJldHVybjsKKworCWVudHJ5X3Jl ZiA9IHBnc3RhdF9nZXRfZW50cnlfcmVmX2xvY2tlZChQR1NUQVRfS0lORF9SRUxBVElPTiwK KwkJCQkJCQkJCQkJZGJvaWQsIHRhYmxlb2lkLCBmYWxzZSk7CisKKwlzaHRhYmVudHJ5ID0g KFBnU3RhdFNoYXJlZF9SZWxhdGlvbiAqKSBlbnRyeV9yZWYtPnNoYXJlZF9zdGF0czsKKwl0 YWJlbnRyeSA9ICZzaHRhYmVudHJ5LT5zdGF0czsKKworCXRhYmVudHJ5LT52YWN1dW1fZXh0 LmludGVycnVwdHMrKzsKKwlwZ3N0YXRfdW5sb2NrX2VudHJ5KGVudHJ5X3JlZik7Cit9CisK IC8qCiAgKiBSZXBvcnQgdGhhdCB0aGUgdGFibGUgd2FzIGp1c3QgdmFjdXVtZWQgYW5kIGZs dXNoIElPIHN0YXRpc3RpY3MuCiAgKi8KIHZvaWQKIHBnc3RhdF9yZXBvcnRfdmFjdXVtKE9p ZCB0YWJsZW9pZCwgYm9vbCBzaGFyZWQsCi0JCQkJCSBQZ1N0YXRfQ291bnRlciBsaXZldHVw bGVzLCBQZ1N0YXRfQ291bnRlciBkZWFkdHVwbGVzKQorCQkJCQkgUGdTdGF0X0NvdW50ZXIg bGl2ZXR1cGxlcywgUGdTdGF0X0NvdW50ZXIgZGVhZHR1cGxlcywKKwkJCQkJIEV4dFZhY1Jl cG9ydCAqcGFyYW1zKQogewogCVBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmOwogCVBnU3Rh dFNoYXJlZF9SZWxhdGlvbiAqc2h0YWJlbnRyeTsKQEAgLTIzMyw2ICsyNjEsOCBAQCBwZ3N0 YXRfcmVwb3J0X3ZhY3V1bShPaWQgdGFibGVvaWQsIGJvb2wgc2hhcmVkLAogCXRhYmVudHJ5 LT5saXZlX3R1cGxlcyA9IGxpdmV0dXBsZXM7CiAJdGFiZW50cnktPmRlYWRfdHVwbGVzID0g ZGVhZHR1cGxlczsKIAorCXBnc3RhdF9hY2N1bXVsYXRlX2V4dHZhY19zdGF0cygmdGFiZW50 cnktPnZhY3V1bV9leHQsIHBhcmFtcywgdHJ1ZSk7CisKIAkvKgogCSAqIEl0IGlzIHF1aXRl IHBvc3NpYmxlIHRoYXQgYSBub24tYWdncmVzc2l2ZSBWQUNVVU0gZW5kZWQgdXAgc2tpcHBp bmcKIAkgKiB2YXJpb3VzIHBhZ2VzLCBob3dldmVyLCB3ZSdsbCB6ZXJvIHRoZSBpbnNlcnQg Y291bnRlciBoZXJlIHJlZ2FyZGxlc3MuCkBAIC04NjEsNiArODkxLDkgQEAgcGdzdGF0X3Jl bGF0aW9uX2ZsdXNoX2NiKFBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmLCBib29sIG5vd2Fp dCkKIAl0YWJlbnRyeS0+YmxvY2tzX2ZldGNoZWQgKz0gbHN0YXRzLT5jb3VudHMuYmxvY2tz X2ZldGNoZWQ7CiAJdGFiZW50cnktPmJsb2Nrc19oaXQgKz0gbHN0YXRzLT5jb3VudHMuYmxv Y2tzX2hpdDsKIAorCXRhYmVudHJ5LT5yZXZfYWxsX2Zyb3plbl9wYWdlcyArPSBsc3RhdHMt PmNvdW50cy5yZXZfYWxsX2Zyb3plbl9wYWdlczsKKwl0YWJlbnRyeS0+cmV2X2FsbF92aXNp YmxlX3BhZ2VzICs9IGxzdGF0cy0+Y291bnRzLnJldl9hbGxfdmlzaWJsZV9wYWdlczsKKwog CS8qIENsYW1wIGxpdmVfdHVwbGVzIGluIGNhc2Ugb2YgbmVnYXRpdmUgZGVsdGFfbGl2ZV90 dXBsZXMgKi8KIAl0YWJlbnRyeS0+bGl2ZV90dXBsZXMgPSBNYXgodGFiZW50cnktPmxpdmVf dHVwbGVzLCAwKTsKIAkvKiBMaWtld2lzZSBmb3IgZGVhZF90dXBsZXMgKi8KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKaW5kZXggMzIyMTEzNzEyMzcuLmY5NGU1NjIwMDlk IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwpAQCAtMzEsNiArMzEsNyBA QAogI2luY2x1ZGUgInV0aWxzL2FjbC5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgi CiAjaW5jbHVkZSAidXRpbHMvdGltZXN0YW1wLmgiCisjaW5jbHVkZSAidXRpbHMvcGdzdGF0 X2ludGVybmFsLmgiCiAKICNkZWZpbmUgVUlOVDMyX0FDQ0VTU19PTkNFKHZhcikJCSAoKHVp bnQzMikoKigodm9sYXRpbGUgdWludDMyICopJih2YXIpKSkpCiAKQEAgLTIwMzIsMyArMjAz MywxODggQEAgcGdfc3RhdF9oYXZlX3N0YXRzKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlQR19S RVRVUk5fQk9PTChwZ3N0YXRfaGF2ZV9lbnRyeShraW5kLCBkYm9pZCwgb2Jqb2lkKSk7CiB9 CisKKyNkZWZpbmUgRVhUVkFDSEVBUFNUQVRfQ09MVU1OUwkyNworCitzdGF0aWMgT2lkIEN1 cnJlbnREYXRhYmFzZUlkID0gSW52YWxpZE9pZDsKKworCisvKgorICogRmV0Y2ggc3RhdCBj b2xsZWN0b3IgZGF0YSBmb3Igc3BlY2lmaWMgZGF0YWJhc2UgYW5kIHRhYmxlLCB3aGljaCBs b2FkaW5nIGZyb20gZGlzYy4KKyAqIEl0IGlzIG1heWJlIGV4cGVuc2l2ZSwgYnV0IGkgZ3Vl c3Mgd2Ugd29uJ3QgdXNlIHRoYXQgbWFjaGluZXJ5IG9mdGVuLgorICogVGhlIGtpbmQgb2Yg YnVmZmVyaXphdGlvbiBpcyBiYXNlZCBvbiBDdXJyZW50RGF0YWJhc2VJZCB2YWx1ZS4KKyAq Lworc3RhdGljIFBnU3RhdF9TdGF0VGFiRW50cnkgKgorZmV0Y2hfZGJzdGF0X3RhYmVudHJ5 KE9pZCBkYmlkLCBPaWQgcmVsaWQpCit7CisJT2lkCQkJCQkJc3RvcmVkTXlEYXRhYmFzZUlk ID0gTXlEYXRhYmFzZUlkOworCVBnU3RhdF9TdGF0VGFiRW50cnkgCSp0YWJlbnRyeSA9IE5V TEw7CisKKwlpZiAoT2lkSXNWYWxpZChDdXJyZW50RGF0YWJhc2VJZCkgJiYgQ3VycmVudERh dGFiYXNlSWQgPT0gZGJpZCkKKwkJLyogUXVpY2sgcGF0aCB3aGVuIHdlIHJlYWQgZGF0YSBm cm9tIHRoZSBzYW1lIGRhdGFiYXNlICovCisJCXJldHVybiBwZ3N0YXRfZmV0Y2hfc3RhdF90 YWJlbnRyeShyZWxpZCk7CisKKwlwZ3N0YXRfY2xlYXJfc25hcHNob3QoKTsKKworCS8qIFRy aWNreSB0dXJuIGhlcmU6IGVuZm9yY2UgcGdzdGF0IHRvIHRoaW5rIHRoYXQgb3VyIGRhdGFi YXNlIGhhcyBkYmlkICovCisKKwlNeURhdGFiYXNlSWQgPSBkYmlkOworCisJUEdfVFJZKCk7 CisJeworCQl0YWJlbnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X3RhYmVudHJ5KHJlbGlkKTsK KwkJTXlEYXRhYmFzZUlkID0gc3RvcmVkTXlEYXRhYmFzZUlkOworCX0KKwlQR19DQVRDSCgp OworCXsKKwkJTXlEYXRhYmFzZUlkID0gc3RvcmVkTXlEYXRhYmFzZUlkOworCX0KKwlQR19F TkRfVFJZKCk7CisKKwlyZXR1cm4gdGFiZW50cnk7Cit9CisKK3N0YXRpYyB2b2lkCit0dXBs ZXN0b3JlX3B1dF9mb3JfcmVsYXRpb24oT2lkIHJlbGlkLCBUdXBsZXN0b3Jlc3RhdGUgKnR1 cHN0b3JlLAorCQkJICAgVHVwbGVEZXNjIHR1cGRlc2MsIFBnU3RhdF9TdGF0VGFiRW50cnkg KnRhYmVudHJ5LCBpbnQgbmNvbHVtbnMpCit7CisJRGF0dW0JCXZhbHVlc1tFWFRWQUNIRUFQ U1RBVF9DT0xVTU5TXTsKKwlib29sCQludWxsc1tFWFRWQUNIRUFQU1RBVF9DT0xVTU5TXTsK KwljaGFyCQlidWZbMjU2XTsKKwlpbnQJCQlpID0gMDsKKworCW1lbXNldChudWxscywgMCwg RVhUVkFDSEVBUFNUQVRfQ09MVU1OUyAqIHNpemVvZihib29sKSk7CisKKwl2YWx1ZXNbaSsr XSA9IE9iamVjdElkR2V0RGF0dW0ocmVsaWQpOworCisJdmFsdWVzW2krK10gPSBJbnQ2NEdl dERhdHVtKHRhYmVudHJ5LT52YWN1dW1fZXh0LnRvdGFsX2Jsa3NfcmVhZCk7CisJdmFsdWVz W2krK10gPSBJbnQ2NEdldERhdHVtKHRhYmVudHJ5LT52YWN1dW1fZXh0LnRvdGFsX2Jsa3Nf aGl0KTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0odGFiZW50cnktPnZhY3V1bV9l eHQudG90YWxfYmxrc19kaXJ0aWVkKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0o dGFiZW50cnktPnZhY3V1bV9leHQudG90YWxfYmxrc193cml0dGVuKTsKKworCXZhbHVlc1tp KytdID0gSW50NjRHZXREYXR1bSh0YWJlbnRyeS0+dmFjdXVtX2V4dC5ibGtzX2ZldGNoZWQg LQorCQkJCQkJCQkJdGFiZW50cnktPnZhY3V1bV9leHQuYmxrc19oaXQpOworCXZhbHVlc1tp KytdID0gSW50NjRHZXREYXR1bSh0YWJlbnRyeS0+dmFjdXVtX2V4dC5ibGtzX2hpdCk7CisK Kwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0odGFiZW50cnktPnZhY3V1bV9leHQucGFn ZXNfc2Nhbm5lZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKHRhYmVudHJ5LT52 YWN1dW1fZXh0LnBhZ2VzX3JlbW92ZWQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1 bSh0YWJlbnRyeS0+dmFjdXVtX2V4dC5wYWdlc19mcm96ZW4pOworCXZhbHVlc1tpKytdID0g SW50NjRHZXREYXR1bSh0YWJlbnRyeS0+dmFjdXVtX2V4dC5wYWdlc19hbGxfdmlzaWJsZSk7 CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKHRhYmVudHJ5LT52YWN1dW1fZXh0LnR1 cGxlc19kZWxldGVkKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0odGFiZW50cnkt PnZhY3V1bV9leHQudHVwbGVzX2Zyb3plbik7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERh dHVtKHRhYmVudHJ5LT52YWN1dW1fZXh0LmRlYWRfdHVwbGVzKTsKKwl2YWx1ZXNbaSsrXSA9 IEludDY0R2V0RGF0dW0odGFiZW50cnktPnZhY3V1bV9leHQuaW5kZXhfdmFjdXVtX2NvdW50 KTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0odGFiZW50cnktPnJldl9hbGxfZnJv emVuX3BhZ2VzKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0odGFiZW50cnktPnJl dl9hbGxfdmlzaWJsZV9wYWdlcyk7CisKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0o dGFiZW50cnktPnZhY3V1bV9leHQud2FsX3JlY29yZHMpOworCXZhbHVlc1tpKytdID0gSW50 NjRHZXREYXR1bSh0YWJlbnRyeS0+dmFjdXVtX2V4dC53YWxfZnBpKTsKKworCS8qIENvbnZl cnQgdG8gbnVtZXJpYywgbGlrZSBwZ19zdGF0X3N0YXRlbWVudHMgKi8KKwlzbnByaW50Zihi dWYsIHNpemVvZiBidWYsIFVJTlQ2NF9GT1JNQVQsIHRhYmVudHJ5LT52YWN1dW1fZXh0Lndh bF9ieXRlcyk7CisJdmFsdWVzW2krK10gPSBEaXJlY3RGdW5jdGlvbkNhbGwzKG51bWVyaWNf aW4sCisJCQkJCQkJCQkgIENTdHJpbmdHZXREYXR1bShidWYpLAorCQkJCQkJCQkJICBPYmpl Y3RJZEdldERhdHVtKDApLAorCQkJCQkJCQkJICBJbnQzMkdldERhdHVtKC0xKSk7CisKKwl2 YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKHRhYmVudHJ5LT52YWN1dW1fZXh0LmJsa19y ZWFkX3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0odGFiZW50cnktPnZh Y3V1bV9leHQuYmxrX3dyaXRlX3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0 dW0odGFiZW50cnktPnZhY3V1bV9leHQuZGVsYXlfdGltZSk7CisJdmFsdWVzW2krK10gPSBG bG9hdDhHZXREYXR1bSh0YWJlbnRyeS0+dmFjdXVtX2V4dC5zeXN0ZW1fdGltZSk7CisJdmFs dWVzW2krK10gPSBGbG9hdDhHZXREYXR1bSh0YWJlbnRyeS0+dmFjdXVtX2V4dC51c2VyX3Rp bWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0odGFiZW50cnktPnZhY3V1bV9l eHQudG90YWxfdGltZSk7CisJdmFsdWVzW2krK10gPSBJbnQzMkdldERhdHVtKHRhYmVudHJ5 LT52YWN1dW1fZXh0LmludGVycnVwdHMpOworCisJQXNzZXJ0KGkgPT0gbmNvbHVtbnMpOwor CisJdHVwbGVzdG9yZV9wdXR2YWx1ZXModHVwc3RvcmUsIHR1cGRlc2MsIHZhbHVlcywgbnVs bHMpOworfQorCisvKgorICogR2V0IHRoZSB2YWN1dW0gc3RhdGlzdGljcyBmb3IgdGhlIGhl YXAgdGFibGVzIG9yIGluZGV4ZXMuCisgKi8KK3N0YXRpYyBEYXR1bQorcGdfc3RhdHNfdmFj dXVtKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBpbnQgbmNvbHVtbnMpCit7CisJUmV0dXJu U2V0SW5mbwkJICAgKnJzaW5mbyA9IChSZXR1cm5TZXRJbmZvICopIGZjaW5mby0+cmVzdWx0 aW5mbzsKKwlNZW1vcnlDb250ZXh0CQkJcGVyX3F1ZXJ5X2N0eDsKKwlNZW1vcnlDb250ZXh0 CQkJb2xkY29udGV4dDsKKwlUdXBsZXN0b3Jlc3RhdGUJCSAgICp0dXBzdG9yZTsKKwlUdXBs ZURlc2MJCQkJdHVwZGVzYzsKKwlPaWQJCQkJCQlkYmlkID0gUEdfR0VUQVJHX09JRCgwKTsK KwlPaWQJCQkJCQlyZWxpZCA9IFBHX0dFVEFSR19PSUQoMSk7CisJUGdTdGF0X1N0YXRUYWJF bnRyeSAgICAqdGFiZW50cnk7CisKKwlJbml0TWF0ZXJpYWxpemVkU1JGKGZjaW5mbywgMCk7 CisKKwkvKiBDaGVjayBpZiBjYWxsZXIgc3VwcG9ydHMgdXMgcmV0dXJuaW5nIGEgdHVwbGVz dG9yZSAqLworCWlmIChyc2luZm8gPT0gTlVMTCB8fCAhSXNBKHJzaW5mbywgUmV0dXJuU2V0 SW5mbykpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJF X05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2coInNldC12YWx1ZWQgZnVuY3Rpb24gY2Fs bGVkIGluIGNvbnRleHQgdGhhdCBjYW5ub3QgYWNjZXB0IGEgc2V0IikpKTsKKwkvKiBTd2l0 Y2ggdG8gbG9uZy1saXZlZCBjb250ZXh0IHRvIGNyZWF0ZSB0aGUgcmV0dXJuZWQgZGF0YSBz dHJ1Y3R1cmVzICovCisJcGVyX3F1ZXJ5X2N0eCA9IHJzaW5mby0+ZWNvbnRleHQtPmVjeHRf cGVyX3F1ZXJ5X21lbW9yeTsKKwlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRv KHBlcl9xdWVyeV9jdHgpOworCisJLyogQnVpbGQgYSB0dXBsZSBkZXNjcmlwdG9yIGZvciBv dXIgcmVzdWx0IHR5cGUgKi8KKwlpZiAoZ2V0X2NhbGxfcmVzdWx0X3R5cGUoZmNpbmZvLCBO VUxMLCAmdHVwZGVzYykgIT0gVFlQRUZVTkNfQ09NUE9TSVRFKQorCQllbG9nKEVSUk9SLCAi cmV0dXJuIHR5cGUgbXVzdCBiZSBhIHJvdyB0eXBlIik7CisKKwlBc3NlcnQodHVwZGVzYy0+ bmF0dHMgPT0gbmNvbHVtbnMpOworCisJdHVwc3RvcmUgPSB0dXBsZXN0b3JlX2JlZ2luX2hl YXAodHJ1ZSwgZmFsc2UsIHdvcmtfbWVtKTsKKwlBc3NlcnQgKHR1cHN0b3JlICE9IE5VTEwp OworCXJzaW5mby0+c2V0UmVzdWx0ID0gdHVwc3RvcmU7CisJcnNpbmZvLT5zZXREZXNjID0g dHVwZGVzYzsKKworCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKKworCS8q IExvYWQgdGFibGUgc3RhdGlzdGljcyBmb3Igc3BlY2lmaWVkIGRhdGFiYXNlLiAqLworCWlm IChPaWRJc1ZhbGlkKHJlbGlkKSkKKwl7CisJCXRhYmVudHJ5ID0gZmV0Y2hfZGJzdGF0X3Rh YmVudHJ5KGRiaWQsIHJlbGlkKTsKKwkJaWYgKHRhYmVudHJ5ID09IE5VTEwpCisJCQkvKiBU YWJsZSBkb24ndCBleGlzdHMgb3IgaXNuJ3QgYW4gaGVhcCByZWxhdGlvbi4gKi8KKwkJCVBH X1JFVFVSTl9OVUxMKCk7CisKKwkJdHVwbGVzdG9yZV9wdXRfZm9yX3JlbGF0aW9uKHJlbGlk LCB0dXBzdG9yZSwgdHVwZGVzYywgdGFiZW50cnksIG5jb2x1bW5zKTsKKwl9CisJZWxzZQor CXsKKwkJU25hcHNob3RJdGVyYXRvcgkJaGFzaGl0ZXI7CisJCVBnU3RhdF9TbmFwc2hvdEVu dHJ5ICAgKmVudHJ5OworCQlPaWQJCQkJCQlzdG9yZWRNeURhdGFiYXNlSWQgPSBNeURhdGFi YXNlSWQ7CisKKwkJcGdzdGF0X3VwZGF0ZV9zbmFwc2hvdChQR1NUQVRfS0lORF9SRUxBVElP Tik7CisJCU15RGF0YWJhc2VJZCA9IHN0b3JlZE15RGF0YWJhc2VJZDsKKworCisJCS8qIEl0 ZXJhdGUgdGhlIHNuYXBzaG90ICovCisJCUluaXRTbmFwc2hvdEl0ZXJhdG9yKHBnU3RhdExv Y2FsLnNuYXBzaG90LnN0YXRzLCAmaGFzaGl0ZXIpOworCisJCXdoaWxlICgoZW50cnkgPSBT Y2FuU3RhdFNuYXBzaG90KHBnU3RhdExvY2FsLnNuYXBzaG90LnN0YXRzLCAmaGFzaGl0ZXIp KSAhPSBOVUxMKQorCQl7CisJCQlPaWQJcmVsb2lkOworCisJCQlDSEVDS19GT1JfSU5URVJS VVBUUygpOworCisJCQl0YWJlbnRyeSA9IChQZ1N0YXRfU3RhdFRhYkVudHJ5ICopIGVudHJ5 LT5kYXRhOworCQkJcmVsb2lkID0gZW50cnktPmtleS5vYmpvaWQ7CisKKwkJCWlmICh0YWJl bnRyeSAhPSBOVUxMKQorCQkJCXR1cGxlc3RvcmVfcHV0X2Zvcl9yZWxhdGlvbihyZWxvaWQs IHR1cHN0b3JlLCB0dXBkZXNjLCB0YWJlbnRyeSwgbmNvbHVtbnMpOworCQl9CisJfQorCVBH X1JFVFVSTl9OVUxMKCk7Cit9CisKKy8qCisgKiBHZXQgdGhlIHZhY3V1bSBzdGF0aXN0aWNz IGZvciB0aGUgaGVhcCB0YWJsZXMuCisgKi8KK0RhdHVtCitwZ19zdGF0X3ZhY3V1bV90YWJs ZXMoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlyZXR1cm4gcGdfc3RhdHNfdmFjdXVtKGZjaW5m bywgRVhUVkFDSEVBUFNUQVRfQ09MVU1OUyk7CisKKwlQR19SRVRVUk5fTlVMTCgpOworfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvZXJyb3IvZWxvZy5jCmluZGV4IDk0M2Q4NTg4ZjNkLi45M2RiMTIzMmRmOSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL2Vycm9yL2Vsb2cuYwpAQCAtMTYwMiw2ICsxNjAyLDE5IEBAIGdldGlu dGVybmFsZXJycG9zaXRpb24odm9pZCkKIAlyZXR1cm4gZWRhdGEtPmludGVybmFscG9zOwog fQogCisvKgorICogUmV0dXJuIGVsZXZlbCBvZiBlcnJvcnMKKyAqLworaW50CitnZXRlcnJl bGV2ZWwodm9pZCkKK3sKKwlFcnJvckRhdGEgICplZGF0YSA9ICZlcnJvcmRhdGFbZXJyb3Jk YXRhX3N0YWNrX2RlcHRoXTsKKworCS8qIHdlIGRvbid0IGJvdGhlciBpbmNyZW1lbnRpbmcg cmVjdXJzaW9uX2RlcHRoICovCisJQ0hFQ0tfU1RBQ0tfREVQVEgoKTsKKworCXJldHVybiBl ZGF0YS0+ZWxldmVsOworfQogCiAvKgogICogRnVuY3Rpb25zIHRvIGFsbG93IGNvbnN0cnVj dGlvbiBvZiBlcnJvciBtZXNzYWdlIHN0cmluZ3Mgc2VwYXJhdGVseSBmcm9tCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9jLmRhdAppbmRleCA0YWJjNmQ5NTI2Mi4uNDQzYzRlYzY1ZDMgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTIyNTQsNSArMTIyNTQsMTMgQEAKICAgcHJv YWxsYXJndHlwZXMgPT4gJ3tpbnQ4LHBnX2xzbixwZ19sc24saW50NH0nLCBwcm9hcmdtb2Rl cyA9PiAne28sbyxvLG99JywKICAgcHJvYXJnbmFtZXMgPT4gJ3tzdW1tYXJpemVkX3RsaSxz dW1tYXJpemVkX2xzbixwZW5kaW5nX2xzbixzdW1tYXJpemVyX3BpZH0nLAogICBwcm9zcmMg PT4gJ3BnX2dldF93YWxfc3VtbWFyaXplcl9zdGF0ZScgfSwKLQoreyBvaWQgPT4gJzgwMDEn LAorICBkZXNjciA9PiAncGdfc3RhdF92YWN1dW1fdGFibGVzIHJldHVybiBzdGF0cyB2YWx1 ZXMnLAorICBwcm9uYW1lID0+ICdwZ19zdGF0X3ZhY3V1bV90YWJsZXMnLCBwcm92b2xhdGls ZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcscHJvaXNzdHJpY3QgPT4gJ2YnLAor ICBwcm9yZXRzZXQgPT4gJ3QnLAorICBwcm9hcmd0eXBlcyA9PiAnb2lkIG9pZCcsCisgIHBy b2FsbGFyZ3R5cGVzID0+ICd7b2lkLG9pZCxvaWQsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4 LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50 OCxpbnQ4LGludDgsbnVtZXJpYyxmbG9hdDgsZmxvYXQ4LGZsb2F0OCxmbG9hdDgsZmxvYXQ4 LGZsb2F0OCxpbnQ0fScsCisgIHByb2FyZ21vZGVzID0+ICd7aSxpLG8sbyxvLG8sbyxvLG8s byxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvfScsCisgIHByb2FyZ25h bWVzID0+ICd7ZGJvaWQscmVsb2lkLHJlbGlkLHRvdGFsX2Jsa3NfcmVhZCx0b3RhbF9ibGtz X2hpdCx0b3RhbF9ibGtzX2RpcnRpZWQsdG90YWxfYmxrc193cml0dGVuLHJlbF9ibGtzX3Jl YWQscmVsX2Jsa3NfaGl0LHBhZ2VzX3NjYW5uZWQscGFnZXNfcmVtb3ZlZCxwYWdlc19mcm96 ZW4scGFnZXNfYWxsX3Zpc2libGUsdHVwbGVzX2RlbGV0ZWQsdHVwbGVzX2Zyb3plbixkZWFk X3R1cGxlcyxpbmRleF92YWN1dW1fY291bnQscmV2X2FsbF9mcm96ZW5fcGFnZXMscmV2X2Fs bF92aXNpYmxlX3BhZ2VzLHdhbF9yZWNvcmRzLHdhbF9mcGksd2FsX2J5dGVzLGJsa19yZWFk X3RpbWUsYmxrX3dyaXRlX3RpbWUsZGVsYXlfdGltZSxzeXN0ZW1fdGltZSx1c2VyX3RpbWUs dG90YWxfdGltZSxpbnRlcnJ1cHRzfScsCisgIHByb3NyYyA9PiAncGdfc3RhdF92YWN1dW1f dGFibGVzJyB9LAogXQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVt LmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaAppbmRleCA3NTlmOWE4N2QzOC4u MDdiMjhiMTVkOWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5o CisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCkBAIC0zMDgsNiArMzA4LDcg QEAgZXh0ZXJuIFBHRExMSU1QT1JUIGludCB2YWN1dW1fbXVsdGl4YWN0X2ZhaWxzYWZlX2Fn ZTsKIGV4dGVybiBQR0RMTElNUE9SVCBwZ19hdG9taWNfdWludDMyICpWYWN1dW1TaGFyZWRD b3N0QmFsYW5jZTsKIGV4dGVybiBQR0RMTElNUE9SVCBwZ19hdG9taWNfdWludDMyICpWYWN1 dW1BY3RpdmVOV29ya2VyczsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgVmFjdXVtQ29zdEJh bGFuY2VMb2NhbDsKK2V4dGVybiBQR0RMTElNUE9SVCBkb3VibGUgVmFjdXVtRGVsYXlUaW1l OwogCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBWYWN1dW1GYWlsc2FmZUFjdGl2ZTsKIGV4 dGVybiBQR0RMTElNUE9SVCBkb3VibGUgdmFjdXVtX2Nvc3RfZGVsYXk7CmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9wZ3N0YXQuaCBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCmluZGV4IGY2 MzE1OWM1NWNhLi40NDkyYTA1NzJjNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGdzdGF0 LmgKKysrIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKQEAgLTE2Nyw2ICsxNjcsNTIgQEAgdHlw ZWRlZiBzdHJ1Y3QgUGdTdGF0X0JhY2tlbmRTdWJFbnRyeQogCVBnU3RhdF9Db3VudGVyIHN5 bmNfZXJyb3JfY291bnQ7CiB9IFBnU3RhdF9CYWNrZW5kU3ViRW50cnk7CiAKKy8qIC0tLS0t LS0tLS0KKyAqCisgKiBFeHRWYWNSZXBvcnQKKyAqCisgKiBBZGRpdGlvbmFsIHN0YXRpc3Rp Y3Mgb2YgdmFjdXVtIHByb2Nlc3Npbmcgb3ZlciBhIGhlYXAgcmVsYXRpb24uCisgKiBwYWdl c19yZW1vdmVkIGlzIHRoZSBhbW91bnQgYnkgd2hpY2ggdGhlIHBoeXNpY2FsbHkgc2hyYW5r LAorICogaWYgYW55IChpZSB0aGUgY2hhbmdlIGluIGl0cyB0b3RhbCBzaXplIG9uIGRpc2sp CisgKiBwYWdlc19kZWxldGVkIHJlZmVyIHRvIGZyZWUgc3BhY2Ugd2l0aGluIHRoZSBpbmRl eCBmaWxlCisgKiAtLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IEV4dFZhY1JlcG9y dAoreworCWludDY0CQl0b3RhbF9ibGtzX3JlYWQ7IAkvKiBudW1iZXIgb2YgcGFnZXMgdGhh dCB3ZXJlIG1pc3NlZCBpbiBzaGFyZWQgYnVmZmVycyBkdXJpbmcgYSB2YWN1dW0gb2Ygc3Bl Y2lmaWMgcmVsYXRpb24gKi8KKwlpbnQ2NAkJdG90YWxfYmxrc19oaXQ7IAkvKiBudW1iZXIg b2YgcGFnZXMgdGhhdCB3ZXJlIGZvdW5kIGluIHNoYXJlZCBidWZmZXJzIGR1cmluZyBhIHZh Y3V1bSBvZiBzcGVjaWZpYyByZWxhdGlvbiAqLworCWludDY0CQl0b3RhbF9ibGtzX2RpcnRp ZWQ7CS8qIG51bWJlciBvZiBwYWdlcyBtYXJrZWQgYXMgJ0RpcnR5JyBkdXJpbmcgYSB2YWN1 dW0gb2Ygc3BlY2lmaWMgcmVsYXRpb24uICovCisJaW50NjQJCXRvdGFsX2Jsa3Nfd3JpdHRl bjsJLyogbnVtYmVyIG9mIHBhZ2VzIHdyaXR0ZW4gZHVyaW5nIGEgdmFjdXVtIG9mIHNwZWNp ZmljIHJlbGF0aW9uLiAqLworCisJaW50NjQJCWJsa3NfZmV0Y2hlZDsgCQkvKiBudW1iZXIg b2YgYSByZWxhdGlvbiBibG9ja3MsIGZldGNoZWQgZHVyaW5nIHRoZSB2YWN1dW0uICovCisJ aW50NjQJCWJsa3NfaGl0OwkJLyogbnVtYmVyIG9mIGEgcmVsYXRpb24gYmxvY2tzLCBmb3Vu ZCBpbiBzaGFyZWQgYnVmZmVycyBkdXJpbmcgdGhlIHZhY3V1bS4gKi8KKworCS8qIFZhY3V1 bSBXQUwgdXNhZ2Ugc3RhdHMgKi8KKwlpbnQ2NAkJd2FsX3JlY29yZHM7CS8qIHdhbCB1c2Fn ZTogbnVtYmVyIG9mIFdBTCByZWNvcmRzICovCisJaW50NjQJCXdhbF9mcGk7CQkvKiB3YWwg dXNhZ2U6IG51bWJlciBvZiBXQUwgZnVsbCBwYWdlIGltYWdlcyBwcm9kdWNlZCAqLworCXVp bnQ2NAkJd2FsX2J5dGVzOwkJLyogd2FsIHVzYWdlOiBzaXplIG9mIFdBTCByZWNvcmRzIHBy b2R1Y2VkICovCisKKwkvKiBUaW1lIHN0YXRzLiAqLworCWRvdWJsZQkJYmxrX3JlYWRfdGlt ZTsJLyogdGltZSBzcGVudCByZWFkaW5nIHBhZ2VzLCBpbiBtc2VjICovCisJZG91YmxlCQli bGtfd3JpdGVfdGltZTsgLyogdGltZSBzcGVudCB3cml0aW5nIHBhZ2VzLCBpbiBtc2VjICov CisJZG91YmxlCQlkZWxheV90aW1lOwkJLyogaG93IGxvbmcgdmFjdXVtIHNsZXB0IGluIHZh Y3V1bSBkZWxheSBwb2ludCwgaW4gbXNlYyAqLworCWRvdWJsZQkJc3lzdGVtX3RpbWU7CS8q IGFtb3VudCBvZiB0aW1lIHRoZSBDUFUgd2FzIGJ1c3kgZXhlY3V0aW5nIHZhY3V1bSBjb2Rl IGluIGtlcm5lbCBzcGFjZSwgaW4gbXNlYyAqLworCWRvdWJsZQkJdXNlcl90aW1lOwkJLyog YW1vdW50IG9mIHRpbWUgdGhlIENQVSB3YXMgYnVzeSBleGVjdXRpbmcgdmFjdXVtIGNvZGUg aW4gdXNlciBzcGFjZSwgaW4gbXNlYyAqLworCWRvdWJsZQkJdG90YWxfdGltZTsJCS8qIHRv dGFsIHRpbWUgb2YgYSB2YWN1dW0gb3BlcmF0aW9uLCBpbiBtc2VjICovCisKKwkvKiBJbnRl cnJ1cHRpb25zIG9uIGFueSBlcnJvcnMuICovCisJaW50MzIJCWludGVycnVwdHM7CisKKwlp bnQ2NAkJcGFnZXNfc2Nhbm5lZDsJCS8qIG51bWJlciBvZiBwYWdlcyB3ZSBleGFtaW5lZCAq LworCWludDY0CQlwYWdlc19yZW1vdmVkOwkJLyogbnVtYmVyIG9mIHBhZ2VzIHJlbW92ZWQg YnkgdmFjdXVtICovCisJaW50NjQJCXBhZ2VzX2Zyb3plbjsJCS8qIG51bWJlciBvZiBwYWdl cyBtYXJrZWQgaW4gVk0gYXMgZnJvemVuICovCisJaW50NjQJCXBhZ2VzX2FsbF92aXNpYmxl OwkvKiBudW1iZXIgb2YgcGFnZXMgbWFya2VkIGluIFZNIGFzIGFsbC12aXNpYmxlICovCisJ aW50NjQJCXR1cGxlc19kZWxldGVkOwkJLyogdHVwbGVzIGRlbGV0ZWQgYnkgdmFjdXVtICov CisJaW50NjQJCXR1cGxlc19mcm96ZW47CQkvKiB0dXBsZXMgZnJvemVuIHVwIGJ5IHZhY3V1 bSAqLworCWludDY0CQlkZWFkX3R1cGxlczsJCS8qIG51bWJlciBvZiBkZWxldGVkIHR1cGxl cyB3aGljaCB2YWN1dW0gY2Fubm90IGNsZWFuIHVwIGJ5IHZhY3V1bSBvcGVyYXRpb24gKi8K KwlpbnQ2NAkJaW5kZXhfdmFjdXVtX2NvdW50OwkvKiBudW1iZXIgb2YgaW5kZXggdmFjdXVt aW5ncyAqLworfSBFeHRWYWNSZXBvcnQ7CisKIC8qIC0tLS0tLS0tLS0KICAqIFBnU3RhdF9U YWJsZUNvdW50cwkJCVRoZSBhY3R1YWwgcGVyLXRhYmxlIGNvdW50cyBrZXB0IGJ5IGEgYmFj a2VuZAogICoKQEAgLTIwNyw2ICsyNTMsMTYgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1Rh YmxlQ291bnRzCiAKIAlQZ1N0YXRfQ291bnRlciBibG9ja3NfZmV0Y2hlZDsKIAlQZ1N0YXRf Q291bnRlciBibG9ja3NfaGl0OworCisJUGdTdGF0X0NvdW50ZXIgcmV2X2FsbF92aXNpYmxl X3BhZ2VzOworCVBnU3RhdF9Db3VudGVyIHJldl9hbGxfZnJvemVuX3BhZ2VzOworCisJLyoK KwkgKiBBZGRpdGlvbmFsIGN1bXVsYXRpdmUgc3RhdCBvbiB2YWN1dW0gb3BlcmF0aW9ucy4K KwkgKiBVc2UgYW4gZXhwZW5zaXZlIHN0cnVjdHVyZSBhcyBhbiBhYnN0cmFjdGlvbiBmb3Ig ZGlmZmVyZW50IHR5cGVzIG9mCisJICogcmVsYXRpb25zLgorCSAqLworCUV4dFZhY1JlcG9y dAl2YWN1dW1fZXh0OwogfSBQZ1N0YXRfVGFibGVDb3VudHM7CiAKIC8qIC0tLS0tLS0tLS0K QEAgLTI2NSw3ICszMjEsNyBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfVGFibGVYYWN0U3Rh dHVzCiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICAqLwogCi0jZGVmaW5lIFBHU1RBVF9GSUxFX0ZPUk1BVF9JRAkw eDAxQTVCQ0FFCisjZGVmaW5lIFBHU1RBVF9GSUxFX0ZPUk1BVF9JRAkweDAxQTVCQ0FGCiAK IHR5cGVkZWYgc3RydWN0IFBnU3RhdF9BcmNoaXZlclN0YXRzCiB7CkBAIC0zODQsNiArNDQw LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0YXREQkVudHJ5CiAJUGdTdGF0X0NvdW50 ZXIgc2Vzc2lvbnNfa2lsbGVkOwogCiAJVGltZXN0YW1wVHogc3RhdF9yZXNldF90aW1lc3Rh bXA7CisKKwlFeHRWYWNSZXBvcnQgdmFjdXVtX2V4dDsJCS8qIGV4dGVuZGVkIHZhY3V1bSBz dGF0aXN0aWNzICovCiB9IFBnU3RhdF9TdGF0REJFbnRyeTsKIAogdHlwZWRlZiBzdHJ1Y3Qg UGdTdGF0X1N0YXRGdW5jRW50cnkKQEAgLTQ1Niw2ICs1MTQsMTEgQEAgdHlwZWRlZiBzdHJ1 Y3QgUGdTdGF0X1N0YXRUYWJFbnRyeQogCVBnU3RhdF9Db3VudGVyIGFuYWx5emVfY291bnQ7 CiAJVGltZXN0YW1wVHogbGFzdF9hdXRvYW5hbHl6ZV90aW1lOwkvKiBhdXRvdmFjdXVtIGlu aXRpYXRlZCAqLwogCVBnU3RhdF9Db3VudGVyIGF1dG9hbmFseXplX2NvdW50OworCisJUGdT dGF0X0NvdW50ZXIgcmV2X2FsbF92aXNpYmxlX3BhZ2VzOworCVBnU3RhdF9Db3VudGVyIHJl dl9hbGxfZnJvemVuX3BhZ2VzOworCisJRXh0VmFjUmVwb3J0IHZhY3V1bV9leHQ7CiB9IFBn U3RhdF9TdGF0VGFiRW50cnk7CiAKIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9XYWxTdGF0cwpA QCAtNjIxLDEwICs2ODQsMTIgQEAgZXh0ZXJuIHZvaWQgcGdzdGF0X2Fzc29jX3JlbGF0aW9u KFJlbGF0aW9uIHJlbCk7CiBleHRlcm4gdm9pZCBwZ3N0YXRfdW5saW5rX3JlbGF0aW9uKFJl bGF0aW9uIHJlbCk7CiAKIGV4dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfdmFjdXVtKE9pZCB0 YWJsZW9pZCwgYm9vbCBzaGFyZWQsCi0JCQkJCQkJCSBQZ1N0YXRfQ291bnRlciBsaXZldHVw bGVzLCBQZ1N0YXRfQ291bnRlciBkZWFkdHVwbGVzKTsKKwkJCQkJCQkJIFBnU3RhdF9Db3Vu dGVyIGxpdmV0dXBsZXMsIFBnU3RhdF9Db3VudGVyIGRlYWR0dXBsZXMsCisJCQkJCQkJCSBF eHRWYWNSZXBvcnQgKnBhcmFtcyk7CiBleHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0X2FuYWx5 emUoUmVsYXRpb24gcmVsLAogCQkJCQkJCQkgIFBnU3RhdF9Db3VudGVyIGxpdmV0dXBsZXMs IFBnU3RhdF9Db3VudGVyIGRlYWR0dXBsZXMsCiAJCQkJCQkJCSAgYm9vbCByZXNldGNvdW50 ZXIpOworZXh0ZXJuIHZvaWQgcGdzdGF0X3JlcG9ydF92YWN1dW1fZXJyb3IoT2lkIHRhYmxl b2lkKTsKIAogLyoKICAqIElmIHN0YXRzIGFyZSBlbmFibGVkLCBidXQgcGVuZGluZyBkYXRh IGhhc24ndCBiZWVuIHByZXBhcmVkIHlldCwgY2FsbApAQCAtNjcyLDYgKzczNywxNyBAQCBl eHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0X2FuYWx5emUoUmVsYXRpb24gcmVsLAogCQlpZiAo cGdzdGF0X3Nob3VsZF9jb3VudF9yZWxhdGlvbihyZWwpKQkJCQkJCVwKIAkJCShyZWwpLT5w Z3N0YXRfaW5mby0+Y291bnRzLmJsb2Nrc19oaXQrKzsJCQkJXAogCX0gd2hpbGUgKDApCisv KiBhY2N1bXVsYXRlIHVuZnJvemVuIGFsbC12aXNpYmxlIGFuZCBhbGwtZnJvemVuIHBhZ2Vz ICovCisjZGVmaW5lIHBnc3RhdF9jb3VudF92bV9yZXZfYWxsX3Zpc2libGUocmVsKQkJCQkJ CVwKKwlkbyB7CQkJCQkJCQkJCQkJCQkJXAorCQlpZiAocGdzdGF0X3Nob3VsZF9jb3VudF9y ZWxhdGlvbihyZWwpKQkJCQkJCVwKKwkJCShyZWwpLT5wZ3N0YXRfaW5mby0+Y291bnRzLnJl dl9hbGxfdmlzaWJsZV9wYWdlcysrOwlcCisJfSB3aGlsZSAoMCkKKyNkZWZpbmUgcGdzdGF0 X2NvdW50X3ZtX3Jldl9hbGxfZnJvemVuKHJlbCkJCQkJCQlcCisJZG8gewkJCQkJCQkJCQkJ CQkJCVwKKwkJaWYgKHBnc3RhdF9zaG91bGRfY291bnRfcmVsYXRpb24ocmVsKSkJCQkJCQlc CisJCQkocmVsKS0+cGdzdGF0X2luZm8tPmNvdW50cy5yZXZfYWxsX2Zyb3plbl9wYWdlcysr OwlcCisJfSB3aGlsZSAoMCkKIAogZXh0ZXJuIHZvaWQgcGdzdGF0X2NvdW50X2hlYXBfaW5z ZXJ0KFJlbGF0aW9uIHJlbCwgUGdTdGF0X0NvdW50ZXIgbik7CiBleHRlcm4gdm9pZCBwZ3N0 YXRfY291bnRfaGVhcF91cGRhdGUoUmVsYXRpb24gcmVsLCBib29sIGhvdCwgYm9vbCBuZXdw YWdlKTsKQEAgLTY4OCw3ICs3NjQsOSBAQCBleHRlcm4gUGdTdGF0X1N0YXRUYWJFbnRyeSAq cGdzdGF0X2ZldGNoX3N0YXRfdGFiZW50cnkoT2lkIHJlbGlkKTsKIGV4dGVybiBQZ1N0YXRf U3RhdFRhYkVudHJ5ICpwZ3N0YXRfZmV0Y2hfc3RhdF90YWJlbnRyeV9leHQoYm9vbCBzaGFy ZWQsCiAJCQkJCQkJCQkJCQkJCSAgIE9pZCByZWxvaWQpOwogZXh0ZXJuIFBnU3RhdF9UYWJs ZVN0YXR1cyAqZmluZF90YWJzdGF0X2VudHJ5KE9pZCByZWxfaWQpOwotCitleHRlcm4gdm9p ZAorcGdzdGF0X2FjY3VtdWxhdGVfZXh0dmFjX3N0YXRzKEV4dFZhY1JlcG9ydCAqZHN0LCBF eHRWYWNSZXBvcnQgKnNyYywKKwkJCQkJCQkgICBib29sIGFjY3VtdWxhdGVfcmVsdHlwZV9z cGVjaWZpY19pbmZvKTsKIAogLyoKICAqIEZ1bmN0aW9ucyBpbiBwZ3N0YXRfcmVwbHNsb3Qu YwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvZWxvZy5oIGIvc3JjL2luY2x1ZGUv dXRpbHMvZWxvZy5oCmluZGV4IDA1NGRkMmJmNjJmLi5jNjIyNWI5Y2RkZCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvdXRpbHMvZWxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2Vs b2cuaApAQCAtMjI4LDcgKzIyOCw3IEBAIGV4dGVybiBpbnQJZXJyX2dlbmVyaWNfc3RyaW5n KGludCBmaWVsZCwgY29uc3QgY2hhciAqc3RyKTsKIGV4dGVybiBpbnQJZ2V0ZXJyY29kZSh2 b2lkKTsKIGV4dGVybiBpbnQJZ2V0ZXJycG9zaXRpb24odm9pZCk7CiBleHRlcm4gaW50CWdl dGludGVybmFsZXJycG9zaXRpb24odm9pZCk7Ci0KK2V4dGVybiBpbnQJZ2V0ZXJyZWxldmVs KHZvaWQpOwogCiAvKi0tLS0tLS0tLS0KICAqIE9sZC1zdHlsZSBlcnJvciByZXBvcnRpbmcg QVBJOiB0byBiZSB1c2VkIGluIHRoaXMgd2F5OgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv dXRpbHMvcGdzdGF0X2ludGVybmFsLmggYi9zcmMvaW5jbHVkZS91dGlscy9wZ3N0YXRfaW50 ZXJuYWwuaAppbmRleCBmYjEzMmU0MzlkYy4uNzE1YWUxYjZmZDQgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3V0aWxzL3Bnc3RhdF9pbnRlcm5hbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0 aWxzL3Bnc3RhdF9pbnRlcm5hbC5oCkBAIC01NDksNyArNTQ5LDcgQEAgZXh0ZXJuIFBnU3Rh dF9FbnRyeVJlZiAqcGdzdGF0X2ZldGNoX3BlbmRpbmdfZW50cnkoUGdTdGF0X0tpbmQga2lu ZCwgT2lkIGRib2lkLAogCiBleHRlcm4gdm9pZCAqcGdzdGF0X2ZldGNoX2VudHJ5KFBnU3Rh dF9LaW5kIGtpbmQsIE9pZCBkYm9pZCwgT2lkIG9iam9pZCk7CiBleHRlcm4gdm9pZCBwZ3N0 YXRfc25hcHNob3RfZml4ZWQoUGdTdGF0X0tpbmQga2luZCk7Ci0KK2V4dGVybiB2b2lkIHBn c3RhdF91cGRhdGVfc25hcHNob3QoUGdTdGF0X0tpbmQga2luZCk7CiAKIC8qCiAgKiBGdW5j dGlvbnMgaW4gcGdzdGF0X2FyY2hpdmVyLmMKQEAgLTg3NCw0ICs4NzQsMzggQEAgcGdzdGF0 X2dldF9jdXN0b21fc25hcHNob3RfZGF0YShQZ1N0YXRfS2luZCBraW5kKQogCXJldHVybiBw Z1N0YXRMb2NhbC5zbmFwc2hvdC5jdXN0b21fZGF0YVtpZHhdOwogfQogCisvKiBoYXNoIHRh YmxlIGZvciBzdGF0aXN0aWNzIHNuYXBzaG90cyBlbnRyeSAqLwordHlwZWRlZiBzdHJ1Y3Qg UGdTdGF0X1NuYXBzaG90RW50cnkKK3sKKwlQZ1N0YXRfSGFzaEtleSBrZXk7CisJY2hhcgkJ c3RhdHVzOwkJCS8qIGZvciBzaW1wbGVoYXNoIHVzZSAqLworCXZvaWQJICAgKmRhdGE7CQkJ LyogdGhlIHN0YXRzIGRhdGEgaXRzZWxmICovCit9IFBnU3RhdF9TbmFwc2hvdEVudHJ5Owor CisvKiAtLS0tLS0tLS0tCisgKiBCYWNrZW5kLWxvY2FsIEhhc2ggVGFibGUgRGVmaW5pdGlv bnMKKyAqIC0tLS0tLS0tLS0KKyAqLworCisvKiBmb3Igc3RhdHMgc25hcHNob3QgZW50cmll cyAqLworI2RlZmluZSBTSF9QUkVGSVggcGdzdGF0X3NuYXBzaG90CisjZGVmaW5lIFNIX0VM RU1FTlRfVFlQRSBQZ1N0YXRfU25hcHNob3RFbnRyeQorI2RlZmluZSBTSF9LRVlfVFlQRSBQ Z1N0YXRfSGFzaEtleQorI2RlZmluZSBTSF9LRVkga2V5CisjZGVmaW5lIFNIX0hBU0hfS0VZ KHRiLCBrZXkpIFwKKwlwZ3N0YXRfaGFzaF9oYXNoX2tleSgma2V5LCBzaXplb2YoUGdTdGF0 X0hhc2hLZXkpLCBOVUxMKQorI2RlZmluZSBTSF9FUVVBTCh0YiwgYSwgYikgXAorCXBnc3Rh dF9jbXBfaGFzaF9rZXkoJmEsICZiLCBzaXplb2YoUGdTdGF0X0hhc2hLZXkpLCBOVUxMKSA9 PSAwCisjZGVmaW5lIFNIX1NDT1BFIHN0YXRpYyBpbmxpbmUKKyNkZWZpbmUgU0hfREVGSU5F CisjZGVmaW5lIFNIX0RFQ0xBUkUKKyNpbmNsdWRlICJsaWIvc2ltcGxlaGFzaC5oIgorCit0 eXBlZGVmIHBnc3RhdF9zbmFwc2hvdF9pdGVyYXRvciBTbmFwc2hvdEl0ZXJhdG9yOworCisj ZGVmaW5lIEluaXRTbmFwc2hvdEl0ZXJhdG9yKGh0YWJsZSwgaXRlcikgXAorCXBnc3RhdF9z bmFwc2hvdF9zdGFydF9pdGVyYXRlKGh0YWJsZSwgaXRlcik7CisjZGVmaW5lIFNjYW5TdGF0 U25hcHNob3QoaHRhYmxlLCBpdGVyKSBcCisJcGdzdGF0X3NuYXBzaG90X2l0ZXJhdGUoaHRh YmxlLCBpdGVyKQorCiAjZW5kaWYJCQkJCQkJLyogUEdTVEFUX0lOVEVSTkFMX0ggKi8KZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC92YWN1dW0tZXh0ZW5kaW5n LWluLXJlcGV0YWJsZS1yZWFkLm91dCBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC92 YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0YWJsZS1yZWFkLm91dApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2NkYjc5YzBlYzQKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBl dGFibGUtcmVhZC5vdXQKQEAgLTAsMCArMSw1MyBAQAordW51c2VkIHN0ZXAgbmFtZTogczJf ZGVsZXRlCitQYXJzZWQgdGVzdCBzcGVjIHdpdGggMiBzZXNzaW9ucworCitzdGFydGluZyBw ZXJtdXRhdGlvbjogczJfaW5zZXJ0IHMyX3ByaW50X3ZhY3V1bV9zdGF0c190YWJsZSBzMV9i ZWdpbl9yZXBlYXRhYmxlX3JlYWQgczJfdXBkYXRlIHMyX2luc2VydF9pbnRlcnJ1cHQgczJf dmFjdXVtIHMyX3ByaW50X3ZhY3V1bV9zdGF0c190YWJsZSBzMV9jb21taXQgczJfY2hlY2tw b2ludCBzMl92YWN1dW0gczJfcHJpbnRfdmFjdXVtX3N0YXRzX3RhYmxlCitzdGVwIHMyX2lu c2VydDogSU5TRVJUIElOVE8gdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24oaWQsIGl2YWwp IFNFTEVDVCBpdmFsLCBpdmFsJTEwIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMCkgQXMg aXZhbDsKK3N0ZXAgczJfcHJpbnRfdmFjdXVtX3N0YXRzX3RhYmxlOiAKKyAgICBTRUxFQ1QK KyAgICB2dC5yZWxuYW1lLCB2dC50dXBsZXNfZGVsZXRlZCwgdnQuZGVhZF90dXBsZXMsIHZ0 LnR1cGxlc19mcm96ZW4KKyAgICBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdf Y2xhc3MgYworICAgIFdIRVJFIHZ0LnJlbG5hbWUgPSAndGVzdF92YWN1dW1fc3RhdF9pc29s YXRpb24nIEFORCB2dC5yZWxpZCA9IGMub2lkOworCityZWxuYW1lICAgICAgICAgICAgICAg ICAgIHx0dXBsZXNfZGVsZXRlZHxkZWFkX3R1cGxlc3x0dXBsZXNfZnJvemVuCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCit0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbnwgICAgICAgICAgICAgMHwgICAg ICAgICAgMHwgICAgICAgICAgICAwCisoMSByb3cpCisKK3N0ZXAgczFfYmVnaW5fcmVwZWF0 YWJsZV9yZWFkOiAKKyAgQkVHSU4gdHJhbnNhY3Rpb24gSVNPTEFUSU9OIExFVkVMIFJFUEVB VEFCTEUgUkVBRDsKKyAgc2VsZWN0IGNvdW50KGl2YWwpIGZyb20gdGVzdF92YWN1dW1fc3Rh dF9pc29sYXRpb24gd2hlcmUgaWQ+OTAwOworCitjb3VudAorLS0tLS0KKyAgMTAwCisoMSBy b3cpCisKK3N0ZXAgczJfdXBkYXRlOiBVUERBVEUgdGVzdF92YWN1dW1fc3RhdF9pc29sYXRp b24gU0VUIGl2YWwgPSBpdmFsICsgMiB3aGVyZSBpZCA+IDkwMDsKK3N0ZXAgczJfaW5zZXJ0 X2ludGVycnVwdDogSU5TRVJUIElOVE8gdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24gdmFs dWVzICgxLDEpOworc3RlcCBzMl92YWN1dW06IFZBQ1VVTSB0ZXN0X3ZhY3V1bV9zdGF0X2lz b2xhdGlvbjsKK3N0ZXAgczJfcHJpbnRfdmFjdXVtX3N0YXRzX3RhYmxlOiAKKyAgICBTRUxF Q1QKKyAgICB2dC5yZWxuYW1lLCB2dC50dXBsZXNfZGVsZXRlZCwgdnQuZGVhZF90dXBsZXMs IHZ0LnR1cGxlc19mcm96ZW4KKyAgICBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwg cGdfY2xhc3MgYworICAgIFdIRVJFIHZ0LnJlbG5hbWUgPSAndGVzdF92YWN1dW1fc3RhdF9p c29sYXRpb24nIEFORCB2dC5yZWxpZCA9IGMub2lkOworCityZWxuYW1lICAgICAgICAgICAg ICAgICAgIHx0dXBsZXNfZGVsZXRlZHxkZWFkX3R1cGxlc3x0dXBsZXNfZnJvemVuCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tCit0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbnwgICAgICAgICAgICAgMHwg ICAgICAgIDEwMHwgICAgICAgICAgICAwCisoMSByb3cpCisKK3N0ZXAgczFfY29tbWl0OiBD T01NSVQ7CitzdGVwIHMyX2NoZWNrcG9pbnQ6IENIRUNLUE9JTlQ7CitzdGVwIHMyX3ZhY3V1 bTogVkFDVVVNIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uOworc3RlcCBzMl9wcmludF92 YWN1dW1fc3RhdHNfdGFibGU6IAorICAgIFNFTEVDVAorICAgIHZ0LnJlbG5hbWUsIHZ0LnR1 cGxlc19kZWxldGVkLCB2dC5kZWFkX3R1cGxlcywgdnQudHVwbGVzX2Zyb3plbgorICAgIEZS T00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCisgICAgV0hFUkUgdnQu cmVsbmFtZSA9ICd0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbicgQU5EIHZ0LnJlbGlkID0g Yy5vaWQ7CisKK3JlbG5hbWUgICAgICAgICAgICAgICAgICAgfHR1cGxlc19kZWxldGVkfGRl YWRfdHVwbGVzfHR1cGxlc19mcm96ZW4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KK3Rlc3RfdmFjdXVtX3N0 YXRfaXNvbGF0aW9ufCAgICAgICAgICAgMTAwfCAgICAgICAgMTAwfCAgICAgICAgICAxMDEK KygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9z Y2hlZHVsZSBiL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKaW5kZXgg NmRhOThjZmZhY2EuLmM2MTJkZTcwMDgzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRp b24vaXNvbGF0aW9uX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRp b25fc2NoZWR1bGUKQEAgLTk1LDYgKzk1LDcgQEAgdGVzdDogdGltZW91dHMKIHRlc3Q6IHZh Y3V1bS1jb25jdXJyZW50LWRyb3AKIHRlc3Q6IHZhY3V1bS1jb25mbGljdAogdGVzdDogdmFj dXVtLXNraXAtbG9ja2VkCit0ZXN0OiB2YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0YWJsZS1y ZWFkCiB0ZXN0OiBzdGF0cwogdGVzdDogaG9yaXpvbnMKIHRlc3Q6IHByZWRpY2F0ZS1oYXNo CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3MvdmFjdXVtLWV4dGVuZGlu Zy1pbi1yZXBldGFibGUtcmVhZC5zcGVjIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Zh Y3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQuc3BlYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2QzMWRkYmVjZTkKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3MvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFi bGUtcmVhZC5zcGVjCkBAIC0wLDAgKzEsNTEgQEAKKyMgVGVzdCBmb3IgY2hlY2tpbmcgZGVh ZF90dXBsZXMsIHR1cGxlc19kZWxldGVkIGFuZCBmcm96ZW4gdHVwbGVzIGluIHBnX3N0YXRf dmFjdXVtX3RhYmxlcy4KKyMgRGVhZF90dXBsZXMgdmFsdWVzIGFyZSBjb3VudGVkIHdoZW4g dmFjdXVtIGNhbm5vdCBjbGVhbiB1cCB1bnVzZWQgdHVwbGVzIHdoaWxlIGxvY2sgaXMgdXNp bmcgYW5vdGhlciB0cmFuc2FjdGlvbi4KKyMgRGVhZF90dXBsZXMgYXJlbid0IGluY3JlYXNl ZCBhZnRlciByZWxlYXNpbmcgbG9jayBjb21wYXJlZCB3aXRoIHR1cGxlc19kZWxldGVkLCB3 aGljaCBpbmNyZWFzZWQKKyMgYnkgdGhlIHZhbHVlIG9mIHRoZSBjbGVhcmVkIHR1cGxlcyB0 aGF0IHRoZSB2YWN1dW0gbWFuYWdlZCB0byBjbGVhci4KKworc2V0dXAKK3sKKyAgICBDUkVB VEUgVEFCTEUgdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24oaWQgaW50LCBpdmFsIGludCkg V0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmKTsKKyAgICBTRVQgdHJhY2tfaW9fdGlt aW5nID0gb247Cit9CisKK3RlYXJkb3duCit7CisgICAgRFJPUCBUQUJMRSB0ZXN0X3ZhY3V1 bV9zdGF0X2lzb2xhdGlvbiBDQVNDQURFOworICAgIFJFU0VUIHRyYWNrX2lvX3RpbWluZzsK K30KKworc2Vzc2lvbiBzMQorc3RlcCBzMV9iZWdpbl9yZXBlYXRhYmxlX3JlYWQgICB7Cisg IEJFR0lOIHRyYW5zYWN0aW9uIElTT0xBVElPTiBMRVZFTCBSRVBFQVRBQkxFIFJFQUQ7Cisg IHNlbGVjdCBjb3VudChpdmFsKSBmcm9tIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uIHdo ZXJlIGlkPjkwMDsKKyAgfQorc3RlcCBzMV9jb21taXQgICAgICAgICAgICAgICAgICB7IENP TU1JVDsgfQorCitzZXNzaW9uIHMyCitzdGVwIHMyX2luc2VydCAgICAgICAgICAgICAgICAg IHsgSU5TRVJUIElOVE8gdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24oaWQsIGl2YWwpIFNF TEVDVCBpdmFsLCBpdmFsJTEwIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMCkgQXMgaXZh bDsgfQorc3RlcCBzMl91cGRhdGUgICAgICAgICAgICAgICAgICB7IFVQREFURSB0ZXN0X3Zh Y3V1bV9zdGF0X2lzb2xhdGlvbiBTRVQgaXZhbCA9IGl2YWwgKyAyIHdoZXJlIGlkID4gOTAw OyB9CitzdGVwIHMyX2RlbGV0ZSAgICAgICAgICAgICAgICAgIHsgREVMRVRFIEZST00gdGVz dF92YWN1dW1fc3RhdF9pc29sYXRpb24gd2hlcmUgaWQgPiA5MDA7IH0KK3N0ZXAgczJfaW5z ZXJ0X2ludGVycnVwdCAgICAgICAgeyBJTlNFUlQgSU5UTyB0ZXN0X3ZhY3V1bV9zdGF0X2lz b2xhdGlvbiB2YWx1ZXMgKDEsMSk7IH0KK3N0ZXAgczJfdmFjdXVtICAgICAgICAgICAgICAg ICAgeyBWQUNVVU0gdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb247IH0KK3N0ZXAgczJfY2hl Y2twb2ludCAgICAgICAgICAgICAgeyBDSEVDS1BPSU5UOyB9CitzdGVwIHMyX3ByaW50X3Zh Y3V1bV9zdGF0c190YWJsZQoreworICAgIFNFTEVDVAorICAgIHZ0LnJlbG5hbWUsIHZ0LnR1 cGxlc19kZWxldGVkLCB2dC5kZWFkX3R1cGxlcywgdnQudHVwbGVzX2Zyb3plbgorICAgIEZS T00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCisgICAgV0hFUkUgdnQu cmVsbmFtZSA9ICd0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbicgQU5EIHZ0LnJlbGlkID0g Yy5vaWQ7Cit9CisKK3Blcm11dGF0aW9uCisgICAgczJfaW5zZXJ0CisgICAgczJfcHJpbnRf dmFjdXVtX3N0YXRzX3RhYmxlCisgICAgczFfYmVnaW5fcmVwZWF0YWJsZV9yZWFkCisgICAg czJfdXBkYXRlCisgICAgczJfaW5zZXJ0X2ludGVycnVwdAorICAgIHMyX3ZhY3V1bQorICAg IHMyX3ByaW50X3ZhY3V1bV9zdGF0c190YWJsZQorICAgIHMxX2NvbW1pdAorICAgIHMyX2No ZWNrcG9pbnQKKyAgICBzMl92YWN1dW0KKyAgICBzMl9wcmludF92YWN1dW1fc3RhdHNfdGFi bGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CmluZGV4IDBk NzM0MTY5ZjExLi45YWU3NDNlYWUwYyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9vcHJfc2FuaXR5Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L29wcl9zYW5pdHkub3V0CkBAIC0zMiw5ICszMiwxMCBAQCBXSEVSRSBwMS5wcm9sYW5nID0g MCBPUiBwMS5wcm9yZXR0eXBlID0gMCBPUgogICAgICAgIHByb2tpbmQgTk9UIElOICgnZics ICdhJywgJ3cnLCAncCcpIE9SCiAgICAgICAgcHJvdm9sYXRpbGUgTk9UIElOICgnaScsICdz JywgJ3YnKSBPUgogICAgICAgIHByb3BhcmFsbGVsIE5PVCBJTiAoJ3MnLCAncicsICd1Jyk7 Ci0gb2lkIHwgcHJvbmFtZSAKLS0tLS0tKy0tLS0tLS0tLQotKDAgcm93cykKKyBvaWQgIHwg ICAgICAgIHByb25hbWUgICAgICAgIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgODAwMSB8IHBnX3N0YXRfdmFjdXVtX3RhYmxlcworKDEgcm93KQogCiAtLSBwcm9zcmMg c2hvdWxkIG5ldmVyIGJlIG51bGw7IGl0IGNhbiBiZSBlbXB0eSBvbmx5IGlmIHByb3NxbGJv ZHkgaXNuJ3QgbnVsbAogU0VMRUNUIHAxLm9pZCwgcDEucHJvbmFtZQpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3J1bGVzLm91dAppbmRleCA4NjI0MzNlZTUyYi4uNmU4NzkwZjY2ZjYgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0yMjI5LDYgKzIyMjksNDAg QEAgcGdfc3RhdF91c2VyX3RhYmxlc3wgU0VMRUNUIHJlbGlkLAogICAgIGF1dG9hbmFseXpl X2NvdW50CiAgICBGUk9NIHBnX3N0YXRfYWxsX3RhYmxlcwogICBXSEVSRSAoKHNjaGVtYW5h bWUgPD4gQUxMIChBUlJBWVsncGdfY2F0YWxvZyc6Om5hbWUsICdpbmZvcm1hdGlvbl9zY2hl bWEnOjpuYW1lXSkpIEFORCAoc2NoZW1hbmFtZSAhfiAnXnBnX3RvYXN0Jzo6dGV4dCkpOwor cGdfc3RhdF92YWN1dW1fdGFibGVzfCBTRUxFQ1QgcmVsLm9pZCBBUyByZWxpZCwKKyAgICBu cy5uc3BuYW1lIEFTIHNjaGVtYSwKKyAgICByZWwucmVsbmFtZSwKKyAgICBzdGF0cy50b3Rh bF9ibGtzX3JlYWQsCisgICAgc3RhdHMudG90YWxfYmxrc19oaXQsCisgICAgc3RhdHMudG90 YWxfYmxrc19kaXJ0aWVkLAorICAgIHN0YXRzLnRvdGFsX2Jsa3Nfd3JpdHRlbiwKKyAgICBz dGF0cy5yZWxfYmxrc19yZWFkLAorICAgIHN0YXRzLnJlbF9ibGtzX2hpdCwKKyAgICBzdGF0 cy5wYWdlc19zY2FubmVkLAorICAgIHN0YXRzLnBhZ2VzX3JlbW92ZWQsCisgICAgc3RhdHMu cGFnZXNfZnJvemVuLAorICAgIHN0YXRzLnBhZ2VzX2FsbF92aXNpYmxlLAorICAgIHN0YXRz LnR1cGxlc19kZWxldGVkLAorICAgIHN0YXRzLnR1cGxlc19mcm96ZW4sCisgICAgc3RhdHMu ZGVhZF90dXBsZXMsCisgICAgc3RhdHMuaW5kZXhfdmFjdXVtX2NvdW50LAorICAgIHN0YXRz LnJldl9hbGxfZnJvemVuX3BhZ2VzLAorICAgIHN0YXRzLnJldl9hbGxfdmlzaWJsZV9wYWdl cywKKyAgICBzdGF0cy53YWxfcmVjb3JkcywKKyAgICBzdGF0cy53YWxfZnBpLAorICAgIHN0 YXRzLndhbF9ieXRlcywKKyAgICBzdGF0cy5ibGtfcmVhZF90aW1lLAorICAgIHN0YXRzLmJs a193cml0ZV90aW1lLAorICAgIHN0YXRzLmRlbGF5X3RpbWUsCisgICAgc3RhdHMuc3lzdGVt X3RpbWUsCisgICAgc3RhdHMudXNlcl90aW1lLAorICAgIHN0YXRzLnRvdGFsX3RpbWUsCisg ICAgc3RhdHMuaW50ZXJydXB0cworICAgRlJPTSBwZ19kYXRhYmFzZSBkYiwKKyAgICBwZ19j bGFzcyByZWwsCisgICAgcGdfbmFtZXNwYWNlIG5zLAorICAgIExBVEVSQUwgcGdfc3RhdF92 YWN1dW1fdGFibGVzKGRiLm9pZCwgcmVsLm9pZCkgc3RhdHMocmVsaWQsIHRvdGFsX2Jsa3Nf cmVhZCwgdG90YWxfYmxrc19oaXQsIHRvdGFsX2Jsa3NfZGlydGllZCwgdG90YWxfYmxrc193 cml0dGVuLCByZWxfYmxrc19yZWFkLCByZWxfYmxrc19oaXQsIHBhZ2VzX3NjYW5uZWQsIHBh Z2VzX3JlbW92ZWQsIHBhZ2VzX2Zyb3plbiwgcGFnZXNfYWxsX3Zpc2libGUsIHR1cGxlc19k ZWxldGVkLCB0dXBsZXNfZnJvemVuLCBkZWFkX3R1cGxlcywgaW5kZXhfdmFjdXVtX2NvdW50 LCByZXZfYWxsX2Zyb3plbl9wYWdlcywgcmV2X2FsbF92aXNpYmxlX3BhZ2VzLCB3YWxfcmVj b3Jkcywgd2FsX2ZwaSwgd2FsX2J5dGVzLCBibGtfcmVhZF90aW1lLCBibGtfd3JpdGVfdGlt ZSwgZGVsYXlfdGltZSwgc3lzdGVtX3RpbWUsIHVzZXJfdGltZSwgdG90YWxfdGltZSwgaW50 ZXJydXB0cykKKyAgV0hFUkUgKChkYi5kYXRuYW1lID0gY3VycmVudF9kYXRhYmFzZSgpKSBB TkQgKHJlbC5vaWQgPSBzdGF0cy5yZWxpZCkgQU5EIChucy5vaWQgPSByZWwucmVsbmFtZXNw YWNlKSk7CiBwZ19zdGF0X3dhbHwgU0VMRUNUIHdhbF9yZWNvcmRzLAogICAgIHdhbF9mcGks CiAgICAgd2FsX2J5dGVzLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Mub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi4xYTdkMDRiMDU5MAotLS0gL2Rldi9udWxsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzLm91dApA QCAtMCwwICsxLDIwMCBAQAorLS0KKy0tIFRlc3QgY3VtdWxhdGl2ZSB2YWN1dW0gc3RhdHMg c3lzdGVtCistLQorLS0gQ2hlY2sgdGhlIHdhbGwgc3RhdGlzdGljcyBjb2xsZWN0ZWQgZHVy aW5nIHZhY3V1bSBvcGVyYXRpb246CistLSBudW1iZXIgb2YgZnJvemVuIGFuZCB2aXNpYmxl IHBhZ2VzIHNldCBieSB2YWN1dW07CistLSBudW1iZXIgb2YgZnJvemVuIGFuZCB2aXNpYmxl IHBhZ2VzIHJlbW92ZWQgYnkgYmFja2VuZC4KKy0tIFN0YXRpc3RpYyB3YWxfZnBpIGlzIG5v dCBkaXNwbGF5ZWQgaW4gdGhpcyB0ZXN0IGJlY2F1c2UgaXRzIGJlaGF2aW9yIGlzIHVuc3Rh YmxlLgorLS0KKy0tIGNvbmRpdGlvIHNpbmUgcXVhIG5vbgorU0hPVyB0cmFja19jb3VudHM7 ICAtLSBtdXN0IGJlIG9uCisgdHJhY2tfY291bnRzIAorLS0tLS0tLS0tLS0tLS0KKyBvbgor KDEgcm93KQorCistLSBub3QgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgd2Ugd2FudCB0byB0 ZXN0IGl0Li4uCitTRVQgdHJhY2tfZnVuY3Rpb25zIFRPICdhbGwnOworLS0gZW5zdXJlIHBl bmRpbmcgc3RhdHMgYXJlIGZsdXNoZWQKK1NFTEVDVCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1 c2goKTsKKyBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2ggCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIAorKDEgcm93KQorCitcc2V0IHNhbXBsZV9zaXplIDEwMDAwCitTRVQgdmFj dXVtX2ZyZWV6ZV9taW5fYWdlID0gMDsKK1NFVCB2YWN1dW1fZnJlZXplX3RhYmxlX2FnZSA9 IDA7CistLVNFVCBzdGF0c19mZXRjaF9jb25zaXN0ZW5jeSA9IHNuYXBzaG90OworQ1JFQVRF IFRBQkxFIHZlc3RhdCAoeCBpbnQpIFdJVEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IG9mZiwg ZmlsbGZhY3RvciA9IDEwKTsKK0lOU0VSVCBJTlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9NIGdl bmVyYXRlX3NlcmllcygxLDpzYW1wbGVfc2l6ZSkgYXMgeDsKK0FOQUxZWkUgdmVzdGF0Owor U0VMRUNUIG9pZCBBUyByb2lkIGZyb20gcGdfY2xhc3Mgd2hlcmUgcmVsbmFtZSA9ICd2ZXN0 YXQnIFxnc2V0CitERUxFVEUgRlJPTSB2ZXN0YXQgV0hFUkUgeCAlIDIgPSAwOworLS0gQmVm b3JlIHRoZSBmaXJzdCB2YWN1dW0gZXhlY3V0aW9uIGV4dGVuZGVkIHN0YXRzIHZpZXcgaXMg ZW1wdHkuCitTRUxFQ1QgdnQucmVsbmFtZSxwYWdlc19mcm96ZW4sdHVwbGVzX2RlbGV0ZWQs cmVscGFnZXMscGFnZXNfc2Nhbm5lZCxwYWdlc19yZW1vdmVkCitGUk9NIHBnX3N0YXRfdmFj dXVtX3RhYmxlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQn IEFORCB2dC5yZWxpZCA9IGMub2lkOworIHJlbG5hbWUgfCBwYWdlc19mcm96ZW4gfCB0dXBs ZXNfZGVsZXRlZCB8IHJlbHBhZ2VzIHwgcGFnZXNfc2Nhbm5lZCB8IHBhZ2VzX3JlbW92ZWQg CistLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyB2ZXN0YXQgIHwgICAgICAgICAg ICAwIHwgICAgICAgICAgICAgIDAgfCAgICAgIDQ1NSB8ICAgICAgICAgICAgIDAgfCAgICAg ICAgICAgICAwCisoMSByb3cpCisKK1NFTEVDVCByZWxwYWdlcyBBUyBycAorRlJPTSBwZ19j bGFzcyBjCitXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQKK1ZBQ1VVTSAoUEFSQUxM RUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCwgSU5ERVhfQ0xFQU5VUCBPRkYpIHZlc3Rh dDsKKy0tIGl0IGlzIG5lY2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NI RUNLUE9JTlQ7CistLSBUaGUgdGFibGUgYW5kIGluZGV4IGV4dGVuZGVkIHZhY3V1bSBzdGF0 aXN0aWNzIHNob3VsZCBzaG93IHVzIHRoYXQKKy0tIHZhY3V1bSBmcm96ZWQgcGFnZXMgYW5k IGNsZWFuIHVwIHBhZ2VzLCBidXQgcGFnZXNfcmVtb3ZlZCBzdGF5ZWQgdGhlIHNhbWUKKy0t IGJlY2F1c2Ugb2Ygbm90IGZ1bGwgdGFibGUgaGF2ZSBjbGVhbmVkIHVwCitTRUxFQ1QgdnQu cmVsbmFtZSxwYWdlc19mcm96ZW4gPiAwIEFTIHBhZ2VzX2Zyb3plbix0dXBsZXNfZGVsZXRl ZCA+IDAgQVMgdHVwbGVzX2RlbGV0ZWQscmVscGFnZXMtOnJwID0gMCBBUyByZWxwYWdlcyxw YWdlc19zY2FubmVkID4gMCBBUyBwYWdlc19zY2FubmVkLHBhZ2VzX3JlbW92ZWQgPSAwIEFT IHBhZ2VzX3JlbW92ZWQKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFz cyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdCcgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7 CisgcmVsbmFtZSB8IHBhZ2VzX2Zyb3plbiB8IHR1cGxlc19kZWxldGVkIHwgcmVscGFnZXMg fCBwYWdlc19zY2FubmVkIHwgcGFnZXNfcmVtb3ZlZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLQorIHZlc3RhdCAgfCBmICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICB8 IHQgICAgICAgIHwgdCAgICAgICAgICAgICB8IHQKKygxIHJvdykKKworU0VMRUNUIHBhZ2Vz X2Zyb3plbiBBUyBmcCx0dXBsZXNfZGVsZXRlZCBBUyB0ZCxyZWxwYWdlcyBBUyBycCwgcGFn ZXNfc2Nhbm5lZCBBUyBwcywgcGFnZXNfcmVtb3ZlZCBBUyBwcgorRlJPTSBwZ19zdGF0X3Zh Y3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0 JyBBTkQgdnQucmVsaWQgPSBjLm9pZCBcZ3NldAorLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGlu dG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMgQVMgaHdyLHdhbF9ieXRlcyBBUyBo d2Isd2FsX2ZwaSBBUyBoZnBpIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJl bG5hbWUgPSAndmVzdGF0JyBcZ3NldAorLS0gTG9vayBpbnRvIFdBTCByZWNvcmRzIGRlbHRh cy4KK1NFTEVDVCB3YWxfcmVjb3JkcyA+IDAgQVMgZFdSLCB3YWxfYnl0ZXMgPiAwIEFTIGRX QgorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQn OworIGR3ciB8IGR3YiAKKy0tLS0tKy0tLS0tCisgdCAgIHwgdAorKDEgcm93KQorCitERUxF VEUgRlJPTSB2ZXN0YXQ7OworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElN SVQgMTI4LCBJTkRFWF9DTEVBTlVQIE9GRikgdmVzdGF0OworLS0gaXQgaXMgbmVjZXNzYXJ5 IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKy0tIHBhZ2VzX3Jl bW92ZWQgbXVzdCBiZSBpbmNyZWFzZWQKK1NFTEVDVCB2dC5yZWxuYW1lLHBhZ2VzX2Zyb3pl bi06ZnAgPiAwIEFTIHBhZ2VzX2Zyb3plbix0dXBsZXNfZGVsZXRlZC06dGQgPiAwIEFTIHR1 cGxlc19kZWxldGVkLHJlbHBhZ2VzIC06cnAgPSAwIEFTIHJlbHBhZ2VzLHBhZ2VzX3NjYW5u ZWQtOnBzID4gMCBBUyBwYWdlc19zY2FubmVkLHBhZ2VzX3JlbW92ZWQtOnByID4gMCBBUyBw YWdlc19yZW1vdmVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xhc3Mg YworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2dC5yZWxpZCA9IGMub2lkOwor IHJlbG5hbWUgfCBwYWdlc19mcm96ZW4gfCB0dXBsZXNfZGVsZXRlZCB8IHJlbHBhZ2VzIHwg cGFnZXNfc2Nhbm5lZCB8IHBhZ2VzX3JlbW92ZWQgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0KKyB2ZXN0YXQgIHwgZiAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgfCBm ICAgICAgICB8IHQgICAgICAgICAgICAgfCB0CisoMSByb3cpCisKK1NFTEVDVCBwYWdlc19m cm96ZW4gQVMgZnAsdHVwbGVzX2RlbGV0ZWQgQVMgdGQscmVscGFnZXMgQVMgcnAsIHBhZ2Vz X3NjYW5uZWQgQVMgcHMsIHBhZ2VzX3JlbW92ZWQgQVMgcHIKK0ZST00gcGdfc3RhdF92YWN1 dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdCcg QU5EIHZ0LnJlbGlkID0gYy5vaWQgXGdzZXQKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRv IHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzLTpod3IgQVMgZHdyLCB3YWxfYnl0ZXMt Omh3YiBBUyBkd2IsIHdhbF9mcGktOmhmcGkgQVMgZGZwaQorRlJPTSBwZ19zdGF0X3ZhY3V1 bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnIFxnc2V0CistLSBXQUwgYWR2YW5j ZSBzaG91bGQgYmUgZGV0ZWN0ZWQuCitTRUxFQ1QgOmR3ciA+IDAgQVMgZFdSLCA6ZHdiID4g MCBBUyBkV0I7CisgZHdyIHwgZHdiIAorLS0tLS0rLS0tLS0KKyB0ICAgfCB0CisoMSByb3cp CisKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9y ZWNvcmRzIEFTIGh3cix3YWxfYnl0ZXMgQVMgaHdiLHdhbF9mcGkgQVMgaGZwaSBGUk9NIHBn X3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQKK0lO U0VSVCBJTlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpzYW1w bGVfc2l6ZSkgYXMgeDsKK0RFTEVURSBGUk9NIHZlc3RhdCBXSEVSRSB4ICUgMiA9IDA7Cist LSBWQUNVVU0gRlVMTCBkb2Vzbid0IHJlcG9ydCB0byBzdGF0IGNvbGxlY3Rvci4gU28sIG5v IGFueSBhZHZhbmNlbWVudHMgb2Ygc3RhdGlzdGljcworLS0gYXJlIGRldGVjdGVkIGhlcmUu CitWQUNVVU0gRlVMTCB2ZXN0YXQ7CistLSBJdCBpcyBuZWNlc3NhcnkgdG8gY2hlY2sgdGhl IHdhbCBzdGF0aXN0aWNzCitDSEVDS1BPSU5UOworLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGlu dG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMtOmh3ciBBUyBkd3IyLCB3YWxfYnl0 ZXMtOmh3YiBBUyBkd2IyLCB3YWxfZnBpLTpoZnBpIEFTIGRmcGkyCitGUk9NIHBnX3N0YXRf dmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQKKy0tIFdBTCBh bmQgb3RoZXIgc3RhdGlzdGljcyBhZHZhbmNlIHNob3VsZCBub3QgYmUgZGV0ZWN0ZWQuCitT RUxFQ1QgOmR3cjI9MCBBUyBkV1IsIDpkZnBpMj0wIEFTIGRGUEksIDpkd2IyPTAgQVMgZFdC OworIGR3ciB8IGRmcGkgfCBkd2IgCistLS0tLSstLS0tLS0rLS0tLS0KKyB0ICAgfCB0ICAg IHwgdAorKDEgcm93KQorCitTRUxFQ1QgdnQucmVsbmFtZSxwYWdlc19mcm96ZW4tOmZwID0g MCBBUyBwYWdlc19mcm96ZW4sdHVwbGVzX2RlbGV0ZWQtOnRkID0gMCBBUyB0dXBsZXNfZGVs ZXRlZCxyZWxwYWdlcyAtOnJwIDwgMCBBUyByZWxwYWdlcyxwYWdlc19zY2FubmVkLTpwcyA9 IDAgQVMgcGFnZXNfc2Nhbm5lZCxwYWdlc19yZW1vdmVkLTpwciA9IDAgQVMgcGFnZXNfcmVt b3ZlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJF IHZ0LnJlbG5hbWUgPSAndmVzdGF0JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKKyByZWxuYW1l IHwgcGFnZXNfZnJvemVuIHwgdHVwbGVzX2RlbGV0ZWQgfCByZWxwYWdlcyB8IHBhZ2VzX3Nj YW5uZWQgfCBwYWdlc19yZW1vdmVkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t CisgdmVzdGF0ICB8IHQgICAgICAgICAgICB8IHQgICAgICAgICAgICAgIHwgZiAgICAgICAg fCB0ICAgICAgICAgICAgIHwgdAorKDEgcm93KQorCitTRUxFQ1QgcGFnZXNfZnJvemVuIEFT IGZwLHR1cGxlc19kZWxldGVkIEFTIHRkLHJlbHBhZ2VzIEFTIHJwLCBwYWdlc19zY2FubmVk IEFTIHBzLHBhZ2VzX3JlbW92ZWQgQVMgcHIKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVz IHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdCcgQU5EIHZ0LnJl bGlkID0gYy5vaWQgXGdzZXQKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxl cworU0VMRUNUIHdhbF9yZWNvcmRzIEFTIGh3cix3YWxfYnl0ZXMgQVMgaHdiLHdhbF9mcGkg QVMgaGZwaSBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zl c3RhdCcgXGdzZXQKK0RFTEVURSBGUk9NIHZlc3RhdDsKK1RSVU5DQVRFIHZlc3RhdDsKK1ZB Q1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCwgSU5ERVhfQ0xFQU5V UCBPRkYpIHZlc3RhdDsKKy0tIGl0IGlzIG5lY2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0 YXRpc3RpY3MKK0NIRUNLUE9JTlQ7CistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50byB2YXJp YWJsZXMgYWZ0ZXIgcmVtb3ZpbmcgYWxsIHR1cGxlcyBmcm9tIHRoZSB0YWJsZQorU0VMRUNU IHdhbF9yZWNvcmRzLTpod3IgQVMgZHdyMywgd2FsX2J5dGVzLTpod2IgQVMgZHdiMywgd2Fs X2ZwaS06aGZwaSBBUyBkZnBpMworRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUg cmVsbmFtZSA9ICd2ZXN0YXQnIFxnc2V0CistLVRoZXJlIGFyZSBub3RoaW5nIGNoYW5nZWQK K1NFTEVDVCA6ZHdyMz4wIEFTIGRXUiwgOmRmcGkzPTAgQVMgZEZQSSwgOmR3YjM+MCBBUyBk V0I7CisgZHdyIHwgZGZwaSB8IGR3YiAKKy0tLS0tKy0tLS0tLSstLS0tLQorIHQgICB8IHQg ICAgfCB0CisoMSByb3cpCisKKy0tCistLSBOb3csIHRoZSB0YWJsZSBhbmQgaW5kZXggaXMg Y29tcHJlc3NlZCBpbnRvIHplcm8gbnVtYmVyIG9mIHBhZ2VzLiBDaGVjayBpdAorLS0gaW4g dmFjdXVtIGV4dGVuZGVkIHN0YXRpc3RpY3MuCistLSBUaGUgcGFnZXNfZnJvemVuLCBwYWdl c19zY2FubmVkIHZhbHVlcyBzaG91bGRuJ3QgYmUgY2hhbmdlZAorLS0KK1NFTEVDVCB2dC5y ZWxuYW1lLHBhZ2VzX2Zyb3plbi06ZnAgPSAwIEFTIHBhZ2VzX2Zyb3plbix0dXBsZXNfZGVs ZXRlZC06dGQgPSAwIEFTIHR1cGxlc19kZWxldGVkLHJlbHBhZ2VzIC06cnAgPSAwIEFTIHJl bHBhZ2VzLHBhZ2VzX3NjYW5uZWQtOnBzID0gMCBBUyBwYWdlc19zY2FubmVkLHBhZ2VzX3Jl bW92ZWQtOnByID0gMCBBUyBwYWdlc19yZW1vdmVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX3Rh YmxlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2 dC5yZWxpZCA9IGMub2lkOworIHJlbG5hbWUgfCBwYWdlc19mcm96ZW4gfCB0dXBsZXNfZGVs ZXRlZCB8IHJlbHBhZ2VzIHwgcGFnZXNfc2Nhbm5lZCB8IHBhZ2VzX3JlbW92ZWQgCistLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyB2ZXN0YXQgIHwgdCAgICAgICAgICAgIHwg dCAgICAgICAgICAgICAgfCBmICAgICAgICB8IHQgICAgICAgICAgICAgfCB0CisoMSByb3cp CisKK0lOU0VSVCBJTlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3Nlcmllcygx LDpzYW1wbGVfc2l6ZSkgYXMgeDsKK0FOQUxZWkUgdmVzdGF0OworLS0gbXVzdCBiZSBlbXB0 eQorU0VMRUNUIHBhZ2VzX2Zyb3plbiwgcGFnZXNfYWxsX3Zpc2libGUsIHJldl9hbGxfZnJv emVuX3BhZ2VzLHJldl9hbGxfdmlzaWJsZV9wYWdlcworRlJPTSBwZ19zdGF0X3ZhY3V1bV90 YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnOworIHBhZ2VzX2Zyb3plbiB8IHBhZ2Vz X2FsbF92aXNpYmxlIHwgcmV2X2FsbF9mcm96ZW5fcGFnZXMgfCByZXZfYWxsX3Zpc2libGVf cGFnZXMgCistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIDAgfCAg ICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgICAgICAwIHwgICAgICAgICAgICAg ICAgICAgICAwCisoMSByb3cpCisKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdF X0xJTUlUIDEyOCkgdmVzdGF0OworLS0gYmFja2VuZCBkZWZyZWV6ZWQgcGFnZXMKK1NFTEVD VCBwYWdlc19mcm96ZW4gPiAwIEFTIHBhZ2VzX2Zyb3plbixwYWdlc19hbGxfdmlzaWJsZSA+ IDAgQVMgcGFnZXNfYWxsX3Zpc2libGUscmV2X2FsbF9mcm96ZW5fcGFnZXMgPSAwIEFTIHJl dl9hbGxfZnJvemVuX3BhZ2VzLHJldl9hbGxfdmlzaWJsZV9wYWdlcyA9IDAgQVMgcmV2X2Fs bF92aXNpYmxlX3BhZ2VzCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxu YW1lID0gJ3Zlc3RhdCc7CisgcGFnZXNfZnJvemVuIHwgcGFnZXNfYWxsX3Zpc2libGUgfCBy ZXZfYWxsX2Zyb3plbl9wYWdlcyB8IHJldl9hbGxfdmlzaWJsZV9wYWdlcyAKKy0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIGYgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg IHwgdCAgICAgICAgICAgICAgICAgICAgfCB0CisoMSByb3cpCisKK1NFTEVDVCBwYWdlc19m cm96ZW4gQVMgcGYsIHBhZ2VzX2FsbF92aXNpYmxlIEFTIHB2LCByZXZfYWxsX2Zyb3plbl9w YWdlcyBBUyBoYWZwLHJldl9hbGxfdmlzaWJsZV9wYWdlcyBBUyBoYXZwCitGUk9NIHBnX3N0 YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQKK1VQREFU RSB2ZXN0YXQgU0VUIHggPSB4KzEwMDE7CitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9V U0FHRV9MSU1JVCAxMjgpIHZlc3RhdDsKK1NFTEVDVCBwYWdlc19mcm96ZW4gPiA6cGYgQVMg cGFnZXNfZnJvemVuLHBhZ2VzX2FsbF92aXNpYmxlID4gOnB2IEFTIHBhZ2VzX2FsbF92aXNp YmxlLHJldl9hbGxfZnJvemVuX3BhZ2VzID4gOmhhZnAgQVMgcmV2X2FsbF9mcm96ZW5fcGFn ZXMscmV2X2FsbF92aXNpYmxlX3BhZ2VzID4gOmhhdnAgQVMgcmV2X2FsbF92aXNpYmxlX3Bh Z2VzCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3Rh dCc7CisgcGFnZXNfZnJvemVuIHwgcGFnZXNfYWxsX3Zpc2libGUgfCByZXZfYWxsX2Zyb3pl bl9wYWdlcyB8IHJldl9hbGxfdmlzaWJsZV9wYWdlcyAKKy0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIGYgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK1NFTEVDVCBwYWdlc19mcm96ZW4gQVMgcGYs IHBhZ2VzX2FsbF92aXNpYmxlIEFTIHB2LCByZXZfYWxsX2Zyb3plbl9wYWdlcyBBUyBoYWZw LHJldl9hbGxfdmlzaWJsZV9wYWdlcyBBUyBoYXZwCitGUk9NIHBnX3N0YXRfdmFjdXVtX3Rh YmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQKK1ZBQ1VVTSAoUEFSQUxMRUwg MCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCkgdmVzdGF0OworLS0gdmFjdXVtIGZyZWV6ZWQg cGFnZXMKK1NFTEVDVCBwYWdlc19mcm96ZW4gPSA6cGYgQVMgcGFnZXNfZnJvemVuLHBhZ2Vz X2FsbF92aXNpYmxlID0gOnB2IEFTIHBhZ2VzX2FsbF92aXNpYmxlLHJldl9hbGxfZnJvemVu X3BhZ2VzID0gOmhhZnAgQVMgcmV2X2FsbF9mcm96ZW5fcGFnZXMscmV2X2FsbF92aXNpYmxl X3BhZ2VzID0gOmhhdnAgQVMgcmV2X2FsbF92aXNpYmxlX3BhZ2VzCitGUk9NIHBnX3N0YXRf dmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCc7CisgcGFnZXNfZnJvemVu IHwgcGFnZXNfYWxsX3Zpc2libGUgfCByZXZfYWxsX2Zyb3plbl9wYWdlcyB8IHJldl9hbGxf dmlzaWJsZV9wYWdlcyAKKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQgICAgICAg ICAgICB8IHQgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICAgICAgfCB0Ciso MSByb3cpCisKK0RST1AgVEFCTEUgdmVzdGF0IENBU0NBREU7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJh bGxlbF9zY2hlZHVsZQppbmRleCAyNDI5ZWMyYmJhYS4uZjhhNGJjY2NjOWQgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAtMTM2LDMgKzEzNiw4IEBAIHRlc3Q6IGZh c3RfZGVmYXVsdAogIyBydW4gdGFibGVzcGFjZSB0ZXN0IGF0IHRoZSBlbmQgYmVjYXVzZSBp dCBkcm9wcyB0aGUgdGFibGVzcGFjZSBjcmVhdGVkIGR1cmluZwogIyBzZXR1cCB0aGF0IG90 aGVyIHRlc3RzIG1heSB1c2UuCiB0ZXN0OiB0YWJsZXNwYWNlCisKKyMgLS0tLS0tLS0tLQor IyBDaGVjayB2YWN1dW0gc3RhdGlzdGljcworIyAtLS0tLS0tLS0tCit0ZXN0OiB2YWN1dW1f dGFibGVzX3N0YXRpc3RpY3MKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Muc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDFlMzg3ZGQzMDQKLS0t IC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1dW1fdGFibGVzX3N0 YXRpc3RpY3Muc3FsCkBAIC0wLDAgKzEsMTU4IEBACistLQorLS0gVGVzdCBjdW11bGF0aXZl IHZhY3V1bSBzdGF0cyBzeXN0ZW0KKy0tCistLSBDaGVjayB0aGUgd2FsbCBzdGF0aXN0aWNz IGNvbGxlY3RlZCBkdXJpbmcgdmFjdXVtIG9wZXJhdGlvbjoKKy0tIG51bWJlciBvZiBmcm96 ZW4gYW5kIHZpc2libGUgcGFnZXMgc2V0IGJ5IHZhY3V1bTsKKy0tIG51bWJlciBvZiBmcm96 ZW4gYW5kIHZpc2libGUgcGFnZXMgcmVtb3ZlZCBieSBiYWNrZW5kLgorLS0gU3RhdGlzdGlj IHdhbF9mcGkgaXMgbm90IGRpc3BsYXllZCBpbiB0aGlzIHRlc3QgYmVjYXVzZSBpdHMgYmVo YXZpb3IgaXMgdW5zdGFibGUuCistLQorCistLSBjb25kaXRpbyBzaW5lIHF1YSBub24KK1NI T1cgdHJhY2tfY291bnRzOyAgLS0gbXVzdCBiZSBvbgorLS0gbm90IGVuYWJsZWQgYnkgZGVm YXVsdCwgYnV0IHdlIHdhbnQgdG8gdGVzdCBpdC4uLgorU0VUIHRyYWNrX2Z1bmN0aW9ucyBU TyAnYWxsJzsKKworCistLSBlbnN1cmUgcGVuZGluZyBzdGF0cyBhcmUgZmx1c2hlZAorU0VM RUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOworCitcc2V0IHNhbXBsZV9zaXplIDEw MDAwCitTRVQgdmFjdXVtX2ZyZWV6ZV9taW5fYWdlID0gMDsKK1NFVCB2YWN1dW1fZnJlZXpl X3RhYmxlX2FnZSA9IDA7CistLVNFVCBzdGF0c19mZXRjaF9jb25zaXN0ZW5jeSA9IHNuYXBz aG90OworQ1JFQVRFIFRBQkxFIHZlc3RhdCAoeCBpbnQpIFdJVEggKGF1dG92YWN1dW1fZW5h YmxlZCA9IG9mZiwgZmlsbGZhY3RvciA9IDEwKTsKK0lOU0VSVCBJTlRPIHZlc3RhdCBTRUxF Q1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpzYW1wbGVfc2l6ZSkgYXMgeDsKK0FOQUxZ WkUgdmVzdGF0OworCitTRUxFQ1Qgb2lkIEFTIHJvaWQgZnJvbSBwZ19jbGFzcyB3aGVyZSBy ZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQKKworREVMRVRFIEZST00gdmVzdGF0IFdIRVJFIHgg JSAyID0gMDsKKy0tIEJlZm9yZSB0aGUgZmlyc3QgdmFjdXVtIGV4ZWN1dGlvbiBleHRlbmRl ZCBzdGF0cyB2aWV3IGlzIGVtcHR5LgorU0VMRUNUIHZ0LnJlbG5hbWUscGFnZXNfZnJvemVu LHR1cGxlc19kZWxldGVkLHJlbHBhZ2VzLHBhZ2VzX3NjYW5uZWQscGFnZXNfcmVtb3ZlZAor RlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJl bG5hbWUgPSAndmVzdGF0JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKK1NFTEVDVCByZWxwYWdl cyBBUyBycAorRlJPTSBwZ19jbGFzcyBjCitXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdz ZXQKKworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4LCBJTkRF WF9DTEVBTlVQIE9GRikgdmVzdGF0OworLS0gaXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRo ZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKworLS0gVGhlIHRhYmxlIGFuZCBpbmRl eCBleHRlbmRlZCB2YWN1dW0gc3RhdGlzdGljcyBzaG91bGQgc2hvdyB1cyB0aGF0CistLSB2 YWN1dW0gZnJvemVkIHBhZ2VzIGFuZCBjbGVhbiB1cCBwYWdlcywgYnV0IHBhZ2VzX3JlbW92 ZWQgc3RheWVkIHRoZSBzYW1lCistLSBiZWNhdXNlIG9mIG5vdCBmdWxsIHRhYmxlIGhhdmUg Y2xlYW5lZCB1cAorU0VMRUNUIHZ0LnJlbG5hbWUscGFnZXNfZnJvemVuID4gMCBBUyBwYWdl c19mcm96ZW4sdHVwbGVzX2RlbGV0ZWQgPiAwIEFTIHR1cGxlc19kZWxldGVkLHJlbHBhZ2Vz LTpycCA9IDAgQVMgcmVscGFnZXMscGFnZXNfc2Nhbm5lZCA+IDAgQVMgcGFnZXNfc2Nhbm5l ZCxwYWdlc19yZW1vdmVkID0gMCBBUyBwYWdlc19yZW1vdmVkCitGUk9NIHBnX3N0YXRfdmFj dXVtX3RhYmxlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQn IEFORCB2dC5yZWxpZCA9IGMub2lkOworU0VMRUNUIHBhZ2VzX2Zyb3plbiBBUyBmcCx0dXBs ZXNfZGVsZXRlZCBBUyB0ZCxyZWxwYWdlcyBBUyBycCwgcGFnZXNfc2Nhbm5lZCBBUyBwcywg cGFnZXNfcmVtb3ZlZCBBUyBwcgorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBn X2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JyBBTkQgdnQucmVsaWQgPSBj Lm9pZCBcZ3NldAorCistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50byB2YXJpYWJsZXMKK1NF TEVDVCB3YWxfcmVjb3JkcyBBUyBod3Isd2FsX2J5dGVzIEFTIGh3Yix3YWxfZnBpIEFTIGhm cGkgRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQn IFxnc2V0CisKKy0tIExvb2sgaW50byBXQUwgcmVjb3JkcyBkZWx0YXMuCitTRUxFQ1Qgd2Fs X3JlY29yZHMgPiAwIEFTIGRXUiwgd2FsX2J5dGVzID4gMCBBUyBkV0IKK0ZST00gcGdfc3Rh dF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0JzsKKworREVMRVRFIEZS T00gdmVzdGF0OzsKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEy OCwgSU5ERVhfQ0xFQU5VUCBPRkYpIHZlc3RhdDsKKy0tIGl0IGlzIG5lY2Vzc2FyeSB0byBj aGVjayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNLUE9JTlQ7CisKKy0tIHBhZ2VzX3JlbW92 ZWQgbXVzdCBiZSBpbmNyZWFzZWQKK1NFTEVDVCB2dC5yZWxuYW1lLHBhZ2VzX2Zyb3plbi06 ZnAgPiAwIEFTIHBhZ2VzX2Zyb3plbix0dXBsZXNfZGVsZXRlZC06dGQgPiAwIEFTIHR1cGxl c19kZWxldGVkLHJlbHBhZ2VzIC06cnAgPSAwIEFTIHJlbHBhZ2VzLHBhZ2VzX3NjYW5uZWQt OnBzID4gMCBBUyBwYWdlc19zY2FubmVkLHBhZ2VzX3JlbW92ZWQtOnByID4gMCBBUyBwYWdl c19yZW1vdmVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xhc3MgYwor V0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2dC5yZWxpZCA9IGMub2lkOworU0VM RUNUIHBhZ2VzX2Zyb3plbiBBUyBmcCx0dXBsZXNfZGVsZXRlZCBBUyB0ZCxyZWxwYWdlcyBB UyBycCwgcGFnZXNfc2Nhbm5lZCBBUyBwcywgcGFnZXNfcmVtb3ZlZCBBUyBwcgorRlJPTSBw Z19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUg PSAndmVzdGF0JyBBTkQgdnQucmVsaWQgPSBjLm9pZCBcZ3NldAorCistLSBTdG9yZSBXQUwg YWR2YW5jZXMgaW50byB2YXJpYWJsZXMKK1NFTEVDVCB3YWxfcmVjb3Jkcy06aHdyIEFTIGR3 ciwgd2FsX2J5dGVzLTpod2IgQVMgZHdiLCB3YWxfZnBpLTpoZnBpIEFTIGRmcGkKK0ZST00g cGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0JyBcZ3NldAor CistLSBXQUwgYWR2YW5jZSBzaG91bGQgYmUgZGV0ZWN0ZWQuCitTRUxFQ1QgOmR3ciA+IDAg QVMgZFdSLCA6ZHdiID4gMCBBUyBkV0I7CisKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRv IHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzIEFTIGh3cix3YWxfYnl0ZXMgQVMgaHdi LHdhbF9mcGkgQVMgaGZwaSBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxu YW1lID0gJ3Zlc3RhdCcgXGdzZXQKKworSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OworREVMRVRFIEZST00g dmVzdGF0IFdIRVJFIHggJSAyID0gMDsKKy0tIFZBQ1VVTSBGVUxMIGRvZXNuJ3QgcmVwb3J0 IHRvIHN0YXQgY29sbGVjdG9yLiBTbywgbm8gYW55IGFkdmFuY2VtZW50cyBvZiBzdGF0aXN0 aWNzCistLSBhcmUgZGV0ZWN0ZWQgaGVyZS4KK1ZBQ1VVTSBGVUxMIHZlc3RhdDsKKy0tIEl0 IGlzIG5lY2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNLUE9JTlQ7 CisKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9y ZWNvcmRzLTpod3IgQVMgZHdyMiwgd2FsX2J5dGVzLTpod2IgQVMgZHdiMiwgd2FsX2ZwaS06 aGZwaSBBUyBkZnBpMgorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFt ZSA9ICd2ZXN0YXQnIFxnc2V0CisKKy0tIFdBTCBhbmQgb3RoZXIgc3RhdGlzdGljcyBhZHZh bmNlIHNob3VsZCBub3QgYmUgZGV0ZWN0ZWQuCitTRUxFQ1QgOmR3cjI9MCBBUyBkV1IsIDpk ZnBpMj0wIEFTIGRGUEksIDpkd2IyPTAgQVMgZFdCOworCitTRUxFQ1QgdnQucmVsbmFtZSxw YWdlc19mcm96ZW4tOmZwID0gMCBBUyBwYWdlc19mcm96ZW4sdHVwbGVzX2RlbGV0ZWQtOnRk ID0gMCBBUyB0dXBsZXNfZGVsZXRlZCxyZWxwYWdlcyAtOnJwIDwgMCBBUyByZWxwYWdlcyxw YWdlc19zY2FubmVkLTpwcyA9IDAgQVMgcGFnZXNfc2Nhbm5lZCxwYWdlc19yZW1vdmVkLTpw ciA9IDAgQVMgcGFnZXNfcmVtb3ZlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQs IHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JyBBTkQgdnQucmVsaWQg PSBjLm9pZDsKK1NFTEVDVCBwYWdlc19mcm96ZW4gQVMgZnAsdHVwbGVzX2RlbGV0ZWQgQVMg dGQscmVscGFnZXMgQVMgcnAsIHBhZ2VzX3NjYW5uZWQgQVMgcHMscGFnZXNfcmVtb3ZlZCBB UyBwcgorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJF IHZ0LnJlbG5hbWUgPSAndmVzdGF0JyBBTkQgdnQucmVsaWQgPSBjLm9pZCBcZ3NldAorCist LSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50byB2YXJpYWJsZXMKK1NFTEVDVCB3YWxfcmVjb3Jk cyBBUyBod3Isd2FsX2J5dGVzIEFTIGh3Yix3YWxfZnBpIEFTIGhmcGkgRlJPTSBwZ19zdGF0 X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnIFxnc2V0CisKK0RFTEVU RSBGUk9NIHZlc3RhdDsKK1RSVU5DQVRFIHZlc3RhdDsKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwg QlVGRkVSX1VTQUdFX0xJTUlUIDEyOCwgSU5ERVhfQ0xFQU5VUCBPRkYpIHZlc3RhdDsKKy0t IGl0IGlzIG5lY2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNLUE9J TlQ7CisKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcyBhZnRlciByZW1v dmluZyBhbGwgdHVwbGVzIGZyb20gdGhlIHRhYmxlCitTRUxFQ1Qgd2FsX3JlY29yZHMtOmh3 ciBBUyBkd3IzLCB3YWxfYnl0ZXMtOmh3YiBBUyBkd2IzLCB3YWxfZnBpLTpoZnBpIEFTIGRm cGkzCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3Rh dCcgXGdzZXQKKworLS1UaGVyZSBhcmUgbm90aGluZyBjaGFuZ2VkCitTRUxFQ1QgOmR3cjM+ MCBBUyBkV1IsIDpkZnBpMz0wIEFTIGRGUEksIDpkd2IzPjAgQVMgZFdCOworCistLQorLS0g Tm93LCB0aGUgdGFibGUgYW5kIGluZGV4IGlzIGNvbXByZXNzZWQgaW50byB6ZXJvIG51bWJl ciBvZiBwYWdlcy4gQ2hlY2sgaXQKKy0tIGluIHZhY3V1bSBleHRlbmRlZCBzdGF0aXN0aWNz LgorLS0gVGhlIHBhZ2VzX2Zyb3plbiwgcGFnZXNfc2Nhbm5lZCB2YWx1ZXMgc2hvdWxkbid0 IGJlIGNoYW5nZWQKKy0tCitTRUxFQ1QgdnQucmVsbmFtZSxwYWdlc19mcm96ZW4tOmZwID0g MCBBUyBwYWdlc19mcm96ZW4sdHVwbGVzX2RlbGV0ZWQtOnRkID0gMCBBUyB0dXBsZXNfZGVs ZXRlZCxyZWxwYWdlcyAtOnJwID0gMCBBUyByZWxwYWdlcyxwYWdlc19zY2FubmVkLTpwcyA9 IDAgQVMgcGFnZXNfc2Nhbm5lZCxwYWdlc19yZW1vdmVkLTpwciA9IDAgQVMgcGFnZXNfcmVt b3ZlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJF IHZ0LnJlbG5hbWUgPSAndmVzdGF0JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKKworSU5TRVJU IElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9z aXplKSBhcyB4OworQU5BTFlaRSB2ZXN0YXQ7CisKKy0tIG11c3QgYmUgZW1wdHkKK1NFTEVD VCBwYWdlc19mcm96ZW4sIHBhZ2VzX2FsbF92aXNpYmxlLCByZXZfYWxsX2Zyb3plbl9wYWdl cyxyZXZfYWxsX3Zpc2libGVfcGFnZXMKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdI RVJFIHJlbG5hbWUgPSAndmVzdGF0JzsKKworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJf VVNBR0VfTElNSVQgMTI4KSB2ZXN0YXQ7CisKKy0tIGJhY2tlbmQgZGVmcmVlemVkIHBhZ2Vz CitTRUxFQ1QgcGFnZXNfZnJvemVuID4gMCBBUyBwYWdlc19mcm96ZW4scGFnZXNfYWxsX3Zp c2libGUgPiAwIEFTIHBhZ2VzX2FsbF92aXNpYmxlLHJldl9hbGxfZnJvemVuX3BhZ2VzID0g MCBBUyByZXZfYWxsX2Zyb3plbl9wYWdlcyxyZXZfYWxsX3Zpc2libGVfcGFnZXMgPSAwIEFT IHJldl9hbGxfdmlzaWJsZV9wYWdlcworRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hF UkUgcmVsbmFtZSA9ICd2ZXN0YXQnOworU0VMRUNUIHBhZ2VzX2Zyb3plbiBBUyBwZiwgcGFn ZXNfYWxsX3Zpc2libGUgQVMgcHYsIHJldl9hbGxfZnJvemVuX3BhZ2VzIEFTIGhhZnAscmV2 X2FsbF92aXNpYmxlX3BhZ2VzIEFTIGhhdnAKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVz IFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0JyBcZ3NldAorCitVUERBVEUgdmVzdGF0IFNFVCB4 ID0geCsxMDAxOworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4 KSB2ZXN0YXQ7CisKK1NFTEVDVCBwYWdlc19mcm96ZW4gPiA6cGYgQVMgcGFnZXNfZnJvemVu LHBhZ2VzX2FsbF92aXNpYmxlID4gOnB2IEFTIHBhZ2VzX2FsbF92aXNpYmxlLHJldl9hbGxf ZnJvemVuX3BhZ2VzID4gOmhhZnAgQVMgcmV2X2FsbF9mcm96ZW5fcGFnZXMscmV2X2FsbF92 aXNpYmxlX3BhZ2VzID4gOmhhdnAgQVMgcmV2X2FsbF92aXNpYmxlX3BhZ2VzCitGUk9NIHBn X3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCc7CitTRUxFQ1Qg cGFnZXNfZnJvemVuIEFTIHBmLCBwYWdlc19hbGxfdmlzaWJsZSBBUyBwdiwgcmV2X2FsbF9m cm96ZW5fcGFnZXMgQVMgaGFmcCxyZXZfYWxsX3Zpc2libGVfcGFnZXMgQVMgaGF2cAorRlJP TSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnIFxnc2V0 CisKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCkgdmVzdGF0 OworCistLSB2YWN1dW0gZnJlZXplZCBwYWdlcworU0VMRUNUIHBhZ2VzX2Zyb3plbiA9IDpw ZiBBUyBwYWdlc19mcm96ZW4scGFnZXNfYWxsX3Zpc2libGUgPSA6cHYgQVMgcGFnZXNfYWxs X3Zpc2libGUscmV2X2FsbF9mcm96ZW5fcGFnZXMgPSA6aGFmcCBBUyByZXZfYWxsX2Zyb3pl bl9wYWdlcyxyZXZfYWxsX3Zpc2libGVfcGFnZXMgPSA6aGF2cCBBUyByZXZfYWxsX3Zpc2li bGVfcGFnZXMKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAn dmVzdGF0JzsKKworRFJPUCBUQUJMRSB2ZXN0YXQgQ0FTQ0FERTsKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCi0tIAoyLjM0LjEKCg== --------------pH7wJoYVW1CRnjNgrE7OaUvT Content-Type: text/x-patch; charset=UTF-8; name="v5-0002-Machinery-for-grabbing-an-extended-vacuum-statistics.patch" Content-Disposition: attachment; filename*0="v5-0002-Machinery-for-grabbing-an-extended-vacuum-statistics"; filename*1=".patch" Content-Transfer-Encoding: base64 RnJvbSA1NTM2OGM5MjIyM2I5NDQzMzFjMWIxOGZiYmYwOWU0MTBhYzRmNDc4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogVHVlLCAxMSBKdW4gMjAyNCAxMDoxMTozNyArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMi80XSBNYWNoaW5lcnkgZm9yIGdyYWJiaW5nIGFuIGV4dGVuZGVkIHZh Y3V1bSBzdGF0aXN0aWNzIG9uCiBoZWFwIGFuZCBpbmRleCByZWxhdGlvbnMuIFJlbWVtYmVy LCBzdGF0aXN0aWMgb24gaGVhcCBhbmQgaW5kZXggcmVsYXRpb25zIGEKIGJpdCBkaWZmZXJl bnQgKHNlZSBFeHRWYWNSZXBvcnQgdG8gZmluZCBvdXQgbW9yZSBpbmZvcm1hdGlvbikuIFRo ZSBjb25jZXB0IG9mCiB0aGUgRXh0VmFjUmVwb3J0IHN0cnVjdHVyZSBoYXMgYmVlbiBjb21w bGljYXRlZCB0byBzdG9yZSBzdGF0aXN0aWMKIGluZm9ybWF0aW9uIGZvciB0d28ga2luZHMg b2YgcmVsYXRpb25zOiBmb3IgaGVhcCBhbmQgaW5kZXggcmVsYXRpb25zLgogRXh0VmFjUmVw b3J0VHlwZSB2YXJpYWJsZSBoZWxwcyB0byBkZXRlcm1pbmUgd2hhdCB0aGUga2luZCBpcyBj b25zaWRlcmluZwogbm93LgoKLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1s YXp5LmMgICAgICAgICAgfCAgOTkgKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL2NhdGFsb2cv c3lzdGVtX3ZpZXdzLnNxbCAgICAgICAgICB8ICA0MSArKysrKwogc3JjL2JhY2tlbmQvdXRp bHMvYWN0aXZpdHkvcGdzdGF0LmMgICAgICAgICAgIHwgIDQ1ICsrKy0tCiBzcmMvYmFja2Vu ZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYyAgfCAgIDMgKy0KIHNyYy9iYWNr ZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jICAgICAgICAgICB8IDEwOCArKysrKysrLS0t LS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAg OSArCiBzcmMvaW5jbHVkZS9wZ3N0YXQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg NTMgKysrKy0tCiAuLi4vdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5vdXQg ICAgfCAgIDcgKy0KIC4uLi92YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0YWJsZS1yZWFkLnNw ZWMgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91 dCAgICAgIHwgICA3ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCAg ICAgICAgICAgfCAgMjYgKysrCiAuLi4vZXhwZWN0ZWQvdmFjdXVtX2luZGV4X3N0YXRpc3Rp Y3Mub3V0ICAgICAgfCAxNTggKysrKysrKysrKysrKysrKysrCiAuLi4vZXhwZWN0ZWQvdmFj dXVtX3RhYmxlc19zdGF0aXN0aWNzLm91dCAgICAgfCAgIDMgKy0KIHNyYy90ZXN0L3JlZ3Jl c3MvcGFyYWxsZWxfc2NoZWR1bGUgICAgICAgICAgICB8ICAgMSArCiAuLi4vcmVncmVzcy9z cWwvdmFjdXVtX2luZGV4X3N0YXRpc3RpY3Muc3FsICAgfCAxMjggKysrKysrKysrKysrKysK IDE1IGZpbGVzIGNoYW5nZWQsIDYwNiBpbnNlcnRpb25zKCspLCA4NCBkZWxldGlvbnMoLSkK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV9p bmRleF9zdGF0aXN0aWNzLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3ZhY3V1bV9pbmRleF9zdGF0aXN0aWNzLnNxbAoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3ZhY3V1bWxhenkuYwppbmRleCAzOTQxYWUyNmYyZC4uNGUyYWU3OGQyNTUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTE2OCw2ICsxNjgsNyBAQCB0 eXBlZGVmIHN0cnVjdCBMVlJlbFN0YXRlCiAJY2hhcgkgICAqZGJuYW1lOwogCWNoYXIJICAg KnJlbG5hbWVzcGFjZTsKIAlPaWQJCQlyZWxvaWQ7CisJT2lkCQkJaW5kb2lkOwogCWNoYXIJ ICAgKnJlbG5hbWU7CiAJY2hhcgkgICAqaW5kbmFtZTsJCS8qIEN1cnJlbnQgaW5kZXggbmFt ZSAqLwogCUJsb2NrTnVtYmVyIGJsa25vOwkJCS8qIHVzZWQgb25seSBmb3IgaGVhcCBvcGVy YXRpb25zICovCkBAIC0yNDYsNiArMjQ3LDEzIEBAIHR5cGVkZWYgc3RydWN0IExWRXh0U3Rh dENvdW50ZXJzCiAJUGdTdGF0X0NvdW50ZXIgYmxvY2tzX2hpdDsKIH0gTFZFeHRTdGF0Q291 bnRlcnM7CiAKK3R5cGVkZWYgc3RydWN0IExWRXh0U3RhdENvdW50ZXJzSWR4Cit7CisJTFZF eHRTdGF0Q291bnRlcnMgY29tbW9uOworCWludDY0CQlwYWdlc19kZWxldGVkOworCWludDY0 CQl0dXBsZXNfcmVtb3ZlZDsKK30gTFZFeHRTdGF0Q291bnRlcnNJZHg7CisKIC8qIG5vbi1l eHBvcnQgZnVuY3Rpb24gcHJvdG90eXBlcyAqLwogc3RhdGljIHZvaWQgbGF6eV9zY2FuX2hl YXAoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKIHN0YXRpYyBib29sIGhlYXBfdmFjX3NjYW5fbmV4 dF9ibG9jayhMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyICpibGtubywKQEAgLTQw OCw2ICs0MTYsNDYgQEAgZXh0dmFjX3N0YXRzX2VuZChSZWxhdGlvbiByZWwsIExWRXh0U3Rh dENvdW50ZXJzICpjb3VudGVycywKIAkJcmVsLT5wZ3N0YXRfaW5mby0+Y291bnRzLmJsb2Nr c19oaXQgLSBjb3VudGVycy0+YmxvY2tzX2hpdDsKIH0KIAorc3RhdGljIHZvaWQKK2V4dHZh Y19zdGF0c19zdGFydF9pZHgoUmVsYXRpb24gcmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQg KnN0YXRzLAorCQkJCQkgICBMVkV4dFN0YXRDb3VudGVyc0lkeCAqY291bnRlcnMpCit7CisJ ZXh0dmFjX3N0YXRzX3N0YXJ0KHJlbCwgJmNvdW50ZXJzLT5jb21tb24pOworCWNvdW50ZXJz LT5wYWdlc19kZWxldGVkID0gY291bnRlcnMtPnR1cGxlc19yZW1vdmVkID0gMDsKKworCWlm IChzdGF0cyAhPSBOVUxMKQorCXsKKwkJLyoKKwkJICogWFhYOiBXaHkgZG8gd2UgbmVlZCB0 aGlzIGNvZGUgaGVyZT8gSWYgaXQgaXMgbmVlZGVkLCBJIGZlZWwgbGFjayBvZgorCQkgKiBj b21tZW50cywgZGVzY3JpYmluZyB0aGUgcmVhc29uLgorCQkgKi8KKwkJY291bnRlcnMtPnR1 cGxlc19yZW1vdmVkID0gc3RhdHMtPnR1cGxlc19yZW1vdmVkOworCQljb3VudGVycy0+cGFn ZXNfZGVsZXRlZCA9IHN0YXRzLT5wYWdlc19kZWxldGVkOworCX0KK30KKworc3RhdGljIHZv aWQKK2V4dHZhY19zdGF0c19lbmRfaWR4KFJlbGF0aW9uIHJlbCwgSW5kZXhCdWxrRGVsZXRl UmVzdWx0ICpzdGF0cywKKwkJCQkJIExWRXh0U3RhdENvdW50ZXJzSWR4ICpjb3VudGVycywg RXh0VmFjUmVwb3J0ICpyZXBvcnQpCit7CisJZXh0dmFjX3N0YXRzX2VuZChyZWwsICZjb3Vu dGVycy0+Y29tbW9uLCByZXBvcnQpOworCXJlcG9ydC0+dHlwZSA9IFBHU1RBVF9FWFRWQUNf SU5ERVg7CisKKwlpZiAoc3RhdHMgIT0gTlVMTCkKKwl7CisJCS8qCisJCSAqIGlmIHNvbWV0 aGluZyBnb2VzIHdyb25nIG9yIGFuIHVzZXIgZG9lc24ndCB3YW50IHRvIHRyYWNrIGEgZGF0 YWJhc2UKKwkJICogYWN0aXZpdHkgLSBqdXN0IHN1cHByZXNzIGl0LgorCQkgKi8KKworCQkv KiBGaWxsIGluZGV4LXNwZWNpZmljIGV4dGVuZGVkIHN0YXRzIGZpZWxkcyAqLworCQlyZXBv cnQtPmluZGV4LnR1cGxlc19kZWxldGVkID0KKwkJCQkJCQlzdGF0cy0+dHVwbGVzX3JlbW92 ZWQgLSBjb3VudGVycy0+dHVwbGVzX3JlbW92ZWQ7CisJCXJlcG9ydC0+aW5kZXgucGFnZXNf ZGVsZXRlZCA9CisJCQkJCQkJc3RhdHMtPnBhZ2VzX2RlbGV0ZWQgLSBjb3VudGVycy0+cGFn ZXNfZGVsZXRlZDsKKwl9Cit9CisKIC8qCiAgKgloZWFwX3ZhY3V1bV9yZWwoKSAtLSBwZXJm b3JtIFZBQ1VVTSBmb3Igb25lIGhlYXAgcmVsYXRpb24KICAqCkBAIC03MTEsMTQgKzc1OSwx NSBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLCBWYWN1dW1QYXJhbXMgKnBhcmFt cywKIAlleHR2YWNfc3RhdHNfZW5kKHJlbCwgJmV4dFZhY0NvdW50ZXJzLCAmZXh0VmFjUmVw b3J0KTsKIAogCS8qIEZpbGwgaGVhcC1zcGVjaWZpYyBleHRlbmRlZCBzdGF0cyBmaWVsZHMg Ki8KLQlleHRWYWNSZXBvcnQucGFnZXNfc2Nhbm5lZCA9IHZhY3JlbC0+c2Nhbm5lZF9wYWdl czsKLQlleHRWYWNSZXBvcnQucGFnZXNfcmVtb3ZlZCA9IHZhY3JlbC0+cmVtb3ZlZF9wYWdl czsKLQlleHRWYWNSZXBvcnQucGFnZXNfZnJvemVuID0gdmFjcmVsLT5zZXRfZnJvemVuX3Bh Z2VzOwotCWV4dFZhY1JlcG9ydC5wYWdlc19hbGxfdmlzaWJsZSA9IHZhY3JlbC0+c2V0X2Fs bF92aXNpYmxlX3BhZ2VzOwotCWV4dFZhY1JlcG9ydC50dXBsZXNfZGVsZXRlZCA9IHZhY3Jl bC0+dHVwbGVzX2RlbGV0ZWQ7Ci0JZXh0VmFjUmVwb3J0LnR1cGxlc19mcm96ZW4gPSB2YWNy ZWwtPnR1cGxlc19mcm96ZW47Ci0JZXh0VmFjUmVwb3J0LmRlYWRfdHVwbGVzID0gdmFjcmVs LT5yZWNlbnRseV9kZWFkX3R1cGxlcyArIHZhY3JlbC0+bWlzc2VkX2RlYWRfdHVwbGVzOwot CWV4dFZhY1JlcG9ydC5pbmRleF92YWN1dW1fY291bnQgPSB2YWNyZWwtPm51bV9pbmRleF9z Y2FuczsKKwlleHRWYWNSZXBvcnQudHlwZSA9IFBHU1RBVF9FWFRWQUNfSEVBUDsKKwlleHRW YWNSZXBvcnQuaGVhcC5wYWdlc19zY2FubmVkID0gdmFjcmVsLT5zY2FubmVkX3BhZ2VzOwor CWV4dFZhY1JlcG9ydC5oZWFwLnBhZ2VzX3JlbW92ZWQgPSB2YWNyZWwtPnJlbW92ZWRfcGFn ZXM7CisJZXh0VmFjUmVwb3J0LmhlYXAucGFnZXNfZnJvemVuID0gdmFjcmVsLT5zZXRfZnJv emVuX3BhZ2VzOworCWV4dFZhY1JlcG9ydC5oZWFwLnBhZ2VzX2FsbF92aXNpYmxlID0gdmFj cmVsLT5zZXRfYWxsX3Zpc2libGVfcGFnZXM7CisJZXh0VmFjUmVwb3J0LmhlYXAudHVwbGVz X2RlbGV0ZWQgPSB2YWNyZWwtPnR1cGxlc19kZWxldGVkOworCWV4dFZhY1JlcG9ydC5oZWFw LnR1cGxlc19mcm96ZW4gPSB2YWNyZWwtPnR1cGxlc19mcm96ZW47CisJZXh0VmFjUmVwb3J0 LmhlYXAuZGVhZF90dXBsZXMgPSB2YWNyZWwtPnJlY2VudGx5X2RlYWRfdHVwbGVzICsgdmFj cmVsLT5taXNzZWRfZGVhZF90dXBsZXM7CisJZXh0VmFjUmVwb3J0LmhlYXAuaW5kZXhfdmFj dXVtX2NvdW50ID0gdmFjcmVsLT5udW1faW5kZXhfc2NhbnM7CiAKIAkvKgogCSAqIFJlcG9y dCByZXN1bHRzIHRvIHRoZSBjdW11bGF0aXZlIHN0YXRzIHN5c3RlbSwgdG9vLgpAQCAtMjU4 Myw2ICsyNjMyLDEwIEBAIGxhenlfdmFjdXVtX29uZV9pbmRleChSZWxhdGlvbiBpbmRyZWws IEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqaXN0YXQsCiB7CiAJSW5kZXhWYWN1dW1JbmZvIGl2 aW5mbzsKIAlMVlNhdmVkRXJySW5mbyBzYXZlZF9lcnJfaW5mbzsKKwlMVkV4dFN0YXRDb3Vu dGVyc0lkeCBleHRWYWNDb3VudGVyczsKKwlFeHRWYWNSZXBvcnQgZXh0VmFjUmVwb3J0Owor CisJZXh0dmFjX3N0YXRzX3N0YXJ0X2lkeChpbmRyZWwsIGlzdGF0LCAmZXh0VmFjQ291bnRl cnMpOwogCiAJaXZpbmZvLmluZGV4ID0gaW5kcmVsOwogCWl2aW5mby5oZWFwcmVsID0gdmFj cmVsLT5yZWw7CkBAIC0yNjAxLDYgKzI2NTQsNyBAQCBsYXp5X3ZhY3V1bV9vbmVfaW5kZXgo UmVsYXRpb24gaW5kcmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmlzdGF0LAogCSAqLwog CUFzc2VydCh2YWNyZWwtPmluZG5hbWUgPT0gTlVMTCk7CiAJdmFjcmVsLT5pbmRuYW1lID0g cHN0cmR1cChSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShpbmRyZWwpKTsKKwl2YWNyZWwtPmlu ZG9pZCA9IFJlbGF0aW9uR2V0UmVsaWQoaW5kcmVsKTsKIAl1cGRhdGVfdmFjdXVtX2Vycm9y X2luZm8odmFjcmVsLCAmc2F2ZWRfZXJyX2luZm8sCiAJCQkJCQkJIFZBQ1VVTV9FUlJDQl9Q SEFTRV9WQUNVVU1fSU5ERVgsCiAJCQkJCQkJIEludmFsaWRCbG9ja051bWJlciwgSW52YWxp ZE9mZnNldE51bWJlcik7CkBAIC0yNjA5LDYgKzI2NjMsMTMgQEAgbGF6eV92YWN1dW1fb25l X2luZGV4KFJlbGF0aW9uIGluZHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICppc3RhdCwK IAlpc3RhdCA9IHZhY19idWxrZGVsX29uZV9pbmRleCgmaXZpbmZvLCBpc3RhdCwgKHZvaWQg KikgdmFjcmVsLT5kZWFkX2l0ZW1zLAogCQkJCQkJCQkgIHZhY3JlbC0+ZGVhZF9pdGVtc19p bmZvKTsKIAorCS8qIE1ha2UgZXh0ZW5kZWQgdmFjdXVtIHN0YXRzIHJlcG9ydCBmb3IgaW5k ZXggKi8KKwlleHR2YWNfc3RhdHNfZW5kX2lkeChpbmRyZWwsIGlzdGF0LCAmZXh0VmFjQ291 bnRlcnMsICZleHRWYWNSZXBvcnQpOworCisJcGdzdGF0X3JlcG9ydF92YWN1dW0oUmVsYXRp b25HZXRSZWxpZChpbmRyZWwpLAorCQkJCQkJCWluZHJlbC0+cmRfcmVsLT5yZWxpc3NoYXJl ZCwKKwkJCQkJCQkwLCAwLCAmZXh0VmFjUmVwb3J0KTsKKwogCS8qIFJldmVydCB0byB0aGUg cHJldmlvdXMgcGhhc2UgaW5mb3JtYXRpb24gZm9yIGVycm9yIHRyYWNlYmFjayAqLwogCXJl c3RvcmVfdmFjdXVtX2Vycm9yX2luZm8odmFjcmVsLCAmc2F2ZWRfZXJyX2luZm8pOwogCXBm cmVlKHZhY3JlbC0+aW5kbmFtZSk7CkBAIC0yNjMzLDYgKzI2OTQsMTAgQEAgbGF6eV9jbGVh bnVwX29uZV9pbmRleChSZWxhdGlvbiBpbmRyZWwsIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAq aXN0YXQsCiB7CiAJSW5kZXhWYWN1dW1JbmZvIGl2aW5mbzsKIAlMVlNhdmVkRXJySW5mbyBz YXZlZF9lcnJfaW5mbzsKKwlMVkV4dFN0YXRDb3VudGVyc0lkeCBleHRWYWNDb3VudGVyczsK KwlFeHRWYWNSZXBvcnQgZXh0VmFjUmVwb3J0OworCisJZXh0dmFjX3N0YXRzX3N0YXJ0X2lk eChpbmRyZWwsIGlzdGF0LCAmZXh0VmFjQ291bnRlcnMpOwogCiAJaXZpbmZvLmluZGV4ID0g aW5kcmVsOwogCWl2aW5mby5oZWFwcmVsID0gdmFjcmVsLT5yZWw7CkBAIC0yNjUyLDEyICsy NzE3LDIwIEBAIGxhenlfY2xlYW51cF9vbmVfaW5kZXgoUmVsYXRpb24gaW5kcmVsLCBJbmRl eEJ1bGtEZWxldGVSZXN1bHQgKmlzdGF0LAogCSAqLwogCUFzc2VydCh2YWNyZWwtPmluZG5h bWUgPT0gTlVMTCk7CiAJdmFjcmVsLT5pbmRuYW1lID0gcHN0cmR1cChSZWxhdGlvbkdldFJl bGF0aW9uTmFtZShpbmRyZWwpKTsKKwl2YWNyZWwtPmluZG9pZCA9IFJlbGF0aW9uR2V0UmVs aWQoaW5kcmVsKTsKIAl1cGRhdGVfdmFjdXVtX2Vycm9yX2luZm8odmFjcmVsLCAmc2F2ZWRf ZXJyX2luZm8sCiAJCQkJCQkJIFZBQ1VVTV9FUlJDQl9QSEFTRV9JTkRFWF9DTEVBTlVQLAog CQkJCQkJCSBJbnZhbGlkQmxvY2tOdW1iZXIsIEludmFsaWRPZmZzZXROdW1iZXIpOwogCiAJ aXN0YXQgPSB2YWNfY2xlYW51cF9vbmVfaW5kZXgoJml2aW5mbywgaXN0YXQpOwogCisJLyog TWFrZSBleHRlbmRlZCB2YWN1dW0gc3RhdHMgcmVwb3J0IGZvciBpbmRleCAqLworCWV4dHZh Y19zdGF0c19lbmRfaWR4KGluZHJlbCwgaXN0YXQsICZleHRWYWNDb3VudGVycywgJmV4dFZh Y1JlcG9ydCk7CisKKwlwZ3N0YXRfcmVwb3J0X3ZhY3V1bShSZWxhdGlvbkdldFJlbGlkKGlu ZHJlbCksCisJCQkJCQkJaW5kcmVsLT5yZF9yZWwtPnJlbGlzc2hhcmVkLAorCQkJCQkJCTAs IDAsICZleHRWYWNSZXBvcnQpOworCiAJLyogUmV2ZXJ0IHRvIHRoZSBwcmV2aW91cyBwaGFz ZSBpbmZvcm1hdGlvbiBmb3IgZXJyb3IgdHJhY2ViYWNrICovCiAJcmVzdG9yZV92YWN1dW1f ZXJyb3JfaW5mbyh2YWNyZWwsICZzYXZlZF9lcnJfaW5mbyk7CiAJcGZyZWUodmFjcmVsLT5p bmRuYW1lKTsKQEAgLTMyNzQsNyArMzM0Nyw3IEBAIHZhY3V1bV9lcnJvcl9jYWxsYmFjayh2 b2lkICphcmcpCiAJewogCQljYXNlIFZBQ1VVTV9FUlJDQl9QSEFTRV9TQ0FOX0hFQVA6CiAJ CQlpZihnZXRlcnJlbGV2ZWwoKSA+PSBFUlJPUikKLQkJCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1 bV9lcnJvcihlcnJpbmZvLT5yZWxvaWQpOworCQkJCXBnc3RhdF9yZXBvcnRfdmFjdXVtX2Vy cm9yKGVycmluZm8tPnJlbG9pZCwgUEdTVEFUX0VYVFZBQ19IRUFQKTsKIAkJCWlmIChCbG9j a051bWJlcklzVmFsaWQoZXJyaW5mby0+Ymxrbm8pKQogCQkJewogCQkJCWlmIChPZmZzZXRO dW1iZXJJc1ZhbGlkKGVycmluZm8tPm9mZm51bSkpCkBAIC0zMjkxLDcgKzMzNjQsNyBAQCB2 YWN1dW1fZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJnKQogCiAJCWNhc2UgVkFDVVVNX0VSUkNC X1BIQVNFX1ZBQ1VVTV9IRUFQOgogCQkJaWYoZ2V0ZXJyZWxldmVsKCkgPj0gRVJST1IpCi0J CQkJcGdzdGF0X3JlcG9ydF92YWN1dW1fZXJyb3IoZXJyaW5mby0+cmVsb2lkKTsKKwkJCQlw Z3N0YXRfcmVwb3J0X3ZhY3V1bV9lcnJvcihlcnJpbmZvLT5yZWxvaWQsIFBHU1RBVF9FWFRW QUNfSEVBUCk7CiAJCQlpZiAoQmxvY2tOdW1iZXJJc1ZhbGlkKGVycmluZm8tPmJsa25vKSkK IAkJCXsKIAkJCQlpZiAoT2Zmc2V0TnVtYmVySXNWYWxpZChlcnJpbmZvLT5vZmZudW0pKQpA QCAtMzMwNywxNiArMzM4MCwyMiBAQCB2YWN1dW1fZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJn KQogCQkJYnJlYWs7CiAKIAkJY2FzZSBWQUNVVU1fRVJSQ0JfUEhBU0VfVkFDVVVNX0lOREVY OgorCQkJaWYoZ2V0ZXJyZWxldmVsKCkgPj0gRVJST1IpCisJCQkJcGdzdGF0X3JlcG9ydF92 YWN1dW1fZXJyb3IoZXJyaW5mby0+aW5kb2lkLCBQR1NUQVRfRVhUVkFDX0lOREVYKTsKIAkJ CWVycmNvbnRleHQoIndoaWxlIHZhY3V1bWluZyBpbmRleCBcIiVzXCIgb2YgcmVsYXRpb24g XCIlcy4lc1wiIiwKIAkJCQkJICAgZXJyaW5mby0+aW5kbmFtZSwgZXJyaW5mby0+cmVsbmFt ZXNwYWNlLCBlcnJpbmZvLT5yZWxuYW1lKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgVkFDVVVN X0VSUkNCX1BIQVNFX0lOREVYX0NMRUFOVVA6CisJCQlpZihnZXRlcnJlbGV2ZWwoKSA+PSBF UlJPUikKKwkJCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1bV9lcnJvcihlcnJpbmZvLT5pbmRvaWQs IFBHU1RBVF9FWFRWQUNfSU5ERVgpOwogCQkJZXJyY29udGV4dCgid2hpbGUgY2xlYW5pbmcg dXAgaW5kZXggXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXMuJXNcIiIsCiAJCQkJCSAgIGVycmlu Zm8tPmluZG5hbWUsIGVycmluZm8tPnJlbG5hbWVzcGFjZSwgZXJyaW5mby0+cmVsbmFtZSk7 CiAJCQlicmVhazsKIAogCQljYXNlIFZBQ1VVTV9FUlJDQl9QSEFTRV9UUlVOQ0FURToKKwkJ CWlmKGdldGVycmVsZXZlbCgpID49IEVSUk9SKQorCQkJCXBnc3RhdF9yZXBvcnRfdmFjdXVt X2Vycm9yKGVycmluZm8tPnJlbG9pZCwgUEdTVEFUX0VYVFZBQ19IRUFQKTsKIAkJCWlmIChC bG9ja051bWJlcklzVmFsaWQoZXJyaW5mby0+Ymxrbm8pKQogCQkJCWVycmNvbnRleHQoIndo aWxlIHRydW5jYXRpbmcgcmVsYXRpb24gXCIlcy4lc1wiIHRvICV1IGJsb2NrcyIsCiAJCQkJ CQkgICBlcnJpbmZvLT5yZWxuYW1lc3BhY2UsIGVycmluZm8tPnJlbG5hbWUsIGVycmluZm8t PmJsa25vKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdz LnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAppbmRleCA2OGU2 YmZlNjExNS4uMDVmOGZjMDcxMDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv c3lzdGVtX3ZpZXdzLnNxbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3 cy5zcWwKQEAgLTE0MjUsMyArMTQyNSw0NCBAQCBXSEVSRQogICBkYi5kYXRuYW1lID0gY3Vy cmVudF9kYXRhYmFzZSgpIEFORAogICByZWwub2lkID0gc3RhdHMucmVsaWQgQU5ECiAgIG5z Lm9pZCA9IHJlbC5yZWxuYW1lc3BhY2U7CisKK0NSRUFURSBWSUVXIHBnX3N0YXRfdmFjdXVt X2luZGV4ZXMgQVMKK1NFTEVDVAorICByZWwub2lkIGFzIHJlbGlkLAorICBucy5uc3BuYW1l IEFTICJzY2hlbWEiLAorICByZWwucmVsbmFtZSBBUyByZWxuYW1lLAorCisgIHN0YXRzLnRv dGFsX2Jsa3NfcmVhZCwKKyAgc3RhdHMudG90YWxfYmxrc19oaXQsCisgIHN0YXRzLnRvdGFs X2Jsa3NfZGlydGllZCwKKyAgc3RhdHMudG90YWxfYmxrc193cml0dGVuLAorCisgIHN0YXRz LnJlbF9ibGtzX3JlYWQsCisgIHN0YXRzLnJlbF9ibGtzX2hpdCwKKworICBzdGF0cy5wYWdl c19kZWxldGVkLAorICBzdGF0cy50dXBsZXNfZGVsZXRlZCwKKworICBzdGF0cy53YWxfcmVj b3JkcywKKyAgc3RhdHMud2FsX2ZwaSwKKyAgc3RhdHMud2FsX2J5dGVzLAorCisgIHN0YXRz LmJsa19yZWFkX3RpbWUsCisgIHN0YXRzLmJsa193cml0ZV90aW1lLAorCisgIHN0YXRzLmRl bGF5X3RpbWUsCisgIHN0YXRzLnN5c3RlbV90aW1lLAorICBzdGF0cy51c2VyX3RpbWUsCisg IHN0YXRzLnRvdGFsX3RpbWUsCisKKyAgc3RhdHMuaW50ZXJydXB0cworRlJPTQorICBwZ19k YXRhYmFzZSBkYiwKKyAgcGdfY2xhc3MgcmVsLAorICBwZ19uYW1lc3BhY2UgbnMsCisgIHBn X3N0YXRfdmFjdXVtX2luZGV4ZXMoZGIub2lkLCByZWwub2lkKSBzdGF0cworV0hFUkUKKyAg ZGIuZGF0bmFtZSA9IGN1cnJlbnRfZGF0YWJhc2UoKSBBTkQKKyAgcmVsLm9pZCA9IHN0YXRz LnJlbGlkIEFORAorICBucy5vaWQgPSByZWwucmVsbmFtZXNwYWNlOworCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXQuYyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FjdGl2aXR5L3Bnc3RhdC5jCmluZGV4IDZhNzg4ZjJiNTg2Li43NTg5MGIxODk4OCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKQEAgLTgyNCwxNyArODI0LDMz IEBAIHBnc3RhdF9hY2N1bXVsYXRlX2V4dHZhY19zdGF0cyhFeHRWYWNSZXBvcnQgKmRzdCwg RXh0VmFjUmVwb3J0ICpzcmMsCiAJaWYgKCFhY2N1bXVsYXRlX3JlbHR5cGVfc3BlY2lmaWNf aW5mbykKIAkJcmV0dXJuOwogCi0JZHN0LT5ibGtzX2ZldGNoZWQgKz0gc3JjLT5ibGtzX2Zl dGNoZWQ7Ci0JZHN0LT5ibGtzX2hpdCArPSBzcmMtPmJsa3NfaGl0OwotCi0JZHN0LT5wYWdl c19zY2FubmVkICs9IHNyYy0+cGFnZXNfc2Nhbm5lZDsKLQlkc3QtPnBhZ2VzX3JlbW92ZWQg Kz0gc3JjLT5wYWdlc19yZW1vdmVkOwotCWRzdC0+cGFnZXNfZnJvemVuICs9IHNyYy0+cGFn ZXNfZnJvemVuOwotCWRzdC0+cGFnZXNfYWxsX3Zpc2libGUgKz0gc3JjLT5wYWdlc19hbGxf dmlzaWJsZTsKLQlkc3QtPnR1cGxlc19kZWxldGVkICs9IHNyYy0+dHVwbGVzX2RlbGV0ZWQ7 Ci0JZHN0LT50dXBsZXNfZnJvemVuICs9IHNyYy0+dHVwbGVzX2Zyb3plbjsKLQlkc3QtPmRl YWRfdHVwbGVzICs9IHNyYy0+ZGVhZF90dXBsZXM7Ci0JZHN0LT5pbmRleF92YWN1dW1fY291 bnQgKz0gc3JjLT5pbmRleF92YWN1dW1fY291bnQ7CisJaWYgKGRzdC0+dHlwZSA9PSBQR1NU QVRfRVhUVkFDX0lOVkFMSUQpCisJCWRzdC0+dHlwZSA9IHNyYy0+dHlwZTsKKworCUFzc2Vy dChzcmMtPnR5cGUgPT0gUEdTVEFUX0VYVFZBQ19JTlZBTElEIHx8IHNyYy0+dHlwZSA9PSBk c3QtPnR5cGUpOworCisJaWYgKGRzdC0+dHlwZSA9PSBzcmMtPnR5cGUpCisJeworCQlkc3Qt PmJsa3NfZmV0Y2hlZCArPSBzcmMtPmJsa3NfZmV0Y2hlZDsKKwkJZHN0LT5ibGtzX2hpdCAr PSBzcmMtPmJsa3NfaGl0OworCisJCWlmIChkc3QtPnR5cGUgPT0gUEdTVEFUX0VYVFZBQ19I RUFQKQorCQl7CisJCQlkc3QtPmhlYXAucGFnZXNfc2Nhbm5lZCArPSBzcmMtPmhlYXAucGFn ZXNfc2Nhbm5lZDsKKwkJCWRzdC0+aGVhcC5wYWdlc19yZW1vdmVkICs9IHNyYy0+aGVhcC5w YWdlc19yZW1vdmVkOworCQkJZHN0LT5oZWFwLnBhZ2VzX2Zyb3plbiArPSBzcmMtPmhlYXAu cGFnZXNfZnJvemVuOworCQkJZHN0LT5oZWFwLnBhZ2VzX2FsbF92aXNpYmxlICs9IHNyYy0+ aGVhcC5wYWdlc19hbGxfdmlzaWJsZTsKKwkJCWRzdC0+aGVhcC50dXBsZXNfZGVsZXRlZCAr PSBzcmMtPmhlYXAudHVwbGVzX2RlbGV0ZWQ7CisJCQlkc3QtPmhlYXAudHVwbGVzX2Zyb3pl biArPSBzcmMtPmhlYXAudHVwbGVzX2Zyb3plbjsKKwkJCWRzdC0+aGVhcC5kZWFkX3R1cGxl cyArPSBzcmMtPmhlYXAuZGVhZF90dXBsZXM7CisJCQlkc3QtPmhlYXAuaW5kZXhfdmFjdXVt X2NvdW50ICs9IHNyYy0+aGVhcC5pbmRleF92YWN1dW1fY291bnQ7CisJCX0KKwkJZWxzZSBp ZiAoZHN0LT50eXBlID09IFBHU1RBVF9FWFRWQUNfSU5ERVgpCisJCXsKKwkJCWRzdC0+aW5k ZXgucGFnZXNfZGVsZXRlZCArPSBzcmMtPmluZGV4LnBhZ2VzX2RlbGV0ZWQ7CisJCQlkc3Qt PmluZGV4LnR1cGxlc19kZWxldGVkICs9IHNyYy0+aW5kZXgudHVwbGVzX2RlbGV0ZWQ7CisJ CX0KKwl9CiB9CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTA4MSw3ICsxMDk3LDggQEAgcGdzdGF0X3Vw ZGF0ZV9zbmFwc2hvdChQZ1N0YXRfS2luZCBraW5kKQogCVBHX1RSWSgpOwogCXsKIAkJcGdz dGF0X2ZldGNoX2NvbnNpc3RlbmN5ID0gUEdTVEFUX0ZFVENIX0NPTlNJU1RFTkNZX1NOQVBT SE9UOwotCQlwZ3N0YXRfYnVpbGRfc25hcHNob3QoUEdTVEFUX0tJTkRfUkVMQVRJT04pOwor CQlpZiAoa2luZCA9PSBQR1NUQVRfS0lORF9SRUxBVElPTikKKwkJCXBnc3RhdF9idWlsZF9z bmFwc2hvdChQR1NUQVRfS0lORF9SRUxBVElPTik7CiAJfQogCVBHX0ZJTkFMTFkoKTsKIAl7 CkBAIC0xMTM2LDYgKzExNTMsMTAgQEAgcGdzdGF0X2J1aWxkX3NuYXBzaG90KFBnU3RhdF9L aW5kIHN0YXRLaW5kKQogCQlpZiAocC0+ZHJvcHBlZCkKIAkJCWNvbnRpbnVlOwogCisJCWlm IChzdGF0S2luZCAhPSBQR1NUQVRfS0lORF9JTlZBTElEICYmIHN0YXRLaW5kICE9IHAtPmtl eS5raW5kKQorCQkJLyogTG9hZCBzdGF0IG9mIHNwZWNpZmljIHR5cGUsIGlmIGRlZmluZWQg Ki8KKwkJCWNvbnRpbnVlOworCiAJCUFzc2VydChwZ19hdG9taWNfcmVhZF91MzIoJnAtPnJl ZmNvdW50KSA+IDApOwogCiAJCXN0YXRzX2RhdGEgPSBkc2FfZ2V0X2FkZHJlc3MocGdTdGF0 TG9jYWwuZHNhLCBwLT5ib2R5KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fj dGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkv cGdzdGF0X3JlbGF0aW9uLmMKaW5kZXggZDQwZDQzY2RiNGEuLjViMDZiMDRmYWFkIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYwpAQCAt MjExLDcgKzIxMSw3IEBAIHBnc3RhdF9kcm9wX3JlbGF0aW9uKFJlbGF0aW9uIHJlbCkKICAq IC0tLS0tLS0tLQogICovCiB2b2lkCi1wZ3N0YXRfcmVwb3J0X3ZhY3V1bV9lcnJvcihPaWQg dGFibGVvaWQpCitwZ3N0YXRfcmVwb3J0X3ZhY3V1bV9lcnJvcihPaWQgdGFibGVvaWQsIEV4 dFZhY1JlcG9ydFR5cGUgbV90eXBlKQogewogCVBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVm OwogCVBnU3RhdFNoYXJlZF9SZWxhdGlvbiAqc2h0YWJlbnRyeTsKQEAgLTIyOCw2ICsyMjgs NyBAQCBwZ3N0YXRfcmVwb3J0X3ZhY3V1bV9lcnJvcihPaWQgdGFibGVvaWQpCiAJdGFiZW50 cnkgPSAmc2h0YWJlbnRyeS0+c3RhdHM7CiAKIAl0YWJlbnRyeS0+dmFjdXVtX2V4dC5pbnRl cnJ1cHRzKys7CisJdGFiZW50cnktPnZhY3V1bV9leHQudHlwZSA9IG1fdHlwZTsKIAlwZ3N0 YXRfdW5sb2NrX2VudHJ5KGVudHJ5X3JlZik7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bn c3RhdGZ1bmNzLmMKaW5kZXggZjk0ZTU2MjAwOWQuLmI4NjhiOTE3Y2ViIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwpAQCAtMjAzNSw2ICsyMDM1LDggQEAgcGdfc3Rh dF9oYXZlX3N0YXRzKFBHX0ZVTkNUSU9OX0FSR1MpCiB9CiAKICNkZWZpbmUgRVhUVkFDSEVB UFNUQVRfQ09MVU1OUwkyNworI2RlZmluZSBFWFRWQUNJRFhTVEFUX0NPTFVNTlMJMTkKKyNk ZWZpbmUgRVhUVkFDU1RBVF9DT0xVTU5TIE1heChFWFRWQUNIRUFQU1RBVF9DT0xVTU5TLCBF WFRWQUNJRFhTVEFUX0NPTFVNTlMpCiAKIHN0YXRpYyBPaWQgQ3VycmVudERhdGFiYXNlSWQg PSBJbnZhbGlkT2lkOwogCkBAIC0yMDc4LDEyICsyMDgwLDEyIEBAIHN0YXRpYyB2b2lkCiB0 dXBsZXN0b3JlX3B1dF9mb3JfcmVsYXRpb24oT2lkIHJlbGlkLCBUdXBsZXN0b3Jlc3RhdGUg KnR1cHN0b3JlLAogCQkJICAgVHVwbGVEZXNjIHR1cGRlc2MsIFBnU3RhdF9TdGF0VGFiRW50 cnkgKnRhYmVudHJ5LCBpbnQgbmNvbHVtbnMpCiB7Ci0JRGF0dW0JCXZhbHVlc1tFWFRWQUNI RUFQU1RBVF9DT0xVTU5TXTsKLQlib29sCQludWxsc1tFWFRWQUNIRUFQU1RBVF9DT0xVTU5T XTsKKwlEYXR1bQkJdmFsdWVzW0VYVFZBQ1NUQVRfQ09MVU1OU107CisJYm9vbAkJbnVsbHNb RVhUVkFDU1RBVF9DT0xVTU5TXTsKIAljaGFyCQlidWZbMjU2XTsKIAlpbnQJCQlpID0gMDsK IAotCW1lbXNldChudWxscywgMCwgRVhUVkFDSEVBUFNUQVRfQ09MVU1OUyAqIHNpemVvZihi b29sKSk7CisJbWVtc2V0KG51bGxzLCAwLCBFWFRWQUNTVEFUX0NPTFVNTlMgKiBzaXplb2Yo Ym9vbCkpOwogCiAJdmFsdWVzW2krK10gPSBPYmplY3RJZEdldERhdHVtKHJlbGlkKTsKIApA QCAtMjA5NiwxNiArMjA5OCwyNSBAQCB0dXBsZXN0b3JlX3B1dF9mb3JfcmVsYXRpb24oT2lk IHJlbGlkLCBUdXBsZXN0b3Jlc3RhdGUgKnR1cHN0b3JlLAogCQkJCQkJCQkJdGFiZW50cnkt PnZhY3V1bV9leHQuYmxrc19oaXQpOwogCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bSh0 YWJlbnRyeS0+dmFjdXVtX2V4dC5ibGtzX2hpdCk7CiAKLQl2YWx1ZXNbaSsrXSA9IEludDY0 R2V0RGF0dW0odGFiZW50cnktPnZhY3V1bV9leHQucGFnZXNfc2Nhbm5lZCk7Ci0JdmFsdWVz W2krK10gPSBJbnQ2NEdldERhdHVtKHRhYmVudHJ5LT52YWN1dW1fZXh0LnBhZ2VzX3JlbW92 ZWQpOwotCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bSh0YWJlbnRyeS0+dmFjdXVtX2V4 dC5wYWdlc19mcm96ZW4pOwotCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bSh0YWJlbnRy eS0+dmFjdXVtX2V4dC5wYWdlc19hbGxfdmlzaWJsZSk7Ci0JdmFsdWVzW2krK10gPSBJbnQ2 NEdldERhdHVtKHRhYmVudHJ5LT52YWN1dW1fZXh0LnR1cGxlc19kZWxldGVkKTsKLQl2YWx1 ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0odGFiZW50cnktPnZhY3V1bV9leHQudHVwbGVzX2Zy b3plbik7Ci0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKHRhYmVudHJ5LT52YWN1dW1f ZXh0LmRlYWRfdHVwbGVzKTsKLQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0odGFiZW50 cnktPnZhY3V1bV9leHQuaW5kZXhfdmFjdXVtX2NvdW50KTsKLQl2YWx1ZXNbaSsrXSA9IElu dDY0R2V0RGF0dW0odGFiZW50cnktPnJldl9hbGxfZnJvemVuX3BhZ2VzKTsKLQl2YWx1ZXNb aSsrXSA9IEludDY0R2V0RGF0dW0odGFiZW50cnktPnJldl9hbGxfdmlzaWJsZV9wYWdlcyk7 CisJaWYgKHRhYmVudHJ5LT52YWN1dW1fZXh0LnR5cGUgPT0gUEdTVEFUX0VYVFZBQ19IRUFQ KQorCXsKKwkJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKHRhYmVudHJ5LT52YWN1dW1f ZXh0LmhlYXAucGFnZXNfc2Nhbm5lZCk7CisJCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1 bSh0YWJlbnRyeS0+dmFjdXVtX2V4dC5oZWFwLnBhZ2VzX3JlbW92ZWQpOworCQl2YWx1ZXNb aSsrXSA9IEludDY0R2V0RGF0dW0odGFiZW50cnktPnZhY3V1bV9leHQuaGVhcC5wYWdlc19m cm96ZW4pOworCQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0odGFiZW50cnktPnZhY3V1 bV9leHQuaGVhcC5wYWdlc19hbGxfdmlzaWJsZSk7CisJCXZhbHVlc1tpKytdID0gSW50NjRH ZXREYXR1bSh0YWJlbnRyeS0+dmFjdXVtX2V4dC5oZWFwLnR1cGxlc19kZWxldGVkKTsKKwkJ dmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKHRhYmVudHJ5LT52YWN1dW1fZXh0LmhlYXAu dHVwbGVzX2Zyb3plbik7CisJCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bSh0YWJlbnRy eS0+dmFjdXVtX2V4dC5oZWFwLmRlYWRfdHVwbGVzKTsKKwkJdmFsdWVzW2krK10gPSBJbnQ2 NEdldERhdHVtKHRhYmVudHJ5LT52YWN1dW1fZXh0LmhlYXAuaW5kZXhfdmFjdXVtX2NvdW50 KTsKKwkJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKHRhYmVudHJ5LT5yZXZfYWxsX2Zy b3plbl9wYWdlcyk7CisJCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bSh0YWJlbnRyeS0+ cmV2X2FsbF92aXNpYmxlX3BhZ2VzKTsKKworCX0KKwllbHNlIGlmICh0YWJlbnRyeS0+dmFj dXVtX2V4dC50eXBlID09IFBHU1RBVF9FWFRWQUNfSU5ERVgpCisJeworCQl2YWx1ZXNbaSsr XSA9IEludDY0R2V0RGF0dW0odGFiZW50cnktPnZhY3V1bV9leHQuaW5kZXgucGFnZXNfZGVs ZXRlZCk7CisJCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bSh0YWJlbnRyeS0+dmFjdXVt X2V4dC5pbmRleC50dXBsZXNfZGVsZXRlZCk7CisJfQogCiAJdmFsdWVzW2krK10gPSBJbnQ2 NEdldERhdHVtKHRhYmVudHJ5LT52YWN1dW1fZXh0LndhbF9yZWNvcmRzKTsKIAl2YWx1ZXNb aSsrXSA9IEludDY0R2V0RGF0dW0odGFiZW50cnktPnZhY3V1bV9leHQud2FsX2ZwaSk7CkBA IC0yMTM0LDcgKzIxNDUsNyBAQCB0dXBsZXN0b3JlX3B1dF9mb3JfcmVsYXRpb24oT2lkIHJl bGlkLCBUdXBsZXN0b3Jlc3RhdGUgKnR1cHN0b3JlLAogICogR2V0IHRoZSB2YWN1dW0gc3Rh dGlzdGljcyBmb3IgdGhlIGhlYXAgdGFibGVzIG9yIGluZGV4ZXMuCiAgKi8KIHN0YXRpYyBE YXR1bQotcGdfc3RhdHNfdmFjdXVtKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBpbnQgbmNv bHVtbnMpCitwZ19zdGF0c192YWN1dW0oRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIEV4dFZh Y1JlcG9ydFR5cGUgdHlwZSwgaW50IG5jb2x1bW5zKQogewogCVJldHVyblNldEluZm8JCSAg ICpyc2luZm8gPSAoUmV0dXJuU2V0SW5mbyAqKSBmY2luZm8tPnJlc3VsdGluZm87CiAJTWVt b3J5Q29udGV4dAkJCXBlcl9xdWVyeV9jdHg7CkBAIC0yMTQyLDcgKzIxNTMsNiBAQCBwZ19z dGF0c192YWN1dW0oRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGludCBuY29sdW1ucykKIAlU dXBsZXN0b3Jlc3RhdGUJCSAgICp0dXBzdG9yZTsKIAlUdXBsZURlc2MJCQkJdHVwZGVzYzsK IAlPaWQJCQkJCQlkYmlkID0gUEdfR0VUQVJHX09JRCgwKTsKLQlPaWQJCQkJCQlyZWxpZCA9 IFBHX0dFVEFSR19PSUQoMSk7CiAJUGdTdGF0X1N0YXRUYWJFbnRyeSAgICAqdGFiZW50cnk7 CiAKIAlJbml0TWF0ZXJpYWxpemVkU1JGKGZjaW5mbywgMCk7CkBAIC0yMTY5LDQwICsyMTc5 LDQ1IEBAIHBnX3N0YXRzX3ZhY3V1bShGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgaW50IG5j b2x1bW5zKQogCiAJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOwogCi0JLyog TG9hZCB0YWJsZSBzdGF0aXN0aWNzIGZvciBzcGVjaWZpZWQgZGF0YWJhc2UuICovCi0JaWYg KE9pZElzVmFsaWQocmVsaWQpKQorCWlmICh0eXBlID09IFBHU1RBVF9FWFRWQUNfSU5ERVgg fHwgdHlwZSA9PSBQR1NUQVRfRVhUVkFDX0hFQVApCiAJewotCQl0YWJlbnRyeSA9IGZldGNo X2Ric3RhdF90YWJlbnRyeShkYmlkLCByZWxpZCk7Ci0JCWlmICh0YWJlbnRyeSA9PSBOVUxM KQotCQkJLyogVGFibGUgZG9uJ3QgZXhpc3RzIG9yIGlzbid0IGFuIGhlYXAgcmVsYXRpb24u ICovCi0JCQlQR19SRVRVUk5fTlVMTCgpOworCQlPaWQJCQkJCXJlbGlkID0gUEdfR0VUQVJH X09JRCgxKTsKIAotCQl0dXBsZXN0b3JlX3B1dF9mb3JfcmVsYXRpb24ocmVsaWQsIHR1cHN0 b3JlLCB0dXBkZXNjLCB0YWJlbnRyeSwgbmNvbHVtbnMpOwotCX0KLQllbHNlCi0JewotCQlT bmFwc2hvdEl0ZXJhdG9yCQloYXNoaXRlcjsKLQkJUGdTdGF0X1NuYXBzaG90RW50cnkgICAq ZW50cnk7Ci0JCU9pZAkJCQkJCXN0b3JlZE15RGF0YWJhc2VJZCA9IE15RGF0YWJhc2VJZDsK KwkJLyogTG9hZCB0YWJsZSBzdGF0aXN0aWNzIGZvciBzcGVjaWZpZWQgZGF0YWJhc2UuICov CisJCWlmIChPaWRJc1ZhbGlkKHJlbGlkKSkKKwkJeworCQkJdGFiZW50cnkgPSBmZXRjaF9k YnN0YXRfdGFiZW50cnkoZGJpZCwgcmVsaWQpOworCQkJaWYgKHRhYmVudHJ5ID09IE5VTEwg fHwgdGFiZW50cnktPnZhY3V1bV9leHQudHlwZSAhPSB0eXBlKQorCQkJCS8qIFRhYmxlIGRv bid0IGV4aXN0cyBvciBpc24ndCBhbiBoZWFwIHJlbGF0aW9uLiAqLworCQkJCVBHX1JFVFVS Tl9OVUxMKCk7CiAKLQkJcGdzdGF0X3VwZGF0ZV9zbmFwc2hvdChQR1NUQVRfS0lORF9SRUxB VElPTik7Ci0JCU15RGF0YWJhc2VJZCA9IHN0b3JlZE15RGF0YWJhc2VJZDsKKwkJCXR1cGxl c3RvcmVfcHV0X2Zvcl9yZWxhdGlvbihyZWxpZCwgdHVwc3RvcmUsIHR1cGRlc2MsIHRhYmVu dHJ5LCBuY29sdW1ucyk7CisJCX0KKwkJZWxzZQorCQl7CisJCQlTbmFwc2hvdEl0ZXJhdG9y CQloYXNoaXRlcjsKKwkJCVBnU3RhdF9TbmFwc2hvdEVudHJ5ICAgKmVudHJ5OworCQkJT2lk CQkJCQkJc3RvcmVkTXlEYXRhYmFzZUlkID0gTXlEYXRhYmFzZUlkOwogCisJCQlwZ3N0YXRf dXBkYXRlX3NuYXBzaG90KFBHU1RBVF9LSU5EX1JFTEFUSU9OKTsKKwkJCU15RGF0YWJhc2VJ ZCA9IHN0b3JlZE15RGF0YWJhc2VJZDsKIAotCQkvKiBJdGVyYXRlIHRoZSBzbmFwc2hvdCAq LwotCQlJbml0U25hcHNob3RJdGVyYXRvcihwZ1N0YXRMb2NhbC5zbmFwc2hvdC5zdGF0cywg Jmhhc2hpdGVyKTsKIAotCQl3aGlsZSAoKGVudHJ5ID0gU2NhblN0YXRTbmFwc2hvdChwZ1N0 YXRMb2NhbC5zbmFwc2hvdC5zdGF0cywgJmhhc2hpdGVyKSkgIT0gTlVMTCkKLQkJewotCQkJ T2lkCXJlbG9pZDsKKwkJCS8qIEl0ZXJhdGUgdGhlIHNuYXBzaG90ICovCisJCQlJbml0U25h cHNob3RJdGVyYXRvcihwZ1N0YXRMb2NhbC5zbmFwc2hvdC5zdGF0cywgJmhhc2hpdGVyKTsK KworCQkJd2hpbGUgKChlbnRyeSA9IFNjYW5TdGF0U25hcHNob3QocGdTdGF0TG9jYWwuc25h cHNob3Quc3RhdHMsICZoYXNoaXRlcikpICE9IE5VTEwpCisJCQl7CisJCQkJT2lkCXJlbG9p ZDsKIAotCQkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKKwkJCQlDSEVDS19GT1JfSU5URVJS VVBUUygpOwogCi0JCQl0YWJlbnRyeSA9IChQZ1N0YXRfU3RhdFRhYkVudHJ5ICopIGVudHJ5 LT5kYXRhOwotCQkJcmVsb2lkID0gZW50cnktPmtleS5vYmpvaWQ7CisJCQkJdGFiZW50cnkg PSAoUGdTdGF0X1N0YXRUYWJFbnRyeSAqKSBlbnRyeS0+ZGF0YTsKKwkJCQlyZWxvaWQgPSBl bnRyeS0+a2V5Lm9iam9pZDsKIAotCQkJaWYgKHRhYmVudHJ5ICE9IE5VTEwpCi0JCQkJdHVw bGVzdG9yZV9wdXRfZm9yX3JlbGF0aW9uKHJlbG9pZCwgdHVwc3RvcmUsIHR1cGRlc2MsIHRh YmVudHJ5LCBuY29sdW1ucyk7CisJCQkJaWYgKHRhYmVudHJ5ICE9IE5VTEwgJiYgdGFiZW50 cnktPnZhY3V1bV9leHQudHlwZSA9PSB0eXBlKQorCQkJCQl0dXBsZXN0b3JlX3B1dF9mb3Jf cmVsYXRpb24ocmVsb2lkLCB0dXBzdG9yZSwgdHVwZGVzYywgdGFiZW50cnksIG5jb2x1bW5z KTsKKwkJCX0KIAkJfQogCX0KIAlQR19SRVRVUk5fTlVMTCgpOwpAQCAtMjIxNCw3ICsyMjI5 LDE4IEBAIHBnX3N0YXRzX3ZhY3V1bShGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgaW50IG5j b2x1bW5zKQogRGF0dW0KIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyhQR19GVU5DVElPTl9BUkdT KQogewotCXJldHVybiBwZ19zdGF0c192YWN1dW0oZmNpbmZvLCBFWFRWQUNIRUFQU1RBVF9D T0xVTU5TKTsKKwlyZXR1cm4gcGdfc3RhdHNfdmFjdXVtKGZjaW5mbywgUEdTVEFUX0VYVFZB Q19IRUFQLCBFWFRWQUNIRUFQU1RBVF9DT0xVTU5TKTsKKworCVBHX1JFVFVSTl9OVUxMKCk7 Cit9CisKKy8qCisgKiBHZXQgdGhlIHZhY3V1bSBzdGF0aXN0aWNzIGZvciB0aGUgaW5kZXhl cy4KKyAqLworRGF0dW0KK3BnX3N0YXRfdmFjdXVtX2luZGV4ZXMoUEdfRlVOQ1RJT05fQVJH UykKK3sKKwlyZXR1cm4gcGdfc3RhdHNfdmFjdXVtKGZjaW5mbywgUEdTVEFUX0VYVFZBQ19J TkRFWCwgRVhUVkFDSURYU1RBVF9DT0xVTU5TKTsKIAogCVBHX1JFVFVSTl9OVUxMKCk7CiB9 CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA0NDNjNGVjNjVkMy4uMmU4MGEyNTAy Y2MgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTIyNjMsNCArMTIyNjMsMTMg QEAKICAgcHJvYXJnbW9kZXMgPT4gJ3tpLGksbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxv LG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG99JywKICAgcHJvYXJnbmFtZXMgPT4gJ3tkYm9p ZCxyZWxvaWQscmVsaWQsdG90YWxfYmxrc19yZWFkLHRvdGFsX2Jsa3NfaGl0LHRvdGFsX2Js a3NfZGlydGllZCx0b3RhbF9ibGtzX3dyaXR0ZW4scmVsX2Jsa3NfcmVhZCxyZWxfYmxrc19o aXQscGFnZXNfc2Nhbm5lZCxwYWdlc19yZW1vdmVkLHBhZ2VzX2Zyb3plbixwYWdlc19hbGxf dmlzaWJsZSx0dXBsZXNfZGVsZXRlZCx0dXBsZXNfZnJvemVuLGRlYWRfdHVwbGVzLGluZGV4 X3ZhY3V1bV9jb3VudCxyZXZfYWxsX2Zyb3plbl9wYWdlcyxyZXZfYWxsX3Zpc2libGVfcGFn ZXMsd2FsX3JlY29yZHMsd2FsX2ZwaSx3YWxfYnl0ZXMsYmxrX3JlYWRfdGltZSxibGtfd3Jp dGVfdGltZSxkZWxheV90aW1lLHN5c3RlbV90aW1lLHVzZXJfdGltZSx0b3RhbF90aW1lLGlu dGVycnVwdHN9JywKICAgcHJvc3JjID0+ICdwZ19zdGF0X3ZhY3V1bV90YWJsZXMnIH0sCit7 IG9pZCA9PiAnODAwMicsCisgIGRlc2NyID0+ICdwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIHJl dHVybiBzdGF0cyB2YWx1ZXMnLAorICBwcm9uYW1lID0+ICdwZ19zdGF0X3ZhY3V1bV9pbmRl eGVzJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLHByb2lz c3RyaWN0ID0+ICdmJywKKyAgcHJvcmV0c2V0ID0+ICd0JywKKyAgcHJvYXJndHlwZXMgPT4g J29pZCBvaWQnLAorICBwcm9hbGxhcmd0eXBlcyA9PiAne29pZCxvaWQsb2lkLGludDgsaW50 OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsbnVtZXJpYyxmbG9h dDgsZmxvYXQ4LGZsb2F0OCxmbG9hdDgsZmxvYXQ4LGZsb2F0OCxpbnQ0fScsCisgIHByb2Fy Z21vZGVzID0+ICd7aSxpLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG99 JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tkYm9pZCxyZWxvaWQscmVsaWQsdG90YWxfYmxrc19y ZWFkLHRvdGFsX2Jsa3NfaGl0LHRvdGFsX2Jsa3NfZGlydGllZCx0b3RhbF9ibGtzX3dyaXR0 ZW4scmVsX2Jsa3NfcmVhZCxyZWxfYmxrc19oaXQscGFnZXNfZGVsZXRlZCx0dXBsZXNfZGVs ZXRlZCx3YWxfcmVjb3Jkcyx3YWxfZnBpLHdhbF9ieXRlcyxibGtfcmVhZF90aW1lLGJsa193 cml0ZV90aW1lLGRlbGF5X3RpbWUsc3lzdGVtX3RpbWUsdXNlcl90aW1lLHRvdGFsX3RpbWUs aW50ZXJydXB0c30nLAorICBwcm9zcmMgPT4gJ3BnX3N0YXRfdmFjdXVtX2luZGV4ZXMnIH0K IF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5oIGIvc3JjL2luY2x1ZGUvcGdz dGF0LmgKaW5kZXggNDQ5MmEwNTcyYzYuLjc2MmI1M2I4OGVkIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9wZ3N0YXQuaAorKysgYi9zcmMvaW5jbHVkZS9wZ3N0YXQuaApAQCAtMTY3LDEx ICsxNjcsMjAgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X0JhY2tlbmRTdWJFbnRyeQogCVBn U3RhdF9Db3VudGVyIHN5bmNfZXJyb3JfY291bnQ7CiB9IFBnU3RhdF9CYWNrZW5kU3ViRW50 cnk7CiAKKworLyogVHlwZSBvZiBFeHRWYWNSZXBvcnQgKi8KK3R5cGVkZWYgZW51bSBFeHRW YWNSZXBvcnRUeXBlCit7CisJUEdTVEFUX0VYVFZBQ19JTlZBTElEID0gMCwKKwlQR1NUQVRf RVhUVkFDX0hFQVAgPSAxLAorCVBHU1RBVF9FWFRWQUNfSU5ERVggPSAyCit9IEV4dFZhY1Jl cG9ydFR5cGU7CisKIC8qIC0tLS0tLS0tLS0KICAqCiAgKiBFeHRWYWNSZXBvcnQKICAqCi0g KiBBZGRpdGlvbmFsIHN0YXRpc3RpY3Mgb2YgdmFjdXVtIHByb2Nlc3Npbmcgb3ZlciBhIGhl YXAgcmVsYXRpb24uCisgKiBBZGRpdGlvbmFsIHN0YXRpc3RpY3Mgb2YgdmFjdXVtIHByb2Nl c3Npbmcgb3ZlciBhIHJlbGF0aW9uLgogICogcGFnZXNfcmVtb3ZlZCBpcyB0aGUgYW1vdW50 IGJ5IHdoaWNoIHRoZSBwaHlzaWNhbGx5IHNocmFuaywKICAqIGlmIGFueSAoaWUgdGhlIGNo YW5nZSBpbiBpdHMgdG90YWwgc2l6ZSBvbiBkaXNrKQogICogcGFnZXNfZGVsZXRlZCByZWZl ciB0byBmcmVlIHNwYWNlIHdpdGhpbiB0aGUgaW5kZXggZmlsZQpAQCAtMjAzLDE0ICsyMTIs MzggQEAgdHlwZWRlZiBzdHJ1Y3QgRXh0VmFjUmVwb3J0CiAJLyogSW50ZXJydXB0aW9ucyBv biBhbnkgZXJyb3JzLiAqLwogCWludDMyCQlpbnRlcnJ1cHRzOwogCi0JaW50NjQJCXBhZ2Vz X3NjYW5uZWQ7CQkvKiBudW1iZXIgb2YgcGFnZXMgd2UgZXhhbWluZWQgKi8KLQlpbnQ2NAkJ cGFnZXNfcmVtb3ZlZDsJCS8qIG51bWJlciBvZiBwYWdlcyByZW1vdmVkIGJ5IHZhY3V1bSAq LwotCWludDY0CQlwYWdlc19mcm96ZW47CQkvKiBudW1iZXIgb2YgcGFnZXMgbWFya2VkIGlu IFZNIGFzIGZyb3plbiAqLwotCWludDY0CQlwYWdlc19hbGxfdmlzaWJsZTsJLyogbnVtYmVy IG9mIHBhZ2VzIG1hcmtlZCBpbiBWTSBhcyBhbGwtdmlzaWJsZSAqLwotCWludDY0CQl0dXBs ZXNfZGVsZXRlZDsJCS8qIHR1cGxlcyBkZWxldGVkIGJ5IHZhY3V1bSAqLwotCWludDY0CQl0 dXBsZXNfZnJvemVuOwkJLyogdHVwbGVzIGZyb3plbiB1cCBieSB2YWN1dW0gKi8KLQlpbnQ2 NAkJZGVhZF90dXBsZXM7CQkvKiBudW1iZXIgb2YgZGVsZXRlZCB0dXBsZXMgd2hpY2ggdmFj dXVtIGNhbm5vdCBjbGVhbiB1cCBieSB2YWN1dW0gb3BlcmF0aW9uICovCi0JaW50NjQJCWlu ZGV4X3ZhY3V1bV9jb3VudDsJLyogbnVtYmVyIG9mIGluZGV4IHZhY3V1bWluZ3MgKi8KKwlF eHRWYWNSZXBvcnRUeXBlIHR5cGU7CQkvKiBoZWFwLCBpbmRleCwgZXRjLiAqLworCisJLyog LS0tLS0tLS0tLQorCSAqCisJICogVGhlcmUgYXJlIHNlcGFyYXRlIG1ldHJpY3Mgb2Ygc3Rh dGlzdGljIGZvciB0YWJsZXMgYW5kIGluZGV4ZXMsCisJICogd2hpY2ggY29sbGVjdCBkdXJp bmcgdmFjdXVtLgorCSAqIFRoZSB1bmlvbiBvcGVyYXRvciBhbGxvd3MgdG8gY29tYmluZSB0 aGVzZSBzdGF0aXN0aWNzCisJICogc28gdGhhdCBlYWNoIG1ldHJpYyBpcyBhc3NpZ25lZCB0 byBhIHNwZWNpZmljIGNsYXNzIG9mIGNvbGxlY3RlZCBzdGF0aXN0aWNzLgorCSAqIFN1Y2gg YSBjb21iaW5lZCBzdHJ1Y3R1cmUgd2FzIGNhbGxlZCBwZXJfdHlwZV9zdGF0cy4KKwkgKiBU aGUgbmFtZSBvZiB0aGUgc3RydWN0dXJlIGl0c2VsZiBpcyBub3QgdXNlZCBhbnl3aGVyZSwK KwkgKiBpdCBleGlzdHMgb25seSBmb3IgdW5kZXJzdGFuZGluZyB0aGUgY29kZS4KKwkgKiAt LS0tLS0tLS0tCisJKi8KKwl1bmlvbgorCXsKKwkJc3RydWN0CisJCXsKKwkJCWludDY0CQlw YWdlc19zY2FubmVkOwkJLyogbnVtYmVyIG9mIHBhZ2VzIHdlIGV4YW1pbmVkICovCisJCQlp bnQ2NAkJcGFnZXNfcmVtb3ZlZDsJCS8qIG51bWJlciBvZiBwYWdlcyByZW1vdmVkIGJ5IHZh Y3V1bSAqLworCQkJaW50NjQJCXBhZ2VzX2Zyb3plbjsJCS8qIG51bWJlciBvZiBwYWdlcyBt YXJrZWQgaW4gVk0gYXMgZnJvemVuICovCisJCQlpbnQ2NAkJcGFnZXNfYWxsX3Zpc2libGU7 CS8qIG51bWJlciBvZiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMgYWxsLXZpc2libGUgKi8KKwkJ CWludDY0CQl0dXBsZXNfZGVsZXRlZDsJCS8qIHR1cGxlcyBkZWxldGVkIGJ5IHZhY3V1bSAq LworCQkJaW50NjQJCXR1cGxlc19mcm96ZW47CQkvKiB0dXBsZXMgZnJvemVuIHVwIGJ5IHZh Y3V1bSAqLworCQkJaW50NjQJCWRlYWRfdHVwbGVzOwkJLyogbnVtYmVyIG9mIGRlbGV0ZWQg dHVwbGVzIHdoaWNoIHZhY3V1bSBjYW5ub3QgY2xlYW4gdXAgYnkgdmFjdXVtIG9wZXJhdGlv biAqLworCQkJaW50NjQJCWluZGV4X3ZhY3V1bV9jb3VudDsJLyogbnVtYmVyIG9mIGluZGV4 IHZhY3V1bWluZ3MgKi8KKwkJfQkJCWhlYXA7CisJCXN0cnVjdAorCQl7CisJCQlpbnQ2NAkJ cGFnZXNfZGVsZXRlZDsJCS8qIG51bWJlciBvZiBwYWdlcyBkZWxldGVkIGJ5IHZhY3V1bSAq LworCQkJaW50NjQJCXR1cGxlc19kZWxldGVkOwkJLyogdHVwbGVzIGRlbGV0ZWQgYnkgdmFj dXVtICovCisJCX0JCQlpbmRleDsKKwl9IC8qIHBlcl90eXBlX3N0YXRzICovOwogfSBFeHRW YWNSZXBvcnQ7CiAKIC8qIC0tLS0tLS0tLS0KQEAgLTY4OSw3ICs3MjIsNyBAQCBleHRlcm4g dm9pZCBwZ3N0YXRfcmVwb3J0X3ZhY3V1bShPaWQgdGFibGVvaWQsIGJvb2wgc2hhcmVkLAog ZXh0ZXJuIHZvaWQgcGdzdGF0X3JlcG9ydF9hbmFseXplKFJlbGF0aW9uIHJlbCwKIAkJCQkJ CQkJICBQZ1N0YXRfQ291bnRlciBsaXZldHVwbGVzLCBQZ1N0YXRfQ291bnRlciBkZWFkdHVw bGVzLAogCQkJCQkJCQkgIGJvb2wgcmVzZXRjb3VudGVyKTsKLWV4dGVybiB2b2lkIHBnc3Rh dF9yZXBvcnRfdmFjdXVtX2Vycm9yKE9pZCB0YWJsZW9pZCk7CitleHRlcm4gdm9pZCBwZ3N0 YXRfcmVwb3J0X3ZhY3V1bV9lcnJvcihPaWQgdGFibGVvaWQsIEV4dFZhY1JlcG9ydFR5cGUg bV90eXBlKTsKIAogLyoKICAqIElmIHN0YXRzIGFyZSBlbmFibGVkLCBidXQgcGVuZGluZyBk YXRhIGhhc24ndCBiZWVuIHByZXBhcmVkIHlldCwgY2FsbApkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvaXNvbGF0aW9uL2V4cGVjdGVkL3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJl YWQub3V0IGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3ZhY3V1bS1leHRlbmRpbmct aW4tcmVwZXRhYmxlLXJlYWQub3V0CmluZGV4IDdjZGI3OWMwZWM0Li45M2ZlMTVjMDFmOSAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3ZhY3V1bS1leHRlbmRp bmctaW4tcmVwZXRhYmxlLXJlYWQub3V0CisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBl Y3RlZC92YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0YWJsZS1yZWFkLm91dApAQCAtOSwxMCAr OSw5IEBAIHN0ZXAgczJfcHJpbnRfdmFjdXVtX3N0YXRzX3RhYmxlOgogICAgIEZST00gcGdf c3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCiAgICAgV0hFUkUgdnQucmVsbmFt ZSA9ICd0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbicgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7 CiAKLXJlbG5hbWUgICAgICAgICAgICAgICAgICAgfHR1cGxlc19kZWxldGVkfGRlYWRfdHVw bGVzfHR1cGxlc19mcm96ZW4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLXRlc3RfdmFjdXVtX3N0YXRfaXNv bGF0aW9ufCAgICAgICAgICAgICAwfCAgICAgICAgICAwfCAgICAgICAgICAgIDAKLSgxIHJv dykKK3JlbG5hbWV8dHVwbGVzX2RlbGV0ZWR8ZGVhZF90dXBsZXN8dHVwbGVzX2Zyb3plbgor LS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisoMCBy b3dzKQogCiBzdGVwIHMxX2JlZ2luX3JlcGVhdGFibGVfcmVhZDogCiAgIEJFR0lOIHRyYW5z YWN0aW9uIElTT0xBVElPTiBMRVZFTCBSRVBFQVRBQkxFIFJFQUQ7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9pc29sYXRpb24vc3BlY3MvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUt cmVhZC5zcGVjIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3ZhY3V1bS1leHRlbmRpbmct aW4tcmVwZXRhYmxlLXJlYWQuc3BlYwppbmRleCA3ZDMxZGRiZWNlOS4uYmNhM2U4NTE2YjIg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy92YWN1dW0tZXh0ZW5kaW5n LWluLXJlcGV0YWJsZS1yZWFkLnNwZWMKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNz L3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQuc3BlYwpAQCAtNDgsNCArNDgs NCBAQCBwZXJtdXRhdGlvbgogICAgIHMxX2NvbW1pdAogICAgIHMyX2NoZWNrcG9pbnQKICAg ICBzMl92YWN1dW0KLSAgICBzMl9wcmludF92YWN1dW1fc3RhdHNfdGFibGUKKyAgICBzMl9w cmludF92YWN1dW1fc3RhdHNfdGFibGUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dAppbmRleCA5YWU3NDNl YWUwYy4uNWQ3MmI5NzBiMDMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvb3ByX3Nhbml0eS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJf c2FuaXR5Lm91dApAQCAtMzIsMTAgKzMyLDExIEBAIFdIRVJFIHAxLnByb2xhbmcgPSAwIE9S IHAxLnByb3JldHR5cGUgPSAwIE9SCiAgICAgICAgcHJva2luZCBOT1QgSU4gKCdmJywgJ2En LCAndycsICdwJykgT1IKICAgICAgICBwcm92b2xhdGlsZSBOT1QgSU4gKCdpJywgJ3MnLCAn dicpIE9SCiAgICAgICAgcHJvcGFyYWxsZWwgTk9UIElOICgncycsICdyJywgJ3UnKTsKLSBv aWQgIHwgICAgICAgIHByb25hbWUgICAgICAgIAotLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgb2lkICB8ICAgICAgICBwcm9uYW1lICAgICAgICAgCistLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgODAwMSB8IHBnX3N0YXRfdmFjdXVtX3RhYmxlcwotKDEg cm93KQorIDgwMDIgfCBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzCisoMiByb3dzKQogCiAtLSBw cm9zcmMgc2hvdWxkIG5ldmVyIGJlIG51bGw7IGl0IGNhbiBiZSBlbXB0eSBvbmx5IGlmIHBy b3NxbGJvZHkgaXNuJ3QgbnVsbAogU0VMRUNUIHAxLm9pZCwgcDEucHJvbmFtZQpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAppbmRleCA2ZTg3OTBmNjZmNi4uNDM3YWEzM2Yx NmMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0yMjI5LDYgKzIy MjksMzIgQEAgcGdfc3RhdF91c2VyX3RhYmxlc3wgU0VMRUNUIHJlbGlkLAogICAgIGF1dG9h bmFseXplX2NvdW50CiAgICBGUk9NIHBnX3N0YXRfYWxsX3RhYmxlcwogICBXSEVSRSAoKHNj aGVtYW5hbWUgPD4gQUxMIChBUlJBWVsncGdfY2F0YWxvZyc6Om5hbWUsICdpbmZvcm1hdGlv bl9zY2hlbWEnOjpuYW1lXSkpIEFORCAoc2NoZW1hbmFtZSAhfiAnXnBnX3RvYXN0Jzo6dGV4 dCkpOworcGdfc3RhdF92YWN1dW1faW5kZXhlc3wgU0VMRUNUIHJlbC5vaWQgQVMgcmVsaWQs CisgICAgbnMubnNwbmFtZSBBUyBzY2hlbWEsCisgICAgcmVsLnJlbG5hbWUsCisgICAgc3Rh dHMudG90YWxfYmxrc19yZWFkLAorICAgIHN0YXRzLnRvdGFsX2Jsa3NfaGl0LAorICAgIHN0 YXRzLnRvdGFsX2Jsa3NfZGlydGllZCwKKyAgICBzdGF0cy50b3RhbF9ibGtzX3dyaXR0ZW4s CisgICAgc3RhdHMucmVsX2Jsa3NfcmVhZCwKKyAgICBzdGF0cy5yZWxfYmxrc19oaXQsCisg ICAgc3RhdHMucGFnZXNfZGVsZXRlZCwKKyAgICBzdGF0cy50dXBsZXNfZGVsZXRlZCwKKyAg ICBzdGF0cy53YWxfcmVjb3JkcywKKyAgICBzdGF0cy53YWxfZnBpLAorICAgIHN0YXRzLndh bF9ieXRlcywKKyAgICBzdGF0cy5ibGtfcmVhZF90aW1lLAorICAgIHN0YXRzLmJsa193cml0 ZV90aW1lLAorICAgIHN0YXRzLmRlbGF5X3RpbWUsCisgICAgc3RhdHMuc3lzdGVtX3RpbWUs CisgICAgc3RhdHMudXNlcl90aW1lLAorICAgIHN0YXRzLnRvdGFsX3RpbWUsCisgICAgc3Rh dHMuaW50ZXJydXB0cworICAgRlJPTSBwZ19kYXRhYmFzZSBkYiwKKyAgICBwZ19jbGFzcyBy ZWwsCisgICAgcGdfbmFtZXNwYWNlIG5zLAorICAgIExBVEVSQUwgcGdfc3RhdF92YWN1dW1f aW5kZXhlcyhkYi5vaWQsIHJlbC5vaWQpIHN0YXRzKHJlbGlkLCB0b3RhbF9ibGtzX3JlYWQs IHRvdGFsX2Jsa3NfaGl0LCB0b3RhbF9ibGtzX2RpcnRpZWQsIHRvdGFsX2Jsa3Nfd3JpdHRl biwgcmVsX2Jsa3NfcmVhZCwgcmVsX2Jsa3NfaGl0LCBwYWdlc19kZWxldGVkLCB0dXBsZXNf ZGVsZXRlZCwgd2FsX3JlY29yZHMsIHdhbF9mcGksIHdhbF9ieXRlcywgYmxrX3JlYWRfdGlt ZSwgYmxrX3dyaXRlX3RpbWUsIGRlbGF5X3RpbWUsIHN5c3RlbV90aW1lLCB1c2VyX3RpbWUs IHRvdGFsX3RpbWUsIGludGVycnVwdHMpCisgIFdIRVJFICgoZGIuZGF0bmFtZSA9IGN1cnJl bnRfZGF0YWJhc2UoKSkgQU5EIChyZWwub2lkID0gc3RhdHMucmVsaWQpIEFORCAobnMub2lk ID0gcmVsLnJlbG5hbWVzcGFjZSkpOwogcGdfc3RhdF92YWN1dW1fdGFibGVzfCBTRUxFQ1Qg cmVsLm9pZCBBUyByZWxpZCwKICAgICBucy5uc3BuYW1lIEFTIHNjaGVtYSwKICAgICByZWwu cmVsbmFtZSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVt X2luZGV4X3N0YXRpc3RpY3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC92YWN1 dW1faW5kZXhfc3RhdGlzdGljcy5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLmEwZGE4ZDI1ZjFhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC92YWN1dW1faW5kZXhfc3RhdGlzdGljcy5vdXQKQEAgLTAsMCArMSwx NTggQEAKKy0tCistLSBUZXN0IGN1bXVsYXRpdmUgdmFjdXVtIHN0YXRzIHN5c3RlbQorLS0K Ky0tIENoZWNrIHRoZSB3YWxsIHN0YXRpc3RpY3MgY29sbGVjdGVkIGR1cmluZyB2YWN1dW0g b3BlcmF0aW9uOgorLS0gbnVtYmVyIG9mIGZyb3plbiBhbmQgdmlzaWJsZSBwYWdlcyBzZXQg YnkgdmFjdXVtOworLS0gbnVtYmVyIG9mIGZyb3plbiBhbmQgdmlzaWJsZSBwYWdlcyByZW1v dmVkIGJ5IGJhY2tlbmQuCistLSBTdGF0aXN0aWMgd2FsX2ZwaSBpcyBub3QgZGlzcGxheWVk IGluIHRoaXMgdGVzdCBiZWNhdXNlIGl0cyBiZWhhdmlvciBpcyB1bnN0YWJsZS4KKy0tCist LSBjb25kaXRpbyBzaW5lIHF1YSBub24KK1NIT1cgdHJhY2tfY291bnRzOyAgLS0gbXVzdCBi ZSBvbgorIHRyYWNrX2NvdW50cyAKKy0tLS0tLS0tLS0tLS0tCisgb24KKygxIHJvdykKKwor LS0gbm90IGVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0IHdlIHdhbnQgdG8gdGVzdCBpdC4uLgor U0VUIHRyYWNrX2Z1bmN0aW9ucyBUTyAnYWxsJzsKKy0tIGVuc3VyZSBwZW5kaW5nIHN0YXRz IGFyZSBmbHVzaGVkCitTRUxFQ1QgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoKCk7CisgcGdf c3RhdF9mb3JjZV9uZXh0X2ZsdXNoIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAK KygxIHJvdykKKworXHNldCBzYW1wbGVfc2l6ZSAxMDAwMAorU0VUIHZhY3V1bV9mcmVlemVf bWluX2FnZSA9IDA7CitTRVQgdmFjdXVtX2ZyZWV6ZV90YWJsZV9hZ2UgPSAwOworLS1TRVQg c3RhdHNfZmV0Y2hfY29uc2lzdGVuY3kgPSBzbmFwc2hvdDsKK0NSRUFURSBUQUJMRSB2ZXN0 YXQgKHggaW50IHByaW1hcnkga2V5KSBXSVRIIChhdXRvdmFjdXVtX2VuYWJsZWQgPSBvZmYs IGZpbGxmYWN0b3IgPSAxMCk7CitJTlNFUlQgSU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSw6c2FtcGxlX3NpemUpIGFzIHg7CitBTkFMWVpFIHZlc3RhdDsK K1NFTEVDVCBvaWQgQVMgaW9pZCBmcm9tIHBnX2NsYXNzIHdoZXJlIHJlbG5hbWUgPSAndmVz dGF0X3BrZXknIFxnc2V0CitERUxFVEUgRlJPTSB2ZXN0YXQgV0hFUkUgeCAlIDIgPSAwOwor LS0gQmVmb3JlIHRoZSBmaXJzdCB2YWN1dW0gZXhlY3V0aW9uIGV4dGVuZGVkIHN0YXRzIHZp ZXcgaXMgZW1wdHkuCitTRUxFQ1QgdnQucmVsbmFtZSxyZWxwYWdlcyxwYWdlc19kZWxldGVk LHR1cGxlc19kZWxldGVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgdnQsIHBnX2Ns YXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0X3BrZXknIEFORCB2dC5yZWxpZCA9 IGMub2lkOworIHJlbG5hbWUgfCByZWxwYWdlcyB8IHBhZ2VzX2RlbGV0ZWQgfCB0dXBsZXNf ZGVsZXRlZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tCisoMCByb3dzKQorCitTRUxFQ1QgcmVscGFnZXMgQVMgaXJwCitGUk9NIHBn X2NsYXNzIGMKK1dIRVJFIHJlbG5hbWUgPSAndmVzdGF0X3BrZXknIFxnc2V0CitWQUNVVU0g KFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgsIElOREVYX0NMRUFOVVAgT04p IHZlc3RhdDsKKy0tIGl0IGlzIG5lY2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3Rp Y3MKK0NIRUNLUE9JTlQ7CistLSBUaGUgdGFibGUgYW5kIGluZGV4IGV4dGVuZGVkIHZhY3V1 bSBzdGF0aXN0aWNzIHNob3VsZCBzaG93IHVzIHRoYXQKKy0tIHZhY3V1bSBmcm96ZWQgcGFn ZXMgYW5kIGNsZWFuIHVwIHBhZ2VzLCBidXQgcGFnZXNfcmVtb3ZlZCBzdGF5ZWQgdGhlIHNh bWUKKy0tIGJlY2F1c2Ugb2Ygbm90IGZ1bGwgdGFibGUgaGF2ZSBjbGVhbmVkIHVwCitTRUxF Q1QgdnQucmVsbmFtZSxyZWxwYWdlcy06aXJwID0gMCBBUyByZWxwYWdlcyxwYWdlc19kZWxl dGVkID0gMCBBUyBwYWdlc19kZWxldGVkLHR1cGxlc19kZWxldGVkID4gMCBBUyB0dXBsZXNf ZGVsZXRlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBjCitX SEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsK KyAgIHJlbG5hbWUgICB8IHJlbHBhZ2VzIHwgcGFnZXNfZGVsZXRlZCB8IHR1cGxlc19kZWxl dGVkIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tCisgdmVzdGF0X3BrZXkgfCB0ICAgICAgICB8IHQgICAgICAgICAgICAgfCB0 CisoMSByb3cpCisKK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzIEFTIGlycCxwYWdlc19k ZWxldGVkIEFTIGlwZCx0dXBsZXNfZGVsZXRlZCBBUyBpdGQKK0ZST00gcGdfc3RhdF92YWN1 dW1faW5kZXhlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXRf cGtleScgQU5EIHZ0LnJlbGlkID0gYy5vaWQgXGdzZXQKKy0tIFN0b3JlIFdBTCBhZHZhbmNl cyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzIEFTIGl3cix3YWxfYnl0ZXMg QVMgaXdiLHdhbF9mcGkgQVMgaWZwaSBGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgV0hF UkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgXGdzZXQKKy0tIExvb2sgaW50byBXQUwgcmVj b3JkcyBkZWx0YXMuCitTRUxFQ1Qgd2FsX3JlY29yZHMgPiAwIEFTIGRpV1IsIHdhbF9ieXRl cyA+IDAgQVMgZGlXQgorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIFdIRVJFIHJlbG5h bWUgPSAndmVzdGF0X3BrZXknOworIGRpd3IgfCBkaXdiIAorLS0tLS0tKy0tLS0tLQorIHQg ICAgfCB0CisoMSByb3cpCisKK0RFTEVURSBGUk9NIHZlc3RhdDs7CitWQUNVVU0gKFBBUkFM TEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgsIElOREVYX0NMRUFOVVAgT04pIHZlc3Rh dDsKKy0tIGl0IGlzIG5lY2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NI RUNLUE9JTlQ7CistLSBwYWdlc19yZW1vdmVkIG11c3QgYmUgaW5jcmVhc2VkCitTRUxFQ1Qg dnQucmVsbmFtZSxyZWxwYWdlcy06aXJwID0gMCBBUyByZWxwYWdlcyxwYWdlc19kZWxldGVk LTppcGQgPiAwIEFTIHBhZ2VzX2RlbGV0ZWQsdHVwbGVzX2RlbGV0ZWQtOml0ZCA+IDAgQVMg dHVwbGVzX2RlbGV0ZWQKK0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyB2dCwgcGdfY2xh c3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgQU5EIHZ0LnJlbGlkID0g Yy5vaWQ7CisgICByZWxuYW1lICAgfCByZWxwYWdlcyB8IHBhZ2VzX2RlbGV0ZWQgfCB0dXBs ZXNfZGVsZXRlZCAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLQorIHZlc3RhdF9wa2V5IHwgdCAgICAgICAgfCB0ICAgICAgICAg ICAgIHwgdAorKDEgcm93KQorCitTRUxFQ1QgdnQucmVsbmFtZSxyZWxwYWdlcyBBUyBpcnAs cGFnZXNfZGVsZXRlZCBBUyBpcGQsdHVwbGVzX2RlbGV0ZWQgQVMgaXRkCitGUk9NIHBnX3N0 YXRfdmFjdXVtX2luZGV4ZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAn dmVzdGF0X3BrZXknIEFORCB2dC5yZWxpZCA9IGMub2lkIFxnc2V0CistLSBTdG9yZSBXQUwg YWR2YW5jZXMgaW50byB2YXJpYWJsZXMKK1NFTEVDVCB3YWxfcmVjb3Jkcy06aXdyIEFTIGRp d3IsIHdhbF9ieXRlcy06aXdiIEFTIGRpd2IsIHdhbF9mcGktOmlmcGkgQVMgZGlmcGkKK0ZS T00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5 JyBcZ3NldAorLS0gV0FMIGFkdmFuY2Ugc2hvdWxkIGJlIGRldGVjdGVkLgorU0VMRUNUIDpk aXdyID4gMCBBUyBkaVdSLCA6ZGl3YiA+IDAgQVMgZGlXQjsKKyBkaXdyIHwgZGl3YiAKKy0t LS0tLSstLS0tLS0KKyB0ICAgIHwgdAorKDEgcm93KQorCistLSBTdG9yZSBXQUwgYWR2YW5j ZXMgaW50byB2YXJpYWJsZXMKK1NFTEVDVCB3YWxfcmVjb3JkcyBBUyBpd3Isd2FsX2J5dGVz IEFTIGl3Yix3YWxfZnBpIEFTIGlmcGkgRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIFdI RVJFIHJlbG5hbWUgPSAndmVzdGF0X3BrZXknIFxnc2V0CitJTlNFUlQgSU5UTyB2ZXN0YXQg U0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw6c2FtcGxlX3NpemUpIGFzIHg7CitE RUxFVEUgRlJPTSB2ZXN0YXQgV0hFUkUgeCAlIDIgPSAwOworLS0gVkFDVVVNIEZVTEwgZG9l c24ndCByZXBvcnQgdG8gc3RhdCBjb2xsZWN0b3IuIFNvLCBubyBhbnkgYWR2YW5jZW1lbnRz IG9mIHN0YXRpc3RpY3MKKy0tIGFyZSBkZXRlY3RlZCBoZXJlLgorVkFDVVVNIEZVTEwgdmVz dGF0OworLS0gSXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcwor Q0hFQ0tQT0lOVDsKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VM RUNUIHdhbF9yZWNvcmRzLTppd3IgQVMgZGl3cjIsIHdhbF9ieXRlcy06aXdiIEFTIGRpd2Iy LCB3YWxfZnBpLTppZnBpIEFTIGRpZnBpMgorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVz IFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0X3BrZXknIFxnc2V0CistLSBXQUwgYW5kIG90aGVy IHN0YXRpc3RpY3MgYWR2YW5jZSBzaG91bGQgbm90IGJlIGRldGVjdGVkLgorU0VMRUNUIDpk aXdyMj0wIEFTIGRpV1IsIDpkaWZwaTI9MCBBUyBpRlBJLCA6ZGl3YjI9MCBBUyBkaVdCOwor IGRpd3IgfCBpZnBpIHwgZGl3YiAKKy0tLS0tLSstLS0tLS0rLS0tLS0tCisgdCAgICB8IHQg ICAgfCB0CisoMSByb3cpCisKK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzLTppcnAgPCAw IEFTIHJlbHBhZ2VzLHBhZ2VzX2RlbGV0ZWQtOmlwZCA9IDAgQVMgcGFnZXNfZGVsZXRlZCx0 dXBsZXNfZGVsZXRlZC06aXRkID0gMCBBUyB0dXBsZXNfZGVsZXRlZAorRlJPTSBwZ19zdGF0 X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zl c3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKKyAgIHJlbG5hbWUgICB8IHJlbHBh Z2VzIHwgcGFnZXNfZGVsZXRlZCB8IHR1cGxlc19kZWxldGVkIAorLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgdmVzdGF0X3Br ZXkgfCB0ICAgICAgICB8IHQgICAgICAgICAgICAgfCB0CisoMSByb3cpCisKK1NFTEVDVCB2 dC5yZWxuYW1lLHJlbHBhZ2VzIEFTIGlycCxwYWdlc19kZWxldGVkIEFTIGlwZCx0dXBsZXNf ZGVsZXRlZCBBUyBpdGQKK0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyB2dCwgcGdfY2xh c3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgQU5EIHZ0LnJlbGlkID0g Yy5vaWQgXGdzZXQKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VM RUNUIHdhbF9yZWNvcmRzIEFTIGl3cix3YWxfYnl0ZXMgQVMgaXdiLHdhbF9mcGkgQVMgaWZw aSBGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRf cGtleScgXGdzZXQKK0RFTEVURSBGUk9NIHZlc3RhdDsKK1RSVU5DQVRFIHZlc3RhdDsKK1ZB Q1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCwgSU5ERVhfQ0xFQU5V UCBPTikgdmVzdGF0OworLS0gaXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRoZSB3YWwgc3Rh dGlzdGljcworQ0hFQ0tQT0lOVDsKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlh YmxlcyBhZnRlciByZW1vdmluZyBhbGwgdHVwbGVzIGZyb20gdGhlIHRhYmxlCitTRUxFQ1Qg d2FsX3JlY29yZHMtOml3ciBBUyBkaXdyMywgd2FsX2J5dGVzLTppd2IgQVMgZGl3YjMsIHdh bF9mcGktOmlmcGkgQVMgZGlmcGkzCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgV0hF UkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgXGdzZXQKKy0tVGhlcmUgYXJlIG5vdGhpbmcg Y2hhbmdlZAorU0VMRUNUIDpkaXdyMz0wIEFTIGRpV1IsIDpkaWZwaTM9MCBBUyBpRlBJLCA6 ZGl3YjM9MCBBUyBkaVdCOworIGRpd3IgfCBpZnBpIHwgZGl3YiAKKy0tLS0tLSstLS0tLS0r LS0tLS0tCisgdCAgICB8IHQgICAgfCB0CisoMSByb3cpCisKKy0tCistLSBOb3csIHRoZSB0 YWJsZSBhbmQgaW5kZXggaXMgY29tcHJlc3NlZCBpbnRvIHplcm8gbnVtYmVyIG9mIHBhZ2Vz LiBDaGVjayBpdAorLS0gaW4gdmFjdXVtIGV4dGVuZGVkIHN0YXRpc3RpY3MuCistLSBUaGUg cGFnZXNfZnJvemVuLCBwYWdlc19zY2FubmVkIHZhbHVlcyBzaG91bGRuJ3QgYmUgY2hhbmdl ZAorLS0KK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzLTppcnAgPSAwIEFTIHJlbHBhZ2Vz LHBhZ2VzX2RlbGV0ZWQtOmlwZCA9IDAgQVMgcGFnZXNfZGVsZXRlZCx0dXBsZXNfZGVsZXRl ZC06aXRkID0gMCBBUyB0dXBsZXNfZGVsZXRlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRl eGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBB TkQgdnQucmVsaWQgPSBjLm9pZDsKKyAgIHJlbG5hbWUgICB8IHJlbHBhZ2VzIHwgcGFnZXNf ZGVsZXRlZCB8IHR1cGxlc19kZWxldGVkIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgdmVzdGF0X3BrZXkgfCBmICAgICAg ICB8IHQgICAgICAgICAgICAgfCB0CisoMSByb3cpCisKK0RST1AgVEFCTEUgdmVzdGF0Owpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC92YWN1dW1fdGFibGVzX3N0 YXRpc3RpY3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC92YWN1dW1fdGFibGVz X3N0YXRpc3RpY3Mub3V0CmluZGV4IDFhN2QwNGIwNTkwLi5iODVhNWNhYjlhZiAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC92YWN1dW1fdGFibGVzX3N0YXRpc3Rp Y3Mub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVtX3RhYmxlc19z dGF0aXN0aWNzLm91dApAQCAtMzcsOCArMzcsNyBAQCBGUk9NIHBnX3N0YXRfdmFjdXVtX3Rh YmxlcyB2dCwgcGdfY2xhc3MgYwogV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2 dC5yZWxpZCA9IGMub2lkOwogIHJlbG5hbWUgfCBwYWdlc19mcm96ZW4gfCB0dXBsZXNfZGVs ZXRlZCB8IHJlbHBhZ2VzIHwgcGFnZXNfc2Nhbm5lZCB8IHBhZ2VzX3JlbW92ZWQgCiAtLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KLSB2ZXN0YXQgIHwgICAgICAgICAgICAwIHwg ICAgICAgICAgICAgIDAgfCAgICAgIDQ1NSB8ICAgICAgICAgICAgIDAgfCAgICAgICAgICAg ICAwCi0oMSByb3cpCisoMCByb3dzKQogCiBTRUxFQ1QgcmVscGFnZXMgQVMgcnAKIEZST00g cGdfY2xhc3MgYwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hl ZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggZjhhNGJj Y2NjOWQuLmI5NDA4YTQzZjcxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFs bGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUK QEAgLTE0MCw0ICsxNDAsNSBAQCB0ZXN0OiB0YWJsZXNwYWNlCiAjIC0tLS0tLS0tLS0KICMg Q2hlY2sgdmFjdXVtIHN0YXRpc3RpY3MKICMgLS0tLS0tLS0tLQordGVzdDogdmFjdXVtX2lu ZGV4X3N0YXRpc3RpY3MKIHRlc3Q6IHZhY3V1bV90YWJsZXNfc3RhdGlzdGljcwpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3ZhY3V1bV9pbmRleF9zdGF0aXN0aWNzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Zh Y3V1bV9pbmRleF9zdGF0aXN0aWNzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uOTExM2ZkMjZlNmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC92YWN1dW1faW5kZXhfc3RhdGlzdGljcy5zcWwKQEAgLTAsMCArMSwxMjgg QEAKKy0tCistLSBUZXN0IGN1bXVsYXRpdmUgdmFjdXVtIHN0YXRzIHN5c3RlbQorLS0KKy0t IENoZWNrIHRoZSB3YWxsIHN0YXRpc3RpY3MgY29sbGVjdGVkIGR1cmluZyB2YWN1dW0gb3Bl cmF0aW9uOgorLS0gbnVtYmVyIG9mIGZyb3plbiBhbmQgdmlzaWJsZSBwYWdlcyBzZXQgYnkg dmFjdXVtOworLS0gbnVtYmVyIG9mIGZyb3plbiBhbmQgdmlzaWJsZSBwYWdlcyByZW1vdmVk IGJ5IGJhY2tlbmQuCistLSBTdGF0aXN0aWMgd2FsX2ZwaSBpcyBub3QgZGlzcGxheWVkIGlu IHRoaXMgdGVzdCBiZWNhdXNlIGl0cyBiZWhhdmlvciBpcyB1bnN0YWJsZS4KKy0tCistLSBj b25kaXRpbyBzaW5lIHF1YSBub24KK1NIT1cgdHJhY2tfY291bnRzOyAgLS0gbXVzdCBiZSBv bgorLS0gbm90IGVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0IHdlIHdhbnQgdG8gdGVzdCBpdC4u LgorU0VUIHRyYWNrX2Z1bmN0aW9ucyBUTyAnYWxsJzsKKworCistLSBlbnN1cmUgcGVuZGlu ZyBzdGF0cyBhcmUgZmx1c2hlZAorU0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgp OworCitcc2V0IHNhbXBsZV9zaXplIDEwMDAwCitTRVQgdmFjdXVtX2ZyZWV6ZV9taW5fYWdl ID0gMDsKK1NFVCB2YWN1dW1fZnJlZXplX3RhYmxlX2FnZSA9IDA7CistLVNFVCBzdGF0c19m ZXRjaF9jb25zaXN0ZW5jeSA9IHNuYXBzaG90OworQ1JFQVRFIFRBQkxFIHZlc3RhdCAoeCBp bnQgcHJpbWFyeSBrZXkpIFdJVEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IG9mZiwgZmlsbGZh Y3RvciA9IDEwKTsKK0lOU0VSVCBJTlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRl X3NlcmllcygxLDpzYW1wbGVfc2l6ZSkgYXMgeDsKK0FOQUxZWkUgdmVzdGF0OworCitTRUxF Q1Qgb2lkIEFTIGlvaWQgZnJvbSBwZ19jbGFzcyB3aGVyZSByZWxuYW1lID0gJ3Zlc3RhdF9w a2V5JyBcZ3NldAorCitERUxFVEUgRlJPTSB2ZXN0YXQgV0hFUkUgeCAlIDIgPSAwOworLS0g QmVmb3JlIHRoZSBmaXJzdCB2YWN1dW0gZXhlY3V0aW9uIGV4dGVuZGVkIHN0YXRzIHZpZXcg aXMgZW1wdHkuCitTRUxFQ1QgdnQucmVsbmFtZSxyZWxwYWdlcyxwYWdlc19kZWxldGVkLHR1 cGxlc19kZWxldGVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgdnQsIHBnX2NsYXNz IGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0X3BrZXknIEFORCB2dC5yZWxpZCA9IGMu b2lkOworU0VMRUNUIHJlbHBhZ2VzIEFTIGlycAorRlJPTSBwZ19jbGFzcyBjCitXSEVSRSBy ZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBcZ3NldAorCitWQUNVVU0gKFBBUkFMTEVMIDAsIEJV RkZFUl9VU0FHRV9MSU1JVCAxMjgsIElOREVYX0NMRUFOVVAgT04pIHZlc3RhdDsKKy0tIGl0 IGlzIG5lY2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNLUE9JTlQ7 CisKKy0tIFRoZSB0YWJsZSBhbmQgaW5kZXggZXh0ZW5kZWQgdmFjdXVtIHN0YXRpc3RpY3Mg c2hvdWxkIHNob3cgdXMgdGhhdAorLS0gdmFjdXVtIGZyb3plZCBwYWdlcyBhbmQgY2xlYW4g dXAgcGFnZXMsIGJ1dCBwYWdlc19yZW1vdmVkIHN0YXllZCB0aGUgc2FtZQorLS0gYmVjYXVz ZSBvZiBub3QgZnVsbCB0YWJsZSBoYXZlIGNsZWFuZWQgdXAKK1NFTEVDVCB2dC5yZWxuYW1l LHJlbHBhZ2VzLTppcnAgPSAwIEFTIHJlbHBhZ2VzLHBhZ2VzX2RlbGV0ZWQgPSAwIEFTIHBh Z2VzX2RlbGV0ZWQsdHVwbGVzX2RlbGV0ZWQgPiAwIEFTIHR1cGxlc19kZWxldGVkCitGUk9N IHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5h bWUgPSAndmVzdGF0X3BrZXknIEFORCB2dC5yZWxpZCA9IGMub2lkOworU0VMRUNUIHZ0LnJl bG5hbWUscmVscGFnZXMgQVMgaXJwLHBhZ2VzX2RlbGV0ZWQgQVMgaXBkLHR1cGxlc19kZWxl dGVkIEFTIGl0ZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBj CitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9p ZCBcZ3NldAorCistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50byB2YXJpYWJsZXMKK1NFTEVD VCB3YWxfcmVjb3JkcyBBUyBpd3Isd2FsX2J5dGVzIEFTIGl3Yix3YWxfZnBpIEFTIGlmcGkg RlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0X3Br ZXknIFxnc2V0CisKKy0tIExvb2sgaW50byBXQUwgcmVjb3JkcyBkZWx0YXMuCitTRUxFQ1Qg d2FsX3JlY29yZHMgPiAwIEFTIGRpV1IsIHdhbF9ieXRlcyA+IDAgQVMgZGlXQgorRlJPTSBw Z19zdGF0X3ZhY3V1bV9pbmRleGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0X3BrZXknOwor CitERUxFVEUgRlJPTSB2ZXN0YXQ7OworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNB R0VfTElNSVQgMTI4LCBJTkRFWF9DTEVBTlVQIE9OKSB2ZXN0YXQ7CistLSBpdCBpcyBuZWNl c3NhcnkgdG8gY2hlY2sgdGhlIHdhbCBzdGF0aXN0aWNzCitDSEVDS1BPSU5UOworCistLSBw YWdlc19yZW1vdmVkIG11c3QgYmUgaW5jcmVhc2VkCitTRUxFQ1QgdnQucmVsbmFtZSxyZWxw YWdlcy06aXJwID0gMCBBUyByZWxwYWdlcyxwYWdlc19kZWxldGVkLTppcGQgPiAwIEFTIHBh Z2VzX2RlbGV0ZWQsdHVwbGVzX2RlbGV0ZWQtOml0ZCA+IDAgQVMgdHVwbGVzX2RlbGV0ZWQK K0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQu cmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CitTRUxFQ1Qg dnQucmVsbmFtZSxyZWxwYWdlcyBBUyBpcnAscGFnZXNfZGVsZXRlZCBBUyBpcGQsdHVwbGVz X2RlbGV0ZWQgQVMgaXRkCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgdnQsIHBnX2Ns YXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0X3BrZXknIEFORCB2dC5yZWxpZCA9 IGMub2lkIFxnc2V0CisKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcwor U0VMRUNUIHdhbF9yZWNvcmRzLTppd3IgQVMgZGl3ciwgd2FsX2J5dGVzLTppd2IgQVMgZGl3 Yiwgd2FsX2ZwaS06aWZwaSBBUyBkaWZwaQorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVz IFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0X3BrZXknIFxnc2V0CisKKy0tIFdBTCBhZHZhbmNl IHNob3VsZCBiZSBkZXRlY3RlZC4KK1NFTEVDVCA6ZGl3ciA+IDAgQVMgZGlXUiwgOmRpd2Ig PiAwIEFTIGRpV0I7CisKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcwor U0VMRUNUIHdhbF9yZWNvcmRzIEFTIGl3cix3YWxfYnl0ZXMgQVMgaXdiLHdhbF9mcGkgQVMg aWZwaSBGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0 YXRfcGtleScgXGdzZXQKKworSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OworREVMRVRFIEZST00gdmVzdGF0 IFdIRVJFIHggJSAyID0gMDsKKy0tIFZBQ1VVTSBGVUxMIGRvZXNuJ3QgcmVwb3J0IHRvIHN0 YXQgY29sbGVjdG9yLiBTbywgbm8gYW55IGFkdmFuY2VtZW50cyBvZiBzdGF0aXN0aWNzCist LSBhcmUgZGV0ZWN0ZWQgaGVyZS4KK1ZBQ1VVTSBGVUxMIHZlc3RhdDsKKy0tIEl0IGlzIG5l Y2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNLUE9JTlQ7CisKKy0t IFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRz LTppd3IgQVMgZGl3cjIsIHdhbF9ieXRlcy06aXdiIEFTIGRpd2IyLCB3YWxfZnBpLTppZnBp IEFTIGRpZnBpMgorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIFdIRVJFIHJlbG5hbWUg PSAndmVzdGF0X3BrZXknIFxnc2V0CisKKy0tIFdBTCBhbmQgb3RoZXIgc3RhdGlzdGljcyBh ZHZhbmNlIHNob3VsZCBub3QgYmUgZGV0ZWN0ZWQuCitTRUxFQ1QgOmRpd3IyPTAgQVMgZGlX UiwgOmRpZnBpMj0wIEFTIGlGUEksIDpkaXdiMj0wIEFTIGRpV0I7CisKK1NFTEVDVCB2dC5y ZWxuYW1lLHJlbHBhZ2VzLTppcnAgPCAwIEFTIHJlbHBhZ2VzLHBhZ2VzX2RlbGV0ZWQtOmlw ZCA9IDAgQVMgcGFnZXNfZGVsZXRlZCx0dXBsZXNfZGVsZXRlZC06aXRkID0gMCBBUyB0dXBs ZXNfZGVsZXRlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBj CitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9p ZDsKK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzIEFTIGlycCxwYWdlc19kZWxldGVkIEFT IGlwZCx0dXBsZXNfZGVsZXRlZCBBUyBpdGQKK0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhl cyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgQU5E IHZ0LnJlbGlkID0gYy5vaWQgXGdzZXQKKworLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGludG8g dmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMgQVMgaXdyLHdhbF9ieXRlcyBBUyBpd2Is d2FsX2ZwaSBBUyBpZnBpIEZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyBXSEVSRSByZWxu YW1lID0gJ3Zlc3RhdF9wa2V5JyBcZ3NldAorCitERUxFVEUgRlJPTSB2ZXN0YXQ7CitUUlVO Q0FURSB2ZXN0YXQ7CitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAx MjgsIElOREVYX0NMRUFOVVAgT04pIHZlc3RhdDsKKy0tIGl0IGlzIG5lY2Vzc2FyeSB0byBj aGVjayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNLUE9JTlQ7CisKKy0tIFN0b3JlIFdBTCBh ZHZhbmNlcyBpbnRvIHZhcmlhYmxlcyBhZnRlciByZW1vdmluZyBhbGwgdHVwbGVzIGZyb20g dGhlIHRhYmxlCitTRUxFQ1Qgd2FsX3JlY29yZHMtOml3ciBBUyBkaXdyMywgd2FsX2J5dGVz LTppd2IgQVMgZGl3YjMsIHdhbF9mcGktOmlmcGkgQVMgZGlmcGkzCitGUk9NIHBnX3N0YXRf dmFjdXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgXGdzZXQKKwor LS1UaGVyZSBhcmUgbm90aGluZyBjaGFuZ2VkCitTRUxFQ1QgOmRpd3IzPTAgQVMgZGlXUiwg OmRpZnBpMz0wIEFTIGlGUEksIDpkaXdiMz0wIEFTIGRpV0I7CisKKy0tCistLSBOb3csIHRo ZSB0YWJsZSBhbmQgaW5kZXggaXMgY29tcHJlc3NlZCBpbnRvIHplcm8gbnVtYmVyIG9mIHBh Z2VzLiBDaGVjayBpdAorLS0gaW4gdmFjdXVtIGV4dGVuZGVkIHN0YXRpc3RpY3MuCistLSBU aGUgcGFnZXNfZnJvemVuLCBwYWdlc19zY2FubmVkIHZhbHVlcyBzaG91bGRuJ3QgYmUgY2hh bmdlZAorLS0KK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzLTppcnAgPSAwIEFTIHJlbHBh Z2VzLHBhZ2VzX2RlbGV0ZWQtOmlwZCA9IDAgQVMgcGFnZXNfZGVsZXRlZCx0dXBsZXNfZGVs ZXRlZC06aXRkID0gMCBBUyB0dXBsZXNfZGVsZXRlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV9p bmRleGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdF9wa2V5 JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKKworRFJPUCBUQUJMRSB2ZXN0YXQ7Ci0tIAoyLjM0 LjEKCg== --------------pH7wJoYVW1CRnjNgrE7OaUvT Content-Type: text/x-patch; charset=UTF-8; name="v5-0003-Machinery-for-grabbing-an-extended-vacuum-statistics.patch" Content-Disposition: attachment; filename*0="v5-0003-Machinery-for-grabbing-an-extended-vacuum-statistics"; filename*1=".patch" Content-Transfer-Encoding: base64 RnJvbSAzZWI0MjdjYWE0YjYzMGFmNmQzNzFiNjJlZTdiZjI0NTExZWZmMGYzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogVHVlLCAxMSBKdW4gMjAyNCAxMzo1NTozOSArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMy80XSBNYWNoaW5lcnkgZm9yIGdyYWJiaW5nIGFuIGV4dGVuZGVkIHZh Y3V1bSBzdGF0aXN0aWNzIG9uCiBkYXRhYmFzZXMuIEl0IHRyYW5zbWl0cyB2YWN1dW0gc3Rh dGlzdGljYWwgaW5mb3JtYXRpb24gYWJvdXQgZWFjaCB0YWJsZSBhbmQKIGFjY3VtdWxhdGVz IGl0IGZvciB0aGUgZGF0YWJhc2Ugd2hpY2ggdGhlIHRhYmxlIGJlbG9uZ2VkLgoKLS0tCiBz cmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgICAgICAgICAgfCAyOCArKysr KysrCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXQuYyAgICAgICAgICAgfCAg MiArCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2UuYyAgfCAg MSArCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYyAgfCAx NiArKysrCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyAgICAgICAgICAg fCA3OSArKysrKysrKysrKysrKysrKysrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2Mu ZGF0ICAgICAgICAgICAgICAgfCAgOSArKysKIHNyYy9pbmNsdWRlL3Bnc3RhdC5oICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAzICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L29wcl9zYW5pdHkub3V0ICAgICAgfCAgNyArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ydWxlcy5vdXQgICAgICAgICAgIHwgMTggKysrKysKIC4uLnV0ID0+IHZhY3V1bV90YWJs ZXNfYW5kX2RiX3N0YXRpc3RpY3Mub3V0fSB8IDc4ICsrKysrKysrKysrKysrKysrKwogc3Jj L3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgIDIgKy0KIC4u LnFsID0+IHZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Muc3FsfSB8IDY2ICsrKysr KysrKysrKysrKy0KIDEyIGZpbGVzIGNoYW5nZWQsIDMwMyBpbnNlcnRpb25zKCspLCA2IGRl bGV0aW9ucygtKQogcmVuYW1lIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQve3ZhY3V1bV90 YWJsZXNfc3RhdGlzdGljcy5vdXQgPT4gdmFjdXVtX3RhYmxlc19hbmRfZGJfc3RhdGlzdGlj cy5vdXR9ICg3NyUpCiByZW5hbWUgc3JjL3Rlc3QvcmVncmVzcy9zcWwve3ZhY3V1bV90YWJs ZXNfc3RhdGlzdGljcy5zcWwgPT4gdmFjdXVtX3RhYmxlc19hbmRfZGJfc3RhdGlzdGljcy5z cWx9ICg3OSUpCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmll d3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IDA1 ZjhmYzA3MTA4Li5jYTNhZDA5NzI3ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9zeXN0ZW1fdmlld3Muc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3Zp ZXdzLnNxbApAQCAtMTQ2NiwzICsxNDY2LDMxIEBAIFdIRVJFCiAgIHJlbC5vaWQgPSBzdGF0 cy5yZWxpZCBBTkQKICAgbnMub2lkID0gcmVsLnJlbG5hbWVzcGFjZTsKIAorQ1JFQVRFIFZJ RVcgcGdfc3RhdF92YWN1dW1fZGF0YWJhc2UgQVMKK1NFTEVDVAorICBkYi5vaWQgYXMgZGJv aWQsCisgIGRiLmRhdG5hbWUgQVMgZGJuYW1lLAorCisgIHN0YXRzLmRiX2Jsa3NfcmVhZCwK KyAgc3RhdHMuZGJfYmxrc19oaXQsCisgIHN0YXRzLnRvdGFsX2Jsa3NfZGlydGllZCwKKyAg c3RhdHMudG90YWxfYmxrc193cml0dGVuLAorCisgIHN0YXRzLndhbF9yZWNvcmRzLAorICBz dGF0cy53YWxfZnBpLAorICBzdGF0cy53YWxfYnl0ZXMsCisKKyAgc3RhdHMuYmxrX3JlYWRf dGltZSwKKyAgc3RhdHMuYmxrX3dyaXRlX3RpbWUsCisKKyAgc3RhdHMuZGVsYXlfdGltZSwK KyAgc3RhdHMuc3lzdGVtX3RpbWUsCisgIHN0YXRzLnVzZXJfdGltZSwKKyAgc3RhdHMudG90 YWxfdGltZSwKKworICBzdGF0cy5pbnRlcnJ1cHRzCitGUk9NCisgIHBnX2RhdGFiYXNlIGRi IExFRlQgSk9JTiBwZ19zdGF0X3ZhY3V1bV9kYXRhYmFzZShkYi5vaWQpIHN0YXRzCitPTgor ICBkYi5vaWQgPSBzdGF0cy5kYm9pZDsKKwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvYWN0aXZpdHkvcGdzdGF0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0 YXQuYwppbmRleCA3NTg5MGIxODk4OC4uM2M1MGJlYTM3OWMgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L3Bnc3RhdC5jCkBAIC0xMDk5LDYgKzEwOTksOCBAQCBwZ3N0YXRfdXBkYXRl X3NuYXBzaG90KFBnU3RhdF9LaW5kIGtpbmQpCiAJCXBnc3RhdF9mZXRjaF9jb25zaXN0ZW5j eSA9IFBHU1RBVF9GRVRDSF9DT05TSVNURU5DWV9TTkFQU0hPVDsKIAkJaWYgKGtpbmQgPT0g UEdTVEFUX0tJTkRfUkVMQVRJT04pCiAJCQlwZ3N0YXRfYnVpbGRfc25hcHNob3QoUEdTVEFU X0tJTkRfUkVMQVRJT04pOworCQllbHNlIGlmIChraW5kID09IFBHU1RBVF9LSU5EX0RBVEFC QVNFKQorCQkJcGdzdGF0X2J1aWxkX3NuYXBzaG90KFBHU1RBVF9LSU5EX0RBVEFCQVNFKTsK IAl9CiAJUEdfRklOQUxMWSgpOwogCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFzZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZp dHkvcGdzdGF0X2RhdGFiYXNlLmMKaW5kZXggMjliYzA5MDk3NDguLmEwNjBkMWE0MDQyIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2Uu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2UuYwpA QCAtNDMwLDYgKzQzMCw3IEBAIHBnc3RhdF9kYXRhYmFzZV9mbHVzaF9jYihQZ1N0YXRfRW50 cnlSZWYgKmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpCiAJcGdzdGF0X3VubG9ja19lbnRyeShl bnRyeV9yZWYpOwogCiAJbWVtc2V0KHBlbmRpbmdlbnQsIDAsIHNpemVvZigqcGVuZGluZ2Vu dCkpOworCW1lbXNldCgmKHBlbmRpbmdlbnQpLT52YWN1dW1fZXh0LCAwLCBzaXplb2YoRXh0 VmFjUmVwb3J0KSk7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMKaW5kZXggNWIwNmIwNGZhYWQuLmNjMDlh YmE1NzFmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRf cmVsYXRpb24uYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVs YXRpb24uYwpAQCAtMjE3LDYgKzIxNyw3IEBAIHBnc3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9y KE9pZCB0YWJsZW9pZCwgRXh0VmFjUmVwb3J0VHlwZSBtX3R5cGUpCiAJUGdTdGF0U2hhcmVk X1JlbGF0aW9uICpzaHRhYmVudHJ5OwogCVBnU3RhdF9TdGF0VGFiRW50cnkgKnRhYmVudHJ5 OwogCU9pZAkJCWRib2lkID0gIE15RGF0YWJhc2VJZDsKKwlQZ1N0YXRfU3RhdERCRW50cnkg KmRiZW50cnk7CS8qIHBlbmRpbmcgZGF0YWJhc2UgZW50cnkgKi8KIAogCWlmICghcGdzdGF0 X3RyYWNrX2NvdW50cykKIAkJcmV0dXJuOwpAQCAtMjMwLDYgKzIzMSwxMCBAQCBwZ3N0YXRf cmVwb3J0X3ZhY3V1bV9lcnJvcihPaWQgdGFibGVvaWQsIEV4dFZhY1JlcG9ydFR5cGUgbV90 eXBlKQogCXRhYmVudHJ5LT52YWN1dW1fZXh0LmludGVycnVwdHMrKzsKIAl0YWJlbnRyeS0+ dmFjdXVtX2V4dC50eXBlID0gbV90eXBlOwogCXBnc3RhdF91bmxvY2tfZW50cnkoZW50cnlf cmVmKTsKKworCWRiZW50cnkgPSBwZ3N0YXRfcHJlcF9kYXRhYmFzZV9wZW5kaW5nKGRib2lk KTsKKwlkYmVudHJ5LT52YWN1dW1fZXh0LmludGVycnVwdHMrKzsKKwlkYmVudHJ5LT52YWN1 dW1fZXh0LnR5cGUgPSBtX3R5cGU7CiB9CiAKIC8qCkBAIC0yNDMsNiArMjQ4LDcgQEAgcGdz dGF0X3JlcG9ydF92YWN1dW0oT2lkIHRhYmxlb2lkLCBib29sIHNoYXJlZCwKIAlQZ1N0YXRf RW50cnlSZWYgKmVudHJ5X3JlZjsKIAlQZ1N0YXRTaGFyZWRfUmVsYXRpb24gKnNodGFiZW50 cnk7CiAJUGdTdGF0X1N0YXRUYWJFbnRyeSAqdGFiZW50cnk7CisJUGdTdGF0U2hhcmVkX0Rh dGFiYXNlICpkYmVudHJ5OwogCU9pZAkJCWRib2lkID0gKHNoYXJlZCA/IEludmFsaWRPaWQg OiBNeURhdGFiYXNlSWQpOwogCVRpbWVzdGFtcFR6IHRzOwogCkBAIC0yOTYsNiArMzAyLDE2 IEBAIHBnc3RhdF9yZXBvcnRfdmFjdXVtKE9pZCB0YWJsZW9pZCwgYm9vbCBzaGFyZWQsCiAJ ICogVkFDVVVNIGNvbW1hbmQgaGFzIHByb2Nlc3NlZCBhbGwgdGFibGVzIGFuZCBjb21taXR0 ZWQuCiAJICovCiAJcGdzdGF0X2ZsdXNoX2lvKGZhbHNlKTsKKwlpZiAoZGJvaWQgIT0gSW52 YWxpZE9pZCkKKwl7CisJCWVudHJ5X3JlZiA9IHBnc3RhdF9nZXRfZW50cnlfcmVmX2xvY2tl ZChQR1NUQVRfS0lORF9EQVRBQkFTRSwKKwkJCQkJCQkJCQkJZGJvaWQsIEludmFsaWRPaWQs IGZhbHNlKTsKKwkJZGJlbnRyeSA9IChQZ1N0YXRTaGFyZWRfRGF0YWJhc2UgKikgZW50cnlf cmVmLT5zaGFyZWRfc3RhdHM7CisKKwkJcGdzdGF0X2FjY3VtdWxhdGVfZXh0dmFjX3N0YXRz KCZkYmVudHJ5LT5zdGF0cy52YWN1dW1fZXh0LCBwYXJhbXMsIGZhbHNlKTsKKwkJcGdzdGF0 X3VubG9ja19lbnRyeShlbnRyeV9yZWYpOworCX0KKwogfQogCiAvKgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvcGdzdGF0ZnVuY3MuYwppbmRleCBiODY4YjkxN2NlYi4uMGM0OTBiYTVmMWEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCkBAIC0yMDM2LDYgKzIwMzYsNyBA QCBwZ19zdGF0X2hhdmVfc3RhdHMoUEdfRlVOQ1RJT05fQVJHUykKIAogI2RlZmluZSBFWFRW QUNIRUFQU1RBVF9DT0xVTU5TCTI3CiAjZGVmaW5lIEVYVFZBQ0lEWFNUQVRfQ09MVU1OUwkx OQorI2RlZmluZSBFWFRWQUNEQlNUQVRfQ09MVU1OUwkxNQogI2RlZmluZSBFWFRWQUNTVEFU X0NPTFVNTlMgTWF4KEVYVFZBQ0hFQVBTVEFUX0NPTFVNTlMsIEVYVFZBQ0lEWFNUQVRfQ09M VU1OUykKIAogc3RhdGljIE9pZCBDdXJyZW50RGF0YWJhc2VJZCA9IEludmFsaWRPaWQ7CkBA IC0yMDc2LDYgKzIwNzcsNDggQEAgZmV0Y2hfZGJzdGF0X3RhYmVudHJ5KE9pZCBkYmlkLCBP aWQgcmVsaWQpCiAJcmV0dXJuIHRhYmVudHJ5OwogfQogCitzdGF0aWMgdm9pZAordHVwbGVz dG9yZV9wdXRfZm9yX2RhdGFiYXNlKE9pZCBkYmlkLCBUdXBsZXN0b3Jlc3RhdGUgKnR1cHN0 b3JlLAorCQkJICAgVHVwbGVEZXNjIHR1cGRlc2MsIFBnU3RhdFNoYXJlZF9EYXRhYmFzZSAq ZGJlbnRyeSwgaW50IG5jb2x1bW5zKQoreworCURhdHVtCQl2YWx1ZXNbRVhUVkFDREJTVEFU X0NPTFVNTlNdOworCWJvb2wJCW51bGxzW0VYVFZBQ0RCU1RBVF9DT0xVTU5TXTsKKwljaGFy CQlidWZbMjU2XTsKKwlpbnQJCQlpID0gMDsKKworCW1lbXNldChudWxscywgMCwgRVhUVkFD REJTVEFUX0NPTFVNTlMgKiBzaXplb2YoYm9vbCkpOworCisJdmFsdWVzW2krK10gPSBPYmpl Y3RJZEdldERhdHVtKGRiaWQpOworCisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGRi ZW50cnktPnN0YXRzLnZhY3V1bV9leHQudG90YWxfYmxrc19yZWFkKTsKKwl2YWx1ZXNbaSsr XSA9IEludDY0R2V0RGF0dW0oZGJlbnRyeS0+c3RhdHMudmFjdXVtX2V4dC50b3RhbF9ibGtz X2hpdCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGRiZW50cnktPnN0YXRzLnZh Y3V1bV9leHQudG90YWxfYmxrc19kaXJ0aWVkKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0 RGF0dW0oZGJlbnRyeS0+c3RhdHMudmFjdXVtX2V4dC50b3RhbF9ibGtzX3dyaXR0ZW4pOwor CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGRiZW50cnktPnN0YXRzLnZhY3V1bV9l eHQud2FsX3JlY29yZHMpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShkYmVudHJ5 LT5zdGF0cy52YWN1dW1fZXh0LndhbF9mcGkpOworCisJLyogQ29udmVydCB0byBudW1lcmlj LCBsaWtlIHBnX3N0YXRfc3RhdGVtZW50cyAqLworCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mIGJ1 ZiwgVUlOVDY0X0ZPUk1BVCwgZGJlbnRyeS0+c3RhdHMudmFjdXVtX2V4dC53YWxfYnl0ZXMp OworCXZhbHVlc1tpKytdID0gRGlyZWN0RnVuY3Rpb25DYWxsMyhudW1lcmljX2luLAorCQkJ CQkJCQkJICBDU3RyaW5nR2V0RGF0dW0oYnVmKSwKKwkJCQkJCQkJCSAgT2JqZWN0SWRHZXRE YXR1bSgwKSwKKwkJCQkJCQkJCSAgSW50MzJHZXREYXR1bSgtMSkpOworCisJdmFsdWVzW2kr K10gPSBGbG9hdDhHZXREYXR1bShkYmVudHJ5LT5zdGF0cy52YWN1dW1fZXh0LmJsa19yZWFk X3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZGJlbnRyeS0+c3RhdHMu dmFjdXVtX2V4dC5ibGtfd3JpdGVfdGltZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXRE YXR1bShkYmVudHJ5LT5zdGF0cy52YWN1dW1fZXh0LmRlbGF5X3RpbWUpOworCXZhbHVlc1tp KytdID0gRmxvYXQ4R2V0RGF0dW0oZGJlbnRyeS0+c3RhdHMudmFjdXVtX2V4dC5zeXN0ZW1f dGltZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShkYmVudHJ5LT5zdGF0cy52 YWN1dW1fZXh0LnVzZXJfdGltZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShk YmVudHJ5LT5zdGF0cy52YWN1dW1fZXh0LnRvdGFsX3RpbWUpOworCXZhbHVlc1tpKytdID0g SW50MzJHZXREYXR1bShkYmVudHJ5LT5zdGF0cy52YWN1dW1fZXh0LmludGVycnVwdHMpOwor CisKKwlBc3NlcnQoaSA9PSBuY29sdW1ucyk7CisKKwl0dXBsZXN0b3JlX3B1dHZhbHVlcyh0 dXBzdG9yZSwgdHVwZGVzYywgdmFsdWVzLCBudWxscyk7Cit9CisKIHN0YXRpYyB2b2lkCiB0 dXBsZXN0b3JlX3B1dF9mb3JfcmVsYXRpb24oT2lkIHJlbGlkLCBUdXBsZXN0b3Jlc3RhdGUg KnR1cHN0b3JlLAogCQkJICAgVHVwbGVEZXNjIHR1cGRlc2MsIFBnU3RhdF9TdGF0VGFiRW50 cnkgKnRhYmVudHJ5LCBpbnQgbmNvbHVtbnMpCkBAIC0yMjIwLDYgKzIyNjMsMzEgQEAgcGdf c3RhdHNfdmFjdXVtKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBFeHRWYWNSZXBvcnRUeXBl IHR5cGUsIGludCBuY29sdW1ucykKIAkJCX0KIAkJfQogCX0KKwllbHNlIGlmICh0eXBlID09 IFBHU1RBVF9FWFRWQUNfREIpCisJeworCQlQZ1N0YXRTaGFyZWRfRGF0YWJhc2UJICAgKmRi ZW50cnk7CisJCVBnU3RhdF9FbnRyeVJlZiAJCSAgICplbnRyeV9yZWY7CisJCU9pZAkJCQkJ CXN0b3JlZE15RGF0YWJhc2VJZCA9IE15RGF0YWJhc2VJZDsKKworCQlwZ3N0YXRfdXBkYXRl X3NuYXBzaG90KFBHU1RBVF9LSU5EX0RBVEFCQVNFKTsKKwkJTXlEYXRhYmFzZUlkID0gc3Rv cmVkTXlEYXRhYmFzZUlkOworCisJCWlmIChPaWRJc1ZhbGlkKGRiaWQpKQorCQl7CisJCQll bnRyeV9yZWYgPSBwZ3N0YXRfZ2V0X2VudHJ5X3JlZl9sb2NrZWQoUEdTVEFUX0tJTkRfREFU QUJBU0UsCisJCQkJCQkJCQkJCWRiaWQsIEludmFsaWRPaWQsIGZhbHNlKTsKKwkJCWRiZW50 cnkgPSAoUGdTdGF0U2hhcmVkX0RhdGFiYXNlICopIGVudHJ5X3JlZi0+c2hhcmVkX3N0YXRz OworCisJCQlpZiAoZGJlbnRyeSA9PSBOVUxMKQorCQkJCS8qIFRhYmxlIGRvZXNuJ3QgZXhp c3Qgb3IgaXNuJ3QgYSBoZWFwIHJlbGF0aW9uICovCisJCQkJUEdfUkVUVVJOX05VTEwoKTsK KworCQkJdHVwbGVzdG9yZV9wdXRfZm9yX2RhdGFiYXNlKGRiaWQsIHR1cHN0b3JlLCB0dXBk ZXNjLCBkYmVudHJ5LCBuY29sdW1ucyk7CisJCQlwZ3N0YXRfdW5sb2NrX2VudHJ5KGVudHJ5 X3JlZik7CisJCX0KKwkJZWxzZQorCQkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAJUEdfUkVU VVJOX05VTEwoKTsKIH0KIApAQCAtMjI0NCwzICsyMzEyLDE0IEBAIHBnX3N0YXRfdmFjdXVt X2luZGV4ZXMoUEdfRlVOQ1RJT05fQVJHUykKIAogCVBHX1JFVFVSTl9OVUxMKCk7CiB9CisK Ky8qCisgKiBHZXQgdGhlIHZhY3V1bSBzdGF0aXN0aWNzIGZvciB0aGUgZGF0YWJhc2UuCisg Ki8KK0RhdHVtCitwZ19zdGF0X3ZhY3V1bV9kYXRhYmFzZShQR19GVU5DVElPTl9BUkdTKQor eworCQlyZXR1cm4gcGdfc3RhdHNfdmFjdXVtKGZjaW5mbywgUEdTVEFUX0VYVFZBQ19EQiwg RVhUVkFDREJTVEFUX0NPTFVNTlMpOworCisJUEdfUkVUVVJOX05VTEwoKTsKK30KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDJlODBhMjUwMmNjLi5iMmU4ODFhYTg5ZCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0xMjI3Miw0ICsxMjI3MiwxMyBAQAogICBw cm9hcmdtb2RlcyA9PiAne2ksaSxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8s byxvfScsCiAgIHByb2FyZ25hbWVzID0+ICd7ZGJvaWQscmVsb2lkLHJlbGlkLHRvdGFsX2Js a3NfcmVhZCx0b3RhbF9ibGtzX2hpdCx0b3RhbF9ibGtzX2RpcnRpZWQsdG90YWxfYmxrc193 cml0dGVuLHJlbF9ibGtzX3JlYWQscmVsX2Jsa3NfaGl0LHBhZ2VzX2RlbGV0ZWQsdHVwbGVz X2RlbGV0ZWQsd2FsX3JlY29yZHMsd2FsX2ZwaSx3YWxfYnl0ZXMsYmxrX3JlYWRfdGltZSxi bGtfd3JpdGVfdGltZSxkZWxheV90aW1lLHN5c3RlbV90aW1lLHVzZXJfdGltZSx0b3RhbF90 aW1lLGludGVycnVwdHN9JywKICAgcHJvc3JjID0+ICdwZ19zdGF0X3ZhY3V1bV9pbmRleGVz JyB9Cit7IG9pZCA9PiAnODAwMycsCisgIGRlc2NyID0+ICdwZ19zdGF0X3ZhY3V1bV9kYXRh YmFzZSByZXR1cm4gc3RhdHMgdmFsdWVzJywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF92YWN1 dW1fZGF0YWJhc2UnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ3JlY29y ZCcscHJvaXNzdHJpY3QgPT4gJ2YnLAorICBwcm9yZXRzZXQgPT4gJ3QnLAorICBwcm9hcmd0 eXBlcyA9PiAnb2lkJywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3tvaWQsb2lkLGludDgsaW50 OCxpbnQ4LGludDgsaW50OCxpbnQ4LG51bWVyaWMsZmxvYXQ4LGZsb2F0OCxmbG9hdDgsZmxv YXQ4LGZsb2F0OCxmbG9hdDgsaW50NH0nLAorICBwcm9hcmdtb2RlcyA9PiAne2ksbyxvLG8s byxvLG8sbyxvLG8sbyxvLG8sbyxvLG99JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tkYmlkLGRi b2lkLGRiX2Jsa3NfcmVhZCxkYl9ibGtzX2hpdCx0b3RhbF9ibGtzX2RpcnRpZWQsdG90YWxf Ymxrc193cml0dGVuLHdhbF9yZWNvcmRzLHdhbF9mcGksd2FsX2J5dGVzLGJsa19yZWFkX3Rp bWUsYmxrX3dyaXRlX3RpbWUsZGVsYXlfdGltZSxzeXN0ZW1fdGltZSx1c2VyX3RpbWUsdG90 YWxfdGltZSxpbnRlcnJ1cHRzfScsCisgIHByb3NyYyA9PiAncGdfc3RhdF92YWN1dW1fZGF0 YWJhc2UnIH0sCiBdCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaCBiL3NyYy9p bmNsdWRlL3Bnc3RhdC5oCmluZGV4IDc2MmI1M2I4OGVkLi4xMTBlOTQ3MmYzYyAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcGdzdGF0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgK QEAgLTE3Myw3ICsxNzMsOCBAQCB0eXBlZGVmIGVudW0gRXh0VmFjUmVwb3J0VHlwZQogewog CVBHU1RBVF9FWFRWQUNfSU5WQUxJRCA9IDAsCiAJUEdTVEFUX0VYVFZBQ19IRUFQID0gMSwK LQlQR1NUQVRfRVhUVkFDX0lOREVYID0gMgorCVBHU1RBVF9FWFRWQUNfSU5ERVggPSAyLAor CVBHU1RBVF9FWFRWQUNfREIgPSAzLAogfSBFeHRWYWNSZXBvcnRUeXBlOwogCiAvKiAtLS0t LS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5p dHkub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dAppbmRl eCA1ZDcyYjk3MGIwMy4uNzAyNmRlMTU3ZTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9vcHJfc2FuaXR5Lm91dApAQCAtMzIsMTEgKzMyLDEyIEBAIFdIRVJFIHAxLnByb2xh bmcgPSAwIE9SIHAxLnByb3JldHR5cGUgPSAwIE9SCiAgICAgICAgcHJva2luZCBOT1QgSU4g KCdmJywgJ2EnLCAndycsICdwJykgT1IKICAgICAgICBwcm92b2xhdGlsZSBOT1QgSU4gKCdp JywgJ3MnLCAndicpIE9SCiAgICAgICAgcHJvcGFyYWxsZWwgTk9UIElOICgncycsICdyJywg J3UnKTsKLSBvaWQgIHwgICAgICAgIHByb25hbWUgICAgICAgICAKLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBvaWQgIHwgICAgICAgICBwcm9uYW1lICAgICAgICAgCist LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIDgwMDEgfCBwZ19zdGF0X3ZhY3V1 bV90YWJsZXMKICA4MDAyIHwgcGdfc3RhdF92YWN1dW1faW5kZXhlcwotKDIgcm93cykKKyA4 MDAzIHwgcGdfc3RhdF92YWN1dW1fZGF0YWJhc2UKKygzIHJvd3MpCiAKIC0tIHByb3NyYyBz aG91bGQgbmV2ZXIgYmUgbnVsbDsgaXQgY2FuIGJlIGVtcHR5IG9ubHkgaWYgcHJvc3FsYm9k eSBpc24ndCBudWxsCiBTRUxFQ1QgcDEub2lkLCBwMS5wcm9uYW1lCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4IDQzN2FhMzNmMTZjLi5jNDM4OGRkMGRhMSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTIyMjksNiArMjIyOSwyNCBA QCBwZ19zdGF0X3VzZXJfdGFibGVzfCBTRUxFQ1QgcmVsaWQsCiAgICAgYXV0b2FuYWx5emVf Y291bnQKICAgIEZST00gcGdfc3RhdF9hbGxfdGFibGVzCiAgIFdIRVJFICgoc2NoZW1hbmFt ZSA8PiBBTEwgKEFSUkFZWydwZ19jYXRhbG9nJzo6bmFtZSwgJ2luZm9ybWF0aW9uX3NjaGVt YSc6Om5hbWVdKSkgQU5EIChzY2hlbWFuYW1lICF+ICdecGdfdG9hc3QnOjp0ZXh0KSk7Citw Z19zdGF0X3ZhY3V1bV9kYXRhYmFzZXwgU0VMRUNUIGRiLm9pZCBBUyBkYm9pZCwKKyAgICBk Yi5kYXRuYW1lIEFTIGRibmFtZSwKKyAgICBzdGF0cy5kYl9ibGtzX3JlYWQsCisgICAgc3Rh dHMuZGJfYmxrc19oaXQsCisgICAgc3RhdHMudG90YWxfYmxrc19kaXJ0aWVkLAorICAgIHN0 YXRzLnRvdGFsX2Jsa3Nfd3JpdHRlbiwKKyAgICBzdGF0cy53YWxfcmVjb3JkcywKKyAgICBz dGF0cy53YWxfZnBpLAorICAgIHN0YXRzLndhbF9ieXRlcywKKyAgICBzdGF0cy5ibGtfcmVh ZF90aW1lLAorICAgIHN0YXRzLmJsa193cml0ZV90aW1lLAorICAgIHN0YXRzLmRlbGF5X3Rp bWUsCisgICAgc3RhdHMuc3lzdGVtX3RpbWUsCisgICAgc3RhdHMudXNlcl90aW1lLAorICAg IHN0YXRzLnRvdGFsX3RpbWUsCisgICAgc3RhdHMuaW50ZXJydXB0cworICAgRlJPTSAocGdf ZGF0YWJhc2UgZGIKKyAgICAgTEVGVCBKT0lOIExBVEVSQUwgcGdfc3RhdF92YWN1dW1fZGF0 YWJhc2UoZGIub2lkKSBzdGF0cyhkYm9pZCwgZGJfYmxrc19yZWFkLCBkYl9ibGtzX2hpdCwg dG90YWxfYmxrc19kaXJ0aWVkLCB0b3RhbF9ibGtzX3dyaXR0ZW4sIHdhbF9yZWNvcmRzLCB3 YWxfZnBpLCB3YWxfYnl0ZXMsIGJsa19yZWFkX3RpbWUsIGJsa193cml0ZV90aW1lLCBkZWxh eV90aW1lLCBzeXN0ZW1fdGltZSwgdXNlcl90aW1lLCB0b3RhbF90aW1lLCBpbnRlcnJ1cHRz KSBPTiAoKGRiLm9pZCA9IHN0YXRzLmRib2lkKSkpOwogcGdfc3RhdF92YWN1dW1faW5kZXhl c3wgU0VMRUNUIHJlbC5vaWQgQVMgcmVsaWQsCiAgICAgbnMubnNwbmFtZSBBUyBzY2hlbWEs CiAgICAgcmVsLnJlbG5hbWUsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGljcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3ZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Mub3V0CnNpbWlsYXJpdHkg aW5kZXggNzclCnJlbmFtZSBmcm9tIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVt X3RhYmxlc19zdGF0aXN0aWNzLm91dApyZW5hbWUgdG8gc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC92YWN1dW1fdGFibGVzX2FuZF9kYl9zdGF0aXN0aWNzLm91dAppbmRleCBiODVhNWNh YjlhZi4uZjA1MzdhYWM0MzAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Mub3V0CkBAIC02LDYg KzYsOSBAQAogLS0gbnVtYmVyIG9mIGZyb3plbiBhbmQgdmlzaWJsZSBwYWdlcyByZW1vdmVk IGJ5IGJhY2tlbmQuCiAtLSBTdGF0aXN0aWMgd2FsX2ZwaSBpcyBub3QgZGlzcGxheWVkIGlu IHRoaXMgdGVzdCBiZWNhdXNlIGl0cyBiZWhhdmlvciBpcyB1bnN0YWJsZS4KIC0tCitDUkVB VEUgREFUQUJBU0Ugc3RhdGlzdGljX3ZhY3V1bV9kYXRhYmFzZTsKK0NSRUFURSBEQVRBQkFT RSBzdGF0aXN0aWNfdmFjdXVtX2RhdGFiYXNlMTsKK1xjIHN0YXRpc3RpY192YWN1dW1fZGF0 YWJhc2U7CiAtLSBjb25kaXRpbyBzaW5lIHF1YSBub24KIFNIT1cgdHJhY2tfY291bnRzOyAg LS0gbXVzdCBiZSBvbgogIHRyYWNrX2NvdW50cyAKQEAgLTE5Niw0ICsxOTksNzkgQEAgRlJP TSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnOwogIHQg ICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICAgICAg fCB0CiAoMSByb3cpCiAKKy0tIE5vdyBjaGVjayB2YWN1dW0gc3RhdGlzdGljcyBmb3IgY3Vy cmVudCBkYXRhYmFzZQorU0VMRUNUIGRibmFtZSwKKyAgICAgICBkYl9ibGtzX2hpdCA+IDAg QVMgZGJfYmxrc19oaXQsCisgICAgICAgdG90YWxfYmxrc19kaXJ0aWVkID4gMCBBUyB0b3Rh bF9ibGtzX2RpcnRpZWQsCisgICAgICAgdG90YWxfYmxrc193cml0dGVuID4gMCBBUyB0b3Rh bF9ibGtzX3dyaXR0ZW4sCisgICAgICAgd2FsX3JlY29yZHMgPiAwIEFTIHdhbF9yZWNvcmRz LAorICAgICAgIHdhbF9mcGkgPiAwIEFTIHdhbF9mcGksCisgICAgICAgd2FsX2J5dGVzID4g MCBBUyB3YWxfYnl0ZXMsCisgICAgICAgdXNlcl90aW1lID4gMCBBUyB1c2VyX3RpbWUsCisg ICAgICAgdG90YWxfdGltZSA+IDAgQVMgdG90YWxfdGltZQorRlJPTQorcGdfc3RhdF92YWN1 dW1fZGF0YWJhc2UKK1dIRVJFIGRibmFtZSA9IGN1cnJlbnRfZGF0YWJhc2UoKTsKKyAgICAg ICAgICBkYm5hbWUgICAgICAgICAgIHwgZGJfYmxrc19oaXQgfCB0b3RhbF9ibGtzX2RpcnRp ZWQgfCB0b3RhbF9ibGtzX3dyaXR0ZW4gfCB3YWxfcmVjb3JkcyB8IHdhbF9mcGkgfCB3YWxf Ynl0ZXMgfCB1c2VyX3RpbWUgfCB0b3RhbF90aW1lIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgc3RhdGlzdGljX3ZhY3V1bV9kYXRhYmFzZSB8IHQgICAgICAg ICAgIHwgdCAgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICAgIHwgdCAgICAg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgdCAgICAgICAgIHwgdAorKDEgcm93KQor CitEUk9QIFRBQkxFIHZlc3RhdCBDQVNDQURFOworLS0gZW5zdXJlIHBlbmRpbmcgc3RhdHMg YXJlIGZsdXNoZWQKK1NFTEVDVCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2goKTsKKyBwZ19z dGF0X2ZvcmNlX25leHRfZmx1c2ggCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAor KDEgcm93KQorCitDUkVBVEUgVEFCTEUgdmVzdGF0ICh4IGludCkgV0lUSCAoYXV0b3ZhY3V1 bV9lbmFibGVkID0gb2ZmLCBmaWxsZmFjdG9yID0gMTApOworSU5TRVJUIElOVE8gdmVzdGF0 IFNFTEVDVCB4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4Owor QU5BTFlaRSB2ZXN0YXQ7CitVUERBVEUgdmVzdGF0IFNFVCB4ID0gMTAwMDE7CitWQUNVVU0g KFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgpIHZlc3RhdDsKK1xjIHN0YXRp c3RpY192YWN1dW1fZGF0YWJhc2UxOworLS0gTm93IGNoZWNrIHZhY3V1bSBzdGF0aXN0aWNz IGZvciBwb3N0Z3JlcyBkYXRhYmFzZSBmcm9tIGFub3RoZXIgZGF0YWJhc2UKK1NFTEVDVCBk Ym5hbWUsCisgICAgICAgZGJfYmxrc19oaXQgPiAwIEFTIGRiX2Jsa3NfaGl0LAorICAgICAg IHRvdGFsX2Jsa3NfZGlydGllZCA+IDAgQVMgdG90YWxfYmxrc19kaXJ0aWVkLAorICAgICAg IHRvdGFsX2Jsa3Nfd3JpdHRlbiA+IDAgQVMgdG90YWxfYmxrc193cml0dGVuLAorICAgICAg IHdhbF9yZWNvcmRzID4gMCBBUyB3YWxfcmVjb3JkcywKKyAgICAgICB3YWxfZnBpID4gMCBB UyB3YWxfZnBpLAorICAgICAgIHdhbF9ieXRlcyA+IDAgQVMgd2FsX2J5dGVzLAorICAgICAg IHVzZXJfdGltZSA+IDAgQVMgdXNlcl90aW1lLAorICAgICAgIHRvdGFsX3RpbWUgPiAwIEFT IHRvdGFsX3RpbWUKK0ZST00KK3BnX3N0YXRfdmFjdXVtX2RhdGFiYXNlCitXSEVSRSBkYm5h bWUgPSAnc3RhdGlzdGljX3ZhY3V1bV9kYXRhYmFzZSc7CisgICAgICAgICAgZGJuYW1lICAg ICAgICAgICB8IGRiX2Jsa3NfaGl0IHwgdG90YWxfYmxrc19kaXJ0aWVkIHwgdG90YWxfYmxr c193cml0dGVuIHwgd2FsX3JlY29yZHMgfCB3YWxfZnBpIHwgd2FsX2J5dGVzIHwgdXNlcl90 aW1lIHwgdG90YWxfdGltZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorIHN0YXRpc3RpY192YWN1dW1fZGF0YWJhc2UgfCB0ICAgICAgICAgICB8IHQgICAgICAg ICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IHQKKygxIHJvdykKKworXGMgc3RhdGlzdGlj X3ZhY3V1bV9kYXRhYmFzZQorUkVTRVQgdmFjdXVtX2ZyZWV6ZV9taW5fYWdlOworUkVTRVQg dmFjdXVtX2ZyZWV6ZV90YWJsZV9hZ2U7CiBEUk9QIFRBQkxFIHZlc3RhdCBDQVNDQURFOwor XGMgc3RhdGlzdGljX3ZhY3V1bV9kYXRhYmFzZTE7CitTRUxFQ1QgY291bnQoKikKK0ZST00g cGdfZGF0YWJhc2UgZAorQ1JPU1MgSk9JTiBwZ19zdGF0X3ZhY3V1bV90YWJsZXMoZC5vaWQs IDApCitXSEVSRSBvaWQgPSAwOyAtLSBtdXN0IGJlIDAKKyBjb3VudCAKKy0tLS0tLS0KKyAg ICAgMAorKDEgcm93KQorCitTRUxFQ1QgY291bnQoKikKK0ZST00gcGdfZGF0YWJhc2UgZAor Q1JPU1MgSk9JTiBwZ19zdGF0X3ZhY3V1bV9kYXRhYmFzZSgwKQorV0hFUkUgb2lkID0gMDsg LS0gbXVzdCBiZSAwCisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworXGMg cG9zdGdyZXMKK0RST1AgREFUQUJBU0Ugc3RhdGlzdGljX3ZhY3V1bV9kYXRhYmFzZTE7CitE Uk9QIERBVEFCQVNFIHN0YXRpc3RpY192YWN1dW1fZGF0YWJhc2U7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9w YXJhbGxlbF9zY2hlZHVsZQppbmRleCBiOTQwOGE0M2Y3MS4uMTI5YjExMDIwMjggMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAtMTQxLDQgKzE0MSw0IEBAIHRlc3Q6 IHRhYmxlc3BhY2UKICMgQ2hlY2sgdmFjdXVtIHN0YXRpc3RpY3MKICMgLS0tLS0tLS0tLQog dGVzdDogdmFjdXVtX2luZGV4X3N0YXRpc3RpY3MKLXRlc3Q6IHZhY3V1bV90YWJsZXNfc3Rh dGlzdGljcwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK3Rlc3Q6IHZhY3V1bV90YWJs ZXNfYW5kX2RiX3N0YXRpc3RpY3MKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Mu c3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdmFjdXVtX3RhYmxlc19hbmRfZGJfc3RhdGlz dGljcy5zcWwKc2ltaWxhcml0eSBpbmRleCA3OSUKcmVuYW1lIGZyb20gc3JjL3Rlc3QvcmVn cmVzcy9zcWwvdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzLnNxbApyZW5hbWUgdG8gc3JjL3Rl c3QvcmVncmVzcy9zcWwvdmFjdXVtX3RhYmxlc19hbmRfZGJfc3RhdGlzdGljcy5zcWwKaW5k ZXggNDFlMzg3ZGQzMDQuLjQzY2M4MDY4YjBmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Muc3FsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Muc3FsCkBAIC03LDYg KzcsMTAgQEAKIC0tIFN0YXRpc3RpYyB3YWxfZnBpIGlzIG5vdCBkaXNwbGF5ZWQgaW4gdGhp cyB0ZXN0IGJlY2F1c2UgaXRzIGJlaGF2aW9yIGlzIHVuc3RhYmxlLgogLS0KIAorQ1JFQVRF IERBVEFCQVNFIHN0YXRpc3RpY192YWN1dW1fZGF0YWJhc2U7CitDUkVBVEUgREFUQUJBU0Ug c3RhdGlzdGljX3ZhY3V1bV9kYXRhYmFzZTE7CitcYyBzdGF0aXN0aWNfdmFjdXVtX2RhdGFi YXNlOworCiAtLSBjb25kaXRpbyBzaW5lIHF1YSBub24KIFNIT1cgdHJhY2tfY291bnRzOyAg LS0gbXVzdCBiZSBvbgogLS0gbm90IGVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0IHdlIHdhbnQg dG8gdGVzdCBpdC4uLgpAQCAtMTU1LDQgKzE1OSw2NCBAQCBWQUNVVU0gKFBBUkFMTEVMIDAs IEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgpIHZlc3RhdDsKIFNFTEVDVCBwYWdlc19mcm96ZW4g PSA6cGYgQVMgcGFnZXNfZnJvemVuLHBhZ2VzX2FsbF92aXNpYmxlID0gOnB2IEFTIHBhZ2Vz X2FsbF92aXNpYmxlLHJldl9hbGxfZnJvemVuX3BhZ2VzID0gOmhhZnAgQVMgcmV2X2FsbF9m cm96ZW5fcGFnZXMscmV2X2FsbF92aXNpYmxlX3BhZ2VzID0gOmhhdnAgQVMgcmV2X2FsbF92 aXNpYmxlX3BhZ2VzCiBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1l ID0gJ3Zlc3RhdCc7CiAKLURST1AgVEFCTEUgdmVzdGF0IENBU0NBREU7ClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQorLS0gTm93IGNoZWNrIHZhY3V1bSBzdGF0aXN0aWNzIGZvciBj dXJyZW50IGRhdGFiYXNlCitTRUxFQ1QgZGJuYW1lLAorICAgICAgIGRiX2Jsa3NfaGl0ID4g MCBBUyBkYl9ibGtzX2hpdCwKKyAgICAgICB0b3RhbF9ibGtzX2RpcnRpZWQgPiAwIEFTIHRv dGFsX2Jsa3NfZGlydGllZCwKKyAgICAgICB0b3RhbF9ibGtzX3dyaXR0ZW4gPiAwIEFTIHRv dGFsX2Jsa3Nfd3JpdHRlbiwKKyAgICAgICB3YWxfcmVjb3JkcyA+IDAgQVMgd2FsX3JlY29y ZHMsCisgICAgICAgd2FsX2ZwaSA+IDAgQVMgd2FsX2ZwaSwKKyAgICAgICB3YWxfYnl0ZXMg PiAwIEFTIHdhbF9ieXRlcywKKyAgICAgICB1c2VyX3RpbWUgPiAwIEFTIHVzZXJfdGltZSwK KyAgICAgICB0b3RhbF90aW1lID4gMCBBUyB0b3RhbF90aW1lCitGUk9NCitwZ19zdGF0X3Zh Y3V1bV9kYXRhYmFzZQorV0hFUkUgZGJuYW1lID0gY3VycmVudF9kYXRhYmFzZSgpOworCitE Uk9QIFRBQkxFIHZlc3RhdCBDQVNDQURFOworCistLSBlbnN1cmUgcGVuZGluZyBzdGF0cyBh cmUgZmx1c2hlZAorU0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOworCitDUkVB VEUgVEFCTEUgdmVzdGF0ICh4IGludCkgV0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gb2Zm LCBmaWxsZmFjdG9yID0gMTApOworSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OworQU5BTFlaRSB2ZXN0YXQ7 CitVUERBVEUgdmVzdGF0IFNFVCB4ID0gMTAwMDE7CitWQUNVVU0gKFBBUkFMTEVMIDAsIEJV RkZFUl9VU0FHRV9MSU1JVCAxMjgpIHZlc3RhdDsKKworXGMgc3RhdGlzdGljX3ZhY3V1bV9k YXRhYmFzZTE7CisKKy0tIE5vdyBjaGVjayB2YWN1dW0gc3RhdGlzdGljcyBmb3IgcG9zdGdy ZXMgZGF0YWJhc2UgZnJvbSBhbm90aGVyIGRhdGFiYXNlCitTRUxFQ1QgZGJuYW1lLAorICAg ICAgIGRiX2Jsa3NfaGl0ID4gMCBBUyBkYl9ibGtzX2hpdCwKKyAgICAgICB0b3RhbF9ibGtz X2RpcnRpZWQgPiAwIEFTIHRvdGFsX2Jsa3NfZGlydGllZCwKKyAgICAgICB0b3RhbF9ibGtz X3dyaXR0ZW4gPiAwIEFTIHRvdGFsX2Jsa3Nfd3JpdHRlbiwKKyAgICAgICB3YWxfcmVjb3Jk cyA+IDAgQVMgd2FsX3JlY29yZHMsCisgICAgICAgd2FsX2ZwaSA+IDAgQVMgd2FsX2ZwaSwK KyAgICAgICB3YWxfYnl0ZXMgPiAwIEFTIHdhbF9ieXRlcywKKyAgICAgICB1c2VyX3RpbWUg PiAwIEFTIHVzZXJfdGltZSwKKyAgICAgICB0b3RhbF90aW1lID4gMCBBUyB0b3RhbF90aW1l CitGUk9NCitwZ19zdGF0X3ZhY3V1bV9kYXRhYmFzZQorV0hFUkUgZGJuYW1lID0gJ3N0YXRp c3RpY192YWN1dW1fZGF0YWJhc2UnOworCitcYyBzdGF0aXN0aWNfdmFjdXVtX2RhdGFiYXNl CisKK1JFU0VUIHZhY3V1bV9mcmVlemVfbWluX2FnZTsKK1JFU0VUIHZhY3V1bV9mcmVlemVf dGFibGVfYWdlOworRFJPUCBUQUJMRSB2ZXN0YXQgQ0FTQ0FERTsKKworXGMgc3RhdGlzdGlj X3ZhY3V1bV9kYXRhYmFzZTE7CitTRUxFQ1QgY291bnQoKikKK0ZST00gcGdfZGF0YWJhc2Ug ZAorQ1JPU1MgSk9JTiBwZ19zdGF0X3ZhY3V1bV90YWJsZXMoZC5vaWQsIDApCitXSEVSRSBv aWQgPSAwOyAtLSBtdXN0IGJlIDAKKworU0VMRUNUIGNvdW50KCopCitGUk9NIHBnX2RhdGFi YXNlIGQKK0NST1NTIEpPSU4gcGdfc3RhdF92YWN1dW1fZGF0YWJhc2UoMCkKK1dIRVJFIG9p ZCA9IDA7IC0tIG11c3QgYmUgMAorCitcYyBwb3N0Z3JlcworRFJPUCBEQVRBQkFTRSBzdGF0 aXN0aWNfdmFjdXVtX2RhdGFiYXNlMTsKK0RST1AgREFUQUJBU0Ugc3RhdGlzdGljX3ZhY3V1 bV9kYXRhYmFzZTsKLS0gCjIuMzQuMQoK --------------pH7wJoYVW1CRnjNgrE7OaUvT Content-Type: text/x-patch; charset=UTF-8; name="v5-0004-Add-documentation-about-the-system-views-that-are-us.patch" Content-Disposition: attachment; filename*0="v5-0004-Add-documentation-about-the-system-views-that-are-us"; filename*1=".patch" Content-Transfer-Encoding: base64 RnJvbSA3ZDAyZGRiOGU0MTFiNTc5Mzc1YWIzNDY2YjA5ODYyZjBkNzkxNjBhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogVGh1LCAxNSBBdWcgMjAyNCAxMTo0NDo0NyArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggNC80XSBBZGQgZG9jdW1lbnRhdGlvbiBhYm91dCB0aGUgc3lzdGVtIHZp ZXdzIHRoYXQgYXJlIHVzZWQgaW4KIHRoZSBtYWNoaW5lcnkgb2YgdmFjdXVtIHN0YXRpc3Rp Y3MuCgotLS0KIGRvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbCB8IDc0NyArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA3NDcgaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbCBi L2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbAppbmRleCA2MzRhNGMwZmFiNC4uNDJk M2FkMjE0ODYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwKQEAgLTUwNjQsNCArNTA2NCw3 NTEgQEAgU0VMRUNUICogRlJPTSBwZ19sb2NrcyBwbCBMRUZUIEpPSU4gcGdfcHJlcGFyZWRf eGFjdHMgcHB4CiAgIDwvdGFibGU+CiAgPC9zZWN0MT4KIAorPHNlY3QxIGlkPSJ2aWV3LXBn LXN0YXRzLXZhY3V1bS1kYXRhYmFzZSI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19zdGF0 X3ZhY3V1bV9kYXRhYmFzZTwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0g em9uZT0idmlldy1wZy1zdGF0cy12YWN1dW0tZGF0YWJhc2UiPgorICAgPHByaW1hcnk+cGdf c3RhdF92YWN1dW1fZGF0YWJhc2U8L3ByaW1hcnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxw YXJhPgorICAgVGhlIHZpZXcgPHN0cnVjdG5hbWU+cGdfc3RhdF92YWN1dW1fZGF0YWJhc2U8 L3N0cnVjdG5hbWU+IHdpbGwgY29udGFpbgorICAgb25lIHJvdyBmb3IgZWFjaCBkYXRhYmFz ZSBpbiB0aGUgY3VycmVudCBjbHVzdGVyLCBzaG93aW5nIHN0YXRpc3RpY3MgYWJvdXQKKyAg IHZhY3V1bWluZyB0aGF0IGRhdGFiYXNlLgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAg PHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3N0YXRfdmFjdXVtX2RhdGFiYXNlPC9zdHJ1Y3RuYW1l PiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwv cGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5 PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ ZGJpZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIE9JRCBvZiBhIGRhdGFiYXNlCisgICAgICA8L3BhcmE+PC9l bnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX2Jsa3NfcmVhZDwvc3RydWN0ZmllbGQ+IDx0eXBl PmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVt YmVyIG9mIGRhdGFiYXNlIGJsb2NrcyByZWFkIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAg ICAgIHBlcmZvcm1lZCBvbiB0aGlzIGRhdGFiYXNlCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPnRvdGFsX2Jsa3NfaGl0PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2Yg dGltZXMgZGF0YWJhc2UgYmxvY2tzIHdlcmUgZm91bmQgaW4gdGhlCisgICAgICAgIGJ1ZmZl ciBjYWNoZSBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhp cyBkYXRhYmFzZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9i bGtzX2RpcnRpZWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiBkYXRhYmFzZSBibG9ja3Mg ZGlydGllZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhp cyBkYXRhYmFzZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9i bGtzX3dyaXR0ZW48L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiBkYXRhYmFzZSBibG9ja3Mg d3JpdHRlbiBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhp cyBkYXRhYmFzZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD53YWxfcmVj b3Jkczwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICAgVG90YWwgbnVtYmVyIG9mIFdBTCByZWNvcmRzIGdlbmVy YXRlZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyBk YXRhYmFzZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD53YWxfZnBpPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgICBUb3RhbCBudW1iZXIgb2YgV0FMIGZ1bGwgcGFnZSBpbWFnZXMgZ2Vu ZXJhdGVkIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlz IGRhdGFiYXNlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPndhbF9ieXRl czwvc3RydWN0ZmllbGQ+IDx0eXBlPm51bWVyaWM8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICAgVG90YWwgYW1vdW50IG9mIFdBTCBieXRlcyBnZW5lcmF0 ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgZGF0 YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+YmxrX3JlYWRfdGlt ZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgICBUaW1lIHNwZW50IHJlYWRpbmcgZGF0YWJhc2UgYmxvY2tz IGJ5IHZhY3V1bSBvcGVyYXRpb25zIHBlcmZvcm1lZCBvbgorICAgICAgICB0aGlzIGRhdGFi YXNlLCBpbiBtaWxsaXNlY29uZHMgKGlmIDx4cmVmIGxpbmtlbmQ9Imd1Yy10cmFjay1pby10 aW1pbmciLz4gaXMgZW5hYmxlZCwKKyAgICAgICAgb3RoZXJ3aXNlIHplcm8pCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmJsa193cml0ZV90aW1lPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgIFRpbWUgc3BlbnQgd3JpdGluZyBkYXRhYmFzZSBibG9ja3MgYnkgdmFjdXVtIG9w ZXJhdGlvbnMgcGVyZm9ybWVkIG9uCisgICAgICAgIHRoaXMgZGF0YWJhc2UsIGluIG1pbGxp c2Vjb25kcyAoaWYgPHhyZWYgbGlua2VuZD0iZ3VjLXRyYWNrLWlvLXRpbWluZyIvPiBpcyBl bmFibGVkLAorICAgICAgICBvdGhlcndpc2UgemVybykKKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+ZGVsYXlfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUaW1lIHNwZW50 IHNsZWVwaW5nIGluIGEgdmFjdXVtIGRlbGF5IHBvaW50IGJ5IHZhY3V1bSBvcGVyYXRpb25z IHBlcmZvcm1lZCBvbgorICAgICAgICB0aGlzIGRhdGFiYXNlLCBpbiBtaWxsaXNlY29uZHMg KHNlZSA8eHJlZiBsaW5rZW5kPSJydW50aW1lLWNvbmZpZy1yZXNvdXJjZS12YWN1dW0tY29z dCIvPgorICAgICAgICBmb3IgZGV0YWlscykKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+c3lzdGVtX3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgU3lzdGVtIENQVSB0aW1l IG9mIHZhY3V1bWluZyB0aGlzIGRhdGFiYXNlLCBpbiBtaWxsaXNlY29uZHMKKyAgICAgIDwv cGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dXNlcl90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+ZmxvYXQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg IFVzZXIgQ1BVIHRpbWUgb2YgdmFjdXVtaW5nIHRoaXMgZGF0YWJhc2UsIGluIG1pbGxpc2Vj b25kcworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF90aW1lPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgIFRvdGFsIHRpbWUgb2YgdmFjdXVtaW5nIHRoaXMgZGF0YWJhc2Us IGluIG1pbGxpc2Vjb25kcworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5p bnRlcnJ1cHRzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50NDwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgdGltZXMgdmFjdXVtIG9wZXJh dGlvbnMgcGVyZm9ybWVkIG9uIHRoaXMgZGF0YWJhc2UKKyAgICAgICAgd2VyZSBpbnRlcnJ1 cHRlZCBvbiBhbnkgZXJyb3JzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisK KyAgPHNlY3QxIGlkPSJ2aWV3LXBnLXN0YXRzLXZhY3V1bS1pbmRleGVzIj4KKyAgPHRpdGxl PjxzdHJ1Y3RuYW1lPnBnX3N0YXRfdmFjdXVtX2luZGV4ZXM8L3N0cnVjdG5hbWU+PC90aXRs ZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9InZpZXctcGctc3RhdHMtdmFjdXVtLWluZGV4ZXMi PgorICAgPHByaW1hcnk+cGdfc3RhdF92YWN1dW1faW5kZXhlczwvcHJpbWFyeT4KKyAgPC9p bmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgdmlldyA8c3RydWN0bmFtZT5wZ19zdGF0 X3ZhY3V1bV9pbmRleGVzPC9zdHJ1Y3RuYW1lPiB3aWxsIGNvbnRhaW4KKyAgIG9uZSByb3cg Zm9yIGVhY2ggaW5kZXggaW4gdGhlIGN1cnJlbnQgZGF0YWJhc2UgKGluY2x1ZGluZyBUT0FT VAorICAgdGFibGUgaW5kZXhlcyksIHNob3dpbmcgc3RhdGlzdGljcyBhYm91dCB2YWN1dW1p bmcgdGhhdCBzcGVjaWZpYyBpbmRleC4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0 aXRsZT48c3RydWN0bmFtZT5wZ19zdGF0X3ZhY3V1bV9pbmRleGVzPC9zdHJ1Y3RuYW1lPiBD b2x1bW5zPC90aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAg PC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5Pgor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cmVs aWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBPSUQgb2YgYW4gaW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+c2NoZW1hPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+bmFtZTwvdHlwZT4K KyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOYW1lIG9mIHRoZSBzY2hl bWEgdGhpcyBpbmRleCBpcyBpbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD5yZWxuYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+bmFtZTwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhpcyBpbmRleAorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9ibGtzX3JlYWQ8L3N0cnVjdGZpZWxk PiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgIE51bWJlciBvZiBkYXRhYmFzZSBibG9ja3MgcmVhZCBieSB2YWN1dW0gb3BlcmF0aW9u cworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyBpbmRleAorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9ibGtzX2hpdDwvc3RydWN0ZmllbGQ+IDx0eXBlPmlu dDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVy IG9mIHRpbWVzIGRhdGFiYXNlIGJsb2NrcyB3ZXJlIGZvdW5kIGluIHRoZQorICAgICAgICBi dWZmZXIgY2FjaGUgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9u IHRoaXMgaW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxf Ymxrc19kaXJ0aWVkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGF0YWJhc2UgYmxvY2tz IGRpcnRpZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRo aXMgaW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfYmxr c193cml0dGVuPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGF0YWJhc2UgYmxvY2tzIHdy aXR0ZW4gYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMg aW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cmVsX2Jsa3NfcmVh ZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIGJsb2NrcyB2YWN1dW0gb3BlcmF0aW9ucyBy ZWFkIGZyb20gdGhpcworICAgICAgICBpbmRleAorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD5yZWxfYmxrc19oaXQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBl PgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiB0aW1l cyBibG9ja3Mgb2YgdGhpcyBpbmRleCB3ZXJlIGFscmVhZHkgZm91bmQKKyAgICAgICAgaW4g dGhlIGJ1ZmZlciBjYWNoZSBieSB2YWN1dW0gb3BlcmF0aW9ucywgc28gdGhhdCBhIHJlYWQg d2FzIG5vdCBuZWNlc3NhcnkKKyAgICAgICAgKHRoaXMgb25seSBpbmNsdWRlcyBoaXRzIGlu IHRoZQorICAgICAgICAmcHJvamVjdDsgYnVmZmVyIGNhY2hlLCBub3QgdGhlIG9wZXJhdGlu ZyBzeXN0ZW0ncyBmaWxlIHN5c3RlbSBjYWNoZSkKKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+cGFnZXNfZGVsZXRlZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHBh Z2VzIGRlbGV0ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9u IHRoaXMgaW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dHVwbGVz X2RlbGV0ZWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiBkZWFkIHR1cGxlcyB2YWN1dW0g b3BlcmF0aW9ucyBkZWxldGVkIGZyb20gdGhpcyBpbmRleAorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD53YWxfcmVjb3Jkczwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVG90YWwgbnVt YmVyIG9mIFdBTCByZWNvcmRzIGdlbmVyYXRlZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAg ICAgICBwZXJmb3JtZWQgb24gdGhpcyBpbmRleAorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD53YWxfZnBpPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUb3RhbCBudW1iZXIgb2YgV0FM IGZ1bGwgcGFnZSBpbWFnZXMgZ2VuZXJhdGVkIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAg ICAgIHBlcmZvcm1lZCBvbiB0aGlzIGluZGV4CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPndhbF9ieXRlczwvc3RydWN0ZmllbGQ+IDx0eXBlPm51bWVyaWM8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVG90YWwgYW1vdW50IG9m IFdBTCBieXRlcyBnZW5lcmF0ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVy Zm9ybWVkIG9uIHRoaXMgaW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+YmxrX3JlYWRfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCByZWFkaW5nIGRh dGFiYXNlIGJsb2NrcyBieSB2YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24KKyAgICAg ICAgdGhpcyBpbmRleCwgaW4gbWlsbGlzZWNvbmRzIChpZiA8eHJlZiBsaW5rZW5kPSJndWMt dHJhY2staW8tdGltaW5nIi8+IGlzIGVuYWJsZWQsCisgICAgICAgIG90aGVyd2lzZSB6ZXJv KQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ibGtfd3JpdGVfdGltZTwv c3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCB3cml0aW5nIGRhdGFiYXNlIGJsb2NrcyBieSB2 YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24KKyAgICAgICAgdGhpcyBpbmRleCwgaW4g bWlsbGlzZWNvbmRzIChpZiA8eHJlZiBsaW5rZW5kPSJndWMtdHJhY2staW8tdGltaW5nIi8+ IGlzIGVuYWJsZWQsCisgICAgICAgIG90aGVyd2lzZSB6ZXJvKQorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5kZWxheV90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Zmxv YXQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRpbWUg c3BlbnQgc2xlZXBpbmcgaW4gYSB2YWN1dW0gZGVsYXkgcG9pbnQgYnkgdmFjdXVtIG9wZXJh dGlvbnMgcGVyZm9ybWVkIG9uCisgICAgICAgIHRoaXMgaW5kZXgsIGluIG1pbGxpc2Vjb25k cyAoc2VlIDx4cmVmIGxpbmtlbmQ9InJ1bnRpbWUtY29uZmlnLXJlc291cmNlLXZhY3V1bS1j b3N0Ii8+CisgICAgICAgIGZvciBkZXRhaWxzKQorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD5zeXN0ZW1fdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlw ZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBTeXN0ZW0gQ1BVIHRp bWUgb2YgdmFjdXVtaW5nIHRoaXMgaW5kZXgsIGluIG1pbGxpc2Vjb25kcworICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD51c2VyX3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlw ZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAg VXNlciBDUFUgdGltZSBvZiB2YWN1dW1pbmcgdGhpcyBpbmRleCwgaW4gbWlsbGlzZWNvbmRz CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX3RpbWU8L3N0cnVj dGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICAgVG90YWwgdGltZSBvZiB2YWN1dW1pbmcgdGhpcyBpbmRleCwgaW4gbWls bGlzZWNvbmRzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmludGVycnVw dHM8L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRpbWVzIHZhY3V1bSBvcGVyYXRpb25z IHBlcmZvcm1lZCBvbiB0aGlzIGluZGV4CisgICAgICAgIHdlcmUgaW50ZXJydXB0ZWQgb24g YW55IGVycm9ycworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwv dGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3Qx IGlkPSJ2aWV3LXBnLXN0YXRzLXZhY3V1bS10YWJsZXMiPgorICA8dGl0bGU+PHN0cnVjdG5h bWU+cGdfc3RhdF92YWN1dW1fdGFibGVzPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGlu ZGV4dGVybSB6b25lPSJ2aWV3LXBnLXN0YXRzLXZhY3V1bS10YWJsZXMiPgorICAgPHByaW1h cnk+cGdfc3RhdF92YWN1dW1fdGFibGVzPC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKwor ICA8cGFyYT4KKyAgIFRoZSB2aWV3IDxzdHJ1Y3RuYW1lPnBnX3N0YXRfdmFjdXVtX3RhYmxl czwvc3RydWN0bmFtZT4gd2lsbCBjb250YWluCisgICBvbmUgcm93IGZvciBlYWNoIHRhYmxl IGluIHRoZSBjdXJyZW50IGRhdGFiYXNlIChpbmNsdWRpbmcgVE9BU1QKKyAgIHRhYmxlcyks IHNob3dpbmcgc3RhdGlzdGljcyBhYm91dCB2YWN1dW1pbmcgdGhhdCBzcGVjaWZpYyB0YWJs ZS4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19z dGF0X3ZhY3V1bV90YWJsZXM8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRn cm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5yZWxpZDwvc3RydWN0ZmllbGQ+IDx0eXBl Pm9pZDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE9JRCBv ZiBhIHRhYmxlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnNjaGVtYTwv c3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICAgTmFtZSBvZiB0aGUgc2NoZW1hIHRoaXMgdGFibGUgaXMgaW4KKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cmVsbmFtZTwvc3RydWN0ZmllbGQ+ IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBOYW1lIG9mIHRoaXMgdGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+dG90YWxfYmxrc19yZWFkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGF0YWJhc2Ug YmxvY2tzIHJlYWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9u IHRoaXMgdGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxf Ymxrc19oaXQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiB0aW1lcyBkYXRhYmFzZSBibG9j a3Mgd2VyZSBmb3VuZCBpbiB0aGUKKyAgICAgICAgYnVmZmVyIGNhY2hlIGJ5IHZhY3V1bSBv cGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIHRhYmxlCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX2Jsa3NfZGlydGllZDwvc3RydWN0Zmll bGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICAgTnVtYmVyIG9mIGRhdGFiYXNlIGJsb2NrcyBkaXJ0aWVkIGJ5IHZhY3V1bSBvcGVy YXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIHRhYmxlCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX2Jsa3Nfd3JpdHRlbjwvc3RydWN0ZmllbGQ+ IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICAgTnVtYmVyIG9mIGRhdGFiYXNlIGJsb2NrcyB3cml0dGVuIGJ5IHZhY3V1bSBvcGVyYXRp b25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIHRhYmxlCisgICAgICA8L3BhcmE+PC9l bnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPnJlbF9ibGtzX3JlYWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5p bnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJl ciBvZiBibG9ja3MgdmFjdXVtIG9wZXJhdGlvbnMgcmVhZCBmcm9tIHRoaXMKKyAgICAgICAg dGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cmVsX2Jsa3NfaGl0 PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgdGltZXMgYmxvY2tzIG9mIHRoaXMgdGFibGUg d2VyZSBhbHJlYWR5IGZvdW5kCisgICAgICAgIGluIHRoZSBidWZmZXIgY2FjaGUgYnkgdmFj dXVtIG9wZXJhdGlvbnMsIHNvIHRoYXQgYSByZWFkIHdhcyBub3QgbmVjZXNzYXJ5CisgICAg ICAgICh0aGlzIG9ubHkgaW5jbHVkZXMgaGl0cyBpbiB0aGUKKyAgICAgICAgJnByb2plY3Q7 IGJ1ZmZlciBjYWNoZSwgbm90IHRoZSBvcGVyYXRpbmcgc3lzdGVtJ3MgZmlsZSBzeXN0ZW0g Y2FjaGUpCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJv dz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBhZ2VzX3NjYW5u ZWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiBwYWdlcyBleGFtaW5lZCBieSB2YWN1dW0g b3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyB0YWJsZQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wYWdlc19yZW1vdmVkPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg ICBOdW1iZXIgb2YgcGFnZXMgcmVtb3ZlZCBmcm9tIHRoZSBwaHlzaWNhbCBzdG9yYWdlIGJ5 IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIHRhYmxlCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBhZ2VzX2Zyb3plbjwvc3RydWN0 ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICAgTnVtYmVyIG9mIHRpbWVzIHZhY3V1bSBvcGVyYXRpb25zIG1hcmtlZCBwYWdl cyBvZiB0aGlzIHRhYmxlCisgICAgICAgIGFzIGFsbC1mcm96ZW4gaW4gdGhlIHZpc2liaWxp dHkgbWFwCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJv dz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBhZ2VzX2FsbF92 aXNpYmxlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgdGltZXMgdmFjdXVtIG9wZXJhdGlv bnMgbWFya2VkIHBhZ2VzIG9mIHRoaXMgdGFibGUKKyAgICAgICAgYXMgYWxsLXZpc2libGUg aW4gdGhlIHZpc2liaWxpdHkgbWFwCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPnR1cGxlc19kZWxldGVkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGVhZCB0dXBs ZXMgdmFjdXVtIG9wZXJhdGlvbnMgZGVsZXRlZCBmcm9tIHRoaXMgdGFibGUKKyAgICAgIDwv cGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dHVwbGVzX2Zyb3plbjwvc3RydWN0ZmllbGQ+ IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICAgTnVtYmVyIG9mIHR1cGxlcyBvZiB0aGlzIHRhYmxlIHRoYXQgdmFjdXVtIG9wZXJhdGlv bnMgbWFya2VkIGFzCisgICAgICAgIGZyb3plbgorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD5kZWFkX3R1cGxlczwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIGRlYWQg dHVwbGVzIHZhY3V1bSBvcGVyYXRpb25zIGxlZnQgaW4gdGhpcyB0YWJsZSBkdWUKKyAgICAg ICAgdG8gdGhlaXIgdmlzaWJpbGl0eSBpbiB0cmFuc2FjdGlvbnMKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+aW5kZXhfdmFjdXVtX2NvdW50PC9zdHJ1Y3RmaWVsZD4g PHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg ICBOdW1iZXIgb2YgdGltZXMgaW5kZXhlcyBvbiB0aGlzIHRhYmxlIHdlcmUgdmFjdXVtZWQK KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cmV2X2FsbF9mcm96ZW5fcGFn ZXM8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiB0aW1lcyB0aGUgYWxsLWZyb3plbiBtYXJr IGluIHRoZSB2aXNpYmlsaXR5IG1hcAorICAgICAgICB3YXMgcmVtb3ZlZCBmb3IgcGFnZXMg b2YgdGhpcyB0YWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisg ICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5yZXZf YWxsX3Zpc2libGVfcGFnZXM8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiB0aW1lcyB0aGUg YWxsLXZpc2libGUgbWFyayBpbiB0aGUgdmlzaWJpbGl0eSBtYXAKKyAgICAgICAgd2FzIHJl bW92ZWQgZm9yIHBhZ2VzIG9mIHRoaXMgdGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+d2FsX3JlY29yZHM8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBl PgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRvdGFsIG51bWJlciBv ZiBXQUwgcmVjb3JkcyBnZW5lcmF0ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAg cGVyZm9ybWVkIG9uIHRoaXMgdGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+d2FsX2ZwaTwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVG90YWwgbnVtYmVyIG9mIFdBTCBmdWxs IHBhZ2UgaW1hZ2VzIGdlbmVyYXRlZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBw ZXJmb3JtZWQgb24gdGhpcyB0YWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD53YWxfYnl0ZXM8L3N0cnVjdGZpZWxkPiA8dHlwZT5udW1lcmljPC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRvdGFsIGFtb3VudCBvZiBXQUwg Ynl0ZXMgZ2VuZXJhdGVkIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1l ZCBvbiB0aGlzIHRhYmxlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmJs a19yZWFkX3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRpbWUgc3BlbnQgcmVhZGluZyBkYXRhYmFz ZSBibG9ja3MgYnkgdmFjdXVtIG9wZXJhdGlvbnMgcGVyZm9ybWVkIG9uCisgICAgICAgIHRo aXMgdGFibGUsIGluIG1pbGxpc2Vjb25kcyAoaWYgPHhyZWYgbGlua2VuZD0iZ3VjLXRyYWNr LWlvLXRpbWluZyIvPiBpcyBlbmFibGVkLAorICAgICAgICBvdGhlcndpc2UgemVybykKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+YmxrX3dyaXRlX3RpbWU8L3N0cnVj dGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgIFRpbWUgc3BlbnQgd3JpdGluZyBkYXRhYmFzZSBibG9ja3MgYnkgdmFjdXVt IG9wZXJhdGlvbnMgcGVyZm9ybWVkIG9uCisgICAgICAgIHRoaXMgdGFibGUsIGluIG1pbGxp c2Vjb25kcyAoaWYgPHhyZWYgbGlua2VuZD0iZ3VjLXRyYWNrLWlvLXRpbWluZyIvPiBpcyBl bmFibGVkLAorICAgICAgICBvdGhlcndpc2UgemVybykKKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+ZGVsYXlfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUaW1lIHNwZW50 IHNsZWVwaW5nIGluIGEgdmFjdXVtIGRlbGF5IHBvaW50IGJ5IHZhY3V1bSBvcGVyYXRpb25z IHBlcmZvcm1lZCBvbgorICAgICAgICB0aGlzIHRhYmxlLCBpbiBtaWxsaXNlY29uZHMgKHNl ZSA8eHJlZiBsaW5rZW5kPSJydW50aW1lLWNvbmZpZy1yZXNvdXJjZS12YWN1dW0tY29zdCIv PgorICAgICAgICBmb3IgZGV0YWlscykKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+c3lzdGVtX3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+Cisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgU3lzdGVtIENQVSB0aW1lIG9m IHZhY3V1bWluZyB0aGlzIHRhYmxlLCBpbiBtaWxsaXNlY29uZHMKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+dXNlcl90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Zmxv YXQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFVzZXIg Q1BVIHRpbWUgb2YgdmFjdXVtaW5nIHRoaXMgdGFibGUsIGluIG1pbGxpc2Vjb25kcworICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF90aW1lPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgIFRvdGFsIHRpbWUgb2YgdmFjdXVtaW5nIHRoaXMgdGFibGUsIGluIG1pbGxpc2Vj b25kcworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5pbnRlcnJ1cHRzPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgIE51bWJlciBvZiB0aW1lcyB2YWN1dW0gb3BlcmF0aW9ucyBwZXJm b3JtZWQgb24gdGhpcyB0YWJsZQorICAgICAgICB3ZXJlIGludGVycnVwdGVkIG9uIGFueSBl cnJvcnMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5 PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+CisgIDxwYXJhPkNvbHVtbnMgPHN0cnVjdGZp ZWxkPnRvdGFsXyo8L3N0cnVjdGZpZWxkPiwgPHN0cnVjdGZpZWxkPndhbF8qPC9zdHJ1Y3Rm aWVsZD4KKyAgICBhbmQgPHN0cnVjdGZpZWxkPmJsa18qPC9zdHJ1Y3RmaWVsZD4gaW5jbHVk ZSBkYXRhIG9uIHZhY3V1bWluZyBpbmRleGVzIG9uIHRoaXMgdGFibGUsIHdoaWxlIGNvbHVt bnMKKyAgICA8c3RydWN0ZmllbGQ+c3lzdGVtX3RpbWU8L3N0cnVjdGZpZWxkPiBhbmQgPHN0 cnVjdGZpZWxkPnVzZXJfdGltZTwvc3RydWN0ZmllbGQ+IG9ubHkgaW5jbHVkZSBkYXRhCisg ICAgb24gdmFjdXVtaW5nIHRoZSBoZWFwLjwvcGFyYT4KKyA8L3NlY3QxPgorCiA8L2NoYXB0 ZXI+Ci0tIAoyLjM0LjEKCg== --------------pH7wJoYVW1CRnjNgrE7OaUvT--