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 1siFeu-001CB1-Oj for pgsql-hackers@arkaria.postgresql.org; Sun, 25 Aug 2024 16:00:06 +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 1siFes-00GYna-QX for pgsql-hackers@arkaria.postgresql.org; Sun, 25 Aug 2024 16:00:03 +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 1siFer-00GYnO-KQ for pgsql-hackers@lists.postgresql.org; Sun, 25 Aug 2024 16:00:02 +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 1siFeh-001No5-R3 for pgsql-hackers@postgresql.org; Sun, 25 Aug 2024 16:00:00 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1724601587; bh=1hPsda2d7PiCvRJGtGbiJPk7iXdtQYIZNeNUq5BD61U=; h=Message-ID:Date:User-Agent:Subject:To:Cc:References:From: In-Reply-To:From; b=Qr1lVRt1dx489w4G3a6IzTp25n+NgQpBMvcifi9RvXTQZ7tgwl3OnC6lz6mxL0khn 6dJyn2kiEk9fkB3noXDkn0y0O/fGNDSabhLAlBtV/EjugDln2Y/HKnyaGVtPR30scx BJoE4xExJOkIVEIU1MpM6neHhPyzFijLgSYNNNrtoHkbQVsWDyUE8VlvbcCiD5BzqD jXW5Kh/It5ukYAWzixXpB8EV8s33G8vT4j+brdWh5cMQssib4bTlGi8eizaf3aSyvI HSohRsMoAvOEStQo2tYJFXHigiLqloOgbHm4EIent5qI/Hf/LFBWh4fHST1L9yZBIh J5yLcXS9GPktQ== Received: from [192.168.15.77] (unknown [45.137.112.9]) (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 1454460195; Sun, 25 Aug 2024 18:59:47 +0300 (MSK) Content-Type: multipart/mixed; boundary="------------QJIinAs2ilH4KN1sjrAA0vMB" Message-ID: Date: Sun, 25 Aug 2024 18:59:46 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Vacuum statistics To: Alexander Korotkov Cc: Ilia Evdokimov , Andrei Zubkov , Alena Rybakina , pgsql-hackers , a.lepikhov@postgrespro.ru, jian he References: <53c47c2d-72a5-44f2-900c-9973b2af1808@tantorlabs.com> <4a902cea-54fb-41b5-b208-b84731a5f577@postgrespro.ru> <092adec6-4eae-4bd4-bd0d-473a9df1282b@tantorlabs.com> <3deae1bd-ad84-4459-a26e-04c9136b84e9@postgrespro.ru> Content-Language: en-US From: Alena Rybakina In-Reply-To: X-KSMG-AntiPhishing: NotDetected, bases: 2024/08/25 15:22:00 X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 2.1.0.7854, bases: 2024/08/25 14:21:00 #26453186 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. --------------QJIinAs2ilH4KN1sjrAA0vMB Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi! On 23.08.2024 04:07, Alexander Korotkov wrote: > On Wed, Aug 21, 2024 at 1:39 AM Alena Rybakina > wrote: > > > > I think you've counted the above system tables from the database, but > > I'll double-check it. Thank you for your review! > > > > On 19.08.2024 19:28, Ilia Evdokimov wrote: > > > Are you certain that all tables are included in > > > `pg_stat_vacuum_tables`? I'm asking because of the following: > > > > > > > > > SELECT count(*) FROM pg_stat_all_tables ; > > >  count > > > ------- > > >    108 > > > (1 row) > > > > > > SELECT count(*) FROM pg_stat_vacuum_tables ; > > >  count > > > ------- > > >     20 > > > (1 row) > > > > > I'd like to do some review a well. Thank you very much for your review and contribution to this thread! > > +   MyDatabaseId = dbid; > + > +   PG_TRY(); > +   { > +       tabentry = pgstat_fetch_stat_tabentry(relid); > +       MyDatabaseId = storedMyDatabaseId; > +   } > +   PG_CATCH(); > +   { > +       MyDatabaseId = storedMyDatabaseId; > +   } > +   PG_END_TRY(); > > I think this is generally wrong to change MyDatabaseId, especially if > you have to wrap it with PG_TRY()/PG_CATCH().  I think, instead we > need proper API changes, i.e. make pgstat_fetch_stat_tabentry() and > others take dboid as an argument. I fixed it by deleting this part pf the code. We can display statistics only for current database. > > +/* > + * Get the vacuum statistics for the heap tables. > + */ > +Datum > +pg_stat_vacuum_tables(PG_FUNCTION_ARGS) > +{ > +   return pg_stats_vacuum(fcinfo, PGSTAT_EXTVAC_HEAP, > EXTVACHEAPSTAT_COLUMNS); > + > +   PG_RETURN_NULL(); > +} > > The PG_RETURN_NULL() is unneeded after another return statement.  > However, does pg_stats_vacuum() need to return anything?  What about > making its return type void? I think you are right, we can not return anything. Fixed. > > @@ -874,4 +874,38 @@ pgstat_get_custom_snapshot_data(PgStat_Kind kind) >    return pgStatLocal.snapshot.custom_data[idx]; >  } > > +/* hash table for statistics snapshots entry */ > +typedef struct PgStat_SnapshotEntry > +{ > +  PgStat_HashKey key; > +  char     status;        /* for simplehash use */ > +  void     *data;         /* the stats data itself */ > +} PgStat_SnapshotEntry; > > It would be nice to preserve encapsulation and don't > expose pgstat_snapshot hash in the headers.  I see there is only one > usage of it outside of pgstat.c: pg_stats_vacuum(). Fixed. > > +        Oid  storedMyDatabaseId = MyDatabaseId; > + > +        pgstat_update_snapshot(PGSTAT_KIND_RELATION); > +        MyDatabaseId = storedMyDatabaseId; > > This manipulation with storedMyDatabaseId looks pretty useless. It > seems to be intended to change MyDatabaseId, while I'm not fan of this > as I mentioned above. Fixed. > > +static PgStat_StatTabEntry * > +fetch_dbstat_tabentry(Oid dbid, Oid relid) > +{ > +  Oid                  storedMyDatabaseId = MyDatabaseId; > +  PgStat_StatTabEntry  *tabentry = NULL; > + > +  if (OidIsValid(CurrentDatabaseId) && CurrentDatabaseId == dbid) > +     /* Quick path when we read data from the same database */ > +     return pgstat_fetch_stat_tabentry(relid); > + > +  pgstat_clear_snapshot(); > > It looks scary to reset the whole snapshot each time we access another > database.  Need to also mention that the CurrentDatabaseId machinery > isn't implemented. Fixed. > > New functions > pg_stat_vacuum_tables(), pg_stat_vacuum_indexes(), pg_stat_vacuum_database() > are SRFs.  When zero Oid is passed they report all the objects.  > However, it seems they aren't intended to be used directly.  Instead, > there are views with the same names. These views always call them with > particular Oids, therefore SRFs always return one row.  Then why > bother with SRF?  They could return plain records instead. I didn't understand correctly - did you mean that we don't need SRF if we need to display statistics for a specific object? Otherwise, we need this when we display information on all database objects (tables or indexes): while ((entry = ScanStatSnapshot(pgStatLocal.snapshot.stats, &hashiter)) != NULL) {     CHECK_FOR_INTERRUPTS();     tabentry = (PgStat_StatTabEntry *) entry->data;     if (tabentry != NULL && tabentry->vacuum_ext.type == type)         tuplestore_put_for_relation(relid, rsinfo, tabentry); } I know we can construct a HeapTuple object containing a TupleDesc, values, and nulls for a particular object, but I'm not sure we can augment it while looping through multiple objects. /* Initialise attributes information in the tuple descriptor */  tupdesc = CreateTemplateTupleDesc(PG_STAT_GET_SUBSCRIPTION_STATS_COLS); ... PG_RETURN_DATUM(HeapTupleGetDatum(heap_form_tuple(tupdesc, values, nulls))); If I missed something or misunderstood, can you explain in more detail? > > Also, as I mentioned above patchset makes a lot of trouble accessing > statistics of relations of another database.  But that seems to be > useless given corresponding views allow to see only relations of the > current database.  Even if you call functions directly, what is the > value of this information given that you don't know the relation oids > in another database?  So, I think if we will give up and limit access > to the relations of the current database patch will become simpler and > clearer. > I agree with that and have fixed it already. -- Regards, Alena Rybakina Postgres Professional: http://www.postgrespro.com The Russian Postgres Company --------------QJIinAs2ilH4KN1sjrAA0vMB Content-Type: text/x-patch; charset=UTF-8; name="v6-0001-Machinery-for-grabbing-an-extended-vacuum-statistics.patch" Content-Disposition: attachment; filename*0="v6-0001-Machinery-for-grabbing-an-extended-vacuum-statistics"; filename*1=".patch" Content-Transfer-Encoding: base64 RnJvbSA4OTAzYjY5MjQzMGUwZTk5OTY2NWJjNGE0MWQ1ZmQwODg3NDkxMzFlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogU3VuLCAyNSBBdWcgMjAyNCAxMDo0OTo0MCArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMS80XSBNYWNoaW5lcnkgZm9yIGdyYWJiaW5nIGFuIGV4dGVuZGVkIHZh Y3V1bSBzdGF0aXN0aWNzIG9uIAogaGVhcCByZWxhdGlvbnMuCgpWYWx1ZSBvZiB0b3RhbF9i bGtzX2hpdCwgdG90YWxfYmxrc19yZWFkLCB0b3RhbF9ibGtzX2RpcnRpZWQgYXJlIG51bWJl ciBvZgpoaXR0ZWQsIG1pc3NlZCBhbmQgZGlydGllZCBwYWdlcyBpbiBzaGFyZWQgYnVmZmVy cyBkdXJpbmcgYSB2YWN1dW0gb3BlcmF0aW9uCnJlc3BlY3RpdmVseS4KCnRvdGFsX2Jsa3Nf ZGlydGllZCBtZWFucyAnZGlydGllZCBvbmx5IGJ5IHRoaXMgYWN0aW9uJy4gU28sIGlmIHRo aXMgcGFnZSB3YXMKZGlydHkgYmVmb3JlIHRoZSB2YWN1dW0gb3BlcmF0aW9uLCBpdCBkb2Vz bid0IGNvdW50IHRoaXMgcGFnZSBhcyAnZGlydGllZCcuCgpUaGUgdHVwbGVzX2RlbGV0ZWQg cGFyYW1ldGVyIGlzIHRoZSBudW1iZXIgb2YgdHVwbGVzIGNsZWFuZWQgdXAgYnkgdGhlIHZh Y3V1bQpvcGVyYXRpb24uCgpUaGUgZGVsYXlfdGltZSB2YWx1ZSBtZWFucyB0b3RhbCB2YWN1 dW0gc2xlZXAgdGltZSBpbiB2YWN1dW0gZGVsYXkgcG9pbnQuClRoZSBwYWdlc19yZW1vdmVk IHZhbHVlIGlzIHRoZSBudW1iZXIgb2YgcGFnZXMgYnkgd2hpY2ggdGhlIHBoeXNpY2FsIGRh dGEKc3RvcmFnZSBvZiB0aGUgcmVsYXRpb24gd2FzIHJlZHVjZWQuClRoZSB2YWx1ZSBvZiBw YWdlc19kZWxldGVkIHBhcmFtZXRlciBpcyB0aGUgbnVtYmVyIG9mIGZyZWVkIHBhZ2VzIGlu IHRoZSB0YWJsZQooZmlsZSBzaXplIG1heSBub3QgaGF2ZSBjaGFuZ2VkKS4KCkludGVycnVw dGlvbnMgbnVtYmVyIG9mIChhdXRvKXZhY3V1bSBwcm9jZXNzIGR1cmluZyB2YWN1dW1pbmcg b2YgYSByZWxhdGlvbi4KV2UgcmVwb3J0IGZyb20gdGhlIHZhY3V1bV9lcnJvcl9jYWxsYmFj ayByb3V0aW5lLiBTbyB3ZSBjYW4gbG9nIGFsbCBFUlJPUgpyZXBvcnRzLiBJbiB0aGUgY2Fz ZSBvZiBhdXRvdmFjdXVtIHdlIGNhbiByZXBvcnQgU0lHSU5UIHNpZ25hbHMgdG9vLgpJdCBt YXliZSBkYW5nZXJvdXMgdG8gbWFrZSBzdWNoIGNvbXBsZXggdGFzayAoc2VuZCkgaW4gYW4g ZXJyb3IgY2FsbGJhY2sgLQp3ZSBjYW4gY2F0Y2ggRVJST1IgaW4gRVJST1IgcHJvYmxlbS4g QnV0IGl0IGxvb2tzIGxpa2Ugd2UgaGF2ZSBzbyBzbWFsbApjaGFuY2UgdG8gc3R1Y2sgaW50 byB0aGlzIHByb2JsZW0uIFNvLCBsZXQncyB0cnkgdG8gdXNlLgpUaGlzIHBhcmFtZXRlciBy ZWxhdGVzIHRvIGEgcHJvYmxlbSwgY292ZXJlZCBieSBiMTllNDI1MC4KClRyYWNraW5nIG9m IElPIGR1cmluZyBhbiAoYXV0byl2YWN1dW0gb3BlcmF0aW9uLgpJbnRyb2R1Y2VkIHZhcmlh YmxlcyBibGtfcmVhZF90aW1lIGFuZCBibGtfd3JpdGVfdGltZSB0cmFja3Mgb25seSBhY2Nl c3MgdG8KYnVmZmVyIHBhZ2VzIGFuZCBmbHVzaGluZyB0aGVtIHRvIGRpc2suIFJlYWRpbmcg b3BlcmF0aW9uIGlzIHRyaXZpYWwsIGJ1dAp3cml0aW5nIG1lYXN1cmVtZW50IHRlY2huaXF1 ZSBpcyBub3Qgb2J2aW91cy4KU28sIGR1cmluZyBhIHZhY3V1bSB3cml0aW5nIHRpbWUgY2Fu IGJlIHplcm8gaW5jcmVtZW50ZWQgYmVjYXVzZSBubyBhbnkgZmx1c2hpbmcKb3BlcmF0aW9u cyB3ZXJlIHBlcmZvcm1lZC4KClN5c3RlbSB0aW1lIGFuZCB1c2VyIHRpbWUgYXJlIHBhcmFt ZXRlcnMgdGhhdCBkZXNjcmliZXMgaG93IG11Y2ggdGltZSBhIHZhY3V1bQpvcGVyYXRpb24g aGFzIHNwZW50IGluIGV4ZWN1dGluZyBvZiBjb2RlIGluIHVzZXIgc3BhY2UgYW5kIGtlcm5l bCBzcGFjZQphY2NvcmRpbmdseS4gQWxzbywgYWNjdW11bGF0ZSB0b3RhbCB0aW1lIG9mIGEg dmFjdXVtIHRoYXQgaXMgYSBkaWZmIGJldHdlZW4KdGltZXN0YW1wcyBpbiBzdGFydCBhbmQg ZmluaXNoIHBvaW50cyBpbiB0aGUgdmFjdXVtIGNvZGUuClJlbWVtYmVyIGFib3V0IGlkbGUg dGltZSwgd2hlbiB2YWN1dW0gd2FpdGVkIGZvciBJTyBhbmQgbG9ja3MsIHNvIHRvdGFsIHRp bWUKaXNuJ3QgZXF1YWwgYSBzdW0gb2YgdXNlciBhbmQgc3lzdGVtIHRpbWUsIGJ1dCBubyBs ZXNzLgoKcGFnZXNfZnJvemVuIC0gbnVtYmVyIG9mIHBhZ2VzIHRoYXQgYXJlIG1hcmtlZCBh cyBmcm96ZW4gaW4gdm0gZHVyaW5nIHZhY3V1bS4KVGhpcyBwYXJhbWV0ZXIgaXMgaW5jcmVt ZW50ZWQgaWYgcGFnZSBpcyBtYXJrZWQgYXMgYWxsLWZyb3plbi4KcGFnZXNfYWxsX3Zpc2li bGUgLSBudW1iZXIgb2YgcGFnZXMgdGhhdCBhcmUgbWFya2VkIGFzIGFsbC12aXNpYmxlIGlu IHZtIGR1cmluZwp2YWN1dW0uCgpBdXRob3JzOiBBbGVuYSBSeWJha2luYSA8bGVuYS5yaWJh Y2tpbmFAeWFuZGV4LnJ1PiwKCSBBbmRyZWkgTGVwaWtob3YgPGEubGVwaWtob3ZAcG9zdGdy ZXNwcm8ucnU+LAoJIEFuZHJlaSBadWJrb3YgPGEuenVia292QHBvc3RncmVzcHJvLnJ1PgpS ZXZpZXdlZC1ieTogRGlsaXAgS3VtYXIgPGRpbGlwYmFsYXV0QGdtYWlsLmNvbT4sIE1hc2Fo aWtvIFNhd2FkYSA8c2F3YWRhLm1zaGtAZ21haWwuY29tPiwKCSAgICAgSWxpYSBFdmRva2lt b3YgPGlseWEuZXZkb2tpbW92QHRhbnRvcmxhYnMuY29tPiwgamlhbiBoZSA8amlhbi51bml2 ZXJzYWxpdHlAZ21haWwuY29tPiwKCSAgICAgS2lyaWxsIFJlc2hrZSA8cmVzaGtla2lyaWxs QGdtYWlsLmNvbT4sIEFsZXhhbmRlciBLb3JvdGtvdiA8YWVrb3JvdGtvdkBnbWFpbC5jb20+ Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jICAgICAgICAgIHwg MTU5ICsrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5 bWFwLmMgICAgICAgfCAgMTMgKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdz LnNxbCAgICAgICAgICB8ICA1NCArKysrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVt LmMgICAgICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1 bXBhcmFsbGVsLmMgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0 eS9wZ3N0YXQuYyAgICAgICAgICAgfCAgNjUgKysrKystCiBzcmMvYmFja2VuZC91dGlscy9h Y3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYyAgfCAgMzUgKystCiBzcmMvYmFja2VuZC91dGls cy9hZHQvcGdzdGF0ZnVuY3MuYyAgICAgICAgICAgfCAxNTcgKysrKysrKysrKysrKysKIHNy Yy9iYWNrZW5kL3V0aWxzL2Vycm9yL2Vsb2cuYyAgICAgICAgICAgICAgICB8ICAxMyArKwog c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgIDEwICst CiBzcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaCAgICAgICAgICAgICAgICAgfCAgIDEg Kwogc3JjL2luY2x1ZGUvcGdzdGF0LmggICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDg0 ICsrKysrKystCiBzcmMvaW5jbHVkZS91dGlscy9lbG9nLmggICAgICAgICAgICAgICAgICAg ICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0X2ludGVybmFsLmggICAgICAg ICAgIHwgICAyICstCiAuLi4vdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5v dXQgICAgfCAgNTMgKysrKysKIHNyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1 bGUgICAgICAgICB8ICAgMSArCiAuLi4vdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUt cmVhZC5zcGVjICAgfCAgNTEgKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3By X3Nhbml0eS5vdXQgICAgICB8ICAgNyArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y dWxlcy5vdXQgICAgICAgICAgIHwgIDM0ICsrKwogLi4uL2V4cGVjdGVkL3ZhY3V1bV90YWJs ZXNfc3RhdGlzdGljcy5vdXQgICAgIHwgMjAwICsrKysrKysrKysrKysrKysrKwogc3JjL3Rl c3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICA1ICsKIC4uLi9y ZWdyZXNzL3NxbC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Muc3FsICB8IDE1OCArKysrKysr KysrKysrKwogMjIgZmlsZXMgY2hhbmdlZCwgMTA5MiBpbnNlcnRpb25zKCspLCAxNiBkZWxl dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0 ZWQvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5vdXQKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvdGVzdC9pc29sYXRpb24vc3BlY3MvdmFjdXVtLWV4dGVuZGluZy1pbi1y ZXBldGFibGUtcmVhZC5zcGVjCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Mub3V0CiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzLnNx bAoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCBkODJhYTNkNDg5 Ni4uMzk0MWFlMjZmMmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zh Y3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMK QEAgLTE2Nyw2ICsxNjcsNyBAQCB0eXBlZGVmIHN0cnVjdCBMVlJlbFN0YXRlCiAJLyogRXJy b3IgcmVwb3J0aW5nIHN0YXRlICovCiAJY2hhcgkgICAqZGJuYW1lOwogCWNoYXIJICAgKnJl bG5hbWVzcGFjZTsKKwlPaWQJCQlyZWxvaWQ7CiAJY2hhcgkgICAqcmVsbmFtZTsKIAljaGFy CSAgICppbmRuYW1lOwkJLyogQ3VycmVudCBpbmRleCBuYW1lICovCiAJQmxvY2tOdW1iZXIg Ymxrbm87CQkJLyogdXNlZCBvbmx5IGZvciBoZWFwIG9wZXJhdGlvbnMgKi8KQEAgLTE5NCw2 ICsxOTUsOCBAQCB0eXBlZGVmIHN0cnVjdCBMVlJlbFN0YXRlCiAJQmxvY2tOdW1iZXIgbHBk ZWFkX2l0ZW1fcGFnZXM7CS8qICMgcGFnZXMgd2l0aCBMUF9ERUFEIGl0ZW1zICovCiAJQmxv Y2tOdW1iZXIgbWlzc2VkX2RlYWRfcGFnZXM7CS8qICMgcGFnZXMgd2l0aCBtaXNzZWQgZGVh ZCB0dXBsZXMgKi8KIAlCbG9ja051bWJlciBub25lbXB0eV9wYWdlczsgLyogYWN0dWFsbHks IGxhc3Qgbm9uZW1wdHkgcGFnZSArIDEgKi8KKwlCbG9ja051bWJlciBzZXRfZnJvemVuX3Bh Z2VzOyAvKiBwYWdlcyBhcmUgbWFya2VkIGFzIGZyb3plbiBpbiB2bSBkdXJpbmcgdmFjdXVt ICovCisJQmxvY2tOdW1iZXIgc2V0X2FsbF92aXNpYmxlX3BhZ2VzOwkvKiBwYWdlcyBhcmUg bWFya2VkIGFzIGFsbC12aXNpYmxlIGluIHZtIGR1cmluZyB2YWN1dW0gKi8KIAogCS8qIFN0 YXRpc3RpY3Mgb3V0cHV0IGJ5IHVzLCBmb3IgdGFibGUgKi8KIAlkb3VibGUJCW5ld19yZWxf dHVwbGVzOyAvKiBuZXcgZXN0aW1hdGVkIHRvdGFsICMgb2YgdHVwbGVzICovCkBAIC0yMjYs NiArMjI5LDIyIEBAIHR5cGVkZWYgc3RydWN0IExWU2F2ZWRFcnJJbmZvCiAJVmFjRXJyUGhh c2UgcGhhc2U7CiB9IExWU2F2ZWRFcnJJbmZvOwogCisvKgorICogQ3V0LW9mZiB2YWx1ZXMg b2YgcGFyYW1ldGVycyB3aGljaCBjaGFuZ2VzIGltcGxpY2l0bHkgZHVyaW5nIGEgdmFjdXVt CisgKiBwcm9jZXNzLgorICogVmFjdXVtIGNhbid0IGNvbnRyb2wgdGhlaXIgdmFsdWVzLCBz byB3ZSBzaG91bGQgc3RvcmUgdGhlbSBiZWZvcmUgYW5kIGFmdGVyCisgKiB0aGUgcHJvY2Vz c2luZy4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgTFZFeHRTdGF0Q291bnRlcnMKK3sKKwlUaW1l c3RhbXBUeiB0aW1lOworCVBHUlVzYWdlCXJ1OworCVdhbFVzYWdlCXdhbHVzYWdlOworCUJ1 ZmZlclVzYWdlIGJ1ZnVzYWdlOworCWRvdWJsZQkJVmFjdXVtRGVsYXlUaW1lOworCVBnU3Rh dF9Db3VudGVyIGJsb2Nrc19mZXRjaGVkOworCVBnU3RhdF9Db3VudGVyIGJsb2Nrc19oaXQ7 Cit9IExWRXh0U3RhdENvdW50ZXJzOwogCiAvKiBub24tZXhwb3J0IGZ1bmN0aW9uIHByb3Rv dHlwZXMgKi8KIHN0YXRpYyB2b2lkIGxhenlfc2Nhbl9oZWFwKExWUmVsU3RhdGUgKnZhY3Jl bCk7CkBAIC0yNzksNiArMjk4LDExNSBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfdmFjdXVtX2Vy cm9yX2luZm8oTFZSZWxTdGF0ZSAqdmFjcmVsLAogc3RhdGljIHZvaWQgcmVzdG9yZV92YWN1 dW1fZXJyb3JfaW5mbyhMVlJlbFN0YXRlICp2YWNyZWwsCiAJCQkJCQkJCQkgIGNvbnN0IExW U2F2ZWRFcnJJbmZvICpzYXZlZF92YWNyZWwpOwogCisvKiAtLS0tLS0tLS0tCisgKiBleHR2 YWNfc3RhdHNfc3RhcnQoKSAtCisgKgorICogU2F2ZSBjdXQtb2ZmIHZhbHVlcyBvZiBleHRl bmRlZCB2YWN1dW0gY291bnRlcnMgYmVmb3JlIHN0YXJ0IG9mIGEgcmVsYXRpb24KKyAqIHBy b2Nlc3NpbmcuCisgKiAtLS0tLS0tLS0tCisgKi8KK3N0YXRpYyB2b2lkCitleHR2YWNfc3Rh dHNfc3RhcnQoUmVsYXRpb24gcmVsLCBMVkV4dFN0YXRDb3VudGVycyAqY291bnRlcnMpCit7 CisJVGltZXN0YW1wVHoJc3RhcnR0aW1lOworCVBHUlVzYWdlCXJ1MDsKKworCW1lbXNldChj b3VudGVycywgMCwgc2l6ZW9mKExWRXh0U3RhdENvdW50ZXJzKSk7CisKKwlwZ19ydXNhZ2Vf aW5pdCgmcnUwKTsKKwlzdGFydHRpbWUgPSBHZXRDdXJyZW50VGltZXN0YW1wKCk7CisKKwlj b3VudGVycy0+cnUgPSBydTA7CisJY291bnRlcnMtPnRpbWUgPSBzdGFydHRpbWU7CisJY291 bnRlcnMtPndhbHVzYWdlID0gcGdXYWxVc2FnZTsKKwljb3VudGVycy0+YnVmdXNhZ2UgPSBw Z0J1ZmZlclVzYWdlOworCWNvdW50ZXJzLT5WYWN1dW1EZWxheVRpbWUgPSBWYWN1dW1EZWxh eVRpbWU7CisJY291bnRlcnMtPmJsb2Nrc19mZXRjaGVkID0gMDsKKwljb3VudGVycy0+Ymxv Y2tzX2hpdCA9IDA7CisKKwlpZiAoIXJlbC0+cGdzdGF0X2luZm8gfHwgIXBnc3RhdF90cmFj a19jb3VudHMpCisJCS8qCisJCSAqIGlmIHNvbWV0aGluZyBnb2VzIHdyb25nIG9yIGFuIHVz ZXIgZG9lc24ndCB3YW50IHRvIHRyYWNrIGEgZGF0YWJhc2UKKwkJICogYWN0aXZpdHkgLSBq dXN0IHN1cHByZXNzIGl0LgorCQkgKi8KKwkJcmV0dXJuOworCisJY291bnRlcnMtPmJsb2Nr c19mZXRjaGVkID0gcmVsLT5wZ3N0YXRfaW5mby0+Y291bnRzLmJsb2Nrc19mZXRjaGVkOwor CWNvdW50ZXJzLT5ibG9ja3NfaGl0ID0gcmVsLT5wZ3N0YXRfaW5mby0+Y291bnRzLmJsb2Nr c19oaXQ7Cit9CisKKy8qIC0tLS0tLS0tLS0KKyAqIGV4dHZhY19zdGF0c19lbmQoKSAtCisg KgorICoJQ2FsbGVkIHRvIGZpbmlzaCBhbiBleHRlbmRlZCB2YWN1dW0gc3RhdGlzdGljIGdh dGhlcmluZyBhbmQgZm9ybSBhIHJlcG9ydC4KKyAqIC0tLS0tLS0tLS0KKyAqLworc3RhdGlj IHZvaWQKK2V4dHZhY19zdGF0c19lbmQoUmVsYXRpb24gcmVsLCBMVkV4dFN0YXRDb3VudGVy cyAqY291bnRlcnMsCisJCQkJICBFeHRWYWNSZXBvcnQgKnJlcG9ydCkKK3sKKwlXYWxVc2Fn ZQl3YWx1c2FnZTsKKwlCdWZmZXJVc2FnZQlidWZ1c2FnZTsKKwlUaW1lc3RhbXBUeiBlbmR0 aW1lOworCWxvbmcJCXNlY3M7CisJaW50CQkJdXNlY3M7CisJUEdSVXNhZ2UJcnUxOworCisJ LyogQ2FsY3VsYXRlIGRpZmZzIG9mIGdsb2JhbCBzdGF0IHBhcmFtZXRlcnMgb24gV0FMIGFu ZCBidWZmZXIgdXNhZ2UuICovCisJbWVtc2V0KCZ3YWx1c2FnZSwgMCwgc2l6ZW9mKFdhbFVz YWdlKSk7CisJV2FsVXNhZ2VBY2N1bURpZmYoJndhbHVzYWdlLCAmcGdXYWxVc2FnZSwgJmNv dW50ZXJzLT53YWx1c2FnZSk7CisKKwltZW1zZXQoJmJ1ZnVzYWdlLCAwLCBzaXplb2YoQnVm ZmVyVXNhZ2UpKTsKKwlCdWZmZXJVc2FnZUFjY3VtRGlmZigmYnVmdXNhZ2UsICZwZ0J1ZmZl clVzYWdlLCAmY291bnRlcnMtPmJ1ZnVzYWdlKTsKKworCWVuZHRpbWUgPSBHZXRDdXJyZW50 VGltZXN0YW1wKCk7CisJVGltZXN0YW1wRGlmZmVyZW5jZShjb3VudGVycy0+dGltZSwgZW5k dGltZSwgJnNlY3MsICZ1c2Vjcyk7CisKKwltZW1zZXQocmVwb3J0LCAwLCBzaXplb2YoRXh0 VmFjUmVwb3J0KSk7CisKKwkvKgorCSAqIEZpbGwgYWRkaXRpb25hbCBzdGF0aXN0aWNzIG9u IGEgdmFjdXVtIHByb2Nlc3Npbmcgb3BlcmF0aW9uLgorCSAqLworCXJlcG9ydC0+dG90YWxf Ymxrc19yZWFkID0gYnVmdXNhZ2UubG9jYWxfYmxrc19yZWFkICsgYnVmdXNhZ2Uuc2hhcmVk X2Jsa3NfcmVhZDsKKwlyZXBvcnQtPnRvdGFsX2Jsa3NfaGl0ID0gYnVmdXNhZ2UubG9jYWxf Ymxrc19oaXQgKyBidWZ1c2FnZS5zaGFyZWRfYmxrc19oaXQ7CisJcmVwb3J0LT50b3RhbF9i bGtzX2RpcnRpZWQgPSBidWZ1c2FnZS5sb2NhbF9ibGtzX2RpcnRpZWQgKyBidWZ1c2FnZS5z aGFyZWRfYmxrc19kaXJ0aWVkOworCXJlcG9ydC0+dG90YWxfYmxrc193cml0dGVuID0gYnVm dXNhZ2Uuc2hhcmVkX2Jsa3Nfd3JpdHRlbjsKKworCXJlcG9ydC0+d2FsX3JlY29yZHMgPSB3 YWx1c2FnZS53YWxfcmVjb3JkczsKKwlyZXBvcnQtPndhbF9mcGkgPSB3YWx1c2FnZS53YWxf ZnBpOworCXJlcG9ydC0+d2FsX2J5dGVzID0gd2FsdXNhZ2Uud2FsX2J5dGVzOworCisJcmVw b3J0LT5ibGtfcmVhZF90aW1lID0gSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoYnVmdXNhZ2Uu bG9jYWxfYmxrX3JlYWRfdGltZSk7CisJcmVwb3J0LT5ibGtfcmVhZF90aW1lICs9IElOU1RS X1RJTUVfR0VUX01JTExJU0VDKGJ1ZnVzYWdlLnNoYXJlZF9ibGtfcmVhZF90aW1lKTsKKwly ZXBvcnQtPmJsa193cml0ZV90aW1lID0gSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoYnVmdXNh Z2UubG9jYWxfYmxrX3dyaXRlX3RpbWUpOworCXJlcG9ydC0+YmxrX3dyaXRlX3RpbWUgPSBJ TlNUUl9USU1FX0dFVF9NSUxMSVNFQyhidWZ1c2FnZS5zaGFyZWRfYmxrX3dyaXRlX3RpbWUp OworCXJlcG9ydC0+ZGVsYXlfdGltZSA9IFZhY3V1bURlbGF5VGltZSAtIGNvdW50ZXJzLT5W YWN1dW1EZWxheVRpbWU7CisKKwkvKgorCSAqIEdldCBkaWZmZXJlbmNlIG9mIGEgc3lzdGVt IHRpbWUgYW5kIHVzZXIgdGltZSB2YWx1ZXMgaW4gbWlsbGlzZWNvbmRzLgorCSAqIFVzZSBm bG9hdGluZyBwb2ludCByZXByZXNlbnRhdGlvbiB0byBzaG93IHRhaWxzIG9mIHRpbWUgZGlm ZnMuCisJICovCisJcGdfcnVzYWdlX2luaXQoJnJ1MSk7CisJcmVwb3J0LT5zeXN0ZW1fdGlt ZSA9CisJCShydTEucnUucnVfc3RpbWUudHZfc2VjIC0gY291bnRlcnMtPnJ1LnJ1LnJ1X3N0 aW1lLnR2X3NlYykgKiAxMDAwLiArCisJCShydTEucnUucnVfc3RpbWUudHZfdXNlYyAtIGNv dW50ZXJzLT5ydS5ydS5ydV9zdGltZS50dl91c2VjKSAqIDAuMDAxOworCXJlcG9ydC0+dXNl cl90aW1lID0KKwkJKHJ1MS5ydS5ydV91dGltZS50dl9zZWMgLSBjb3VudGVycy0+cnUucnUu cnVfdXRpbWUudHZfc2VjKSAqIDEwMDAuICsKKwkJKHJ1MS5ydS5ydV91dGltZS50dl91c2Vj IC0gY291bnRlcnMtPnJ1LnJ1LnJ1X3V0aW1lLnR2X3VzZWMpICogMC4wMDE7CisJcmVwb3J0 LT50b3RhbF90aW1lID0gc2VjcyAqIDEwMDAuICsgdXNlY3MgLyAxMDAwLjsKKworCWlmICgh cmVsLT5wZ3N0YXRfaW5mbyB8fCAhcGdzdGF0X3RyYWNrX2NvdW50cykKKwkJLyoKKwkJICog aWYgc29tZXRoaW5nIGdvZXMgd3Jvbmcgb3IgYW4gdXNlciBkb2Vzbid0IHdhbnQgdG8gdHJh Y2sgYSBkYXRhYmFzZQorCQkgKiBhY3Rpdml0eSAtIGp1c3Qgc3VwcHJlc3MgaXQuCisJCSAq LworCQlyZXR1cm47CisKKwlyZXBvcnQtPmJsa3NfZmV0Y2hlZCA9CisJCXJlbC0+cGdzdGF0 X2luZm8tPmNvdW50cy5ibG9ja3NfZmV0Y2hlZCAtIGNvdW50ZXJzLT5ibG9ja3NfZmV0Y2hl ZDsKKwlyZXBvcnQtPmJsa3NfaGl0ID0KKwkJcmVsLT5wZ3N0YXRfaW5mby0+Y291bnRzLmJs b2Nrc19oaXQgLSBjb3VudGVycy0+YmxvY2tzX2hpdDsKK30KIAogLyoKICAqCWhlYXBfdmFj dXVtX3JlbCgpIC0tIHBlcmZvcm0gVkFDVVVNIGZvciBvbmUgaGVhcCByZWxhdGlvbgpAQCAt MzExLDYgKzQzOSw4IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIFZhY3V1bVBh cmFtcyAqcGFyYW1zLAogCVdhbFVzYWdlCXN0YXJ0d2FsdXNhZ2UgPSBwZ1dhbFVzYWdlOwog CUJ1ZmZlclVzYWdlIHN0YXJ0YnVmZmVydXNhZ2UgPSBwZ0J1ZmZlclVzYWdlOwogCUVycm9y Q29udGV4dENhbGxiYWNrIGVycmNhbGxiYWNrOworCUxWRXh0U3RhdENvdW50ZXJzIGV4dFZh Y0NvdW50ZXJzOworCUV4dFZhY1JlcG9ydCBleHRWYWNSZXBvcnQ7CiAJY2hhcgkgICoqaW5k bmFtZXMgPSBOVUxMOwogCiAJdmVyYm9zZSA9IChwYXJhbXMtPm9wdGlvbnMgJiBWQUNPUFRf VkVSQk9TRSkgIT0gMDsKQEAgLTMyOSw3ICs0NTksNyBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVs YXRpb24gcmVsLCBWYWN1dW1QYXJhbXMgKnBhcmFtcywKIAogCXBnc3RhdF9wcm9ncmVzc19z dGFydF9jb21tYW5kKFBST0dSRVNTX0NPTU1BTkRfVkFDVVVNLAogCQkJCQkJCQkgIFJlbGF0 aW9uR2V0UmVsaWQocmVsKSk7Ci0KKwlleHR2YWNfc3RhdHNfc3RhcnQocmVsLCAmZXh0VmFj Q291bnRlcnMpOwogCS8qCiAJICogU2V0dXAgZXJyb3IgdHJhY2ViYWNrIHN1cHBvcnQgZm9y IGVyZXBvcnQoKSBmaXJzdC4gIFRoZSBpZGVhIGlzIHRvIHNldAogCSAqIHVwIGFuIGVycm9y IGNvbnRleHQgY2FsbGJhY2sgdG8gZGlzcGxheSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9u IGFueQpAQCAtMzQ2LDYgKzQ3Niw3IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWws IFZhY3V1bVBhcmFtcyAqcGFyYW1zLAogCXZhY3JlbC0+ZGJuYW1lID0gZ2V0X2RhdGFiYXNl X25hbWUoTXlEYXRhYmFzZUlkKTsKIAl2YWNyZWwtPnJlbG5hbWVzcGFjZSA9IGdldF9uYW1l c3BhY2VfbmFtZShSZWxhdGlvbkdldE5hbWVzcGFjZShyZWwpKTsKIAl2YWNyZWwtPnJlbG5h bWUgPSBwc3RyZHVwKFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpOworCXZhY3JlbC0+ cmVsb2lkID0gUmVsYXRpb25HZXRSZWxpZChyZWwpOwogCXZhY3JlbC0+aW5kbmFtZSA9IE5V TEw7CiAJdmFjcmVsLT5waGFzZSA9IFZBQ1VVTV9FUlJDQl9QSEFTRV9VTktOT1dOOwogCXZh Y3JlbC0+dmVyYm9zZSA9IHZlcmJvc2U7CkBAIC00MTMsNiArNTQ0LDggQEAgaGVhcF92YWN1 dW1fcmVsKFJlbGF0aW9uIHJlbCwgVmFjdXVtUGFyYW1zICpwYXJhbXMsCiAJdmFjcmVsLT5s cGRlYWRfaXRlbV9wYWdlcyA9IDA7CiAJdmFjcmVsLT5taXNzZWRfZGVhZF9wYWdlcyA9IDA7 CiAJdmFjcmVsLT5ub25lbXB0eV9wYWdlcyA9IDA7CisJdmFjcmVsLT5zZXRfZnJvemVuX3Bh Z2VzID0gMDsKKwl2YWNyZWwtPnNldF9hbGxfdmlzaWJsZV9wYWdlcyA9IDA7CiAJLyogZGVh ZF9pdGVtc19hbGxvYyBhbGxvY2F0ZXMgdmFjcmVsLT5kZWFkX2l0ZW1zIGxhdGVyIG9uICov CiAKIAkvKiBBbGxvY2F0ZS9pbml0aWFsaXplIG91dHB1dCBzdGF0aXN0aWNzIHN0YXRlICov CkBAIC01NzQsNiArNzA3LDE5IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIFZh Y3V1bVBhcmFtcyAqcGFyYW1zLAogCQkJCQkJdmFjcmVsLT5OZXdSZWxmcm96ZW5YaWQsIHZh Y3JlbC0+TmV3UmVsbWluTXhpZCwKIAkJCQkJCSZmcm96ZW54aWRfdXBkYXRlZCwgJm1pbm11 bHRpX3VwZGF0ZWQsIGZhbHNlKTsKIAorCS8qIE1ha2UgZ2VuZXJpYyBleHRlbmRlZCB2YWN1 dW0gc3RhdHMgcmVwb3J0ICovCisJZXh0dmFjX3N0YXRzX2VuZChyZWwsICZleHRWYWNDb3Vu dGVycywgJmV4dFZhY1JlcG9ydCk7CisKKwkvKiBGaWxsIGhlYXAtc3BlY2lmaWMgZXh0ZW5k ZWQgc3RhdHMgZmllbGRzICovCisJZXh0VmFjUmVwb3J0LnBhZ2VzX3NjYW5uZWQgPSB2YWNy ZWwtPnNjYW5uZWRfcGFnZXM7CisJZXh0VmFjUmVwb3J0LnBhZ2VzX3JlbW92ZWQgPSB2YWNy ZWwtPnJlbW92ZWRfcGFnZXM7CisJZXh0VmFjUmVwb3J0LnBhZ2VzX2Zyb3plbiA9IHZhY3Jl bC0+c2V0X2Zyb3plbl9wYWdlczsKKwlleHRWYWNSZXBvcnQucGFnZXNfYWxsX3Zpc2libGUg PSB2YWNyZWwtPnNldF9hbGxfdmlzaWJsZV9wYWdlczsKKwlleHRWYWNSZXBvcnQudHVwbGVz X2RlbGV0ZWQgPSB2YWNyZWwtPnR1cGxlc19kZWxldGVkOworCWV4dFZhY1JlcG9ydC50dXBs ZXNfZnJvemVuID0gdmFjcmVsLT50dXBsZXNfZnJvemVuOworCWV4dFZhY1JlcG9ydC5kZWFk X3R1cGxlcyA9IHZhY3JlbC0+cmVjZW50bHlfZGVhZF90dXBsZXMgKyB2YWNyZWwtPm1pc3Nl ZF9kZWFkX3R1cGxlczsKKwlleHRWYWNSZXBvcnQuaW5kZXhfdmFjdXVtX2NvdW50ID0gdmFj cmVsLT5udW1faW5kZXhfc2NhbnM7CisKIAkvKgogCSAqIFJlcG9ydCByZXN1bHRzIHRvIHRo ZSBjdW11bGF0aXZlIHN0YXRzIHN5c3RlbSwgdG9vLgogCSAqCkBAIC01ODgsNyArNzM0LDgg QEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgVmFjdXVtUGFyYW1zICpwYXJhbXMs CiAJCQkJCQkgcmVsLT5yZF9yZWwtPnJlbGlzc2hhcmVkLAogCQkJCQkJIE1heCh2YWNyZWwt Pm5ld19saXZlX3R1cGxlcywgMCksCiAJCQkJCQkgdmFjcmVsLT5yZWNlbnRseV9kZWFkX3R1 cGxlcyArCi0JCQkJCQkgdmFjcmVsLT5taXNzZWRfZGVhZF90dXBsZXMpOworCQkJCQkJIHZh Y3JlbC0+bWlzc2VkX2RlYWRfdHVwbGVzLAorCQkJCQkJICZleHRWYWNSZXBvcnQpOwogCXBn c3RhdF9wcm9ncmVzc19lbmRfY29tbWFuZCgpOwogCiAJaWYgKGluc3RydW1lbnQpCkBAIC0x MzgwLDYgKzE1MjcsOCBAQCBsYXp5X3NjYW5fbmV3X29yX2VtcHR5KExWUmVsU3RhdGUgKnZh Y3JlbCwgQnVmZmVyIGJ1ZiwgQmxvY2tOdW1iZXIgYmxrbm8sCiAJCQkJCQkJICB2bWJ1ZmZl ciwgSW52YWxpZFRyYW5zYWN0aW9uSWQsCiAJCQkJCQkJICBWSVNJQklMSVRZTUFQX0FMTF9W SVNJQkxFIHwgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKTsKIAkJCUVORF9DUklUX1NFQ1RJ T04oKTsKKwkJCXZhY3JlbC0+c2V0X2FsbF92aXNpYmxlX3BhZ2VzKys7CisJCQl2YWNyZWwt PnNldF9mcm96ZW5fcGFnZXMrKzsKIAkJfQogCiAJCWZyZWVzcGFjZSA9IFBhZ2VHZXRIZWFw RnJlZVNwYWNlKHBhZ2UpOwpAQCAtMjI3NywxMSArMjQyNiwxMyBAQCBsYXp5X3ZhY3V1bV9o ZWFwX3BhZ2UoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciBibGtubywgQnVmZmVy IGJ1ZmZlciwKIAkJCQkJCQkJICZhbGxfZnJvemVuKSkKIAl7CiAJCXVpbnQ4CQlmbGFncyA9 IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7CisJCXZhY3JlbC0+c2V0X2FsbF92aXNpYmxl X3BhZ2VzKys7CiAKIAkJaWYgKGFsbF9mcm96ZW4pCiAJCXsKIAkJCUFzc2VydCghVHJhbnNh Y3Rpb25JZElzVmFsaWQodmlzaWJpbGl0eV9jdXRvZmZfeGlkKSk7CiAJCQlmbGFncyB8PSBW SVNJQklMSVRZTUFQX0FMTF9GUk9aRU47CisJCQl2YWNyZWwtPnNldF9mcm96ZW5fcGFnZXMr KzsKIAkJfQogCiAJCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2UpOwpAQCAtMzEyMiw2ICszMjcz LDggQEAgdmFjdXVtX2Vycm9yX2NhbGxiYWNrKHZvaWQgKmFyZykKIAlzd2l0Y2ggKGVycmlu Zm8tPnBoYXNlKQogCXsKIAkJY2FzZSBWQUNVVU1fRVJSQ0JfUEhBU0VfU0NBTl9IRUFQOgor CQkJaWYoZ2V0ZXJyZWxldmVsKCkgPj0gRVJST1IpCisJCQkJcGdzdGF0X3JlcG9ydF92YWN1 dW1fZXJyb3IoZXJyaW5mby0+cmVsb2lkKTsKIAkJCWlmIChCbG9ja051bWJlcklzVmFsaWQo ZXJyaW5mby0+Ymxrbm8pKQogCQkJewogCQkJCWlmIChPZmZzZXROdW1iZXJJc1ZhbGlkKGVy cmluZm8tPm9mZm51bSkpCkBAIC0zMTM3LDYgKzMyOTAsOCBAQCB2YWN1dW1fZXJyb3JfY2Fs bGJhY2sodm9pZCAqYXJnKQogCQkJYnJlYWs7CiAKIAkJY2FzZSBWQUNVVU1fRVJSQ0JfUEhB U0VfVkFDVVVNX0hFQVA6CisJCQlpZihnZXRlcnJlbGV2ZWwoKSA+PSBFUlJPUikKKwkJCQlw Z3N0YXRfcmVwb3J0X3ZhY3V1bV9lcnJvcihlcnJpbmZvLT5yZWxvaWQpOwogCQkJaWYgKEJs b2NrTnVtYmVySXNWYWxpZChlcnJpbmZvLT5ibGtubykpCiAJCQl7CiAJCQkJaWYgKE9mZnNl dE51bWJlcklzVmFsaWQoZXJyaW5mby0+b2ZmbnVtKSkKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3Zpc2liaWxpdHltYXAuYwppbmRleCA4YjI0ZTdiYzMzYy4uZDcyY2FkZTYwYTQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMKQEAgLTkxLDYgKzkx LDcgQEAKICNpbmNsdWRlICJhY2Nlc3MveGxvZ2luc2VydC5oIgogI2luY2x1ZGUgImFjY2Vz cy94bG9ndXRpbHMuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJwZ3N0 YXQuaCIKICNpbmNsdWRlICJwb3J0L3BnX2JpdHV0aWxzLmgiCiAjaW5jbHVkZSAic3RvcmFn ZS9idWZtZ3IuaCIKICNpbmNsdWRlICJzdG9yYWdlL3NtZ3IuaCIKQEAgLTE2MCw2ICsxNjEs MTggQEAgdmlzaWJpbGl0eW1hcF9jbGVhcihSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGhl YXBCbGssIEJ1ZmZlciB2bWJ1ZiwgdWludDggZmxhZ3MKIAogCWlmIChtYXBbbWFwQnl0ZV0g JiBtYXNrKQogCXsKKwkJLyoKKwkJICogSW5pdGlhbGx5LCBpdCBkaWRuJ3QgbWF0dGVyIHdo YXQgdHlwZSBvZiBmbGFncyAoYWxsLXZpc2libGUgb3IgZnJvemVuKSB3ZSByZWNlaXZlZCwK KwkJICogd2UganVzdCBwZXJmb3JtZWQgYSByZXZlcnNlIGNvbmNhdGVuYXRpb24gb3BlcmF0 aW9uLiBCdXQgdGhpcyBpbmZvcm1hdGlvbiBpcyB2ZXJ5IGltcG9ydGFudAorCQkgKiBmb3Ig dmFjdXVtIHN0YXRpc3RpY3MuIFdlIG5lZWQgdG8gZmluZCBvdXQgdGhpcyB1c2luZ3RoZSBi aXQgY29uY2F0ZW5hdGlvbiBvcGVyYXRpb24KKwkJICogd2l0aCB0aGUgVklTSUJJTElUWU1B UF9BTExfVklTSUJMRSBhbmQgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOIG1hc2tzLAorCQkg KiBhbmQgd2hlcmUgdGhlIGRlc2lyZWQgb25lIG1hdGNoZXMsIHdlIGluY3JlbWVudCB0aGUg dmFsdWUgdGhlcmUuCisJCSovCisJCWlmIChtYXBbbWFwQnl0ZV0gPj4gbWFwT2Zmc2V0ICYg ZmxhZ3MgJiBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFKQorCQkJcGdzdGF0X2NvdW50X3Zt X3Jldl9hbGxfdmlzaWJsZShyZWwpOworCQlpZiAobWFwW21hcEJ5dGVdID4+IG1hcE9mZnNl dCAmIGZsYWdzICYgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKQorCQkJcGdzdGF0X2NvdW50 X3ZtX3Jldl9hbGxfZnJvemVuKHJlbCk7CisKIAkJbWFwW21hcEJ5dGVdICY9IH5tYXNrOwog CiAJCU1hcmtCdWZmZXJEaXJ0eSh2bWJ1Zik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j YXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92 aWV3cy5zcWwKaW5kZXggMTljYWJjOWE0N2YuLmU4NGQ2ODgxNDAzIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC0xMzcxLDMgKzEzNzEsNTcgQEAgQ1JFQVRF IFZJRVcgcGdfc3RhdF9zdWJzY3JpcHRpb25fc3RhdHMgQVMKIAogQ1JFQVRFIFZJRVcgcGdf d2FpdF9ldmVudHMgQVMKICAgICBTRUxFQ1QgKiBGUk9NIHBnX2dldF93YWl0X2V2ZW50cygp OworLS0KKy0tIFNob3cgZXh0ZW5kZWQgY3VtdWxhdGl2ZSBzdGF0aXN0aWNzIG9uIGEgdmFj dXVtIG9wZXJhdGlvbiBvdmVyIGFsbCB0YWJsZXMgYW5kCistLSBkYXRhYmFzZXMgb2YgdGhl IGluc3RhbmNlLgorLS0gVXNlIEludmFsaWQgT2lkICIwIiBhcyBhbiBpbnB1dCByZWxhdGlv biBpZCB0byBnZXQgc3RhdCBvbiBlYWNoIHRhYmxlIGluIGEKKy0tIGRhdGFiYXNlLgorLS0K KworQ1JFQVRFIFZJRVcgcGdfc3RhdF92YWN1dW1fdGFibGVzIEFTCitTRUxFQ1QKKyAgcmVs Lm9pZCBhcyByZWxpZCwKKyAgbnMubnNwbmFtZSBBUyAic2NoZW1hIiwKKyAgcmVsLnJlbG5h bWUgQVMgcmVsbmFtZSwKKworICBzdGF0cy50b3RhbF9ibGtzX3JlYWQsCisgIHN0YXRzLnRv dGFsX2Jsa3NfaGl0LAorICBzdGF0cy50b3RhbF9ibGtzX2RpcnRpZWQsCisgIHN0YXRzLnRv dGFsX2Jsa3Nfd3JpdHRlbiwKKworICBzdGF0cy5yZWxfYmxrc19yZWFkLAorICBzdGF0cy5y ZWxfYmxrc19oaXQsCisKKyAgc3RhdHMucGFnZXNfc2Nhbm5lZCwKKyAgc3RhdHMucGFnZXNf cmVtb3ZlZCwKKyAgc3RhdHMucGFnZXNfZnJvemVuLAorICBzdGF0cy5wYWdlc19hbGxfdmlz aWJsZSwKKyAgc3RhdHMudHVwbGVzX2RlbGV0ZWQsCisgIHN0YXRzLnR1cGxlc19mcm96ZW4s CisgIHN0YXRzLmRlYWRfdHVwbGVzLAorCisgIHN0YXRzLmluZGV4X3ZhY3V1bV9jb3VudCwK KyAgc3RhdHMucmV2X2FsbF9mcm96ZW5fcGFnZXMsCisgIHN0YXRzLnJldl9hbGxfdmlzaWJs ZV9wYWdlcywKKworICBzdGF0cy53YWxfcmVjb3JkcywKKyAgc3RhdHMud2FsX2ZwaSwKKyAg c3RhdHMud2FsX2J5dGVzLAorCisgIHN0YXRzLmJsa19yZWFkX3RpbWUsCisgIHN0YXRzLmJs a193cml0ZV90aW1lLAorCisgIHN0YXRzLmRlbGF5X3RpbWUsCisgIHN0YXRzLnN5c3RlbV90 aW1lLAorICBzdGF0cy51c2VyX3RpbWUsCisgIHN0YXRzLnRvdGFsX3RpbWUsCisgIHN0YXRz LmludGVycnVwdHMKK0ZST00KKyAgcGdfZGF0YWJhc2UgZGIsCisgIHBnX2NsYXNzIHJlbCwK KyAgcGdfbmFtZXNwYWNlIG5zLAorICBwZ19zdGF0X3ZhY3V1bV90YWJsZXMocmVsLm9pZCkg c3RhdHMKK1dIRVJFCisgIGRiLmRhdG5hbWUgPSBjdXJyZW50X2RhdGFiYXNlKCkgQU5ECisg IHJlbC5vaWQgPSBzdGF0cy5yZWxpZCBBTkQKKyAgbnMub2lkID0gcmVsLnJlbG5hbWVzcGFj ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdmFjdXVtLmMKaW5kZXggN2Q4ZTlkMjA0NTQuLjM2MzkyNGQwMGRi IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy92YWN1dW0uYwpAQCAtMTAzLDYgKzEwMyw5IEBAIHBnX2F0b21p Y191aW50MzIgKlZhY3V1bVNoYXJlZENvc3RCYWxhbmNlID0gTlVMTDsKIHBnX2F0b21pY191 aW50MzIgKlZhY3V1bUFjdGl2ZU5Xb3JrZXJzID0gTlVMTDsKIGludAkJCVZhY3V1bUNvc3RC YWxhbmNlTG9jYWwgPSAwOwogCisvKiBDdW11bGF0aXZlIHN0b3JhZ2UgdG8gcmVwb3J0IHRv dGFsIHZhY3V1bSBkZWxheSB0aW1lLiAqLworZG91YmxlIFZhY3V1bURlbGF5VGltZSA9IDA7 IC8qIG1zZWMuICovCisKIC8qIG5vbi1leHBvcnQgZnVuY3Rpb24gcHJvdG90eXBlcyAqLwog c3RhdGljIExpc3QgKmV4cGFuZF92YWN1dW1fcmVsKFZhY3V1bVJlbGF0aW9uICp2cmVsLAog CQkJCQkJCSAgIE1lbW9yeUNvbnRleHQgdmFjX2NvbnRleHQsIGludCBvcHRpb25zKTsKQEAg LTIzOTQsNiArMjM5Nyw3IEBAIHZhY3V1bV9kZWxheV9wb2ludCh2b2lkKQogCQkJZXhpdCgx KTsKIAogCQlWYWN1dW1Db3N0QmFsYW5jZSA9IDA7CisJCVZhY3V1bURlbGF5VGltZSArPSBt c2VjOwogCiAJCS8qCiAJCSAqIEJhbGFuY2UgYW5kIHVwZGF0ZSBsaW1pdCB2YWx1ZXMgZm9y IGF1dG92YWN1dW0gd29ya2Vycy4gV2UgbXVzdCBkbwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Zh Y3V1bXBhcmFsbGVsLmMKaW5kZXggMjJjMDU3ZmU2MWIuLjEzYWI2MzMwODZhIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKQEAgLTEwNDMsNiArMTA0Myw3IEBA IHBhcmFsbGVsX3ZhY3V1bV9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykK IAkvKiBTZXQgY29zdC1iYXNlZCB2YWN1dW0gZGVsYXkgKi8KIAlWYWN1dW1VcGRhdGVDb3N0 cygpOwogCVZhY3V1bUNvc3RCYWxhbmNlID0gMDsKKwlWYWN1dW1EZWxheVRpbWUgPSAwOwog CVZhY3V1bUNvc3RCYWxhbmNlTG9jYWwgPSAwOwogCVZhY3V1bVNoYXJlZENvc3RCYWxhbmNl ID0gJihzaGFyZWQtPmNvc3RfYmFsYW5jZSk7CiAJVmFjdXVtQWN0aXZlTldvcmtlcnMgPSAm KHNoYXJlZC0+YWN0aXZlX253b3JrZXJzKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FjdGl2aXR5L3Bnc3RhdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdz dGF0LmMKaW5kZXggYjJjYTNmMzliN2EuLjRlOGQ4ZjhkYzc3IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXQuYworKysgYi9zcmMvYmFja2VuZC91dGls cy9hY3Rpdml0eS9wZ3N0YXQuYwpAQCAtMTkwLDcgKzE5MCw3IEBAIHN0YXRpYyB2b2lkIHBn c3RhdF9yZXNldF9hZnRlcl9mYWlsdXJlKHZvaWQpOwogc3RhdGljIGJvb2wgcGdzdGF0X2Zs dXNoX3BlbmRpbmdfZW50cmllcyhib29sIG5vd2FpdCk7CiAKIHN0YXRpYyB2b2lkIHBnc3Rh dF9wcmVwX3NuYXBzaG90KHZvaWQpOwotc3RhdGljIHZvaWQgcGdzdGF0X2J1aWxkX3NuYXBz aG90KHZvaWQpOworc3RhdGljIHZvaWQgcGdzdGF0X2J1aWxkX3NuYXBzaG90KFBnU3RhdF9L aW5kIHN0YXRLaW5kKTsKIHN0YXRpYyB2b2lkIHBnc3RhdF9idWlsZF9zbmFwc2hvdF9maXhl ZChQZ1N0YXRfS2luZCBraW5kKTsKIAogc3RhdGljIGlubGluZSBib29sIHBnc3RhdF9pc19r aW5kX3ZhbGlkKFBnU3RhdF9LaW5kIGtpbmQpOwpAQCAtMjYwLDcgKzI2MCw2IEBAIHN0YXRp YyBib29sIHBnc3RhdF9pc19pbml0aWFsaXplZCA9IGZhbHNlOwogc3RhdGljIGJvb2wgcGdz dGF0X2lzX3NodXRkb3duID0gZmFsc2U7CiAjZW5kaWYKIAotCiAvKgogICogVGhlIGRpZmZl cmVudCBraW5kcyBvZiBidWlsdC1pbiBzdGF0aXN0aWNzLgogICoKQEAgLTgzMCw2ICs4Mjks NDAgQEAgcGdzdGF0X3Jlc2V0X29mX2tpbmQoUGdTdGF0X0tpbmQga2luZCkKIAkJcGdzdGF0 X3Jlc2V0X2VudHJpZXNfb2Zfa2luZChraW5kLCB0cyk7CiB9CiAKK3ZvaWQKK3Bnc3RhdF9h Y2N1bXVsYXRlX2V4dHZhY19zdGF0cyhFeHRWYWNSZXBvcnQgKmRzdCwgRXh0VmFjUmVwb3J0 ICpzcmMsCisJCQkJCQkJICAgYm9vbCBhY2N1bXVsYXRlX3JlbHR5cGVfc3BlY2lmaWNfaW5m bykKK3sKKwlkc3QtPnRvdGFsX2Jsa3NfcmVhZCArPSBzcmMtPnRvdGFsX2Jsa3NfcmVhZDsK Kwlkc3QtPnRvdGFsX2Jsa3NfaGl0ICs9IHNyYy0+dG90YWxfYmxrc19oaXQ7CisJZHN0LT50 b3RhbF9ibGtzX2RpcnRpZWQgKz0gc3JjLT50b3RhbF9ibGtzX2RpcnRpZWQ7CisJZHN0LT50 b3RhbF9ibGtzX3dyaXR0ZW4gKz0gc3JjLT50b3RhbF9ibGtzX3dyaXR0ZW47CisJZHN0LT53 YWxfYnl0ZXMgKz0gc3JjLT53YWxfYnl0ZXM7CisJZHN0LT53YWxfZnBpICs9IHNyYy0+d2Fs X2ZwaTsKKwlkc3QtPndhbF9yZWNvcmRzICs9IHNyYy0+d2FsX3JlY29yZHM7CisJZHN0LT5i bGtfcmVhZF90aW1lICs9IHNyYy0+YmxrX3JlYWRfdGltZTsKKwlkc3QtPmJsa193cml0ZV90 aW1lICs9IHNyYy0+YmxrX3dyaXRlX3RpbWU7CisJZHN0LT5kZWxheV90aW1lICs9IHNyYy0+ ZGVsYXlfdGltZTsKKwlkc3QtPnN5c3RlbV90aW1lICs9IHNyYy0+c3lzdGVtX3RpbWU7CisJ ZHN0LT51c2VyX3RpbWUgKz0gc3JjLT51c2VyX3RpbWU7CisJZHN0LT50b3RhbF90aW1lICs9 IHNyYy0+dG90YWxfdGltZTsKKwlkc3QtPmludGVycnVwdHMgKz0gc3JjLT5pbnRlcnJ1cHRz OworCisJaWYgKCFhY2N1bXVsYXRlX3JlbHR5cGVfc3BlY2lmaWNfaW5mbykKKwkJcmV0dXJu OworCisJZHN0LT5ibGtzX2ZldGNoZWQgKz0gc3JjLT5ibGtzX2ZldGNoZWQ7CisJZHN0LT5i bGtzX2hpdCArPSBzcmMtPmJsa3NfaGl0OworCisJZHN0LT5wYWdlc19zY2FubmVkICs9IHNy Yy0+cGFnZXNfc2Nhbm5lZDsKKwlkc3QtPnBhZ2VzX3JlbW92ZWQgKz0gc3JjLT5wYWdlc19y ZW1vdmVkOworCWRzdC0+cGFnZXNfZnJvemVuICs9IHNyYy0+cGFnZXNfZnJvemVuOworCWRz dC0+cGFnZXNfYWxsX3Zpc2libGUgKz0gc3JjLT5wYWdlc19hbGxfdmlzaWJsZTsKKwlkc3Qt PnR1cGxlc19kZWxldGVkICs9IHNyYy0+dHVwbGVzX2RlbGV0ZWQ7CisJZHN0LT50dXBsZXNf ZnJvemVuICs9IHNyYy0+dHVwbGVzX2Zyb3plbjsKKwlkc3QtPmRlYWRfdHVwbGVzICs9IHNy Yy0+ZGVhZF90dXBsZXM7CisJZHN0LT5pbmRleF92YWN1dW1fY291bnQgKz0gc3JjLT5pbmRl eF92YWN1dW1fY291bnQ7Cit9CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRmV0Y2hpbmcgb2Ygc3RhdHMK QEAgLTg5Niw3ICs5MjksNyBAQCBwZ3N0YXRfZmV0Y2hfZW50cnkoUGdTdGF0X0tpbmQga2lu ZCwgT2lkIGRib2lkLCBPaWQgb2Jqb2lkKQogCiAJLyogaWYgd2UgbmVlZCB0byBidWlsZCBh IGZ1bGwgc25hcHNob3QsIGRvIHNvICovCiAJaWYgKHBnc3RhdF9mZXRjaF9jb25zaXN0ZW5j eSA9PSBQR1NUQVRfRkVUQ0hfQ09OU0lTVEVOQ1lfU05BUFNIT1QpCi0JCXBnc3RhdF9idWls ZF9zbmFwc2hvdCgpOworCQlwZ3N0YXRfYnVpbGRfc25hcHNob3QoUEdTVEFUX0tJTkRfSU5W QUxJRCk7CiAKIAkvKiBpZiBjYWNoaW5nIGlzIGRlc2lyZWQsIGxvb2sgdXAgaW4gY2FjaGUg Ki8KIAlpZiAocGdzdGF0X2ZldGNoX2NvbnNpc3RlbmN5ID4gUEdTVEFUX0ZFVENIX0NPTlNJ U1RFTkNZX05PTkUpCkBAIC0xMDEyLDcgKzEwNDUsNyBAQCBwZ3N0YXRfc25hcHNob3RfZml4 ZWQoUGdTdGF0X0tpbmQga2luZCkKIAkJcGdzdGF0X2NsZWFyX3NuYXBzaG90KCk7CiAKIAlp ZiAocGdzdGF0X2ZldGNoX2NvbnNpc3RlbmN5ID09IFBHU1RBVF9GRVRDSF9DT05TSVNURU5D WV9TTkFQU0hPVCkKLQkJcGdzdGF0X2J1aWxkX3NuYXBzaG90KCk7CisJCXBnc3RhdF9idWls ZF9zbmFwc2hvdChQR1NUQVRfS0lORF9JTlZBTElEKTsKIAllbHNlCiAJCXBnc3RhdF9idWls ZF9zbmFwc2hvdF9maXhlZChraW5kKTsKIApAQCAtMTA2Miw4ICsxMDk1LDMwIEBAIHBnc3Rh dF9wcmVwX3NuYXBzaG90KHZvaWQpCiAJCQkJCQkJICAgTlVMTCk7CiB9CiAKKworLyoKKyAq IFRyaXZpYWwgZXh0ZXJuYWwgaW50ZXJmYWNlIHRvIGJ1aWxkIGEgc25hcHNob3QgZm9yIHRh YmxlIHN0YXRpc3RpY3Mgb25seS4KKyAqLwordm9pZAorcGdzdGF0X3VwZGF0ZV9zbmFwc2hv dChQZ1N0YXRfS2luZCBraW5kKQoreworCWludCBzYXZlX2NvbnNpc3RlbmN5X2d1YyA9IHBn c3RhdF9mZXRjaF9jb25zaXN0ZW5jeTsKKwlwZ3N0YXRfY2xlYXJfc25hcHNob3QoKTsKKwor CVBHX1RSWSgpOworCXsKKwkJcGdzdGF0X2ZldGNoX2NvbnNpc3RlbmN5ID0gUEdTVEFUX0ZF VENIX0NPTlNJU1RFTkNZX1NOQVBTSE9UOworCQlwZ3N0YXRfYnVpbGRfc25hcHNob3QoUEdT VEFUX0tJTkRfUkVMQVRJT04pOworCX0KKwlQR19GSU5BTExZKCk7CisJeworCQlwZ3N0YXRf ZmV0Y2hfY29uc2lzdGVuY3kgPSBzYXZlX2NvbnNpc3RlbmN5X2d1YzsKKwl9CisJUEdfRU5E X1RSWSgpOworfQorCiBzdGF0aWMgdm9pZAotcGdzdGF0X2J1aWxkX3NuYXBzaG90KHZvaWQp CitwZ3N0YXRfYnVpbGRfc25hcHNob3QoUGdTdGF0X0tpbmQgc3RhdEtpbmQpCiB7CiAJZHNo YXNoX3NlcV9zdGF0dXMgaHN0YXQ7CiAJUGdTdGF0U2hhcmVkX0hhc2hFbnRyeSAqcDsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMKaW5kZXgg OGEzZjdkNDM0Y2YuLmQ0MGQ0M2NkYjRhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYworKysgYi9zcmMvYmFja2VuZC91dGlscy9h Y3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYwpAQCAtMjA0LDEyICsyMDQsNDAgQEAgcGdzdGF0 X2Ryb3BfcmVsYXRpb24oUmVsYXRpb24gcmVsKQogCX0KIH0KIAorLyogLS0tLS0tLS0tCisg KiBwZ3N0YXRfcmVwb3J0X3ZhY3V1bV9lcnJvcigpIC0KKyAqCisgKglUZWxsIHRoZSBjb2xs ZWN0b3IgYWJvdXQgYW4gKGF1dG8pdmFjdXVtIGludGVycnVwdGlvbi4KKyAqIC0tLS0tLS0t LQorICovCit2b2lkCitwZ3N0YXRfcmVwb3J0X3ZhY3V1bV9lcnJvcihPaWQgdGFibGVvaWQp Cit7CisJUGdTdGF0X0VudHJ5UmVmICplbnRyeV9yZWY7CisJUGdTdGF0U2hhcmVkX1JlbGF0 aW9uICpzaHRhYmVudHJ5OworCVBnU3RhdF9TdGF0VGFiRW50cnkgKnRhYmVudHJ5OworCU9p ZAkJCWRib2lkID0gIE15RGF0YWJhc2VJZDsKKworCWlmICghcGdzdGF0X3RyYWNrX2NvdW50 cykKKwkJcmV0dXJuOworCisJZW50cnlfcmVmID0gcGdzdGF0X2dldF9lbnRyeV9yZWZfbG9j a2VkKFBHU1RBVF9LSU5EX1JFTEFUSU9OLAorCQkJCQkJCQkJCQlkYm9pZCwgdGFibGVvaWQs IGZhbHNlKTsKKworCXNodGFiZW50cnkgPSAoUGdTdGF0U2hhcmVkX1JlbGF0aW9uICopIGVu dHJ5X3JlZi0+c2hhcmVkX3N0YXRzOworCXRhYmVudHJ5ID0gJnNodGFiZW50cnktPnN0YXRz OworCisJdGFiZW50cnktPnZhY3V1bV9leHQuaW50ZXJydXB0cysrOworCXBnc3RhdF91bmxv Y2tfZW50cnkoZW50cnlfcmVmKTsKK30KKwogLyoKICAqIFJlcG9ydCB0aGF0IHRoZSB0YWJs ZSB3YXMganVzdCB2YWN1dW1lZCBhbmQgZmx1c2ggSU8gc3RhdGlzdGljcy4KICAqLwogdm9p ZAogcGdzdGF0X3JlcG9ydF92YWN1dW0oT2lkIHRhYmxlb2lkLCBib29sIHNoYXJlZCwKLQkJ CQkJIFBnU3RhdF9Db3VudGVyIGxpdmV0dXBsZXMsIFBnU3RhdF9Db3VudGVyIGRlYWR0dXBs ZXMpCisJCQkJCSBQZ1N0YXRfQ291bnRlciBsaXZldHVwbGVzLCBQZ1N0YXRfQ291bnRlciBk ZWFkdHVwbGVzLAorCQkJCQkgRXh0VmFjUmVwb3J0ICpwYXJhbXMpCiB7CiAJUGdTdGF0X0Vu dHJ5UmVmICplbnRyeV9yZWY7CiAJUGdTdGF0U2hhcmVkX1JlbGF0aW9uICpzaHRhYmVudHJ5 OwpAQCAtMjMzLDYgKzI2MSw4IEBAIHBnc3RhdF9yZXBvcnRfdmFjdXVtKE9pZCB0YWJsZW9p ZCwgYm9vbCBzaGFyZWQsCiAJdGFiZW50cnktPmxpdmVfdHVwbGVzID0gbGl2ZXR1cGxlczsK IAl0YWJlbnRyeS0+ZGVhZF90dXBsZXMgPSBkZWFkdHVwbGVzOwogCisJcGdzdGF0X2FjY3Vt dWxhdGVfZXh0dmFjX3N0YXRzKCZ0YWJlbnRyeS0+dmFjdXVtX2V4dCwgcGFyYW1zLCB0cnVl KTsKKwogCS8qCiAJICogSXQgaXMgcXVpdGUgcG9zc2libGUgdGhhdCBhIG5vbi1hZ2dyZXNz aXZlIFZBQ1VVTSBlbmRlZCB1cCBza2lwcGluZwogCSAqIHZhcmlvdXMgcGFnZXMsIGhvd2V2 ZXIsIHdlJ2xsIHplcm8gdGhlIGluc2VydCBjb3VudGVyIGhlcmUgcmVnYXJkbGVzcy4KQEAg LTg2MSw2ICs4OTEsOSBAQCBwZ3N0YXRfcmVsYXRpb25fZmx1c2hfY2IoUGdTdGF0X0VudHJ5 UmVmICplbnRyeV9yZWYsIGJvb2wgbm93YWl0KQogCXRhYmVudHJ5LT5ibG9ja3NfZmV0Y2hl ZCArPSBsc3RhdHMtPmNvdW50cy5ibG9ja3NfZmV0Y2hlZDsKIAl0YWJlbnRyeS0+YmxvY2tz X2hpdCArPSBsc3RhdHMtPmNvdW50cy5ibG9ja3NfaGl0OwogCisJdGFiZW50cnktPnJldl9h bGxfZnJvemVuX3BhZ2VzICs9IGxzdGF0cy0+Y291bnRzLnJldl9hbGxfZnJvemVuX3BhZ2Vz OworCXRhYmVudHJ5LT5yZXZfYWxsX3Zpc2libGVfcGFnZXMgKz0gbHN0YXRzLT5jb3VudHMu cmV2X2FsbF92aXNpYmxlX3BhZ2VzOworCiAJLyogQ2xhbXAgbGl2ZV90dXBsZXMgaW4gY2Fz ZSBvZiBuZWdhdGl2ZSBkZWx0YV9saXZlX3R1cGxlcyAqLwogCXRhYmVudHJ5LT5saXZlX3R1 cGxlcyA9IE1heCh0YWJlbnRyeS0+bGl2ZV90dXBsZXMsIDApOwogCS8qIExpa2V3aXNlIGZv ciBkZWFkX3R1cGxlcyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bn c3RhdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwppbmRl eCAzMjIxMTM3MTIzNy4uMWRmMjcxMjg2ZTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0 YXRmdW5jcy5jCkBAIC0zMSw2ICszMSw0MiBAQAogI2luY2x1ZGUgInV0aWxzL2FjbC5oIgog I2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvdGltZXN0YW1w LmgiCisjaW5jbHVkZSAidXRpbHMvcGdzdGF0X2ludGVybmFsLmgiCisKKy8qIGhhc2ggdGFi bGUgZm9yIHN0YXRpc3RpY3Mgc25hcHNob3RzIGVudHJ5ICovCit0eXBlZGVmIHN0cnVjdCBQ Z1N0YXRfU25hcHNob3RFbnRyeQoreworCVBnU3RhdF9IYXNoS2V5IGtleTsKKwljaGFyCQlz dGF0dXM7CQkJLyogZm9yIHNpbXBsZWhhc2ggdXNlICovCisJdm9pZAkgICAqZGF0YTsJCQkv KiB0aGUgc3RhdHMgZGF0YSBpdHNlbGYgKi8KK30gUGdTdGF0X1NuYXBzaG90RW50cnk7CisK Ky8qIC0tLS0tLS0tLS0KKyAqIEJhY2tlbmQtbG9jYWwgSGFzaCBUYWJsZSBEZWZpbml0aW9u cworICogLS0tLS0tLS0tLQorICovCisKKy8qIGZvciBzdGF0cyBzbmFwc2hvdCBlbnRyaWVz ICovCisjZGVmaW5lIFNIX1BSRUZJWCBwZ3N0YXRfc25hcHNob3QKKyNkZWZpbmUgU0hfRUxF TUVOVF9UWVBFIFBnU3RhdF9TbmFwc2hvdEVudHJ5CisjZGVmaW5lIFNIX0tFWV9UWVBFIFBn U3RhdF9IYXNoS2V5CisjZGVmaW5lIFNIX0tFWSBrZXkKKyNkZWZpbmUgU0hfSEFTSF9LRVko dGIsIGtleSkgXAorCXBnc3RhdF9oYXNoX2hhc2hfa2V5KCZrZXksIHNpemVvZihQZ1N0YXRf SGFzaEtleSksIE5VTEwpCisjZGVmaW5lIFNIX0VRVUFMKHRiLCBhLCBiKSBcCisJcGdzdGF0 X2NtcF9oYXNoX2tleSgmYSwgJmIsIHNpemVvZihQZ1N0YXRfSGFzaEtleSksIE5VTEwpID09 IDAKKyNkZWZpbmUgU0hfU0NPUEUgc3RhdGljIGlubGluZQorI2RlZmluZSBTSF9ERUZJTkUK KyNkZWZpbmUgU0hfREVDTEFSRQorI2luY2x1ZGUgImxpYi9zaW1wbGVoYXNoLmgiCisKK3R5 cGVkZWYgcGdzdGF0X3NuYXBzaG90X2l0ZXJhdG9yIFNuYXBzaG90SXRlcmF0b3I7CisKKyNk ZWZpbmUgSW5pdFNuYXBzaG90SXRlcmF0b3IoaHRhYmxlLCBpdGVyKSBcCisJcGdzdGF0X3Nu YXBzaG90X3N0YXJ0X2l0ZXJhdGUoaHRhYmxlLCBpdGVyKTsKKyNkZWZpbmUgU2NhblN0YXRT bmFwc2hvdChodGFibGUsIGl0ZXIpIFwKKwlwZ3N0YXRfc25hcHNob3RfaXRlcmF0ZShodGFi bGUsIGl0ZXIpCisKIAogI2RlZmluZSBVSU5UMzJfQUNDRVNTX09OQ0UodmFyKQkJICgodWlu dDMyKSgqKCh2b2xhdGlsZSB1aW50MzIgKikmKHZhcikpKSkKIApAQCAtMjAzMiwzICsyMDY4 LDEyNCBAQCBwZ19zdGF0X2hhdmVfc3RhdHMoUEdfRlVOQ1RJT05fQVJHUykKIAogCVBHX1JF VFVSTl9CT09MKHBnc3RhdF9oYXZlX2VudHJ5KGtpbmQsIGRib2lkLCBvYmpvaWQpKTsKIH0K KworI2RlZmluZSBFWFRWQUNIRUFQU1RBVF9DT0xVTU5TCTI3CisKK3N0YXRpYyB2b2lkCit0 dXBsZXN0b3JlX3B1dF9mb3JfcmVsYXRpb24oT2lkIHJlbGlkLCBSZXR1cm5TZXRJbmZvICpy c2luZm8sCisJCQkJCQkJUGdTdGF0X1N0YXRUYWJFbnRyeSAqdGFiZW50cnkpCit7CisJRGF0 dW0JCXZhbHVlc1tFWFRWQUNIRUFQU1RBVF9DT0xVTU5TXTsKKwlib29sCQludWxsc1tFWFRW QUNIRUFQU1RBVF9DT0xVTU5TXTsKKwljaGFyCQlidWZbMjU2XTsKKwlpbnQJCQlpID0gMDsK KworCW1lbXNldChudWxscywgMCwgRVhUVkFDSEVBUFNUQVRfQ09MVU1OUyAqIHNpemVvZihi b29sKSk7CisKKwl2YWx1ZXNbaSsrXSA9IE9iamVjdElkR2V0RGF0dW0ocmVsaWQpOworCisJ dmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKHRhYmVudHJ5LT52YWN1dW1fZXh0LnRvdGFs X2Jsa3NfcmVhZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKHRhYmVudHJ5LT52 YWN1dW1fZXh0LnRvdGFsX2Jsa3NfaGl0KTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0 dW0odGFiZW50cnktPnZhY3V1bV9leHQudG90YWxfYmxrc19kaXJ0aWVkKTsKKwl2YWx1ZXNb aSsrXSA9IEludDY0R2V0RGF0dW0odGFiZW50cnktPnZhY3V1bV9leHQudG90YWxfYmxrc193 cml0dGVuKTsKKworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bSh0YWJlbnRyeS0+dmFj dXVtX2V4dC5ibGtzX2ZldGNoZWQgLQorCQkJCQkJCQkJdGFiZW50cnktPnZhY3V1bV9leHQu Ymxrc19oaXQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bSh0YWJlbnRyeS0+dmFj dXVtX2V4dC5ibGtzX2hpdCk7CisKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0odGFi ZW50cnktPnZhY3V1bV9leHQucGFnZXNfc2Nhbm5lZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2 NEdldERhdHVtKHRhYmVudHJ5LT52YWN1dW1fZXh0LnBhZ2VzX3JlbW92ZWQpOworCXZhbHVl c1tpKytdID0gSW50NjRHZXREYXR1bSh0YWJlbnRyeS0+dmFjdXVtX2V4dC5wYWdlc19mcm96 ZW4pOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bSh0YWJlbnRyeS0+dmFjdXVtX2V4 dC5wYWdlc19hbGxfdmlzaWJsZSk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKHRh YmVudHJ5LT52YWN1dW1fZXh0LnR1cGxlc19kZWxldGVkKTsKKwl2YWx1ZXNbaSsrXSA9IElu dDY0R2V0RGF0dW0odGFiZW50cnktPnZhY3V1bV9leHQudHVwbGVzX2Zyb3plbik7CisJdmFs dWVzW2krK10gPSBJbnQ2NEdldERhdHVtKHRhYmVudHJ5LT52YWN1dW1fZXh0LmRlYWRfdHVw bGVzKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0odGFiZW50cnktPnZhY3V1bV9l eHQuaW5kZXhfdmFjdXVtX2NvdW50KTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0o dGFiZW50cnktPnJldl9hbGxfZnJvemVuX3BhZ2VzKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0 R2V0RGF0dW0odGFiZW50cnktPnJldl9hbGxfdmlzaWJsZV9wYWdlcyk7CisKKwl2YWx1ZXNb aSsrXSA9IEludDY0R2V0RGF0dW0odGFiZW50cnktPnZhY3V1bV9leHQud2FsX3JlY29yZHMp OworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bSh0YWJlbnRyeS0+dmFjdXVtX2V4dC53 YWxfZnBpKTsKKworCS8qIENvbnZlcnQgdG8gbnVtZXJpYywgbGlrZSBwZ19zdGF0X3N0YXRl bWVudHMgKi8KKwlzbnByaW50ZihidWYsIHNpemVvZiBidWYsIFVJTlQ2NF9GT1JNQVQsIHRh YmVudHJ5LT52YWN1dW1fZXh0LndhbF9ieXRlcyk7CisJdmFsdWVzW2krK10gPSBEaXJlY3RG dW5jdGlvbkNhbGwzKG51bWVyaWNfaW4sCisJCQkJCQkJCQkgIENTdHJpbmdHZXREYXR1bShi dWYpLAorCQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKDApLAorCQkJCQkJCQkJICBJbnQz MkdldERhdHVtKC0xKSk7CisKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKHRhYmVu dHJ5LT52YWN1dW1fZXh0LmJsa19yZWFkX3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4 R2V0RGF0dW0odGFiZW50cnktPnZhY3V1bV9leHQuYmxrX3dyaXRlX3RpbWUpOworCXZhbHVl c1tpKytdID0gRmxvYXQ4R2V0RGF0dW0odGFiZW50cnktPnZhY3V1bV9leHQuZGVsYXlfdGlt ZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bSh0YWJlbnRyeS0+dmFjdXVtX2V4 dC5zeXN0ZW1fdGltZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bSh0YWJlbnRy eS0+dmFjdXVtX2V4dC51c2VyX3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0 dW0odGFiZW50cnktPnZhY3V1bV9leHQudG90YWxfdGltZSk7CisJdmFsdWVzW2krK10gPSBJ bnQzMkdldERhdHVtKHRhYmVudHJ5LT52YWN1dW1fZXh0LmludGVycnVwdHMpOworCisJQXNz ZXJ0KGkgPT0gcnNpbmZvLT5zZXREZXNjLT5uYXR0cyk7CisJdHVwbGVzdG9yZV9wdXR2YWx1 ZXMocnNpbmZvLT5zZXRSZXN1bHQsIHJzaW5mby0+c2V0RGVzYywgdmFsdWVzLCBudWxscyk7 Cit9CisKKy8qCisgKiBHZXQgdGhlIHZhY3V1bSBzdGF0aXN0aWNzIGZvciB0aGUgaGVhcCB0 YWJsZXMgb3IgaW5kZXhlcy4KKyAqLworc3RhdGljIHZvaWQKK3BnX3N0YXRzX3ZhY3V1bShG dW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgaW50IG5jb2x1bW5zKQoreworCVJldHVyblNldElu Zm8JCSAgICpyc2luZm8gPSAoUmV0dXJuU2V0SW5mbyAqKSBmY2luZm8tPnJlc3VsdGluZm87 CisJT2lkCQkJCQkJcmVsaWQgPSBQR19HRVRBUkdfT0lEKDApOworCVBnU3RhdF9TdGF0VGFi RW50cnkgICAgKnRhYmVudHJ5OworCisJSW5pdE1hdGVyaWFsaXplZFNSRihmY2luZm8sIDAp OworCisJLyogQ2hlY2sgaWYgY2FsbGVyIHN1cHBvcnRzIHVzIHJldHVybmluZyBhIHR1cGxl c3RvcmUgKi8KKwlpZiAocnNpbmZvID09IE5VTEwgfHwgIUlzQShyc2luZm8sIFJldHVyblNl dEluZm8pKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVS RV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJzZXQtdmFsdWVkIGZ1bmN0aW9uIGNh bGxlZCBpbiBjb250ZXh0IHRoYXQgY2Fubm90IGFjY2VwdCBhIHNldCIpKSk7CisJQXNzZXJ0 KHJzaW5mby0+c2V0RGVzYy0+bmF0dHMgPT0gbmNvbHVtbnMpOworCUFzc2VydChyc2luZm8t PnNldFJlc3VsdCAhPSBOVUxMKTsKKworCS8qIExvYWQgdGFibGUgc3RhdGlzdGljcyBmb3Ig c3BlY2lmaWVkIGRhdGFiYXNlLiAqLworCWlmIChPaWRJc1ZhbGlkKHJlbGlkKSkKKwl7CisJ CXRhYmVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfdGFiZW50cnkocmVsaWQpOworCQlpZiAo dGFiZW50cnkgPT0gTlVMTCkKKwkJCS8qIFRhYmxlIGRvbid0IGV4aXN0cyBvciBpc24ndCBh biBoZWFwIHJlbGF0aW9uLiAqLworCQkJcmV0dXJuOworCisJCXR1cGxlc3RvcmVfcHV0X2Zv cl9yZWxhdGlvbihyZWxpZCwgcnNpbmZvLCB0YWJlbnRyeSk7CisJfQorCWVsc2UKKwl7CisJ CVNuYXBzaG90SXRlcmF0b3IJCWhhc2hpdGVyOworCQlQZ1N0YXRfU25hcHNob3RFbnRyeSAg ICplbnRyeTsKKworCQkvKiBJdGVyYXRlIHRoZSBzbmFwc2hvdCAqLworCQlJbml0U25hcHNo b3RJdGVyYXRvcihwZ1N0YXRMb2NhbC5zbmFwc2hvdC5zdGF0cywgJmhhc2hpdGVyKTsKKwor CQl3aGlsZSAoKGVudHJ5ID0gU2NhblN0YXRTbmFwc2hvdChwZ1N0YXRMb2NhbC5zbmFwc2hv dC5zdGF0cywgJmhhc2hpdGVyKSkgIT0gTlVMTCkKKwkJeworCQkJT2lkCXJlbG9pZDsKKwor CQkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKKworCQkJdGFiZW50cnkgPSAoUGdTdGF0X1N0 YXRUYWJFbnRyeSAqKSBlbnRyeS0+ZGF0YTsKKwkJCXJlbG9pZCA9IGVudHJ5LT5rZXkub2Jq b2lkOworCisJCQlpZiAodGFiZW50cnkgIT0gTlVMTCkKKwkJCQl0dXBsZXN0b3JlX3B1dF9m b3JfcmVsYXRpb24ocmVsb2lkLCByc2luZm8sIHRhYmVudHJ5KTsKKwkJfQorCX0KK30KKwor LyoKKyAqIEdldCB0aGUgdmFjdXVtIHN0YXRpc3RpY3MgZm9yIHRoZSBoZWFwIHRhYmxlcy4K KyAqLworRGF0dW0KK3BnX3N0YXRfdmFjdXVtX3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQor eworCXBnX3N0YXRzX3ZhY3V1bShmY2luZm8sIEVYVFZBQ0hFQVBTVEFUX0NPTFVNTlMpOwor CisJUEdfUkVUVVJOX1ZPSUQoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2Vycm9yL2Vsb2cuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Vycm9yL2Vsb2cuYwppbmRleCA1 Y2JiNWI1NDE2OC4uNWVhZDJhOGFmZjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2Vycm9yL2Vsb2cuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9lcnJvci9lbG9nLmMKQEAg LTE2MTksNiArMTYxOSwxOSBAQCBnZXRpbnRlcm5hbGVycnBvc2l0aW9uKHZvaWQpCiAJcmV0 dXJuIGVkYXRhLT5pbnRlcm5hbHBvczsKIH0KIAorLyoKKyAqIFJldHVybiBlbGV2ZWwgb2Yg ZXJyb3JzCisgKi8KK2ludAorZ2V0ZXJyZWxldmVsKHZvaWQpCit7CisJRXJyb3JEYXRhICAq ZWRhdGEgPSAmZXJyb3JkYXRhW2Vycm9yZGF0YV9zdGFja19kZXB0aF07CisKKwkvKiB3ZSBk b24ndCBib3RoZXIgaW5jcmVtZW50aW5nIHJlY3Vyc2lvbl9kZXB0aCAqLworCUNIRUNLX1NU QUNLX0RFUFRIKCk7CisKKwlyZXR1cm4gZWRhdGEtPmVsZXZlbDsKK30KIAogLyoKICAqIEZ1 bmN0aW9ucyB0byBhbGxvdyBjb25zdHJ1Y3Rpb24gb2YgZXJyb3IgbWVzc2FnZSBzdHJpbmdz IHNlcGFyYXRlbHkgZnJvbQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19w cm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggNGFiYzZk OTUyNjIuLjIwMjMyNzBmOTIzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTEy MjU0LDUgKzEyMjU0LDEzIEBACiAgIHByb2FsbGFyZ3R5cGVzID0+ICd7aW50OCxwZ19sc24s cGdfbHNuLGludDR9JywgcHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvfScsCiAgIHByb2FyZ25h bWVzID0+ICd7c3VtbWFyaXplZF90bGksc3VtbWFyaXplZF9sc24scGVuZGluZ19sc24sc3Vt bWFyaXplcl9waWR9JywKICAgcHJvc3JjID0+ICdwZ19nZXRfd2FsX3N1bW1hcml6ZXJfc3Rh dGUnIH0sCi0KK3sgb2lkID0+ICc4MDAxJywKKyAgZGVzY3IgPT4gJ3BnX3N0YXRfdmFjdXVt X3RhYmxlcyByZXR1cm4gc3RhdHMgdmFsdWVzJywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF92 YWN1dW1fdGFibGVzJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdyZWNv cmQnLHByb2lzc3RyaWN0ID0+ICdmJywKKyAgcHJvcmV0c2V0ID0+ICd0JywKKyAgcHJvYXJn dHlwZXMgPT4gJ29pZCcsCisgIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLG9pZCxpbnQ4LGlu dDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxp bnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxudW1lcmljLGZsb2F0OCxmbG9hdDgsZmxv YXQ4LGZsb2F0OCxmbG9hdDgsZmxvYXQ4LGludDR9JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tp LG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxv fScsCisgIHByb2FyZ25hbWVzID0+ICd7cmVsb2lkLHJlbGlkLHRvdGFsX2Jsa3NfcmVhZCx0 b3RhbF9ibGtzX2hpdCx0b3RhbF9ibGtzX2RpcnRpZWQsdG90YWxfYmxrc193cml0dGVuLHJl bF9ibGtzX3JlYWQscmVsX2Jsa3NfaGl0LHBhZ2VzX3NjYW5uZWQscGFnZXNfcmVtb3ZlZCxw YWdlc19mcm96ZW4scGFnZXNfYWxsX3Zpc2libGUsdHVwbGVzX2RlbGV0ZWQsdHVwbGVzX2Zy b3plbixkZWFkX3R1cGxlcyxpbmRleF92YWN1dW1fY291bnQscmV2X2FsbF9mcm96ZW5fcGFn ZXMscmV2X2FsbF92aXNpYmxlX3BhZ2VzLHdhbF9yZWNvcmRzLHdhbF9mcGksd2FsX2J5dGVz LGJsa19yZWFkX3RpbWUsYmxrX3dyaXRlX3RpbWUsZGVsYXlfdGltZSxzeXN0ZW1fdGltZSx1 c2VyX3RpbWUsdG90YWxfdGltZSxpbnRlcnJ1cHRzfScsCisgIHByb3NyYyA9PiAncGdfc3Rh dF92YWN1dW1fdGFibGVzJyB9LAogXQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFu ZHMvdmFjdXVtLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaAppbmRleCA3NTlm OWE4N2QzOC4uMDdiMjhiMTVkOWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRz L3ZhY3V1bS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCkBAIC0zMDgs NiArMzA4LDcgQEAgZXh0ZXJuIFBHRExMSU1QT1JUIGludCB2YWN1dW1fbXVsdGl4YWN0X2Zh aWxzYWZlX2FnZTsKIGV4dGVybiBQR0RMTElNUE9SVCBwZ19hdG9taWNfdWludDMyICpWYWN1 dW1TaGFyZWRDb3N0QmFsYW5jZTsKIGV4dGVybiBQR0RMTElNUE9SVCBwZ19hdG9taWNfdWlu dDMyICpWYWN1dW1BY3RpdmVOV29ya2VyczsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgVmFj dXVtQ29zdEJhbGFuY2VMb2NhbDsKK2V4dGVybiBQR0RMTElNUE9SVCBkb3VibGUgVmFjdXVt RGVsYXlUaW1lOwogCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBWYWN1dW1GYWlsc2FmZUFj dGl2ZTsKIGV4dGVybiBQR0RMTElNUE9SVCBkb3VibGUgdmFjdXVtX2Nvc3RfZGVsYXk7CmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaCBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5o CmluZGV4IGY2MzE1OWM1NWNhLi40NDkyYTA1NzJjNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvcGdzdGF0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKQEAgLTE2Nyw2ICsxNjcs NTIgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X0JhY2tlbmRTdWJFbnRyeQogCVBnU3RhdF9D b3VudGVyIHN5bmNfZXJyb3JfY291bnQ7CiB9IFBnU3RhdF9CYWNrZW5kU3ViRW50cnk7CiAK Ky8qIC0tLS0tLS0tLS0KKyAqCisgKiBFeHRWYWNSZXBvcnQKKyAqCisgKiBBZGRpdGlvbmFs IHN0YXRpc3RpY3Mgb2YgdmFjdXVtIHByb2Nlc3Npbmcgb3ZlciBhIGhlYXAgcmVsYXRpb24u CisgKiBwYWdlc19yZW1vdmVkIGlzIHRoZSBhbW91bnQgYnkgd2hpY2ggdGhlIHBoeXNpY2Fs bHkgc2hyYW5rLAorICogaWYgYW55IChpZSB0aGUgY2hhbmdlIGluIGl0cyB0b3RhbCBzaXpl IG9uIGRpc2spCisgKiBwYWdlc19kZWxldGVkIHJlZmVyIHRvIGZyZWUgc3BhY2Ugd2l0aGlu IHRoZSBpbmRleCBmaWxlCisgKiAtLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IEV4 dFZhY1JlcG9ydAoreworCWludDY0CQl0b3RhbF9ibGtzX3JlYWQ7IAkvKiBudW1iZXIgb2Yg cGFnZXMgdGhhdCB3ZXJlIG1pc3NlZCBpbiBzaGFyZWQgYnVmZmVycyBkdXJpbmcgYSB2YWN1 dW0gb2Ygc3BlY2lmaWMgcmVsYXRpb24gKi8KKwlpbnQ2NAkJdG90YWxfYmxrc19oaXQ7IAkv KiBudW1iZXIgb2YgcGFnZXMgdGhhdCB3ZXJlIGZvdW5kIGluIHNoYXJlZCBidWZmZXJzIGR1 cmluZyBhIHZhY3V1bSBvZiBzcGVjaWZpYyByZWxhdGlvbiAqLworCWludDY0CQl0b3RhbF9i bGtzX2RpcnRpZWQ7CS8qIG51bWJlciBvZiBwYWdlcyBtYXJrZWQgYXMgJ0RpcnR5JyBkdXJp bmcgYSB2YWN1dW0gb2Ygc3BlY2lmaWMgcmVsYXRpb24uICovCisJaW50NjQJCXRvdGFsX2Js a3Nfd3JpdHRlbjsJLyogbnVtYmVyIG9mIHBhZ2VzIHdyaXR0ZW4gZHVyaW5nIGEgdmFjdXVt IG9mIHNwZWNpZmljIHJlbGF0aW9uLiAqLworCisJaW50NjQJCWJsa3NfZmV0Y2hlZDsgCQkv KiBudW1iZXIgb2YgYSByZWxhdGlvbiBibG9ja3MsIGZldGNoZWQgZHVyaW5nIHRoZSB2YWN1 dW0uICovCisJaW50NjQJCWJsa3NfaGl0OwkJLyogbnVtYmVyIG9mIGEgcmVsYXRpb24gYmxv Y2tzLCBmb3VuZCBpbiBzaGFyZWQgYnVmZmVycyBkdXJpbmcgdGhlIHZhY3V1bS4gKi8KKwor CS8qIFZhY3V1bSBXQUwgdXNhZ2Ugc3RhdHMgKi8KKwlpbnQ2NAkJd2FsX3JlY29yZHM7CS8q IHdhbCB1c2FnZTogbnVtYmVyIG9mIFdBTCByZWNvcmRzICovCisJaW50NjQJCXdhbF9mcGk7 CQkvKiB3YWwgdXNhZ2U6IG51bWJlciBvZiBXQUwgZnVsbCBwYWdlIGltYWdlcyBwcm9kdWNl ZCAqLworCXVpbnQ2NAkJd2FsX2J5dGVzOwkJLyogd2FsIHVzYWdlOiBzaXplIG9mIFdBTCBy ZWNvcmRzIHByb2R1Y2VkICovCisKKwkvKiBUaW1lIHN0YXRzLiAqLworCWRvdWJsZQkJYmxr X3JlYWRfdGltZTsJLyogdGltZSBzcGVudCByZWFkaW5nIHBhZ2VzLCBpbiBtc2VjICovCisJ ZG91YmxlCQlibGtfd3JpdGVfdGltZTsgLyogdGltZSBzcGVudCB3cml0aW5nIHBhZ2VzLCBp biBtc2VjICovCisJZG91YmxlCQlkZWxheV90aW1lOwkJLyogaG93IGxvbmcgdmFjdXVtIHNs ZXB0IGluIHZhY3V1bSBkZWxheSBwb2ludCwgaW4gbXNlYyAqLworCWRvdWJsZQkJc3lzdGVt X3RpbWU7CS8qIGFtb3VudCBvZiB0aW1lIHRoZSBDUFUgd2FzIGJ1c3kgZXhlY3V0aW5nIHZh Y3V1bSBjb2RlIGluIGtlcm5lbCBzcGFjZSwgaW4gbXNlYyAqLworCWRvdWJsZQkJdXNlcl90 aW1lOwkJLyogYW1vdW50IG9mIHRpbWUgdGhlIENQVSB3YXMgYnVzeSBleGVjdXRpbmcgdmFj dXVtIGNvZGUgaW4gdXNlciBzcGFjZSwgaW4gbXNlYyAqLworCWRvdWJsZQkJdG90YWxfdGlt ZTsJCS8qIHRvdGFsIHRpbWUgb2YgYSB2YWN1dW0gb3BlcmF0aW9uLCBpbiBtc2VjICovCisK KwkvKiBJbnRlcnJ1cHRpb25zIG9uIGFueSBlcnJvcnMuICovCisJaW50MzIJCWludGVycnVw dHM7CisKKwlpbnQ2NAkJcGFnZXNfc2Nhbm5lZDsJCS8qIG51bWJlciBvZiBwYWdlcyB3ZSBl eGFtaW5lZCAqLworCWludDY0CQlwYWdlc19yZW1vdmVkOwkJLyogbnVtYmVyIG9mIHBhZ2Vz IHJlbW92ZWQgYnkgdmFjdXVtICovCisJaW50NjQJCXBhZ2VzX2Zyb3plbjsJCS8qIG51bWJl ciBvZiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMgZnJvemVuICovCisJaW50NjQJCXBhZ2VzX2Fs bF92aXNpYmxlOwkvKiBudW1iZXIgb2YgcGFnZXMgbWFya2VkIGluIFZNIGFzIGFsbC12aXNp YmxlICovCisJaW50NjQJCXR1cGxlc19kZWxldGVkOwkJLyogdHVwbGVzIGRlbGV0ZWQgYnkg dmFjdXVtICovCisJaW50NjQJCXR1cGxlc19mcm96ZW47CQkvKiB0dXBsZXMgZnJvemVuIHVw IGJ5IHZhY3V1bSAqLworCWludDY0CQlkZWFkX3R1cGxlczsJCS8qIG51bWJlciBvZiBkZWxl dGVkIHR1cGxlcyB3aGljaCB2YWN1dW0gY2Fubm90IGNsZWFuIHVwIGJ5IHZhY3V1bSBvcGVy YXRpb24gKi8KKwlpbnQ2NAkJaW5kZXhfdmFjdXVtX2NvdW50OwkvKiBudW1iZXIgb2YgaW5k ZXggdmFjdXVtaW5ncyAqLworfSBFeHRWYWNSZXBvcnQ7CisKIC8qIC0tLS0tLS0tLS0KICAq IFBnU3RhdF9UYWJsZUNvdW50cwkJCVRoZSBhY3R1YWwgcGVyLXRhYmxlIGNvdW50cyBrZXB0 IGJ5IGEgYmFja2VuZAogICoKQEAgLTIwNyw2ICsyNTMsMTYgQEAgdHlwZWRlZiBzdHJ1Y3Qg UGdTdGF0X1RhYmxlQ291bnRzCiAKIAlQZ1N0YXRfQ291bnRlciBibG9ja3NfZmV0Y2hlZDsK IAlQZ1N0YXRfQ291bnRlciBibG9ja3NfaGl0OworCisJUGdTdGF0X0NvdW50ZXIgcmV2X2Fs bF92aXNpYmxlX3BhZ2VzOworCVBnU3RhdF9Db3VudGVyIHJldl9hbGxfZnJvemVuX3BhZ2Vz OworCisJLyoKKwkgKiBBZGRpdGlvbmFsIGN1bXVsYXRpdmUgc3RhdCBvbiB2YWN1dW0gb3Bl cmF0aW9ucy4KKwkgKiBVc2UgYW4gZXhwZW5zaXZlIHN0cnVjdHVyZSBhcyBhbiBhYnN0cmFj dGlvbiBmb3IgZGlmZmVyZW50IHR5cGVzIG9mCisJICogcmVsYXRpb25zLgorCSAqLworCUV4 dFZhY1JlcG9ydAl2YWN1dW1fZXh0OwogfSBQZ1N0YXRfVGFibGVDb3VudHM7CiAKIC8qIC0t LS0tLS0tLS0KQEAgLTI2NSw3ICszMjEsNyBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfVGFi bGVYYWN0U3RhdHVzCiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCi0jZGVmaW5lIFBHU1RBVF9GSUxFX0ZP Uk1BVF9JRAkweDAxQTVCQ0FFCisjZGVmaW5lIFBHU1RBVF9GSUxFX0ZPUk1BVF9JRAkweDAx QTVCQ0FGCiAKIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9BcmNoaXZlclN0YXRzCiB7CkBAIC0z ODQsNiArNDQwLDggQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0YXREQkVudHJ5CiAJUGdT dGF0X0NvdW50ZXIgc2Vzc2lvbnNfa2lsbGVkOwogCiAJVGltZXN0YW1wVHogc3RhdF9yZXNl dF90aW1lc3RhbXA7CisKKwlFeHRWYWNSZXBvcnQgdmFjdXVtX2V4dDsJCS8qIGV4dGVuZGVk IHZhY3V1bSBzdGF0aXN0aWNzICovCiB9IFBnU3RhdF9TdGF0REJFbnRyeTsKIAogdHlwZWRl ZiBzdHJ1Y3QgUGdTdGF0X1N0YXRGdW5jRW50cnkKQEAgLTQ1Niw2ICs1MTQsMTEgQEAgdHlw ZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0YXRUYWJFbnRyeQogCVBnU3RhdF9Db3VudGVyIGFuYWx5 emVfY291bnQ7CiAJVGltZXN0YW1wVHogbGFzdF9hdXRvYW5hbHl6ZV90aW1lOwkvKiBhdXRv dmFjdXVtIGluaXRpYXRlZCAqLwogCVBnU3RhdF9Db3VudGVyIGF1dG9hbmFseXplX2NvdW50 OworCisJUGdTdGF0X0NvdW50ZXIgcmV2X2FsbF92aXNpYmxlX3BhZ2VzOworCVBnU3RhdF9D b3VudGVyIHJldl9hbGxfZnJvemVuX3BhZ2VzOworCisJRXh0VmFjUmVwb3J0IHZhY3V1bV9l eHQ7CiB9IFBnU3RhdF9TdGF0VGFiRW50cnk7CiAKIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9X YWxTdGF0cwpAQCAtNjIxLDEwICs2ODQsMTIgQEAgZXh0ZXJuIHZvaWQgcGdzdGF0X2Fzc29j X3JlbGF0aW9uKFJlbGF0aW9uIHJlbCk7CiBleHRlcm4gdm9pZCBwZ3N0YXRfdW5saW5rX3Jl bGF0aW9uKFJlbGF0aW9uIHJlbCk7CiAKIGV4dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfdmFj dXVtKE9pZCB0YWJsZW9pZCwgYm9vbCBzaGFyZWQsCi0JCQkJCQkJCSBQZ1N0YXRfQ291bnRl ciBsaXZldHVwbGVzLCBQZ1N0YXRfQ291bnRlciBkZWFkdHVwbGVzKTsKKwkJCQkJCQkJIFBn U3RhdF9Db3VudGVyIGxpdmV0dXBsZXMsIFBnU3RhdF9Db3VudGVyIGRlYWR0dXBsZXMsCisJ CQkJCQkJCSBFeHRWYWNSZXBvcnQgKnBhcmFtcyk7CiBleHRlcm4gdm9pZCBwZ3N0YXRfcmVw b3J0X2FuYWx5emUoUmVsYXRpb24gcmVsLAogCQkJCQkJCQkgIFBnU3RhdF9Db3VudGVyIGxp dmV0dXBsZXMsIFBnU3RhdF9Db3VudGVyIGRlYWR0dXBsZXMsCiAJCQkJCQkJCSAgYm9vbCBy ZXNldGNvdW50ZXIpOworZXh0ZXJuIHZvaWQgcGdzdGF0X3JlcG9ydF92YWN1dW1fZXJyb3Io T2lkIHRhYmxlb2lkKTsKIAogLyoKICAqIElmIHN0YXRzIGFyZSBlbmFibGVkLCBidXQgcGVu ZGluZyBkYXRhIGhhc24ndCBiZWVuIHByZXBhcmVkIHlldCwgY2FsbApAQCAtNjcyLDYgKzcz NywxNyBAQCBleHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0X2FuYWx5emUoUmVsYXRpb24gcmVs LAogCQlpZiAocGdzdGF0X3Nob3VsZF9jb3VudF9yZWxhdGlvbihyZWwpKQkJCQkJCVwKIAkJ CShyZWwpLT5wZ3N0YXRfaW5mby0+Y291bnRzLmJsb2Nrc19oaXQrKzsJCQkJXAogCX0gd2hp bGUgKDApCisvKiBhY2N1bXVsYXRlIHVuZnJvemVuIGFsbC12aXNpYmxlIGFuZCBhbGwtZnJv emVuIHBhZ2VzICovCisjZGVmaW5lIHBnc3RhdF9jb3VudF92bV9yZXZfYWxsX3Zpc2libGUo cmVsKQkJCQkJCVwKKwlkbyB7CQkJCQkJCQkJCQkJCQkJXAorCQlpZiAocGdzdGF0X3Nob3Vs ZF9jb3VudF9yZWxhdGlvbihyZWwpKQkJCQkJCVwKKwkJCShyZWwpLT5wZ3N0YXRfaW5mby0+ Y291bnRzLnJldl9hbGxfdmlzaWJsZV9wYWdlcysrOwlcCisJfSB3aGlsZSAoMCkKKyNkZWZp bmUgcGdzdGF0X2NvdW50X3ZtX3Jldl9hbGxfZnJvemVuKHJlbCkJCQkJCQlcCisJZG8gewkJ CQkJCQkJCQkJCQkJCVwKKwkJaWYgKHBnc3RhdF9zaG91bGRfY291bnRfcmVsYXRpb24ocmVs KSkJCQkJCQlcCisJCQkocmVsKS0+cGdzdGF0X2luZm8tPmNvdW50cy5yZXZfYWxsX2Zyb3pl bl9wYWdlcysrOwlcCisJfSB3aGlsZSAoMCkKIAogZXh0ZXJuIHZvaWQgcGdzdGF0X2NvdW50 X2hlYXBfaW5zZXJ0KFJlbGF0aW9uIHJlbCwgUGdTdGF0X0NvdW50ZXIgbik7CiBleHRlcm4g dm9pZCBwZ3N0YXRfY291bnRfaGVhcF91cGRhdGUoUmVsYXRpb24gcmVsLCBib29sIGhvdCwg Ym9vbCBuZXdwYWdlKTsKQEAgLTY4OCw3ICs3NjQsOSBAQCBleHRlcm4gUGdTdGF0X1N0YXRU YWJFbnRyeSAqcGdzdGF0X2ZldGNoX3N0YXRfdGFiZW50cnkoT2lkIHJlbGlkKTsKIGV4dGVy biBQZ1N0YXRfU3RhdFRhYkVudHJ5ICpwZ3N0YXRfZmV0Y2hfc3RhdF90YWJlbnRyeV9leHQo Ym9vbCBzaGFyZWQsCiAJCQkJCQkJCQkJCQkJCSAgIE9pZCByZWxvaWQpOwogZXh0ZXJuIFBn U3RhdF9UYWJsZVN0YXR1cyAqZmluZF90YWJzdGF0X2VudHJ5KE9pZCByZWxfaWQpOwotCitl eHRlcm4gdm9pZAorcGdzdGF0X2FjY3VtdWxhdGVfZXh0dmFjX3N0YXRzKEV4dFZhY1JlcG9y dCAqZHN0LCBFeHRWYWNSZXBvcnQgKnNyYywKKwkJCQkJCQkgICBib29sIGFjY3VtdWxhdGVf cmVsdHlwZV9zcGVjaWZpY19pbmZvKTsKIAogLyoKICAqIEZ1bmN0aW9ucyBpbiBwZ3N0YXRf cmVwbHNsb3QuYwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvZWxvZy5oIGIvc3Jj L2luY2x1ZGUvdXRpbHMvZWxvZy5oCmluZGV4IGU1NGVjYTViNDg5Li5lNzUyYzBjZTAxNSAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvZWxvZy5oCisrKyBiL3NyYy9pbmNsdWRl L3V0aWxzL2Vsb2cuaApAQCAtMjMwLDYgKzIzMCw3IEBAIGV4dGVybiBpbnQJZ2V0ZXJybGV2 ZWwodm9pZCk7CiBleHRlcm4gaW50CWdldGVycnBvc2l0aW9uKHZvaWQpOwogZXh0ZXJuIGlu dAlnZXRpbnRlcm5hbGVycnBvc2l0aW9uKHZvaWQpOwogCitleHRlcm4gaW50CWdldGVycmVs ZXZlbCh2b2lkKTsKIAogLyotLS0tLS0tLS0tCiAgKiBPbGQtc3R5bGUgZXJyb3IgcmVwb3J0 aW5nIEFQSTogdG8gYmUgdXNlZCBpbiB0aGlzIHdheToKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3V0aWxzL3Bnc3RhdF9pbnRlcm5hbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0 X2ludGVybmFsLmgKaW5kZXggZmIxMzJlNDM5ZGMuLjI0YWIzY2ViNzE3IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS91dGlscy9wZ3N0YXRfaW50ZXJuYWwuaAorKysgYi9zcmMvaW5jbHVk ZS91dGlscy9wZ3N0YXRfaW50ZXJuYWwuaApAQCAtNTQ5LDcgKzU0OSw3IEBAIGV4dGVybiBQ Z1N0YXRfRW50cnlSZWYgKnBnc3RhdF9mZXRjaF9wZW5kaW5nX2VudHJ5KFBnU3RhdF9LaW5k IGtpbmQsIE9pZCBkYm9pZCwKIAogZXh0ZXJuIHZvaWQgKnBnc3RhdF9mZXRjaF9lbnRyeShQ Z1N0YXRfS2luZCBraW5kLCBPaWQgZGJvaWQsIE9pZCBvYmpvaWQpOwogZXh0ZXJuIHZvaWQg cGdzdGF0X3NuYXBzaG90X2ZpeGVkKFBnU3RhdF9LaW5kIGtpbmQpOwotCitleHRlcm4gdm9p ZCBwZ3N0YXRfdXBkYXRlX3NuYXBzaG90KFBnU3RhdF9LaW5kIGtpbmQpOwogCiAvKgogICog RnVuY3Rpb25zIGluIHBnc3RhdF9hcmNoaXZlci5jCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9p c29sYXRpb24vZXhwZWN0ZWQvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5v dXQgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvdmFjdXVtLWV4dGVuZGluZy1pbi1y ZXBldGFibGUtcmVhZC5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjdjZGI3OWMwZWM0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9u L2V4cGVjdGVkL3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQub3V0CkBAIC0w LDAgKzEsNTMgQEAKK3VudXNlZCBzdGVwIG5hbWU6IHMyX2RlbGV0ZQorUGFyc2VkIHRlc3Qg c3BlYyB3aXRoIDIgc2Vzc2lvbnMKKworc3RhcnRpbmcgcGVybXV0YXRpb246IHMyX2luc2Vy dCBzMl9wcmludF92YWN1dW1fc3RhdHNfdGFibGUgczFfYmVnaW5fcmVwZWF0YWJsZV9yZWFk IHMyX3VwZGF0ZSBzMl9pbnNlcnRfaW50ZXJydXB0IHMyX3ZhY3V1bSBzMl9wcmludF92YWN1 dW1fc3RhdHNfdGFibGUgczFfY29tbWl0IHMyX2NoZWNrcG9pbnQgczJfdmFjdXVtIHMyX3By aW50X3ZhY3V1bV9zdGF0c190YWJsZQorc3RlcCBzMl9pbnNlcnQ6IElOU0VSVCBJTlRPIHRl c3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uKGlkLCBpdmFsKSBTRUxFQ1QgaXZhbCwgaXZhbCUx MCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDApIEFzIGl2YWw7CitzdGVwIHMyX3ByaW50 X3ZhY3V1bV9zdGF0c190YWJsZTogCisgICAgU0VMRUNUCisgICAgdnQucmVsbmFtZSwgdnQu dHVwbGVzX2RlbGV0ZWQsIHZ0LmRlYWRfdHVwbGVzLCB2dC50dXBsZXNfZnJvemVuCisgICAg RlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKKyAgICBXSEVSRSB2 dC5yZWxuYW1lID0gJ3Rlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uJyBBTkQgdnQucmVsaWQg PSBjLm9pZDsKKworcmVsbmFtZSAgICAgICAgICAgICAgICAgICB8dHVwbGVzX2RlbGV0ZWR8 ZGVhZF90dXBsZXN8dHVwbGVzX2Zyb3plbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQordGVzdF92YWN1dW1f c3RhdF9pc29sYXRpb258ICAgICAgICAgICAgIDB8ICAgICAgICAgIDB8ICAgICAgICAgICAg MAorKDEgcm93KQorCitzdGVwIHMxX2JlZ2luX3JlcGVhdGFibGVfcmVhZDogCisgIEJFR0lO IHRyYW5zYWN0aW9uIElTT0xBVElPTiBMRVZFTCBSRVBFQVRBQkxFIFJFQUQ7CisgIHNlbGVj dCBjb3VudChpdmFsKSBmcm9tIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uIHdoZXJlIGlk PjkwMDsKKworY291bnQKKy0tLS0tCisgIDEwMAorKDEgcm93KQorCitzdGVwIHMyX3VwZGF0 ZTogVVBEQVRFIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uIFNFVCBpdmFsID0gaXZhbCAr IDIgd2hlcmUgaWQgPiA5MDA7CitzdGVwIHMyX2luc2VydF9pbnRlcnJ1cHQ6IElOU0VSVCBJ TlRPIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uIHZhbHVlcyAoMSwxKTsKK3N0ZXAgczJf dmFjdXVtOiBWQUNVVU0gdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb247CitzdGVwIHMyX3By aW50X3ZhY3V1bV9zdGF0c190YWJsZTogCisgICAgU0VMRUNUCisgICAgdnQucmVsbmFtZSwg dnQudHVwbGVzX2RlbGV0ZWQsIHZ0LmRlYWRfdHVwbGVzLCB2dC50dXBsZXNfZnJvemVuCisg ICAgRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKKyAgICBXSEVS RSB2dC5yZWxuYW1lID0gJ3Rlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uJyBBTkQgdnQucmVs aWQgPSBjLm9pZDsKKworcmVsbmFtZSAgICAgICAgICAgICAgICAgICB8dHVwbGVzX2RlbGV0 ZWR8ZGVhZF90dXBsZXN8dHVwbGVzX2Zyb3plbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQordGVzdF92YWN1 dW1fc3RhdF9pc29sYXRpb258ICAgICAgICAgICAgIDB8ICAgICAgICAxMDB8ICAgICAgICAg ICAgMAorKDEgcm93KQorCitzdGVwIHMxX2NvbW1pdDogQ09NTUlUOworc3RlcCBzMl9jaGVj a3BvaW50OiBDSEVDS1BPSU5UOworc3RlcCBzMl92YWN1dW06IFZBQ1VVTSB0ZXN0X3ZhY3V1 bV9zdGF0X2lzb2xhdGlvbjsKK3N0ZXAgczJfcHJpbnRfdmFjdXVtX3N0YXRzX3RhYmxlOiAK KyAgICBTRUxFQ1QKKyAgICB2dC5yZWxuYW1lLCB2dC50dXBsZXNfZGVsZXRlZCwgdnQuZGVh ZF90dXBsZXMsIHZ0LnR1cGxlc19mcm96ZW4KKyAgICBGUk9NIHBnX3N0YXRfdmFjdXVtX3Rh YmxlcyB2dCwgcGdfY2xhc3MgYworICAgIFdIRVJFIHZ0LnJlbG5hbWUgPSAndGVzdF92YWN1 dW1fc3RhdF9pc29sYXRpb24nIEFORCB2dC5yZWxpZCA9IGMub2lkOworCityZWxuYW1lICAg ICAgICAgICAgICAgICAgIHx0dXBsZXNfZGVsZXRlZHxkZWFkX3R1cGxlc3x0dXBsZXNfZnJv emVuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tCit0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbnwgICAgICAg ICAgIDEwMHwgICAgICAgIDEwMHwgICAgICAgICAgMTAxCisoMSByb3cpCisKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUgYi9zcmMvdGVzdC9p c29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCmluZGV4IDZkYTk4Y2ZmYWNhLi5jNjEyZGU3 MDA4MyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVs ZQorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCkBAIC05NSw2 ICs5NSw3IEBAIHRlc3Q6IHRpbWVvdXRzCiB0ZXN0OiB2YWN1dW0tY29uY3VycmVudC1kcm9w CiB0ZXN0OiB2YWN1dW0tY29uZmxpY3QKIHRlc3Q6IHZhY3V1bS1za2lwLWxvY2tlZAordGVz dDogdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZAogdGVzdDogc3RhdHMKIHRl c3Q6IGhvcml6b25zCiB0ZXN0OiBwcmVkaWNhdGUtaGFzaApkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvaXNvbGF0aW9uL3NwZWNzL3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQu c3BlYyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy92YWN1dW0tZXh0ZW5kaW5nLWluLXJl cGV0YWJsZS1yZWFkLnNwZWMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjdkMzFkZGJlY2U5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9u L3NwZWNzL3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQuc3BlYwpAQCAtMCww ICsxLDUxIEBACisjIFRlc3QgZm9yIGNoZWNraW5nIGRlYWRfdHVwbGVzLCB0dXBsZXNfZGVs ZXRlZCBhbmQgZnJvemVuIHR1cGxlcyBpbiBwZ19zdGF0X3ZhY3V1bV90YWJsZXMuCisjIERl YWRfdHVwbGVzIHZhbHVlcyBhcmUgY291bnRlZCB3aGVuIHZhY3V1bSBjYW5ub3QgY2xlYW4g dXAgdW51c2VkIHR1cGxlcyB3aGlsZSBsb2NrIGlzIHVzaW5nIGFub3RoZXIgdHJhbnNhY3Rp b24uCisjIERlYWRfdHVwbGVzIGFyZW4ndCBpbmNyZWFzZWQgYWZ0ZXIgcmVsZWFzaW5nIGxv Y2sgY29tcGFyZWQgd2l0aCB0dXBsZXNfZGVsZXRlZCwgd2hpY2ggaW5jcmVhc2VkCisjIGJ5 IHRoZSB2YWx1ZSBvZiB0aGUgY2xlYXJlZCB0dXBsZXMgdGhhdCB0aGUgdmFjdXVtIG1hbmFn ZWQgdG8gY2xlYXIuCisKK3NldHVwCit7CisgICAgQ1JFQVRFIFRBQkxFIHRlc3RfdmFjdXVt X3N0YXRfaXNvbGF0aW9uKGlkIGludCwgaXZhbCBpbnQpIFdJVEggKGF1dG92YWN1dW1fZW5h YmxlZCA9IG9mZik7CisgICAgU0VUIHRyYWNrX2lvX3RpbWluZyA9IG9uOworfQorCit0ZWFy ZG93bgoreworICAgIERST1AgVEFCTEUgdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24gQ0FT Q0FERTsKKyAgICBSRVNFVCB0cmFja19pb190aW1pbmc7Cit9CisKK3Nlc3Npb24gczEKK3N0 ZXAgczFfYmVnaW5fcmVwZWF0YWJsZV9yZWFkICAgeworICBCRUdJTiB0cmFuc2FjdGlvbiBJ U09MQVRJT04gTEVWRUwgUkVQRUFUQUJMRSBSRUFEOworICBzZWxlY3QgY291bnQoaXZhbCkg ZnJvbSB0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbiB3aGVyZSBpZD45MDA7CisgIH0KK3N0 ZXAgczFfY29tbWl0ICAgICAgICAgICAgICAgICAgeyBDT01NSVQ7IH0KKworc2Vzc2lvbiBz Mgorc3RlcCBzMl9pbnNlcnQgICAgICAgICAgICAgICAgICB7IElOU0VSVCBJTlRPIHRlc3Rf dmFjdXVtX3N0YXRfaXNvbGF0aW9uKGlkLCBpdmFsKSBTRUxFQ1QgaXZhbCwgaXZhbCUxMCBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDApIEFzIGl2YWw7IH0KK3N0ZXAgczJfdXBkYXRl ICAgICAgICAgICAgICAgICAgeyBVUERBVEUgdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24g U0VUIGl2YWwgPSBpdmFsICsgMiB3aGVyZSBpZCA+IDkwMDsgfQorc3RlcCBzMl9kZWxldGUg ICAgICAgICAgICAgICAgICB7IERFTEVURSBGUk9NIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0 aW9uIHdoZXJlIGlkID4gOTAwOyB9CitzdGVwIHMyX2luc2VydF9pbnRlcnJ1cHQgICAgICAg IHsgSU5TRVJUIElOVE8gdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24gdmFsdWVzICgxLDEp OyB9CitzdGVwIHMyX3ZhY3V1bSAgICAgICAgICAgICAgICAgIHsgVkFDVVVNIHRlc3RfdmFj dXVtX3N0YXRfaXNvbGF0aW9uOyB9CitzdGVwIHMyX2NoZWNrcG9pbnQgICAgICAgICAgICAg IHsgQ0hFQ0tQT0lOVDsgfQorc3RlcCBzMl9wcmludF92YWN1dW1fc3RhdHNfdGFibGUKK3sK KyAgICBTRUxFQ1QKKyAgICB2dC5yZWxuYW1lLCB2dC50dXBsZXNfZGVsZXRlZCwgdnQuZGVh ZF90dXBsZXMsIHZ0LnR1cGxlc19mcm96ZW4KKyAgICBGUk9NIHBnX3N0YXRfdmFjdXVtX3Rh YmxlcyB2dCwgcGdfY2xhc3MgYworICAgIFdIRVJFIHZ0LnJlbG5hbWUgPSAndGVzdF92YWN1 dW1fc3RhdF9pc29sYXRpb24nIEFORCB2dC5yZWxpZCA9IGMub2lkOworfQorCitwZXJtdXRh dGlvbgorICAgIHMyX2luc2VydAorICAgIHMyX3ByaW50X3ZhY3V1bV9zdGF0c190YWJsZQor ICAgIHMxX2JlZ2luX3JlcGVhdGFibGVfcmVhZAorICAgIHMyX3VwZGF0ZQorICAgIHMyX2lu c2VydF9pbnRlcnJ1cHQKKyAgICBzMl92YWN1dW0KKyAgICBzMl9wcmludF92YWN1dW1fc3Rh dHNfdGFibGUKKyAgICBzMV9jb21taXQKKyAgICBzMl9jaGVja3BvaW50CisgICAgczJfdmFj dXVtCisgICAgczJfcHJpbnRfdmFjdXVtX3N0YXRzX3RhYmxlCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dAppbmRleCAwZDczNDE2OWYxMS4uOWFlNzQzZWFl MGMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dApAQCAt MzIsOSArMzIsMTAgQEAgV0hFUkUgcDEucHJvbGFuZyA9IDAgT1IgcDEucHJvcmV0dHlwZSA9 IDAgT1IKICAgICAgICBwcm9raW5kIE5PVCBJTiAoJ2YnLCAnYScsICd3JywgJ3AnKSBPUgog ICAgICAgIHByb3ZvbGF0aWxlIE5PVCBJTiAoJ2knLCAncycsICd2JykgT1IKICAgICAgICBw cm9wYXJhbGxlbCBOT1QgSU4gKCdzJywgJ3InLCAndScpOwotIG9pZCB8IHByb25hbWUgCi0t LS0tLSstLS0tLS0tLS0KLSgwIHJvd3MpCisgb2lkICB8ICAgICAgICBwcm9uYW1lICAgICAg ICAKKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDgwMDEgfCBwZ19zdGF0X3Zh Y3V1bV90YWJsZXMKKygxIHJvdykKIAogLS0gcHJvc3JjIHNob3VsZCBuZXZlciBiZSBudWxs OyBpdCBjYW4gYmUgZW1wdHkgb25seSBpZiBwcm9zcWxib2R5IGlzbid0IG51bGwKIFNFTEVD VCBwMS5vaWQsIHAxLnByb25hbWUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQK aW5kZXggODYyNDMzZWU1MmIuLmNjMGI1YmRlMGExIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3J1bGVzLm91dApAQCAtMjIyOSw2ICsyMjI5LDQwIEBAIHBnX3N0YXRfdXNlcl90YWJs ZXN8IFNFTEVDVCByZWxpZCwKICAgICBhdXRvYW5hbHl6ZV9jb3VudAogICAgRlJPTSBwZ19z dGF0X2FsbF90YWJsZXMKICAgV0hFUkUgKChzY2hlbWFuYW1lIDw+IEFMTCAoQVJSQVlbJ3Bn X2NhdGFsb2cnOjpuYW1lLCAnaW5mb3JtYXRpb25fc2NoZW1hJzo6bmFtZV0pKSBBTkQgKHNj aGVtYW5hbWUgIX4gJ15wZ190b2FzdCc6OnRleHQpKTsKK3BnX3N0YXRfdmFjdXVtX3RhYmxl c3wgU0VMRUNUIHJlbC5vaWQgQVMgcmVsaWQsCisgICAgbnMubnNwbmFtZSBBUyBzY2hlbWEs CisgICAgcmVsLnJlbG5hbWUsCisgICAgc3RhdHMudG90YWxfYmxrc19yZWFkLAorICAgIHN0 YXRzLnRvdGFsX2Jsa3NfaGl0LAorICAgIHN0YXRzLnRvdGFsX2Jsa3NfZGlydGllZCwKKyAg ICBzdGF0cy50b3RhbF9ibGtzX3dyaXR0ZW4sCisgICAgc3RhdHMucmVsX2Jsa3NfcmVhZCwK KyAgICBzdGF0cy5yZWxfYmxrc19oaXQsCisgICAgc3RhdHMucGFnZXNfc2Nhbm5lZCwKKyAg ICBzdGF0cy5wYWdlc19yZW1vdmVkLAorICAgIHN0YXRzLnBhZ2VzX2Zyb3plbiwKKyAgICBz dGF0cy5wYWdlc19hbGxfdmlzaWJsZSwKKyAgICBzdGF0cy50dXBsZXNfZGVsZXRlZCwKKyAg ICBzdGF0cy50dXBsZXNfZnJvemVuLAorICAgIHN0YXRzLmRlYWRfdHVwbGVzLAorICAgIHN0 YXRzLmluZGV4X3ZhY3V1bV9jb3VudCwKKyAgICBzdGF0cy5yZXZfYWxsX2Zyb3plbl9wYWdl cywKKyAgICBzdGF0cy5yZXZfYWxsX3Zpc2libGVfcGFnZXMsCisgICAgc3RhdHMud2FsX3Jl Y29yZHMsCisgICAgc3RhdHMud2FsX2ZwaSwKKyAgICBzdGF0cy53YWxfYnl0ZXMsCisgICAg c3RhdHMuYmxrX3JlYWRfdGltZSwKKyAgICBzdGF0cy5ibGtfd3JpdGVfdGltZSwKKyAgICBz dGF0cy5kZWxheV90aW1lLAorICAgIHN0YXRzLnN5c3RlbV90aW1lLAorICAgIHN0YXRzLnVz ZXJfdGltZSwKKyAgICBzdGF0cy50b3RhbF90aW1lLAorICAgIHN0YXRzLmludGVycnVwdHMK KyAgIEZST00gcGdfZGF0YWJhc2UgZGIsCisgICAgcGdfY2xhc3MgcmVsLAorICAgIHBnX25h bWVzcGFjZSBucywKKyAgICBMQVRFUkFMIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyhyZWwub2lk KSBzdGF0cyhyZWxpZCwgdG90YWxfYmxrc19yZWFkLCB0b3RhbF9ibGtzX2hpdCwgdG90YWxf Ymxrc19kaXJ0aWVkLCB0b3RhbF9ibGtzX3dyaXR0ZW4sIHJlbF9ibGtzX3JlYWQsIHJlbF9i bGtzX2hpdCwgcGFnZXNfc2Nhbm5lZCwgcGFnZXNfcmVtb3ZlZCwgcGFnZXNfZnJvemVuLCBw YWdlc19hbGxfdmlzaWJsZSwgdHVwbGVzX2RlbGV0ZWQsIHR1cGxlc19mcm96ZW4sIGRlYWRf dHVwbGVzLCBpbmRleF92YWN1dW1fY291bnQsIHJldl9hbGxfZnJvemVuX3BhZ2VzLCByZXZf YWxsX3Zpc2libGVfcGFnZXMsIHdhbF9yZWNvcmRzLCB3YWxfZnBpLCB3YWxfYnl0ZXMsIGJs a19yZWFkX3RpbWUsIGJsa193cml0ZV90aW1lLCBkZWxheV90aW1lLCBzeXN0ZW1fdGltZSwg dXNlcl90aW1lLCB0b3RhbF90aW1lLCBpbnRlcnJ1cHRzKQorICBXSEVSRSAoKGRiLmRhdG5h bWUgPSBjdXJyZW50X2RhdGFiYXNlKCkpIEFORCAocmVsLm9pZCA9IHN0YXRzLnJlbGlkKSBB TkQgKG5zLm9pZCA9IHJlbC5yZWxuYW1lc3BhY2UpKTsKIHBnX3N0YXRfd2FsfCBTRUxFQ1Qg d2FsX3JlY29yZHMsCiAgICAgd2FsX2ZwaSwKICAgICB3YWxfYnl0ZXMsCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGljcy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGlj cy5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFhN2QwNGIw NTkwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC92YWN1 dW1fdGFibGVzX3N0YXRpc3RpY3Mub3V0CkBAIC0wLDAgKzEsMjAwIEBACistLQorLS0gVGVz dCBjdW11bGF0aXZlIHZhY3V1bSBzdGF0cyBzeXN0ZW0KKy0tCistLSBDaGVjayB0aGUgd2Fs bCBzdGF0aXN0aWNzIGNvbGxlY3RlZCBkdXJpbmcgdmFjdXVtIG9wZXJhdGlvbjoKKy0tIG51 bWJlciBvZiBmcm96ZW4gYW5kIHZpc2libGUgcGFnZXMgc2V0IGJ5IHZhY3V1bTsKKy0tIG51 bWJlciBvZiBmcm96ZW4gYW5kIHZpc2libGUgcGFnZXMgcmVtb3ZlZCBieSBiYWNrZW5kLgor LS0gU3RhdGlzdGljIHdhbF9mcGkgaXMgbm90IGRpc3BsYXllZCBpbiB0aGlzIHRlc3QgYmVj YXVzZSBpdHMgYmVoYXZpb3IgaXMgdW5zdGFibGUuCistLQorLS0gY29uZGl0aW8gc2luZSBx dWEgbm9uCitTSE9XIHRyYWNrX2NvdW50czsgIC0tIG11c3QgYmUgb24KKyB0cmFja19jb3Vu dHMgCistLS0tLS0tLS0tLS0tLQorIG9uCisoMSByb3cpCisKKy0tIG5vdCBlbmFibGVkIGJ5 IGRlZmF1bHQsIGJ1dCB3ZSB3YW50IHRvIHRlc3QgaXQuLi4KK1NFVCB0cmFja19mdW5jdGlv bnMgVE8gJ2FsbCc7CistLSBlbnN1cmUgcGVuZGluZyBzdGF0cyBhcmUgZmx1c2hlZAorU0VM RUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOworIHBnX3N0YXRfZm9yY2VfbmV4dF9m bHVzaCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1xzZXQg c2FtcGxlX3NpemUgMTAwMDAKK1NFVCB2YWN1dW1fZnJlZXplX21pbl9hZ2UgPSAwOworU0VU IHZhY3V1bV9mcmVlemVfdGFibGVfYWdlID0gMDsKKy0tU0VUIHN0YXRzX2ZldGNoX2NvbnNp c3RlbmN5ID0gc25hcHNob3Q7CitDUkVBVEUgVEFCTEUgdmVzdGF0ICh4IGludCkgV0lUSCAo YXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmLCBmaWxsZmFjdG9yID0gMTApOworSU5TRVJUIElO VE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXpl KSBhcyB4OworQU5BTFlaRSB2ZXN0YXQ7CitTRUxFQ1Qgb2lkIEFTIHJvaWQgZnJvbSBwZ19j bGFzcyB3aGVyZSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQKK0RFTEVURSBGUk9NIHZlc3Rh dCBXSEVSRSB4ICUgMiA9IDA7CistLSBCZWZvcmUgdGhlIGZpcnN0IHZhY3V1bSBleGVjdXRp b24gZXh0ZW5kZWQgc3RhdHMgdmlldyBpcyBlbXB0eS4KK1NFTEVDVCB2dC5yZWxuYW1lLHBh Z2VzX2Zyb3plbix0dXBsZXNfZGVsZXRlZCxyZWxwYWdlcyxwYWdlc19zY2FubmVkLHBhZ2Vz X3JlbW92ZWQKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCitX SEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdCcgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CisgcmVs bmFtZSB8IHBhZ2VzX2Zyb3plbiB8IHR1cGxlc19kZWxldGVkIHwgcmVscGFnZXMgfCBwYWdl c19zY2FubmVkIHwgcGFnZXNfcmVtb3ZlZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLQorIHZlc3RhdCAgfCAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAgMCB8ICAgICAg NDU1IHwgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgIDAKKygxIHJvdykKKworU0VMRUNU IHJlbHBhZ2VzIEFTIHJwCitGUk9NIHBnX2NsYXNzIGMKK1dIRVJFIHJlbG5hbWUgPSAndmVz dGF0JyBcZ3NldAorVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4 LCBJTkRFWF9DTEVBTlVQIE9GRikgdmVzdGF0OworLS0gaXQgaXMgbmVjZXNzYXJ5IHRvIGNo ZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKy0tIFRoZSB0YWJsZSBhbmQg aW5kZXggZXh0ZW5kZWQgdmFjdXVtIHN0YXRpc3RpY3Mgc2hvdWxkIHNob3cgdXMgdGhhdAor LS0gdmFjdXVtIGZyb3plZCBwYWdlcyBhbmQgY2xlYW4gdXAgcGFnZXMsIGJ1dCBwYWdlc19y ZW1vdmVkIHN0YXllZCB0aGUgc2FtZQorLS0gYmVjYXVzZSBvZiBub3QgZnVsbCB0YWJsZSBo YXZlIGNsZWFuZWQgdXAKK1NFTEVDVCB2dC5yZWxuYW1lLHBhZ2VzX2Zyb3plbiA+IDAgQVMg cGFnZXNfZnJvemVuLHR1cGxlc19kZWxldGVkID4gMCBBUyB0dXBsZXNfZGVsZXRlZCxyZWxw YWdlcy06cnAgPSAwIEFTIHJlbHBhZ2VzLHBhZ2VzX3NjYW5uZWQgPiAwIEFTIHBhZ2VzX3Nj YW5uZWQscGFnZXNfcmVtb3ZlZCA9IDAgQVMgcGFnZXNfcmVtb3ZlZAorRlJPTSBwZ19zdGF0 X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVz dGF0JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKKyByZWxuYW1lIHwgcGFnZXNfZnJvemVuIHwg dHVwbGVzX2RlbGV0ZWQgfCByZWxwYWdlcyB8IHBhZ2VzX3NjYW5uZWQgfCBwYWdlc19yZW1v dmVkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgdmVzdGF0ICB8IGYgICAg ICAgICAgICB8IHQgICAgICAgICAgICAgIHwgdCAgICAgICAgfCB0ICAgICAgICAgICAgIHwg dAorKDEgcm93KQorCitTRUxFQ1QgcGFnZXNfZnJvemVuIEFTIGZwLHR1cGxlc19kZWxldGVk IEFTIHRkLHJlbHBhZ2VzIEFTIHJwLCBwYWdlc19zY2FubmVkIEFTIHBzLCBwYWdlc19yZW1v dmVkIEFTIHByCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xhc3MgYwor V0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2dC5yZWxpZCA9IGMub2lkIFxnc2V0 CistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50byB2YXJpYWJsZXMKK1NFTEVDVCB3YWxfcmVj b3JkcyBBUyBod3Isd2FsX2J5dGVzIEFTIGh3Yix3YWxfZnBpIEFTIGhmcGkgRlJPTSBwZ19z dGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnIFxnc2V0CistLSBM b29rIGludG8gV0FMIHJlY29yZHMgZGVsdGFzLgorU0VMRUNUIHdhbF9yZWNvcmRzID4gMCBB UyBkV1IsIHdhbF9ieXRlcyA+IDAgQVMgZFdCCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxl cyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCc7CisgZHdyIHwgZHdiIAorLS0tLS0rLS0tLS0K KyB0ICAgfCB0CisoMSByb3cpCisKK0RFTEVURSBGUk9NIHZlc3RhdDs7CitWQUNVVU0gKFBB UkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgsIElOREVYX0NMRUFOVVAgT0ZGKSB2 ZXN0YXQ7CistLSBpdCBpcyBuZWNlc3NhcnkgdG8gY2hlY2sgdGhlIHdhbCBzdGF0aXN0aWNz CitDSEVDS1BPSU5UOworLS0gcGFnZXNfcmVtb3ZlZCBtdXN0IGJlIGluY3JlYXNlZAorU0VM RUNUIHZ0LnJlbG5hbWUscGFnZXNfZnJvemVuLTpmcCA+IDAgQVMgcGFnZXNfZnJvemVuLHR1 cGxlc19kZWxldGVkLTp0ZCA+IDAgQVMgdHVwbGVzX2RlbGV0ZWQscmVscGFnZXMgLTpycCA9 IDAgQVMgcmVscGFnZXMscGFnZXNfc2Nhbm5lZC06cHMgPiAwIEFTIHBhZ2VzX3NjYW5uZWQs cGFnZXNfcmVtb3ZlZC06cHIgPiAwIEFTIHBhZ2VzX3JlbW92ZWQKK0ZST00gcGdfc3RhdF92 YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3Rh dCcgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CisgcmVsbmFtZSB8IHBhZ2VzX2Zyb3plbiB8IHR1 cGxlc19kZWxldGVkIHwgcmVscGFnZXMgfCBwYWdlc19zY2FubmVkIHwgcGFnZXNfcmVtb3Zl ZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorIHZlc3RhdCAgfCBmICAgICAg ICAgICAgfCB0ICAgICAgICAgICAgICB8IGYgICAgICAgIHwgdCAgICAgICAgICAgICB8IHQK KygxIHJvdykKKworU0VMRUNUIHBhZ2VzX2Zyb3plbiBBUyBmcCx0dXBsZXNfZGVsZXRlZCBB UyB0ZCxyZWxwYWdlcyBBUyBycCwgcGFnZXNfc2Nhbm5lZCBBUyBwcywgcGFnZXNfcmVtb3Zl ZCBBUyBwcgorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dI RVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JyBBTkQgdnQucmVsaWQgPSBjLm9pZCBcZ3NldAor LS0gU3RvcmUgV0FMIGFkdmFuY2VzIGludG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29y ZHMtOmh3ciBBUyBkd3IsIHdhbF9ieXRlcy06aHdiIEFTIGR3Yiwgd2FsX2ZwaS06aGZwaSBB UyBkZnBpCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zl c3RhdCcgXGdzZXQKKy0tIFdBTCBhZHZhbmNlIHNob3VsZCBiZSBkZXRlY3RlZC4KK1NFTEVD VCA6ZHdyID4gMCBBUyBkV1IsIDpkd2IgPiAwIEFTIGRXQjsKKyBkd3IgfCBkd2IgCistLS0t LSstLS0tLQorIHQgICB8IHQKKygxIHJvdykKKworLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGlu dG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMgQVMgaHdyLHdhbF9ieXRlcyBBUyBo d2Isd2FsX2ZwaSBBUyBoZnBpIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJl bG5hbWUgPSAndmVzdGF0JyBcZ3NldAorSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OworREVMRVRFIEZST00g dmVzdGF0IFdIRVJFIHggJSAyID0gMDsKKy0tIFZBQ1VVTSBGVUxMIGRvZXNuJ3QgcmVwb3J0 IHRvIHN0YXQgY29sbGVjdG9yLiBTbywgbm8gYW55IGFkdmFuY2VtZW50cyBvZiBzdGF0aXN0 aWNzCistLSBhcmUgZGV0ZWN0ZWQgaGVyZS4KK1ZBQ1VVTSBGVUxMIHZlc3RhdDsKKy0tIEl0 IGlzIG5lY2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNLUE9JTlQ7 CistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50byB2YXJpYWJsZXMKK1NFTEVDVCB3YWxfcmVj b3Jkcy06aHdyIEFTIGR3cjIsIHdhbF9ieXRlcy06aHdiIEFTIGR3YjIsIHdhbF9mcGktOmhm cGkgQVMgZGZwaTIKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUg PSAndmVzdGF0JyBcZ3NldAorLS0gV0FMIGFuZCBvdGhlciBzdGF0aXN0aWNzIGFkdmFuY2Ug c2hvdWxkIG5vdCBiZSBkZXRlY3RlZC4KK1NFTEVDVCA6ZHdyMj0wIEFTIGRXUiwgOmRmcGky PTAgQVMgZEZQSSwgOmR3YjI9MCBBUyBkV0I7CisgZHdyIHwgZGZwaSB8IGR3YiAKKy0tLS0t Ky0tLS0tLSstLS0tLQorIHQgICB8IHQgICAgfCB0CisoMSByb3cpCisKK1NFTEVDVCB2dC5y ZWxuYW1lLHBhZ2VzX2Zyb3plbi06ZnAgPSAwIEFTIHBhZ2VzX2Zyb3plbix0dXBsZXNfZGVs ZXRlZC06dGQgPSAwIEFTIHR1cGxlc19kZWxldGVkLHJlbHBhZ2VzIC06cnAgPCAwIEFTIHJl bHBhZ2VzLHBhZ2VzX3NjYW5uZWQtOnBzID0gMCBBUyBwYWdlc19zY2FubmVkLHBhZ2VzX3Jl bW92ZWQtOnByID0gMCBBUyBwYWdlc19yZW1vdmVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX3Rh YmxlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2 dC5yZWxpZCA9IGMub2lkOworIHJlbG5hbWUgfCBwYWdlc19mcm96ZW4gfCB0dXBsZXNfZGVs ZXRlZCB8IHJlbHBhZ2VzIHwgcGFnZXNfc2Nhbm5lZCB8IHBhZ2VzX3JlbW92ZWQgCistLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyB2ZXN0YXQgIHwgdCAgICAgICAgICAgIHwg dCAgICAgICAgICAgICAgfCBmICAgICAgICB8IHQgICAgICAgICAgICAgfCB0CisoMSByb3cp CisKK1NFTEVDVCBwYWdlc19mcm96ZW4gQVMgZnAsdHVwbGVzX2RlbGV0ZWQgQVMgdGQscmVs cGFnZXMgQVMgcnAsIHBhZ2VzX3NjYW5uZWQgQVMgcHMscGFnZXNfcmVtb3ZlZCBBUyBwcgor RlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJl bG5hbWUgPSAndmVzdGF0JyBBTkQgdnQucmVsaWQgPSBjLm9pZCBcZ3NldAorLS0gU3RvcmUg V0FMIGFkdmFuY2VzIGludG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMgQVMgaHdy LHdhbF9ieXRlcyBBUyBod2Isd2FsX2ZwaSBBUyBoZnBpIEZST00gcGdfc3RhdF92YWN1dW1f dGFibGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0JyBcZ3NldAorREVMRVRFIEZST00gdmVz dGF0OworVFJVTkNBVEUgdmVzdGF0OworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNB R0VfTElNSVQgMTI4LCBJTkRFWF9DTEVBTlVQIE9GRikgdmVzdGF0OworLS0gaXQgaXMgbmVj ZXNzYXJ5IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKy0tIFN0 b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcyBhZnRlciByZW1vdmluZyBhbGwgdHVw bGVzIGZyb20gdGhlIHRhYmxlCitTRUxFQ1Qgd2FsX3JlY29yZHMtOmh3ciBBUyBkd3IzLCB3 YWxfYnl0ZXMtOmh3YiBBUyBkd2IzLCB3YWxfZnBpLTpoZnBpIEFTIGRmcGkzCitGUk9NIHBn X3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQKKy0t VGhlcmUgYXJlIG5vdGhpbmcgY2hhbmdlZAorU0VMRUNUIDpkd3IzPjAgQVMgZFdSLCA6ZGZw aTM9MCBBUyBkRlBJLCA6ZHdiMz4wIEFTIGRXQjsKKyBkd3IgfCBkZnBpIHwgZHdiIAorLS0t LS0rLS0tLS0tKy0tLS0tCisgdCAgIHwgdCAgICB8IHQKKygxIHJvdykKKworLS0KKy0tIE5v dywgdGhlIHRhYmxlIGFuZCBpbmRleCBpcyBjb21wcmVzc2VkIGludG8gemVybyBudW1iZXIg b2YgcGFnZXMuIENoZWNrIGl0CistLSBpbiB2YWN1dW0gZXh0ZW5kZWQgc3RhdGlzdGljcy4K Ky0tIFRoZSBwYWdlc19mcm96ZW4sIHBhZ2VzX3NjYW5uZWQgdmFsdWVzIHNob3VsZG4ndCBi ZSBjaGFuZ2VkCistLQorU0VMRUNUIHZ0LnJlbG5hbWUscGFnZXNfZnJvemVuLTpmcCA9IDAg QVMgcGFnZXNfZnJvemVuLHR1cGxlc19kZWxldGVkLTp0ZCA9IDAgQVMgdHVwbGVzX2RlbGV0 ZWQscmVscGFnZXMgLTpycCA9IDAgQVMgcmVscGFnZXMscGFnZXNfc2Nhbm5lZC06cHMgPSAw IEFTIHBhZ2VzX3NjYW5uZWQscGFnZXNfcmVtb3ZlZC06cHIgPSAwIEFTIHBhZ2VzX3JlbW92 ZWQKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2 dC5yZWxuYW1lID0gJ3Zlc3RhdCcgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CisgcmVsbmFtZSB8 IHBhZ2VzX2Zyb3plbiB8IHR1cGxlc19kZWxldGVkIHwgcmVscGFnZXMgfCBwYWdlc19zY2Fu bmVkIHwgcGFnZXNfcmVtb3ZlZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQor IHZlc3RhdCAgfCB0ICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICB8IGYgICAgICAgIHwg dCAgICAgICAgICAgICB8IHQKKygxIHJvdykKKworSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVD VCB4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OworQU5BTFla RSB2ZXN0YXQ7CistLSBtdXN0IGJlIGVtcHR5CitTRUxFQ1QgcGFnZXNfZnJvemVuLCBwYWdl c19hbGxfdmlzaWJsZSwgcmV2X2FsbF9mcm96ZW5fcGFnZXMscmV2X2FsbF92aXNpYmxlX3Bh Z2VzCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3Rh dCc7CisgcGFnZXNfZnJvemVuIHwgcGFnZXNfYWxsX3Zpc2libGUgfCByZXZfYWxsX2Zyb3pl bl9wYWdlcyB8IHJldl9hbGxfdmlzaWJsZV9wYWdlcyAKKy0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgICAwIHwgICAgICAgICAg ICAgICAgICAgIDAgfCAgICAgICAgICAgICAgICAgICAgIDAKKygxIHJvdykKKworVkFDVVVN IChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4KSB2ZXN0YXQ7CistLSBiYWNr ZW5kIGRlZnJlZXplZCBwYWdlcworU0VMRUNUIHBhZ2VzX2Zyb3plbiA+IDAgQVMgcGFnZXNf ZnJvemVuLHBhZ2VzX2FsbF92aXNpYmxlID4gMCBBUyBwYWdlc19hbGxfdmlzaWJsZSxyZXZf YWxsX2Zyb3plbl9wYWdlcyA9IDAgQVMgcmV2X2FsbF9mcm96ZW5fcGFnZXMscmV2X2FsbF92 aXNpYmxlX3BhZ2VzID0gMCBBUyByZXZfYWxsX3Zpc2libGVfcGFnZXMKK0ZST00gcGdfc3Rh dF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0JzsKKyBwYWdlc19mcm96 ZW4gfCBwYWdlc19hbGxfdmlzaWJsZSB8IHJldl9hbGxfZnJvemVuX3BhZ2VzIHwgcmV2X2Fs bF92aXNpYmxlX3BhZ2VzIAorLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZiAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAgICAgICB8IHQK KygxIHJvdykKKworU0VMRUNUIHBhZ2VzX2Zyb3plbiBBUyBwZiwgcGFnZXNfYWxsX3Zpc2li bGUgQVMgcHYsIHJldl9hbGxfZnJvemVuX3BhZ2VzIEFTIGhhZnAscmV2X2FsbF92aXNpYmxl X3BhZ2VzIEFTIGhhdnAKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5h bWUgPSAndmVzdGF0JyBcZ3NldAorVVBEQVRFIHZlc3RhdCBTRVQgeCA9IHgrMTAwMTsKK1ZB Q1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCkgdmVzdGF0OworU0VM RUNUIHBhZ2VzX2Zyb3plbiA+IDpwZiBBUyBwYWdlc19mcm96ZW4scGFnZXNfYWxsX3Zpc2li bGUgPiA6cHYgQVMgcGFnZXNfYWxsX3Zpc2libGUscmV2X2FsbF9mcm96ZW5fcGFnZXMgPiA6 aGFmcCBBUyByZXZfYWxsX2Zyb3plbl9wYWdlcyxyZXZfYWxsX3Zpc2libGVfcGFnZXMgPiA6 aGF2cCBBUyByZXZfYWxsX3Zpc2libGVfcGFnZXMKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFi bGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0JzsKKyBwYWdlc19mcm96ZW4gfCBwYWdlc19h bGxfdmlzaWJsZSB8IHJldl9hbGxfZnJvemVuX3BhZ2VzIHwgcmV2X2FsbF92aXNpYmxlX3Bh Z2VzIAorLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZiAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgICB8IGYKKygxIHJvdykKKwor U0VMRUNUIHBhZ2VzX2Zyb3plbiBBUyBwZiwgcGFnZXNfYWxsX3Zpc2libGUgQVMgcHYsIHJl dl9hbGxfZnJvemVuX3BhZ2VzIEFTIGhhZnAscmV2X2FsbF92aXNpYmxlX3BhZ2VzIEFTIGhh dnAKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0 JyBcZ3NldAorVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4KSB2 ZXN0YXQ7CistLSB2YWN1dW0gZnJlZXplZCBwYWdlcworU0VMRUNUIHBhZ2VzX2Zyb3plbiA9 IDpwZiBBUyBwYWdlc19mcm96ZW4scGFnZXNfYWxsX3Zpc2libGUgPSA6cHYgQVMgcGFnZXNf YWxsX3Zpc2libGUscmV2X2FsbF9mcm96ZW5fcGFnZXMgPSA6aGFmcCBBUyByZXZfYWxsX2Zy b3plbl9wYWdlcyxyZXZfYWxsX3Zpc2libGVfcGFnZXMgPSA6aGF2cCBBUyByZXZfYWxsX3Zp c2libGVfcGFnZXMKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUg PSAndmVzdGF0JzsKKyBwYWdlc19mcm96ZW4gfCBwYWdlc19hbGxfdmlzaWJsZSB8IHJldl9h bGxfZnJvemVuX3BhZ2VzIHwgcmV2X2FsbF92aXNpYmxlX3BhZ2VzIAorLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgdCAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICAgfCB0 ICAgICAgICAgICAgICAgICAgICB8IHQKKygxIHJvdykKKworRFJPUCBUQUJMRSB2ZXN0YXQg Q0FTQ0FERTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1 bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IDI0MjllYzJi YmFhLi5mOGE0YmNjY2M5ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxl bF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBA IC0xMzYsMyArMTM2LDggQEAgdGVzdDogZmFzdF9kZWZhdWx0CiAjIHJ1biB0YWJsZXNwYWNl IHRlc3QgYXQgdGhlIGVuZCBiZWNhdXNlIGl0IGRyb3BzIHRoZSB0YWJsZXNwYWNlIGNyZWF0 ZWQgZHVyaW5nCiAjIHNldHVwIHRoYXQgb3RoZXIgdGVzdHMgbWF5IHVzZS4KIHRlc3Q6IHRh Ymxlc3BhY2UKKworIyAtLS0tLS0tLS0tCisjIENoZWNrIHZhY3V1bSBzdGF0aXN0aWNzCisj IC0tLS0tLS0tLS0KK3Rlc3Q6IHZhY3V1bV90YWJsZXNfc3RhdGlzdGljcwpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Zh Y3V1bV90YWJsZXNfc3RhdGlzdGljcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1 dW1fdGFibGVzX3N0YXRpc3RpY3Muc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi40MWUzODdkZDMwNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGljcy5zcWwKQEAgLTAsMCArMSwxNTgg QEAKKy0tCistLSBUZXN0IGN1bXVsYXRpdmUgdmFjdXVtIHN0YXRzIHN5c3RlbQorLS0KKy0t IENoZWNrIHRoZSB3YWxsIHN0YXRpc3RpY3MgY29sbGVjdGVkIGR1cmluZyB2YWN1dW0gb3Bl cmF0aW9uOgorLS0gbnVtYmVyIG9mIGZyb3plbiBhbmQgdmlzaWJsZSBwYWdlcyBzZXQgYnkg dmFjdXVtOworLS0gbnVtYmVyIG9mIGZyb3plbiBhbmQgdmlzaWJsZSBwYWdlcyByZW1vdmVk IGJ5IGJhY2tlbmQuCistLSBTdGF0aXN0aWMgd2FsX2ZwaSBpcyBub3QgZGlzcGxheWVkIGlu IHRoaXMgdGVzdCBiZWNhdXNlIGl0cyBiZWhhdmlvciBpcyB1bnN0YWJsZS4KKy0tCisKKy0t IGNvbmRpdGlvIHNpbmUgcXVhIG5vbgorU0hPVyB0cmFja19jb3VudHM7ICAtLSBtdXN0IGJl IG9uCistLSBub3QgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgd2Ugd2FudCB0byB0ZXN0IGl0 Li4uCitTRVQgdHJhY2tfZnVuY3Rpb25zIFRPICdhbGwnOworCisKKy0tIGVuc3VyZSBwZW5k aW5nIHN0YXRzIGFyZSBmbHVzaGVkCitTRUxFQ1QgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNo KCk7CisKK1xzZXQgc2FtcGxlX3NpemUgMTAwMDAKK1NFVCB2YWN1dW1fZnJlZXplX21pbl9h Z2UgPSAwOworU0VUIHZhY3V1bV9mcmVlemVfdGFibGVfYWdlID0gMDsKKy0tU0VUIHN0YXRz X2ZldGNoX2NvbnNpc3RlbmN5ID0gc25hcHNob3Q7CitDUkVBVEUgVEFCTEUgdmVzdGF0ICh4 IGludCkgV0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmLCBmaWxsZmFjdG9yID0gMTAp OworSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs OnNhbXBsZV9zaXplKSBhcyB4OworQU5BTFlaRSB2ZXN0YXQ7CisKK1NFTEVDVCBvaWQgQVMg cm9pZCBmcm9tIHBnX2NsYXNzIHdoZXJlIHJlbG5hbWUgPSAndmVzdGF0JyBcZ3NldAorCitE RUxFVEUgRlJPTSB2ZXN0YXQgV0hFUkUgeCAlIDIgPSAwOworLS0gQmVmb3JlIHRoZSBmaXJz dCB2YWN1dW0gZXhlY3V0aW9uIGV4dGVuZGVkIHN0YXRzIHZpZXcgaXMgZW1wdHkuCitTRUxF Q1QgdnQucmVsbmFtZSxwYWdlc19mcm96ZW4sdHVwbGVzX2RlbGV0ZWQscmVscGFnZXMscGFn ZXNfc2Nhbm5lZCxwYWdlc19yZW1vdmVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2 dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2dC5yZWxp ZCA9IGMub2lkOworU0VMRUNUIHJlbHBhZ2VzIEFTIHJwCitGUk9NIHBnX2NsYXNzIGMKK1dI RVJFIHJlbG5hbWUgPSAndmVzdGF0JyBcZ3NldAorCitWQUNVVU0gKFBBUkFMTEVMIDAsIEJV RkZFUl9VU0FHRV9MSU1JVCAxMjgsIElOREVYX0NMRUFOVVAgT0ZGKSB2ZXN0YXQ7CistLSBp dCBpcyBuZWNlc3NhcnkgdG8gY2hlY2sgdGhlIHdhbCBzdGF0aXN0aWNzCitDSEVDS1BPSU5U OworCistLSBUaGUgdGFibGUgYW5kIGluZGV4IGV4dGVuZGVkIHZhY3V1bSBzdGF0aXN0aWNz IHNob3VsZCBzaG93IHVzIHRoYXQKKy0tIHZhY3V1bSBmcm96ZWQgcGFnZXMgYW5kIGNsZWFu IHVwIHBhZ2VzLCBidXQgcGFnZXNfcmVtb3ZlZCBzdGF5ZWQgdGhlIHNhbWUKKy0tIGJlY2F1 c2Ugb2Ygbm90IGZ1bGwgdGFibGUgaGF2ZSBjbGVhbmVkIHVwCitTRUxFQ1QgdnQucmVsbmFt ZSxwYWdlc19mcm96ZW4gPiAwIEFTIHBhZ2VzX2Zyb3plbix0dXBsZXNfZGVsZXRlZCA+IDAg QVMgdHVwbGVzX2RlbGV0ZWQscmVscGFnZXMtOnJwID0gMCBBUyByZWxwYWdlcyxwYWdlc19z Y2FubmVkID4gMCBBUyBwYWdlc19zY2FubmVkLHBhZ2VzX3JlbW92ZWQgPSAwIEFTIHBhZ2Vz X3JlbW92ZWQKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCitX SEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdCcgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CitTRUxF Q1QgcGFnZXNfZnJvemVuIEFTIGZwLHR1cGxlc19kZWxldGVkIEFTIHRkLHJlbHBhZ2VzIEFT IHJwLCBwYWdlc19zY2FubmVkIEFTIHBzLCBwYWdlc19yZW1vdmVkIEFTIHByCitGUk9NIHBn X3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9 ICd2ZXN0YXQnIEFORCB2dC5yZWxpZCA9IGMub2lkIFxnc2V0CisKKy0tIFN0b3JlIFdBTCBh ZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzIEFTIGh3cix3YWxf Ynl0ZXMgQVMgaHdiLHdhbF9mcGkgQVMgaGZwaSBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxl cyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQKKworLS0gTG9vayBpbnRvIFdBTCBy ZWNvcmRzIGRlbHRhcy4KK1NFTEVDVCB3YWxfcmVjb3JkcyA+IDAgQVMgZFdSLCB3YWxfYnl0 ZXMgPiAwIEFTIGRXQgorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFt ZSA9ICd2ZXN0YXQnOworCitERUxFVEUgRlJPTSB2ZXN0YXQ7OworVkFDVVVNIChQQVJBTExF TCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4LCBJTkRFWF9DTEVBTlVQIE9GRikgdmVzdGF0 OworLS0gaXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hF Q0tQT0lOVDsKKworLS0gcGFnZXNfcmVtb3ZlZCBtdXN0IGJlIGluY3JlYXNlZAorU0VMRUNU IHZ0LnJlbG5hbWUscGFnZXNfZnJvemVuLTpmcCA+IDAgQVMgcGFnZXNfZnJvemVuLHR1cGxl c19kZWxldGVkLTp0ZCA+IDAgQVMgdHVwbGVzX2RlbGV0ZWQscmVscGFnZXMgLTpycCA9IDAg QVMgcmVscGFnZXMscGFnZXNfc2Nhbm5lZC06cHMgPiAwIEFTIHBhZ2VzX3NjYW5uZWQscGFn ZXNfcmVtb3ZlZC06cHIgPiAwIEFTIHBhZ2VzX3JlbW92ZWQKK0ZST00gcGdfc3RhdF92YWN1 dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdCcg QU5EIHZ0LnJlbGlkID0gYy5vaWQ7CitTRUxFQ1QgcGFnZXNfZnJvemVuIEFTIGZwLHR1cGxl c19kZWxldGVkIEFTIHRkLHJlbHBhZ2VzIEFTIHJwLCBwYWdlc19zY2FubmVkIEFTIHBzLCBw YWdlc19yZW1vdmVkIEFTIHByCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdf Y2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2dC5yZWxpZCA9IGMu b2lkIFxnc2V0CisKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VM RUNUIHdhbF9yZWNvcmRzLTpod3IgQVMgZHdyLCB3YWxfYnl0ZXMtOmh3YiBBUyBkd2IsIHdh bF9mcGktOmhmcGkgQVMgZGZwaQorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUg cmVsbmFtZSA9ICd2ZXN0YXQnIFxnc2V0CisKKy0tIFdBTCBhZHZhbmNlIHNob3VsZCBiZSBk ZXRlY3RlZC4KK1NFTEVDVCA6ZHdyID4gMCBBUyBkV1IsIDpkd2IgPiAwIEFTIGRXQjsKKwor LS0gU3RvcmUgV0FMIGFkdmFuY2VzIGludG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29y ZHMgQVMgaHdyLHdhbF9ieXRlcyBBUyBod2Isd2FsX2ZwaSBBUyBoZnBpIEZST00gcGdfc3Rh dF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0JyBcZ3NldAorCitJTlNF UlQgSU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw6c2FtcGxl X3NpemUpIGFzIHg7CitERUxFVEUgRlJPTSB2ZXN0YXQgV0hFUkUgeCAlIDIgPSAwOworLS0g VkFDVVVNIEZVTEwgZG9lc24ndCByZXBvcnQgdG8gc3RhdCBjb2xsZWN0b3IuIFNvLCBubyBh bnkgYWR2YW5jZW1lbnRzIG9mIHN0YXRpc3RpY3MKKy0tIGFyZSBkZXRlY3RlZCBoZXJlLgor VkFDVVVNIEZVTEwgdmVzdGF0OworLS0gSXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRoZSB3 YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKworLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGlu dG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMtOmh3ciBBUyBkd3IyLCB3YWxfYnl0 ZXMtOmh3YiBBUyBkd2IyLCB3YWxfZnBpLTpoZnBpIEFTIGRmcGkyCitGUk9NIHBnX3N0YXRf dmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQKKworLS0gV0FM IGFuZCBvdGhlciBzdGF0aXN0aWNzIGFkdmFuY2Ugc2hvdWxkIG5vdCBiZSBkZXRlY3RlZC4K K1NFTEVDVCA6ZHdyMj0wIEFTIGRXUiwgOmRmcGkyPTAgQVMgZEZQSSwgOmR3YjI9MCBBUyBk V0I7CisKK1NFTEVDVCB2dC5yZWxuYW1lLHBhZ2VzX2Zyb3plbi06ZnAgPSAwIEFTIHBhZ2Vz X2Zyb3plbix0dXBsZXNfZGVsZXRlZC06dGQgPSAwIEFTIHR1cGxlc19kZWxldGVkLHJlbHBh Z2VzIC06cnAgPCAwIEFTIHJlbHBhZ2VzLHBhZ2VzX3NjYW5uZWQtOnBzID0gMCBBUyBwYWdl c19zY2FubmVkLHBhZ2VzX3JlbW92ZWQtOnByID0gMCBBUyBwYWdlc19yZW1vdmVkCitGUk9N IHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFt ZSA9ICd2ZXN0YXQnIEFORCB2dC5yZWxpZCA9IGMub2lkOworU0VMRUNUIHBhZ2VzX2Zyb3pl biBBUyBmcCx0dXBsZXNfZGVsZXRlZCBBUyB0ZCxyZWxwYWdlcyBBUyBycCwgcGFnZXNfc2Nh bm5lZCBBUyBwcyxwYWdlc19yZW1vdmVkIEFTIHByCitGUk9NIHBnX3N0YXRfdmFjdXVtX3Rh YmxlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2 dC5yZWxpZCA9IGMub2lkIFxnc2V0CisKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZh cmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzIEFTIGh3cix3YWxfYnl0ZXMgQVMgaHdiLHdh bF9mcGkgQVMgaGZwaSBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1l ID0gJ3Zlc3RhdCcgXGdzZXQKKworREVMRVRFIEZST00gdmVzdGF0OworVFJVTkNBVEUgdmVz dGF0OworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4LCBJTkRF WF9DTEVBTlVQIE9GRikgdmVzdGF0OworLS0gaXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRo ZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKworLS0gU3RvcmUgV0FMIGFkdmFuY2Vz IGludG8gdmFyaWFibGVzIGFmdGVyIHJlbW92aW5nIGFsbCB0dXBsZXMgZnJvbSB0aGUgdGFi bGUKK1NFTEVDVCB3YWxfcmVjb3Jkcy06aHdyIEFTIGR3cjMsIHdhbF9ieXRlcy06aHdiIEFT IGR3YjMsIHdhbF9mcGktOmhmcGkgQVMgZGZwaTMKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFi bGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0JyBcZ3NldAorCistLVRoZXJlIGFyZSBub3Ro aW5nIGNoYW5nZWQKK1NFTEVDVCA6ZHdyMz4wIEFTIGRXUiwgOmRmcGkzPTAgQVMgZEZQSSwg OmR3YjM+MCBBUyBkV0I7CisKKy0tCistLSBOb3csIHRoZSB0YWJsZSBhbmQgaW5kZXggaXMg Y29tcHJlc3NlZCBpbnRvIHplcm8gbnVtYmVyIG9mIHBhZ2VzLiBDaGVjayBpdAorLS0gaW4g dmFjdXVtIGV4dGVuZGVkIHN0YXRpc3RpY3MuCistLSBUaGUgcGFnZXNfZnJvemVuLCBwYWdl c19zY2FubmVkIHZhbHVlcyBzaG91bGRuJ3QgYmUgY2hhbmdlZAorLS0KK1NFTEVDVCB2dC5y ZWxuYW1lLHBhZ2VzX2Zyb3plbi06ZnAgPSAwIEFTIHBhZ2VzX2Zyb3plbix0dXBsZXNfZGVs ZXRlZC06dGQgPSAwIEFTIHR1cGxlc19kZWxldGVkLHJlbHBhZ2VzIC06cnAgPSAwIEFTIHJl bHBhZ2VzLHBhZ2VzX3NjYW5uZWQtOnBzID0gMCBBUyBwYWdlc19zY2FubmVkLHBhZ2VzX3Jl bW92ZWQtOnByID0gMCBBUyBwYWdlc19yZW1vdmVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX3Rh YmxlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2 dC5yZWxpZCA9IGMub2lkOworCitJTlNFUlQgSU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSw6c2FtcGxlX3NpemUpIGFzIHg7CitBTkFMWVpFIHZlc3RhdDsK KworLS0gbXVzdCBiZSBlbXB0eQorU0VMRUNUIHBhZ2VzX2Zyb3plbiwgcGFnZXNfYWxsX3Zp c2libGUsIHJldl9hbGxfZnJvemVuX3BhZ2VzLHJldl9hbGxfdmlzaWJsZV9wYWdlcworRlJP TSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnOworCitW QUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgpIHZlc3RhdDsKKwor LS0gYmFja2VuZCBkZWZyZWV6ZWQgcGFnZXMKK1NFTEVDVCBwYWdlc19mcm96ZW4gPiAwIEFT IHBhZ2VzX2Zyb3plbixwYWdlc19hbGxfdmlzaWJsZSA+IDAgQVMgcGFnZXNfYWxsX3Zpc2li bGUscmV2X2FsbF9mcm96ZW5fcGFnZXMgPSAwIEFTIHJldl9hbGxfZnJvemVuX3BhZ2VzLHJl dl9hbGxfdmlzaWJsZV9wYWdlcyA9IDAgQVMgcmV2X2FsbF92aXNpYmxlX3BhZ2VzCitGUk9N IHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCc7CitTRUxF Q1QgcGFnZXNfZnJvemVuIEFTIHBmLCBwYWdlc19hbGxfdmlzaWJsZSBBUyBwdiwgcmV2X2Fs bF9mcm96ZW5fcGFnZXMgQVMgaGFmcCxyZXZfYWxsX3Zpc2libGVfcGFnZXMgQVMgaGF2cAor RlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnIFxn c2V0CisKK1VQREFURSB2ZXN0YXQgU0VUIHggPSB4KzEwMDE7CitWQUNVVU0gKFBBUkFMTEVM IDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgpIHZlc3RhdDsKKworU0VMRUNUIHBhZ2VzX2Zy b3plbiA+IDpwZiBBUyBwYWdlc19mcm96ZW4scGFnZXNfYWxsX3Zpc2libGUgPiA6cHYgQVMg cGFnZXNfYWxsX3Zpc2libGUscmV2X2FsbF9mcm96ZW5fcGFnZXMgPiA6aGFmcCBBUyByZXZf YWxsX2Zyb3plbl9wYWdlcyxyZXZfYWxsX3Zpc2libGVfcGFnZXMgPiA6aGF2cCBBUyByZXZf YWxsX3Zpc2libGVfcGFnZXMKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJl bG5hbWUgPSAndmVzdGF0JzsKK1NFTEVDVCBwYWdlc19mcm96ZW4gQVMgcGYsIHBhZ2VzX2Fs bF92aXNpYmxlIEFTIHB2LCByZXZfYWxsX2Zyb3plbl9wYWdlcyBBUyBoYWZwLHJldl9hbGxf dmlzaWJsZV9wYWdlcyBBUyBoYXZwCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVS RSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQKKworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZG RVJfVVNBR0VfTElNSVQgMTI4KSB2ZXN0YXQ7CisKKy0tIHZhY3V1bSBmcmVlemVkIHBhZ2Vz CitTRUxFQ1QgcGFnZXNfZnJvemVuID0gOnBmIEFTIHBhZ2VzX2Zyb3plbixwYWdlc19hbGxf dmlzaWJsZSA9IDpwdiBBUyBwYWdlc19hbGxfdmlzaWJsZSxyZXZfYWxsX2Zyb3plbl9wYWdl cyA9IDpoYWZwIEFTIHJldl9hbGxfZnJvemVuX3BhZ2VzLHJldl9hbGxfdmlzaWJsZV9wYWdl cyA9IDpoYXZwIEFTIHJldl9hbGxfdmlzaWJsZV9wYWdlcworRlJPTSBwZ19zdGF0X3ZhY3V1 bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnOworCitEUk9QIFRBQkxFIHZlc3Rh dCBDQVNDQURFOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKLS0gCjIuMzQuMQoK --------------QJIinAs2ilH4KN1sjrAA0vMB Content-Type: text/x-patch; charset=UTF-8; name="v6-0002-Machinery-for-grabbing-an-extended-vacuum-statistics.patch" Content-Disposition: attachment; filename*0="v6-0002-Machinery-for-grabbing-an-extended-vacuum-statistics"; filename*1=".patch" Content-Transfer-Encoding: base64 RnJvbSAzNWFhYzc3MDRlYWJlYWVmZDVhYjc2YmIxOGMwZTY4ZDI5Mzg4YmUxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogU3VuLCAyNSBBdWcgMjAyNCAxNzowOToyMSArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMi80XSBNYWNoaW5lcnkgZm9yIGdyYWJiaW5nIGFuIGV4dGVuZGVkIHZh Y3V1bSBzdGF0aXN0aWNzIG9uIAogaGVhcCBhbmQgaW5kZXggcmVsYXRpb25zLiBSZW1lbWJl ciwgc3RhdGlzdGljIG9uIGhlYXAgYW5kIGluZGV4IHJlbGF0aW9ucyBhIAogYml0IGRpZmZl cmVudCAoc2VlIEV4dFZhY1JlcG9ydCB0byBmaW5kIG91dCBtb3JlIGluZm9ybWF0aW9uKS4g VGhlIGNvbmNlcHQgb2YKICB0aGUgRXh0VmFjUmVwb3J0IHN0cnVjdHVyZSBoYXMgYmVlbiBj b21wbGljYXRlZCB0byBzdG9yZSBzdGF0aXN0aWMgCiBpbmZvcm1hdGlvbiBmb3IgdHdvIGtp bmRzIG9mIHJlbGF0aW9uczogZm9yIGhlYXAgYW5kIGluZGV4IHJlbGF0aW9ucy4gCiBFeHRW YWNSZXBvcnRUeXBlIHZhcmlhYmxlIGhlbHBzIHRvIGRldGVybWluZSB3aGF0IHRoZSBraW5k IGlzIGNvbnNpZGVyaW5nIAogbm93LgoKLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92 YWN1dW1sYXp5LmMgICAgICAgICAgfCAgOTkgKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL2Nh dGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCAgICAgICAgICB8ICA0MSArKysrKwogc3JjL2JhY2tl bmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMgICAgICAgICAgIHwgIDQ1ICsrKy0tCiBzcmMv YmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYyAgfCAgIDMgKy0KIHNy Yy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jICAgICAgICAgICB8ICA5OSArKysr KystLS0tLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAg IHwgICA5ICsKIHNyYy9pbmNsdWRlL3Bnc3RhdC5oICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICA1MyArKysrLS0KIC4uLi92YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0YWJsZS1yZWFk Lm91dCAgICB8ICAgNyArLQogLi4uL3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJl YWQuc3BlYyAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5p dHkub3V0ICAgICAgfCAgIDcgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMu b3V0ICAgICAgICAgICB8ICAyNiArKysKIC4uLi9leHBlY3RlZC92YWN1dW1faW5kZXhfc3Rh dGlzdGljcy5vdXQgICAgICB8IDE1OCArKysrKysrKysrKysrKysrKysKIC4uLi9leHBlY3Rl ZC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Mub3V0ICAgICB8ICAgMyArLQogc3JjL3Rlc3Qv cmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAxICsKIC4uLi9yZWdy ZXNzL3NxbC92YWN1dW1faW5kZXhfc3RhdGlzdGljcy5zcWwgICB8IDEyOCArKysrKysrKysr KysrKwogMTUgZmlsZXMgY2hhbmdlZCwgNjAwIGluc2VydGlvbnMoKyksIDgxIGRlbGV0aW9u cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFj dXVtX2luZGV4X3N0YXRpc3RpY3Mub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qv cmVncmVzcy9zcWwvdmFjdXVtX2luZGV4X3N0YXRpc3RpY3Muc3FsCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDM5NDFhZTI2ZjJkLi40ZTJhZTc4ZDI1NSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtMTY4LDYgKzE2OCw3 IEBAIHR5cGVkZWYgc3RydWN0IExWUmVsU3RhdGUKIAljaGFyCSAgICpkYm5hbWU7CiAJY2hh cgkgICAqcmVsbmFtZXNwYWNlOwogCU9pZAkJCXJlbG9pZDsKKwlPaWQJCQlpbmRvaWQ7CiAJ Y2hhcgkgICAqcmVsbmFtZTsKIAljaGFyCSAgICppbmRuYW1lOwkJLyogQ3VycmVudCBpbmRl eCBuYW1lICovCiAJQmxvY2tOdW1iZXIgYmxrbm87CQkJLyogdXNlZCBvbmx5IGZvciBoZWFw IG9wZXJhdGlvbnMgKi8KQEAgLTI0Niw2ICsyNDcsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgTFZF eHRTdGF0Q291bnRlcnMKIAlQZ1N0YXRfQ291bnRlciBibG9ja3NfaGl0OwogfSBMVkV4dFN0 YXRDb3VudGVyczsKIAordHlwZWRlZiBzdHJ1Y3QgTFZFeHRTdGF0Q291bnRlcnNJZHgKK3sK KwlMVkV4dFN0YXRDb3VudGVycyBjb21tb247CisJaW50NjQJCXBhZ2VzX2RlbGV0ZWQ7CisJ aW50NjQJCXR1cGxlc19yZW1vdmVkOworfSBMVkV4dFN0YXRDb3VudGVyc0lkeDsKKwogLyog bm9uLWV4cG9ydCBmdW5jdGlvbiBwcm90b3R5cGVzICovCiBzdGF0aWMgdm9pZCBsYXp5X3Nj YW5faGVhcChMVlJlbFN0YXRlICp2YWNyZWwpOwogc3RhdGljIGJvb2wgaGVhcF92YWNfc2Nh bl9uZXh0X2Jsb2NrKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgKmJsa25vLApA QCAtNDA4LDYgKzQxNiw0NiBAQCBleHR2YWNfc3RhdHNfZW5kKFJlbGF0aW9uIHJlbCwgTFZF eHRTdGF0Q291bnRlcnMgKmNvdW50ZXJzLAogCQlyZWwtPnBnc3RhdF9pbmZvLT5jb3VudHMu YmxvY2tzX2hpdCAtIGNvdW50ZXJzLT5ibG9ja3NfaGl0OwogfQogCitzdGF0aWMgdm9pZAor ZXh0dmFjX3N0YXRzX3N0YXJ0X2lkeChSZWxhdGlvbiByZWwsIEluZGV4QnVsa0RlbGV0ZVJl c3VsdCAqc3RhdHMsCisJCQkJCSAgIExWRXh0U3RhdENvdW50ZXJzSWR4ICpjb3VudGVycykK K3sKKwlleHR2YWNfc3RhdHNfc3RhcnQocmVsLCAmY291bnRlcnMtPmNvbW1vbik7CisJY291 bnRlcnMtPnBhZ2VzX2RlbGV0ZWQgPSBjb3VudGVycy0+dHVwbGVzX3JlbW92ZWQgPSAwOwor CisJaWYgKHN0YXRzICE9IE5VTEwpCisJeworCQkvKgorCQkgKiBYWFg6IFdoeSBkbyB3ZSBu ZWVkIHRoaXMgY29kZSBoZXJlPyBJZiBpdCBpcyBuZWVkZWQsIEkgZmVlbCBsYWNrIG9mCisJ CSAqIGNvbW1lbnRzLCBkZXNjcmliaW5nIHRoZSByZWFzb24uCisJCSAqLworCQljb3VudGVy cy0+dHVwbGVzX3JlbW92ZWQgPSBzdGF0cy0+dHVwbGVzX3JlbW92ZWQ7CisJCWNvdW50ZXJz LT5wYWdlc19kZWxldGVkID0gc3RhdHMtPnBhZ2VzX2RlbGV0ZWQ7CisJfQorfQorCitzdGF0 aWMgdm9pZAorZXh0dmFjX3N0YXRzX2VuZF9pZHgoUmVsYXRpb24gcmVsLCBJbmRleEJ1bGtE ZWxldGVSZXN1bHQgKnN0YXRzLAorCQkJCQkgTFZFeHRTdGF0Q291bnRlcnNJZHggKmNvdW50 ZXJzLCBFeHRWYWNSZXBvcnQgKnJlcG9ydCkKK3sKKwlleHR2YWNfc3RhdHNfZW5kKHJlbCwg JmNvdW50ZXJzLT5jb21tb24sIHJlcG9ydCk7CisJcmVwb3J0LT50eXBlID0gUEdTVEFUX0VY VFZBQ19JTkRFWDsKKworCWlmIChzdGF0cyAhPSBOVUxMKQorCXsKKwkJLyoKKwkJICogaWYg c29tZXRoaW5nIGdvZXMgd3Jvbmcgb3IgYW4gdXNlciBkb2Vzbid0IHdhbnQgdG8gdHJhY2sg YSBkYXRhYmFzZQorCQkgKiBhY3Rpdml0eSAtIGp1c3Qgc3VwcHJlc3MgaXQuCisJCSAqLwor CisJCS8qIEZpbGwgaW5kZXgtc3BlY2lmaWMgZXh0ZW5kZWQgc3RhdHMgZmllbGRzICovCisJ CXJlcG9ydC0+aW5kZXgudHVwbGVzX2RlbGV0ZWQgPQorCQkJCQkJCXN0YXRzLT50dXBsZXNf cmVtb3ZlZCAtIGNvdW50ZXJzLT50dXBsZXNfcmVtb3ZlZDsKKwkJcmVwb3J0LT5pbmRleC5w YWdlc19kZWxldGVkID0KKwkJCQkJCQlzdGF0cy0+cGFnZXNfZGVsZXRlZCAtIGNvdW50ZXJz LT5wYWdlc19kZWxldGVkOworCX0KK30KKwogLyoKICAqCWhlYXBfdmFjdXVtX3JlbCgpIC0t IHBlcmZvcm0gVkFDVVVNIGZvciBvbmUgaGVhcCByZWxhdGlvbgogICoKQEAgLTcxMSwxNCAr NzU5LDE1IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIFZhY3V1bVBhcmFtcyAq cGFyYW1zLAogCWV4dHZhY19zdGF0c19lbmQocmVsLCAmZXh0VmFjQ291bnRlcnMsICZleHRW YWNSZXBvcnQpOwogCiAJLyogRmlsbCBoZWFwLXNwZWNpZmljIGV4dGVuZGVkIHN0YXRzIGZp ZWxkcyAqLwotCWV4dFZhY1JlcG9ydC5wYWdlc19zY2FubmVkID0gdmFjcmVsLT5zY2FubmVk X3BhZ2VzOwotCWV4dFZhY1JlcG9ydC5wYWdlc19yZW1vdmVkID0gdmFjcmVsLT5yZW1vdmVk X3BhZ2VzOwotCWV4dFZhY1JlcG9ydC5wYWdlc19mcm96ZW4gPSB2YWNyZWwtPnNldF9mcm96 ZW5fcGFnZXM7Ci0JZXh0VmFjUmVwb3J0LnBhZ2VzX2FsbF92aXNpYmxlID0gdmFjcmVsLT5z ZXRfYWxsX3Zpc2libGVfcGFnZXM7Ci0JZXh0VmFjUmVwb3J0LnR1cGxlc19kZWxldGVkID0g dmFjcmVsLT50dXBsZXNfZGVsZXRlZDsKLQlleHRWYWNSZXBvcnQudHVwbGVzX2Zyb3plbiA9 IHZhY3JlbC0+dHVwbGVzX2Zyb3plbjsKLQlleHRWYWNSZXBvcnQuZGVhZF90dXBsZXMgPSB2 YWNyZWwtPnJlY2VudGx5X2RlYWRfdHVwbGVzICsgdmFjcmVsLT5taXNzZWRfZGVhZF90dXBs ZXM7Ci0JZXh0VmFjUmVwb3J0LmluZGV4X3ZhY3V1bV9jb3VudCA9IHZhY3JlbC0+bnVtX2lu ZGV4X3NjYW5zOworCWV4dFZhY1JlcG9ydC50eXBlID0gUEdTVEFUX0VYVFZBQ19IRUFQOwor CWV4dFZhY1JlcG9ydC5oZWFwLnBhZ2VzX3NjYW5uZWQgPSB2YWNyZWwtPnNjYW5uZWRfcGFn ZXM7CisJZXh0VmFjUmVwb3J0LmhlYXAucGFnZXNfcmVtb3ZlZCA9IHZhY3JlbC0+cmVtb3Zl ZF9wYWdlczsKKwlleHRWYWNSZXBvcnQuaGVhcC5wYWdlc19mcm96ZW4gPSB2YWNyZWwtPnNl dF9mcm96ZW5fcGFnZXM7CisJZXh0VmFjUmVwb3J0LmhlYXAucGFnZXNfYWxsX3Zpc2libGUg PSB2YWNyZWwtPnNldF9hbGxfdmlzaWJsZV9wYWdlczsKKwlleHRWYWNSZXBvcnQuaGVhcC50 dXBsZXNfZGVsZXRlZCA9IHZhY3JlbC0+dHVwbGVzX2RlbGV0ZWQ7CisJZXh0VmFjUmVwb3J0 LmhlYXAudHVwbGVzX2Zyb3plbiA9IHZhY3JlbC0+dHVwbGVzX2Zyb3plbjsKKwlleHRWYWNS ZXBvcnQuaGVhcC5kZWFkX3R1cGxlcyA9IHZhY3JlbC0+cmVjZW50bHlfZGVhZF90dXBsZXMg KyB2YWNyZWwtPm1pc3NlZF9kZWFkX3R1cGxlczsKKwlleHRWYWNSZXBvcnQuaGVhcC5pbmRl eF92YWN1dW1fY291bnQgPSB2YWNyZWwtPm51bV9pbmRleF9zY2FuczsKIAogCS8qCiAJICog UmVwb3J0IHJlc3VsdHMgdG8gdGhlIGN1bXVsYXRpdmUgc3RhdHMgc3lzdGVtLCB0b28uCkBA IC0yNTgzLDYgKzI2MzIsMTAgQEAgbGF6eV92YWN1dW1fb25lX2luZGV4KFJlbGF0aW9uIGlu ZHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICppc3RhdCwKIHsKIAlJbmRleFZhY3V1bUlu Zm8gaXZpbmZvOwogCUxWU2F2ZWRFcnJJbmZvIHNhdmVkX2Vycl9pbmZvOworCUxWRXh0U3Rh dENvdW50ZXJzSWR4IGV4dFZhY0NvdW50ZXJzOworCUV4dFZhY1JlcG9ydCBleHRWYWNSZXBv cnQ7CisKKwlleHR2YWNfc3RhdHNfc3RhcnRfaWR4KGluZHJlbCwgaXN0YXQsICZleHRWYWND b3VudGVycyk7CiAKIAlpdmluZm8uaW5kZXggPSBpbmRyZWw7CiAJaXZpbmZvLmhlYXByZWwg PSB2YWNyZWwtPnJlbDsKQEAgLTI2MDEsNiArMjY1NCw3IEBAIGxhenlfdmFjdXVtX29uZV9p bmRleChSZWxhdGlvbiBpbmRyZWwsIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqaXN0YXQsCiAJ ICovCiAJQXNzZXJ0KHZhY3JlbC0+aW5kbmFtZSA9PSBOVUxMKTsKIAl2YWNyZWwtPmluZG5h bWUgPSBwc3RyZHVwKFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGluZHJlbCkpOworCXZhY3Jl bC0+aW5kb2lkID0gUmVsYXRpb25HZXRSZWxpZChpbmRyZWwpOwogCXVwZGF0ZV92YWN1dW1f ZXJyb3JfaW5mbyh2YWNyZWwsICZzYXZlZF9lcnJfaW5mbywKIAkJCQkJCQkgVkFDVVVNX0VS UkNCX1BIQVNFX1ZBQ1VVTV9JTkRFWCwKIAkJCQkJCQkgSW52YWxpZEJsb2NrTnVtYmVyLCBJ bnZhbGlkT2Zmc2V0TnVtYmVyKTsKQEAgLTI2MDksNiArMjY2MywxMyBAQCBsYXp5X3ZhY3V1 bV9vbmVfaW5kZXgoUmVsYXRpb24gaW5kcmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmlz dGF0LAogCWlzdGF0ID0gdmFjX2J1bGtkZWxfb25lX2luZGV4KCZpdmluZm8sIGlzdGF0LCAo dm9pZCAqKSB2YWNyZWwtPmRlYWRfaXRlbXMsCiAJCQkJCQkJCSAgdmFjcmVsLT5kZWFkX2l0 ZW1zX2luZm8pOwogCisJLyogTWFrZSBleHRlbmRlZCB2YWN1dW0gc3RhdHMgcmVwb3J0IGZv ciBpbmRleCAqLworCWV4dHZhY19zdGF0c19lbmRfaWR4KGluZHJlbCwgaXN0YXQsICZleHRW YWNDb3VudGVycywgJmV4dFZhY1JlcG9ydCk7CisKKwlwZ3N0YXRfcmVwb3J0X3ZhY3V1bShS ZWxhdGlvbkdldFJlbGlkKGluZHJlbCksCisJCQkJCQkJaW5kcmVsLT5yZF9yZWwtPnJlbGlz c2hhcmVkLAorCQkJCQkJCTAsIDAsICZleHRWYWNSZXBvcnQpOworCiAJLyogUmV2ZXJ0IHRv IHRoZSBwcmV2aW91cyBwaGFzZSBpbmZvcm1hdGlvbiBmb3IgZXJyb3IgdHJhY2ViYWNrICov CiAJcmVzdG9yZV92YWN1dW1fZXJyb3JfaW5mbyh2YWNyZWwsICZzYXZlZF9lcnJfaW5mbyk7 CiAJcGZyZWUodmFjcmVsLT5pbmRuYW1lKTsKQEAgLTI2MzMsNiArMjY5NCwxMCBAQCBsYXp5 X2NsZWFudXBfb25lX2luZGV4KFJlbGF0aW9uIGluZHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVz dWx0ICppc3RhdCwKIHsKIAlJbmRleFZhY3V1bUluZm8gaXZpbmZvOwogCUxWU2F2ZWRFcnJJ bmZvIHNhdmVkX2Vycl9pbmZvOworCUxWRXh0U3RhdENvdW50ZXJzSWR4IGV4dFZhY0NvdW50 ZXJzOworCUV4dFZhY1JlcG9ydCBleHRWYWNSZXBvcnQ7CisKKwlleHR2YWNfc3RhdHNfc3Rh cnRfaWR4KGluZHJlbCwgaXN0YXQsICZleHRWYWNDb3VudGVycyk7CiAKIAlpdmluZm8uaW5k ZXggPSBpbmRyZWw7CiAJaXZpbmZvLmhlYXByZWwgPSB2YWNyZWwtPnJlbDsKQEAgLTI2NTIs MTIgKzI3MTcsMjAgQEAgbGF6eV9jbGVhbnVwX29uZV9pbmRleChSZWxhdGlvbiBpbmRyZWws IEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqaXN0YXQsCiAJICovCiAJQXNzZXJ0KHZhY3JlbC0+ aW5kbmFtZSA9PSBOVUxMKTsKIAl2YWNyZWwtPmluZG5hbWUgPSBwc3RyZHVwKFJlbGF0aW9u R2V0UmVsYXRpb25OYW1lKGluZHJlbCkpOworCXZhY3JlbC0+aW5kb2lkID0gUmVsYXRpb25H ZXRSZWxpZChpbmRyZWwpOwogCXVwZGF0ZV92YWN1dW1fZXJyb3JfaW5mbyh2YWNyZWwsICZz YXZlZF9lcnJfaW5mbywKIAkJCQkJCQkgVkFDVVVNX0VSUkNCX1BIQVNFX0lOREVYX0NMRUFO VVAsCiAJCQkJCQkJIEludmFsaWRCbG9ja051bWJlciwgSW52YWxpZE9mZnNldE51bWJlcik7 CiAKIAlpc3RhdCA9IHZhY19jbGVhbnVwX29uZV9pbmRleCgmaXZpbmZvLCBpc3RhdCk7CiAK KwkvKiBNYWtlIGV4dGVuZGVkIHZhY3V1bSBzdGF0cyByZXBvcnQgZm9yIGluZGV4ICovCisJ ZXh0dmFjX3N0YXRzX2VuZF9pZHgoaW5kcmVsLCBpc3RhdCwgJmV4dFZhY0NvdW50ZXJzLCAm ZXh0VmFjUmVwb3J0KTsKKworCXBnc3RhdF9yZXBvcnRfdmFjdXVtKFJlbGF0aW9uR2V0UmVs aWQoaW5kcmVsKSwKKwkJCQkJCQlpbmRyZWwtPnJkX3JlbC0+cmVsaXNzaGFyZWQsCisJCQkJ CQkJMCwgMCwgJmV4dFZhY1JlcG9ydCk7CisKIAkvKiBSZXZlcnQgdG8gdGhlIHByZXZpb3Vz IHBoYXNlIGluZm9ybWF0aW9uIGZvciBlcnJvciB0cmFjZWJhY2sgKi8KIAlyZXN0b3JlX3Zh Y3V1bV9lcnJvcl9pbmZvKHZhY3JlbCwgJnNhdmVkX2Vycl9pbmZvKTsKIAlwZnJlZSh2YWNy ZWwtPmluZG5hbWUpOwpAQCAtMzI3NCw3ICszMzQ3LDcgQEAgdmFjdXVtX2Vycm9yX2NhbGxi YWNrKHZvaWQgKmFyZykKIAl7CiAJCWNhc2UgVkFDVVVNX0VSUkNCX1BIQVNFX1NDQU5fSEVB UDoKIAkJCWlmKGdldGVycmVsZXZlbCgpID49IEVSUk9SKQotCQkJCXBnc3RhdF9yZXBvcnRf dmFjdXVtX2Vycm9yKGVycmluZm8tPnJlbG9pZCk7CisJCQkJcGdzdGF0X3JlcG9ydF92YWN1 dW1fZXJyb3IoZXJyaW5mby0+cmVsb2lkLCBQR1NUQVRfRVhUVkFDX0hFQVApOwogCQkJaWYg KEJsb2NrTnVtYmVySXNWYWxpZChlcnJpbmZvLT5ibGtubykpCiAJCQl7CiAJCQkJaWYgKE9m ZnNldE51bWJlcklzVmFsaWQoZXJyaW5mby0+b2ZmbnVtKSkKQEAgLTMyOTEsNyArMzM2NCw3 IEBAIHZhY3V1bV9lcnJvcl9jYWxsYmFjayh2b2lkICphcmcpCiAKIAkJY2FzZSBWQUNVVU1f RVJSQ0JfUEhBU0VfVkFDVVVNX0hFQVA6CiAJCQlpZihnZXRlcnJlbGV2ZWwoKSA+PSBFUlJP UikKLQkJCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1bV9lcnJvcihlcnJpbmZvLT5yZWxvaWQpOwor CQkJCXBnc3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9yKGVycmluZm8tPnJlbG9pZCwgUEdTVEFU X0VYVFZBQ19IRUFQKTsKIAkJCWlmIChCbG9ja051bWJlcklzVmFsaWQoZXJyaW5mby0+Ymxr bm8pKQogCQkJewogCQkJCWlmIChPZmZzZXROdW1iZXJJc1ZhbGlkKGVycmluZm8tPm9mZm51 bSkpCkBAIC0zMzA3LDE2ICszMzgwLDIyIEBAIHZhY3V1bV9lcnJvcl9jYWxsYmFjayh2b2lk ICphcmcpCiAJCQlicmVhazsKIAogCQljYXNlIFZBQ1VVTV9FUlJDQl9QSEFTRV9WQUNVVU1f SU5ERVg6CisJCQlpZihnZXRlcnJlbGV2ZWwoKSA+PSBFUlJPUikKKwkJCQlwZ3N0YXRfcmVw b3J0X3ZhY3V1bV9lcnJvcihlcnJpbmZvLT5pbmRvaWQsIFBHU1RBVF9FWFRWQUNfSU5ERVgp OwogCQkJZXJyY29udGV4dCgid2hpbGUgdmFjdXVtaW5nIGluZGV4IFwiJXNcIiBvZiByZWxh dGlvbiBcIiVzLiVzXCIiLAogCQkJCQkgICBlcnJpbmZvLT5pbmRuYW1lLCBlcnJpbmZvLT5y ZWxuYW1lc3BhY2UsIGVycmluZm8tPnJlbG5hbWUpOwogCQkJYnJlYWs7CiAKIAkJY2FzZSBW QUNVVU1fRVJSQ0JfUEhBU0VfSU5ERVhfQ0xFQU5VUDoKKwkJCWlmKGdldGVycmVsZXZlbCgp ID49IEVSUk9SKQorCQkJCXBnc3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9yKGVycmluZm8tPmlu ZG9pZCwgUEdTVEFUX0VYVFZBQ19JTkRFWCk7CiAJCQllcnJjb250ZXh0KCJ3aGlsZSBjbGVh bmluZyB1cCBpbmRleCBcIiVzXCIgb2YgcmVsYXRpb24gXCIlcy4lc1wiIiwKIAkJCQkJICAg ZXJyaW5mby0+aW5kbmFtZSwgZXJyaW5mby0+cmVsbmFtZXNwYWNlLCBlcnJpbmZvLT5yZWxu YW1lKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgVkFDVVVNX0VSUkNCX1BIQVNFX1RSVU5DQVRF OgorCQkJaWYoZ2V0ZXJyZWxldmVsKCkgPj0gRVJST1IpCisJCQkJcGdzdGF0X3JlcG9ydF92 YWN1dW1fZXJyb3IoZXJyaW5mby0+cmVsb2lkLCBQR1NUQVRfRVhUVkFDX0hFQVApOwogCQkJ aWYgKEJsb2NrTnVtYmVySXNWYWxpZChlcnJpbmZvLT5ibGtubykpCiAJCQkJZXJyY29udGV4 dCgid2hpbGUgdHJ1bmNhdGluZyByZWxhdGlvbiBcIiVzLiVzXCIgdG8gJXUgYmxvY2tzIiwK IAkJCQkJCSAgIGVycmluZm8tPnJlbG5hbWVzcGFjZSwgZXJyaW5mby0+cmVsbmFtZSwgZXJy aW5mby0+Ymxrbm8pOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1f dmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4 IGU4NGQ2ODgxNDAzLi5lZTc1OWNkYzVjMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9zeXN0ZW1fdmlld3Muc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVt X3ZpZXdzLnNxbApAQCAtMTQyNSwzICsxNDI1LDQ0IEBAIFdIRVJFCiAgIGRiLmRhdG5hbWUg PSBjdXJyZW50X2RhdGFiYXNlKCkgQU5ECiAgIHJlbC5vaWQgPSBzdGF0cy5yZWxpZCBBTkQK ICAgbnMub2lkID0gcmVsLnJlbG5hbWVzcGFjZTsKKworQ1JFQVRFIFZJRVcgcGdfc3RhdF92 YWN1dW1faW5kZXhlcyBBUworU0VMRUNUCisgIHJlbC5vaWQgYXMgcmVsaWQsCisgIG5zLm5z cG5hbWUgQVMgInNjaGVtYSIsCisgIHJlbC5yZWxuYW1lIEFTIHJlbG5hbWUsCisKKyAgc3Rh dHMudG90YWxfYmxrc19yZWFkLAorICBzdGF0cy50b3RhbF9ibGtzX2hpdCwKKyAgc3RhdHMu dG90YWxfYmxrc19kaXJ0aWVkLAorICBzdGF0cy50b3RhbF9ibGtzX3dyaXR0ZW4sCisKKyAg c3RhdHMucmVsX2Jsa3NfcmVhZCwKKyAgc3RhdHMucmVsX2Jsa3NfaGl0LAorCisgIHN0YXRz LnBhZ2VzX2RlbGV0ZWQsCisgIHN0YXRzLnR1cGxlc19kZWxldGVkLAorCisgIHN0YXRzLndh bF9yZWNvcmRzLAorICBzdGF0cy53YWxfZnBpLAorICBzdGF0cy53YWxfYnl0ZXMsCisKKyAg c3RhdHMuYmxrX3JlYWRfdGltZSwKKyAgc3RhdHMuYmxrX3dyaXRlX3RpbWUsCisKKyAgc3Rh dHMuZGVsYXlfdGltZSwKKyAgc3RhdHMuc3lzdGVtX3RpbWUsCisgIHN0YXRzLnVzZXJfdGlt ZSwKKyAgc3RhdHMudG90YWxfdGltZSwKKworICBzdGF0cy5pbnRlcnJ1cHRzCitGUk9NCisg IHBnX2RhdGFiYXNlIGRiLAorICBwZ19jbGFzcyByZWwsCisgIHBnX25hbWVzcGFjZSBucywK KyAgcGdfc3RhdF92YWN1dW1faW5kZXhlcyhyZWwub2lkKSBzdGF0cworV0hFUkUKKyAgZGIu ZGF0bmFtZSA9IGN1cnJlbnRfZGF0YWJhc2UoKSBBTkQKKyAgcmVsLm9pZCA9IHN0YXRzLnJl bGlkIEFORAorICBucy5vaWQgPSByZWwucmVsbmFtZXNwYWNlOworCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L3Bnc3RhdC5jCmluZGV4IDRlOGQ4ZjhkYzc3Li5hNmY5NzFiNWE2OCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKQEAgLTg1MSwxNyArODUxLDMzIEBA IHBnc3RhdF9hY2N1bXVsYXRlX2V4dHZhY19zdGF0cyhFeHRWYWNSZXBvcnQgKmRzdCwgRXh0 VmFjUmVwb3J0ICpzcmMsCiAJaWYgKCFhY2N1bXVsYXRlX3JlbHR5cGVfc3BlY2lmaWNfaW5m bykKIAkJcmV0dXJuOwogCi0JZHN0LT5ibGtzX2ZldGNoZWQgKz0gc3JjLT5ibGtzX2ZldGNo ZWQ7Ci0JZHN0LT5ibGtzX2hpdCArPSBzcmMtPmJsa3NfaGl0OwotCi0JZHN0LT5wYWdlc19z Y2FubmVkICs9IHNyYy0+cGFnZXNfc2Nhbm5lZDsKLQlkc3QtPnBhZ2VzX3JlbW92ZWQgKz0g c3JjLT5wYWdlc19yZW1vdmVkOwotCWRzdC0+cGFnZXNfZnJvemVuICs9IHNyYy0+cGFnZXNf ZnJvemVuOwotCWRzdC0+cGFnZXNfYWxsX3Zpc2libGUgKz0gc3JjLT5wYWdlc19hbGxfdmlz aWJsZTsKLQlkc3QtPnR1cGxlc19kZWxldGVkICs9IHNyYy0+dHVwbGVzX2RlbGV0ZWQ7Ci0J ZHN0LT50dXBsZXNfZnJvemVuICs9IHNyYy0+dHVwbGVzX2Zyb3plbjsKLQlkc3QtPmRlYWRf dHVwbGVzICs9IHNyYy0+ZGVhZF90dXBsZXM7Ci0JZHN0LT5pbmRleF92YWN1dW1fY291bnQg Kz0gc3JjLT5pbmRleF92YWN1dW1fY291bnQ7CisJaWYgKGRzdC0+dHlwZSA9PSBQR1NUQVRf RVhUVkFDX0lOVkFMSUQpCisJCWRzdC0+dHlwZSA9IHNyYy0+dHlwZTsKKworCUFzc2VydChz cmMtPnR5cGUgPT0gUEdTVEFUX0VYVFZBQ19JTlZBTElEIHx8IHNyYy0+dHlwZSA9PSBkc3Qt PnR5cGUpOworCisJaWYgKGRzdC0+dHlwZSA9PSBzcmMtPnR5cGUpCisJeworCQlkc3QtPmJs a3NfZmV0Y2hlZCArPSBzcmMtPmJsa3NfZmV0Y2hlZDsKKwkJZHN0LT5ibGtzX2hpdCArPSBz cmMtPmJsa3NfaGl0OworCisJCWlmIChkc3QtPnR5cGUgPT0gUEdTVEFUX0VYVFZBQ19IRUFQ KQorCQl7CisJCQlkc3QtPmhlYXAucGFnZXNfc2Nhbm5lZCArPSBzcmMtPmhlYXAucGFnZXNf c2Nhbm5lZDsKKwkJCWRzdC0+aGVhcC5wYWdlc19yZW1vdmVkICs9IHNyYy0+aGVhcC5wYWdl c19yZW1vdmVkOworCQkJZHN0LT5oZWFwLnBhZ2VzX2Zyb3plbiArPSBzcmMtPmhlYXAucGFn ZXNfZnJvemVuOworCQkJZHN0LT5oZWFwLnBhZ2VzX2FsbF92aXNpYmxlICs9IHNyYy0+aGVh cC5wYWdlc19hbGxfdmlzaWJsZTsKKwkJCWRzdC0+aGVhcC50dXBsZXNfZGVsZXRlZCArPSBz cmMtPmhlYXAudHVwbGVzX2RlbGV0ZWQ7CisJCQlkc3QtPmhlYXAudHVwbGVzX2Zyb3plbiAr PSBzcmMtPmhlYXAudHVwbGVzX2Zyb3plbjsKKwkJCWRzdC0+aGVhcC5kZWFkX3R1cGxlcyAr PSBzcmMtPmhlYXAuZGVhZF90dXBsZXM7CisJCQlkc3QtPmhlYXAuaW5kZXhfdmFjdXVtX2Nv dW50ICs9IHNyYy0+aGVhcC5pbmRleF92YWN1dW1fY291bnQ7CisJCX0KKwkJZWxzZSBpZiAo ZHN0LT50eXBlID09IFBHU1RBVF9FWFRWQUNfSU5ERVgpCisJCXsKKwkJCWRzdC0+aW5kZXgu cGFnZXNfZGVsZXRlZCArPSBzcmMtPmluZGV4LnBhZ2VzX2RlbGV0ZWQ7CisJCQlkc3QtPmlu ZGV4LnR1cGxlc19kZWxldGVkICs9IHNyYy0+aW5kZXgudHVwbGVzX2RlbGV0ZWQ7CisJCX0K Kwl9CiB9CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTEwOCw3ICsxMTI0LDggQEAgcGdzdGF0X3VwZGF0 ZV9zbmFwc2hvdChQZ1N0YXRfS2luZCBraW5kKQogCVBHX1RSWSgpOwogCXsKIAkJcGdzdGF0 X2ZldGNoX2NvbnNpc3RlbmN5ID0gUEdTVEFUX0ZFVENIX0NPTlNJU1RFTkNZX1NOQVBTSE9U OwotCQlwZ3N0YXRfYnVpbGRfc25hcHNob3QoUEdTVEFUX0tJTkRfUkVMQVRJT04pOworCQlp ZiAoa2luZCA9PSBQR1NUQVRfS0lORF9SRUxBVElPTikKKwkJCXBnc3RhdF9idWlsZF9zbmFw c2hvdChQR1NUQVRfS0lORF9SRUxBVElPTik7CiAJfQogCVBHX0ZJTkFMTFkoKTsKIAl7CkBA IC0xMTYzLDYgKzExODAsMTAgQEAgcGdzdGF0X2J1aWxkX3NuYXBzaG90KFBnU3RhdF9LaW5k IHN0YXRLaW5kKQogCQlpZiAocC0+ZHJvcHBlZCkKIAkJCWNvbnRpbnVlOwogCisJCWlmIChz dGF0S2luZCAhPSBQR1NUQVRfS0lORF9JTlZBTElEICYmIHN0YXRLaW5kICE9IHAtPmtleS5r aW5kKQorCQkJLyogTG9hZCBzdGF0IG9mIHNwZWNpZmljIHR5cGUsIGlmIGRlZmluZWQgKi8K KwkJCWNvbnRpbnVlOworCiAJCUFzc2VydChwZ19hdG9taWNfcmVhZF91MzIoJnAtPnJlZmNv dW50KSA+IDApOwogCiAJCXN0YXRzX2RhdGEgPSBkc2FfZ2V0X2FkZHJlc3MocGdTdGF0TG9j YWwuZHNhLCBwLT5ib2R5KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2 aXR5L3Bnc3RhdF9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdz dGF0X3JlbGF0aW9uLmMKaW5kZXggZDQwZDQzY2RiNGEuLjViMDZiMDRmYWFkIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYwpAQCAtMjEx LDcgKzIxMSw3IEBAIHBnc3RhdF9kcm9wX3JlbGF0aW9uKFJlbGF0aW9uIHJlbCkKICAqIC0t LS0tLS0tLQogICovCiB2b2lkCi1wZ3N0YXRfcmVwb3J0X3ZhY3V1bV9lcnJvcihPaWQgdGFi bGVvaWQpCitwZ3N0YXRfcmVwb3J0X3ZhY3V1bV9lcnJvcihPaWQgdGFibGVvaWQsIEV4dFZh Y1JlcG9ydFR5cGUgbV90eXBlKQogewogCVBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmOwog CVBnU3RhdFNoYXJlZF9SZWxhdGlvbiAqc2h0YWJlbnRyeTsKQEAgLTIyOCw2ICsyMjgsNyBA QCBwZ3N0YXRfcmVwb3J0X3ZhY3V1bV9lcnJvcihPaWQgdGFibGVvaWQpCiAJdGFiZW50cnkg PSAmc2h0YWJlbnRyeS0+c3RhdHM7CiAKIAl0YWJlbnRyeS0+dmFjdXVtX2V4dC5pbnRlcnJ1 cHRzKys7CisJdGFiZW50cnktPnZhY3V1bV9leHQudHlwZSA9IG1fdHlwZTsKIAlwZ3N0YXRf dW5sb2NrX2VudHJ5KGVudHJ5X3JlZik7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3Rh dGZ1bmNzLmMKaW5kZXggMWRmMjcxMjg2ZTYuLjkxNWMzZTU5YmZhIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwpAQCAtMjA3MCwxNyArMjA3MCwxOSBAQCBwZ19zdGF0 X2hhdmVfc3RhdHMoUEdfRlVOQ1RJT05fQVJHUykKIH0KIAogI2RlZmluZSBFWFRWQUNIRUFQ U1RBVF9DT0xVTU5TCTI3CisjZGVmaW5lIEVYVFZBQ0lEWFNUQVRfQ09MVU1OUwkxOQorI2Rl ZmluZSBFWFRWQUNTVEFUX0NPTFVNTlMgTWF4KEVYVFZBQ0hFQVBTVEFUX0NPTFVNTlMsIEVY VFZBQ0lEWFNUQVRfQ09MVU1OUykKIAogc3RhdGljIHZvaWQKIHR1cGxlc3RvcmVfcHV0X2Zv cl9yZWxhdGlvbihPaWQgcmVsaWQsIFJldHVyblNldEluZm8gKnJzaW5mbywKIAkJCQkJCQlQ Z1N0YXRfU3RhdFRhYkVudHJ5ICp0YWJlbnRyeSkKIHsKLQlEYXR1bQkJdmFsdWVzW0VYVFZB Q0hFQVBTVEFUX0NPTFVNTlNdOwotCWJvb2wJCW51bGxzW0VYVFZBQ0hFQVBTVEFUX0NPTFVN TlNdOworCURhdHVtCQl2YWx1ZXNbRVhUVkFDU1RBVF9DT0xVTU5TXTsKKwlib29sCQludWxs c1tFWFRWQUNTVEFUX0NPTFVNTlNdOwogCWNoYXIJCWJ1ZlsyNTZdOwogCWludAkJCWkgPSAw OwogCi0JbWVtc2V0KG51bGxzLCAwLCBFWFRWQUNIRUFQU1RBVF9DT0xVTU5TICogc2l6ZW9m KGJvb2wpKTsKKwltZW1zZXQobnVsbHMsIDAsIEVYVFZBQ1NUQVRfQ09MVU1OUyAqIHNpemVv Zihib29sKSk7CiAKIAl2YWx1ZXNbaSsrXSA9IE9iamVjdElkR2V0RGF0dW0ocmVsaWQpOwog CkBAIC0yMDkzLDE2ICsyMDk1LDI1IEBAIHR1cGxlc3RvcmVfcHV0X2Zvcl9yZWxhdGlvbihP aWQgcmVsaWQsIFJldHVyblNldEluZm8gKnJzaW5mbywKIAkJCQkJCQkJCXRhYmVudHJ5LT52 YWN1dW1fZXh0LmJsa3NfaGl0KTsKIAl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0odGFi ZW50cnktPnZhY3V1bV9leHQuYmxrc19oaXQpOwogCi0JdmFsdWVzW2krK10gPSBJbnQ2NEdl dERhdHVtKHRhYmVudHJ5LT52YWN1dW1fZXh0LnBhZ2VzX3NjYW5uZWQpOwotCXZhbHVlc1tp KytdID0gSW50NjRHZXREYXR1bSh0YWJlbnRyeS0+dmFjdXVtX2V4dC5wYWdlc19yZW1vdmVk KTsKLQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0odGFiZW50cnktPnZhY3V1bV9leHQu cGFnZXNfZnJvemVuKTsKLQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0odGFiZW50cnkt PnZhY3V1bV9leHQucGFnZXNfYWxsX3Zpc2libGUpOwotCXZhbHVlc1tpKytdID0gSW50NjRH ZXREYXR1bSh0YWJlbnRyeS0+dmFjdXVtX2V4dC50dXBsZXNfZGVsZXRlZCk7Ci0JdmFsdWVz W2krK10gPSBJbnQ2NEdldERhdHVtKHRhYmVudHJ5LT52YWN1dW1fZXh0LnR1cGxlc19mcm96 ZW4pOwotCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bSh0YWJlbnRyeS0+dmFjdXVtX2V4 dC5kZWFkX3R1cGxlcyk7Ci0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKHRhYmVudHJ5 LT52YWN1dW1fZXh0LmluZGV4X3ZhY3V1bV9jb3VudCk7Ci0JdmFsdWVzW2krK10gPSBJbnQ2 NEdldERhdHVtKHRhYmVudHJ5LT5yZXZfYWxsX2Zyb3plbl9wYWdlcyk7Ci0JdmFsdWVzW2kr K10gPSBJbnQ2NEdldERhdHVtKHRhYmVudHJ5LT5yZXZfYWxsX3Zpc2libGVfcGFnZXMpOwor CWlmICh0YWJlbnRyeS0+dmFjdXVtX2V4dC50eXBlID09IFBHU1RBVF9FWFRWQUNfSEVBUCkK Kwl7CisJCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bSh0YWJlbnRyeS0+dmFjdXVtX2V4 dC5oZWFwLnBhZ2VzX3NjYW5uZWQpOworCQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0o dGFiZW50cnktPnZhY3V1bV9leHQuaGVhcC5wYWdlc19yZW1vdmVkKTsKKwkJdmFsdWVzW2kr K10gPSBJbnQ2NEdldERhdHVtKHRhYmVudHJ5LT52YWN1dW1fZXh0LmhlYXAucGFnZXNfZnJv emVuKTsKKwkJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKHRhYmVudHJ5LT52YWN1dW1f ZXh0LmhlYXAucGFnZXNfYWxsX3Zpc2libGUpOworCQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0 RGF0dW0odGFiZW50cnktPnZhY3V1bV9leHQuaGVhcC50dXBsZXNfZGVsZXRlZCk7CisJCXZh bHVlc1tpKytdID0gSW50NjRHZXREYXR1bSh0YWJlbnRyeS0+dmFjdXVtX2V4dC5oZWFwLnR1 cGxlc19mcm96ZW4pOworCQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0odGFiZW50cnkt PnZhY3V1bV9leHQuaGVhcC5kZWFkX3R1cGxlcyk7CisJCXZhbHVlc1tpKytdID0gSW50NjRH ZXREYXR1bSh0YWJlbnRyeS0+dmFjdXVtX2V4dC5oZWFwLmluZGV4X3ZhY3V1bV9jb3VudCk7 CisJCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bSh0YWJlbnRyeS0+cmV2X2FsbF9mcm96 ZW5fcGFnZXMpOworCQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0odGFiZW50cnktPnJl dl9hbGxfdmlzaWJsZV9wYWdlcyk7CisKKwl9CisJZWxzZSBpZiAodGFiZW50cnktPnZhY3V1 bV9leHQudHlwZSA9PSBQR1NUQVRfRVhUVkFDX0lOREVYKQorCXsKKwkJdmFsdWVzW2krK10g PSBJbnQ2NEdldERhdHVtKHRhYmVudHJ5LT52YWN1dW1fZXh0LmluZGV4LnBhZ2VzX2RlbGV0 ZWQpOworCQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0odGFiZW50cnktPnZhY3V1bV9l eHQuaW5kZXgudHVwbGVzX2RlbGV0ZWQpOworCX0KIAogCXZhbHVlc1tpKytdID0gSW50NjRH ZXREYXR1bSh0YWJlbnRyeS0+dmFjdXVtX2V4dC53YWxfcmVjb3Jkcyk7CiAJdmFsdWVzW2kr K10gPSBJbnQ2NEdldERhdHVtKHRhYmVudHJ5LT52YWN1dW1fZXh0LndhbF9mcGkpOwpAQCAt MjEzMCwxMCArMjE0MSw5IEBAIHR1cGxlc3RvcmVfcHV0X2Zvcl9yZWxhdGlvbihPaWQgcmVs aWQsIFJldHVyblNldEluZm8gKnJzaW5mbywKICAqIEdldCB0aGUgdmFjdXVtIHN0YXRpc3Rp Y3MgZm9yIHRoZSBoZWFwIHRhYmxlcyBvciBpbmRleGVzLgogICovCiBzdGF0aWMgdm9pZAot cGdfc3RhdHNfdmFjdXVtKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBpbnQgbmNvbHVtbnMp CitwZ19zdGF0c192YWN1dW0oRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIEV4dFZhY1JlcG9y dFR5cGUgdHlwZSwgaW50IG5jb2x1bW5zKQogewogCVJldHVyblNldEluZm8JCSAgICpyc2lu Zm8gPSAoUmV0dXJuU2V0SW5mbyAqKSBmY2luZm8tPnJlc3VsdGluZm87Ci0JT2lkCQkJCQkJ cmVsaWQgPSBQR19HRVRBUkdfT0lEKDApOwogCVBnU3RhdF9TdGF0VGFiRW50cnkgICAgKnRh YmVudHJ5OwogCiAJSW5pdE1hdGVyaWFsaXplZFNSRihmY2luZm8sIDApOwpAQCAtMjE0Niwz NSArMjE1NiwzNyBAQCBwZ19zdGF0c192YWN1dW0oRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8s IGludCBuY29sdW1ucykKIAlBc3NlcnQocnNpbmZvLT5zZXREZXNjLT5uYXR0cyA9PSBuY29s dW1ucyk7CiAJQXNzZXJ0KHJzaW5mby0+c2V0UmVzdWx0ICE9IE5VTEwpOwogCi0JLyogTG9h ZCB0YWJsZSBzdGF0aXN0aWNzIGZvciBzcGVjaWZpZWQgZGF0YWJhc2UuICovCi0JaWYgKE9p ZElzVmFsaWQocmVsaWQpKQorCWlmICh0eXBlID09IFBHU1RBVF9FWFRWQUNfSU5ERVggfHwg dHlwZSA9PSBQR1NUQVRfRVhUVkFDX0hFQVApCiAJewotCQl0YWJlbnRyeSA9IHBnc3RhdF9m ZXRjaF9zdGF0X3RhYmVudHJ5KHJlbGlkKTsKLQkJaWYgKHRhYmVudHJ5ID09IE5VTEwpCi0J CQkvKiBUYWJsZSBkb24ndCBleGlzdHMgb3IgaXNuJ3QgYW4gaGVhcCByZWxhdGlvbi4gKi8K LQkJCXJldHVybjsKKwkJT2lkCQkJCQlyZWxpZCA9IFBHX0dFVEFSR19PSUQoMCk7CiAKLQkJ dHVwbGVzdG9yZV9wdXRfZm9yX3JlbGF0aW9uKHJlbGlkLCByc2luZm8sIHRhYmVudHJ5KTsK LQl9Ci0JZWxzZQotCXsKLQkJU25hcHNob3RJdGVyYXRvcgkJaGFzaGl0ZXI7Ci0JCVBnU3Rh dF9TbmFwc2hvdEVudHJ5ICAgKmVudHJ5OwotCi0JCS8qIEl0ZXJhdGUgdGhlIHNuYXBzaG90 ICovCi0JCUluaXRTbmFwc2hvdEl0ZXJhdG9yKHBnU3RhdExvY2FsLnNuYXBzaG90LnN0YXRz LCAmaGFzaGl0ZXIpOworCQkvKiBMb2FkIHRhYmxlIHN0YXRpc3RpY3MgZm9yIHNwZWNpZmll ZCByZWxhdGlvbi4gKi8KKwkJaWYgKE9pZElzVmFsaWQocmVsaWQpKQorCQl7CisJCQl0YWJl bnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X3RhYmVudHJ5KHJlbGlkKTsKKwkJCWlmICh0YWJl bnRyeSA9PSBOVUxMIHx8IHRhYmVudHJ5LT52YWN1dW1fZXh0LnR5cGUgIT0gdHlwZSkKKwkJ CQkvKiBUYWJsZSBkb24ndCBleGlzdHMgb3IgaXNuJ3QgYW4gaGVhcCByZWxhdGlvbi4gKi8K KwkJCQlyZXR1cm47CiAKLQkJd2hpbGUgKChlbnRyeSA9IFNjYW5TdGF0U25hcHNob3QocGdT dGF0TG9jYWwuc25hcHNob3Quc3RhdHMsICZoYXNoaXRlcikpICE9IE5VTEwpCisJCQl0dXBs ZXN0b3JlX3B1dF9mb3JfcmVsYXRpb24ocmVsaWQsIHJzaW5mbywgdGFiZW50cnkpOworCQl9 CisJCWVsc2UKIAkJewotCQkJT2lkCXJlbG9pZDsKKwkJCVNuYXBzaG90SXRlcmF0b3IJCWhh c2hpdGVyOworCQkJUGdTdGF0X1NuYXBzaG90RW50cnkgICAqZW50cnk7CisKKwkJCS8qIEl0 ZXJhdGUgdGhlIHNuYXBzaG90ICovCisJCQlJbml0U25hcHNob3RJdGVyYXRvcihwZ1N0YXRM b2NhbC5zbmFwc2hvdC5zdGF0cywgJmhhc2hpdGVyKTsKIAotCQkJQ0hFQ0tfRk9SX0lOVEVS UlVQVFMoKTsKKwkJCXdoaWxlICgoZW50cnkgPSBTY2FuU3RhdFNuYXBzaG90KHBnU3RhdExv Y2FsLnNuYXBzaG90LnN0YXRzLCAmaGFzaGl0ZXIpKSAhPSBOVUxMKQorCQkJeworCQkJCUNI RUNLX0ZPUl9JTlRFUlJVUFRTKCk7CiAKLQkJCXRhYmVudHJ5ID0gKFBnU3RhdF9TdGF0VGFi RW50cnkgKikgZW50cnktPmRhdGE7Ci0JCQlyZWxvaWQgPSBlbnRyeS0+a2V5Lm9iam9pZDsK KwkJCQl0YWJlbnRyeSA9IChQZ1N0YXRfU3RhdFRhYkVudHJ5ICopIGVudHJ5LT5kYXRhOwog Ci0JCQlpZiAodGFiZW50cnkgIT0gTlVMTCkKLQkJCQl0dXBsZXN0b3JlX3B1dF9mb3JfcmVs YXRpb24ocmVsb2lkLCByc2luZm8sIHRhYmVudHJ5KTsKKwkJCQlpZiAodGFiZW50cnkgIT0g TlVMTCAmJiB0YWJlbnRyeS0+dmFjdXVtX2V4dC50eXBlID09IHR5cGUpCisJCQkJCXR1cGxl c3RvcmVfcHV0X2Zvcl9yZWxhdGlvbihyZWxpZCwgcnNpbmZvLCB0YWJlbnRyeSk7CisJCQl9 CiAJCX0KIAl9CiB9CkBAIC0yMTg1LDcgKzIxOTcsMTggQEAgcGdfc3RhdHNfdmFjdXVtKEZ1 bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBpbnQgbmNvbHVtbnMpCiBEYXR1bQogcGdfc3RhdF92 YWN1dW1fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiB7Ci0JcGdfc3RhdHNfdmFjdXVtKGZj aW5mbywgRVhUVkFDSEVBUFNUQVRfQ09MVU1OUyk7CisJcGdfc3RhdHNfdmFjdXVtKGZjaW5m bywgUEdTVEFUX0VYVFZBQ19IRUFQLCBFWFRWQUNIRUFQU1RBVF9DT0xVTU5TKTsKIAogCVBH X1JFVFVSTl9WT0lEKCk7CiB9CisKKy8qCisgKiBHZXQgdGhlIHZhY3V1bSBzdGF0aXN0aWNz IGZvciB0aGUgaW5kZXhlcy4KKyAqLworRGF0dW0KK3BnX3N0YXRfdmFjdXVtX2luZGV4ZXMo UEdfRlVOQ1RJT05fQVJHUykKK3sKKwlwZ19zdGF0c192YWN1dW0oZmNpbmZvLCBQR1NUQVRf RVhUVkFDX0lOREVYLCBFWFRWQUNJRFhTVEFUX0NPTFVNTlMpOworCisgCVBHX1JFVFVSTl9W T0lEKCk7CisgfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0CmluZGV4IDIwMjMyNzBmOTIzLi42MDRiNGY0NDkzMCAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3Byb2MuZGF0CkBAIC0xMjI2Myw0ICsxMjI2MywxMyBAQAogICBwcm9hcmdtb2Rl cyA9PiAne2ksbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxv LG8sbyxvLG99JywKICAgcHJvYXJnbmFtZXMgPT4gJ3tyZWxvaWQscmVsaWQsdG90YWxfYmxr c19yZWFkLHRvdGFsX2Jsa3NfaGl0LHRvdGFsX2Jsa3NfZGlydGllZCx0b3RhbF9ibGtzX3dy aXR0ZW4scmVsX2Jsa3NfcmVhZCxyZWxfYmxrc19oaXQscGFnZXNfc2Nhbm5lZCxwYWdlc19y ZW1vdmVkLHBhZ2VzX2Zyb3plbixwYWdlc19hbGxfdmlzaWJsZSx0dXBsZXNfZGVsZXRlZCx0 dXBsZXNfZnJvemVuLGRlYWRfdHVwbGVzLGluZGV4X3ZhY3V1bV9jb3VudCxyZXZfYWxsX2Zy b3plbl9wYWdlcyxyZXZfYWxsX3Zpc2libGVfcGFnZXMsd2FsX3JlY29yZHMsd2FsX2ZwaSx3 YWxfYnl0ZXMsYmxrX3JlYWRfdGltZSxibGtfd3JpdGVfdGltZSxkZWxheV90aW1lLHN5c3Rl bV90aW1lLHVzZXJfdGltZSx0b3RhbF90aW1lLGludGVycnVwdHN9JywKICAgcHJvc3JjID0+ ICdwZ19zdGF0X3ZhY3V1bV90YWJsZXMnIH0sCit7IG9pZCA9PiAnODAwMicsCisgIGRlc2Ny ID0+ICdwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIHJldHVybiBzdGF0cyB2YWx1ZXMnLAorICBw cm9uYW1lID0+ICdwZ19zdGF0X3ZhY3V1bV9pbmRleGVzJywgcHJvdm9sYXRpbGUgPT4gJ3Mn LCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLHByb2lzc3RyaWN0ID0+ICdmJywKKyAgcHJvcmV0 c2V0ID0+ICd0JywKKyAgcHJvYXJndHlwZXMgPT4gJ29pZCcsCisgIHByb2FsbGFyZ3R5cGVz ID0+ICd7b2lkLG9pZCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgs aW50OCxpbnQ4LG51bWVyaWMsZmxvYXQ4LGZsb2F0OCxmbG9hdDgsZmxvYXQ4LGZsb2F0OCxm bG9hdDgsaW50NH0nLAorICBwcm9hcmdtb2RlcyA9PiAne2ksbyxvLG8sbyxvLG8sbyxvLG8s byxvLG8sbyxvLG8sbyxvLG8sb30nLAorICBwcm9hcmduYW1lcyA9PiAne3JlbG9pZCxyZWxp ZCx0b3RhbF9ibGtzX3JlYWQsdG90YWxfYmxrc19oaXQsdG90YWxfYmxrc19kaXJ0aWVkLHRv dGFsX2Jsa3Nfd3JpdHRlbixyZWxfYmxrc19yZWFkLHJlbF9ibGtzX2hpdCxwYWdlc19kZWxl dGVkLHR1cGxlc19kZWxldGVkLHdhbF9yZWNvcmRzLHdhbF9mcGksd2FsX2J5dGVzLGJsa19y ZWFkX3RpbWUsYmxrX3dyaXRlX3RpbWUsZGVsYXlfdGltZSxzeXN0ZW1fdGltZSx1c2VyX3Rp bWUsdG90YWxfdGltZSxpbnRlcnJ1cHRzfScsCisgIHByb3NyYyA9PiAncGdfc3RhdF92YWN1 dW1faW5kZXhlcycgfQogXQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGdzdGF0LmggYi9z cmMvaW5jbHVkZS9wZ3N0YXQuaAppbmRleCA0NDkyYTA1NzJjNi4uNzYyYjUzYjg4ZWQgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Bnc3Rh dC5oCkBAIC0xNjcsMTEgKzE2NywyMCBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfQmFja2Vu ZFN1YkVudHJ5CiAJUGdTdGF0X0NvdW50ZXIgc3luY19lcnJvcl9jb3VudDsKIH0gUGdTdGF0 X0JhY2tlbmRTdWJFbnRyeTsKIAorCisvKiBUeXBlIG9mIEV4dFZhY1JlcG9ydCAqLwordHlw ZWRlZiBlbnVtIEV4dFZhY1JlcG9ydFR5cGUKK3sKKwlQR1NUQVRfRVhUVkFDX0lOVkFMSUQg PSAwLAorCVBHU1RBVF9FWFRWQUNfSEVBUCA9IDEsCisJUEdTVEFUX0VYVFZBQ19JTkRFWCA9 IDIKK30gRXh0VmFjUmVwb3J0VHlwZTsKKwogLyogLS0tLS0tLS0tLQogICoKICAqIEV4dFZh Y1JlcG9ydAogICoKLSAqIEFkZGl0aW9uYWwgc3RhdGlzdGljcyBvZiB2YWN1dW0gcHJvY2Vz c2luZyBvdmVyIGEgaGVhcCByZWxhdGlvbi4KKyAqIEFkZGl0aW9uYWwgc3RhdGlzdGljcyBv ZiB2YWN1dW0gcHJvY2Vzc2luZyBvdmVyIGEgcmVsYXRpb24uCiAgKiBwYWdlc19yZW1vdmVk IGlzIHRoZSBhbW91bnQgYnkgd2hpY2ggdGhlIHBoeXNpY2FsbHkgc2hyYW5rLAogICogaWYg YW55IChpZSB0aGUgY2hhbmdlIGluIGl0cyB0b3RhbCBzaXplIG9uIGRpc2spCiAgKiBwYWdl c19kZWxldGVkIHJlZmVyIHRvIGZyZWUgc3BhY2Ugd2l0aGluIHRoZSBpbmRleCBmaWxlCkBA IC0yMDMsMTQgKzIxMiwzOCBAQCB0eXBlZGVmIHN0cnVjdCBFeHRWYWNSZXBvcnQKIAkvKiBJ bnRlcnJ1cHRpb25zIG9uIGFueSBlcnJvcnMuICovCiAJaW50MzIJCWludGVycnVwdHM7CiAK LQlpbnQ2NAkJcGFnZXNfc2Nhbm5lZDsJCS8qIG51bWJlciBvZiBwYWdlcyB3ZSBleGFtaW5l ZCAqLwotCWludDY0CQlwYWdlc19yZW1vdmVkOwkJLyogbnVtYmVyIG9mIHBhZ2VzIHJlbW92 ZWQgYnkgdmFjdXVtICovCi0JaW50NjQJCXBhZ2VzX2Zyb3plbjsJCS8qIG51bWJlciBvZiBw YWdlcyBtYXJrZWQgaW4gVk0gYXMgZnJvemVuICovCi0JaW50NjQJCXBhZ2VzX2FsbF92aXNp YmxlOwkvKiBudW1iZXIgb2YgcGFnZXMgbWFya2VkIGluIFZNIGFzIGFsbC12aXNpYmxlICov Ci0JaW50NjQJCXR1cGxlc19kZWxldGVkOwkJLyogdHVwbGVzIGRlbGV0ZWQgYnkgdmFjdXVt ICovCi0JaW50NjQJCXR1cGxlc19mcm96ZW47CQkvKiB0dXBsZXMgZnJvemVuIHVwIGJ5IHZh Y3V1bSAqLwotCWludDY0CQlkZWFkX3R1cGxlczsJCS8qIG51bWJlciBvZiBkZWxldGVkIHR1 cGxlcyB3aGljaCB2YWN1dW0gY2Fubm90IGNsZWFuIHVwIGJ5IHZhY3V1bSBvcGVyYXRpb24g Ki8KLQlpbnQ2NAkJaW5kZXhfdmFjdXVtX2NvdW50OwkvKiBudW1iZXIgb2YgaW5kZXggdmFj dXVtaW5ncyAqLworCUV4dFZhY1JlcG9ydFR5cGUgdHlwZTsJCS8qIGhlYXAsIGluZGV4LCBl dGMuICovCisKKwkvKiAtLS0tLS0tLS0tCisJICoKKwkgKiBUaGVyZSBhcmUgc2VwYXJhdGUg bWV0cmljcyBvZiBzdGF0aXN0aWMgZm9yIHRhYmxlcyBhbmQgaW5kZXhlcywKKwkgKiB3aGlj aCBjb2xsZWN0IGR1cmluZyB2YWN1dW0uCisJICogVGhlIHVuaW9uIG9wZXJhdG9yIGFsbG93 cyB0byBjb21iaW5lIHRoZXNlIHN0YXRpc3RpY3MKKwkgKiBzbyB0aGF0IGVhY2ggbWV0cmlj IGlzIGFzc2lnbmVkIHRvIGEgc3BlY2lmaWMgY2xhc3Mgb2YgY29sbGVjdGVkIHN0YXRpc3Rp Y3MuCisJICogU3VjaCBhIGNvbWJpbmVkIHN0cnVjdHVyZSB3YXMgY2FsbGVkIHBlcl90eXBl X3N0YXRzLgorCSAqIFRoZSBuYW1lIG9mIHRoZSBzdHJ1Y3R1cmUgaXRzZWxmIGlzIG5vdCB1 c2VkIGFueXdoZXJlLAorCSAqIGl0IGV4aXN0cyBvbmx5IGZvciB1bmRlcnN0YW5kaW5nIHRo ZSBjb2RlLgorCSAqIC0tLS0tLS0tLS0KKwkqLworCXVuaW9uCisJeworCQlzdHJ1Y3QKKwkJ eworCQkJaW50NjQJCXBhZ2VzX3NjYW5uZWQ7CQkvKiBudW1iZXIgb2YgcGFnZXMgd2UgZXhh bWluZWQgKi8KKwkJCWludDY0CQlwYWdlc19yZW1vdmVkOwkJLyogbnVtYmVyIG9mIHBhZ2Vz IHJlbW92ZWQgYnkgdmFjdXVtICovCisJCQlpbnQ2NAkJcGFnZXNfZnJvemVuOwkJLyogbnVt YmVyIG9mIHBhZ2VzIG1hcmtlZCBpbiBWTSBhcyBmcm96ZW4gKi8KKwkJCWludDY0CQlwYWdl c19hbGxfdmlzaWJsZTsJLyogbnVtYmVyIG9mIHBhZ2VzIG1hcmtlZCBpbiBWTSBhcyBhbGwt dmlzaWJsZSAqLworCQkJaW50NjQJCXR1cGxlc19kZWxldGVkOwkJLyogdHVwbGVzIGRlbGV0 ZWQgYnkgdmFjdXVtICovCisJCQlpbnQ2NAkJdHVwbGVzX2Zyb3plbjsJCS8qIHR1cGxlcyBm cm96ZW4gdXAgYnkgdmFjdXVtICovCisJCQlpbnQ2NAkJZGVhZF90dXBsZXM7CQkvKiBudW1i ZXIgb2YgZGVsZXRlZCB0dXBsZXMgd2hpY2ggdmFjdXVtIGNhbm5vdCBjbGVhbiB1cCBieSB2 YWN1dW0gb3BlcmF0aW9uICovCisJCQlpbnQ2NAkJaW5kZXhfdmFjdXVtX2NvdW50OwkvKiBu dW1iZXIgb2YgaW5kZXggdmFjdXVtaW5ncyAqLworCQl9CQkJaGVhcDsKKwkJc3RydWN0CisJ CXsKKwkJCWludDY0CQlwYWdlc19kZWxldGVkOwkJLyogbnVtYmVyIG9mIHBhZ2VzIGRlbGV0 ZWQgYnkgdmFjdXVtICovCisJCQlpbnQ2NAkJdHVwbGVzX2RlbGV0ZWQ7CQkvKiB0dXBsZXMg ZGVsZXRlZCBieSB2YWN1dW0gKi8KKwkJfQkJCWluZGV4OworCX0gLyogcGVyX3R5cGVfc3Rh dHMgKi87CiB9IEV4dFZhY1JlcG9ydDsKIAogLyogLS0tLS0tLS0tLQpAQCAtNjg5LDcgKzcy Miw3IEBAIGV4dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfdmFjdXVtKE9pZCB0YWJsZW9pZCwg Ym9vbCBzaGFyZWQsCiBleHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0X2FuYWx5emUoUmVsYXRp b24gcmVsLAogCQkJCQkJCQkgIFBnU3RhdF9Db3VudGVyIGxpdmV0dXBsZXMsIFBnU3RhdF9D b3VudGVyIGRlYWR0dXBsZXMsCiAJCQkJCQkJCSAgYm9vbCByZXNldGNvdW50ZXIpOwotZXh0 ZXJuIHZvaWQgcGdzdGF0X3JlcG9ydF92YWN1dW1fZXJyb3IoT2lkIHRhYmxlb2lkKTsKK2V4 dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9yKE9pZCB0YWJsZW9pZCwgRXh0 VmFjUmVwb3J0VHlwZSBtX3R5cGUpOwogCiAvKgogICogSWYgc3RhdHMgYXJlIGVuYWJsZWQs IGJ1dCBwZW5kaW5nIGRhdGEgaGFzbid0IGJlZW4gcHJlcGFyZWQgeWV0LCBjYWxsCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvdmFjdXVtLWV4dGVuZGluZy1p bi1yZXBldGFibGUtcmVhZC5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvdmFj dXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5vdXQKaW5kZXggN2NkYjc5YzBlYzQu LjkzZmUxNWMwMWY5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQv dmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5vdXQKKysrIGIvc3JjL3Rlc3Qv aXNvbGF0aW9uL2V4cGVjdGVkL3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQu b3V0CkBAIC05LDEwICs5LDkgQEAgc3RlcCBzMl9wcmludF92YWN1dW1fc3RhdHNfdGFibGU6 CiAgICAgRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKICAgICBX SEVSRSB2dC5yZWxuYW1lID0gJ3Rlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uJyBBTkQgdnQu cmVsaWQgPSBjLm9pZDsKIAotcmVsbmFtZSAgICAgICAgICAgICAgICAgICB8dHVwbGVzX2Rl bGV0ZWR8ZGVhZF90dXBsZXN8dHVwbGVzX2Zyb3plbgotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotdGVzdF92 YWN1dW1fc3RhdF9pc29sYXRpb258ICAgICAgICAgICAgIDB8ICAgICAgICAgIDB8ICAgICAg ICAgICAgMAotKDEgcm93KQorcmVsbmFtZXx0dXBsZXNfZGVsZXRlZHxkZWFkX3R1cGxlc3x0 dXBsZXNfZnJvemVuCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0KKygwIHJvd3MpCiAKIHN0ZXAgczFfYmVnaW5fcmVwZWF0YWJsZV9yZWFkOiAK ICAgQkVHSU4gdHJhbnNhY3Rpb24gSVNPTEFUSU9OIExFVkVMIFJFUEVBVEFCTEUgUkVBRDsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy92YWN1dW0tZXh0ZW5kaW5n LWluLXJlcGV0YWJsZS1yZWFkLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3MvdmFj dXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5zcGVjCmluZGV4IDdkMzFkZGJlY2U5 Li5iY2EzZTg1MTZiMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Zh Y3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQuc3BlYworKysgYi9zcmMvdGVzdC9p c29sYXRpb24vc3BlY3MvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5zcGVj CkBAIC00OCw0ICs0OCw0IEBAIHBlcm11dGF0aW9uCiAgICAgczFfY29tbWl0CiAgICAgczJf Y2hlY2twb2ludAogICAgIHMyX3ZhY3V1bQotICAgIHMyX3ByaW50X3ZhY3V1bV9zdGF0c190 YWJsZQorICAgIHMyX3ByaW50X3ZhY3V1bV9zdGF0c190YWJsZQpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3By X3Nhbml0eS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0 CmluZGV4IDlhZTc0M2VhZTBjLi41ZDcyYjk3MGIwMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CkBAIC0zMiwxMCArMzIsMTEgQEAgV0hFUkUgcDEu cHJvbGFuZyA9IDAgT1IgcDEucHJvcmV0dHlwZSA9IDAgT1IKICAgICAgICBwcm9raW5kIE5P VCBJTiAoJ2YnLCAnYScsICd3JywgJ3AnKSBPUgogICAgICAgIHByb3ZvbGF0aWxlIE5PVCBJ TiAoJ2knLCAncycsICd2JykgT1IKICAgICAgICBwcm9wYXJhbGxlbCBOT1QgSU4gKCdzJywg J3InLCAndScpOwotIG9pZCAgfCAgICAgICAgcHJvbmFtZSAgICAgICAgCi0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBvaWQgIHwgICAgICAgIHByb25hbWUgICAgICAgICAK Ky0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICA4MDAxIHwgcGdfc3RhdF92YWN1 dW1fdGFibGVzCi0oMSByb3cpCisgODAwMiB8IHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMKKygy IHJvd3MpCiAKIC0tIHByb3NyYyBzaG91bGQgbmV2ZXIgYmUgbnVsbDsgaXQgY2FuIGJlIGVt cHR5IG9ubHkgaWYgcHJvc3FsYm9keSBpc24ndCBudWxsCiBTRUxFQ1QgcDEub2lkLCBwMS5w cm9uYW1lCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4IGNjMGI1YmRl MGExLi4yNjVlYjU5N2Q2OSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQK QEAgLTIyMjksNiArMjIyOSwzMiBAQCBwZ19zdGF0X3VzZXJfdGFibGVzfCBTRUxFQ1QgcmVs aWQsCiAgICAgYXV0b2FuYWx5emVfY291bnQKICAgIEZST00gcGdfc3RhdF9hbGxfdGFibGVz CiAgIFdIRVJFICgoc2NoZW1hbmFtZSA8PiBBTEwgKEFSUkFZWydwZ19jYXRhbG9nJzo6bmFt ZSwgJ2luZm9ybWF0aW9uX3NjaGVtYSc6Om5hbWVdKSkgQU5EIChzY2hlbWFuYW1lICF+ICde cGdfdG9hc3QnOjp0ZXh0KSk7CitwZ19zdGF0X3ZhY3V1bV9pbmRleGVzfCBTRUxFQ1QgcmVs Lm9pZCBBUyByZWxpZCwKKyAgICBucy5uc3BuYW1lIEFTIHNjaGVtYSwKKyAgICByZWwucmVs bmFtZSwKKyAgICBzdGF0cy50b3RhbF9ibGtzX3JlYWQsCisgICAgc3RhdHMudG90YWxfYmxr c19oaXQsCisgICAgc3RhdHMudG90YWxfYmxrc19kaXJ0aWVkLAorICAgIHN0YXRzLnRvdGFs X2Jsa3Nfd3JpdHRlbiwKKyAgICBzdGF0cy5yZWxfYmxrc19yZWFkLAorICAgIHN0YXRzLnJl bF9ibGtzX2hpdCwKKyAgICBzdGF0cy5wYWdlc19kZWxldGVkLAorICAgIHN0YXRzLnR1cGxl c19kZWxldGVkLAorICAgIHN0YXRzLndhbF9yZWNvcmRzLAorICAgIHN0YXRzLndhbF9mcGks CisgICAgc3RhdHMud2FsX2J5dGVzLAorICAgIHN0YXRzLmJsa19yZWFkX3RpbWUsCisgICAg c3RhdHMuYmxrX3dyaXRlX3RpbWUsCisgICAgc3RhdHMuZGVsYXlfdGltZSwKKyAgICBzdGF0 cy5zeXN0ZW1fdGltZSwKKyAgICBzdGF0cy51c2VyX3RpbWUsCisgICAgc3RhdHMudG90YWxf dGltZSwKKyAgICBzdGF0cy5pbnRlcnJ1cHRzCisgICBGUk9NIHBnX2RhdGFiYXNlIGRiLAor ICAgIHBnX2NsYXNzIHJlbCwKKyAgICBwZ19uYW1lc3BhY2UgbnMsCisgICAgTEFURVJBTCBw Z19zdGF0X3ZhY3V1bV9pbmRleGVzKGRiLm9pZCwgcmVsLm9pZCkgc3RhdHMocmVsaWQsIHRv dGFsX2Jsa3NfcmVhZCwgdG90YWxfYmxrc19oaXQsIHRvdGFsX2Jsa3NfZGlydGllZCwgdG90 YWxfYmxrc193cml0dGVuLCByZWxfYmxrc19yZWFkLCByZWxfYmxrc19oaXQsIHBhZ2VzX2Rl bGV0ZWQsIHR1cGxlc19kZWxldGVkLCB3YWxfcmVjb3Jkcywgd2FsX2ZwaSwgd2FsX2J5dGVz LCBibGtfcmVhZF90aW1lLCBibGtfd3JpdGVfdGltZSwgZGVsYXlfdGltZSwgc3lzdGVtX3Rp bWUsIHVzZXJfdGltZSwgdG90YWxfdGltZSwgaW50ZXJydXB0cykKKyAgV0hFUkUgKChkYi5k YXRuYW1lID0gY3VycmVudF9kYXRhYmFzZSgpKSBBTkQgKHJlbC5vaWQgPSBzdGF0cy5yZWxp ZCkgQU5EIChucy5vaWQgPSByZWwucmVsbmFtZXNwYWNlKSk7CiBwZ19zdGF0X3ZhY3V1bV90 YWJsZXN8IFNFTEVDVCByZWwub2lkIEFTIHJlbGlkLAogICAgIG5zLm5zcG5hbWUgQVMgc2No ZW1hLAogICAgIHJlbC5yZWxuYW1lLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC92YWN1dW1faW5kZXhfc3RhdGlzdGljcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3ZhY3V1bV9pbmRleF9zdGF0aXN0aWNzLm91dApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTBkYThkMjVmMWEKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV9pbmRleF9zdGF0aXN0aWNzLm91 dApAQCAtMCwwICsxLDE1OCBAQAorLS0KKy0tIFRlc3QgY3VtdWxhdGl2ZSB2YWN1dW0gc3Rh dHMgc3lzdGVtCistLQorLS0gQ2hlY2sgdGhlIHdhbGwgc3RhdGlzdGljcyBjb2xsZWN0ZWQg ZHVyaW5nIHZhY3V1bSBvcGVyYXRpb246CistLSBudW1iZXIgb2YgZnJvemVuIGFuZCB2aXNp YmxlIHBhZ2VzIHNldCBieSB2YWN1dW07CistLSBudW1iZXIgb2YgZnJvemVuIGFuZCB2aXNp YmxlIHBhZ2VzIHJlbW92ZWQgYnkgYmFja2VuZC4KKy0tIFN0YXRpc3RpYyB3YWxfZnBpIGlz IG5vdCBkaXNwbGF5ZWQgaW4gdGhpcyB0ZXN0IGJlY2F1c2UgaXRzIGJlaGF2aW9yIGlzIHVu c3RhYmxlLgorLS0KKy0tIGNvbmRpdGlvIHNpbmUgcXVhIG5vbgorU0hPVyB0cmFja19jb3Vu dHM7ICAtLSBtdXN0IGJlIG9uCisgdHJhY2tfY291bnRzIAorLS0tLS0tLS0tLS0tLS0KKyBv bgorKDEgcm93KQorCistLSBub3QgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgd2Ugd2FudCB0 byB0ZXN0IGl0Li4uCitTRVQgdHJhY2tfZnVuY3Rpb25zIFRPICdhbGwnOworLS0gZW5zdXJl IHBlbmRpbmcgc3RhdHMgYXJlIGZsdXNoZWQKK1NFTEVDVCBwZ19zdGF0X2ZvcmNlX25leHRf Zmx1c2goKTsKKyBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2ggCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIAorKDEgcm93KQorCitcc2V0IHNhbXBsZV9zaXplIDEwMDAwCitTRVQg dmFjdXVtX2ZyZWV6ZV9taW5fYWdlID0gMDsKK1NFVCB2YWN1dW1fZnJlZXplX3RhYmxlX2Fn ZSA9IDA7CistLVNFVCBzdGF0c19mZXRjaF9jb25zaXN0ZW5jeSA9IHNuYXBzaG90OworQ1JF QVRFIFRBQkxFIHZlc3RhdCAoeCBpbnQgcHJpbWFyeSBrZXkpIFdJVEggKGF1dG92YWN1dW1f ZW5hYmxlZCA9IG9mZiwgZmlsbGZhY3RvciA9IDEwKTsKK0lOU0VSVCBJTlRPIHZlc3RhdCBT RUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpzYW1wbGVfc2l6ZSkgYXMgeDsKK0FO QUxZWkUgdmVzdGF0OworU0VMRUNUIG9pZCBBUyBpb2lkIGZyb20gcGdfY2xhc3Mgd2hlcmUg cmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgXGdzZXQKK0RFTEVURSBGUk9NIHZlc3RhdCBXSEVS RSB4ICUgMiA9IDA7CistLSBCZWZvcmUgdGhlIGZpcnN0IHZhY3V1bSBleGVjdXRpb24gZXh0 ZW5kZWQgc3RhdHMgdmlldyBpcyBlbXB0eS4KK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2Vz LHBhZ2VzX2RlbGV0ZWQsdHVwbGVzX2RlbGV0ZWQKK0ZST00gcGdfc3RhdF92YWN1dW1faW5k ZXhlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXRfcGtleScg QU5EIHZ0LnJlbGlkID0gYy5vaWQ7CisgcmVsbmFtZSB8IHJlbHBhZ2VzIHwgcGFnZXNfZGVs ZXRlZCB8IHR1cGxlc19kZWxldGVkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK1NFTEVDVCByZWxwYWdlcyBB UyBpcnAKK0ZST00gcGdfY2xhc3MgYworV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleScg XGdzZXQKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCwgSU5E RVhfQ0xFQU5VUCBPTikgdmVzdGF0OworLS0gaXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRo ZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKy0tIFRoZSB0YWJsZSBhbmQgaW5kZXgg ZXh0ZW5kZWQgdmFjdXVtIHN0YXRpc3RpY3Mgc2hvdWxkIHNob3cgdXMgdGhhdAorLS0gdmFj dXVtIGZyb3plZCBwYWdlcyBhbmQgY2xlYW4gdXAgcGFnZXMsIGJ1dCBwYWdlc19yZW1vdmVk IHN0YXllZCB0aGUgc2FtZQorLS0gYmVjYXVzZSBvZiBub3QgZnVsbCB0YWJsZSBoYXZlIGNs ZWFuZWQgdXAKK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzLTppcnAgPSAwIEFTIHJlbHBh Z2VzLHBhZ2VzX2RlbGV0ZWQgPSAwIEFTIHBhZ2VzX2RlbGV0ZWQsdHVwbGVzX2RlbGV0ZWQg PiAwIEFTIHR1cGxlc19kZWxldGVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgdnQs IHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0X3BrZXknIEFORCB2dC5y ZWxpZCA9IGMub2lkOworICAgcmVsbmFtZSAgIHwgcmVscGFnZXMgfCBwYWdlc19kZWxldGVk IHwgdHVwbGVzX2RlbGV0ZWQgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyB2ZXN0YXRfcGtleSB8IHQgICAgICAgIHwgdCAg ICAgICAgICAgICB8IHQKKygxIHJvdykKKworU0VMRUNUIHZ0LnJlbG5hbWUscmVscGFnZXMg QVMgaXJwLHBhZ2VzX2RlbGV0ZWQgQVMgaXBkLHR1cGxlc19kZWxldGVkIEFTIGl0ZAorRlJP TSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxu YW1lID0gJ3Zlc3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9pZCBcZ3NldAorLS0gU3Rv cmUgV0FMIGFkdmFuY2VzIGludG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMgQVMg aXdyLHdhbF9ieXRlcyBBUyBpd2Isd2FsX2ZwaSBBUyBpZnBpIEZST00gcGdfc3RhdF92YWN1 dW1faW5kZXhlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBcZ3NldAorLS0gTG9v ayBpbnRvIFdBTCByZWNvcmRzIGRlbHRhcy4KK1NFTEVDVCB3YWxfcmVjb3JkcyA+IDAgQVMg ZGlXUiwgd2FsX2J5dGVzID4gMCBBUyBkaVdCCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4 ZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleSc7CisgZGl3ciB8IGRpd2IgCistLS0t LS0rLS0tLS0tCisgdCAgICB8IHQKKygxIHJvdykKKworREVMRVRFIEZST00gdmVzdGF0OzsK K1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCwgSU5ERVhfQ0xF QU5VUCBPTikgdmVzdGF0OworLS0gaXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRoZSB3YWwg c3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKy0tIHBhZ2VzX3JlbW92ZWQgbXVzdCBiZSBpbmNy ZWFzZWQKK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzLTppcnAgPSAwIEFTIHJlbHBhZ2Vz LHBhZ2VzX2RlbGV0ZWQtOmlwZCA+IDAgQVMgcGFnZXNfZGVsZXRlZCx0dXBsZXNfZGVsZXRl ZC06aXRkID4gMCBBUyB0dXBsZXNfZGVsZXRlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRl eGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBB TkQgdnQucmVsaWQgPSBjLm9pZDsKKyAgIHJlbG5hbWUgICB8IHJlbHBhZ2VzIHwgcGFnZXNf ZGVsZXRlZCB8IHR1cGxlc19kZWxldGVkIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgdmVzdGF0X3BrZXkgfCB0ICAgICAg ICB8IHQgICAgICAgICAgICAgfCB0CisoMSByb3cpCisKK1NFTEVDVCB2dC5yZWxuYW1lLHJl bHBhZ2VzIEFTIGlycCxwYWdlc19kZWxldGVkIEFTIGlwZCx0dXBsZXNfZGVsZXRlZCBBUyBp dGQKK0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUg dnQucmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgQU5EIHZ0LnJlbGlkID0gYy5vaWQgXGdzZXQK Ky0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNv cmRzLTppd3IgQVMgZGl3ciwgd2FsX2J5dGVzLTppd2IgQVMgZGl3Yiwgd2FsX2ZwaS06aWZw aSBBUyBkaWZwaQorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIFdIRVJFIHJlbG5hbWUg PSAndmVzdGF0X3BrZXknIFxnc2V0CistLSBXQUwgYWR2YW5jZSBzaG91bGQgYmUgZGV0ZWN0 ZWQuCitTRUxFQ1QgOmRpd3IgPiAwIEFTIGRpV1IsIDpkaXdiID4gMCBBUyBkaVdCOworIGRp d3IgfCBkaXdiIAorLS0tLS0tKy0tLS0tLQorIHQgICAgfCB0CisoMSByb3cpCisKKy0tIFN0 b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzIEFT IGl3cix3YWxfYnl0ZXMgQVMgaXdiLHdhbF9mcGkgQVMgaWZwaSBGUk9NIHBnX3N0YXRfdmFj dXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgXGdzZXQKK0lOU0VS VCBJTlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpzYW1wbGVf c2l6ZSkgYXMgeDsKK0RFTEVURSBGUk9NIHZlc3RhdCBXSEVSRSB4ICUgMiA9IDA7CistLSBW QUNVVU0gRlVMTCBkb2Vzbid0IHJlcG9ydCB0byBzdGF0IGNvbGxlY3Rvci4gU28sIG5vIGFu eSBhZHZhbmNlbWVudHMgb2Ygc3RhdGlzdGljcworLS0gYXJlIGRldGVjdGVkIGhlcmUuCitW QUNVVU0gRlVMTCB2ZXN0YXQ7CistLSBJdCBpcyBuZWNlc3NhcnkgdG8gY2hlY2sgdGhlIHdh bCBzdGF0aXN0aWNzCitDSEVDS1BPSU5UOworLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGludG8g dmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMtOml3ciBBUyBkaXdyMiwgd2FsX2J5dGVz LTppd2IgQVMgZGl3YjIsIHdhbF9mcGktOmlmcGkgQVMgZGlmcGkyCitGUk9NIHBnX3N0YXRf dmFjdXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgXGdzZXQKKy0t IFdBTCBhbmQgb3RoZXIgc3RhdGlzdGljcyBhZHZhbmNlIHNob3VsZCBub3QgYmUgZGV0ZWN0 ZWQuCitTRUxFQ1QgOmRpd3IyPTAgQVMgZGlXUiwgOmRpZnBpMj0wIEFTIGlGUEksIDpkaXdi Mj0wIEFTIGRpV0I7CisgZGl3ciB8IGlmcGkgfCBkaXdiIAorLS0tLS0tKy0tLS0tLSstLS0t LS0KKyB0ICAgIHwgdCAgICB8IHQKKygxIHJvdykKKworU0VMRUNUIHZ0LnJlbG5hbWUscmVs cGFnZXMtOmlycCA8IDAgQVMgcmVscGFnZXMscGFnZXNfZGVsZXRlZC06aXBkID0gMCBBUyBw YWdlc19kZWxldGVkLHR1cGxlc19kZWxldGVkLTppdGQgPSAwIEFTIHR1cGxlc19kZWxldGVk CitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0 LnJlbG5hbWUgPSAndmVzdGF0X3BrZXknIEFORCB2dC5yZWxpZCA9IGMub2lkOworICAgcmVs bmFtZSAgIHwgcmVscGFnZXMgfCBwYWdlc19kZWxldGVkIHwgdHVwbGVzX2RlbGV0ZWQgCist LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0KKyB2ZXN0YXRfcGtleSB8IHQgICAgICAgIHwgdCAgICAgICAgICAgICB8IHQKKygxIHJv dykKKworU0VMRUNUIHZ0LnJlbG5hbWUscmVscGFnZXMgQVMgaXJwLHBhZ2VzX2RlbGV0ZWQg QVMgaXBkLHR1cGxlc19kZWxldGVkIEFTIGl0ZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRl eGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBB TkQgdnQucmVsaWQgPSBjLm9pZCBcZ3NldAorLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGludG8g dmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMgQVMgaXdyLHdhbF9ieXRlcyBBUyBpd2Is d2FsX2ZwaSBBUyBpZnBpIEZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyBXSEVSRSByZWxu YW1lID0gJ3Zlc3RhdF9wa2V5JyBcZ3NldAorREVMRVRFIEZST00gdmVzdGF0OworVFJVTkNB VEUgdmVzdGF0OworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4 LCBJTkRFWF9DTEVBTlVQIE9OKSB2ZXN0YXQ7CistLSBpdCBpcyBuZWNlc3NhcnkgdG8gY2hl Y2sgdGhlIHdhbCBzdGF0aXN0aWNzCitDSEVDS1BPSU5UOworLS0gU3RvcmUgV0FMIGFkdmFu Y2VzIGludG8gdmFyaWFibGVzIGFmdGVyIHJlbW92aW5nIGFsbCB0dXBsZXMgZnJvbSB0aGUg dGFibGUKK1NFTEVDVCB3YWxfcmVjb3Jkcy06aXdyIEFTIGRpd3IzLCB3YWxfYnl0ZXMtOml3 YiBBUyBkaXdiMywgd2FsX2ZwaS06aWZwaSBBUyBkaWZwaTMKK0ZST00gcGdfc3RhdF92YWN1 dW1faW5kZXhlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBcZ3NldAorLS1UaGVy ZSBhcmUgbm90aGluZyBjaGFuZ2VkCitTRUxFQ1QgOmRpd3IzPTAgQVMgZGlXUiwgOmRpZnBp Mz0wIEFTIGlGUEksIDpkaXdiMz0wIEFTIGRpV0I7CisgZGl3ciB8IGlmcGkgfCBkaXdiIAor LS0tLS0tKy0tLS0tLSstLS0tLS0KKyB0ICAgIHwgdCAgICB8IHQKKygxIHJvdykKKworLS0K Ky0tIE5vdywgdGhlIHRhYmxlIGFuZCBpbmRleCBpcyBjb21wcmVzc2VkIGludG8gemVybyBu dW1iZXIgb2YgcGFnZXMuIENoZWNrIGl0CistLSBpbiB2YWN1dW0gZXh0ZW5kZWQgc3RhdGlz dGljcy4KKy0tIFRoZSBwYWdlc19mcm96ZW4sIHBhZ2VzX3NjYW5uZWQgdmFsdWVzIHNob3Vs ZG4ndCBiZSBjaGFuZ2VkCistLQorU0VMRUNUIHZ0LnJlbG5hbWUscmVscGFnZXMtOmlycCA9 IDAgQVMgcmVscGFnZXMscGFnZXNfZGVsZXRlZC06aXBkID0gMCBBUyBwYWdlc19kZWxldGVk LHR1cGxlc19kZWxldGVkLTppdGQgPSAwIEFTIHR1cGxlc19kZWxldGVkCitGUk9NIHBnX3N0 YXRfdmFjdXVtX2luZGV4ZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAn dmVzdGF0X3BrZXknIEFORCB2dC5yZWxpZCA9IGMub2lkOworICAgcmVsbmFtZSAgIHwgcmVs cGFnZXMgfCBwYWdlc19kZWxldGVkIHwgdHVwbGVzX2RlbGV0ZWQgCistLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyB2ZXN0YXRf cGtleSB8IGYgICAgICAgIHwgdCAgICAgICAgICAgICB8IHQKKygxIHJvdykKKworRFJPUCBU QUJMRSB2ZXN0YXQ7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Zh Y3V1bV90YWJsZXNfc3RhdGlzdGljcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3ZhY3V1bV90YWJsZXNfc3RhdGlzdGljcy5vdXQKaW5kZXggMWE3ZDA0YjA1OTAuLmI4NWE1 Y2FiOWFmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV90 YWJsZXNfc3RhdGlzdGljcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC92 YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Mub3V0CkBAIC0zNyw4ICszNyw3IEBAIEZST00gcGdf c3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCiBXSEVSRSB2dC5yZWxuYW1lID0g J3Zlc3RhdCcgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CiAgcmVsbmFtZSB8IHBhZ2VzX2Zyb3pl biB8IHR1cGxlc19kZWxldGVkIHwgcmVscGFnZXMgfCBwYWdlc19zY2FubmVkIHwgcGFnZXNf cmVtb3ZlZCAKIC0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQotIHZlc3RhdCAgfCAg ICAgICAgICAgIDAgfCAgICAgICAgICAgICAgMCB8ICAgICAgNDU1IHwgICAgICAgICAgICAg MCB8ICAgICAgICAgICAgIDAKLSgxIHJvdykKKygwIHJvd3MpCiAKIFNFTEVDVCByZWxwYWdl cyBBUyBycAogRlJPTSBwZ19jbGFzcyBjCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVs ZQppbmRleCBmOGE0YmNjY2M5ZC4uYjk0MDhhNDNmNzEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJh bGxlbF9zY2hlZHVsZQpAQCAtMTQwLDQgKzE0MCw1IEBAIHRlc3Q6IHRhYmxlc3BhY2UKICMg LS0tLS0tLS0tLQogIyBDaGVjayB2YWN1dW0gc3RhdGlzdGljcwogIyAtLS0tLS0tLS0tCit0 ZXN0OiB2YWN1dW1faW5kZXhfc3RhdGlzdGljcwogdGVzdDogdmFjdXVtX3RhYmxlc19zdGF0 aXN0aWNzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvdmFjdXVtX2luZGV4X3N0YXRpc3RpY3Muc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvdmFjdXVtX2luZGV4X3N0YXRpc3RpY3Muc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45MTEzZmQyNmU2ZgotLS0gL2Rldi9udWxsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV9pbmRleF9zdGF0aXN0aWNzLnNxbApA QCAtMCwwICsxLDEyOCBAQAorLS0KKy0tIFRlc3QgY3VtdWxhdGl2ZSB2YWN1dW0gc3RhdHMg c3lzdGVtCistLQorLS0gQ2hlY2sgdGhlIHdhbGwgc3RhdGlzdGljcyBjb2xsZWN0ZWQgZHVy aW5nIHZhY3V1bSBvcGVyYXRpb246CistLSBudW1iZXIgb2YgZnJvemVuIGFuZCB2aXNpYmxl IHBhZ2VzIHNldCBieSB2YWN1dW07CistLSBudW1iZXIgb2YgZnJvemVuIGFuZCB2aXNpYmxl IHBhZ2VzIHJlbW92ZWQgYnkgYmFja2VuZC4KKy0tIFN0YXRpc3RpYyB3YWxfZnBpIGlzIG5v dCBkaXNwbGF5ZWQgaW4gdGhpcyB0ZXN0IGJlY2F1c2UgaXRzIGJlaGF2aW9yIGlzIHVuc3Rh YmxlLgorLS0KKy0tIGNvbmRpdGlvIHNpbmUgcXVhIG5vbgorU0hPVyB0cmFja19jb3VudHM7 ICAtLSBtdXN0IGJlIG9uCistLSBub3QgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgd2Ugd2Fu dCB0byB0ZXN0IGl0Li4uCitTRVQgdHJhY2tfZnVuY3Rpb25zIFRPICdhbGwnOworCisKKy0t IGVuc3VyZSBwZW5kaW5nIHN0YXRzIGFyZSBmbHVzaGVkCitTRUxFQ1QgcGdfc3RhdF9mb3Jj ZV9uZXh0X2ZsdXNoKCk7CisKK1xzZXQgc2FtcGxlX3NpemUgMTAwMDAKK1NFVCB2YWN1dW1f ZnJlZXplX21pbl9hZ2UgPSAwOworU0VUIHZhY3V1bV9mcmVlemVfdGFibGVfYWdlID0gMDsK Ky0tU0VUIHN0YXRzX2ZldGNoX2NvbnNpc3RlbmN5ID0gc25hcHNob3Q7CitDUkVBVEUgVEFC TEUgdmVzdGF0ICh4IGludCBwcmltYXJ5IGtleSkgV0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVk ID0gb2ZmLCBmaWxsZmFjdG9yID0gMTApOworSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4 IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OworQU5BTFlaRSB2 ZXN0YXQ7CisKK1NFTEVDVCBvaWQgQVMgaW9pZCBmcm9tIHBnX2NsYXNzIHdoZXJlIHJlbG5h bWUgPSAndmVzdGF0X3BrZXknIFxnc2V0CisKK0RFTEVURSBGUk9NIHZlc3RhdCBXSEVSRSB4 ICUgMiA9IDA7CistLSBCZWZvcmUgdGhlIGZpcnN0IHZhY3V1bSBleGVjdXRpb24gZXh0ZW5k ZWQgc3RhdHMgdmlldyBpcyBlbXB0eS4KK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzLHBh Z2VzX2RlbGV0ZWQsdHVwbGVzX2RlbGV0ZWQKK0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhl cyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgQU5E IHZ0LnJlbGlkID0gYy5vaWQ7CitTRUxFQ1QgcmVscGFnZXMgQVMgaXJwCitGUk9NIHBnX2Ns YXNzIGMKK1dIRVJFIHJlbG5hbWUgPSAndmVzdGF0X3BrZXknIFxnc2V0CisKK1ZBQ1VVTSAo UEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCwgSU5ERVhfQ0xFQU5VUCBPTikg dmVzdGF0OworLS0gaXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGlj cworQ0hFQ0tQT0lOVDsKKworLS0gVGhlIHRhYmxlIGFuZCBpbmRleCBleHRlbmRlZCB2YWN1 dW0gc3RhdGlzdGljcyBzaG91bGQgc2hvdyB1cyB0aGF0CistLSB2YWN1dW0gZnJvemVkIHBh Z2VzIGFuZCBjbGVhbiB1cCBwYWdlcywgYnV0IHBhZ2VzX3JlbW92ZWQgc3RheWVkIHRoZSBz YW1lCistLSBiZWNhdXNlIG9mIG5vdCBmdWxsIHRhYmxlIGhhdmUgY2xlYW5lZCB1cAorU0VM RUNUIHZ0LnJlbG5hbWUscmVscGFnZXMtOmlycCA9IDAgQVMgcmVscGFnZXMscGFnZXNfZGVs ZXRlZCA9IDAgQVMgcGFnZXNfZGVsZXRlZCx0dXBsZXNfZGVsZXRlZCA+IDAgQVMgdHVwbGVz X2RlbGV0ZWQKK0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyB2dCwgcGdfY2xhc3MgYwor V0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7 CitTRUxFQ1QgdnQucmVsbmFtZSxyZWxwYWdlcyBBUyBpcnAscGFnZXNfZGVsZXRlZCBBUyBp cGQsdHVwbGVzX2RlbGV0ZWQgQVMgaXRkCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMg dnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0X3BrZXknIEFORCB2 dC5yZWxpZCA9IGMub2lkIFxnc2V0CisKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZh cmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzIEFTIGl3cix3YWxfYnl0ZXMgQVMgaXdiLHdh bF9mcGkgQVMgaWZwaSBGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFt ZSA9ICd2ZXN0YXRfcGtleScgXGdzZXQKKworLS0gTG9vayBpbnRvIFdBTCByZWNvcmRzIGRl bHRhcy4KK1NFTEVDVCB3YWxfcmVjb3JkcyA+IDAgQVMgZGlXUiwgd2FsX2J5dGVzID4gMCBB UyBkaVdCCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9ICd2 ZXN0YXRfcGtleSc7CisKK0RFTEVURSBGUk9NIHZlc3RhdDs7CitWQUNVVU0gKFBBUkFMTEVM IDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgsIElOREVYX0NMRUFOVVAgT04pIHZlc3RhdDsK Ky0tIGl0IGlzIG5lY2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNL UE9JTlQ7CisKKy0tIHBhZ2VzX3JlbW92ZWQgbXVzdCBiZSBpbmNyZWFzZWQKK1NFTEVDVCB2 dC5yZWxuYW1lLHJlbHBhZ2VzLTppcnAgPSAwIEFTIHJlbHBhZ2VzLHBhZ2VzX2RlbGV0ZWQt OmlwZCA+IDAgQVMgcGFnZXNfZGVsZXRlZCx0dXBsZXNfZGVsZXRlZC06aXRkID4gMCBBUyB0 dXBsZXNfZGVsZXRlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFz cyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBj Lm9pZDsKK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzIEFTIGlycCxwYWdlc19kZWxldGVk IEFTIGlwZCx0dXBsZXNfZGVsZXRlZCBBUyBpdGQKK0ZST00gcGdfc3RhdF92YWN1dW1faW5k ZXhlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXRfcGtleScg QU5EIHZ0LnJlbGlkID0gYy5vaWQgXGdzZXQKKworLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGlu dG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMtOml3ciBBUyBkaXdyLCB3YWxfYnl0 ZXMtOml3YiBBUyBkaXdiLCB3YWxfZnBpLTppZnBpIEFTIGRpZnBpCitGUk9NIHBnX3N0YXRf dmFjdXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgXGdzZXQKKwor LS0gV0FMIGFkdmFuY2Ugc2hvdWxkIGJlIGRldGVjdGVkLgorU0VMRUNUIDpkaXdyID4gMCBB UyBkaVdSLCA6ZGl3YiA+IDAgQVMgZGlXQjsKKworLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGlu dG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMgQVMgaXdyLHdhbF9ieXRlcyBBUyBp d2Isd2FsX2ZwaSBBUyBpZnBpIEZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyBXSEVSRSBy ZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBcZ3NldAorCitJTlNFUlQgSU5UTyB2ZXN0YXQgU0VM RUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw6c2FtcGxlX3NpemUpIGFzIHg7CitERUxF VEUgRlJPTSB2ZXN0YXQgV0hFUkUgeCAlIDIgPSAwOworLS0gVkFDVVVNIEZVTEwgZG9lc24n dCByZXBvcnQgdG8gc3RhdCBjb2xsZWN0b3IuIFNvLCBubyBhbnkgYWR2YW5jZW1lbnRzIG9m IHN0YXRpc3RpY3MKKy0tIGFyZSBkZXRlY3RlZCBoZXJlLgorVkFDVVVNIEZVTEwgdmVzdGF0 OworLS0gSXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hF Q0tQT0lOVDsKKworLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGludG8gdmFyaWFibGVzCitTRUxF Q1Qgd2FsX3JlY29yZHMtOml3ciBBUyBkaXdyMiwgd2FsX2J5dGVzLTppd2IgQVMgZGl3YjIs IHdhbF9mcGktOmlmcGkgQVMgZGlmcGkyCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMg V0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgXGdzZXQKKworLS0gV0FMIGFuZCBvdGhl ciBzdGF0aXN0aWNzIGFkdmFuY2Ugc2hvdWxkIG5vdCBiZSBkZXRlY3RlZC4KK1NFTEVDVCA6 ZGl3cjI9MCBBUyBkaVdSLCA6ZGlmcGkyPTAgQVMgaUZQSSwgOmRpd2IyPTAgQVMgZGlXQjsK KworU0VMRUNUIHZ0LnJlbG5hbWUscmVscGFnZXMtOmlycCA8IDAgQVMgcmVscGFnZXMscGFn ZXNfZGVsZXRlZC06aXBkID0gMCBBUyBwYWdlc19kZWxldGVkLHR1cGxlc19kZWxldGVkLTpp dGQgPSAwIEFTIHR1cGxlc19kZWxldGVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMg dnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0X3BrZXknIEFORCB2 dC5yZWxpZCA9IGMub2lkOworU0VMRUNUIHZ0LnJlbG5hbWUscmVscGFnZXMgQVMgaXJwLHBh Z2VzX2RlbGV0ZWQgQVMgaXBkLHR1cGxlc19kZWxldGVkIEFTIGl0ZAorRlJPTSBwZ19zdGF0 X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zl c3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9pZCBcZ3NldAorCistLSBTdG9yZSBXQUwg YWR2YW5jZXMgaW50byB2YXJpYWJsZXMKK1NFTEVDVCB3YWxfcmVjb3JkcyBBUyBpd3Isd2Fs X2J5dGVzIEFTIGl3Yix3YWxfZnBpIEFTIGlmcGkgRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRl eGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0X3BrZXknIFxnc2V0CisKK0RFTEVURSBGUk9N IHZlc3RhdDsKK1RSVU5DQVRFIHZlc3RhdDsKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVS X1VTQUdFX0xJTUlUIDEyOCwgSU5ERVhfQ0xFQU5VUCBPTikgdmVzdGF0OworLS0gaXQgaXMg bmVjZXNzYXJ5IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKwor LS0gU3RvcmUgV0FMIGFkdmFuY2VzIGludG8gdmFyaWFibGVzIGFmdGVyIHJlbW92aW5nIGFs bCB0dXBsZXMgZnJvbSB0aGUgdGFibGUKK1NFTEVDVCB3YWxfcmVjb3Jkcy06aXdyIEFTIGRp d3IzLCB3YWxfYnl0ZXMtOml3YiBBUyBkaXdiMywgd2FsX2ZwaS06aWZwaSBBUyBkaWZwaTMK K0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9w a2V5JyBcZ3NldAorCistLVRoZXJlIGFyZSBub3RoaW5nIGNoYW5nZWQKK1NFTEVDVCA6ZGl3 cjM9MCBBUyBkaVdSLCA6ZGlmcGkzPTAgQVMgaUZQSSwgOmRpd2IzPTAgQVMgZGlXQjsKKwor LS0KKy0tIE5vdywgdGhlIHRhYmxlIGFuZCBpbmRleCBpcyBjb21wcmVzc2VkIGludG8gemVy byBudW1iZXIgb2YgcGFnZXMuIENoZWNrIGl0CistLSBpbiB2YWN1dW0gZXh0ZW5kZWQgc3Rh dGlzdGljcy4KKy0tIFRoZSBwYWdlc19mcm96ZW4sIHBhZ2VzX3NjYW5uZWQgdmFsdWVzIHNo b3VsZG4ndCBiZSBjaGFuZ2VkCistLQorU0VMRUNUIHZ0LnJlbG5hbWUscmVscGFnZXMtOmly cCA9IDAgQVMgcmVscGFnZXMscGFnZXNfZGVsZXRlZC06aXBkID0gMCBBUyBwYWdlc19kZWxl dGVkLHR1cGxlc19kZWxldGVkLTppdGQgPSAwIEFTIHR1cGxlc19kZWxldGVkCitGUk9NIHBn X3N0YXRfdmFjdXVtX2luZGV4ZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUg PSAndmVzdGF0X3BrZXknIEFORCB2dC5yZWxpZCA9IGMub2lkOworCitEUk9QIFRBQkxFIHZl c3RhdDsKLS0gCjIuMzQuMQoK --------------QJIinAs2ilH4KN1sjrAA0vMB Content-Type: text/x-patch; charset=UTF-8; name="v6-0003-Machinery-for-grabbing-an-extended-vacuum-statistics.patch" Content-Disposition: attachment; filename*0="v6-0003-Machinery-for-grabbing-an-extended-vacuum-statistics"; filename*1=".patch" Content-Transfer-Encoding: base64 RnJvbSBiMzNiMzJlYzBmYTMxYTJlZDQzNDlhZGI5ZTA4NzcyMmNkMjM0ODRiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogU3VuLCAyNSBBdWcgMjAyNCAxNzo0MjoyOCArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMy80XSBNYWNoaW5lcnkgZm9yIGdyYWJiaW5nIGFuIGV4dGVuZGVkIHZh Y3V1bSBzdGF0aXN0aWNzIG9uCiBkYXRhYmFzZXMuIEl0IHRyYW5zbWl0cyB2YWN1dW0gc3Rh dGlzdGljYWwgaW5mb3JtYXRpb24gYWJvdXQgZWFjaCB0YWJsZSBhbmQKIGFjY3VtdWxhdGVz IGl0IGZvciB0aGUgZGF0YWJhc2Ugd2hpY2ggdGhlIHRhYmxlIGJlbG9uZ2VkLgoKLS0tCiBz cmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgICAgICAgICAgfCAyOCArKysr KysrCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXQuYyAgICAgICAgICAgfCAg MiArCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2UuYyAgfCAg MSArCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYyAgfCAx NiArKysrCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyAgICAgICAgICAg fCA3NSArKysrKysrKysrKysrKysrKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5k YXQgICAgICAgICAgICAgICB8IDExICsrLQogc3JjL2luY2x1ZGUvcGdzdGF0LmggICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv b3ByX3Nhbml0eS5vdXQgICAgICB8ICA3ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3J1bGVzLm91dCAgICAgICAgICAgfCAyMCArKysrLQogLi4udXQgPT4gdmFjdXVtX3RhYmxl c19hbmRfZGJfc3RhdGlzdGljcy5vdXR9IHwgNzggKysrKysrKysrKysrKysrKysrKwogc3Jj L3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgIDIgKy0KIC4u LnFsID0+IHZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Muc3FsfSB8IDY2ICsrKysr KysrKysrKysrKy0KIDEyIGZpbGVzIGNoYW5nZWQsIDMwMCBpbnNlcnRpb25zKCspLCA5IGRl bGV0aW9ucygtKQogcmVuYW1lIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQve3ZhY3V1bV90 YWJsZXNfc3RhdGlzdGljcy5vdXQgPT4gdmFjdXVtX3RhYmxlc19hbmRfZGJfc3RhdGlzdGlj cy5vdXR9ICg3NiUpCiByZW5hbWUgc3JjL3Rlc3QvcmVncmVzcy9zcWwve3ZhY3V1bV90YWJs ZXNfc3RhdGlzdGljcy5zcWwgPT4gdmFjdXVtX3RhYmxlc19hbmRfZGJfc3RhdGlzdGljcy5z cWx9ICg3OCUpCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmll d3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IGVl NzU5Y2RjNWMzLi43NmEyZmZmZjJiYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9zeXN0ZW1fdmlld3Muc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3Zp ZXdzLnNxbApAQCAtMTQ2NiwzICsxNDY2LDMxIEBAIFdIRVJFCiAgIHJlbC5vaWQgPSBzdGF0 cy5yZWxpZCBBTkQKICAgbnMub2lkID0gcmVsLnJlbG5hbWVzcGFjZTsKIAorQ1JFQVRFIFZJ RVcgcGdfc3RhdF92YWN1dW1fZGF0YWJhc2UgQVMKK1NFTEVDVAorICBkYi5vaWQgYXMgZGJv aWQsCisgIGRiLmRhdG5hbWUgQVMgZGJuYW1lLAorCisgIHN0YXRzLmRiX2Jsa3NfcmVhZCwK KyAgc3RhdHMuZGJfYmxrc19oaXQsCisgIHN0YXRzLnRvdGFsX2Jsa3NfZGlydGllZCwKKyAg c3RhdHMudG90YWxfYmxrc193cml0dGVuLAorCisgIHN0YXRzLndhbF9yZWNvcmRzLAorICBz dGF0cy53YWxfZnBpLAorICBzdGF0cy53YWxfYnl0ZXMsCisKKyAgc3RhdHMuYmxrX3JlYWRf dGltZSwKKyAgc3RhdHMuYmxrX3dyaXRlX3RpbWUsCisKKyAgc3RhdHMuZGVsYXlfdGltZSwK KyAgc3RhdHMuc3lzdGVtX3RpbWUsCisgIHN0YXRzLnVzZXJfdGltZSwKKyAgc3RhdHMudG90 YWxfdGltZSwKKworICBzdGF0cy5pbnRlcnJ1cHRzCitGUk9NCisgIHBnX2RhdGFiYXNlIGRi IExFRlQgSk9JTiBwZ19zdGF0X3ZhY3V1bV9kYXRhYmFzZShkYi5vaWQpIHN0YXRzCitPTgor ICBkYi5vaWQgPSBzdGF0cy5kYm9pZDsKKwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvYWN0aXZpdHkvcGdzdGF0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0 YXQuYwppbmRleCBhNmY5NzFiNWE2OC4uYjYzMzQwODc3N2UgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L3Bnc3RhdC5jCkBAIC0xMTI2LDYgKzExMjYsOCBAQCBwZ3N0YXRfdXBkYXRl X3NuYXBzaG90KFBnU3RhdF9LaW5kIGtpbmQpCiAJCXBnc3RhdF9mZXRjaF9jb25zaXN0ZW5j eSA9IFBHU1RBVF9GRVRDSF9DT05TSVNURU5DWV9TTkFQU0hPVDsKIAkJaWYgKGtpbmQgPT0g UEdTVEFUX0tJTkRfUkVMQVRJT04pCiAJCQlwZ3N0YXRfYnVpbGRfc25hcHNob3QoUEdTVEFU X0tJTkRfUkVMQVRJT04pOworCQllbHNlIGlmIChraW5kID09IFBHU1RBVF9LSU5EX0RBVEFC QVNFKQorCQkJcGdzdGF0X2J1aWxkX3NuYXBzaG90KFBHU1RBVF9LSU5EX0RBVEFCQVNFKTsK IAl9CiAJUEdfRklOQUxMWSgpOwogCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFzZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZp dHkvcGdzdGF0X2RhdGFiYXNlLmMKaW5kZXggMjliYzA5MDk3NDguLmEwNjBkMWE0MDQyIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2Uu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2UuYwpA QCAtNDMwLDYgKzQzMCw3IEBAIHBnc3RhdF9kYXRhYmFzZV9mbHVzaF9jYihQZ1N0YXRfRW50 cnlSZWYgKmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpCiAJcGdzdGF0X3VubG9ja19lbnRyeShl bnRyeV9yZWYpOwogCiAJbWVtc2V0KHBlbmRpbmdlbnQsIDAsIHNpemVvZigqcGVuZGluZ2Vu dCkpOworCW1lbXNldCgmKHBlbmRpbmdlbnQpLT52YWN1dW1fZXh0LCAwLCBzaXplb2YoRXh0 VmFjUmVwb3J0KSk7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMKaW5kZXggNWIwNmIwNGZhYWQuLmNjMDlh YmE1NzFmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRf cmVsYXRpb24uYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVs YXRpb24uYwpAQCAtMjE3LDYgKzIxNyw3IEBAIHBnc3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9y KE9pZCB0YWJsZW9pZCwgRXh0VmFjUmVwb3J0VHlwZSBtX3R5cGUpCiAJUGdTdGF0U2hhcmVk X1JlbGF0aW9uICpzaHRhYmVudHJ5OwogCVBnU3RhdF9TdGF0VGFiRW50cnkgKnRhYmVudHJ5 OwogCU9pZAkJCWRib2lkID0gIE15RGF0YWJhc2VJZDsKKwlQZ1N0YXRfU3RhdERCRW50cnkg KmRiZW50cnk7CS8qIHBlbmRpbmcgZGF0YWJhc2UgZW50cnkgKi8KIAogCWlmICghcGdzdGF0 X3RyYWNrX2NvdW50cykKIAkJcmV0dXJuOwpAQCAtMjMwLDYgKzIzMSwxMCBAQCBwZ3N0YXRf cmVwb3J0X3ZhY3V1bV9lcnJvcihPaWQgdGFibGVvaWQsIEV4dFZhY1JlcG9ydFR5cGUgbV90 eXBlKQogCXRhYmVudHJ5LT52YWN1dW1fZXh0LmludGVycnVwdHMrKzsKIAl0YWJlbnRyeS0+ dmFjdXVtX2V4dC50eXBlID0gbV90eXBlOwogCXBnc3RhdF91bmxvY2tfZW50cnkoZW50cnlf cmVmKTsKKworCWRiZW50cnkgPSBwZ3N0YXRfcHJlcF9kYXRhYmFzZV9wZW5kaW5nKGRib2lk KTsKKwlkYmVudHJ5LT52YWN1dW1fZXh0LmludGVycnVwdHMrKzsKKwlkYmVudHJ5LT52YWN1 dW1fZXh0LnR5cGUgPSBtX3R5cGU7CiB9CiAKIC8qCkBAIC0yNDMsNiArMjQ4LDcgQEAgcGdz dGF0X3JlcG9ydF92YWN1dW0oT2lkIHRhYmxlb2lkLCBib29sIHNoYXJlZCwKIAlQZ1N0YXRf RW50cnlSZWYgKmVudHJ5X3JlZjsKIAlQZ1N0YXRTaGFyZWRfUmVsYXRpb24gKnNodGFiZW50 cnk7CiAJUGdTdGF0X1N0YXRUYWJFbnRyeSAqdGFiZW50cnk7CisJUGdTdGF0U2hhcmVkX0Rh dGFiYXNlICpkYmVudHJ5OwogCU9pZAkJCWRib2lkID0gKHNoYXJlZCA/IEludmFsaWRPaWQg OiBNeURhdGFiYXNlSWQpOwogCVRpbWVzdGFtcFR6IHRzOwogCkBAIC0yOTYsNiArMzAyLDE2 IEBAIHBnc3RhdF9yZXBvcnRfdmFjdXVtKE9pZCB0YWJsZW9pZCwgYm9vbCBzaGFyZWQsCiAJ ICogVkFDVVVNIGNvbW1hbmQgaGFzIHByb2Nlc3NlZCBhbGwgdGFibGVzIGFuZCBjb21taXR0 ZWQuCiAJICovCiAJcGdzdGF0X2ZsdXNoX2lvKGZhbHNlKTsKKwlpZiAoZGJvaWQgIT0gSW52 YWxpZE9pZCkKKwl7CisJCWVudHJ5X3JlZiA9IHBnc3RhdF9nZXRfZW50cnlfcmVmX2xvY2tl ZChQR1NUQVRfS0lORF9EQVRBQkFTRSwKKwkJCQkJCQkJCQkJZGJvaWQsIEludmFsaWRPaWQs IGZhbHNlKTsKKwkJZGJlbnRyeSA9IChQZ1N0YXRTaGFyZWRfRGF0YWJhc2UgKikgZW50cnlf cmVmLT5zaGFyZWRfc3RhdHM7CisKKwkJcGdzdGF0X2FjY3VtdWxhdGVfZXh0dmFjX3N0YXRz KCZkYmVudHJ5LT5zdGF0cy52YWN1dW1fZXh0LCBwYXJhbXMsIGZhbHNlKTsKKwkJcGdzdGF0 X3VubG9ja19lbnRyeShlbnRyeV9yZWYpOworCX0KKwogfQogCiAvKgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvcGdzdGF0ZnVuY3MuYwppbmRleCA5MTVjM2U1OWJmYS4uOWE5YjZmODA3YmYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCkBAIC0yMDcxLDggKzIwNzEsNDkg QEAgcGdfc3RhdF9oYXZlX3N0YXRzKFBHX0ZVTkNUSU9OX0FSR1MpCiAKICNkZWZpbmUgRVhU VkFDSEVBUFNUQVRfQ09MVU1OUwkyNwogI2RlZmluZSBFWFRWQUNJRFhTVEFUX0NPTFVNTlMJ MTkKKyNkZWZpbmUgRVhUVkFDREJTVEFUX0NPTFVNTlMJMTUKICNkZWZpbmUgRVhUVkFDU1RB VF9DT0xVTU5TIE1heChFWFRWQUNIRUFQU1RBVF9DT0xVTU5TLCBFWFRWQUNJRFhTVEFUX0NP TFVNTlMpCiAKK3N0YXRpYyB2b2lkCit0dXBsZXN0b3JlX3B1dF9mb3JfZGF0YWJhc2UoT2lk IGRiaWQsIFJldHVyblNldEluZm8gKnJzaW5mbywKKwkJCQkJCQlQZ1N0YXRTaGFyZWRfRGF0 YWJhc2UgKmRiZW50cnkpCit7CisJRGF0dW0JCXZhbHVlc1tFWFRWQUNEQlNUQVRfQ09MVU1O U107CisJYm9vbAkJbnVsbHNbRVhUVkFDREJTVEFUX0NPTFVNTlNdOworCWNoYXIJCWJ1Zlsy NTZdOworCWludAkJCWkgPSAwOworCisJbWVtc2V0KG51bGxzLCAwLCBFWFRWQUNEQlNUQVRf Q09MVU1OUyAqIHNpemVvZihib29sKSk7CisKKwl2YWx1ZXNbaSsrXSA9IE9iamVjdElkR2V0 RGF0dW0oZGJpZCk7CisKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZGJlbnRyeS0+ c3RhdHMudmFjdXVtX2V4dC50b3RhbF9ibGtzX3JlYWQpOworCXZhbHVlc1tpKytdID0gSW50 NjRHZXREYXR1bShkYmVudHJ5LT5zdGF0cy52YWN1dW1fZXh0LnRvdGFsX2Jsa3NfaGl0KTsK Kwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZGJlbnRyeS0+c3RhdHMudmFjdXVtX2V4 dC50b3RhbF9ibGtzX2RpcnRpZWQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShk YmVudHJ5LT5zdGF0cy52YWN1dW1fZXh0LnRvdGFsX2Jsa3Nfd3JpdHRlbik7CisKKwl2YWx1 ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZGJlbnRyeS0+c3RhdHMudmFjdXVtX2V4dC53YWxf cmVjb3Jkcyk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGRiZW50cnktPnN0YXRz LnZhY3V1bV9leHQud2FsX2ZwaSk7CisKKwkvKiBDb252ZXJ0IHRvIG51bWVyaWMsIGxpa2Ug cGdfc3RhdF9zdGF0ZW1lbnRzICovCisJc25wcmludGYoYnVmLCBzaXplb2YgYnVmLCBVSU5U NjRfRk9STUFULCBkYmVudHJ5LT5zdGF0cy52YWN1dW1fZXh0LndhbF9ieXRlcyk7CisJdmFs dWVzW2krK10gPSBEaXJlY3RGdW5jdGlvbkNhbGwzKG51bWVyaWNfaW4sCisJCQkJCQkJCQkg IENTdHJpbmdHZXREYXR1bShidWYpLAorCQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKDAp LAorCQkJCQkJCQkJICBJbnQzMkdldERhdHVtKC0xKSk7CisKKwl2YWx1ZXNbaSsrXSA9IEZs b2F0OEdldERhdHVtKGRiZW50cnktPnN0YXRzLnZhY3V1bV9leHQuYmxrX3JlYWRfdGltZSk7 CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShkYmVudHJ5LT5zdGF0cy52YWN1dW1f ZXh0LmJsa193cml0ZV90aW1lKTsKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKGRi ZW50cnktPnN0YXRzLnZhY3V1bV9leHQuZGVsYXlfdGltZSk7CisJdmFsdWVzW2krK10gPSBG bG9hdDhHZXREYXR1bShkYmVudHJ5LT5zdGF0cy52YWN1dW1fZXh0LnN5c3RlbV90aW1lKTsK Kwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKGRiZW50cnktPnN0YXRzLnZhY3V1bV9l eHQudXNlcl90aW1lKTsKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKGRiZW50cnkt PnN0YXRzLnZhY3V1bV9leHQudG90YWxfdGltZSk7CisJdmFsdWVzW2krK10gPSBJbnQzMkdl dERhdHVtKGRiZW50cnktPnN0YXRzLnZhY3V1bV9leHQuaW50ZXJydXB0cyk7CisKKwlBc3Nl cnQoaSA9PSByc2luZm8tPnNldERlc2MtPm5hdHRzKTsKKwl0dXBsZXN0b3JlX3B1dHZhbHVl cyhyc2luZm8tPnNldFJlc3VsdCwgcnNpbmZvLT5zZXREZXNjLCB2YWx1ZXMsIG51bGxzKTsK K30KKwogc3RhdGljIHZvaWQKIHR1cGxlc3RvcmVfcHV0X2Zvcl9yZWxhdGlvbihPaWQgcmVs aWQsIFJldHVyblNldEluZm8gKnJzaW5mbywKIAkJCQkJCQlQZ1N0YXRfU3RhdFRhYkVudHJ5 ICp0YWJlbnRyeSkKQEAgLTIxODksNiArMjIzMCwyNiBAQCBwZ19zdGF0c192YWN1dW0oRnVu Y3Rpb25DYWxsSW5mbyBmY2luZm8sIEV4dFZhY1JlcG9ydFR5cGUgdHlwZSwgaW50IG5jb2x1 bW5zKQogCQkJfQogCQl9CiAJfQorCWVsc2UgaWYgKHR5cGUgPT0gUEdTVEFUX0VYVFZBQ19E QikKKwl7CisJCVBnU3RhdFNoYXJlZF9EYXRhYmFzZQkgICAqZGJlbnRyeTsKKwkJUGdTdGF0 X0VudHJ5UmVmIAkJICAgKmVudHJ5X3JlZjsKKwkJT2lkCQkJCQkJCWRiaWQgPSBQR19HRVRB UkdfT0lEKDApOworCisJCWlmIChPaWRJc1ZhbGlkKGRiaWQpKQorCQl7CisJCQllbnRyeV9y ZWYgPSBwZ3N0YXRfZ2V0X2VudHJ5X3JlZl9sb2NrZWQoUEdTVEFUX0tJTkRfREFUQUJBU0Us CisJCQkJCQkJCQkJCWRiaWQsIEludmFsaWRPaWQsIGZhbHNlKTsKKwkJCWRiZW50cnkgPSAo UGdTdGF0U2hhcmVkX0RhdGFiYXNlICopIGVudHJ5X3JlZi0+c2hhcmVkX3N0YXRzOworCisJ CQlpZiAoZGJlbnRyeSA9PSBOVUxMKQorCQkJCS8qIFRhYmxlIGRvZXNuJ3QgZXhpc3Qgb3Ig aXNuJ3QgYSBoZWFwIHJlbGF0aW9uICovCisJCQkJcmV0dXJuOworCisJCQl0dXBsZXN0b3Jl X3B1dF9mb3JfZGF0YWJhc2UoZGJpZCwgcnNpbmZvLCBkYmVudHJ5KTsKKwkJCXBnc3RhdF91 bmxvY2tfZW50cnkoZW50cnlfcmVmKTsKKwkJfQorCX0KIH0KIAogLyoKQEAgLTIyMTEsNCAr MjI3MiwxNiBAQCBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ cGdfc3RhdHNfdmFjdXVtKGZjaW5mbywgUEdTVEFUX0VYVFZBQ19JTkRFWCwgRVhUVkFDSURY U1RBVF9DT0xVTU5TKTsKIAogIAlQR19SRVRVUk5fVk9JRCgpOwotIH0KXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCisgfQorCisKKy8qCisgKiBHZXQgdGhlIHZhY3V1bSBzdGF0aXN0 aWNzIGZvciB0aGUgZGF0YWJhc2UuCisgKi8KK0RhdHVtCitwZ19zdGF0X3ZhY3V1bV9kYXRh YmFzZShQR19GVU5DVElPTl9BUkdTKQoreworCXBnX3N0YXRzX3ZhY3V1bShmY2luZm8sIFBH U1RBVF9FWFRWQUNfREIsIEVYVFZBQ0RCU1RBVF9DT0xVTU5TKTsKKworCVBHX1JFVFVSTl9W T0lEKCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKaW5kZXggNjA0YjRmNDQ5MzAuLmQ0Njk2ZDBjMDU1IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQKQEAgLTEyMjcxLDUgKzEyMjcxLDE0IEBACiAgIHByb2FsbGFyZ3R5 cGVzID0+ICd7b2lkLG9pZCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGlu dDgsaW50OCxpbnQ4LG51bWVyaWMsZmxvYXQ4LGZsb2F0OCxmbG9hdDgsZmxvYXQ4LGZsb2F0 OCxmbG9hdDgsaW50NH0nLAogICBwcm9hcmdtb2RlcyA9PiAne2ksbyxvLG8sbyxvLG8sbyxv LG8sbyxvLG8sbyxvLG8sbyxvLG8sb30nLAogICBwcm9hcmduYW1lcyA9PiAne3JlbG9pZCxy ZWxpZCx0b3RhbF9ibGtzX3JlYWQsdG90YWxfYmxrc19oaXQsdG90YWxfYmxrc19kaXJ0aWVk LHRvdGFsX2Jsa3Nfd3JpdHRlbixyZWxfYmxrc19yZWFkLHJlbF9ibGtzX2hpdCxwYWdlc19k ZWxldGVkLHR1cGxlc19kZWxldGVkLHdhbF9yZWNvcmRzLHdhbF9mcGksd2FsX2J5dGVzLGJs a19yZWFkX3RpbWUsYmxrX3dyaXRlX3RpbWUsZGVsYXlfdGltZSxzeXN0ZW1fdGltZSx1c2Vy X3RpbWUsdG90YWxfdGltZSxpbnRlcnJ1cHRzfScsCi0gIHByb3NyYyA9PiAncGdfc3RhdF92 YWN1dW1faW5kZXhlcycgfQorICBwcm9zcmMgPT4gJ3BnX3N0YXRfdmFjdXVtX2luZGV4ZXMn IH0sCit7IG9pZCA9PiAnODAwMycsCisgIGRlc2NyID0+ICdwZ19zdGF0X3ZhY3V1bV9kYXRh YmFzZSByZXR1cm4gc3RhdHMgdmFsdWVzJywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF92YWN1 dW1fZGF0YWJhc2UnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ3JlY29y ZCcscHJvaXNzdHJpY3QgPT4gJ2YnLAorICBwcm9yZXRzZXQgPT4gJ3QnLAorICBwcm9hcmd0 eXBlcyA9PiAnb2lkJywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3tvaWQsb2lkLGludDgsaW50 OCxpbnQ4LGludDgsaW50OCxpbnQ4LG51bWVyaWMsZmxvYXQ4LGZsb2F0OCxmbG9hdDgsZmxv YXQ4LGZsb2F0OCxmbG9hdDgsaW50NH0nLAorICBwcm9hcmdtb2RlcyA9PiAne2ksbyxvLG8s byxvLG8sbyxvLG8sbyxvLG8sbyxvLG99JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tkYmlkLGRi b2lkLGRiX2Jsa3NfcmVhZCxkYl9ibGtzX2hpdCx0b3RhbF9ibGtzX2RpcnRpZWQsdG90YWxf Ymxrc193cml0dGVuLHdhbF9yZWNvcmRzLHdhbF9mcGksd2FsX2J5dGVzLGJsa19yZWFkX3Rp bWUsYmxrX3dyaXRlX3RpbWUsZGVsYXlfdGltZSxzeXN0ZW1fdGltZSx1c2VyX3RpbWUsdG90 YWxfdGltZSxpbnRlcnJ1cHRzfScsCisgIHByb3NyYyA9PiAncGdfc3RhdF92YWN1dW1fZGF0 YWJhc2UnIH0sCiBdCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaCBiL3NyYy9p bmNsdWRlL3Bnc3RhdC5oCmluZGV4IDc2MmI1M2I4OGVkLi4xMTBlOTQ3MmYzYyAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcGdzdGF0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgK QEAgLTE3Myw3ICsxNzMsOCBAQCB0eXBlZGVmIGVudW0gRXh0VmFjUmVwb3J0VHlwZQogewog CVBHU1RBVF9FWFRWQUNfSU5WQUxJRCA9IDAsCiAJUEdTVEFUX0VYVFZBQ19IRUFQID0gMSwK LQlQR1NUQVRfRVhUVkFDX0lOREVYID0gMgorCVBHU1RBVF9FWFRWQUNfSU5ERVggPSAyLAor CVBHU1RBVF9FWFRWQUNfREIgPSAzLAogfSBFeHRWYWNSZXBvcnRUeXBlOwogCiAvKiAtLS0t LS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5p dHkub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dAppbmRl eCA1ZDcyYjk3MGIwMy4uNzAyNmRlMTU3ZTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9vcHJfc2FuaXR5Lm91dApAQCAtMzIsMTEgKzMyLDEyIEBAIFdIRVJFIHAxLnByb2xh bmcgPSAwIE9SIHAxLnByb3JldHR5cGUgPSAwIE9SCiAgICAgICAgcHJva2luZCBOT1QgSU4g KCdmJywgJ2EnLCAndycsICdwJykgT1IKICAgICAgICBwcm92b2xhdGlsZSBOT1QgSU4gKCdp JywgJ3MnLCAndicpIE9SCiAgICAgICAgcHJvcGFyYWxsZWwgTk9UIElOICgncycsICdyJywg J3UnKTsKLSBvaWQgIHwgICAgICAgIHByb25hbWUgICAgICAgICAKLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBvaWQgIHwgICAgICAgICBwcm9uYW1lICAgICAgICAgCist LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIDgwMDEgfCBwZ19zdGF0X3ZhY3V1 bV90YWJsZXMKICA4MDAyIHwgcGdfc3RhdF92YWN1dW1faW5kZXhlcwotKDIgcm93cykKKyA4 MDAzIHwgcGdfc3RhdF92YWN1dW1fZGF0YWJhc2UKKygzIHJvd3MpCiAKIC0tIHByb3NyYyBz aG91bGQgbmV2ZXIgYmUgbnVsbDsgaXQgY2FuIGJlIGVtcHR5IG9ubHkgaWYgcHJvc3FsYm9k eSBpc24ndCBudWxsCiBTRUxFQ1QgcDEub2lkLCBwMS5wcm9uYW1lCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4IDI2NWViNTk3ZDY5Li41ZDdmNzNjMjVmZCAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTIyMjksNiArMjIyOSwyNCBA QCBwZ19zdGF0X3VzZXJfdGFibGVzfCBTRUxFQ1QgcmVsaWQsCiAgICAgYXV0b2FuYWx5emVf Y291bnQKICAgIEZST00gcGdfc3RhdF9hbGxfdGFibGVzCiAgIFdIRVJFICgoc2NoZW1hbmFt ZSA8PiBBTEwgKEFSUkFZWydwZ19jYXRhbG9nJzo6bmFtZSwgJ2luZm9ybWF0aW9uX3NjaGVt YSc6Om5hbWVdKSkgQU5EIChzY2hlbWFuYW1lICF+ICdecGdfdG9hc3QnOjp0ZXh0KSk7Citw Z19zdGF0X3ZhY3V1bV9kYXRhYmFzZXwgU0VMRUNUIGRiLm9pZCBBUyBkYm9pZCwKKyAgICBk Yi5kYXRuYW1lIEFTIGRibmFtZSwKKyAgICBzdGF0cy5kYl9ibGtzX3JlYWQsCisgICAgc3Rh dHMuZGJfYmxrc19oaXQsCisgICAgc3RhdHMudG90YWxfYmxrc19kaXJ0aWVkLAorICAgIHN0 YXRzLnRvdGFsX2Jsa3Nfd3JpdHRlbiwKKyAgICBzdGF0cy53YWxfcmVjb3JkcywKKyAgICBz dGF0cy53YWxfZnBpLAorICAgIHN0YXRzLndhbF9ieXRlcywKKyAgICBzdGF0cy5ibGtfcmVh ZF90aW1lLAorICAgIHN0YXRzLmJsa193cml0ZV90aW1lLAorICAgIHN0YXRzLmRlbGF5X3Rp bWUsCisgICAgc3RhdHMuc3lzdGVtX3RpbWUsCisgICAgc3RhdHMudXNlcl90aW1lLAorICAg IHN0YXRzLnRvdGFsX3RpbWUsCisgICAgc3RhdHMuaW50ZXJydXB0cworICAgRlJPTSAocGdf ZGF0YWJhc2UgZGIKKyAgICAgTEVGVCBKT0lOIExBVEVSQUwgcGdfc3RhdF92YWN1dW1fZGF0 YWJhc2UoZGIub2lkKSBzdGF0cyhkYm9pZCwgZGJfYmxrc19yZWFkLCBkYl9ibGtzX2hpdCwg dG90YWxfYmxrc19kaXJ0aWVkLCB0b3RhbF9ibGtzX3dyaXR0ZW4sIHdhbF9yZWNvcmRzLCB3 YWxfZnBpLCB3YWxfYnl0ZXMsIGJsa19yZWFkX3RpbWUsIGJsa193cml0ZV90aW1lLCBkZWxh eV90aW1lLCBzeXN0ZW1fdGltZSwgdXNlcl90aW1lLCB0b3RhbF90aW1lLCBpbnRlcnJ1cHRz KSBPTiAoKGRiLm9pZCA9IHN0YXRzLmRib2lkKSkpOwogcGdfc3RhdF92YWN1dW1faW5kZXhl c3wgU0VMRUNUIHJlbC5vaWQgQVMgcmVsaWQsCiAgICAgbnMubnNwbmFtZSBBUyBzY2hlbWEs CiAgICAgcmVsLnJlbG5hbWUsCkBAIC0yMjUzLDcgKzIyNzEsNyBAQCBwZ19zdGF0X3ZhY3V1 bV9pbmRleGVzfCBTRUxFQ1QgcmVsLm9pZCBBUyByZWxpZCwKICAgIEZST00gcGdfZGF0YWJh c2UgZGIsCiAgICAgcGdfY2xhc3MgcmVsLAogICAgIHBnX25hbWVzcGFjZSBucywKLSAgICBM QVRFUkFMIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMoZGIub2lkLCByZWwub2lkKSBzdGF0cyhy ZWxpZCwgdG90YWxfYmxrc19yZWFkLCB0b3RhbF9ibGtzX2hpdCwgdG90YWxfYmxrc19kaXJ0 aWVkLCB0b3RhbF9ibGtzX3dyaXR0ZW4sIHJlbF9ibGtzX3JlYWQsIHJlbF9ibGtzX2hpdCwg cGFnZXNfZGVsZXRlZCwgdHVwbGVzX2RlbGV0ZWQsIHdhbF9yZWNvcmRzLCB3YWxfZnBpLCB3 YWxfYnl0ZXMsIGJsa19yZWFkX3RpbWUsIGJsa193cml0ZV90aW1lLCBkZWxheV90aW1lLCBz eXN0ZW1fdGltZSwgdXNlcl90aW1lLCB0b3RhbF90aW1lLCBpbnRlcnJ1cHRzKQorICAgIExB VEVSQUwgcGdfc3RhdF92YWN1dW1faW5kZXhlcyhyZWwub2lkKSBzdGF0cyhyZWxpZCwgdG90 YWxfYmxrc19yZWFkLCB0b3RhbF9ibGtzX2hpdCwgdG90YWxfYmxrc19kaXJ0aWVkLCB0b3Rh bF9ibGtzX3dyaXR0ZW4sIHJlbF9ibGtzX3JlYWQsIHJlbF9ibGtzX2hpdCwgcGFnZXNfZGVs ZXRlZCwgdHVwbGVzX2RlbGV0ZWQsIHdhbF9yZWNvcmRzLCB3YWxfZnBpLCB3YWxfYnl0ZXMs IGJsa19yZWFkX3RpbWUsIGJsa193cml0ZV90aW1lLCBkZWxheV90aW1lLCBzeXN0ZW1fdGlt ZSwgdXNlcl90aW1lLCB0b3RhbF90aW1lLCBpbnRlcnJ1cHRzKQogICBXSEVSRSAoKGRiLmRh dG5hbWUgPSBjdXJyZW50X2RhdGFiYXNlKCkpIEFORCAocmVsLm9pZCA9IHN0YXRzLnJlbGlk KSBBTkQgKG5zLm9pZCA9IHJlbC5yZWxuYW1lc3BhY2UpKTsKIHBnX3N0YXRfdmFjdXVtX3Rh Ymxlc3wgU0VMRUNUIHJlbC5vaWQgQVMgcmVsaWQsCiAgICAgbnMubnNwbmFtZSBBUyBzY2hl bWEsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV90YWJs ZXNfc3RhdGlzdGljcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV90 YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Mub3V0CnNpbWlsYXJpdHkgaW5kZXggNzYlCnJlbmFt ZSBmcm9tIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVtX3RhYmxlc19zdGF0aXN0 aWNzLm91dApyZW5hbWUgdG8gc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC92YWN1dW1fdGFi bGVzX2FuZF9kYl9zdGF0aXN0aWNzLm91dAppbmRleCBiODVhNWNhYjlhZi4uZWMwY2Y5N2Uy ZGEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVtX3RhYmxl c19zdGF0aXN0aWNzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1 bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Mub3V0CkBAIC02LDYgKzYsOSBAQAogLS0gbnVt YmVyIG9mIGZyb3plbiBhbmQgdmlzaWJsZSBwYWdlcyByZW1vdmVkIGJ5IGJhY2tlbmQuCiAt LSBTdGF0aXN0aWMgd2FsX2ZwaSBpcyBub3QgZGlzcGxheWVkIGluIHRoaXMgdGVzdCBiZWNh dXNlIGl0cyBiZWhhdmlvciBpcyB1bnN0YWJsZS4KIC0tCitDUkVBVEUgREFUQUJBU0UgcmVn cmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiOworQ1JFQVRFIERBVEFCQVNFIHJlZ3Jlc3Np b25fc3RhdGlzdGljX3ZhY3V1bV9kYjE7CitcYyByZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1 dW1fZGI7CiAtLSBjb25kaXRpbyBzaW5lIHF1YSBub24KIFNIT1cgdHJhY2tfY291bnRzOyAg LS0gbXVzdCBiZSBvbgogIHRyYWNrX2NvdW50cyAKQEAgLTE5Niw0ICsxOTksNzkgQEAgRlJP TSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnOwogIHQg ICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICAgICAg fCB0CiAoMSByb3cpCiAKKy0tIE5vdyBjaGVjayB2YWN1dW0gc3RhdGlzdGljcyBmb3IgY3Vy cmVudCBkYXRhYmFzZQorU0VMRUNUIGRibmFtZSwKKyAgICAgICBkYl9ibGtzX2hpdCA+IDAg QVMgZGJfYmxrc19oaXQsCisgICAgICAgdG90YWxfYmxrc19kaXJ0aWVkID4gMCBBUyB0b3Rh bF9ibGtzX2RpcnRpZWQsCisgICAgICAgdG90YWxfYmxrc193cml0dGVuID4gMCBBUyB0b3Rh bF9ibGtzX3dyaXR0ZW4sCisgICAgICAgd2FsX3JlY29yZHMgPiAwIEFTIHdhbF9yZWNvcmRz LAorICAgICAgIHdhbF9mcGkgPiAwIEFTIHdhbF9mcGksCisgICAgICAgd2FsX2J5dGVzID4g MCBBUyB3YWxfYnl0ZXMsCisgICAgICAgdXNlcl90aW1lID4gMCBBUyB1c2VyX3RpbWUsCisg ICAgICAgdG90YWxfdGltZSA+IDAgQVMgdG90YWxfdGltZQorRlJPTQorcGdfc3RhdF92YWN1 dW1fZGF0YWJhc2UKK1dIRVJFIGRibmFtZSA9IGN1cnJlbnRfZGF0YWJhc2UoKTsKKyAgICAg ICAgICAgICBkYm5hbWUgICAgICAgICAgICAgfCBkYl9ibGtzX2hpdCB8IHRvdGFsX2Jsa3Nf ZGlydGllZCB8IHRvdGFsX2Jsa3Nfd3JpdHRlbiB8IHdhbF9yZWNvcmRzIHwgd2FsX2ZwaSB8 IHdhbF9ieXRlcyB8IHVzZXJfdGltZSB8IHRvdGFsX3RpbWUgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1 bV9kYiB8IHQgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAg ICAgICAgIHwgdCAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgdCAgICAgICAg IHwgdAorKDEgcm93KQorCitEUk9QIFRBQkxFIHZlc3RhdCBDQVNDQURFOworLS0gZW5zdXJl IHBlbmRpbmcgc3RhdHMgYXJlIGZsdXNoZWQKK1NFTEVDVCBwZ19zdGF0X2ZvcmNlX25leHRf Zmx1c2goKTsKKyBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2ggCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIAorKDEgcm93KQorCitDUkVBVEUgVEFCTEUgdmVzdGF0ICh4IGludCkg V0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmLCBmaWxsZmFjdG9yID0gMTApOworSU5T RVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBs ZV9zaXplKSBhcyB4OworQU5BTFlaRSB2ZXN0YXQ7CitVUERBVEUgdmVzdGF0IFNFVCB4ID0g MTAwMDE7CitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgpIHZl c3RhdDsKK1xjIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYjE7CistLSBOb3cgY2hl Y2sgdmFjdXVtIHN0YXRpc3RpY3MgZm9yIHBvc3RncmVzIGRhdGFiYXNlIGZyb20gYW5vdGhl ciBkYXRhYmFzZQorU0VMRUNUIGRibmFtZSwKKyAgICAgICBkYl9ibGtzX2hpdCA+IDAgQVMg ZGJfYmxrc19oaXQsCisgICAgICAgdG90YWxfYmxrc19kaXJ0aWVkID4gMCBBUyB0b3RhbF9i bGtzX2RpcnRpZWQsCisgICAgICAgdG90YWxfYmxrc193cml0dGVuID4gMCBBUyB0b3RhbF9i bGtzX3dyaXR0ZW4sCisgICAgICAgd2FsX3JlY29yZHMgPiAwIEFTIHdhbF9yZWNvcmRzLAor ICAgICAgIHdhbF9mcGkgPiAwIEFTIHdhbF9mcGksCisgICAgICAgd2FsX2J5dGVzID4gMCBB UyB3YWxfYnl0ZXMsCisgICAgICAgdXNlcl90aW1lID4gMCBBUyB1c2VyX3RpbWUsCisgICAg ICAgdG90YWxfdGltZSA+IDAgQVMgdG90YWxfdGltZQorRlJPTQorcGdfc3RhdF92YWN1dW1f ZGF0YWJhc2UKK1dIRVJFIGRibmFtZSA9ICdyZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1f ZGInOworICAgICAgICAgICAgIGRibmFtZSAgICAgICAgICAgICB8IGRiX2Jsa3NfaGl0IHwg dG90YWxfYmxrc19kaXJ0aWVkIHwgdG90YWxfYmxrc193cml0dGVuIHwgd2FsX3JlY29yZHMg fCB3YWxfZnBpIHwgd2FsX2J5dGVzIHwgdXNlcl90aW1lIHwgdG90YWxfdGltZSAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgcmVncmVzc2lvbl9zdGF0 aXN0aWNfdmFjdXVtX2RiIHwgdCAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAgICAgfCB0 ICAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAg fCB0ICAgICAgICAgfCB0CisoMSByb3cpCisKK1xjIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3Zh Y3V1bV9kYgorUkVTRVQgdmFjdXVtX2ZyZWV6ZV9taW5fYWdlOworUkVTRVQgdmFjdXVtX2Zy ZWV6ZV90YWJsZV9hZ2U7CiBEUk9QIFRBQkxFIHZlc3RhdCBDQVNDQURFOworXGMgcmVncmVz c2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiMTsKK1NFTEVDVCBjb3VudCgqKQorRlJPTSBwZ19k YXRhYmFzZSBkCitDUk9TUyBKT0lOIHBnX3N0YXRfdmFjdXVtX3RhYmxlcygwKQorV0hFUkUg b2lkID0gMDsgLS0gbXVzdCBiZSAwCisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJv dykKKworU0VMRUNUIGNvdW50KCopCitGUk9NIHBnX2RhdGFiYXNlIGQKK0NST1NTIEpPSU4g cGdfc3RhdF92YWN1dW1fZGF0YWJhc2UoMCkKK1dIRVJFIG9pZCA9IDA7IC0tIG11c3QgYmUg MAorIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK1xjIHBvc3RncmVzCitE Uk9QIERBVEFCQVNFIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYjE7CitEUk9QIERB VEFCQVNFIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYjsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3Bh cmFsbGVsX3NjaGVkdWxlCmluZGV4IGI5NDA4YTQzZjcxLi4xMjliMTEwMjAyOCAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC0xNDEsNCArMTQxLDQgQEAgdGVzdDog dGFibGVzcGFjZQogIyBDaGVjayB2YWN1dW0gc3RhdGlzdGljcwogIyAtLS0tLS0tLS0tCiB0 ZXN0OiB2YWN1dW1faW5kZXhfc3RhdGlzdGljcwotdGVzdDogdmFjdXVtX3RhYmxlc19zdGF0 aXN0aWNzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQordGVzdDogdmFjdXVtX3RhYmxl c19hbmRfZGJfc3RhdGlzdGljcwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGljcy5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1dW1fdGFibGVzX2FuZF9kYl9zdGF0aXN0 aWNzLnNxbApzaW1pbGFyaXR5IGluZGV4IDc4JQpyZW5hbWUgZnJvbSBzcmMvdGVzdC9yZWdy ZXNzL3NxbC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Muc3FsCnJlbmFtZSB0byBzcmMvdGVz dC9yZWdyZXNzL3NxbC92YWN1dW1fdGFibGVzX2FuZF9kYl9zdGF0aXN0aWNzLnNxbAppbmRl eCA0MWUzODdkZDMwNC4uZWQ5YmI4NTI2MjUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGljcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvdmFjdXVtX3RhYmxlc19hbmRfZGJfc3RhdGlzdGljcy5zcWwKQEAgLTcsNiAr NywxMCBAQAogLS0gU3RhdGlzdGljIHdhbF9mcGkgaXMgbm90IGRpc3BsYXllZCBpbiB0aGlz IHRlc3QgYmVjYXVzZSBpdHMgYmVoYXZpb3IgaXMgdW5zdGFibGUuCiAtLQogCitDUkVBVEUg REFUQUJBU0UgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiOworQ1JFQVRFIERBVEFC QVNFIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYjE7CitcYyByZWdyZXNzaW9uX3N0 YXRpc3RpY192YWN1dW1fZGI7CisKIC0tIGNvbmRpdGlvIHNpbmUgcXVhIG5vbgogU0hPVyB0 cmFja19jb3VudHM7ICAtLSBtdXN0IGJlIG9uCiAtLSBub3QgZW5hYmxlZCBieSBkZWZhdWx0 LCBidXQgd2Ugd2FudCB0byB0ZXN0IGl0Li4uCkBAIC0xNTUsNCArMTU5LDY0IEBAIFZBQ1VV TSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCkgdmVzdGF0OwogU0VMRUNU IHBhZ2VzX2Zyb3plbiA9IDpwZiBBUyBwYWdlc19mcm96ZW4scGFnZXNfYWxsX3Zpc2libGUg PSA6cHYgQVMgcGFnZXNfYWxsX3Zpc2libGUscmV2X2FsbF9mcm96ZW5fcGFnZXMgPSA6aGFm cCBBUyByZXZfYWxsX2Zyb3plbl9wYWdlcyxyZXZfYWxsX3Zpc2libGVfcGFnZXMgPSA6aGF2 cCBBUyByZXZfYWxsX3Zpc2libGVfcGFnZXMKIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVz IFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0JzsKIAotRFJPUCBUQUJMRSB2ZXN0YXQgQ0FTQ0FE RTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCistLSBOb3cgY2hlY2sgdmFjdXVtIHN0 YXRpc3RpY3MgZm9yIGN1cnJlbnQgZGF0YWJhc2UKK1NFTEVDVCBkYm5hbWUsCisgICAgICAg ZGJfYmxrc19oaXQgPiAwIEFTIGRiX2Jsa3NfaGl0LAorICAgICAgIHRvdGFsX2Jsa3NfZGly dGllZCA+IDAgQVMgdG90YWxfYmxrc19kaXJ0aWVkLAorICAgICAgIHRvdGFsX2Jsa3Nfd3Jp dHRlbiA+IDAgQVMgdG90YWxfYmxrc193cml0dGVuLAorICAgICAgIHdhbF9yZWNvcmRzID4g MCBBUyB3YWxfcmVjb3JkcywKKyAgICAgICB3YWxfZnBpID4gMCBBUyB3YWxfZnBpLAorICAg ICAgIHdhbF9ieXRlcyA+IDAgQVMgd2FsX2J5dGVzLAorICAgICAgIHVzZXJfdGltZSA+IDAg QVMgdXNlcl90aW1lLAorICAgICAgIHRvdGFsX3RpbWUgPiAwIEFTIHRvdGFsX3RpbWUKK0ZS T00KK3BnX3N0YXRfdmFjdXVtX2RhdGFiYXNlCitXSEVSRSBkYm5hbWUgPSBjdXJyZW50X2Rh dGFiYXNlKCk7CisKK0RST1AgVEFCTEUgdmVzdGF0IENBU0NBREU7CisKKy0tIGVuc3VyZSBw ZW5kaW5nIHN0YXRzIGFyZSBmbHVzaGVkCitTRUxFQ1QgcGdfc3RhdF9mb3JjZV9uZXh0X2Zs dXNoKCk7CisKK0NSRUFURSBUQUJMRSB2ZXN0YXQgKHggaW50KSBXSVRIIChhdXRvdmFjdXVt X2VuYWJsZWQgPSBvZmYsIGZpbGxmYWN0b3IgPSAxMCk7CitJTlNFUlQgSU5UTyB2ZXN0YXQg U0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw6c2FtcGxlX3NpemUpIGFzIHg7CitB TkFMWVpFIHZlc3RhdDsKK1VQREFURSB2ZXN0YXQgU0VUIHggPSAxMDAwMTsKK1ZBQ1VVTSAo UEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCkgdmVzdGF0OworCitcYyByZWdy ZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGIxOworCistLSBOb3cgY2hlY2sgdmFjdXVtIHN0 YXRpc3RpY3MgZm9yIHBvc3RncmVzIGRhdGFiYXNlIGZyb20gYW5vdGhlciBkYXRhYmFzZQor U0VMRUNUIGRibmFtZSwKKyAgICAgICBkYl9ibGtzX2hpdCA+IDAgQVMgZGJfYmxrc19oaXQs CisgICAgICAgdG90YWxfYmxrc19kaXJ0aWVkID4gMCBBUyB0b3RhbF9ibGtzX2RpcnRpZWQs CisgICAgICAgdG90YWxfYmxrc193cml0dGVuID4gMCBBUyB0b3RhbF9ibGtzX3dyaXR0ZW4s CisgICAgICAgd2FsX3JlY29yZHMgPiAwIEFTIHdhbF9yZWNvcmRzLAorICAgICAgIHdhbF9m cGkgPiAwIEFTIHdhbF9mcGksCisgICAgICAgd2FsX2J5dGVzID4gMCBBUyB3YWxfYnl0ZXMs CisgICAgICAgdXNlcl90aW1lID4gMCBBUyB1c2VyX3RpbWUsCisgICAgICAgdG90YWxfdGlt ZSA+IDAgQVMgdG90YWxfdGltZQorRlJPTQorcGdfc3RhdF92YWN1dW1fZGF0YWJhc2UKK1dI RVJFIGRibmFtZSA9ICdyZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGInOworCitcYyBy ZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGIKKworUkVTRVQgdmFjdXVtX2ZyZWV6ZV9t aW5fYWdlOworUkVTRVQgdmFjdXVtX2ZyZWV6ZV90YWJsZV9hZ2U7CitEUk9QIFRBQkxFIHZl c3RhdCBDQVNDQURFOworCitcYyByZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGIxOwor U0VMRUNUIGNvdW50KCopCitGUk9NIHBnX2RhdGFiYXNlIGQKK0NST1NTIEpPSU4gcGdfc3Rh dF92YWN1dW1fdGFibGVzKDApCitXSEVSRSBvaWQgPSAwOyAtLSBtdXN0IGJlIDAKKworU0VM RUNUIGNvdW50KCopCitGUk9NIHBnX2RhdGFiYXNlIGQKK0NST1NTIEpPSU4gcGdfc3RhdF92 YWN1dW1fZGF0YWJhc2UoMCkKK1dIRVJFIG9pZCA9IDA7IC0tIG11c3QgYmUgMAorCitcYyBw b3N0Z3JlcworRFJPUCBEQVRBQkFTRSByZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGIx OworRFJPUCBEQVRBQkFTRSByZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGI7Ci0tIAoy LjM0LjEKCg== --------------QJIinAs2ilH4KN1sjrAA0vMB Content-Type: text/x-patch; charset=UTF-8; name="v6-0004-Add-documentation-about-the-system-views-that-are-us.patch" Content-Disposition: attachment; filename*0="v6-0004-Add-documentation-about-the-system-views-that-are-us"; filename*1=".patch" Content-Transfer-Encoding: base64 RnJvbSAwY2JiNzQ5YzI0YjNjNGVlOTg5MWMwNzhhNDkwNmVlM2YyNGRhNzYyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogU3VuLCAyNSBBdWcgMjAyNCAxNzo0Nzo1NSArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggNC80XSBBZGQgZG9jdW1lbnRhdGlvbiBhYm91dCB0aGUgc3lzdGVtIHZp ZXdzIHRoYXQgYXJlIHVzZWQgaW4KICB0aGUgbWFjaGluZXJ5IG9mIHZhY3V1bSBzdGF0aXN0 aWNzLgoKLS0tCiBkb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwgfCA3NDcgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNzQ3IGluc2Vy dGlvbnMoKykKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwKaW5kZXggNjM0YTRjMGZhYjQuLjhj YmNjZGM0YTRkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sCkBAIC01MDY0LDQgKzUwNjQs NzUxIEBAIFNFTEVDVCAqIEZST00gcGdfbG9ja3MgcGwgTEVGVCBKT0lOIHBnX3ByZXBhcmVk X3hhY3RzIHBweAogICA8L3RhYmxlPgogIDwvc2VjdDE+CiAKKzxzZWN0MSBpZD0idmlldy1w Zy1zdGF0cy12YWN1dW0tZGF0YWJhc2UiPgorICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfc3Rh dF92YWN1dW1fZGF0YWJhc2U8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJt IHpvbmU9InZpZXctcGctc3RhdHMtdmFjdXVtLWRhdGFiYXNlIj4KKyAgIDxwcmltYXJ5PnBn X3N0YXRfdmFjdXVtX2RhdGFiYXNlPC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8 cGFyYT4KKyAgIFRoZSB2aWV3IDxzdHJ1Y3RuYW1lPnBnX3N0YXRfdmFjdXVtX2RhdGFiYXNl PC9zdHJ1Y3RuYW1lPiB3aWxsIGNvbnRhaW4KKyAgIG9uZSByb3cgZm9yIGVhY2ggZGF0YWJh c2UgaW4gdGhlIGN1cnJlbnQgY2x1c3Rlciwgc2hvd2luZyBzdGF0aXN0aWNzIGFib3V0Cisg ICB2YWN1dW1pbmcgdGhhdCBkYXRhYmFzZS4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAg IDx0aXRsZT48c3RydWN0bmFtZT5wZ19zdGF0X3ZhY3V1bV9kYXRhYmFzZTwvc3RydWN0bmFt ZT4gQ29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4K KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9k eT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PmRiaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICBPSUQgb2YgYSBkYXRhYmFzZQorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9ibGtzX3JlYWQ8L3N0cnVjdGZpZWxkPiA8dHlw ZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51 bWJlciBvZiBkYXRhYmFzZSBibG9ja3MgcmVhZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAg ICAgICBwZXJmb3JtZWQgb24gdGhpcyBkYXRhYmFzZQorICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD50b3RhbF9ibGtzX2hpdDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9m IHRpbWVzIGRhdGFiYXNlIGJsb2NrcyB3ZXJlIGZvdW5kIGluIHRoZQorICAgICAgICBidWZm ZXIgY2FjaGUgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRo aXMgZGF0YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxf Ymxrc19kaXJ0aWVkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGF0YWJhc2UgYmxvY2tz IGRpcnRpZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRo aXMgZGF0YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxf Ymxrc193cml0dGVuPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGF0YWJhc2UgYmxvY2tz IHdyaXR0ZW4gYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRo aXMgZGF0YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX3Jl Y29yZHM8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgIFRvdGFsIG51bWJlciBvZiBXQUwgcmVjb3JkcyBnZW5l cmF0ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMg ZGF0YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX2ZwaTwv c3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICAgVG90YWwgbnVtYmVyIG9mIFdBTCBmdWxsIHBhZ2UgaW1hZ2VzIGdl bmVyYXRlZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhp cyBkYXRhYmFzZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD53YWxfYnl0 ZXM8L3N0cnVjdGZpZWxkPiA8dHlwZT5udW1lcmljPC90eXBlPgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgIFRvdGFsIGFtb3VudCBvZiBXQUwgYnl0ZXMgZ2VuZXJh dGVkIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIGRh dGFiYXNlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJv dz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmJsa19yZWFkX3Rp bWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCByZWFkaW5nIGRhdGFiYXNlIGJsb2Nr cyBieSB2YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24KKyAgICAgICAgdGhpcyBkYXRh YmFzZSwgaW4gbWlsbGlzZWNvbmRzIChpZiA8eHJlZiBsaW5rZW5kPSJndWMtdHJhY2staW8t dGltaW5nIi8+IGlzIGVuYWJsZWQsCisgICAgICAgIG90aGVyd2lzZSB6ZXJvKQorICAgICAg PC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ibGtfd3JpdGVfdGltZTwvc3RydWN0Zmll bGQ+IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgICBUaW1lIHNwZW50IHdyaXRpbmcgZGF0YWJhc2UgYmxvY2tzIGJ5IHZhY3V1bSBv cGVyYXRpb25zIHBlcmZvcm1lZCBvbgorICAgICAgICB0aGlzIGRhdGFiYXNlLCBpbiBtaWxs aXNlY29uZHMgKGlmIDx4cmVmIGxpbmtlbmQ9Imd1Yy10cmFjay1pby10aW1pbmciLz4gaXMg ZW5hYmxlZCwKKyAgICAgICAgb3RoZXJ3aXNlIHplcm8pCisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPmRlbGF5X3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVu dCBzbGVlcGluZyBpbiBhIHZhY3V1bSBkZWxheSBwb2ludCBieSB2YWN1dW0gb3BlcmF0aW9u cyBwZXJmb3JtZWQgb24KKyAgICAgICAgdGhpcyBkYXRhYmFzZSwgaW4gbWlsbGlzZWNvbmRz IChzZWUgPHhyZWYgbGlua2VuZD0icnVudGltZS1jb25maWctcmVzb3VyY2UtdmFjdXVtLWNv c3QiLz4KKyAgICAgICAgZm9yIGRldGFpbHMpCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPnN5c3RlbV90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBl PgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFN5c3RlbSBDUFUgdGlt ZSBvZiB2YWN1dW1pbmcgdGhpcyBkYXRhYmFzZSwgaW4gbWlsbGlzZWNvbmRzCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnVzZXJfdGltZTwvc3RydWN0ZmllbGQ+IDx0 eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg ICBVc2VyIENQVSB0aW1lIG9mIHZhY3V1bWluZyB0aGlzIGRhdGFiYXNlLCBpbiBtaWxsaXNl Y29uZHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfdGltZTwv c3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgICBUb3RhbCB0aW1lIG9mIHZhY3V1bWluZyB0aGlzIGRhdGFiYXNl LCBpbiBtaWxsaXNlY29uZHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ aW50ZXJydXB0czwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRpbWVzIHZhY3V1bSBvcGVy YXRpb25zIHBlcmZvcm1lZCBvbiB0aGlzIGRhdGFiYXNlCisgICAgICAgIHdlcmUgaW50ZXJy dXB0ZWQgb24gYW55IGVycm9ycworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgor CisgIDxzZWN0MSBpZD0idmlldy1wZy1zdGF0cy12YWN1dW0taW5kZXhlcyI+CisgIDx0aXRs ZT48c3RydWN0bmFtZT5wZ19zdGF0X3ZhY3V1bV9pbmRleGVzPC9zdHJ1Y3RuYW1lPjwvdGl0 bGU+CisKKyAgPGluZGV4dGVybSB6b25lPSJ2aWV3LXBnLXN0YXRzLXZhY3V1bS1pbmRleGVz Ij4KKyAgIDxwcmltYXJ5PnBnX3N0YXRfdmFjdXVtX2luZGV4ZXM8L3ByaW1hcnk+CisgIDwv aW5kZXh0ZXJtPgorCisgIDxwYXJhPgorICAgVGhlIHZpZXcgPHN0cnVjdG5hbWU+cGdfc3Rh dF92YWN1dW1faW5kZXhlczwvc3RydWN0bmFtZT4gd2lsbCBjb250YWluCisgICBvbmUgcm93 IGZvciBlYWNoIGluZGV4IGluIHRoZSBjdXJyZW50IGRhdGFiYXNlIChpbmNsdWRpbmcgVE9B U1QKKyAgIHRhYmxlIGluZGV4ZXMpLCBzaG93aW5nIHN0YXRpc3RpY3MgYWJvdXQgdmFjdXVt aW5nIHRoYXQgc3BlY2lmaWMgaW5kZXguCisgIDwvcGFyYT4KKworICA8dGFibGU+CisgICA8 dGl0bGU+PHN0cnVjdG5hbWU+cGdfc3RhdF92YWN1dW1faW5kZXhlczwvc3RydWN0bmFtZT4g Q29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4K KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnJl bGlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgT0lEIG9mIGFuIGluZGV4CisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPnNjaGVtYTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTmFtZSBvZiB0aGUgc2No ZW1hIHRoaXMgaW5kZXggaXMgaW4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+cmVsbmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoaXMgaW5kZXgKKyAgICAgIDwv cGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfYmxrc19yZWFkPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgICBOdW1iZXIgb2YgZGF0YWJhc2UgYmxvY2tzIHJlYWQgYnkgdmFjdXVtIG9wZXJhdGlv bnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgaW5kZXgKKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAg ICAgICA8c3RydWN0ZmllbGQ+dG90YWxfYmxrc19oaXQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5p bnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJl ciBvZiB0aW1lcyBkYXRhYmFzZSBibG9ja3Mgd2VyZSBmb3VuZCBpbiB0aGUKKyAgICAgICAg YnVmZmVyIGNhY2hlIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBv biB0aGlzIGluZGV4CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFs X2Jsa3NfZGlydGllZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIGRhdGFiYXNlIGJsb2Nr cyBkaXJ0aWVkIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0 aGlzIGluZGV4CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX2Js a3Nfd3JpdHRlbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIGRhdGFiYXNlIGJsb2NrcyB3 cml0dGVuIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlz IGluZGV4CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJv dz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnJlbF9ibGtzX3Jl YWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiBibG9ja3MgdmFjdXVtIG9wZXJhdGlvbnMg cmVhZCBmcm9tIHRoaXMKKyAgICAgICAgaW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+cmVsX2Jsa3NfaGl0PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlw ZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgdGlt ZXMgYmxvY2tzIG9mIHRoaXMgaW5kZXggd2VyZSBhbHJlYWR5IGZvdW5kCisgICAgICAgIGlu IHRoZSBidWZmZXIgY2FjaGUgYnkgdmFjdXVtIG9wZXJhdGlvbnMsIHNvIHRoYXQgYSByZWFk IHdhcyBub3QgbmVjZXNzYXJ5CisgICAgICAgICh0aGlzIG9ubHkgaW5jbHVkZXMgaGl0cyBp biB0aGUKKyAgICAgICAgcHJvamVjdDsgYnVmZmVyIGNhY2hlLCBub3QgdGhlIG9wZXJhdGlu ZyBzeXN0ZW0ncyBmaWxlIHN5c3RlbSBjYWNoZSkKKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+cGFnZXNfZGVsZXRlZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHBh Z2VzIGRlbGV0ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9u IHRoaXMgaW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dHVwbGVz X2RlbGV0ZWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiBkZWFkIHR1cGxlcyB2YWN1dW0g b3BlcmF0aW9ucyBkZWxldGVkIGZyb20gdGhpcyBpbmRleAorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD53YWxfcmVjb3Jkczwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVG90YWwgbnVt YmVyIG9mIFdBTCByZWNvcmRzIGdlbmVyYXRlZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAg ICAgICBwZXJmb3JtZWQgb24gdGhpcyBpbmRleAorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD53YWxfZnBpPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUb3RhbCBudW1iZXIgb2YgV0FM IGZ1bGwgcGFnZSBpbWFnZXMgZ2VuZXJhdGVkIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAg ICAgIHBlcmZvcm1lZCBvbiB0aGlzIGluZGV4CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPndhbF9ieXRlczwvc3RydWN0ZmllbGQ+IDx0eXBlPm51bWVyaWM8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVG90YWwgYW1vdW50IG9m IFdBTCBieXRlcyBnZW5lcmF0ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVy Zm9ybWVkIG9uIHRoaXMgaW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+YmxrX3JlYWRfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCByZWFkaW5nIGRh dGFiYXNlIGJsb2NrcyBieSB2YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24KKyAgICAg ICAgdGhpcyBpbmRleCwgaW4gbWlsbGlzZWNvbmRzIChpZiA8eHJlZiBsaW5rZW5kPSJndWMt dHJhY2staW8tdGltaW5nIi8+IGlzIGVuYWJsZWQsCisgICAgICAgIG90aGVyd2lzZSB6ZXJv KQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ibGtfd3JpdGVfdGltZTwv c3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCB3cml0aW5nIGRhdGFiYXNlIGJsb2NrcyBieSB2 YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24KKyAgICAgICAgdGhpcyBpbmRleCwgaW4g bWlsbGlzZWNvbmRzIChpZiA8eHJlZiBsaW5rZW5kPSJndWMtdHJhY2staW8tdGltaW5nIi8+ IGlzIGVuYWJsZWQsCisgICAgICAgIG90aGVyd2lzZSB6ZXJvKQorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5kZWxheV90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Zmxv YXQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRpbWUg c3BlbnQgc2xlZXBpbmcgaW4gYSB2YWN1dW0gZGVsYXkgcG9pbnQgYnkgdmFjdXVtIG9wZXJh dGlvbnMgcGVyZm9ybWVkIG9uCisgICAgICAgIHRoaXMgaW5kZXgsIGluIG1pbGxpc2Vjb25k cyAoc2VlIDx4cmVmIGxpbmtlbmQ9InJ1bnRpbWUtY29uZmlnLXJlc291cmNlLXZhY3V1bS1j b3N0Ii8+CisgICAgICAgIGZvciBkZXRhaWxzKQorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD5zeXN0ZW1fdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlw ZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBTeXN0ZW0gQ1BVIHRp bWUgb2YgdmFjdXVtaW5nIHRoaXMgaW5kZXgsIGluIG1pbGxpc2Vjb25kcworICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD51c2VyX3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlw ZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAg VXNlciBDUFUgdGltZSBvZiB2YWN1dW1pbmcgdGhpcyBpbmRleCwgaW4gbWlsbGlzZWNvbmRz CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX3RpbWU8L3N0cnVj dGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICAgVG90YWwgdGltZSBvZiB2YWN1dW1pbmcgdGhpcyBpbmRleCwgaW4gbWls bGlzZWNvbmRzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmludGVycnVw dHM8L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRpbWVzIHZhY3V1bSBvcGVyYXRpb25z IHBlcmZvcm1lZCBvbiB0aGlzIGluZGV4CisgICAgICAgIHdlcmUgaW50ZXJydXB0ZWQgb24g YW55IGVycm9ycworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwv dGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3Qx IGlkPSJ2aWV3LXBnLXN0YXRzLXZhY3V1bS10YWJsZXMiPgorICA8dGl0bGU+PHN0cnVjdG5h bWU+cGdfc3RhdF92YWN1dW1fdGFibGVzPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGlu ZGV4dGVybSB6b25lPSJ2aWV3LXBnLXN0YXRzLXZhY3V1bS10YWJsZXMiPgorICAgPHByaW1h cnk+cGdfc3RhdF92YWN1dW1fdGFibGVzPC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKwor ICA8cGFyYT4KKyAgIFRoZSB2aWV3IDxzdHJ1Y3RuYW1lPnBnX3N0YXRfdmFjdXVtX3RhYmxl czwvc3RydWN0bmFtZT4gd2lsbCBjb250YWluCisgICBvbmUgcm93IGZvciBlYWNoIHRhYmxl IGluIHRoZSBjdXJyZW50IGRhdGFiYXNlIChpbmNsdWRpbmcgVE9BU1QKKyAgIHRhYmxlcyks IHNob3dpbmcgc3RhdGlzdGljcyBhYm91dCB2YWN1dW1pbmcgdGhhdCBzcGVjaWZpYyB0YWJs ZS4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19z dGF0X3ZhY3V1bV90YWJsZXM8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRn cm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5yZWxpZDwvc3RydWN0ZmllbGQ+IDx0eXBl Pm9pZDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE9JRCBv ZiBhIHRhYmxlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnNjaGVtYTwv c3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICAgTmFtZSBvZiB0aGUgc2NoZW1hIHRoaXMgdGFibGUgaXMgaW4KKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cmVsbmFtZTwvc3RydWN0ZmllbGQ+ IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBOYW1lIG9mIHRoaXMgdGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+dG90YWxfYmxrc19yZWFkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGF0YWJhc2Ug YmxvY2tzIHJlYWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9u IHRoaXMgdGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxf Ymxrc19oaXQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiB0aW1lcyBkYXRhYmFzZSBibG9j a3Mgd2VyZSBmb3VuZCBpbiB0aGUKKyAgICAgICAgYnVmZmVyIGNhY2hlIGJ5IHZhY3V1bSBv cGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIHRhYmxlCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX2Jsa3NfZGlydGllZDwvc3RydWN0Zmll bGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICAgTnVtYmVyIG9mIGRhdGFiYXNlIGJsb2NrcyBkaXJ0aWVkIGJ5IHZhY3V1bSBvcGVy YXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIHRhYmxlCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX2Jsa3Nfd3JpdHRlbjwvc3RydWN0ZmllbGQ+ IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICAgTnVtYmVyIG9mIGRhdGFiYXNlIGJsb2NrcyB3cml0dGVuIGJ5IHZhY3V1bSBvcGVyYXRp b25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIHRhYmxlCisgICAgICA8L3BhcmE+PC9l bnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPnJlbF9ibGtzX3JlYWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5p bnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJl ciBvZiBibG9ja3MgdmFjdXVtIG9wZXJhdGlvbnMgcmVhZCBmcm9tIHRoaXMKKyAgICAgICAg dGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cmVsX2Jsa3NfaGl0 PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgdGltZXMgYmxvY2tzIG9mIHRoaXMgdGFibGUg d2VyZSBhbHJlYWR5IGZvdW5kCisgICAgICAgIGluIHRoZSBidWZmZXIgY2FjaGUgYnkgdmFj dXVtIG9wZXJhdGlvbnMsIHNvIHRoYXQgYSByZWFkIHdhcyBub3QgbmVjZXNzYXJ5CisgICAg ICAgICh0aGlzIG9ubHkgaW5jbHVkZXMgaGl0cyBpbiB0aGUKKyAgICAgICAgcHJvamVjdDsg YnVmZmVyIGNhY2hlLCBub3QgdGhlIG9wZXJhdGluZyBzeXN0ZW0ncyBmaWxlIHN5c3RlbSBj YWNoZSkKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGFnZXNfc2Nhbm5l ZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHBhZ2VzIGV4YW1pbmVkIGJ5IHZhY3V1bSBv cGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIHRhYmxlCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBhZ2VzX3JlbW92ZWQ8L3N0cnVjdGZpZWxkPiA8 dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg IE51bWJlciBvZiBwYWdlcyByZW1vdmVkIGZyb20gdGhlIHBoeXNpY2FsIHN0b3JhZ2UgYnkg dmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgdGFibGUKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGFnZXNfZnJvemVuPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgICBOdW1iZXIgb2YgdGltZXMgdmFjdXVtIG9wZXJhdGlvbnMgbWFya2VkIHBhZ2Vz IG9mIHRoaXMgdGFibGUKKyAgICAgICAgYXMgYWxsLWZyb3plbiBpbiB0aGUgdmlzaWJpbGl0 eSBtYXAKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGFnZXNfYWxsX3Zp c2libGU8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiB0aW1lcyB2YWN1dW0gb3BlcmF0aW9u cyBtYXJrZWQgcGFnZXMgb2YgdGhpcyB0YWJsZQorICAgICAgICBhcyBhbGwtdmlzaWJsZSBp biB0aGUgdmlzaWJpbGl0eSBtYXAKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+dHVwbGVzX2RlbGV0ZWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiBkZWFkIHR1cGxl cyB2YWN1dW0gb3BlcmF0aW9ucyBkZWxldGVkIGZyb20gdGhpcyB0YWJsZQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50dXBsZXNfZnJvemVuPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg ICBOdW1iZXIgb2YgdHVwbGVzIG9mIHRoaXMgdGFibGUgdGhhdCB2YWN1dW0gb3BlcmF0aW9u cyBtYXJrZWQgYXMKKyAgICAgICAgZnJvemVuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPmRlYWRfdHVwbGVzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4K KyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGVhZCB0 dXBsZXMgdmFjdXVtIG9wZXJhdGlvbnMgbGVmdCBpbiB0aGlzIHRhYmxlIGR1ZQorICAgICAg ICB0byB0aGVpciB2aXNpYmlsaXR5IGluIHRyYW5zYWN0aW9ucworICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5pbmRleF92YWN1dW1fY291bnQ8L3N0cnVjdGZpZWxkPiA8 dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg IE51bWJlciBvZiB0aW1lcyBpbmRleGVzIG9uIHRoaXMgdGFibGUgd2VyZSB2YWN1dW1lZAor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5yZXZfYWxsX2Zyb3plbl9wYWdl czwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRpbWVzIHRoZSBhbGwtZnJvemVuIG1hcmsg aW4gdGhlIHZpc2liaWxpdHkgbWFwCisgICAgICAgIHdhcyByZW1vdmVkIGZvciBwYWdlcyBv ZiB0aGlzIHRhYmxlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnJldl9h bGxfdmlzaWJsZV9wYWdlczwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRpbWVzIHRoZSBh bGwtdmlzaWJsZSBtYXJrIGluIHRoZSB2aXNpYmlsaXR5IG1hcAorICAgICAgICB3YXMgcmVt b3ZlZCBmb3IgcGFnZXMgb2YgdGhpcyB0YWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD53YWxfcmVjb3Jkczwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVG90YWwgbnVtYmVyIG9m IFdBTCByZWNvcmRzIGdlbmVyYXRlZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBw ZXJmb3JtZWQgb24gdGhpcyB0YWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD53YWxfZnBpPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUb3RhbCBudW1iZXIgb2YgV0FMIGZ1bGwg cGFnZSBpbWFnZXMgZ2VuZXJhdGVkIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBl cmZvcm1lZCBvbiB0aGlzIHRhYmxlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPndhbF9ieXRlczwvc3RydWN0ZmllbGQ+IDx0eXBlPm51bWVyaWM8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVG90YWwgYW1vdW50IG9mIFdBTCBi eXRlcyBnZW5lcmF0ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVk IG9uIHRoaXMgdGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Ymxr X3JlYWRfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCByZWFkaW5nIGRhdGFiYXNl IGJsb2NrcyBieSB2YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24KKyAgICAgICAgdGhp cyB0YWJsZSwgaW4gbWlsbGlzZWNvbmRzIChpZiA8eHJlZiBsaW5rZW5kPSJndWMtdHJhY2st aW8tdGltaW5nIi8+IGlzIGVuYWJsZWQsCisgICAgICAgIG90aGVyd2lzZSB6ZXJvKQorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ibGtfd3JpdGVfdGltZTwvc3RydWN0 ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICAgVGltZSBzcGVudCB3cml0aW5nIGRhdGFiYXNlIGJsb2NrcyBieSB2YWN1dW0g b3BlcmF0aW9ucyBwZXJmb3JtZWQgb24KKyAgICAgICAgdGhpcyB0YWJsZSwgaW4gbWlsbGlz ZWNvbmRzIChpZiA8eHJlZiBsaW5rZW5kPSJndWMtdHJhY2staW8tdGltaW5nIi8+IGlzIGVu YWJsZWQsCisgICAgICAgIG90aGVyd2lzZSB6ZXJvKQorICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD5kZWxheV90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRpbWUgc3BlbnQg c2xlZXBpbmcgaW4gYSB2YWN1dW0gZGVsYXkgcG9pbnQgYnkgdmFjdXVtIG9wZXJhdGlvbnMg cGVyZm9ybWVkIG9uCisgICAgICAgIHRoaXMgdGFibGUsIGluIG1pbGxpc2Vjb25kcyAoc2Vl IDx4cmVmIGxpbmtlbmQ9InJ1bnRpbWUtY29uZmlnLXJlc291cmNlLXZhY3V1bS1jb3N0Ii8+ CisgICAgICAgIGZvciBkZXRhaWxzKQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD5zeXN0ZW1fdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBTeXN0ZW0gQ1BVIHRpbWUgb2Yg dmFjdXVtaW5nIHRoaXMgdGFibGUsIGluIG1pbGxpc2Vjb25kcworICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD51c2VyX3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9h dDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVXNlciBD UFUgdGltZSBvZiB2YWN1dW1pbmcgdGhpcyB0YWJsZSwgaW4gbWlsbGlzZWNvbmRzCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX3RpbWU8L3N0cnVjdGZpZWxk PiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICAgVG90YWwgdGltZSBvZiB2YWN1dW1pbmcgdGhpcyB0YWJsZSwgaW4gbWlsbGlzZWNv bmRzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmludGVycnVwdHM8L3N0 cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRpbWVzIHZhY3V1bSBvcGVyYXRpb25zIHBlcmZv cm1lZCBvbiB0aGlzIHRhYmxlCisgICAgICAgIHdlcmUgaW50ZXJydXB0ZWQgb24gYW55IGVy cm9ycworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+ CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyAgPHBhcmE+Q29sdW1ucyA8c3RydWN0Zmll bGQ+dG90YWxfKjwvc3RydWN0ZmllbGQ+LCA8c3RydWN0ZmllbGQ+d2FsXyo8L3N0cnVjdGZp ZWxkPgorICAgIGFuZCA8c3RydWN0ZmllbGQ+YmxrXyo8L3N0cnVjdGZpZWxkPiBpbmNsdWRl IGRhdGEgb24gdmFjdXVtaW5nIGluZGV4ZXMgb24gdGhpcyB0YWJsZSwgd2hpbGUgY29sdW1u cworICAgIDxzdHJ1Y3RmaWVsZD5zeXN0ZW1fdGltZTwvc3RydWN0ZmllbGQ+IGFuZCA8c3Ry dWN0ZmllbGQ+dXNlcl90aW1lPC9zdHJ1Y3RmaWVsZD4gb25seSBpbmNsdWRlIGRhdGEKKyAg ICBvbiB2YWN1dW1pbmcgdGhlIGhlYXAuPC9wYXJhPgorIDwvc2VjdDE+CisKIDwvY2hhcHRl cj4KLS0gCjIuMzQuMQoK --------------QJIinAs2ilH4KN1sjrAA0vMB--