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 1tODuf-004wXI-LA for pgsql-hackers@arkaria.postgresql.org; Thu, 19 Dec 2024 10:37:51 +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 1tODue-00AxuZ-Hk for pgsql-hackers@arkaria.postgresql.org; Thu, 19 Dec 2024 10:37:48 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tODud-00AxuK-B8 for pgsql-hackers@lists.postgresql.org; Thu, 19 Dec 2024 10:37:47 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tODuQ-000Mm3-7e for pgsql-hackers@postgresql.org; Thu, 19 Dec 2024 10:37:45 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1734604650; bh=DLr4I31tcbTm5TNlmWn4WJgM7KOe3tmHN+aJ4M3n5u4=; h=Message-ID:Date:User-Agent:Subject:From:To:Cc:References: In-Reply-To:From; b=EWXfvh/Mx/GdTw++0Wx5tKsbVUQeJ8hfIrn3rmjZsGXBCuZn6tHpQpRfEOz8iJQuo xIziFNuL4nh1WhTxJtjY9OwWTkDRmrEii0N4JioVmESe3L71C/amuT9UQX4Zz2D2vK uQVFajoUstokgk6YHJDQSwiP2QRmKtv9LCWZ1Et6WTKwnHfj8M7rjqBA17XMOjpG2h owety9yltW62Yr7VJ16PgBB3efbIE7hK5y3w4klCdLAbkWgaxZk9LIoNnMYtIcID0t wjbLpVvM/SmaToStapvVapGRBTbYDZB2HRmf2J+4/zUdbZsc7PBsOZe7eH277eU5MH 81fSF9RjHFzPw== Received: from [10.4.12.74] (unknown [93.174.131.141]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: a.rybakina@postgrespro.ru) by mail.postgrespro.ru (Postfix/587) with ESMTPSA id 0A7DB606B2; Thu, 19 Dec 2024 13:37:30 +0300 (MSK) Content-Type: multipart/mixed; boundary="------------g7I0Wbo7Ykyo94XxnooGxlss" Message-ID: <86f76aa5-1ab5-4e2e-9b15-405051852a2a@postgrespro.ru> Date: Thu, 19 Dec 2024 13:37:29 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Vacuum statistics From: Alena Rybakina To: Alexander Korotkov , Jim Nasby , Ilia Evdokimov , Kirill Reshke Cc: Andrei Zubkov , Masahiko Sawada , Melanie Plageman , jian he , pgsql-hackers , a.lepikhov@postgrespro.ru References: <9b10c6d3-52c4-4eef-b67c-c33442667729@postgrespro.ru> <9485d892-fd04-4e3a-ac24-7dd767cb7333@postgrespro.ru> <0B6CBF4C-CC2A-4200-9126-CE3A390D938B@upgrade.com> <6732acf8ce0f31025b535ae1a64568750924a887.camel@moonset.ru> <5AA8FFD5-6DE2-4A31-8E00-AE98F738F5D1@upgrade.com> <85b963fe-5977-43aa-9241-75b862abcc69@postgrespro.ru> <9C7A167C-DCDE-4A17-9ABE-6276723FEC50@upgrade.com> <2d493cf9-9ba7-4cc1-a3f2-67afd7c163ee@postgrespro.ru> <30d54302-9e9c-4e04-819e-a13b679cdcc8@postgrespro.ru> Content-Language: en-US In-Reply-To: <30d54302-9e9c-4e04-819e-a13b679cdcc8@postgrespro.ru> X-KSMG-AntiPhishing: NotDetected, bases: 2024/12/19 09:58: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/12/19 06:47:00 #26889573 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. --------------g7I0Wbo7Ykyo94XxnooGxlss Content-Type: multipart/alternative; boundary="------------FEAz1026fXfuTFHk6a08CFXb" --------------FEAz1026fXfuTFHk6a08CFXb Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi! I updated patch. On 02.12.2024 23:12, Alena Rybakina wrote: > On 02.12.2024 11:27, Alexander Korotkov wrote: >> Hi, Alena! >> >> On Wed, Nov 13, 2024 at 6:21 PM Alena Rybakina >> wrote: >>> Updated 0001-v13 attached, as well as the diff between v12 and v13. >>> >>> Thank you) >>> >>> And I agree with your changes. And included them in patches. >> Thank you for the updated patchset. Some points from me. >> >> * I've read the previous discussion on how important to keep all these >> fields regarding vacuum statistics including points by Andrei and Jim. >> It still worrying me that statistics volume is going to burst in about >> 3 times, but I don't have a particular proposal on how to make more >> granular approach. I wonder if you could propose something. I propose to solve this with a guc (track_vacuum_statistics) that will allow us to disable statistics collection or enable it back when needed. This statistics is useful if you collect it over a certain period of time and watch the dynamics of the change, so I think a hook will not hurt here. I also added new statistics vm_new_visible_frozen_pages due to the dc6acfd commit and renamed some of my statistics from frozen_pages to vm_new_frozen_pages and all-visible_pages to vm_new_visible_pages. I also added statistics missed_tupes, missed_pages. Both are necessary to take into account how many tuples were not cleared by vacuum due to failure to acquire a cleanup lock on a heap page. The second statistics missed_pages will allow you to track whether this is one particular page or not. This information can make it clear that perhaps the data is broken somewhere or there is an error in the operation of the database, for example. >> * Previously PGSTAT_FILE_FORMAT_ID got increased by 1. Your 0001 patch >> increases it by 2. It's minor note, but I'd like to keep the >> tradition. Fixed >> * Commit message for 0001 looks nice, but commit messages of 0002, >> 0003, and 0004 look messy. Could you please, rearrange them. Fixed >> * The distinction between 0001 and 0002 is not clear. The first line >> of 0001 is "Machinery for grabbing an extended vacuum statistics on >> heap relations", the first line of 0002 is "Machinery for grabbing an >> extended vacuum statistics on heap and index relations." I guess 0001 >> should be about heap relations while 0002 should be about just index >> relations. Is this correct? Fixed >> * I guess this statistics should work for any table AM, based on what >> has been done in relation_vacuum() interface method. If that's >> correct, we need to get rid of "heap" terminology and use "table" >> instead. Fixed >> * 0004 should be pure documentation patch, but it seems containing >> changes to isolation tests. Please, move them into a more appropriate >> place. >> Fixed Thanks for your review, it was very helpful) I also noticed that my stats for indexes were not being collected while parallel vacuum was running. I fixed it by adding some extra code that basically captured changes to the parallel_vacuum_process_all_indexes function. I used a script like this to check if everything was correct. pgbench -d postgres -i -s 10 my/inst/bin/pg_basebackup -D ~/backup #psql --check parallel vacuum statistics create index accounts_idx1 on pgbench_accounts(bid); create index accounts_idx2 on pgbench_accounts(aid, bid); delete from pgbench_accounts where aid >5; set max_parallel_maintenance_workers = 8; VACUUM (PARALLEL 3) pgbench_accounts; create index accounts_idx1 on pgbench_accounts(bid); create index accounts_idx2 on pgbench_accounts(aid, bid); delete from pgbench_accounts where aid >5; set max_parallel_maintenance_workers = 8; VACUUM (PARALLEL 3) pgbench_accounts; pg_ctl -D ../postgres_data11 -l logfile stop rm -rf ../postgres_data/* cp -r ~/backup/* ~/postgres_data/ pg_ctl -D ../postgres_data11 -l logfile start --check vacuum statistics processed by postmaster only create index accounts_idx1 on pgbench_accounts(bid); create index accounts_idx2 on pgbench_accounts(aid, bid); delete from pgbench_accounts where aid >5; set max_parallel_maintenance_workers = 8; VACUUM (PARALLEL 0) pgbench_accounts; To view statistics: select vt.relname, total_blks_read AS total_blks_read,   total_blks_hit AS total_blks_hit,   total_blks_dirtied AS total_blks_dirtied,   total_blks_written AS total_blks_written,   rel_blks_read AS rel_blks_read,   rel_blks_hit AS rel_blks_hit,   pages_deleted AS pages_deleted,   tuples_deleted AS tuples_deleted,   wal_records AS wal_records,   wal_fpi AS wal_fpi,   wal_bytes AS wal_bytes,   blk_read_time AS blk_read_time,   blk_write_time AS blk_write_time,   delay_time AS delay_time,   total_time AS total_time   FROM pg_stat_get_vacuum_indexes vt, pg_class c WHERE (vt.relname='accounts_idx1' or vt.relname='accounts_idx2' or vt.relname = 'pgbench_accounts_pkey') AND vt.relid = c.oid; select stats.relname,stats.total_blks_read AS total_blks_read,   stats.total_blks_hit AS total_blks_hit,   stats.total_blks_dirtied AS total_blks_dirtied,   stats.total_blks_written AS total_blks_written,   stats.rel_blks_read AS rel_blks_read,   stats.rel_blks_hit AS rel_blks_hit,   stats.pages_scanned AS pages_scanned,   stats.pages_removed AS pages_removed,   stats.pages_frozen AS pages_frozen,   stats.pages_all_visible AS pages_all_visible,   stats.tuples_deleted AS tuples_deleted,   stats.tuples_frozen AS tuples_frozen,   stats.dead_tuples AS dead_tuples,   stats.index_vacuum_count AS index_vacuum_count,   stats.wal_records AS wal_records,   stats.wal_fpi AS wal_fpi,   stats.wal_bytes AS wal_bytes,   stats.blk_read_time AS blk_read_time,   stats.blk_write_time AS blk_write_time,   stats.delay_time AS delay_time,   stats.total_time AS total_time from pg_stat_vacuum_tables stats, pg_stat_all_tables  WHERE stats.relname = 'pgbench_accounts' and stats.relid = pg_stat_all_tables.relid; output_single_19I got the following results and stored them in output_single_19 and output_parallel_19 files. I noticed that rel_blks_read and rel_blks_hit are too small compared to the vacuum statistics when the vacuum is not parallel. I suspect that this problem is related to the fact that the relationship statistics have not reached that time. You can see that they are calculated in my patch like this: report->blks_fetched =     rel->pgstat_info->counts.blocks_fetched - counters->blocks_fetched;   report->blks_hit =     rel->pgstat_info->counts.blocks_hit - counters->blocks_hit; The second thing that bothered me was that some table stats differ in the fields total_blks_read, rel_blks_read, pages_removed. If with the buffer this could be related to the fact that in a single run we rely on the stats of the global buffer and shaft statistics and this could explain why there are more of them, then with pages_removed I have no explanation yet as to what could have happened. I am still studying this. When you have time, take a look at the patches, I will be glad to receive any feedback. -- Regards, Alena Rybakina Postgres Professional --------------FEAz1026fXfuTFHk6a08CFXb Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit

Hi! I updated patch.

On 02.12.2024 23:12, Alena Rybakina wrote:
On 02.12.2024 11:27, Alexander Korotkov wrote:
Hi, Alena!

On Wed, Nov 13, 2024 at 6:21 PM Alena Rybakina
<a.rybakina@postgrespro.ru> wrote:
Updated 0001-v13 attached, as well as the diff between v12 and v13.

Thank you)

And I agree with your changes. And included them in patches.
Thank you for the updated patchset.  Some points from me.

* I've read the previous discussion on how important to keep all these
fields regarding vacuum statistics including points by Andrei and Jim.
It still worrying me that statistics volume is going to burst in about
3 times, but I don't have a particular proposal on how to make more
granular approach.  I wonder if you could propose something.

I propose to solve this with a guc (track_vacuum_statistics) that will allow us to disable statistics collection or enable it back when needed. This statistics is useful if you collect it over a certain period of time and watch the dynamics of the change, so I think a hook will not hurt here. 

I also added new statistics vm_new_visible_frozen_pages due to the dc6acfd commit and renamed some of my statistics from frozen_pages to vm_new_frozen_pages and all-visible_pages to vm_new_visible_pages. I also added statistics missed_tupes, missed_pages. Both are necessary to take into account how many tuples were not cleared by vacuum due to failure to acquire a cleanup lock on a heap page. The second statistics missed_pages will allow you to track whether this is one particular page or not. 

This information can make it clear that perhaps the data is broken somewhere or there is an error in the operation of the database, for example.

* Previously PGSTAT_FILE_FORMAT_ID got increased by 1. Your 0001 patch
increases it by 2.  It's minor note, but I'd like to keep the
tradition.
Fixed
* Commit message for 0001 looks nice, but commit messages of 0002,
0003, and 0004 look messy.  Could you please, rearrange them.
Fixed
* The distinction between 0001 and 0002 is not clear. The first line
of 0001 is "Machinery for grabbing an extended vacuum statistics on
heap relations", the first line of 0002 is "Machinery for grabbing an
extended vacuum statistics on heap and index relations."  I guess 0001
should be about heap relations while 0002 should be about just index
relations.  Is this correct?
Fixed
* I guess this statistics should work for any table AM, based on what
has been done in relation_vacuum() interface method.  If that's
correct, we need to get rid of "heap" terminology and use "table"
instead.
Fixed
* 0004 should be pure documentation patch, but it seems containing
changes to isolation tests.  Please, move them into a more appropriate
place.

Fixed


Thanks for your review, it was very helpful) 

I also noticed that my stats for indexes were not being collected while parallel vacuum was running. I fixed it by adding some extra code that basically captured changes to the parallel_vacuum_process_all_indexes function. I used a script like this to check if everything was correct.

pgbench -d postgres -i -s 10


my/inst/bin/pg_basebackup -D ~/backup


#psql

--check parallel vacuum statistics

create index accounts_idx1 on pgbench_accounts(bid);
create index accounts_idx2 on pgbench_accounts(aid, bid);

delete from pgbench_accounts where aid >5;
set max_parallel_maintenance_workers = 8;
VACUUM (PARALLEL 3) pgbench_accounts;


create index accounts_idx1 on pgbench_accounts(bid);
create index accounts_idx2 on pgbench_accounts(aid, bid);

delete from pgbench_accounts where aid >5;
set max_parallel_maintenance_workers = 8;
VACUUM (PARALLEL 3) pgbench_accounts;


pg_ctl -D ../postgres_data11 -l logfile stop

rm -rf ../postgres_data/*

cp -r ~/backup/* ~/postgres_data/

pg_ctl -D ../postgres_data11 -l logfile start


--check vacuum statistics processed by postmaster only

create index accounts_idx1 on pgbench_accounts(bid);
create index accounts_idx2 on pgbench_accounts(aid, bid);

delete from pgbench_accounts where aid >5;
set max_parallel_maintenance_workers = 8;
VACUUM (PARALLEL 0) pgbench_accounts;


To view statistics:

select vt.relname, total_blks_read AS total_blks_read,
  total_blks_hit AS total_blks_hit,
  total_blks_dirtied AS total_blks_dirtied,
  total_blks_written AS total_blks_written,

  rel_blks_read AS rel_blks_read,
  rel_blks_hit AS rel_blks_hit,

  pages_deleted AS pages_deleted,
  tuples_deleted AS tuples_deleted,

  wal_records AS wal_records,
  wal_fpi AS wal_fpi,
  wal_bytes AS wal_bytes,

  blk_read_time AS blk_read_time,
  blk_write_time AS blk_write_time,

  delay_time AS delay_time,
  total_time AS total_time
  FROM pg_stat_get_vacuum_indexes vt, pg_class c
WHERE (vt.relname='accounts_idx1' or vt.relname='accounts_idx2' or vt.relname = 'pgbench_accounts_pkey') AND vt.relid = c.oid;


select stats.relname,stats.total_blks_read AS total_blks_read,
  stats.total_blks_hit AS total_blks_hit,
  stats.total_blks_dirtied AS total_blks_dirtied,
  stats.total_blks_written AS total_blks_written,

  stats.rel_blks_read AS rel_blks_read,
  stats.rel_blks_hit AS rel_blks_hit,

  stats.pages_scanned AS pages_scanned,
  stats.pages_removed AS pages_removed,
  stats.pages_frozen AS pages_frozen,
  stats.pages_all_visible AS pages_all_visible,
  stats.tuples_deleted AS tuples_deleted,
  stats.tuples_frozen AS tuples_frozen,
  stats.dead_tuples AS dead_tuples,

  stats.index_vacuum_count AS index_vacuum_count,
  stats.wal_records AS wal_records,
  stats.wal_fpi AS wal_fpi,
  stats.wal_bytes AS wal_bytes,

  stats.blk_read_time AS blk_read_time,
  stats.blk_write_time AS blk_write_time,

  stats.delay_time AS delay_time,
  stats.total_time AS total_time from pg_stat_vacuum_tables stats, pg_stat_all_tables  WHERE stats.relname = 'pgbench_accounts' and stats.relid = pg_stat_all_tables.relid;


output_single_19I got the following results and stored them in output_single_19 and output_parallel_19 files.
I noticed that rel_blks_read and rel_blks_hit are too small compared to the vacuum statistics when the vacuum is not parallel. I suspect that this problem is related to the fact that the relationship statistics have not reached that time. You can see that they are calculated in my patch like this:

report->blks_fetched =
    rel->pgstat_info->counts.blocks_fetched - counters->blocks_fetched;
  report->blks_hit =
    rel->pgstat_info->counts.blocks_hit - counters->blocks_hit;


The second thing that bothered me was that some table stats differ in the fields total_blks_read, rel_blks_read, pages_removed. If with the buffer this could be related to the fact that in a single run we rely on the stats of the global buffer and shaft statistics and this could explain why there are more of them, then with pages_removed I have no explanation yet as to what could have happened. I am still studying this.

When you have time, take a look at the patches, I will be glad to receive any feedback.

-- 
Regards,
Alena Rybakina
Postgres Professional
--------------FEAz1026fXfuTFHk6a08CFXb-- --------------g7I0Wbo7Ykyo94XxnooGxlss Content-Type: text/plain; charset=UTF-8; name="output_single_19" Content-Disposition: attachment; filename="output_single_19" Content-Transfer-Encoding: base64 LVsgUkVDT1JEIDEgXS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCnJlbG5hbWUgICAgICAg ICAgICAgIHwgcGdiZW5jaF9hY2NvdW50cwp0b3RhbF9ibGtzX3JlYWQgICAgICB8IDE1MjEy CnRvdGFsX2Jsa3NfaGl0ICAgICAgIHwgMTAyNDU1CnRvdGFsX2Jsa3NfZGlydGllZCAgIHwg MTM3MjEKdG90YWxfYmxrc193cml0dGVuICAgfCAxMzQ1OApyZWxfYmxrc19yZWFkICAgICAg ICB8IDg4NzIKcmVsX2Jsa3NfaGl0ICAgICAgICAgfCA1MTk1NwpwYWdlc19zY2FubmVkICAg ICAgICB8IDE2Mzk0CnBhZ2VzX3JlbW92ZWQgICAgICAgIHwgMTE2MzIKdHVwbGVzX2RlbGV0 ZWQgICAgICAgfCA5OTk5MzQKdHVwbGVzX2Zyb3plbiAgICAgICAgfCAwCnJlY2VudGx5X2Rl YWRfdHVwbGVzIHwgMAppbmRleF92YWN1dW1fY291bnQgICB8IDEKd2FsX3JlY29yZHMgICAg ICAgICAgfCA2ODExMAp3YWxfZnBpICAgICAgICAgICAgICB8IDI3NTQKd2FsX2J5dGVzICAg ICAgICAgICAgfCAzMjM2MzQwMgpibGtfcmVhZF90aW1lICAgICAgICB8IDAKYmxrX3dyaXRl X3RpbWUgICAgICAgfCAwCmRlbGF5X3RpbWUgICAgICAgICAgIHwgMAp0b3RhbF90aW1lICAg ICAgICAgICB8IDk0OS4yMTcKCi1bIFJFQ09SRCAxIF0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpyZWxuYW1lICAgICAgICAgICAgfCBwZ2JlbmNoX2FjY291bnRzX3BrZXkKdG90 YWxfYmxrc19yZWFkICAgIHwgMjc0NQp0b3RhbF9ibGtzX2hpdCAgICAgfCAyMTg3MQp0b3Rh bF9ibGtzX2RpcnRpZWQgfCAyNzQ1CnRvdGFsX2Jsa3Nfd3JpdHRlbiB8IDI2MzIKcmVsX2Js a3NfcmVhZCAgICAgIHwgMjc0NQpyZWxfYmxrc19oaXQgICAgICAgfCAyMTg3MQpwYWdlc19k ZWxldGVkICAgICAgfCAyNzM1CnR1cGxlc19kZWxldGVkICAgICB8IDk5OTkzNAp3YWxfcmVj b3JkcyAgICAgICAgfCA4MTk3CndhbF9mcGkgICAgICAgICAgICB8IDI3NDQKd2FsX2J5dGVz ICAgICAgICAgIHwgMjI3OTkzOTAKYmxrX3JlYWRfdGltZSAgICAgIHwgMApibGtfd3JpdGVf dGltZSAgICAgfCAwCmRlbGF5X3RpbWUgICAgICAgICB8IDAKdG90YWxfdGltZSAgICAgICAg IHwgMjQ3LjY1ODAwMDAwMDAwMDAyCi1bIFJFQ09SRCAyIF0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpyZWxuYW1lICAgICAgICAgICAgfCBhY2NvdW50c19pZHgxCnRvdGFsX2Js a3NfcmVhZCAgICB8IDg1MAp0b3RhbF9ibGtzX2hpdCAgICAgfCA2NzI2CnRvdGFsX2Jsa3Nf ZGlydGllZCB8IDg1MAp0b3RhbF9ibGtzX3dyaXR0ZW4gfCA3NTAKcmVsX2Jsa3NfcmVhZCAg ICAgIHwgODUwCnJlbF9ibGtzX2hpdCAgICAgICB8IDY3MjYKcGFnZXNfZGVsZXRlZCAgICAg IHwgODQwCnR1cGxlc19kZWxldGVkICAgICB8IDk5OTkzNAp3YWxfcmVjb3JkcyAgICAgICAg fCAyNTIyCndhbF9mcGkgICAgICAgICAgICB8IDAKd2FsX2J5dGVzICAgICAgICAgIHwgMjAy MTMwCmJsa19yZWFkX3RpbWUgICAgICB8IDAKYmxrX3dyaXRlX3RpbWUgICAgIHwgMApkZWxh eV90aW1lICAgICAgICAgfCAwCnRvdGFsX3RpbWUgICAgICAgICB8IDc5LjU1MgotWyBSRUNP UkQgMyBdLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KcmVsbmFtZSAgICAgICAgICAg IHwgYWNjb3VudHNfaWR4Mgp0b3RhbF9ibGtzX3JlYWQgICAgfCAyNzQ1CnRvdGFsX2Jsa3Nf aGl0ICAgICB8IDIxODcxCnRvdGFsX2Jsa3NfZGlydGllZCB8IDI3NDUKdG90YWxfYmxrc193 cml0dGVuIHwgMjY3MwpyZWxfYmxrc19yZWFkICAgICAgfCAyNzQ1CnJlbF9ibGtzX2hpdCAg ICAgICB8IDIxODcxCnBhZ2VzX2RlbGV0ZWQgICAgICB8IDI3MzUKdHVwbGVzX2RlbGV0ZWQg ICAgIHwgOTk5OTM0CndhbF9yZWNvcmRzICAgICAgICB8IDgxOTcKd2FsX2ZwaSAgICAgICAg ICAgIHwgMAp3YWxfYnl0ZXMgICAgICAgICAgfCAyNjA2NTQ4CmJsa19yZWFkX3RpbWUgICAg ICB8IDAKYmxrX3dyaXRlX3RpbWUgICAgIHwgMApkZWxheV90aW1lICAgICAgICAgfCAwCnRv dGFsX3RpbWUgICAgICAgICB8IDE0My45NTAwMDAwMDAwMDAwMgoK --------------g7I0Wbo7Ykyo94XxnooGxlss Content-Type: text/plain; charset=UTF-8; name="output_parallel_19" Content-Disposition: attachment; filename="output_parallel_19" Content-Transfer-Encoding: base64 LVsgUkVDT1JEIDEgXS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnJlbG5hbWUgICAg ICAgICAgICB8IHBnYmVuY2hfYWNjb3VudHNfcGtleQp0b3RhbF9ibGtzX3JlYWQgICAgfCAy NzQ1CnRvdGFsX2Jsa3NfaGl0ICAgICB8IDIxODk0CnRvdGFsX2Jsa3NfZGlydGllZCB8IDI3 NDcKdG90YWxfYmxrc193cml0dGVuIHwgMjY0MApyZWxfYmxrc19yZWFkICAgICAgfCAyNzQ1 CnJlbF9ibGtzX2hpdCAgICAgICB8IDIxODg2CnBhZ2VzX2RlbGV0ZWQgICAgICB8IDI3MzgK dHVwbGVzX2RlbGV0ZWQgICAgIHwgOTk5OTk1CndhbF9yZWNvcmRzICAgICAgICB8IDgyMDUK d2FsX2ZwaSAgICAgICAgICAgIHwgMjc0NAp3YWxfYnl0ZXMgICAgICAgICAgfCAyMjgxNjQ4 NApibGtfcmVhZF90aW1lICAgICAgfCAwCmJsa193cml0ZV90aW1lICAgICB8IDAKZGVsYXlf dGltZSAgICAgICAgIHwgMAp0b3RhbF90aW1lICAgICAgICAgfCAyNDkuMjIyCi1bIFJFQ09S RCAyIF0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpyZWxuYW1lICAgICAgICAgICAg fCBhY2NvdW50c19pZHgxCnRvdGFsX2Jsa3NfcmVhZCAgICB8IDg1MQp0b3RhbF9ibGtzX2hp dCAgICAgfCA2NzQ5CnRvdGFsX2Jsa3NfZGlydGllZCB8IDg1Mgp0b3RhbF9ibGtzX3dyaXR0 ZW4gfCA4NDkKcmVsX2Jsa3NfcmVhZCAgICAgIHwgMApyZWxfYmxrc19oaXQgICAgICAgfCAx CnBhZ2VzX2RlbGV0ZWQgICAgICB8IDg0Mwp0dXBsZXNfZGVsZXRlZCAgICAgfCA5OTk5OTUK d2FsX3JlY29yZHMgICAgICAgIHwgMjUzMAp3YWxfZnBpICAgICAgICAgICAgfCAwCndhbF9i eXRlcyAgICAgICAgICB8IDIwMjgzNApibGtfcmVhZF90aW1lICAgICAgfCAwCmJsa193cml0 ZV90aW1lICAgICB8IDAKZGVsYXlfdGltZSAgICAgICAgIHwgMAp0b3RhbF90aW1lICAgICAg ICAgfCAyNDkuMTc2Ci1bIFJFQ09SRCAzIF0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpyZWxuYW1lICAgICAgICAgICAgfCBhY2NvdW50c19pZHgyCnRvdGFsX2Jsa3NfcmVhZCAg ICB8IDI3NDYKdG90YWxfYmxrc19oaXQgICAgIHwgMjE4OTQKdG90YWxfYmxrc19kaXJ0aWVk IHwgMjc0Nwp0b3RhbF9ibGtzX3dyaXR0ZW4gfCAyNjkxCnJlbF9ibGtzX3JlYWQgICAgICB8 IDAKcmVsX2Jsa3NfaGl0ICAgICAgIHwgMQpwYWdlc19kZWxldGVkICAgICAgfCAyNzM4CnR1 cGxlc19kZWxldGVkICAgICB8IDk5OTk5NQp3YWxfcmVjb3JkcyAgICAgICAgfCA4MjA1Cndh bF9mcGkgICAgICAgICAgICB8IDAKd2FsX2J5dGVzICAgICAgICAgIHwgMjYwNzUxOApibGtf cmVhZF90aW1lICAgICAgfCAwCmJsa193cml0ZV90aW1lICAgICB8IDAKZGVsYXlfdGltZSAg ICAgICAgIHwgMAp0b3RhbF90aW1lICAgICAgICAgfCAyNDkuMTc0CgotWyBSRUNPUkQgMSBd LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCnJlbG5hbWUgICAgICAgICAgICAgIHwgcGdi ZW5jaF9hY2NvdW50cwp0b3RhbF9ibGtzX3JlYWQgICAgICB8IDIwNTEzCnRvdGFsX2Jsa3Nf aGl0ICAgICAgIHwgMTAyMjE5CnRvdGFsX2Jsa3NfZGlydGllZCAgIHwgMTM5NzMKdG90YWxf Ymxrc193cml0dGVuICAgfCAxMzg3MApyZWxfYmxrc19yZWFkICAgICAgICB8IDE0MTczCnJl bF9ibGtzX2hpdCAgICAgICAgIHwgNTE2NjQKcGFnZXNfc2Nhbm5lZCAgICAgICAgfCAxNjQ1 MgpwYWdlc19yZW1vdmVkICAgICAgICB8IDE2NDUxCnR1cGxlc19kZWxldGVkICAgICAgIHwg OTk5OTk1CnR1cGxlc19mcm96ZW4gICAgICAgIHwgMApyZWNlbnRseV9kZWFkX3R1cGxlcyB8 IDAKaW5kZXhfdmFjdXVtX2NvdW50ICAgfCAxCndhbF9yZWNvcmRzICAgICAgICAgIHwgNjgx MzYKd2FsX2ZwaSAgICAgICAgICAgICAgfCAyNzU5CndhbF9ieXRlcyAgICAgICAgICAgIHwg MzI0MjI5NzEKYmxrX3JlYWRfdGltZSAgICAgICAgfCAwCmJsa193cml0ZV90aW1lICAgICAg IHwgMApkZWxheV90aW1lICAgICAgICAgICB8IDAKdG90YWxfdGltZSAgICAgICAgICAgfCA3 NzMuNDY5OTk5OTk5OTk5OQoK --------------g7I0Wbo7Ykyo94XxnooGxlss Content-Type: text/x-patch; charset=UTF-8; name="v14-0001-Machinery-for-grabbing-an-extended-vacuu.patch" Content-Disposition: attachment; filename="v14-0001-Machinery-for-grabbing-an-extended-vacuu.patch" Content-Transfer-Encoding: base64 RnJvbSBmYjhhMTEwYWE0MTZlMzMxNGRhYmJmMzE2ZGYxODk3YzVlMjQ0MDA4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogVGh1LCAxMiBEZWMgMjAyNCAxMToxNzowMSArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMS80XSBNYWNoaW5lcnkgZm9yIGdyYWJiaW5nIGFuIGV4dGVuZGVkIHZh Y3V1bQogc3RhdGlzdGljcyBvbiAgaGVhcCByZWxhdGlvbnMuCgpWYWx1ZSBvZiB0b3RhbF9i 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+LAoJIEFuZHJlaSBadWJrb3YgPGEuenVia292QHBvc3RncmVzcHJvLnJ1PgpS ZXZpZXdlZC1ieTogRGlsaXAgS3VtYXIgPGRpbGlwYmFsYXV0QGdtYWlsLmNvbT4sIE1hc2Fo aWtvIFNhd2FkYSA8c2F3YWRhLm1zaGtAZ21haWwuY29tPiwKCSAgICAgSWxpYSBFdmRva2lt b3YgPGlseWEuZXZkb2tpbW92QHRhbnRvcmxhYnMuY29tPiwgamlhbiBoZSA8amlhbi51bml2 ZXJzYWxpdHlAZ21haWwuY29tPiwKCSAgICAgS2lyaWxsIFJlc2hrZSA8cmVzaGtla2lyaWxs QGdtYWlsLmNvbT4sIEFsZXhhbmRlciBLb3JvdGtvdiA8YWVrb3JvdGtvdkBnbWFpbC5jb20+ LAoJICAgICBKaW0gTmFzYnkgPGpuYXNieUB1cGdyYWRlLmNvbT4KLS0tCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgICAgICAgfCAxNDYgKysrKysrKysrKyst CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMgICAgICAgfCAgMTAg Kwogc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsICAgICAgICAgIHwgIDUx ICsrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jICAgICAgICAgICAgICAgICB8 ICAgNCArCiBzcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jICAgICAgICAg fCAgIDEgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMgICAgICAgICAg IHwgIDEyICstCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24u YyAgfCAgNDYgKysrLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgICAg ICAgICAgIHwgMTQ0ICsrKysrKysrKysrCiBzcmMvYmFja2VuZC91dGlscy9lcnJvci9lbG9n LmMgICAgICAgICAgICAgICAgfCAgMTMgKwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNf dGFibGVzLmMgICAgICAgICAgIHwgICA5ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJv Yy5kYXQgICAgICAgICAgICAgICB8ICAxOCArKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFj dXVtLmggICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3Bnc3RhdC5oICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICA4MSArKysrKystCiBzcmMvaW5jbHVkZS91dGls cy9lbG9nLmggICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvdXRp bHMvcGdzdGF0X2ludGVybmFsLmggICAgICAgICAgIHwgICAyICstCiAuLi4vdmFjdXVtLWV4 dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5vdXQgICAgfCAgNTMgKysrKysKIHNyYy90ZXN0 L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUgICAgICAgICB8ICAgMSArCiAuLi4vdmFj dXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5zcGVjICAgfCAgNTMgKysrKysKIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAgICAgICB8ICA0MyArKyst CiAuLi4vZXhwZWN0ZWQvdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzLm91dCAgICAgfCAyMjUg KysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxl ICAgICAgICAgICAgfCAgIDUgKwogLi4uL3JlZ3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNfc3Rh dGlzdGljcy5zcWwgIHwgMTgwICsrKysrKysrKysrKysrCiAyMiBmaWxlcyBjaGFuZ2VkLCAx MDgxIGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC92YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0 YWJsZS1yZWFkLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xhdGlvbi9z cGVjcy92YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0YWJsZS1yZWFkLnNwZWMKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNfc3Rh dGlzdGljcy5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC92 YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Muc3FsCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFj dXVtbGF6eS5jCmluZGV4IGYyY2E5NDMwNTgxLi45ODdiZDUyOWRlYyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtMTY1LDYgKzE2NSw3IEBAIHR5cGVkZWYg c3RydWN0IExWUmVsU3RhdGUKIAkvKiBFcnJvciByZXBvcnRpbmcgc3RhdGUgKi8KIAljaGFy CSAgICpkYm5hbWU7CiAJY2hhcgkgICAqcmVsbmFtZXNwYWNlOworCU9pZAkJCXJlbG9pZDsK IAljaGFyCSAgICpyZWxuYW1lOwogCWNoYXIJICAgKmluZG5hbWU7CQkvKiBDdXJyZW50IGlu ZGV4IG5hbWUgKi8KIAlCbG9ja051bWJlciBibGtubzsJCQkvKiB1c2VkIG9ubHkgZm9yIGhl YXAgb3BlcmF0aW9ucyAqLwpAQCAtMjM5LDYgKzI0MCwxOCBAQCB0eXBlZGVmIHN0cnVjdCBM VlNhdmVkRXJySW5mbwogCVZhY0VyclBoYXNlIHBoYXNlOwogfSBMVlNhdmVkRXJySW5mbzsK IAorLyoKKyAqIENvdW50ZXJzIGFuZCB1c2FnZSBkYXRhIGZvciBleHRlbmRlZCBzdGF0cyB0 cmFja2luZy4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgTFZFeHRTdGF0Q291bnRlcnMKK3sKKwlU aW1lc3RhbXBUeiBzdGFydHRpbWU7CisJV2FsVXNhZ2UJd2FsdXNhZ2U7CisJQnVmZmVyVXNh Z2UgYnVmdXNhZ2U7CisJZG91YmxlCQlWYWN1dW1EZWxheVRpbWU7CisJUGdTdGF0X0NvdW50 ZXIgYmxvY2tzX2ZldGNoZWQ7CisJUGdTdGF0X0NvdW50ZXIgYmxvY2tzX2hpdDsKK30gTFZF eHRTdGF0Q291bnRlcnM7CiAKIC8qIG5vbi1leHBvcnQgZnVuY3Rpb24gcHJvdG90eXBlcyAq Lwogc3RhdGljIHZvaWQgbGF6eV9zY2FuX2hlYXAoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKQEAg LTI5Miw2ICszMDUsMTA2IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV92YWN1dW1fZXJyb3JfaW5m byhMVlJlbFN0YXRlICp2YWNyZWwsCiBzdGF0aWMgdm9pZCByZXN0b3JlX3ZhY3V1bV9lcnJv cl9pbmZvKExWUmVsU3RhdGUgKnZhY3JlbCwKIAkJCQkJCQkJCSAgY29uc3QgTFZTYXZlZEVy ckluZm8gKnNhdmVkX3ZhY3JlbCk7CiAKKy8qIC0tLS0tLS0tLS0KKyAqIGV4dHZhY19zdGF0 c19zdGFydCgpIC0KKyAqCisgKiBTYXZlIGN1dC1vZmYgdmFsdWVzIG9mIGV4dGVuZGVkIHZh Y3V1bSBjb3VudGVycyBiZWZvcmUgc3RhcnQgb2YgYSByZWxhdGlvbgorICogcHJvY2Vzc2lu Zy4KKyAqIC0tLS0tLS0tLS0KKyAqLworc3RhdGljIHZvaWQKK2V4dHZhY19zdGF0c19zdGFy dChSZWxhdGlvbiByZWwsIExWRXh0U3RhdENvdW50ZXJzICpjb3VudGVycykKK3sKKwlUaW1l c3RhbXBUeglzdGFydHRpbWU7CisKKwlpZighcGdzdGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0 aWNzKQorCQlyZXR1cm47CisKKwltZW1zZXQoY291bnRlcnMsIDAsIHNpemVvZihMVkV4dFN0 YXRDb3VudGVycykpOworCisJc3RhcnR0aW1lID0gR2V0Q3VycmVudFRpbWVzdGFtcCgpOwor CisJY291bnRlcnMtPnN0YXJ0dGltZSA9IHN0YXJ0dGltZTsKKwljb3VudGVycy0+d2FsdXNh Z2UgPSBwZ1dhbFVzYWdlOworCWNvdW50ZXJzLT5idWZ1c2FnZSA9IHBnQnVmZmVyVXNhZ2U7 CisJY291bnRlcnMtPlZhY3V1bURlbGF5VGltZSA9IFZhY3V1bURlbGF5VGltZTsKKwljb3Vu dGVycy0+YmxvY2tzX2ZldGNoZWQgPSAwOworCWNvdW50ZXJzLT5ibG9ja3NfaGl0ID0gMDsK KworCWlmICghcmVsLT5wZ3N0YXRfaW5mbyB8fCAhcGdzdGF0X3RyYWNrX2NvdW50cykKKwkJ LyoKKwkJICogaWYgc29tZXRoaW5nIGdvZXMgd3Jvbmcgb3IgdXNlciBkb2Vzbid0IHdhbnQg dG8gdHJhY2sgYSBkYXRhYmFzZQorCQkgKiBhY3Rpdml0eSAtIGp1c3Qgc3VwcHJlc3MgaXQu CisJCSAqLworCQlyZXR1cm47CisKKwljb3VudGVycy0+YmxvY2tzX2ZldGNoZWQgPSByZWwt PnBnc3RhdF9pbmZvLT5jb3VudHMuYmxvY2tzX2ZldGNoZWQ7CisJY291bnRlcnMtPmJsb2Nr c19oaXQgPSByZWwtPnBnc3RhdF9pbmZvLT5jb3VudHMuYmxvY2tzX2hpdDsKK30KKworLyog LS0tLS0tLS0tLQorICogZXh0dmFjX3N0YXRzX2VuZCgpIC0KKyAqCisgKglDYWxsZWQgdG8g ZmluaXNoIGFuIGV4dGVuZGVkIHZhY3V1bSBzdGF0aXN0aWMgZ2F0aGVyaW5nIGFuZCBmb3Jt IGEgcmVwb3J0LgorICogLS0tLS0tLS0tLQorICovCitzdGF0aWMgdm9pZAorZXh0dmFjX3N0 YXRzX2VuZChSZWxhdGlvbiByZWwsIExWRXh0U3RhdENvdW50ZXJzICpjb3VudGVycywKKwkJ CQkgIEV4dFZhY1JlcG9ydCAqcmVwb3J0KQoreworCVdhbFVzYWdlCXdhbHVzYWdlOworCUJ1 ZmZlclVzYWdlCWJ1ZnVzYWdlOworCVRpbWVzdGFtcFR6IGVuZHRpbWU7CisJbG9uZwkJc2Vj czsKKwlpbnQJCQl1c2VjczsKKworCWlmKCFwZ3N0YXRfdHJhY2tfdmFjdXVtX3N0YXRpc3Rp Y3MpCisJCXJldHVybjsKKworCS8qIENhbGN1bGF0ZSBkaWZmcyBvZiBnbG9iYWwgc3RhdCBw YXJhbWV0ZXJzIG9uIFdBTCBhbmQgYnVmZmVyIHVzYWdlLiAqLworCW1lbXNldCgmd2FsdXNh Z2UsIDAsIHNpemVvZihXYWxVc2FnZSkpOworCVdhbFVzYWdlQWNjdW1EaWZmKCZ3YWx1c2Fn ZSwgJnBnV2FsVXNhZ2UsICZjb3VudGVycy0+d2FsdXNhZ2UpOworCisJbWVtc2V0KCZidWZ1 c2FnZSwgMCwgc2l6ZW9mKEJ1ZmZlclVzYWdlKSk7CisJQnVmZmVyVXNhZ2VBY2N1bURpZmYo JmJ1ZnVzYWdlLCAmcGdCdWZmZXJVc2FnZSwgJmNvdW50ZXJzLT5idWZ1c2FnZSk7CisKKwll bmR0aW1lID0gR2V0Q3VycmVudFRpbWVzdGFtcCgpOworCVRpbWVzdGFtcERpZmZlcmVuY2Uo Y291bnRlcnMtPnN0YXJ0dGltZSwgZW5kdGltZSwgJnNlY3MsICZ1c2Vjcyk7CisKKwltZW1z ZXQocmVwb3J0LCAwLCBzaXplb2YoRXh0VmFjUmVwb3J0KSk7CisKKwkvKgorCSAqIEZpbGwg YWRkaXRpb25hbCBzdGF0aXN0aWNzIG9uIGEgdmFjdXVtIHByb2Nlc3Npbmcgb3BlcmF0aW9u LgorCSAqLworCXJlcG9ydC0+dG90YWxfYmxrc19yZWFkID0gYnVmdXNhZ2UubG9jYWxfYmxr c19yZWFkICsgYnVmdXNhZ2Uuc2hhcmVkX2Jsa3NfcmVhZDsKKwlyZXBvcnQtPnRvdGFsX2Js a3NfaGl0ID0gYnVmdXNhZ2UubG9jYWxfYmxrc19oaXQgKyBidWZ1c2FnZS5zaGFyZWRfYmxr c19oaXQ7CisJcmVwb3J0LT50b3RhbF9ibGtzX2RpcnRpZWQgPSBidWZ1c2FnZS5sb2NhbF9i bGtzX2RpcnRpZWQgKyBidWZ1c2FnZS5zaGFyZWRfYmxrc19kaXJ0aWVkOworCXJlcG9ydC0+ dG90YWxfYmxrc193cml0dGVuID0gYnVmdXNhZ2Uuc2hhcmVkX2Jsa3Nfd3JpdHRlbjsKKwor CXJlcG9ydC0+d2FsX3JlY29yZHMgPSB3YWx1c2FnZS53YWxfcmVjb3JkczsKKwlyZXBvcnQt PndhbF9mcGkgPSB3YWx1c2FnZS53YWxfZnBpOworCXJlcG9ydC0+d2FsX2J5dGVzID0gd2Fs dXNhZ2Uud2FsX2J5dGVzOworCisJcmVwb3J0LT5ibGtfcmVhZF90aW1lID0gSU5TVFJfVElN RV9HRVRfTUlMTElTRUMoYnVmdXNhZ2UubG9jYWxfYmxrX3JlYWRfdGltZSk7CisJcmVwb3J0 LT5ibGtfcmVhZF90aW1lICs9IElOU1RSX1RJTUVfR0VUX01JTExJU0VDKGJ1ZnVzYWdlLnNo YXJlZF9ibGtfcmVhZF90aW1lKTsKKwlyZXBvcnQtPmJsa193cml0ZV90aW1lID0gSU5TVFJf VElNRV9HRVRfTUlMTElTRUMoYnVmdXNhZ2UubG9jYWxfYmxrX3dyaXRlX3RpbWUpOworCXJl cG9ydC0+YmxrX3dyaXRlX3RpbWUgPSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhidWZ1c2Fn ZS5zaGFyZWRfYmxrX3dyaXRlX3RpbWUpOworCXJlcG9ydC0+ZGVsYXlfdGltZSA9IFZhY3V1 bURlbGF5VGltZSAtIGNvdW50ZXJzLT5WYWN1dW1EZWxheVRpbWU7CisKKwlyZXBvcnQtPnRv dGFsX3RpbWUgPSBzZWNzICogMTAwMC4gKyB1c2VjcyAvIDEwMDAuOworCisJaWYgKCFyZWwt PnBnc3RhdF9pbmZvIHx8ICFwZ3N0YXRfdHJhY2tfY291bnRzKQorCQkvKgorCQkgKiBpZiBz b21ldGhpbmcgZ29lcyB3cm9uZyBvciBhbiB1c2VyIGRvZXNuJ3Qgd2FudCB0byB0cmFjayBh IGRhdGFiYXNlCisJCSAqIGFjdGl2aXR5IC0ganVzdCBzdXBwcmVzcyBpdC4KKwkJICovCisJ CXJldHVybjsKKworCXJlcG9ydC0+Ymxrc19mZXRjaGVkID0KKwkJcmVsLT5wZ3N0YXRfaW5m by0+Y291bnRzLmJsb2Nrc19mZXRjaGVkIC0gY291bnRlcnMtPmJsb2Nrc19mZXRjaGVkOwor CXJlcG9ydC0+Ymxrc19oaXQgPQorCQlyZWwtPnBnc3RhdF9pbmZvLT5jb3VudHMuYmxvY2tz X2hpdCAtIGNvdW50ZXJzLT5ibG9ja3NfaGl0OworfQogCiAvKgogICoJaGVhcF92YWN1dW1f cmVsKCkgLS0gcGVyZm9ybSBWQUNVVU0gZm9yIG9uZSBoZWFwIHJlbGF0aW9uCkBAIC0zMjQs NyArNDM3LDE0IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIFZhY3V1bVBhcmFt cyAqcGFyYW1zLAogCVdhbFVzYWdlCXN0YXJ0d2FsdXNhZ2UgPSBwZ1dhbFVzYWdlOwogCUJ1 ZmZlclVzYWdlIHN0YXJ0YnVmZmVydXNhZ2UgPSBwZ0J1ZmZlclVzYWdlOwogCUVycm9yQ29u dGV4dENhbGxiYWNrIGVycmNhbGxiYWNrOworCUxWRXh0U3RhdENvdW50ZXJzIGV4dFZhY0Nv dW50ZXJzOworCUV4dFZhY1JlcG9ydCBleHRWYWNSZXBvcnQ7CiAJY2hhcgkgICoqaW5kbmFt ZXMgPSBOVUxMOworCUV4dFZhY1JlcG9ydCBhbGx6ZXJvOworCisJLyogSW5pdGlhbGl6ZSB2 YWN1dW0gc3RhdGlzdGljcyAqLworCW1lbXNldCgmYWxsemVybywgMCwgc2l6ZW9mKEV4dFZh Y1JlcG9ydCkpOworCWV4dFZhY1JlcG9ydCA9IGFsbHplcm87CiAKIAl2ZXJib3NlID0gKHBh cmFtcy0+b3B0aW9ucyAmIFZBQ09QVF9WRVJCT1NFKSAhPSAwOwogCWluc3RydW1lbnQgPSAo dmVyYm9zZSB8fCAoQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpICYmCkBAIC0zNDIsNyAr NDYyLDcgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgVmFjdXVtUGFyYW1zICpw YXJhbXMsCiAKIAlwZ3N0YXRfcHJvZ3Jlc3Nfc3RhcnRfY29tbWFuZChQUk9HUkVTU19DT01N QU5EX1ZBQ1VVTSwKIAkJCQkJCQkJICBSZWxhdGlvbkdldFJlbGlkKHJlbCkpOwotCisJZXh0 dmFjX3N0YXRzX3N0YXJ0KHJlbCwgJmV4dFZhY0NvdW50ZXJzKTsKIAkvKgogCSAqIFNldHVw IGVycm9yIHRyYWNlYmFjayBzdXBwb3J0IGZvciBlcmVwb3J0KCkgZmlyc3QuICBUaGUgaWRl YSBpcyB0byBzZXQKIAkgKiB1cCBhbiBlcnJvciBjb250ZXh0IGNhbGxiYWNrIHRvIGRpc3Bs YXkgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvbiBhbnkKQEAgLTM1OSw2ICs0NzksNyBAQCBo ZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLCBWYWN1dW1QYXJhbXMgKnBhcmFtcywKIAl2 YWNyZWwtPmRibmFtZSA9IGdldF9kYXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCk7CiAJdmFj cmVsLT5yZWxuYW1lc3BhY2UgPSBnZXRfbmFtZXNwYWNlX25hbWUoUmVsYXRpb25HZXROYW1l c3BhY2UocmVsKSk7CiAJdmFjcmVsLT5yZWxuYW1lID0gcHN0cmR1cChSZWxhdGlvbkdldFJl bGF0aW9uTmFtZShyZWwpKTsKKwl2YWNyZWwtPnJlbG9pZCA9IFJlbGF0aW9uR2V0UmVsaWQo cmVsKTsKIAl2YWNyZWwtPmluZG5hbWUgPSBOVUxMOwogCXZhY3JlbC0+cGhhc2UgPSBWQUNV VU1fRVJSQ0JfUEhBU0VfVU5LTk9XTjsKIAl2YWNyZWwtPnZlcmJvc2UgPSB2ZXJib3NlOwpA QCAtNTkxLDYgKzcxMiwyNiBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLCBWYWN1 dW1QYXJhbXMgKnBhcmFtcywKIAkJCQkJCXZhY3JlbC0+TmV3UmVsZnJvemVuWGlkLCB2YWNy ZWwtPk5ld1JlbG1pbk14aWQsCiAJCQkJCQkmZnJvemVueGlkX3VwZGF0ZWQsICZtaW5tdWx0 aV91cGRhdGVkLCBmYWxzZSk7CiAKKwkvKiBNYWtlIGdlbmVyaWMgZXh0ZW5kZWQgdmFjdXVt IHN0YXRzIHJlcG9ydCAqLworCWV4dHZhY19zdGF0c19lbmQocmVsLCAmZXh0VmFjQ291bnRl cnMsICZleHRWYWNSZXBvcnQpOworCisJaWYocGdzdGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0 aWNzKQorCXsKKwkJZXh0VmFjUmVwb3J0LnJlY2VudGx5X2RlYWRfdHVwbGVzID0gMDsKKwkJ LyogRmlsbCBoZWFwLXNwZWNpZmljIGV4dGVuZGVkIHN0YXRzIGZpZWxkcyAqLworCQlleHRW YWNSZXBvcnQucGFnZXNfc2Nhbm5lZCA9IHZhY3JlbC0+c2Nhbm5lZF9wYWdlczsKKwkJZXh0 VmFjUmVwb3J0LnBhZ2VzX3JlbW92ZWQgPSB2YWNyZWwtPnJlbW92ZWRfcGFnZXM7CisJCWV4 dFZhY1JlcG9ydC52bV9uZXdfZnJvemVuX3BhZ2VzID0gdmFjcmVsLT52bV9uZXdfZnJvemVu X3BhZ2VzOworCQlleHRWYWNSZXBvcnQudm1fbmV3X3Zpc2libGVfcGFnZXMgPSB2YWNyZWwt PnZtX25ld192aXNpYmxlX3BhZ2VzOworCQlleHRWYWNSZXBvcnQudm1fbmV3X3Zpc2libGVf ZnJvemVuX3BhZ2VzID0gdmFjcmVsLT52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXM7CisJ CWV4dFZhY1JlcG9ydC50dXBsZXNfZGVsZXRlZCA9IHZhY3JlbC0+dHVwbGVzX2RlbGV0ZWQ7 CisJCWV4dFZhY1JlcG9ydC50dXBsZXNfZnJvemVuID0gdmFjcmVsLT50dXBsZXNfZnJvemVu OworCQlleHRWYWNSZXBvcnQucmVjZW50bHlfZGVhZF90dXBsZXMgPSB2YWNyZWwtPnJlY2Vu dGx5X2RlYWRfdHVwbGVzOworCQlleHRWYWNSZXBvcnQubWlzc2VkX2RlYWRfdHVwbGVzID0g dmFjcmVsLT5taXNzZWRfZGVhZF90dXBsZXM7CisJCWV4dFZhY1JlcG9ydC5taXNzZWRfZGVh ZF9wYWdlcyA9IHZhY3JlbC0+bWlzc2VkX2RlYWRfcGFnZXM7CisJCWV4dFZhY1JlcG9ydC5p bmRleF92YWN1dW1fY291bnQgPSB2YWNyZWwtPm51bV9pbmRleF9zY2FuczsKKwl9CisKIAkv KgogCSAqIFJlcG9ydCByZXN1bHRzIHRvIHRoZSBjdW11bGF0aXZlIHN0YXRzIHN5c3RlbSwg dG9vLgogCSAqCkBAIC02MDUsNyArNzQ2LDggQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9u IHJlbCwgVmFjdXVtUGFyYW1zICpwYXJhbXMsCiAJCQkJCQkgcmVsLT5yZF9yZWwtPnJlbGlz c2hhcmVkLAogCQkJCQkJIE1heCh2YWNyZWwtPm5ld19saXZlX3R1cGxlcywgMCksCiAJCQkJ CQkgdmFjcmVsLT5yZWNlbnRseV9kZWFkX3R1cGxlcyArCi0JCQkJCQkgdmFjcmVsLT5taXNz ZWRfZGVhZF90dXBsZXMpOworCQkJCQkJIHZhY3JlbC0+bWlzc2VkX2RlYWRfdHVwbGVzLAor CQkJCQkJICZleHRWYWNSZXBvcnQpOwogCXBnc3RhdF9wcm9ncmVzc19lbmRfY29tbWFuZCgp OwogCiAJaWYgKGluc3RydW1lbnQpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC92aXNpYmlsaXR5bWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmls aXR5bWFwLmMKaW5kZXggNzliNzlkNTk4MmUuLmVjZmIwMzQwMzI4IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCkBAIC05MSw2ICs5MSw3IEBACiAjaW5j bHVkZSAiYWNjZXNzL3hsb2dpbnNlcnQuaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZ3V0aWxz LmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAicGdzdGF0LmgiCiAjaW5j bHVkZSAicG9ydC9wZ19iaXR1dGlscy5oIgogI2luY2x1ZGUgInN0b3JhZ2UvYnVmbWdyLmgi CiAjaW5jbHVkZSAic3RvcmFnZS9zbWdyLmgiCkBAIC0xNjAsNiArMTYxLDE1IEBAIHZpc2li aWxpdHltYXBfY2xlYXIoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLCBCdWZm ZXIgdm1idWYsIHVpbnQ4IGZsYWdzCiAKIAlpZiAobWFwW21hcEJ5dGVdICYgbWFzaykKIAl7 CisJCS8qCisJCSAqIEFzIHBhcnQgb2YgdmFjdXVtIHN0YXRzLCB0cmFjayBob3cgb2Z0ZW4g YWxsLXZpc2libGUgb3IgYWxsLWZyb3plbgorCQkgKiBiaXRzIGFyZSBjbGVhcmVkLgorCQkg Ki8KKwkJaWYgKG1hcFttYXBCeXRlXSA+PiBtYXBPZmZzZXQgJiBmbGFncyAmIFZJU0lCSUxJ VFlNQVBfQUxMX1ZJU0lCTEUpCisJCQlwZ3N0YXRfY291bnRfdm1fcmV2X2FsbF92aXNpYmxl KHJlbCk7CisJCWlmIChtYXBbbWFwQnl0ZV0gPj4gbWFwT2Zmc2V0ICYgZmxhZ3MgJiBWSVNJ QklMSVRZTUFQX0FMTF9GUk9aRU4pCisJCQlwZ3N0YXRfY291bnRfdm1fcmV2X2FsbF9mcm96 ZW4ocmVsKTsKKwogCQltYXBbbWFwQnl0ZV0gJj0gfm1hc2s7CiAKIAkJTWFya0J1ZmZlckRp cnR5KHZtYnVmKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3Zp ZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAppbmRleCBk YTlhOGZlOTlmMi4uZjNjYjViNWJmOTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvc3lzdGVtX3ZpZXdzLnNxbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92 aWV3cy5zcWwKQEAgLTY5MSw3ICs2OTEsOSBAQCBDUkVBVEUgVklFVyBwZ19zdGF0X2FsbF90 YWJsZXMgQVMKICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X3ZhY3V1bV9jb3VudChDLm9pZCkg QVMgdmFjdXVtX2NvdW50LAogICAgICAgICAgICAgcGdfc3RhdF9nZXRfYXV0b3ZhY3V1bV9j b3VudChDLm9pZCkgQVMgYXV0b3ZhY3V1bV9jb3VudCwKICAgICAgICAgICAgIHBnX3N0YXRf Z2V0X2FuYWx5emVfY291bnQoQy5vaWQpIEFTIGFuYWx5emVfY291bnQsCi0gICAgICAgICAg ICBwZ19zdGF0X2dldF9hdXRvYW5hbHl6ZV9jb3VudChDLm9pZCkgQVMgYXV0b2FuYWx5emVf Y291bnQKKyAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2F1dG9hbmFseXplX2NvdW50KEMub2lk KSBBUyBhdXRvYW5hbHl6ZV9jb3VudCwKKyAgICAgICAgICAgIHBnX3N0YXRfZ2V0X3Jldl9h bGxfZnJvemVuX3BhZ2VzKEMub2lkKSBBUyByZXZfYWxsX2Zyb3plbl9wYWdlcywKKyAgICAg ICAgICAgIHBnX3N0YXRfZ2V0X3Jldl9hbGxfdmlzaWJsZV9wYWdlcyhDLm9pZCkgQVMgcmV2 X2FsbF92aXNpYmxlX3BhZ2VzCiAgICAgRlJPTSBwZ19jbGFzcyBDIExFRlQgSk9JTgogICAg ICAgICAgcGdfaW5kZXggSSBPTiBDLm9pZCA9IEkuaW5kcmVsaWQKICAgICAgICAgIExFRlQg Sk9JTiBwZ19uYW1lc3BhY2UgTiBPTiAoTi5vaWQgPSBDLnJlbG5hbWVzcGFjZSkKQEAgLTEz ODEsMyArMTM4Myw1MCBAQCBDUkVBVEUgVklFVyBwZ19zdGF0X3N1YnNjcmlwdGlvbl9zdGF0 cyBBUwogCiBDUkVBVEUgVklFVyBwZ193YWl0X2V2ZW50cyBBUwogICAgIFNFTEVDVCAqIEZS T00gcGdfZ2V0X3dhaXRfZXZlbnRzKCk7CistLQorLS0gU2hvdyBleHRlbmRlZCBjdW11bGF0 aXZlIHN0YXRpc3RpY3Mgb24gYSB2YWN1dW0gb3BlcmF0aW9uIG92ZXIgYWxsIHRhYmxlcyBh bmQKKy0tIGRhdGFiYXNlcyBvZiB0aGUgaW5zdGFuY2UuCistLSBVc2UgSW52YWxpZCBPaWQg IjAiIGFzIGFuIGlucHV0IHJlbGF0aW9uIGlkIHRvIGdldCBzdGF0IG9uIGVhY2ggdGFibGUg aW4gYQorLS0gZGF0YWJhc2UuCistLQorCitDUkVBVEUgVklFVyBwZ19zdGF0X3ZhY3V1bV90 YWJsZXMgQVMKK1NFTEVDVAorICBucy5uc3BuYW1lIEFTICJzY2hlbWEiLAorICByZWwucmVs bmFtZSBBUyByZWxuYW1lLAorICBzdGF0cy5yZWxpZCBhcyByZWxpZCwKKworICBzdGF0cy50 b3RhbF9ibGtzX3JlYWQgQVMgdG90YWxfYmxrc19yZWFkLAorICBzdGF0cy50b3RhbF9ibGtz X2hpdCBBUyB0b3RhbF9ibGtzX2hpdCwKKyAgc3RhdHMudG90YWxfYmxrc19kaXJ0aWVkIEFT IHRvdGFsX2Jsa3NfZGlydGllZCwKKyAgc3RhdHMudG90YWxfYmxrc193cml0dGVuIEFTIHRv dGFsX2Jsa3Nfd3JpdHRlbiwKKworICBzdGF0cy5yZWxfYmxrc19yZWFkIEFTIHJlbF9ibGtz X3JlYWQsCisgIHN0YXRzLnJlbF9ibGtzX2hpdCBBUyByZWxfYmxrc19oaXQsCisKKyAgc3Rh dHMucGFnZXNfc2Nhbm5lZCBBUyBwYWdlc19zY2FubmVkLAorICBzdGF0cy5wYWdlc19yZW1v dmVkIEFTIHBhZ2VzX3JlbW92ZWQsCisgIHN0YXRzLnZtX25ld19mcm96ZW5fcGFnZXMgQVMg dm1fbmV3X2Zyb3plbl9wYWdlcywKKyAgc3RhdHMudm1fbmV3X3Zpc2libGVfcGFnZXMgQVMg dm1fbmV3X3Zpc2libGVfcGFnZXMsCisgIHN0YXRzLnZtX25ld192aXNpYmxlX2Zyb3plbl9w YWdlcyBBUyB2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMsCisgIHN0YXRzLm1pc3NlZF9k ZWFkX3BhZ2VzIEFTIG1pc3NlZF9kZWFkX3BhZ2VzLAorICBzdGF0cy50dXBsZXNfZGVsZXRl ZCBBUyB0dXBsZXNfZGVsZXRlZCwKKyAgc3RhdHMudHVwbGVzX2Zyb3plbiBBUyB0dXBsZXNf ZnJvemVuLAorICBzdGF0cy5yZWNlbnRseV9kZWFkX3R1cGxlcyBBUyByZWNlbnRseV9kZWFk X3R1cGxlcywKKyAgc3RhdHMubWlzc2VkX2RlYWRfdHVwbGVzIEFTIG1pc3NlZF9kZWFkX3R1 cGxlcywKKworICBzdGF0cy5pbmRleF92YWN1dW1fY291bnQgQVMgaW5kZXhfdmFjdXVtX2Nv dW50LAorICBzdGF0cy53YWxfcmVjb3JkcyBBUyB3YWxfcmVjb3JkcywKKyAgc3RhdHMud2Fs X2ZwaSBBUyB3YWxfZnBpLAorICBzdGF0cy53YWxfYnl0ZXMgQVMgd2FsX2J5dGVzLAorCisg IHN0YXRzLmJsa19yZWFkX3RpbWUgQVMgYmxrX3JlYWRfdGltZSwKKyAgc3RhdHMuYmxrX3dy aXRlX3RpbWUgQVMgYmxrX3dyaXRlX3RpbWUsCisKKyAgc3RhdHMuZGVsYXlfdGltZSBBUyBk ZWxheV90aW1lLAorICBzdGF0cy50b3RhbF90aW1lIEFTIHRvdGFsX3RpbWUKKworRlJPTSBw Z19jbGFzcyByZWwKKyAgSk9JTiBwZ19uYW1lc3BhY2UgbnMgT04gbnMub2lkID0gcmVsLnJl bG5hbWVzcGFjZSwKKyAgTEFURVJBTCBwZ19zdGF0X2dldF92YWN1dW1fdGFibGVzKHJlbC5v aWQpIHN0YXRzCitXSEVSRSByZWwucmVsa2luZCA9ICdyJzsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVt LmMKaW5kZXggYmI2MzllZjUxZmIuLmZhNDg0ZGJlNjM5IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy92YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1 dW0uYwpAQCAtMTAyLDYgKzEwMiw5IEBAIHBnX2F0b21pY191aW50MzIgKlZhY3V1bVNoYXJl ZENvc3RCYWxhbmNlID0gTlVMTDsKIHBnX2F0b21pY191aW50MzIgKlZhY3V1bUFjdGl2ZU5X b3JrZXJzID0gTlVMTDsKIGludAkJCVZhY3V1bUNvc3RCYWxhbmNlTG9jYWwgPSAwOwogCisv KiBDdW11bGF0aXZlIHN0b3JhZ2UgdG8gcmVwb3J0IHRvdGFsIHZhY3V1bSBkZWxheSB0aW1l LiAqLworZG91YmxlIFZhY3V1bURlbGF5VGltZSA9IDA7IC8qIG1zZWMuICovCisKIC8qIG5v bi1leHBvcnQgZnVuY3Rpb24gcHJvdG90eXBlcyAqLwogc3RhdGljIExpc3QgKmV4cGFuZF92 YWN1dW1fcmVsKFZhY3V1bVJlbGF0aW9uICp2cmVsLAogCQkJCQkJCSAgIE1lbW9yeUNvbnRl eHQgdmFjX2NvbnRleHQsIGludCBvcHRpb25zKTsKQEAgLTI0MTksNiArMjQyMiw3IEBAIHZh Y3V1bV9kZWxheV9wb2ludCh2b2lkKQogCQkJZXhpdCgxKTsKIAogCQlWYWN1dW1Db3N0QmFs YW5jZSA9IDA7CisJCVZhY3V1bURlbGF5VGltZSArPSBtc2VjOwogCiAJCS8qCiAJCSAqIEJh bGFuY2UgYW5kIHVwZGF0ZSBsaW1pdCB2YWx1ZXMgZm9yIGF1dG92YWN1dW0gd29ya2Vycy4g V2UgbXVzdCBkbwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFy YWxsZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKaW5kZXgg NjdjYmExN2E1NjQuLmQ3ZDk4NzNjOGVhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy92YWN1dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1 bXBhcmFsbGVsLmMKQEAgLTEwNDcsNiArMTA0Nyw3IEBAIHBhcmFsbGVsX3ZhY3V1bV9tYWlu KGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAkvKiBTZXQgY29zdC1iYXNlZCB2 YWN1dW0gZGVsYXkgKi8KIAlWYWN1dW1VcGRhdGVDb3N0cygpOwogCVZhY3V1bUNvc3RCYWxh bmNlID0gMDsKKwlWYWN1dW1EZWxheVRpbWUgPSAwOwogCVZhY3V1bUNvc3RCYWxhbmNlTG9j YWwgPSAwOwogCVZhY3V1bVNoYXJlZENvc3RCYWxhbmNlID0gJihzaGFyZWQtPmNvc3RfYmFs YW5jZSk7CiAJVmFjdXVtQWN0aXZlTldvcmtlcnMgPSAmKHNoYXJlZC0+YWN0aXZlX253b3Jr ZXJzKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKaW5kZXggYjRlMzU3Yzhh NDIuLmJlZTE0NjE4MTRiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0 eS9wZ3N0YXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXQuYwpA QCAtMTkwLDcgKzE5MCw3IEBAIHN0YXRpYyB2b2lkIHBnc3RhdF9yZXNldF9hZnRlcl9mYWls dXJlKHZvaWQpOwogc3RhdGljIGJvb2wgcGdzdGF0X2ZsdXNoX3BlbmRpbmdfZW50cmllcyhi b29sIG5vd2FpdCk7CiAKIHN0YXRpYyB2b2lkIHBnc3RhdF9wcmVwX3NuYXBzaG90KHZvaWQp Owotc3RhdGljIHZvaWQgcGdzdGF0X2J1aWxkX3NuYXBzaG90KHZvaWQpOworc3RhdGljIHZv aWQgcGdzdGF0X2J1aWxkX3NuYXBzaG90KFBnU3RhdF9LaW5kIHN0YXRLaW5kKTsKIHN0YXRp YyB2b2lkIHBnc3RhdF9idWlsZF9zbmFwc2hvdF9maXhlZChQZ1N0YXRfS2luZCBraW5kKTsK IAogc3RhdGljIGlubGluZSBib29sIHBnc3RhdF9pc19raW5kX3ZhbGlkKFBnU3RhdF9LaW5k IGtpbmQpOwpAQCAtMjAzLDcgKzIwMyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBwZ3N0YXRf aXNfa2luZF92YWxpZChQZ1N0YXRfS2luZCBraW5kKTsKIAogYm9vbAkJcGdzdGF0X3RyYWNr X2NvdW50cyA9IGZhbHNlOwogaW50CQkJcGdzdGF0X2ZldGNoX2NvbnNpc3RlbmN5ID0gUEdT VEFUX0ZFVENIX0NPTlNJU1RFTkNZX0NBQ0hFOwotCitib29sCQlwZ3N0YXRfdHJhY2tfdmFj dXVtX3N0YXRpc3RpY3MgPSB0cnVlOwogCiAvKiAtLS0tLS0tLS0tCiAgKiBzdGF0ZSBzaGFy ZWQgd2l0aCBwZ3N0YXRfKi5jCkBAIC0yNjAsNyArMjYwLDYgQEAgc3RhdGljIGJvb2wgcGdz dGF0X2lzX2luaXRpYWxpemVkID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBwZ3N0YXRfaXNfc2h1 dGRvd24gPSBmYWxzZTsKICNlbmRpZgogCi0KIC8qCiAgKiBUaGUgZGlmZmVyZW50IGtpbmRz IG9mIGJ1aWx0LWluIHN0YXRpc3RpY3MuCiAgKgpAQCAtODkwLDcgKzg4OSw2IEBAIHBnc3Rh dF9yZXNldF9vZl9raW5kKFBnU3RhdF9LaW5kIGtpbmQpCiAJCXBnc3RhdF9yZXNldF9lbnRy aWVzX29mX2tpbmQoa2luZCwgdHMpOwogfQogCi0KIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRmV0Y2hpbmcg b2Ygc3RhdHMKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtOTU5LDcgKzk1Nyw3IEBAIHBnc3RhdF9mZXRjaF9l bnRyeShQZ1N0YXRfS2luZCBraW5kLCBPaWQgZGJvaWQsIHVpbnQ2NCBvYmppZCkKIAogCS8q IGlmIHdlIG5lZWQgdG8gYnVpbGQgYSBmdWxsIHNuYXBzaG90LCBkbyBzbyAqLwogCWlmIChw Z3N0YXRfZmV0Y2hfY29uc2lzdGVuY3kgPT0gUEdTVEFUX0ZFVENIX0NPTlNJU1RFTkNZX1NO QVBTSE9UKQotCQlwZ3N0YXRfYnVpbGRfc25hcHNob3QoKTsKKwkJcGdzdGF0X2J1aWxkX3Nu YXBzaG90KFBHU1RBVF9LSU5EX0lOVkFMSUQpOwogCiAJLyogaWYgY2FjaGluZyBpcyBkZXNp cmVkLCBsb29rIHVwIGluIGNhY2hlICovCiAJaWYgKHBnc3RhdF9mZXRjaF9jb25zaXN0ZW5j eSA+IFBHU1RBVF9GRVRDSF9DT05TSVNURU5DWV9OT05FKQpAQCAtMTA3NSw3ICsxMDczLDcg QEAgcGdzdGF0X3NuYXBzaG90X2ZpeGVkKFBnU3RhdF9LaW5kIGtpbmQpCiAJCXBnc3RhdF9j bGVhcl9zbmFwc2hvdCgpOwogCiAJaWYgKHBnc3RhdF9mZXRjaF9jb25zaXN0ZW5jeSA9PSBQ R1NUQVRfRkVUQ0hfQ09OU0lTVEVOQ1lfU05BUFNIT1QpCi0JCXBnc3RhdF9idWlsZF9zbmFw c2hvdCgpOworCQlwZ3N0YXRfYnVpbGRfc25hcHNob3QoUEdTVEFUX0tJTkRfSU5WQUxJRCk7 CiAJZWxzZQogCQlwZ3N0YXRfYnVpbGRfc25hcHNob3RfZml4ZWQoa2luZCk7CiAKQEAgLTEx MjYsNyArMTEyNCw3IEBAIHBnc3RhdF9wcmVwX3NuYXBzaG90KHZvaWQpCiB9CiAKIHN0YXRp YyB2b2lkCi1wZ3N0YXRfYnVpbGRfc25hcHNob3Qodm9pZCkKK3Bnc3RhdF9idWlsZF9zbmFw c2hvdChQZ1N0YXRfS2luZCBzdGF0S2luZCkKIHsKIAlkc2hhc2hfc2VxX3N0YXR1cyBoc3Rh dDsKIAlQZ1N0YXRTaGFyZWRfSGFzaEVudHJ5ICpwOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMgYi9zcmMvYmFja2VuZC91dGls cy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYwppbmRleCBmYWJhOGI2NGQyMy4uYmJiMDk1 Mzg5YmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9y ZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxh dGlvbi5jCkBAIC00Nyw2ICs0Nyw4IEBAIHN0YXRpYyB2b2lkIGFkZF90YWJzdGF0X3hhY3Rf bGV2ZWwoUGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXRfaW5mbywgaW50IG5lc3RfbGV2CiBz dGF0aWMgdm9pZCBlbnN1cmVfdGFic3RhdF94YWN0X2xldmVsKFBnU3RhdF9UYWJsZVN0YXR1 cyAqcGdzdGF0X2luZm8pOwogc3RhdGljIHZvaWQgc2F2ZV90cnVuY2Ryb3BfY291bnRlcnMo UGdTdGF0X1RhYmxlWGFjdFN0YXR1cyAqdHJhbnMsIGJvb2wgaXNfZHJvcCk7CiBzdGF0aWMg dm9pZCByZXN0b3JlX3RydW5jZHJvcF9jb3VudGVycyhQZ1N0YXRfVGFibGVYYWN0U3RhdHVz ICp0cmFucyk7CitzdGF0aWMgdm9pZCBwZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNfc3RhdHMo RXh0VmFjUmVwb3J0ICpkc3QsIEV4dFZhY1JlcG9ydCAqc3JjLAorCQkJCQkJCSAgIGJvb2wg YWNjdW11bGF0ZV9yZWx0eXBlX3NwZWNpZmljX2luZm8pOwogCiAKIC8qCkBAIC0yMDgsNyAr MjEwLDggQEAgcGdzdGF0X2Ryb3BfcmVsYXRpb24oUmVsYXRpb24gcmVsKQogICovCiB2b2lk CiBwZ3N0YXRfcmVwb3J0X3ZhY3V1bShPaWQgdGFibGVvaWQsIGJvb2wgc2hhcmVkLAotCQkJ CQkgUGdTdGF0X0NvdW50ZXIgbGl2ZXR1cGxlcywgUGdTdGF0X0NvdW50ZXIgZGVhZHR1cGxl cykKKwkJCQkJIFBnU3RhdF9Db3VudGVyIGxpdmV0dXBsZXMsIFBnU3RhdF9Db3VudGVyIGRl YWR0dXBsZXMsCisJCQkJCSBFeHRWYWNSZXBvcnQgKnBhcmFtcykKIHsKIAlQZ1N0YXRfRW50 cnlSZWYgKmVudHJ5X3JlZjsKIAlQZ1N0YXRTaGFyZWRfUmVsYXRpb24gKnNodGFiZW50cnk7 CkBAIC0yMzIsNiArMjM1LDggQEAgcGdzdGF0X3JlcG9ydF92YWN1dW0oT2lkIHRhYmxlb2lk LCBib29sIHNoYXJlZCwKIAl0YWJlbnRyeS0+bGl2ZV90dXBsZXMgPSBsaXZldHVwbGVzOwog CXRhYmVudHJ5LT5kZWFkX3R1cGxlcyA9IGRlYWR0dXBsZXM7CiAKKwlwZ3N0YXRfYWNjdW11 bGF0ZV9leHR2YWNfc3RhdHMoJnRhYmVudHJ5LT52YWN1dW1fZXh0LCBwYXJhbXMsIHRydWUp OworCiAJLyoKIAkgKiBJdCBpcyBxdWl0ZSBwb3NzaWJsZSB0aGF0IGEgbm9uLWFnZ3Jlc3Np dmUgVkFDVVVNIGVuZGVkIHVwIHNraXBwaW5nCiAJICogdmFyaW91cyBwYWdlcywgaG93ZXZl ciwgd2UnbGwgemVybyB0aGUgaW5zZXJ0IGNvdW50ZXIgaGVyZSByZWdhcmRsZXNzLgpAQCAt ODU3LDYgKzg2Miw5IEBAIHBnc3RhdF9yZWxhdGlvbl9mbHVzaF9jYihQZ1N0YXRfRW50cnlS ZWYgKmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpCiAJdGFiZW50cnktPmJsb2Nrc19mZXRjaGVk ICs9IGxzdGF0cy0+Y291bnRzLmJsb2Nrc19mZXRjaGVkOwogCXRhYmVudHJ5LT5ibG9ja3Nf aGl0ICs9IGxzdGF0cy0+Y291bnRzLmJsb2Nrc19oaXQ7CiAKKwl0YWJlbnRyeS0+cmV2X2Fs bF9mcm96ZW5fcGFnZXMgKz0gbHN0YXRzLT5jb3VudHMucmV2X2FsbF9mcm96ZW5fcGFnZXM7 CisJdGFiZW50cnktPnJldl9hbGxfdmlzaWJsZV9wYWdlcyArPSBsc3RhdHMtPmNvdW50cy5y ZXZfYWxsX3Zpc2libGVfcGFnZXM7CisKIAkvKiBDbGFtcCBsaXZlX3R1cGxlcyBpbiBjYXNl IG9mIG5lZ2F0aXZlIGRlbHRhX2xpdmVfdHVwbGVzICovCiAJdGFiZW50cnktPmxpdmVfdHVw bGVzID0gTWF4KHRhYmVudHJ5LT5saXZlX3R1cGxlcywgMCk7CiAJLyogTGlrZXdpc2UgZm9y IGRlYWRfdHVwbGVzICovCkBAIC05ODAsMyArOTg4LDM5IEBAIHJlc3RvcmVfdHJ1bmNkcm9w X2NvdW50ZXJzKFBnU3RhdF9UYWJsZVhhY3RTdGF0dXMgKnRyYW5zKQogCQl0cmFucy0+dHVw bGVzX2RlbGV0ZWQgPSB0cmFucy0+ZGVsZXRlZF9wcmVfdHJ1bmNkcm9wOwogCX0KIH0KKwor c3RhdGljIHZvaWQKK3Bnc3RhdF9hY2N1bXVsYXRlX2V4dHZhY19zdGF0cyhFeHRWYWNSZXBv cnQgKmRzdCwgRXh0VmFjUmVwb3J0ICpzcmMsCisJCQkJCQkJICAgYm9vbCBhY2N1bXVsYXRl X3JlbHR5cGVfc3BlY2lmaWNfaW5mbykKK3sKKwlkc3QtPnRvdGFsX2Jsa3NfcmVhZCArPSBz cmMtPnRvdGFsX2Jsa3NfcmVhZDsKKwlkc3QtPnRvdGFsX2Jsa3NfaGl0ICs9IHNyYy0+dG90 YWxfYmxrc19oaXQ7CisJZHN0LT50b3RhbF9ibGtzX2RpcnRpZWQgKz0gc3JjLT50b3RhbF9i bGtzX2RpcnRpZWQ7CisJZHN0LT50b3RhbF9ibGtzX3dyaXR0ZW4gKz0gc3JjLT50b3RhbF9i bGtzX3dyaXR0ZW47CisJZHN0LT53YWxfYnl0ZXMgKz0gc3JjLT53YWxfYnl0ZXM7CisJZHN0 LT53YWxfZnBpICs9IHNyYy0+d2FsX2ZwaTsKKwlkc3QtPndhbF9yZWNvcmRzICs9IHNyYy0+ d2FsX3JlY29yZHM7CisJZHN0LT5ibGtfcmVhZF90aW1lICs9IHNyYy0+YmxrX3JlYWRfdGlt ZTsKKwlkc3QtPmJsa193cml0ZV90aW1lICs9IHNyYy0+YmxrX3dyaXRlX3RpbWU7CisJZHN0 LT5kZWxheV90aW1lICs9IHNyYy0+ZGVsYXlfdGltZTsKKwlkc3QtPnRvdGFsX3RpbWUgKz0g c3JjLT50b3RhbF90aW1lOworCisJaWYgKCFhY2N1bXVsYXRlX3JlbHR5cGVfc3BlY2lmaWNf aW5mbykKKwkJcmV0dXJuOworCisJZHN0LT5ibGtzX2ZldGNoZWQgKz0gc3JjLT5ibGtzX2Zl dGNoZWQ7CisJZHN0LT5ibGtzX2hpdCArPSBzcmMtPmJsa3NfaGl0OworCisJZHN0LT5wYWdl c19zY2FubmVkICs9IHNyYy0+cGFnZXNfc2Nhbm5lZDsKKwlkc3QtPnBhZ2VzX3JlbW92ZWQg Kz0gc3JjLT5wYWdlc19yZW1vdmVkOworCWRzdC0+dm1fbmV3X2Zyb3plbl9wYWdlcyArPSBz cmMtPnZtX25ld19mcm96ZW5fcGFnZXM7CisJZHN0LT52bV9uZXdfdmlzaWJsZV9wYWdlcyAr PSBzcmMtPnZtX25ld192aXNpYmxlX3BhZ2VzOworCWRzdC0+dm1fbmV3X3Zpc2libGVfZnJv emVuX3BhZ2VzICs9IHNyYy0+dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzOworCWRzdC0+ dHVwbGVzX2RlbGV0ZWQgKz0gc3JjLT50dXBsZXNfZGVsZXRlZDsKKwlkc3QtPnR1cGxlc19m cm96ZW4gKz0gc3JjLT50dXBsZXNfZnJvemVuOworCWRzdC0+cmVjZW50bHlfZGVhZF90dXBs ZXMgKz0gc3JjLT5yZWNlbnRseV9kZWFkX3R1cGxlczsKKwlkc3QtPmluZGV4X3ZhY3V1bV9j b3VudCArPSBzcmMtPmluZGV4X3ZhY3V1bV9jb3VudDsKKwlkc3QtPm1pc3NlZF9kZWFkX3Bh Z2VzICs9IHNyYy0+bWlzc2VkX2RlYWRfcGFnZXM7CisJZHN0LT5taXNzZWRfZGVhZF90dXBs ZXMgKz0gc3JjLT5taXNzZWRfZGVhZF90dXBsZXM7CisKK30KXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVu Y3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCmluZGV4IGNkZjM3 NDAzZTlkLi5jNTQ0ZjZiZDczYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3Bnc3RhdGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNz LmMKQEAgLTEwNiw2ICsxMDYsMTIgQEAgUEdfU1RBVF9HRVRfUkVMRU5UUllfSU5UNjQodHVw bGVzX3VwZGF0ZWQpCiAvKiBwZ19zdGF0X2dldF92YWN1dW1fY291bnQgKi8KIFBHX1NUQVRf R0VUX1JFTEVOVFJZX0lOVDY0KHZhY3V1bV9jb3VudCkKIAorLyogcGdfc3RhdF9nZXRfcmV2 X2Zyb3plbl9wYWdlcyAqLworUEdfU1RBVF9HRVRfUkVMRU5UUllfSU5UNjQocmV2X2FsbF9m cm96ZW5fcGFnZXMpCisKKy8qIHBnX3N0YXRfZ2V0X3Jldl9hbGxfdmlzaWJsZV9wYWdlcyAq LworUEdfU1RBVF9HRVRfUkVMRU5UUllfSU5UNjQocmV2X2FsbF92aXNpYmxlX3BhZ2VzKQor CiAjZGVmaW5lIFBHX1NUQVRfR0VUX1JFTEVOVFJZX1RJTUVTVEFNUFRaKHN0YXQpCQkJCQlc CiBEYXR1bQkJCQkJCQkJCQkJCQkJCVwKIENwcENvbmNhdChwZ19zdGF0X2dldF8sc3RhdCko UEdfRlVOQ1RJT05fQVJHUykJCQkJCVwKQEAgLTIwNjMsMyArMjA2OSwxNDEgQEAgcGdfc3Rh dF9oYXZlX3N0YXRzKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlQR19SRVRVUk5fQk9PTChwZ3N0 YXRfaGF2ZV9lbnRyeShraW5kLCBkYm9pZCwgb2JqaWQpKTsKIH0KKworCisvKgorICogR2V0 IHRoZSB2YWN1dW0gc3RhdGlzdGljcyBmb3IgdGhlIGhlYXAgdGFibGVzLgorICovCitEYXR1 bQorcGdfc3RhdF9nZXRfdmFjdXVtX3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQoreworCSNk ZWZpbmUgUEdfU1RBVF9HRVRfVkFDVVVNX1RBQkxFU19TVEFUU19DT0xTIDI1CisKKwlPaWQJ CQkJCQlyZWxpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJUGdTdGF0X1N0YXRUYWJFbnRyeSAg ICAgKnRhYmVudHJ5OworCUV4dFZhY1JlcG9ydCAJCQkqZXh0dmFjdXVtOworCVR1cGxlRGVz YwkJCQkgdHVwZGVzYzsKKwlEYXR1bQkJCQkJIHZhbHVlc1tQR19TVEFUX0dFVF9WQUNVVU1f VEFCTEVTX1NUQVRTX0NPTFNdID0gezB9OworCWJvb2wJCQkJCSBudWxsc1tQR19TVEFUX0dF VF9WQUNVVU1fVEFCTEVTX1NUQVRTX0NPTFNdID0gezB9OworCWNoYXIJCQkJCSBidWZbMjU2 XTsKKwlpbnQJCQkJCQkgaSA9IDA7CisJRXh0VmFjUmVwb3J0IGFsbHplcm87CisKKwkvKiBJ bml0aWFsaXNlIGF0dHJpYnV0ZXMgaW5mb3JtYXRpb24gaW4gdGhlIHR1cGxlIGRlc2NyaXB0 b3IgKi8KKwl0dXBkZXNjID0gQ3JlYXRlVGVtcGxhdGVUdXBsZURlc2MoUEdfU1RBVF9HRVRf VkFDVVVNX1RBQkxFU19TVEFUU19DT0xTKTsKKworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBk ZXNjLCAoQXR0ck51bWJlcikgKytpLCAicmVsaWQiLAorCQkJCQkgICBJTlQ0T0lELCAtMSwg MCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ0 b3RhbF9ibGtzX3JlYWQiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNj SW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ0b3RhbF9ibGtzX2hpdCIs CisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVz YywgKEF0dHJOdW1iZXIpICsraSwgInRvdGFsX2Jsa3NfZGlydGllZCIsCisJCQkJCSAgIElO VDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1i ZXIpICsraSwgInRvdGFsX2Jsa3Nfd3JpdHRlbiIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAw KTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInJl bF9ibGtzX3JlYWQiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5p dEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJyZWxfYmxrc19oaXQiLAorCQkJ CQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChB dHRyTnVtYmVyKSArK2ksICJwYWdlc19zY2FubmVkIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEs IDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAi cGFnZXNfcmVtb3ZlZCIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJ bml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInZtX25ld19mcm96ZW5fcGFn ZXMiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1 cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ2bV9uZXdfdmlzaWJsZV9wYWdlcyIsCisJCQkJ CSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0 dHJOdW1iZXIpICsraSwgInZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyIsCisJCQkJCSAg IElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJO dW1iZXIpICsraSwgIm1pc3NlZF9kZWFkX3BhZ2VzIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEs IDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAi dHVwbGVzX2RlbGV0ZWQiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNj SW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ0dXBsZXNfZnJvemVuIiwK KwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNj LCAoQXR0ck51bWJlcikgKytpLCAicmVjZW50bHlfZGVhZF90dXBsZXMiLAorCQkJCQkgICBJ TlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVt YmVyKSArK2ksICJtaXNzZWRfZGVhZF90dXBsZXMiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwg MCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJp bmRleF92YWN1dW1fY291bnQiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVE ZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ3YWxfcmVjb3JkcyIs CisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVz YywgKEF0dHJOdW1iZXIpICsraSwgIndhbF9mcGkiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwg MCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ3 YWxfYnl0ZXMiLAorCQkJCQkgICBOVU1FUklDT0lELCAtMSwgMCk7CisKKwlUdXBsZURlc2NJ bml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImJsa19yZWFkX3RpbWUiLAor CQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVz YywgKEF0dHJOdW1iZXIpICsraSwgImJsa193cml0ZV90aW1lIiwKKwkJCQkJICAgRkxPQVQ4 T0lELCAtMSwgMCk7CisKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1i ZXIpICsraSwgImRlbGF5X3RpbWUiLAorCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsKKwlU dXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInRvdGFsX3Rp bWUiLAorCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsKKworCUFzc2VydChpID09IFBHX1NU QVRfR0VUX1ZBQ1VVTV9UQUJMRVNfU1RBVFNfQ09MUyk7CisKKwlCbGVzc1R1cGxlRGVzYyh0 dXBkZXNjKTsKKworCXRhYmVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfdGFiZW50cnkocmVs aWQpOworCisJaWYgKHRhYmVudHJ5ID09IE5VTEwpCisJeworCQkvKiBJZiB0aGUgc3Vic2Ny aXB0aW9uIGlzIG5vdCBmb3VuZCwgaW5pdGlhbGlzZSBpdHMgc3RhdHMgKi8KKwkJbWVtc2V0 KCZhbGx6ZXJvLCAwLCBzaXplb2YoRXh0VmFjUmVwb3J0KSk7CisJCWV4dHZhY3V1bSA9ICZh bGx6ZXJvOworCX0KKwllbHNlCisJeworCQlleHR2YWN1dW0gPSAmKHRhYmVudHJ5LT52YWN1 dW1fZXh0KTsKKwl9CisKKwlpID0gMDsKKworCXZhbHVlc1tpKytdID0gT2JqZWN0SWRHZXRE YXR1bShyZWxpZCk7CisKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVt LT50b3RhbF9ibGtzX3JlYWQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2 YWN1dW0tPnRvdGFsX2Jsa3NfaGl0KTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0o ZXh0dmFjdXVtLT50b3RhbF9ibGtzX2RpcnRpZWQpOworCXZhbHVlc1tpKytdID0gSW50NjRH ZXREYXR1bShleHR2YWN1dW0tPnRvdGFsX2Jsa3Nfd3JpdHRlbik7CisKKwl2YWx1ZXNbaSsr XSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5ibGtzX2ZldGNoZWQgLQorCQkJCQkJCQkJ ZXh0dmFjdXVtLT5ibGtzX2hpdCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4 dHZhY3V1bS0+Ymxrc19oaXQpOworCisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4 dHZhY3V1bS0+cGFnZXNfc2Nhbm5lZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVt KGV4dHZhY3V1bS0+cGFnZXNfcmVtb3ZlZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERh dHVtKGV4dHZhY3V1bS0+dm1fbmV3X2Zyb3plbl9wYWdlcyk7CisJdmFsdWVzW2krK10gPSBJ bnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dm1fbmV3X3Zpc2libGVfcGFnZXMpOworCXZhbHVl c1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnZtX25ld192aXNpYmxlX2Zyb3pl bl9wYWdlcyk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+bWlz c2VkX2RlYWRfcGFnZXMpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1 dW0tPnR1cGxlc19kZWxldGVkKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0 dmFjdXVtLT50dXBsZXNfZnJvemVuKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0o ZXh0dmFjdXVtLT5yZWNlbnRseV9kZWFkX3R1cGxlcyk7CisJdmFsdWVzW2krK10gPSBJbnQ2 NEdldERhdHVtKGV4dHZhY3V1bS0+bWlzc2VkX2RlYWRfdHVwbGVzKTsKKwl2YWx1ZXNbaSsr XSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5pbmRleF92YWN1dW1fY291bnQpOworCisJ dmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+d2FsX3JlY29yZHMpOwor CXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPndhbF9mcGkpOworCisJ LyogQ29udmVydCB0byBudW1lcmljLCBsaWtlIHBnX3N0YXRfc3RhdGVtZW50cyAqLworCXNu cHJpbnRmKGJ1Ziwgc2l6ZW9mIGJ1ZiwgVUlOVDY0X0ZPUk1BVCwgZXh0dmFjdXVtLT53YWxf Ynl0ZXMpOworCXZhbHVlc1tpKytdID0gRGlyZWN0RnVuY3Rpb25DYWxsMyhudW1lcmljX2lu LAorCQkJCQkJCQkJICBDU3RyaW5nR2V0RGF0dW0oYnVmKSwKKwkJCQkJCQkJCSAgT2JqZWN0 SWRHZXREYXR1bSgwKSwKKwkJCQkJCQkJCSAgSW50MzJHZXREYXR1bSgtMSkpOworCisJdmFs dWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPmJsa19yZWFkX3RpbWUpOwor CXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFjdXVtLT5ibGtfd3JpdGVfdGlt ZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPmRlbGF5X3Rp bWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFjdXVtLT50b3RhbF90 aW1lKTsKKworCUFzc2VydChpID09IFBHX1NUQVRfR0VUX1ZBQ1VVTV9UQUJMRVNfU1RBVFNf Q09MUyk7CisKKwkvKiBSZXR1cm5zIHRoZSByZWNvcmQgYXMgRGF0dW0gKi8KKwlQR19SRVRV Uk5fREFUVU0oSGVhcFR1cGxlR2V0RGF0dW0oaGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZh bHVlcywgbnVsbHMpKSk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jIGIvc3JjL2JhY2tlbmQvdXRp bHMvZXJyb3IvZWxvZy5jCmluZGV4IDI4OTA1OTQzNWE5Li4wNDFmZDM3MzBhMiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2Vycm9yL2Vsb2cuYwpAQCAtMTYxOSw2ICsxNjE5LDE5IEBAIGdldGludGVybmFs ZXJycG9zaXRpb24odm9pZCkKIAlyZXR1cm4gZWRhdGEtPmludGVybmFscG9zOwogfQogCisv KgorICogUmV0dXJuIGVsZXZlbCBvZiBlcnJvcnMKKyAqLworaW50CitnZXRlcnJlbGV2ZWwo dm9pZCkKK3sKKwlFcnJvckRhdGEgICplZGF0YSA9ICZlcnJvcmRhdGFbZXJyb3JkYXRhX3N0 YWNrX2RlcHRoXTsKKworCS8qIHdlIGRvbid0IGJvdGhlciBpbmNyZW1lbnRpbmcgcmVjdXJz aW9uX2RlcHRoICovCisJQ0hFQ0tfU1RBQ0tfREVQVEgoKTsKKworCXJldHVybiBlZGF0YS0+ ZWxldmVsOworfQogCiAvKgogICogRnVuY3Rpb25zIHRvIGFsbG93IGNvbnN0cnVjdGlvbiBv ZiBlcnJvciBtZXNzYWdlIHN0cmluZ3Mgc2VwYXJhdGVseSBmcm9tCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4IDhjZjFhZmJhZDIwLi5iZGRmYWJhNWIwOSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTE0NzgsNiArMTQ3OCwxNSBA QCBzdHJ1Y3QgY29uZmlnX2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10gPQogCQlmYWxzZSwK IAkJTlVMTCwgTlVMTCwgTlVMTAogCX0sCisJeworCQl7InRyYWNrX3ZhY3V1bV9zdGF0aXN0 aWNzIiwgUEdDX1NVU0VULCBTVEFUU19DVU1VTEFUSVZFLAorCQkJZ2V0dGV4dF9ub29wKCJD b2xsZWN0cyB2YWN1dW0gc3RhdGlzdGljcyBmb3IgdGFibGUgcmVsYXRpb25zLiIpLAorCQkJ TlVMTAorCQl9LAorCQkmcGdzdGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzLAorCQl0cnVl LAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwKIAl7CiAJCXsidHJhY2tfd2FsX2lvX3RpbWlu ZyIsIFBHQ19TVVNFVCwgU1RBVFNfQ1VNVUxBVElWRSwKIAkJCWdldHRleHRfbm9vcCgiQ29s bGVjdHMgdGltaW5nIHN0YXRpc3RpY3MgZm9yIFdBTCBJL08gYWN0aXZpdHkuIiksCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCAwZjIyYzIxNzIzNS4uZWZhNjBmYTNiYzcgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTI0MTYsNCArMTI0MTYsMjIgQEAKICAg cHJvYXJndHlwZXMgPT4gJ2ludDInLAogICBwcm9zcmMgPT4gJ2dpc3Rfc3RyYXRudW1faWRl bnRpdHknIH0sCiAKK3sgb2lkID0+ICc4MDAxJywKKyAgZGVzY3IgPT4gJ3BnX3N0YXRfZ2V0 X3ZhY3V1bV90YWJsZXMgcmV0dXJuIHN0YXRzIHZhbHVlcycsCisgIHByb25hbWUgPT4gJ3Bn X3N0YXRfZ2V0X3ZhY3V1bV90YWJsZXMnLCBwcm9yb3dzID0+IDEwMDAsIHByb3ZvbGF0aWxl ID0+ICdzJywgcHJvcmV0dHlwZSA9PiAncmVjb3JkJyxwcm9pc3N0cmljdCA9PiAnZicsCisg IHByb3JldHNldCA9PiAndCcsCisgIHByb2FyZ3R5cGVzID0+ICdvaWQnLAorICBwcm9hbGxh cmd0eXBlcyA9PiAne29pZCxvaWQsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50 OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGlu dDgsaW50OCxudW1lcmljLGZsb2F0OCxmbG9hdDgsZmxvYXQ4LGZsb2F0OH0nLAorICBwcm9h cmdtb2RlcyA9PiAne2ksbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxv LG8sbyxvLG8sb30nLAorICBwcm9hcmduYW1lcyA9PiAne3JlbG9pZCxyZWxpZCx0b3RhbF9i bGtzX3JlYWQsdG90YWxfYmxrc19oaXQsdG90YWxfYmxrc19kaXJ0aWVkLHRvdGFsX2Jsa3Nf d3JpdHRlbixyZWxfYmxrc19yZWFkLHJlbF9ibGtzX2hpdCxwYWdlc19zY2FubmVkLHBhZ2Vz X3JlbW92ZWQsdm1fbmV3X2Zyb3plbl9wYWdlcyx2bV9uZXdfdmlzaWJsZV9wYWdlcyx2bV9u ZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMsbWlzc2VkX2RlYWRfcGFnZXMsdHVwbGVzX2RlbGV0 ZWQsdHVwbGVzX2Zyb3plbixyZWNlbnRseV9kZWFkX3R1cGxlcyxtaXNzZWRfZGVhZF90dXBs ZXMsaW5kZXhfdmFjdXVtX2NvdW50LHdhbF9yZWNvcmRzLHdhbF9mcGksd2FsX2J5dGVzLGJs a19yZWFkX3RpbWUsYmxrX3dyaXRlX3RpbWUsZGVsYXlfdGltZSx0b3RhbF90aW1lfScsCisg IHByb3NyYyA9PiAncGdfc3RhdF9nZXRfdmFjdXVtX3RhYmxlcycgfSwKKworICB7IG9pZCA9 PiAnODAwMicsIGRlc2NyID0+ICdzdGF0aXN0aWNzOiBudW1iZXIgb2YgdGltZXMgdGhlIGFs bC12aXNpYmxlIHBhZ2VzIGluIHRoZSB2aXNpYmlsaXR5IG1hcCB3YXMgcmVtb3ZlZCBmb3Ig cGFnZXMgb2YgdGFibGUnLAorICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9yZXZfYWxsX3Zp c2libGVfcGFnZXMnLCBwcm92b2xhdGlsZSA9PiAncycsCisgIHByb3BhcmFsbGVsID0+ICdy JywgcHJvcmV0dHlwZSA9PiAnaW50OCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAorICBwcm9z cmMgPT4gJ3BnX3N0YXRfZ2V0X3Jldl9hbGxfdmlzaWJsZV9wYWdlcycgfSwKKyAgeyBvaWQg PT4gJzgwMDMnLCBkZXNjciA9PiAnc3RhdGlzdGljczogbnVtYmVyIG9mIHRpbWVzIHRoZSBh bGwtZnJvemVuIHBhZ2VzIGluIHRoZSB2aXNpYmlsaXR5IG1hcCB3YXMgcmVtb3ZlZCBmb3Ig cGFnZXMgb2YgdGFibGUnLAorICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9yZXZfYWxsX2Zy b3plbl9wYWdlcycsIHByb3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvcGFyYWxsZWwgPT4gJ3In LCBwcm9yZXR0eXBlID0+ICdpbnQ4JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCisgIHByb3Ny YyA9PiAncGdfc3RhdF9nZXRfcmV2X2FsbF9mcm96ZW5fcGFnZXMnIH0sCiBdCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaCBiL3NyYy9pbmNsdWRlL2NvbW1h bmRzL3ZhY3V1bS5oCmluZGV4IDc1OWY5YTg3ZDM4Li4wN2IyOGIxNWQ5ZiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgKKysrIGIvc3JjL2luY2x1ZGUvY29t bWFuZHMvdmFjdXVtLmgKQEAgLTMwOCw2ICszMDgsNyBAQCBleHRlcm4gUEdETExJTVBPUlQg aW50IHZhY3V1bV9tdWx0aXhhY3RfZmFpbHNhZmVfYWdlOwogZXh0ZXJuIFBHRExMSU1QT1JU IHBnX2F0b21pY191aW50MzIgKlZhY3V1bVNoYXJlZENvc3RCYWxhbmNlOwogZXh0ZXJuIFBH RExMSU1QT1JUIHBnX2F0b21pY191aW50MzIgKlZhY3V1bUFjdGl2ZU5Xb3JrZXJzOwogZXh0 ZXJuIFBHRExMSU1QT1JUIGludCBWYWN1dW1Db3N0QmFsYW5jZUxvY2FsOworZXh0ZXJuIFBH RExMSU1QT1JUIGRvdWJsZSBWYWN1dW1EZWxheVRpbWU7CiAKIGV4dGVybiBQR0RMTElNUE9S VCBib29sIFZhY3V1bUZhaWxzYWZlQWN0aXZlOwogZXh0ZXJuIFBHRExMSU1QT1JUIGRvdWJs ZSB2YWN1dW1fY29zdF9kZWxheTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5o IGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKaW5kZXggZWJmZWVmMmY0NjAuLmEwYzMyNTM5MTZh IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaAorKysgYi9zcmMvaW5jbHVkZS9w Z3N0YXQuaApAQCAtMTY2LDYgKzE2Niw1MiBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfQmFj a2VuZFN1YkVudHJ5CiAJUGdTdGF0X0NvdW50ZXIgY29uZmxpY3RfY291bnRbQ09ORkxJQ1Rf TlVNX1RZUEVTXTsKIH0gUGdTdGF0X0JhY2tlbmRTdWJFbnRyeTsKIAorLyogLS0tLS0tLS0t LQorICoKKyAqIEV4dFZhY1JlcG9ydAorICoKKyAqIEFkZGl0aW9uYWwgc3RhdGlzdGljcyBv ZiB2YWN1dW0gcHJvY2Vzc2luZyBvdmVyIGEgaGVhcCByZWxhdGlvbi4KKyAqIHBhZ2VzX3Jl bW92ZWQgaXMgdGhlIGFtb3VudCBieSB3aGljaCB0aGUgcGh5c2ljYWxseSBzaHJhbmssCisg KiBpZiBhbnkgKGllIHRoZSBjaGFuZ2UgaW4gaXRzIHRvdGFsIHNpemUgb24gZGlzaykKKyAq IHBhZ2VzX2RlbGV0ZWQgcmVmZXIgdG8gZnJlZSBzcGFjZSB3aXRoaW4gdGhlIGluZGV4IGZp bGUKKyAqIC0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgRXh0VmFjUmVwb3J0Cit7 CisJLyogbnVtYmVyIG9mIGJsb2NrcyBtaXNzZWQsIGhpdCwgZGlydGllZCBhbmQgd3JpdHRl biBkdXJpbmcgYSB2YWN1dW0gb2Ygc3BlY2lmaWMgcmVsYXRpb24gKi8KKwlpbnQ2NAkJdG90 YWxfYmxrc19yZWFkOworCWludDY0CQl0b3RhbF9ibGtzX2hpdDsKKwlpbnQ2NAkJdG90YWxf Ymxrc19kaXJ0aWVkOworCWludDY0CQl0b3RhbF9ibGtzX3dyaXR0ZW47CisKKwkvKiBibG9j a3MgbWlzc2VkIGFuZCBoaXQgZm9yIGp1c3QgdGhlIGhlYXAgZHVyaW5nIGEgdmFjdXVtIG9m IHNwZWNpZmljIHJlbGF0aW9uICovCisJaW50NjQJCWJsa3NfZmV0Y2hlZDsKKwlpbnQ2NAkJ Ymxrc19oaXQ7CisKKwkvKiBWYWN1dW0gV0FMIHVzYWdlIHN0YXRzICovCisJaW50NjQJCXdh bF9yZWNvcmRzOwkvKiB3YWwgdXNhZ2U6IG51bWJlciBvZiBXQUwgcmVjb3JkcyAqLworCWlu dDY0CQl3YWxfZnBpOwkJLyogd2FsIHVzYWdlOiBudW1iZXIgb2YgV0FMIGZ1bGwgcGFnZSBp bWFnZXMgcHJvZHVjZWQgKi8KKwl1aW50NjQJCXdhbF9ieXRlczsJCS8qIHdhbCB1c2FnZTog c2l6ZSBvZiBXQUwgcmVjb3JkcyBwcm9kdWNlZCAqLworCisJLyogVGltZSBzdGF0cy4gKi8K Kwlkb3VibGUJCWJsa19yZWFkX3RpbWU7CS8qIHRpbWUgc3BlbnQgcmVhZGluZyBwYWdlcywg aW4gbXNlYyAqLworCWRvdWJsZQkJYmxrX3dyaXRlX3RpbWU7IC8qIHRpbWUgc3BlbnQgd3Jp dGluZyBwYWdlcywgaW4gbXNlYyAqLworCWRvdWJsZQkJZGVsYXlfdGltZTsJCS8qIGhvdyBs b25nIHZhY3V1bSBzbGVwdCBpbiB2YWN1dW0gZGVsYXkgcG9pbnQsIGluIG1zZWMgKi8KKwlk b3VibGUJCXRvdGFsX3RpbWU7CQkvKiB0b3RhbCB0aW1lIG9mIGEgdmFjdXVtIG9wZXJhdGlv biwgaW4gbXNlYyAqLworCisJaW50NjQJCXBhZ2VzX3NjYW5uZWQ7CQkvKiBoZWFwIHBhZ2Vz IGV4YW1pbmVkIChub3Qgc2tpcHBlZCBieSBWTSkgKi8KKwlpbnQ2NAkJcGFnZXNfcmVtb3Zl ZDsJCS8qIGhlYXAgcGFnZXMgcmVtb3ZlZCBieSB2YWN1dW0gInRydW5jYXRpb24iICovCisJ aW50NjQJCXZtX25ld19mcm96ZW5fcGFnZXM7CQkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMg ZnJvemVuICovCisJaW50NjQJCXZtX25ld192aXNpYmxlX3BhZ2VzOwkvKiBwYWdlcyBtYXJr ZWQgaW4gVk0gYXMgYWxsLXZpc2libGUgKi8KKwlpbnQ2NAkJdm1fbmV3X3Zpc2libGVfZnJv emVuX3BhZ2VzOwkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMgYWxsLXZpc2libGUgYW5kIGZy b3plbiAqLworCWludDY0CQltaXNzZWRfZGVhZF90dXBsZXM7CQkvKiB0dXBsZXMgbm90IHBy dW5lZCBieSB2YWN1dW0gZHVlIHRvIGZhaWx1cmUgdG8gZ2V0IGEgY2xlYW51cCBsb2NrICov CisJaW50NjQJCW1pc3NlZF9kZWFkX3BhZ2VzOwkJLyogcGFnZXMgd2l0aCBtaXNzZWQgZGVh ZCB0dXBsZXMgKi8KKwlpbnQ2NAkJdHVwbGVzX2RlbGV0ZWQ7CQkvKiB0dXBsZXMgZGVsZXRl ZCBieSB2YWN1dW0gKi8KKwlpbnQ2NAkJdHVwbGVzX2Zyb3plbjsJCS8qIHR1cGxlcyBmcm96 ZW4gdXAgYnkgdmFjdXVtICovCisJaW50NjQJCXJlY2VudGx5X2RlYWRfdHVwbGVzOwkvKiBk ZWxldGVkIHR1cGxlcyB0aGF0IGFyZSBzdGlsbCB2aXNpYmxlIHRvIHNvbWUgdHJhbnNhY3Rp b24gKi8KKwlpbnQ2NAkJaW5kZXhfdmFjdXVtX2NvdW50OwkvKiBudW1iZXIgb2YgaW5kZXgg dmFjdXVtaW5ncyAqLworfSBFeHRWYWNSZXBvcnQ7CisKIC8qIC0tLS0tLS0tLS0KICAqIFBn U3RhdF9UYWJsZUNvdW50cwkJCVRoZSBhY3R1YWwgcGVyLXRhYmxlIGNvdW50cyBrZXB0IGJ5 IGEgYmFja2VuZAogICoKQEAgLTIwOCw2ICsyNTQsMTYgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdT dGF0X1RhYmxlQ291bnRzCiAKIAlQZ1N0YXRfQ291bnRlciBibG9ja3NfZmV0Y2hlZDsKIAlQ Z1N0YXRfQ291bnRlciBibG9ja3NfaGl0OworCisJUGdTdGF0X0NvdW50ZXIgcmV2X2FsbF92 aXNpYmxlX3BhZ2VzOworCVBnU3RhdF9Db3VudGVyIHJldl9hbGxfZnJvemVuX3BhZ2VzOwor CisJLyoKKwkgKiBBZGRpdGlvbmFsIGN1bXVsYXRpdmUgc3RhdCBvbiB2YWN1dW0gb3BlcmF0 aW9ucy4KKwkgKiBVc2UgYW4gZXhwZW5zaXZlIHN0cnVjdHVyZSBhcyBhbiBhYnN0cmFjdGlv biBmb3IgZGlmZmVyZW50IHR5cGVzIG9mCisJICogcmVsYXRpb25zLgorCSAqLworCUV4dFZh Y1JlcG9ydAl2YWN1dW1fZXh0OwogfSBQZ1N0YXRfVGFibGVDb3VudHM7CiAKIC8qIC0tLS0t LS0tLS0KQEAgLTI2Niw3ICszMjIsNyBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfVGFibGVY YWN0U3RhdHVzCiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCi0jZGVmaW5lIFBHU1RBVF9GSUxFX0ZPUk1B VF9JRAkweDAxQTVCQ0FGCisjZGVmaW5lIFBHU1RBVF9GSUxFX0ZPUk1BVF9JRAkweDAxQTVC Q0IwCiAKIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9BcmNoaXZlclN0YXRzCiB7CkBAIC00MDUs NiArNDYxLDggQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0YXREQkVudHJ5CiAJUGdTdGF0 X0NvdW50ZXIgcGFyYWxsZWxfd29ya2Vyc19sYXVuY2hlZDsKIAogCVRpbWVzdGFtcFR6IHN0 YXRfcmVzZXRfdGltZXN0YW1wOworCisJRXh0VmFjUmVwb3J0IHZhY3V1bV9leHQ7CQkvKiBl eHRlbmRlZCB2YWN1dW0gc3RhdGlzdGljcyAqLwogfSBQZ1N0YXRfU3RhdERCRW50cnk7CiAK IHR5cGVkZWYgc3RydWN0IFBnU3RhdF9TdGF0RnVuY0VudHJ5CkBAIC00NzgsNiArNTM2LDEx IEBAIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9TdGF0VGFiRW50cnkKIAlQZ1N0YXRfQ291bnRl ciBhbmFseXplX2NvdW50OwogCVRpbWVzdGFtcFR6IGxhc3RfYXV0b2FuYWx5emVfdGltZTsJ LyogYXV0b3ZhY3V1bSBpbml0aWF0ZWQgKi8KIAlQZ1N0YXRfQ291bnRlciBhdXRvYW5hbHl6 ZV9jb3VudDsKKworCVBnU3RhdF9Db3VudGVyIHJldl9hbGxfdmlzaWJsZV9wYWdlczsKKwlQ Z1N0YXRfQ291bnRlciByZXZfYWxsX2Zyb3plbl9wYWdlczsKKworCUV4dFZhY1JlcG9ydCB2 YWN1dW1fZXh0OwogfSBQZ1N0YXRfU3RhdFRhYkVudHJ5OwogCiB0eXBlZGVmIHN0cnVjdCBQ Z1N0YXRfV2FsU3RhdHMKQEAgLTY0NSw3ICs3MDgsOCBAQCBleHRlcm4gdm9pZCBwZ3N0YXRf YXNzb2NfcmVsYXRpb24oUmVsYXRpb24gcmVsKTsKIGV4dGVybiB2b2lkIHBnc3RhdF91bmxp bmtfcmVsYXRpb24oUmVsYXRpb24gcmVsKTsKIAogZXh0ZXJuIHZvaWQgcGdzdGF0X3JlcG9y dF92YWN1dW0oT2lkIHRhYmxlb2lkLCBib29sIHNoYXJlZCwKLQkJCQkJCQkJIFBnU3RhdF9D b3VudGVyIGxpdmV0dXBsZXMsIFBnU3RhdF9Db3VudGVyIGRlYWR0dXBsZXMpOworCQkJCQkJ CQkgUGdTdGF0X0NvdW50ZXIgbGl2ZXR1cGxlcywgUGdTdGF0X0NvdW50ZXIgZGVhZHR1cGxl cywKKwkJCQkJCQkJIEV4dFZhY1JlcG9ydCAqcGFyYW1zKTsKIGV4dGVybiB2b2lkIHBnc3Rh dF9yZXBvcnRfYW5hbHl6ZShSZWxhdGlvbiByZWwsCiAJCQkJCQkJCSAgUGdTdGF0X0NvdW50 ZXIgbGl2ZXR1cGxlcywgUGdTdGF0X0NvdW50ZXIgZGVhZHR1cGxlcywKIAkJCQkJCQkJICBi b29sIHJlc2V0Y291bnRlcik7CkBAIC02OTYsNiArNzYwLDE3IEBAIGV4dGVybiB2b2lkIHBn c3RhdF9yZXBvcnRfYW5hbHl6ZShSZWxhdGlvbiByZWwsCiAJCWlmIChwZ3N0YXRfc2hvdWxk X2NvdW50X3JlbGF0aW9uKHJlbCkpCQkJCQkJXAogCQkJKHJlbCktPnBnc3RhdF9pbmZvLT5j b3VudHMuYmxvY2tzX2hpdCsrOwkJCQlcCiAJfSB3aGlsZSAoMCkKKy8qIGFjY3VtdWxhdGUg dW5mcm96ZW4gYWxsLXZpc2libGUgYW5kIGFsbC1mcm96ZW4gcGFnZXMgKi8KKyNkZWZpbmUg cGdzdGF0X2NvdW50X3ZtX3Jldl9hbGxfdmlzaWJsZShyZWwpCQkJCQkJXAorCWRvIHsJCQkJ CQkJCQkJCQkJCQlcCisJCWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50X3JlbGF0aW9uKHJlbCkp CQkJCQkJXAorCQkJKHJlbCktPnBnc3RhdF9pbmZvLT5jb3VudHMucmV2X2FsbF92aXNpYmxl X3BhZ2VzKys7CVwKKwl9IHdoaWxlICgwKQorI2RlZmluZSBwZ3N0YXRfY291bnRfdm1fcmV2 X2FsbF9mcm96ZW4ocmVsKQkJCQkJCVwKKwlkbyB7CQkJCQkJCQkJCQkJCQkJXAorCQlpZiAo cGdzdGF0X3Nob3VsZF9jb3VudF9yZWxhdGlvbihyZWwpKQkJCQkJCVwKKwkJCShyZWwpLT5w Z3N0YXRfaW5mby0+Y291bnRzLnJldl9hbGxfZnJvemVuX3BhZ2VzKys7CVwKKwl9IHdoaWxl ICgwKQogCiBleHRlcm4gdm9pZCBwZ3N0YXRfY291bnRfaGVhcF9pbnNlcnQoUmVsYXRpb24g cmVsLCBQZ1N0YXRfQ291bnRlciBuKTsKIGV4dGVybiB2b2lkIHBnc3RhdF9jb3VudF9oZWFw X3VwZGF0ZShSZWxhdGlvbiByZWwsIGJvb2wgaG90LCBib29sIG5ld3BhZ2UpOwpAQCAtNzEz LDcgKzc4OCw2IEBAIGV4dGVybiBQZ1N0YXRfU3RhdFRhYkVudHJ5ICpwZ3N0YXRfZmV0Y2hf c3RhdF90YWJlbnRyeV9leHQoYm9vbCBzaGFyZWQsCiAJCQkJCQkJCQkJCQkJCSAgIE9pZCBy ZWxvaWQpOwogZXh0ZXJuIFBnU3RhdF9UYWJsZVN0YXR1cyAqZmluZF90YWJzdGF0X2VudHJ5 KE9pZCByZWxfaWQpOwogCi0KIC8qCiAgKiBGdW5jdGlvbnMgaW4gcGdzdGF0X3JlcGxzbG90 LmMKICAqLwpAQCAtNzg0LDYgKzg1OCw3IEBAIGV4dGVybiBQZ1N0YXRfV2FsU3RhdHMgKnBn c3RhdF9mZXRjaF9zdGF0X3dhbCh2b2lkKTsKIGV4dGVybiBQR0RMTElNUE9SVCBib29sIHBn c3RhdF90cmFja19jb3VudHM7CiBleHRlcm4gUEdETExJTVBPUlQgaW50IHBnc3RhdF90cmFj a19mdW5jdGlvbnM7CiBleHRlcm4gUEdETExJTVBPUlQgaW50IHBnc3RhdF9mZXRjaF9jb25z aXN0ZW5jeTsKK2V4dGVybiBQR0RMTElNUE9SVCBib29sIHBnc3RhdF90cmFja192YWN1dW1f c3RhdGlzdGljczsKIAogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvZWxv Zy5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvZWxvZy5oCmluZGV4IGU1NGVjYTViNDg5Li5lNzUy YzBjZTAxNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvZWxvZy5oCisrKyBiL3Ny Yy9pbmNsdWRlL3V0aWxzL2Vsb2cuaApAQCAtMjMwLDYgKzIzMCw3IEBAIGV4dGVybiBpbnQJ Z2V0ZXJybGV2ZWwodm9pZCk7CiBleHRlcm4gaW50CWdldGVycnBvc2l0aW9uKHZvaWQpOwog ZXh0ZXJuIGludAlnZXRpbnRlcm5hbGVycnBvc2l0aW9uKHZvaWQpOwogCitleHRlcm4gaW50 CWdldGVycmVsZXZlbCh2b2lkKTsKIAogLyotLS0tLS0tLS0tCiAgKiBPbGQtc3R5bGUgZXJy b3IgcmVwb3J0aW5nIEFQSTogdG8gYmUgdXNlZCBpbiB0aGlzIHdheToKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3V0aWxzL3Bnc3RhdF9pbnRlcm5hbC5oIGIvc3JjL2luY2x1ZGUvdXRp bHMvcGdzdGF0X2ludGVybmFsLmgKaW5kZXggNzMzOGJjMWUyOGUuLmQ5MzI4YmU0OGE3IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9wZ3N0YXRfaW50ZXJuYWwuaAorKysgYi9z cmMvaW5jbHVkZS91dGlscy9wZ3N0YXRfaW50ZXJuYWwuaApAQCAtNTk1LDcgKzU5NSw3IEBA IGV4dGVybiBQZ1N0YXRfRW50cnlSZWYgKnBnc3RhdF9mZXRjaF9wZW5kaW5nX2VudHJ5KFBn U3RhdF9LaW5kIGtpbmQsCiBleHRlcm4gdm9pZCAqcGdzdGF0X2ZldGNoX2VudHJ5KFBnU3Rh dF9LaW5kIGtpbmQsIE9pZCBkYm9pZCwgdWludDY0IG9iamlkKTsKIGV4dGVybiB2b2lkIHBn c3RhdF9zbmFwc2hvdF9maXhlZChQZ1N0YXRfS2luZCBraW5kKTsKIAotCitleHRlcm4gdm9p ZCBwZ3N0YXRfdXBkYXRlX3NuYXBzaG90KFBnU3RhdF9LaW5kIGtpbmQpOwogLyoKICAqIEZ1 bmN0aW9ucyBpbiBwZ3N0YXRfYXJjaGl2ZXIuYwogICovCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9pc29sYXRpb24vZXhwZWN0ZWQvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVh ZC5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvdmFjdXVtLWV4dGVuZGluZy1p bi1yZXBldGFibGUtcmVhZC5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjg3ZjdlNDBiNGE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvaXNvbGF0 aW9uL2V4cGVjdGVkL3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQub3V0CkBA IC0wLDAgKzEsNTMgQEAKK3VudXNlZCBzdGVwIG5hbWU6IHMyX2RlbGV0ZQorUGFyc2VkIHRl c3Qgc3BlYyB3aXRoIDIgc2Vzc2lvbnMKKworc3RhcnRpbmcgcGVybXV0YXRpb246IHMyX2lu c2VydCBzMl9wcmludF92YWN1dW1fc3RhdHNfdGFibGUgczFfYmVnaW5fcmVwZWF0YWJsZV9y ZWFkIHMyX3VwZGF0ZSBzMl9pbnNlcnRfaW50ZXJydXB0IHMyX3ZhY3V1bSBzMl9wcmludF92 YWN1dW1fc3RhdHNfdGFibGUgczFfY29tbWl0IHMyX2NoZWNrcG9pbnQgczJfdmFjdXVtIHMy X3ByaW50X3ZhY3V1bV9zdGF0c190YWJsZQorc3RlcCBzMl9pbnNlcnQ6IElOU0VSVCBJTlRP IHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uKGlkLCBpdmFsKSBTRUxFQ1QgaXZhbCwgaXZh bCUxMCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDApIEFzIGl2YWw7CitzdGVwIHMyX3By aW50X3ZhY3V1bV9zdGF0c190YWJsZTogCisgICAgU0VMRUNUCisgICAgdnQucmVsbmFtZSwg dnQudHVwbGVzX2RlbGV0ZWQsIHZ0LnJlY2VudGx5X2RlYWRfdHVwbGVzLCB2dC5taXNzZWRf ZGVhZF90dXBsZXMsIHZ0Lm1pc3NlZF9kZWFkX3BhZ2VzLCB2dC50dXBsZXNfZnJvemVuCisg ICAgRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKKyAgICBXSEVS RSB2dC5yZWxuYW1lID0gJ3Rlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uJyBBTkQgdnQucmVs aWQgPSBjLm9pZDsKKworcmVsbmFtZSAgICAgICAgICAgICAgICAgICB8dHVwbGVzX2RlbGV0 ZWR8cmVjZW50bHlfZGVhZF90dXBsZXN8bWlzc2VkX2RlYWRfdHVwbGVzfG1pc3NlZF9kZWFk X3BhZ2VzfHR1cGxlc19mcm96ZW4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCit0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlv bnwgICAgICAgICAgICAgMHwgICAgICAgICAgICAgICAgICAgMHwgICAgICAgICAgICAgICAg IDB8ICAgICAgICAgICAgICAgIDB8ICAgICAgICAgICAgMAorKDEgcm93KQorCitzdGVwIHMx X2JlZ2luX3JlcGVhdGFibGVfcmVhZDogCisgIEJFR0lOIHRyYW5zYWN0aW9uIElTT0xBVElP TiBMRVZFTCBSRVBFQVRBQkxFIFJFQUQ7CisgIHNlbGVjdCBjb3VudChpdmFsKSBmcm9tIHRl c3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uIHdoZXJlIGlkPjkwMDsKKworY291bnQKKy0tLS0t CisgIDEwMAorKDEgcm93KQorCitzdGVwIHMyX3VwZGF0ZTogVVBEQVRFIHRlc3RfdmFjdXVt X3N0YXRfaXNvbGF0aW9uIFNFVCBpdmFsID0gaXZhbCArIDIgd2hlcmUgaWQgPiA5MDA7Citz dGVwIHMyX2luc2VydF9pbnRlcnJ1cHQ6IElOU0VSVCBJTlRPIHRlc3RfdmFjdXVtX3N0YXRf aXNvbGF0aW9uIHZhbHVlcyAoMSwxKTsKK3N0ZXAgczJfdmFjdXVtOiBWQUNVVU0gdGVzdF92 YWN1dW1fc3RhdF9pc29sYXRpb247CitzdGVwIHMyX3ByaW50X3ZhY3V1bV9zdGF0c190YWJs ZTogCisgICAgU0VMRUNUCisgICAgdnQucmVsbmFtZSwgdnQudHVwbGVzX2RlbGV0ZWQsIHZ0 LnJlY2VudGx5X2RlYWRfdHVwbGVzLCB2dC5taXNzZWRfZGVhZF90dXBsZXMsIHZ0Lm1pc3Nl ZF9kZWFkX3BhZ2VzLCB2dC50dXBsZXNfZnJvemVuCisgICAgRlJPTSBwZ19zdGF0X3ZhY3V1 bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKKyAgICBXSEVSRSB2dC5yZWxuYW1lID0gJ3Rlc3Rf dmFjdXVtX3N0YXRfaXNvbGF0aW9uJyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKKworcmVsbmFt ZSAgICAgICAgICAgICAgICAgICB8dHVwbGVzX2RlbGV0ZWR8cmVjZW50bHlfZGVhZF90dXBs ZXN8bWlzc2VkX2RlYWRfdHVwbGVzfG1pc3NlZF9kZWFkX3BhZ2VzfHR1cGxlc19mcm96ZW4K Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCit0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbnwgICAgICAgICAgICAgMHwgICAg ICAgICAgICAgICAgIDEwMHwgICAgICAgICAgICAgICAgIDB8ICAgICAgICAgICAgICAgIDB8 ICAgICAgICAgICAgMAorKDEgcm93KQorCitzdGVwIHMxX2NvbW1pdDogQ09NTUlUOworc3Rl cCBzMl9jaGVja3BvaW50OiBDSEVDS1BPSU5UOworc3RlcCBzMl92YWN1dW06IFZBQ1VVTSB0 ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbjsKK3N0ZXAgczJfcHJpbnRfdmFjdXVtX3N0YXRz X3RhYmxlOiAKKyAgICBTRUxFQ1QKKyAgICB2dC5yZWxuYW1lLCB2dC50dXBsZXNfZGVsZXRl ZCwgdnQucmVjZW50bHlfZGVhZF90dXBsZXMsIHZ0Lm1pc3NlZF9kZWFkX3R1cGxlcywgdnQu bWlzc2VkX2RlYWRfcGFnZXMsIHZ0LnR1cGxlc19mcm96ZW4KKyAgICBGUk9NIHBnX3N0YXRf dmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xhc3MgYworICAgIFdIRVJFIHZ0LnJlbG5hbWUgPSAn dGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24nIEFORCB2dC5yZWxpZCA9IGMub2lkOworCity ZWxuYW1lICAgICAgICAgICAgICAgICAgIHx0dXBsZXNfZGVsZXRlZHxyZWNlbnRseV9kZWFk X3R1cGxlc3xtaXNzZWRfZGVhZF90dXBsZXN8bWlzc2VkX2RlYWRfcGFnZXN8dHVwbGVzX2Zy b3plbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KK3Rlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9ufCAgICAgICAgICAgMTAw fCAgICAgICAgICAgICAgICAgMTAwfCAgICAgICAgICAgICAgICAgMHwgICAgICAgICAgICAg ICAgMHwgICAgICAgICAgMTAxCisoMSByb3cpCisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lz b2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUgYi9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0 aW9uX3NjaGVkdWxlCmluZGV4IDE0MzEwOWFhNGRhLi5lOTNkZDRmNjI2YyAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZQorKysgYi9zcmMvdGVz dC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCkBAIC05NSw2ICs5NSw3IEBAIHRlc3Q6 IHRpbWVvdXRzCiB0ZXN0OiB2YWN1dW0tY29uY3VycmVudC1kcm9wCiB0ZXN0OiB2YWN1dW0t Y29uZmxpY3QKIHRlc3Q6IHZhY3V1bS1za2lwLWxvY2tlZAordGVzdDogdmFjdXVtLWV4dGVu ZGluZy1pbi1yZXBldGFibGUtcmVhZAogdGVzdDogc3RhdHMKIHRlc3Q6IGhvcml6b25zCiB0 ZXN0OiBwcmVkaWNhdGUtaGFzaApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3Nw ZWNzL3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQuc3BlYyBiL3NyYy90ZXN0 L2lzb2xhdGlvbi9zcGVjcy92YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0YWJsZS1yZWFkLnNw ZWMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU4OTNkODk1NzNk Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3ZhY3V1bS1l eHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQuc3BlYwpAQCAtMCwwICsxLDUzIEBACisjIFRl c3QgZm9yIGNoZWNraW5nIHJlY2VudGx5X2RlYWRfdHVwbGVzLCB0dXBsZXNfZGVsZXRlZCBh bmQgZnJvemVuIHR1cGxlcyBpbiBwZ19zdGF0X3ZhY3V1bV90YWJsZXMuCisjIHJlY2VudGx5 X2RlYWRfdHVwbGVzIHZhbHVlcyBhcmUgY291bnRlZCB3aGVuIHZhY3V1bSBoYXNuJ3QgY2xl YXJlZCB0dXBsZXMgYmVjYXVzZSB0aGV5IHdlcmUgZGVsZXRlZCByZWNlbnRseS4KKyMgcmVj ZW50bHlfZGVhZF90dXBsZXMgYXJlbid0IGluY3JlYXNlZCBhZnRlciByZWxlYXNpbmcgbG9j ayBjb21wYXJlZCB3aXRoIHR1cGxlc19kZWxldGVkLCB3aGljaCBpbmNyZWFzZWQKKyMgYnkg dGhlIHZhbHVlIG9mIHRoZSBjbGVhcmVkIHR1cGxlcyB0aGF0IHRoZSB2YWN1dW0gbWFuYWdl ZCB0byBjbGVhci4KKworc2V0dXAKK3sKKyAgICBDUkVBVEUgVEFCTEUgdGVzdF92YWN1dW1f c3RhdF9pc29sYXRpb24oaWQgaW50LCBpdmFsIGludCkgV0lUSCAoYXV0b3ZhY3V1bV9lbmFi bGVkID0gb2ZmKTsKKyAgICBTRVQgdHJhY2tfaW9fdGltaW5nID0gb247CisgICAgU0VUIHRy YWNrX3ZhY3V1bV9zdGF0aXN0aWNzIFRPICdvbic7Cit9CisKK3RlYXJkb3duCit7CisgICAg RFJPUCBUQUJMRSB0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbiBDQVNDQURFOworICAgIFJF U0VUIHRyYWNrX2lvX3RpbWluZzsKKyAgICBSRVNFVCB0cmFja192YWN1dW1fc3RhdGlzdGlj czsKK30KKworc2Vzc2lvbiBzMQorc3RlcCBzMV9iZWdpbl9yZXBlYXRhYmxlX3JlYWQgICB7 CisgIEJFR0lOIHRyYW5zYWN0aW9uIElTT0xBVElPTiBMRVZFTCBSRVBFQVRBQkxFIFJFQUQ7 CisgIHNlbGVjdCBjb3VudChpdmFsKSBmcm9tIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9u IHdoZXJlIGlkPjkwMDsKKyAgfQorc3RlcCBzMV9jb21taXQgICAgICAgICAgICAgICAgICB7 IENPTU1JVDsgfQorCitzZXNzaW9uIHMyCitzdGVwIHMyX2luc2VydCAgICAgICAgICAgICAg ICAgIHsgSU5TRVJUIElOVE8gdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24oaWQsIGl2YWwp IFNFTEVDVCBpdmFsLCBpdmFsJTEwIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMCkgQXMg aXZhbDsgfQorc3RlcCBzMl91cGRhdGUgICAgICAgICAgICAgICAgICB7IFVQREFURSB0ZXN0 X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbiBTRVQgaXZhbCA9IGl2YWwgKyAyIHdoZXJlIGlkID4g OTAwOyB9CitzdGVwIHMyX2RlbGV0ZSAgICAgICAgICAgICAgICAgIHsgREVMRVRFIEZST00g dGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24gd2hlcmUgaWQgPiA5MDA7IH0KK3N0ZXAgczJf aW5zZXJ0X2ludGVycnVwdCAgICAgICAgeyBJTlNFUlQgSU5UTyB0ZXN0X3ZhY3V1bV9zdGF0 X2lzb2xhdGlvbiB2YWx1ZXMgKDEsMSk7IH0KK3N0ZXAgczJfdmFjdXVtICAgICAgICAgICAg ICAgICAgeyBWQUNVVU0gdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb247IH0KK3N0ZXAgczJf Y2hlY2twb2ludCAgICAgICAgICAgICAgeyBDSEVDS1BPSU5UOyB9CitzdGVwIHMyX3ByaW50 X3ZhY3V1bV9zdGF0c190YWJsZQoreworICAgIFNFTEVDVAorICAgIHZ0LnJlbG5hbWUsIHZ0 LnR1cGxlc19kZWxldGVkLCB2dC5yZWNlbnRseV9kZWFkX3R1cGxlcywgdnQubWlzc2VkX2Rl YWRfdHVwbGVzLCB2dC5taXNzZWRfZGVhZF9wYWdlcywgdnQudHVwbGVzX2Zyb3plbgorICAg IEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCisgICAgV0hFUkUg dnQucmVsbmFtZSA9ICd0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbicgQU5EIHZ0LnJlbGlk ID0gYy5vaWQ7Cit9CisKK3Blcm11dGF0aW9uCisgICAgczJfaW5zZXJ0CisgICAgczJfcHJp bnRfdmFjdXVtX3N0YXRzX3RhYmxlCisgICAgczFfYmVnaW5fcmVwZWF0YWJsZV9yZWFkCisg ICAgczJfdXBkYXRlCisgICAgczJfaW5zZXJ0X2ludGVycnVwdAorICAgIHMyX3ZhY3V1bQor ICAgIHMyX3ByaW50X3ZhY3V1bV9zdGF0c190YWJsZQorICAgIHMxX2NvbW1pdAorICAgIHMy X2NoZWNrcG9pbnQKKyAgICBzMl92YWN1dW0KKyAgICBzMl9wcmludF92YWN1dW1fc3RhdHNf dGFibGUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcnVsZXMub3V0CmluZGV4IDMwMTRkMDQ3ZmVmLi5kZDc5NWQ1OGRmYyAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTE4MDQsNyArMTgwNCw5IEBAIHBnX3N0 YXRfYWxsX3RhYmxlc3wgU0VMRUNUIGMub2lkIEFTIHJlbGlkLAogICAgIHBnX3N0YXRfZ2V0 X3ZhY3V1bV9jb3VudChjLm9pZCkgQVMgdmFjdXVtX2NvdW50LAogICAgIHBnX3N0YXRfZ2V0 X2F1dG92YWN1dW1fY291bnQoYy5vaWQpIEFTIGF1dG92YWN1dW1fY291bnQsCiAgICAgcGdf c3RhdF9nZXRfYW5hbHl6ZV9jb3VudChjLm9pZCkgQVMgYW5hbHl6ZV9jb3VudCwKLSAgICBw Z19zdGF0X2dldF9hdXRvYW5hbHl6ZV9jb3VudChjLm9pZCkgQVMgYXV0b2FuYWx5emVfY291 bnQKKyAgICBwZ19zdGF0X2dldF9hdXRvYW5hbHl6ZV9jb3VudChjLm9pZCkgQVMgYXV0b2Fu YWx5emVfY291bnQsCisgICAgcGdfc3RhdF9nZXRfcmV2X2FsbF9mcm96ZW5fcGFnZXMoYy5v aWQpIEFTIHJldl9hbGxfZnJvemVuX3BhZ2VzLAorICAgIHBnX3N0YXRfZ2V0X3Jldl9hbGxf dmlzaWJsZV9wYWdlcyhjLm9pZCkgQVMgcmV2X2FsbF92aXNpYmxlX3BhZ2VzCiAgICBGUk9N ICgocGdfY2xhc3MgYwogICAgICBMRUZUIEpPSU4gcGdfaW5kZXggaSBPTiAoKGMub2lkID0g aS5pbmRyZWxpZCkpKQogICAgICBMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG4gT04gKChuLm9p ZCA9IGMucmVsbmFtZXNwYWNlKSkpCkBAIC0yMTg4LDcgKzIxOTAsOSBAQCBwZ19zdGF0X3N5 c190YWJsZXN8IFNFTEVDVCByZWxpZCwKICAgICB2YWN1dW1fY291bnQsCiAgICAgYXV0b3Zh Y3V1bV9jb3VudCwKICAgICBhbmFseXplX2NvdW50LAotICAgIGF1dG9hbmFseXplX2NvdW50 CisgICAgYXV0b2FuYWx5emVfY291bnQsCisgICAgcmV2X2FsbF9mcm96ZW5fcGFnZXMsCisg ICAgcmV2X2FsbF92aXNpYmxlX3BhZ2VzCiAgICBGUk9NIHBnX3N0YXRfYWxsX3RhYmxlcwog ICBXSEVSRSAoKHNjaGVtYW5hbWUgPSBBTlkgKEFSUkFZWydwZ19jYXRhbG9nJzo6bmFtZSwg J2luZm9ybWF0aW9uX3NjaGVtYSc6Om5hbWVdKSkgT1IgKHNjaGVtYW5hbWUgfiAnXnBnX3Rv YXN0Jzo6dGV4dCkpOwogcGdfc3RhdF91c2VyX2Z1bmN0aW9uc3wgU0VMRUNUIHAub2lkIEFT IGZ1bmNpZCwKQEAgLTIyMzYsOSArMjI0MCw0MiBAQCBwZ19zdGF0X3VzZXJfdGFibGVzfCBT RUxFQ1QgcmVsaWQsCiAgICAgdmFjdXVtX2NvdW50LAogICAgIGF1dG92YWN1dW1fY291bnQs CiAgICAgYW5hbHl6ZV9jb3VudCwKLSAgICBhdXRvYW5hbHl6ZV9jb3VudAorICAgIGF1dG9h bmFseXplX2NvdW50LAorICAgIHJldl9hbGxfZnJvemVuX3BhZ2VzLAorICAgIHJldl9hbGxf dmlzaWJsZV9wYWdlcwogICAgRlJPTSBwZ19zdGF0X2FsbF90YWJsZXMKICAgV0hFUkUgKChz Y2hlbWFuYW1lIDw+IEFMTCAoQVJSQVlbJ3BnX2NhdGFsb2cnOjpuYW1lLCAnaW5mb3JtYXRp b25fc2NoZW1hJzo6bmFtZV0pKSBBTkQgKHNjaGVtYW5hbWUgIX4gJ15wZ190b2FzdCc6OnRl eHQpKTsKK3BnX3N0YXRfdmFjdXVtX3RhYmxlc3wgU0VMRUNUIG5zLm5zcG5hbWUgQVMgc2No ZW1hLAorICAgIHJlbC5yZWxuYW1lLAorICAgIHN0YXRzLnJlbGlkLAorICAgIHN0YXRzLnRv dGFsX2Jsa3NfcmVhZCwKKyAgICBzdGF0cy50b3RhbF9ibGtzX2hpdCwKKyAgICBzdGF0cy50 b3RhbF9ibGtzX2RpcnRpZWQsCisgICAgc3RhdHMudG90YWxfYmxrc193cml0dGVuLAorICAg IHN0YXRzLnJlbF9ibGtzX3JlYWQsCisgICAgc3RhdHMucmVsX2Jsa3NfaGl0LAorICAgIHN0 YXRzLnBhZ2VzX3NjYW5uZWQsCisgICAgc3RhdHMucGFnZXNfcmVtb3ZlZCwKKyAgICBzdGF0 cy52bV9uZXdfZnJvemVuX3BhZ2VzLAorICAgIHN0YXRzLnZtX25ld192aXNpYmxlX3BhZ2Vz LAorICAgIHN0YXRzLnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcywKKyAgICBzdGF0cy5t aXNzZWRfZGVhZF9wYWdlcywKKyAgICBzdGF0cy50dXBsZXNfZGVsZXRlZCwKKyAgICBzdGF0 cy50dXBsZXNfZnJvemVuLAorICAgIHN0YXRzLnJlY2VudGx5X2RlYWRfdHVwbGVzLAorICAg IHN0YXRzLm1pc3NlZF9kZWFkX3R1cGxlcywKKyAgICBzdGF0cy5pbmRleF92YWN1dW1fY291 bnQsCisgICAgc3RhdHMud2FsX3JlY29yZHMsCisgICAgc3RhdHMud2FsX2ZwaSwKKyAgICBz dGF0cy53YWxfYnl0ZXMsCisgICAgc3RhdHMuYmxrX3JlYWRfdGltZSwKKyAgICBzdGF0cy5i bGtfd3JpdGVfdGltZSwKKyAgICBzdGF0cy5kZWxheV90aW1lLAorICAgIHN0YXRzLnRvdGFs X3RpbWUKKyAgIEZST00gKHBnX2NsYXNzIHJlbAorICAgICBKT0lOIHBnX25hbWVzcGFjZSBu cyBPTiAoKG5zLm9pZCA9IHJlbC5yZWxuYW1lc3BhY2UpKSksCisgICAgTEFURVJBTCBwZ19z dGF0X2dldF92YWN1dW1fdGFibGVzKHJlbC5vaWQpIHN0YXRzKHJlbGlkLCB0b3RhbF9ibGtz X3JlYWQsIHRvdGFsX2Jsa3NfaGl0LCB0b3RhbF9ibGtzX2RpcnRpZWQsIHRvdGFsX2Jsa3Nf d3JpdHRlbiwgcmVsX2Jsa3NfcmVhZCwgcmVsX2Jsa3NfaGl0LCBwYWdlc19zY2FubmVkLCBw YWdlc19yZW1vdmVkLCB2bV9uZXdfZnJvemVuX3BhZ2VzLCB2bV9uZXdfdmlzaWJsZV9wYWdl cywgdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzLCBtaXNzZWRfZGVhZF9wYWdlcywgdHVw bGVzX2RlbGV0ZWQsIHR1cGxlc19mcm96ZW4sIHJlY2VudGx5X2RlYWRfdHVwbGVzLCBtaXNz ZWRfZGVhZF90dXBsZXMsIGluZGV4X3ZhY3V1bV9jb3VudCwgd2FsX3JlY29yZHMsIHdhbF9m cGksIHdhbF9ieXRlcywgYmxrX3JlYWRfdGltZSwgYmxrX3dyaXRlX3RpbWUsIGRlbGF5X3Rp bWUsIHRvdGFsX3RpbWUpCisgIFdIRVJFIChyZWwucmVsa2luZCA9ICdyJzo6ImNoYXIiKTsK IHBnX3N0YXRfd2FsfCBTRUxFQ1Qgd2FsX3JlY29yZHMsCiAgICAgd2FsX2ZwaSwKICAgICB3 YWxfYnl0ZXMsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1 bV90YWJsZXNfc3RhdGlzdGljcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Zh Y3V1bV90YWJsZXNfc3RhdGlzdGljcy5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjBjMDVhODEyZGQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Mub3V0CkBAIC0wLDAg KzEsMjI1IEBACistLQorLS0gVGVzdCBjdW11bGF0aXZlIHZhY3V1bSBzdGF0cyBzeXN0ZW0K Ky0tCistLSBDaGVjayB0aGUgd2FsbCBzdGF0aXN0aWNzIGNvbGxlY3RlZCBkdXJpbmcgdmFj dXVtIG9wZXJhdGlvbjoKKy0tIG51bWJlciBvZiBmcm96ZW4gYW5kIHZpc2libGUgcGFnZXMg c2V0IGJ5IHZhY3V1bTsKKy0tIG51bWJlciBvZiBmcm96ZW4gYW5kIHZpc2libGUgcGFnZXMg cmVtb3ZlZCBieSBiYWNrZW5kLgorLS0gU3RhdGlzdGljIHdhbF9mcGkgaXMgbm90IGRpc3Bs YXllZCBpbiB0aGlzIHRlc3QgYmVjYXVzZSBpdHMgYmVoYXZpb3IgaXMgdW5zdGFibGUuCist LQorLS0gY29uZGl0aW8gc2luZSBxdWEgbm9uCitTSE9XIHRyYWNrX2NvdW50czsgIC0tIG11 c3QgYmUgb24KKyB0cmFja19jb3VudHMgCistLS0tLS0tLS0tLS0tLQorIG9uCisoMSByb3cp CisKK1xzZXQgc2FtcGxlX3NpemUgMTAwMDAKKy0tIG5vdCBlbmFibGVkIGJ5IGRlZmF1bHQs IGJ1dCB3ZSB3YW50IHRvIHRlc3QgaXQuLi4KK1NFVCB0cmFja19mdW5jdGlvbnMgVE8gJ2Fs bCc7CistLSBUZXN0IHRoYXQgdmFjdXVtIHN0YXRpc3RpY3Mgd2lsbCBiZSBlbXB0eSB3aGVu IHBhcmFtZXRlciBpcyBvZmYuCitTRVQgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MgVE8gJ29m Zic7CitDUkVBVEUgVEFCTEUgdmVzdGF0ICh4IGludCkgV0lUSCAoYXV0b3ZhY3V1bV9lbmFi bGVkID0gb2ZmLCBmaWxsZmFjdG9yID0gMTApOworSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVD VCB4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OworQU5BTFla RSB2ZXN0YXQ7CitERUxFVEUgRlJPTSB2ZXN0YXQgV0hFUkUgeCAlIDIgPSAwOworVkFDVVVN IChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4KSB2ZXN0YXQ7CistLSBNdXN0 IGJlIGVtcHR5LgorU0VMRUNUIHJlbG5hbWUsdG90YWxfYmxrc19yZWFkLCB0b3RhbF9ibGtz X2hpdCwgdG90YWxfYmxrc19kaXJ0aWVkLCB0b3RhbF9ibGtzX3dyaXR0ZW4scmVsX2Jsa3Nf cmVhZCwgcmVsX2Jsa3NfaGl0LAorcGFnZXNfc2Nhbm5lZCwgcGFnZXNfcmVtb3ZlZCwgdm1f bmV3X2Zyb3plbl9wYWdlcywgdm1fbmV3X3Zpc2libGVfcGFnZXMsIHZtX25ld192aXNpYmxl X2Zyb3plbl9wYWdlcywgbWlzc2VkX2RlYWRfcGFnZXMsCit0dXBsZXNfZGVsZXRlZCwgdHVw bGVzX2Zyb3plbiwgcmVjZW50bHlfZGVhZF90dXBsZXMsIG1pc3NlZF9kZWFkX3R1cGxlcywg aW5kZXhfdmFjdXVtX2NvdW50LAord2FsX3JlY29yZHMsIHdhbF9mcGksIHdhbF9ieXRlcywg YmxrX3JlYWRfdGltZSwgYmxrX3dyaXRlX3RpbWUsZGVsYXlfdGltZSwgdG90YWxfdGltZQor RlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVz dGF0JzsKKyByZWxuYW1lIHwgdG90YWxfYmxrc19yZWFkIHwgdG90YWxfYmxrc19oaXQgfCB0 b3RhbF9ibGtzX2RpcnRpZWQgfCB0b3RhbF9ibGtzX3dyaXR0ZW4gfCByZWxfYmxrc19yZWFk IHwgcmVsX2Jsa3NfaGl0IHwgcGFnZXNfc2Nhbm5lZCB8IHBhZ2VzX3JlbW92ZWQgfCB2bV9u ZXdfZnJvemVuX3BhZ2VzIHwgdm1fbmV3X3Zpc2libGVfcGFnZXMgfCB2bV9uZXdfdmlzaWJs ZV9mcm96ZW5fcGFnZXMgfCBtaXNzZWRfZGVhZF9wYWdlcyB8IHR1cGxlc19kZWxldGVkIHwg dHVwbGVzX2Zyb3plbiB8IHJlY2VudGx5X2RlYWRfdHVwbGVzIHwgbWlzc2VkX2RlYWRfdHVw bGVzIHwgaW5kZXhfdmFjdXVtX2NvdW50IHwgd2FsX3JlY29yZHMgfCB3YWxfZnBpIHwgd2Fs X2J5dGVzIHwgYmxrX3JlYWRfdGltZSB8IGJsa193cml0ZV90aW1lIHwgZGVsYXlfdGltZSB8 IHRvdGFsX3RpbWUgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQorIHZlc3RhdCAgfCAgICAgICAgICAgICAgIDAgfCAgICAg ICAgICAgICAgMCB8ICAgICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgICAgMCB8 ICAgICAgICAgICAgIDAgfCAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAwIHwgICAgICAg ICAgICAgMCB8ICAgICAgICAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAgICAgICAgMCB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgICAwIHwgICAg ICAgICAgICAgIDAgfCAgICAgICAgICAgICAwIHwgICAgICAgICAgICAgICAgICAgIDAgfCAg ICAgICAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAgICAgIDAgfCAgICAgICAgICAgMCB8 ICAgICAgIDAgfCAgICAgICAgIDAgfCAgICAgICAgICAgICAwIHwgICAgICAgICAgICAgIDAg fCAgICAgICAgICAwIHwgICAgICAgICAgMAorKDEgcm93KQorCitSRVNFVCB0cmFja192YWN1 dW1fc3RhdGlzdGljczsKK0RST1AgVEFCTEUgdmVzdGF0IENBU0NBREU7CitTSE9XIHRyYWNr X3ZhY3V1bV9zdGF0aXN0aWNzOyAgLS0gbXVzdCBiZSBvbgorIHRyYWNrX3ZhY3V1bV9zdGF0 aXN0aWNzIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIG9uCisoMSByb3cpCisKKy0t IGVuc3VyZSBwZW5kaW5nIHN0YXRzIGFyZSBmbHVzaGVkCitTRUxFQ1QgcGdfc3RhdF9mb3Jj ZV9uZXh0X2ZsdXNoKCk7CisgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworLS1TRVQgc3RhdHNfZmV0Y2hfY29u c2lzdGVuY3kgPSBzbmFwc2hvdDsKK0NSRUFURSBUQUJMRSB2ZXN0YXQgKHggaW50KSBXSVRI IChhdXRvdmFjdXVtX2VuYWJsZWQgPSBvZmYsIGZpbGxmYWN0b3IgPSAxMCk7CitJTlNFUlQg SU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw6c2FtcGxlX3Np emUpIGFzIHg7CitBTkFMWVpFIHZlc3RhdDsKK1NFTEVDVCBvaWQgQVMgcm9pZCBmcm9tIHBn X2NsYXNzIHdoZXJlIHJlbG5hbWUgPSAndmVzdGF0JyBcZ3NldAorREVMRVRFIEZST00gdmVz dGF0IFdIRVJFIHggJSAyID0gMDsKKy0tIEJlZm9yZSB0aGUgZmlyc3QgdmFjdXVtIGV4ZWN1 dGlvbiBleHRlbmRlZCBzdGF0cyB2aWV3IGlzIGVtcHR5LgorU0VMRUNUIHZ0LnJlbG5hbWUs dm1fbmV3X2Zyb3plbl9wYWdlcyx0dXBsZXNfZGVsZXRlZCxyZWxwYWdlcyxwYWdlc19zY2Fu bmVkLHBhZ2VzX3JlbW92ZWQKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19j bGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdCcgQU5EIHZ0LnJlbGlkID0gYy5v aWQ7CisgcmVsbmFtZSB8IHZtX25ld19mcm96ZW5fcGFnZXMgfCB0dXBsZXNfZGVsZXRlZCB8 IHJlbHBhZ2VzIHwgcGFnZXNfc2Nhbm5lZCB8IHBhZ2VzX3JlbW92ZWQgCistLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgdmVzdGF0ICB8ICAgICAgICAgICAgICAg ICAgIDAgfCAgICAgICAgICAgICAgMCB8ICAgICAgNDU1IHwgICAgICAgICAgICAgMCB8ICAg ICAgICAgICAgIDAKKygxIHJvdykKKworU0VMRUNUIHJlbHBhZ2VzIEFTIHJwCitGUk9NIHBn X2NsYXNzIGMKK1dIRVJFIHJlbG5hbWUgPSAndmVzdGF0JyBcZ3NldAorVkFDVVVNIChQQVJB TExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4LCBJTkRFWF9DTEVBTlVQIE9GRikgdmVz dGF0OworLS0gaXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcwor Q0hFQ0tQT0lOVDsKKy0tIFRoZSB0YWJsZSBhbmQgaW5kZXggZXh0ZW5kZWQgdmFjdXVtIHN0 YXRpc3RpY3Mgc2hvdWxkIHNob3cgdXMgdGhhdAorLS0gdmFjdXVtIGZyb3plZCBwYWdlcyBh bmQgY2xlYW4gdXAgcGFnZXMsIGJ1dCBwYWdlc19yZW1vdmVkIHN0YXllZCB0aGUgc2FtZQor LS0gYmVjYXVzZSBvZiBub3QgZnVsbCB0YWJsZSBoYXZlIGNsZWFuZWQgdXAKK1NFTEVDVCB2 dC5yZWxuYW1lLHZtX25ld19mcm96ZW5fcGFnZXMgPiAwIEFTIHZtX25ld19mcm96ZW5fcGFn ZXMsdHVwbGVzX2RlbGV0ZWQgPiAwIEFTIHR1cGxlc19kZWxldGVkLHJlbHBhZ2VzLTpycCA9 IDAgQVMgcmVscGFnZXMscGFnZXNfc2Nhbm5lZCA+IDAgQVMgcGFnZXNfc2Nhbm5lZCxwYWdl c19yZW1vdmVkID0gMCBBUyBwYWdlc19yZW1vdmVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX3Rh YmxlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2 dC5yZWxpZCA9IGMub2lkOworIHJlbG5hbWUgfCB2bV9uZXdfZnJvemVuX3BhZ2VzIHwgdHVw bGVzX2RlbGV0ZWQgfCByZWxwYWdlcyB8IHBhZ2VzX3NjYW5uZWQgfCBwYWdlc19yZW1vdmVk IAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorIHZlc3RhdCAgfCBm ICAgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgfCB0ICAgICAgICB8IHQgICAg ICAgICAgICAgfCB0CisoMSByb3cpCisKK1NFTEVDVCB2bV9uZXdfZnJvemVuX3BhZ2VzIEFT IGZwLHR1cGxlc19kZWxldGVkIEFTIHRkLHJlbHBhZ2VzIEFTIHJwLCBwYWdlc19zY2FubmVk IEFTIHBzLCBwYWdlc19yZW1vdmVkIEFTIHByCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxl cyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2dC5y ZWxpZCA9IGMub2lkIFxnc2V0CistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50byB2YXJpYWJs ZXMKK1NFTEVDVCB3YWxfcmVjb3JkcyBBUyBod3Isd2FsX2J5dGVzIEFTIGh3Yix3YWxfZnBp IEFTIGhmcGkgRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2 ZXN0YXQnIFxnc2V0CistLSBMb29rIGludG8gV0FMIHJlY29yZHMgZGVsdGFzLgorU0VMRUNU IHdhbF9yZWNvcmRzID4gMCBBUyBkV1IsIHdhbF9ieXRlcyA+IDAgQVMgZFdCCitGUk9NIHBn X3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCc7CisgZHdyIHwg ZHdiIAorLS0tLS0rLS0tLS0KKyB0ICAgfCB0CisoMSByb3cpCisKK0RFTEVURSBGUk9NIHZl c3RhdDs7CitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgsIElO REVYX0NMRUFOVVAgT0ZGKSB2ZXN0YXQ7CistLSBpdCBpcyBuZWNlc3NhcnkgdG8gY2hlY2sg dGhlIHdhbCBzdGF0aXN0aWNzCitDSEVDS1BPSU5UOworLS0gcGFnZXNfcmVtb3ZlZCBtdXN0 IGJlIGluY3JlYXNlZAorU0VMRUNUIHZ0LnJlbG5hbWUsdm1fbmV3X2Zyb3plbl9wYWdlcy06 ZnAgPiAwIEFTIHZtX25ld19mcm96ZW5fcGFnZXMsdHVwbGVzX2RlbGV0ZWQtOnRkID4gMCBB UyB0dXBsZXNfZGVsZXRlZCxyZWxwYWdlcyAtOnJwID0gMCBBUyByZWxwYWdlcyxwYWdlc19z Y2FubmVkLTpwcyA+IDAgQVMgcGFnZXNfc2Nhbm5lZCxwYWdlc19yZW1vdmVkLTpwciA+IDAg QVMgcGFnZXNfcmVtb3ZlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2Ns YXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JyBBTkQgdnQucmVsaWQgPSBjLm9p ZDsKKyByZWxuYW1lIHwgdm1fbmV3X2Zyb3plbl9wYWdlcyB8IHR1cGxlc19kZWxldGVkIHwg cmVscGFnZXMgfCBwYWdlc19zY2FubmVkIHwgcGFnZXNfcmVtb3ZlZCAKKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyB2ZXN0YXQgIHwgZiAgICAgICAgICAgICAg ICAgICB8IHQgICAgICAgICAgICAgIHwgZiAgICAgICAgfCB0ICAgICAgICAgICAgIHwgdAor KDEgcm93KQorCitTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcyBBUyBmcCx0dXBsZXNfZGVs ZXRlZCBBUyB0ZCxyZWxwYWdlcyBBUyBycCwgcGFnZXNfc2Nhbm5lZCBBUyBwcywgcGFnZXNf cmVtb3ZlZCBBUyBwcgorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNz IGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JyBBTkQgdnQucmVsaWQgPSBjLm9pZCBc Z3NldAorLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGludG8gdmFyaWFibGVzCitTRUxFQ1Qgd2Fs X3JlY29yZHMtOmh3ciBBUyBkd3IsIHdhbF9ieXRlcy06aHdiIEFTIGR3Yiwgd2FsX2ZwaS06 aGZwaSBBUyBkZnBpCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1l ID0gJ3Zlc3RhdCcgXGdzZXQKKy0tIFdBTCBhZHZhbmNlIHNob3VsZCBiZSBkZXRlY3RlZC4K K1NFTEVDVCA6ZHdyID4gMCBBUyBkV1IsIDpkd2IgPiAwIEFTIGRXQjsKKyBkd3IgfCBkd2Ig CistLS0tLSstLS0tLQorIHQgICB8IHQKKygxIHJvdykKKworLS0gU3RvcmUgV0FMIGFkdmFu Y2VzIGludG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMgQVMgaHdyLHdhbF9ieXRl cyBBUyBod2Isd2FsX2ZwaSBBUyBoZnBpIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdI RVJFIHJlbG5hbWUgPSAndmVzdGF0JyBcZ3NldAorSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVD VCB4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OworREVMRVRF IEZST00gdmVzdGF0IFdIRVJFIHggJSAyID0gMDsKKy0tIFZBQ1VVTSBGVUxMIGRvZXNuJ3Qg cmVwb3J0IHRvIHN0YXQgY29sbGVjdG9yLiBTbywgbm8gYW55IGFkdmFuY2VtZW50cyBvZiBz dGF0aXN0aWNzCistLSBhcmUgZGV0ZWN0ZWQgaGVyZS4KK1ZBQ1VVTSBGVUxMIHZlc3RhdDsK Ky0tIEl0IGlzIG5lY2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNL UE9JTlQ7CistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50byB2YXJpYWJsZXMKK1NFTEVDVCB3 YWxfcmVjb3Jkcy06aHdyIEFTIGR3cjIsIHdhbF9ieXRlcy06aHdiIEFTIGR3YjIsIHdhbF9m cGktOmhmcGkgQVMgZGZwaTIKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJl bG5hbWUgPSAndmVzdGF0JyBcZ3NldAorLS0gV0FMIGFuZCBvdGhlciBzdGF0aXN0aWNzIGFk dmFuY2Ugc2hvdWxkIG5vdCBiZSBkZXRlY3RlZC4KK1NFTEVDVCA6ZHdyMj0wIEFTIGRXUiwg OmRmcGkyPTAgQVMgZEZQSSwgOmR3YjI9MCBBUyBkV0I7CisgZHdyIHwgZGZwaSB8IGR3YiAK Ky0tLS0tKy0tLS0tLSstLS0tLQorIHQgICB8IHQgICAgfCB0CisoMSByb3cpCisKK1NFTEVD VCB2dC5yZWxuYW1lLHZtX25ld19mcm96ZW5fcGFnZXMtOmZwID0gMCBBUyB2bV9uZXdfZnJv emVuX3BhZ2VzLHR1cGxlc19kZWxldGVkLTp0ZCA9IDAgQVMgdHVwbGVzX2RlbGV0ZWQscmVs cGFnZXMgLTpycCA8IDAgQVMgcmVscGFnZXMscGFnZXNfc2Nhbm5lZC06cHMgPSAwIEFTIHBh Z2VzX3NjYW5uZWQscGFnZXNfcmVtb3ZlZC06cHIgPSAwIEFTIHBhZ2VzX3JlbW92ZWQKK0ZS T00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxu YW1lID0gJ3Zlc3RhdCcgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CisgcmVsbmFtZSB8IHZtX25l d19mcm96ZW5fcGFnZXMgfCB0dXBsZXNfZGVsZXRlZCB8IHJlbHBhZ2VzIHwgcGFnZXNfc2Nh bm5lZCB8IHBhZ2VzX3JlbW92ZWQgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tCisgdmVzdGF0ICB8IHQgICAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAg ICB8IGYgICAgICAgIHwgdCAgICAgICAgICAgICB8IHQKKygxIHJvdykKKworU0VMRUNUIHZt X25ld19mcm96ZW5fcGFnZXMgQVMgZnAsdHVwbGVzX2RlbGV0ZWQgQVMgdGQscmVscGFnZXMg QVMgcnAsIHBhZ2VzX3NjYW5uZWQgQVMgcHMscGFnZXNfcmVtb3ZlZCBBUyBwcgorRlJPTSBw Z19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUg PSAndmVzdGF0JyBBTkQgdnQucmVsaWQgPSBjLm9pZCBcZ3NldAorLS0gU3RvcmUgV0FMIGFk dmFuY2VzIGludG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMgQVMgaHdyLHdhbF9i eXRlcyBBUyBod2Isd2FsX2ZwaSBBUyBoZnBpIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVz IFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0JyBcZ3NldAorREVMRVRFIEZST00gdmVzdGF0Owor VFJVTkNBVEUgdmVzdGF0OworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElN SVQgMTI4LCBJTkRFWF9DTEVBTlVQIE9GRikgdmVzdGF0OworLS0gaXQgaXMgbmVjZXNzYXJ5 IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKy0tIFN0b3JlIFdB TCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcyBhZnRlciByZW1vdmluZyBhbGwgdHVwbGVzIGZy b20gdGhlIHRhYmxlCitTRUxFQ1Qgd2FsX3JlY29yZHMtOmh3ciBBUyBkd3IzLCB3YWxfYnl0 ZXMtOmh3YiBBUyBkd2IzLCB3YWxfZnBpLTpoZnBpIEFTIGRmcGkzCitGUk9NIHBnX3N0YXRf dmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQKKy0tVGhlcmUg YXJlIG5vdGhpbmcgY2hhbmdlZAorU0VMRUNUIDpkd3IzPjAgQVMgZFdSLCA6ZGZwaTM9MCBB UyBkRlBJLCA6ZHdiMz4wIEFTIGRXQjsKKyBkd3IgfCBkZnBpIHwgZHdiIAorLS0tLS0rLS0t LS0tKy0tLS0tCisgdCAgIHwgdCAgICB8IHQKKygxIHJvdykKKworLS0KKy0tIE5vdywgdGhl IHRhYmxlIGFuZCBpbmRleCBpcyBjb21wcmVzc2VkIGludG8gemVybyBudW1iZXIgb2YgcGFn ZXMuIENoZWNrIGl0CistLSBpbiB2YWN1dW0gZXh0ZW5kZWQgc3RhdGlzdGljcy4KKy0tIFRo ZSB2bV9uZXdfZnJvemVuX3BhZ2VzLCBwYWdlc19zY2FubmVkIHZhbHVlcyBzaG91bGRuJ3Qg YmUgY2hhbmdlZAorLS0KK1NFTEVDVCB2dC5yZWxuYW1lLHZtX25ld19mcm96ZW5fcGFnZXMt OmZwID0gMCBBUyB2bV9uZXdfZnJvemVuX3BhZ2VzLHR1cGxlc19kZWxldGVkLTp0ZCA9IDAg QVMgdHVwbGVzX2RlbGV0ZWQscmVscGFnZXMgLTpycCA9IDAgQVMgcmVscGFnZXMscGFnZXNf c2Nhbm5lZC06cHMgPSAwIEFTIHBhZ2VzX3NjYW5uZWQscGFnZXNfcmVtb3ZlZC06cHIgPSAw IEFTIHBhZ2VzX3JlbW92ZWQKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19j bGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdCcgQU5EIHZ0LnJlbGlkID0gYy5v aWQ7CisgcmVsbmFtZSB8IHZtX25ld19mcm96ZW5fcGFnZXMgfCB0dXBsZXNfZGVsZXRlZCB8 IHJlbHBhZ2VzIHwgcGFnZXNfc2Nhbm5lZCB8IHBhZ2VzX3JlbW92ZWQgCistLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgdmVzdGF0ICB8IHQgICAgICAgICAgICAg ICAgICAgfCB0ICAgICAgICAgICAgICB8IGYgICAgICAgIHwgdCAgICAgICAgICAgICB8IHQK KygxIHJvdykKKworSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2VuZXJhdGVf c2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OworQU5BTFlaRSB2ZXN0YXQ7CistLSBtdXN0 IGJlIGVtcHR5CitTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcywgdm1fbmV3X3Zpc2libGVf cGFnZXMsIHJldl9hbGxfZnJvemVuX3BhZ2VzLHJldl9hbGxfdmlzaWJsZV9wYWdlcyx2bV9u ZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzLCBw Z19zdGF0X2FsbF90YWJsZXMgV0hFUkUgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbG5hbWUg PSAndmVzdGF0JyBhbmQgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbGlkID0gcGdfc3RhdF9h bGxfdGFibGVzLnJlbGlkOworIHZtX25ld19mcm96ZW5fcGFnZXMgfCB2bV9uZXdfdmlzaWJs ZV9wYWdlcyB8IHJldl9hbGxfZnJvemVuX3BhZ2VzIHwgcmV2X2FsbF92aXNpYmxlX3BhZ2Vz IHwgdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAgICAgIDkxMCB8ICAgICAgICAgICAgICAg ICAgICAwIHwgICAgICAgICAgICAgICAgICAgICAwIHwgICAgICAgICAgICAgICAgICAgICAg ICAgNDU1CisoMSByb3cpCisKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJ TUlUIDEyOCkgdmVzdGF0OworLS0gYmFja2VuZCBkZWZyZWV6ZWQgcGFnZXMKK1NFTEVDVCB2 bV9uZXdfZnJvemVuX3BhZ2VzID4gMCBBUyB2bV9uZXdfZnJvemVuX3BhZ2VzLHZtX25ld192 aXNpYmxlX3BhZ2VzID4gMCBBUyB2bV9uZXdfdmlzaWJsZV9wYWdlcyx2bV9uZXdfdmlzaWJs ZV9mcm96ZW5fcGFnZXMgPiAwIEFTIHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyxyZXZf YWxsX2Zyb3plbl9wYWdlcyA9IDAgQVMgcmV2X2FsbF9mcm96ZW5fcGFnZXMscmV2X2FsbF92 aXNpYmxlX3BhZ2VzID0gMCBBUyByZXZfYWxsX3Zpc2libGVfcGFnZXMKK0ZST00gcGdfc3Rh dF92YWN1dW1fdGFibGVzLCBwZ19zdGF0X2FsbF90YWJsZXMgV0hFUkUgcGdfc3RhdF92YWN1 dW1fdGFibGVzLnJlbG5hbWUgPSAndmVzdGF0JyBhbmQgcGdfc3RhdF92YWN1dW1fdGFibGVz LnJlbGlkID0gcGdfc3RhdF9hbGxfdGFibGVzLnJlbGlkOworIHZtX25ld19mcm96ZW5fcGFn ZXMgfCB2bV9uZXdfdmlzaWJsZV9wYWdlcyB8IHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdl cyB8IHJldl9hbGxfZnJvemVuX3BhZ2VzIHwgcmV2X2FsbF92aXNpYmxlX3BhZ2VzIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIGYgICAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAgICAg ICB8IHQgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAgICAg IHwgdAorKDEgcm93KQorCitTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcyBBUyBwZiwgdm1f bmV3X3Zpc2libGVfcGFnZXMgQVMgcHYsdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzIEFT IHB2ZiwgcmV2X2FsbF9mcm96ZW5fcGFnZXMgQVMgaGFmcCxyZXZfYWxsX3Zpc2libGVfcGFn ZXMgQVMgaGF2cAorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMsIHBnX3N0YXRfYWxsX3Rh YmxlcyBXSEVSRSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsbmFtZSA9ICd2ZXN0YXQnIGFu ZCBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsaWQgPSBwZ19zdGF0X2FsbF90YWJsZXMucmVs aWQgXGdzZXQKK1VQREFURSB2ZXN0YXQgU0VUIHggPSB4ICsgMTAwMTsKK1ZBQ1VVTSAoUEFS QUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCkgdmVzdGF0OworU0VMRUNUIHZtX25l d19mcm96ZW5fcGFnZXMgPiA6cGYgQVMgdm1fbmV3X2Zyb3plbl9wYWdlcyx2bV9uZXdfdmlz aWJsZV9wYWdlcyA+IDpwdiBBUyB2bV9uZXdfdmlzaWJsZV9wYWdlcyx2bV9uZXdfdmlzaWJs ZV9mcm96ZW5fcGFnZXMgPiA6cHZmIEFTIHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyxy ZXZfYWxsX2Zyb3plbl9wYWdlcyA+IDpoYWZwIEFTIHJldl9hbGxfZnJvemVuX3BhZ2VzLHJl dl9hbGxfdmlzaWJsZV9wYWdlcyA+IDpoYXZwIEFTIHJldl9hbGxfdmlzaWJsZV9wYWdlcwor RlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMsIHBnX3N0YXRfYWxsX3RhYmxlcyBXSEVSRSBw Z19zdGF0X3ZhY3V1bV90YWJsZXMucmVsbmFtZSA9ICd2ZXN0YXQnIGFuZCBwZ19zdGF0X3Zh Y3V1bV90YWJsZXMucmVsaWQgPSBwZ19zdGF0X2FsbF90YWJsZXMucmVsaWQ7Cisgdm1fbmV3 X2Zyb3plbl9wYWdlcyB8IHZtX25ld192aXNpYmxlX3BhZ2VzIHwgdm1fbmV3X3Zpc2libGVf ZnJvemVuX3BhZ2VzIHwgcmV2X2FsbF9mcm96ZW5fcGFnZXMgfCByZXZfYWxsX3Zpc2libGVf cGFnZXMgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZiAgICAgICAgICAgICAgICAgICB8IHQgICAgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK1NFTEVDVCB2bV9uZXdfZnJvemVuX3BhZ2Vz IEFTIHBmLCB2bV9uZXdfdmlzaWJsZV9wYWdlcyBBUyBwdiwgdm1fbmV3X3Zpc2libGVfZnJv emVuX3BhZ2VzIEFTIHB2ZiwgcmV2X2FsbF9mcm96ZW5fcGFnZXMgQVMgaGFmcCxyZXZfYWxs X3Zpc2libGVfcGFnZXMgQVMgaGF2cAorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMsIHBn X3N0YXRfYWxsX3RhYmxlcyBXSEVSRSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsbmFtZSA9 ICd2ZXN0YXQnIGFuZCBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsaWQgPSBwZ19zdGF0X2Fs bF90YWJsZXMucmVsaWQgXGdzZXQKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdF X0xJTUlUIDEyOCkgdmVzdGF0OworLS0gdmFjdXVtIGZyZWV6ZWQgcGFnZXMKK1NFTEVDVCB2 bV9uZXdfZnJvemVuX3BhZ2VzID0gOnBmIEFTIHZtX25ld19mcm96ZW5fcGFnZXMsdm1fbmV3 X3Zpc2libGVfcGFnZXMgPSA6cHYgQVMgdm1fbmV3X3Zpc2libGVfcGFnZXMsdm1fbmV3X3Zp c2libGVfZnJvemVuX3BhZ2VzID0gOnB2ZiBBUyB2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFn ZXMsIHJldl9hbGxfZnJvemVuX3BhZ2VzID0gOmhhZnAgQVMgcmV2X2FsbF9mcm96ZW5fcGFn ZXMscmV2X2FsbF92aXNpYmxlX3BhZ2VzID0gOmhhdnAgQVMgcmV2X2FsbF92aXNpYmxlX3Bh Z2VzCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcywgcGdfc3RhdF9hbGxfdGFibGVzIFdI RVJFIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxuYW1lID0gJ3Zlc3RhdCcgYW5kIHBnX3N0 YXRfdmFjdXVtX3RhYmxlcy5yZWxpZCA9IHBnX3N0YXRfYWxsX3RhYmxlcy5yZWxpZDsKKyB2 bV9uZXdfZnJvemVuX3BhZ2VzIHwgdm1fbmV3X3Zpc2libGVfcGFnZXMgfCB2bV9uZXdfdmlz aWJsZV9mcm96ZW5fcGFnZXMgfCByZXZfYWxsX2Zyb3plbl9wYWdlcyB8IHJldl9hbGxfdmlz aWJsZV9wYWdlcyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0ICAgICAgICAgICAgICAgICAgIHwgdCAg ICAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0ICAg ICAgICAgICAgICAgICAgICB8IHQKKygxIHJvdykKKworRFJPUCBUQUJMRSB2ZXN0YXQgQ0FT Q0FERTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUg Yi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IDFlZGQ5ZTQ1ZWJi Li5kMTFmNmI3ZWY0YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9z Y2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC0x MzYsMyArMTM2LDggQEAgdGVzdDogZmFzdF9kZWZhdWx0CiAjIHJ1biB0YWJsZXNwYWNlIHRl c3QgYXQgdGhlIGVuZCBiZWNhdXNlIGl0IGRyb3BzIHRoZSB0YWJsZXNwYWNlIGNyZWF0ZWQg ZHVyaW5nCiAjIHNldHVwIHRoYXQgb3RoZXIgdGVzdHMgbWF5IHVzZS4KIHRlc3Q6IHRhYmxl c3BhY2UKKworIyAtLS0tLS0tLS0tCisjIENoZWNrIHZhY3V1bSBzdGF0aXN0aWNzCisjIC0t LS0tLS0tLS0KK3Rlc3Q6IHZhY3V1bV90YWJsZXNfc3RhdGlzdGljcwpcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1 bV90YWJsZXNfc3RhdGlzdGljcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1dW1f dGFibGVzX3N0YXRpc3RpY3Muc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi44YWQ2OTEwOGNhMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGljcy5zcWwKQEAgLTAsMCArMSwxODAgQEAK Ky0tCistLSBUZXN0IGN1bXVsYXRpdmUgdmFjdXVtIHN0YXRzIHN5c3RlbQorLS0KKy0tIENo ZWNrIHRoZSB3YWxsIHN0YXRpc3RpY3MgY29sbGVjdGVkIGR1cmluZyB2YWN1dW0gb3BlcmF0 aW9uOgorLS0gbnVtYmVyIG9mIGZyb3plbiBhbmQgdmlzaWJsZSBwYWdlcyBzZXQgYnkgdmFj dXVtOworLS0gbnVtYmVyIG9mIGZyb3plbiBhbmQgdmlzaWJsZSBwYWdlcyByZW1vdmVkIGJ5 IGJhY2tlbmQuCistLSBTdGF0aXN0aWMgd2FsX2ZwaSBpcyBub3QgZGlzcGxheWVkIGluIHRo aXMgdGVzdCBiZWNhdXNlIGl0cyBiZWhhdmlvciBpcyB1bnN0YWJsZS4KKy0tCisKKy0tIGNv bmRpdGlvIHNpbmUgcXVhIG5vbgorU0hPVyB0cmFja19jb3VudHM7ICAtLSBtdXN0IGJlIG9u Citcc2V0IHNhbXBsZV9zaXplIDEwMDAwCisKKy0tIG5vdCBlbmFibGVkIGJ5IGRlZmF1bHQs IGJ1dCB3ZSB3YW50IHRvIHRlc3QgaXQuLi4KK1NFVCB0cmFja19mdW5jdGlvbnMgVE8gJ2Fs bCc7CisKKy0tIFRlc3QgdGhhdCB2YWN1dW0gc3RhdGlzdGljcyB3aWxsIGJlIGVtcHR5IHdo ZW4gcGFyYW1ldGVyIGlzIG9mZi4KK1NFVCB0cmFja192YWN1dW1fc3RhdGlzdGljcyBUTyAn b2ZmJzsKKworQ1JFQVRFIFRBQkxFIHZlc3RhdCAoeCBpbnQpIFdJVEggKGF1dG92YWN1dW1f ZW5hYmxlZCA9IG9mZiwgZmlsbGZhY3RvciA9IDEwKTsKK0lOU0VSVCBJTlRPIHZlc3RhdCBT RUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpzYW1wbGVfc2l6ZSkgYXMgeDsKK0FO QUxZWkUgdmVzdGF0OworCitERUxFVEUgRlJPTSB2ZXN0YXQgV0hFUkUgeCAlIDIgPSAwOwor CitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgpIHZlc3RhdDsK KworLS0gTXVzdCBiZSBlbXB0eS4KK1NFTEVDVCByZWxuYW1lLHRvdGFsX2Jsa3NfcmVhZCwg dG90YWxfYmxrc19oaXQsIHRvdGFsX2Jsa3NfZGlydGllZCwgdG90YWxfYmxrc193cml0dGVu LHJlbF9ibGtzX3JlYWQsIHJlbF9ibGtzX2hpdCwKK3BhZ2VzX3NjYW5uZWQsIHBhZ2VzX3Jl bW92ZWQsIHZtX25ld19mcm96ZW5fcGFnZXMsIHZtX25ld192aXNpYmxlX3BhZ2VzLCB2bV9u ZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMsIG1pc3NlZF9kZWFkX3BhZ2VzLAordHVwbGVzX2Rl bGV0ZWQsIHR1cGxlc19mcm96ZW4sIHJlY2VudGx5X2RlYWRfdHVwbGVzLCBtaXNzZWRfZGVh ZF90dXBsZXMsIGluZGV4X3ZhY3V1bV9jb3VudCwKK3dhbF9yZWNvcmRzLCB3YWxfZnBpLCB3 YWxfYnl0ZXMsIGJsa19yZWFkX3RpbWUsIGJsa193cml0ZV90aW1lLGRlbGF5X3RpbWUsIHRv dGFsX3RpbWUKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0CitXSEVSRSB2dC5yZWxu YW1lID0gJ3Zlc3RhdCc7CisKK1JFU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzOworRFJP UCBUQUJMRSB2ZXN0YXQgQ0FTQ0FERTsKKworU0hPVyB0cmFja192YWN1dW1fc3RhdGlzdGlj czsgIC0tIG11c3QgYmUgb24KKworLS0gZW5zdXJlIHBlbmRpbmcgc3RhdHMgYXJlIGZsdXNo ZWQKK1NFTEVDVCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2goKTsKKworLS1TRVQgc3RhdHNf ZmV0Y2hfY29uc2lzdGVuY3kgPSBzbmFwc2hvdDsKK0NSRUFURSBUQUJMRSB2ZXN0YXQgKHgg aW50KSBXSVRIIChhdXRvdmFjdXVtX2VuYWJsZWQgPSBvZmYsIGZpbGxmYWN0b3IgPSAxMCk7 CitJTlNFUlQgSU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw6 c2FtcGxlX3NpemUpIGFzIHg7CitBTkFMWVpFIHZlc3RhdDsKKworU0VMRUNUIG9pZCBBUyBy b2lkIGZyb20gcGdfY2xhc3Mgd2hlcmUgcmVsbmFtZSA9ICd2ZXN0YXQnIFxnc2V0CisKK0RF TEVURSBGUk9NIHZlc3RhdCBXSEVSRSB4ICUgMiA9IDA7CistLSBCZWZvcmUgdGhlIGZpcnN0 IHZhY3V1bSBleGVjdXRpb24gZXh0ZW5kZWQgc3RhdHMgdmlldyBpcyBlbXB0eS4KK1NFTEVD VCB2dC5yZWxuYW1lLHZtX25ld19mcm96ZW5fcGFnZXMsdHVwbGVzX2RlbGV0ZWQscmVscGFn ZXMscGFnZXNfc2Nhbm5lZCxwYWdlc19yZW1vdmVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX3Rh YmxlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2 dC5yZWxpZCA9IGMub2lkOworU0VMRUNUIHJlbHBhZ2VzIEFTIHJwCitGUk9NIHBnX2NsYXNz IGMKK1dIRVJFIHJlbG5hbWUgPSAndmVzdGF0JyBcZ3NldAorCitWQUNVVU0gKFBBUkFMTEVM IDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgsIElOREVYX0NMRUFOVVAgT0ZGKSB2ZXN0YXQ7 CistLSBpdCBpcyBuZWNlc3NhcnkgdG8gY2hlY2sgdGhlIHdhbCBzdGF0aXN0aWNzCitDSEVD S1BPSU5UOworCistLSBUaGUgdGFibGUgYW5kIGluZGV4IGV4dGVuZGVkIHZhY3V1bSBzdGF0 aXN0aWNzIHNob3VsZCBzaG93IHVzIHRoYXQKKy0tIHZhY3V1bSBmcm96ZWQgcGFnZXMgYW5k IGNsZWFuIHVwIHBhZ2VzLCBidXQgcGFnZXNfcmVtb3ZlZCBzdGF5ZWQgdGhlIHNhbWUKKy0t IGJlY2F1c2Ugb2Ygbm90IGZ1bGwgdGFibGUgaGF2ZSBjbGVhbmVkIHVwCitTRUxFQ1QgdnQu cmVsbmFtZSx2bV9uZXdfZnJvemVuX3BhZ2VzID4gMCBBUyB2bV9uZXdfZnJvemVuX3BhZ2Vz LHR1cGxlc19kZWxldGVkID4gMCBBUyB0dXBsZXNfZGVsZXRlZCxyZWxwYWdlcy06cnAgPSAw IEFTIHJlbHBhZ2VzLHBhZ2VzX3NjYW5uZWQgPiAwIEFTIHBhZ2VzX3NjYW5uZWQscGFnZXNf cmVtb3ZlZCA9IDAgQVMgcGFnZXNfcmVtb3ZlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJs ZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JyBBTkQgdnQu cmVsaWQgPSBjLm9pZDsKK1NFTEVDVCB2bV9uZXdfZnJvemVuX3BhZ2VzIEFTIGZwLHR1cGxl c19kZWxldGVkIEFTIHRkLHJlbHBhZ2VzIEFTIHJwLCBwYWdlc19zY2FubmVkIEFTIHBzLCBw YWdlc19yZW1vdmVkIEFTIHByCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdf Y2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2dC5yZWxpZCA9IGMu b2lkIFxnc2V0CisKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VM RUNUIHdhbF9yZWNvcmRzIEFTIGh3cix3YWxfYnl0ZXMgQVMgaHdiLHdhbF9mcGkgQVMgaGZw aSBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcg XGdzZXQKKworLS0gTG9vayBpbnRvIFdBTCByZWNvcmRzIGRlbHRhcy4KK1NFTEVDVCB3YWxf cmVjb3JkcyA+IDAgQVMgZFdSLCB3YWxfYnl0ZXMgPiAwIEFTIGRXQgorRlJPTSBwZ19zdGF0 X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnOworCitERUxFVEUgRlJP TSB2ZXN0YXQ7OworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4 LCBJTkRFWF9DTEVBTlVQIE9GRikgdmVzdGF0OworLS0gaXQgaXMgbmVjZXNzYXJ5IHRvIGNo ZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKworLS0gcGFnZXNfcmVtb3Zl ZCBtdXN0IGJlIGluY3JlYXNlZAorU0VMRUNUIHZ0LnJlbG5hbWUsdm1fbmV3X2Zyb3plbl9w YWdlcy06ZnAgPiAwIEFTIHZtX25ld19mcm96ZW5fcGFnZXMsdHVwbGVzX2RlbGV0ZWQtOnRk ID4gMCBBUyB0dXBsZXNfZGVsZXRlZCxyZWxwYWdlcyAtOnJwID0gMCBBUyByZWxwYWdlcyxw YWdlc19zY2FubmVkLTpwcyA+IDAgQVMgcGFnZXNfc2Nhbm5lZCxwYWdlc19yZW1vdmVkLTpw ciA+IDAgQVMgcGFnZXNfcmVtb3ZlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQs IHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JyBBTkQgdnQucmVsaWQg PSBjLm9pZDsKK1NFTEVDVCB2bV9uZXdfZnJvemVuX3BhZ2VzIEFTIGZwLHR1cGxlc19kZWxl dGVkIEFTIHRkLHJlbHBhZ2VzIEFTIHJwLCBwYWdlc19zY2FubmVkIEFTIHBzLCBwYWdlc19y ZW1vdmVkIEFTIHByCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xhc3Mg YworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2dC5yZWxpZCA9IGMub2lkIFxn c2V0CisKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdh bF9yZWNvcmRzLTpod3IgQVMgZHdyLCB3YWxfYnl0ZXMtOmh3YiBBUyBkd2IsIHdhbF9mcGkt OmhmcGkgQVMgZGZwaQorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFt ZSA9ICd2ZXN0YXQnIFxnc2V0CisKKy0tIFdBTCBhZHZhbmNlIHNob3VsZCBiZSBkZXRlY3Rl ZC4KK1NFTEVDVCA6ZHdyID4gMCBBUyBkV1IsIDpkd2IgPiAwIEFTIGRXQjsKKworLS0gU3Rv cmUgV0FMIGFkdmFuY2VzIGludG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMgQVMg aHdyLHdhbF9ieXRlcyBBUyBod2Isd2FsX2ZwaSBBUyBoZnBpIEZST00gcGdfc3RhdF92YWN1 dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0JyBcZ3NldAorCitJTlNFUlQgSU5U TyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw6c2FtcGxlX3NpemUp IGFzIHg7CitERUxFVEUgRlJPTSB2ZXN0YXQgV0hFUkUgeCAlIDIgPSAwOworLS0gVkFDVVVN IEZVTEwgZG9lc24ndCByZXBvcnQgdG8gc3RhdCBjb2xsZWN0b3IuIFNvLCBubyBhbnkgYWR2 YW5jZW1lbnRzIG9mIHN0YXRpc3RpY3MKKy0tIGFyZSBkZXRlY3RlZCBoZXJlLgorVkFDVVVN IEZVTEwgdmVzdGF0OworLS0gSXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRoZSB3YWwgc3Rh dGlzdGljcworQ0hFQ0tQT0lOVDsKKworLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGludG8gdmFy aWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMtOmh3ciBBUyBkd3IyLCB3YWxfYnl0ZXMtOmh3 YiBBUyBkd2IyLCB3YWxfZnBpLTpoZnBpIEFTIGRmcGkyCitGUk9NIHBnX3N0YXRfdmFjdXVt X3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQKKworLS0gV0FMIGFuZCBv dGhlciBzdGF0aXN0aWNzIGFkdmFuY2Ugc2hvdWxkIG5vdCBiZSBkZXRlY3RlZC4KK1NFTEVD VCA6ZHdyMj0wIEFTIGRXUiwgOmRmcGkyPTAgQVMgZEZQSSwgOmR3YjI9MCBBUyBkV0I7CisK K1NFTEVDVCB2dC5yZWxuYW1lLHZtX25ld19mcm96ZW5fcGFnZXMtOmZwID0gMCBBUyB2bV9u ZXdfZnJvemVuX3BhZ2VzLHR1cGxlc19kZWxldGVkLTp0ZCA9IDAgQVMgdHVwbGVzX2RlbGV0 ZWQscmVscGFnZXMgLTpycCA8IDAgQVMgcmVscGFnZXMscGFnZXNfc2Nhbm5lZC06cHMgPSAw IEFTIHBhZ2VzX3NjYW5uZWQscGFnZXNfcmVtb3ZlZC06cHIgPSAwIEFTIHBhZ2VzX3JlbW92 ZWQKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2 dC5yZWxuYW1lID0gJ3Zlc3RhdCcgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CitTRUxFQ1Qgdm1f bmV3X2Zyb3plbl9wYWdlcyBBUyBmcCx0dXBsZXNfZGVsZXRlZCBBUyB0ZCxyZWxwYWdlcyBB UyBycCwgcGFnZXNfc2Nhbm5lZCBBUyBwcyxwYWdlc19yZW1vdmVkIEFTIHByCitGUk9NIHBn X3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9 ICd2ZXN0YXQnIEFORCB2dC5yZWxpZCA9IGMub2lkIFxnc2V0CisKKy0tIFN0b3JlIFdBTCBh ZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzIEFTIGh3cix3YWxf Ynl0ZXMgQVMgaHdiLHdhbF9mcGkgQVMgaGZwaSBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxl cyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQKKworREVMRVRFIEZST00gdmVzdGF0 OworVFJVTkNBVEUgdmVzdGF0OworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0Vf TElNSVQgMTI4LCBJTkRFWF9DTEVBTlVQIE9GRikgdmVzdGF0OworLS0gaXQgaXMgbmVjZXNz YXJ5IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKworLS0gU3Rv cmUgV0FMIGFkdmFuY2VzIGludG8gdmFyaWFibGVzIGFmdGVyIHJlbW92aW5nIGFsbCB0dXBs ZXMgZnJvbSB0aGUgdGFibGUKK1NFTEVDVCB3YWxfcmVjb3Jkcy06aHdyIEFTIGR3cjMsIHdh bF9ieXRlcy06aHdiIEFTIGR3YjMsIHdhbF9mcGktOmhmcGkgQVMgZGZwaTMKK0ZST00gcGdf c3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0JyBcZ3NldAorCist LVRoZXJlIGFyZSBub3RoaW5nIGNoYW5nZWQKK1NFTEVDVCA6ZHdyMz4wIEFTIGRXUiwgOmRm cGkzPTAgQVMgZEZQSSwgOmR3YjM+MCBBUyBkV0I7CisKKy0tCistLSBOb3csIHRoZSB0YWJs ZSBhbmQgaW5kZXggaXMgY29tcHJlc3NlZCBpbnRvIHplcm8gbnVtYmVyIG9mIHBhZ2VzLiBD aGVjayBpdAorLS0gaW4gdmFjdXVtIGV4dGVuZGVkIHN0YXRpc3RpY3MuCistLSBUaGUgdm1f bmV3X2Zyb3plbl9wYWdlcywgcGFnZXNfc2Nhbm5lZCB2YWx1ZXMgc2hvdWxkbid0IGJlIGNo YW5nZWQKKy0tCitTRUxFQ1QgdnQucmVsbmFtZSx2bV9uZXdfZnJvemVuX3BhZ2VzLTpmcCA9 IDAgQVMgdm1fbmV3X2Zyb3plbl9wYWdlcyx0dXBsZXNfZGVsZXRlZC06dGQgPSAwIEFTIHR1 cGxlc19kZWxldGVkLHJlbHBhZ2VzIC06cnAgPSAwIEFTIHJlbHBhZ2VzLHBhZ2VzX3NjYW5u ZWQtOnBzID0gMCBBUyBwYWdlc19zY2FubmVkLHBhZ2VzX3JlbW92ZWQtOnByID0gMCBBUyBw YWdlc19yZW1vdmVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xhc3Mg YworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2dC5yZWxpZCA9IGMub2lkOwor CitJTlNFUlQgSU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw6 c2FtcGxlX3NpemUpIGFzIHg7CitBTkFMWVpFIHZlc3RhdDsKKworLS0gbXVzdCBiZSBlbXB0 eQorU0VMRUNUIHZtX25ld19mcm96ZW5fcGFnZXMsIHZtX25ld192aXNpYmxlX3BhZ2VzLCBy ZXZfYWxsX2Zyb3plbl9wYWdlcyxyZXZfYWxsX3Zpc2libGVfcGFnZXMsdm1fbmV3X3Zpc2li bGVfZnJvemVuX3BhZ2VzCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcywgcGdfc3RhdF9h bGxfdGFibGVzIFdIRVJFIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxuYW1lID0gJ3Zlc3Rh dCcgYW5kIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxpZCA9IHBnX3N0YXRfYWxsX3RhYmxl cy5yZWxpZDsKKworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4 KSB2ZXN0YXQ7CisKKy0tIGJhY2tlbmQgZGVmcmVlemVkIHBhZ2VzCitTRUxFQ1Qgdm1fbmV3 X2Zyb3plbl9wYWdlcyA+IDAgQVMgdm1fbmV3X2Zyb3plbl9wYWdlcyx2bV9uZXdfdmlzaWJs ZV9wYWdlcyA+IDAgQVMgdm1fbmV3X3Zpc2libGVfcGFnZXMsdm1fbmV3X3Zpc2libGVfZnJv emVuX3BhZ2VzID4gMCBBUyB2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMscmV2X2FsbF9m cm96ZW5fcGFnZXMgPSAwIEFTIHJldl9hbGxfZnJvemVuX3BhZ2VzLHJldl9hbGxfdmlzaWJs ZV9wYWdlcyA9IDAgQVMgcmV2X2FsbF92aXNpYmxlX3BhZ2VzCitGUk9NIHBnX3N0YXRfdmFj dXVtX3RhYmxlcywgcGdfc3RhdF9hbGxfdGFibGVzIFdIRVJFIHBnX3N0YXRfdmFjdXVtX3Rh Ymxlcy5yZWxuYW1lID0gJ3Zlc3RhdCcgYW5kIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxp ZCA9IHBnX3N0YXRfYWxsX3RhYmxlcy5yZWxpZDsKK1NFTEVDVCB2bV9uZXdfZnJvemVuX3Bh Z2VzIEFTIHBmLCB2bV9uZXdfdmlzaWJsZV9wYWdlcyBBUyBwdix2bV9uZXdfdmlzaWJsZV9m cm96ZW5fcGFnZXMgQVMgcHZmLCByZXZfYWxsX2Zyb3plbl9wYWdlcyBBUyBoYWZwLHJldl9h bGxfdmlzaWJsZV9wYWdlcyBBUyBoYXZwCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcywg cGdfc3RhdF9hbGxfdGFibGVzIFdIRVJFIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxuYW1l ID0gJ3Zlc3RhdCcgYW5kIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxpZCA9IHBnX3N0YXRf YWxsX3RhYmxlcy5yZWxpZCBcZ3NldAorCitVUERBVEUgdmVzdGF0IFNFVCB4ID0geCArIDEw MDE7CitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgpIHZlc3Rh dDsKKworU0VMRUNUIHZtX25ld19mcm96ZW5fcGFnZXMgPiA6cGYgQVMgdm1fbmV3X2Zyb3pl bl9wYWdlcyx2bV9uZXdfdmlzaWJsZV9wYWdlcyA+IDpwdiBBUyB2bV9uZXdfdmlzaWJsZV9w YWdlcyx2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMgPiA6cHZmIEFTIHZtX25ld192aXNp YmxlX2Zyb3plbl9wYWdlcyxyZXZfYWxsX2Zyb3plbl9wYWdlcyA+IDpoYWZwIEFTIHJldl9h bGxfZnJvemVuX3BhZ2VzLHJldl9hbGxfdmlzaWJsZV9wYWdlcyA+IDpoYXZwIEFTIHJldl9h bGxfdmlzaWJsZV9wYWdlcworRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMsIHBnX3N0YXRf YWxsX3RhYmxlcyBXSEVSRSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsbmFtZSA9ICd2ZXN0 YXQnIGFuZCBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsaWQgPSBwZ19zdGF0X2FsbF90YWJs ZXMucmVsaWQ7CitTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcyBBUyBwZiwgdm1fbmV3X3Zp c2libGVfcGFnZXMgQVMgcHYsIHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyBBUyBwdmYs IHJldl9hbGxfZnJvemVuX3BhZ2VzIEFTIGhhZnAscmV2X2FsbF92aXNpYmxlX3BhZ2VzIEFT IGhhdnAKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzLCBwZ19zdGF0X2FsbF90YWJsZXMg V0hFUkUgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbG5hbWUgPSAndmVzdGF0JyBhbmQgcGdf c3RhdF92YWN1dW1fdGFibGVzLnJlbGlkID0gcGdfc3RhdF9hbGxfdGFibGVzLnJlbGlkIFxn c2V0CisKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCkgdmVz dGF0OworCistLSB2YWN1dW0gZnJlZXplZCBwYWdlcworU0VMRUNUIHZtX25ld19mcm96ZW5f cGFnZXMgPSA6cGYgQVMgdm1fbmV3X2Zyb3plbl9wYWdlcyx2bV9uZXdfdmlzaWJsZV9wYWdl cyA9IDpwdiBBUyB2bV9uZXdfdmlzaWJsZV9wYWdlcyx2bV9uZXdfdmlzaWJsZV9mcm96ZW5f cGFnZXMgPSA6cHZmIEFTIHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcywgcmV2X2FsbF9m cm96ZW5fcGFnZXMgPSA6aGFmcCBBUyByZXZfYWxsX2Zyb3plbl9wYWdlcyxyZXZfYWxsX3Zp c2libGVfcGFnZXMgPSA6aGF2cCBBUyByZXZfYWxsX3Zpc2libGVfcGFnZXMKK0ZST00gcGdf c3RhdF92YWN1dW1fdGFibGVzLCBwZ19zdGF0X2FsbF90YWJsZXMgV0hFUkUgcGdfc3RhdF92 YWN1dW1fdGFibGVzLnJlbG5hbWUgPSAndmVzdGF0JyBhbmQgcGdfc3RhdF92YWN1dW1fdGFi bGVzLnJlbGlkID0gcGdfc3RhdF9hbGxfdGFibGVzLnJlbGlkOworCitEUk9QIFRBQkxFIHZl c3RhdCBDQVNDQURFOwotLSAKMi4zNC4xCgo= --------------g7I0Wbo7Ykyo94XxnooGxlss Content-Type: text/x-patch; charset=UTF-8; name="v14-0002-Machinery-for-grabbing-an-extended-vacuu.patch" Content-Disposition: attachment; filename="v14-0002-Machinery-for-grabbing-an-extended-vacuu.patch" Content-Transfer-Encoding: base64 RnJvbSBhOWQ3YWIzYWU4NmE2YWIyMWZkYzBkZTkyNzhmZmFhNzhlZDIzN2ZlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogTW9uLCAxNiBEZWMgMjAyNCAxMjowNjoxNyArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMi80XSBNYWNoaW5lcnkgZm9yIGdyYWJiaW5nIGFuIGV4dGVuZGVkIHZh Y3V1bQogc3RhdGlzdGljcyBvbiBpbmRleCByZWxhdGlvbnMuCgpUaGV5IGFyZSBnYXRoZXJl ZCBzZXBhcmF0ZWxseSBmcm9tIHRhYmxlIHN0YXRpc3RpY3MuCgpBcyBmb3IgdGFibGVzLCB3 ZSBnYXRoZXIgdmFjdXVtIHNoYXJlZCBidWZmZXJzIHN0YXRpc3RpY3MgZm9yIGluZGV4IHJl bGF0aW9ucyBsaWtlCnZhbHVlIG9mIHRvdGFsX2Jsa3NfaGl0LCB0b3RhbF9ibGtzX3JlYWQs IHRvdGFsX2Jsa3NfZGlydGllZCwgd2FsIHN0YXRpc3RpY3MsIGlvIHRpbWUKZHVyaW5nIGZs dXNoaW5nIGJ1ZmZlciBwYWdlcyB0byBkaXNrLCBkZWxheSBhbmQgdG90YWwgdGltZS4KCkR1 ZSB0byB0aGUgZmFjdCB0YWh0IHN1Y2ggc3RhdGlzdGljcyBhcmUgY29tbW9uIGFzIGZvciB0 YWJsZXMsIGFzIGZvciBpbmRleGVzIHdlCnNldCB0aGVtIGluIHRoZSB1bmlvbiBFeHRWYWNS ZXBvcnQgc3RydWN0dXJlLiBXZSBvbmx5IGFkZGVkIHNvbWUgZGV0ZXJtaW5hdGlvbiAndHlw ZScKZmllbGQgdG8gaGlnaGxpZ2h0IHdoYXQga2luZCBiZWxvbmcgdG8gdGhlc2Ugc3RhdGlz dGljczogUEdTVEFUX0VYVFZBQ19UQUJMRSBvcgpQR1NUQVRfRVhUVkFDX0lOREVYLiBHZW5l cmFsbHksIFBHU1RBVF9FWFRWQUNfSU5WQUxJRCB0eXBlIGxlYWRzIHRvIHdyb25nIGNvZGUg cHJvY2Vzcy4KClNvbWUgc3RhdGlzdGljcyBiZWxvbmcgb25seSBvbmUgdHlwZSBvZiBib3Ro IHRhYmxlcyBvciBpbmRleGVzLiBTbywgd2UgYWRkZWQgc3Vic3RydWN0dXJlcwp0YWJsZSBh bmQgaW5kZXggaW5zaWRlIEV4dFZhY1JlcG9ydCBzdHJ1Y3R1cmUuCgpUaGVyZWZvcmUsIHdl IGdhdGhlciBvbmx5IGZvciB0YWJsZXMgc3VjaCBzdGF0aXN0aWNzIGxpa2UgbnVtYmVyIG9m IHNjYW5uZWQsIHJlbW92ZWQgcGFnZXMsCnRoZWlyIGNoYXJlY3RlcmlzdGljcyBhY2NvcmRp bmcgVk0gKGFsbC12aXNpYmxlIGFuZCBmcm96ZW4pLiBJbiBhZGRpdGlvbiwgZm9yIHRhYmxl cyB3ZQpnYXRoZXIgbnVtYmVyIGZyb3plbiwgZGVsZXRlZCBhbmQgcmVjZW50bHkgZGVhZCB0 dXBsZXMgYW5kIGhvdyBtYW55IHRpbWVzIHZhY3V1bSBwcm9jZXNzZWQKaW5kZXhlcyBmb3Ig dGFibGVzLgoKQ29udHJvdmVyc2FsbHkgZm9yIGluZGV4ZXMgd2UgZ2F0aGVyIG51bWJlciBv ZiBkZWxldGVkIHBhZ2VzIGFuZCBkZWxldGVkIHR1cGxlcyBvbmx5LgoKQXMgZm9yIHRhYmxl cywgZGVsZXRlZCBwYWdlcyBhbmQgZGVsZXRlZCB0dXBsZXMgcmVmbGVjdCB0aGUgb3ZlcmFs bCBwZXJmb3JtYW5jZSBvZiB0aGUgdmFjdXVtCmZvciB0aGUgaW5kZXggcmVsYXRpb25zaGlw CgpTaW5jZSB2YWN1dW0gY2xlYXJzIHR1cGxlIGluZGV4IHJlZmVyZW5jZXMgYmVmb3JlIGNs ZWFyaW5nIHRhYmxlIHR1cGxlcywgd2UgbmVlZCB0byBzdWJ0cmFjdApudW1iZXIgb2YgY29s bGVjdGVkIGluZGV4IHZhY3V1bSBzdGF0aXN0aWNzIGZvciBnZW5lcmFsIHN0YXRpc3RpY3Mg dGFrZW4gaW50byBhY2NvdW50CmZvciB0aGUgdGFibGUgYW5kIGZvciB0aGUgaW5kZXgsIGVz cGVjaWFsbHkgZm9yCnNoYXJlZCBidWZmZXJzOiB0b3RhbF9ibGtzX3JlYWQsIHRvdGFsX2Js a3NfaGl0LCB0b3RhbF9ibGtzX2RpcnRpZWQsIHRvdGFsX2Jsa3Nfd3JpdHRlbjsKd2FsIHN0 YXRpc3RpY3M6IHdhbF9ieXRlcywgd2FsX2ZwaSwgd2FsX3JlY29yZHM7IElPIHRpbWU6IGJs a19yZWFkX3RpbWUsIGJsa193cml0ZV90aW1lOwp0b3RhbCB0aW1lIGFuZCBkZWxheSB0aW1l LiBUaGlzIGlzIG5lY2Vzc2FyeSB0byB0YWtlIGludG8gYWNjb3VudCB2YWN1dW0gc3RhdGlz dGljcyBmb3IgdGFibGVzCmFuZCBpbmRleGVzIHNlcGFyYXRlbHkuCgpEdWUgdG8gdGhlIGZh Y3QgdGhhdCB0aGUgdmFjdXVtIGNhbiBwcm9kdWNlIHdvcmtlcnMgdG8gcHJvY2VzcyBpbmRl eGVzIG9mIHRoZSB0YWJsZSBhbmQgCndvcmtlcnMgc3RvcmUgdGhlaXIgd2FsIGFuZCBidWZm ZXIgc3RhdGlzdGljIGluZm9ybWF0aW9uIHNlcGFyYXRlbHkgZnJvbSB0aGUgcGxhY2UgdGhh dApsZWFkZXIgZG9lcyB3ZSBuZWVkIHRvIHN0b3JlIGFuIGluZm9ybWF0aW9uIGFib3V0IFBh cmFsbGVsV29ya2VyTnVtYmVyIHRoYXQncyB3aHkgd2UKYWRkZWQgdGhlIHZhcmlhYmxlIGlk X3BhcmFsbGVsX3dvcmtlciBpbiB0aGUgaW5kZXgncyBzdGF0aXN0aWMgc3RydWN0dXJlLiBQ VkluZFN0YXRzCnN0cnl1Y3R1cmUgc3RvcmUgc3RhdGlzdGljIGluZm9ybWF0aW9uIGZvciBl dmVyeSBpbmRleCB3aGV0aGVyIGl0IHdhcyBwcm9jZXNzZWQgYnkKbGVhZGVyIG9yIHdvcmtl ciwgc28gd2UgYXJlIHN1cmUgdGhhdCBpZF9wYXJhbGxlbF93b3JrZXIgd2lsbCBiZSB1cGRh dGVkIGNvcnJlY3RseS4KCkF1dGhvcnM6IEFsZW5hIFJ5YmFraW5hIDxsZW5hLnJpYmFja2lu YUB5YW5kZXgucnU+LAogICBBbmRyZWkgTGVwaWtob3YgPGEubGVwaWtob3ZAcG9zdGdyZXNw cm8ucnU+LAogICBBbmRyZWkgWnVia292IDxhLnp1YmtvdkBwb3N0Z3Jlc3Byby5ydT4KUmV2 aWV3ZWQtYnk6IERpbGlwIEt1bWFyIDxkaWxpcGJhbGF1dEBnbWFpbC5jb20+LCBNYXNhaGlr byBTYXdhZGEgPHNhd2FkYS5tc2hrQGdtYWlsLmNvbT4sCiAgICAgICBJbGlhIEV2ZG9raW1v diA8aWx5YS5ldmRva2ltb3ZAdGFudG9ybGFicy5jb20+LCBqaWFuIGhlIDxqaWFuLnVuaXZl cnNhbGl0eUBnbWFpbC5jb20+LAogICAgICAgS2lyaWxsIFJlc2hrZSA8cmVzaGtla2lyaWxs QGdtYWlsLmNvbT4sIEFsZXhhbmRlciBLb3JvdGtvdiA8YWVrb3JvdGtvdkBnbWFpbC5jb20+ LAogICAgICAgSmltIE5hc2J5IDxqbmFzYnlAdXBncmFkZS5jb20+Ci0tLQogc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jICAgICAgICAgIHwgMTY1ICsrKysrKysrKysr Ky0tLS0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCAgICAgICAgICB8 ICAzMiArKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgICAgICAg ICB8ICA1OSArKysrKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5jICAg ICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVs YXRpb24uYyAgfCAgNTAgKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5j cy5jICAgICAgICAgICB8IDEzMSArKysrKysrKysrKystCiBzcmMvYmFja2VuZC91dGlscy9t aXNjL2d1Y190YWJsZXMuYyAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvaW5jbHVkZS9jb21t YW5kcy92YWN1dW0uaCAgICAgICAgICAgICAgICAgfCAgMjYgKysrCiBzcmMvaW5jbHVkZS9w Z3N0YXQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNTkgKysrKy0tCiBzcmMvaW5j bHVkZS91dGlscy9wZ3N0YXRfaW50ZXJuYWwuaCAgICAgICAgICAgfCAgIDEgLQogc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgICAgICAgICAgIHwgIDIyICsrKwogLi4u L2V4cGVjdGVkL3ZhY3V1bV9pbmRleF9zdGF0aXN0aWNzLm91dCAgICAgIHwgMTgzICsrKysr KysrKysrKysrKysrKwogLi4uL2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGljcy5v dXQgICAgIHwgIDQwICsrKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUg ICAgICAgICAgICB8ICAgMSArCiAuLi4vcmVncmVzcy9zcWwvdmFjdXVtX2luZGV4X3N0YXRp c3RpY3Muc3FsICAgfCAxNTEgKysrKysrKysrKysrKysrCiAuLi4vcmVncmVzcy9zcWwvdmFj dXVtX3RhYmxlc19zdGF0aXN0aWNzLnNxbCAgfCAgMTIgKysKIDE3IGZpbGVzIGNoYW5nZWQs IDg2MCBpbnNlcnRpb25zKCspLCA4NyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV9pbmRleF9zdGF0aXN0aWNzLm91 dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV9pbmRl eF9zdGF0aXN0aWNzLnNxbAoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpp bmRleCA5ODdiZDUyOWRlYy4uM2YzYWIxMTE4Y2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92YWN1dW1sYXp5LmMKQEAgLTE2Niw2ICsxNjYsNyBAQCB0eXBlZGVmIHN0cnVjdCBMVlJl bFN0YXRlCiAJY2hhcgkgICAqZGJuYW1lOwogCWNoYXIJICAgKnJlbG5hbWVzcGFjZTsKIAlP aWQJCQlyZWxvaWQ7CisJT2lkCQkJaW5kb2lkOwogCWNoYXIJICAgKnJlbG5hbWU7CiAJY2hh cgkgICAqaW5kbmFtZTsJCS8qIEN1cnJlbnQgaW5kZXggbmFtZSAqLwogCUJsb2NrTnVtYmVy IGJsa25vOwkJCS8qIHVzZWQgb25seSBmb3IgaGVhcCBvcGVyYXRpb25zICovCkBAIC0yNDAs MTkgKzI0MSw2IEBAIHR5cGVkZWYgc3RydWN0IExWU2F2ZWRFcnJJbmZvCiAJVmFjRXJyUGhh c2UgcGhhc2U7CiB9IExWU2F2ZWRFcnJJbmZvOwogCi0vKgotICogQ291bnRlcnMgYW5kIHVz YWdlIGRhdGEgZm9yIGV4dGVuZGVkIHN0YXRzIHRyYWNraW5nLgotICovCi10eXBlZGVmIHN0 cnVjdCBMVkV4dFN0YXRDb3VudGVycwotewotCVRpbWVzdGFtcFR6IHN0YXJ0dGltZTsKLQlX YWxVc2FnZQl3YWx1c2FnZTsKLQlCdWZmZXJVc2FnZSBidWZ1c2FnZTsKLQlkb3VibGUJCVZh Y3V1bURlbGF5VGltZTsKLQlQZ1N0YXRfQ291bnRlciBibG9ja3NfZmV0Y2hlZDsKLQlQZ1N0 YXRfQ291bnRlciBibG9ja3NfaGl0OwotfSBMVkV4dFN0YXRDb3VudGVyczsKLQogLyogbm9u LWV4cG9ydCBmdW5jdGlvbiBwcm90b3R5cGVzICovCiBzdGF0aWMgdm9pZCBsYXp5X3NjYW5f aGVhcChMVlJlbFN0YXRlICp2YWNyZWwpOwogc3RhdGljIGJvb2wgaGVhcF92YWNfc2Nhbl9u ZXh0X2Jsb2NrKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgKmJsa25vLApAQCAt MzUwLDcgKzMzOCw4IEBAIGV4dHZhY19zdGF0c19zdGFydChSZWxhdGlvbiByZWwsIExWRXh0 U3RhdENvdW50ZXJzICpjb3VudGVycykKICAqLwogc3RhdGljIHZvaWQKIGV4dHZhY19zdGF0 c19lbmQoUmVsYXRpb24gcmVsLCBMVkV4dFN0YXRDb3VudGVycyAqY291bnRlcnMsCi0JCQkJ ICBFeHRWYWNSZXBvcnQgKnJlcG9ydCkKKwkJCQkgIEV4dFZhY1JlcG9ydCAqcmVwb3J0LCBC dWZmZXJVc2FnZSAqd29ya2VyX2J1ZmZlcnVzYWdlLAorCQkJCSAgV2FsVXNhZ2UgKndvcmtl cl93YWx1c2FnZSkKIHsKIAlXYWxVc2FnZQl3YWx1c2FnZTsKIAlCdWZmZXJVc2FnZQlidWZ1 c2FnZTsKQEAgLTM2MywxMCArMzUyLDE2IEBAIGV4dHZhY19zdGF0c19lbmQoUmVsYXRpb24g cmVsLCBMVkV4dFN0YXRDb3VudGVycyAqY291bnRlcnMsCiAKIAkvKiBDYWxjdWxhdGUgZGlm ZnMgb2YgZ2xvYmFsIHN0YXQgcGFyYW1ldGVycyBvbiBXQUwgYW5kIGJ1ZmZlciB1c2FnZS4g Ki8KIAltZW1zZXQoJndhbHVzYWdlLCAwLCBzaXplb2YoV2FsVXNhZ2UpKTsKLQlXYWxVc2Fn ZUFjY3VtRGlmZigmd2FsdXNhZ2UsICZwZ1dhbFVzYWdlLCAmY291bnRlcnMtPndhbHVzYWdl KTsKKwlpZih3b3JrZXJfd2FsdXNhZ2UgPT0gTlVMTCkKKwkJV2FsVXNhZ2VBY2N1bURpZmYo JndhbHVzYWdlLCAmcGdXYWxVc2FnZSwgJmNvdW50ZXJzLT53YWx1c2FnZSk7CisJZWxzZQor CQlXYWxVc2FnZUFjY3VtRGlmZigmd2FsdXNhZ2UsIHdvcmtlcl93YWx1c2FnZSwgJmNvdW50 ZXJzLT53YWx1c2FnZSk7CiAKIAltZW1zZXQoJmJ1ZnVzYWdlLCAwLCBzaXplb2YoQnVmZmVy VXNhZ2UpKTsKLQlCdWZmZXJVc2FnZUFjY3VtRGlmZigmYnVmdXNhZ2UsICZwZ0J1ZmZlclVz YWdlLCAmY291bnRlcnMtPmJ1ZnVzYWdlKTsKKwlpZih3b3JrZXJfYnVmZmVydXNhZ2UgPT0g TlVMTCkKKwkJQnVmZmVyVXNhZ2VBY2N1bURpZmYoJmJ1ZnVzYWdlLCAmcGdCdWZmZXJVc2Fn ZSwgJmNvdW50ZXJzLT5idWZ1c2FnZSk7CisJZWxzZQorCQlCdWZmZXJVc2FnZUFjY3VtRGlm ZigmYnVmdXNhZ2UsIHdvcmtlcl9idWZmZXJ1c2FnZSwgJmNvdW50ZXJzLT5idWZ1c2FnZSk7 CiAKIAllbmR0aW1lID0gR2V0Q3VycmVudFRpbWVzdGFtcCgpOwogCVRpbWVzdGFtcERpZmZl cmVuY2UoY291bnRlcnMtPnN0YXJ0dGltZSwgZW5kdGltZSwgJnNlY3MsICZ1c2Vjcyk7CkBA IC00MDYsNiArNDAxLDU5IEBAIGV4dHZhY19zdGF0c19lbmQoUmVsYXRpb24gcmVsLCBMVkV4 dFN0YXRDb3VudGVycyAqY291bnRlcnMsCiAJCXJlbC0+cGdzdGF0X2luZm8tPmNvdW50cy5i bG9ja3NfaGl0IC0gY291bnRlcnMtPmJsb2Nrc19oaXQ7CiB9CiAKK3ZvaWQKK2V4dHZhY19z dGF0c19zdGFydF9pZHgoUmVsYXRpb24gcmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKnN0 YXRzLAorCQkJCQkgICBMVkV4dFN0YXRDb3VudGVyc0lkeCAqY291bnRlcnMsCisJCQkJCSAg IEJ1ZmZlclVzYWdlICpidWZmdXNhZ2UsIFdhbFVzYWdlICp3YWx1c2FnZSkKK3sKKwlpZigh cGdzdGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzKQorCQlyZXR1cm47CisKKwlleHR2YWNf c3RhdHNfc3RhcnQocmVsLCAmY291bnRlcnMtPmNvbW1vbik7CisJY291bnRlcnMtPnBhZ2Vz X2RlbGV0ZWQgPSBjb3VudGVycy0+dHVwbGVzX3JlbW92ZWQgPSAwOworCisJaWYoYnVmZnVz YWdlICE9IE5VTEwpCisJCW1lbXNldCgmKGNvdW50ZXJzLT5jb21tb24uYnVmdXNhZ2UpLCAw LCBzaXplb2YoQnVmZmVyVXNhZ2UpKTsKKworCWlmKHdhbHVzYWdlICE9IE5VTEwpCisJCW1l bXNldCgmKGNvdW50ZXJzLT5jb21tb24ud2FsdXNhZ2UpLCAwLCBzaXplb2YoV2FsVXNhZ2Up KTsKKworCisJaWYgKHN0YXRzICE9IE5VTEwpCisJeworCQkvKgorCQkgKiBYWFg6IFdoeSBk byB3ZSBuZWVkIHRoaXMgY29kZSBoZXJlPyBJZiBpdCBpcyBuZWVkZWQsIEkgZmVlbCBsYWNr IG9mCisJCSAqIGNvbW1lbnRzLCBkZXNjcmliaW5nIHRoZSByZWFzb24uCisJCSAqLworCQlj b3VudGVycy0+dHVwbGVzX3JlbW92ZWQgPSBzdGF0cy0+dHVwbGVzX3JlbW92ZWQ7CisJCWNv dW50ZXJzLT5wYWdlc19kZWxldGVkID0gc3RhdHMtPnBhZ2VzX2RlbGV0ZWQ7CisJfQorfQor Cit2b2lkCitleHR2YWNfc3RhdHNfZW5kX2lkeChSZWxhdGlvbiByZWwsIEluZGV4QnVsa0Rl bGV0ZVJlc3VsdCAqc3RhdHMsCisJCQkJCSBMVkV4dFN0YXRDb3VudGVyc0lkeCAqY291bnRl cnMsIEV4dFZhY1JlcG9ydCAqcmVwb3J0LAorCQkJCQkgQnVmZmVyVXNhZ2UgKmJ1ZmZ1c2Fn ZSwgV2FsVXNhZ2UgKndhbHVzYWdlKQoreworCWV4dHZhY19zdGF0c19lbmQocmVsLCAmY291 bnRlcnMtPmNvbW1vbiwgcmVwb3J0LAorCQkJCQkgYnVmZnVzYWdlLCB3YWx1c2FnZSk7CisJ cmVwb3J0LT50eXBlID0gUEdTVEFUX0VYVFZBQ19JTkRFWDsKKworCWlmIChzdGF0cyAhPSBO VUxMKQorCXsKKwkJLyoKKwkJICogaWYgc29tZXRoaW5nIGdvZXMgd3Jvbmcgb3IgYW4gdXNl ciBkb2Vzbid0IHdhbnQgdG8gdHJhY2sgYSBkYXRhYmFzZQorCQkgKiBhY3Rpdml0eSAtIGp1 c3Qgc3VwcHJlc3MgaXQuCisJCSAqLworCisJCS8qIEZpbGwgaW5kZXgtc3BlY2lmaWMgZXh0 ZW5kZWQgc3RhdHMgZmllbGRzICovCisJCXJlcG9ydC0+dHVwbGVzX2RlbGV0ZWQgPQorCQkJ CQkJCXN0YXRzLT50dXBsZXNfcmVtb3ZlZCAtIGNvdW50ZXJzLT50dXBsZXNfcmVtb3ZlZDsK KwkJcmVwb3J0LT5pbmRleC5wYWdlc19kZWxldGVkID0KKwkJCQkJCQlzdGF0cy0+cGFnZXNf ZGVsZXRlZCAtIGNvdW50ZXJzLT5wYWdlc19kZWxldGVkOworCX0KK30KKwogLyoKICAqCWhl YXBfdmFjdXVtX3JlbCgpIC0tIHBlcmZvcm0gVkFDVVVNIGZvciBvbmUgaGVhcCByZWxhdGlv bgogICoKQEAgLTQ0MCwxMSArNDg4LDYgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJl bCwgVmFjdXVtUGFyYW1zICpwYXJhbXMsCiAJTFZFeHRTdGF0Q291bnRlcnMgZXh0VmFjQ291 bnRlcnM7CiAJRXh0VmFjUmVwb3J0IGV4dFZhY1JlcG9ydDsKIAljaGFyCSAgKippbmRuYW1l cyA9IE5VTEw7Ci0JRXh0VmFjUmVwb3J0IGFsbHplcm87Ci0KLQkvKiBJbml0aWFsaXplIHZh Y3V1bSBzdGF0aXN0aWNzICovCi0JbWVtc2V0KCZhbGx6ZXJvLCAwLCBzaXplb2YoRXh0VmFj UmVwb3J0KSk7Ci0JZXh0VmFjUmVwb3J0ID0gYWxsemVybzsKIAogCXZlcmJvc2UgPSAocGFy YW1zLT5vcHRpb25zICYgVkFDT1BUX1ZFUkJPU0UpICE9IDA7CiAJaW5zdHJ1bWVudCA9ICh2 ZXJib3NlIHx8IChBbUF1dG9WYWN1dW1Xb3JrZXJQcm9jZXNzKCkgJiYKQEAgLTcxMSwyNSAr NzU0LDM1IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIFZhY3V1bVBhcmFtcyAq cGFyYW1zLAogCQkJCQkJbmV3X3JlbF9hbGx2aXNpYmxlLCB2YWNyZWwtPm5pbmRleGVzID4g MCwKIAkJCQkJCXZhY3JlbC0+TmV3UmVsZnJvemVuWGlkLCB2YWNyZWwtPk5ld1JlbG1pbk14 aWQsCiAJCQkJCQkmZnJvemVueGlkX3VwZGF0ZWQsICZtaW5tdWx0aV91cGRhdGVkLCBmYWxz ZSk7Ci0KLQkvKiBNYWtlIGdlbmVyaWMgZXh0ZW5kZWQgdmFjdXVtIHN0YXRzIHJlcG9ydCAq LwotCWV4dHZhY19zdGF0c19lbmQocmVsLCAmZXh0VmFjQ291bnRlcnMsICZleHRWYWNSZXBv cnQpOworCWV4dHZhY19zdGF0c19lbmQocmVsLCAmZXh0VmFjQ291bnRlcnMsICZleHRWYWNS ZXBvcnQsIE5VTEwsIE5VTEwpOwogCiAJaWYocGdzdGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0 aWNzKQogCXsKLQkJZXh0VmFjUmVwb3J0LnJlY2VudGx5X2RlYWRfdHVwbGVzID0gMDsKIAkJ LyogRmlsbCBoZWFwLXNwZWNpZmljIGV4dGVuZGVkIHN0YXRzIGZpZWxkcyAqLwotCQlleHRW YWNSZXBvcnQucGFnZXNfc2Nhbm5lZCA9IHZhY3JlbC0+c2Nhbm5lZF9wYWdlczsKLQkJZXh0 VmFjUmVwb3J0LnBhZ2VzX3JlbW92ZWQgPSB2YWNyZWwtPnJlbW92ZWRfcGFnZXM7Ci0JCWV4 dFZhY1JlcG9ydC52bV9uZXdfZnJvemVuX3BhZ2VzID0gdmFjcmVsLT52bV9uZXdfZnJvemVu X3BhZ2VzOwotCQlleHRWYWNSZXBvcnQudm1fbmV3X3Zpc2libGVfcGFnZXMgPSB2YWNyZWwt PnZtX25ld192aXNpYmxlX3BhZ2VzOwotCQlleHRWYWNSZXBvcnQudm1fbmV3X3Zpc2libGVf ZnJvemVuX3BhZ2VzID0gdmFjcmVsLT52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXM7CisJ CWV4dFZhY1JlcG9ydC50eXBlID0gUEdTVEFUX0VYVFZBQ19UQUJMRTsKKwkJZXh0VmFjUmVw b3J0LnRhYmxlLnBhZ2VzX3NjYW5uZWQgPSB2YWNyZWwtPnNjYW5uZWRfcGFnZXM7CisJCWV4 dFZhY1JlcG9ydC50YWJsZS5wYWdlc19yZW1vdmVkID0gdmFjcmVsLT5yZW1vdmVkX3BhZ2Vz OworCQlleHRWYWNSZXBvcnQudGFibGUudm1fbmV3X2Zyb3plbl9wYWdlcyA9IHZhY3JlbC0+ dm1fbmV3X2Zyb3plbl9wYWdlczsKKwkJZXh0VmFjUmVwb3J0LnRhYmxlLnZtX25ld192aXNp YmxlX3BhZ2VzID0gdmFjcmVsLT52bV9uZXdfdmlzaWJsZV9wYWdlczsKKwkJZXh0VmFjUmVw b3J0LnRhYmxlLnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyA9IHZhY3JlbC0+dm1fbmV3 X3Zpc2libGVfZnJvemVuX3BhZ2VzOwogCQlleHRWYWNSZXBvcnQudHVwbGVzX2RlbGV0ZWQg PSB2YWNyZWwtPnR1cGxlc19kZWxldGVkOwotCQlleHRWYWNSZXBvcnQudHVwbGVzX2Zyb3pl biA9IHZhY3JlbC0+dHVwbGVzX2Zyb3plbjsKLQkJZXh0VmFjUmVwb3J0LnJlY2VudGx5X2Rl YWRfdHVwbGVzID0gdmFjcmVsLT5yZWNlbnRseV9kZWFkX3R1cGxlczsKLQkJZXh0VmFjUmVw b3J0Lm1pc3NlZF9kZWFkX3R1cGxlcyA9IHZhY3JlbC0+bWlzc2VkX2RlYWRfdHVwbGVzOwot CQlleHRWYWNSZXBvcnQubWlzc2VkX2RlYWRfcGFnZXMgPSB2YWNyZWwtPm1pc3NlZF9kZWFk X3BhZ2VzOwotCQlleHRWYWNSZXBvcnQuaW5kZXhfdmFjdXVtX2NvdW50ID0gdmFjcmVsLT5u dW1faW5kZXhfc2NhbnM7CisJCWV4dFZhY1JlcG9ydC50YWJsZS50dXBsZXNfZnJvemVuID0g dmFjcmVsLT50dXBsZXNfZnJvemVuOworCQlleHRWYWNSZXBvcnQudGFibGUucmVjZW50bHlf ZGVhZF90dXBsZXMgPSB2YWNyZWwtPnJlY2VudGx5X2RlYWRfdHVwbGVzOworCQlleHRWYWNS ZXBvcnQudGFibGUucmVjZW50bHlfZGVhZF90dXBsZXMgPSB2YWNyZWwtPnJlY2VudGx5X2Rl YWRfdHVwbGVzOworCQlleHRWYWNSZXBvcnQudGFibGUubWlzc2VkX2RlYWRfdHVwbGVzID0g dmFjcmVsLT5taXNzZWRfZGVhZF90dXBsZXM7CisJCWV4dFZhY1JlcG9ydC50YWJsZS5taXNz ZWRfZGVhZF9wYWdlcyA9IHZhY3JlbC0+bWlzc2VkX2RlYWRfcGFnZXM7CisJCWV4dFZhY1Jl cG9ydC50YWJsZS5pbmRleF92YWN1dW1fY291bnQgPSB2YWNyZWwtPm51bV9pbmRleF9zY2Fu czsKKworCX0KKwllbHNlCisJeworCQlFeHRWYWNSZXBvcnQgYWxsemVybzsKKworCQkvKiBJ bml0aWFsaXplIHZhY3V1bSBzdGF0aXN0aWNzIHdpdGggMCB2YWx1ZXMgdG8gcHJldmVudAor CQkgKiBhZGRpbmcgZ2FyYmFnZSB2YWx1ZXMg4oCL4oCLaW4gbWVtb3J5CisJCSovCisJCW1l bXNldCgmYWxsemVybywgMCwgc2l6ZW9mKEV4dFZhY1JlcG9ydCkpOworCQlleHRWYWNSZXBv cnQgPSBhbGx6ZXJvOwogCX0KIAogCS8qCkBAIC0yNTA0LDYgKzI1NTcsNyBAQCBsYXp5X3Zh Y3V1bV9oZWFwX3BhZ2UoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciBibGtubywg QnVmZmVyIGJ1ZmZlciwKIAkJewogCQkJQXNzZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxpZCh2 aXNpYmlsaXR5X2N1dG9mZl94aWQpKTsKIAkJCWZsYWdzIHw9IFZJU0lCSUxJVFlNQVBfQUxM X0ZST1pFTjsKKwkJCXZhY3JlbC0+dm1fbmV3X2Zyb3plbl9wYWdlcysrOwogCQl9CiAKIAkJ UGFnZVNldEFsbFZpc2libGUocGFnZSk7CkBAIC0yNjcxLDYgKzI3MjUsMTAgQEAgbGF6eV92 YWN1dW1fb25lX2luZGV4KFJlbGF0aW9uIGluZHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVzdWx0 ICppc3RhdCwKIHsKIAlJbmRleFZhY3V1bUluZm8gaXZpbmZvOwogCUxWU2F2ZWRFcnJJbmZv IHNhdmVkX2Vycl9pbmZvOworCUxWRXh0U3RhdENvdW50ZXJzSWR4IGV4dFZhY0NvdW50ZXJz OworCUV4dFZhY1JlcG9ydCBleHRWYWNSZXBvcnQ7CisKKwlleHR2YWNfc3RhdHNfc3RhcnRf aWR4KGluZHJlbCwgaXN0YXQsICZleHRWYWNDb3VudGVycywgTlVMTCwgTlVMTCk7CiAKIAlp dmluZm8uaW5kZXggPSBpbmRyZWw7CiAJaXZpbmZvLmhlYXByZWwgPSB2YWNyZWwtPnJlbDsK QEAgLTI2ODksNiArMjc0Nyw3IEBAIGxhenlfdmFjdXVtX29uZV9pbmRleChSZWxhdGlvbiBp bmRyZWwsIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqaXN0YXQsCiAJICovCiAJQXNzZXJ0KHZh Y3JlbC0+aW5kbmFtZSA9PSBOVUxMKTsKIAl2YWNyZWwtPmluZG5hbWUgPSBwc3RyZHVwKFJl bGF0aW9uR2V0UmVsYXRpb25OYW1lKGluZHJlbCkpOworCXZhY3JlbC0+aW5kb2lkID0gUmVs YXRpb25HZXRSZWxpZChpbmRyZWwpOwogCXVwZGF0ZV92YWN1dW1fZXJyb3JfaW5mbyh2YWNy ZWwsICZzYXZlZF9lcnJfaW5mbywKIAkJCQkJCQkgVkFDVVVNX0VSUkNCX1BIQVNFX1ZBQ1VV TV9JTkRFWCwKIAkJCQkJCQkgSW52YWxpZEJsb2NrTnVtYmVyLCBJbnZhbGlkT2Zmc2V0TnVt YmVyKTsKQEAgLTI2OTcsNiArMjc1NiwxNSBAQCBsYXp5X3ZhY3V1bV9vbmVfaW5kZXgoUmVs YXRpb24gaW5kcmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmlzdGF0LAogCWlzdGF0ID0g dmFjX2J1bGtkZWxfb25lX2luZGV4KCZpdmluZm8sIGlzdGF0LCB2YWNyZWwtPmRlYWRfaXRl bXMsCiAJCQkJCQkJCSAgdmFjcmVsLT5kZWFkX2l0ZW1zX2luZm8pOwogCisJaWYocGdzdGF0 X3RyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzKQorCXsKKwkJLyogTWFrZSBleHRlbmRlZCB2YWN1 dW0gc3RhdHMgcmVwb3J0IGZvciBpbmRleCAqLworCQlleHR2YWNfc3RhdHNfZW5kX2lkeChp bmRyZWwsIGlzdGF0LCAmZXh0VmFjQ291bnRlcnMsICZleHRWYWNSZXBvcnQsIE5VTEwsIE5V TEwpOworCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1bShSZWxhdGlvbkdldFJlbGlkKGluZHJlbCks CisJCQkJCQkJCWluZHJlbC0+cmRfcmVsLT5yZWxpc3NoYXJlZCwKKwkJCQkJCQkJMCwgMCwg JmV4dFZhY1JlcG9ydCk7CisJfQorCiAJLyogUmV2ZXJ0IHRvIHRoZSBwcmV2aW91cyBwaGFz ZSBpbmZvcm1hdGlvbiBmb3IgZXJyb3IgdHJhY2ViYWNrICovCiAJcmVzdG9yZV92YWN1dW1f ZXJyb3JfaW5mbyh2YWNyZWwsICZzYXZlZF9lcnJfaW5mbyk7CiAJcGZyZWUodmFjcmVsLT5p bmRuYW1lKTsKQEAgLTI3MjEsNiArMjc4OSwxMCBAQCBsYXp5X2NsZWFudXBfb25lX2luZGV4 KFJlbGF0aW9uIGluZHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICppc3RhdCwKIHsKIAlJ bmRleFZhY3V1bUluZm8gaXZpbmZvOwogCUxWU2F2ZWRFcnJJbmZvIHNhdmVkX2Vycl9pbmZv OworCUxWRXh0U3RhdENvdW50ZXJzSWR4IGV4dFZhY0NvdW50ZXJzOworCUV4dFZhY1JlcG9y dCBleHRWYWNSZXBvcnQ7CisKKwlleHR2YWNfc3RhdHNfc3RhcnRfaWR4KGluZHJlbCwgaXN0 YXQsICZleHRWYWNDb3VudGVycywgTlVMTCwgTlVMTCk7CiAKIAlpdmluZm8uaW5kZXggPSBp bmRyZWw7CiAJaXZpbmZvLmhlYXByZWwgPSB2YWNyZWwtPnJlbDsKQEAgLTI3NDAsMTIgKzI4 MTIsMjIgQEAgbGF6eV9jbGVhbnVwX29uZV9pbmRleChSZWxhdGlvbiBpbmRyZWwsIEluZGV4 QnVsa0RlbGV0ZVJlc3VsdCAqaXN0YXQsCiAJICovCiAJQXNzZXJ0KHZhY3JlbC0+aW5kbmFt ZSA9PSBOVUxMKTsKIAl2YWNyZWwtPmluZG5hbWUgPSBwc3RyZHVwKFJlbGF0aW9uR2V0UmVs YXRpb25OYW1lKGluZHJlbCkpOworCXZhY3JlbC0+aW5kb2lkID0gUmVsYXRpb25HZXRSZWxp ZChpbmRyZWwpOwogCXVwZGF0ZV92YWN1dW1fZXJyb3JfaW5mbyh2YWNyZWwsICZzYXZlZF9l cnJfaW5mbywKIAkJCQkJCQkgVkFDVVVNX0VSUkNCX1BIQVNFX0lOREVYX0NMRUFOVVAsCiAJ CQkJCQkJIEludmFsaWRCbG9ja051bWJlciwgSW52YWxpZE9mZnNldE51bWJlcik7CiAKIAlp c3RhdCA9IHZhY19jbGVhbnVwX29uZV9pbmRleCgmaXZpbmZvLCBpc3RhdCk7CiAKKwlpZihw Z3N0YXRfdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MpCisJeworCQkvKiBNYWtlIGV4dGVuZGVk IHZhY3V1bSBzdGF0cyByZXBvcnQgZm9yIGluZGV4ICovCisJCWV4dHZhY19zdGF0c19lbmRf aWR4KGluZHJlbCwgaXN0YXQsICZleHRWYWNDb3VudGVycywgJmV4dFZhY1JlcG9ydCwgTlVM TCwgTlVMTCk7CisJCXBnc3RhdF9yZXBvcnRfdmFjdXVtKFJlbGF0aW9uR2V0UmVsaWQoaW5k cmVsKSwKKwkJCQkJCQkJaW5kcmVsLT5yZF9yZWwtPnJlbGlzc2hhcmVkLAorCQkJCQkJCQkw LCAwLCAmZXh0VmFjUmVwb3J0KTsKKwl9CisKIAkvKiBSZXZlcnQgdG8gdGhlIHByZXZpb3Vz IHBoYXNlIGluZm9ybWF0aW9uIGZvciBlcnJvciB0cmFjZWJhY2sgKi8KIAlyZXN0b3JlX3Zh Y3V1bV9lcnJvcl9pbmZvKHZhY3JlbCwgJnNhdmVkX2Vycl9pbmZvKTsKIAlwZnJlZSh2YWNy ZWwtPmluZG5hbWUpOwpAQCAtMzMyMSw2ICszNDAzLDggQEAgdXBkYXRlX3JlbHN0YXRzX2Fs bF9pbmRleGVzKExWUmVsU3RhdGUgKnZhY3JlbCkKIAlSZWxhdGlvbiAgICppbmRyZWxzID0g dmFjcmVsLT5pbmRyZWxzOwogCWludAkJCW5pbmRleGVzID0gdmFjcmVsLT5uaW5kZXhlczsK IAlJbmRleEJ1bGtEZWxldGVSZXN1bHQgKippbmRzdGF0cyA9IHZhY3JlbC0+aW5kc3RhdHM7 CisJTFZFeHRTdGF0Q291bnRlcnNJZHggZXh0VmFjQ291bnRlcnM7CisJRXh0VmFjUmVwb3J0 IGV4dFZhY1JlcG9ydDsKIAogCUFzc2VydCh2YWNyZWwtPmRvX2luZGV4X2NsZWFudXApOwog CkBAIC0zMzMyLDYgKzM0MTYsOCBAQCB1cGRhdGVfcmVsc3RhdHNfYWxsX2luZGV4ZXMoTFZS ZWxTdGF0ZSAqdmFjcmVsKQogCQlpZiAoaXN0YXQgPT0gTlVMTCB8fCBpc3RhdC0+ZXN0aW1h dGVkX2NvdW50KQogCQkJY29udGludWU7CiAKKwkJZXh0dmFjX3N0YXRzX3N0YXJ0X2lkeChp bmRyZWwsIGlzdGF0LCAmZXh0VmFjQ291bnRlcnMsIE5VTEwsIE5VTEwpOworCiAJCS8qIFVw ZGF0ZSBpbmRleCBzdGF0aXN0aWNzICovCiAJCXZhY191cGRhdGVfcmVsc3RhdHMoaW5kcmVs LAogCQkJCQkJCWlzdGF0LT5udW1fcGFnZXMsCkBAIC0zMzQxLDYgKzM0MjcsMTUgQEAgdXBk YXRlX3JlbHN0YXRzX2FsbF9pbmRleGVzKExWUmVsU3RhdGUgKnZhY3JlbCkKIAkJCQkJCQlJ bnZhbGlkVHJhbnNhY3Rpb25JZCwKIAkJCQkJCQlJbnZhbGlkTXVsdGlYYWN0SWQsCiAJCQkJ CQkJTlVMTCwgTlVMTCwgZmFsc2UpOworCisJCWlmKHBnc3RhdF90cmFja192YWN1dW1fc3Rh dGlzdGljcykKKwkJeworCQkJZXh0dmFjX3N0YXRzX2VuZF9pZHgoaW5kcmVsLCBpc3RhdCwg JmV4dFZhY0NvdW50ZXJzLCAmZXh0VmFjUmVwb3J0LCBOVUxMLCBOVUxMKTsKKworCQkJcGdz dGF0X3JlcG9ydF92YWN1dW0oUmVsYXRpb25HZXRSZWxpZChpbmRyZWwpLAorCQkJCQkJCQlp bmRyZWwtPnJkX3JlbC0+cmVsaXNzaGFyZWQsCisJCQkJCQkJCTAsIDAsICZleHRWYWNSZXBv cnQpOworCQl9CiAJfQogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5 c3RlbV92aWV3cy5zcWwgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwK aW5kZXggZjNjYjViNWJmOTAuLjMwZTVjMGE3YTQ0IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9z eXN0ZW1fdmlld3Muc3FsCkBAIC0xNDMwLDMgKzE0MzAsMzUgQEAgRlJPTSBwZ19jbGFzcyBy ZWwKICAgSk9JTiBwZ19uYW1lc3BhY2UgbnMgT04gbnMub2lkID0gcmVsLnJlbG5hbWVzcGFj ZSwKICAgTEFURVJBTCBwZ19zdGF0X2dldF92YWN1dW1fdGFibGVzKHJlbC5vaWQpIHN0YXRz CiBXSEVSRSByZWwucmVsa2luZCA9ICdyJzsKKworQ1JFQVRFIFZJRVcgcGdfc3RhdF92YWN1 dW1faW5kZXhlcyBBUworU0VMRUNUCisgIHJlbC5vaWQgYXMgcmVsaWQsCisgIG5zLm5zcG5h bWUgQVMgInNjaGVtYSIsCisgIHJlbC5yZWxuYW1lIEFTIHJlbG5hbWUsCisKKyAgdG90YWxf Ymxrc19yZWFkIEFTIHRvdGFsX2Jsa3NfcmVhZCwKKyAgdG90YWxfYmxrc19oaXQgQVMgdG90 YWxfYmxrc19oaXQsCisgIHRvdGFsX2Jsa3NfZGlydGllZCBBUyB0b3RhbF9ibGtzX2RpcnRp ZWQsCisgIHRvdGFsX2Jsa3Nfd3JpdHRlbiBBUyB0b3RhbF9ibGtzX3dyaXR0ZW4sCisKKyAg cmVsX2Jsa3NfcmVhZCBBUyByZWxfYmxrc19yZWFkLAorICByZWxfYmxrc19oaXQgQVMgcmVs X2Jsa3NfaGl0LAorCisgIHBhZ2VzX2RlbGV0ZWQgQVMgcGFnZXNfZGVsZXRlZCwKKyAgdHVw bGVzX2RlbGV0ZWQgQVMgdHVwbGVzX2RlbGV0ZWQsCisKKyAgd2FsX3JlY29yZHMgQVMgd2Fs X3JlY29yZHMsCisgIHdhbF9mcGkgQVMgd2FsX2ZwaSwKKyAgd2FsX2J5dGVzIEFTIHdhbF9i eXRlcywKKworICBibGtfcmVhZF90aW1lIEFTIGJsa19yZWFkX3RpbWUsCisgIGJsa193cml0 ZV90aW1lIEFTIGJsa193cml0ZV90aW1lLAorCisgIGRlbGF5X3RpbWUgQVMgZGVsYXlfdGlt ZSwKKyAgdG90YWxfdGltZSBBUyB0b3RhbF90aW1lCitGUk9NCisgIHBnX2NsYXNzIHJlbAor ICBKT0lOIHBnX25hbWVzcGFjZSBucyBPTiBucy5vaWQgPSByZWwucmVsbmFtZXNwYWNlLAor ICBMQVRFUkFMIHBnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRleGVzKHJlbC5vaWQpIHN0YXRzCitX SEVSRSByZWwucmVsa2luZCA9ICdpJzsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwppbmRleCBkN2Q5ODczYzhlYS4u ZTk2NmRhNGRlN2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBh cmFsbGVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwpA QCAtMTU0LDYgKzE1NCwxMCBAQCB0eXBlZGVmIHN0cnVjdCBQVkluZFN0YXRzCiAJICovCiAJ Ym9vbAkJaXN0YXRfdXBkYXRlZDsJLyogYXJlIHRoZSBzdGF0cyB1cGRhdGVkPyAqLwogCUlu ZGV4QnVsa0RlbGV0ZVJlc3VsdCBpc3RhdDsKKworCUxWRXh0U3RhdENvdW50ZXJzSWR4IGNv dW50ZXJzOworCUV4dFZhY1JlcG9ydCBpZHhfcmVwb3J0OworCWludCAJCSBpZF9wYXJhbGxl bF93b3JrZXI7IC8qIGRldGVjdCBpbmRleCB3YXMgcHJvY2Vzc2VkIGJ5IHBvc3Rtc3RlciBv ciB3b3JrZXIgKi8KIH0gUFZJbmRTdGF0czsKIAogLyoKQEAgLTY1NCw2ICs2NTgsOCBAQCBw YXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRl ICpwdnMsIGludCBudW1faW5kZXhfc2NhbgogCXsKIAkJUFZJbmRTdGF0cyAqaW5kc3RhdHMg PSAmKHB2cy0+aW5kc3RhdHNbaV0pOwogCisJCWluZHN0YXRzLT5pZF9wYXJhbGxlbF93b3Jr ZXIgPSAtMjsKKwogCQlBc3NlcnQoaW5kc3RhdHMtPnN0YXR1cyA9PSBQQVJBTExFTF9JTkRW QUNfU1RBVFVTX0lOSVRJQUwpOwogCQlpbmRzdGF0cy0+c3RhdHVzID0gbmV3X3N0YXR1czsK IAkJaW5kc3RhdHMtPnBhcmFsbGVsX3dvcmtlcnNfY2FuX3Byb2Nlc3MgPQpAQCAtNjYxLDYg KzY2NywxMiBAQCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxl bFZhY3V1bVN0YXRlICpwdnMsIGludCBudW1faW5kZXhfc2NhbgogCQkJIHBhcmFsbGVsX3Zh Y3V1bV9pbmRleF9pc19wYXJhbGxlbF9zYWZlKHB2cy0+aW5kcmVsc1tpXSwKIAkJCQkJCQkJ CQkJCQludW1faW5kZXhfc2NhbnMsCiAJCQkJCQkJCQkJCQkJdmFjdXVtKSk7CisKKwkJLyog U2F2YSBidWZmZXIgYW5kIHdhbCBzdGF0aXN0aWNzIGJlZm9yZSB2YWN1dW1pbmcgdG8gdHJh Y2sgdGhlbQorCQkgKiBmb3IgdGhlIGxlYWRlci4KKwkJKi8KKwkJZXh0dmFjX3N0YXRzX3N0 YXJ0X2lkeChwdnMtPmluZHJlbHNbaV0sICYoaW5kc3RhdHMtPmlzdGF0KSwKKwkJCQkJCQkm KGluZHN0YXRzLT5jb3VudGVycyksTlVMTCwgTlVMTCk7CiAJfQogCiAJLyogUmVzZXQgdGhl IHBhcmFsbGVsIGluZGV4IHByb2Nlc3NpbmcgYW5kIHByb2dyZXNzIGNvdW50ZXJzICovCkBA IC03MjcsMTkgKzczOSwxMCBAQCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhl cyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGludCBudW1faW5kZXhfc2NhbgogCSAqLwog CXBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX3NhZmVfaW5kZXhlcyhwdnMpOwogCi0JLyoKLQkg KiBOZXh0LCBhY2N1bXVsYXRlIGJ1ZmZlciBhbmQgV0FMIHVzYWdlLiAgKFRoaXMgbXVzdCB3 YWl0IGZvciB0aGUgd29ya2VycwotCSAqIHRvIGZpbmlzaCwgb3Igd2UgbWlnaHQgZ2V0IGlu Y29tcGxldGUgZGF0YS4pCi0JICovCiAJaWYgKG53b3JrZXJzID4gMCkKLQl7CiAJCS8qIFdh aXQgZm9yIGFsbCB2YWN1dW0gd29ya2VycyB0byBmaW5pc2ggKi8KIAkJV2FpdEZvclBhcmFs bGVsV29ya2Vyc1RvRmluaXNoKHB2cy0+cGN4dCk7CiAKLQkJZm9yIChpbnQgaSA9IDA7IGkg PCBwdnMtPnBjeHQtPm53b3JrZXJzX2xhdW5jaGVkOyBpKyspCi0JCQlJbnN0ckFjY3VtUGFy YWxsZWxRdWVyeSgmcHZzLT5idWZmZXJfdXNhZ2VbaV0sICZwdnMtPndhbF91c2FnZVtpXSk7 Ci0JfQotCiAJLyoKIAkgKiBSZXNldCBhbGwgaW5kZXggc3RhdHVzIGJhY2sgdG8gaW5pdGlh bCAod2hpbGUgY2hlY2tpbmcgdGhhdCB3ZSBoYXZlCiAJICogdmFjdXVtZWQgYWxsIGluZGV4 ZXMpLgpAQCAtNzUyLDkgKzc1NSw0NCBAQCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxf aW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGludCBudW1faW5kZXhfc2Nhbgog CQkJZWxvZyhFUlJPUiwgInBhcmFsbGVsIGluZGV4IHZhY3V1bSBvbiBpbmRleCBcIiVzXCIg aXMgbm90IGNvbXBsZXRlZCIsCiAJCQkJIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHB2cy0+ aW5kcmVsc1tpXSkpOwogCisJCS8qIElmIGFuIGluZGV4IHdhcyBwcm9jZXNzZWQgYnkgd29y a2VyIHdlIG5lZWQgdG8gZ2F0aGVyIHdhbCBhbmQKKwkJICogYnVmZmVyIHN0YXRpc3RpY3Mg ZnJvbSBwdnMtPmJ1ZmZlcl91c2FnZSBhbmQgcHZzLT53YWxfdXNhZ2UsCisJCSAqIG90aGVy d2ljZSBmb3IgbGVhZGVyIHRoZXkgY2FuIGJlIGRldGVjdGVkIHRocm91Z2ggc3Vic3RyYWN0 CisJCSAqIG9mIGdsb2JhbCBzdGF0aXN0aWNzIG9mIHBnV2FsVXNhZ2UgYW5kIHBnQnVmZmVy VXNhZ2UuCisJCSovCisJCWlmKHBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljcykKKwkJ eworCQkJLyogV2UgZXhwZWN0IHRoYXQgYWxsIGluZGV4ZXMgaGF2ZSB1cGRhdGVkIGl0ICov CisJCQlBc3NlcnQoaW5kc3RhdHMtPmlkX3BhcmFsbGVsX3dvcmtlciAhPSAtMik7CisKKwkJ CWlmKGluZHN0YXRzLT5pZF9wYXJhbGxlbF93b3JrZXIgPT0gLTEpCisJCQkJZXh0dmFjX3N0 YXRzX2VuZF9pZHgocHZzLT5pbmRyZWxzW2ldLCAmKGluZHN0YXRzLT5pc3RhdCksICYoaW5k c3RhdHMtPmNvdW50ZXJzKSwKKwkJCQkJCQkJCSYoaW5kc3RhdHMtPmlkeF9yZXBvcnQpLCBO VUxMLCBOVUxMKTsKKwkJCWVsc2UKKwkJCXsKKwkJCQkvKiBXZSBuZWVkIHRvIHJlc2V0IEJ1 ZmZlciBhbmQgV2FsIHVzYWdlIHN0YXRpc3RpY3MgKi8KKwkJCQltZW1zZXQoJihpbmRzdGF0 cy0+Y291bnRlcnMuY29tbW9uLmJ1ZnVzYWdlKSwgMCwgc2l6ZW9mKEJ1ZmZlclVzYWdlKSk7 CisJCQkJbWVtc2V0KCYoaW5kc3RhdHMtPmNvdW50ZXJzLmNvbW1vbi53YWx1c2FnZSksIDAs IHNpemVvZihXYWxVc2FnZSkpOworCQkJCWV4dHZhY19zdGF0c19lbmRfaWR4KHB2cy0+aW5k cmVsc1tpXSwgJihpbmRzdGF0cy0+aXN0YXQpLCAmKGluZHN0YXRzLT5jb3VudGVycyksCisJ CQkJCQkJCQkmKGluZHN0YXRzLT5pZHhfcmVwb3J0KSwgJnB2cy0+YnVmZmVyX3VzYWdlW2lu ZHN0YXRzLT5pZF9wYXJhbGxlbF93b3JrZXJdLCAmcHZzLT53YWxfdXNhZ2VbaW5kc3RhdHMt PmlkX3BhcmFsbGVsX3dvcmtlcl0pOworCQkJfQorCisJCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1 bShSZWxhdGlvbkdldFJlbGlkKHB2cy0+aW5kcmVsc1tpXSksCisJCQkJCQkJCXB2cy0+aW5k cmVsc1tpXS0+cmRfcmVsLT5yZWxpc3NoYXJlZCwKKwkJCQkJCQkJMCwgMCwgJihpbmRzdGF0 cy0+aWR4X3JlcG9ydCkpOworCQl9CisKIAkJaW5kc3RhdHMtPnN0YXR1cyA9IFBBUkFMTEVM X0lORFZBQ19TVEFUVVNfSU5JVElBTDsKIAl9CiAKKwkvKgorCSAqIE5leHQsIGFjY3VtdWxh dGUgYnVmZmVyIGFuZCBXQUwgdXNhZ2UuICAoVGhpcyBtdXN0IHdhaXQgZm9yIHRoZSB3b3Jr ZXJzCisJICogdG8gZmluaXNoLCBvciB3ZSBtaWdodCBnZXQgaW5jb21wbGV0ZSBkYXRhLikK KwkgKi8KKwlpZiAobndvcmtlcnMgPiAwKQorCWZvciAoaW50IGkgPSAwOyBpIDwgcHZzLT5w Y3h0LT5ud29ya2Vyc19sYXVuY2hlZDsgaSsrKQorCQkJSW5zdHJBY2N1bVBhcmFsbGVsUXVl cnkoJnB2cy0+YnVmZmVyX3VzYWdlW2ldLCAmcHZzLT53YWxfdXNhZ2VbaV0pOworCiAJLyoK IAkgKiBDYXJyeSB0aGUgc2hhcmVkIGJhbGFuY2UgdmFsdWUgdG8gaGVhcCBzY2FuIGFuZCBk aXNhYmxlIHNoYXJlZCBjb3N0aW5nCiAJICovCkBAIC05MjUsNiArOTYzLDkgQEAgcGFyYWxs ZWxfdmFjdXVtX3Byb2Nlc3Nfb25lX2luZGV4KFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywg UmVsYXRpb24gaW5kcmVsLAogCQlwZnJlZShpc3RhdF9yZXMpOwogCX0KIAorCS8qIExpa2Ug UGFyYWxsZWxXb3JrZXJOdW1iZXIgY2FuIGJlIC0xIGZvciBsZWFkZXIgYW5kIG1vcmUgMCBm b3Igd29ya2VycyAqLworCWluZHN0YXRzLT5pZF9wYXJhbGxlbF93b3JrZXIgPSBQYXJhbGxl bFdvcmtlck51bWJlcjsKKwogCS8qCiAJICogVXBkYXRlIHRoZSBzdGF0dXMgdG8gY29tcGxl dGVkLiBObyBuZWVkIHRvIGxvY2sgaGVyZSBzaW5jZSBlYWNoIHdvcmtlcgogCSAqIHRvdWNo ZXMgZGlmZmVyZW50IGluZGV4ZXMuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9h Y3Rpdml0eS9wZ3N0YXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5j CmluZGV4IGJlZTE0NjE4MTRiLi44NWM1NDRjZjk1NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0 aXZpdHkvcGdzdGF0LmMKQEAgLTExNjksNiArMTE2OSwxMCBAQCBwZ3N0YXRfYnVpbGRfc25h cHNob3QoUGdTdGF0X0tpbmQgc3RhdEtpbmQpCiAJCWlmIChwLT5kcm9wcGVkKQogCQkJY29u dGludWU7CiAKKwkJaWYgKHN0YXRLaW5kICE9IFBHU1RBVF9LSU5EX0lOVkFMSUQgJiYgc3Rh dEtpbmQgIT0gcC0+a2V5LmtpbmQpCisJCQkvKiBMb2FkIHN0YXQgb2Ygc3BlY2lmaWMgdHlw ZSwgaWYgZGVmaW5lZCAqLworCQkJY29udGludWU7CisKIAkJQXNzZXJ0KHBnX2F0b21pY19y ZWFkX3UzMigmcC0+cmVmY291bnQpID4gMCk7CiAKIAkJc3RhdHNfZGF0YSA9IGRzYV9nZXRf YWRkcmVzcyhwZ1N0YXRMb2NhbC5kc2EsIHAtPmJvZHkpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMgYi9zcmMvYmFja2VuZC91 dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYwppbmRleCBiYmIwOTUzODliZS4uY2M2 YjQ2ZWI3ZGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3Rh dF9yZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9y ZWxhdGlvbi5jCkBAIC00Nyw4ICs0Nyw2IEBAIHN0YXRpYyB2b2lkIGFkZF90YWJzdGF0X3hh Y3RfbGV2ZWwoUGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXRfaW5mbywgaW50IG5lc3RfbGV2 CiBzdGF0aWMgdm9pZCBlbnN1cmVfdGFic3RhdF94YWN0X2xldmVsKFBnU3RhdF9UYWJsZVN0 YXR1cyAqcGdzdGF0X2luZm8pOwogc3RhdGljIHZvaWQgc2F2ZV90cnVuY2Ryb3BfY291bnRl cnMoUGdTdGF0X1RhYmxlWGFjdFN0YXR1cyAqdHJhbnMsIGJvb2wgaXNfZHJvcCk7CiBzdGF0 aWMgdm9pZCByZXN0b3JlX3RydW5jZHJvcF9jb3VudGVycyhQZ1N0YXRfVGFibGVYYWN0U3Rh dHVzICp0cmFucyk7Ci1zdGF0aWMgdm9pZCBwZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNfc3Rh dHMoRXh0VmFjUmVwb3J0ICpkc3QsIEV4dFZhY1JlcG9ydCAqc3JjLAotCQkJCQkJCSAgIGJv b2wgYWNjdW11bGF0ZV9yZWx0eXBlX3NwZWNpZmljX2luZm8pOwogCiAKIC8qCkBAIC05ODks MTAgKzk4NywxMyBAQCByZXN0b3JlX3RydW5jZHJvcF9jb3VudGVycyhQZ1N0YXRfVGFibGVY YWN0U3RhdHVzICp0cmFucykKIAl9CiB9CiAKLXN0YXRpYyB2b2lkCit2b2lkCiBwZ3N0YXRf YWNjdW11bGF0ZV9leHR2YWNfc3RhdHMoRXh0VmFjUmVwb3J0ICpkc3QsIEV4dFZhY1JlcG9y dCAqc3JjLAogCQkJCQkJCSAgIGJvb2wgYWNjdW11bGF0ZV9yZWx0eXBlX3NwZWNpZmljX2lu Zm8pCiB7CisJaWYoIXBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljcykKKwkJcmV0dXJu OworCiAJZHN0LT50b3RhbF9ibGtzX3JlYWQgKz0gc3JjLT50b3RhbF9ibGtzX3JlYWQ7CiAJ ZHN0LT50b3RhbF9ibGtzX2hpdCArPSBzcmMtPnRvdGFsX2Jsa3NfaGl0OwogCWRzdC0+dG90 YWxfYmxrc19kaXJ0aWVkICs9IHNyYy0+dG90YWxfYmxrc19kaXJ0aWVkOwpAQCAtMTAwOCwx OSArMTAwOSwzNCBAQCBwZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNfc3RhdHMoRXh0VmFjUmVw b3J0ICpkc3QsIEV4dFZhY1JlcG9ydCAqc3JjLAogCWlmICghYWNjdW11bGF0ZV9yZWx0eXBl X3NwZWNpZmljX2luZm8pCiAJCXJldHVybjsKIAotCWRzdC0+Ymxrc19mZXRjaGVkICs9IHNy Yy0+Ymxrc19mZXRjaGVkOwotCWRzdC0+Ymxrc19oaXQgKz0gc3JjLT5ibGtzX2hpdDsKLQot CWRzdC0+cGFnZXNfc2Nhbm5lZCArPSBzcmMtPnBhZ2VzX3NjYW5uZWQ7Ci0JZHN0LT5wYWdl c19yZW1vdmVkICs9IHNyYy0+cGFnZXNfcmVtb3ZlZDsKLQlkc3QtPnZtX25ld19mcm96ZW5f cGFnZXMgKz0gc3JjLT52bV9uZXdfZnJvemVuX3BhZ2VzOwotCWRzdC0+dm1fbmV3X3Zpc2li bGVfcGFnZXMgKz0gc3JjLT52bV9uZXdfdmlzaWJsZV9wYWdlczsKLQlkc3QtPnZtX25ld192 aXNpYmxlX2Zyb3plbl9wYWdlcyArPSBzcmMtPnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdl czsKLQlkc3QtPnR1cGxlc19kZWxldGVkICs9IHNyYy0+dHVwbGVzX2RlbGV0ZWQ7Ci0JZHN0 LT50dXBsZXNfZnJvemVuICs9IHNyYy0+dHVwbGVzX2Zyb3plbjsKLQlkc3QtPnJlY2VudGx5 X2RlYWRfdHVwbGVzICs9IHNyYy0+cmVjZW50bHlfZGVhZF90dXBsZXM7Ci0JZHN0LT5pbmRl eF92YWN1dW1fY291bnQgKz0gc3JjLT5pbmRleF92YWN1dW1fY291bnQ7Ci0JZHN0LT5taXNz ZWRfZGVhZF9wYWdlcyArPSBzcmMtPm1pc3NlZF9kZWFkX3BhZ2VzOwotCWRzdC0+bWlzc2Vk X2RlYWRfdHVwbGVzICs9IHNyYy0+bWlzc2VkX2RlYWRfdHVwbGVzOworCWlmIChkc3QtPnR5 cGUgPT0gUEdTVEFUX0VYVFZBQ19JTlZBTElEKQorCQlkc3QtPnR5cGUgPSBzcmMtPnR5cGU7 CisKKwlBc3NlcnQoc3JjLT50eXBlID09IFBHU1RBVF9FWFRWQUNfSU5WQUxJRCB8fCBzcmMt PnR5cGUgPT0gZHN0LT50eXBlKTsKKworCWlmIChkc3QtPnR5cGUgPT0gc3JjLT50eXBlKQor CXsKKwkJZHN0LT5ibGtzX2ZldGNoZWQgKz0gc3JjLT5ibGtzX2ZldGNoZWQ7CisJCWRzdC0+ Ymxrc19oaXQgKz0gc3JjLT5ibGtzX2hpdDsKIAorCQlpZiAoZHN0LT50eXBlID09IFBHU1RB VF9FWFRWQUNfVEFCTEUpCisJCXsKKwkJCWRzdC0+dGFibGUucGFnZXNfc2Nhbm5lZCArPSBz cmMtPnRhYmxlLnBhZ2VzX3NjYW5uZWQ7CisJCQlkc3QtPnRhYmxlLnBhZ2VzX3JlbW92ZWQg Kz0gc3JjLT50YWJsZS5wYWdlc19yZW1vdmVkOworCQkJZHN0LT50YWJsZS52bV9uZXdfZnJv emVuX3BhZ2VzICs9IHNyYy0+dGFibGUudm1fbmV3X2Zyb3plbl9wYWdlczsKKwkJCWRzdC0+ dGFibGUudm1fbmV3X3Zpc2libGVfcGFnZXMgKz0gc3JjLT50YWJsZS52bV9uZXdfdmlzaWJs ZV9wYWdlczsKKwkJCWRzdC0+dGFibGUudm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzICs9 IHNyYy0+dGFibGUudm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzOworCQkJZHN0LT50dXBs ZXNfZGVsZXRlZCArPSBzcmMtPnR1cGxlc19kZWxldGVkOworCQkJZHN0LT50YWJsZS50dXBs ZXNfZnJvemVuICs9IHNyYy0+dGFibGUudHVwbGVzX2Zyb3plbjsKKwkJCWRzdC0+dGFibGUu cmVjZW50bHlfZGVhZF90dXBsZXMgKz0gc3JjLT50YWJsZS5yZWNlbnRseV9kZWFkX3R1cGxl czsKKwkJCWRzdC0+dGFibGUuaW5kZXhfdmFjdXVtX2NvdW50ICs9IHNyYy0+dGFibGUuaW5k ZXhfdmFjdXVtX2NvdW50OworCQkJZHN0LT50YWJsZS5taXNzZWRfZGVhZF9wYWdlcyArPSBz cmMtPnRhYmxlLm1pc3NlZF9kZWFkX3BhZ2VzOworCQkJZHN0LT50YWJsZS5taXNzZWRfZGVh ZF90dXBsZXMgKz0gc3JjLT50YWJsZS5taXNzZWRfZGVhZF90dXBsZXM7CisJCX0KKwkJZWxz ZSBpZiAoZHN0LT50eXBlID09IFBHU1RBVF9FWFRWQUNfSU5ERVgpCisJCXsKKwkJCWRzdC0+ aW5kZXgucGFnZXNfZGVsZXRlZCArPSBzcmMtPmluZGV4LnBhZ2VzX2RlbGV0ZWQ7CisJCQlk c3QtPnR1cGxlc19kZWxldGVkICs9IHNyYy0+dHVwbGVzX2RlbGV0ZWQ7CisJCX0KKwl9CiB9 ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0 ZnVuY3MuYwppbmRleCBjNTQ0ZjZiZDczYy4uYWNkZjE2YTk4ZDUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCkBAIC0yMTc1LDE3ICsyMTc1LDE4IEBAIHBnX3N0YXRf Z2V0X3ZhY3V1bV90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJCQkJCWV4dHZhY3V1 bS0+Ymxrc19oaXQpOwogCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0t PmJsa3NfaGl0KTsKIAotCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0t PnBhZ2VzX3NjYW5uZWQpOwotCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1 dW0tPnBhZ2VzX3JlbW92ZWQpOwotCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2 YWN1dW0tPnZtX25ld19mcm96ZW5fcGFnZXMpOwotCXZhbHVlc1tpKytdID0gSW50NjRHZXRE YXR1bShleHR2YWN1dW0tPnZtX25ld192aXNpYmxlX3BhZ2VzKTsKLQl2YWx1ZXNbaSsrXSA9 IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMp OwotCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPm1pc3NlZF9kZWFk X3BhZ2VzKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50YWJs ZS5wYWdlc19zY2FubmVkKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFj dXVtLT50YWJsZS5wYWdlc19yZW1vdmVkKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0 dW0oZXh0dmFjdXVtLT50YWJsZS52bV9uZXdfZnJvemVuX3BhZ2VzKTsKKwl2YWx1ZXNbaSsr XSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50YWJsZS52bV9uZXdfdmlzaWJsZV9wYWdl cyk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dGFibGUudm1f bmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0 dW0oZXh0dmFjdXVtLT50YWJsZS5taXNzZWRfZGVhZF9wYWdlcyk7CiAJdmFsdWVzW2krK10g PSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dHVwbGVzX2RlbGV0ZWQpOwotCXZhbHVlc1tp KytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnR1cGxlc19mcm96ZW4pOwotCXZhbHVl c1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnJlY2VudGx5X2RlYWRfdHVwbGVz KTsKLQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5taXNzZWRfZGVh ZF90dXBsZXMpOwotCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPmlu ZGV4X3ZhY3V1bV9jb3VudCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZh Y3V1bS0+dGFibGUudHVwbGVzX2Zyb3plbik7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERh dHVtKGV4dHZhY3V1bS0+dGFibGUucmVjZW50bHlfZGVhZF90dXBsZXMpOworCXZhbHVlc1tp KytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxlLm1pc3NlZF9kZWFkX3R1cGxl cyk7CisKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50YWJsZS5p bmRleF92YWN1dW1fY291bnQpOwogCiAJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4 dHZhY3V1bS0+d2FsX3JlY29yZHMpOwogCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShl eHR2YWN1dW0tPndhbF9mcGkpOwpAQCAtMjIwNCw2ICsyMjA1LDExNiBAQCBwZ19zdGF0X2dl dF92YWN1dW1fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlBc3NlcnQoaSA9PSBQR19T VEFUX0dFVF9WQUNVVU1fVEFCTEVTX1NUQVRTX0NPTFMpOwogCisJLyogUmV0dXJucyB0aGUg cmVjb3JkIGFzIERhdHVtICovCisJUEdfUkVUVVJOX0RBVFVNKEhlYXBUdXBsZUdldERhdHVt KGhlYXBfZm9ybV90dXBsZSh0dXBkZXNjLCB2YWx1ZXMsIG51bGxzKSkpOworfQorCisvKgor ICogR2V0IHRoZSB2YWN1dW0gc3RhdGlzdGljcyBmb3IgdGhlIGhlYXAgdGFibGVzLgorICov CitEYXR1bQorcGdfc3RhdF9nZXRfdmFjdXVtX2luZGV4ZXMoUEdfRlVOQ1RJT05fQVJHUykK K3sKKwkjZGVmaW5lIFBHX1NUQVRfR0VUX1ZBQ1VVTV9JTkRFWF9TVEFUU19DT0xTCTE2CisK KwlPaWQJCQkJCQlyZWxpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJUGdTdGF0X1N0YXRUYWJF bnRyeSAgICAgKnRhYmVudHJ5OworCUV4dFZhY1JlcG9ydCAJCQkqZXh0dmFjdXVtOworCVR1 cGxlRGVzYwkJCQkgdHVwZGVzYzsKKwlEYXR1bQkJCQkJIHZhbHVlc1tQR19TVEFUX0dFVF9W QUNVVU1fSU5ERVhfU1RBVFNfQ09MU10gPSB7MH07CisJYm9vbAkJCQkJIG51bGxzW1BHX1NU QVRfR0VUX1ZBQ1VVTV9JTkRFWF9TVEFUU19DT0xTXSA9IHswfTsKKwljaGFyCQkJCQkgYnVm WzI1Nl07CisJaW50CQkJCQkJIGkgPSAwOworCUV4dFZhY1JlcG9ydCBhbGx6ZXJvOworCisJ LyogSW5pdGlhbGlzZSBhdHRyaWJ1dGVzIGluZm9ybWF0aW9uIGluIHRoZSB0dXBsZSBkZXNj cmlwdG9yICovCisJdHVwZGVzYyA9IENyZWF0ZVRlbXBsYXRlVHVwbGVEZXNjKFBHX1NUQVRf R0VUX1ZBQ1VVTV9JTkRFWF9TVEFUU19DT0xTKTsKKworCVR1cGxlRGVzY0luaXRFbnRyeSh0 dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAicmVsaWQiLAorCQkJCQkgICBJTlQ0T0lELCAt MSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ks ICJ0b3RhbF8gYmxrc19yZWFkIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxl RGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAidG90YWxfYmxrc19o aXQiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1 cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ0b3RhbF9ibGtzX2RpcnRpZWQiLAorCQkJCQkg ICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRy TnVtYmVyKSArK2ksICJ0b3RhbF9ibGtzX3dyaXR0ZW4iLAorCQkJCQkgICBJTlQ4T0lELCAt MSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ks ICJyZWxfYmxrc19yZWFkIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVz Y0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAicmVsX2Jsa3NfaGl0IiwK KwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNj LCAoQXR0ck51bWJlcikgKytpLCAicGFnZXNfZGVsZXRlZCIsCisJCQkJCSAgIElOVDhPSUQs IC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsr aSwgInR1cGxlc19kZWxldGVkIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxl RGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAid2FsX3JlY29yZHMi LAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRl c2MsIChBdHRyTnVtYmVyKSArK2ksICJ3YWxfZnBpIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEs IDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAi d2FsX2J5dGVzIiwKKwkJCQkJICAgTlVNRVJJQ09JRCwgLTEsIDApOworCisJVHVwbGVEZXNj SW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJibGtfcmVhZF90aW1lIiwK KwkJCQkJICAgRkxPQVQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRl c2MsIChBdHRyTnVtYmVyKSArK2ksICJibGtfd3JpdGVfdGltZSIsCisJCQkJCSAgIEZMT0FU OE9JRCwgLTEsIDApOworCisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVt YmVyKSArK2ksICJkZWxheV90aW1lIiwKKwkJCQkJICAgRkxPQVQ4T0lELCAtMSwgMCk7CisJ VHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ0b3RhbF90 aW1lIiwKKwkJCQkJICAgRkxPQVQ4T0lELCAtMSwgMCk7CisKKwlBc3NlcnQoaSA9PSBQR19T VEFUX0dFVF9WQUNVVU1fSU5ERVhfU1RBVFNfQ09MUyk7CisKKwlCbGVzc1R1cGxlRGVzYyh0 dXBkZXNjKTsKKworCXRhYmVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfdGFiZW50cnkocmVs aWQpOworCisJaWYgKHRhYmVudHJ5ID09IE5VTEwpCisJeworCQkvKiBJZiB0aGUgc3Vic2Ny aXB0aW9uIGlzIG5vdCBmb3VuZCwgaW5pdGlhbGlzZSBpdHMgc3RhdHMgKi8KKwkJbWVtc2V0 KCZhbGx6ZXJvLCAwLCBzaXplb2YoRXh0VmFjUmVwb3J0KSk7CisJCWV4dHZhY3V1bSA9ICZh bGx6ZXJvOworCX0KKwllbHNlCisJeworCQlleHR2YWN1dW0gPSAmKHRhYmVudHJ5LT52YWN1 dW1fZXh0KTsKKwl9CisKKwlpID0gMDsKKworCXZhbHVlc1tpKytdID0gT2JqZWN0SWRHZXRE YXR1bShyZWxpZCk7CisKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVt LT50b3RhbF9ibGtzX3JlYWQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2 YWN1dW0tPnRvdGFsX2Jsa3NfaGl0KTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0o ZXh0dmFjdXVtLT50b3RhbF9ibGtzX2RpcnRpZWQpOworCXZhbHVlc1tpKytdID0gSW50NjRH ZXREYXR1bShleHR2YWN1dW0tPnRvdGFsX2Jsa3Nfd3JpdHRlbik7CisKKwl2YWx1ZXNbaSsr XSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5ibGtzX2ZldGNoZWQgLQorCQkJCQkJCQkJ ZXh0dmFjdXVtLT5ibGtzX2hpdCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4 dHZhY3V1bS0+Ymxrc19oaXQpOworCisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4 dHZhY3V1bS0+aW5kZXgucGFnZXNfZGVsZXRlZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdl dERhdHVtKGV4dHZhY3V1bS0+dHVwbGVzX2RlbGV0ZWQpOworCisJdmFsdWVzW2krK10gPSBJ bnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+d2FsX3JlY29yZHMpOworCXZhbHVlc1tpKytdID0g SW50NjRHZXREYXR1bShleHR2YWN1dW0tPndhbF9mcGkpOworCisJLyogQ29udmVydCB0byBu dW1lcmljLCBsaWtlIHBnX3N0YXRfc3RhdGVtZW50cyAqLworCXNucHJpbnRmKGJ1Ziwgc2l6 ZW9mIGJ1ZiwgVUlOVDY0X0ZPUk1BVCwgZXh0dmFjdXVtLT53YWxfYnl0ZXMpOworCXZhbHVl c1tpKytdID0gRGlyZWN0RnVuY3Rpb25DYWxsMyhudW1lcmljX2luLAorCQkJCQkJCQkJICBD U3RyaW5nR2V0RGF0dW0oYnVmKSwKKwkJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bSgwKSwK KwkJCQkJCQkJCSAgSW50MzJHZXREYXR1bSgtMSkpOworCisJdmFsdWVzW2krK10gPSBGbG9h dDhHZXREYXR1bShleHR2YWN1dW0tPmJsa19yZWFkX3RpbWUpOworCXZhbHVlc1tpKytdID0g RmxvYXQ4R2V0RGF0dW0oZXh0dmFjdXVtLT5ibGtfd3JpdGVfdGltZSk7CisJdmFsdWVzW2kr K10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPmRlbGF5X3RpbWUpOworCXZhbHVlc1tp KytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFjdXVtLT50b3RhbF90aW1lKTsKKworCUFzc2Vy dChpID09IFBHX1NUQVRfR0VUX1ZBQ1VVTV9JTkRFWF9TVEFUU19DT0xTKTsKKwogCS8qIFJl dHVybnMgdGhlIHJlY29yZCBhcyBEYXR1bSAqLwogCVBHX1JFVFVSTl9EQVRVTShIZWFwVHVw bGVHZXREYXR1bShoZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBudWxscykpKTsK IH0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3Vj X3RhYmxlcy5jCmluZGV4IGJkZGZhYmE1YjA5Li40MzBkNzNjYzNkZiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTE0ODAsNyArMTQ4MCw3IEBAIHN0cnVjdCBj b25maWdfYm9vbCBDb25maWd1cmVOYW1lc0Jvb2xbXSA9CiAJfSwKIAl7CiAJCXsidHJhY2tf dmFjdXVtX3N0YXRpc3RpY3MiLCBQR0NfU1VTRVQsIFNUQVRTX0NVTVVMQVRJVkUsCi0JCQln ZXR0ZXh0X25vb3AoIkNvbGxlY3RzIHZhY3V1bSBzdGF0aXN0aWNzIGZvciB0YWJsZSByZWxh dGlvbnMuIiksCisJCQlnZXR0ZXh0X25vb3AoIkNvbGxlY3RzIHZhY3V1bSBzdGF0aXN0aWNz IGZvciByZWxhdGlvbnMuIiksCiAJCQlOVUxMCiAJCX0sCiAJCSZwZ3N0YXRfdHJhY2tfdmFj dXVtX3N0YXRpc3RpY3MsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3By b2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCBlZmE2MGZh M2JjNy4uNmUyOTUzZTlkZDUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTI0 MzQsNCArMTI0MzQsMTMgQEAKICAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfcmV2X2FsbF9m cm96ZW5fcGFnZXMnLCBwcm92b2xhdGlsZSA9PiAncycsCiAgIHByb3BhcmFsbGVsID0+ICdy JywgcHJvcmV0dHlwZSA9PiAnaW50OCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAogICBwcm9z cmMgPT4gJ3BnX3N0YXRfZ2V0X3Jldl9hbGxfZnJvemVuX3BhZ2VzJyB9LAoreyBvaWQgPT4g JzgwMDQnLAorICBkZXNjciA9PiAncGdfc3RhdF9nZXRfdmFjdXVtX2luZGV4ZXMgcmV0dXJu IHN0YXRzIHZhbHVlcycsCisgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRl eGVzJywgcHJvcm93cyA9PiAxMDAwLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUg PT4gJ3JlY29yZCcscHJvaXNzdHJpY3QgPT4gJ2YnLAorICBwcm9yZXRzZXQgPT4gJ3QnLAor ICBwcm9hcmd0eXBlcyA9PiAnb2lkJywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3tvaWQsb2lk LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsbnVt ZXJpYyxmbG9hdDgsZmxvYXQ4LGZsb2F0OCxmbG9hdDh9JywKKyAgcHJvYXJnbW9kZXMgPT4g J3tpLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG99JywKKyAgcHJvYXJnbmFtZXMg PT4gJ3tyZWxvaWQscmVsaWQsdG90YWxfYmxrc19yZWFkLHRvdGFsX2Jsa3NfaGl0LHRvdGFs X2Jsa3NfZGlydGllZCx0b3RhbF9ibGtzX3dyaXR0ZW4scmVsX2Jsa3NfcmVhZCxyZWxfYmxr c19oaXQscGFnZXNfZGVsZXRlZCx0dXBsZXNfZGVsZXRlZCx3YWxfcmVjb3Jkcyx3YWxfZnBp LHdhbF9ieXRlcyxibGtfcmVhZF90aW1lLGJsa193cml0ZV90aW1lLGRlbGF5X3RpbWUsdG90 YWxfdGltZX0nLAorICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRleGVzJyB9 CiBdCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaCBiL3NyYy9p bmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCmluZGV4IDA3YjI4YjE1ZDlmLi45MzE4MmUwYThh NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgKKysrIGIvc3Jj L2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRl ICJzdG9yYWdlL2J1Zi5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG9jay5oIgogI2luY2x1ZGUg InV0aWxzL3JlbGNhY2hlLmgiCisjaW5jbHVkZSAicGdzdGF0LmgiCiAKIC8qCiAgKiBGbGFn cyBmb3IgYW1wYXJhbGxlbHZhY3V1bW9wdGlvbnMgdG8gY29udHJvbCB0aGUgcGFydGljaXBh dGlvbiBvZiBidWxrZGVsZXRlCkBAIC0yODgsNiArMjg5LDI2IEBAIHR5cGVkZWYgc3RydWN0 IFZhY0RlYWRJdGVtc0luZm8KIAlpbnQ2NAkJbnVtX2l0ZW1zOwkJLyogY3VycmVudCAjIG9m IGVudHJpZXMgKi8KIH0gVmFjRGVhZEl0ZW1zSW5mbzsKIAorLyoKKyAqIENvdW50ZXJzIGFu ZCB1c2FnZSBkYXRhIGZvciBleHRlbmRlZCBzdGF0cyB0cmFja2luZy4KKyAqLwordHlwZWRl ZiBzdHJ1Y3QgTFZFeHRTdGF0Q291bnRlcnMKK3sKKwlUaW1lc3RhbXBUeiBzdGFydHRpbWU7 CisJV2FsVXNhZ2UJd2FsdXNhZ2U7CisJQnVmZmVyVXNhZ2UgYnVmdXNhZ2U7CisJZG91Ymxl CQlWYWN1dW1EZWxheVRpbWU7CisJUGdTdGF0X0NvdW50ZXIgYmxvY2tzX2ZldGNoZWQ7CisJ UGdTdGF0X0NvdW50ZXIgYmxvY2tzX2hpdDsKK30gTFZFeHRTdGF0Q291bnRlcnM7CisKK3R5 cGVkZWYgc3RydWN0IExWRXh0U3RhdENvdW50ZXJzSWR4Cit7CisJTFZFeHRTdGF0Q291bnRl cnMgY29tbW9uOworCWludDY0CQlwYWdlc19kZWxldGVkOworCWludDY0CQl0dXBsZXNfcmVt b3ZlZDsKK30gTFZFeHRTdGF0Q291bnRlcnNJZHg7CisKIC8qIEdVQyBwYXJhbWV0ZXJzICov CiBleHRlcm4gUEdETExJTVBPUlQgaW50IGRlZmF1bHRfc3RhdGlzdGljc190YXJnZXQ7CS8q IFBHRExMSU1QT1JUIGZvciBQb3N0R0lTICovCiBleHRlcm4gUEdETExJTVBPUlQgaW50IHZh Y3V1bV9mcmVlemVfbWluX2FnZTsKQEAgLTM4Niw0ICs0MDcsOSBAQCBleHRlcm4gZG91Ymxl IGFubF9yYW5kb21fZnJhY3Qodm9pZCk7CiBleHRlcm4gZG91YmxlIGFubF9pbml0X3NlbGVj dGlvbl9zdGF0ZShpbnQgbik7CiBleHRlcm4gZG91YmxlIGFubF9nZXRfbmV4dF9TKGRvdWJs ZSB0LCBpbnQgbiwgZG91YmxlICpzdGF0ZXB0cik7CiAKK2V4dGVybiB2b2lkIGV4dHZhY19z dGF0c19zdGFydF9pZHgoUmVsYXRpb24gcmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKnN0 YXRzLAorCQkJCQkgICBMVkV4dFN0YXRDb3VudGVyc0lkeCAqY291bnRlcnMsIEJ1ZmZlclVz YWdlICpidWZmdXNhZ2UsIFdhbFVzYWdlICp3YWx1c2FnZSk7CitleHRlcm4gdm9pZCBleHR2 YWNfc3RhdHNfZW5kX2lkeChSZWxhdGlvbiByZWwsIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAq c3RhdHMsCisJCQkJCSBMVkV4dFN0YXRDb3VudGVyc0lkeCAqY291bnRlcnMsIEV4dFZhY1Jl cG9ydCAqcmVwb3J0LAorCQkJCQkgQnVmZmVyVXNhZ2UgKmJ1ZmZ1c2FnZSwgV2FsVXNhZ2Ug KndhbHVzYWdlKTsKICNlbmRpZgkJCQkJCQkvKiBWQUNVVU1fSCAqLwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvcGdzdGF0LmggYi9zcmMvaW5jbHVkZS9wZ3N0YXQuaAppbmRleCBhMGMz MjUzOTE2YS4uOWZmNDE1MTdlNGYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5o CisrKyBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCkBAIC0xNjYsMTEgKzE2NiwxOSBAQCB0eXBl ZGVmIHN0cnVjdCBQZ1N0YXRfQmFja2VuZFN1YkVudHJ5CiAJUGdTdGF0X0NvdW50ZXIgY29u ZmxpY3RfY291bnRbQ09ORkxJQ1RfTlVNX1RZUEVTXTsKIH0gUGdTdGF0X0JhY2tlbmRTdWJF bnRyeTsKIAorLyogVHlwZSBvZiBFeHRWYWNSZXBvcnQgKi8KK3R5cGVkZWYgZW51bSBFeHRW YWNSZXBvcnRUeXBlCit7CisJUEdTVEFUX0VYVFZBQ19JTlZBTElEID0gMCwKKwlQR1NUQVRf RVhUVkFDX1RBQkxFID0gMSwKKwlQR1NUQVRfRVhUVkFDX0lOREVYID0gMgorfSBFeHRWYWNS ZXBvcnRUeXBlOworCiAvKiAtLS0tLS0tLS0tCiAgKgogICogRXh0VmFjUmVwb3J0CiAgKgot ICogQWRkaXRpb25hbCBzdGF0aXN0aWNzIG9mIHZhY3V1bSBwcm9jZXNzaW5nIG92ZXIgYSBo ZWFwIHJlbGF0aW9uLgorICogQWRkaXRpb25hbCBzdGF0aXN0aWNzIG9mIHZhY3V1bSBwcm9j ZXNzaW5nIG92ZXIgYSByZWxhdGlvbi4KICAqIHBhZ2VzX3JlbW92ZWQgaXMgdGhlIGFtb3Vu dCBieSB3aGljaCB0aGUgcGh5c2ljYWxseSBzaHJhbmssCiAgKiBpZiBhbnkgKGllIHRoZSBj aGFuZ2UgaW4gaXRzIHRvdGFsIHNpemUgb24gZGlzaykKICAqIHBhZ2VzX2RlbGV0ZWQgcmVm ZXIgdG8gZnJlZSBzcGFjZSB3aXRoaW4gdGhlIGluZGV4IGZpbGUKQEAgLTE5OSwxNyArMjA3 LDQzIEBAIHR5cGVkZWYgc3RydWN0IEV4dFZhY1JlcG9ydAogCWRvdWJsZQkJZGVsYXlfdGlt ZTsJCS8qIGhvdyBsb25nIHZhY3V1bSBzbGVwdCBpbiB2YWN1dW0gZGVsYXkgcG9pbnQsIGlu IG1zZWMgKi8KIAlkb3VibGUJCXRvdGFsX3RpbWU7CQkvKiB0b3RhbCB0aW1lIG9mIGEgdmFj dXVtIG9wZXJhdGlvbiwgaW4gbXNlYyAqLwogCi0JaW50NjQJCXBhZ2VzX3NjYW5uZWQ7CQkv KiBoZWFwIHBhZ2VzIGV4YW1pbmVkIChub3Qgc2tpcHBlZCBieSBWTSkgKi8KLQlpbnQ2NAkJ cGFnZXNfcmVtb3ZlZDsJCS8qIGhlYXAgcGFnZXMgcmVtb3ZlZCBieSB2YWN1dW0gInRydW5j YXRpb24iICovCi0JaW50NjQJCXZtX25ld19mcm96ZW5fcGFnZXM7CQkvKiBwYWdlcyBtYXJr ZWQgaW4gVk0gYXMgZnJvemVuICovCi0JaW50NjQJCXZtX25ld192aXNpYmxlX3BhZ2VzOwkv KiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMgYWxsLXZpc2libGUgKi8KLQlpbnQ2NAkJdm1fbmV3 X3Zpc2libGVfZnJvemVuX3BhZ2VzOwkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMgYWxsLXZp c2libGUgYW5kIGZyb3plbiAqLwotCWludDY0CQltaXNzZWRfZGVhZF90dXBsZXM7CQkvKiB0 dXBsZXMgbm90IHBydW5lZCBieSB2YWN1dW0gZHVlIHRvIGZhaWx1cmUgdG8gZ2V0IGEgY2xl YW51cCBsb2NrICovCi0JaW50NjQJCW1pc3NlZF9kZWFkX3BhZ2VzOwkJLyogcGFnZXMgd2l0 aCBtaXNzZWQgZGVhZCB0dXBsZXMgKi8KIAlpbnQ2NAkJdHVwbGVzX2RlbGV0ZWQ7CQkvKiB0 dXBsZXMgZGVsZXRlZCBieSB2YWN1dW0gKi8KLQlpbnQ2NAkJdHVwbGVzX2Zyb3plbjsJCS8q IHR1cGxlcyBmcm96ZW4gdXAgYnkgdmFjdXVtICovCi0JaW50NjQJCXJlY2VudGx5X2RlYWRf dHVwbGVzOwkvKiBkZWxldGVkIHR1cGxlcyB0aGF0IGFyZSBzdGlsbCB2aXNpYmxlIHRvIHNv bWUgdHJhbnNhY3Rpb24gKi8KLQlpbnQ2NAkJaW5kZXhfdmFjdXVtX2NvdW50OwkvKiBudW1i ZXIgb2YgaW5kZXggdmFjdXVtaW5ncyAqLworCisJRXh0VmFjUmVwb3J0VHlwZSB0eXBlOwkJ LyogaGVhcCwgaW5kZXgsIGV0Yy4gKi8KKworCS8qIC0tLS0tLS0tLS0KKwkgKgorCSAqIFRo ZXJlIGFyZSBzZXBhcmF0ZSBtZXRyaWNzIG9mIHN0YXRpc3RpYyBmb3IgdGFibGVzIGFuZCBp bmRleGVzLAorCSAqIHdoaWNoIGNvbGxlY3QgZHVyaW5nIHZhY3V1bS4KKwkgKiBUaGUgdW5p b24gb3BlcmF0b3IgYWxsb3dzIHRvIGNvbWJpbmUgdGhlc2Ugc3RhdGlzdGljcworCSAqIHNv IHRoYXQgZWFjaCBtZXRyaWMgaXMgYXNzaWduZWQgdG8gYSBzcGVjaWZpYyBjbGFzcyBvZiBj b2xsZWN0ZWQgc3RhdGlzdGljcy4KKwkgKiBTdWNoIGEgY29tYmluZWQgc3RydWN0dXJlIHdh cyBjYWxsZWQgcGVyX3R5cGVfc3RhdHMuCisJICogVGhlIG5hbWUgb2YgdGhlIHN0cnVjdHVy ZSBpdHNlbGYgaXMgbm90IHVzZWQgYW55d2hlcmUsCisJICogaXQgZXhpc3RzIG9ubHkgZm9y IHVuZGVyc3RhbmRpbmcgdGhlIGNvZGUuCisJICogLS0tLS0tLS0tLQorCSovCisJdW5pb24K Kwl7CisJCXN0cnVjdAorCQl7CisJCQlpbnQ2NAkJcGFnZXNfc2Nhbm5lZDsJCS8qIGhlYXAg cGFnZXMgZXhhbWluZWQgKG5vdCBza2lwcGVkIGJ5IFZNKSAqLworCQkJaW50NjQJCXBhZ2Vz X3JlbW92ZWQ7CQkvKiBoZWFwIHBhZ2VzIHJlbW92ZWQgYnkgdmFjdXVtICJ0cnVuY2F0aW9u IiAqLworCQkJaW50NjQJCXBhZ2VzX2Zyb3plbjsJCS8qIHBhZ2VzIG1hcmtlZCBpbiBWTSBh cyBmcm96ZW4gKi8KKwkJCWludDY0CQlwYWdlc19hbGxfdmlzaWJsZTsJLyogcGFnZXMgbWFy a2VkIGluIFZNIGFzIGFsbC12aXNpYmxlICovCisJCQlpbnQ2NAkJdHVwbGVzX2Zyb3plbjsJ CS8qIHR1cGxlcyBmcm96ZW4gdXAgYnkgdmFjdXVtICovCisJCQlpbnQ2NAkJcmVjZW50bHlf ZGVhZF90dXBsZXM7CS8qIGRlbGV0ZWQgdHVwbGVzIHRoYXQgYXJlIHN0aWxsIHZpc2libGUg dG8gc29tZSB0cmFuc2FjdGlvbiAqLworCQkJaW50NjQJCXZtX25ld19mcm96ZW5fcGFnZXM7 CQkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMgZnJvemVuICovCisJCQlpbnQ2NAkJdm1fbmV3 X3Zpc2libGVfcGFnZXM7CS8qIHBhZ2VzIG1hcmtlZCBpbiBWTSBhcyBhbGwtdmlzaWJsZSAq LworCQkJaW50NjQJCXZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlczsJLyogcGFnZXMgbWFy a2VkIGluIFZNIGFzIGFsbC12aXNpYmxlIGFuZCBmcm96ZW4gKi8KKwkJCWludDY0CQltaXNz ZWRfZGVhZF90dXBsZXM7CQkvKiB0dXBsZXMgbm90IHBydW5lZCBieSB2YWN1dW0gZHVlIHRv IGZhaWx1cmUgdG8gZ2V0IGEgY2xlYW51cCBsb2NrICovCisJCQlpbnQ2NAkJbWlzc2VkX2Rl YWRfcGFnZXM7CQkvKiBwYWdlcyB3aXRoIG1pc3NlZCBkZWFkIHR1cGxlcyAqLworCQkJaW50 NjQJCWluZGV4X3ZhY3V1bV9jb3VudDsJLyogbnVtYmVyIG9mIGluZGV4IHZhY3V1bWluZ3Mg Ki8KKwkJfQkJCXRhYmxlOworCQlzdHJ1Y3QKKwkJeworCQkJaW50NjQJCXBhZ2VzX2RlbGV0 ZWQ7CQkvKiBudW1iZXIgb2YgcGFnZXMgZGVsZXRlZCBieSB2YWN1dW0gKi8KKwkJfQkJCWlu ZGV4OworCX0gLyogcGVyX3R5cGVfc3RhdHMgKi87CiB9IEV4dFZhY1JlcG9ydDsKIAogLyog LS0tLS0tLS0tLQpAQCAtNzAyLDcgKzczNiw4IEBAIGV4dGVybiBQZ1N0YXRfRnVuY3Rpb25D b3VudHMgKmZpbmRfZnVuY3N0YXRfZW50cnkoT2lkIGZ1bmNfaWQpOwogZXh0ZXJuIHZvaWQg cGdzdGF0X2NyZWF0ZV9yZWxhdGlvbihSZWxhdGlvbiByZWwpOwogZXh0ZXJuIHZvaWQgcGdz dGF0X2Ryb3BfcmVsYXRpb24oUmVsYXRpb24gcmVsKTsKIGV4dGVybiB2b2lkIHBnc3RhdF9j b3B5X3JlbGF0aW9uX3N0YXRzKFJlbGF0aW9uIGRzdCwgUmVsYXRpb24gc3JjKTsKLQorZXh0 ZXJuIHZvaWQgcGdzdGF0X2FjY3VtdWxhdGVfZXh0dmFjX3N0YXRzKEV4dFZhY1JlcG9ydCAq ZHN0LCBFeHRWYWNSZXBvcnQgKnNyYywKKwkJCQkJCQkgICBib29sIGFjY3VtdWxhdGVfcmVs dHlwZV9zcGVjaWZpY19pbmZvKTsKIGV4dGVybiB2b2lkIHBnc3RhdF9pbml0X3JlbGF0aW9u KFJlbGF0aW9uIHJlbCk7CiBleHRlcm4gdm9pZCBwZ3N0YXRfYXNzb2NfcmVsYXRpb24oUmVs YXRpb24gcmVsKTsKIGV4dGVybiB2b2lkIHBnc3RhdF91bmxpbmtfcmVsYXRpb24oUmVsYXRp b24gcmVsKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3Bnc3RhdF9pbnRlcm5h bC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0X2ludGVybmFsLmgKaW5kZXggZDkzMjhi ZTQ4YTcuLjhiMjk2YzYxY2Y3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9wZ3N0 YXRfaW50ZXJuYWwuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9wZ3N0YXRfaW50ZXJuYWwu aApAQCAtNTk1LDcgKzU5NSw2IEBAIGV4dGVybiBQZ1N0YXRfRW50cnlSZWYgKnBnc3RhdF9m ZXRjaF9wZW5kaW5nX2VudHJ5KFBnU3RhdF9LaW5kIGtpbmQsCiBleHRlcm4gdm9pZCAqcGdz dGF0X2ZldGNoX2VudHJ5KFBnU3RhdF9LaW5kIGtpbmQsIE9pZCBkYm9pZCwgdWludDY0IG9i amlkKTsKIGV4dGVybiB2b2lkIHBnc3RhdF9zbmFwc2hvdF9maXhlZChQZ1N0YXRfS2luZCBr aW5kKTsKIAotZXh0ZXJuIHZvaWQgcGdzdGF0X3VwZGF0ZV9zbmFwc2hvdChQZ1N0YXRfS2lu ZCBraW5kKTsKIC8qCiAgKiBGdW5jdGlvbnMgaW4gcGdzdGF0X2FyY2hpdmVyLmMKICAqLwpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAppbmRleCBkZDc5NWQ1OGRmYy4uMmJl Y2M3ZjM4ODUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMu b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0yMjQ1 LDYgKzIyNDUsMjggQEAgcGdfc3RhdF91c2VyX3RhYmxlc3wgU0VMRUNUIHJlbGlkLAogICAg IHJldl9hbGxfdmlzaWJsZV9wYWdlcwogICAgRlJPTSBwZ19zdGF0X2FsbF90YWJsZXMKICAg V0hFUkUgKChzY2hlbWFuYW1lIDw+IEFMTCAoQVJSQVlbJ3BnX2NhdGFsb2cnOjpuYW1lLCAn aW5mb3JtYXRpb25fc2NoZW1hJzo6bmFtZV0pKSBBTkQgKHNjaGVtYW5hbWUgIX4gJ15wZ190 b2FzdCc6OnRleHQpKTsKK3BnX3N0YXRfdmFjdXVtX2luZGV4ZXN8IFNFTEVDVCByZWwub2lk IEFTIHJlbGlkLAorICAgIG5zLm5zcG5hbWUgQVMgc2NoZW1hLAorICAgIHJlbC5yZWxuYW1l LAorICAgIHN0YXRzLnRvdGFsX2Jsa3NfcmVhZCwKKyAgICBzdGF0cy50b3RhbF9ibGtzX2hp dCwKKyAgICBzdGF0cy50b3RhbF9ibGtzX2RpcnRpZWQsCisgICAgc3RhdHMudG90YWxfYmxr c193cml0dGVuLAorICAgIHN0YXRzLnJlbF9ibGtzX3JlYWQsCisgICAgc3RhdHMucmVsX2Js a3NfaGl0LAorICAgIHN0YXRzLnBhZ2VzX2RlbGV0ZWQsCisgICAgc3RhdHMudHVwbGVzX2Rl bGV0ZWQsCisgICAgc3RhdHMud2FsX3JlY29yZHMsCisgICAgc3RhdHMud2FsX2ZwaSwKKyAg ICBzdGF0cy53YWxfYnl0ZXMsCisgICAgc3RhdHMuYmxrX3JlYWRfdGltZSwKKyAgICBzdGF0 cy5ibGtfd3JpdGVfdGltZSwKKyAgICBzdGF0cy5kZWxheV90aW1lLAorICAgIHN0YXRzLnRv dGFsX3RpbWUKKyAgIEZST00gKHBnX2NsYXNzIHJlbAorICAgICBKT0lOIHBnX25hbWVzcGFj ZSBucyBPTiAoKG5zLm9pZCA9IHJlbC5yZWxuYW1lc3BhY2UpKSksCisgICAgTEFURVJBTCBw Z19zdGF0X2dldF92YWN1dW1faW5kZXhlcyhyZWwub2lkKSBzdGF0cyhyZWxpZCwgdG90YWxf Ymxrc19yZWFkLCB0b3RhbF9ibGtzX2hpdCwgdG90YWxfYmxrc19kaXJ0aWVkLCB0b3RhbF9i bGtzX3dyaXR0ZW4sIHJlbF9ibGtzX3JlYWQsIHJlbF9ibGtzX2hpdCwgcGFnZXNfZGVsZXRl ZCwgdHVwbGVzX2RlbGV0ZWQsIHdhbF9yZWNvcmRzLCB3YWxfZnBpLCB3YWxfYnl0ZXMsIGJs a19yZWFkX3RpbWUsIGJsa193cml0ZV90aW1lLCBkZWxheV90aW1lLCB0b3RhbF90aW1lKQor ICBXSEVSRSAocmVsLnJlbGtpbmQgPSAnaSc6OiJjaGFyIik7CiBwZ19zdGF0X3ZhY3V1bV90 YWJsZXN8IFNFTEVDVCBucy5uc3BuYW1lIEFTIHNjaGVtYSwKICAgICByZWwucmVsbmFtZSwK ICAgICBzdGF0cy5yZWxpZCwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvdmFjdXVtX2luZGV4X3N0YXRpc3RpY3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC92YWN1dW1faW5kZXhfc3RhdGlzdGljcy5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLmI4NDBhNmVkNGZlCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC92YWN1dW1faW5kZXhfc3RhdGlzdGljcy5vdXQKQEAg LTAsMCArMSwxODMgQEAKKy0tCistLSBUZXN0IGN1bXVsYXRpdmUgdmFjdXVtIHN0YXRzIHN5 c3RlbQorLS0KKy0tIENoZWNrIHRoZSB3YWxsIHN0YXRpc3RpY3MgY29sbGVjdGVkIGR1cmlu ZyB2YWN1dW0gb3BlcmF0aW9uOgorLS0gbnVtYmVyIG9mIGZyb3plbiBhbmQgdmlzaWJsZSBw YWdlcyBzZXQgYnkgdmFjdXVtOworLS0gbnVtYmVyIG9mIGZyb3plbiBhbmQgdmlzaWJsZSBw YWdlcyByZW1vdmVkIGJ5IGJhY2tlbmQuCistLSBTdGF0aXN0aWMgd2FsX2ZwaSBpcyBub3Qg ZGlzcGxheWVkIGluIHRoaXMgdGVzdCBiZWNhdXNlIGl0cyBiZWhhdmlvciBpcyB1bnN0YWJs ZS4KKy0tCistLSBjb25kaXRpbyBzaW5lIHF1YSBub24KK1NIT1cgdHJhY2tfY291bnRzOyAg LS0gbXVzdCBiZSBvbgorIHRyYWNrX2NvdW50cyAKKy0tLS0tLS0tLS0tLS0tCisgb24KKygx IHJvdykKKworXHNldCBzYW1wbGVfc2l6ZSAxMDAwMAorLS0gbm90IGVuYWJsZWQgYnkgZGVm YXVsdCwgYnV0IHdlIHdhbnQgdG8gdGVzdCBpdC4uLgorU0VUIHRyYWNrX2Z1bmN0aW9ucyBU TyAnYWxsJzsKKy0tIFRlc3QgdGhhdCB2YWN1dW0gc3RhdGlzdGljcyB3aWxsIGJlIGVtcHR5 IHdoZW4gcGFyYW1ldGVyIGlzIG9mZi4KK1NFVCB0cmFja192YWN1dW1fc3RhdGlzdGljcyBU TyAnb2ZmJzsKK0NSRUFURSBUQUJMRSB2ZXN0YXQgKHggaW50KSBXSVRIIChhdXRvdmFjdXVt X2VuYWJsZWQgPSBvZmYsIGZpbGxmYWN0b3IgPSAxMCk7CitJTlNFUlQgSU5UTyB2ZXN0YXQg U0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw6c2FtcGxlX3NpemUpIGFzIHg7CitB TkFMWVpFIHZlc3RhdDsKK0RFTEVURSBGUk9NIHZlc3RhdCBXSEVSRSB4ICUgMiA9IDA7CitW QUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgpIHZlc3RhdDsKKy0t IE11c3QgYmUgZW1wdHkuCitTRUxFQ1QgKgorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVz IHZ0CitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdCc7CisgcmVsaWQgfCBzY2hlbWEgfCBy ZWxuYW1lIHwgdG90YWxfYmxrc19yZWFkIHwgdG90YWxfYmxrc19oaXQgfCB0b3RhbF9ibGtz X2RpcnRpZWQgfCB0b3RhbF9ibGtzX3dyaXR0ZW4gfCByZWxfYmxrc19yZWFkIHwgcmVsX2Js a3NfaGl0IHwgcGFnZXNfZGVsZXRlZCB8IHR1cGxlc19kZWxldGVkIHwgd2FsX3JlY29yZHMg fCB3YWxfZnBpIHwgd2FsX2J5dGVzIHwgYmxrX3JlYWRfdGltZSB8IGJsa193cml0ZV90aW1l IHwgZGVsYXlfdGltZSB8IHRvdGFsX3RpbWUgCistLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCitSRVNFVCB0cmFja192YWN1dW1f c3RhdGlzdGljczsKK0RST1AgVEFCTEUgdmVzdGF0IENBU0NBREU7CitTSE9XIHRyYWNrX3Zh Y3V1bV9zdGF0aXN0aWNzOyAgLS0gbXVzdCBiZSBvbgorIHRyYWNrX3ZhY3V1bV9zdGF0aXN0 aWNzIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIG9uCisoMSByb3cpCisKKy0tIGVu c3VyZSBwZW5kaW5nIHN0YXRzIGFyZSBmbHVzaGVkCitTRUxFQ1QgcGdfc3RhdF9mb3JjZV9u ZXh0X2ZsdXNoKCk7CisgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworXHNldCBzYW1wbGVfc2l6ZSAxMDAwMAor U0VUIHZhY3V1bV9mcmVlemVfbWluX2FnZSA9IDA7CitTRVQgdmFjdXVtX2ZyZWV6ZV90YWJs ZV9hZ2UgPSAwOworLS1TRVQgc3RhdHNfZmV0Y2hfY29uc2lzdGVuY3kgPSBzbmFwc2hvdDsK K0NSRUFURSBUQUJMRSB2ZXN0YXQgKHggaW50IHByaW1hcnkga2V5KSBXSVRIIChhdXRvdmFj dXVtX2VuYWJsZWQgPSBvZmYsIGZpbGxmYWN0b3IgPSAxMCk7CitJTlNFUlQgSU5UTyB2ZXN0 YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw6c2FtcGxlX3NpemUpIGFzIHg7 CitBTkFMWVpFIHZlc3RhdDsKK1NFTEVDVCBvaWQgQVMgaW9pZCBmcm9tIHBnX2NsYXNzIHdo ZXJlIHJlbG5hbWUgPSAndmVzdGF0X3BrZXknIFxnc2V0CitERUxFVEUgRlJPTSB2ZXN0YXQg V0hFUkUgeCAlIDIgPSAwOworLS0gQmVmb3JlIHRoZSBmaXJzdCB2YWN1dW0gZXhlY3V0aW9u IGV4dGVuZGVkIHN0YXRzIHZpZXcgaXMgZW1wdHkuCitTRUxFQ1QgdnQucmVsbmFtZSxyZWxw YWdlcyxwYWdlc19kZWxldGVkLHR1cGxlc19kZWxldGVkCitGUk9NIHBnX3N0YXRfdmFjdXVt X2luZGV4ZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0X3Br ZXknIEFORCB2dC5yZWxpZCA9IGMub2lkOworICAgcmVsbmFtZSAgIHwgcmVscGFnZXMgfCBw YWdlc19kZWxldGVkIHwgdHVwbGVzX2RlbGV0ZWQgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyB2ZXN0YXRfcGtleSB8ICAg ICAgIDMwIHwgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAwCisoMSByb3cpCisKK1NF TEVDVCByZWxwYWdlcyBBUyBpcnAKK0ZST00gcGdfY2xhc3MgYworV0hFUkUgcmVsbmFtZSA9 ICd2ZXN0YXRfcGtleScgXGdzZXQKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdF X0xJTUlUIDEyOCwgSU5ERVhfQ0xFQU5VUCBPTikgdmVzdGF0OworLS0gaXQgaXMgbmVjZXNz YXJ5IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKy0tIFRoZSB0 YWJsZSBhbmQgaW5kZXggZXh0ZW5kZWQgdmFjdXVtIHN0YXRpc3RpY3Mgc2hvdWxkIHNob3cg dXMgdGhhdAorLS0gdmFjdXVtIGZyb3plZCBwYWdlcyBhbmQgY2xlYW4gdXAgcGFnZXMsIGJ1 dCBwYWdlc19yZW1vdmVkIHN0YXllZCB0aGUgc2FtZQorLS0gYmVjYXVzZSBvZiBub3QgZnVs bCB0YWJsZSBoYXZlIGNsZWFuZWQgdXAKK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzLTpp cnAgPSAwIEFTIHJlbHBhZ2VzLHBhZ2VzX2RlbGV0ZWQgPSAwIEFTIHBhZ2VzX2RlbGV0ZWQs dHVwbGVzX2RlbGV0ZWQgPiAwIEFTIHR1cGxlc19kZWxldGVkCitGUk9NIHBnX3N0YXRfdmFj dXVtX2luZGV4ZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0 X3BrZXknIEFORCB2dC5yZWxpZCA9IGMub2lkOworICAgcmVsbmFtZSAgIHwgcmVscGFnZXMg fCBwYWdlc19kZWxldGVkIHwgdHVwbGVzX2RlbGV0ZWQgCistLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyB2ZXN0YXRfcGtleSB8 IHQgICAgICAgIHwgdCAgICAgICAgICAgICB8IHQKKygxIHJvdykKKworU0VMRUNUIHZ0LnJl bG5hbWUscmVscGFnZXMgQVMgaXJwLHBhZ2VzX2RlbGV0ZWQgQVMgaXBkLHR1cGxlc19kZWxl dGVkIEFTIGl0ZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBj CitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9p ZCBcZ3NldAorLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGludG8gdmFyaWFibGVzCitTRUxFQ1Qg d2FsX3JlY29yZHMgQVMgaXdyLHdhbF9ieXRlcyBBUyBpd2Isd2FsX2ZwaSBBUyBpZnBpIEZS T00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5 JyBcZ3NldAorLS0gTG9vayBpbnRvIFdBTCByZWNvcmRzIGRlbHRhcy4KK1NFTEVDVCB3YWxf cmVjb3JkcyA+IDAgQVMgZGlXUiwgd2FsX2J5dGVzID4gMCBBUyBkaVdCCitGUk9NIHBnX3N0 YXRfdmFjdXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleSc7CisgZGl3 ciB8IGRpd2IgCistLS0tLS0rLS0tLS0tCisgdCAgICB8IHQKKygxIHJvdykKKworREVMRVRF IEZST00gdmVzdGF0OzsKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlU IDEyOCwgSU5ERVhfQ0xFQU5VUCBPTikgdmVzdGF0OworLS0gaXQgaXMgbmVjZXNzYXJ5IHRv IGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKy0tIHBhZ2VzX3JlbW92 ZWQgbXVzdCBiZSBpbmNyZWFzZWQKK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzLTppcnAg PSAwIEFTIHJlbHBhZ2VzLHBhZ2VzX2RlbGV0ZWQtOmlwZCA+IDAgQVMgcGFnZXNfZGVsZXRl ZCx0dXBsZXNfZGVsZXRlZC06aXRkID4gMCBBUyB0dXBsZXNfZGVsZXRlZAorRlJPTSBwZ19z dGF0X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0g J3Zlc3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKKyAgIHJlbG5hbWUgICB8IHJl bHBhZ2VzIHwgcGFnZXNfZGVsZXRlZCB8IHR1cGxlc19kZWxldGVkIAorLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgdmVzdGF0 X3BrZXkgfCB0ICAgICAgICB8IHQgICAgICAgICAgICAgfCB0CisoMSByb3cpCisKK1NFTEVD VCB2dC5yZWxuYW1lLHJlbHBhZ2VzIEFTIGlycCxwYWdlc19kZWxldGVkIEFTIGlwZCx0dXBs ZXNfZGVsZXRlZCBBUyBpdGQKK0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyB2dCwgcGdf Y2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgQU5EIHZ0LnJlbGlk ID0gYy5vaWQgXGdzZXQKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcwor U0VMRUNUIHdhbF9yZWNvcmRzLTppd3IgQVMgZGl3ciwgd2FsX2J5dGVzLTppd2IgQVMgZGl3 Yiwgd2FsX2ZwaS06aWZwaSBBUyBkaWZwaQorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVz IFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0X3BrZXknIFxnc2V0CistLSBXQUwgYWR2YW5jZSBz aG91bGQgYmUgZGV0ZWN0ZWQuCitTRUxFQ1QgOmRpd3IgPiAwIEFTIGRpV1IsIDpkaXdiID4g MCBBUyBkaVdCOworIGRpd3IgfCBkaXdiIAorLS0tLS0tKy0tLS0tLQorIHQgICAgfCB0Ciso MSByb3cpCisKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNU IHdhbF9yZWNvcmRzIEFTIGl3cix3YWxfYnl0ZXMgQVMgaXdiLHdhbF9mcGkgQVMgaWZwaSBG Uk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtl eScgXGdzZXQKK0lOU0VSVCBJTlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLDpzYW1wbGVfc2l6ZSkgYXMgeDsKK0RFTEVURSBGUk9NIHZlc3RhdCBXSEVSRSB4 ICUgMiA9IDA7CistLSBWQUNVVU0gRlVMTCBkb2Vzbid0IHJlcG9ydCB0byBzdGF0IGNvbGxl Y3Rvci4gU28sIG5vIGFueSBhZHZhbmNlbWVudHMgb2Ygc3RhdGlzdGljcworLS0gYXJlIGRl dGVjdGVkIGhlcmUuCitWQUNVVU0gRlVMTCB2ZXN0YXQ7CistLSBJdCBpcyBuZWNlc3Nhcnkg dG8gY2hlY2sgdGhlIHdhbCBzdGF0aXN0aWNzCitDSEVDS1BPSU5UOworLS0gU3RvcmUgV0FM IGFkdmFuY2VzIGludG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMtOml3ciBBUyBk aXdyMiwgd2FsX2J5dGVzLTppd2IgQVMgZGl3YjIsIHdhbF9mcGktOmlmcGkgQVMgZGlmcGky CitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRf cGtleScgXGdzZXQKKy0tIFdBTCBhbmQgb3RoZXIgc3RhdGlzdGljcyBhZHZhbmNlIHNob3Vs ZCBub3QgYmUgZGV0ZWN0ZWQuCitTRUxFQ1QgOmRpd3IyPTAgQVMgZGlXUiwgOmRpZnBpMj0w IEFTIGlGUEksIDpkaXdiMj0wIEFTIGRpV0I7CisgZGl3ciB8IGlmcGkgfCBkaXdiIAorLS0t LS0tKy0tLS0tLSstLS0tLS0KKyB0ICAgIHwgdCAgICB8IHQKKygxIHJvdykKKworU0VMRUNU IHZ0LnJlbG5hbWUscmVscGFnZXMtOmlycCA8IDAgQVMgcmVscGFnZXMscGFnZXNfZGVsZXRl ZC06aXBkID0gMCBBUyBwYWdlc19kZWxldGVkLHR1cGxlc19kZWxldGVkLTppdGQgPSAwIEFT IHR1cGxlc19kZWxldGVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgdnQsIHBnX2Ns YXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0X3BrZXknIEFORCB2dC5yZWxpZCA9 IGMub2lkOworICAgcmVsbmFtZSAgIHwgcmVscGFnZXMgfCBwYWdlc19kZWxldGVkIHwgdHVw bGVzX2RlbGV0ZWQgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0KKyB2ZXN0YXRfcGtleSB8IHQgICAgICAgIHwgdCAgICAgICAg ICAgICB8IHQKKygxIHJvdykKKworU0VMRUNUIHZ0LnJlbG5hbWUscmVscGFnZXMgQVMgaXJw LHBhZ2VzX2RlbGV0ZWQgQVMgaXBkLHR1cGxlc19kZWxldGVkIEFTIGl0ZAorRlJPTSBwZ19z dGF0X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0g J3Zlc3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9pZCBcZ3NldAorLS0gU3RvcmUgV0FM IGFkdmFuY2VzIGludG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMgQVMgaXdyLHdh bF9ieXRlcyBBUyBpd2Isd2FsX2ZwaSBBUyBpZnBpIEZST00gcGdfc3RhdF92YWN1dW1faW5k ZXhlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBcZ3NldAorREVMRVRFIEZST00g dmVzdGF0OworVFJVTkNBVEUgdmVzdGF0OworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJf VVNBR0VfTElNSVQgMTI4LCBJTkRFWF9DTEVBTlVQIE9OKSB2ZXN0YXQ7CistLSBpdCBpcyBu ZWNlc3NhcnkgdG8gY2hlY2sgdGhlIHdhbCBzdGF0aXN0aWNzCitDSEVDS1BPSU5UOworLS0g U3RvcmUgV0FMIGFkdmFuY2VzIGludG8gdmFyaWFibGVzIGFmdGVyIHJlbW92aW5nIGFsbCB0 dXBsZXMgZnJvbSB0aGUgdGFibGUKK1NFTEVDVCB3YWxfcmVjb3Jkcy06aXdyIEFTIGRpd3Iz LCB3YWxfYnl0ZXMtOml3YiBBUyBkaXdiMywgd2FsX2ZwaS06aWZwaSBBUyBkaWZwaTMKK0ZS T00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5 JyBcZ3NldAorLS1UaGVyZSBhcmUgbm90aGluZyBjaGFuZ2VkCitTRUxFQ1QgOmRpd3IzPTAg QVMgZGlXUiwgOmRpZnBpMz0wIEFTIGlGUEksIDpkaXdiMz0wIEFTIGRpV0I7CisgZGl3ciB8 IGlmcGkgfCBkaXdiIAorLS0tLS0tKy0tLS0tLSstLS0tLS0KKyB0ICAgIHwgdCAgICB8IHQK KygxIHJvdykKKworLS0KKy0tIE5vdywgdGhlIHRhYmxlIGFuZCBpbmRleCBpcyBjb21wcmVz c2VkIGludG8gemVybyBudW1iZXIgb2YgcGFnZXMuIENoZWNrIGl0CistLSBpbiB2YWN1dW0g ZXh0ZW5kZWQgc3RhdGlzdGljcy4KKy0tIFRoZSBwYWdlc19mcm96ZW4sIHBhZ2VzX3NjYW5u ZWQgdmFsdWVzIHNob3VsZG4ndCBiZSBjaGFuZ2VkCistLQorU0VMRUNUIHZ0LnJlbG5hbWUs cmVscGFnZXMtOmlycCA9IDAgQVMgcmVscGFnZXMscGFnZXNfZGVsZXRlZC06aXBkID0gMCBB UyBwYWdlc19kZWxldGVkLHR1cGxlc19kZWxldGVkLTppdGQgPSAwIEFTIHR1cGxlc19kZWxl dGVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJF IHZ0LnJlbG5hbWUgPSAndmVzdGF0X3BrZXknIEFORCB2dC5yZWxpZCA9IGMub2lkOworICAg cmVsbmFtZSAgIHwgcmVscGFnZXMgfCBwYWdlc19kZWxldGVkIHwgdHVwbGVzX2RlbGV0ZWQg CistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0KKyB2ZXN0YXRfcGtleSB8IGYgICAgICAgIHwgdCAgICAgICAgICAgICB8IHQKKygx IHJvdykKKworRFJPUCBUQUJMRSB2ZXN0YXQ7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGljcy5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGljcy5vdXQKaW5kZXggMGMw NWE4MTJkZDEuLjExOWM3YWJlYTVmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGljcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Mub3V0CkBAIC0xODEsMTcg KzE4MSwzOSBAQCBXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdCcgQU5EIHZ0LnJlbGlkID0g Yy5vaWQ7CiAgdmVzdGF0ICB8IHQgICAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAg ICB8IGYgICAgICAgIHwgdCAgICAgICAgICAgICB8IHQKICgxIHJvdykKIAorRFJPUCBUQUJM RSB2ZXN0YXQ7CitTRUxFQ1QgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoKCk7CisgcGdfc3Rh dF9mb3JjZV9uZXh0X2ZsdXNoIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygx IHJvdykKKworU0VUIHZhY3V1bV9mcmVlemVfbWluX2FnZSA9IDA7CitTRVQgdmFjdXVtX2Zy ZWV6ZV90YWJsZV9hZ2UgPSAwOworQ1JFQVRFIFRBQkxFIHZlc3RhdCAoeCBpbnQpIFdJVEgg KGF1dG92YWN1dW1fZW5hYmxlZCA9IG9mZiwgZmlsbGZhY3RvciA9IDEwKTsKIElOU0VSVCBJ TlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpzYW1wbGVfc2l6 ZSkgYXMgeDsKIEFOQUxZWkUgdmVzdGF0OworU0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9m bHVzaCgpOworIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgCisoMSByb3cpCisKIC0tIG11c3QgYmUgZW1wdHkKIFNFTEVDVCB2bV9u ZXdfZnJvemVuX3BhZ2VzLCB2bV9uZXdfdmlzaWJsZV9wYWdlcywgcmV2X2FsbF9mcm96ZW5f cGFnZXMscmV2X2FsbF92aXNpYmxlX3BhZ2VzLHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdl cwogRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMsIHBnX3N0YXRfYWxsX3RhYmxlcyBXSEVS RSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsbmFtZSA9ICd2ZXN0YXQnIGFuZCBwZ19zdGF0 X3ZhY3V1bV90YWJsZXMucmVsaWQgPSBwZ19zdGF0X2FsbF90YWJsZXMucmVsaWQ7CiAgdm1f bmV3X2Zyb3plbl9wYWdlcyB8IHZtX25ld192aXNpYmxlX3BhZ2VzIHwgcmV2X2FsbF9mcm96 ZW5fcGFnZXMgfCByZXZfYWxsX3Zpc2libGVfcGFnZXMgfCB2bV9uZXdfdmlzaWJsZV9mcm96 ZW5fcGFnZXMgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAgICAgICAgICAgMCB8ICAgICAg ICAgICAgICAgICAgOTEwIHwgICAgICAgICAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAg ICAgICAgIDAgfCAgICAgICAgICAgICAgICAgICAgICAgICA0NTUKKyAgICAgICAgICAgICAg ICAgICAwIHwgICAgICAgICAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAgICAgICAgMCB8 ICAgICAgICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgMAog KDEgcm93KQogCiBWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgp IHZlc3RhdDsKK1NFTEVDVCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2goKTsKKyBwZ19zdGF0 X2ZvcmNlX25leHRfZmx1c2ggCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEg cm93KQorCiAtLSBiYWNrZW5kIGRlZnJlZXplZCBwYWdlcwogU0VMRUNUIHZtX25ld19mcm96 ZW5fcGFnZXMgPiAwIEFTIHZtX25ld19mcm96ZW5fcGFnZXMsdm1fbmV3X3Zpc2libGVfcGFn ZXMgPiAwIEFTIHZtX25ld192aXNpYmxlX3BhZ2VzLHZtX25ld192aXNpYmxlX2Zyb3plbl9w YWdlcyA+IDAgQVMgdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzLHJldl9hbGxfZnJvemVu X3BhZ2VzID0gMCBBUyByZXZfYWxsX2Zyb3plbl9wYWdlcyxyZXZfYWxsX3Zpc2libGVfcGFn ZXMgPSAwIEFTIHJldl9hbGxfdmlzaWJsZV9wYWdlcwogRlJPTSBwZ19zdGF0X3ZhY3V1bV90 YWJsZXMsIHBnX3N0YXRfYWxsX3RhYmxlcyBXSEVSRSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMu cmVsbmFtZSA9ICd2ZXN0YXQnIGFuZCBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsaWQgPSBw Z19zdGF0X2FsbF90YWJsZXMucmVsaWQ7CkBAIC0yMDQsMTYgKzIyNiwyOCBAQCBTRUxFQ1Qg dm1fbmV3X2Zyb3plbl9wYWdlcyBBUyBwZiwgdm1fbmV3X3Zpc2libGVfcGFnZXMgQVMgcHYs dm1fbmV3X3Zpc2libGVfZnJvegogRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMsIHBnX3N0 YXRfYWxsX3RhYmxlcyBXSEVSRSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsbmFtZSA9ICd2 ZXN0YXQnIGFuZCBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsaWQgPSBwZ19zdGF0X2FsbF90 YWJsZXMucmVsaWQgXGdzZXQKIFVQREFURSB2ZXN0YXQgU0VUIHggPSB4ICsgMTAwMTsKIFZB Q1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCkgdmVzdGF0OworU0VM RUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOworIHBnX3N0YXRfZm9yY2VfbmV4dF9m bHVzaCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKIFNFTEVD VCB2bV9uZXdfZnJvemVuX3BhZ2VzID4gOnBmIEFTIHZtX25ld19mcm96ZW5fcGFnZXMsdm1f bmV3X3Zpc2libGVfcGFnZXMgPiA6cHYgQVMgdm1fbmV3X3Zpc2libGVfcGFnZXMsdm1fbmV3 X3Zpc2libGVfZnJvemVuX3BhZ2VzID4gOnB2ZiBBUyB2bV9uZXdfdmlzaWJsZV9mcm96ZW5f cGFnZXMscmV2X2FsbF9mcm96ZW5fcGFnZXMgPiA6aGFmcCBBUyByZXZfYWxsX2Zyb3plbl9w YWdlcyxyZXZfYWxsX3Zpc2libGVfcGFnZXMgPiA6aGF2cCBBUyByZXZfYWxsX3Zpc2libGVf cGFnZXMKIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzLCBwZ19zdGF0X2FsbF90YWJsZXMg V0hFUkUgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbG5hbWUgPSAndmVzdGF0JyBhbmQgcGdf c3RhdF92YWN1dW1fdGFibGVzLnJlbGlkID0gcGdfc3RhdF9hbGxfdGFibGVzLnJlbGlkOwog IHZtX25ld19mcm96ZW5fcGFnZXMgfCB2bV9uZXdfdmlzaWJsZV9wYWdlcyB8IHZtX25ld192 aXNpYmxlX2Zyb3plbl9wYWdlcyB8IHJldl9hbGxfZnJvemVuX3BhZ2VzIHwgcmV2X2FsbF92 aXNpYmxlX3BhZ2VzIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIGYgICAgICAgICAgICAgICAgICAgfCB0 ICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgICAgIHwgZgorIGYgICAgICAgICAgICAgICAgICAgfCB0ICAgICAg ICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQgICAgICAg ICAgICAgICAgICAgIHwgdAogKDEgcm93KQogCiBTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdl cyBBUyBwZiwgdm1fbmV3X3Zpc2libGVfcGFnZXMgQVMgcHYsIHZtX25ld192aXNpYmxlX2Zy b3plbl9wYWdlcyBBUyBwdmYsIHJldl9hbGxfZnJvemVuX3BhZ2VzIEFTIGhhZnAscmV2X2Fs bF92aXNpYmxlX3BhZ2VzIEFTIGhhdnAKIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzLCBw Z19zdGF0X2FsbF90YWJsZXMgV0hFUkUgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbG5hbWUg PSAndmVzdGF0JyBhbmQgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbGlkID0gcGdfc3RhdF9h bGxfdGFibGVzLnJlbGlkIFxnc2V0CiBWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FH RV9MSU1JVCAxMjgpIHZlc3RhdDsKK1NFTEVDVCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2go KTsKKyBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2ggCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIAorKDEgcm93KQorCiAtLSB2YWN1dW0gZnJlZXplZCBwYWdlcwogU0VMRUNUIHZt X25ld19mcm96ZW5fcGFnZXMgPSA6cGYgQVMgdm1fbmV3X2Zyb3plbl9wYWdlcyx2bV9uZXdf dmlzaWJsZV9wYWdlcyA9IDpwdiBBUyB2bV9uZXdfdmlzaWJsZV9wYWdlcyx2bV9uZXdfdmlz aWJsZV9mcm96ZW5fcGFnZXMgPSA6cHZmIEFTIHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdl cywgcmV2X2FsbF9mcm96ZW5fcGFnZXMgPSA6aGFmcCBBUyByZXZfYWxsX2Zyb3plbl9wYWdl cyxyZXZfYWxsX3Zpc2libGVfcGFnZXMgPSA6aGF2cCBBUyByZXZfYWxsX3Zpc2libGVfcGFn ZXMKIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzLCBwZ19zdGF0X2FsbF90YWJsZXMgV0hF UkUgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbG5hbWUgPSAndmVzdGF0JyBhbmQgcGdfc3Rh dF92YWN1dW1fdGFibGVzLnJlbGlkID0gcGdfc3RhdF9hbGxfdGFibGVzLnJlbGlkOwpAQCAt MjIyLDQgKzI1Niw2IEBAIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzLCBwZ19zdGF0X2Fs bF90YWJsZXMgV0hFUkUgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbG5hCiAgdCAgICAgICAg ICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICAgICAgfCB0CiAoMSByb3cpCiAKK1JFU0VU IHZhY3V1bV9mcmVlemVfbWluX2FnZTsKK1JFU0VUIHZhY3V1bV9mcmVlemVfdGFibGVfYWdl OwogRFJPUCBUQUJMRSB2ZXN0YXQgQ0FTQ0FERTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3Nj aGVkdWxlCmluZGV4IGQxMWY2YjdlZjRiLi45NzdhODdhNWIxZiAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3BhcmFsbGVsX3NjaGVkdWxlCkBAIC0xNDAsNCArMTQwLDUgQEAgdGVzdDogdGFibGVzcGFj ZQogIyAtLS0tLS0tLS0tCiAjIENoZWNrIHZhY3V1bSBzdGF0aXN0aWNzCiAjIC0tLS0tLS0t LS0KK3Rlc3Q6IHZhY3V1bV9pbmRleF9zdGF0aXN0aWNzCiB0ZXN0OiB2YWN1dW1fdGFibGVz X3N0YXRpc3RpY3MKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1dW1faW5kZXhfc3RhdGlzdGljcy5zcWwgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC92YWN1dW1faW5kZXhfc3RhdGlzdGljcy5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmFlMTQ2ZTFkMjNmCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdmFjdXVtX2luZGV4X3N0YXRpc3RpY3Mu c3FsCkBAIC0wLDAgKzEsMTUxIEBACistLQorLS0gVGVzdCBjdW11bGF0aXZlIHZhY3V1bSBz dGF0cyBzeXN0ZW0KKy0tCistLSBDaGVjayB0aGUgd2FsbCBzdGF0aXN0aWNzIGNvbGxlY3Rl ZCBkdXJpbmcgdmFjdXVtIG9wZXJhdGlvbjoKKy0tIG51bWJlciBvZiBmcm96ZW4gYW5kIHZp c2libGUgcGFnZXMgc2V0IGJ5IHZhY3V1bTsKKy0tIG51bWJlciBvZiBmcm96ZW4gYW5kIHZp c2libGUgcGFnZXMgcmVtb3ZlZCBieSBiYWNrZW5kLgorLS0gU3RhdGlzdGljIHdhbF9mcGkg aXMgbm90IGRpc3BsYXllZCBpbiB0aGlzIHRlc3QgYmVjYXVzZSBpdHMgYmVoYXZpb3IgaXMg dW5zdGFibGUuCistLQorLS0gY29uZGl0aW8gc2luZSBxdWEgbm9uCitTSE9XIHRyYWNrX2Nv dW50czsgIC0tIG11c3QgYmUgb24KKworXHNldCBzYW1wbGVfc2l6ZSAxMDAwMAorCistLSBu b3QgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgd2Ugd2FudCB0byB0ZXN0IGl0Li4uCitTRVQg dHJhY2tfZnVuY3Rpb25zIFRPICdhbGwnOworCistLSBUZXN0IHRoYXQgdmFjdXVtIHN0YXRp c3RpY3Mgd2lsbCBiZSBlbXB0eSB3aGVuIHBhcmFtZXRlciBpcyBvZmYuCitTRVQgdHJhY2tf dmFjdXVtX3N0YXRpc3RpY3MgVE8gJ29mZic7CisKK0NSRUFURSBUQUJMRSB2ZXN0YXQgKHgg aW50KSBXSVRIIChhdXRvdmFjdXVtX2VuYWJsZWQgPSBvZmYsIGZpbGxmYWN0b3IgPSAxMCk7 CitJTlNFUlQgSU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw6 c2FtcGxlX3NpemUpIGFzIHg7CitBTkFMWVpFIHZlc3RhdDsKKworREVMRVRFIEZST00gdmVz dGF0IFdIRVJFIHggJSAyID0gMDsKKworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNB R0VfTElNSVQgMTI4KSB2ZXN0YXQ7CisKKy0tIE11c3QgYmUgZW1wdHkuCitTRUxFQ1QgKgor RlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIHZ0CitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zl c3RhdCc7CisKK1JFU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzOworRFJPUCBUQUJMRSB2 ZXN0YXQgQ0FTQ0FERTsKKworU0hPVyB0cmFja192YWN1dW1fc3RhdGlzdGljczsgIC0tIG11 c3QgYmUgb24KKworLS0gZW5zdXJlIHBlbmRpbmcgc3RhdHMgYXJlIGZsdXNoZWQKK1NFTEVD VCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2goKTsKKworXHNldCBzYW1wbGVfc2l6ZSAxMDAw MAorU0VUIHZhY3V1bV9mcmVlemVfbWluX2FnZSA9IDA7CitTRVQgdmFjdXVtX2ZyZWV6ZV90 YWJsZV9hZ2UgPSAwOworLS1TRVQgc3RhdHNfZmV0Y2hfY29uc2lzdGVuY3kgPSBzbmFwc2hv dDsKK0NSRUFURSBUQUJMRSB2ZXN0YXQgKHggaW50IHByaW1hcnkga2V5KSBXSVRIIChhdXRv dmFjdXVtX2VuYWJsZWQgPSBvZmYsIGZpbGxmYWN0b3IgPSAxMCk7CitJTlNFUlQgSU5UTyB2 ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw6c2FtcGxlX3NpemUpIGFz IHg7CitBTkFMWVpFIHZlc3RhdDsKKworU0VMRUNUIG9pZCBBUyBpb2lkIGZyb20gcGdfY2xh c3Mgd2hlcmUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgXGdzZXQKKworREVMRVRFIEZST00g dmVzdGF0IFdIRVJFIHggJSAyID0gMDsKKy0tIEJlZm9yZSB0aGUgZmlyc3QgdmFjdXVtIGV4 ZWN1dGlvbiBleHRlbmRlZCBzdGF0cyB2aWV3IGlzIGVtcHR5LgorU0VMRUNUIHZ0LnJlbG5h bWUscmVscGFnZXMscGFnZXNfZGVsZXRlZCx0dXBsZXNfZGVsZXRlZAorRlJPTSBwZ19zdGF0 X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zl c3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKK1NFTEVDVCByZWxwYWdlcyBBUyBp cnAKK0ZST00gcGdfY2xhc3MgYworV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgXGdz ZXQKKworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4LCBJTkRF WF9DTEVBTlVQIE9OKSB2ZXN0YXQ7CistLSBpdCBpcyBuZWNlc3NhcnkgdG8gY2hlY2sgdGhl IHdhbCBzdGF0aXN0aWNzCitDSEVDS1BPSU5UOworCistLSBUaGUgdGFibGUgYW5kIGluZGV4 IGV4dGVuZGVkIHZhY3V1bSBzdGF0aXN0aWNzIHNob3VsZCBzaG93IHVzIHRoYXQKKy0tIHZh Y3V1bSBmcm96ZWQgcGFnZXMgYW5kIGNsZWFuIHVwIHBhZ2VzLCBidXQgcGFnZXNfcmVtb3Zl ZCBzdGF5ZWQgdGhlIHNhbWUKKy0tIGJlY2F1c2Ugb2Ygbm90IGZ1bGwgdGFibGUgaGF2ZSBj bGVhbmVkIHVwCitTRUxFQ1QgdnQucmVsbmFtZSxyZWxwYWdlcy06aXJwID0gMCBBUyByZWxw YWdlcyxwYWdlc19kZWxldGVkID0gMCBBUyBwYWdlc19kZWxldGVkLHR1cGxlc19kZWxldGVk ID4gMCBBUyB0dXBsZXNfZGVsZXRlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIHZ0 LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBBTkQgdnQu cmVsaWQgPSBjLm9pZDsKK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzIEFTIGlycCxwYWdl c19kZWxldGVkIEFTIGlwZCx0dXBsZXNfZGVsZXRlZCBBUyBpdGQKK0ZST00gcGdfc3RhdF92 YWN1dW1faW5kZXhlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0 YXRfcGtleScgQU5EIHZ0LnJlbGlkID0gYy5vaWQgXGdzZXQKKworLS0gU3RvcmUgV0FMIGFk dmFuY2VzIGludG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMgQVMgaXdyLHdhbF9i eXRlcyBBUyBpd2Isd2FsX2ZwaSBBUyBpZnBpIEZST00gcGdfc3RhdF92YWN1dW1faW5kZXhl cyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBcZ3NldAorCistLSBMb29rIGludG8g V0FMIHJlY29yZHMgZGVsdGFzLgorU0VMRUNUIHdhbF9yZWNvcmRzID4gMCBBUyBkaVdSLCB3 YWxfYnl0ZXMgPiAwIEFTIGRpV0IKK0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyBXSEVS RSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JzsKKworREVMRVRFIEZST00gdmVzdGF0OzsKK1ZB Q1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCwgSU5ERVhfQ0xFQU5V UCBPTikgdmVzdGF0OworLS0gaXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRoZSB3YWwgc3Rh dGlzdGljcworQ0hFQ0tQT0lOVDsKKworLS0gcGFnZXNfcmVtb3ZlZCBtdXN0IGJlIGluY3Jl YXNlZAorU0VMRUNUIHZ0LnJlbG5hbWUscmVscGFnZXMtOmlycCA9IDAgQVMgcmVscGFnZXMs cGFnZXNfZGVsZXRlZC06aXBkID4gMCBBUyBwYWdlc19kZWxldGVkLHR1cGxlc19kZWxldGVk LTppdGQgPiAwIEFTIHR1cGxlc19kZWxldGVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4 ZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0X3BrZXknIEFO RCB2dC5yZWxpZCA9IGMub2lkOworU0VMRUNUIHZ0LnJlbG5hbWUscmVscGFnZXMgQVMgaXJw LHBhZ2VzX2RlbGV0ZWQgQVMgaXBkLHR1cGxlc19kZWxldGVkIEFTIGl0ZAorRlJPTSBwZ19z dGF0X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0g J3Zlc3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9pZCBcZ3NldAorCistLSBTdG9yZSBX QUwgYWR2YW5jZXMgaW50byB2YXJpYWJsZXMKK1NFTEVDVCB3YWxfcmVjb3Jkcy06aXdyIEFT IGRpd3IsIHdhbF9ieXRlcy06aXdiIEFTIGRpd2IsIHdhbF9mcGktOmlmcGkgQVMgZGlmcGkK K0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9w a2V5JyBcZ3NldAorCistLSBXQUwgYWR2YW5jZSBzaG91bGQgYmUgZGV0ZWN0ZWQuCitTRUxF Q1QgOmRpd3IgPiAwIEFTIGRpV1IsIDpkaXdiID4gMCBBUyBkaVdCOworCistLSBTdG9yZSBX QUwgYWR2YW5jZXMgaW50byB2YXJpYWJsZXMKK1NFTEVDVCB3YWxfcmVjb3JkcyBBUyBpd3Is d2FsX2J5dGVzIEFTIGl3Yix3YWxfZnBpIEFTIGlmcGkgRlJPTSBwZ19zdGF0X3ZhY3V1bV9p bmRleGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0X3BrZXknIFxnc2V0CisKK0lOU0VSVCBJ TlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpzYW1wbGVfc2l6 ZSkgYXMgeDsKK0RFTEVURSBGUk9NIHZlc3RhdCBXSEVSRSB4ICUgMiA9IDA7CistLSBWQUNV VU0gRlVMTCBkb2Vzbid0IHJlcG9ydCB0byBzdGF0IGNvbGxlY3Rvci4gU28sIG5vIGFueSBh ZHZhbmNlbWVudHMgb2Ygc3RhdGlzdGljcworLS0gYXJlIGRldGVjdGVkIGhlcmUuCitWQUNV VU0gRlVMTCB2ZXN0YXQ7CistLSBJdCBpcyBuZWNlc3NhcnkgdG8gY2hlY2sgdGhlIHdhbCBz dGF0aXN0aWNzCitDSEVDS1BPSU5UOworCistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50byB2 YXJpYWJsZXMKK1NFTEVDVCB3YWxfcmVjb3Jkcy06aXdyIEFTIGRpd3IyLCB3YWxfYnl0ZXMt Oml3YiBBUyBkaXdiMiwgd2FsX2ZwaS06aWZwaSBBUyBkaWZwaTIKK0ZST00gcGdfc3RhdF92 YWN1dW1faW5kZXhlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBcZ3NldAorCist LSBXQUwgYW5kIG90aGVyIHN0YXRpc3RpY3MgYWR2YW5jZSBzaG91bGQgbm90IGJlIGRldGVj dGVkLgorU0VMRUNUIDpkaXdyMj0wIEFTIGRpV1IsIDpkaWZwaTI9MCBBUyBpRlBJLCA6ZGl3 YjI9MCBBUyBkaVdCOworCitTRUxFQ1QgdnQucmVsbmFtZSxyZWxwYWdlcy06aXJwIDwgMCBB UyByZWxwYWdlcyxwYWdlc19kZWxldGVkLTppcGQgPSAwIEFTIHBhZ2VzX2RlbGV0ZWQsdHVw bGVzX2RlbGV0ZWQtOml0ZCA9IDAgQVMgdHVwbGVzX2RlbGV0ZWQKK0ZST00gcGdfc3RhdF92 YWN1dW1faW5kZXhlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0 YXRfcGtleScgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CitTRUxFQ1QgdnQucmVsbmFtZSxyZWxw YWdlcyBBUyBpcnAscGFnZXNfZGVsZXRlZCBBUyBpcGQsdHVwbGVzX2RlbGV0ZWQgQVMgaXRk CitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0 LnJlbG5hbWUgPSAndmVzdGF0X3BrZXknIEFORCB2dC5yZWxpZCA9IGMub2lkIFxnc2V0CisK Ky0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNv cmRzIEFTIGl3cix3YWxfYnl0ZXMgQVMgaXdiLHdhbF9mcGkgQVMgaWZwaSBGUk9NIHBnX3N0 YXRfdmFjdXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgXGdzZXQK KworREVMRVRFIEZST00gdmVzdGF0OworVFJVTkNBVEUgdmVzdGF0OworVkFDVVVNIChQQVJB TExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4LCBJTkRFWF9DTEVBTlVQIE9OKSB2ZXN0 YXQ7CistLSBpdCBpcyBuZWNlc3NhcnkgdG8gY2hlY2sgdGhlIHdhbCBzdGF0aXN0aWNzCitD SEVDS1BPSU5UOworCistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50byB2YXJpYWJsZXMgYWZ0 ZXIgcmVtb3ZpbmcgYWxsIHR1cGxlcyBmcm9tIHRoZSB0YWJsZQorU0VMRUNUIHdhbF9yZWNv cmRzLTppd3IgQVMgZGl3cjMsIHdhbF9ieXRlcy06aXdiIEFTIGRpd2IzLCB3YWxfZnBpLTpp ZnBpIEFTIGRpZnBpMworRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIFdIRVJFIHJlbG5h bWUgPSAndmVzdGF0X3BrZXknIFxnc2V0CisKKy0tVGhlcmUgYXJlIG5vdGhpbmcgY2hhbmdl ZAorU0VMRUNUIDpkaXdyMz0wIEFTIGRpV1IsIDpkaWZwaTM9MCBBUyBpRlBJLCA6ZGl3YjM9 MCBBUyBkaVdCOworCistLQorLS0gTm93LCB0aGUgdGFibGUgYW5kIGluZGV4IGlzIGNvbXBy ZXNzZWQgaW50byB6ZXJvIG51bWJlciBvZiBwYWdlcy4gQ2hlY2sgaXQKKy0tIGluIHZhY3V1 bSBleHRlbmRlZCBzdGF0aXN0aWNzLgorLS0gVGhlIHBhZ2VzX2Zyb3plbiwgcGFnZXNfc2Nh bm5lZCB2YWx1ZXMgc2hvdWxkbid0IGJlIGNoYW5nZWQKKy0tCitTRUxFQ1QgdnQucmVsbmFt ZSxyZWxwYWdlcy06aXJwID0gMCBBUyByZWxwYWdlcyxwYWdlc19kZWxldGVkLTppcGQgPSAw IEFTIHBhZ2VzX2RlbGV0ZWQsdHVwbGVzX2RlbGV0ZWQtOml0ZCA9IDAgQVMgdHVwbGVzX2Rl bGV0ZWQKK0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyB2dCwgcGdfY2xhc3MgYworV0hF UkUgdnQucmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CisK K0RST1AgVEFCTEUgdmVzdGF0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv dmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Zh Y3V1bV90YWJsZXNfc3RhdGlzdGljcy5zcWwKaW5kZXggOGFkNjkxMDhjYTEuLmRmZDdhZjcw MDI3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1dW1fdGFibGVzX3N0 YXRpc3RpY3Muc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNf c3RhdGlzdGljcy5zcWwKQEAgLTE0OCwxNCArMTQ4LDIyIEBAIFNFTEVDVCB2dC5yZWxuYW1l LHZtX25ld19mcm96ZW5fcGFnZXMtOmZwID0gMCBBUyB2bV9uZXdfZnJvemVuX3BhZ2VzLHR1 cGxlc19kZWxlCiBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xhc3MgYwog V0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2dC5yZWxpZCA9IGMub2lkOwogCitE Uk9QIFRBQkxFIHZlc3RhdDsKK1NFTEVDVCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2goKTsK K1NFVCB2YWN1dW1fZnJlZXplX21pbl9hZ2UgPSAwOworU0VUIHZhY3V1bV9mcmVlemVfdGFi bGVfYWdlID0gMDsKK0NSRUFURSBUQUJMRSB2ZXN0YXQgKHggaW50KSBXSVRIIChhdXRvdmFj dXVtX2VuYWJsZWQgPSBvZmYsIGZpbGxmYWN0b3IgPSAxMCk7CisKIElOU0VSVCBJTlRPIHZl c3RhdCBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpzYW1wbGVfc2l6ZSkgYXMg eDsKIEFOQUxZWkUgdmVzdGF0OworU0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgp OwogCiAtLSBtdXN0IGJlIGVtcHR5CiBTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcywgdm1f bmV3X3Zpc2libGVfcGFnZXMsIHJldl9hbGxfZnJvemVuX3BhZ2VzLHJldl9hbGxfdmlzaWJs ZV9wYWdlcyx2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMKIEZST00gcGdfc3RhdF92YWN1 dW1fdGFibGVzLCBwZ19zdGF0X2FsbF90YWJsZXMgV0hFUkUgcGdfc3RhdF92YWN1dW1fdGFi bGVzLnJlbG5hbWUgPSAndmVzdGF0JyBhbmQgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbGlk ID0gcGdfc3RhdF9hbGxfdGFibGVzLnJlbGlkOwogCiBWQUNVVU0gKFBBUkFMTEVMIDAsIEJV RkZFUl9VU0FHRV9MSU1JVCAxMjgpIHZlc3RhdDsKK1NFTEVDVCBwZ19zdGF0X2ZvcmNlX25l eHRfZmx1c2goKTsKIAogLS0gYmFja2VuZCBkZWZyZWV6ZWQgcGFnZXMKIFNFTEVDVCB2bV9u ZXdfZnJvemVuX3BhZ2VzID4gMCBBUyB2bV9uZXdfZnJvemVuX3BhZ2VzLHZtX25ld192aXNp YmxlX3BhZ2VzID4gMCBBUyB2bV9uZXdfdmlzaWJsZV9wYWdlcyx2bV9uZXdfdmlzaWJsZV9m cm96ZW5fcGFnZXMgPiAwIEFTIHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyxyZXZfYWxs X2Zyb3plbl9wYWdlcyA9IDAgQVMgcmV2X2FsbF9mcm96ZW5fcGFnZXMscmV2X2FsbF92aXNp YmxlX3BhZ2VzID0gMCBBUyByZXZfYWxsX3Zpc2libGVfcGFnZXMKQEAgLTE2NSw2ICsxNzMs NyBAQCBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcywgcGdfc3RhdF9hbGxfdGFibGVzIFdI RVJFIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxuYQogCiBVUERBVEUgdmVzdGF0IFNFVCB4 ID0geCArIDEwMDE7CiBWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAx MjgpIHZlc3RhdDsKK1NFTEVDVCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2goKTsKIAogU0VM RUNUIHZtX25ld19mcm96ZW5fcGFnZXMgPiA6cGYgQVMgdm1fbmV3X2Zyb3plbl9wYWdlcyx2 bV9uZXdfdmlzaWJsZV9wYWdlcyA+IDpwdiBBUyB2bV9uZXdfdmlzaWJsZV9wYWdlcyx2bV9u ZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMgPiA6cHZmIEFTIHZtX25ld192aXNpYmxlX2Zyb3pl bl9wYWdlcyxyZXZfYWxsX2Zyb3plbl9wYWdlcyA+IDpoYWZwIEFTIHJldl9hbGxfZnJvemVu X3BhZ2VzLHJldl9hbGxfdmlzaWJsZV9wYWdlcyA+IDpoYXZwIEFTIHJldl9hbGxfdmlzaWJs ZV9wYWdlcwogRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMsIHBnX3N0YXRfYWxsX3RhYmxl cyBXSEVSRSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsbmFtZSA9ICd2ZXN0YXQnIGFuZCBw Z19zdGF0X3ZhY3V1bV90YWJsZXMucmVsaWQgPSBwZ19zdGF0X2FsbF90YWJsZXMucmVsaWQ7 CkBAIC0xNzIsOSArMTgxLDEyIEBAIFNFTEVDVCB2bV9uZXdfZnJvemVuX3BhZ2VzIEFTIHBm LCB2bV9uZXdfdmlzaWJsZV9wYWdlcyBBUyBwdiwgdm1fbmV3X3Zpc2libGVfZnJvCiBGUk9N IHBnX3N0YXRfdmFjdXVtX3RhYmxlcywgcGdfc3RhdF9hbGxfdGFibGVzIFdIRVJFIHBnX3N0 YXRfdmFjdXVtX3RhYmxlcy5yZWxuYW1lID0gJ3Zlc3RhdCcgYW5kIHBnX3N0YXRfdmFjdXVt X3RhYmxlcy5yZWxpZCA9IHBnX3N0YXRfYWxsX3RhYmxlcy5yZWxpZCBcZ3NldAogCiBWQUNV VU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgpIHZlc3RhdDsKK1NFTEVD VCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2goKTsKIAogLS0gdmFjdXVtIGZyZWV6ZWQgcGFn ZXMKIFNFTEVDVCB2bV9uZXdfZnJvemVuX3BhZ2VzID0gOnBmIEFTIHZtX25ld19mcm96ZW5f cGFnZXMsdm1fbmV3X3Zpc2libGVfcGFnZXMgPSA6cHYgQVMgdm1fbmV3X3Zpc2libGVfcGFn ZXMsdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzID0gOnB2ZiBBUyB2bV9uZXdfdmlzaWJs ZV9mcm96ZW5fcGFnZXMsIHJldl9hbGxfZnJvemVuX3BhZ2VzID0gOmhhZnAgQVMgcmV2X2Fs bF9mcm96ZW5fcGFnZXMscmV2X2FsbF92aXNpYmxlX3BhZ2VzID0gOmhhdnAgQVMgcmV2X2Fs bF92aXNpYmxlX3BhZ2VzCiBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcywgcGdfc3RhdF9h bGxfdGFibGVzIFdIRVJFIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxuYW1lID0gJ3Zlc3Rh dCcgYW5kIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxpZCA9IHBnX3N0YXRfYWxsX3RhYmxl cy5yZWxpZDsKIAorUkVTRVQgdmFjdXVtX2ZyZWV6ZV9taW5fYWdlOworUkVTRVQgdmFjdXVt X2ZyZWV6ZV90YWJsZV9hZ2U7CiBEUk9QIFRBQkxFIHZlc3RhdCBDQVNDQURFOwotLSAKMi4z NC4xCgo= --------------g7I0Wbo7Ykyo94XxnooGxlss Content-Type: text/x-patch; charset=UTF-8; name="v14-0003-Machinery-for-grabbing-an-extended-vacuu.patch" Content-Disposition: attachment; filename="v14-0003-Machinery-for-grabbing-an-extended-vacuu.patch" Content-Transfer-Encoding: base64 RnJvbSBmOWEwODBjZjE4NDYxM2RjZjNkYjhhMTMzM2NkNWZiZGRkZGMwOGE2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogTW9uLCAxNiBEZWMgMjAyNCAxNDoxMTozMCArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMy80XSBNYWNoaW5lcnkgZm9yIGdyYWJiaW5nIGFuIGV4dGVuZGVkIHZh Y3V1bQogc3RhdGlzdGljcyBvbiBkYXRhYmFzZXMuCgpEYXRhYmFzZSB2YWN1dW0gc3RhdGlz dGljcyBpbmZvcm1hdGlvbiBpcyB0aGUgY29sbGVjdGVkIGdlbmVyYWwKdmFjdXVtIHN0YXRp c3RpY3MgaW5kZXhlcyBhbmQgdGFibGVzIG93bmVkIGJ5IHRoZSBkYXRhYmFzZXMsIHdoaWNo CnRoZXkgYmVsb25nIHRvLgpTbywgYnVmZmVyLCB3YWwsIHN0YXRpc3RpY3Mgb2YgSS9PIHRp bWUgb2YgcmVhZCBhbmQgd3JpdGVuIGJsb2NrcwpzdGF0aXN0aWNzIHdpbGwgYmUgb2JzZXJ2 ZWQgYmVjYXVzZSB0aGV5IGFyZSBjb2xsZWN0ZWQgZm9yIGJvdGgKdGFibGVzLCBpbmRleGVz LiBJbiBhZGRpdGlvbiwgd2Ugc2hvdyB0aGUgbnVtYmVyIG9mIGVycm9ycyBjYXVnaHQKZHVy aW5nIG9wZXJhdGlvbiBvZiB0aGUgdmFjdXVtIG9ubHkgZm9yIHRoZSBlcnJvciBsZXZlbC4K LS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgICAgICAgfCAx NSArKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCAgICAgICAgICB8 IDI2ICsrKystCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2Uu YyAgfCAgMSArCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24u YyAgfCA0MyArKysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5j ICAgICAgICAgICB8IDk1ICsrKysrKysrKysrKysrKysrKysKIHNyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8IDE1ICsrLQogc3JjL2luY2x1ZGUvcGdz dGF0LmggICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKwogc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ydWxlcy5vdXQgICAgICAgICAgIHwgMTYgKysrKwogLi4udXQgPT4gdmFj dXVtX3RhYmxlc19hbmRfZGJfc3RhdGlzdGljcy5vdXR9IHwgNjkgKysrKysrKysrKysrKy0K IHNyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgICAgICAgICAgICB8ICAyICst CiAuLi5xbCA9PiB2YWN1dW1fdGFibGVzX2FuZF9kYl9zdGF0aXN0aWNzLnNxbH0gfCA2MCAr KysrKysrKysrKy0KIDExIGZpbGVzIGNoYW5nZWQsIDMzOCBpbnNlcnRpb25zKCspLCA3IGRl bGV0aW9ucygtKQogcmVuYW1lIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQve3ZhY3V1bV90 YWJsZXNfc3RhdGlzdGljcy5vdXQgPT4gdmFjdXVtX3RhYmxlc19hbmRfZGJfc3RhdGlzdGlj cy5vdXR9ICg4NCUpCiByZW5hbWUgc3JjL3Rlc3QvcmVncmVzcy9zcWwve3ZhY3V1bV90YWJs ZXNfc3RhdGlzdGljcy5zcWwgPT4gdmFjdXVtX3RhYmxlc19hbmRfZGJfc3RhdGlzdGljcy5z cWx9ICg4NCUpCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVt bGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDNm M2FiMTExOGNmLi41Mjc5ZTIyYTIwNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1 bWxhenkuYwpAQCAtMzQ1Myw2ICszNDUzLDkgQEAgdmFjdXVtX2Vycm9yX2NhbGxiYWNrKHZv aWQgKmFyZykKIAlzd2l0Y2ggKGVycmluZm8tPnBoYXNlKQogCXsKIAkJY2FzZSBWQUNVVU1f RVJSQ0JfUEhBU0VfU0NBTl9IRUFQOgorCQkJaWYoZ2V0ZXJyZWxldmVsKCkgPT0gRVJST1Ip CisJCQkJCXBnc3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9yKGVycmluZm8tPnJlbG9pZCwgUEdT VEFUX0VYVFZBQ19UQUJMRSk7CisKIAkJCWlmIChCbG9ja051bWJlcklzVmFsaWQoZXJyaW5m by0+Ymxrbm8pKQogCQkJewogCQkJCWlmIChPZmZzZXROdW1iZXJJc1ZhbGlkKGVycmluZm8t Pm9mZm51bSkpCkBAIC0zNDY4LDYgKzM0NzEsOSBAQCB2YWN1dW1fZXJyb3JfY2FsbGJhY2so dm9pZCAqYXJnKQogCQkJYnJlYWs7CiAKIAkJY2FzZSBWQUNVVU1fRVJSQ0JfUEhBU0VfVkFD VVVNX0hFQVA6CisJCQlpZihnZXRlcnJlbGV2ZWwoKSA9PSBFUlJPUikKKwkJCQlwZ3N0YXRf cmVwb3J0X3ZhY3V1bV9lcnJvcihlcnJpbmZvLT5yZWxvaWQsIFBHU1RBVF9FWFRWQUNfVEFC TEUpOworCiAJCQlpZiAoQmxvY2tOdW1iZXJJc1ZhbGlkKGVycmluZm8tPmJsa25vKSkKIAkJ CXsKIAkJCQlpZiAoT2Zmc2V0TnVtYmVySXNWYWxpZChlcnJpbmZvLT5vZmZudW0pKQpAQCAt MzQ4MywxNiArMzQ4OSwyNSBAQCB2YWN1dW1fZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJnKQog CQkJYnJlYWs7CiAKIAkJY2FzZSBWQUNVVU1fRVJSQ0JfUEhBU0VfVkFDVVVNX0lOREVYOgor CQkJaWYoZ2V0ZXJyZWxldmVsKCkgPT0gRVJST1IpCisJCQkJcGdzdGF0X3JlcG9ydF92YWN1 dW1fZXJyb3IoZXJyaW5mby0+aW5kb2lkLCBQR1NUQVRfRVhUVkFDX0lOREVYKTsKKwogCQkJ ZXJyY29udGV4dCgid2hpbGUgdmFjdXVtaW5nIGluZGV4IFwiJXNcIiBvZiByZWxhdGlvbiBc IiVzLiVzXCIiLAogCQkJCQkgICBlcnJpbmZvLT5pbmRuYW1lLCBlcnJpbmZvLT5yZWxuYW1l c3BhY2UsIGVycmluZm8tPnJlbG5hbWUpOwogCQkJYnJlYWs7CiAKIAkJY2FzZSBWQUNVVU1f RVJSQ0JfUEhBU0VfSU5ERVhfQ0xFQU5VUDoKKwkJCWlmKGdldGVycmVsZXZlbCgpID09IEVS Uk9SKQorCQkJCXBnc3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9yKGVycmluZm8tPmluZG9pZCwg UEdTVEFUX0VYVFZBQ19JTkRFWCk7CisKIAkJCWVycmNvbnRleHQoIndoaWxlIGNsZWFuaW5n IHVwIGluZGV4IFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzLiVzXCIiLAogCQkJCQkgICBlcnJp bmZvLT5pbmRuYW1lLCBlcnJpbmZvLT5yZWxuYW1lc3BhY2UsIGVycmluZm8tPnJlbG5hbWUp OwogCQkJYnJlYWs7CiAKIAkJY2FzZSBWQUNVVU1fRVJSQ0JfUEhBU0VfVFJVTkNBVEU6CisJ CQlpZihnZXRlcnJlbGV2ZWwoKSA9PSBFUlJPUikKKwkJCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1 bV9lcnJvcihlcnJpbmZvLT5yZWxvaWQsIFBHU1RBVF9FWFRWQUNfVEFCTEUpOworCiAJCQlp ZiAoQmxvY2tOdW1iZXJJc1ZhbGlkKGVycmluZm8tPmJsa25vKSkKIAkJCQllcnJjb250ZXh0 KCJ3aGlsZSB0cnVuY2F0aW5nIHJlbGF0aW9uIFwiJXMuJXNcIiB0byAldSBibG9ja3MiLAog CQkJCQkJICAgZXJyaW5mby0+cmVsbmFtZXNwYWNlLCBlcnJpbmZvLT5yZWxuYW1lLCBlcnJp bmZvLT5ibGtubyk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92 aWV3cy5zcWwgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKaW5kZXgg MzBlNWMwYTdhNDQuLmIwNTNkOGVkYzMzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRh bG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1f dmlld3Muc3FsCkBAIC0xNDYxLDQgKzE0NjEsMjggQEAgRlJPTQogICBwZ19jbGFzcyByZWwK ICAgSk9JTiBwZ19uYW1lc3BhY2UgbnMgT04gbnMub2lkID0gcmVsLnJlbG5hbWVzcGFjZSwK ICAgTEFURVJBTCBwZ19zdGF0X2dldF92YWN1dW1faW5kZXhlcyhyZWwub2lkKSBzdGF0cwot V0hFUkUgcmVsLnJlbGtpbmQgPSAnaSc7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQor V0hFUkUgcmVsLnJlbGtpbmQgPSAnaSc7CisKK0NSRUFURSBWSUVXIHBnX3N0YXRfdmFjdXVt X2RhdGFiYXNlIEFTCitTRUxFQ1QKKyAgZGIub2lkIGFzIGRib2lkLAorICBkYi5kYXRuYW1l IEFTIGRibmFtZSwKKworICBzdGF0cy5kYl9ibGtzX3JlYWQgQVMgZGJfYmxrc19yZWFkLAor ICBzdGF0cy5kYl9ibGtzX2hpdCBBUyBkYl9ibGtzX2hpdCwKKyAgc3RhdHMudG90YWxfYmxr c19kaXJ0aWVkIEFTIHRvdGFsX2Jsa3NfZGlydGllZCwKKyAgc3RhdHMudG90YWxfYmxrc193 cml0dGVuIEFTIHRvdGFsX2Jsa3Nfd3JpdHRlbiwKKworICBzdGF0cy53YWxfcmVjb3JkcyBB UyB3YWxfcmVjb3JkcywKKyAgc3RhdHMud2FsX2ZwaSBBUyB3YWxfZnBpLAorICBzdGF0cy53 YWxfYnl0ZXMgQVMgd2FsX2J5dGVzLAorCisgIHN0YXRzLmJsa19yZWFkX3RpbWUgQVMgYmxr X3JlYWRfdGltZSwKKyAgc3RhdHMuYmxrX3dyaXRlX3RpbWUgQVMgYmxrX3dyaXRlX3RpbWUs CisKKyAgc3RhdHMuZGVsYXlfdGltZSBBUyBkZWxheV90aW1lLAorICBzdGF0cy50b3RhbF90 aW1lIEFTIHRvdGFsX3RpbWUsCisgIHN0YXRzLmVycm9ycyBBUyBlcnJvcnMKK0ZST00KKyAg cGdfZGF0YWJhc2UgZGIsCisgIExBVEVSQUwgcGdfc3RhdF9nZXRfdmFjdXVtX2RhdGFiYXNl KGRiLm9pZCkgc3RhdHM7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2RhdGFiYXNlLmMgYi9zcmMv YmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2UuYwppbmRleCA3NzU3ZDJh Y2U3NC4uODQwZDg0OGE3NTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2 aXR5L3Bnc3RhdF9kYXRhYmFzZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5 L3Bnc3RhdF9kYXRhYmFzZS5jCkBAIC00NDksNiArNDQ5LDcgQEAgcGdzdGF0X2RhdGFiYXNl X2ZsdXNoX2NiKFBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmLCBib29sIG5vd2FpdCkKIAlw Z3N0YXRfdW5sb2NrX2VudHJ5KGVudHJ5X3JlZik7CiAKIAltZW1zZXQocGVuZGluZ2VudCwg MCwgc2l6ZW9mKCpwZW5kaW5nZW50KSk7CisJbWVtc2V0KCYocGVuZGluZ2VudCktPnZhY3V1 bV9leHQsIDAsIHNpemVvZihFeHRWYWNSZXBvcnQpKTsKIAogCXJldHVybiB0cnVlOwogfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9u LmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYwppbmRl eCBjYzZiNDZlYjdkYi4uMzdiYWE3MTEyZDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCkBAIC0yMDMsNiArMjAzLDM4IEBAIHBnc3Rh dF9kcm9wX3JlbGF0aW9uKFJlbGF0aW9uIHJlbCkKIAl9CiB9CiAKKy8qIC0tLS0tLS0tLQor ICogcGdzdGF0X3JlcG9ydF92YWN1dW1fZXJyb3IoKSAtCisgKgorICoJVGVsbCB0aGUgY29s bGVjdG9yIGFib3V0IGFuIChhdXRvKXZhY3V1bSBpbnRlcnJ1cHRpb24uCisgKiAtLS0tLS0t LS0KKyAqLwordm9pZAorcGdzdGF0X3JlcG9ydF92YWN1dW1fZXJyb3IoT2lkIHRhYmxlb2lk LCBFeHRWYWNSZXBvcnRUeXBlIG1fdHlwZSkKK3sKKwlQZ1N0YXRfRW50cnlSZWYgKmVudHJ5 X3JlZjsKKwlQZ1N0YXRTaGFyZWRfUmVsYXRpb24gKnNodGFiZW50cnk7CisJUGdTdGF0X1N0 YXRUYWJFbnRyeSAqdGFiZW50cnk7CisJT2lkCQkJZGJvaWQgPSAgTXlEYXRhYmFzZUlkOwor CVBnU3RhdF9TdGF0REJFbnRyeSAqZGJlbnRyeTsJLyogcGVuZGluZyBkYXRhYmFzZSBlbnRy eSAqLworCisJaWYgKCFwZ3N0YXRfdHJhY2tfY291bnRzKQorCQlyZXR1cm47CisKKwllbnRy eV9yZWYgPSBwZ3N0YXRfZ2V0X2VudHJ5X3JlZl9sb2NrZWQoUEdTVEFUX0tJTkRfUkVMQVRJ T04sCisJCQkJCQkJCQkJCWRib2lkLCB0YWJsZW9pZCwgZmFsc2UpOworCisJc2h0YWJlbnRy eSA9IChQZ1N0YXRTaGFyZWRfUmVsYXRpb24gKikgZW50cnlfcmVmLT5zaGFyZWRfc3RhdHM7 CisJdGFiZW50cnkgPSAmc2h0YWJlbnRyeS0+c3RhdHM7CisKKwl0YWJlbnRyeS0+dmFjdXVt X2V4dC50eXBlID0gbV90eXBlOworCXBnc3RhdF91bmxvY2tfZW50cnkoZW50cnlfcmVmKTsK KworCWRiZW50cnkgPSBwZ3N0YXRfcHJlcF9kYXRhYmFzZV9wZW5kaW5nKGRib2lkKTsKKwlk YmVudHJ5LT52YWN1dW1fZXh0LmVycm9ycysrOworCWRiZW50cnktPnZhY3V1bV9leHQudHlw ZSA9IG1fdHlwZTsKK30KKwogLyoKICAqIFJlcG9ydCB0aGF0IHRoZSB0YWJsZSB3YXMganVz dCB2YWN1dW1lZCBhbmQgZmx1c2ggSU8gc3RhdGlzdGljcy4KICAqLwpAQCAtMjE0LDYgKzI0 Niw3IEBAIHBnc3RhdF9yZXBvcnRfdmFjdXVtKE9pZCB0YWJsZW9pZCwgYm9vbCBzaGFyZWQs CiAJUGdTdGF0X0VudHJ5UmVmICplbnRyeV9yZWY7CiAJUGdTdGF0U2hhcmVkX1JlbGF0aW9u ICpzaHRhYmVudHJ5OwogCVBnU3RhdF9TdGF0VGFiRW50cnkgKnRhYmVudHJ5OworCVBnU3Rh dFNoYXJlZF9EYXRhYmFzZSAqZGJlbnRyeTsKIAlPaWQJCQlkYm9pZCA9IChzaGFyZWQgPyBJ bnZhbGlkT2lkIDogTXlEYXRhYmFzZUlkKTsKIAlUaW1lc3RhbXBUeiB0czsKIApAQCAtMjY3 LDYgKzMwMCwxNiBAQCBwZ3N0YXRfcmVwb3J0X3ZhY3V1bShPaWQgdGFibGVvaWQsIGJvb2wg c2hhcmVkLAogCSAqIFZBQ1VVTSBjb21tYW5kIGhhcyBwcm9jZXNzZWQgYWxsIHRhYmxlcyBh bmQgY29tbWl0dGVkLgogCSAqLwogCXBnc3RhdF9mbHVzaF9pbyhmYWxzZSk7CisJaWYgKGRi b2lkICE9IEludmFsaWRPaWQpCisJeworCQllbnRyeV9yZWYgPSBwZ3N0YXRfZ2V0X2VudHJ5 X3JlZl9sb2NrZWQoUEdTVEFUX0tJTkRfREFUQUJBU0UsCisJCQkJCQkJCQkJCWRib2lkLCBJ bnZhbGlkT2lkLCBmYWxzZSk7CisJCWRiZW50cnkgPSAoUGdTdGF0U2hhcmVkX0RhdGFiYXNl ICopIGVudHJ5X3JlZi0+c2hhcmVkX3N0YXRzOworCisJCXBnc3RhdF9hY2N1bXVsYXRlX2V4 dHZhY19zdGF0cygmZGJlbnRyeS0+c3RhdHMudmFjdXVtX2V4dCwgcGFyYW1zLCBmYWxzZSk7 CisJCXBnc3RhdF91bmxvY2tfZW50cnkoZW50cnlfcmVmKTsKKwl9CisKIH0KIAogLyoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKaW5kZXggYWNkZjE2YTk4ZDUuLmQ5NTk1 YjY5NDkyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3Mu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwpAQCAtMjMxNSw2 ICsyMzE1LDEwMSBAQCBwZ19zdGF0X2dldF92YWN1dW1faW5kZXhlcyhQR19GVU5DVElPTl9B UkdTKQogCiAJQXNzZXJ0KGkgPT0gUEdfU1RBVF9HRVRfVkFDVVVNX0lOREVYX1NUQVRTX0NP TFMpOwogCisJLyogUmV0dXJucyB0aGUgcmVjb3JkIGFzIERhdHVtICovCisJUEdfUkVUVVJO X0RBVFVNKEhlYXBUdXBsZUdldERhdHVtKGhlYXBfZm9ybV90dXBsZSh0dXBkZXNjLCB2YWx1 ZXMsIG51bGxzKSkpOworfQorCitEYXR1bQorcGdfc3RhdF9nZXRfdmFjdXVtX2RhdGFiYXNl KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJI2RlZmluZSBQR19TVEFUX0dFVF9WQUNVVU1fREFU QUJBU0VfU1RBVFNfQ09MUwkxMworCisJT2lkCQkJCQkJIGRiaWQgPSBQR19HRVRBUkdfT0lE KDApOworCVBnU3RhdF9TdGF0REJFbnRyeSAJCSpkYmVudHJ5OworCUV4dFZhY1JlcG9ydCAJ CQkqZXh0dmFjdXVtOworCVR1cGxlRGVzYwkJCQkgdHVwZGVzYzsKKwlEYXR1bQkJCQkJIHZh bHVlc1tQR19TVEFUX0dFVF9WQUNVVU1fREFUQUJBU0VfU1RBVFNfQ09MU10gPSB7MH07CisJ Ym9vbAkJCQkJIG51bGxzW1BHX1NUQVRfR0VUX1ZBQ1VVTV9EQVRBQkFTRV9TVEFUU19DT0xT XSA9IHswfTsKKwljaGFyCQkJCQkgYnVmWzI1Nl07CisJaW50CQkJCQkJIGkgPSAwOworCUV4 dFZhY1JlcG9ydCBhbGx6ZXJvOworCisJLyogSW5pdGlhbGlzZSBhdHRyaWJ1dGVzIGluZm9y bWF0aW9uIGluIHRoZSB0dXBsZSBkZXNjcmlwdG9yICovCisJdHVwZGVzYyA9IENyZWF0ZVRl bXBsYXRlVHVwbGVEZXNjKFBHX1NUQVRfR0VUX1ZBQ1VVTV9EQVRBQkFTRV9TVEFUU19DT0xT KTsKKworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAi ZGJpZCIsCisJCQkJCSAgIElOVDRPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnko dHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInRvdGFsXyBibGtzX3JlYWQiLAorCQkJCQkg ICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRy TnVtYmVyKSArK2ksICJ0b3RhbF9ibGtzX2hpdCIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAw KTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInRv dGFsX2Jsa3NfZGlydGllZCIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURl c2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInRvdGFsX2Jsa3Nfd3Jp dHRlbiIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnko dHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgIndhbF9yZWNvcmRzIiwKKwkJCQkJICAgSU5U OE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJl cikgKytpLCAid2FsX2ZwaSIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURl c2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgIndhbF9ieXRlcyIsCisJ CQkJCSAgIE5VTUVSSUNPSUQsIC0xLCAwKTsKKworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBk ZXNjLCAoQXR0ck51bWJlcikgKytpLCAiYmxrX3JlYWRfdGltZSIsCisJCQkJCSAgIEZMT0FU OE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJl cikgKytpLCAiYmxrX3dyaXRlX3RpbWUiLAorCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsK KworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAiZGVs YXlfdGltZSIsCisJCQkJCSAgIEZMT0FUOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRF bnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAidG90YWxfdGltZSIsCisJCQkJCSAg IEZMT0FUOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0 ck51bWJlcikgKytpLCAiZXJyb3JzIiwKKwkJCQkJICAgSU5UNE9JRCwgLTEsIDApOworCisJ QXNzZXJ0KGkgPT0gUEdfU1RBVF9HRVRfVkFDVVVNX0RBVEFCQVNFX1NUQVRTX0NPTFMpOwor CisJQmxlc3NUdXBsZURlc2ModHVwZGVzYyk7CisKKwlkYmVudHJ5ID0gcGdzdGF0X2ZldGNo X3N0YXRfZGJlbnRyeShkYmlkKTsKKworCWlmIChkYmVudHJ5ID09IE5VTEwpCisJeworCQkv KiBJZiB0aGUgc3Vic2NyaXB0aW9uIGlzIG5vdCBmb3VuZCwgaW5pdGlhbGlzZSBpdHMgc3Rh dHMgKi8KKwkJbWVtc2V0KCZhbGx6ZXJvLCAwLCBzaXplb2YoRXh0VmFjUmVwb3J0KSk7CisJ CWV4dHZhY3V1bSA9ICZhbGx6ZXJvOworCX0KKwllbHNlCisJeworCQlleHR2YWN1dW0gPSAm KGRiZW50cnktPnZhY3V1bV9leHQpOworCX0KKworCWkgPSAwOworCisJdmFsdWVzW2krK10g PSBPYmplY3RJZEdldERhdHVtKGRiaWQpOworCisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERh dHVtKGV4dHZhY3V1bS0+dG90YWxfYmxrc19yZWFkKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0 R2V0RGF0dW0oZXh0dmFjdXVtLT50b3RhbF9ibGtzX2hpdCk7CisJdmFsdWVzW2krK10gPSBJ bnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dG90YWxfYmxrc19kaXJ0aWVkKTsKKwl2YWx1ZXNb aSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50b3RhbF9ibGtzX3dyaXR0ZW4pOwor CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+d2FsX3JlY29yZHMp OworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPndhbF9mcGkpOwor CisJLyogQ29udmVydCB0byBudW1lcmljLCBsaWtlIHBnX3N0YXRfc3RhdGVtZW50cyAqLwor CXNucHJpbnRmKGJ1Ziwgc2l6ZW9mIGJ1ZiwgVUlOVDY0X0ZPUk1BVCwgZXh0dmFjdXVtLT53 YWxfYnl0ZXMpOworCXZhbHVlc1tpKytdID0gRGlyZWN0RnVuY3Rpb25DYWxsMyhudW1lcmlj X2luLAorCQkJCQkJCQkJICBDU3RyaW5nR2V0RGF0dW0oYnVmKSwKKwkJCQkJCQkJCSAgT2Jq ZWN0SWRHZXREYXR1bSgwKSwKKwkJCQkJCQkJCSAgSW50MzJHZXREYXR1bSgtMSkpOworCisJ dmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPmJsa19yZWFkX3RpbWUp OworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFjdXVtLT5ibGtfd3JpdGVf dGltZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPmRlbGF5 X3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFjdXVtLT50b3Rh bF90aW1lKTsKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKGV4dHZhY3V1bS0+ZXJy b3JzKTsKKworCUFzc2VydChpID09IFBHX1NUQVRfR0VUX1ZBQ1VVTV9EQVRBQkFTRV9TVEFU U19DT0xTKTsKKwogCS8qIFJldHVybnMgdGhlIHJlY29yZCBhcyBEYXR1bSAqLwogCVBHX1JF VFVSTl9EQVRVTShIZWFwVHVwbGVHZXREYXR1bShoZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywg dmFsdWVzLCBudWxscykpKTsKIH0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA2ZTI5NTNlOWRkNS4uMDE2ZGFjYjQ3MTYgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTI0MTcsNyArMTI0MTcsNyBAQAogICBw cm9zcmMgPT4gJ2dpc3Rfc3RyYXRudW1faWRlbnRpdHknIH0sCiAKIHsgb2lkID0+ICc4MDAx JywKLSAgZGVzY3IgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV90YWJsZXMgcmV0dXJuIHN0YXRz IHZhbHVlcycsCisgIGRlc2NyID0+ICdwZ19zdGF0X2dldF92YWN1dW1fdGFibGVzIHJldHVy bnMgdmFjdXVtIHN0YXRzIHZhbHVlcyBmb3IgdGFibGUnLAogICBwcm9uYW1lID0+ICdwZ19z dGF0X2dldF92YWN1dW1fdGFibGVzJywgcHJvcm93cyA9PiAxMDAwLCBwcm92b2xhdGlsZSA9 PiAncycsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcscHJvaXNzdHJpY3QgPT4gJ2YnLAogICBw cm9yZXRzZXQgPT4gJ3QnLAogICBwcm9hcmd0eXBlcyA9PiAnb2lkJywKQEAgLTEyNDM1LDEy ICsxMjQzNSwyMSBAQAogICBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5cGUgPT4gJ2lu dDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKICAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF9y ZXZfYWxsX2Zyb3plbl9wYWdlcycgfSwKIHsgb2lkID0+ICc4MDA0JywKLSAgZGVzY3IgPT4g J3BnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRleGVzIHJldHVybiBzdGF0cyB2YWx1ZXMnLAorICBk ZXNjciA9PiAncGdfc3RhdF9nZXRfdmFjdXVtX2luZGV4ZXMgcmV0dXJucyB2YWN1dW0gc3Rh dHMgdmFsdWVzIGZvciBpbmRleCcsCiAgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1 bV9pbmRleGVzJywgcHJvcm93cyA9PiAxMDAwLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3Jl dHR5cGUgPT4gJ3JlY29yZCcscHJvaXNzdHJpY3QgPT4gJ2YnLAogICBwcm9yZXRzZXQgPT4g J3QnLAogICBwcm9hcmd0eXBlcyA9PiAnb2lkJywKICAgcHJvYWxsYXJndHlwZXMgPT4gJ3tv aWQsb2lkLGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGlu dDgsbnVtZXJpYyxmbG9hdDgsZmxvYXQ4LGZsb2F0OCxmbG9hdDh9JywKICAgcHJvYXJnbW9k ZXMgPT4gJ3tpLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG99JywKICAgcHJvYXJn bmFtZXMgPT4gJ3tyZWxvaWQscmVsaWQsdG90YWxfYmxrc19yZWFkLHRvdGFsX2Jsa3NfaGl0 LHRvdGFsX2Jsa3NfZGlydGllZCx0b3RhbF9ibGtzX3dyaXR0ZW4scmVsX2Jsa3NfcmVhZCxy ZWxfYmxrc19oaXQscGFnZXNfZGVsZXRlZCx0dXBsZXNfZGVsZXRlZCx3YWxfcmVjb3Jkcyx3 YWxfZnBpLHdhbF9ieXRlcyxibGtfcmVhZF90aW1lLGJsa193cml0ZV90aW1lLGRlbGF5X3Rp bWUsdG90YWxfdGltZX0nLAotICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRl eGVzJyB9CisgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfdmFjdXVtX2luZGV4ZXMnIH0sCit7 IG9pZCA9PiAnODAwNScsCisgIGRlc2NyID0+ICdwZ19zdGF0X2dldF92YWN1dW1fZGF0YWJh c2UgcmV0dXJucyB2YWN1dW0gc3RhdHMgdmFsdWVzIGZvciBkYXRhYmFzZScsCisgIHByb25h bWUgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV9kYXRhYmFzZScsIHByb3Jvd3MgPT4gMTAwMCwg cHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLHByb2lzc3RyaWN0 ID0+ICdmJywKKyAgcHJvcmV0c2V0ID0+ICd0JywKKyAgcHJvYXJndHlwZXMgPT4gJ29pZCcs CisgIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLG9pZCxpbnQ4LGludDgsaW50OCxpbnQ4LGlu dDgsaW50OCxudW1lcmljLGZsb2F0OCxmbG9hdDgsZmxvYXQ4LGZsb2F0OCxpbnQ0fScsCisg IHByb2FyZ21vZGVzID0+ICd7aSxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvfScsCisgIHBy b2FyZ25hbWVzID0+ICd7ZGJpZCxkYm9pZCxkYl9ibGtzX3JlYWQsZGJfYmxrc19oaXQsdG90 YWxfYmxrc19kaXJ0aWVkLHRvdGFsX2Jsa3Nfd3JpdHRlbix3YWxfcmVjb3Jkcyx3YWxfZnBp LHdhbF9ieXRlcyxibGtfcmVhZF90aW1lLGJsa193cml0ZV90aW1lLGRlbGF5X3RpbWUsdG90 YWxfdGltZSxlcnJvcnN9JywKKyAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF92YWN1dW1fZGF0 YWJhc2UnIH0sCiBdCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaCBiL3NyYy9p bmNsdWRlL3Bnc3RhdC5oCmluZGV4IDlmZjQxNTE3ZTRmLi5hNmUyYmI0ZDQ3NSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcGdzdGF0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgK QEAgLTIwOSw2ICsyMDksOCBAQCB0eXBlZGVmIHN0cnVjdCBFeHRWYWNSZXBvcnQKIAogCWlu dDY0CQl0dXBsZXNfZGVsZXRlZDsJCS8qIHR1cGxlcyBkZWxldGVkIGJ5IHZhY3V1bSAqLwog CisJaW50MzIJCQllcnJvcnM7CisKIAlFeHRWYWNSZXBvcnRUeXBlIHR5cGU7CQkvKiBoZWFw LCBpbmRleCwgZXRjLiAqLwogCiAJLyogLS0tLS0tLS0tLQpAQCAtNzQ4LDYgKzc1MCw3IEBA IGV4dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfdmFjdXVtKE9pZCB0YWJsZW9pZCwgYm9vbCBz aGFyZWQsCiBleHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0X2FuYWx5emUoUmVsYXRpb24gcmVs LAogCQkJCQkJCQkgIFBnU3RhdF9Db3VudGVyIGxpdmV0dXBsZXMsIFBnU3RhdF9Db3VudGVy IGRlYWR0dXBsZXMsCiAJCQkJCQkJCSAgYm9vbCByZXNldGNvdW50ZXIpOworZXh0ZXJuIHZv aWQgcGdzdGF0X3JlcG9ydF92YWN1dW1fZXJyb3IoT2lkIHRhYmxlb2lkLCBFeHRWYWNSZXBv cnRUeXBlIG1fdHlwZSk7CiAKIC8qCiAgKiBJZiBzdGF0cyBhcmUgZW5hYmxlZCwgYnV0IHBl bmRpbmcgZGF0YSBoYXNuJ3QgYmVlbiBwcmVwYXJlZCB5ZXQsIGNhbGwKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggMmJlY2M3ZjM4ODUuLjlkODRmYmEzNzhjIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dApAQCAtMjI0NSw2ICsyMjQ1LDIy IEBAIHBnX3N0YXRfdXNlcl90YWJsZXN8IFNFTEVDVCByZWxpZCwKICAgICByZXZfYWxsX3Zp c2libGVfcGFnZXMKICAgIEZST00gcGdfc3RhdF9hbGxfdGFibGVzCiAgIFdIRVJFICgoc2No ZW1hbmFtZSA8PiBBTEwgKEFSUkFZWydwZ19jYXRhbG9nJzo6bmFtZSwgJ2luZm9ybWF0aW9u X3NjaGVtYSc6Om5hbWVdKSkgQU5EIChzY2hlbWFuYW1lICF+ICdecGdfdG9hc3QnOjp0ZXh0 KSk7CitwZ19zdGF0X3ZhY3V1bV9kYXRhYmFzZXwgU0VMRUNUIGRiLm9pZCBBUyBkYm9pZCwK KyAgICBkYi5kYXRuYW1lIEFTIGRibmFtZSwKKyAgICBzdGF0cy5kYl9ibGtzX3JlYWQsCisg ICAgc3RhdHMuZGJfYmxrc19oaXQsCisgICAgc3RhdHMudG90YWxfYmxrc19kaXJ0aWVkLAor ICAgIHN0YXRzLnRvdGFsX2Jsa3Nfd3JpdHRlbiwKKyAgICBzdGF0cy53YWxfcmVjb3JkcywK KyAgICBzdGF0cy53YWxfZnBpLAorICAgIHN0YXRzLndhbF9ieXRlcywKKyAgICBzdGF0cy5i bGtfcmVhZF90aW1lLAorICAgIHN0YXRzLmJsa193cml0ZV90aW1lLAorICAgIHN0YXRzLmRl bGF5X3RpbWUsCisgICAgc3RhdHMudG90YWxfdGltZSwKKyAgICBzdGF0cy5lcnJvcnMKKyAg IEZST00gcGdfZGF0YWJhc2UgZGIsCisgICAgTEFURVJBTCBwZ19zdGF0X2dldF92YWN1dW1f ZGF0YWJhc2UoZGIub2lkKSBzdGF0cyhkYm9pZCwgZGJfYmxrc19yZWFkLCBkYl9ibGtzX2hp dCwgdG90YWxfYmxrc19kaXJ0aWVkLCB0b3RhbF9ibGtzX3dyaXR0ZW4sIHdhbF9yZWNvcmRz LCB3YWxfZnBpLCB3YWxfYnl0ZXMsIGJsa19yZWFkX3RpbWUsIGJsa193cml0ZV90aW1lLCBk ZWxheV90aW1lLCB0b3RhbF90aW1lLCBlcnJvcnMpOwogcGdfc3RhdF92YWN1dW1faW5kZXhl c3wgU0VMRUNUIHJlbC5vaWQgQVMgcmVsaWQsCiAgICAgbnMubnNwbmFtZSBBUyBzY2hlbWEs CiAgICAgcmVsLnJlbG5hbWUsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGljcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3ZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Mub3V0CnNpbWlsYXJpdHkg aW5kZXggODQlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVt X3RhYmxlc19zdGF0aXN0aWNzLm91dApyZW5hbWUgdG8gc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC92YWN1dW1fdGFibGVzX2FuZF9kYl9zdGF0aXN0aWNzLm91dAppbmRleCAxMTljN2Fi ZWE1Zi4uNWVmZTg5OThhYmUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Mub3V0CkBAIC02LDcg KzYsNiBAQAogLS0gbnVtYmVyIG9mIGZyb3plbiBhbmQgdmlzaWJsZSBwYWdlcyByZW1vdmVk IGJ5IGJhY2tlbmQuCiAtLSBTdGF0aXN0aWMgd2FsX2ZwaSBpcyBub3QgZGlzcGxheWVkIGlu IHRoaXMgdGVzdCBiZWNhdXNlIGl0cyBiZWhhdmlvciBpcyB1bnN0YWJsZS4KIC0tCi0tLSBj b25kaXRpbyBzaW5lIHF1YSBub24KIFNIT1cgdHJhY2tfY291bnRzOyAgLS0gbXVzdCBiZSBv bgogIHRyYWNrX2NvdW50cyAKIC0tLS0tLS0tLS0tLS0tCkBAIC00Myw2ICs0MiwxMSBAQCBT SE9XIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzOyAgLS0gbXVzdCBiZSBvbgogIG9uCiAoMSBy b3cpCiAKK0NSRUFURSBEQVRBQkFTRSByZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGI7 CitDUkVBVEUgREFUQUJBU0UgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiMTsKK1xj IHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYjsKKy0tIG5vdCBlbmFibGVkIGJ5IGRl ZmF1bHQsIGJ1dCB3ZSB3YW50IHRvIHRlc3QgaXQuLi4KK1NFVCB0cmFja19mdW5jdGlvbnMg VE8gJ2FsbCc7CiAtLSBlbnN1cmUgcGVuZGluZyBzdGF0cyBhcmUgZmx1c2hlZAogU0VMRUNU IHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOwogIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVz aCAKQEAgLTI1OSwzICsyNjMsNjYgQEAgRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMsIHBn X3N0YXRfYWxsX3RhYmxlcyBXSEVSRSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsbmEKIFJF U0VUIHZhY3V1bV9mcmVlemVfbWluX2FnZTsKIFJFU0VUIHZhY3V1bV9mcmVlemVfdGFibGVf YWdlOwogRFJPUCBUQUJMRSB2ZXN0YXQgQ0FTQ0FERTsKKy0tIE5vdyBjaGVjayB2YWN1dW0g c3RhdGlzdGljcyBmb3IgY3VycmVudCBkYXRhYmFzZQorU0VMRUNUIGRibmFtZSwKKyAgICAg ICBkYl9ibGtzX2hpdCA+IDAgQVMgZGJfYmxrc19oaXQsCisgICAgICAgdG90YWxfYmxrc19k aXJ0aWVkID4gMCBBUyB0b3RhbF9ibGtzX2RpcnRpZWQsCisgICAgICAgdG90YWxfYmxrc193 cml0dGVuID4gMCBBUyB0b3RhbF9ibGtzX3dyaXR0ZW4sCisgICAgICAgd2FsX3JlY29yZHMg PiAwIEFTIHdhbF9yZWNvcmRzLAorICAgICAgIHdhbF9mcGkgPiAwIEFTIHdhbF9mcGksCisg ICAgICAgd2FsX2J5dGVzID4gMCBBUyB3YWxfYnl0ZXMsCisgICAgICAgdG90YWxfdGltZSA+ IDAgQVMgdG90YWxfdGltZQorRlJPTQorcGdfc3RhdF92YWN1dW1fZGF0YWJhc2UKK1dIRVJF IGRibmFtZSA9IGN1cnJlbnRfZGF0YWJhc2UoKTsKKyAgICAgICAgICAgICBkYm5hbWUgICAg ICAgICAgICAgfCBkYl9ibGtzX2hpdCB8IHRvdGFsX2Jsa3NfZGlydGllZCB8IHRvdGFsX2Js a3Nfd3JpdHRlbiB8IHdhbF9yZWNvcmRzIHwgd2FsX2ZwaSB8IHdhbF9ieXRlcyB8IHRvdGFs X3RpbWUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Npb25fc3Rh dGlzdGljX3ZhY3V1bV9kYiB8IHQgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICAgIHwg dCAgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAg IHwgdAorKDEgcm93KQorCitSRVNFVCB0cmFja192YWN1dW1fc3RhdGlzdGljczsKKy0tIGVu c3VyZSBwZW5kaW5nIHN0YXRzIGFyZSBmbHVzaGVkCitTRUxFQ1QgcGdfc3RhdF9mb3JjZV9u ZXh0X2ZsdXNoKCk7CisgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworQ1JFQVRFIFRBQkxFIHZlc3RhdCAoeCBp bnQpIFdJVEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IG9mZiwgZmlsbGZhY3RvciA9IDEwKTsK K0lOU0VSVCBJTlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpz YW1wbGVfc2l6ZSkgYXMgeDsKK0FOQUxZWkUgdmVzdGF0OworVVBEQVRFIHZlc3RhdCBTRVQg eCA9IDEwMDAxOworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4 KSB2ZXN0YXQ7CitcYyByZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGIxOworLS0gTm93 IGNoZWNrIHZhY3V1bSBzdGF0aXN0aWNzIGZvciBwb3N0Z3JlcyBkYXRhYmFzZSBmcm9tIGFu b3RoZXIgZGF0YWJhc2UKK1NFTEVDVCBkYm5hbWUsCisgICAgICAgZGJfYmxrc19oaXQgPiAw IEFTIGRiX2Jsa3NfaGl0LAorICAgICAgIHRvdGFsX2Jsa3NfZGlydGllZCA+IDAgQVMgdG90 YWxfYmxrc19kaXJ0aWVkLAorICAgICAgIHRvdGFsX2Jsa3Nfd3JpdHRlbiA+IDAgQVMgdG90 YWxfYmxrc193cml0dGVuLAorICAgICAgIHdhbF9yZWNvcmRzID4gMCBBUyB3YWxfcmVjb3Jk cywKKyAgICAgICB3YWxfZnBpID4gMCBBUyB3YWxfZnBpLAorICAgICAgIHdhbF9ieXRlcyA+ IDAgQVMgd2FsX2J5dGVzLAorICAgICAgIHRvdGFsX3RpbWUgPiAwIEFTIHRvdGFsX3RpbWUK K0ZST00KK3BnX3N0YXRfdmFjdXVtX2RhdGFiYXNlCitXSEVSRSBkYm5hbWUgPSAncmVncmVz c2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiJzsKKyAgICAgICAgICAgICBkYm5hbWUgICAgICAg ICAgICAgfCBkYl9ibGtzX2hpdCB8IHRvdGFsX2Jsa3NfZGlydGllZCB8IHRvdGFsX2Jsa3Nf d3JpdHRlbiB8IHdhbF9yZWNvcmRzIHwgd2FsX2ZwaSB8IHdhbF9ieXRlcyB8IHRvdGFsX3Rp bWUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Npb25fc3RhdGlz dGljX3ZhY3V1bV9kYiB8IHQgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICAgIHwgdCAg ICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwg dAorKDEgcm93KQorCitcYyByZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGIKK0RST1Ag VEFCTEUgdmVzdGF0IENBU0NBREU7CitcYyByZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1f ZGIxOworU0VMRUNUIGNvdW50KCopCitGUk9NIHBnX2RhdGFiYXNlIGQKK0NST1NTIEpPSU4g cGdfc3RhdF9nZXRfdmFjdXVtX3RhYmxlcygwKQorV0hFUkUgb2lkID0gMDsgLS0gbXVzdCBi ZSAwCisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworXGMgcG9zdGdyZXMK K0RST1AgREFUQUJBU0UgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiMTsKK0RST1Ag REFUQUJBU0UgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiOwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3Mv cGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggOTc3YTg3YTViMWYuLjE5Yzc2Yjk2ODMwIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTE0MSw0ICsxNDEsNCBAQCB0ZXN0 OiB0YWJsZXNwYWNlCiAjIENoZWNrIHZhY3V1bSBzdGF0aXN0aWNzCiAjIC0tLS0tLS0tLS0K IHRlc3Q6IHZhY3V1bV9pbmRleF9zdGF0aXN0aWNzCi10ZXN0OiB2YWN1dW1fdGFibGVzX3N0 YXRpc3RpY3MKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit0ZXN0OiB2YWN1dW1fdGFi bGVzX2FuZF9kYl9zdGF0aXN0aWNzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNz LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRp c3RpY3Muc3FsCnNpbWlsYXJpdHkgaW5kZXggODQlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGljcy5zcWwKcmVuYW1lIHRvIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Muc3FsCmlu ZGV4IGRmZDdhZjcwMDI3Li5kMGU0YTIwMTRjNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzLnNxbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC92YWN1dW1fdGFibGVzX2FuZF9kYl9zdGF0aXN0aWNzLnNxbApAQCAtNyw3 ICs3LDYgQEAKIC0tIFN0YXRpc3RpYyB3YWxfZnBpIGlzIG5vdCBkaXNwbGF5ZWQgaW4gdGhp cyB0ZXN0IGJlY2F1c2UgaXRzIGJlaGF2aW9yIGlzIHVuc3RhYmxlLgogLS0KIAotLS0gY29u ZGl0aW8gc2luZSBxdWEgbm9uCiBTSE9XIHRyYWNrX2NvdW50czsgIC0tIG11c3QgYmUgb24K IFxzZXQgc2FtcGxlX3NpemUgMTAwMDAKIApAQCAtMzgsNiArMzcsMTMgQEAgRFJPUCBUQUJM RSB2ZXN0YXQgQ0FTQ0FERTsKIAogU0hPVyB0cmFja192YWN1dW1fc3RhdGlzdGljczsgIC0t IG11c3QgYmUgb24KIAorQ1JFQVRFIERBVEFCQVNFIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3Zh Y3V1bV9kYjsKK0NSRUFURSBEQVRBQkFTRSByZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1f ZGIxOworXGMgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiOworCistLSBub3QgZW5h YmxlZCBieSBkZWZhdWx0LCBidXQgd2Ugd2FudCB0byB0ZXN0IGl0Li4uCitTRVQgdHJhY2tf ZnVuY3Rpb25zIFRPICdhbGwnOworCiAtLSBlbnN1cmUgcGVuZGluZyBzdGF0cyBhcmUgZmx1 c2hlZAogU0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOwogCkBAIC0xOTAsMyAr MTk2LDU1IEBAIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzLCBwZ19zdGF0X2FsbF90YWJs ZXMgV0hFUkUgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbG5hCiBSRVNFVCB2YWN1dW1fZnJl ZXplX21pbl9hZ2U7CiBSRVNFVCB2YWN1dW1fZnJlZXplX3RhYmxlX2FnZTsKIERST1AgVEFC TEUgdmVzdGF0IENBU0NBREU7CistLSBOb3cgY2hlY2sgdmFjdXVtIHN0YXRpc3RpY3MgZm9y IGN1cnJlbnQgZGF0YWJhc2UKK1NFTEVDVCBkYm5hbWUsCisgICAgICAgZGJfYmxrc19oaXQg PiAwIEFTIGRiX2Jsa3NfaGl0LAorICAgICAgIHRvdGFsX2Jsa3NfZGlydGllZCA+IDAgQVMg dG90YWxfYmxrc19kaXJ0aWVkLAorICAgICAgIHRvdGFsX2Jsa3Nfd3JpdHRlbiA+IDAgQVMg dG90YWxfYmxrc193cml0dGVuLAorICAgICAgIHdhbF9yZWNvcmRzID4gMCBBUyB3YWxfcmVj b3JkcywKKyAgICAgICB3YWxfZnBpID4gMCBBUyB3YWxfZnBpLAorICAgICAgIHdhbF9ieXRl cyA+IDAgQVMgd2FsX2J5dGVzLAorICAgICAgIHRvdGFsX3RpbWUgPiAwIEFTIHRvdGFsX3Rp bWUKK0ZST00KK3BnX3N0YXRfdmFjdXVtX2RhdGFiYXNlCitXSEVSRSBkYm5hbWUgPSBjdXJy ZW50X2RhdGFiYXNlKCk7CisKK1JFU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzOworCist LSBlbnN1cmUgcGVuZGluZyBzdGF0cyBhcmUgZmx1c2hlZAorU0VMRUNUIHBnX3N0YXRfZm9y Y2VfbmV4dF9mbHVzaCgpOworCitDUkVBVEUgVEFCTEUgdmVzdGF0ICh4IGludCkgV0lUSCAo YXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmLCBmaWxsZmFjdG9yID0gMTApOworSU5TRVJUIElO VE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXpl KSBhcyB4OworQU5BTFlaRSB2ZXN0YXQ7CitVUERBVEUgdmVzdGF0IFNFVCB4ID0gMTAwMDE7 CitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgpIHZlc3RhdDsK KworXGMgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiMTsKKworLS0gTm93IGNoZWNr IHZhY3V1bSBzdGF0aXN0aWNzIGZvciBwb3N0Z3JlcyBkYXRhYmFzZSBmcm9tIGFub3RoZXIg ZGF0YWJhc2UKK1NFTEVDVCBkYm5hbWUsCisgICAgICAgZGJfYmxrc19oaXQgPiAwIEFTIGRi X2Jsa3NfaGl0LAorICAgICAgIHRvdGFsX2Jsa3NfZGlydGllZCA+IDAgQVMgdG90YWxfYmxr c19kaXJ0aWVkLAorICAgICAgIHRvdGFsX2Jsa3Nfd3JpdHRlbiA+IDAgQVMgdG90YWxfYmxr c193cml0dGVuLAorICAgICAgIHdhbF9yZWNvcmRzID4gMCBBUyB3YWxfcmVjb3JkcywKKyAg ICAgICB3YWxfZnBpID4gMCBBUyB3YWxfZnBpLAorICAgICAgIHdhbF9ieXRlcyA+IDAgQVMg d2FsX2J5dGVzLAorICAgICAgIHRvdGFsX3RpbWUgPiAwIEFTIHRvdGFsX3RpbWUKK0ZST00K K3BnX3N0YXRfdmFjdXVtX2RhdGFiYXNlCitXSEVSRSBkYm5hbWUgPSAncmVncmVzc2lvbl9z dGF0aXN0aWNfdmFjdXVtX2RiJzsKKworXGMgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVt X2RiCisKK0RST1AgVEFCTEUgdmVzdGF0IENBU0NBREU7CisKK1xjIHJlZ3Jlc3Npb25fc3Rh dGlzdGljX3ZhY3V1bV9kYjE7CitTRUxFQ1QgY291bnQoKikKK0ZST00gcGdfZGF0YWJhc2Ug ZAorQ1JPU1MgSk9JTiBwZ19zdGF0X2dldF92YWN1dW1fdGFibGVzKDApCitXSEVSRSBvaWQg PSAwOyAtLSBtdXN0IGJlIDAKKworXGMgcG9zdGdyZXMKK0RST1AgREFUQUJBU0UgcmVncmVz c2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiMTsKK0RST1AgREFUQUJBU0UgcmVncmVzc2lvbl9z dGF0aXN0aWNfdmFjdXVtX2RiOwotLSAKMi4zNC4xCgo= --------------g7I0Wbo7Ykyo94XxnooGxlss Content-Type: text/x-patch; charset=UTF-8; name="v14-0004-Add-documentation-about-the-system-views.patch" Content-Disposition: attachment; filename="v14-0004-Add-documentation-about-the-system-views.patch" Content-Transfer-Encoding: base64 RnJvbSBlMWM3OGEzZjNhYTQ1YWQ1ZjFmYzU0NjZmODNjZTgyZWI0YWQ0YmZjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogVGh1LCAxOSBEZWMgMjAyNCAxMjo1Nzo0OSArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggNC80XSBBZGQgZG9jdW1lbnRhdGlvbiBhYm91dCB0aGUgc3lzdGVtIHZp ZXdzCiB0aGF0IGFyZSB1c2VkIGluIHRoZSBtYWNoaW5lcnkgb2YgdmFjdXVtIHN0YXRpc3Rp Y3MuCgotLS0KIGRvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbCB8IDczNyArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA3MzcgaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbCBi L2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbAppbmRleCBhNTg2MTU2NjE0ZC4uNjBj ZTAzNWU2MGYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwKQEAgLTUwNjYsNCArNTA2Niw3 NDEgQEAgU0VMRUNUICogRlJPTSBwZ19sb2NrcyBwbCBMRUZUIEpPSU4gcGdfcHJlcGFyZWRf eGFjdHMgcHB4CiAgIDwvdGFibGU+CiAgPC9zZWN0MT4KIAorPHNlY3QxIGlkPSJ2aWV3LXBn LXN0YXQtZ2V0LXZhY3V1bS1kYXRhYmFzZSI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19z dGF0X2dldF92YWN1dW1fZGF0YWJhc2U8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5k ZXh0ZXJtIHpvbmU9InZpZXctcGctc3RhdC1nZXQtdmFjdXVtLWRhdGFiYXNlIj4KKyAgIDxw cmltYXJ5PnBnX3N0YXRfZ2V0X3ZhY3V1bV9kYXRhYmFzZTwvcHJpbWFyeT4KKyAgPC9pbmRl eHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgdmlldyA8c3RydWN0bmFtZT5wZ19zdGF0X2dl dF92YWN1dW1fZGF0YWJhc2U8L3N0cnVjdG5hbWU+IHdpbGwgY29udGFpbgorICAgb25lIHJv dyBmb3IgZWFjaCBkYXRhYmFzZSBpbiB0aGUgY3VycmVudCBjbHVzdGVyLCBzaG93aW5nIHN0 YXRpc3RpY3MgYWJvdXQKKyAgIHZhY3V1bWluZyB0aGF0IGRhdGFiYXNlLgorICA8L3BhcmE+ CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3N0YXRfZ2V0X3ZhY3V1 bV9kYXRhYmFzZTwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNv bHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAg PC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPmRiaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBPSUQgb2YgYSBkYXRh YmFzZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9ibGtzX3Jl YWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiBkYXRhYmFzZSBibG9ja3MgcmVhZCBieSB2 YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyBkYXRhYmFzZQor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9ibGtzX2hpdDwvc3Ry dWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICAgTnVtYmVyIG9mIHRpbWVzIGRhdGFiYXNlIGJsb2NrcyB3ZXJlIGZvdW5k IGluIHRoZQorICAgICAgICBidWZmZXIgY2FjaGUgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAg ICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgZGF0YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+dG90YWxfYmxrc19kaXJ0aWVkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1i ZXIgb2YgZGF0YWJhc2UgYmxvY2tzIGRpcnRpZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAg ICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgZGF0YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+dG90YWxfYmxrc193cml0dGVuPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1i ZXIgb2YgZGF0YWJhc2UgYmxvY2tzIHdyaXR0ZW4gYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAg ICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgZGF0YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+d2FsX3JlY29yZHM8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRvdGFsIG51bWJl ciBvZiBXQUwgcmVjb3JkcyBnZW5lcmF0ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAg ICAgcGVyZm9ybWVkIG9uIHRoaXMgZGF0YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+d2FsX2ZwaTwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+Cisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVG90YWwgbnVtYmVyIG9mIFdB TCBmdWxsIHBhZ2UgaW1hZ2VzIGdlbmVyYXRlZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAg ICAgICBwZXJmb3JtZWQgb24gdGhpcyBkYXRhYmFzZQorICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD53YWxfYnl0ZXM8L3N0cnVjdGZpZWxkPiA8dHlwZT5udW1lcmljPC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRvdGFsIGFtb3Vu dCBvZiBXQUwgYnl0ZXMgZ2VuZXJhdGVkIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAg IHBlcmZvcm1lZCBvbiB0aGlzIGRhdGFiYXNlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPmJsa19yZWFkX3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCBy ZWFkaW5nIGRhdGFiYXNlIGJsb2NrcyBieSB2YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQg b24KKyAgICAgICAgdGhpcyBkYXRhYmFzZSwgaW4gbWlsbGlzZWNvbmRzIChpZiA8eHJlZiBs aW5rZW5kPSJndWMtdHJhY2staW8tdGltaW5nIi8+IGlzIGVuYWJsZWQsCisgICAgICAgIG90 aGVyd2lzZSB6ZXJvKQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisg ICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ibGtf d3JpdGVfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUaW1lIHNwZW50IHdyaXRpbmcgZGF0YWJh c2UgYmxvY2tzIGJ5IHZhY3V1bSBvcGVyYXRpb25zIHBlcmZvcm1lZCBvbgorICAgICAgICB0 aGlzIGRhdGFiYXNlLCBpbiBtaWxsaXNlY29uZHMgKGlmIDx4cmVmIGxpbmtlbmQ9Imd1Yy10 cmFjay1pby10aW1pbmciLz4gaXMgZW5hYmxlZCwKKyAgICAgICAgb3RoZXJ3aXNlIHplcm8p CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmRlbGF5X3RpbWU8L3N0cnVj dGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICAgVGltZSBzcGVudCBzbGVlcGluZyBpbiBhIHZhY3V1bSBkZWxheSBwb2lu dCBieSB2YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24KKyAgICAgICAgdGhpcyBkYXRh YmFzZSwgaW4gbWlsbGlzZWNvbmRzIChzZWUgPHhyZWYgbGlua2VuZD0icnVudGltZS1jb25m aWctcmVzb3VyY2UtdmFjdXVtLWNvc3QiLz4KKyAgICAgICAgZm9yIGRldGFpbHMpCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnN5c3RlbV90aW1lPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgIFN5c3RlbSBDUFUgdGltZSBvZiB2YWN1dW1pbmcgdGhpcyBkYXRhYmFzZSwgaW4g bWlsbGlzZWNvbmRzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnVzZXJf dGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgICBVc2VyIENQVSB0aW1lIG9mIHZhY3V1bWluZyB0aGlz IGRhdGFiYXNlLCBpbiBtaWxsaXNlY29uZHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+dG90YWxfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlwZT4K KyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUb3RhbCB0aW1lIG9mIHZh Y3V1bWluZyB0aGlzIGRhdGFiYXNlLCBpbiBtaWxsaXNlY29uZHMKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+ZXJyb3JzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50NDwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2Yg dGltZXMgdmFjdXVtIG9wZXJhdGlvbnMgcGVyZm9ybWVkIG9uIHRoaXMgZGF0YWJhc2UKKyAg ICAgICAgd2VyZSBpbnRlcnJ1cHRlZCBvbiBhbnkgZXJyb3JzCisgICAgICA8L3BhcmE+PC9l bnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3Rh YmxlPgorIDwvc2VjdDE+CisKKyAgPHNlY3QxIGlkPSJ2aWV3LXBnLXN0YXQtZ2V0LXZhY3V1 bS1pbmRleGVzIj4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3N0YXRfZ2V0X3ZhY3V1bV9p bmRleGVzPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25lPSJ2aWV3 LXBnLXN0YXQtZ2V0LXZhY3V1bS1pbmRleGVzIj4KKyAgIDxwcmltYXJ5PnBnX3N0YXRfZ2V0 X3ZhY3V1bV9pbmRleGVzPC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8cGFyYT4K KyAgIFRoZSB2aWV3IDxzdHJ1Y3RuYW1lPnBnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRleGVzPC9z dHJ1Y3RuYW1lPiB3aWxsIGNvbnRhaW4KKyAgIG9uZSByb3cgZm9yIGVhY2ggaW5kZXggaW4g dGhlIGN1cnJlbnQgZGF0YWJhc2UgKGluY2x1ZGluZyBUT0FTVAorICAgdGFibGUgaW5kZXhl cyksIHNob3dpbmcgc3RhdGlzdGljcyBhYm91dCB2YWN1dW1pbmcgdGhhdCBzcGVjaWZpYyBp bmRleC4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5w Z19zdGF0X2dldF92YWN1dW1faW5kZXhlczwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+ CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnJlbGlkPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgT0lEIG9mIGFuIGluZGV4CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PnNjaGVtYTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICAgTmFtZSBvZiB0aGUgc2NoZW1hIHRoaXMgaW5kZXgg aXMgaW4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cmVsbmFtZTwvc3Ry dWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBOYW1lIG9mIHRoaXMgaW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+dG90YWxfYmxrc19yZWFkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2Yg ZGF0YWJhc2UgYmxvY2tzIHJlYWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVy Zm9ybWVkIG9uIHRoaXMgaW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+dG90YWxfYmxrc19oaXQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiB0aW1lcyBkYXRh YmFzZSBibG9ja3Mgd2VyZSBmb3VuZCBpbiB0aGUKKyAgICAgICAgYnVmZmVyIGNhY2hlIGJ5 IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIGluZGV4Cisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX2Jsa3NfZGlydGllZDwv c3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIGRhdGFiYXNlIGJsb2NrcyBkaXJ0aWVkIGJ5IHZh Y3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIGluZGV4CisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX2Jsa3Nfd3JpdHRlbjwvc3Ry dWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICAgTnVtYmVyIG9mIGRhdGFiYXNlIGJsb2NrcyB3cml0dGVuIGJ5IHZhY3V1 bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIGluZGV4CisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnJlbF9ibGtzX3JlYWQ8L3N0cnVjdGZpZWxk PiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgIE51bWJlciBvZiBibG9ja3MgdmFjdXVtIG9wZXJhdGlvbnMgcmVhZCBmcm9tIHRoaXMK KyAgICAgICAgaW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cmVs X2Jsa3NfaGl0PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgdGltZXMgYmxvY2tzIG9mIHRo aXMgaW5kZXggd2VyZSBhbHJlYWR5IGZvdW5kCisgICAgICAgIGluIHRoZSBidWZmZXIgY2Fj aGUgYnkgdmFjdXVtIG9wZXJhdGlvbnMsIHNvIHRoYXQgYSByZWFkIHdhcyBub3QgbmVjZXNz YXJ5CisgICAgICAgICh0aGlzIG9ubHkgaW5jbHVkZXMgaGl0cyBpbiB0aGUKKyAgICAgICAg cHJvamVjdDsgYnVmZmVyIGNhY2hlLCBub3QgdGhlIG9wZXJhdGluZyBzeXN0ZW0ncyBmaWxl IHN5c3RlbSBjYWNoZSkKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGFn ZXNfZGVsZXRlZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHBhZ2VzIGRlbGV0ZWQgYnkg dmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgaW5kZXgKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dHVwbGVzX2RlbGV0ZWQ8L3N0cnVj dGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgIE51bWJlciBvZiBkZWFkIHR1cGxlcyB2YWN1dW0gb3BlcmF0aW9ucyBkZWxl dGVkIGZyb20gdGhpcyBpbmRleAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD53YWxfcmVjb3Jkczwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVG90YWwgbnVtYmVyIG9mIFdBTCByZWNv cmRzIGdlbmVyYXRlZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQg b24gdGhpcyBpbmRleAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisg ICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD53YWxf ZnBpPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgICBUb3RhbCBudW1iZXIgb2YgV0FMIGZ1bGwgcGFnZSBpbWFn ZXMgZ2VuZXJhdGVkIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBv biB0aGlzIGluZGV4CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPndhbF9i eXRlczwvc3RydWN0ZmllbGQ+IDx0eXBlPm51bWVyaWM8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICAgVG90YWwgYW1vdW50IG9mIFdBTCBieXRlcyBnZW5l cmF0ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMg aW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+YmxrX3JlYWRfdGlt ZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCByZWFkaW5nIGRhdGFiYXNlIGJsb2NrcyBi eSB2YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24KKyAgICAgICAgdGhpcyBpbmRleCwg aW4gbWlsbGlzZWNvbmRzIChpZiA8eHJlZiBsaW5rZW5kPSJndWMtdHJhY2staW8tdGltaW5n Ii8+IGlzIGVuYWJsZWQsCisgICAgICAgIG90aGVyd2lzZSB6ZXJvKQorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ibGtfd3JpdGVfdGltZTwvc3RydWN0ZmllbGQ+IDx0 eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAg VGltZSBzcGVudCB3cml0aW5nIGRhdGFiYXNlIGJsb2NrcyBieSB2YWN1dW0gb3BlcmF0aW9u cyBwZXJmb3JtZWQgb24KKyAgICAgICAgdGhpcyBpbmRleCwgaW4gbWlsbGlzZWNvbmRzIChp ZiA8eHJlZiBsaW5rZW5kPSJndWMtdHJhY2staW8tdGltaW5nIi8+IGlzIGVuYWJsZWQsCisg ICAgICAgIG90aGVyd2lzZSB6ZXJvKQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD5kZWxheV90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRpbWUgc3BlbnQgc2xlZXBpbmcg aW4gYSB2YWN1dW0gZGVsYXkgcG9pbnQgYnkgdmFjdXVtIG9wZXJhdGlvbnMgcGVyZm9ybWVk IG9uCisgICAgICAgIHRoaXMgaW5kZXgsIGluIG1pbGxpc2Vjb25kcyAoc2VlIDx4cmVmIGxp bmtlbmQ9InJ1bnRpbWUtY29uZmlnLXJlc291cmNlLXZhY3V1bS1jb3N0Ii8+CisgICAgICAg IGZvciBkZXRhaWxzKQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisg ICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5zeXN0 ZW1fdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgICBTeXN0ZW0gQ1BVIHRpbWUgb2YgdmFjdXVtaW5n IHRoaXMgaW5kZXgsIGluIG1pbGxpc2Vjb25kcworICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD51c2VyX3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVXNlciBDUFUgdGltZSBv ZiB2YWN1dW1pbmcgdGhpcyBpbmRleCwgaW4gbWlsbGlzZWNvbmRzCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5m bG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVG90 YWwgdGltZSBvZiB2YWN1dW1pbmcgdGhpcyBpbmRleCwgaW4gbWlsbGlzZWNvbmRzCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICA8L3Rib2R5PgorICAgPC90 Z3JvdXA+CisgIDwvdGFibGU+CisgPC9zZWN0MT4KKworIDxzZWN0MSBpZD0idmlldy1wZy1z dGF0LWdldC12YWN1dW0tdGFibGVzIj4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3N0YXRf Z2V0X3ZhY3V1bV90YWJsZXM8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJt IHpvbmU9InZpZXctcGctc3RhdC1nZXQtdmFjdXVtLXRhYmxlcyI+CisgICA8cHJpbWFyeT5w Z19zdGF0X2dldF92YWN1dW1fdGFibGVzPC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKwor ICA8cGFyYT4KKyAgIFRoZSB2aWV3IDxzdHJ1Y3RuYW1lPnBnX3N0YXRfZ2V0X3ZhY3V1bV90 YWJsZXM8L3N0cnVjdG5hbWU+IHdpbGwgY29udGFpbgorICAgb25lIHJvdyBmb3IgZWFjaCB0 YWJsZSBpbiB0aGUgY3VycmVudCBkYXRhYmFzZSAoaW5jbHVkaW5nIFRPQVNUCisgICB0YWJs ZXMpLCBzaG93aW5nIHN0YXRpc3RpY3MgYWJvdXQgdmFjdXVtaW5nIHRoYXQgc3BlY2lmaWMg dGFibGUuCisgIDwvcGFyYT4KKworICA8dGFibGU+CisgICA8dGl0bGU+PHN0cnVjdG5hbWU+ cGdfc3RhdF9nZXRfdmFjdXVtX3RhYmxlczwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+ CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnJlbGlkPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgT0lEIG9mIGEgdGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ c2NoZW1hPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+bmFtZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgICBOYW1lIG9mIHRoZSBzY2hlbWEgdGhpcyB0YWJsZSBp cyBpbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5yZWxuYW1lPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+bmFtZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJh PgorICAgICAgIE5hbWUgb2YgdGhpcyB0YWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD50b3RhbF9ibGtzX3JlYWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiBk YXRhYmFzZSBibG9ja3MgcmVhZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJm b3JtZWQgb24gdGhpcyB0YWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD50b3RhbF9ibGtzX2hpdDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRpbWVzIGRhdGFi YXNlIGJsb2NrcyB3ZXJlIGZvdW5kIGluIHRoZQorICAgICAgICBidWZmZXIgY2FjaGUgYnkg dmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgdGFibGUKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfYmxrc19kaXJ0aWVkPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgICBOdW1iZXIgb2YgYmxvY2tzIHdyaXR0ZW4gZGlyZWN0bHkgYnkgdmFj dXVtIG9yIGF1dG8gdmFjdXVtLiAKKyAgICAgICAgQmxvY2tzIHRoYXQgYXJlIGRpcnRpZWQg YnkgYSB2YWN1dW0gcHJvY2VzcyBjYW4gYmUgd3JpdHRlbiBvdXQgYnkgYW5vdGhlciBwcm9j ZXNzLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9ibGtzX3dy aXR0ZW48L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiBkYXRhYmFzZSBibG9ja3Mgd3JpdHRl biBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyB0YWJs ZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5yZWxfYmxrc19yZWFkPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgICBOdW1iZXIgb2YgYmxvY2tzIHZhY3V1bSBvcGVyYXRpb25zIHJlYWQg ZnJvbSB0aGlzCisgICAgICAgIHRhYmxlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnJlbF9ibGtzX2hpdDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+Cisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRpbWVzIGJs b2NrcyBvZiB0aGlzIHRhYmxlIHdlcmUgYWxyZWFkeSBmb3VuZAorICAgICAgICBpbiB0aGUg YnVmZmVyIGNhY2hlIGJ5IHZhY3V1bSBvcGVyYXRpb25zLCBzbyB0aGF0IGEgcmVhZCB3YXMg bm90IG5lY2Vzc2FyeQorICAgICAgICAodGhpcyBvbmx5IGluY2x1ZGVzIGhpdHMgaW4gdGhl CisgICAgICAgIHByb2plY3Q7IGJ1ZmZlciBjYWNoZSwgbm90IHRoZSBvcGVyYXRpbmcgc3lz dGVtJ3MgZmlsZSBzeXN0ZW0gY2FjaGUpCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnBhZ2VzX3NjYW5uZWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiBwYWdlcyBl eGFtaW5lZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhp cyB0YWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wYWdlc19yZW1v dmVkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgcGFnZXMgcmVtb3ZlZCBmcm9tIHRoZSBw aHlzaWNhbCBzdG9yYWdlIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1l ZCBvbiB0aGlzIHRhYmxlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZt X25ld19mcm96ZW5fcGFnZXM8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiB0aGUgbnVtYmVy IG9mIHBhZ2VzIG5ld2x5IHNldCBhbGwtZnJvemVuIGJ5IHZhY3V1bQorICAgICAgICBpbiB0 aGUgdmlzaWJpbGl0eSBtYXAuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PnZtX25ld192aXNpYmxlX3BhZ2VzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4K KyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgdGhlIG51 bWJlciBvZiBwYWdlcyBuZXdseSBzZXQgYWxsLXZpc2libGUgYnkgdmFjdXVtCisgICAgICAg IGluIHRoZSB2aXNpYmlsaXR5IG1hcC4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1i ZXIgb2YgdGhlIG51bWJlciBvZiBwYWdlcyBuZXdseSBzZXQgYWxsLXZpc2libGUgYW5kIGFs bC1mcm96ZW4KKyAgICAgICAgYnkgdmFjdXVtIGluIHRoZSB2aXNpYmlsaXR5IG1hcC4KKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dHVwbGVzX2RlbGV0ZWQ8L3N0cnVj dGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgIE51bWJlciBvZiBkZWFkIHR1cGxlcyB2YWN1dW0gb3BlcmF0aW9ucyBkZWxl dGVkIGZyb20gdGhpcyB0YWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD50dXBsZXNfZnJvemVuPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgdHVwbGVzIG9mIHRo aXMgdGFibGUgdGhhdCB2YWN1dW0gb3BlcmF0aW9ucyBtYXJrZWQgYXMKKyAgICAgICAgZnJv emVuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnJlY2VudGx5X2RlYWRf dHVwbGVzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGVhZCB0dXBsZXMgdmFjdXVtIG9w ZXJhdGlvbnMgbGVmdCBpbiB0aGlzIHRhYmxlIGR1ZQorICAgICAgICB0byB0aGVpciB2aXNp YmlsaXR5IGluIHRyYW5zYWN0aW9ucworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPm1pc3NlZF9kZWFkX3R1cGxlczwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIGZ1bGx5 IERFQUQgKG5vdCBqdXN0IFJFQ0VOVExZX0RFQUQpIHR1cGxlcyAgdGhhdCBjb3VsZCBub3Qg YmUKKyAgICAgICAgcHJ1bmVkIGR1ZSB0byBmYWlsdXJlIHRvIGFjcXVpcmUgYSBjbGVhbnVw IGxvY2sgb24gYSBoZWFwIHBhZ2UuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPmluZGV4X3ZhY3V1bV9jb3VudDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRpbWVz IGluZGV4ZXMgb24gdGhpcyB0YWJsZSB3ZXJlIHZhY3V1bWVkCisgICAgICA8L3BhcmE+PC9l bnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPm1pc3NlZF9kZWFkX3BhZ2VzPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBO dW1iZXIgb2YgcGFnZXMgdGhhdCBoYWQgYXQgbGVhc3Qgb25lIG1pc3NlZF9kZWFkX3R1cGxl cy4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX3JlY29yZHM8L3N0 cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgIFRvdGFsIG51bWJlciBvZiBXQUwgcmVjb3JkcyBnZW5lcmF0ZWQgYnkg dmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgdGFibGUKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX2ZwaTwvc3RydWN0ZmllbGQ+ IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICAgVG90YWwgbnVtYmVyIG9mIFdBTCBmdWxsIHBhZ2UgaW1hZ2VzIGdlbmVyYXRlZCBieSB2 YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyB0YWJsZQorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD53YWxfYnl0ZXM8L3N0cnVjdGZpZWxk PiA8dHlwZT5udW1lcmljPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgIFRvdGFsIGFtb3VudCBvZiBXQUwgYnl0ZXMgZ2VuZXJhdGVkIGJ5IHZhY3V1bSBv cGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIHRhYmxlCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPmJsa19yZWFkX3RpbWU8L3N0cnVjdGZpZWxkPiA8 dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg IFRpbWUgc3BlbnQgcmVhZGluZyBkYXRhYmFzZSBibG9ja3MgYnkgdmFjdXVtIG9wZXJhdGlv bnMgcGVyZm9ybWVkIG9uCisgICAgICAgIHRoaXMgdGFibGUsIGluIG1pbGxpc2Vjb25kcyAo aWYgPHhyZWYgbGlua2VuZD0iZ3VjLXRyYWNrLWlvLXRpbWluZyIvPiBpcyBlbmFibGVkLAor ICAgICAgICBvdGhlcndpc2UgemVybykKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+YmxrX3dyaXRlX3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRpbWUgc3BlbnQgd3JpdGlu ZyBkYXRhYmFzZSBibG9ja3MgYnkgdmFjdXVtIG9wZXJhdGlvbnMgcGVyZm9ybWVkIG9uCisg ICAgICAgIHRoaXMgdGFibGUsIGluIG1pbGxpc2Vjb25kcyAoaWYgPHhyZWYgbGlua2VuZD0i Z3VjLXRyYWNrLWlvLXRpbWluZyIvPiBpcyBlbmFibGVkLAorICAgICAgICBvdGhlcndpc2Ug emVybykKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ZGVsYXlfdGltZTwv c3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgICBUaW1lIHNwZW50IHNsZWVwaW5nIGluIGEgdmFjdXVtIGRlbGF5 IHBvaW50IGJ5IHZhY3V1bSBvcGVyYXRpb25zIHBlcmZvcm1lZCBvbgorICAgICAgICB0aGlz IHRhYmxlLCBpbiBtaWxsaXNlY29uZHMgKHNlZSA8eHJlZiBsaW5rZW5kPSJydW50aW1lLWNv bmZpZy1yZXNvdXJjZS12YWN1dW0tY29zdCIvPgorICAgICAgICBmb3IgZGV0YWlscykKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+c3lzdGVtX3RpbWU8L3N0cnVjdGZp ZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICAgU3lzdGVtIENQVSB0aW1lIG9mIHZhY3V1bWluZyB0aGlzIHRhYmxlLCBpbiBt aWxsaXNlY29uZHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dXNlcl90 aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgIFVzZXIgQ1BVIHRpbWUgb2YgdmFjdXVtaW5nIHRoaXMg dGFibGUsIGluIG1pbGxpc2Vjb25kcworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD50b3RhbF90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRvdGFsIHRpbWUgb2YgdmFjdXVt aW5nIHRoaXMgdGFibGUsIGluIG1pbGxpc2Vjb25kcworICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgIDwvcm93PgorCisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxl PgorICA8cGFyYT5Db2x1bW5zIDxzdHJ1Y3RmaWVsZD50b3RhbF8qPC9zdHJ1Y3RmaWVsZD4s IDxzdHJ1Y3RmaWVsZD53YWxfKjwvc3RydWN0ZmllbGQ+CisgICAgYW5kIDxzdHJ1Y3RmaWVs ZD5ibGtfKjwvc3RydWN0ZmllbGQ+IGluY2x1ZGUgZGF0YSBvbiB2YWN1dW1pbmcgaW5kZXhl cyBvbiB0aGlzIHRhYmxlLCB3aGlsZSBjb2x1bW5zCisgICAgPHN0cnVjdGZpZWxkPnN5c3Rl bV90aW1lPC9zdHJ1Y3RmaWVsZD4gYW5kIDxzdHJ1Y3RmaWVsZD51c2VyX3RpbWU8L3N0cnVj dGZpZWxkPiBvbmx5IGluY2x1ZGUgZGF0YQorICAgIG9uIHZhY3V1bWluZyB0aGUgaGVhcC48 L3BhcmE+CisgPC9zZWN0MT4KIDwvY2hhcHRlcj4KLS0gCjIuMzQuMQoK --------------g7I0Wbo7Ykyo94XxnooGxlss--