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 1sWdnR-00GP9s-7F for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Jul 2024 15:20:53 +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 1sWdnP-005gRu-DM for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Jul 2024 15:20:51 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sWdnO-005gRg-DM for pgsql-hackers@lists.postgresql.org; Wed, 24 Jul 2024 15:20:50 +0000 Received: from mail-yb1-xb2d.google.com ([2607:f8b0:4864:20::b2d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sWdn9-001FNJ-87 for pgsql-hackers@lists.postgresql.org; Wed, 24 Jul 2024 15:20:49 +0000 Received: by mail-yb1-xb2d.google.com with SMTP id 3f1490d57ef6-e0871f82ff8so4533308276.3 for ; Wed, 24 Jul 2024 08:20:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721834433; x=1722439233; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=h1owxTavBfFucCa83qnO26yRHAg7ShGVsg6vwPyd7Zc=; b=nqxrjDkheQV1P3Uf5oeujr40TpVHmaWTouQ5tMg+hiJf31Vb39ZDYfHsa+QmKUG0qj 5LlC7qb76gUNLKWr6N38K13xivuk/mrpewEwnO7bj9fNT26/vnDxzGqkZdrm9id2rid7 08lw0gSq5pCSu/TpSKhOembBi2iO+kY+ktPrg2spkxM8XQw7SQquGpxTof6eyfVrCoQg 76JPcZCL2ATPlQJmb+u3JFaUZ+RLPvy+BUVk9Afo0AOKY5DMvRtfj1juzf4mMdCVSAK9 PGUIEWWRg8ewh53yLWm9VKEnBwjl+tfXB2EutW59vMOAaf7VDagYnxTPVxBh8Ga1CPAV HRPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721834433; x=1722439233; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=h1owxTavBfFucCa83qnO26yRHAg7ShGVsg6vwPyd7Zc=; b=KZ24QxkwFwgQ/xpiVh5pOaClRCplAPhX9nW/2oFjc0M1bihcyRNR5JmSgGo59eylhg wcfqg8CAjNuxTlFXvvFQUPoOuRHfutE7YY/y5NK8HldBPlfpb1eH9o3m+vNdI0Jsv7uL h50mX+AF354J6W7AR8ujdRCBoN6gVaq7bfAysrFea4gNXOwW+x2oq4Sb2WqsEJSEpTdu WNurx2pKFKM8fuDpot8f5XrCUzg5eEeXUNOEDeb0xiJDcZGhKMQxp9mV7RXnpIgRQ/f7 B720Ssb6ucm/2rr0l1zRBrNuw3djwpC+ufHWZfPPaz4ni39hBkaBYPx4LPTRtJjQPdPV xvMQ== X-Forwarded-Encrypted: i=1; AJvYcCXo53tIkuotqykm4QlnFS4C+cxCeI6lU+u68+7CzO8eXuFI925++8f9MRUS9M6KGn0cLS8cq06kVKtNwKk8uxzbMeg3oQQgREPV8dJT/YS6ORA1 X-Gm-Message-State: AOJu0YybH3a07RFdiuf0I4am+2+Doyr+nQKY97xZewQaP5SD2pe+RB6w SAA9NH/cIZtIAwNOkdVntDavLZEMS3PDSj95wp/47M7jPOO/tsxaWDi21nUxEmatJMj6tsiw3/M fIAJUN5pNjZxw3aeUZ3bRNJYv/K8= X-Google-Smtp-Source: AGHT+IGu0+FeJwhPzDw1xQAkWkmJsVS5MGgElhkP3HnfLmVNOhdNoFIKugpIU6h0wsUXhfN1H7b8bPeVkxoSSYA9YOU= X-Received: by 2002:a05:6902:1005:b0:e0b:1191:3c9f with SMTP id 3f1490d57ef6-e0b11914fbcmr2019078276.39.1721834433096; Wed, 24 Jul 2024 08:20:33 -0700 (PDT) MIME-Version: 1.0 References: <20200924035637.GF28585@paquier.xyz> <20201001033824.GC8130@paquier.xyz> <51a9a68e8a998d04df17417d45c1dbd4@xs4all.nl> <89817942c99da01cd5e7850fe418436b@xs4all.nl> <56ca532c37eb0b540961f74a7bd5db39@xs4all.nl> <8181bd3abc647bdae5a4f78e71e62478a98c75f4.camel@cybertec.at> <9e67d49deb18270eddb95e602c83f02b98459843.camel@cybertec.at> In-Reply-To: <9e67d49deb18270eddb95e602c83f02b98459843.camel@cybertec.at> From: Pavel Stehule Date: Wed, 24 Jul 2024 17:19:55 +0200 Message-ID: Subject: Re: proposal: schema variables To: Laurenz Albe Cc: Erik Rijkers , Michael Paquier , Zhihong Yu , Amit Kapila , DUVAL REMI , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000bfc92e061dffd1c5" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000bfc92e061dffd1c5 Content-Type: multipart/alternative; boundary="000000000000bfc92b061dffd1c3" --000000000000bfc92b061dffd1c3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi =C3=BAt 23. 7. 2024 v 16:34 odes=C3=ADlatel Laurenz Albe napsal: > Thanks for the fixes and the new patch set! > I think that this would be a very valuable feature! > > Thank you :-) > This is a very incomplete review after playing with the patch set for a > while. > > Some bugs and oddities I have found: > > "psql" support: > > \? gives > > \dV [PATTERN] list variables > > I think that should say "schema variables" to distinguish them from > psql variables. > enhanced to "list session variables" > > Running \dV when connected to an older server gives > > ERROR: relation "pg_catalog.pg_variable" does not exist > LINE 16: FROM pg_catalog.pg_variable v > ^ > > I think it would be better not to run the query and show a response lik= e > > session variables don't exist in server version 16 > there is standardized error message - and I used now <-->if (pset.sversion < 180000) <-->{ <--><-->char<--><-->sverbuf[32]; <--><-->pg_log_error("The server (version %s) does not support session variables.", <--><--><--><--><--> formatPGVersionNumber(pset.sversion, false, <--><--><--><--><--><--><--><--><--><--> sverbuf, sizeof(sverbuf))); <--><-->return true; <-->} > > The LET statement: > > CREATE VARIABLE testvar AS int4multirange[]; > LET testvar =3D '{\{[2\,7]\,[11\,13]\}}'; > ERROR: variable "laurenz.testvar" is of type int4multirange[], but > expression is of type text > LINE 1: LET testvar =3D '{\{[2\,7]\,[11\,13]\}}'; > ^ > HINT: You will need to rewrite or cast the expression. > > Sure, I can add an explicit type cast, but I think that the type should > be determined by the type of the variable. The right-hand side should = be > treated as "unknown", and the type input function should be used. > fixed - it needed set pstate->p_resolve_unknowns =3D false; I used your example in regress test > Parameter session_variables_ambiguity_warning: > > --- a/src/backend/utils/misc/guc_tables.c > +++ b/src/backend/utils/misc/guc_tables.c > @@ -1544,6 +1544,16 @@ struct config_bool ConfigureNamesBool[] =3D > false, > NULL, NULL, NULL > }, > + { > + {"session_variables_ambiguity_warning", PGC_USERSET, > DEVELOPER_OPTIONS, > + gettext_noop("Raise warning when reference to a session > variable is ambiguous."), > + NULL, > + GUC_NOT_IN_SAMPLE > + }, > + &session_variables_ambiguity_warning, > + false, > + NULL, NULL, NULL > + }, > > I think the short_desc should be "Raise a warning" (with the indefinite > article). > > DEVELOPER_OPTIONS is the wrong category. We normally use that for > parameters > that are only relevant for PostgreSQL hackers. I think it should be > CLIENT_CONN_OTHER. > changed > CREATE VARIABLE command: > > CREATE VARIABLE str AS text NOT NULL; > ERROR: session variable must have a default value, since it's > declared NOT NULL > > Perhaps this error message would be better: > > session variables declared as NOT NULL must have a default value > changed > > This is buggy: > > CREATE VARIABLE str AS text NOT NULL DEFAULT NULL; > > Ugh. > > SELECT str; > ERROR: null value is not allowed for NOT NULL session variable > "laurenz.str" > DETAIL: The result of DEFAULT expression is NULL. > > Perhaps that is a leftover from the previous coding, but I think there > need be > no check upon SELECT. It should be enough to check during CREATE > VARIABLE and > LET. > I think it is correct. When you use SELECT str, then DEFAULT expression is executed, and then the result is assigned to a variable, and there is NOT NULL guard, which raises an exception. The variable is not initialized when you run DDL, but it is initialized when you first read or write from/to the variable. The DEFAULT expression is not evaluated in DDL time. In this case, I can detect the problem in DDL time because the result is transformed to NULL node, but generally there can be SQL non immutable function, and then I need to wait until the DEFAULT expression will be evaluated - and it is time of first reading. Unfortunately, there is not an available check if some expression is NULL, that I can use in DDL time, but I have it in plpgsql_check. You can have a function CREATE OR REPLACE FUNCTION foo() RETURNS int AS $$ BEGIN RETURN NULL; END: $$ LANGUAGE plpgsql; the function is not marked as IMMUTABLE I can CREATE VARIABLE v AS int NOT NULL DEFAULT foo(); In DDL time I know nothing about result of foo() When I run SELECT v; then foo is executed, and because it is in contradiction with the NOT NULL clause, it fails. And I think it is correct= . It is consistent with PL/pgSQL. I can write (2024-07-24 11:57:33) postgres=3D# CREATE OR REPLACE FUNCTION fx() postgres-# RETURNS void AS $$ postgres$# DECLARE v int NOT NULL DEFAULT NULL; postgres$# BEGIN postgres$# END; postgres$# $$ LANGUAGE plpgsql; CREATE FUNCTION (2024-07-24 12:06:54) postgres=3D# SELECT fx(); ERROR: null value cannot be assigned to variable "v" declared NOT NULL CONTEXT: PL/pgSQL function fx() line 2 during statement block local variable initialization DDL is ok, and SELECT fails. I think so DDL should not to evaluate DEFAULT expressions - the result from this are issues described in discussion about usage 'now'::timestamp > > pg_dump support: > > The attempt to dump a database with an older version leads to > > pg_dump: error: query failed: ERROR: relation > "pg_catalog.pg_variable" does not exist > LINE 14: FROM pg_catalog.pg_variable v > ^ Dumping variables must be conditional on the server version. > > fixed, there was guard but for pg 17 > > IMMUTABLE variables: > > + > + IMMUTABLE > + > + > + The assigned value of the session variable can not be changed. > + Only if the session variable doesn't have a default value, a > single > + initialization is allowed using the LET > command. Once > + done, no further change is allowed until end of transaction > + if the session variable was created with clause ON > TRANSACTION > + END RESET, or until reset of all session variables b= y > + DISCARD VARIABLES, or until reset of all > session > + objects by command DISCARD ALL. > + > + > + > > I can see the usefulness of IMMUTABLE variables, but I am surprised tha= t > they are reset by DISCARD. What is the use case you have in mind? > The use case I can envision is an application that sets a value right > after > authentication, for use with row-level security. But then it would be > harmful > if the user could reset the variable with DISCARD. > Primary I think about IMMUTABLE variables like about some form of cache. This cache is protected against unwanted repeated write - and can help with detection of this situation. It is not a security tool primarily - there are access rights for this purpose. The scope of this cache can be different - sometimes session, sometimes transaction. When you use a pooler like pgbouncer, then the lifetime is ended by command DISCARD ALL. Moreover, after DISCARD ALL, the session should be in default state, so then any session variable should be not initialized. And there is an implementation reason too. When I handle command DISCARD VARIABLES, I just reset related memory contexts. It is quick and safe. I can imagine more strict behaviour - like impossibility to discard context or necessity to have default immutable expressions. But then this clause is not useful for connection pooling with transaction mode :-/. So current design is a compromise - if somebody wants strict behaviour, then can set default immutable expressions (by self). And then there will not be a problem with DISCARD VARIABLES. But because it supports a possibility ON TRANSACTION END RESET, then theoretically it can be used in transaction mode too without possibility to be reset by DISCARD ALL. At the end there is just one question - the DISCARD VARIABLES should support some exceptions, or the immutability of variables should have some exceptions? I can imagine the surprise so after DISCARD ALL, the immutable variable lost a value, but the same surprise can be in the moment after DISCARD ALL when the LET immutablevar statement fails. Then we have to choose a priority - DISCARD x IMMUTABLE. I prefer to have a stronger DISCARD VARIABLES command without exceptions (for semantic, for simple implementation), but I am open to discussion. If we want to support the IMMUTABLE clause, then we have to reply to the mentioned question. What do you think about it? > > Documentation: > RestoreArchive > --- a/doc/src/sgml/ddl.sgml > +++ b/doc/src/sgml/ddl.sgml > > + > + The session variables can be shadowed by column references in a > query. When > + a query contains identifiers or qualified identifiers that could > be used as > + both a session variable identifiers and as column identifier, > then the > + column identifier is preferred every time. Warnings can be > emitted when > + this situation happens by enabling configuration parameter + linkend=3D"guc-session-variables-ambiguity-warning"/>. User can > explicitly > + qualify the source object by syntax > table.column or > + variable.column. > + > > I think you mean schema.variable, not > variable.column. > fixed > Yours, > Laurenz Albe > --000000000000bfc92b061dffd1c3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi

=C3=BAt 23. 7. 2024 v=C2=A016:34 odes=C3=ADla= tel Laurenz Albe <laurenz.albe@cybertec.at> napsal:
Thanks for the fixes and the new patch set= !
I think that this would be a very valuable feature!


Thank you :-)
=C2=A0
This is a very incomplete review after playing with the patch set for a whi= le.

Some bugs and oddities I have found:

"psql" support:

=C2=A0 \? gives

=C2=A0 =C2=A0 \dV=C2=A0 =C2=A0 =C2=A0[PATTERN]=C2=A0 =C2=A0 =C2=A0 list var= iables

=C2=A0 I think that should say "schema variables" to distinguish = them from
=C2=A0 psql variables.

enhanced to &quo= t;list session variables"
=C2=A0

=C2=A0 Running \dV when connected to an older server gives

=C2=A0 =C2=A0 ERROR:=C2=A0 relation "pg_catalog.pg_variable" does= not exist
=C2=A0 =C2=A0 LINE 16: FROM pg_catalog.pg_variable v
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ^

=C2=A0 I think it would be better not to run the query and show a response = like

=C2=A0 =C2=A0 session variables don't exist in server version 16

there is standardized error message - and I u= sed now

<-->if (pset.sversion < 180000)<-->{
<--><-->char<--><-->sverbuf[32];
<--><-->pg_log_error("The server (version %s) does n= ot support session variables.",
<--><--><--><-= -><--> formatPGVersionNumber(pset.sversion, false,
<-->&l= t;--><--><--><--><--><--><--><--&= gt;<--> =C2=A0 sverbuf, sizeof(sverbuf)));
<--><-->ret= urn true;
<-->}
=C2=A0

The LET statement:

=C2=A0 =C2=A0 CREATE VARIABLE testvar AS int4multirange[];
=C2=A0 =C2=A0 LET testvar =3D '{\{[2\,7]\,[11\,13]\}}';
=C2=A0 =C2=A0 ERROR:=C2=A0 variable "laurenz.testvar" is of type = int4multirange[], but expression is of type text
=C2=A0 =C2=A0 LINE 1: LET testvar =3D '{\{[2\,7]\,[11\,13]\}}';
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 ^
=C2=A0 =C2=A0 HINT:=C2=A0 You will need to rewrite or cast the expression.<= br>
=C2=A0 Sure, I can add an explicit type cast, but I think that the type sho= uld
=C2=A0 be determined by the type of the variable.=C2=A0 The right-hand side= should be
=C2=A0 treated as "unknown", and the type input function should b= e used.

fixed - it needed set pstate-&g= t;p_resolve_unknowns =3D false;

I used your exampl= e in regress test


Parameter session_variables_ambiguity_warning:

=C2=A0 =C2=A0 --- a/src/backend/utils/misc/guc_tables.c
=C2=A0 =C2=A0 +++ b/src/backend/utils/misc/guc_tables.c
=C2=A0 =C2=A0 @@ -1544,6 +1544,16 @@ struct config_bool ConfigureNamesBool[= ] =3D
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 false,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 NULL, NULL, NULL
=C2=A0 =C2=A0 =C2=A0 =C2=A0 },
=C2=A0 =C2=A0 +=C2=A0 =C2=A0{
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 =C2=A0 =C2=A0{"session_variables_ambiguit= y_warning", PGC_USERSET, DEVELOPER_OPTIONS,
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0gettext_noop("= Raise warning when reference to a session variable is ambiguous."), =C2=A0 =C2=A0 +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0NULL,
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0GUC_NOT_IN_SAMPLE =C2=A0 =C2=A0 +=C2=A0 =C2=A0 =C2=A0 =C2=A0},
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 =C2=A0 =C2=A0&session_variables_ambiguity_= warning,
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 =C2=A0 =C2=A0false,
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 =C2=A0 =C2=A0NULL, NULL, NULL
=C2=A0 =C2=A0 +=C2=A0 =C2=A0},

=C2=A0 I think the short_desc should be "Raise a warning" (with t= he indefinite article).

=C2=A0 DEVELOPER_OPTIONS is the wrong category.=C2=A0 We normally use that = for parameters
=C2=A0 that are only relevant for PostgreSQL hackers.=C2=A0 I think it shou= ld be
=C2=A0 CLIENT_CONN_OTHER.

=C2=A0changed=


CREATE VARIABLE command:

=C2=A0 =C2=A0 CREATE VARIABLE str AS text NOT NULL;
=C2=A0 =C2=A0 ERROR:=C2=A0 session variable must have a default value, sinc= e it's declared NOT NULL

=C2=A0 Perhaps this error message would be better:

=C2=A0 =C2=A0 session variables declared as NOT NULL must have a default va= lue

changed
=C2=A0
<= blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l= eft:1px solid rgb(204,204,204);padding-left:1ex">
=C2=A0 This is buggy:

=C2=A0 =C2=A0 CREATE VARIABLE str AS text NOT NULL DEFAULT NULL;

=C2=A0 Ugh.

=C2=A0 =C2=A0 SELECT str;
=C2=A0 =C2=A0 ERROR:=C2=A0 null value is not allowed for NOT NULL session v= ariable "laurenz.str"
=C2=A0 =C2=A0 DETAIL:=C2=A0 The result of DEFAULT expression is NULL.

=C2=A0 Perhaps that is a leftover from the previous coding, but I think the= re need be
=C2=A0 no check upon SELECT.=C2=A0 It should be enough to check during CREA= TE VARIABLE and
=C2=A0 LET.

I think it is correct. When you use SELECT str, then= DEFAULT expression is executed, and then the result is assigned to a varia= ble, and there is NOT NULL guard, which raises an exception. The variable i= s not initialized when you run DDL, but it is initialized when you first re= ad or write from/to the variable. The DEFAULT expression is not evaluated i= n DDL time. In this case, I can detect the problem in DDL time because the = result is transformed to NULL node, but generally there can be SQL non immu= table function, and then I need to wait until the DEFAULT expression will b= e evaluated - and it is time of first reading. Unfortunately, there is not = an available check if some expression is NULL, that I can use in DDL time, = but I have it in plpgsql_check.

<= div class=3D"gmail_quote">You can have a function

CREATE OR REPLACE FUNCTION= foo()
RETURNS int AS $$
BEGIN
=C2=A0 RETURN NULL;
END:
$$ LANGUA= GE plpgsql;

the function is not marked as IMMUTABLE

I can

CREATE VARIABLE v AS int NOT NULL D= EFAULT foo();

In DDL time I know nothing about result of foo()

When I run SELECT v; the= n foo is executed, and because it is in contradiction with the NOT NULL cla= use, it fails. And I think it is correct.
<= br>
It is consistent with PL/pgSQL. I can w= rite

(= 2024-07-24 11:57:33) postgres=3D# CREATE OR REPLACE FUNCTION fx()
postgr= es-# RETURNS void AS $$
postgres$# DECLARE v int NOT NULL DEFAULT NULL;<= br>postgres$# BEGIN
postgres$# END;
postgres$# $$ LANGUAGE plpgsql;CREATE FUNCTION
(2024-07-24 12:06:54) postgres=3D# SELECT fx();
ERR= OR: =C2=A0null value cannot be assigned to variable "v" declared = NOT NULL
CONTEXT: =C2=A0PL/pgSQL function fx() line 2 during statement b= lock local variable initialization

DDL is ok, and SELECT fails.

I think so DDL should= not to evaluate DEFAULT expressions - the result from this are issues desc= ribed in discussion about usage 'now'::timestamp
=C2=A0

pg_dump support:

=C2=A0 The attempt to dump a database with an older version leads to

=C2=A0 =C2=A0 pg_dump: error: query failed: ERROR:=C2=A0 relation "pg_= catalog.pg_variable" does not exist
=C2=A0 =C2=A0 LINE 14: FROM pg_catalog.pg_variable v
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ^
=C2=A0 Dumping variables must be conditional on the server version.



fixed, there was guard but for pg = 17

=C2=A0

IMMUTABLE variables:

=C2=A0 =C2=A0 +=C2=A0 =C2=A0<varlistentry id=3D"sql-createvariable-= immutable">
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 <term><literal>IMMUTABLE</liter= al></term>
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 <listitem>
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 =C2=A0<para>
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 =C2=A0 The assigned value of the session varia= ble can not be changed.
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 =C2=A0 Only if the session variable doesn'= t have a default value, a single
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 =C2=A0 initialization is allowed using the <= ;command>LET</command> command. Once
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 =C2=A0 done, no further change is allowed unti= l end of transaction
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 =C2=A0 if the session variable was created wit= h clause <literal>ON TRANSACTION
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 =C2=A0 END RESET</literal>, or until res= et of all session variables by
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 =C2=A0 <command>DISCARD VARIABLES</co= mmand>, or until reset of all session
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 =C2=A0 objects by command <command>DISCA= RD ALL</command>.
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 =C2=A0</para>
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 </listitem>
=C2=A0 =C2=A0 +=C2=A0 =C2=A0</varlistentry>

=C2=A0 I can see the usefulness of IMMUTABLE variables, but I am surprised = that
=C2=A0 they are reset by DISCARD.=C2=A0 What is the use case you have in mi= nd?
=C2=A0 The use case I can envision is an application that sets a value righ= t after
=C2=A0 authentication, for use with row-level security.=C2=A0 But then it w= ould be harmful
=C2=A0 if the user could reset the variable with DISCARD.
<= div>
Primary I think about IMMUTABLE variables like about som= e form of cache. This cache is protected against unwanted repeated write - = and can help with detection of this situation.
It is not a securi= ty tool primarily - there are access rights for this purpose. The scope of = this cache can be different - sometimes session, sometimes transaction. Whe= n you use a pooler like pgbouncer, then the lifetime is ended by command DI= SCARD ALL. Moreover, after DISCARD ALL, the session should be in default st= ate, so then any session variable should be not initialized. And there is a= n implementation reason too. When I handle command DISCARD VARIABLES, I jus= t reset related memory contexts. It is quick and safe.

<= /div>
I can imagine more strict behaviour - like impossibility to disca= rd context or necessity to have default immutable expressions. But then thi= s clause is not useful for connection pooling with transaction mode :-/. So= current design is a compromise - if somebody wants strict behaviour, then = can set default immutable expressions (by self). And then there will not be= a problem with DISCARD VARIABLES.

But becaus= e it supports a possibility ON TRANSACTION END RESET, then theoretically it= can be used in transaction mode too without possibility to be reset by DIS= CARD ALL.

At the end there is just one question - = the DISCARD VARIABLES should support some exceptions, or the immutability o= f variables should have some exceptions? I can imagine the surprise so afte= r DISCARD ALL, the immutable variable lost a value, but the same surprise c= an be in the moment after DISCARD ALL when the LET immutablevar statement f= ails. Then we have to choose a priority - DISCARD x IMMUTABLE.

I prefer to have a stronger DISCARD VARIABLES command with= out exceptions (for semantic, for simple implementation), but I am open to = discussion. If we want to support the IMMUTABLE clause, then we have to rep= ly to the mentioned question. What do you think about it?
=C2=A0

Documentation:
RestoreArchive
=C2=A0 =C2=A0 --- a/doc/src/sgml/ddl.sgml
=C2=A0 =C2=A0 +++ b/doc/src/sgml/ddl.sgml

=C2=A0 =C2=A0 +=C2=A0 =C2=A0<para>
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 The session variables can be shadowed by colum= n references in a query. When
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 a query contains identifiers or qualified iden= tifiers that could be used as
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 both a session variable identifiers and as col= umn identifier, then the
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 column identifier is preferred every time. War= nings can be emitted when
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 this situation happens by enabling configurati= on parameter <xref
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 linkend=3D"guc-session-variables-ambiguit= y-warning"/>. User can explicitly
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 qualify the source object by syntax <litera= l>table.column</literal> or
=C2=A0 =C2=A0 +=C2=A0 =C2=A0 <literal>variable.column</literal>= .
=C2=A0 =C2=A0 +=C2=A0 =C2=A0</para>

=C2=A0 I think you mean <literal>schema.variable</literal>, not= <literal>variable.column</literal>.

<= /div>
fixed
=C2=A0



Yours,
Laurenz Albe
--000000000000bfc92b061dffd1c3-- --000000000000bfc92e061dffd1c5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240724-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Disposition: attachment; filename="v20240724-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyzzqe0w2 RnJvbSBkOTljNzc0NmNlZmFlNzZlNjIwZDJhYWFmM2Y3NmI1NWVhZGNjMjU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDAz LzIwXSBmdW5jdGlvbiBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmb3IgY2xlYW5pbmcgdGVzdHMKClRo aXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQg cmV0dXJucyB0aGUKY29udGVudCBvZiBzZXNzaW9udmFycyBhcy1pcywgYW5kIGNhbiB0aGVyZWZv cmUgZGlzcGxheSBlbnRyaWVzIGFib3V0CnNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9w cGVkIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndApwcm9jZXNzIHRoZSBzaGFyZWQg aW52YWxpZGF0aW9ucyB5ZXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIHwgMTAyICsrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgIHwgICA4ICsrCiAyIGZpbGVzIGNoYW5nZWQsIDExMCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IGUx OTBlZjczODljLi5jOGRkZWZjMjBlNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwpAQCAtNjAwLDMgKzYwMCwxMDUgQEAgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAq cHN0YXRlLAogCiAJUG9wQWN0aXZlU25hcHNob3QoKTsKIH0KKworLyoKKyAqIHBnX3Nlc3Npb25f dmFyaWFibGVzIC0gZGVzaWduZWQgZm9yIHRlc3RpbmcKKyAqCisgKiBUaGlzIGlzIGEgZnVuY3Rp b24gZGVzaWduZWQgZm9yIHRlc3RpbmcgYW5kIGRlYnVnZ2luZy4gIEl0IHJldHVybnMgdGhlCisg KiBjb250ZW50IG9mIHNlc3Npb252YXJzIGFzLWlzLCBhbmQgY2FuIHRoZXJlZm9yZSBkaXNwbGF5 IGVudHJpZXMgYWJvdXQKKyAqIHNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9wcGVkIGJ1 dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndAorICogcHJvY2VzcyB0aGUgc2hhcmVkIGlu dmFsaWRhdGlvbnMgeWV0LgorICovCitEYXR1bQorcGdfc2Vzc2lvbl92YXJpYWJsZXMoUEdfRlVO Q1RJT05fQVJHUykKK3sKKyNkZWZpbmUgTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFMgOAor CisJZWxvZyhERUJVRzEsICJwZ19zZXNzaW9uX3ZhcmlhYmxlcyBzdGFydCIpOworCisJSW5pdE1h dGVyaWFsaXplZFNSRihmY2luZm8sIDApOworCisJaWYgKHNlc3Npb252YXJzKQorCXsKKwkJUmV0 dXJuU2V0SW5mbyAqcnNpbmZvID0gKFJldHVyblNldEluZm8gKikgZmNpbmZvLT5yZXN1bHRpbmZv OworCQlIQVNIX1NFUV9TVEFUVVMgc3RhdHVzOworCQlTVmFyaWFibGUJc3ZhcjsKKworCQloYXNo X3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJzKTsKKworCQl3aGlsZSAoKHN2YXIgPSAoU1Zh cmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykpICE9IE5VTEwpCisJCXsKKwkJCURhdHVt CQl2YWx1ZXNbTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJYm9vbAkJbnVsbHNb TlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJSGVhcFR1cGxlCXRwOworCQkJYm9v bAkJdmFyX2lzX3ZhbGlkID0gZmFsc2U7CisKKwkJCW1lbXNldCh2YWx1ZXMsIDAsIHNpemVvZih2 YWx1ZXMpKTsKKwkJCW1lbXNldChudWxscywgMCwgc2l6ZW9mKG51bGxzKSk7CisKKwkJCXZhbHVl c1swXSA9IE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpOworCQkJdmFsdWVzWzNdID0gT2Jq ZWN0SWRHZXREYXR1bShzdmFyLT50eXBpZCk7CisKKwkJCS8qIGNoZWNrIGlmIHNlc3Npb24gdmFy aWFibGUgaXMgdmlzaWJsZSBpbiBzeXN0ZW0gY2F0YWxvZyAqLworCQkJdHAgPSBTZWFyY2hTeXND YWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpKTsKKworCQkJ LyoKKwkJCSAqIFNlc3Npb252YXJzIGNhbiBob2xkIGRhdGEgb2YgdmFyaWFibGVzIHJlbW92ZWQg ZnJvbSBjYXRhbG9nLAorCQkJICogKGFuZCBub3QgcHVyZ2VkKSBhbmQgdGhlbiBuYW1lc3BhY2Vu YW1lIGFuZCBuYW1lIGNhbm5vdCBiZSByZWFkCisJCQkgKiBmcm9tIGNhdGFsb2cuCisJCQkgKi8K KwkJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJCXsKKwkJCQlGb3JtX3BnX3ZhcmlhYmxl IHZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHRwKTsKKworCQkJCS8qIFdo ZW4gd2Ugc2VlIGRhdGEgaW4gY2F0YWxvZyAqLworCQkJCWlmIChzdmFyLT5jcmVhdGVfbHNuID09 IHZhcmZvcm0tPnZhcmNyZWF0ZV9sc24pCisJCQkJeworCQkJCQkvKiBhbmQgd2hlbiB3aGVuIHRo ZXNlIGRhdGEgYXJlIG5vdCBvdXQgb2YgZGF0ZSAqLworCQkJCQl2YWx1ZXNbMV0gPSBDU3RyaW5n R2V0VGV4dERhdHVtKAorCQkJCQkJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZSh2YXJmb3JtLT52 YXJuYW1lc3BhY2UpKTsKKworCQkJCQl2YWx1ZXNbMl0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKE5h bWVTdHIodmFyZm9ybS0+dmFybmFtZSkpOworCQkJCQl2YWx1ZXNbNF0gPSBDU3RyaW5nR2V0VGV4 dERhdHVtKGZvcm1hdF90eXBlX2JlKHN2YXItPnR5cGlkKSk7CisJCQkJCXZhbHVlc1s1XSA9IEJv b2xHZXREYXR1bShmYWxzZSk7CisKKwkJCQkJdmFsdWVzWzZdID0gQm9vbEdldERhdHVtKAorCQkJ CQkJCQkJCQkgb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwgc3Zhci0+dmFyaWQs CisJCQkJCQkJCQkJCQkJCQkgR2V0VXNlcklkKCksIEFDTF9TRUxFQ1QpID09IEFDTENIRUNLX09L KTsKKworCQkJCQl2YWx1ZXNbN10gPSBCb29sR2V0RGF0dW0oCisJCQkJCQkJCQkJCSBvYmplY3Rf YWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCBzdmFyLT52YXJpZCwKKwkJCQkJCQkJCQkJCQkJ CSBHZXRVc2VySWQoKSwgQUNMX1VQREFURSkgPT0gQUNMQ0hFQ0tfT0spOworCisJCQkJCXZhcl9p c192YWxpZCA9IHRydWU7CisJCQkJfQorCisJCQkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwkJCX0K KworCQkJaWYgKCF2YXJfaXNfdmFsaWQpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBXaGVuIHNlc3Np b24gdmFyaWFibGUgd2FzIHJlbW92ZWQgZnJvbSBjYXRhbG9nLCBidXQgd2UKKwkJCQkgKiBoYXZl bid0IHByb2Nlc3NlZCB0aGUgaW52bGlkYXRpb24geWV0LiBJbiB0aGlzIGNhc2UsIHdlIGNhbgor CQkJCSAqIGRpc3BsYXkgb25seSBmZXcgb2lkcy4gT3RoZXIgZGF0YSBhcmUgbm90IGF2YWlsYWJs ZQorCQkJCSAqICh3aXRob3V0IEZvcm1fcGdfdmFyaWFibGUgcmVjb3JkKSwgb3IgY2FuIGJlIGxv c3QgKGJlY2F1c2UKKwkJCQkgKiB0aGVyZSBpcyBub3QgcHJvdGVjdGlvbiBieSBkZXBlbmRlbmN5 IChtb3JlKS4KKwkJCQkgKi8KKwkJCQludWxsc1sxXSA9IHRydWU7CisJCQkJbnVsbHNbMl0gPSB0 cnVlOworCQkJCW51bGxzWzRdID0gdHJ1ZTsKKwkJCQludWxsc1s2XSA9IHRydWU7CisJCQkJbnVs bHNbN10gPSB0cnVlOworCisJCQkJdmFsdWVzWzVdID0gQm9vbEdldERhdHVtKHRydWUpOworCQkJ fQorCisJCQl0dXBsZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNldFJlc3VsdCwgcnNpbmZvLT5z ZXREZXNjLCB2YWx1ZXMsIG51bGxzKTsKKwkJfQorCX0KKworCWVsb2coREVCVUcxLCAicGdfc2Vz c2lvbl92YXJpYWJsZXMgZW5kIik7CisKKwlyZXR1cm4gKERhdHVtKSAwOworfQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKaW5kZXggNjQ0YmViOTA0MzIuLjM5NGY1MGE1NWJmIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKQEAgLTEyMjExLDQgKzEyMjExLDEyIEBACiAgIHByb2FyZ25hbWVzID0+ICd7 c3VtbWFyaXplZF90bGksc3VtbWFyaXplZF9sc24scGVuZGluZ19sc24sc3VtbWFyaXplcl9waWR9 JywKICAgcHJvc3JjID0+ICdwZ19nZXRfd2FsX3N1bW1hcml6ZXJfc3RhdGUnIH0sCiAKK3sgb2lk ID0+ICc4NDg4JywgZGVzY3IgPT4gJ2xpc3Qgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcycsCisg IHByb25hbWUgPT4gJ3BnX3Nlc3Npb25fdmFyaWFibGVzJywgcHJvcm93cyA9PiAnMTAwMCcsIHBy b3JldHNldCA9PiAndCcsCisgIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3In LCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLAorICBwcm9hcmd0eXBlcyA9PiAnJywgcHJvYWxsYXJn dHlwZXMgPT4gJ3tvaWQsdGV4dCx0ZXh0LG9pZCx0ZXh0LGJvb2wsYm9vbCxib29sfScsCisgIHBy b2FyZ21vZGVzID0+ICd7byxvLG8sbyxvLG8sbyxvfScsCisgIHByb2FyZ25hbWVzID0+ICd7dmFy aWQsc2NoZW1hLG5hbWUsdHlwaWQsdHlwbmFtZSxyZW1vdmVkLGNhbl9zZWxlY3QsY2FuX3VwZGF0 ZX0nLAorICBwcm9zcmMgPT4gJ3BnX3Nlc3Npb25fdmFyaWFibGVzJyB9LAorCiBdCi0tIAoyLjQ1 LjIKCg== --000000000000bfc92e061dffd1c5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240724-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Disposition: attachment; filename="v20240724-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyzzqdzs0 RnJvbSA0ZTc2NjY1Njg0NTEzNjY5YjQ0YWVhNTE5MjQyNjcxYThhMDg1OTNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTU6NDE6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDAx LzIwXSBFbmhhbmNpbmcgY2F0YWxvZyBmb3Igc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxlcyBhbmQK IHJlbGF0ZWQgc3VwcG9ydAoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBzeXN0ZW0gY2F0YWxv ZyB0YWJsZSBwZ192YXJpYWJsZS4gVGhpcyB0YWJsZSBob2xkcyBtZXRhZGF0YSBhYm91dApzZXNz aW9uIHZhcmlhYmxlcyBjcmVhdGVkIGJ5IGNvbW1hbmQgQ1JFQVRFIFZBUklBQkxFLCBhbmQgZHJv cHBlZCBieSBjb21tYW5kIERST1AgVkFSSUFCTEUuCkJvdGggY29tbWFuZHMgYXJlIGltcGxlbWVu dGVkIGJ5IHRoaXMgcGF0Y2guIFBvc3NpYmlsaXR5IHRvIGNoYW5nZSBvd25lciwgc2NoZW1hIG9y IHJlbmFtZS4KCkFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgY29udHJvbGxlZCBi eSBTRUxFQ1Qgb3IgVVBEQVRFIHJpZ2h0cy4gQm90aCByaWdodHMgYXJlCmludHJvZHVjZWQgYnkg dGhpcyBwYXRjaCB0b28uCgpUaGlzIHBhdGNoIGVuaGFuY2luZyBwZ19kdW1wIGFuZCBwc3FsIHRv IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoZSBjaGFuZ2VzIGFyZSByZWxhdGVkCnRvIHN5 c3RlbSBjYXRhbG9nLgoKVGhpcyBwYXRjaCBpcyBub3Qgc2hvcnQsIGJ1dCB0aGUgY29kZSBpcyBz aW1wbGUuCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgMTIwICsrKysrKysrKwogZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDIwICsrCiBkb2Mvc3JjL3NnbWwvZXZlbnQtdHJpZ2dlci5zZ21sICAgICAgICAg ICAgICAgfCAgMjQgKysKIGRvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sICAgICAgICAgICAgICAg ICAgICB8ICAxNiArKwogZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sICAgICAgICAgICAg ICAgIHwgICAzICsKIC4uLi9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbCAg ICB8ICAyNiArLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sICAgICAgICAg IHwgMTc4ICsrKysrKysrKysrKwogZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwgICAgICAg ICAgICAgICAgIHwgICAxICsKIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sICAg ICAgICAgICB8ICAgNyArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAg ICAgICAgIHwgMTU1ICsrKysrKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUu c2dtbCAgICAgICAgICAgfCAxMTcgKysrKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dt bCAgICAgICAgICAgICAgICAgICB8ICAgNiArCiBkb2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21s ICAgICAgICAgICAgICAgICAgfCAgIDcgKwogZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sICAg ICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgICAg ICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jICAgICAg ICAgICAgICAgICAgfCAgNzcgKysrKysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3ku YyAgICAgICAgICAgICAgfCAgIDcgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZCAg ICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgICAg ICAgICAgICAgICB8IDEzOCArKysrKysrKysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFk ZHJlc3MuYyAgICAgICAgICAgfCAxMjEgKysrKysrKystCiBzcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3NoZGVwZW5kLmMgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192 YXJpYWJsZS5jICAgICAgICAgICAgIHwgMjU1ICsrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tl bmQvY29tbWFuZHMvYWx0ZXIuYyAgICAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9iYWNrZW5k L2NvbW1hbmRzL2Ryb3BjbWRzLmMgICAgICAgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9ldmVudF90cmlnZ2VyLmMgICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2VjbGFiZWwuYyAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jICAgICAgICAgICAgICB8ICA0MiArKysKIHNyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8IDEwNSArKysrKysrLQogc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3V0aWxjbWQuYyAgICAgICAgICAgIHwgIDEyICsKIHNyYy9iYWNrZW5kL3Rj b3AvdXRpbGl0eS5jICAgICAgICAgICAgICAgICAgICB8ICAxNiArKwogc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2FjbC5jICAgICAgICAgICAgICAgICAgIHwgICA3ICsKIHNyYy9iYWNrZW5kL3V0aWxz L2NhY2hlL2xzeXNjYWNoZS5jICAgICAgICAgICB8IDExMyArKysrKysrKwogc3JjL2Jpbi9wZ19k dW1wL2NvbW1vbi5jICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iaW4vcGdfZHVt cC9kdW1wdXRpbHMuYyAgICAgICAgICAgICAgICAgICB8ICAgNiArCiBzcmMvYmluL3BnX2R1bXAv cGdfYmFja3VwLmggICAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2Jpbi9wZ19kdW1wL3Bn X2JhY2t1cF9hcmNoaXZlci5jICAgICAgICAgIHwgICA5ICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDE5OCArKysrKysrKysrKysrLQogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDE5ICsrCiBzcmMvYmluL3Bn X2R1bXAvcGdfZHVtcF9zb3J0LmMgICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgIDY0ICsrKysrCiBzcmMvYmluL3Bz cWwvY29tbWFuZC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDk2ICsrKysrKysKIHNyYy9iaW4v cHNxbC9kZXNjcmliZS5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmluL3Bz cWwvaGVscC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5jICAgICAgICAgICAgICAgICAgIHwgIDQ0ICsrLQogc3JjL2luY2x1ZGUv Y2F0YWxvZy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgICAzICstCiBzcmMvaW5jbHVkZS9j YXRhbG9nL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvY2F0 YWxvZy9uYW1lc3BhY2UuaCAgICAgICAgICAgICAgIHwgICA1ICstCiBzcmMvaW5jbHVkZS9jYXRh bG9nL3BnX2RlZmF1bHRfYWNsLmggICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICA4MSArKysrKysKIHNyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxNiArKwogc3JjL2luY2x1ZGUvcGFyc2Vy L2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21k dGFnbGlzdC5oICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS91dGlscy9hY2wu aCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2Nh Y2hlLmggICAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv ZGVwZW5kZW5jeS5vdXQgICAgICB8ICAxNiArKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9v aWRqb2lucy5vdXQgICAgICAgIHwgICA0ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNx bC5vdXQgICAgICAgICAgICB8ICA1MCArKysrCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQgICAgfCAgNTcgKysrKwogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9z Y2hlZHVsZSAgICAgICAgICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRl bmN5LnNxbCAgICAgICAgICAgfCAgMTMgKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwg ICAgICAgICAgICAgICAgIHwgIDIxICsrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwgICAgfCAgNjEgKysrKysKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0ICAgICAgICAgICAgICB8ICAgNCArCiA2NSBmaWxlcyBjaGFuZ2VkLCAyMzc3IGluc2VydGlv bnMoKyksIDI4IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwv cmVmL2Ryb3BfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2Nh dGFsb2cvcGdfdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2NhdGFs b2cvcGdfdmFyaWFibGUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCBiNjU0 ZmFlMWIyZi4uNWJhMTg4OTkzNDUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC0zNjksNiArMzY5LDExIEBA CiAgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy11c2VyLW1hcHBpbmciPjxz dHJ1Y3RuYW1lPnBnX3VzZXJfbWFwcGluZzwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KICAg ICAgIDxlbnRyeT5tYXBwaW5ncyBvZiB1c2VycyB0byBmb3JlaWduIHNlcnZlcnM8L2VudHJ5Pgog ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNh dGFsb2ctcGctdmFyaWFibGUiPjxzdHJ1Y3RuYW1lPnBnX3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPjwv bGluaz48L2VudHJ5PgorICAgICAgPGVudHJ5PnNlc3Npb24gdmFyaWFibGVzPC9lbnRyeT4KKyAg ICAgPC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpAQCAtOTcy Niw0ICs5NzMxLDExOSBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9u IGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICA8L3RhYmxlPgogIDwv c2VjdDE+CiAKKyA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctdmFyaWFibGUiPgorICA8dGl0bGU+PHN0 cnVjdG5hbWU+cGdfdmFyaWFibGU8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJt IHpvbmU9ImNhdGFsb2ctcGctdmFyaWFibGUiPgorICAgPHByaW1hcnk+cGdfdmFyaWFibGU8L3By aW1hcnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgorICAgVGhlIHRhYmxlIDxzdHJ1Y3Ru YW1lPnBnX3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPiBwcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dAor ICAgc2Vzc2lvbiB2YXJpYWJsZXMuCisgIDwvcGFyYT4KKworICA8dGFibGU+CisgICA8dGl0bGU+ PHN0cnVjdG5hbWU+cGdfdmFyaWFibGU8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAg PHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwv dGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRlbnRpZmllcgorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD52YXJ0eXBlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgor ICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctdHlwZSI+PHN0cnVj dG5hbWU+cGdfdHlwZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVj dGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBPSUQgb2Yg dGhlIHZhcmlhYmxlJ3MgZGF0YSB0eXBlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZh cm5hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJuYW1lc3BhY2U8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8 L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1uYW1l c3BhY2UiPjxzdHJ1Y3RuYW1lPnBnX25hbWVzcGFjZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1 Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIFRoZSBPSUQgb2YgdGhlIG5hbWVzcGFjZSB0aGF0IGNvbnRhaW5zIHRoaXMgdmFyaWFi bGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyb3duZXI8L3N0cnVjdGZpZWxkPiA8 dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxv Zy1wZy1hdXRoaWQiPjxzdHJ1Y3RuYW1lPnBnX2F1dGhpZDwvc3RydWN0bmFtZT48L2xpbms+Ljxz dHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJh PgorICAgICAgIE93bmVyIG9mIHRoZSB2YXJpYWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD52YXJ0eXBtb2Q8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ0PC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcnR5cG1vZDwvc3RydWN0 ZmllbGQ+IHJlY29yZHMgdHlwZS1zcGVjaWZpYyBkYXRhCisgICAgICAgc3VwcGxpZWQgYXQgdmFy aWFibGUgY3JlYXRpb24gdGltZSAoZm9yIGV4YW1wbGUsIHRoZSBtYXhpbXVtCisgICAgICAgbGVu Z3RoIG9mIGEgPHR5cGU+dmFyY2hhcjwvdHlwZT4gY29sdW1uKS4gIEl0IGlzIHBhc3NlZCB0bwor ICAgICAgIHR5cGUtc3BlY2lmaWMgaW5wdXQgZnVuY3Rpb25zIGFuZCBsZW5ndGggY29lcmNpb24g ZnVuY3Rpb25zLgorICAgICAgIFRoZSB2YWx1ZSB3aWxsIGdlbmVyYWxseSBiZSAtMSBmb3IgdHlw ZXMgdGhhdCBkbyBub3QgbmVlZCA8c3RydWN0ZmllbGQ+dmFydHlwbW9kPC9zdHJ1Y3RmaWVsZD4u CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmNvbGxhdGlvbjwvc3RydWN0ZmllbGQ+ IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRh bG9nLXBnLWNvbGxhdGlvbiI+PHN0cnVjdG5hbWU+cGdfY29sbGF0aW9uPC9zdHJ1Y3RuYW1lPjwv bGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgVGhlIGRlZmluZWQgY29sbGF0aW9uIG9mIHRoZSB2YXJpYWJsZSwg b3IgemVybyBpZiB0aGUgdmFyaWFibGUgaXMKKyAgICAgICBub3Qgb2YgYSBjb2xsYXRhYmxlIGRh dGEgdHlwZS4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyYWNsPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+YWNsaXRlbVtdPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgQWNjZXNzIHByaXZpbGVnZXM7IHNlZQorICAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1n cmFudCIvPiBhbmQKKyAgICAgICA8eHJlZiBsaW5rZW5kPSJzcWwtcmV2b2tlIi8+CisgICAgICAg Zm9yIGRldGFpbHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgIDwv dGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgogPC9jaGFwdGVyPgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21s CmluZGV4IDYyNmQzNTUxNGNjLi5lZTFkOGVhMDYwYyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTI5OCw2ICs1Mjk4LDI2 IEBAIEVYUExBSU4gU0VMRUNUIGNvdW50KCopIEZST00gbWVhc3VyZW1lbnQgV0hFUkUgbG9nZGF0 ZSAmZ3Q7PSBEQVRFICcyMDA4LTAxLTAxJzsKICAgIDwvcGFyYT4KICA8L3NlY3QxPgogCisgIDxz ZWN0MSBpZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIj4KKyAgIDx0aXRsZT5TZXNzaW9uIFZhcmlh YmxlczwvdGl0bGU+CisKKyAgIDxpbmRleHRlcm0gem9uZT0iZGRsLXNlc3Npb24tdmFyaWFibGVz Ij4KKyAgICA8cHJpbWFyeT5TZXNzaW9uIHZhcmlhYmxlczwvcHJpbWFyeT4KKyAgIDwvaW5kZXh0 ZXJtPgorCisgICA8aW5kZXh0ZXJtPgorICAgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3By aW1hcnk+CisgICA8L2luZGV4dGVybT4KKworICAgPHBhcmE+CisgICAgU2Vzc2lvbiB2YXJpYWJs ZXMgYXJlIGRhdGFiYXNlIG9iamVjdHMgdGhhdCBjYW4gaG9sZCBhIHZhbHVlLgorICAgIFNlc3Np b24gdmFyaWFibGVzLCBsaWtlIHJlbGF0aW9ucywgZXhpc3Qgd2l0aGluIGEgc2NoZW1hIGFuZCB0 aGVpciBhY2Nlc3MKKyAgICBpcyBjb250cm9sbGVkIHZpYSA8Y29tbWFuZD5HUkFOVDwvY29tbWFu ZD4gYW5kIDxjb21tYW5kPlJFVk9LRTwvY29tbWFuZD4KKyAgICBjb21tYW5kcy4gIEEgc2Vzc2lv biB2YXJpYWJsZSBjYW4gYmUgY3JlYXRlZCBieSB0aGUgPGNvbW1hbmQ+Q1JFQVRFCisgICAgVkFS SUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQuCisgICA8L3BhcmE+CisgIDwvc2VjdDE+CisKICA8c2Vj dDEgaWQ9ImRkbC1vdGhlcnMiPgogICA8dGl0bGU+T3RoZXIgRGF0YWJhc2UgT2JqZWN0czwvdGl0 bGU+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9ldmVudC10cmlnZ2VyLnNnbWwgYi9kb2Mv c3JjL3NnbWwvZXZlbnQtdHJpZ2dlci5zZ21sCmluZGV4IDhlMDA5Y2NhMDUwLi4xNWIyYWY5OWRj YSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2V2ZW50LXRyaWdnZXIuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvZXZlbnQtdHJpZ2dlci5zZ21sCkBAIC00MjQsNiArNDI0LDE0IEBACiAgICAgICAg IDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD4tPC9saXRlcmFsPjwvZW50cnk+CiAgICAg ICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PC9lbnRyeT4KICAgICAgICA8L3Jvdz4KKyAgICAgICA8 cm93PgorICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQiPjxsaXRlcmFsPkFMVEVSIFZBUklBQkxF PC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJh bD5YPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0 ZXJhbD5YPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48 bGl0ZXJhbD4tPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVy Ij48bGl0ZXJhbD4tPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVm dCI+PC9lbnRyeT4KKyAgICAgICA8L3Jvdz4KICAgICAgICA8cm93PgogICAgICAgICA8ZW50cnkg YWxpZ249ImxlZnQiPjxsaXRlcmFsPkFMVEVSIFZJRVc8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAg ICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KQEAg LTcxMiw2ICs3MjAsMTQgQEAKICAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFs Pi08L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48L2VudHJ5 PgogICAgICAgIDwvcm93PgorICAgICAgIDxyb3c+CisgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVm dCI+PGxpdGVyYWw+Q1JFQVRFIFZBUklBQkxFPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgIDxl bnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAg IDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9saXRlcmFsPjwvZW50cnk+CisgICAg ICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD4tPC9saXRlcmFsPjwvZW50cnk+Cisg ICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD4tPC9saXRlcmFsPjwvZW50cnk+ CisgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PC9lbnRyeT4KKyAgICAgICA8L3Jvdz4KICAg ICAgICA8cm93PgogICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQiPjxsaXRlcmFsPkNSRUFURSBW SUVXPC9saXRlcmFsPjwvZW50cnk+CiAgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0 ZXJhbD5YPC9saXRlcmFsPjwvZW50cnk+CkBAIC0xMDAwLDYgKzEwMTYsMTQgQEAKICAgICAgICAg PGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KICAgICAg ICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48L2VudHJ5PgogICAgICAgIDwvcm93PgorICAgICAgIDxy b3c+CisgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PGxpdGVyYWw+RFJPUCBWQVJJQUJMRTwv bGl0ZXJhbD48L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+ WDwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVy YWw+WDwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxp dGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+ PGxpdGVyYWw+LTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQi PjwvZW50cnk+CisgICAgICAgPC9yb3c+CiAgICAgICAgPHJvdz4KICAgICAgICAgPGVudHJ5IGFs aWduPSJsZWZ0Ij48bGl0ZXJhbD5EUk9QIFZJRVc8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICAg PGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sIGIvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5 LnNnbWwKaW5kZXggNDA1ZmU2ZGM4YjkuLmEzMTk5NGVmZTZjIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvZ2xvc3Nhcnkuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbApAQCAt MTY1NCw2ICsxNjU0LDIyIEBACiAgICA8L2dsb3NzZGVmPgogICA8L2dsb3NzZW50cnk+CiAKKyAg PGdsb3NzZW50cnkgaWQ9Imdsb3NzYXJ5LXNlc3Npb24tdmFyaWFibGUiPgorICAgPGdsb3NzdGVy bT5TZXNzaW9uIHZhcmlhYmxlPC9nbG9zc3Rlcm0+CisgICA8Z2xvc3NkZWY+CisgICAgPHBhcmE+ CisgICAgIEEgcGVyc2lzdGVudCBkYXRhYmFzZSBvYmplY3QgdGhhdCBob2xkcyBhIHZhbHVlIGlu IHNlc3Npb24gbWVtb3J5LiAgVGhpcworICAgICBtZW1vcnkgaXMgbm90IHNoYXJlZCBhY3Jvc3Mg c2Vzc2lvbnMsIGFuZCBhZnRlciBzZXNzaW9uIGVuZCwgdGhpcyBtZW1vcnkKKyAgICAgKHRoZSB2 YWx1ZSkgaXMgcmVsZWFzZWQuIFRoZSBhY2Nlc3MgKHJlYWQgb3Igd3JpdGUpIHRvIHNlc3Npb24g dmFyaWFibGVzCisgICAgIGlzIGNvbnRyb2xsZWQgYnkgYWNjZXNzIHJpZ2h0cyBzaW1pbGFybHkg dG8gb3RoZXIgZGF0YWJhc2Ugb2JqZWN0IGFjY2VzcworICAgICByaWdodHMuCisgICAgPC9wYXJh PgorICAgIDxwYXJhPgorICAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIDx4cmVmIGxpbmtl bmQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyIvPi4KKyAgICA8L3BhcmE+CisgICA8L2dsb3NzZGVm PgorICA8L2dsb3NzZW50cnk+CisKICAgPGdsb3NzZW50cnkgaWQ9Imdsb3NzYXJ5LXNoYXJlZC1t ZW1vcnkiPgogICAgPGdsb3NzdGVybT5TaGFyZWQgbWVtb3J5PC9nbG9zc3Rlcm0+CiAgICA8Z2xv c3NkZWY+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKaW5kZXggZjViZTYzODg2N2EuLjJmNjdkZTNlMjFi IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCkBAIC00Nyw2ICs0Nyw3IEBAIENvbXBsZXRlIGxpc3Qg b2YgdXNhYmxlIHNnbWwgc291cmNlIGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5LgogPCFFTlRJVFkg YWx0ZXJUeXBlICAgICAgICAgIFNZU1RFTSAiYWx0ZXJfdHlwZS5zZ21sIj4KIDwhRU5USVRZIGFs dGVyVXNlciAgICAgICAgICBTWVNURU0gImFsdGVyX3VzZXIuc2dtbCI+CiA8IUVOVElUWSBhbHRl clVzZXJNYXBwaW5nICAgU1lTVEVNICJhbHRlcl91c2VyX21hcHBpbmcuc2dtbCI+Cis8IUVOVElU WSBhbHRlclZhcmlhYmxlICAgICAgU1lTVEVNICJhbHRlcl92YXJpYWJsZS5zZ21sIj4KIDwhRU5U SVRZIGFsdGVyVmlldyAgICAgICAgICBTWVNURU0gImFsdGVyX3ZpZXcuc2dtbCI+CiA8IUVOVElU WSBhbmFseXplICAgICAgICAgICAgU1lTVEVNICJhbmFseXplLnNnbWwiPgogPCFFTlRJVFkgYmVn aW4gICAgICAgICAgICAgIFNZU1RFTSAiYmVnaW4uc2dtbCI+CkBAIC05OSw2ICsxMDAsNyBAQCBD b21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9y eS4KIDwhRU5USVRZIGNyZWF0ZVR5cGUgICAgICAgICBTWVNURU0gImNyZWF0ZV90eXBlLnNnbWwi PgogPCFFTlRJVFkgY3JlYXRlVXNlciAgICAgICAgIFNZU1RFTSAiY3JlYXRlX3VzZXIuc2dtbCI+ CiA8IUVOVElUWSBjcmVhdGVVc2VyTWFwcGluZyAgU1lTVEVNICJjcmVhdGVfdXNlcl9tYXBwaW5n LnNnbWwiPgorPCFFTlRJVFkgY3JlYXRlVmFyaWFibGUgICAgIFNZU1RFTSAiY3JlYXRlX3Zhcmlh YmxlLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlVmlldyAgICAgICAgIFNZU1RFTSAiY3JlYXRlX3Zp ZXcuc2dtbCI+CiA8IUVOVElUWSBkZWFsbG9jYXRlICAgICAgICAgU1lTVEVNICJkZWFsbG9jYXRl LnNnbWwiPgogPCFFTlRJVFkgZGVjbGFyZSAgICAgICAgICAgIFNZU1RFTSAiZGVjbGFyZS5zZ21s Ij4KQEAgLTE0Nyw2ICsxNDksNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJj ZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGRyb3BUeXBlICAgICAgICAgICBT WVNURU0gImRyb3BfdHlwZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BVc2VyICAgICAgICAgICBTWVNU RU0gImRyb3BfdXNlci5zZ21sIj4KIDwhRU5USVRZIGRyb3BVc2VyTWFwcGluZyAgICBTWVNURU0g ImRyb3BfdXNlcl9tYXBwaW5nLnNnbWwiPgorPCFFTlRJVFkgZHJvcFZhcmlhYmxlICAgICAgIFNZ U1RFTSAiZHJvcF92YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BWaWV3ICAgICAgICAgICBT WVNURU0gImRyb3Bfdmlldy5zZ21sIj4KIDwhRU5USVRZIGVuZCAgICAgICAgICAgICAgICBTWVNU RU0gImVuZC5zZ21sIj4KIDwhRU5USVRZIGV4ZWN1dGUgICAgICAgICAgICBTWVNURU0gImV4ZWN1 dGUuc2dtbCI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJp dmlsZWdlcy5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMu c2dtbAppbmRleCA4OWFhY2VjNGZhYi4uYWU5MDJkN2YzNzEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbApAQCAtNTEsNiArNTEsMTAgQEAgR1JB TlQgeyB7IFVTQUdFIHwgQ1JFQVRFIH0KICAgICBPTiBTQ0hFTUFTCiAgICAgVE8geyBbIEdST1VQ IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+ IHwgUFVCTElDIH0gWywgLi4uXSBbIFdJVEggR1JBTlQgT1BUSU9OIF0KIAorR1JBTlQgeyBTRUxF Q1QgfCBVUERBVEUgfCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIFZBUklBQkxFUworICAg IFRPIHsgWyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8 L3JlcGxhY2VhYmxlPiB8IFBVQkxJQyB9IFssIC4uLl0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCisK IFJFVk9LRSBbIEdSQU5UIE9QVElPTiBGT1IgXQogICAgIHsgeyBTRUxFQ1QgfCBJTlNFUlQgfCBV UERBVEUgfCBERUxFVEUgfCBUUlVOQ0FURSB8IFJFRkVSRU5DRVMgfCBUUklHR0VSIHwgTUFJTlRB SU4gfQogICAgIFssIC4uLl0gfCBBTEwgWyBQUklWSUxFR0VTIF0gfQpAQCAtODMsNiArODcsMTIg QEAgUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgICAgT04gU0NIRU1BUwogICAgIEZST00g eyBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVw bGFjZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXQogICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0K KworUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCisgICAgeyB7IFNFTEVDVCB8IFVQREFURSB9 IFssIC4uLl0gfCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIFZBUklBQkxFUworICAgIEZS T00geyBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwv cmVwbGFjZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXQorICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNU IF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApAQCAtMTE3LDE0ICsxMjcsMTQg QEAgUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgIDxwYXJhPgogICAgQ3VycmVudGx5LAog ICAgb25seSB0aGUgcHJpdmlsZWdlcyBmb3Igc2NoZW1hcywgdGFibGVzIChpbmNsdWRpbmcgdmll d3MgYW5kIGZvcmVpZ24KLSAgIHRhYmxlcyksIHNlcXVlbmNlcywgZnVuY3Rpb25zLCBhbmQgdHlw ZXMgKGluY2x1ZGluZyBkb21haW5zKSBjYW4gYmUKLSAgIGFsdGVyZWQuICBGb3IgdGhpcyBjb21t YW5kLCBmdW5jdGlvbnMgaW5jbHVkZSBhZ2dyZWdhdGVzIGFuZCBwcm9jZWR1cmVzLgotICAgVGhl IHdvcmRzIDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFsPlJPVVRJTkVT PC9saXRlcmFsPiBhcmUKLSAgIGVxdWl2YWxlbnQgaW4gdGhpcyBjb21tYW5kLiAgKDxsaXRlcmFs PlJPVVRJTkVTPC9saXRlcmFsPiBpcyBwcmVmZXJyZWQKLSAgIGdvaW5nIGZvcndhcmQgYXMgdGhl IHN0YW5kYXJkIHRlcm0gZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyB0YWtlbgotICAgdG9n ZXRoZXIuICBJbiBlYXJsaWVyIFBvc3RncmVTUUwgcmVsZWFzZXMsIG9ubHkgdGhlCi0gICB3b3Jk IDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gd2FzIGFsbG93ZWQuICBJdCBpcyBub3QgcG9z c2libGUgdG8gc2V0Ci0gICBkZWZhdWx0IHByaXZpbGVnZXMgZm9yIGZ1bmN0aW9ucyBhbmQgcHJv Y2VkdXJlcyBzZXBhcmF0ZWx5LikKKyAgIHRhYmxlcyksIHNlcXVlbmNlcywgZnVuY3Rpb25zLCB0 eXBlcyAoaW5jbHVkaW5nIGRvbWFpbnMpIGFuZCBzZXNzaW9uCisgICB2YXJpYWJsZXMgY2FuIGJl IGFsdGVyZWQuICBGb3IgdGhpcyBjb21tYW5kLCBmdW5jdGlvbnMgaW5jbHVkZSBhZ2dyZWdhdGVz CisgICBhbmQgcHJvY2VkdXJlcy4gIFRoZSB3b3JkcyA8bGl0ZXJhbD5GVU5DVElPTlM8L2xpdGVy YWw+IGFuZAorICAgPGxpdGVyYWw+Uk9VVElORVM8L2xpdGVyYWw+IGFyZSBlcXVpdmFsZW50IGlu IHRoaXMgY29tbWFuZC4KKyAgICg8bGl0ZXJhbD5ST1VUSU5FUzwvbGl0ZXJhbD4gaXMgcHJlZmVy cmVkIGdvaW5nIGZvcndhcmQgYXMgdGhlIHN0YW5kYXJkCisgICB0ZXJtIGZvciBmdW5jdGlvbnMg YW5kIHByb2NlZHVyZXMgdGFrZW4gdG9nZXRoZXIuICBJbiBlYXJsaWVyIFBvc3RncmVTUUwKKyAg IHJlbGVhc2VzLCBvbmx5IHRoZSB3b3JkIDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gd2Fz IGFsbG93ZWQuICBJdCBpcyBub3QKKyAgIHBvc3NpYmxlIHRvIHNldCBkZWZhdWx0IHByaXZpbGVn ZXMgZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyBzZXBhcmF0ZWx5LikKICAgPC9wYXJhPgog CiAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5z Z21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kODc1NzBlN2Q4YgotLS0gL2Rldi9udWxsCisrKyBi L2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbApAQCAtMCwwICsxLDE3OCBAQAor PCEtLQorZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCitQb3N0Z3JlU1FMIGRv Y3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1hbHRlcnZhcmlhYmxlIj4KKyA8 aW5kZXh0ZXJtIHpvbmU9InNxbC1hbHRlcnZhcmlhYmxlIj4KKyAgPHByaW1hcnk+QUxURVIgVkFS SUFCTEU8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8aW5kZXh0ZXJtPgorICA8cHJpbWFy eT5zZXNzaW9uIHZhcmlhYmxlPC9wcmltYXJ5PgorICA8c2Vjb25kYXJ5PmFsdGVyaW5nPC9zZWNv bmRhcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+QUxU RVIgVkFSSUFCTEU8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgor ICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+Cisg PC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkFMVEVSIFZBUklBQkxFPC9y ZWZuYW1lPgorICA8cmVmcHVycG9zZT4KKyAgIGNoYW5nZSB0aGUgZGVmaW5pdGlvbiBvZiBhIHNl c3Npb24gdmFyaWFibGUKKyAgPC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZz eW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0FMVEVSIFZBUklBQkxFIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gT1dORVIgVE8geyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bmV3X293bmVyPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1JPTEUg fCBDVVJSRU5UX1VTRVIgfCBTRVNTSU9OX1VTRVIgfQorQUxURVIgVkFSSUFCTEUgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19uYW1lPC9yZXBsYWNlYWJsZT4KK0FMVEVSIFZB UklBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4g U0VUIFNDSEVNQSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X3NjaGVtYTwvcmVw bGFjZWFibGU+Cis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1h bmQ+QUxURVIgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgY2hhbmdlcyB0aGUgZGVmaW5pdGlv biBvZiBhbgorICAgZXhpc3Rpbmcgc2Vzc2lvbiB2YXJpYWJsZS4gVGhlcmUgYXJlIHNldmVyYWwg c3ViZm9ybXM6CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRl cm0+PGxpdGVyYWw+T1dORVI8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAg PHBhcmE+CisgICAgICBUaGlzIGZvcm0gY2hhbmdlcyB0aGUgb3duZXIgb2YgdGhlIHNlc3Npb24g dmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50 cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+UkVOQU1FPC9saXRl cmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBmb3Jt IGNoYW5nZXMgdGhlIG5hbWUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgIDwvcGFyYT4K KyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+ CisgICAgPHRlcm0+PGxpdGVyYWw+U0VUIFNDSEVNQTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgZm9ybSBtb3ZlcyB0aGUgc2Vzc2lvbiB2 YXJpYWJsZSBpbnRvIGFub3RoZXIgc2NoZW1hLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgIDwvdmFyaWFibGVsaXN0PgorICA8L3BhcmE+CisK KyAgPHBhcmE+CisgICBPbmx5IHRoZSBvd25lciBvciBhIHN1cGVydXNlciBpcyBhbGxvd2VkIHRv IGFsdGVyIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgIEluIG9yZGVyIHRvIG1vdmUgYSBzZXNzaW9u IHZhcmlhYmxlIGZyb20gb25lIHNjaGVtYSB0byBhbm90aGVyLCB0aGUgdXNlcgorICAgbXVzdCBh bHNvIGhhdmUgdGhlIDxsaXRlcmFsPkNSRUFURTwvbGl0ZXJhbD4gcHJpdmlsZWdlIG9uIHRoZSBu ZXcgc2NoZW1hIChvcgorICAgYmUgYSBzdXBlcnVzZXIpLgorCisgICBJbiBvcmRlciB0byBtb3Zl IHRoZSBzZXNzaW9uIHZhcmlhYmxlIG93bmVyc2hpcCBmcm9tIG9uZSByb2xlIHRvIGFub3RoZXIs CisgICB0aGUgdXNlciBtdXN0IGFsc28gYmUgYSBkaXJlY3Qgb3IgaW5kaXJlY3QgbWVtYmVyIG9m IHRoZSBuZXcKKyAgIG93bmluZyByb2xlLCBhbmQgdGhhdCByb2xlIG11c3QgaGF2ZSB0aGUgPGxp dGVyYWw+Q1JFQVRFPC9saXRlcmFsPiBwcml2aWxlZ2UKKyAgIG9uIHRoZSBzZXNzaW9uIHZhcmlh YmxlJ3Mgc2NoZW1hIChvciBiZSBhIHN1cGVydXNlcikuIFRoZXNlIHJlc3RyaWN0aW9ucworICAg ZW5mb3JjZSB0aGF0IGFsdGVyaW5nIHRoZSBvd25lciBkb2Vzbid0IGRvIGFueXRoaW5nIHlvdSBj b3VsZG4ndCBkbyBieQorICAgZHJvcHBpbmcgYW5kIHJlY3JlYXRpbmcgdGhlIHNlc3Npb24gdmFy aWFibGUuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+ UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgIDxwYXJhPgorICAgIDx2YXJpYWJsZWxpc3Q+CisgICAg IDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxw YXJhPgorICAgICAgICBUaGUgbmFtZSAocG9zc2libHkgc2NoZW1hLXF1YWxpZmllZCkgb2YgdGhl IGV4aXN0aW5nIHNlc3Npb24gdmFyaWFibGUKKyAgICAgICAgdG8gYWx0ZXIuCisgICAgICAgPC9w YXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5u ZXdfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxw YXJhPgorICAgICAgICBUaGUgbmV3IG5hbWUgZm9yIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAg ICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCisg ICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmV3X293bmVyPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+Cisg ICAgICAgPHBhcmE+CisgICAgICAgIFRoZSB1c2VyIG5hbWUgb2YgdGhlIG5ldyBvd25lciBvZiB0 aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgor ICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+ PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19zY2hlbWE8L3JlcGxhY2VhYmxlPjwv dGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIG5ldyBz Y2hlbWEgZm9yIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwv bGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorICAgIDwvdmFyaWFibGVsaXN0PgorICAg PC9wYXJhPgorICA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8 L3RpdGxlPgorCisgIDxwYXJhPgorICAgVG8gcmVuYW1lIGEgc2Vzc2lvbiB2YXJpYWJsZToKKzxw cm9ncmFtbGlzdGluZz4KK0FMVEVSIFZBUklBQkxFIGZvbyBSRU5BTUUgVE8gYm9vOworPC9wcm9n cmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVG8gY2hhbmdlIHRoZSBvd25l ciBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJhbD5ib288L2xpdGVyYWw+IHRvCisgICA8 bGl0ZXJhbD5qb2U8L2xpdGVyYWw+OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgVkFSSUFCTEUg Ym9vIE9XTkVSIFRPIGpvZTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFy YT4KKyAgIFRvIGNoYW5nZSB0aGUgc2NoZW1hIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIDxsaXRl cmFsPmJvbzwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPnByaXZhdGU8L2xpdGVyYWw+OgorPHBy b2dyYW1saXN0aW5nPgorQUxURVIgVkFSSUFCTEUgYm9vIFNFVCBTQ0hFTUEgcHJpdmF0ZTsKKzwv cHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgor ICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBTZXNzaW9uIHZh cmlhYmxlcyBhbmQgdGhpcyBjb21tYW5kIGluIHBhcnRpY3VsYXIgYXJlIGEgUG9zdGdyZVNRTCBl eHRlbnNpb24uCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxIGlkPSJzcWwt YWx0ZXJ2YXJpYWJsZS1zZWUtYWxzbyI+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAg PHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3Fs LWNyZWF0ZXZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNx bC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+ Cis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbAppbmRleCA1YjQzYzU2YjEzMy4uMjFjZDgw ODE4ZmIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sCkBAIC02NSw2ICs2NSw3IEBAIENPTU1FTlQgT04K ICAgVFJBTlNGT1JNIEZPUiA8cmVwbGFjZWFibGU+dHlwZV9uYW1lPC9yZXBsYWNlYWJsZT4gTEFO R1VBR0UgPHJlcGxhY2VhYmxlPmxhbmdfbmFtZTwvcmVwbGFjZWFibGU+IHwKICAgVFJJR0dFUiA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dHJpZ2dlcl9uYW1lPC9yZXBsYWNlYWJsZT4g T04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxl PiB8CiAgIFRZUEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9y ZXBsYWNlYWJsZT4gfAorICBWQVJJQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFZJRVcgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4KIH0gSVMgeyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+c3RyaW5nX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiB8IE5VTEwgfQog CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sCmluZGV4IGVkNjkyOThjY2M2Li5hODM0Yzg3 NmJjOSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwKQEAgLTEwMyw5ICsxMDMsMTAg QEAgQ1JFQVRFIFNDSEVNQSBJRiBOT1QgRVhJU1RTIEFVVEhPUklaQVRJT04gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3AKICAgICAgICAgc2NoZW1hLiBDdXJyZW50bHksIG9u bHkgPGNvbW1hbmQ+Q1JFQVRFCiAgICAgICAgIFRBQkxFPC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JF QVRFIFZJRVc8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVBVEUKICAgICAgICAgSU5ERVg8L2NvbW1h bmQ+LCA8Y29tbWFuZD5DUkVBVEUgU0VRVUVOQ0U8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVBVEUK LSAgICAgICAgVFJJR0dFUjwvY29tbWFuZD4gYW5kIDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBh cmUgYWNjZXB0ZWQgYXMgY2xhdXNlcwotICAgICAgICB3aXRoaW4gPGNvbW1hbmQ+Q1JFQVRFIFND SEVNQTwvY29tbWFuZD4uIE90aGVyIGtpbmRzIG9mIG9iamVjdHMgbWF5Ci0gICAgICAgIGJlIGNy ZWF0ZWQgaW4gc2VwYXJhdGUgY29tbWFuZHMgYWZ0ZXIgdGhlIHNjaGVtYSBpcyBjcmVhdGVkLgor ICAgICAgICBUUklHR0VSPC9jb21tYW5kPiwgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGFuZCA8 Y29tbWFuZD5DUkVBVEUKKyAgICAgICAgVkFSSUFCTEU8L2NvbW1hbmQ+IGFyZSBhY2NlcHRlZCBh cyBjbGF1c2VzIHdpdGhpbiA8Y29tbWFuZD5DUkVBVEUKKyAgICAgICAgU0NIRU1BPC9jb21tYW5k Pi4gT3RoZXIga2luZHMgb2Ygb2JqZWN0cyBtYXkgYmUgY3JlYXRlZCBpbiBzZXBhcmF0ZQorICAg ICAgICBjb21tYW5kcyBhZnRlciB0aGUgc2NoZW1hIGlzIGNyZWF0ZWQuCiAgICAgICAgPC9wYXJh PgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdmFyaWFibGUuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uMjU2OGJkZmYzNWMKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV92YXJpYWJsZS5zZ21sCkBAIC0wLDAgKzEsMTU1IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV92YXJpYWJsZS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8 cmVmZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwt Y3JlYXRldmFyaWFibGUiPgorICA8cHJpbWFyeT5DUkVBVEUgVkFSSUFCTEU8L3ByaW1hcnk+Cisg PC9pbmRleHRlcm0+CisKKyA8aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxl PC9wcmltYXJ5PgorICA8c2Vjb25kYXJ5PmRlZmluaW5nPC9zZWNvbmRhcnk+CisgPC9pbmRleHRl cm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+Q1JFQVRFIFZBUklBQkxFPC9yZWZl bnRyeXRpdGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNR TCAtIExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxy ZWZuYW1lZGl2PgorICA8cmVmbmFtZT5DUkVBVEUgVkFSSUFCTEU8L3JlZm5hbWU+CisgIDxyZWZw dXJwb3NlPmRlZmluZSBhIHNlc3Npb24gdmFyaWFibGU8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1l ZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorQ1JFQVRFIFZBUklBQkxFIFsg SUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBs YWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8 L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2 PgorIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4K KyAgIFRoZSA8Y29tbWFuZD5DUkVBVEUgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgY3JlYXRl cyBhIHNlc3Npb24gdmFyaWFibGUuCisgICBTZXNzaW9uIHZhcmlhYmxlcywgbGlrZSByZWxhdGlv bnMsIGV4aXN0IHdpdGhpbiBhIHNjaGVtYSBhbmQgdGhlaXIgYWNjZXNzIGlzCisgICBjb250cm9s bGVkIHZpYSA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gYW5kIDxjb21tYW5kPlJFVk9LRTwvY29t bWFuZD4KKyAgIGNvbW1hbmRzLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgdmFsdWUg b2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIGxvY2FsIHRvIHRoZSBjdXJyZW50IHNlc3Npb24uIFJl dHJpZXZpbmcKKyAgIGEgc2Vzc2lvbiB2YXJpYWJsZSdzIHZhbHVlIHJldHVybnMgZWl0aGVyIGEg TlVMTCwgdW5sZXNzIGl0cyB2YWx1ZSBpcyBzZXQgdG8KKyAgIHNvbWV0aGluZyBlbHNlIGluIHRo ZSBjdXJyZW50IHNlc3Npb24gd2l0aCBhIExFVCBjb21tYW5kLiBUaGUgY29udGVudCBvZgorICAg YSBzZXNzaW9uIHZhcmlhYmxlIGlzIG5vdCB0cmFuc2FjdGlvbmFsLiBUaGlzIGlzIHRoZSAgc2Ft ZSBhcyByZWd1bGFyCisgICB2YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBsYW5ndWFnZXMuCisgIDwv cGFyYT4KKworICA8cGFyYT4KKyAgIFNlc3Npb24gdmFyaWFibGVzIGFyZSByZXRyaWV2ZWQgYnkg dGhlIDxjb21tYW5kPlNFTEVDVDwvY29tbWFuZD4KKyAgIGNvbW1hbmQuICBUaGVpciB2YWx1ZSBp cyBzZXQgd2l0aCB0aGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLgorICA8L3BhcmE+ CisKKyAgPG5vdGU+CisgICA8cGFyYT4KKyAgICBJbnNpZGUgYSBxdWVyeSBvciBhbiBleHByZXNz aW9uLCB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBjYW4gYmUgc2hhZG93ZWQgYnkKKyAgICBjb2x1bW4g b3IgYnkgcm91dGluZSdzIHZhcmlhYmxlIG9yIHJvdXRpbmUgYXJndW1lbnQuIFN1Y2ggY29sbGlz aW9ucyBvZgorICAgIGlkZW50aWZpZXJzIGNhbiBiZSByZXNvbHZlZCBieSB1c2luZyBxdWFsaWZp ZWQgaWRlbnRpZmllcnMuIFNlc3Npb24gdmFyaWFibGVzCisgICAgY2FuIHVzZSBzY2hlbWEgbmFt ZSwgY29sdW1ucyBjYW4gdXNlIHRhYmxlIGFsaWFzZXMsIHJvdXRpbmUgdmFyaWFibGVzCisgICAg Y2FuIHVzZSBibG9jayBsYWJlbHMsIGFuZCByb3V0aW5lIGFyZ3VtZW50cyBjYW4gdXNlIHRoZSBy b3V0aW5lIG5hbWUuCisgICA8L3BhcmE+CisgIDwvbm90ZT4KKyA8L3JlZnNlY3QxPgorCisgPHJl ZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4K KworICAgPHZhcmxpc3RlbnRyeSAgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1pZi1ub3QtZXhpc3Rz Ij4KKyAgICA8dGVybT48bGl0ZXJhbD5JRiBOT1QgRVhJU1RTPC9saXRlcmFsPjwvdGVybT4KKyAg ICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRG8gbm90IHRocm93IGFuIGVycm9yIGlm IHRoZSBuYW1lIGFscmVhZHkgZXhpc3RzLiBBIG5vdGljZSBpcyBpc3N1ZWQgaW4KKyAgICAgIHRo aXMgY2FzZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLW5hbWUiPgorICAg IDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT48 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lLCBvcHRp b25hbGx5IHNjaGVtYS1xdWFsaWZpZWQsIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICA8 L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlz dGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtZGF0YV90eXBlIj4KKyAgICA8dGVybT48cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT48L3Rlcm0+ CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lLCBvcHRpb25hbGx5 IHNjaGVtYS1xdWFsaWZpZWQsIG9mIHRoZSBkYXRhIHR5cGUgb2YgdGhlIHNlc3Npb24KKyAgICAg IHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVu dHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtY29sbGF0ZSI+ CisgICAgPHRlcm0+PGxpdGVyYWw+Q09MTEFURSA8cmVwbGFjZWFibGU+Y29sbGF0aW9uPC9yZXBs YWNlYWJsZT48L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+Cisg ICAgICBUaGUgPGxpdGVyYWw+Q09MTEFURTwvbGl0ZXJhbD4gY2xhdXNlIGFzc2lnbnMgYSBjb2xs YXRpb24gdG8gdGhlIHNlc3Npb24KKyAgICAgIHZhcmlhYmxlICh3aGljaCBtdXN0IGJlIG9mIGEg Y29sbGF0YWJsZSBkYXRhIHR5cGUpLiAgSWYgbm90IHNwZWNpZmllZCwKKyAgICAgIHRoZSBkYXRh IHR5cGUncyBkZWZhdWx0IGNvbGxhdGlvbiBpcyB1c2VkLgorICAgICA8L3BhcmE+CisgICAgPC9s aXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVm c2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Ob3RlczwvdGl0bGU+CisKKyAgPHBhcmE+ CisgICBVc2UgdGhlIDxjb21tYW5kPkRST1AgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgdG8g cmVtb3ZlIGEgc2Vzc2lvbgorICAgdmFyaWFibGUuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgor CisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxwYXJhPgorICAg Q3JlYXRlIGFuIGRhdGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJhbD52YXIxPC9saXRlcmFsPjoK Kzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGRhdGU7CitMRVQgdmFy MSA9IGN1cnJlbnRfZGF0ZTsKK1NFTEVDVCB2YXIxOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9w YXJhPgorCisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxp dHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkNSRUFURSBWQVJJQUJMRTwv Y29tbWFuZD4gY29tbWFuZCBpcyBhCisgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVj dG5hbWU+IGV4dGVuc2lvbi4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5l Ij4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21lbWJl cj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVtYmVy PgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworPC9yZWZlbnRyeT4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3Jl Zi9kcm9wX3ZhcmlhYmxlLnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjViZGIzNTYwZjBiCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9w X3ZhcmlhYmxlLnNnbWwKQEAgLTAsMCArMSwxMTcgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYv ZHJvcF92YXJpYWJsZS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVm ZW50cnkgaWQ9InNxbC1kcm9wdmFyaWFibGUiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWRyb3B2 YXJpYWJsZSI+CisgIDxwcmltYXJ5PkRST1AgVkFSSUFCTEU8L3ByaW1hcnk+CisgPC9pbmRleHRl cm0+CisKKyA8aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxlPC9wcmltYXJ5 PgorICA8c2Vjb25kYXJ5PnJlbW92aW5nPC9zZWNvbmRhcnk+CisgPC9pbmRleHRlcm0+CisKKyA8 cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+RFJPUCBWQVJJQUJMRTwvcmVmZW50cnl0aXRsZT4K KyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFn ZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4K KyAgPHJlZm5hbWU+RFJPUCBWQVJJQUJMRTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+cmVtb3Zl IGEgc2Vzc2lvbiB2YXJpYWJsZTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVm c3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitEUk9QIFZBUklBQkxFIFsgSUYgRVhJU1RTIF0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFsg Q0FTQ0FERSB8IFJFU1RSSUNUIF0KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKwor IDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAg IDxjb21tYW5kPkRST1AgVkFSSUFCTEU8L2NvbW1hbmQ+IHJlbW92ZXMgYSBzZXNzaW9uIHZhcmlh YmxlLgorICAgQSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBvbmx5IGJlIHJlbW92ZWQgYnkgaXRzIG93 bmVyIG9yIGEgc3VwZXJ1c2VyLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0 MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8 dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPklGIEVYSVNUUzwvbGl0ZXJhbD48L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIERvIG5vdCB0aHJvdyBhbiBl cnJvciBpZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBkb2VzIG5vdCBleGlzdC4gQSBub3RpY2UgaXMK KyAgICAgIGlzc3VlZCBpbiB0aGlzIGNhc2UuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVt PgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAg ICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUsIG9wdGlvbmFsbHkgc2No ZW1hLXF1YWxpZmllZCwgb2YgYSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAg PC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAg IDx0ZXJtPjxsaXRlcmFsPkNBU0NBREU8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBBdXRvbWF0aWNhbGx5IGRyb3Agb2JqZWN0cyB0aGF0IGRlcGVu ZCBvbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAoc3VjaCBhcworICAgICAgdmlld3MpLCBhbmQgaW4g dHVybiBhbGwgb2JqZWN0cyB0aGF0IGRlcGVuZCBvbiB0aG9zZSBvYmplY3RzCisgICAgICAoc2Vl IDx4cmVmIGxpbmtlbmQ9ImRkbC1kZXBlbmQiLz4pLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0 aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJt PjxsaXRlcmFsPlJFU1RSSUNUPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgUmVmdXNlIHRvIGRyb3AgdGhlIHNlc3Npb24gdmFyaWFibGUgaWYgYW55 IG9iamVjdHMgZGVwZW5kIG9uIGl0LiAgVGhpcyBpcworICAgICAgdGhlIGRlZmF1bHQuCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisgIDwvdmFyaWFi bGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwv dGl0bGU+CisKKyAgPHBhcmE+CisgICBUbyByZW1vdmUgdGhlIHNlc3Npb24gdmFyaWFibGUgPGxp dGVyYWw+dmFyMTwvbGl0ZXJhbD46CisKKzxwcm9ncmFtbGlzdGluZz4KK0RST1AgVkFSSUFCTEUg dmFyMTsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2Vj dDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8 Y29tbWFuZD5EUk9QIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGlzIGEKKyAgIDxwcm9kdWN0 bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgorICA8L3BhcmE+CisgPC9y ZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8 c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwt YWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwt Y3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+ CisKKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKaW5kZXggOTk5ZjY1N2Q1YzAuLjc4ZmYxMGZj ZjVlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9ncmFudC5zZ21sCkBAIC0xMDEsNiArMTAxLDEyIEBAIEdSQU5UIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFRP IDxyZXBsYWNlCiAgICAgWyBXSVRIIHsgQURNSU4gfCBJTkhFUklUIHwgU0VUIH0geyBPUFRJT04g fCBUUlVFIHwgRkFMU0UgfSBdCiAgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBdCiAKK0dSQU5UIHsg U0VMRUNUIHwgVVBEQVRFIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICBPTiBWQVJJQUJMRSA8 cmVwbGFjZWFibGU+dmFyaWFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0KKyAgICAgICB8 IEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5z Y2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gfQorICAgIFRPIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5d IFsgV0lUSCBHUkFOVCBPUFRJT04gXQorICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQorCiA8cGhy YXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRp b248L3JlcGxhY2VhYmxlPiBjYW4gYmU6PC9waHJhc2U+CiAKICAgICBbIEdST1VQIF0gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+CmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9yZXZv a2Uuc2dtbAppbmRleCA4ZGY0OTIyODFhMS4uNjI2YzAyMzFkMGQgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dt bApAQCAtMTM3LDYgKzEzNywxMyBAQCBSRVZPS0UgWyB7IEFETUlOIHwgSU5IRVJJVCB8IFNFVCB9 IE9QVElPTiBGT1IgXQogICB8IENVUlJFTlRfUk9MRQogICB8IENVUlJFTlRfVVNFUgogICB8IFNF U1NJT05fVVNFUgorCitSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KKyAgICB7IHsgU0VMRUNU IHwgVVBEQVRFIH0gWywgLi4uXSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CisgICAgT04gVkFSSUFC TEUgPHJlcGxhY2VhYmxlPnZhcmlhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCisgICAg ICAgfCBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIH0KKyAgICBGUk9NIHsgWyBHUk9V UCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxl PiB8IFBVQkxJQyB9IFssIC4uLl0KKyAgICBbIENBU0NBREUgfCBSRVNUUklDVCBdCiA8L3N5bm9w c2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWZl cmVuY2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAppbmRleCBmZjg1YWNlODNm Yy4uMjU1NzhmMzk0NmMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKQEAgLTc1LDYgKzc1LDcgQEAKICAgICZh bHRlclR5cGU7CiAgICAmYWx0ZXJVc2VyOwogICAgJmFsdGVyVXNlck1hcHBpbmc7CisgICAmYWx0 ZXJWYXJpYWJsZTsKICAgICZhbHRlclZpZXc7CiAgICAmYW5hbHl6ZTsKICAgICZiZWdpbjsKQEAg LTEyNyw2ICsxMjgsNyBAQAogICAgJmNyZWF0ZVR5cGU7CiAgICAmY3JlYXRlVXNlcjsKICAgICZj cmVhdGVVc2VyTWFwcGluZzsKKyAgICZjcmVhdGVWYXJpYWJsZTsKICAgICZjcmVhdGVWaWV3Owog ICAgJmRlYWxsb2NhdGU7CiAgICAmZGVjbGFyZTsKQEAgLTE3NSw2ICsxNzcsNyBAQAogICAgJmRy b3BUeXBlOwogICAgJmRyb3BVc2VyOwogICAgJmRyb3BVc2VyTWFwcGluZzsKKyAgICZkcm9wVmFy aWFibGU7CiAgICAmZHJvcFZpZXc7CiAgICAmZW5kOwogICAgJmV4ZWN1dGU7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtl ZmlsZQppbmRleCAxNTg5YTc1ZmQ1My4uN2E5MGZjZmM0NTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQpA QCAtNDUsNiArNDUsNyBAQCBPQkpTID0gXAogCXBnX3NoZGVwZW5kLm8gXAogCXBnX3N1YnNjcmlw dGlvbi5vIFwKIAlwZ190eXBlLm8gXAorCXBnX3ZhcmlhYmxlLm8gXAogCXN0b3JhZ2UubyBcCiAJ dG9hc3RpbmcubwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwppbmRleCBhNDRjY2VlM2I2OC4uNjk2OGIxZTZl YmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9hY2xjaGsuYwpAQCAtNjQsNiArNjQsNyBAQAogI2luY2x1ZGUgImNhdGFs b2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIK ICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVm cmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgpAQCAtMjkwLDYgKzI5 MSw5IEBAIHJlc3RyaWN0X2FuZF9jaGVja19ncmFudChib29sIGlzX2dyYW50LCBBY2xNb2RlIGF2 YWlsX2dvcHRpb25zLCBib29sIGFsbF9wcml2cywKIAkJY2FzZSBPQkpFQ1RfUEFSQU1FVEVSX0FD TDoKIAkJCXdob2xlX21hc2sgPSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNMOwogCQkJYnJl YWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJd2hvbGVfbWFzayA9IEFDTF9BTExfUklH SFRTX1ZBUklBQkxFOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5y ZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsIG9ianR5cGUpOwogCQkJLyogbm90IHJlYWNoZWQs IGJ1dCBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCkBAIC01MzQsNiArNTM4LDEwIEBAIEV4ZWN1dGVH cmFudFN0bXQoR3JhbnRTdG10ICpzdG10KQogCQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJ R0hUU19QQVJBTUVURVJfQUNMOwogCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQg cHJpdmlsZWdlIHR5cGUgJXMgZm9yIHBhcmFtZXRlciIpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JK RUNUX1ZBUklBQkxFOgorCQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJM RTsKKwkJCWVycm9ybXNnID0gZ2V0dGV4dF9ub29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBlICVz IGZvciBzZXNzaW9uIHZhcmlhYmxlIik7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2co RVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGludCkg c3RtdC0+b2JqdHlwZSk7CkBAIC02MzksNiArNjQ3LDkgQEAgRXhlY0dyYW50U3RtdF9vaWRzKElu dGVybmFsR3JhbnQgKmlzdG10KQogCQljYXNlIE9CSkVDVF9QQVJBTUVURVJfQUNMOgogCQkJRXhl Y0dyYW50X1BhcmFtZXRlcihpc3RtdCk7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFC TEU6CisJCQlFeGVjR3JhbnRfY29tbW9uKGlzdG10LCBWYXJpYWJsZVJlbGF0aW9uSWQsIEFDTF9B TExfUklHSFRTX1ZBUklBQkxFLCBOVUxMKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxv ZyhFUlJPUiwgInVucmVjb2duaXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAoaW50 KSBpc3RtdC0+b2JqdHlwZSk7CkBAIC04MjksNiArODQwLDE4IEBAIG9iamVjdE5hbWVzVG9PaWRz KE9iamVjdFR5cGUgb2JqdHlwZSwgTGlzdCAqb2JqbmFtZXMsIGJvb2wgaXNfZ3JhbnQpCiAJCQkJ CW9iamVjdHMgPSBsYXBwZW5kX29pZChvYmplY3RzLCBwYXJhbWV0ZXJJZCk7CiAJCQl9CiAJCQli cmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlmb3JlYWNoKGNlbGwsIG9iam5hbWVz KQorCQkJeworCQkJCVJhbmdlVmFyICAgKnZhcnZhciA9IChSYW5nZVZhciAqKSBsZmlyc3QoY2Vs bCk7CisJCQkJT2lkCQkJcmVsT2lkOworCisJCQkJcmVsT2lkID0gTG9va3VwVmFyaWFibGUodmFy dmFyLT5zY2hlbWFuYW1lLAorCQkJCQkJCQkJCXZhcnZhci0+cmVsbmFtZSwKKwkJCQkJCQkJCQlm YWxzZSk7CisJCQkJb2JqZWN0cyA9IGxhcHBlbmRfb2lkKG9iamVjdHMsIHJlbE9pZCk7CisJCQl9 CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgR3Jh bnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGludCkgb2JqdHlwZSk7CkBAIC05MTgsNiArOTQx LDMyIEBAIG9iamVjdHNJblNjaGVtYVRvT2lkcyhPYmplY3RUeXBlIG9ianR5cGUsIExpc3QgKm5z cG5hbWVzKQogCQkJCQl0YWJsZV9jbG9zZShyZWwsIEFjY2Vzc1NoYXJlTG9jayk7CiAJCQkJfQog CQkJCWJyZWFrOworCQkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQkJeworCQkJCQlTY2FuS2V5 RGF0YSBrZXk7CisJCQkJCVJlbGF0aW9uCXJlbDsKKwkJCQkJVGFibGVTY2FuRGVzYyBzY2FuOwor CQkJCQlIZWFwVHVwbGUJdHVwbGU7CisKKwkJCQkJU2NhbktleUluaXQoJmtleSwKKwkJCQkJCQkJ QW51bV9wZ192YXJpYWJsZV92YXJuYW1lc3BhY2UsCisJCQkJCQkJCUJURXF1YWxTdHJhdGVneU51 bWJlciwgRl9PSURFUSwKKwkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShuYW1lc3BhY2VJZCkpOwor CisJCQkJCXJlbCA9IHRhYmxlX29wZW4oVmFyaWFibGVSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxv Y2spOworCQkJCQlzY2FuID0gdGFibGVfYmVnaW5zY2FuX2NhdGFsb2cocmVsLCAxLCAma2V5KTsK KworCQkJCQl3aGlsZSAoKHR1cGxlID0gaGVhcF9nZXRuZXh0KHNjYW4sIEZvcndhcmRTY2FuRGly ZWN0aW9uKSkgIT0gTlVMTCkKKwkJCQkJeworCQkJCQkJT2lkCQkJb2lkID0gKChGb3JtX3BnX3By b2MpIEdFVFNUUlVDVCh0dXBsZSkpLT5vaWQ7CisKKwkJCQkJCW9iamVjdHMgPSBsYXBwZW5kX29p ZChvYmplY3RzLCBvaWQpOworCQkJCQl9CisKKwkJCQkJdGFibGVfZW5kc2NhbihzY2FuKTsKKwkJ CQkJdGFibGVfY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOworCQkJCX0KKwkJCQlicmVhazsK IAkJCWRlZmF1bHQ6CiAJCQkJLyogc2hvdWxkIG5vdCBoYXBwZW4gKi8KIAkJCQllbG9nKEVSUk9S LCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIsCkBAIC0xMDc3LDYgKzExMjYs MTAgQEAgRXhlY0FsdGVyRGVmYXVsdFByaXZpbGVnZXNTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwg QWx0ZXJEZWZhdWx0UHJpdmlsZWdlc1N0bXQgKnMKIAkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FM TF9SSUdIVFNfU0NIRU1BOwogCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJp dmlsZWdlIHR5cGUgJXMgZm9yIHNjaGVtYSIpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZB UklBQkxFOgorCQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJ CWVycm9ybXNnID0gZ2V0dGV4dF9ub29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBz ZXNzaW9uIHZhcmlhYmxlIik7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1Is ICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGludCkgYWN0aW9u LT5vYmp0eXBlKTsKQEAgLTEyNjgsNiArMTMyMSwxMiBAQCBTZXREZWZhdWx0QUNMKEludGVybmFs RGVmYXVsdEFDTCAqaWFjbHMpCiAJCQkJdGhpc19wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNf U0NIRU1BOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlvYmp0eXBl ID0gREVGQUNMT0JKX1ZBUklBQkxFOworCQkJaWYgKGlhY2xzLT5hbGxfcHJpdnMgJiYgdGhpc19w cml2aWxlZ2VzID09IEFDTF9OT19SSUdIVFMpCisJCQkJdGhpc19wcml2aWxlZ2VzID0gQUNMX0FM TF9SSUdIVFNfVkFSSUFCTEU7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJP UiwgInVucmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLAogCQkJCSAoaW50KSBpYWNscy0+b2Jq dHlwZSk7CkBAIC0xNTExLDYgKzE1NzAsOSBAQCBSZW1vdmVSb2xlRnJvbU9iamVjdEFDTChPaWQg cm9sZWlkLCBPaWQgY2xhc3NpZCwgT2lkIG9iamlkKQogCQkJY2FzZSBERUZBQ0xPQkpfTkFNRVNQ QUNFOgogCQkJCWlhY2xzLm9ianR5cGUgPSBPQkpFQ1RfU0NIRU1BOwogCQkJCWJyZWFrOworCQkJ Y2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQkJaWFjbHMub2JqdHlwZSA9IE9CSkVDVF9WQVJJ QUJMRTsKKwkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJLyogU2hvdWxkbid0IGdldCBoZXJl ICovCiAJCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgZGVmYXVsdCBBQ0wgdHlwZTogJWQiLApA QCAtMTU3MSw2ICsxNjMzLDkgQEAgUmVtb3ZlUm9sZUZyb21PYmplY3RBQ0woT2lkIHJvbGVpZCwg T2lkIGNsYXNzaWQsIE9pZCBvYmppZCkKIAkJCWNhc2UgUGFyYW1ldGVyQWNsUmVsYXRpb25JZDoK IAkJCQlpc3RtdC5vYmp0eXBlID0gT0JKRUNUX1BBUkFNRVRFUl9BQ0w7CiAJCQkJYnJlYWs7CisJ CQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJCQlpc3RtdC5vYmp0eXBlID0gT0JKRUNUX1ZB UklBQkxFOworCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQllbG9nKEVSUk9SLCAidW5leHBl Y3RlZCBvYmplY3QgY2xhc3MgJXUiLCBjbGFzc2lkKTsKIAkJCQlicmVhazsKQEAgLTI4MTAsNiAr Mjg3NSw5IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2Jq dHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgi cGVybWlzc2lvbiBkZW5pZWQgZm9yIHR5cGUgJXMiKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNl IE9CSkVDVF9WQVJJQUJMRToKKwkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgicGVybWlzc2lvbiBk ZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXMiKTsKKwkJCQkJCWJyZWFrOwogCQkJCQljYXNl IE9CSkVDVF9WSUVXOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwZXJtaXNzaW9uIGRlbmll ZCBmb3IgdmlldyAlcyIpOwogCQkJCQkJYnJlYWs7CkBAIC0yOTIxLDYgKzI5ODksOSBAQCBhY2xj aGVja19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNh c2UgT0JKRUNUX1RZUEU6CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIg b2YgdHlwZSAlcyIpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgor CQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIHNlc3Npb24gdmFyaWFi bGUgJXMiKTsKKwkJCQkJCWJyZWFrOwogCQkJCQljYXNlIE9CSkVDVF9WSUVXOgogCQkJCQkJbXNn ID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIHZpZXcgJXMiKTsKIAkJCQkJCWJyZWFr OwpAQCAtMzA2OSw2ICszMTQwLDggQEAgcGdfYWNsbWFzayhPYmplY3RUeXBlIG9ianR5cGUsIE9p ZCBvYmplY3Rfb2lkLCBBdHRyTnVtYmVyIGF0dG51bSwgT2lkIHJvbGVpZCwKIAkJCXJldHVybiBB Q0xfTk9fUklHSFRTOwogCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJcmV0dXJuIG9iamVjdF9hY2xt YXNrKFR5cGVSZWxhdGlvbklkLCBvYmplY3Rfb2lkLCByb2xlaWQsIG1hc2ssIGhvdyk7CisJCWNh c2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJcmV0dXJuIG9iamVjdF9hY2xtYXNrKFZhcmlhYmxlUmVs YXRpb25JZCwgb2JqZWN0X29pZCwgcm9sZWlkLCBtYXNrLCBob3cpOwogCQlkZWZhdWx0OgogCQkJ ZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLAogCQkJCSAoaW50KSBv Ymp0eXBlKTsKQEAgLTQzMzYsNiArNDQwOSwxMCBAQCBnZXRfdXNlcl9kZWZhdWx0X2FjbChPYmpl Y3RUeXBlIG9ianR5cGUsIE9pZCBvd25lcklkLCBPaWQgbnNwX29pZCkKIAkJCWRlZmFjbG9ianR5 cGUgPSBERUZBQ0xPQkpfTkFNRVNQQUNFOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBPQkpFQ1RfVkFS SUFCTEU6CisJCQlkZWZhY2xvYmp0eXBlID0gREVGQUNMT0JKX1ZBUklBQkxFOworCQkJYnJlYWs7 CisKIAkJZGVmYXVsdDoKIAkJCXJldHVybiBOVUxMOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5 LmMKaW5kZXggMDQ4OWNiYWJjYjguLjVhNWUzZjdiNTZhIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL2RlcGVuZGVuY3kuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVu Y3kuYwpAQCAtNjUsMTIgKzY1LDE0IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0 ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf dXNlcl9tYXBwaW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL2NvbW1lbnQuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNp bmNsdWRlICJjb21tYW5kcy9ldmVudF90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXh0 ZW5zaW9uLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcG9saWN5LmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvcHVibGljYXRpb25jbWRzLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2NoZW1hY21kcy5oIgog I2luY2x1ZGUgImNvbW1hbmRzL3NlY2xhYmVsLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VxdWVu Y2UuaCIKICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCkBAIC0xNDQ0LDYgKzE0NDYsMTAg QEAgZG9EZWxldGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGludCBmbGFncykKIAkJ CVJlbW92ZVB1YmxpY2F0aW9uQnlJZChvYmplY3QtPm9iamVjdElkKTsKIAkJCWJyZWFrOwogCisJ CWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJRHJvcFZhcmlhYmxlQnlJZChvYmplY3QtPm9i amVjdElkKTsKKwkJCWJyZWFrOworCiAJCWNhc2UgQ2FzdFJlbGF0aW9uSWQ6CiAJCWNhc2UgQ29s bGF0aW9uUmVsYXRpb25JZDoKIAkJY2FzZSBDb252ZXJzaW9uUmVsYXRpb25JZDoKQEAgLTE0Njcs NiArMTQ3Myw3IEBAIGRvRGVsZXRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBpbnQg ZmxhZ3MpCiAJCQlEcm9wT2JqZWN0QnlJZChvYmplY3QpOwogCQkJYnJlYWs7CiAKKwogCQkJLyoK IAkJCSAqIFRoZXNlIGdsb2JhbCBvYmplY3QgdHlwZXMgYXJlIG5vdCBzdXBwb3J0ZWQgaGVyZS4K IAkJCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQKaW5kZXggMmYzZGVkOGEwZTcuLmJmZGI0ZGEz MzAxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkCisrKyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQKQEAgLTMyLDYgKzMyLDcgQEAgYmFja2VuZF9z b3VyY2VzICs9IGZpbGVzKAogICAncGdfc2hkZXBlbmQuYycsCiAgICdwZ19zdWJzY3JpcHRpb24u YycsCiAgICdwZ190eXBlLmMnLAorICAncGdfdmFyaWFibGUuYycsCiAgICdzdG9yYWdlLmMnLAog ICAndG9hc3RpbmcuYycsCiApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVz cGFjZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwppbmRleCA0M2I3MDc2OTlk Ny4uYzE4MjRmOTExNWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNl LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwpAQCAtNDEsNiArNDEsNyBA QAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfcGFyc2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z190c190ZW1wbGF0ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgi CiAjaW5jbHVkZSAiY29tbW9uL2hhc2hmbl91bnN0YWJsZS5oIgogI2luY2x1ZGUgImZ1bmNhcGku aCIKQEAgLTk3MSw2ICs5NzIsNjkgQEAgUmVsYXRpb25Jc1Zpc2libGVFeHQoT2lkIHJlbGlkLCBi b29sICppc19taXNzaW5nKQogCXJldHVybiB2aXNpYmxlOwogfQogCisvKgorICogVmFyaWFibGVJ c1Zpc2libGUKKyAqCQlEZXRlcm1pbmUgd2hldGhlciBhIHZhcmlhYmxlIChpZGVudGlmaWVkIGJ5 IE9JRCkgaXMgdmlzaWJsZSBpbiB0aGUKKyAqCQljdXJyZW50IHNlYXJjaCBwYXRoLiBWaXNpYmxl IG1lYW5zICJ3b3VsZCBiZSBmb3VuZCBieSBzZWFyY2hpbmcKKyAqCQlmb3IgdGhlIHVucXVhbGlm aWVkIHZhcmlhYmxlIG5hbWUiLgorICovCitib29sCitWYXJpYWJsZUlzVmlzaWJsZShPaWQgdmFy aWQpCit7CisJSGVhcFR1cGxlCXZhcnR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJ T2lkCQkJdmFybmFtZXNwYWNlOworCWJvb2wJCXZpc2libGU7CisKKwl2YXJ0dXAgPSBTZWFyY2hT eXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKwlpZiAoIUhl YXBUdXBsZUlzVmFsaWQodmFydHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWls ZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisJdmFyZm9ybSA9IChGb3JtX3Bn X3ZhcmlhYmxlKSBHRVRTVFJVQ1QodmFydHVwKTsKKworCXJlY29tcHV0ZU5hbWVzcGFjZVBhdGgo KTsKKworCS8qCisJICogUXVpY2sgY2hlY2s6IGlmIGl0IGFpbid0IGluIHRoZSBwYXRoIGF0IGFs bCwgaXQgYWluJ3QgdmlzaWJsZS4gSXRlbXMgaW4KKwkgKiB0aGUgc3lzdGVtIG5hbWVzcGFjZSBh cmUgc3VyZWx5IGluIHRoZSBwYXRoIGFuZCBzbyB3ZSBuZWVkbid0IGV2ZW4gZG8KKwkgKiBsaXN0 X21lbWJlcl9vaWQoKSBmb3IgdGhlbS4KKwkgKi8KKwl2YXJuYW1lc3BhY2UgPSB2YXJmb3JtLT52 YXJuYW1lc3BhY2U7CisJaWYgKHZhcm5hbWVzcGFjZSAhPSBQR19DQVRBTE9HX05BTUVTUEFDRSAm JgorCQkhbGlzdF9tZW1iZXJfb2lkKGFjdGl2ZVNlYXJjaFBhdGgsIHZhcm5hbWVzcGFjZSkpCisJ CXZpc2libGUgPSBmYWxzZTsKKwllbHNlCisJeworCQkvKgorCQkgKiBJZiBpdCBpcyBpbiB0aGUg cGF0aCwgaXQgbWlnaHQgc3RpbGwgbm90IGJlIHZpc2libGU7IGl0IGNvdWxkIGJlCisJCSAqIGhp ZGRlbiBieSBhbm90aGVyIHZhcmlhYmxlIG9mIHRoZSBzYW1lIG5hbWUgZWFybGllciBpbiB0aGUg cGF0aC4gU28KKwkJICogd2UgbXVzdCBkbyBhIHNsb3cgY2hlY2sgZm9yIGNvbmZsaWN0aW5nIHJl bGF0aW9ucy4KKwkJICovCisJCWNoYXIJICAgKnZhcm5hbWUgPSBOYW1lU3RyKHZhcmZvcm0tPnZh cm5hbWUpOworCQlMaXN0Q2VsbCAgICpsOworCisJCXZpc2libGUgPSBmYWxzZTsKKwkJZm9yZWFj aChsLCBhY3RpdmVTZWFyY2hQYXRoKQorCQl7CisJCQlPaWQJCQluYW1lc3BhY2VJZCA9IGxmaXJz dF9vaWQobCk7CisKKwkJCWlmIChuYW1lc3BhY2VJZCA9PSB2YXJuYW1lc3BhY2UpCisJCQl7CisJ CQkJLyogRm91bmQgaXQgZmlyc3QgaW4gcGF0aCAqLworCQkJCXZpc2libGUgPSB0cnVlOworCQkJ CWJyZWFrOworCQkJfQorCQkJaWYgKE9pZElzVmFsaWQoZ2V0X3Zhcm5hbWVfdmFyaWQodmFybmFt ZSwgbmFtZXNwYWNlSWQpKSkKKwkJCXsKKwkJCQkvKiBGb3VuZCBzb21ldGhpbmcgZWxzZSBmaXJz dCBpbiBwYXRoICovCisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwl9CisKKwlSZWxlYXNlU3lzQ2Fj aGUodmFydHVwKTsKKworCXJldHVybiB2aXNpYmxlOworfQogCiAvKgogICogVHlwZW5hbWVHZXRU eXBpZApAQCAtMzI3NCw2ICszMzM4LDY5IEBAIFRTQ29uZmlnSXNWaXNpYmxlRXh0KE9pZCBjZmdp ZCwgYm9vbCAqaXNfbWlzc2luZykKIAlyZXR1cm4gdmlzaWJsZTsKIH0KIAorLyoKKyAqIFJldHVy bnMgb2lkIG9mIHNlc3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IHBvc3NpYmx5IHF1YWxpZmll ZCBpZGVudGlmaWVyLgorICoKKyAqIElmIG5vdCBmb3VuZCwgcmV0dXJucyBJbnZhbGlkT2lkIGlm IG1pc3Npbmdfb2ssIGVsc2UgdGhyb3dzIGVycm9yLgorICovCitPaWQKK0xvb2t1cFZhcmlhYmxl KGNvbnN0IGNoYXIgKm5zcG5hbWUsCisJCQkgICBjb25zdCBjaGFyICp2YXJuYW1lLAorCQkJICAg Ym9vbCBtaXNzaW5nX29rKQoreworCU9pZAkJCW5hbWVzcGFjZUlkOworCU9pZAkJCXZhcm9pZCA9 IEludmFsaWRPaWQ7CisJTGlzdENlbGwgICAqbDsKKworCWlmIChuc3BuYW1lKQorCXsKKwkJbmFt ZXNwYWNlSWQgPSBMb29rdXBFeHBsaWNpdE5hbWVzcGFjZShuc3BuYW1lLCBtaXNzaW5nX29rKTsK KworCQkvKgorCQkgKiBJZiBuc3BuYW1lIGlzIG5vdCBhIGtub3duIG5hbWVzcGFjZSwgdGhlbiBu c3BuYW1lLnZhcm5hbWUgY2Fubm90IGJlCisJCSAqIGFueSB1c2FibGUgc2Vzc2lvbiB2YXJpYWJs ZS4KKwkJICovCisJCWlmIChPaWRJc1ZhbGlkKG5hbWVzcGFjZUlkKSkKKwkJeworCQkJdmFyb2lk ID0gR2V0U3lzQ2FjaGVPaWQyKFZBUklBQkxFTkFNRU5TUCwgQW51bV9wZ192YXJpYWJsZV9vaWQs CisJCQkJCQkJCQkgUG9pbnRlckdldERhdHVtKHZhcm5hbWUpLAorCQkJCQkJCQkJIE9iamVjdElk R2V0RGF0dW0obmFtZXNwYWNlSWQpKTsKKwkJfQorCX0KKwllbHNlCisJeworCQkvKiBJdGVyYXRl IG92ZXIgc2NoZW1hcyBpbiBzZWFyY2hfcGF0aCAqLworCQlyZWNvbXB1dGVOYW1lc3BhY2VQYXRo KCk7CisKKwkJZm9yZWFjaChsLCBhY3RpdmVTZWFyY2hQYXRoKQorCQl7CisJCQluYW1lc3BhY2VJ ZCA9IGxmaXJzdF9vaWQobCk7CisKKwkJCXZhcm9pZCA9IEdldFN5c0NhY2hlT2lkMihWQVJJQUJM RU5BTUVOU1AsIEFudW1fcGdfdmFyaWFibGVfb2lkLAorCQkJCQkJCQkJIFBvaW50ZXJHZXREYXR1 bSh2YXJuYW1lKSwKKwkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlkKSk7CisK KwkJCWlmIChPaWRJc1ZhbGlkKHZhcm9pZCkpCisJCQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAo IU9pZElzVmFsaWQodmFyb2lkKSAmJiAhbWlzc2luZ19vaykKKwl7CisJCWlmIChuc3BuYW1lKQor CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNU KSwKKwkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgZG9lcyBub3QgZXhp c3QiLAorCQkJCQkJCW5zcG5hbWUsIHZhcm5hbWUpKSk7CisJCWVsc2UKKwkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJCSBlcnJt c2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCQl2YXJu YW1lKSkpOworCX0KKworCXJldHVybiB2YXJvaWQ7Cit9CiAKIC8qCiAgKiBEZWNvbnN0cnVjdFF1 YWxpZmllZE5hbWUKQEAgLTUwNzUsMyArNTIwMiwxNCBAQCBwZ19pc19vdGhlcl90ZW1wX3NjaGVt YShQR19GVU5DVElPTl9BUkdTKQogCiAJUEdfUkVUVVJOX0JPT0woaXNPdGhlclRlbXBOYW1lc3Bh Y2Uob2lkKSk7CiB9CisKK0RhdHVtCitwZ192YXJpYWJsZV9pc192aXNpYmxlKFBHX0ZVTkNUSU9O X0FSR1MpCit7CisJT2lkCQkJb2lkID0gUEdfR0VUQVJHX09JRCgwKTsKKworCWlmICghU2VhcmNo U3lzQ2FjaGVFeGlzdHMxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKG9pZCkpKQorCQlQ R19SRVRVUk5fTlVMTCgpOworCisJUEdfUkVUVVJOX0JPT0woVmFyaWFibGVJc1Zpc2libGUob2lk KSk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCmluZGV4IDg1YTdiN2U2NDFhLi5l ZTcwZWVlZWQ0NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNz LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKQEAgLTYyLDYgKzYy LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3RlbXBsYXRlLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ191c2VyX21hcHBpbmcuaCIKKyNp bmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21t YW5kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRz L2V2ZW50X3RyaWdnZXIuaCIKQEAgLTYzNiw2ICs2MzcsMjAgQEAgc3RhdGljIGNvbnN0IE9iamVj dFByb3BlcnR5VHlwZSBPYmplY3RQcm9wZXJ0eVtdID0KIAkJT0JKRUNUX1VTRVJfTUFQUElORywK IAkJZmFsc2UKIAl9LAorCXsKKwkJInNlc3Npb24gdmFyaWFibGUiLAorCQlWYXJpYWJsZVJlbGF0 aW9uSWQsCisJCVZhcmlhYmxlT2lkSW5kZXhJZCwKKwkJVkFSSUFCTEVPSUQsCisJCVZBUklBQkxF TkFNRU5TUCwKKwkJQW51bV9wZ192YXJpYWJsZV9vaWQsCisJCUFudW1fcGdfdmFyaWFibGVfdmFy bmFtZSwKKwkJQW51bV9wZ192YXJpYWJsZV92YXJuYW1lc3BhY2UsCisJCUFudW1fcGdfdmFyaWFi bGVfdmFyb3duZXIsCisJCUFudW1fcGdfdmFyaWFibGVfdmFyYWNsLAorCQlPQkpFQ1RfVkFSSUFC TEUsCisJCXRydWUKKwl9CiB9OwogCiAvKgpAQCAtODMxLDYgKzg0Niw5IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3Qgb2JqZWN0X3R5cGVfbWFwCiAJfSwKIAl7CiAJCSJzdGF0aXN0aWNzIG9iamVjdCIs IE9CSkVDVF9TVEFUSVNUSUNfRVhUCisJfSwKKwl7CisJCSJzZXNzaW9uIHZhcmlhYmxlIiwgT0JK RUNUX1ZBUklBQkxFCiAJfQogfTsKIApAQCAtODU2LDYgKzg3NCw3IEBAIHN0YXRpYyBPYmplY3RB ZGRyZXNzIGdldF9vYmplY3RfYWRkcmVzc19hdHRyZGVmKE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJ CQkJCQkJCQkJCWJvb2wgbWlzc2luZ19vayk7CiBzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2Jq ZWN0X2FkZHJlc3NfdHlwZShPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCQkJCQkJCSBUeXBlTmFt ZSAqdHlwZW5hbWUsIGJvb2wgbWlzc2luZ19vayk7CitzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRf b2JqZWN0X2FkZHJlc3NfdmFyaWFibGUoTGlzdCAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spOwog c3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX29wY2YoT2JqZWN0VHlwZSBv Ymp0eXBlLCBMaXN0ICpvYmplY3QsCiAJCQkJCQkJCQkJCSBib29sIG1pc3Npbmdfb2spOwogc3Rh dGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX29wZl9tZW1iZXIoT2JqZWN0VHlw ZSBvYmp0eXBlLApAQCAtMTEyNiw2ICsxMTQ1LDkgQEAgZ2V0X29iamVjdF9hZGRyZXNzKE9iamVj dFR5cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0LAogCQkJCQkJCQkJCQkJCQkJIG1pc3Npbmdfb2sp OwogCQkJCWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAwOwogCQkJCWJyZWFrOworCQkJY2FzZSBPQkpF Q1RfVkFSSUFCTEU6CisJCQkJYWRkcmVzcyA9IGdldF9vYmplY3RfYWRkcmVzc192YXJpYWJsZShj YXN0Tm9kZShMaXN0LCBvYmplY3QpLCBtaXNzaW5nX29rKTsKKwkJCQlicmVhazsKIAkJCQkvKiBu byBkZWZhdWx0LCB0byBsZXQgY29tcGlsZXIgd2FybiBhYm91dCBtaXNzaW5nIGNhc2UgKi8KIAkJ fQogCkBAIC0yMDAwLDE2ICsyMDIyLDIwIEBAIGdldF9vYmplY3RfYWRkcmVzc19kZWZhY2woTGlz dCAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCWNhc2UgREVGQUNMT0JKX05BTUVTUEFDRToK IAkJCW9ianR5cGVfc3RyID0gInNjaGVtYXMiOwogCQkJYnJlYWs7CisJCWNhc2UgREVGQUNMT0JK X1ZBUklBQkxFOgorCQkJb2JqdHlwZV9zdHIgPSAidmFyaWFibGVzIjsKKwkJCWJyZWFrOwogCQlk ZWZhdWx0OgogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElE X1BBUkFNRVRFUl9WQUxVRSksCiAJCQkJCSBlcnJtc2coInVucmVjb2duaXplZCBkZWZhdWx0IEFD TCBvYmplY3QgdHlwZSBcIiVjXCIiLCBvYmp0eXBlKSwKLQkJCQkJIGVycmhpbnQoIlZhbGlkIG9i amVjdCB0eXBlcyBhcmUgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIuIiwK KwkJCQkJIGVycmhpbnQoIlZhbGlkIG9iamVjdCB0eXBlcyBhcmUgXCIlY1wiLCBcIiVjXCIsIFwi JWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIi4iLAogCQkJCQkJCSBERUZBQ0xPQkpfUkVMQVRJ T04sCiAJCQkJCQkJIERFRkFDTE9CSl9TRVFVRU5DRSwKIAkJCQkJCQkgREVGQUNMT0JKX0ZVTkNU SU9OLAogCQkJCQkJCSBERUZBQ0xPQkpfVFlQRSwKLQkJCQkJCQkgREVGQUNMT0JKX05BTUVTUEFD RSkpKTsKKwkJCQkJCQkgREVGQUNMT0JKX05BTUVTUEFDRSwKKwkJCQkJCQkgREVGQUNMT0JKX1ZB UklBQkxFKSkpOwogCX0KIAogCS8qCkBAIC0yMDkzLDYgKzIxMTksMjQgQEAgdGV4dGFycmF5X3Rv X3N0cnZhbHVlbGlzdChBcnJheVR5cGUgKmFycikKIAlyZXR1cm4gbGlzdDsKIH0KIAorLyoKKyAq IEZpbmQgdGhlIE9iamVjdEFkZHJlc3MgZm9yIGEgc2Vzc2lvbiB2YXJpYWJsZQorICovCitzdGF0 aWMgT2JqZWN0QWRkcmVzcworZ2V0X29iamVjdF9hZGRyZXNzX3ZhcmlhYmxlKExpc3QgKm9iamVj dCwgYm9vbCBtaXNzaW5nX29rKQoreworCU9iamVjdEFkZHJlc3MgYWRkcmVzczsKKwljaGFyCSAg ICpuc3BuYW1lID0gTlVMTDsKKwljaGFyCSAgICp2YXJuYW1lID0gTlVMTDsKKworCU9iamVjdEFk ZHJlc3NTZXQoYWRkcmVzcywgVmFyaWFibGVSZWxhdGlvbklkLCBJbnZhbGlkT2lkKTsKKworCURl Y29uc3RydWN0UXVhbGlmaWVkTmFtZShvYmplY3QsICZuc3BuYW1lLCAmdmFybmFtZSk7CisJYWRk cmVzcy5vYmplY3RJZCA9IExvb2t1cFZhcmlhYmxlKG5zcG5hbWUsIHZhcm5hbWUsIG1pc3Npbmdf b2spOworCisJcmV0dXJuIGFkZHJlc3M7Cit9CisKIC8qCiAgKiBTUUwtY2FsbGFibGUgdmVyc2lv biBvZiBnZXRfb2JqZWN0X2FkZHJlc3MKICAqLwpAQCAtMjI4Nyw2ICsyMzMxLDcgQEAgcGdfZ2V0 X29iamVjdF9hZGRyZXNzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCWNhc2UgT0JKRUNUX1RBQkNPTlNU UkFJTlQ6CiAJCWNhc2UgT0JKRUNUX09QQ0xBU1M6CiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZOgor CQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCW9iam5vZGUgPSAoTm9kZSAqKSBuYW1lOwogCQkJ YnJlYWs7CiAJCWNhc2UgT0JKRUNUX0FDQ0VTU19NRVRIT0Q6CkBAIC0yNDU4LDYgKzI1MDMsNyBA QCBjaGVja19vYmplY3Rfb3duZXJzaGlwKE9pZCByb2xlaWQsIE9iamVjdFR5cGUgb2JqdHlwZSwg T2JqZWN0QWRkcmVzcyBhZGRyZXNzLAogCQljYXNlIE9CSkVDVF9TVEFUSVNUSUNfRVhUOgogCQlj YXNlIE9CSkVDVF9UU0RJQ1RJT05BUlk6CiAJCWNhc2UgT0JKRUNUX1RTQ09ORklHVVJBVElPTjoK KwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQlpZiAoIW9iamVjdF9vd25lcmNoZWNrKGFkZHJl c3MuY2xhc3NJZCwgYWRkcmVzcy5vYmplY3RJZCwgcm9sZWlkKSkKIAkJCQlhY2xjaGVja19lcnJv cihBQ0xDSEVDS19OT1RfT1dORVIsIG9ianR5cGUsCiAJCQkJCQkJICAgTmFtZUxpc3RUb1N0cmlu ZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpKSk7CkBAIC0zNDQ2LDYgKzM0OTIsMzIgQEAgZ2V0T2Jq ZWN0RGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdf b2spCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQl7 CisJCQkJY2hhcgkgICAqbnNwbmFtZTsKKwkJCQlIZWFwVHVwbGUJdHVwOworCQkJCUZvcm1fcGdf dmFyaWFibGUgdmFyZm9ybTsKKworCQkJCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9J RCwgT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVw bGVJc1ZhbGlkKHR1cCkpCisJCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZv ciBzZXNzaW9uIHZhcmlhYmxlICV1IiwKKwkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsKKworCQkJ CXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwkJCQlpZiAo VmFyaWFibGVJc1Zpc2libGUob2JqZWN0LT5vYmplY3RJZCkpCisJCQkJCW5zcG5hbWUgPSBOVUxM OworCQkJCWVsc2UKKwkJCQkJbnNwbmFtZSA9IGdldF9uYW1lc3BhY2VfbmFtZSh2YXJmb3JtLT52 YXJuYW1lc3BhY2UpOworCisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCBfKCJzZXNzaW9u IHZhcmlhYmxlICVzIiksCisJCQkJCQkJCSBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihuc3Bu YW1lLAorCQkJCQkJCQkJCQkJCQkJTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKSkpOworCisJCQkJ UmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKIAkJY2FzZSBUU1BhcnNl clJlbGF0aW9uSWQ6CiAJCQl7CiAJCQkJSGVhcFR1cGxlCXR1cDsKQEAgLTM3OTgsNiArMzg3MCwx NiBAQCBnZXRPYmplY3REZXNjcmlwdGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJv b2wgbWlzc2luZ19vaykKIAkJCQkJCQkJCQkgXygiZGVmYXVsdCBwcml2aWxlZ2VzIG9uIG5ldyBz Y2hlbWFzIGJlbG9uZ2luZyB0byByb2xlICVzIiksCiAJCQkJCQkJCQkJIHJvbGVuYW1lKTsKIAkJ CQkJCWJyZWFrOworCQkJCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCQkJCWlmIChuc3Bu YW1lKQorCQkJCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwKKwkJCQkJCQkJCQkJIF8oImRl ZmF1bHQgcHJpdmlsZWdlcyBvbiBuZXcgc2Vzc2lvbiB2YXJpYWJsZXMgYmVsb25naW5nIHRvIHJv bGUgJXMgaW4gc2NoZW1hICVzIiksCisJCQkJCQkJCQkJCSByb2xlbmFtZSwgbnNwbmFtZSk7CisJ CQkJCQllbHNlCisJCQkJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLAorCQkJCQkJCQkJCQkg XygiZGVmYXVsdCBwcml2aWxlZ2VzIG9uIG5ldyBzZXNzaW9uIHZhcmlhYmxlcyBiZWxvbmdpbmcg dG8gcm9sZSAlcyIpLAorCQkJCQkJCQkJCQkgcm9sZW5hbWUpOworCQkJCQkJYnJlYWs7CiAJCQkJ CWRlZmF1bHQ6CiAJCQkJCQkvKiBzaG91bGRuJ3QgZ2V0IGhlcmUgKi8KIAkJCQkJCWlmIChuc3Bu YW1lKQpAQCAtNDYxNCw2ICs0Njk2LDEwIEBAIGdldE9iamVjdFR5cGVEZXNjcmlwdGlvbihjb25z dCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJCWFwcGVuZFN0cmlu Z0luZm9TdHJpbmcoJmJ1ZmZlciwgInRyYW5zZm9ybSIpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBW YXJpYWJsZVJlbGF0aW9uSWQ6CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJz ZXNzaW9uIHZhcmlhYmxlIik7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJP UiwgInVuc3VwcG9ydGVkIG9iamVjdCBjbGFzczogJXUiLCBvYmplY3QtPmNsYXNzSWQpOwogCX0K QEAgLTU3MjAsNiArNTgwNiwxMCBAQCBnZXRPYmplY3RJZGVudGl0eVBhcnRzKGNvbnN0IE9iamVj dEFkZHJlc3MgKm9iamVjdCwKIAkJCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwK IAkJCQkJCQkJCQkJICAgIiBvbiBzY2hlbWFzIik7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBE RUZBQ0xPQkpfVkFSSUFCTEU6CisJCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIs CisJCQkJCQkJCQkJCSAgICIgb24gc2Vzc2lvbiB2YXJpYWJsZXMiKTsKKwkJCQkJCWJyZWFrOwog CQkJCX0KIAogCQkJCWlmIChvYmpuYW1lKQpAQCAtNTk2MCw2ICs2MDUwLDMzIEBAIGdldE9iamVj dElkZW50aXR5UGFydHMoY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LAogCQkJfQogCQkJYnJl YWs7CiAKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQl7CisJCQkJY2hhcgkgICAqc2No ZW1hOworCQkJCWNoYXIJICAgKnZhcm5hbWU7CisJCQkJSGVhcFR1cGxlCXR1cDsKKwkJCQlGb3Jt X3BnX3ZhcmlhYmxlIHZhcmZvcm07CisKKwkJCQl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFC TEVPSUQsIE9iamVjdElkR2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVh cFR1cGxlSXNWYWxpZCh0dXApKQorCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxl ZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsCisJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisK KwkJCQl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJCQkJ c2NoZW1hID0gZ2V0X25hbWVzcGFjZV9uYW1lX29yX3RlbXAodmFyZm9ybS0+dmFybmFtZXNwYWNl KTsKKwkJCQl2YXJuYW1lID0gTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKTsKKworCQkJCWFwcGVu ZFN0cmluZ0luZm8oJmJ1ZmZlciwgIiVzIiwKKwkJCQkJCQkJIHF1b3RlX3F1YWxpZmllZF9pZGVu dGlmaWVyKHNjaGVtYSwgdmFybmFtZSkpOworCisJCQkJaWYgKG9iam5hbWUpCisJCQkJCSpvYmpu YW1lID0gbGlzdF9tYWtlMihzY2hlbWEsIHZhcm5hbWUpOworCisJCQkJUmVsZWFzZVN5c0NhY2hl KHR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1 bnN1cHBvcnRlZCBvYmplY3QgY2xhc3M6ICV1Iiwgb2JqZWN0LT5jbGFzc0lkKTsKIAl9CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3NoZGVwZW5kLmMgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3NoZGVwZW5kLmMKaW5kZXggNzUzYWZiODg0NTMuLjFlYTNkNmRiMDVjIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3NoZGVwZW5kLmMKKysrIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ190c19kaWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ191c2VyX21hcHBpbmcuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Zhcmlh YmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9k YmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCkBAIC0xNzE0LDYgKzE3 MTUsNyBAQCBzaGRlcFJlYXNzaWduT3duZWRfT3duZXIoRm9ybV9wZ19zaGRlcGVuZCBzZGVwRm9y bSwgT2lkIG5ld3JvbGUpCiAJCWNhc2UgRGF0YWJhc2VSZWxhdGlvbklkOgogCQljYXNlIFRTQ29u ZmlnUmVsYXRpb25JZDoKIAkJY2FzZSBUU0RpY3Rpb25hcnlSZWxhdGlvbklkOgorCQljYXNlIFZh cmlhYmxlUmVsYXRpb25JZDoKIAkJCUFsdGVyT2JqZWN0T3duZXJfaW50ZXJuYWwoc2RlcEZvcm0t PmNsYXNzaWQsCiAJCQkJCQkJCQkgIHNkZXBGb3JtLT5vYmppZCwKIAkJCQkJCQkJCSAgbmV3cm9s ZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMv YmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLmY2NTEyMTQ0MGE5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ192YXJpYWJsZS5jCkBAIC0wLDAgKzEsMjU1IEBACisvKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAqCisgKiBwZ192YXJpYWJsZS5jCisgKgkJc2Vzc2lvbiB2YXJpYWJsZXMKKyAqCisgKiBQ b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxv cG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0 aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCQlz cmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqLworCisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKworI2luY2x1ZGUgImFjY2Vzcy9oZWFwYW0u aCIKKyNpbmNsdWRlICJjYXRhbG9nL2RlcGVuZGVuY3kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2lu ZGV4aW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRh bG9nL29iamVjdGFjY2Vzcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCisj aW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Zh cmlhYmxlLmgiCisjaW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNl X3R5cGUuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2xz eXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKK3N0YXRpYyBPYmplY3RB ZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAorCQkJCQkJCQkJIE9p ZCB2YXJOYW1lc3BhY2UsCisJCQkJCQkJCQkgT2lkIHZhclR5cGUsCisJCQkJCQkJCQkgaW50MzIg dmFyVHlwbW9kLAorCQkJCQkJCQkJIE9pZCB2YXJPd25lciwKKwkJCQkJCQkJCSBPaWQgdmFyQ29s bGF0aW9uLAorCQkJCQkJCQkJIGJvb2wgaWZfbm90X2V4aXN0cyk7CisKKworLyoKKyAqIENyZWF0 ZXMgZW50cnkgaW4gcGdfdmFyaWFibGUgdGFibGUKKyAqLworc3RhdGljIE9iamVjdEFkZHJlc3MK K2NyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAorCQkJCU9pZCB2YXJOYW1lc3Bh Y2UsCisJCQkJT2lkIHZhclR5cGUsCisJCQkJaW50MzIgdmFyVHlwbW9kLAorCQkJCU9pZCB2YXJP d25lciwKKwkJCQlPaWQgdmFyQ29sbGF0aW9uLAorCQkJCWJvb2wgaWZfbm90X2V4aXN0cykKK3sK KwlBY2wJCSAgICp2YXJhY2w7CisJTmFtZURhdGEJdmFybmFtZTsKKwlib29sCQludWxsc1tOYXR0 c19wZ192YXJpYWJsZV07CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ192YXJpYWJsZV07CisJUmVs YXRpb24JcmVsOworCUhlYXBUdXBsZQl0dXA7CisJVHVwbGVEZXNjCXR1cGRlc2M7CisJT2JqZWN0 QWRkcmVzcyBteXNlbGYsCisJCQkJcmVmZXJlbmNlZDsKKwlPYmplY3RBZGRyZXNzZXMgKmFkZHJz OworCU9pZAkJCXZhcmlkOworCisJQXNzZXJ0KHZhck5hbWUpOworCUFzc2VydChPaWRJc1ZhbGlk KHZhck5hbWVzcGFjZSkpOworCUFzc2VydChPaWRJc1ZhbGlkKHZhclR5cGUpKTsKKwlBc3NlcnQo T2lkSXNWYWxpZCh2YXJPd25lcikpOworCisJcmVsID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0 aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJLyoKKwkgKiBDaGVjayBmb3IgZHVwbGljYXRl cy4gTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgcmVhbGx5IHByZXZlbnQKKwkgKiBkdXBsaWNhdGVz LCBpdCdzIGhlcmUganVzdCB0byBwcm92aWRlIG5pY2VyIGVycm9yIG1lc3NhZ2UgaW4gY29tbW9u CisJICogY2FzZS4gVGhlIHJlYWwgcHJvdGVjdGlvbiBpcyB0aGUgdW5pcXVlIGtleSBvbiB0aGUg Y2F0YWxvZy4KKwkgKi8KKwlpZiAoU2VhcmNoU3lzQ2FjaGVFeGlzdHMyKFZBUklBQkxFTkFNRU5T UCwKKwkJCQkJCQkgIFBvaW50ZXJHZXREYXR1bSh2YXJOYW1lKSwKKwkJCQkJCQkgIE9iamVjdElk R2V0RGF0dW0odmFyTmFtZXNwYWNlKSkpCisJeworCQlpZiAoaWZfbm90X2V4aXN0cykKKwkJCWVy ZXBvcnQoTk9USUNFLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAor CQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBhbHJlYWR5IGV4aXN0cywgc2tp cHBpbmciLAorCQkJCQkJCXZhck5hbWUpKSk7CisJCWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCksCisJCQkJCSBlcnJtc2coInNl c3Npb24gdmFyaWFibGUgXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwKKwkJCQkJCQl2YXJOYW1lKSkp OworCisJCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwkJcmV0dXJuIElu dmFsaWRPYmplY3RBZGRyZXNzOworCX0KKworCW1lbXNldCh2YWx1ZXMsIDAsIHNpemVvZih2YWx1 ZXMpKTsKKwltZW1zZXQobnVsbHMsIGZhbHNlLCBzaXplb2YobnVsbHMpKTsKKworCW5hbWVzdHJj cHkoJnZhcm5hbWUsIHZhck5hbWUpOworCisJdmFyaWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVs LCBWYXJpYWJsZU9pZEluZGV4SWQsIEFudW1fcGdfdmFyaWFibGVfb2lkKTsKKworCXZhbHVlc1tB bnVtX3BnX3ZhcmlhYmxlX29pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJpZCk7CisJdmFs dWVzW0FudW1fcGdfdmFyaWFibGVfdmFybmFtZSAtIDFdID0gTmFtZUdldERhdHVtKCZ2YXJuYW1l KTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJuYW1lc3BhY2UgLSAxXSA9IE9iamVjdElk R2V0RGF0dW0odmFyTmFtZXNwYWNlKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBl IC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhclR5cGUpOworCXZhbHVlc1tBbnVtX3BnX3Zhcmlh YmxlX3ZhcnR5cG1vZCAtIDFdID0gSW50MzJHZXREYXR1bSh2YXJUeXBtb2QpOworCXZhbHVlc1tB bnVtX3BnX3ZhcmlhYmxlX3Zhcm93bmVyIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhck93bmVy KTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjb2xsYXRpb24gLSAxXSA9IE9iamVjdElk R2V0RGF0dW0odmFyQ29sbGF0aW9uKTsKKworCXZhcmFjbCA9IGdldF91c2VyX2RlZmF1bHRfYWNs KE9CSkVDVF9WQVJJQUJMRSwgdmFyT3duZXIsCisJCQkJCQkJCSAgdmFyTmFtZXNwYWNlKTsKKwlp ZiAodmFyYWNsICE9IE5VTEwpCisJCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmFjbCAtIDFd ID0gUG9pbnRlckdldERhdHVtKHZhcmFjbCk7CisJZWxzZQorCQludWxsc1tBbnVtX3BnX3Zhcmlh YmxlX3ZhcmFjbCAtIDFdID0gdHJ1ZTsKKworCXR1cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJl bCk7CisKKwl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBudWxscyk7CisJ Q2F0YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVwKTsKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJpZCkp OworCisJYWRkcnMgPSBuZXdfb2JqZWN0X2FkZHJlc3NlcygpOworCisJT2JqZWN0QWRkcmVzc1Nl dChteXNlbGYsIFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQpOworCisJLyogZGVwZW5kZW5jeSBv biBuYW1lc3BhY2UgKi8KKwlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIE5hbWVzcGFjZVJl bGF0aW9uSWQsIHZhck5hbWVzcGFjZSk7CisJYWRkX2V4YWN0X29iamVjdF9hZGRyZXNzKCZyZWZl cmVuY2VkLCBhZGRycyk7CisKKwkvKiBkZXBlbmRlbmN5IG9uIHVzZWQgdHlwZSAqLworCU9iamVj dEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgVHlwZVJlbGF0aW9uSWQsIHZhclR5cGUpOworCWFkZF9l eGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJlbmNlZCwgYWRkcnMpOworCisJLyogZGVwZW5kZW5j eSBvbiBjb2xsYXRpb24gKi8KKwlpZiAoT2lkSXNWYWxpZCh2YXJDb2xsYXRpb24pICYmCisJCXZh ckNvbGxhdGlvbiAhPSBERUZBVUxUX0NPTExBVElPTl9PSUQpCisJeworCQlPYmplY3RBZGRyZXNz U2V0KHJlZmVyZW5jZWQsIENvbGxhdGlvblJlbGF0aW9uSWQsIHZhckNvbGxhdGlvbik7CisJCWFk ZF9leGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJlbmNlZCwgYWRkcnMpOworCX0KKworCXJlY29y ZF9vYmplY3RfYWRkcmVzc19kZXBlbmRlbmNpZXMoJm15c2VsZiwgYWRkcnMsIERFUEVOREVOQ1lf Tk9STUFMKTsKKwlmcmVlX29iamVjdF9hZGRyZXNzZXMoYWRkcnMpOworCisJLyogZGVwZW5kZW5j eSBvbiBvd25lciAqLworCXJlY29yZERlcGVuZGVuY3lPbk93bmVyKFZhcmlhYmxlUmVsYXRpb25J ZCwgdmFyaWQsIHZhck93bmVyKTsKKworCS8qIGRlcGVuZGVuY2llcyBvbiByb2xlcyBtZW50aW9u ZWQgaW4gZGVmYXVsdCBBQ0wgKi8KKwlyZWNvcmREZXBlbmRlbmN5T25OZXdBY2woVmFyaWFibGVS ZWxhdGlvbklkLCB2YXJpZCwgMCwgdmFyT3duZXIsIHZhcmFjbCk7CisKKwkvKiBkZXBlbmRlbmN5 IG9uIGV4dGVuc2lvbiAqLworCXJlY29yZERlcGVuZGVuY3lPbkN1cnJlbnRFeHRlbnNpb24oJm15 c2VsZiwgZmFsc2UpOworCisJaGVhcF9mcmVldHVwbGUodHVwKTsKKworCS8qIFBvc3QgY3JlYXRp b24gaG9vayBmb3IgbmV3IGZ1bmN0aW9uICovCisJSW52b2tlT2JqZWN0UG9zdENyZWF0ZUhvb2so VmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCk7CisKKwl0YWJsZV9jbG9zZShyZWwsIFJvd0V4 Y2x1c2l2ZUxvY2spOworCisJcmV0dXJuIG15c2VsZjsKK30KKworLyoKKyAqIENyZWF0ZXMgYSBu ZXcgdmFyaWFibGUKKyAqCisgKiBVc2VkIGJ5IENSRUFURSBWQVJJQUJMRSBjb21tYW5kCisgKi8K K09iamVjdEFkZHJlc3MKK0NyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRl U2Vzc2lvblZhclN0bXQgKnN0bXQpCit7CisJT2lkCQkJbmFtZXNwYWNlaWQ7CisJQWNsUmVzdWx0 CWFjbHJlc3VsdDsKKwlPaWQJCQl0eXBpZDsKKwlpbnQzMgkJdHlwbW9kOworCU9pZAkJCXZhcm93 bmVyID0gR2V0VXNlcklkKCk7CisJT2lkCQkJY29sbGF0aW9uOworCU9pZAkJCXR5cGNvbGxhdGlv bjsKKwlPYmplY3RBZGRyZXNzIHZhcmlhYmxlOworCisJbmFtZXNwYWNlaWQgPQorCQlSYW5nZVZh ckdldEFuZENoZWNrQ3JlYXRpb25OYW1lc3BhY2Uoc3RtdC0+dmFyaWFibGUsIE5vTG9jaywgTlVM TCk7CisKKwl0eXBlbmFtZVR5cGVJZEFuZE1vZChwc3RhdGUsIHN0bXQtPnR5cGVOYW1lLCAmdHlw aWQsICZ0eXBtb2QpOworCisJLyogRGlzYWxsb3cgcHNldWRvdHlwZXMgKi8KKwlpZiAoZ2V0X3R5 cHR5cGUodHlwaWQpID09IFRZUFRZUEVfUFNFVURPKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShl cnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2coInNlc3Npb24g dmFyaWFibGUgY2Fubm90IGJlIHBzZXVkby10eXBlICVzIiwKKwkJCQkJCWZvcm1hdF90eXBlX2Jl KHR5cGlkKSkpKTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhUeXBlUmVsYXRpb25J ZCwgdHlwaWQsIEdldFVzZXJJZCgpLCBBQ0xfVVNBR0UpOworCWlmIChhY2xyZXN1bHQgIT0gQUNM Q0hFQ0tfT0spCisJCWFjbGNoZWNrX2Vycm9yX3R5cGUoYWNscmVzdWx0LCB0eXBpZCk7CisKKwl0 eXBjb2xsYXRpb24gPSBnZXRfdHlwY29sbGF0aW9uKHR5cGlkKTsKKworCWlmIChzdG10LT5jb2xs Q2xhdXNlKQorCQljb2xsYXRpb24gPSBMb29rdXBDb2xsYXRpb24ocHN0YXRlLAorCQkJCQkJCQkJ c3RtdC0+Y29sbENsYXVzZS0+Y29sbG5hbWUsCisJCQkJCQkJCQlzdG10LT5jb2xsQ2xhdXNlLT5s b2NhdGlvbik7CisJZWxzZQorCQljb2xsYXRpb24gPSB0eXBjb2xsYXRpb247OworCisJLyogQ29t cGxhaW4gaWYgQ09MTEFURSBpcyBhcHBsaWVkIHRvIGFuIHVuY29sbGF0YWJsZSB0eXBlICovCisJ aWYgKE9pZElzVmFsaWQoY29sbGF0aW9uKSAmJiAhT2lkSXNWYWxpZCh0eXBjb2xsYXRpb24pKQor CQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gp LAorCQkJCSBlcnJtc2coImNvbGxhdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgdHlwZSAlcyIs CisJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24o cHN0YXRlLCBzdG10LT5jb2xsQ2xhdXNlLT5sb2NhdGlvbikpKTsKKworCXZhcmlhYmxlID0gY3Jl YXRlX3ZhcmlhYmxlKHN0bXQtPnZhcmlhYmxlLT5yZWxuYW1lLAorCQkJCQkJCSAgIG5hbWVzcGFj ZWlkLAorCQkJCQkJCSAgIHR5cGlkLAorCQkJCQkJCSAgIHR5cG1vZCwKKwkJCQkJCQkgICB2YXJv d25lciwKKwkJCQkJCQkgICBjb2xsYXRpb24sCisJCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0 cyk7CisKKwllbG9nKERFQlVHMSwgInJlY29yZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIg KG9pZDolZCkgd2FzIGNyZWF0ZWQgaW4gcGdfdmFyaWFibGUiLAorCQkgc3RtdC0+dmFyaWFibGUt PnJlbG5hbWUsIHZhcmlhYmxlLm9iamVjdElkKTsKKworCS8qIFdlIHdhbnQgU2Vzc2lvblZhcmlh YmxlQ3JlYXRlUG9zdHByb2Nlc3MgdG8gc2VlIHRoZSBjYXRhbG9nIGNoYW5nZXMuICovCisJQ29t bWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKKworCXJldHVybiB2YXJpYWJsZTsKK30KKworLyoKKyAq IERyb3AgdmFyaWFibGUgYnkgT0lELCBhbmQgcmVnaXN0ZXIgdGhlIG5lZWRlZCBzZXNzaW9uIHZh cmlhYmxlCisgKiBjbGVhbnVwLgorICovCit2b2lkCitEcm9wVmFyaWFibGVCeUlkKE9pZCB2YXJp ZCkKK3sKKwlSZWxhdGlvbglyZWw7CisJSGVhcFR1cGxlCXR1cDsKKworCXJlbCA9IHRhYmxlX29w ZW4oVmFyaWFibGVSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCXR1cCA9IFNlYXJj aFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYg KCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFp bGVkIGZvciB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCUNhdGFsb2dUdXBsZURlbGV0ZShyZWws ICZ0dXAtPnRfc2VsZik7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXRhYmxlX2Nsb3Nl KHJlbCwgUm93RXhjbHVzaXZlTG9jayk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9hbHRlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYwppbmRleCA0Zjk5ZWJi NDQ3MC4uNjNmYTk5ZmFkMzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVy LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYwpAQCAtNDEsNiArNDEsNyBAQAog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfZGljdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNf cGFyc2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0ZS5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9hbHRlci5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL2NvbGxhdGlvbmNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNv bW1hbmRzLmgiCkBAIC0xMzksNiArMTQwLDEwIEBAIHJlcG9ydF9uYW1lc3BhY2VfY29uZmxpY3Qo T2lkIGNsYXNzSWQsIGNvbnN0IGNoYXIgKm5hbWUsIE9pZCBuc3BPaWQpCiAJCQlBc3NlcnQoT2lk SXNWYWxpZChuc3BPaWQpKTsKIAkJCW1zZ2ZtdCA9IGdldHRleHRfbm9vcCgidGV4dCBzZWFyY2gg Y29uZmlndXJhdGlvbiBcIiVzXCIgYWxyZWFkeSBleGlzdHMgaW4gc2NoZW1hIFwiJXNcIiIpOwog CQkJYnJlYWs7CisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJQXNzZXJ0KE9pZElzVmFs aWQobnNwT2lkKSk7CisJCQltc2dmbXQgPSBnZXR0ZXh0X25vb3AoInNlc3Npb24gdmFyaWFibGUg XCIlc1wiIGFscmVhZHkgZXhpc3RzIGluIHNjaGVtYSBcIiVzXCIiKTsKKwkJCWJyZWFrOwogCQlk ZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIG9iamVjdCBjbGFzczogJXUiLCBj bGFzc0lkKTsKIAkJCWJyZWFrOwpAQCAtNDE4LDYgKzQyMyw3IEBAIEV4ZWNSZW5hbWVTdG10KFJl bmFtZVN0bXQgKnN0bXQpCiAJCWNhc2UgT0JKRUNUX1RTVEVNUExBVEU6CiAJCWNhc2UgT0JKRUNU X1BVQkxJQ0FUSU9OOgogCQljYXNlIE9CSkVDVF9TVUJTQ1JJUFRJT046CisJCWNhc2UgT0JKRUNU X1ZBUklBQkxFOgogCQkJewogCQkJCU9iamVjdEFkZHJlc3MgYWRkcmVzczsKIAkJCQlSZWxhdGlv bgljYXRhbG9nOwpAQCAtNTYxLDYgKzU2Nyw3IEBAIEV4ZWNBbHRlck9iamVjdFNjaGVtYVN0bXQo QWx0ZXJPYmplY3RTY2hlbWFTdG10ICpzdG10LAogCQljYXNlIE9CSkVDVF9UU0RJQ1RJT05BUlk6 CiAJCWNhc2UgT0JKRUNUX1RTUEFSU0VSOgogCQljYXNlIE9CSkVDVF9UU1RFTVBMQVRFOgorCQlj YXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCXsKIAkJCQlSZWxhdGlvbgljYXRhbG9nOwogCQkJCVJl bGF0aW9uCXJlbGF0aW9uOwpAQCAtNjQ1LDYgKzY1Miw3IEBAIEFsdGVyT2JqZWN0TmFtZXNwYWNl X29pZChPaWQgY2xhc3NJZCwgT2lkIG9iamlkLCBPaWQgbnNwT2lkLAogCQljYXNlIFRTRGljdGlv bmFyeVJlbGF0aW9uSWQ6CiAJCWNhc2UgVFNUZW1wbGF0ZVJlbGF0aW9uSWQ6CiAJCWNhc2UgVFND b25maWdSZWxhdGlvbklkOgorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKIAkJCXsKIAkJCQlS ZWxhdGlvbgljYXRhbG9nOwogCkBAIC04NzUsNiArODgzLDcgQEAgRXhlY0FsdGVyT3duZXJTdG10 KEFsdGVyT3duZXJTdG10ICpzdG10KQogCQljYXNlIE9CSkVDVF9UQUJMRVNQQUNFOgogCQljYXNl IE9CSkVDVF9UU0RJQ1RJT05BUlk6CiAJCWNhc2UgT0JKRUNUX1RTQ09ORklHVVJBVElPTjoKKwkJ Y2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQl7CiAJCQkJUmVsYXRpb24JcmVsYXRpb247CiAJCQkJ T2JqZWN0QWRkcmVzcyBhZGRyZXNzOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZHJvcGNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKaW5kZXggODVlZWM3 ZTM5NDcuLjNjY2UxN2U5MmFmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9w Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKQEAgLTQ3Niw2ICs0 NzYsMTAgQEAgZG9lc19ub3RfZXhpc3Rfc2tpcHBpbmcoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2Rl ICpvYmplY3QpCiAJCQltc2cgPSBnZXR0ZXh0X25vb3AoInB1YmxpY2F0aW9uIFwiJXNcIiBkb2Vz IG5vdCBleGlzdCwgc2tpcHBpbmciKTsKIAkJCW5hbWUgPSBzdHJWYWwob2JqZWN0KTsKIAkJCWJy ZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCW1zZyA9IGdldHRleHRfbm9vcCgic2Vz c2lvbiB2YXJpYWJsZSBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nIik7CisJCQluYW1l ID0gTmFtZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpKTsKKwkJCWJyZWFrOwog CiAJCWNhc2UgT0JKRUNUX0NPTFVNTjoKIAkJY2FzZSBPQkpFQ1RfREFUQUJBU0U6CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9ldmVudF90cmlnZ2VyLmMKaW5kZXggN2E1ZWQ2Yjk4NTAuLjZkNDFhYTdlYzNlIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCkBAIC0yMTU2LDYgKzIxNTYsOCBAQCBz dHJpbmdpZnlfZ3JhbnRfb2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCQlyZXR1cm4gIlRB QkxFU1BBQ0UiOwogCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJcmV0dXJuICJUWVBFIjsKKwkJY2Fz ZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gIlZBUklBQkxFIjsKIAkJCS8qIHRoZXNlIGN1 cnJlbnRseSBhcmVuJ3QgdXNlZCAqLwogCQljYXNlIE9CSkVDVF9BQ0NFU1NfTUVUSE9EOgogCQlj YXNlIE9CSkVDVF9BR0dSRUdBVEU6CkBAIC0yMjM5LDYgKzIyNDEsOCBAQCBzdHJpbmdpZnlfYWRl ZnByaXZzX29ianR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQkJcmV0dXJuICJUQUJMRVNQQUNF UyI7CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQlyZXR1cm4gIlRZUEVTIjsKKwkJY2FzZSBPQkpF Q1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gIlZBUklBQkxFUyI7CiAJCQkvKiB0aGVzZSBjdXJyZW50 bHkgYXJlbid0IHVzZWQgKi8KIAkJY2FzZSBPQkpFQ1RfQUNDRVNTX01FVEhPRDoKIAkJY2FzZSBP QkpFQ1RfQUdHUkVHQVRFOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFi ZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKaW5kZXggNTYwNzI3M2JmOWYu LmMwMjZhYjVkY2I4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKQEAgLTkyLDYgKzkyLDcgQEAg U2VjTGFiZWxTdXBwb3J0c09iamVjdFR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9C SkVDVF9UU1BBUlNFUjoKIAkJY2FzZSBPQkpFQ1RfVFNURU1QTEFURToKIAkJY2FzZSBPQkpFQ1Rf VVNFUl9NQVBQSU5HOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCXJldHVybiBmYWxzZTsK IAogCQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggNzIxZDI0NzgzYjQuLmJjODU2 OTkyMmYxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtNTEsNiArNTEsNyBAQAogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJp Z2dlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cv cGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3N0b3JhZ2UuaCIKICNpbmNsdWRlICJj YXRhbG9nL3N0b3JhZ2VfeGxvZy5oIgogI2luY2x1ZGUgImNhdGFsb2cvdG9hc3RpbmcuaCIKQEAg LTY3MjQsNiArNjcyNSw4IEBAIEFUVHlwZWRUYWJsZVJlY3Vyc2lvbihMaXN0ICoqd3F1ZXVlLCBS ZWxhdGlvbiByZWwsIEFsdGVyVGFibGVDbWQgKmNtZCwKICAqIEV2ZW50dWFsbHksIHdlJ2QgbGlr ZSB0byBwcm9wYWdhdGUgdGhlIGNoZWNrIG9yIHJld3JpdGUgb3BlcmF0aW9uCiAgKiBpbnRvIHN1 Y2ggdGFibGVzLCBidXQgZm9yIG5vdywganVzdCBlcnJvciBvdXQgaWYgd2UgZmluZCBhbnkuCiAg KgorICogQ2hlY2sgaWYgdGhlIHR5cGUgInR5cGVPaWQiIGlzIHVzZWQgYXMgdHlwZSBvZiBzb21l IHNlc3Npb24gdmFyaWFibGUgdG9vLgorICoKICAqIENhbGxlciBzaG91bGQgcHJvdmlkZSBlaXRo ZXIgdGhlIGFzc29jaWF0ZWQgcmVsYXRpb24gb2YgYSByb3d0eXBlLAogICogb3IgYSB0eXBlIG5h bWUgKG5vdCBib3RoKSBmb3IgdXNlIGluIHRoZSBlcnJvciBtZXNzYWdlLCBpZiBhbnkuCiAgKgpA QCAtNjc4Niw2ICs2Nzg5LDQ1IEBAIGZpbmRfY29tcG9zaXRlX3R5cGVfZGVwZW5kZW5jaWVzKE9p ZCB0eXBlT2lkLCBSZWxhdGlvbiBvcmlnUmVsYXRpb24sCiAJCQljb250aW51ZTsKIAkJfQogCisJ CS8qIERvbid0IGFsbG93IGNoYW5nZSBvZiB0eXBlIHVzZWQgYnkgc2Vzc2lvbidzIHZhcmlhYmxl ICovCisJCWlmIChwZ19kZXBlbmQtPmNsYXNzaWQgPT0gVmFyaWFibGVSZWxhdGlvbklkKQorCQl7 CisJCQlPaWQJCQl2YXJpZCA9IHBnX2RlcGVuZC0+b2JqaWQ7CisKKwkJCWlmIChvcmlnVHlwZU5h bWUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9O T1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciB0eXBlIFwiJXNcIiBi ZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIHVzZXMgaXQiLAorCQkJCQkJCQlvcmln VHlwZU5hbWUsCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2 YXJpZCkpKSk7CisJCQllbHNlIGlmIChvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBS RUxLSU5EX0NPTVBPU0lURV9UWVBFKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjYW5ub3Qg YWx0ZXIgdHlwZSBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2Vz IGl0IiwKKwkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUob3JpZ1JlbGF0aW9uKSwKKwkJ CQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2 YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSkpKTsKKwkJ CWVsc2UgaWYgKG9yaWdSZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfRk9SRUlH Tl9UQUJMRSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFU VVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIGZvcmVpZ24g dGFibGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIs CisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKG9yaWdSZWxhdGlvbiksCisJCQkJCQkJ CWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQp KSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7CisJCQllbHNl IGlmIChvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1JFTEFUSU9OIHx8 CisJCQkJCSBvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX01BVFZJRVcg fHwKKwkJCQkJIG9yaWdSZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElU SU9ORURfVEFCTEUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVf RkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciB0YWJs ZSBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2VzIGl0IiwKKwkJ CQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUob3JpZ1JlbGF0aW9uKSwKKwkJCQkJCQkJZ2V0 X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAor CQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSkpKTsKKworCQkJY29udGlu dWU7CisJCX0KKwogCQkvKiBFbHNlLCBpZ25vcmUgZGVwZW5kZWVzIHRoYXQgYXJlbid0IHJlbGF0 aW9ucyAqLwogCQlpZiAocGdfZGVwZW5kLT5jbGFzc2lkICE9IFJlbGF0aW9uUmVsYXRpb25JZCkK IAkJCWNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYTA0M2ZkNGM2NjkuLjU3YjVmNjg4MmIxIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFj ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Ry aWdnZXIuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUg ImdyYW1wYXJzZS5oIgpAQCAtMjk1LDggKzI5Niw4IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJz aXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7 CiAJCUNvbnN0cmFpbnRzU2V0U3RtdCBDb3B5U3RtdCBDcmVhdGVBc1N0bXQgQ3JlYXRlQ2FzdFN0 bXQKIAkJQ3JlYXRlRG9tYWluU3RtdCBDcmVhdGVFeHRlbnNpb25TdG10IENyZWF0ZUdyb3VwU3Rt dCBDcmVhdGVPcENsYXNzU3RtdAogCQlDcmVhdGVPcEZhbWlseVN0bXQgQWx0ZXJPcEZhbWlseVN0 bXQgQ3JlYXRlUExhbmdTdG10Ci0JCUNyZWF0ZVNjaGVtYVN0bXQgQ3JlYXRlU2VxU3RtdCBDcmVh dGVTdG10IENyZWF0ZVN0YXRzU3RtdCBDcmVhdGVUYWJsZVNwYWNlU3RtdAotCQlDcmVhdGVGZHdT dG10IENyZWF0ZUZvcmVpZ25TZXJ2ZXJTdG10IENyZWF0ZUZvcmVpZ25UYWJsZVN0bXQKKwkJQ3Jl YXRlU2NoZW1hU3RtdCBDcmVhdGVTZXNzaW9uVmFyU3RtdCBDcmVhdGVTZXFTdG10IENyZWF0ZVN0 bXQgQ3JlYXRlU3RhdHNTdG10CisJCUNyZWF0ZVRhYmxlU3BhY2VTdG10IENyZWF0ZUZkd1N0bXQg Q3JlYXRlRm9yZWlnblNlcnZlclN0bXQgQ3JlYXRlRm9yZWlnblRhYmxlU3RtdAogCQlDcmVhdGVB c3NlcnRpb25TdG10IENyZWF0ZVRyYW5zZm9ybVN0bXQgQ3JlYXRlVHJpZ1N0bXQgQ3JlYXRlRXZl bnRUcmlnU3RtdAogCQlDcmVhdGVVc2VyU3RtdCBDcmVhdGVVc2VyTWFwcGluZ1N0bXQgQ3JlYXRl Um9sZVN0bXQgQ3JlYXRlUG9saWN5U3RtdAogCQlDcmVhdGVkYlN0bXQgRGVjbGFyZUN1cnNvclN0 bXQgRGVmaW5lU3RtdCBEZWxldGVTdG10IERpc2NhcmRTdG10IERvU3RtdApAQCAtNzkwLDggKzc5 MSw4IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1l LCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJVUVTQ0FQRSBVTkJPVU5ERUQgVU5DT05E SVRJT05BTCBVTkNPTU1JVFRFRCBVTkVOQ1JZUFRFRCBVTklPTiBVTklRVUUgVU5LTk9XTgogCVVO TElTVEVOIFVOTE9HR0VEIFVOVElMIFVQREFURSBVU0VSIFVTSU5HCiAKLQlWQUNVVU0gVkFMSUQg VkFMSURBVEUgVkFMSURBVE9SIFZBTFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFESUMgVkFSWUlO RwotCVZFUkJPU0UgVkVSU0lPTl9QIFZJRVcgVklFV1MgVk9MQVRJTEUKKwlWQUNVVU0gVkFMSUQg VkFMSURBVEUgVkFMSURBVE9SIFZBTFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFCTEUgVkFSSUFC TEVTCisJVkFSSUFESUMgVkFSWUlORyBWRVJCT1NFIFZFUlNJT05fUCBWSUVXIFZJRVdTIFZPTEFU SUxFCiAKIAlXSEVOIFdIRVJFIFdISVRFU1BBQ0VfUCBXSU5ET1cgV0lUSCBXSVRISU4gV0lUSE9V VCBXT1JLIFdSQVBQRVIgV1JJVEUKIApAQCAtMTA2MSw2ICsxMDYyLDcgQEAgc3RtdDoKIAkJCXwg Q3JlYXRlUG9saWN5U3RtdAogCQkJfCBDcmVhdGVQTGFuZ1N0bXQKIAkJCXwgQ3JlYXRlU2NoZW1h U3RtdAorCQkJfCBDcmVhdGVTZXNzaW9uVmFyU3RtdAogCQkJfCBDcmVhdGVTZXFTdG10CiAJCQl8 IENyZWF0ZVN0bXQKIAkJCXwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdApAQCAtMTYwNSw2ICsxNjA3 LDcgQEAgc2NoZW1hX3N0bXQ6CiAJCQl8IENyZWF0ZVRyaWdTdG10CiAJCQl8IEdyYW50U3RtdAog CQkJfCBWaWV3U3RtdAorCQkJfCBDcmVhdGVTZXNzaW9uVmFyU3RtdAogCQk7CiAKIApAQCAtNTIw Miw2ICs1MjA1LDM0IEBAIGNyZWF0ZV9leHRlbnNpb25fb3B0X2l0ZW06CiAJCQkJfQogCQk7CiAK Ky8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqCQlRVUVSWSA6CisgKgkJCQlDUkVBVEUgVkFS SUFCTEUgdmFybmFtZSBbQVNdIHR5cGUKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0Ny ZWF0ZVNlc3Npb25WYXJTdG10OgorCQkJQ1JFQVRFIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9w dF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UKKwkJCQl7CisJCQkJCUNyZWF0ZVNlc3Np b25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOworCQkJCQluLT52 YXJpYWJsZSA9ICQzOworCQkJCQluLT50eXBlTmFtZSA9ICQ1OworCQkJCQluLT5jb2xsQ2xhdXNl ID0gKENvbGxhdGVDbGF1c2UgKikgJDY7CisJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBmYWxzZTsK KwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQ1JFQVRFIFZBUklBQkxFIElGX1Ag Tk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xh dXNlCisJCQkJeworCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0 ZVNlc3Npb25WYXJTdG10KTsKKwkJCQkJbi0+dmFyaWFibGUgPSAkNjsKKwkJCQkJbi0+dHlwZU5h bWUgPSAkODsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ5OworCQkJ CQluLT5pZl9ub3RfZXhpc3RzID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0K KwkJOworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBBTFRFUiBFWFRFTlNJT04gbmFt ZSBVUERBVEUgWyBUTyB2ZXJzaW9uIF0KQEAgLTcwMDYsNiArNzAzNyw3IEBAIG9iamVjdF90eXBl X2FueV9uYW1lOgogCQkJfCBURVhUX1AgU0VBUkNIIERJQ1RJT05BUlkJCQkJeyAkJCA9IE9CSkVD VF9UU0RJQ1RJT05BUlk7IH0KIAkJCXwgVEVYVF9QIFNFQVJDSCBURU1QTEFURQkJCQl7ICQkID0g T0JKRUNUX1RTVEVNUExBVEU7IH0KIAkJCXwgVEVYVF9QIFNFQVJDSCBDT05GSUdVUkFUSU9OCQkJ eyAkJCA9IE9CSkVDVF9UU0NPTkZJR1VSQVRJT047IH0KKwkJCXwgVkFSSUFCTEUJCQkJCQkJCXsg JCQgPSBPQkpFQ1RfVkFSSUFCTEU7IH0KIAkJOwogCiAvKgpAQCAtNzg4Miw2ICs3OTE0LDE0IEBA IHByaXZpbGVnZV90YXJnZXQ6CiAJCQkJCW4tPm9ianMgPSAkMjsKIAkJCQkJJCQgPSBuOwogCQkJ CX0KKwkJCXwgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWVfbGlzdAorCQkJCXsKKwkJCQkJUHJpdlRh cmdldCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOworCQkJ CQluLT50YXJndHlwZSA9IEFDTF9UQVJHRVRfT0JKRUNUOworCQkJCQluLT5vYmp0eXBlID0gT0JK RUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmpzID0gJDI7CisJCQkJCSQkID0gbjsKKwkJCQl9CiAJ CQl8IEFMTCBUQUJMRVMgSU5fUCBTQ0hFTUEgbmFtZV9saXN0CiAJCQkJewogCQkJCQlQcml2VGFy Z2V0ICpuID0gKFByaXZUYXJnZXQgKikgcGFsbG9jKHNpemVvZihQcml2VGFyZ2V0KSk7CkBAIC03 OTI3LDYgKzc5NjcsMTQgQEAgcHJpdmlsZWdlX3RhcmdldDoKIAkJCQkJbi0+b2JqcyA9ICQ1Owog CQkJCQkkJCA9IG47CiAJCQkJfQorCQkJfCBBTEwgVkFSSUFCTEVTIElOX1AgU0NIRU1BIG5hbWVf bGlzdAorCQkJCXsKKwkJCQkJUHJpdlRhcmdldCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhz aXplb2YoUHJpdlRhcmdldCkpOworCQkJCQluLT50YXJndHlwZSA9IEFDTF9UQVJHRVRfQUxMX0lO X1NDSEVNQTsKKwkJCQkJbi0+b2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2Jq cyA9ICQ1OworCQkJCQkkJCA9IG47CisJCQkJfQogCQk7CiAKIApAQCAtODEyNCw2ICs4MTcyLDcg QEAgZGVmYWNsX3ByaXZpbGVnZV90YXJnZXQ6CiAJCQl8IFNFUVVFTkNFUwkJeyAkJCA9IE9CSkVD VF9TRVFVRU5DRTsgfQogCQkJfCBUWVBFU19QCQl7ICQkID0gT0JKRUNUX1RZUEU7IH0KIAkJCXwg U0NIRU1BUwkJeyAkJCA9IE9CSkVDVF9TQ0hFTUE7IH0KKwkJCXwgVkFSSUFCTEVTCQl7ICQkID0g T0JKRUNUX1ZBUklBQkxFOyB9CiAJCTsKIAogCkBAIC05OTA2LDYgKzk5NTUsMjQgQEAgUmVuYW1l U3RtdDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIFJFTkFNRSBUTyBu YW1lCiAJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwog CQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgUkVOQU1FIFRPIG5hbWUKKwkJCQl7 CisJCQkJCVJlbmFtZVN0bXQgKm4gPSBtYWtlTm9kZShSZW5hbWVTdG10KTsKKwkJCQkJbi0+cmVu YW1lVHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDM7 CisJCQkJCW4tPm5ld25hbWUgPSAkNjsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJ CQkkJCA9IChOb2RlICopbjsKKwkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIElGX1AgRVhJU1RT IGFueV9uYW1lIFJFTkFNRSBUTyBuYW1lCisJCQkJeworCQkJCQlSZW5hbWVTdG10ICpuID0gbWFr ZU5vZGUoUmVuYW1lU3RtdCk7CisJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7 CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQ1OworCQkJCQluLT5uZXduYW1lID0gJDg7CisJ CQkJCW4tPm1pc3Npbmdfb2sgPSB0cnVlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJ CTsKIAogb3B0X2NvbHVtbjogQ09MVU1OCkBAIC0xMDI2Nyw2ICsxMDMzNCwyNCBAQCBBbHRlck9i amVjdFNjaGVtYVN0bXQ6CiAJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAo Tm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgU0VUIFNDSEVN QSBuYW1lCisJCQkJeworCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBtYWtlTm9kZShB bHRlck9iamVjdFNjaGVtYVN0bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1ZBUklB QkxFOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkMzsKKwkJCQkJbi0+bmV3c2NoZW1hID0g JDY7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJ CQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBJRl9QIEVYSVNUUyBhbnlfbmFtZSBTRVQgU0NIRU1B IG5hbWUKKwkJCQl7CisJCQkJCUFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9IG1ha2VOb2RlKEFs dGVyT2JqZWN0U2NoZW1hU3RtdCk7CisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfVkFSSUFC TEU7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQ1OworCQkJCQluLT5uZXdzY2hlbWEgPSAk ODsKKwkJCQkJbi0+bWlzc2luZ19vayA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJ CX0KIAkJOwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTEwNTQ4LDYgKzEwNjMzLDE0IEBA IEFsdGVyT3duZXJTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlwZXMg T1dORVIgVE8gUm9sZVNwZWMKIAkJCQkJbi0+bmV3b3duZXIgPSAkNjsKIAkJCQkJJCQgPSAoTm9k ZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgT1dORVIgVE8gUm9s ZVNwZWMKKwkJCQl7CisJCQkJCUFsdGVyT3duZXJTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPd25l clN0bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5v YmplY3QgPSAoTm9kZSAqKSAkMzsKKwkJCQkJbi0+bmV3b3duZXIgPSAkNjsKKwkJCQkJJCQgPSAo Tm9kZSAqKW47CisJCQkJfQogCQk7CiAKIApAQCAtMTc4NzgsNiArMTc5NzEsOCBAQCB1bnJlc2Vy dmVkX2tleXdvcmQ6CiAJCQl8IFZBTElEQVRFCiAJCQl8IFZBTElEQVRPUgogCQkJfCBWQUxVRV9Q CisJCQl8IFZBUklBQkxFCisJCQl8IFZBUklBQkxFUwogCQkJfCBWQVJZSU5HCiAJCQl8IFZFUlNJ T05fUAogCQkJfCBWSUVXCkBAIC0xODUzMyw2ICsxODYyOCw4IEBAIGJhcmVfbGFiZWxfa2V5d29y ZDoKIAkJCXwgVkFMVUVfUAogCQkJfCBWQUxVRVMKIAkJCXwgVkFSQ0hBUgorCQkJfCBWQVJJQUJM RQorCQkJfCBWQVJJQUJMRVMKIAkJCXwgVkFSSUFESUMKIAkJCXwgVkVSQk9TRQogCQkJfCBWRVJT SU9OX1AKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCmluZGV4IGQ1YzJiMmZmMGIwLi4yZmJh OTBjOTVhMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCkBAIC0xMDcsNiArMTA3LDcg QEAgdHlwZWRlZiBzdHJ1Y3QKIAlMaXN0CSAgICppbmRleGVzOwkJLyogQ1JFQVRFIElOREVYIGl0 ZW1zICovCiAJTGlzdAkgICAqdHJpZ2dlcnM7CQkvKiBDUkVBVEUgVFJJR0dFUiBpdGVtcyAqLwog CUxpc3QJICAgKmdyYW50czsJCQkvKiBHUkFOVCBpdGVtcyAqLworCUxpc3QJICAgKnZhcmlhYmxl czsJCS8qIENSRUFURSBWQVJJQUJMRSBpdGVtcyAqLwogfSBDcmVhdGVTY2hlbWFTdG10Q29udGV4 dDsKIAogCkBAIC0zOTY2LDYgKzM5NjcsNyBAQCB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxl bWVudHMoTGlzdCAqc2NoZW1hRWx0cywgY29uc3QgY2hhciAqc2NoZW1hTmFtZSkKIAljeHQuaW5k ZXhlcyA9IE5JTDsKIAljeHQudHJpZ2dlcnMgPSBOSUw7CiAJY3h0LmdyYW50cyA9IE5JTDsKKwlj eHQudmFyaWFibGVzID0gTklMOwogCiAJLyoKIAkgKiBSdW4gdGhyb3VnaCBlYWNoIHNjaGVtYSBl bGVtZW50IGluIHRoZSBzY2hlbWEgZWxlbWVudCBsaXN0LiBTZXBhcmF0ZQpAQCAtNDAzNCw2ICs0 MDM2LDE1IEBAIHRyYW5zZm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFF bHRzLCBjb25zdCBjaGFyICpzY2hlbWFOYW1lKQogCQkJCWN4dC5ncmFudHMgPSBsYXBwZW5kKGN4 dC5ncmFudHMsIGVsZW1lbnQpOwogCQkJCWJyZWFrOwogCisJCQljYXNlIFRfQ3JlYXRlU2Vzc2lv blZhclN0bXQ6CisJCQkJeworCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqZWxwID0gKENyZWF0 ZVNlc3Npb25WYXJTdG10ICopIGVsZW1lbnQ7CisKKwkJCQkJc2V0U2NoZW1hTmFtZShjeHQuc2No ZW1hbmFtZSwgJmVscC0+dmFyaWFibGUtPnNjaGVtYW5hbWUpOworCQkJCQljeHQudmFyaWFibGVz ID0gbGFwcGVuZChjeHQudmFyaWFibGVzLCBlbGVtZW50KTsKKwkJCQl9CisJCQkJYnJlYWs7CisK IAkJCWRlZmF1bHQ6CiAJCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVk IiwKIAkJCQkJIChpbnQpIG5vZGVUYWcoZWxlbWVudCkpOwpAQCAtNDA0Nyw2ICs0MDU4LDcgQEAg dHJhbnNmb3JtQ3JlYXRlU2NoZW1hU3RtdEVsZW1lbnRzKExpc3QgKnNjaGVtYUVsdHMsIGNvbnN0 IGNoYXIgKnNjaGVtYU5hbWUpCiAJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQuaW5k ZXhlcyk7CiAJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQudHJpZ2dlcnMpOwogCXJl c3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgY3h0LmdyYW50cyk7CisJcmVzdWx0ID0gbGlzdF9j b25jYXQocmVzdWx0LCBjeHQudmFyaWFibGVzKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRp bGl0eS5jCmluZGV4IGZhNjZiODAxN2VkLi5jZThkYjdjZGE0MyAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKQEAg LTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19pbmhlcml0cy5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3RvYXN0 aW5nLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9h c3luYy5oIgpAQCAtMTgyLDYgKzE4Myw3IEBAIENsYXNzaWZ5VXRpbGl0eUNvbW1hbmRBc1JlYWRP bmx5KE5vZGUgKnBhcnNldHJlZSkKIAkJY2FzZSBUX0NyZWF0ZVJhbmdlU3RtdDoKIAkJY2FzZSBU X0NyZWF0ZVJvbGVTdG10OgogCQljYXNlIFRfQ3JlYXRlU2NoZW1hU3RtdDoKKwkJY2FzZSBUX0Ny ZWF0ZVNlc3Npb25WYXJTdG10OgogCQljYXNlIFRfQ3JlYXRlU2VxU3RtdDoKIAkJY2FzZSBUX0Ny ZWF0ZVN0YXRzU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVN0bXQ6CkBAIC0xMzg2LDYgKzEzODgsMTAg QEAgUHJvY2Vzc1V0aWxpdHlTbG93KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQl9CiAJCQkJYnJl YWs7CiAKKwkJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCQlhZGRyZXNzID0gQ3Jl YXRlVmFyaWFibGUocHN0YXRlLCAoQ3JlYXRlU2Vzc2lvblZhclN0bXQgKikgcGFyc2V0cmVlKTsK KwkJCQlicmVhazsKKwogCQkJCS8qCiAJCQkJICogKioqKioqKioqKioqKiBvYmplY3QgY3JlYXRp b24gLyBkZXN0cnVjdGlvbiAqKioqKioqKioqKioqKgogCQkJCSAqLwpAQCAtMjMzOCw2ICsyMzQ0 LDkgQEAgQWx0ZXJPYmplY3RUeXBlQ29tbWFuZFRhZyhPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNh c2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6CiAJCQl0YWcgPSBDTURUQUdfQUxURVJfU1RBVElTVElD UzsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXRhZyA9IENNRFRBR19B TFRFUl9WQVJJQUJMRTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJdGFnID0gQ01EVEFHX1VO S05PV047CiAJCQlicmVhazsKQEAgLTI2NDYsNiArMjY1NSw5IEBAIENyZWF0ZUNvbW1hbmRUYWco Tm9kZSAqcGFyc2V0cmVlKQogCQkJCWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6CiAJCQkJCXRh ZyA9IENNRFRBR19EUk9QX1NUQVRJU1RJQ1M7CiAJCQkJCWJyZWFrOworCQkJCWNhc2UgT0JKRUNU X1ZBUklBQkxFOgorCQkJCQl0YWcgPSBDTURUQUdfRFJPUF9WQVJJQUJMRTsKKwkJCQkJYnJlYWs7 CiAJCQkJZGVmYXVsdDoKIAkJCQkJdGFnID0gQ01EVEFHX1VOS05PV047CiAJCQl9CkBAIC0zMjIy LDYgKzMyMzQsMTAgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQl9CiAJ CQlicmVhazsKIAorCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQl0YWcgPSBDTURU QUdfQ1JFQVRFX1ZBUklBQkxFOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coV0FS TklORywgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkgKGludCkgbm9kZVRhZyhw YXJzZXRyZWUpKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYwppbmRleCBkN2IzOTE0MGIzZC4uNWY4MGFmNGY1ZTAg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvYWNsLmMKQEAgLTg1MCw2ICs4NTAsMTAgQEAgYWNsZGVmYXVsdChPYmplY3RU eXBlIG9ianR5cGUsIE9pZCBvd25lcklkKQogCQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdI VFM7CiAJCQlvd25lcl9kZWZhdWx0ID0gQUNMX0FMTF9SSUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJ CWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXdvcmxkX2RlZmF1bHQgPSBBQ0xf Tk9fUklHSFRTOworCQkJb3duZXJfZGVmYXVsdCA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxFOwor CQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVj dCB0eXBlOiAlZCIsIChpbnQpIG9ianR5cGUpOwogCQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19S SUdIVFM7CS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KQEAgLTk0Nyw2ICs5NTEsOSBAQCBhY2xk ZWZhdWx0X3NxbChQR19GVU5DVElPTl9BUkdTKQogCQljYXNlICdUJzoKIAkJCW9ianR5cGUgPSBP QkpFQ1RfVFlQRTsKIAkJCWJyZWFrOworCQljYXNlICdWJzoKKwkJCW9ianR5cGUgPSBPQkpFQ1Rf VkFSSUFCTEU7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29n bml6ZWQgb2JqZWN0IHR5cGUgYWJicmV2aWF0aW9uOiAlYyIsIG9ianR5cGVjKTsKIAl9CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCmluZGV4IDQ4YTI4MGQwODliLi45YTVlMjM2NjVjYiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNs dWRlICJjYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJh bnNmb3JtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVz L21ha2VmdW5jcy5oIgogI2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCkBAIC0zNzE0LDMgKzM3MTUs MTE1IEBAIGdldF9zdWJzY3JpcHRpb25fbmFtZShPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vaykK IAogCXJldHVybiBzdWJuYW1lOwogfQorCisvKgkJCQktLS0tLS0tLS0tIFBHX1ZBUklBQkxFIENB Q0hFIC0tLS0tLS0tLS0JCQkJICovCisKKy8qCisgKiBnZXRfdmFybmFtZV92YXJpZAorICoJCUdp dmVuIG5hbWUgYW5kIG5hbWVzcGFjZSBvZiB2YXJpYWJsZSwgbG9vayB1cCB0aGUgT0lELgorICov CitPaWQKK2dldF92YXJuYW1lX3ZhcmlkKGNvbnN0IGNoYXIgKnZhcm5hbWUsIE9pZCB2YXJuYW1l c3BhY2UpCit7CisJcmV0dXJuIEdldFN5c0NhY2hlT2lkMihWQVJJQUJMRU5BTUVOU1AsIEFudW1f cGdfdmFyaWFibGVfb2lkLAorCQkJCQkJICAgUG9pbnRlckdldERhdHVtKHZhcm5hbWUpLAorCQkJ CQkJICAgT2JqZWN0SWRHZXREYXR1bSh2YXJuYW1lc3BhY2UpKTsKK30KKworLyoKKyAqIGdldF9z ZXNzaW9uX3ZhcmlhYmxlX25hbWUKKyAqCQlSZXR1cm5zIGEgcGFsbG9jJ2QgY29weSBvZiB0aGUg bmFtZSBvZiBhIGdpdmVuIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK2NoYXIgKgorZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZShPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3Bn X3ZhcmlhYmxlIHZhcmZvcm07CisJY2hhcgkgICAqdmFybmFtZTsKKworCXR1cCA9IFNlYXJjaFN5 c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFI ZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVk IGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChGb3JtX3Bn X3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCXZhcm5hbWUgPSBwc3RyZHVwKE5hbWVTdHIo dmFyZm9ybS0+dmFybmFtZSkpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4g dmFybmFtZTsKK30KKworLyoKKyAqIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZQorICoJ CVJldHVybnMgdGhlIHBnX25hbWVzcGFjZSBPSUQgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gc2Vz c2lvbiB2YXJpYWJsZS4KKyAqLworT2lkCitnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uo T2lkIHZhcmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3Jt OworCU9pZAkJCXZhcm5hbWVzcGFjZTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJM RU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlk KHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB2YXJpYWJsZSAl dSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1 cCk7CisKKwl2YXJuYW1lc3BhY2UgPSB2YXJmb3JtLT52YXJuYW1lc3BhY2U7CisKKwlSZWxlYXNl U3lzQ2FjaGUodHVwKTsKKworCXJldHVybiB2YXJuYW1lc3BhY2U7Cit9CisKKy8qCisgKiBSZXR1 cm5zIHRoZSB0eXBlLCB0eXBtb2QgYW5kIGNvbGxpZCBvZiB0aGUgZ2l2ZW4gc2Vzc2lvbiB2YXJp YWJsZS4KKyAqLworT2lkCitnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlKE9pZCB2YXJpZCkKK3sK KwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKwlPaWQJCQl2YXJ0 eXBlOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERh dHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJP UiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7 CisKKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJdmFy dHlwZSA9IHZhcmZvcm0tPnZhcnR5cGU7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJl dHVybiB2YXJ0eXBlOworfQorCisvKgorICogUmV0dXJucyB0aGUgdHlwZSwgdHlwbW9kIGFuZCBj b2xsaWQgb2YgdGhlIGdpdmVuIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK3ZvaWQKK2dldF9zZXNz aW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9kX2NvbGxpZChPaWQgdmFyaWQsIE9pZCAqdHlwaWQsIGlu dDMyICp0eXBtb2QsCisJCQkJCQkJCQkJT2lkICpjb2xsaWQpCit7CisJSGVhcFR1cGxlCXR1cDsK KwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFS SUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNW YWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lv biB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkg R0VUU1RSVUNUKHR1cCk7CisKKwkqdHlwaWQgPSB2YXJmb3JtLT52YXJ0eXBlOworCSp0eXBtb2Qg PSB2YXJmb3JtLT52YXJ0eXBtb2Q7CisJKmNvbGxpZCA9IHZhcmZvcm0tPnZhcmNvbGxhdGlvbjsK KworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L2NvbW1vbi5jIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jCmluZGV4IGMzMjNiNWJkM2Q5Li40 MDc5YWQ2MDNhYyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jCisrKyBiL3Ny Yy9iaW4vcGdfZHVtcC9jb21tb24uYwpAQCAtMjQ3LDYgKzI0Nyw5IEBAIGdldFNjaGVtYURhdGEo QXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXNQdHIpCiAJcGdfbG9nX2luZm8oInJlYWRpbmcg c3Vic2NyaXB0aW9uIG1lbWJlcnNoaXAgb2YgdGFibGVzIik7CiAJZ2V0U3Vic2NyaXB0aW9uVGFi bGVzKGZvdXQpOwogCisJcGdfbG9nX2luZm8oInJlYWRpbmcgdmFyaWFibGVzIik7CisJZ2V0VmFy aWFibGVzKGZvdXQpOworCiAJZnJlZShpbmhpbmZvKTsJCQkJLyogbm90IG5lZWRlZCBhbnkgbG9u Z2VyICovCiAKIAkqbnVtVGFibGVzUHRyID0gbnVtVGFibGVzOwpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ19kdW1wL2R1bXB1dGlscy5jIGIvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jCmluZGV4 IDU2NDk4NTlhYTFlLi41MGRlNWQwZWEyOSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL2R1 bXB1dGlscy5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMuYwpAQCAtNTExLDYgKzUx MSwxMiBAQCBkbyB7IFwKIAkJQ09OVkVSVF9QUklWKCdyJywgIlNFTEVDVCIpOwogCQlDT05WRVJU X1BSSVYoJ3cnLCAiVVBEQVRFIik7CiAJfQorCWVsc2UgaWYgKHN0cmNtcCh0eXBlLCAiVkFSSUFC TEUiKSA9PSAwIHx8CisJCQkgc3RyY21wKHR5cGUsICJWQVJJQUJMRVMiKSA9PSAwKQorCXsKKwkJ Q09OVkVSVF9QUklWKCdyJywgIlNFTEVDVCIpOworCQlDT05WRVJUX1BSSVYoJ3cnLCAiVVBEQVRF Iik7CisJfQogCWVsc2UKIAkJYWJvcnQoKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2JhY2t1cC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCmluZGV4IGZiZjVmMWM1 MTVlLi5lODFjZmRlMjc0ZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5o CisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaApAQCAtMTMzLDEyICsxMzMsMTQgQEAg dHlwZWRlZiBzdHJ1Y3QgX3Jlc3RvcmVPcHRpb25zCiAJaW50CQkJc2VsRnVuY3Rpb247CiAJaW50 CQkJc2VsVHJpZ2dlcjsKIAlpbnQJCQlzZWxUYWJsZTsKKwlpbnQJCQlzZWxWYXJpYWJsZTsKIAlT aW1wbGVTdHJpbmdMaXN0IGluZGV4TmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCBmdW5jdGlvbk5h bWVzOwogCVNpbXBsZVN0cmluZ0xpc3Qgc2NoZW1hTmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCBz Y2hlbWFFeGNsdWRlTmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCB0cmlnZ2VyTmFtZXM7CiAJU2lt cGxlU3RyaW5nTGlzdCB0YWJsZU5hbWVzOworCVNpbXBsZVN0cmluZ0xpc3QgdmFyaWFibGVOYW1l czsKIAogCWludAkJCXVzZURCOwogCUNvbm5QYXJhbXMJY3BhcmFtczsJCS8qIHBhcmFtZXRlcnMg dG8gdXNlIGlmIHVzZURCICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3Vw X2FyY2hpdmVyLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKaW5kZXgg NjhlMzIxMjEyZDkuLjc2ODQ2Y2M3NjMyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdf YmFja3VwX2FyY2hpdmVyLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZl ci5jCkBAIC0zMDk4LDYgKzMwOTgsMTQgQEAgX3RvY0VudHJ5UmVxdWlyZWQoVG9jRW50cnkgKnRl LCB0ZVNlY3Rpb24gY3VyU2VjdGlvbiwgQXJjaGl2ZUhhbmRsZSAqQUgpCiAJCQkJCSFzaW1wbGVf c3RyaW5nX2xpc3RfbWVtYmVyKCZyb3B0LT50cmlnZ2VyTmFtZXMsIHRlLT50YWcpKQogCQkJCQly ZXR1cm4gMDsKIAkJCX0KKwkJCWVsc2UgaWYgKHN0cmNtcCh0ZS0+ZGVzYywgIlZBUklBQkxFIikg PT0gMCkKKwkJCXsKKwkJCQlpZiAoIXJvcHQtPnNlbFZhcmlhYmxlKQorCQkJCQlyZXR1cm4gMDsK KwkJCQlpZiAocm9wdC0+dmFyaWFibGVOYW1lcy5oZWFkICE9IE5VTEwgJiYKKwkJCQkJIXNpbXBs ZV9zdHJpbmdfbGlzdF9tZW1iZXIoJnJvcHQtPnZhcmlhYmxlTmFtZXMsIHRlLT50YWcpKQorCQkJ CQlyZXR1cm4gMDsKKwkJCX0KIAkJCWVsc2UKIAkJCQlyZXR1cm4gMDsKIAkJfQpAQCAtMzY0Nyw2 ICszNjU1LDcgQEAgX2dldE9iamVjdERlc2NyaXB0aW9uKFBRRXhwQnVmZmVyIGJ1ZiwgY29uc3Qg VG9jRW50cnkgKnRlKQogCQlzdHJjbXAodHlwZSwgIlRFWFQgU0VBUkNIIERJQ1RJT05BUlkiKSA9 PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiVEVYVCBTRUFSQ0ggQ09ORklHVVJBVElPTiIpID09IDAg fHwKIAkJc3RyY21wKHR5cGUsICJUWVBFIikgPT0gMCB8fAorCQlzdHJjbXAodHlwZSwgIlZBUklB QkxFIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIlZJRVciKSA9PSAwIHx8CiAJLyogbm9uLXNj aGVtYS1zcGVjaWZpZWQgb2JqZWN0cyAqLwogCQlzdHJjbXAodHlwZSwgIkRBVEFCQVNFIikgPT0g MCB8fApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMKaW5kZXggYjhiMTg4OGJkMzMuLjY0YTYzMzZhODk3IDEwMDY0NAotLS0g YS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmMKQEAgLTMyNCw2ICszMjQsNyBAQCBzdGF0aWMgdm9pZCBkdW1wUHVibGljYXRpb24oQXJjaGl2 ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25JbmZvICpwdWJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1 bXBQdWJsaWNhdGlvblRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uUmVsSW5m byAqcHVicmluZm8pOwogc3RhdGljIHZvaWQgZHVtcFN1YnNjcmlwdGlvbihBcmNoaXZlICpmb3V0 LCBjb25zdCBTdWJzY3JpcHRpb25JbmZvICpzdWJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBTdWJz Y3JpcHRpb25UYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBTdWJSZWxJbmZvICpzdWJyaW5mbyk7 CitzdGF0aWMgdm9pZCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJ bmZvICp2YXJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBEYXRhYmFzZShBcmNoaXZlICpmb3V0KTsK IHN0YXRpYyB2b2lkIGR1bXBEYXRhYmFzZUNvbmZpZyhBcmNoaXZlICpBSCwgUFFFeHBCdWZmZXIg b3V0YnVmLAogCQkJCQkJCSAgIGNvbnN0IGNoYXIgKmRibmFtZSwgT2lkIGRib2lkKTsKQEAgLTUz MTMsNiArNTMxNCwxOTMgQEAgZ2V0X25leHRfcG9zc2libGVfZnJlZV9wZ190eXBlX29pZChBcmNo aXZlICpmb3V0LCBQUUV4cEJ1ZmZlciB1cGdyYWRlX3F1ZXJ5KQogCXJldHVybiBuZXh0X3Bvc3Np YmxlX2ZyZWVfb2lkOwogfQogCisvKgorICogZ2V0VmFyaWFibGVzCisgKgkgIGdldCBpbmZvcm1h dGlvbiBhYm91dCB2YXJpYWJsZXMKKyAqLwordm9pZAorZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZv dXQpCit7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJUEdyZXN1bHQgICAqcmVzOworCVZhcmlhYmxl SW5mbyAqdmFyaW5mbzsKKwlpbnQJCQlpX3RhYmxlb2lkOworCWludAkJCWlfb2lkOworCWludAkJ CWlfdmFybmFtZTsKKwlpbnQJCQlpX3Zhcm5hbWVzcGFjZTsKKwlpbnQJCQlpX3ZhcnR5cGU7CisJ aW50CQkJaV92YXJ0eXBuYW1lOworCWludAkJCWlfdmFyb3duZXI7CisJaW50CQkJaV92YXJjb2xs YXRpb247CisJaW50CQkJaV92YXJhY2w7CisJaW50CQkJaV9hY2xkZWZhdWx0OworCWludAkJCWks CisJCQkJbnR1cHM7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA8IDE4MDAwMCkKKwkJcmV0 dXJuOworCisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJcmVzZXRQUUV4cEJ1ZmZl cihxdWVyeSk7CisKKwkvKiBHZXQgdGhlIHZhcmlhYmxlcyBpbiBjdXJyZW50IGRhdGFiYXNlLiAq LworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAorCQkJCQkgICJTRUxFQ1Qgdi50YWJsZW9pZCwg di5vaWQsIHYudmFybmFtZSxcbiIKKwkJCQkJICAidi52YXJuYW1lc3BhY2UsXG4iCisJCQkJCSAg InYudmFydHlwZSxcbiIKKwkJCQkJICAicGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2LnZhcnR5cGUs IHYudmFydHlwbW9kKSBhcyB2YXJ0eXBuYW1lLFxuIgorCQkJCQkgICJDQVNFIFdIRU4gdi52YXJj b2xsYXRpb24gPD4gdC50eXBjb2xsYXRpb24gIgorCQkJCQkgICJUSEVOIHYudmFyY29sbGF0aW9u IEVMU0UgMCBFTkQgQVMgdmFyY29sbGF0aW9uLFxuIgorCQkJCQkgICJ2LnZhcm93bmVyLFxuIgor CQkJCQkgICJ2LnZhcmFjbCxcbiIKKwkJCQkJICAiYWNsZGVmYXVsdCgnVicsIHYudmFyb3duZXIp IEFTIGFjbGRlZmF1bHRcbiIKKwkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlIHZc biIKKwkJCQkJICAiSk9JTiBwZ19jYXRhbG9nLnBnX3R5cGUgdCAiCisJCQkJCSAgIk9OICh2LnZh cnR5cGUgPSB0Lm9pZCkiKTsKKworCXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxdWVyeS0+ ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKKworCW50dXBzID0gUFFudHVwbGVzKHJlcyk7CisKKwlp X3RhYmxlb2lkID0gUFFmbnVtYmVyKHJlcywgInRhYmxlb2lkIik7CisJaV9vaWQgPSBQUWZudW1i ZXIocmVzLCAib2lkIik7CisJaV92YXJuYW1lID0gUFFmbnVtYmVyKHJlcywgInZhcm5hbWUiKTsK KwlpX3Zhcm5hbWVzcGFjZSA9IFBRZm51bWJlcihyZXMsICJ2YXJuYW1lc3BhY2UiKTsKKwlpX3Zh cnR5cGUgPSBQUWZudW1iZXIocmVzLCAidmFydHlwZSIpOworCWlfdmFydHlwbmFtZSA9IFBRZm51 bWJlcihyZXMsICJ2YXJ0eXBuYW1lIik7CisJaV92YXJjb2xsYXRpb24gPSBQUWZudW1iZXIocmVz LCAidmFyY29sbGF0aW9uIik7CisKKwlpX3Zhcm93bmVyID0gUFFmbnVtYmVyKHJlcywgInZhcm93 bmVyIik7CisJaV92YXJhY2wgPSBQUWZudW1iZXIocmVzLCAidmFyYWNsIik7CisJaV9hY2xkZWZh dWx0ID0gUFFmbnVtYmVyKHJlcywgImFjbGRlZmF1bHQiKTsKKworCXZhcmluZm8gPSBwZ19tYWxs b2MobnR1cHMgKiBzaXplb2YoVmFyaWFibGVJbmZvKSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnR1 cHM7IGkrKykKKwl7CisJCVR5cGVJbmZvICAgKnZ0eXBlOworCisJCXZhcmluZm9baV0uZG9iai5v YmpUeXBlID0gRE9fVkFSSUFCTEU7CisJCXZhcmluZm9baV0uZG9iai5jYXRJZC50YWJsZW9pZCA9 CisJCQlhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdGFibGVvaWQpKTsKKwkJdmFyaW5mb1tp XS5kb2JqLmNhdElkLm9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV9vaWQpKTsKKwkJ QXNzaWduRHVtcElkKCZ2YXJpbmZvW2ldLmRvYmopOworCQl2YXJpbmZvW2ldLmRvYmoubmFtZSA9 IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJuYW1lKSk7CisJCXZhcmluZm9baV0u ZG9iai5uYW1lc3BhY2UgPQorCQkJZmluZE5hbWVzcGFjZShhdG9vaWQoUFFnZXR2YWx1ZShyZXMs IGksIGlfdmFybmFtZXNwYWNlKSkpOworCisJCXZhcmluZm9baV0udmFydHlwZSA9IGF0b29pZChQ UWdldHZhbHVlKHJlcywgaSwgaV92YXJ0eXBlKSk7CisJCXZhcmluZm9baV0udmFydHlwbmFtZSA9 IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJ0eXBuYW1lKSk7CisJCXZhcmluZm9b aV0udmFyY29sbGF0aW9uID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmNvbGxhdGlv bikpOworCisJCXZhcmluZm9baV0uZGFjbC5hY2wgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMs IGksIGlfdmFyYWNsKSk7CisJCXZhcmluZm9baV0uZGFjbC5hY2xkZWZhdWx0ID0gcGdfc3RyZHVw KFBRZ2V0dmFsdWUocmVzLCBpLCBpX2FjbGRlZmF1bHQpKTsKKwkJdmFyaW5mb1tpXS5kYWNsLnBy aXZ0eXBlID0gMDsKKwkJdmFyaW5mb1tpXS5kYWNsLmluaXRwcml2cyA9IE5VTEw7CisJCXZhcmlu Zm9baV0ucm9sbmFtZSA9IGdldFJvbGVOYW1lKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm93bmVy KSk7CisKKwkJLyogRGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBkdW1wIGl0ICovCisJCXNlbGVj dER1bXBhYmxlT2JqZWN0KCYodmFyaW5mb1tpXS5kb2JqKSwgZm91dCk7CisKKwkJLyogRG8gbm90 IHRyeSB0byBkdW1wIEFDTCBpZiBubyBBQ0wgZXhpc3RzLiAqLworCQlpZiAoIVBRZ2V0aXNudWxs KHJlcywgaSwgaV92YXJhY2wpKQorCQkJdmFyaW5mb1tpXS5kb2JqLmNvbXBvbmVudHMgfD0gRFVN UF9DT01QT05FTlRfQUNMOworCisJCWlmIChzdHJsZW4odmFyaW5mb1tpXS5yb2xuYW1lKSA9PSAw KQorCQkJcGdfbG9nX3dhcm5pbmcoIm93bmVyIG9mIHZhcmlhYmxlIFwiJXNcIiBhcHBlYXJzIHRv IGJlIGludmFsaWQiLAorCQkJCQkJICAgdmFyaW5mb1tpXS5kb2JqLm5hbWUpOworCisJCS8qIERl Y2lkZSB3aGV0aGVyIHdlIHdhbnQgdG8gZHVtcCBpdCAqLworCQlzZWxlY3REdW1wYWJsZU9iamVj dCgmKHZhcmluZm9baV0uZG9iaiksIGZvdXQpOworCisJCXZ0eXBlID0gZmluZFR5cGVCeU9pZCh2 YXJpbmZvW2ldLnZhcnR5cGUpOworCQlhZGRPYmplY3REZXBlbmRlbmN5KCZ2YXJpbmZvW2ldLmRv YmosIHZ0eXBlLT5kb2JqLmR1bXBJZCk7CisJfQorCVBRY2xlYXIocmVzKTsKKworCWRlc3Ryb3lQ UUV4cEJ1ZmZlcihxdWVyeSk7Cit9CisKKy8qCisgKiBkdW1wVmFyaWFibGUKKyAqCSAgZHVtcCB0 aGUgZGVmaW5pdGlvbiBvZiB0aGUgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZQorICovCitzdGF0aWMg dm9pZAorZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFy aW5mbykKK3sKKwlEdW1wT3B0aW9ucyAqZG9wdCA9IGZvdXQtPmRvcHQ7CisKKwlQUUV4cEJ1ZmZl ciBkZWxxOworCVBRRXhwQnVmZmVyIHF1ZXJ5OworCWNoYXIJICAgKnF1YWx2YXJuYW1lOworCWNv bnN0IGNoYXIgKnZhcnR5cG5hbWU7CisJT2lkCQkJdmFyY29sbGF0aW9uOworCisJLyogU2tpcCBp ZiBub3QgdG8gYmUgZHVtcGVkICovCisJaWYgKCF2YXJpbmZvLT5kb2JqLmR1bXAgfHwgZG9wdC0+ ZGF0YU9ubHkpCisJCXJldHVybjsKKworCWRlbHEgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCXF1 ZXJ5ID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKworCXF1YWx2YXJuYW1lID0gcGdfc3RyZHVwKGZt dFF1YWxpZmllZER1bXBhYmxlKHZhcmluZm8pKTsKKwl2YXJ0eXBuYW1lID0gdmFyaW5mby0+dmFy dHlwbmFtZTsKKwl2YXJjb2xsYXRpb24gPSB2YXJpbmZvLT52YXJjb2xsYXRpb247CisKKwlhcHBl bmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCBWQVJJQUJMRSAlcztcbiIsCisJCQkJCSAgcXVhbHZh cm5hbWUpOworCisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgVkFSSUFCTEUgJXMg QVMgJXMiLAorCQkJCQkgIHF1YWx2YXJuYW1lLCB2YXJ0eXBuYW1lKTsKKworCWlmIChPaWRJc1Zh bGlkKHZhcmNvbGxhdGlvbikpCisJeworCQlDb2xsSW5mbyAgICpjb2xsOworCisJCWNvbGwgPSBm aW5kQ29sbGF0aW9uQnlPaWQodmFyY29sbGF0aW9uKTsKKwkJaWYgKGNvbGwpCisJCQlhcHBlbmRQ UUV4cEJ1ZmZlcihxdWVyeSwgIiBDT0xMQVRFICVzIiwKKwkJCQkJCQkgIGZtdFF1YWxpZmllZER1 bXBhYmxlKGNvbGwpKTsKKwl9CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIjtcbiIpOwor CisJaWYgKHZhcmluZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0RFRklOSVRJT04pCisJ CUFyY2hpdmVFbnRyeShmb3V0LCB2YXJpbmZvLT5kb2JqLmNhdElkLCB2YXJpbmZvLT5kb2JqLmR1 bXBJZCwKKwkJCQkJIEFSQ0hJVkVfT1BUUygudGFnID0gdmFyaW5mby0+ZG9iai5uYW1lLAorCQkJ CQkJCQkgIC5uYW1lc3BhY2UgPSB2YXJpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9iai5uYW1lLAor CQkJCQkJCQkgIC5vd25lciA9IHZhcmluZm8tPnJvbG5hbWUsCisJCQkJCQkJCSAgLmRlc2NyaXB0 aW9uID0gIlZBUklBQkxFIiwKKwkJCQkJCQkJICAuc2VjdGlvbiA9IFNFQ1RJT05fUFJFX0RBVEEs CisJCQkJCQkJCSAgLmNyZWF0ZVN0bXQgPSBxdWVyeS0+ZGF0YSwKKwkJCQkJCQkJICAuZHJvcFN0 bXQgPSBkZWxxLT5kYXRhKSk7CisKKwkvKiBEdW1wIGNvbW1lbnQgaWYgYW55ICovCisJaWYgKHZh cmluZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0NPTU1FTlQpCisJCWR1bXBDb21tZW50 KGZvdXQsICJWQVJJQUJMRSIsIHF1YWx2YXJuYW1lLAorCQkJCQlOVUxMLCB2YXJpbmZvLT5yb2xu YW1lLAorCQkJCQl2YXJpbmZvLT5kb2JqLmNhdElkLCAwLCB2YXJpbmZvLT5kb2JqLmR1bXBJZCk7 CisKKwkvKiBEdW1wIEFDTCBpZiBhbnkgKi8KKwlpZiAodmFyaW5mby0+ZG9iai5kdW1wICYgRFVN UF9DT01QT05FTlRfQUNMKQorCXsKKwkJY2hhcgkgICAqcXZhcm5hbWUgPSBwZ19zdHJkdXAoZm10 SWQodmFyaW5mby0+ZG9iai5uYW1lKSk7CisKKwkJZHVtcEFDTChmb3V0LCB2YXJpbmZvLT5kb2Jq LmR1bXBJZCwgSW52YWxpZER1bXBJZCwgIlZBUklBQkxFIiwKKwkJCQlxdmFybmFtZSwgTlVMTCwK KwkJCQl2YXJpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9iai5uYW1lLCBOVUxMLCB2YXJpbmZvLT5y b2xuYW1lLAorCQkJCSZ2YXJpbmZvLT5kYWNsKTsKKworCQlmcmVlKHF2YXJuYW1lKTsKKwl9CisK KwlkZXN0cm95UFFFeHBCdWZmZXIoZGVscSk7CisJZGVzdHJveVBRRXhwQnVmZmVyKHF1ZXJ5KTsK KworCWZyZWUocXVhbHZhcm5hbWUpOworfQorCiBzdGF0aWMgdm9pZAogYmluYXJ5X3VwZ3JhZGVf c2V0X3R5cGVfb2lkc19ieV90eXBlX29pZChBcmNoaXZlICpmb3V0LAogCQkJCQkJCQkJCSBQUUV4 cEJ1ZmZlciB1cGdyYWRlX2J1ZmZlciwKQEAgLTk4NzUsNyArMTAwNjMsOCBAQCBnZXRBZGRpdGlv bmFsQUNMcyhBcmNoaXZlICpmb3V0KQogCQkJCQlkb2JqLT5vYmpUeXBlID09IERPX1RBQkxFIHx8 CiAJCQkJCWRvYmotPm9ialR5cGUgPT0gRE9fUFJPQ0xBTkcgfHwKIAkJCQkJZG9iai0+b2JqVHlw ZSA9PSBET19GRFcgfHwKLQkJCQkJZG9iai0+b2JqVHlwZSA9PSBET19GT1JFSUdOX1NFUlZFUikK KwkJCQkJZG9iai0+b2JqVHlwZSA9PSBET19GT1JFSUdOX1NFUlZFUiB8fAorCQkJCQlkb2JqLT5v YmpUeXBlID09IERPX1ZBUklBQkxFKQogCQkJCXsKIAkJCQkJRHVtcGFibGVPYmplY3RXaXRoQWNs ICpkYW9iaiA9IChEdW1wYWJsZU9iamVjdFdpdGhBY2wgKikgZG9iajsKIApAQCAtMTA0NzQsNiAr MTA2NjMsOSBAQCBkdW1wRHVtcGFibGVPYmplY3QoQXJjaGl2ZSAqZm91dCwgRHVtcGFibGVPYmpl Y3QgKmRvYmopCiAJCWNhc2UgRE9fU1VCU0NSSVBUSU9OX1JFTDoKIAkJCWR1bXBTdWJzY3JpcHRp b25UYWJsZShmb3V0LCAoY29uc3QgU3ViUmVsSW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFrOworCQlj YXNlIERPX1ZBUklBQkxFOgorCQkJZHVtcFZhcmlhYmxlKGZvdXQsIChWYXJpYWJsZUluZm8gKikg ZG9iaik7CisJCQlicmVhazsKIAkJY2FzZSBET19QUkVfREFUQV9CT1VOREFSWToKIAkJY2FzZSBE T19QT1NUX0RBVEFfQk9VTkRBUlk6CiAJCQkvKiBuZXZlciBkdW1wZWQsIG5vdGhpbmcgdG8gZG8g Ki8KQEAgLTE0OTIzLDYgKzE1MTE1LDkgQEAgZHVtcERlZmF1bHRBQ0woQXJjaGl2ZSAqZm91dCwg Y29uc3QgRGVmYXVsdEFDTEluZm8gKmRhY2xpbmZvKQogCQljYXNlIERFRkFDTE9CSl9OQU1FU1BB Q0U6CiAJCQl0eXBlID0gIlNDSEVNQVMiOwogCQkJYnJlYWs7CisJCWNhc2UgREVGQUNMT0JKX1ZB UklBQkxFOgorCQkJdHlwZSA9ICJWQVJJQUJMRVMiOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJ CQkvKiBzaG91bGRuJ3QgZ2V0IGhlcmUgKi8KIAkJCXBnX2ZhdGFsKCJ1bnJlY29nbml6ZWQgb2Jq ZWN0IHR5cGUgaW4gZGVmYXVsdCBwcml2aWxlZ2VzOiAlZCIsCkBAIC0xODM3MCw2ICsxODU2NSw3 IEBAIGFkZEJvdW5kYXJ5RGVwZW5kZW5jaWVzKER1bXBhYmxlT2JqZWN0ICoqZG9ianMsIGludCBu dW1PYmpzLAogCQkJY2FzZSBET19DT05WRVJTSU9OOgogCQkJY2FzZSBET19UQUJMRToKIAkJCWNh c2UgRE9fVEFCTEVfQVRUQUNIOgorCQkJY2FzZSBET19WQVJJQUJMRToKIAkJCWNhc2UgRE9fQVRU UkRFRjoKIAkJCWNhc2UgRE9fUFJPQ0xBTkc6CiAJCQljYXNlIERPX0NBU1Q6CmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApp bmRleCA0YjJlNTg3MGE5Yy4uMzZhNjlhMDgzMjQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNTIsNiArNTIs NyBAQCB0eXBlZGVmIGVudW0KIAlET19UQUJMRSwKIAlET19UQUJMRV9BVFRBQ0gsCiAJRE9fQVRU UkRFRiwKKwlET19WQVJJQUJMRSwKIAlET19JTkRFWCwKIAlET19JTkRFWF9BVFRBQ0gsCiAJRE9f U1RBVFNFWFQsCkBAIC02OTIsNiArNjkzLDIzIEBAIHR5cGVkZWYgc3RydWN0IF9TdWJSZWxJbmZv CiAJY2hhcgkgICAqc3JzdWJsc247CiB9IFN1YlJlbEluZm87CiAKKy8qCisgKiBUaGUgVmFyaWFi bGVJbmZvIHN0cnVjdCBpcyB1c2VkIHRvIHJlcHJlc2VudCBzZXNzaW9uIHZhcmlhYmxlcworICov Cit0eXBlZGVmIHN0cnVjdCBfVmFyaWFibGVJbmZvCit7CisJRHVtcGFibGVPYmplY3QgZG9iajsK KwlEdW1wYWJsZUFjbCBkYWNsOworCU9pZAkJCXZhcnR5cGU7CisJY2hhcgkgICAqdmFydHlwbmFt ZTsKKwljaGFyCSAgICp2YXJhY2w7CisJY2hhcgkgICAqcnZhcmFjbDsKKwljaGFyCSAgICppbml0 dmFyYWNsOworCWNoYXIJICAgKmluaXRydmFyYWNsOworCU9pZAkJCXZhcmNvbGxhdGlvbjsKKwlj b25zdCBjaGFyICpyb2xuYW1lOwkJLyogbmFtZSBvZiBvd25lciwgb3IgZW1wdHkgc3RyaW5nICov Cit9IFZhcmlhYmxlSW5mbzsKKwogLyoKICAqCWNvbW1vbiB1dGlsaXR5IGZ1bmN0aW9ucwogICov CkBAIC03NzUsNSArNzkzLDYgQEAgZXh0ZXJuIHZvaWQgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJj aGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwKIAkJCQkJCQkJIGludCBudW1UYWJsZXMp OwogZXh0ZXJuIHZvaWQgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KTsKIGV4dGVybiB2 b2lkIGdldFN1YnNjcmlwdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0KTsKK2V4dGVybiB2b2lkIGdl dFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KTsKIAogI2VuZGlmCQkJCQkJCS8qIFBHX0RVTVBfSCAq LwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jIGIvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXBfc29ydC5jCmluZGV4IDRjYjc1NGNhYTU1Li5lYmI5YmYwMzdjOSAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wX3NvcnQuYwpAQCAtNzgsNiArNzgsNyBAQCBlbnVtIGRiT2JqZWN0VHlwZVBy aW9yaXRpZXMKIAlQUklPX0RVTU1ZX1RZUEUsCiAJUFJJT19BVFRSREVGLAogCVBSSU9fTEFSR0Vf T0JKRUNULAorCVBSSU9fVkFSSUFCTEUsCiAJUFJJT19QUkVfREFUQV9CT1VOREFSWSwJCS8qIGJv dW5kYXJ5ISAqLwogCVBSSU9fVEFCTEVfREFUQSwKIAlQUklPX1NFUVVFTkNFX1NFVCwKQEAgLTEx OSw2ICsxMjAsNyBAQCBzdGF0aWMgY29uc3QgaW50IGRiT2JqZWN0VHlwZVByaW9yaXR5W10gPQog CVtET19UQUJMRV0gPSBQUklPX1RBQkxFLAogCVtET19UQUJMRV9BVFRBQ0hdID0gUFJJT19UQUJM RV9BVFRBQ0gsCiAJW0RPX0FUVFJERUZdID0gUFJJT19BVFRSREVGLAorCVtET19WQVJJQUJMRV0g PSBQUklPX1ZBUklBQkxFLAogCVtET19JTkRFWF0gPSBQUklPX0lOREVYLAogCVtET19JTkRFWF9B VFRBQ0hdID0gUFJJT19JTkRFWF9BVFRBQ0gsCiAJW0RPX1NUQVRTRVhUXSA9IFBSSU9fU1RBVFNF WFQsCkBAIC0xNDkwLDYgKzE0OTIsMTAgQEAgZGVzY3JpYmVEdW1wYWJsZU9iamVjdChEdW1wYWJs ZU9iamVjdCAqb2JqLCBjaGFyICpidWYsIGludCBidWZzaXplKQogCQkJCQkgIlBPU1QtREFUQSBC T1VOREFSWSAgKElEICVkKSIsCiAJCQkJCSBvYmotPmR1bXBJZCk7CiAJCQlyZXR1cm47CisJCWNh c2UgRE9fVkFSSUFCTEU6CisJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCisJCQkJCSAiVkFSSUFC TEUgJXMgIChJRCAlZCBPSUQgJXUpIiwKKwkJCQkJIG9iai0+bmFtZSwgb2JqLT5kdW1wSWQsIG9i ai0+Y2F0SWQub2lkKTsKIAl9CiAJLyogc2hvdWxkbid0IGdldCBoZXJlICovCiAJc25wcmludGYo YnVmLCBidWZzaXplLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAu cGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCBkM2RkODc4NGQ2NC4u ZDYyZGIyNDIyODcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBs CisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC03ODksNiArNzg5LDE2 IEBAIG15ICV0ZXN0cyA9ICgKIAkJdW5saWtlID0+IHsgbm9fcHJpdnMgPT4gMSwgfSwKIAkgIH0s CiAKKwknQUxURVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0 X3JvbGUgR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFUyBUTyBQVUJMSUMnCisJICA9PiB7CisJCWNy ZWF0ZV9vcmRlciA9PiA1NiwKKwkJY3JlYXRlX3NxbCAgID0+ICdBTFRFUiBERUZBVUxUIFBSSVZJ TEVHRVMgRk9SIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBHUkFOVCBTRUxFQ1QgT04gVkFS SUFCTEVTIFRPIFBVQkxJQzsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFBTFRFUiBERUZBVUxU IFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBHUkFOVCBTRUxFQ1Qg T04gVkFSSUFCTEVTIFRPIFBVQkxJQztcRS94bSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNl Y3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJCXVubGlrZSA9PiB7IG5vX3ByaXZzID0+IDEsIH0s CisJICB9LAorCiAJJ0FMVEVSIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZScgPT4gewogCQly ZWdleHAgPT4gcXIvXgogCQkJXFFBTFRFUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUgV0lU SCBcRQpAQCAtMTYzOCw2ICsxNjQ4LDIzIEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJ J0NPTU1FTlQgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMScgPT4geworCQljcmVhdGVf b3JkZXIgPT4gNzEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ09NTUVOVCBPTiBWQVJJQUJMRSBkdW1w X3Rlc3QudmFyaWFibGUxCisJCQkJCSAgIElTIFwnY29tbWVudCBvbiB2YXJpYWJsZVwnOycsCisJ CXJlZ2V4cCA9PgorCQkgIHFyL15cUUNPTU1FTlQgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlh YmxlMSBJUyAnY29tbWVudCBvbiB2YXJpYWJsZSc7XEUvbSwKKwkJbGlrZSA9PiB7CisJCQklZnVs bF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEg ICAgID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hl bWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisK IAknQ09QWSB0ZXN0X3RhYmxlJyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA0LAogCQljcmVhdGVf c3FsID0+ICdJTlNFUlQgSU5UTyBkdW1wX3Rlc3QudGVzdF90YWJsZSAoY29sMSkgJwpAQCAtMzg5 Niw2ICszOTIzLDI0IEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJJ0NSRUFURSBWQVJJ QUJMRSB0ZXN0X3ZhcmlhYmxlJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9h bGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJ CWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgQVMg aW50ZWdlcjsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVkFSSUFCTEUgZHVtcF90 ZXN0LnZhcmlhYmxlMSBBUyBpbnRlZ2VyO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1 bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAx LAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEs CisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NSRUFU RSBWSUVXIHRlc3RfdmlldycgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNjEsCiAJCWNyZWF0ZV9z cWwgPT4gJ0NSRUFURSBWSUVXIGR1bXBfdGVzdC50ZXN0X3ZpZXcKQEAgLTQzNTgsNiArNDQwMywy NSBAQCBteSAldGVzdHMgPSAoCiAJCWxpa2UgPT4ge30sCiAJfSwKIAorCSdHUkFOVCBTRUxFQ1Qg T04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4g NzMsCisJCWNyZWF0ZV9zcWwgPT4KKwkJICAnR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIGR1bXBf dGVzdC52YXJpYWJsZTEgVE8gcmVncmVzc19kdW1wX3Rlc3Rfcm9sZTsnLAorCQlyZWdleHAgPT4g cXIvXgorCQkJXFFHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMSBU TyByZWdyZXNzX2R1bXBfdGVzdF9yb2xlO1xFCisJCQkveG0sCisJCWxpa2UgPT4geworCQkJJWZ1 bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRh ID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEg PT4gMSwKKwkJCW5vX3ByaXZzICAgICAgICAgICAgICAgICA9PiAxLAorCQkJb25seV9kdW1wX21l YXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdSRUZSRVNIIE1BVEVSSUFMSVpFRCBW SUVXIG1hdHZpZXcnID0+IHsKIAkJcmVnZXhwID0+IHFyL15cUVJFRlJFU0ggTUFURVJJQUxJWkVE IFZJRVcgZHVtcF90ZXN0Lm1hdHZpZXc7XEUvbSwKIAkJbGlrZSA9PgpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wc3FsL2NvbW1hbmQuYyBiL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKaW5kZXggMTgwNzgx ZWNkMDUuLjI2YTlhM2ZhYzdhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvY29tbWFuZC5jCisr KyBiL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKQEAgLTk4Niw2ICs5ODYsOSBAQCBleGVjX2NvbW1h bmRfZChQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCwgY29uc3Qg Y2hhciAqY21kKQogCQkJCQkJYnJlYWs7CiAJCQkJfQogCQkJCWJyZWFrOworCQkJY2FzZSAnVic6 CQkJLyogVmFyaWFibGVzICovCisJCQkJc3VjY2VzcyA9IGxpc3RWYXJpYWJsZXMocGF0dGVybiwg c2hvd192ZXJib3NlKTsKKwkJCQlicmVhazsKIAkJCWNhc2UgJ3gnOgkJCS8qIEV4dGVuc2lvbnMg Ki8KIAkJCQlpZiAoc2hvd192ZXJib3NlKQogCQkJCQlzdWNjZXNzID0gbGlzdEV4dGVuc2lvbkNv bnRlbnRzKHBhdHRlcm4pOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9z cmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCA3YzlhMWYyMzRjNi4uYWRmODNlZDE5NzAgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5jCkBAIC01MTQ4LDYgKzUxNDgsMTAyIEBAIGVycm9yX3JldHVybjoKIAlyZXR1cm4gZmFs c2U7CiB9CiAKKy8qCisgKiBcZFYKKyAqCisgKiBsaXN0VmFyaWFibGVzKCkKKyAqLworYm9vbAor bGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCit7CisJUFFF eHBCdWZmZXJEYXRhIGJ1ZjsKKwlQR3Jlc3VsdCAgICpyZXM7CisJcHJpbnRRdWVyeU9wdCBteW9w dCA9IHBzZXQucG9wdDsKKwlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0g e2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKworCWlm IChwc2V0LnN2ZXJzaW9uIDwgMTgwMDAwKQorCXsKKwkJY2hhcgkJc3ZlcmJ1ZlszMl07CisKKwkJ cGdfbG9nX2Vycm9yKCJUaGUgc2VydmVyICh2ZXJzaW9uICVzKSBkb2VzIG5vdCBzdXBwb3J0IHNl c3Npb24gdmFyaWFibGVzLiIsCisJCQkJCSBmb3JtYXRQR1ZlcnNpb25OdW1iZXIocHNldC5zdmVy c2lvbiwgZmFsc2UsCisJCQkJCQkJCQkJICAgc3ZlcmJ1Ziwgc2l6ZW9mKHN2ZXJidWYpKSk7CisJ CXJldHVybiB0cnVlOworCX0KKworCWluaXRQUUV4cEJ1ZmZlcigmYnVmKTsKKworCXByaW50ZlBR RXhwQnVmZmVyKCZidWYsCisJCQkJCSAgIlNFTEVDVCBuLm5zcG5hbWUgYXMgXCIlc1wiLFxuIgor CQkJCQkgICIgIHYudmFybmFtZSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5m b3JtYXRfdHlwZSh2LnZhcnR5cGUsIHYudmFydHlwbW9kKSBhcyBcIiVzXCIsXG4iCisJCQkJCSAg IiAgKFNFTEVDVCBjLmNvbGxuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xsYXRpb24gYywgcGdf Y2F0YWxvZy5wZ190eXBlIGJ0XG4iCisJCQkJCSAgIiAgIFdIRVJFIGMub2lkID0gdi52YXJjb2xs YXRpb24gQU5EIGJ0Lm9pZCA9IHYudmFydHlwZSBBTkQgdi52YXJjb2xsYXRpb24gPD4gYnQudHlw Y29sbGF0aW9uKSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNl cmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wiXG4iLAorCQkJCQkgIGdldHRleHRfbm9vcCgiU2No ZW1hIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCisJCQkJCSAgZ2V0dGV4dF9ub29w KCJUeXBlIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb2xsYXRpb24iKSwKKwkJCQkJICBnZXR0 ZXh0X25vb3AoIk93bmVyIikpOworCisJaWYgKHZlcmJvc2UpCisJeworCQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cigmYnVmLCAiLFxuICAiKTsKKwkJcHJpbnRBQ0xDb2x1bW4oJmJ1ZiwgInYudmFyYWNs Iik7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkgICIsXG4gIHBnX2NhdGFsb2cu b2JqX2Rlc2NyaXB0aW9uKHYub2lkLCAncGdfdmFyaWFibGUnKSBBUyBcIiVzXCIiLAorCQkJCQkJ ICBnZXR0ZXh0X25vb3AoIkRlc2NyaXB0aW9uIikpOworCX0KKworCWFwcGVuZFBRRXhwQnVmZmVy U3RyKCZidWYsCisJCQkJCQkgIlxuRlJPTSBwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlIHYiCisJCQkJ CQkgIlxuICAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgbiBPTiBuLm9pZCA9 IHYudmFybmFtZXNwYWNlIik7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiXG5XSEVS RSB0cnVlXG4iKTsKKwlpZiAoIXBhdHRlcm4pCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYs ICIgICAgICBBTkQgbi5uc3BuYW1lIDw+ICdwZ19jYXRhbG9nJ1xuIgorCQkJCQkJCSAiICAgICAg QU5EIG4ubnNwbmFtZSA8PiAnaW5mb3JtYXRpb25fc2NoZW1hJ1xuIik7CisKKwlpZiAoIXZhbGlk YXRlU1FMTmFtZVBhdHRlcm4oJmJ1ZiwgcGF0dGVybiwgdHJ1ZSwgZmFsc2UsCisJCQkJCQkJCSJu Lm5zcG5hbWUiLCAidi52YXJuYW1lIiwgTlVMTCwKKwkJCQkJCQkJInBnX2NhdGFsb2cucGdfdmFy aWFibGVfaXNfdmlzaWJsZSh2Lm9pZCkiLAorCQkJCQkJCQlOVUxMLCAzKSkKKwkJcmV0dXJuIGZh bHNlOworCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIk9SREVSIEJZIDEsMjsiKTsKKwor CXJlcyA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsKKwl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CisJaWYg KCFyZXMpCisJCXJldHVybiBmYWxzZTsKKworCS8qCisJICogTW9zdCBmdW5jdGlvbnMgaW4gdGhp cyBmaWxlIGFyZSBjb250ZW50IHRvIHByaW50IGFuIGVtcHR5IHRhYmxlIHdoZW4KKwkgKiB0aGVy ZSBhcmUgbm8gbWF0Y2hpbmcgb2JqZWN0cy4gIFdlIGludGVudGlvbmFsbHkgZGV2aWF0ZSBmcm9t IHRoYXQKKwkgKiBoZXJlLCBidXQgb25seSBpbiAhcXVpZXQgbW9kZSwgZm9yIGhpc3RvcmljYWwg cmVhc29ucy4KKwkgKi8KKwlpZiAoUFFudHVwbGVzKHJlcykgPT0gMCAmJiAhcHNldC5xdWlldCkK Kwl7CisJCWlmIChwYXR0ZXJuKQorCQkJcGdfbG9nX2Vycm9yKCJEaWQgbm90IGZpbmQgYW55IHNl c3Npb24gdmFyaWFibGUgbmFtZWQgXCIlc1wiLiIsCisJCQkJCQkgcGF0dGVybik7CisJCWVsc2UK KwkJCXBnX2xvZ19lcnJvcigiRGlkIG5vdCBmaW5kIGFueSBzZXNzaW9uIHZhcmlhYmxlcy4iKTsK Kwl9CisJZWxzZQorCXsKKwkJbXlvcHQubnVsbFByaW50ID0gTlVMTDsKKwkJbXlvcHQudGl0bGUg PSBfKCJMaXN0IG9mIHZhcmlhYmxlcyIpOworCQlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1 ZTsKKwkJbXlvcHQudHJhbnNsYXRlX2NvbHVtbnMgPSB0cmFuc2xhdGVfY29sdW1uczsKKwkJbXlv cHQubl90cmFuc2xhdGVfY29sdW1ucyA9IGxlbmd0aG9mKHRyYW5zbGF0ZV9jb2x1bW5zKTsKKwor CQlwcmludFF1ZXJ5KHJlcywgJm15b3B0LCBwc2V0LnF1ZXJ5Rm91dCwgZmFsc2UsIHBzZXQubG9n ZmlsZSk7CisJfQorCisJUFFjbGVhcihyZXMpOworCXJldHVybiB0cnVlOworfQogCiAvKgogICog XGRGcApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmggYi9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuaAppbmRleCAyNzNmOTc0NTM4ZS4uNGUxNWExODBlYTYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5oCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCkBAIC0x NDksNCArMTQ5LDcgQEAgZXh0ZXJuIGJvb2wgbGlzdE9wRmFtaWx5RnVuY3Rpb25zKGNvbnN0IGNo YXIgKmFjY2Vzc19tZXRob2RfcGF0dGVybiwKIC8qIFxkbCBvciBcbG9fbGlzdCAqLwogZXh0ZXJu IGJvb2wgbGlzdExhcmdlT2JqZWN0cyhib29sIHZlcmJvc2UpOwogCisvKiBcZFYgKi8KK2V4dGVy biBib29sIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2YXJib3NlKTsK KwogI2VuZGlmCQkJCQkJCS8qIERFU0NSSUJFX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNx bC9oZWxwLmMgYi9zcmMvYmluL3BzcWwvaGVscC5jCmluZGV4IDZmNThhMTEwNzQ4Li5iZGMzMjdm ZmUzMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2hlbHAuYworKysgYi9zcmMvYmluL3BzcWwv aGVscC5jCkBAIC0yNjUsNiArMjY1LDcgQEAgc2xhc2hVc2FnZSh1bnNpZ25lZCBzaG9ydCBpbnQg cGFnZXIpCiAJSEVMUDAoIiAgXFxkVFtTK10gW1BBVFRFUk5dICAgICAgbGlzdCBkYXRhIHR5cGVz XG4iKTsKIAlIRUxQMCgiICBcXGR1W1MrXSBbUEFUVEVSTl0gICAgICBsaXN0IHJvbGVzXG4iKTsK IAlIRUxQMCgiICBcXGR2W1MrXSBbUEFUVEVSTl0gICAgICBsaXN0IHZpZXdzXG4iKTsKKwlIRUxQ MCgiICBcXGRWICAgICBbUEFUVEVSTl0gICAgICBsaXN0IHNlc3Npb24gdmFyaWFibGVzXG4iKTsK IAlIRUxQMCgiICBcXGR4WytdICBbUEFUVEVSTl0gICAgICBsaXN0IGV4dGVuc2lvbnNcbiIpOwog CUhFTFAwKCIgIFxcZFggICAgIFtQQVRURVJOXSAgICAgIGxpc3QgZXh0ZW5kZWQgc3RhdGlzdGlj c1xuIik7CiAJSEVMUDAoIiAgXFxkeVsrXSAgW1BBVFRFUk5dICAgICAgbGlzdCBldmVudCB0cmln Z2Vyc1xuIik7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKaW5kZXggZDQ1M2UyMjRkOTMuLmExYWVjZjIwYjFkIDEw MDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5jCkBAIC05NjMsNiArOTYzLDEzIEBAIHN0YXRpYyBjb25zdCBTY2hlbWFR dWVyeSBRdWVyeV9mb3JfdHJpZ2dlcl9vZl90YWJsZSA9IHsKIAkucmVmbmFtZXNwYWNlID0gImMx LnJlbG5hbWVzcGFjZSIsCiB9OwogCitzdGF0aWMgY29uc3QgU2NoZW1hUXVlcnkgUXVlcnlfZm9y X2xpc3Rfb2ZfdmFyaWFibGVzID0geworCS5taW5fc2VydmVyX3ZlcnNpb24gPSAxODAwMDAsCisJ LmNhdG5hbWUgPSAicGdfY2F0YWxvZy5wZ192YXJpYWJsZSB2IiwKKwkudmlzY29uZGl0aW9uID0g InBnX2NhdGFsb2cucGdfdmFyaWFibGVfaXNfdmlzaWJsZSh2Lm9pZCkiLAorCS5uYW1lc3BhY2Ug PSAidi52YXJuYW1lc3BhY2UiLAorCS5yZXN1bHQgPSAidi52YXJuYW1lIiwKK307CiAKIC8qCiAg KiBRdWVyaWVzIHRvIGdldCBsaXN0cyBvZiBuYW1lcyBvZiB2YXJpb3VzIGtpbmRzIG9mIHRoaW5n cywgcG9zc2libHkKQEAgLTEyODMsNiArMTI5MCw3IEBAIHN0YXRpYyBjb25zdCBwZ3NxbF90aGlu Z190IHdvcmRzX2FmdGVyX2NyZWF0ZVtdID0gewogCQkJCQkJCQkJCQkJCQkJCQkJCSAqIFRBQkxF IC4uLiAqLwogCXsiVVNFUiIsIFF1ZXJ5X2Zvcl9saXN0X29mX3JvbGVzLCBOVUxMLCBOVUxMLCBL ZXl3b3Jkc19mb3JfdXNlcl90aGluZ30sCiAJeyJVU0VSIE1BUFBJTkcgRk9SIiwgTlVMTCwgTlVM TCwgTlVMTH0sCisJeyJWQVJJQUJMRSIsIE5VTEwsIE5VTEwsICZRdWVyeV9mb3JfbGlzdF9vZl92 YXJpYWJsZXN9LAogCXsiVklFVyIsIE5VTEwsIE5VTEwsICZRdWVyeV9mb3JfbGlzdF9vZl92aWV3 c30sCiAJe05VTEx9CQkJCQkJLyogZW5kIG9mIGxpc3QgKi8KIH07CkBAIC0xNzIyLDcgKzE3MzAs NyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5k KQogCQkiXFxkRiIsICJcXGRGZCIsICJcXGRGcCIsICJcXGRGdCIsICJcXGRnIiwgIlxcZGkiLCAi XFxkbCIsICJcXGRMIiwKIAkJIlxcZG0iLCAiXFxkbiIsICJcXGRvIiwgIlxcZE8iLCAiXFxkcCIs ICJcXGRQIiwgIlxcZFBpIiwgIlxcZFB0IiwKIAkJIlxcZHJkcyIsICJcXGRyZyIsICJcXGRScyIs ICJcXGRScCIsICJcXGRzIiwKLQkJIlxcZHQiLCAiXFxkVCIsICJcXGR2IiwgIlxcZHUiLCAiXFxk eCIsICJcXGRYIiwgIlxcZHkiLAorCQkiXFxkdCIsICJcXGRUIiwgIlxcZHYiLCAiXFxkdSIsICJc XGR4IiwgIlxcZFgiLCAiXFxkeSIsICJcXGRWIiwKIAkJIlxcZWNobyIsICJcXGVkaXQiLCAiXFxl ZiIsICJcXGVsaWYiLCAiXFxlbHNlIiwgIlxcZW5jb2RpbmciLAogCQkiXFxlbmRpZiIsICJcXGVy cnZlcmJvc2UiLCAiXFxldiIsCiAJCSJcXGYiLApAQCAtMjIyNCw2ICsyMjMyLDkgQEAgcHNxbF9j b21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJCQkJCQkJ CQkgICJBTEwiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJTWVNURU0iLCAiU0VUIiwg TWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJUTyIpOworCS8qIEFMVEVSIFZBUklBQkxFIDxu YW1lPiAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkp KQorCQlDT01QTEVURV9XSVRIKCJPV05FUiBUTyIsICJSRU5BTUUgVE8iLCAiU0VUIFNDSEVNQSIp OwogCS8qIEFMVEVSIFZJRVcgPG5hbWU+ICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAi VklFVyIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQUxURVIgQ09MVU1OIiwgIk9XTkVS IFRPIiwgIlJFTkFNRSIsICJSRVNFVCIsICJTRVQiKTsKQEAgLTI4MDQsNyArMjgxNSw3IEBAIHBz cWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCQkJ CSAgIlJPVVRJTkUiLCAiUlVMRSIsICJTQ0hFTUEiLCAiU0VRVUVOQ0UiLCAiU0VSVkVSIiwKIAkJ CQkJICAiU1RBVElTVElDUyIsICJTVUJTQ1JJUFRJT04iLCAiVEFCTEUiLAogCQkJCQkgICJUQUJM RVNQQUNFIiwgIlRFWFQgU0VBUkNIIiwgIlRSQU5TRk9STSBGT1IiLAotCQkJCQkgICJUUklHR0VS IiwgIlRZUEUiLCAiVklFVyIpOworCQkJCQkgICJUUklHR0VSIiwgIlRZUEUiLCAiVkFSSUFCTEUi LCAiVklFVyIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNPTU1FTlQiLCAiT04iLCAiQUNDRVNTIiwg Ik1FVEhPRCIpKQogCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2FjY2Vz c19tZXRob2RzKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDT01NRU5UIiwgIk9OIiwgIkNPTlNUUkFJ TlQiKSkKQEAgLTMyNjYsNyArMzI3Nyw3IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0 ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAvKiBDUkVBVEUgVEFCTEUgLS0tIGlzIGFsbG93ZWQg aW5zaWRlIENSRUFURSBTQ0hFTUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAqLwogCS8qIENvbXBsZXRl ICJDUkVBVEUgVEVNUC9URU1QT1JBUlkiIHdpdGggdGhlIHBvc3NpYmxlIHRlbXAgb2JqZWN0cyAq LwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiVEVNUHxURU1QT1JBUlkiKSkKLQkJ Q09NUExFVEVfV0lUSCgiU0VRVUVOQ0UiLCAiVEFCTEUiLCAiVklFVyIpOworCQlDT01QTEVURV9X SVRIKCJTRVFVRU5DRSIsICJUQUJMRSIsICJWQVJJQUJMRSIsICJWSUVXIik7CiAJLyogQ29tcGxl dGUgIkNSRUFURSBVTkxPR0dFRCIgd2l0aCBUQUJMRSwgU0VRVUVOQ0Ugb3IgTUFUVklFVyAqLwog CWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiVU5MT0dHRUQiKSkKIAl7CkBAIC0zNTg2 LDYgKzM1OTcsMTMgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFy dCwgaW50IGVuZCkKIAkJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIj0iLCBNYXRjaEFueUV4Y2VwdCgi KikiKSkpCiAJCQlDT01QTEVURV9XSVRIKCIsIiwgIikiKTsKIAl9CisvKiBDUkVBVEUgVkFSSUFC TEUgLS0tIGlzIGFsbG93ZWQgaW5zaWRlIENSRUFURSBTQ0hFTUEsIHNvIHVzZSBUYWlsTWF0Y2hl cyAqLworCS8qIENvbXBsZXRlIENSRUFURSBWQVJJQUJMRSA8bmFtZT4gd2l0aCBBUyAqLworCWVs c2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCisJCUNP TVBMRVRFX1dJVEgoIkFTIik7CisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZBUklBQkxFIiwgTWF0 Y2hBbnksICJBUyIpKQorCQkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGgg QVMgdHlwZXMgKi8KKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rf b2ZfZGF0YXR5cGVzKTsKIAogLyogQ1JFQVRFIFZJRVcgLS0tIGlzIGFsbG93ZWQgaW5zaWRlIENS RUFURSBTQ0hFTUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAqLwogCS8qIENvbXBsZXRlIENSRUFURSBb IE9SIFJFUExBQ0UgXSBWSUVXIDxuYW1lPiB3aXRoIEFTIG9yIFdJVEggKi8KQEAgLTM4NDksNiAr Mzg2NywxMiBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBp bnQgZW5kKQogCWVsc2UgaWYgKE1hdGNoZXMoIkRST1AiLCAiVFJBTlNGT1JNIiwgIkZPUiIsIE1h dGNoQW55LCAiTEFOR1VBR0UiLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIkNBU0NBREUi LCAiUkVTVFJJQ1QiKTsKIAorCS8qIERST1AgVkFSSUFCTEUgKi8KKwllbHNlIGlmIChNYXRjaGVz KCJEUk9QIiwgIlZBUklBQkxFIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5 X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyk7CisJZWxzZSBpZiAoTWF0Y2hlcygiRFJPUCIsICJWQVJJ QUJMRSIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiQ0FTQ0FERSIsICJSRVNUUklDVCIp OworCiAvKiBFWEVDVVRFICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiRVhFQ1VURSIpKQogCQlDT01Q TEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3ByZXBhcmVkX3N0YXRlbWVudHMpOwpA QCAtNDA1Miw3ICs0MDc2LDcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGlu dCBzdGFydCwgaW50IGVuZCkKIAkJICogb2JqZWN0cyBzdXBwb3J0ZWQuCiAJCSAqLwogCQlpZiAo SGVhZE1hdGNoZXMoIkFMVEVSIiwgIkRFRkFVTFQiLCAiUFJJVklMRUdFUyIpKQotCQkJQ09NUExF VEVfV0lUSCgiVEFCTEVTIiwgIlNFUVVFTkNFUyIsICJGVU5DVElPTlMiLCAiUFJPQ0VEVVJFUyIs ICJST1VUSU5FUyIsICJUWVBFUyIsICJTQ0hFTUFTIik7CisJCQlDT01QTEVURV9XSVRIKCJUQUJM RVMiLCAiU0VRVUVOQ0VTIiwgIkZVTkNUSU9OUyIsICJQUk9DRURVUkVTIiwgIlJPVVRJTkVTIiwg IlRZUEVTIiwgIlNDSEVNQVMiLCAiVkFSSUFCTEVTIik7CiAJCWVsc2UKIAkJCUNPTVBMRVRFX1dJ VEhfU0NIRU1BX1FVRVJZX1BMVVMoUXVlcnlfZm9yX2xpc3Rfb2ZfZ3JhbnRhYmxlcywKIAkJCQkJ CQkJCQkJIkFMTCBGVU5DVElPTlMgSU4gU0NIRU1BIiwKQEAgLTQwNzQsNyArNDA5OCw4IEBAIHBz cWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCQkJ CQkJCQkJCSJTRVFVRU5DRSIsCiAJCQkJCQkJCQkJCSJUQUJMRSIsCiAJCQkJCQkJCQkJCSJUQUJM RVNQQUNFIiwKLQkJCQkJCQkJCQkJIlRZUEUiKTsKKwkJCQkJCQkJCQkJIlRZUEUiLAorCQkJCQkJ CQkJCQkiVkFSSUFCTEUiKTsKIAl9CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkdSQU5UfFJFVk9L RSIsIE1hdGNoQW55LCAiT04iLCAiQUxMIikgfHwKIAkJCSBUYWlsTWF0Y2hlcygiUkVWT0tFIiwg IkdSQU5UIiwgIk9QVElPTiIsICJGT1IiLCBNYXRjaEFueSwgIk9OIiwgIkFMTCIpKQpAQCAtNDA4 Miw3ICs0MTA3LDggQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFy dCwgaW50IGVuZCkKIAkJCQkJICAiUFJPQ0VEVVJFUyBJTiBTQ0hFTUEiLAogCQkJCQkgICJST1VU SU5FUyBJTiBTQ0hFTUEiLAogCQkJCQkgICJTRVFVRU5DRVMgSU4gU0NIRU1BIiwKLQkJCQkJICAi VEFCTEVTIElOIFNDSEVNQSIpOworCQkJCQkgICJUQUJMRVMgSU4gU0NIRU1BIiwKKwkJCQkJICAi VkFSSUFCTEVTIElOIFNDSEVNQSIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFOVHxSRVZP S0UiLCBNYXRjaEFueSwgIk9OIiwgIkZPUkVJR04iKSB8fAogCQkJIFRhaWxNYXRjaGVzKCJSRVZP S0UiLCAiR1JBTlQiLCAiT1BUSU9OIiwgIkZPUiIsIE1hdGNoQW55LCAiT04iLCAiRk9SRUlHTiIp KQogCQlDT01QTEVURV9XSVRIKCJEQVRBIFdSQVBQRVIiLCAiU0VSVkVSIik7CkBAIC00MTE4LDYg KzQxNDQsOCBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBp bnQgZW5kKQogCQkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXNw YWNlcyk7CiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJUWVBFIikpCiAJCQlDT01QTEVURV9XSVRI X1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9kYXRhdHlwZXMpOworCQllbHNlIGlmIChU YWlsTWF0Y2hlcygiVkFSSUFCTEUiKSkKKwkJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1 ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyk7CiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFO VCIsIE1hdGNoQW55LCBNYXRjaEFueSwgTWF0Y2hBbnkpKQogCQkJQ09NUExFVEVfV0lUSCgiVE8i KTsKIAkJZWxzZQpAQCAtNDQyMSw3ICs0NDQ5LDcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNo YXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAogLyogUFJFUEFSRSB4eCBBUyAqLwogCWVs c2UgaWYgKE1hdGNoZXMoIlBSRVBBUkUiLCBNYXRjaEFueSwgIkFTIikpCi0JCUNPTVBMRVRFX1dJ VEgoIlNFTEVDVCIsICJVUERBVEUiLCAiSU5TRVJUIElOVE8iLCAiREVMRVRFIEZST00iKTsKKwkJ Q09NUExFVEVfV0lUSCgiU0VMRUNUIiwgIlVQREFURSIsICJJTlNFUlQgSU5UTyIsICJERUxFVEUg RlJPTSIsICJMRVQiKTsKIAogLyoKICAqIFBSRVBBUkUgVFJBTlNBQ1RJT04gaXMgbWlzc2luZyBv biBwdXJwb3NlLiBJdCdzIGludGVuZGVkIGZvciB0cmFuc2FjdGlvbgpAQCAtNDg4OSw2ICs0OTE3 LDggQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVu ZCkKIAkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9yb2xlcyk7CiAJZWxz ZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkdioiKSkKIAkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVF UlkoUXVlcnlfZm9yX2xpc3Rfb2Zfdmlld3MpOworCWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxc ZFYqIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3Zh cmlhYmxlcyk7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkeCoiKSkKIAkJQ09NUExFVEVf V0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9leHRlbnNpb25zKTsKIAllbHNlIGlmIChUYWls TWF0Y2hlc0NTKCJcXGRYKiIpKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtl ZmlsZSBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUKaW5kZXggMTY3ZjkxYTZlM2YuLjUw N2YzODA4MjE4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCisrKyBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUKQEAgLTgxLDcgKzgxLDggQEAgQ0FUQUxPR19I RUFERVJTIDo9IFwKIAlwZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UuaCBcCiAJcGdfcHVibGljYXRp b25fcmVsLmggXAogCXBnX3N1YnNjcmlwdGlvbi5oIFwKLQlwZ19zdWJzY3JpcHRpb25fcmVsLmgK KwlwZ19zdWJzY3JpcHRpb25fcmVsLmggXAorCXBnX3ZhcmlhYmxlLmgKIAogR0VORVJBVEVEX0hF QURFUlMgOj0gJChDQVRBTE9HX0hFQURFUlM6JS5oPSVfZC5oKQogCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5i dWlsZAppbmRleCBmNzBkMWRhYmE1Mi4uNmVlYzc5ZDJlZWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5i dWlsZApAQCAtNjksNiArNjksNyBAQCBjYXRhbG9nX2hlYWRlcnMgPSBbCiAgICdwZ19wdWJsaWNh dGlvbl9yZWwuaCcsCiAgICdwZ19zdWJzY3JpcHRpb24uaCcsCiAgICdwZ19zdWJzY3JpcHRpb25f cmVsLmgnLAorICAncGdfdmFyaWFibGUuaCcsCiBdCiAKICMgVGhlIC5kYXQgZmlsZXMgd2UgbmVl ZCBjYW4ganVzdCBiZSBsaXN0ZWQgYWxwaGFiZXRpY2FsbHkuCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2Uu aAppbmRleCA4ZDQzNGQ0OGQ1Ny4uNDE3MmIwY2QyNjggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvbmFtZXNwYWNlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2Uu aApAQCAtOTcsNiArOTcsOCBAQCBleHRlcm4gT2lkCVR5cGVuYW1lR2V0VHlwaWQoY29uc3QgY2hh ciAqdHlwbmFtZSk7CiBleHRlcm4gT2lkCVR5cGVuYW1lR2V0VHlwaWRFeHRlbmRlZChjb25zdCBj aGFyICp0eXBuYW1lLCBib29sIHRlbXBfb2spOwogZXh0ZXJuIGJvb2wgVHlwZUlzVmlzaWJsZShP aWQgdHlwaWQpOwogCitleHRlcm4gYm9vbCBWYXJpYWJsZUlzVmlzaWJsZShPaWQgdmFyaWQpOwor CiBleHRlcm4gRnVuY0NhbmRpZGF0ZUxpc3QgRnVuY25hbWVHZXRDYW5kaWRhdGVzKExpc3QgKm5h bWVzLAogCQkJCQkJCQkJCQkgICBpbnQgbmFyZ3MsIExpc3QgKmFyZ25hbWVzLAogCQkJCQkJCQkJ CQkgICBib29sIGV4cGFuZF92YXJpYWRpYywKQEAgLTE2OSwxMSArMTcxLDEyIEBAIGV4dGVybiBT ZWFyY2hQYXRoTWF0Y2hlciAqR2V0U2VhcmNoUGF0aE1hdGNoZXIoTWVtb3J5Q29udGV4dCBjb250 ZXh0KTsKIGV4dGVybiBTZWFyY2hQYXRoTWF0Y2hlciAqQ29weVNlYXJjaFBhdGhNYXRjaGVyKFNl YXJjaFBhdGhNYXRjaGVyICpwYXRoKTsKIGV4dGVybiBib29sIFNlYXJjaFBhdGhNYXRjaGVzQ3Vy cmVudEVudmlyb25tZW50KFNlYXJjaFBhdGhNYXRjaGVyICpwYXRoKTsKIAorZXh0ZXJuIE9pZAlM b29rdXBWYXJpYWJsZShjb25zdCBjaGFyICpuc3BuYW1lLCBjb25zdCBjaGFyICp2YXJuYW1lLCBi b29sIG1pc3Npbmdfb2spOworCiBleHRlcm4gT2lkCWdldF9jb2xsYXRpb25fb2lkKExpc3QgKmNv bGxuYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAlnZXRfY29udmVyc2lvbl9vaWQo TGlzdCAqY29ubmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJRmluZERlZmF1bHRD b252ZXJzaW9uUHJvYyhpbnQzMiBmb3JfZW5jb2RpbmcsIGludDMyIHRvX2VuY29kaW5nKTsKIAot CiAvKiBpbml0aWFsaXphdGlvbiAmIHRyYW5zYWN0aW9uIGNsZWFudXAgY29kZSAqLwogZXh0ZXJu IHZvaWQgSW5pdGlhbGl6ZVNlYXJjaFBhdGgodm9pZCk7CiBleHRlcm4gdm9pZCBBdEVPWGFjdF9O YW1lc3BhY2UoYm9vbCBpc0NvbW1pdCwgYm9vbCBwYXJhbGxlbCk7CmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2RlZmF1bHRfYWNsLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X2RlZmF1bHRfYWNsLmgKaW5kZXggZDI3MmNkZjA4YjQuLjUyOWQ1M2M2YmI2IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2RlZmF1bHRfYWNsLmgKKysrIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oCkBAIC02OCw2ICs2OCw3IEBAIE1BS0VfU1lTQ0FDSEUo REVGQUNMUk9MRU5TUE9CSiwgcGdfZGVmYXVsdF9hY2xfcm9sZV9uc3Bfb2JqX2luZGV4LCA4KTsK ICNkZWZpbmUgREVGQUNMT0JKX0ZVTkNUSU9OCQknZicgLyogZnVuY3Rpb24gKi8KICNkZWZpbmUg REVGQUNMT0JKX1RZUEUJCQknVCcgLyogdHlwZSAqLwogI2RlZmluZSBERUZBQ0xPQkpfTkFNRVNQ QUNFCQknbicgLyogbmFtZXNwYWNlICovCisjZGVmaW5lIERFRkFDTE9CSl9WQVJJQUJMRQkJJ1Yn IC8qIHZhcmlhYmxlICovCiAKICNlbmRpZgkJCQkJCQkvKiBFWFBPU0VfVE9fQ0xJRU5UX0NPREUg Ki8KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggNzNkOWNmODU4MjYuLjY0NGJlYjkwNDMy IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTY0NDUsNiArNjQ0NSw5IEBACiAgIHByb25h bWUgPT4gJ3BnX2NvbGxhdGlvbl9pc192aXNpYmxlJywgcHJvY29zdCA9PiAnMTAnLCBwcm92b2xh dGlsZSA9PiAncycsCiAgIHByb3JldHR5cGUgPT4gJ2Jvb2wnLCBwcm9hcmd0eXBlcyA9PiAnb2lk JywKICAgcHJvc3JjID0+ICdwZ19jb2xsYXRpb25faXNfdmlzaWJsZScgfSwKK3sgb2lkID0+ICc5 MjIxJywgZGVzY3IgPT4gJ2lzIHNlc3Npb24gdmFyaWFibGUgdmlzaWJsZSBpbiBzZWFyY2ggcGF0 aD8nLAorICBwcm9uYW1lID0+ICdwZ192YXJpYWJsZV9pc192aXNpYmxlJywgcHJvY29zdCA9PiAn MTAnLCBwcm92b2xhdGlsZSA9PiAncycsCisgIHByb3JldHR5cGUgPT4gJ2Jvb2wnLCBwcm9hcmd0 eXBlcyA9PiAnb2lkJywgcHJvc3JjID0+ICdwZ192YXJpYWJsZV9pc192aXNpYmxlJyB9LAogCiB7 IG9pZCA9PiAnMjg1NCcsIGRlc2NyID0+ICdnZXQgT0lEIG9mIGN1cnJlbnQgc2Vzc2lvblwncyB0 ZW1wIHNjaGVtYSwgaWYgYW55JywKICAgcHJvbmFtZSA9PiAncGdfbXlfdGVtcF9zY2hlbWEnLCBw cm92b2xhdGlsZSA9PiAncycsIHByb3BhcmFsbGVsID0+ICdyJywKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFy aWFibGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTBmYmE4MDU4 NDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgK QEAgLTAsMCArMSw4MSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfdmFyaWFibGUu aAorICoJICBkZWZpbml0aW9uIG9mIHNlc3Npb24gdmFyaWFibGVzIHN5c3RlbSBjYXRhbG9nIChw Z192YXJpYWJsZXMpCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0 LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAq CisgKiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKKyAqCisgKiBOT1RFUworICoJ ICBUaGUgQ2F0YWxvZy5wbSBtb2R1bGUgcmVhZHMgdGhpcyBmaWxlIGFuZCBkZXJpdmVzIHNjaGVt YQorICoJICBpbmZvcm1hdGlvbi4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRl ZiBQR19WQVJJQUJMRV9ICisjZGVmaW5lIFBHX1ZBUklBQkxFX0gKKworI2luY2x1ZGUgImNhdGFs b2cvZ2VuYmtpLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRyZXNzLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ192YXJpYWJsZV9kLmgiCisjaW5jbHVkZSAidXRpbHMvYWNsLmgiCisKKy8q IC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlwZ192YXJpYWJsZSBkZWZpbml0aW9uLiAgY3BwIHR1cm5z IHRoaXMgaW50bworICoJCXR5cGVkZWYgc3RydWN0IEZvcm1EYXRhX3BnX3ZhcmlhYmxlCisgKiAt LS0tLS0tLS0tLS0tLS0tCisgKi8KK0NBVEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJpYWJsZVJl bGF0aW9uSWQpCit7CisJT2lkCQkJb2lkOwkJCS8qIG9pZCAqLworCisJLyogT0lEIG9mIGVudHJ5 IGluIHBnX3R5cGUgZm9yIHZhcmlhYmxlJ3MgdHlwZSAqLworCU9pZAkJCXZhcnR5cGUgQktJX0xP T0tVUChwZ190eXBlKTsKKworCS8qIHZhcmlhYmxlIG5hbWUgKi8KKwlOYW1lRGF0YQl2YXJuYW1l OworCisJLyogT0lEIG9mIG5hbWVzcGFjZSBjb250YWluaW5nIHZhcmlhYmxlIGNsYXNzICovCisJ T2lkCQkJdmFybmFtZXNwYWNlIEJLSV9MT09LVVAocGdfbmFtZXNwYWNlKTsKKworCS8qIHZhcmlh YmxlIG93bmVyICovCisJT2lkCQkJdmFyb3duZXIgQktJX0xPT0tVUChwZ19hdXRoaWQpOworCisJ LyogdHlwbW9kIGZvciB2YXJpYWJsZSdzIHR5cGUgKi8KKwlpbnQzMgkJdmFydHlwbW9kIEJLSV9E RUZBVUxUKC0xKTsKKworCS8qIHZhcmlhYmxlIGNvbGxhdGlvbiAqLworCU9pZAkJCXZhcmNvbGxh dGlvbiBCS0lfREVGQVVMVCgwKSBCS0lfTE9PS1VQX09QVChwZ19jb2xsYXRpb24pOworCisKKyNp ZmRlZiBDQVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVy ZSAqLworCisJLyogYWNjZXNzIHBlcm1pc3Npb25zICovCisJYWNsaXRlbQkJdmFyYWNsWzFdIEJL SV9ERUZBVUxUKF9udWxsXyk7CisKKyNlbmRpZgorfSBGb3JtRGF0YV9wZ192YXJpYWJsZTsKKwor LyogLS0tLS0tLS0tLS0tLS0tLQorICoJCUZvcm1fcGdfdmFyaWFibGUgY29ycmVzcG9uZHMgdG8g YSBwb2ludGVyIHRvIGEgdHVwbGUgd2l0aAorICoJCXRoZSBmb3JtYXQgb2YgcGdfdmFyaWFibGUg cmVsYXRpb24uCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgRm9ybURhdGFfcGdf dmFyaWFibGUgKkZvcm1fcGdfdmFyaWFibGU7CisKK0RFQ0xBUkVfVE9BU1QocGdfdmFyaWFibGUs IDkyMjMsIDkyMjQpOworCitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBnX3ZhcmlhYmxlX29p ZF9pbmRleCwgOTIyNSwgVmFyaWFibGVPaWRJbmRleElkLCBwZ192YXJpYWJsZSwgYnRyZWUob2lk IG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX3ZhcmlhYmxlX3Zhcm5hbWVfbnNw X2luZGV4LCA5MjI2LCBWYXJpYWJsZU5hbWVOc3BJbmRleElkLCBwZ192YXJpYWJsZSwgYnRyZWUo dmFybmFtZSBuYW1lX29wcywgdmFybmFtZXNwYWNlIG9pZF9vcHMpKTsKKworZXh0ZXJuIE9iamVj dEFkZHJlc3MgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCQkJQ3Jl YXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpOworZXh0ZXJuIHZvaWQgRHJvcFZhcmlhYmxlQnlJZChP aWQgdmFyaWQpOworCitNQUtFX1NZU0NBQ0hFKFZBUklBQkxFTkFNRU5TUCwgcGdfdmFyaWFibGVf dmFybmFtZV9uc3BfaW5kZXgsIDgpOworTUFLRV9TWVNDQUNIRShWQVJJQUJMRU9JRCwgcGdfdmFy aWFibGVfb2lkX2luZGV4LCA4KTsKKworI2VuZGlmCQkJCQkJCS8qIFBHX1ZBUklBQkxFX0ggKi8K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA4NWE2MmI1MzhlNS4uODBlYTU5MjhlZWYgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTIzMDksNiArMjMwOSw3IEBAIHR5cGVkZWYgZW51bSBPYmpl Y3RUeXBlCiAJT0JKRUNUX1RTVEVNUExBVEUsCiAJT0JKRUNUX1RZUEUsCiAJT0JKRUNUX1VTRVJf TUFQUElORywKKwlPQkpFQ1RfVkFSSUFCTEUsCiAJT0JKRUNUX1ZJRVcsCiB9IE9iamVjdFR5cGU7 CiAKQEAgLTM0MjUsNiArMzQyNiwyMSBAQCB0eXBlZGVmIHN0cnVjdCBBbHRlclN0YXRzU3RtdAog CWJvb2wJCW1pc3Npbmdfb2s7CQkvKiBza2lwIGVycm9yIGlmIHN0YXRpc3RpY3Mgb2JqZWN0IGlz IG1pc3NpbmcgKi8KIH0gQWx0ZXJTdGF0c1N0bXQ7CiAKKworLyogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICoJCXtDcmVhdGV8QWx0ZXJ9IFZBUklBQkxFIFN0YXRlbWVudAorICogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBDcmVhdGVTZXNzaW9uVmFyU3RtdAor eworCU5vZGVUYWcJCXR5cGU7CisJUmFuZ2VWYXIgICAqdmFyaWFibGU7CQkvKiB0aGUgdmFyaWFi bGUgdG8gY3JlYXRlICovCisJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0aGUgdHlwZSBvZiB2 YXJpYWJsZSAqLworCUNvbGxhdGVDbGF1c2UgKmNvbGxDbGF1c2U7CisJYm9vbAkJaWZfbm90X2V4 aXN0czsJLyogZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cyAqLworfSBDcmVhdGVTZXNz aW9uVmFyU3RtdDsKKworCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJQ3JlYXRlIEZ1 bmN0aW9uIFN0YXRlbWVudAogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5o CmluZGV4IGY3ZmU4MzRjZjQ1Li5jODg0Y2Q1YzQ2NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv cGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApAQCAtNDg2 LDYgKzQ4Niw4IEBAIFBHX0tFWVdPUkQoInZhbGlkYXRvciIsIFZBTElEQVRPUiwgVU5SRVNFUlZF RF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFsdWUiLCBWQUxVRV9QLCBVTlJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YWx1ZXMiLCBWQUxVRVMs IENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJjaGFyIiwgVkFS Q0hBUiwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInZhcmlhYmxl IiwgVkFSSUFCTEUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQo InZhcmlhYmxlcyIsIFZBUklBQkxFUywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQog UEdfS0VZV09SRCgidmFyaWFkaWMiLCBWQVJJQURJQywgUkVTRVJWRURfS0VZV09SRCwgQkFSRV9M QUJFTCkKIFBHX0tFWVdPUkQoInZhcnlpbmciLCBWQVJZSU5HLCBVTlJFU0VSVkVEX0tFWVdPUkQs IEFTX0xBQkVMKQogUEdfS0VZV09SRCgidmVyYm9zZSIsIFZFUkJPU0UsIFRZUEVfRlVOQ19OQU1F X0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRh Z2xpc3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCmluZGV4IDdmZGNlYzZkZDkz Li45NDY1ZGY3YjJmZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgK KysrIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKQEAgLTY4LDYgKzY4LDcgQEAgUEdf Q01EVEFHKENNRFRBR19BTFRFUl9UUkFOU0ZPUk0sICJBTFRFUiBUUkFOU0ZPUk0iLCB0cnVlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1RSSUdHRVIsICJBTFRFUiBUUklH R0VSIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9UWVBFLCAi QUxURVIgVFlQRSIsIHRydWUsIHRydWUsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9V U0VSX01BUFBJTkcsICJBTFRFUiBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCitQ R19DTURUQUcoQ01EVEFHX0FMVEVSX1ZBUklBQkxFLCAiQUxURVIgVkFSSUFCTEUiLCB0cnVlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1ZJRVcsICJBTFRFUiBWSUVXIiwg dHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTkFMWVpFLCAiQU5BTFlaRSIs IGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0JFR0lOLCAiQkVHSU4iLCBm YWxzZSwgZmFsc2UsIGZhbHNlKQpAQCAtMTIzLDYgKzEyNCw3IEBAIFBHX0NNRFRBRyhDTURUQUdf Q1JFQVRFX1RSQU5TRk9STSwgIkNSRUFURSBUUkFOU0ZPUk0iLCB0cnVlLCBmYWxzZSwgZmFsc2Up CiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9UUklHR0VSLCAiQ1JFQVRFIFRSSUdHRVIiLCB0cnVl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9UWVBFLCAiQ1JFQVRFIFRZ UEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9VU0VSX01B UFBJTkcsICJDUkVBVEUgVVNFUiBNQVBQSU5HIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01E VEFHKENNRFRBR19DUkVBVEVfVkFSSUFCTEUsICJDUkVBVEUgVkFSSUFCTEUiLCB0cnVlLCBmYWxz ZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9WSUVXLCAiQ1JFQVRFIFZJRVciLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RFQUxMT0NBVEUsICJERUFMTE9D QVRFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfREVBTExPQ0FURV9B TEwsICJERUFMTE9DQVRFIEFMTCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCkBAIC0xNzUsNiArMTc3 LDcgQEAgUEdfQ01EVEFHKENNRFRBR19EUk9QX1RSQU5TRk9STSwgIkRST1AgVFJBTlNGT1JNIiwg dHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1RSSUdHRVIsICJEUk9Q IFRSSUdHRVIiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfVFlQ RSwgIkRST1AgVFlQRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJP UF9VU0VSX01BUFBJTkcsICJEUk9QIFVTRVIgTUFQUElORyIsIHRydWUsIGZhbHNlLCBmYWxzZSkK K1BHX0NNRFRBRyhDTURUQUdfRFJPUF9WQVJJQUJMRSwgIkRST1AgVkFSSUFCTEUiLCB0cnVlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfVklFVywgIkRST1AgVklFVyIsIHRy dWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRVhFQ1VURSwgIkVYRUNVVEUiLCBm YWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19FWFBMQUlOLCAiRVhQTEFJTiIs IGZhbHNlLCBmYWxzZSwgZmFsc2UpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9hY2wu aCBiL3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oCmluZGV4IDczMWQ4NGIyYTkzLi45OGFhYjk4MjI5 ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKKysrIGIvc3JjL2luY2x1ZGUv dXRpbHMvYWNsLmgKQEAgLTE2OSw2ICsxNjksNyBAQCB0eXBlZGVmIHN0cnVjdCBBcnJheVR5cGUg QWNsOwogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19TQ0hFTUEJCShBQ0xfVVNBR0V8QUNMX0NSRUFU RSkKICNkZWZpbmUgQUNMX0FMTF9SSUdIVFNfVEFCTEVTUEFDRQkoQUNMX0NSRUFURSkKICNkZWZp bmUgQUNMX0FMTF9SSUdIVFNfVFlQRQkJCShBQ0xfVVNBR0UpCisjZGVmaW5lIEFDTF9BTExfUklH SFRTX1ZBUklBQkxFCQkoQUNMX1NFTEVDVHxBQ0xfVVBEQVRFKQogCiAvKiBvcGVyYXRpb24gY29k ZXMgZm9yIHBnXypfYWNsbWFzayAqLwogdHlwZWRlZiBlbnVtCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS91dGlscy9sc3lzY2FjaGUuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCmlu ZGV4IDIwNDQ2ZjZmODM2Li44YTM2ODRlNzExZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRp bHMvbHN5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKQEAgLTEz NCw2ICsxMzQsNyBAQCBleHRlcm4gY2hhciBnZXRfZnVuY19wcm9raW5kKE9pZCBmdW5jaWQpOwog ZXh0ZXJuIGJvb2wgZ2V0X2Z1bmNfbGVha3Byb29mKE9pZCBmdW5jaWQpOwogZXh0ZXJuIFJlZ1By b2NlZHVyZSBnZXRfZnVuY19zdXBwb3J0KE9pZCBmdW5jaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmVs bmFtZV9yZWxpZChjb25zdCBjaGFyICpyZWxuYW1lLCBPaWQgcmVsbmFtZXNwYWNlKTsKK2V4dGVy biBPaWQJZ2V0X3Zhcm5hbWVfdmFyaWQoY29uc3QgY2hhciAqdmFybmFtZSwgT2lkIHZhcm5hbWVz cGFjZSk7CiBleHRlcm4gY2hhciAqZ2V0X3JlbF9uYW1lKE9pZCByZWxpZCk7CiBleHRlcm4gT2lk CWdldF9yZWxfbmFtZXNwYWNlKE9pZCByZWxpZCk7CiBleHRlcm4gT2lkCWdldF9yZWxfdHlwZV9p ZChPaWQgcmVsaWQpOwpAQCAtMjA2LDYgKzIwNywxNCBAQCBleHRlcm4gY2hhciAqZ2V0X3B1Ymxp Y2F0aW9uX25hbWUoT2lkIHB1YmlkLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAlnZXRf c3Vic2NyaXB0aW9uX29pZChjb25zdCBjaGFyICpzdWJuYW1lLCBib29sIG1pc3Npbmdfb2spOwog ZXh0ZXJuIGNoYXIgKmdldF9zdWJzY3JpcHRpb25fbmFtZShPaWQgc3ViaWQsIGJvb2wgbWlzc2lu Z19vayk7CiAKK2V4dGVybiBjaGFyICpnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKE9pZCB2YXJp ZCk7CitleHRlcm4gT2lkCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShPaWQgdmFyaWQp OworZXh0ZXJuIE9pZAlnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlKE9pZCB2YXJpZCk7CitleHRl cm4gdm9pZCBnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQoT2lkIHZhcmlk LAorCQkJCQkJCQkJCQkJCU9pZCAqdHlwaWQsCisJCQkJCQkJCQkJCQkJaW50MzIgKnR5cG1vZCwK KwkJCQkJCQkJCQkJCQlPaWQgKmNvbGxpZCk7CisKICNkZWZpbmUgdHlwZV9pc19hcnJheSh0eXBp ZCkgIChnZXRfZWxlbWVudF90eXBlKHR5cGlkKSAhPSBJbnZhbGlkT2lkKQogLyogdHlwZV9pc19h cnJheV9kb21haW4gYWNjZXB0cyBib3RoIHBsYWluIGFycmF5cyBhbmQgZG9tYWlucyBvdmVyIGFy cmF5cyAqLwogI2RlZmluZSB0eXBlX2lzX2FycmF5X2RvbWFpbih0eXBpZCkgIChnZXRfYmFzZV9l bGVtZW50X3R5cGUodHlwaWQpICE9IEludmFsaWRPaWQpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9kZXBlbmRlbmN5Lm91dAppbmRleCA3NGQ5ZmYyOTk4ZC4uNjhkY2E5ZWMwZDkgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5Lm91dApAQCAtMTUxLDMgKzE1MSwxOSBAQCBv d25lciBvZiB0eXBlIGRlcHRlc3RfdAogRFJPUCBPV05FRCBCWSByZWdyZXNzX2RlcF91c2VyMiwg cmVncmVzc19kZXBfdXNlcjA7CiBEUk9QIFVTRVIgcmVncmVzc19kZXBfdXNlcjI7CiBEUk9QIFVT RVIgcmVncmVzc19kZXBfdXNlcjA7CistLSBkZXBlbmRlbmN5IG9uIHR5cGUKK0NSRUFURSBET01B SU4gdmFyZG9tYWluIEFTIGludDsKK0NSRUFURSBUWVBFIHZhcnR5cGUgQVMgKGEgaW50LCBiIGlu dCwgYyB2YXJkb21haW4pOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFydHlwZTsKKy0tIHNo b3VsZCB0byBmYWlsCitEUk9QIERPTUFJTiB2YXJkb21haW47CitFUlJPUjogIGNhbm5vdCBkcm9w IHR5cGUgdmFyZG9tYWluIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJ TDogIGNvbHVtbiBjIG9mIGNvbXBvc2l0ZSB0eXBlIHZhcnR5cGUgZGVwZW5kcyBvbiB0eXBlIHZh cmRvbWFpbgorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVu dCBvYmplY3RzIHRvby4KK0RST1AgVFlQRSB2YXJ0eXBlOworRVJST1I6ICBjYW5ub3QgZHJvcCB0 eXBlIHZhcnR5cGUgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAg c2Vzc2lvbiB2YXJpYWJsZSB2YXIxIGRlcGVuZHMgb24gdHlwZSB2YXJ0eXBlCitISU5UOiAgVXNl IERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorRFJP UCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBFIHZhcnR5cGU7CitEUk9QIERPTUFJTiB2YXJkb21h aW47CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0CmluZGV4IDIxNWViODk5YmUz Li5kOTk1MzMyMTQwMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRq b2lucy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKQEAg LTI2NiwzICsyNjYsNyBAQCBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb24ge3N1YmRi aWR9ID0+IHBnX2RhdGFiYXNlIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRp b24ge3N1Ym93bmVyfSA9PiBwZ19hdXRoaWQge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1 YnNjcmlwdGlvbl9yZWwge3Nyc3ViaWR9ID0+IHBnX3N1YnNjcmlwdGlvbiB7b2lkfQogTk9USUNF OiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uX3JlbCB7c3JyZWxpZH0gPT4gcGdfY2xhc3Mge29p ZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3ZhcmlhYmxlIHt2YXJ0eXBlfSA9PiBwZ190eXBlIHtv aWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJpYWJsZSB7dmFybmFtZXNwYWNlfSA9PiBwZ19u YW1lc3BhY2Uge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3ZhcmlhYmxlIHt2YXJvd25lcn0g PT4gcGdfYXV0aGlkIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJpYWJsZSB7dmFyY29s bGF0aW9ufSA9PiBwZ19jb2xsYXRpb24ge29pZH0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0 CmluZGV4IDNiYmU0YzVmOTc0Li5jODkwNjc0OTBmNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Bz cWwub3V0CkBAIC01ODI4LDYgKzU4MjgsMzAgQEAgQ09NTUlUOwogIyBmaW5hbCBPTl9FUlJPUl9S T0xMQkFDSzogb2ZmCiBEUk9QIFRBQkxFIGJsYTsKIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsK Ky0tIHNlc3Npb24gdmFyaWFibGUgdGVzdAorQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9v d25lcjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOworXGRWKyB2YXIxCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1h IHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAg ICAgICAgICB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcHVibGljIHwgdmFyMSB8IGNo YXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAg ICAgICAgICAgICAgICAgIHwgCisoMSByb3cpCisKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2 YXIxIFRPIFBVQkxJQzsKK0NPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlw dGlvbic7CitcZFYrIHZhcjEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1l IHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAg IHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgICBE ZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2 YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293 bmVyIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wg c29tZSBkZXNjcmlwdGlvbgorICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNzX3ZhcmlhYmxlX293 bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2 YXIxOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293 bmVyOwogLS0gY2hlY2sgZGVzY3JpYmluZyBpbnZhbGlkIG11bHRpcGFydCBuYW1lcwogXGRBIHJl Z3Jlc3Npb24uaGVhcAogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBu YW1lcyk6IHJlZ3Jlc3Npb24uaGVhcApAQCAtNjA0OSw2ICs2MDczLDEyIEBAIGNyb3NzLWRhdGFi YXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogbm9uZXN1Y2gucHVibGljLmZ1bmNf ZGVwc19zdGF0CiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVz KTogcmVncmVzc2lvbi5teWV2dAogXGR5IG5vbmVzdWNoLm15ZXZ0CiBpbXByb3BlciBxdWFsaWZp ZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogbm9uZXN1Y2gubXlldnQKK1xkViBob3N0 LnJlZ3Jlc3Npb24ucHVibGljLnZhcgoraW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55 IGRvdHRlZCBuYW1lcyk6IGhvc3QucmVncmVzc2lvbi5wdWJsaWMudmFyCitcZFYgcmVncmVzc2lv bnxteWRiLnB1YmxpYy52YXIKK2Nyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBs ZW1lbnRlZDogcmVncmVzc2lvbnxteWRiLnB1YmxpYy52YXIKK1xkViBub25lc3VjaC5wdWJsaWMu dmFyCitjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IG5vbmVz dWNoLnB1YmxpYy52YXIKIC0tIGNoZWNrIHRoYXQgZG90cyB3aXRoaW4gcXVvdGVkIG5hbWUgc2Vn bWVudHMgYXJlIG5vdCBjb3VudGVkCiBcZEEgIm5vLnN1Y2guYWNjZXNzLm1ldGhvZCIKIExpc3Qg b2YgYWNjZXNzIG1ldGhvZHMKQEAgLTYyODMsNiArNjMxMywxMiBAQCBMaXN0IG9mIHNjaGVtYXMK IC0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tCiAoMCBy b3dzKQogCitcZFYgIm5vLnN1Y2gudmFyaWFibGUiCisgICAgICAgICAgICBMaXN0IG9mIHZhcmlh YmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgCistLS0tLS0t LSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKygwIHJvd3MpCisKIC0tIGFnYWlu LCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGRBICJuby5zdWNoLnNj aGVtYSIuIm5vLnN1Y2guYWNjZXNzLm1ldGhvZCIKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0 b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmFjY2Vzcy5t ZXRob2QiCkBAIC02NDUyLDYgKzY0ODgsMTIgQEAgaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRv byBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guaW5zdGEKIAog XGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIGltcHJvcGVyIHF1 YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJu by5zdWNoLmV2ZW50LnRyaWdnZXIiCitcZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJp YWJsZSIKKyAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5 cGUgfCBDb2xsYXRpb24gfCBPd25lciAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLQorKDAgcm93cykKKwogLS0gYWdhaW4sIGJ1dCB3aXRoIGN1cnJlbnQgZGF0YWJh c2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZHQgcmVncmVzc2lvbi4ibm8u c3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0aW9uIgogICAgICAgTGlzdCBvZiByZWxh dGlvbnMKQEAgLTY1ODUsNiArNjYyNywxMiBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRl cwogLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LSstLS0tLQogKDAgcm93cykKIAorXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC52YXJpYWJsZSIKKyAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwg TmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLQorKDAgcm93cykKKwogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRl ZCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkdCAibm8uc3Vj aC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKIGNy b3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0 YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24iCkBAIC02NjMy LDYgKzY2ODAsOCBAQCBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50 ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbQogY3Jvc3MtZGF0YWJhc2UgcmVm ZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2gu c2NoZW1hIi4ibm8uc3VjaC5kYXRhLnR5cGUiCiBcZFggIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5z dWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKIGNyb3NzLWRhdGFiYXNl IHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5z dWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKK1xkViAibm8uc3VjaC5k YXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKK2Nyb3NzLWRhdGFi YXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJu by5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCiAtLSBjaGVjayBcZHJnIGFuZCBcZHUK IENSRUFURSBST0xFIHJlZ3Jlc3NfZHVfcm9sZTA7CiBDUkVBVEUgUk9MRSByZWdyZXNzX2R1X3Jv bGUxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWNhNzY2MDQyZGIKLS0t IC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzLm91dApAQCAtMCwwICsxLDU3IEBACitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293 bmVyOworLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CistLSBz aG91bGQgZmFpbCwgcHNldWRvdHlwZXMgYXJlIG5vdCBhbGxvd2VkCitDUkVBVEUgVkFSSUFCTEUg dmFyMiBBUyBhbnllbGVtZW50OworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSBw c2V1ZG8tdHlwZSBhbnllbGVtZW50CistLSBzaG91bGQgYmUgb2ssIGRvIG5vdGhpbmcKK0RST1Ag VkFSSUFCTEUgSUYgRVhJU1RTIHZhcjI7CitOT1RJQ0U6ICBzZXNzaW9uIHZhcmlhYmxlICJ2YXIy IiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcKKy0tIGRvIG5vdGhpbmcKK0NSRUFURSBWQVJJQUJM RSBJRiBOT1QgRVhJU1RTIHZhcjEgQVMgaW50OworTk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJsZSAi dmFyMSIgYWxyZWFkeSBleGlzdHMsIHNraXBwaW5nCistLSBzaG91bGQgZmFpbAorQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgaW50OworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJ2YXIxIiBhbHJl YWR5IGV4aXN0cworLS0gc2hvdWxkIGJlIG9rCitEUk9QIFZBUklBQkxFIElGIEVYSVNUUyB2YXIx OworLS0gY2hlY2sgY29tbWVudCBvbiB2YXJpYWJsZQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg aW50OworQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIHZhcmlhYmxlIGNvbW1lbnQn OworU0VMRUNUIHBnX2NhdGFsb2cub2JqX2Rlc2NyaXB0aW9uKG9pZCwgJ3BnX3ZhcmlhYmxlJykg RlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworICAgIG9ial9kZXNjcmlw dGlvbiAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgc29tZSB2YXJpYWJsZSBjb21tZW50 CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tLSBjaGVjayBhY2Nlc3MgcmlnaHRz IGFuZCBzdXBwb3J0ZWQgQUxURVIKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Q7CitHUkFOVCBBTEwg T04gU0NIRU1BIHN2YXJ0ZXN0IFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFS SUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxl X3JlYWRlcjsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBzdmFydGVzdC52YXIxIFRPIHJlZ3Jl c3NfdmFyaWFibGVfcmVhZGVyOworUkVWT0tFIEFMTCBPTiBWQVJJQUJMRSBzdmFydGVzdC52YXIx IEZST00gcmVncmVzc192YXJpYWJsZV9yZWFkZXI7CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52 YXIxIE9XTkVSIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitBTFRFUiBWQVJJQUJMRSBzdmFy dGVzdC52YXIxIFJFTkFNRSBUTyB2YXJ4eDsKK0FMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcnh4 IFNFVCBTQ0hFTUEgcHVibGljOworRFJPUCBWQVJJQUJMRSBwdWJsaWMudmFyeHg7CitBTFRFUiBE RUZBVUxUIFBSSVZJTEVHRVMKKyAgIEZPUiBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIKKyAg IElOIFNDSEVNQSBzdmFydGVzdAorICAgR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFUyBUTyByZWdy ZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKy0tIGNyZWF0aW5nIHZhcmlhYmxlIHdpdGggZGVmYXVsdCBw cml2aWxlZ2VzCitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZB UklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50OworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1xkVisg c3ZhcnRlc3QudmFyMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworICBTY2hlbWEgIHwgTmFtZSB8ICBUeXBl ICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgICAgICAgICAgICAgICAg QWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gCistLS0tLS0t LS0tKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0KKyBzdmFydGVzdCB8IHZhcjEgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgcmVncmVz c192YXJpYWJsZV9vd25lciB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJp YWJsZV9vd25lcit8IAorICAgICAgICAgIHwgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9yZWFkZXI9ci9yZWdyZXNz X3ZhcmlhYmxlX293bmVyIHwgCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFy MTsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0OworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3Jj L3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQppbmRleCAyNDI5ZWMyYmJhYS4uZWQ2ODkz ZDQ3OTYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAtMTExLDcgKzExMSw3IEBA IHRlc3Q6IGpzb24ganNvbmIganNvbl9lbmNvZGluZyBqc29ucGF0aCBqc29ucGF0aF9lbmNvZGlu ZyBqc29uYl9qc29ucGF0aCBzcWxqc29uCiAjIE5COiB0ZW1wLnNxbCBkb2VzIGEgcmVjb25uZWN0 IHdoaWNoIHRyYW5zaWVudGx5IHVzZXMgMiBjb25uZWN0aW9ucywKICMgc28ga2VlcCB0aGlzIHBh cmFsbGVsIGdyb3VwIHRvIGF0IG1vc3QgMTkgdGVzdHMKICMgLS0tLS0tLS0tLQotdGVzdDogcGxh bmNhY2hlIGxpbWl0IHBscGdzcWwgY29weTIgdGVtcCBkb21haW4gcmFuZ2VmdW5jcyBwcmVwYXJl IGNvbnZlcnNpb24gdHJ1bmNhdGUgYWx0ZXJfdGFibGUgc2VxdWVuY2UgcG9seW1vcnBoaXNtIHJv d3R5cGVzIHJldHVybmluZyBsYXJnZW9iamVjdCB3aXRoIHhtbAordGVzdDogcGxhbmNhY2hlIGxp bWl0IHBscGdzcWwgY29weTIgdGVtcCBkb21haW4gcmFuZ2VmdW5jcyBwcmVwYXJlIGNvbnZlcnNp b24gdHJ1bmNhdGUgYWx0ZXJfdGFibGUgc2VxdWVuY2UgcG9seW1vcnBoaXNtIHJvd3R5cGVzIHJl dHVybmluZyBsYXJnZW9iamVjdCB3aXRoIHhtbCBzZXNzaW9uX3ZhcmlhYmxlcwogCiAjIC0tLS0t LS0tLS0KICMgQW5vdGhlciBncm91cCBvZiBwYXJhbGxlbCB0ZXN0cwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvZGVwZW5kZW5jeS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9k ZXBlbmRlbmN5LnNxbAppbmRleCA4ZDc0ZWQ3MTIyYy4uZjI0ZGY5YTc4ODYgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3kuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2RlcGVuZGVuY3kuc3FsCkBAIC0xMTQsMyArMTE0LDE2IEBAIERST1AgVVNFUiByZWdy ZXNzX2RlcF91c2VyMjsKIERST1AgT1dORUQgQlkgcmVncmVzc19kZXBfdXNlcjIsIHJlZ3Jlc3Nf ZGVwX3VzZXIwOwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIyOwogRFJPUCBVU0VSIHJlZ3Jl c3NfZGVwX3VzZXIwOworCistLSBkZXBlbmRlbmN5IG9uIHR5cGUKK0NSRUFURSBET01BSU4gdmFy ZG9tYWluIEFTIGludDsKK0NSRUFURSBUWVBFIHZhcnR5cGUgQVMgKGEgaW50LCBiIGludCwgYyB2 YXJkb21haW4pOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFydHlwZTsKKworLS0gc2hvdWxk IHRvIGZhaWwKK0RST1AgRE9NQUlOIHZhcmRvbWFpbjsKK0RST1AgVFlQRSB2YXJ0eXBlOworCitE Uk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdmFydHlwZTsKK0RST1AgRE9NQUlOIHZhcmRv bWFpbjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvcHNxbC5zcWwKaW5kZXggM2IzYzZmNmUyOTQuLmI4MGQ1NmEyN2FmIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9wc3FsLnNxbApAQCAtMTU5MSw2ICsxNTkxLDE5IEBAIENPTU1JVDsKIERST1Ag VEFCTEUgYmxhOwogRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogCistLSBzZXNzaW9uIHZhcmlh YmxlIHRlc3QKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitTRVQgUk9MRSBU TyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hh ciBDT0xMQVRFICJDIjsKK1xkVisgdmFyMQorR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEg VE8gUFVCTElDOworQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9u JzsKK1xkVisgdmFyMQorRFJPUCBWQVJJQUJMRSB2YXIxOworCitTRVQgUk9MRSBUTyBERUZBVUxU OworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CisKIC0tIGNoZWNrIGRlc2NyaWJp bmcgaW52YWxpZCBtdWx0aXBhcnQgbmFtZXMKIFxkQSByZWdyZXNzaW9uLmhlYXAKIFxkQSBub25l c3VjaC5oZWFwCkBAIC0xNzAyLDYgKzE3MTUsOSBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7 CiBcZFggbm9uZXN1Y2gucHVibGljLmZ1bmNfZGVwc19zdGF0CiBcZHkgcmVncmVzc2lvbi5teWV2 dAogXGR5IG5vbmVzdWNoLm15ZXZ0CitcZFYgaG9zdC5yZWdyZXNzaW9uLnB1YmxpYy52YXIKK1xk ViByZWdyZXNzaW9ufG15ZGIucHVibGljLnZhcgorXGRWIG5vbmVzdWNoLnB1YmxpYy52YXIKIAog LS0gY2hlY2sgdGhhdCBkb3RzIHdpdGhpbiBxdW90ZWQgbmFtZSBzZWdtZW50cyBhcmUgbm90IGNv dW50ZWQKIFxkQSAibm8uc3VjaC5hY2Nlc3MubWV0aG9kIgpAQCAtMTc0Myw2ICsxNzU5LDggQEAg RFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogXGR4ICJuby5zdWNoLmluc3RhbGxlZC5leHRlbnNp b24iCiBcZFggIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKIFxkeSAibm8uc3VjaC5ldmVu dC50cmlnZ2VyIgorXGRWICJuby5zdWNoLnZhcmlhYmxlIgorCiAKIC0tIGFnYWluLCBidXQgd2l0 aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGRBICJuby5zdWNoLnNjaGVtYSIuIm5v LnN1Y2guYWNjZXNzLm1ldGhvZCIKQEAgLTE3ODMsNiArMTgwMSw3IEBAIERST1AgRlVOQ1RJT04g cHNxbF9lcnJvcjsKIFxkeCAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhbGxlZC5leHRl bnNpb24iCiBcZFggIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNz IgogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKK1xkViAibm8u c3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogCiAtLSBhZ2FpbiwgYnV0IHdpdGggY3Vy cmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkdCByZWdy ZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24iCkBAIC0xODA3 LDYgKzE4MjYsNyBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZFAgcmVncmVzc2lvbi4i bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnBhcnRpdGlvbmVkLnJlbGF0aW9uIgogXGRUIHJlZ3Jl c3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5kYXRhLnR5cGUiCiBcZFggcmVncmVzc2lv bi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCitcZFYgcmVn cmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogCiAtLSBhZ2Fpbiwg YnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25z LgogXGR0ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxl LnJlbGF0aW9uIgpAQCAtMTgzMiw2ICsxODUyLDcgQEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9y OwogXGRQICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnBhcnRp dGlvbmVkLnJlbGF0aW9uIgogXGRUICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEi LiJuby5zdWNoLmRhdGEudHlwZSIKIFxkWCAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2No ZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgorXGRWICJuby5zdWNoLmRhdGFiYXNl Ii4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogCiAtLSBjaGVjayBcZHJnIGFu ZCBcZHUKIENSRUFURSBST0xFIHJlZ3Jlc3NfZHVfcm9sZTA7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjQyZGZiOTVhMDIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0wLDAgKzEsNjEgQEAKK0NSRUFURSBST0xFIHJl Z3Jlc3NfdmFyaWFibGVfb3duZXI7CisKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgaW50OworCistLSBzaG91bGQgZmFpbCwgcHNldWRvdHlwZXMgYXJlIG5vdCBhbGxv d2VkCitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBhbnllbGVtZW50OworCistLSBzaG91bGQgYmUg b2ssIGRvIG5vdGhpbmcKK0RST1AgVkFSSUFCTEUgSUYgRVhJU1RTIHZhcjI7CisKKy0tIGRvIG5v dGhpbmcKK0NSRUFURSBWQVJJQUJMRSBJRiBOT1QgRVhJU1RTIHZhcjEgQVMgaW50OworCistLSBz aG91bGQgZmFpbAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworCistLSBzaG91bGQgYmUg b2sKK0RST1AgVkFSSUFCTEUgSUYgRVhJU1RTIHZhcjE7CisKKy0tIGNoZWNrIGNvbW1lbnQgb24g dmFyaWFibGUKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NPTU1FTlQgT04gVkFSSUFC TEUgdmFyMSBJUyAnc29tZSB2YXJpYWJsZSBjb21tZW50JzsKK1NFTEVDVCBwZ19jYXRhbG9nLm9i al9kZXNjcmlwdGlvbihvaWQsICdwZ192YXJpYWJsZScpIEZST00gcGdfdmFyaWFibGUgV0hFUkUg dmFybmFtZSA9ICd2YXIxJzsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLS0gY2hlY2sgYWNj ZXNzIHJpZ2h0cyBhbmQgc3VwcG9ydGVkIEFMVEVSCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0Owor R1JBTlQgQUxMIE9OIFNDSEVNQSBzdmFydGVzdCBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwor CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CisKK0NSRUFURSBST0xFIHJl Z3Jlc3NfdmFyaWFibGVfcmVhZGVyOworCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgc3ZhcnRl c3QudmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKK1JFVk9LRSBBTEwgT04gVkFSSUFC TEUgc3ZhcnRlc3QudmFyMSBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworCitBTFRFUiBW QVJJQUJMRSBzdmFydGVzdC52YXIxIE9XTkVSIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitB TFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXIxIFJFTkFNRSBUTyB2YXJ4eDsKK0FMVEVSIFZBUklB QkxFIHN2YXJ0ZXN0LnZhcnh4IFNFVCBTQ0hFTUEgcHVibGljOworCitEUk9QIFZBUklBQkxFIHB1 YmxpYy52YXJ4eDsKKworQUxURVIgREVGQVVMVCBQUklWSUxFR0VTCisgICBGT1IgUk9MRSByZWdy ZXNzX3ZhcmlhYmxlX293bmVyCisgICBJTiBTQ0hFTUEgc3ZhcnRlc3QKKyAgIEdSQU5UIFNFTEVD VCBPTiBWQVJJQUJMRVMgVE8gcmVncmVzc192YXJpYWJsZV9yZWFkZXI7CisKKy0tIGNyZWF0aW5n IHZhcmlhYmxlIHdpdGggZGVmYXVsdCBwcml2aWxlZ2VzCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zh cmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50OworU0VU IFJPTEUgVE8gREVGQVVMVDsKKworXGRWKyBzdmFydGVzdC52YXIxCisKK0RST1AgVkFSSUFCTEUg c3ZhcnRlc3QudmFyMTsKKworRFJPUCBTQ0hFTUEgc3ZhcnRlc3Q7CisKK0RST1AgUk9MRSByZWdy ZXNzX3ZhcmlhYmxlX293bmVyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVk ZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCBiNGQ3Zjky MTdjZS4uYTE4ZTgxMTI1YjUgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC01MzMsNiAr NTMzLDcgQEAgQ3JlYXRlUm9sZVN0bXQKIENyZWF0ZVNjaGVtYVN0bXQKIENyZWF0ZVNjaGVtYVN0 bXRDb250ZXh0CiBDcmVhdGVTZXFTdG10CitDcmVhdGVTZXNzaW9uVmFyU3RtdAogQ3JlYXRlU3Rh dHNTdG10CiBDcmVhdGVTdG10CiBDcmVhdGVTdG10Q29udGV4dApAQCAtODcyLDYgKzg3Myw3IEBA IEZvcm1EYXRhX3BnX3RzX3BhcnNlcgogRm9ybURhdGFfcGdfdHNfdGVtcGxhdGUKIEZvcm1EYXRh X3BnX3R5cGUKIEZvcm1EYXRhX3BnX3VzZXJfbWFwcGluZworRm9ybURhdGFfcGdfdmFyaWFibGUK IEZvcm1FeHRyYURhdGFfcGdfYXR0cmlidXRlCiBGb3JtX3BnX2FnZ3JlZ2F0ZQogRm9ybV9wZ19h bQpAQCAtOTMxLDYgKzkzMyw3IEBAIEZvcm1fcGdfdHNfcGFyc2VyCiBGb3JtX3BnX3RzX3RlbXBs YXRlCiBGb3JtX3BnX3R5cGUKIEZvcm1fcGdfdXNlcl9tYXBwaW5nCitGb3JtX3BnX3ZhcmlhYmxl CiBGb3JtYXROb2RlCiBGcmVlQmxvY2tOdW1iZXJBcnJheQogRnJlZUxpc3REYXRhCkBAIC0zMDYx LDYgKzMwNjQsNyBAQCBWYXJTdHJpbmcKIFZhclN0cmluZ1NvcnRTdXBwb3J0CiBWYXJpYWJsZQog VmFyaWFibGVBc3NpZ25Ib29rCitWYXJpYWJsZUluZm8KIFZhcmlhYmxlU2V0S2luZAogVmFyaWFi bGVTZXRTdG10CiBWYXJpYWJsZVNob3dTdG10Ci0tIAoyLjQ1LjIKCg== --000000000000bfc92e061dffd1c5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240724-0004-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20240724-0004-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyzzqe183 RnJvbSBkZGJkZGMxOTE3ZTE1YjYxZTczODg4OTY1MzQ5NmRkMmJiNzkyMmJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjA6NTQ6MjAgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0 LzIwXSBESVNDQVJEIFZBUklBQkxFUwoKSW1wbGVtZW50YXRpb24gb2YgRElTQ0FSRCBWQVJJQUJM RVMgY29tbWFuZHMgYnkgcmVtb3ZpbmcgaGFzaCB0YWJsZSB3aXRoIHNlc3Npb24gdmFyaWFibGVz CmFuZCByZXNldHRpbmcgcmVsYXRlZCBtZW1vcnkgY29udGV4dC4KLS0tCiBkb2Mvc3JjL3NnbWwv cmVmL2Rpc2NhcmQuc2dtbCAgICAgICAgICAgICAgICAgfCAxMyArKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kaXNjYXJkLmMgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgMjggKysrKysrKystCiBzcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDMgKwogc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5jICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oICAgICAgICAgICAgICAgICB8ICAxICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dCAgICB8IDYyICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDM2ICsrKysrKysrKysrCiAxMSBm aWxlcyBjaGFuZ2VkLCAxNTcgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZGlz Y2FyZC5zZ21sCmluZGV4IGJmNDRjNTIzY2FjLi42MWI5NjdmOWM5YiAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJk LnNnbWwKQEAgLTIxLDcgKzIxLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAKICA8cmVm c3lub3BzaXNkaXY+CiA8c3lub3BzaXM+Ci1ESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBTRVFVRU5D RVMgfCBURU1QT1JBUlkgfCBURU1QIH0KK0RJU0NBUkQgeyBBTEwgfCBQTEFOUyB8IFNFUVVFTkNF UyB8IFRFTVBPUkFSWSB8IFRFTVAgfCBWQVJJQUJMRVMgfQogPC9zeW5vcHNpcz4KICA8L3JlZnN5 bm9wc2lzZGl2PgogCkBAIC02Niw2ICs2NiwxNiBAQCBESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBT RVFVRU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIH0KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJs aXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+VkFSSUFC TEVTPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg UmVzZXRzIHRoZSB2YWx1ZSBvZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUK KyAgICAgIGlzIGxhdGVyIHJldXNlZCwgaXQgaXMgcmUtaW5pdGlhbGl6ZWQgdG8gPGxpdGVyYWw+ TlVMTDwvbGl0ZXJhbD4uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+VEVNUE9S QVJZPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5URU1QPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlz dGl0ZW0+CkBAIC05Myw2ICsxMDMsNyBAQCBTRUxFQ1QgcGdfYWR2aXNvcnlfdW5sb2NrX2FsbCgp OwogRElTQ0FSRCBQTEFOUzsKIERJU0NBUkQgVEVNUDsKIERJU0NBUkQgU0VRVUVOQ0VTOworRElT Q0FSRCBWQVJJQUJMRVM7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KICAgICA8L2xpc3RpdGVt PgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9k aXNjYXJkLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJkLmMKaW5kZXggOTJkOTgzYWM3 NDguLmQwNmViYWJhNmY0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJk LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jCkBAIC0xOCw2ICsxOCw3IEBA CiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kaXNjYXJk LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJlcGFyZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgogI2luY2x1 ZGUgInV0aWxzL2d1Yy5oIgogI2luY2x1ZGUgInV0aWxzL3BvcnRhbC5oIgpAQCAtNDgsNiArNDks MTAgQEAgRGlzY2FyZENvbW1hbmQoRGlzY2FyZFN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkK IAkJCVJlc2V0VGVtcFRhYmxlTmFtZXNwYWNlKCk7CiAJCQlicmVhazsKIAorCQljYXNlIERJU0NB UkRfVkFSSUFCTEVTOgorCQkJUmVzZXRTZXNzaW9uVmFyaWFibGVzKCk7CisJCQlicmVhazsKKwog CQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBESVNDQVJEIHRhcmdldDog JWQiLCBzdG10LT50YXJnZXQpOwogCX0KQEAgLTc1LDQgKzgwLDUgQEAgRGlzY2FyZEFsbChib29s IGlzVG9wTGV2ZWwpCiAJUmVzZXRQbGFuQ2FjaGUoKTsKIAlSZXNldFRlbXBUYWJsZU5hbWVzcGFj ZSgpOwogCVJlc2V0U2VxdWVuY2VDYWNoZXMoKTsKKwlSZXNldFNlc3Npb25WYXJpYWJsZXMoKTsK IH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCBjOGRkZWZjMjBl NC4uYzc5Njg1ODcxMjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMK QEAgLTEwMiw3ICsxMDIsMTMgQEAgcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2soRGF0dW0gYXJn LCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKIAogCWVsb2coREVCVUcxLCAicGdfdmFy aWFibGVfY2FjaGVfY2FsbGJhY2sgJXUgJXUiLCBjYWNoZWlkLCBoYXNodmFsdWUpOwogCi0JQXNz ZXJ0KHNlc3Npb252YXJzKTsKKwkvKgorCSAqIFRoZXJlIGlzIG5vIGd1YXJhbnRlZSBvZiBzZXNz aW9udmFycyBiZWluZyBpbml0aWFsaXplZCwgZXZlbiB3aGVuCisJICogcmVjZWl2aW5nIGFuIGlu dmFsaWRhdGlvbiBjYWxsYmFjaywgYXMgRElTQ0FSRCBbIEFMTCB8IFZBUklBQkxFUyBdCisJICog ZGVzdHJveXMgdGhlIGhhc2ggdGFibGUgZW50aXJlbHkuCisJICovCisJaWYgKCFzZXNzaW9udmFy cykKKwkJcmV0dXJuOwogCiAJLyoKIAkgKiBXaGVuIHRoZSBoYXNodmFsdWUgaXMgbm90IHNwZWNp ZmllZCwgdGhlbiB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsCkBAIC03MDIsMyArNzA4LDIzIEBAIHBn X3Nlc3Npb25fdmFyaWFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXR1cm4gKERhdHVtKSAw OwogfQorCisvKgorICogRmFzdCBkcm9wIG9mIHRoZSBjb21wbGV0ZSBjb250ZW50IG9mIGFsbCBz ZXNzaW9uIHZhcmlhYmxlcyBoYXNoIHRhYmxlLCBhbmQKKyAqIGNsZWFudXAgb2YgYW55IGxpc3Qg dGhhdCB3b3VsZG4ndCBiZSByZWxldmFudCBhbnltb3JlLgorICogVGhpcyBpcyB1c2VkIGJ5IERJ U0NBUkQgVkFSSUFCTEVTIChhbmQgRElTQ0FSRCBBTEwpIGNvbW1hbmQuCisgKi8KK3ZvaWQKK1Jl c2V0U2Vzc2lvblZhcmlhYmxlcyh2b2lkKQoreworCS8qIERlc3Ryb3kgaGFzaCB0YWJsZSBhbmQg cmVzZXQgcmVsYXRlZCBtZW1vcnkgY29udGV4dCAqLworCWlmIChzZXNzaW9udmFycykKKwl7CisJ CWhhc2hfZGVzdHJveShzZXNzaW9udmFycyk7CisJCXNlc3Npb252YXJzID0gTlVMTDsKKwl9CisK KwkvKiBSZWxlYXNlIG1lbW9yeSBhbGxvY2F0ZWQgYnkgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwlp ZiAoU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCAhPSBOVUxMKQorCQlNZW1vcnlDb250ZXh0UmVzZXQo U1ZhcmlhYmxlTWVtb3J5Q29udGV4dCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBmNTM2NzM2OWNmNy4u NGFjMzE5YmYyMjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjA3NCw3ICsyMDc0LDEzIEBAIERpc2NhcmRT dG10OgogCQkJCQluLT50YXJnZXQgPSBESVNDQVJEX1NFUVVFTkNFUzsKIAkJCQkJJCQgPSAoTm9k ZSAqKSBuOwogCQkJCX0KKwkJCXwgRElTQ0FSRCBWQVJJQUJMRVMKKwkJCQl7CisJCQkJCURpc2Nh cmRTdG10ICpuID0gbWFrZU5vZGUoRGlzY2FyZFN0bXQpOwogCisJCQkJCW4tPnRhcmdldCA9IERJ U0NBUkRfVkFSSUFCTEVTOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQogCQk7CiAKIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29w L3V0aWxpdHkuYwppbmRleCA2NjJkYmNkMWRkNi4uZGI2MDA0YTA1Y2UgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5j CkBAIC0yOTU5LDYgKzI5NTksOSBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkK IAkJCQljYXNlIERJU0NBUkRfU0VRVUVOQ0VTOgogCQkJCQl0YWcgPSBDTURUQUdfRElTQ0FSRF9T RVFVRU5DRVM7CiAJCQkJCWJyZWFrOworCQkJCWNhc2UgRElTQ0FSRF9WQVJJQUJMRVM6CisJCQkJ CXRhZyA9IENNRFRBR19ESVNDQVJEX1ZBUklBQkxFUzsKKwkJCQkJYnJlYWs7CiAJCQkJZGVmYXVs dDoKIAkJCQkJdGFnID0gQ01EVEFHX1VOS05PV047CiAJCQl9CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKaW5kZXgg NzQ0MjQzOTk2ZTAuLmY0YTNhZjI2YWIyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0zNzQwLDcgKzM3 NDAsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQg ZW5kKQogCiAvKiBESVNDQVJEICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiRElTQ0FSRCIpKQotCQlD T01QTEVURV9XSVRIKCJBTEwiLCAiUExBTlMiLCAiU0VRVUVOQ0VTIiwgIlRFTVAiKTsKKwkJQ09N UExFVEVfV0lUSCgiQUxMIiwgIlBMQU5TIiwgIlNFUVVFTkNFUyIsICJURU1QIiwgIlZBUklBQkxF UyIpOwogCiAvKiBETyAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkRPIikpCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggYjNmMDNjNjU4MjcuLjQ0M2FmYmFmZDRhIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKysrIGIv c3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0yOSw0ICsyOSw2IEBA IGV4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZUNoZWNrKE9pZCB2YXJpZCwg Ym9vbCAqaXNOdWxsLCBPaWQgZXhwZWN0CiBleHRlcm4gdm9pZCBFeGVjdXRlTGV0U3RtdChQYXJz ZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQsIFBhcmFtTGlzdEluZm8gcGFyYW1zLAogCQkJ CQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsIFF1ZXJ5Q29tcGxldGlvbiAqcWMpOwog CitleHRlcm4gdm9pZCBSZXNldFNlc3Npb25WYXJpYWJsZXModm9pZCk7CisKICNlbmRpZgpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDc0YmY1YWY3NzY2Li5mYmFiMzM4YTkzOCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaApAQCAtMzk2NSw2ICszOTY1LDcgQEAgdHlwZWRlZiBlbnVtIERpc2NhcmRN b2RlCiAJRElTQ0FSRF9QTEFOUywKIAlESVNDQVJEX1NFUVVFTkNFUywKIAlESVNDQVJEX1RFTVAs CisJRElTQ0FSRF9WQVJJQUJMRVMsCiB9IERpc2NhcmRNb2RlOwogCiB0eXBlZGVmIHN0cnVjdCBE aXNjYXJkU3RtdApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggYi9z cmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRleCBhOTIxYWYyNDg2Zi4uYmQ3OTY0YWVh NmUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9p bmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC0xMzUsNiArMTM1LDcgQEAgUEdfQ01EVEFHKENN RFRBR19ESVNDQVJEX0FMTCwgIkRJU0NBUkQgQUxMIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBH X0NNRFRBRyhDTURUQUdfRElTQ0FSRF9QTEFOUywgIkRJU0NBUkQgUExBTlMiLCBmYWxzZSwgZmFs c2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX1NFUVVFTkNFUywgIkRJU0NBUkQg U0VRVUVOQ0VTIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FS RF9URU1QLCAiRElTQ0FSRCBURU1QIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhD TURUQUdfRElTQ0FSRF9WQVJJQUJMRVMsICJESVNDQVJEIFZBUklBQkxFUyIsIGZhbHNlLCBmYWxz ZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RPLCAiRE8iLCBmYWxzZSwgZmFsc2UsIGZhbHNl KQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0FDQ0VTU19NRVRIT0QsICJEUk9QIEFDQ0VTUyBNRVRI T0QiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQUdHUkVHQVRF LCAiRFJPUCBBR0dSRUdBVEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDI4MWJkZDc5MjBiLi4y MzM5ZmMxNGYzZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlcy5vdXQKQEAgLTk2NywzICs5NjcsNjUgQEAgRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIu OiJEQk5BTUUiLmI7CiBEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUi OwogRFJPUCBTQ0hFTUEgOiJEQk5BTUUiOwogUkVTRVQgc2VhcmNoX3BhdGg7CistLSBtZW1vcnkg Y2xlYW5pbmcgYnkgRElTQ0FSRCBjb21tYW5kCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJj aGFyOworTEVUIHZhcjEgPSAnSGVsbG8nOworU0VMRUNUIHZhcjE7CisgdmFyMSAgCistLS0tLS0t CisgSGVsbG8KKygxIHJvdykKKworRElTQ0FSRCBBTEw7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAor LS0tLS0tCisgCisoMSByb3cpCisKK0xFVCB2YXIxID0gJ0FIT0onOworU0VMRUNUIHZhcjE7Cisg dmFyMSAKKy0tLS0tLQorIEFIT0oKKygxIHJvdykKKworRElTQ0FSRCBWQVJJQUJMRVM7CitTRUxF Q1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFy MTsKKy0tIGluaXRpYWwgdGVzdCBvZiBkZWJ1ZyBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmdW5jdGlv bgorLS0gc2hvdWxkIGJlIHplcm8gbm93CitESVNDQVJEIFZBUklBQkxFUzsKK1NFTEVDVCBjb3Vu dCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAg IDAKKygxIHJvdykKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsKKy0tIHNob3Vs ZCBiZSB6ZXJvIHN0aWxsCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxl cygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0xFVCB2YXIxID0gJ0FI T0onOworU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOworIG5hbWUgfCAgICAgIHR5cG5hbWUgICAgICB8IGNhbl9z ZWxlY3QgfCBjYW5fdXBkYXRlIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQorIHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IHQgICAgICAgICAg fCB0CisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gc2hvdWxkIGJlIHplcm8gYWdh aW4KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQg CistLS0tLS0tCisgICAgIDAKKygxIHJvdykKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25f dmFyaWFibGVzLnNxbAppbmRleCBjY2U1MmU3YWU2ZS4uNjBkMDYyYjMwY2MgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTY4NCwzICs2ODQsMzkgQEAg RFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1FIjsKIERST1AgU0NIRU1B IDoiREJOQU1FIjsKIAogUkVTRVQgc2VhcmNoX3BhdGg7CisKKy0tIG1lbW9yeSBjbGVhbmluZyBi eSBESVNDQVJEIGNvbW1hbmQKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXI7CitMRVQg dmFyMSA9ICdIZWxsbyc7CitTRUxFQ1QgdmFyMTsKKworRElTQ0FSRCBBTEw7CitTRUxFQ1QgdmFy MTsKKworTEVUIHZhcjEgPSAnQUhPSic7CitTRUxFQ1QgdmFyMTsKKworRElTQ0FSRCBWQVJJQUJM RVM7CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBpbml0aWFsIHRl c3Qgb2YgZGVidWcgcGdfc2Vzc2lvbl92YXJpYWJsZXMgZnVuY3Rpb24KKy0tIHNob3VsZCBiZSB6 ZXJvIG5vdworRElTQ0FSRCBWQVJJQUJMRVM7CisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCk7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXI7CisK Ky0tIHNob3VsZCBiZSB6ZXJvIHN0aWxsCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9u X3ZhcmlhYmxlcygpOworCitMRVQgdmFyMSA9ICdBSE9KJzsKKworU0VMRUNUIG5hbWUsIHR5cG5h bWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwor CitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIHplcm8gYWdhaW4KK1NFTEVDVCBj b3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7Ci0tIAoyLjQ1LjIKCg== --000000000000bfc92e061dffd1c5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240724-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20240724-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyzzqe1e4 RnJvbSBiYTc0YTE0OTZkNzg2ZjU0ZjMzZDI2YzVlNDQ5MGVlZTE0ODg1MGI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjA6NTg6MjMgKzAxMDAKU3ViamVjdDogW1BBVENIIDA1 LzIwXSBtZW1vcnkgY2xlYW5pbmcgYWZ0ZXIgRFJPUCBWQVJJQUJMRQoKQWNjZXB0IG9mIHNpbnZh bCBtZXNzYWdlIGludmFsaWRhdGVzIGVudHJpZXMgaW4gc2Vzc2lvbnZhcnMgaGFzaCB0YWJsZS4g VGhlc2UgZW50cmllcwphcmUgdmFsaWRhdGVkIGJlZm9yZSBhbnkgcmVhZCBvciB3cml0ZSBvcGVy YXRpb25zIG9uIHNlc3Npb24gdmFyaWFibGVzLiBXaGVuIHRoZSBlbnRyeQpjYW5ub3QgYmUgdmFs aWRhdGVkLCB0aGVuIGl0IGlzIHJlbW92ZWQuIFRoZSByZW1vdmluZyBjYW4gYmUgZGVsYXllZCB3 aGVuIHZhcmlhYmxlCmlzIGRyb3BwZWQgaW5zaWRlIGN1cnJlbnQgdHJhbnNhY3Rpb24uIFRoaXMg dHJhbnNhY3Rpb24gY2FuIGJlIGFib3J0ZWQgYW5kIGluIHRoaXMgY2FzZQp3ZSB3YW50IHRvIHBy ZXNlcnZlIGNvbnRlbnQgb2YgdGhlIHZhcmlhYmxlLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3hhY3QuYyAgICAgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5jICAgICAgIHwgMTc3ICsrKysrKysrKysrKystCiBzcmMvaW5jbHVkZS9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggICAgICAgfCAgIDMgKwogLi4uL2lzb2xhdGlvbi9l eHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgMTA5ICsrKysrKysrKwogc3JjL3Rlc3Qv aXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZSAgICAgICAgIHwgICAxICsKIC4uLi9pc29sYXRp b24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICA1MCArKysrCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAyMTkgKysrKysrKysrKysrKysr KysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAxMjEg KysrKysrKysrKwogOSBmaWxlcyBjaGFuZ2VkLCA2ODIgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlv bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vz c2lvbi12YXJpYWJsZS5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9pc29sYXRpb24v c3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGFjdC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCmlu ZGV4IGQxMTlhYjkwOWRjLi4yZDNlZDg2MDdhYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGFjdC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3Qu YwpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfZW51bS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvc3RvcmFnZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgiCisjaW5j bHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Rh YmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21t b24vcGdfcHJuZy5oIgpAQCAtMjMwNSw2ICsyMzA2LDkgQEAgQ29tbWl0VHJhbnNhY3Rpb24odm9p ZCkKIAkgKi8KIAlzbWdyRG9QZW5kaW5nU3luY3ModHJ1ZSwgaXNfcGFyYWxsZWxfd29ya2VyKTsK IAorCS8qIFJlbW92ZSB2YWx1ZXMgb2YgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBmcm9tIG1l bW9yeSAqLworCUF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoKTsKKwogCS8qIGNsb3NlIGxh cmdlIG9iamVjdHMgYmVmb3JlIGxvd2VyLWxldmVsIGNsZWFudXAgKi8KIAlBdEVPWGFjdF9MYXJn ZU9iamVjdCh0cnVlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCmluZGV4IDFjNzMxODFj M2RhLi4wYjIxMjA0YmM0NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtMjIsNiAr MjIsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisj aW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgIm1pc2NhZG1p bi5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVp bHRpbnMuaCIKQEAgLTI1NCw0ICsyNTUsNyBAQCBEcm9wVmFyaWFibGVCeUlkKE9pZCB2YXJpZCkK IAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIAogCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZl TG9jayk7CisKKwkvKiBEbyB0aGUgbmVjZXNzYXJ5IGNsZWFudXAgaWYgbmVlZGVkIGluIGxvY2Fs IG1lbW9yeSAqLworCVNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2Vzcyh2YXJpZCk7CiB9CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggYzc5Njg1ODcxMjUuLmQ5 MTY5ODIwYTdmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0x NCw2ICsxNCw3IEBACiAgKi8KICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCisjaW5jbHVkZSAiYWNj ZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJs ZVJlY2VpdmVyLmgiCkBAIC03NSw2ICs3NiwxNCBAQCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVE YXRhCiAJdm9pZAkgICAqZG9tYWluX2NoZWNrX2V4dHJhOwogCUxvY2FsVHJhbnNhY3Rpb25JZCBk b21haW5fY2hlY2tfZXh0cmFfbHhpZDsKIAorCS8qCisJICogVG9wIGxldmVsIGxvY2FsIHRyYW5z YWN0aW9uIGlkIG9mIHRoZSBsYXN0IHRyYW5zYWN0aW9uIHRoYXQgZHJvcHBlZCB0aGUKKwkgKiB2 YXJpYWJsZSBpZiBhbnkuICBXZSBuZWVkIHRoaXMgaW5mb3JtYXRpb24gdG8gYXZvaWQgZnJlZWlu ZyBtZW1vcnkgZm9yCisJICogdmFyaWFibGUgZHJvcHBlZCBieSB0aGUgbG9jYWwgYmFja2VuZCB0 aGF0IG1heSBiZSBldmVudHVhbGx5CisJICogcm9sbGJhY2tlZC4KKwkgKi8KKwlMb2NhbFRyYW5z YWN0aW9uSWQgZHJvcF9seGlkOworCiAJLyoKIAkgKiBTdG9yZWQgdmFsdWUgYW5kIHR5cGUgZGVz Y3JpcHRpb24gY2FuIGJlIG91dGRhdGVkIHdoZW4gd2UgcmVjZWl2ZQogCSAqIHNpbnZhbCBtZXNz YWdlLiBXZSBoYXZlIHRvIGNoZWNrIGFsd2F5cyBpZiB0aGUgc3RvcmVkIGRhdGEgYXJlCkBAIC05 MSw2ICsxMDAsMTkgQEAgc3RhdGljIEhUQUIgKnNlc3Npb252YXJzID0gTlVMTDsJLyogaGFzaCB0 YWJsZSBmb3Igc2Vzc2lvbiB2YXJpYWJsZXMgKi8KIAogc3RhdGljIE1lbW9yeUNvbnRleHQgU1Zh cmlhYmxlTWVtb3J5Q29udGV4dCA9IE5VTEw7CiAKKy8qIHRydWUgYWZ0ZXIgYWNjZXB0ZWQgc2lu dmFsIG1lc3NhZ2UgKi8KK3N0YXRpYyBib29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxzZTsKKwor LyoKKyAqIFRoZSBjb250ZW50IG9mIHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1vdmVkIGlt bWVkaWF0ZWx5LiBXaGVuIGl0CisgKiBpcyBwb3NzaWJsZSB3ZSBkbyB0aGlzIGF0IHRoZSB0cmFu c2FjdGlvbiBlbmQuIEJ1dCB3aGVuIHRoZSB0cmFuc2FjdGlvbiBmYWlsZWQsCisgKiB3ZSBjYW5u b3QgZG8gaXQsIGJlY2F1c2Ugd2UgbG9zdCBhY2Nlc3MgdG8gdGhlIHN5c3RlbSBjYXRhbG9nLiBT byB3ZQorICogdHJ5IHRvIGRvIGl0IGluIHRoZSBuZXh0IHRyYW5zYWN0aW9uIGJlZm9yZSBhbnkg Z2V0IG9yIHNldCBvZiBhbnkgc2Vzc2lvbgorICogdmFyaWFibGUuIFdlIGRvbid0IHdhbnQgdG8g cmVwZWF0IHRoaXMgb3BlbmluZyBjbGVhbmluZyBpbiB0cmFuc2FjdGlvbiwKKyAqIFNvIHdlIHN0 b3JlIHRoZSBpZCBvZiB0aGUgdHJhbnNhY3Rpb24gd2hlcmUgb3BlbmluZyB2YWxpZGF0aW9uIHdh cyBkb25lLgorICovCitzdGF0aWMgTG9jYWxUcmFuc2FjdGlvbklkIHZhbGlkYXRlZF9seGlkID0g SW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKKwogLyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZv ciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRhdGlvbi4KICAqLwpAQCAtMTIzLDYgKzE0NSw0MCBA QCBwZ192YXJpYWJsZV9jYWNoZV9jYWxsYmFjayhEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50 MzIgaGFzaHZhbHVlKQogCQlpZiAoaGFzaHZhbHVlID09IDAgfHwgc3Zhci0+aGFzaHZhbHVlID09 IGhhc2h2YWx1ZSkKIAkJewogCQkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKKworCQkJbmVlZHNf dmFsaWRhdGlvbiA9IHRydWU7CisJCX0KKwl9Cit9CisKKy8qCisgKiBIYW5kbGUgdGhlIGxvY2Fs IG1lbW9yeSBjbGVhbnVwIGZvciBhIERST1AgVkFSSUFCTEUgY29tbWFuZC4KKyAqCisgKiBDYWxs ZXIgc2hvdWxkIHRha2UgY2FyZSBvZiByZW1vdmluZyB0aGUgcGdfdmFyaWFibGUgZW50cnkgZmly c3QuCisgKi8KK3ZvaWQKK1Nlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQp Cit7CisJQXNzZXJ0KExvY2FsVHJhbnNhY3Rpb25JZElzVmFsaWQoTXlQcm9jLT52eGlkLmx4aWQp KTsKKworCWlmIChzZXNzaW9udmFycykKKwl7CisJCWJvb2wJCWZvdW5kOworCQlTVmFyaWFibGUJ c3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsCisJCQkJ CQkJCQkJCQkgICBIQVNIX0ZJTkQsICZmb3VuZCk7CisKKwkJaWYgKGZvdW5kKQorCQl7CisJCQkv KgorCQkJICogU2F2ZSB0aGUgY3VycmVudCB0b3AgbGV2ZWwgbG9jYWwgdHJhbnNhY3Rpb24gaWQg dG8gbWFrZSBzdXJlIHdlCisJCQkgKiBkb24ndCBhdXRvbWF0aWNhbGx5IHJlbW92ZSB0aGUgbG9j YWwgdmFyaWFibGUgc3RvcmFnZSBpbgorCQkJICogdmFsaWRhdGVfYWxsX3Nlc3Npb25fdmFyaWFi bGVzLCBhcyB0aGUgRFJPUCBWQVJJQUJMRSB3aWxsIHNlbmQKKwkJCSAqIGFuIGludmFsaWRhdGlv biBtZXNzYWdlLgorCQkJICovCisJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQkJc3Zhci0+ ZHJvcF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CisKKwkJCW5lZWRzX3ZhbGlkYXRpb24gPSB0 cnVlOwogCQl9CiAJfQogfQpAQCAtMTc2LDYgKzIzMiw4MyBAQCBpc19zZXNzaW9uX3ZhcmlhYmxl X3ZhbGlkKFNWYXJpYWJsZSBzdmFyKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCisgKiBJdCBj aGVja3MgYWxsIHBvc3NpYmx5IGludmFsaWQgZW50cmllcyBhZ2FpbnN0IHRoZSBzeXN0ZW0gY2F0 YWxvZy4KKyAqIER1cmluZyB0aGlzIHZhbGlkYXRpb24sIHRoZSBzeXN0ZW0gY2FjaGUgY2FuIGJl IGludmFsaWRhdGVkLCBhbmQgdGhlCisgKiBzb21lIHNpbnZhbCBtZXNzYWdlIGNhbiBiZSBhY2Nl cHRlZC4gVGhpcyByb3V0aW5lIGRvZXNuJ3QgZW5zdXJlCisgKiBhbGwgbGl2aW5nIGVudHJpZXMg b2Ygc2Vzc2lvbnZhcnMgd2lsbCBoYXZlIGlzX3ZhbGlkIGZsYWcsIGJ1dCBpdCBlbnN1cmVzCisg KiB0aGF0IGFsbCBlbnRyaWVzIGFyZSBjaGVja2VkIG9uY2UuCisgKgorICogVGhpcyByb3V0aW5l IGlzIGNhbGxlZCBiZWZvcmUgYW55IHVzYWdlIChyZWFkLCB3cml0ZSwgZGVidWcpIG9mIHNlc3Np b24KKyAqIHZhcmlhYmxlcyAob25seSBvbmNlIGluIGEgdHJhbnNhY3Rpb24pIG9yIGF0IGEgdHJh bnNhY3Rpb24gZW5kLiAgQXQgdGhlCisgKiBlbmQgb2YgdHJhbnNhY3Rpb24gKHNwZWNpZmllZCBi eSB0cnVlIG9mIGFyZ3VtZW50IGF0RU9YKSB3ZSBjYW4KKyAqIHRocm93IGFsbCBpbnZhbGlkIHZh cmlhYmxlcy4gSW5zaWRlIHRoZSB0cmFuc2FjdGlvbiAoYXRFT1ggaXMgZmFsc2UpIHdlIHdhbnQK KyAqIHRvIHBvc3Rwb25lIGNsZWFuaW5nIG9mIHZhcmlhYmxlcyBkcm9wcGVkIGluc2lkZSB0aGUg Y3VycmVudCB0cmFuc2FjdGlvbi4KKyAqIFRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIGNhbiBiZSBh Ym9ydGVkLCB0aGUgcmVsYXRlZCBkcm9wIGNvbW1hbmQgd2lsbCBiZQorICogYWJvcnRlZCB0b28u IEluIHRoaXMgY2FzZSB3ZSBkb24ndCB3YW50IGxvc2UgdGhlIGNvbnRlbnQgb2YgdGhlIHZhcmlh YmxlLAorICogYW5kIHRoZXJlZm9yZSB3ZSBuZWVkIHRvIGhvbGQgdGhlIGNvbnRlbnQgb2YgdGhl IGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZQorICogdW50aWwgdGhlIGVuZCBvZiB0aGUgdHJhbnNh Y3Rpb24gKHdoZXJlIHRoZSB2YXJpYWJsZSB3YXMgZHJvcHBlZCkuCisgKi8KK3N0YXRpYyB2b2lk CityZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhib29sIGF0RU9YKQoreworCUhBU0hf U0VRX1NUQVRVUyBzdGF0dXM7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwkvKgorCSAqIFRoZSB2YWxp ZGF0aW9uIHJlcXVpcmVzIGFuIGFjY2VzcyB0byBzeXN0ZW0gY2F0YWxvZywgYW5kIHRoZW4gdGhl CisJICogc2Vzc2lvbiBzdGF0ZSBzaG91bGQgYmUgImluIHRyYW5zYWN0aW9uIi4KKwkgKi8KKwlB c3NlcnQoSXNUcmFuc2FjdGlvblN0YXRlKCkpOworCisJaWYgKCFuZWVkc192YWxpZGF0aW9uIHx8 ICFzZXNzaW9udmFycykKKwkJcmV0dXJuOworCisJLyoKKwkgKiBSZXNldCB0aGlzIGZsYWcgaGVy ZSwgYmVmb3JlIHdlIHN0YXJ0IHRoZSB2YWxpZGF0aW9uLiBJdCBjYW4gYmUgc2V0IHRvCisJICog b24gYnkgaW5jb21taW5nIHNpbnZhbCBtZXNzYWdlLgorCSAqLworCW5lZWRzX3ZhbGlkYXRpb24g PSBmYWxzZTsKKworCWVsb2coREVCVUcxLCAiZWZmZWN0aXZlIGNhbGwgb2YgdmFsaWRhdGVfYWxs X3Nlc3Npb25fdmFyaWFibGVzKCkiKTsKKworCWhhc2hfc2VxX2luaXQoJnN0YXR1cywgc2Vzc2lv bnZhcnMpOworCXdoaWxlICgoc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJjaCgmc3Rh dHVzKSkgIT0gTlVMTCkKKwl7CisJCWlmICghc3Zhci0+aXNfdmFsaWQpCisJCXsKKwkJCWlmICgh YXRFT1ggJiYgc3Zhci0+ZHJvcF9seGlkID09IE15UHJvYy0+dnhpZC5seGlkKQorCQkJeworCQkJ CW5lZWRzX3ZhbGlkYXRpb24gPSB0cnVlOworCQkJCWNvbnRpbnVlOworCQkJfQorCisJCQlpZiAo IWlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3ZhcikpCisJCQl7CisJCQkJT2lkCQkJdmFyaWQg PSBzdmFyLT52YXJpZDsKKworCQkJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyKTsK KwkJCQloYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLCBIQVNIX1JFTU9WRSwgTlVMTCk7 CisJCQkJc3ZhciA9IE5VTEw7CisJCQl9CisJCQllbHNlCisJCQkJc3Zhci0+aXNfdmFsaWQgPSB0 cnVlOworCQl9CisJfQorfQorCisvKgorICogUmVtb3ZlIHZhbHVlcyBvZiBkcm9wcGVkIHNlc3Np b24gdmFyaWFibGVzIGZyb20gbWVtb3J5LgorICovCit2b2lkCitBdFByZUVPWGFjdF9TZXNzaW9u VmFyaWFibGVzKHZvaWQpCit7CisJLyogV2UgY2Fubm90IHRvIGRvIGl0IHdoZW4gdHJhbnNhY3Rp b24gaXMgYWJvcnRlZCAqLworCUFzc2VydChJc1RyYW5zYWN0aW9uU3RhdGUoKSk7CisKKwlyZW1v dmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh0cnVlKTsKK30KKwogLyoKICAqIFVwZGF0ZSBh dHRyaWJ1dGVzIGNhY2hlZCBpbiBzdmFyCiAgKi8KQEAgLTIwNSw2ICszMzgsOCBAQCBzZXR1cF9z ZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCiAJc3Zhci0+ZG9tYWlu X2NoZWNrX2V4dHJhID0gTlVMTDsKIAlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmFfbHhpZCA9IElu dmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQ7CiAKKwlzdmFyLT5kcm9wX2x4aWQgPSBJbnZhbGlkVHJh bnNhY3Rpb25JZDsKKwogCXN2YXItPmlzbnVsbCA9IHRydWU7CiAJc3Zhci0+dmFsdWUgPSAoRGF0 dW0pIDA7CiAKQEAgLTMzNSwyNiArNDcwLDQ0IEBAIGdldF9zZXNzaW9uX3ZhcmlhYmxlKE9pZCB2 YXJpZCkKIAlpZiAoIXNlc3Npb252YXJzKQogCQljcmVhdGVfc2Vzc2lvbnZhcnNfaGFzaHRhYmxl cygpOwogCisJaWYgKHZhbGlkYXRlZF9seGlkID09IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQg fHwKKwkJdmFsaWRhdGVkX2x4aWQgIT0gTXlQcm9jLT52eGlkLmx4aWQpCisJeworCQkvKiBUaHJv dyBpbnZhbGlkIGVudHJpZXMsIHNraXAgZW50cmllcyBkcm9wcGVkIGJ5IHRoaXMgdHJhbnNhY3Rp b24uICovCisJCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKGZhbHNlKTsKKworCQkv KiBEb24ndCByZXBlYXQgaXQgaW4gdGhpcyB0cmFuc2FjdGlvbiAqLworCQl2YWxpZGF0ZWRfbHhp ZCA9IE15UHJvYy0+dnhpZC5seGlkOworCX0KKwogCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3Nl YXJjaChzZXNzaW9udmFycywgJnZhcmlkLAogCQkJCQkJCQkgICBIQVNIX0VOVEVSLCAmZm91bmQp OwogCiAJaWYgKGZvdW5kKQogCXsKKwkJLyoKKwkJICogVGhlIHNlc3Npb24gdmFyaWFibGUgY2Fu IGJlIGRyb3BwZWQgYnkgRFJPUCBWQVJJQUJMRSBjb21tYW5kLAorCQkgKiBidXQgZWZmZWN0IG9m IHRoaXMgY29tbWFuZCBjYW4gYmUgcmV2ZXJ0ZWQgYnkgUk9MTEJBQ0sgdG8gc2F2ZXBvaW50LAor CQkgKiBzbyB3ZSBjYW4gd29yayBoZXJlIHdpdGggcmVhZGFibGUgdmFsdWUgaW4gdmFyaWFibGUg bWFya2VkIGFzIGludmFsaWQuCisJCSAqLwogCQlpZiAoIXN2YXItPmlzX3ZhbGlkKQogCQl7CiAJ CQkvKgogCQkJICogVGhlIHZhcmlhYmxlIGNhbiBiZSBmbGFnZ2VkIGFzIGludmFsaWQgYnkgcHJv Y2Vzc2luZyBpbnZhbGlkYXRpb24KIAkJCSAqIG1lc3NhZ2UsIGJ1dCBjYW4gYmUgdmFsaWRhdGVk IGJ5IHJlY2hlY2sgYWdhaW5zdCBzeXN0ZW0gY2F0YWxvZy4KKwkJCSAqCisJCQkgKiBJZiB3ZSBh Y2Nlc3MgdGhpcyBzZXNzaW9uIHZhcmlhYmxlLCB0aGVuIHRoZSB2YXJpYWJsZSBzaG91bGQgYmUK KwkJCSAqIHBvc3NpYmx5IHZhbGlkYXRlZC4gVGhlIG9pZCBzaG91bGQgYmUgdmFsaWQsIGJlY2F1 c2UgcmVsYXRlZAorCQkJICogc2Vzc2lvbiB2YXJpYWJsZSBpcyBsb2NrZWQgYWxyZWFkeSwgYW5k IHJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzCisJCQkgKiBzaG91bGQgdG8gcmVtb3Zl IHZhcmlhYmxlcyBkcm9wcGVkIGJ5IG90aGVyIHRyYW5zYWN0aW9ucy4KIAkJCSAqLwogCQkJaWYg KGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3ZhcikpCiAJCQkJc3Zhci0+aXNfdmFsaWQgPSB0 cnVlOwogCQkJZWxzZQotCQkJCS8qCi0JCQkJICogV2hlbiB0aGUgdmFsdWUgY2Fubm90IGJlIHZh bGlkYXRlZCwgd2UgY2FuIHNhZmVseSB0aHJvdyBpdC4KLQkJCQkgKiBUaGVyZSBpcyBvaWQgaW4g Y2F0YWxvZywgYnV0IGl0IGlzIHJlbGF0ZWQgdG8gZGlmZmVyZW50Ci0JCQkJICogc2Vzc2lvbiB2 YXJpYWJsZSAoZGlmZmVyZW50IGNyZWF0ZV9sc24pLgotCQkJCSAqLwotCQkJCWZyZWVfc2Vzc2lv bl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKwkJCXsKKwkJCQkvKiBXZSBkb24ndCBleHBlY3QgaXQg Ki8KKwkJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBzdGF0ZSBvZiBzZXNzaW9uIHZhcmlhYmxl ICV1IiwgdmFyaWQpOworCQkJfQogCQl9CiAJfQogCWVsc2UKQEAgLTQxNSw2ICs1NjgsMTYgQEAg U2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQog CWlmICghc2Vzc2lvbnZhcnMpCiAJCWNyZWF0ZV9zZXNzaW9udmFyc19oYXNodGFibGVzKCk7CiAK KwlpZiAodmFsaWRhdGVkX2x4aWQgPT0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZCB8fAorCQl2 YWxpZGF0ZWRfbHhpZCAhPSBNeVByb2MtPnZ4aWQubHhpZCkKKwl7CisJCS8qIFRocm93IGludmFs aWQgZW50cmllcywgc2tpcCBlbnRyaWVzIGRyb3BwZWQgYnkgdGhpcyB0cmFuc2FjdGlvbi4gKi8K KwkJcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoZmFsc2UpOworCisJCS8qIERvbid0 IHJlcGVhdCBpdCBpbiB0aGlzIHRyYW5zYWN0aW9uICovCisJCXZhbGlkYXRlZF9seGlkID0gTXlQ cm9jLT52eGlkLmx4aWQ7CisJfQorCiAJc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VhcmNoKHNl c3Npb252YXJzLCAmdmFyaWQsCiAJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZmb3VuZCk7CiAKQEAg LTYyMiw2ICs3ODUsOCBAQCBwZ19zZXNzaW9uX3ZhcmlhYmxlcyhQR19GVU5DVElPTl9BUkdTKQog CiAJZWxvZyhERUJVRzEsICJwZ19zZXNzaW9uX3ZhcmlhYmxlcyBzdGFydCIpOwogCisJcmVtb3Zl X2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoZmFsc2UpOworCiAJSW5pdE1hdGVyaWFsaXplZFNS RihmY2luZm8sIDApOwogCiAJaWYgKHNlc3Npb252YXJzKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5oCmluZGV4IDQ0M2FmYmFmZDRhLi4wZDRjNjM1YWU3YiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjEsNiArMjEsOSBAQAogI2luY2x1 ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5jbHVkZSAidXRpbHMvcXVlcnllbnZpcm9ubWVudC5oIgog CitleHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlkKTsK K2V4dGVybiB2b2lkIEF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXModm9pZCk7CisKIGV4dGVy biB2b2lkIFNldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlz TnVsbCk7CiBleHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFyaWFibGVXaXRoU2VjdXJpdHlDaGVjayhP aWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7CiBleHRlcm4gRGF0dW0gR2V0U2Vz c2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsLCBPaWQgKnR5cGlkKTsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCBi L3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjk2OGNjZTA4OTUKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQK QEAgLTAsMCArMSwxMDkgQEAKK1BhcnNlZCB0ZXN0IHNwZWMgd2l0aCA0IHNlc3Npb25zCisKK3N0 YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIGRyb3AgdmFsCitzdGVwIGxldDogTEVUIG15dmFy ID0gJ3Rlc3QnOworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215dmFyCistLS0tLQordGVzdCAK KygxIHJvdykKKworc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCB2YWw6IFNF TEVDVCBteXZhcjsKK0VSUk9SOiAgY29sdW1uICJteXZhciIgZG9lcyBub3QgZXhpc3QKKworc3Rh cnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwgczEgZHJvcCB2YWwgc3IxCitzdGVwIGxldDogTEVU IG15dmFyID0gJ3Rlc3QnOworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215dmFyCistLS0tLQor dGVzdCAKKygxIHJvdykKKworc3RlcCBzMTogQkVHSU47CitzdGVwIGRyb3A6IERST1AgVkFSSUFC TEUgbXl2YXI7CitzdGVwIHZhbDogU0VMRUNUIG15dmFyOworRVJST1I6ICBjb2x1bW4gIm15dmFy IiBkb2VzIG5vdCBleGlzdAorc3RlcCBzcjE6IFJPTExCQUNLOworCitzdGFydGluZyBwZXJtdXRh dGlvbjogbGV0IHZhbCBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbAorc3RlcCBsZXQ6IExFVCBteXZh ciA9ICd0ZXN0JzsKK3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitteXZhcgorLS0tLS0KK3Rlc3Qg CisoMSByb3cpCisKK3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00g cGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVkCistLS0tLS0rLS0t LS0rLS0tLS0tLQorcHVibGljfG15dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCBkcm9wOiBE Uk9QIFZBUklBQkxFIG15dmFyOworc3RlcCBjcmVhdGU6IENSRUFURSBWQVJJQUJMRSBteXZhciBB UyB0ZXh0Oworc3RlcCBkYmc6IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBwZ19z ZXNzaW9uX3ZhcmlhYmxlcygpOworc2NoZW1hfG5hbWV8cmVtb3ZlZAorLS0tLS0tKy0tLS0rLS0t LS0tLQorKDAgcm93cykKKworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215dmFyCistLS0tLQor ICAgICAKKygxIHJvdykKKworCitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBzMSBkYmcg ZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7Citz dGVwIHZhbDogU0VMRUNUIG15dmFyOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitz dGVwIHMxOiBCRUdJTjsKK3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZS T00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVkCistLS0tLS0r LS0tLS0rLS0tLS0tLQorcHVibGljfG15dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCBkcm9w OiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCBjcmVhdGU6IENSRUFURSBWQVJJQUJMRSBteXZh ciBBUyB0ZXh0Oworc3RlcCBkYmc6IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOworc2NoZW1hfG5hbWUgfHJlbW92ZWQKKy0tLS0tLSstLS0t LSstLS0tLS0tCitwdWJsaWN8bXl2YXJ8ZiAgICAgIAorKDEgcm93KQorCitzdGVwIHZhbDogU0VM RUNUIG15dmFyOworbXl2YXIKKy0tLS0tCisgICAgIAorKDEgcm93KQorCitzdGVwIHNyMTogUk9M TEJBQ0s7CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBs ZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQorc3RlcCBjcmVhdGUzOiBD UkVBVEUgVkFSSUFCTEUgbXl2YXIzIEFTIHRleHQ7CitzdGVwIGxldDM6IExFVCBteXZhcjMgPSAn dGVzdCc7CitzdGVwIHMzOiBCRUdJTjsKK3N0ZXAgY3JlYXRlNDogQ1JFQVRFIFZBUklBQkxFIG15 dmFyNCBBUyB0ZXh0Oworc3RlcCBsZXQ0OiBMRVQgbXl2YXI0ID0gJ3Rlc3QnOworc3RlcCBkcm9w NDogRFJPUCBWQVJJQUJMRSBteXZhcjQ7CitzdGVwIGRyb3AzOiBEUk9QIFZBUklBQkxFIG15dmFy MzsKK3N0ZXAgaW52YWwzOiBTRUxFQ1QgQ09VTlQoKikgPj0gMCBGUk9NIHBnX2ZvcmVpZ25fdGFi bGU7Cis/Y29sdW1uPworLS0tLS0tLS0KK3QgICAgICAgCisoMSByb3cpCisKK3N0ZXAgZGlzY2Fy ZDogRElTQ0FSRCBWQVJJQUJMRVM7CitzdGVwIHNjMzogQ09NTUlUOworc3RlcCBzdGF0ZTogU0VM RUNUIHZhcm5hbWUgRlJPTSBwZ192YXJpYWJsZTsKK3Zhcm5hbWUKKy0tLS0tLS0KK215dmFyICAK KygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hl ZHVsZSBiL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKaW5kZXggNmRhOThj ZmZhY2EuLjA0NmJiMWE0OTdmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0 aW9uX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUK QEAgLTExNywzICsxMTcsNCBAQCB0ZXN0OiBzZXJpYWxpemFibGUtcGFyYWxsZWwtMgogdGVzdDog c2VyaWFsaXphYmxlLXBhcmFsbGVsLTMKIHRlc3Q6IG1hdHZpZXctd3JpdGUtc2tldwogdGVzdDog bG9jay1ub3dhaXQKK3Rlc3Q6IHNlc3Npb24tdmFyaWFibGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRp b24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi5jODY0ZmVlNDAwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2lz b2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKQEAgLTAsMCArMSw1MCBAQAorIyBU ZXN0IHNlc3Npb24gdmFyaWFibGVzIG1lbW9yeSBjbGVhbnVwIGZvciBzaW52YWwKKworc2V0dXAK K3sKKyAgICBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsKK30KKwordGVhcmRvd24KK3sK KyAgICBEUk9QIFZBUklBQkxFIElGIEVYSVNUUyBteXZhcjsKK30KKworc2Vzc2lvbiBzMQorc3Rl cCBzMQkJeyBCRUdJTjsgfQorc3RlcCBsZXQJeyBMRVQgbXl2YXIgPSAndGVzdCc7IH0KK3N0ZXAg dmFsCXsgU0VMRUNUIG15dmFyOyB9CitzdGVwIGRiZwl7IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJl bW92ZWQgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOyB9CitzdGVwIHNyMQl7IFJPTExCQUNL OyB9CisKK3Nlc3Npb24gczIKK3N0ZXAgZHJvcAkJeyBEUk9QIFZBUklBQkxFIG15dmFyOyB9Citz dGVwIGNyZWF0ZQkJeyBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsgfQorCitzZXNzaW9u IHMzCitzdGVwIHMzCQkJeyBCRUdJTjsgfQorc3RlcCBsZXQzCQl7IExFVCBteXZhcjMgPSAndGVz dCc7IH0KK3N0ZXAgY3JlYXRlNAl7IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsgfQor c3RlcCBsZXQ0CQl7IExFVCBteXZhcjQgPSAndGVzdCc7IH0KK3N0ZXAgZHJvcDQJCXsgRFJPUCBW QVJJQUJMRSBteXZhcjQ7IH0KK3N0ZXAgaW52YWwzCQl7IFNFTEVDVCBDT1VOVCgqKSA+PSAwIEZS T00gcGdfZm9yZWlnbl90YWJsZTsgfQorc3RlcCBkaXNjYXJkCXsgRElTQ0FSRCBWQVJJQUJMRVM7 IH0KK3N0ZXAgc2MzCQl7IENPTU1JVDsgfQorc3RlcCBzdGF0ZQkJeyBTRUxFQ1QgdmFybmFtZSBG Uk9NIHBnX3ZhcmlhYmxlOyB9CisKK3Nlc3Npb24gczQKK3N0ZXAgY3JlYXRlMwl7IENSRUFURSBW QVJJQUJMRSBteXZhcjMgQVMgdGV4dDsgfQorc3RlcCBkcm9wMwkJeyBEUk9QIFZBUklBQkxFIG15 dmFyMzsgfQorCisjIENvbmN1cnJlbnQgZHJvcCBvZiBhIGtub3duIHZhcmlhYmxlIHNob3VsZCBs ZWFkIHRvIGFuIGVycm9yCitwZXJtdXRhdGlvbiBsZXQgdmFsIGRyb3AgdmFsCisjIFNhbWUsIGJ1 dCB3aXRoIGFuIGV4cGxpY2l0IHRyYW5zYWN0aW9uCitwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRy b3AgdmFsIHNyMQorIyBDb25jdXJyZW50IGRyb3AvY3JlYXRlIG9mIGEga25vd24gdmFyaWFibGUg c2hvdWxkIGxlYWQgdG8gZW1wdHkgdmFyaWFibGUKK3Blcm11dGF0aW9uIGxldCB2YWwgZGJnIGRy b3AgY3JlYXRlIGRiZyB2YWwKKyMgQ29uY3VycmVudCBkcm9wL2NyZWF0ZSBvZiBhIGtub3duIHZh cmlhYmxlIHNob3VsZCBsZWFkIHRvIGVtcHR5IHZhcmlhYmxlCisjIFdlIG5lZWQgYSB0cmFuc2Fj dGlvbiB0byBtYWtlIHN1cmUgdGhhdCB3ZSB3b24ndCBhY2NlcHQgaW52YWxpZGF0aW9uIHdoZW4K KyMgY2FsbGluZyB0aGUgZGJnIHN0ZXAgYWZ0ZXIgdGhlIGNvbmN1cnJlbnQgZHJvcAorcGVybXV0 YXRpb24gbGV0IHZhbCBzMSBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEKKyMgdGVzdCBmb3Ig RElTQ0FSRCBBTEwgd2hlbiBhbGwgaW50ZXJuYWwgcXVldWVzIGhhdmUgYWN0aW9ucyByZWdpc3Rl cmVkCitwZXJtdXRhdGlvbiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3Az IGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCAyMzM5ZmMxNGYzZi4uZmNhMjFmNDEzN2QgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBA IC0xMDI5LDMgKzEwMjksMjIyIEBAIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFy aWFibGVzKCk7CiAtLS0tLS0tCiAgICAgIDAKICgxIHJvdykKKworLS0gZHJvcHBlZCB2YXJpYWJs ZXMgc2hvdWxkIGJlIHJlbW92ZWQgZnJvbSBtZW1vcnkKKy0tIGF0IHRoZSBlbmQgb2YgdHJhbnNh Y3Rpb24gb3IgYmVmb3JlIG5leHQgdXNhZ2UKKy0tIG9mIGFueSBzZXNzaW9uIHZhcmlhYmxlIGlu IG5leHQgdHJhbnNhY3Rpb24uCitMRVQgdmFyMSA9ICdBaG9qJzsKK1NFTEVDVCBuYW1lLCB0eXBu YW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsK KyBuYW1lIHwgICAgICB0eXBuYW1lICAgICAgfCBjYW5fc2VsZWN0IHwgY2FuX3VwZGF0ZSAKKy0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2YXIx IHwgY2hhcmFjdGVyIHZhcnlpbmcgfCB0ICAgICAgICAgIHwgdAorKDEgcm93KQorCitEUk9QIFZB UklBQkxFIHZhcjE7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdf c2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQor CistLSB0aGUgY29udGVudCBvZiB2YWx1ZSBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gdmFyaWFi bGUgaXMgZHJvcHBlZAorLS0gYnkgYWJvcnRlZCB0cmFuc2FjdGlvbgorQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgdmFyY2hhcjsKK0xFVCB2YXIxID0gJ0Fob2onOworQkVHSU47CitEUk9QIFZBUklB QkxFIHZhcjE7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjE7CitFUlJPUjogIGNvbHVtbiAi dmFyMSIgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIHZhcjE7CisgICAgICAgICAgICAg ICBeCitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0t LS0tLQorIEFob2oKKygxIHJvdykKKworLS0gYW5vdGhlciB0ZXN0CitCRUdJTjsKK0RST1AgVkFS SUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0xFVCB2YXIxID0gMTAw OworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgMTAwCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0t LS0tCisgIDEwMAorKDEgcm93KQorCitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaywgcmVzdWx0 ICdBaG9qJworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorIEFob2oKKygxIHJvdykKKwor RFJPUCBWQVJJQUJMRSB2YXIxOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygx IHJvdykKKworQkVHSU47CisgIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKyAgTEVUIHZh cjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cp CisKKyAgU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOworIG5hbWUgfCB0eXBuYW1lIHwgY2FuX3NlbGVjdCB8IGNh bl91cGRhdGUgCistLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2 YXIxIHwgaW50ZWdlciB8IHQgICAgICAgICAgfCB0CisoMSByb3cpCisKKyAgRFJPUCBWQVJJQUJM RSB2YXIxOworQ09NTUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9N IHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJv dykKKworQkVHSU47CisgIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKyAgTEVUIHZhcjEg PSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisK KyAgU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19z ZXNzaW9uX3ZhcmlhYmxlcygpOworIG5hbWUgfCB0eXBuYW1lIHwgY2FuX3NlbGVjdCB8IGNhbl91 cGRhdGUgCistLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2YXIx IHwgaW50ZWdlciB8IHQgICAgICAgICAgfCB0CisoMSByb3cpCisKKyAgRFJPUCBWQVJJQUJMRSB2 YXIxOworQ09NTUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBn X3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykK KworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMg aW50OworTEVUIHZhcjEgPSAxMDsKK0xFVCB2YXIyID0gMDsKK0JFR0lOOworICBTQVZFUE9JTlQg czE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hp bmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0t LS0KKyAgICAwCisoMSByb3cpCisKKyAgUk9MTEJBQ0sgVE8gczE7CisgIFNBVkVQT0lOVCBzMjsK KyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisg ICAgMAorKDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMyOworQ09NTUlUOworLS0gc2hvdWxkIGJl IG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitCRUdJ TjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIC0tIGZvcmNlIGNs ZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFy MjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMxOwor ICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgU0VMRUNUIHZhcjI7Cisg dmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK0JFR0lO OworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xl YW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIy OworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKKyAgU0FWRVBPSU5UIHMyOworICAt LSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAg U0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworICBST0xMQkFD SyBUTyBzMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9u IHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cp CisKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0t LQorICAgMTAKKygxIHJvdykKKworLS0gcmVwZWF0ZWQgYWJvcnRlZCB0cmFuc2FjdGlvbgorQkVH SU47IERST1AgVkFSSUFCTEUgdmFyMTsgUk9MTEJBQ0s7CitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2 YXIxOyBST0xMQkFDSzsKK0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworLS0g c2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93 KQorCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNz aW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggNjBkMDYyYjMwY2MuLjUxODZjZDlkYzlmIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC03MjAsMyArNzIwLDEy NCBAQCBESVNDQVJEIFZBUklBQkxFUzsKIAogLS0gc2hvdWxkIGJlIHplcm8gYWdhaW4KIFNFTEVD VCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKKy0tIGRyb3BwZWQgdmFy aWFibGVzIHNob3VsZCBiZSByZW1vdmVkIGZyb20gbWVtb3J5CistLSBhdCB0aGUgZW5kIG9mIHRy YW5zYWN0aW9uIG9yIGJlZm9yZSBuZXh0IHVzYWdlCistLSBvZiBhbnkgc2Vzc2lvbiB2YXJpYWJs ZSBpbiBuZXh0IHRyYW5zYWN0aW9uLgorCitMRVQgdmFyMSA9ICdBaG9qJzsKK1NFTEVDVCBuYW1l LCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJs ZXMoKTsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBj b3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKKy0tIHRoZSBjb250ZW50IG9m IHZhbHVlIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiB2YXJpYWJsZSBpcyBkcm9wcGVkCistLSBi eSBhYm9ydGVkIHRyYW5zYWN0aW9uCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOwor TEVUIHZhcjEgPSAnQWhvaic7CitCRUdJTjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hv dWxkIGZhaWwKK1NFTEVDVCB2YXIxOworCitST0xMQkFDSzsKKworLS0gc2hvdWxkIGJlIG9rCitT RUxFQ1QgdmFyMTsKKworLS0gYW5vdGhlciB0ZXN0CitCRUdJTjsKK0RST1AgVkFSSUFCTEUgdmFy MTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0xFVCB2YXIxID0gMTAwOworLS0gc2hv dWxkIGJlIG9rLCByZXN1bHQgMTAwCitTRUxFQ1QgdmFyMTsKK1JPTExCQUNLOworLS0gc2hvdWxk IGJlIG9rLCByZXN1bHQgJ0Fob2onCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIx OworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92 YXJpYWJsZXMoKTsKKworQkVHSU47CisgIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKyAg TEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworICBTRUxFQ1QgbmFtZSwgdHlwbmFtZSwg Y2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgIERS T1AgVkFSSUFCTEUgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBj b3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0JFR0lOOworICBDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsK KyAgU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19z ZXNzaW9uX3ZhcmlhYmxlcygpOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitDT01NSVQ7CisKKy0t IHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxl cygpOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFy MiBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwOworTEVUIHZhcjIgPSAwOworQkVHSU47CisgIFNBVkVQ T0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0 b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExC QUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgU0VM RUNUIHZhcjI7CisgIFJPTExCQUNLIFRPIHMyOworQ09NTUlUOworLS0gc2hvdWxkIGJlIG9rCitT RUxFQ1QgdmFyMTsKKworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2 YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFy aWFibGUKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7 CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgU0VMRUNUIHZhcjI7CitST0xMQkFDSzsKKy0tIHNo b3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERS T1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhl ciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworCisgIFNBVkVQT0lOVCBzMjsKKyAg LS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisg IFNFTEVDVCB2YXIyOworICBST0xMQkFDSyBUTyBzMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkg dG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworQ09NTUlU OworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworLS0gcmVwZWF0ZWQgYWJvcnRlZCB0 cmFuc2FjdGlvbgorQkVHSU47IERST1AgVkFSSUFCTEUgdmFyMTsgUk9MTEJBQ0s7CitCRUdJTjsg RFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKK0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7 IFJPTExCQUNLOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklB QkxFIHZhcjEsIHZhcjI7Ci0tIAoyLjQ1LjIKCg== --000000000000bfc92e061dffd1c5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240724-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Disposition: attachment; filename="v20240724-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyzzqe0k1 RnJvbSA0N2NiNjJkZTg2ZjlmYWY0NWUyODkwMjA2MmMzMjBkMGE2M2JmZDg1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAwODoyOToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIv MjBdIFN0b3JhZ2UgZm9yIHNlc3Npb24gdmFyaWFibGVzIGFuZCBTUUwgaW50ZXJmYWNlCgpTZXNz aW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHNlc3Npb24gbWVtb3J5IGluIGRlZGljYXRlZCBo YXNoIHRhYmxlLiBUaGUKd3JpdGUgYWNjZXNzIGlzIGRvbmUgYnkgTEVUIGNvbW1hbmQuIFRoZSBy ZWFkIGFjY2VzcyBpcyBieSBTRUxFQ1QgY29tbWFuZC4KVGhlIGFjY2VzcyByaWdodHMgc2hvdWxk IGJlIGNoZWNrZWQuCgpUaGUgaWRlbnRpZmllcnMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgc2hvdWxk IGJlIHNoYWRvd2VkIGJ5IHBvc3NpYmxlIGNvbHVtbidzCmlkZW50aWZpZXJzIGFsd2F5cy4gVGhp cyBpcyBieSBkZXNpZ24gZmVhdHVyZS4gV2UgZG9uJ3Qgd2FudCB0byBicmVhayBhbgphcHBsaWNh dGlvbiBieSBjcmVhdGluZyBzb21lIHNlc3Npb24gdmFyaWFibGUgdGhhdCBpcyBiYWRseSBuYW1l ZC4KClRoZSBsaW1pdHMgb2YgdGhpcyBwYXRjaCAoc29sdmVkIGJ5IG90aGVyIHBhdGNoZXMpOgoK LSBzZXNzaW9uIHZhcmlhYmxlcyBibG9jayBwYXJhbGxlbCBleGVjdXRpb24KLSBzZXNzaW9uIHZh cmlhYmxlcyBibG9ja3Mgc2ltcGxlIGV4cHJlc3Npb24gZXZhbHVhdGlvbiAoaW4gcGxwZ3NxbCkK LSBTUUwgZnVuY3Rpb25zIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCBpbmxpbmVkCi0g Q0FMTCBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZCAodXNhZ2Ugb2YgZGlyZWN0IGFjY2VzcyB0 byBleHByZXNzIGV4ZWN1dG9yKQotIG1lbW9yeSB1c2VkIGJ5IGRyb3BwZWQgc2Vzc2lvbiB2YXJp YWJsZXMgaXMgbm90IHJlbGVhc2VkCgpJbXBsZW1lbnRhdGlvbnMgb2YgRVhQTEFJTiBMRVQgYW5k IFBSRVBBUkUgTEVUIHN0YXRlbWVudHMKYXJlIGluIHNlcGFyYXRlIHBhdGNoZXMgKGZvciBiZXR0 ZXIgcmVhZGFiaWxpdHkpCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAg ICAgICAgICAgIHwgIDEzICsKIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAzOSArCiBkb2Mvc3JjL3NnbWwvZXZlbnQtdHJpZ2dlci5zZ21sICAgICAgICAg ICAgICAgfCAgMjQgKwogZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbCAgICAgICAgICAgICAgICAg ICAgIHwgIDEyICsKIGRvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAg ICB8ICAgMSArCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwgICAgICAgICAg fCAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwg ICAxICsKIGRvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sICAgICAgICAgICB8ICAg MSArCiBkb2Mvc3JjL3NnbWwvcmVmL2xldC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgOTcg KysKIGRvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCAgICAgICAgICAgICAgICAgICB8ICAgMSAr CiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyAgICAgICAgICAgICAgfCAgIDUgKwog c3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyAgICAgICAgICAgICAgIHwgMzI2ICsrKysr KysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8ICAgMiAr CiBzcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDEgKwog c3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQgICAgICAgICAgICAgIHwgICAxICsKIHNy Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDYwMiArKysrKysr KysrKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAg MSArCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jICAgICAgICAgICAgICAgfCAgNDIg Kwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgIDQ3ICsK IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkICAgICAgICAgICAgICB8ICAgMSArCiBz cmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jICAgICAgfCAyMDEgKysrKwog c3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgICAgICAgICAgICAgICAgIHwgIDEwICsKIHNy Yy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYyAgICAgICAgICB8ICAgOCArCiBzcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgICAgICAgICAgfCAxMzggKystCiBzcmMv YmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYyAgICAgfCAgIDMgKwogc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jICAgICAgICAgIHwgIDM1ICstCiBzcmMvYmFj a2VuZC9wYXJzZXIvYW5hbHl6ZS5jICAgICAgICAgICAgICAgICAgfCAyNzYgKysrKystCiBzcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNDkgKy0KIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCAyMjQgKysrKy0KIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmFj a2VuZC90Y29wL2Rlc3QuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKwogc3JjL2JhY2tl bmQvdGNvcC9wcXVlcnkuYyAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5k L3Rjb3AvdXRpbGl0eS5jICAgICAgICAgICAgICAgICAgICB8ICAxNiArCiBzcmMvYmFja2VuZC91 dGlscy9hZHQvcnVsZXV0aWxzLmMgICAgICAgICAgICAgfCAgNDYgKwogc3JjL2JhY2tlbmQvdXRp bHMvY2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICAgIHwgIDQxICstCiBzcmMvYmFja2VuZC91dGls cy9mbWdyL2ZtZ3IuYyAgICAgICAgICAgICAgICAgfCAgMTAgKy0KIHNyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuYyAgICAgICAgICAgICAgICAgICB8ICAxMiArLQogc3JjL2luY2x1ZGUvY2F0YWxv Zy9uYW1lc3BhY2UuaCAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAgNyArCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmggICAgICAgfCAgMzIgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhl Y2Rlc2MuaCAgICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJp YWJsZVJlY2VpdmVyLmggICAgICB8ICAyMiArCiBzcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMu aCAgICAgICAgICAgICAgICAgfCAgMTkgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o ICAgICAgICAgICAgICAgIHwgIDE3ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oICAg ICAgICAgICAgICAgICB8ICAgNSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaCAgICAg ICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAg ICAgICAgICAgICB8ICAgNiArCiBzcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4uaCAgICAg ICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAg ICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggICAgICAgICAg ICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCAgICAgICAgICAgICAg ICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmggICAgICAgICAgICAgICAgICAgICAg IHwgICAxICsKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgICAgICAgICAgICAgICAgICB8 ICAgMyArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwg OTEyICsrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJp YWJsZXMuc3FsICAgIHwgNjI1ICsrKysrKysrKysrKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVk ZWZzLmxpc3QgICAgICAgICAgICAgIHwgICA1ICsKIDU3IGZpbGVzIGNoYW5nZWQsIDM5NTUgaW5z ZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9z Z21sL3JlZi9sZXQuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2V4ZWN1 dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVk ZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCA1YmExODg5 OTM0NS4uNWQ0OTU1NTQ0MjkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC05Nzc3LDYgKzk3NzcsMTkgQEAg U0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxh Y2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jv dz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFy Y3JlYXRlX2xzbjwvc3RydWN0ZmllbGQ+IDx0eXBlPlhMb2dSZWNQdHI8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBMU04gb2YgdGhlIHRyYW5zYWN0aW9uIHdoZXJl IHZhcmlhYmxlIHdhcyBjcmVhdGVkLiBJdCBpcyB1c2VkCisgICAgICAgKGluIGNvbWJpbmF0aW9u IHdpdGggPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KSBhcyBldmVyeXRpbWUKKyAgICAg ICB1bmlxdWUgaWRlbnRpZmllci4gT25seSA8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4g Y2Fubm90IGJlCisgICAgICAgdXNlZCBmb3IgdGhpcyBwdXJwb3NlLCBiZWNhdXNlIHVudXNlZCA8 c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4KKyAgICAgICBjYW4gYmUgcmV1c2VkLgorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJuYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+bmFt ZTwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dt bC9kZGwuc2dtbAppbmRleCBlZTFkOGVhMDYwYy4uOTI3MzA3OTlmNDAgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTUzMTYs NiArNTMxNiw0NSBAQCBFWFBMQUlOIFNFTEVDVCBjb3VudCgqKSBGUk9NIG1lYXN1cmVtZW50IFdI RVJFIGxvZ2RhdGUgJmd0Oz0gREFURSAnMjAwOC0wMS0wMSc7CiAgICAgY29tbWFuZHMuICBBIHNl c3Npb24gdmFyaWFibGUgY2FuIGJlIGNyZWF0ZWQgYnkgdGhlIDxjb21tYW5kPkNSRUFURQogICAg IFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kLgogICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAg ICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIHNldCB3aXRoIHRoZSA8Y29tbWFu ZD5MRVQ8L2NvbW1hbmQ+IFNRTAorICAgIGNvbW1hbmQuICBXaGlsZSBzZXNzaW9uIHZhcmlhYmxl cyBzaGFyZSBwcm9wZXJ0aWVzIHdpdGggdGFibGVzLCB0aGVpciB2YWx1ZQorICAgIGNhbm5vdCBi ZSB1cGRhdGVkIHdpdGggYW4gPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiBjb21tYW5kLiBUaGUg dmFsdWUgb2YgYQorICAgIHNlc3Npb24gdmFyaWFibGUgbWF5IGJlIHJldHJpZXZlZCBieSB0aGUg PGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPiBTUUwKKyAgICBjb21tYW5kLgorPHByb2dyYW1saXN0 aW5nPgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgZGF0ZTsKK0xFVCB2YXIxID0gY3VycmVudF9k YXRlOworU0VMRUNUIHZhcjE7Cis8L3Byb2dyYW1saXN0aW5nPgorCisgICAgb3IKKworPHByb2dy YW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5jdXJyZW50X3VzZXJfaWQgQVMgaW50 ZWdlcjsKK0dSQU5UIFJFQUQgT04gVkFSSUFCTEUgcHVibGljLmN1cnJlbnRfdXNlcl9pZCBUTyBQ VUJMSUM7CitMRVQgY3VycmVudF91c2VyX2lkID0gKFNFTEVDVCBpZCBGUk9NIHVzZXJzIFdIRVJF IHVzZW5hbWUgPSBzZXNzaW9uX3VzZXIpOworU0VMRUNUIGN1cnJlbnRfdXNlcl9pZDsKKzwvcHJv Z3JhbWxpc3Rpbmc+CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSB2YWx1ZSBvZiBh IHNlc3Npb24gdmFyaWFibGUgaXMgbG9jYWwgdG8gdGhlIGN1cnJlbnQgc2Vzc2lvbi4gUmV0cmll dmluZworICAgIGEgdmFyaWFibGUncyB2YWx1ZSByZXR1cm5zIGEgPGxpdGVyYWw+TlVMTDwvbGl0 ZXJhbD4sIHVubGVzcyBpdHMgdmFsdWUgaGFzCisgICAgYmVlbiBzZXQgdG8gc29tZXRoaW5nIGVs c2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB1c2luZyB0aGUKKyAgICA8Y29tbWFuZD5MRVQ8L2Nv bW1hbmQ+IGNvbW1hbmQuIFRoZSBjb250ZW50IG9mIGEgdmFyaWFibGUgaXMgbm90CisgICAgdHJh bnNhY3Rpb25hbC4gVGhpcyBpcyB0aGUgc2FtZSBhcyByZWd1bGFyIHZhcmlhYmxlcyBpbiBQTCBs YW5ndWFnZXMuCisgICAgVGhlIHNlc3Npb24gdmFyaWFibGVzIGFyZSBwZXJzaXN0ZW50LCBidXQg dGhlIGNvbnRlbnQgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgaXMKKyAgICB0ZW1wb3JhcnkgYW5kIG5v dCBzaGFyZWQgKGxpa2UgdGhlIGNvbnRlbnQgb2YgdGVtcG9yYXJ5IHRhYmxlcykuCisgICA8L3Bh cmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hhZG93 ZWQgYnkgY29sdW1uIHJlZmVyZW5jZXMgaW4gYSBxdWVyeS4gV2hlbgorICAgIGEgcXVlcnkgY29u dGFpbnMgaWRlbnRpZmllcnMgb3IgcXVhbGlmaWVkIGlkZW50aWZpZXJzIHRoYXQgY291bGQgYmUg dXNlZCBhcworICAgIGJvdGggYSBzZXNzaW9uIHZhcmlhYmxlIGlkZW50aWZpZXJzIGFuZCBhcyBj b2x1bW4gaWRlbnRpZmllciwgdGhlbiB0aGUKKyAgICBjb2x1bW4gaWRlbnRpZmllciBpcyBwcmVm ZXJyZWQgZXZlcnkgdGltZS4KKyAgIDwvcGFyYT4KICAgPC9zZWN0MT4KIAogIDxzZWN0MSBpZD0i ZGRsLW90aGVycyI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZXZlbnQtdHJpZ2dlci5zZ21s IGIvZG9jL3NyYy9zZ21sL2V2ZW50LXRyaWdnZXIuc2dtbAppbmRleCAxNWIyYWY5OWRjYS4uNTc4 Yjk3YWZlZWYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9ldmVudC10cmlnZ2VyLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL2V2ZW50LXRyaWdnZXIuc2dtbApAQCAtNDMyLDYgKzQzMiwxNCBAQAog ICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+LTwvbGl0ZXJhbD48L2VudHJ5 PgogICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQiPjwvZW50cnk+CiAgICAgICAgPC9yb3c+Cisg ICAgICAgPHJvdz4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48bGl0ZXJhbD5BTFRFUiBW QVJJQUJMRTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+ PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRl ciI+PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxpZ249ImNl bnRlciI+PGxpdGVyYWw+LTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxpZ249 ImNlbnRlciI+PGxpdGVyYWw+LTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxp Z249ImxlZnQiPjwvZW50cnk+CisgICAgICAgPC9yb3c+CiAgICAgICAgPHJvdz4KICAgICAgICAg PGVudHJ5IGFsaWduPSJsZWZ0Ij48bGl0ZXJhbD5BTFRFUiBWSUVXPC9saXRlcmFsPjwvZW50cnk+ CiAgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9saXRlcmFsPjwvZW50 cnk+CkBAIC03MjgsNiArNzM2LDE0IEBACiAgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48 bGl0ZXJhbD4tPC9saXRlcmFsPjwvZW50cnk+CiAgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+ PC9lbnRyeT4KICAgICAgICA8L3Jvdz4KKyAgICAgICA8cm93PgorICAgICAgICA8ZW50cnkgYWxp Z249ImxlZnQiPjxsaXRlcmFsPkNSRUFURSBWQVJJQUJMRTwvbGl0ZXJhbD48L2VudHJ5PgorICAg ICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5Pgor ICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5 PgorICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+LTwvbGl0ZXJhbD48L2Vu dHJ5PgorICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+LTwvbGl0ZXJhbD48 L2VudHJ5PgorICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQiPjwvZW50cnk+CisgICAgICAgPC9y b3c+CiAgICAgICAgPHJvdz4KICAgICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48bGl0ZXJhbD5D UkVBVEUgVklFVzwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRl ciI+PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5PgpAQCAtMTAyNCw2ICsxMDQwLDE0IEBACiAg ICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD4tPC9saXRlcmFsPjwvZW50cnk+ CiAgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PC9lbnRyeT4KICAgICAgICA8L3Jvdz4KKyAg ICAgICA8cm93PgorICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQiPjxsaXRlcmFsPkRST1AgVkFS SUFCTEU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxs aXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIi PjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50 ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJj ZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWdu PSJsZWZ0Ij48L2VudHJ5PgorICAgICAgIDwvcm93PgogICAgICAgIDxyb3c+CiAgICAgICAgIDxl bnRyeSBhbGlnbj0ibGVmdCI+PGxpdGVyYWw+RFJPUCBWSUVXPC9saXRlcmFsPjwvZW50cnk+CiAg ICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9saXRlcmFsPjwvZW50cnk+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3Bs cGdzcWwuc2dtbAppbmRleCBhNjc1OTIzODY3Mi4uZDZkNGViZDFhMDMgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbApA QCAtNjAzNCw2ICs2MDM0LDE4IEBAICQkIExBTkdVQUdFIHBscGdzcWwgU1RSSUNUIElNTVVUQUJM RTsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgICAgPC9wYXJhPgogICAgPC9zZWN0Mz4KKworICAgPHNl Y3QzIGlkPSJwbHBnc3FsLXNlc3Npb24tdmFyaWFibGVzIj4KKyAgICA8dGl0bGU+PGNvbW1hbmQ+ U2Vzc2lvbiB2YXJpYWJsZXM8L2NvbW1hbmQ+PC90aXRsZT4KKworICAgIDxwYXJhPgorICAgICBU aGUgPGFwcGxpY2F0aW9uPlBML3BnU1FMPC9hcHBsaWNhdGlvbj4gbGFuZ3VhZ2UgaGFzIG5vIHBh Y2thZ2VzLCBhbmQKKyAgICAgdGhlcmVmb3JlIG5vIHBhY2thZ2UgdmFyaWFibGVzIG9yIHBhY2th Z2UgY29uc3RhbnRzLgorICAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+ IGhhcyBzZXNzaW9uIHZhcmlhYmxlcy4KKyAgICAgU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGNy ZWF0ZWQgYnkgPGNvbW1hbmQ+Q1JFQVRFIFZBUklBQkxFPC9jb21tYW5kPiwKKyAgICAgYXMgZGVz Y3JpYmVkIGluIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPi4KKyAgICA8L3Bh cmE+CisgICA8L3NlY3QzPgogICA8L3NlY3QyPgogCiAgIDxzZWN0MiBpZD0icGxwZ3NxbC1wb3J0 aW5nLWFwcGVuZGl4Ij4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAppbmRleCAyZjY3ZGUzZTIxYi4uY2Mz YmQ1YWI1NDAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKQEAgLTE1OCw2ICsxNTgsNyBAQCBDb21w bGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4K IDwhRU5USVRZIGdyYW50ICAgICAgICAgICAgICBTWVNURU0gImdyYW50LnNnbWwiPgogPCFFTlRJ VFkgaW1wb3J0Rm9yZWlnblNjaGVtYSBTWVNURU0gImltcG9ydF9mb3JlaWduX3NjaGVtYS5zZ21s Ij4KIDwhRU5USVRZIGluc2VydCAgICAgICAgICAgICBTWVNURU0gImluc2VydC5zZ21sIj4KKzwh RU5USVRZIGxldCAgICAgICAgICAgICAgICBTWVNURU0gImxldC5zZ21sIj4KIDwhRU5USVRZIGxp c3RlbiAgICAgICAgICAgICBTWVNURU0gImxpc3Rlbi5zZ21sIj4KIDwhRU5USVRZIGxvYWQgICAg ICAgICAgICAgICBTWVNURU0gImxvYWQuc2dtbCI+CiA8IUVOVElUWSBsb2NrICAgICAgICAgICAg ICAgU1lTVEVNICJsb2NrLnNnbWwiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCmlu ZGV4IGQ4NzU3MGU3ZDhiLi5kMjAzNjM1MWU1MyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Jl Zi9hbHRlcl92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFi bGUuc2dtbApAQCAtMTczLDYgKzE3Myw3IEBAIEFMVEVSIFZBUklBQkxFIGJvbyBTRVQgU0NIRU1B IHByaXZhdGU7CiAgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CiAgICA8bWVtYmVyPjx4cmVm IGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgogICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVm IGxpbmtlbmQ9InNxbC1sZXQiLz48L21lbWJlcj4KICAgPC9zaW1wbGVsaXN0PgogIDwvcmVmc2Vj dDE+CiA8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFy aWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKaW5kZXgg MjU2OGJkZmYzNWMuLmM5NWJkMzI3NDJmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxl LnNnbWwKQEAgLTE0OSw2ICsxNDksNyBAQCBTRUxFQ1QgdmFyMTsKICAgPHNpbXBsZWxpc3QgdHlw ZT0iaW5saW5lIj4KICAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUi Lz48L21lbWJlcj4KICAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIv PjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtbGV0Ii8+PC9tZW1iZXI+ CiAgIDwvc2ltcGxlbGlzdD4KICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJs ZS5zZ21sCmluZGV4IDViZGIzNTYwZjBiLi42Nzk4OGI1ZmNkOCAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9w X3ZhcmlhYmxlLnNnbWwKQEAgLTExMSw2ICsxMTEsNyBAQCBEUk9QIFZBUklBQkxFIHZhcjE7CiAg IDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNx bC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNx bC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJz cWwtbGV0Ii8+PC9tZW1iZXI+CiAgIDwvc2ltcGxlbGlzdD4KICA8L3JlZnNlY3QxPgogCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2xldC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9sZXQu c2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjM5NjhlZGRkOTAK LS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2xldC5zZ21sCkBAIC0wLDAgKzEs OTcgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1l bnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWxldCI+CisgPGluZGV4dGVybSB6b25l PSJzcWwtbGV0Ij4KKyAgPHByaW1hcnk+TEVUPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisg PGluZGV4dGVybT4KKyAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNl Y29uZGFyeT5jaGFuZ2luZzwvc2Vjb25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+ CisgIDxyZWZlbnRyeXRpdGxlPkxFVDwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9t YW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZt aXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+TEVUPC9y ZWZuYW1lPgorICA8cmVmcHVycG9zZT5jaGFuZ2UgYSBzZXNzaW9uIHZhcmlhYmxlJ3MgdmFsdWU8 L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9w c2lzPgorTEVUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9uX3ZhcmlhYmxl PC9yZXBsYWNlYWJsZT4gPSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3FsX2V4cHJl c3Npb248L3JlcGxhY2VhYmxlPgorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisg PHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAg VGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZCBhc3NpZ25zIGEgdmFsdWUgdG8gdGhl IHNwZWNpZmllZCBzZXNzaW9uCisgICB2YXJpYWJsZS4KKyAgPC9wYXJhPgorCisgPC9yZWZzZWN0 MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJp YWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPnNlc3Npb25f dmFyaWFibGU8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+Cisg ICAgICBUaGUgbmFtZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAg IDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAg ICA8dGVybT48bGl0ZXJhbD5zcWxfZXhwcmVzc2lvbjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIEFuIFNRTCBleHByZXNzaW9uIChjYW4gYmUgc3Vi cXVlcnkgaW4gcGFyZW50aGVzaXMpLiBUaGUgcmVzdWx0IG11c3QKKyAgICAgIGJlIG9mIGNhc3Rh YmxlIHRvIHRoZSBzYW1lIGRhdGEgdHlwZSBhcyB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAoaW4KKyAg ICAgIGltcGxpY2l0IG9yIGFzc2lnbm1lbnQgY29udGV4dCkuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgPC92YXJpYWJsZWxpc3Q+CisKKyAg PHBhcmE+CisgICBFeGFtcGxlOgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIG15 dmFyIEFTIGludGVnZXI7CitMRVQgbXl2YXIgPSAxMDsKK0xFVCBteXZhciA9IChTRUxFQ1Qgc3Vt KHZhbCkgRlJPTSB0YWIpOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorIDwvcmVmc2Vj dDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8 cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGlzIGEgPHByb2R1Y3RuYW1lPlBv c3RncmVTUUw8L3Byb2R1Y3RuYW1lPgorICAgZXh0ZW5zaW9uLgorICA8L3BhcmE+CisgPC9yZWZz ZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2lt cGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0 ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3Jl YXRldmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRy b3B2YXJpYWJsZSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKzwv cmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKaW5kZXggMjU1NzhmMzk0NmMuLjEzZTRhZGM1ZGYzIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZmVyZW5jZS5zZ21sCkBAIC0xODYsNiArMTg2LDcgQEAKICAgICZncmFudDsKICAgICZpbXBv cnRGb3JlaWduU2NoZW1hOwogICAgJmluc2VydDsKKyAgICZsZXQ7CiAgICAmbGlzdGVuOwogICAg JmxvYWQ7CiAgICAmbG9jazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5k ZW5jeS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKaW5kZXggNWE1ZTNmN2I1 NmEuLjE3MTE5ZjYxNWVhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVu Y3kuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwpAQCAtMTg2NSw2ICsx ODY1LDExIEBAIGZpbmRfZXhwcl9yZWZlcmVuY2VzX3dhbGtlcihOb2RlICpub2RlLAogCXsKIAkJ UGFyYW0JICAgKnBhcmFtID0gKFBhcmFtICopIG5vZGU7CiAKKwkJLyogQSB2YXJpYWJsZSBwYXJh bWV0ZXIgZGVwZW5kcyBvbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAqLworCQlpZiAocGFyYW0tPnBh cmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJCWFkZF9vYmplY3RfYWRkcmVzcyhWYXJpYWJs ZVJlbGF0aW9uSWQsIHBhcmFtLT5wYXJhbXZhcmlkLCAwLAorCQkJCQkJCSAgIGNvbnRleHQtPmFk ZHJzKTsKKwogCQkvKiBBIHBhcmFtZXRlciBtdXN0IGRlcGVuZCBvbiB0aGUgcGFyYW1ldGVyJ3Mg ZGF0YXR5cGUgKi8KIAkJYWRkX29iamVjdF9hZGRyZXNzKFR5cGVSZWxhdGlvbklkLCBwYXJhbS0+ cGFyYW10eXBlLCAwLAogCQkJCQkJICAgY29udGV4dC0+YWRkcnMpOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNw YWNlLmMKaW5kZXggYzE4MjRmOTExNWYuLmY4MWUwMDY0MjRlIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNw YWNlLmMKQEAgLTM0MDIsNiArMzQwMiwzMzIgQEAgTG9va3VwVmFyaWFibGUoY29uc3QgY2hhciAq bnNwbmFtZSwKIAlyZXR1cm4gdmFyb2lkOwogfQogCisvKgorICogVGhlIGlucHV0IGxpc3QgY29u dGFpbnMgbmFtZXMgd2l0aCBpbmRpcmVjdGlvbiBleHByZXNzaW9ucyB1c2VkIGFzIHRoZSBsZWZ0 CisgKiBwYXJ0IG9mIExFVCBzdGF0ZW1lbnQuIFRoZSBmb2xsb3dpbmcgcm91dGluZSByZXR1cm5z IGEgbmV3IGxpc3Qgd2l0aCBvbmx5CisgKiBpbml0aWFsIHN0cmluZ3MgKG5hbWVzKSAtIHdpdGhv dXQgaW5kaXJlY3Rpb24gZXhwcmVzc2lvbnMuCisgKi8KK0xpc3QgKgorTmFtZXNGcm9tTGlzdChM aXN0ICpuYW1lcykKK3sKKwlMaXN0Q2VsbCAgICpsOworCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsK KworCWZvcmVhY2gobCwgbmFtZXMpCisJeworCQlOb2RlCSAgICpuID0gbGZpcnN0KGwpOworCisJ CWlmIChJc0EobiwgU3RyaW5nKSkKKwkJeworCQkJcmVzdWx0ID0gbGFwcGVuZChyZXN1bHQsIG4p OworCQl9CisJCWVsc2UKKwkJCWJyZWFrOworCX0KKworCXJldHVybiByZXN1bHQ7Cit9CisKKy8q CisgKiBJZGVudGlmeVZhcmlhYmxlIC0gdHJ5IHRvIGZpbmQgdmFyaWFibGUgaWRlbnRpZmllZCBi eSBsaXN0IG9mIG5hbWVzLgorICoKKyAqIEJlZm9yZSB0aGlzIGNhbGwgd2UgZG9uJ3Qga25vdywg aG93IHRoZXNlIGZpZWxkcyBzaG91bGQgYmUgbWFwcGVkIHRvCisgKiBzY2hlbWEgbmFtZSwgdmFy aWFibGUgbmFtZSBhbmQgYXR0cmlidXRlIG5hbWUuIEluIHRoaXMgcm91dGluZQorICogd2UgdHJ5 IHRvIGFwcGx5IHBhc3NlZCBuYW1lcyB0byBhbGwgcG9zc2libGUgY29tYmluYXRpb25zIG9mIHNj aGVtYSBuYW1lLAorICogdmFyaWFibGUgbmFtZSBhbmQgYXR0cmlidXRlIG5hbWUsIGFuZCB3ZSBj b3VudCB2YWxpZCBjb21iaW5hdGlvbnMuCisgKgorICogUmV0dXJucyBvaWQgb2YgaWRlbnRpZmll ZCB2YXJpYWJsZS4gV2hlbiBsYXN0IGZpZWxkIG9mIG5hbWVzIGxpc3QgaXMKKyAqIGlkZW50aWZp ZWQgYXMgYW4gYXR0cmlidXRlLCB0aGVuIHRoZSBhcmd1bWVudCBhdHRybmFtZSBjb250YWlucyB0 aGUgbmFtZSBvZgorICogdGhpcyBmaWVsZC4KKyAqCisgKiBXaGVuIHRoZXJlIGlzIGlzIG5vIHZh bGlkIGNvbWJpbmF0aW9ucywgd2UgY2FuIGJlIHN1cmUgdGhlIHNwZWNpZmllZCBsaXN0IG9mCisg KiBuYW1lcyBjYW5ub3QgaWRlbnRpZnkgYSBzZXNzaW9uIHZhcmlhYmxlLiBJbiB0aGlzIGNhc2Ug d2UgcmV0dXJuIEludmFsaWRPaWQuCisgKgorICogV2UgY2FuIGZpbmQgbW9yZSB2YWxpZCBjb21i aW5hdGlvbiB0aGFuIG9uZS4KKyAqIEV4YW1wbGU6IHVzZXJzIGNhbiBoYXZlIHNlc3Npb24gdmFy aWFibGUgeCBpbiBzY2hlbWEgeSwgYW5kCisgKiBzZXNzaW9uIHZhcmlhYmxlIHkgd2l0aCBhdHRy aWJ1dGUgeCBpbnNpZGUgc29tZSBzY2hlbWEgZnJvbQorICogc2VhcmNoIHBhdGguIEluIHRoaXMg c2l0dWF0aW9uIHRoZSBtZWFuaW5nIG9mIGV4cHJlc3Npb24gInkiLiJ4IgorICogaXMgYW1iaWd1 b3VzLiBJbiB0aGlzIGNhc2UgdGhpcyByb3V0aW5lIHJldHVybnMgb2lkIG9mIHZhcmlhYmxlCisg KiB4IGluIHNjaGVtYSB5LCBhbmQgdGhlIG91dHB1dCBwYXJhbWV0ZXIgIm5vdF91bmlxdWUiIGlz IHNldCB0bworICogdHJ1ZS4gSW4gdGhpcyBjYXNlIHRoaXMgdmFyaWFibGUgaXMgbG9ja2VkLgor ICoKKyAqIFRoZSBBY2Nlc3NTaGFyZUxvY2sgaXMgY3JlYXRlZCBvbiByZWxhdGVkIHNlc3Npb24g dmFyaWFibGUuIFRoZSBsb2NrCisgKiB3aWxsIGJlIGtlcHQgZm9yIHRoZSB3aG9sZSB0cmFuc2Fj dGlvbi4KKyAqCisgKiBOb3RlOiB0aGUgb3V0IGF0dHJuYW1lIHNob3VsZCBiZSB1c2VkIG9ubHkg d2hlbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZQorICogaXMgaWRlbnRpZmllZC4gV2hlbiB0aGUgc2Vz c2lvbiB2YXJpYWJsZSBpcyBub3QgaWRlbnRpZmllZCwgdGhlbiB0aGlzCisgKiBvdXRwdXQgdmFy aWFibGUgY2FuIGhvbGQgcmVmZXJlbmNlIHRvIHNvbWUgc3RyaW5nLCBidXQgaXNuJ3Qgc3VyZQor ICogYWJvdXQgaXRzIHNlbWFudGljcy4KKyAqCisgKiBXaGVuIHdlIHVzZSB0aGlzIHJvdXRpbmUg Zm9yIGlkZW50aWZpY2F0aW9uIG9mIHNoYWRvd2VkIHZhcmlhYmxlLAorICogd2UgZG9uJ3Qgd2Fu dCB0byByYWlzZSBhbnkgZXJyb3IuIFNoYWRvd2luZyBjb2x1bW4gcmVmZXJlbmNlIGlzIGNvcnJl Y3QsCisgKiBhbmQgd2UgZG9uJ3Qgd2FudCB0byBicmVhayBleGVjdXRpb24gZHVlIHNoYWRvd2lu ZyBjaGVjay4KKyAqLworT2lkCitJZGVudGlmeVZhcmlhYmxlKExpc3QgKm5hbWVzLCBjaGFyICoq YXR0cm5hbWUsIGJvb2wgKm5vdF91bmlxdWUsIGJvb2wgbm9lcnJvcikKK3sKKwlOb2RlCSAgICpm aWVsZDEgPSBOVUxMOworCU5vZGUJICAgKmZpZWxkMiA9IE5VTEw7CisJTm9kZQkgICAqZmllbGQz ID0gTlVMTDsKKwlOb2RlCSAgICpmaWVsZDQgPSBOVUxMOworCWNoYXIJICAgKmEgPSBOVUxMOwor CWNoYXIJICAgKmIgPSBOVUxMOworCWNoYXIJICAgKmMgPSBOVUxMOworCWNoYXIJICAgKmQgPSBO VUxMOworCU9pZAkJCXZhcmlkID0gSW52YWxpZE9pZDsKKwlPaWQJCQlvbGRfdmFyaWQgPSBJbnZh bGlkT2lkOworCXVpbnQ2NAkJaW52YWxfY291bnQ7CisJYm9vbAkJcmV0cnkgPSBmYWxzZTsKKwor CS8qCisJICogRERMIG9wZXJhdGlvbnMgY2FuIGNoYW5nZSB0aGUgcmVzdWx0cyBvZiBhIG5hbWUg bG9va3VwLiAgU2luY2UgYWxsIHN1Y2gKKwkgKiBvcGVyYXRpb25zIHdpbGwgZ2VuZXJhdGUgaW52 YWxpZGF0aW9uIG1lc3NhZ2VzLCB3ZSBrZWVwIHRyYWNrIG9mCisJICogd2hldGhlciBhbnkgc3Vj aCBtZXNzYWdlcyBzaG93IHVwIHdoaWxlIHdlJ3JlIHBlcmZvcm1pbmcgdGhlIG9wZXJhdGlvbiwK KwkgKiBhbmQgcmV0cnkgdW50aWwgZWl0aGVyICgxKSBubyBtb3JlIGludmFsaWRhdGlvbiBtZXNz YWdlcyBzaG93IHVwIG9yICgyKQorCSAqIHRoZSBhbnN3ZXIgZG9lc24ndCBjaGFuZ2UuCisJICov CisJZm9yICg7OykKKwl7CisJCU9pZAkJCXZhcm9pZF93aXRob3V0X2F0dHIgPSBJbnZhbGlkT2lk OworCQlPaWQJCQl2YXJvaWRfd2l0aF9hdHRyID0gSW52YWxpZE9pZDsKKworCQkqbm90X3VuaXF1 ZSA9IGZhbHNlOworCQkqYXR0cm5hbWUgPSBOVUxMOworCQl2YXJpZCA9IEludmFsaWRPaWQ7CisK KwkJaW52YWxfY291bnQgPSBTaGFyZWRJbnZhbGlkTWVzc2FnZUNvdW50ZXI7CisKKwkJc3dpdGNo IChsaXN0X2xlbmd0aChuYW1lcykpCisJCXsKKwkJCWNhc2UgMToKKwkJCQlmaWVsZDEgPSBsaW5p dGlhbChuYW1lcyk7CisKKwkJCQlBc3NlcnQoSXNBKGZpZWxkMSwgU3RyaW5nKSk7CisKKwkJCQl2 YXJpZCA9IExvb2t1cFZhcmlhYmxlKE5VTEwsIHN0clZhbChmaWVsZDEpLCB0cnVlKTsKKwkJCQli cmVhazsKKworCQkJY2FzZSAyOgorCQkJCWZpZWxkMSA9IGxpbml0aWFsKG5hbWVzKTsKKwkJCQlm aWVsZDIgPSBsc2Vjb25kKG5hbWVzKTsKKworCQkJCUFzc2VydChJc0EoZmllbGQxLCBTdHJpbmcp KTsKKwkJCQlhID0gc3RyVmFsKGZpZWxkMSk7CisKKwkJCQlpZiAoSXNBKGZpZWxkMiwgU3RyaW5n KSkKKwkJCQl7CisJCQkJCS8qIHdoZW4gYm90aCBmaWVsZHMgYXJlIG9mIHN0cmluZyB0eXBlICov CisJCQkJCWIgPSBzdHJWYWwoZmllbGQyKTsKKworCQkJCQkvKgorCQkJCQkgKiBhLmIgY2FuIG1l YW4gInNjaGVtYSIuInZhcmlhYmxlIiBvciAidmFyaWFibGUiLiJmaWVsZCIuCisJCQkJCSAqIENo ZWNrIGJvdGggdmFyaWFudHMsIGFuZCByZXR1cm5zIEludmFsaWRPaWQgd2l0aAorCQkJCQkgKiBu b3RfdW5pcXVlIGZsYWcsIHdoZW4gYm90aCBpbnRlcnByZXRhdGlvbnMgYXJlCisJCQkJCSAqIHBv c3NpYmxlLgorCQkJCQkgKi8KKwkJCQkJdmFyb2lkX3dpdGhvdXRfYXR0ciA9IExvb2t1cFZhcmlh YmxlKGEsIGIsIHRydWUpOworCQkJCQl2YXJvaWRfd2l0aF9hdHRyID0gTG9va3VwVmFyaWFibGUo TlVMTCwgYSwgdHJ1ZSk7CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCS8qIFRoZSBsYXN0 IGZpZWxkIG9mIGxpc3QgY2FuIGJlIHN0YXIgdG9vLiAqLworCQkJCQlBc3NlcnQoSXNBKGZpZWxk MiwgQV9TdGFyKSk7CisKKwkJCQkJLyoKKwkJCQkJICogSW4gdGhpcyBjYXNlLCB0aGUgZmllbGQx IHNob3VsZCBiZSB2YXJpYWJsZSBuYW1lLiBCdXQKKwkJCQkJICogZGlyZWN0IHVuYm94aW5nIG9m IGNvbXBvc2l0ZSBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QKKwkJCQkJICogc3VwcG9ydGVkIG5v dywgYW5kIHRoZW4gd2UgZG9uJ3QgbmVlZCB0byB0cnkgbG9va3VwCisJCQkJCSAqIHJlbGF0ZWQg dmFyaWFibGUuCisJCQkJCSAqCisJCQkJCSAqIFVuYm94aW5nIGlzIHN1cHBvcnRlZCBieSBzeW50 YXggKHZhcikuKgorCQkJCQkgKi8KKwkJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCQkJfQorCisJ CQkJaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhvdXRfYXR0cikgJiYgT2lkSXNWYWxpZCh2YXJv aWRfd2l0aF9hdHRyKSkKKwkJCQl7CisJCQkJCSpub3RfdW5pcXVlID0gdHJ1ZTsKKwkJCQkJdmFy aWQgPSB2YXJvaWRfd2l0aG91dF9hdHRyOworCQkJCX0KKwkJCQllbHNlIGlmIChPaWRJc1ZhbGlk KHZhcm9pZF93aXRob3V0X2F0dHIpKQorCQkJCXsKKwkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aG91 dF9hdHRyOworCQkJCX0KKwkJCQllbHNlIGlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRoX2F0dHIp KQorCQkJCXsKKwkJCQkJKmF0dHJuYW1lID0gYjsKKwkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aF9h dHRyOworCQkJCX0KKwkJCQlicmVhazsKKworCQkJY2FzZSAzOgorCQkJCXsKKwkJCQkJYm9vbAkJ ZmllbGQxX2lzX2NhdGFsb2cgPSBmYWxzZTsKKworCQkJCQlmaWVsZDEgPSBsaW5pdGlhbChuYW1l cyk7CisJCQkJCWZpZWxkMiA9IGxzZWNvbmQobmFtZXMpOworCQkJCQlmaWVsZDMgPSBsdGhpcmQo bmFtZXMpOworCisJCQkJCUFzc2VydChJc0EoZmllbGQxLCBTdHJpbmcpKTsKKwkJCQkJQXNzZXJ0 KElzQShmaWVsZDIsIFN0cmluZykpOworCisJCQkJCWEgPSBzdHJWYWwoZmllbGQxKTsKKwkJCQkJ YiA9IHN0clZhbChmaWVsZDIpOworCisJCQkJCWlmIChJc0EoZmllbGQzLCBTdHJpbmcpKQorCQkJ CQl7CisJCQkJCQljID0gc3RyVmFsKGZpZWxkMyk7CisKKwkJCQkJCS8qCisJCQkJCQkgKiBhLmIu YyBjYW4gbWVhbiBjYXRhbG9nLnNjaGVtYS52YXJpYWJsZSBvcgorCQkJCQkJICogc2NoZW1hLnZh cmlhYmxlLmZpZWxkLgorCQkJCQkJICoKKwkJCQkJCSAqIENoZWNrIGJvdGggdmFyaWFudHMsIGFu ZCBzZXQgbm90X3VuaXF1ZSBmbGFnLCB3aGVuCisJCQkJCQkgKiBib3RoIGludGVycHJldGF0aW9u cyBhcmUgcG9zc2libGUuCisJCQkJCQkgKgorCQkJCQkJICogV2hlbiB0aGlyZCBub2RlIGlzIHN0 YXIsIG9ubHkgcG9zc2libGUKKwkJCQkJCSAqIGludGVycHJldGF0aW9uIGlzIHNjaGVtYS52YXJp YWJsZS4qLCBidXQgdGhpcworCQkJCQkJICogcGF0dGVybiBpcyBub3Qgc3VwcG9ydGVkIG5vdy4K KwkJCQkJCSAqLworCQkJCQkJdmFyb2lkX3dpdGhfYXR0ciA9IExvb2t1cFZhcmlhYmxlKGEsIGIs IHRydWUpOworCisJCQkJCQkvKgorCQkJCQkJICogY2hlY2sgcGF0dGVybiBjYXRhbG9nLnNjaGVt YS52YXJpYWJsZSBvbmx5IHdoZW4KKwkJCQkJCSAqIHRoZXJlIGlzIHBvc3NpYmlsaXR5IHRvIHN1 Y2Nlc3MuCisJCQkJCQkgKi8KKwkJCQkJCWlmIChzdHJjbXAoYSwgZ2V0X2RhdGFiYXNlX25hbWUo TXlEYXRhYmFzZUlkKSkgPT0gMCkKKwkJCQkJCXsKKwkJCQkJCQlmaWVsZDFfaXNfY2F0YWxvZyA9 IHRydWU7CisJCQkJCQkJdmFyb2lkX3dpdGhvdXRfYXR0ciA9IExvb2t1cFZhcmlhYmxlKGIsIGMs IHRydWUpOworCQkJCQkJfQorCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJeworCQkJCQkJQXNzZXJ0 KElzQShmaWVsZDMsIEFfU3RhcikpOworCQkJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCQkJCX0K KworCQkJCQlpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9hdHRyKSAmJiBPaWRJc1ZhbGlk KHZhcm9pZF93aXRoX2F0dHIpKQorCQkJCQl7CisJCQkJCQkqbm90X3VuaXF1ZSA9IHRydWU7CisJ CQkJCQl2YXJpZCA9IHZhcm9pZF93aXRob3V0X2F0dHI7CisJCQkJCX0KKwkJCQkJZWxzZSBpZiAo T2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9hdHRyKSkKKwkJCQkJeworCQkJCQkJdmFyaWQgPSB2 YXJvaWRfd2l0aG91dF9hdHRyOworCQkJCQl9CisJCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQodmFy b2lkX3dpdGhfYXR0cikpCisJCQkJCXsKKwkJCQkJCSphdHRybmFtZSA9IGM7CisJCQkJCQl2YXJp ZCA9IHZhcm9pZF93aXRoX2F0dHI7CisJCQkJCX0KKworCQkJCQkvKgorCQkJCQkgKiBXaGVuIHdl IGRpZG4ndCBmaW5kIHZhcmlhYmxlLCB3ZSBjYW4gKHdoZW4gaXQgaXMKKwkJCQkJICogYWxsb3dl ZCkgcmFpc2UgY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlIGVycm9yLgorCQkJCQkgKi8KKwkJCQkJ aWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSAmJiAhbm9lcnJvciAmJiAhZmllbGQxX2lzX2NhdGFsb2cp CisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVf Tk9UX1NVUFBPUlRFRCksCisJCQkJCQkJCSBlcnJtc2coImNyb3NzLWRhdGFiYXNlIHJlZmVyZW5j ZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogJXMiLAorCQkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmco bmFtZXMpKSkpOworCQkJCX0KKwkJCQlicmVhazsKKworCQkJY2FzZSA0OgorCQkJCXsKKwkJCQkJ ZmllbGQxID0gbGluaXRpYWwobmFtZXMpOworCQkJCQlmaWVsZDIgPSBsc2Vjb25kKG5hbWVzKTsK KwkJCQkJZmllbGQzID0gbHRoaXJkKG5hbWVzKTsKKwkJCQkJZmllbGQ0ID0gbGZvdXJ0aChuYW1l cyk7CisKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDEsIFN0cmluZykpOworCQkJCQlBc3NlcnQoSXNB KGZpZWxkMiwgU3RyaW5nKSk7CisJCQkJCUFzc2VydChJc0EoZmllbGQzLCBTdHJpbmcpKTsKKwor CQkJCQlhID0gc3RyVmFsKGZpZWxkMSk7CisJCQkJCWIgPSBzdHJWYWwoZmllbGQyKTsKKwkJCQkJ YyA9IHN0clZhbChmaWVsZDMpOworCisJCQkJCS8qCisJCQkJCSAqIEluIHRoaXMgY2FzZSwgImEi IGlzIHVzZWQgYXMgY2F0YWxvZyBuYW1lIC0gY2hlY2sgaXQuCisJCQkJCSAqLworCQkJCQlpZiAo c3RyY21wKGEsIGdldF9kYXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkpICE9IDApCisJCQkJCXsK KwkJCQkJCWlmICghbm9lcnJvcikKKwkJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkJKGVy cmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJCQkJIGVycm1zZygi Y3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAlcyIsCisJCQkJ CQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSkpOworCQkJCQl9CisJCQkJCWVsc2UKKwkJ CQkJeworCQkJCQkJaWYgKElzQShmaWVsZDQsIFN0cmluZykpCisJCQkJCQl7CisJCQkJCQkJZCA9 IHN0clZhbChmaWVsZDQpOworCQkJCQkJfQorCQkJCQkJZWxzZQorCQkJCQkJeworCQkJCQkJCUFz c2VydChJc0EoZmllbGQ0LCBBX1N0YXIpKTsKKwkJCQkJCQlyZXR1cm4gSW52YWxpZE9pZDsKKwkJ CQkJCX0KKworCQkJCQkJKmF0dHJuYW1lID0gZDsKKwkJCQkJCXZhcmlkID0gTG9va3VwVmFyaWFi bGUoYiwgYywgdHJ1ZSk7CisJCQkJCX0KKwkJCQl9CisJCQkJYnJlYWs7CisKKwkJCWRlZmF1bHQ6 CisJCQkJaWYgKCFub2Vycm9yKQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2Rl KEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCQkgZXJybXNnKCJpbXByb3BlciBxdWFsaWZp ZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogJXMiLAorCQkJCQkJCQkJTmFtZUxpc3RU b1N0cmluZyhuYW1lcykpKSk7CisJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCX0KKworCQkvKgor CQkgKiBJZiwgdXBvbiByZXRyeSwgd2UgZ2V0IGJhY2sgdGhlIHNhbWUgT0lEIHdlIGRpZCBsYXN0 IHRpbWUsIHRoZW4gdGhlCisJCSAqIGludmFsaWRhdGlvbiBtZXNzYWdlcyB3ZSBwcm9jZXNzZWQg ZGlkIG5vdCBjaGFuZ2UgdGhlIGZpbmFsIGFuc3dlci4KKwkJICogU28gd2UncmUgZG9uZS4KKwkJ ICoKKwkJICogSWYgd2UgZ290IGEgZGlmZmVyZW50IE9JRCwgd2UndmUgbG9ja2VkIHRoZSB2YXJp YWJsZSB0aGF0IHVzZWQgdG8KKwkJICogaGF2ZSB0aGlzIG5hbWUgcmF0aGVyIHRoYW4gdGhlIG9u ZSB0aGF0IGRvZXMgbm93LiAgU28gcmVsZWFzZSB0aGUKKwkJICogbG9jay4KKwkJICovCisJCWlm IChyZXRyeSkKKwkJeworCQkJaWYgKG9sZF92YXJpZCA9PSB2YXJpZCkKKwkJCQlicmVhazsKKwor CQkJaWYgKE9pZElzVmFsaWQob2xkX3ZhcmlkKSkKKwkJCQlVbmxvY2tEYXRhYmFzZU9iamVjdChW YXJpYWJsZVJlbGF0aW9uSWQsIG9sZF92YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJfQor CisJCS8qCisJCSAqIExvY2sgdGhlIHZhcmlhYmxlLiAgVGhpcyB3aWxsIGFsc28gYWNjZXB0IGFu eSBwZW5kaW5nIGludmFsaWRhdGlvbgorCQkgKiBtZXNzYWdlcy4gIElmIHdlIGdvdCBiYWNrIElu dmFsaWRPaWQsIGluZGljYXRpbmcgbm90IGZvdW5kLCB0aGVuCisJCSAqIHRoZXJlJ3Mgbm90aGlu ZyB0byBsb2NrLCBidXQgd2UgYWNjZXB0IGludmFsaWRhdGlvbiBtZXNzYWdlcworCQkgKiBhbnl3 YXksIHRvIGZsdXNoIGFueSBuZWdhdGl2ZSBjYXRjYWNoZSBlbnRyaWVzIHRoYXQgbWF5IGJlCisJ CSAqIGxpbmdlcmluZy4KKwkJICovCisJCWlmICghT2lkSXNWYWxpZCh2YXJpZCkpCisJCQlBY2Nl cHRJbnZhbGlkYXRpb25NZXNzYWdlcygpOworCQllbHNlIGlmIChPaWRJc1ZhbGlkKHZhcmlkKSkK KwkJCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAwLCBBY2Nl c3NTaGFyZUxvY2spOworCisJCWlmIChpbnZhbF9jb3VudCA9PSBTaGFyZWRJbnZhbGlkTWVzc2Fn ZUNvdW50ZXIpCisJCQlicmVhazsKKworCQlyZXRyeSA9IHRydWU7CisJCW9sZF92YXJpZCA9IHZh cmlkOworCQl2YXJpZCA9IEludmFsaWRPaWQ7CisJfQorCisJcmV0dXJuIHZhcmlkOworfQorCiAv KgogICogRGVjb25zdHJ1Y3RRdWFsaWZpZWROYW1lCiAgKgkJR2l2ZW4gYSBwb3NzaWJseS1xdWFs aWZpZWQgbmFtZSBleHByZXNzZWQgYXMgYSBsaXN0IG9mIFN0cmluZyBub2RlcywKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvcGdfdmFyaWFibGUuYwppbmRleCBmNjUxMjE0NDBhOS4uMWM3MzE4MWMzZGEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJwYXJzZXIv cGFyc2VfdHlwZS5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRp bHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvcGdfbHNuLmgiCiAjaW5jbHVkZSAidXRp bHMvc3lzY2FjaGUuaCIKIAogc3RhdGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNv bnN0IGNoYXIgKnZhck5hbWUsCkBAIC0xMDEsNiArMTAyLDcgQEAgY3JlYXRlX3ZhcmlhYmxlKGNv bnN0IGNoYXIgKnZhck5hbWUsCiAJdmFyaWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBWYXJp YWJsZU9pZEluZGV4SWQsIEFudW1fcGdfdmFyaWFibGVfb2lkKTsKIAogCXZhbHVlc1tBbnVtX3Bn X3ZhcmlhYmxlX29pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJpZCk7CisJdmFsdWVzW0Fu dW1fcGdfdmFyaWFibGVfdmFyY3JlYXRlX2xzbiAtIDFdID0gTFNOR2V0RGF0dW0oR2V0WExvZ0lu c2VydFJlY1B0cigpKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJuYW1lIC0gMV0gPSBO YW1lR2V0RGF0dW0oJnZhcm5hbWUpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWVz cGFjZSAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJOYW1lc3BhY2UpOwogCXZhbHVlc1tBbnVt X3BnX3ZhcmlhYmxlX3ZhcnR5cGUgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyVHlwZSk7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL01ha2VmaWxlCmluZGV4IDQ4ZjczNDhmOTFjLi4xY2ZhZWNhNTFlYSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvTWFrZWZpbGUKQEAgLTUwLDYgKzUwLDcgQEAgT0JKUyA9IFwKIAlzY2hlbWFjbWRzLm8gXAog CXNlY2xhYmVsLm8gXAogCXNlcXVlbmNlLm8gXAorCXNlc3Npb25fdmFyaWFibGUubyBcCiAJc3Rh dHNjbWRzLm8gXAogCXN1YnNjcmlwdGlvbmNtZHMubyBcCiAJdGFibGVjbWRzLm8gXApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9tZXNvbi5idWlsZAppbmRleCA2ZGQwMGE0YWJkZS4uY2E2MjFiZTVlY2IgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL21lc29uLmJ1aWxkCkBAIC0zOCw2ICszOCw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBm aWxlcygKICAgJ3NjaGVtYWNtZHMuYycsCiAgICdzZWNsYWJlbC5jJywKICAgJ3NlcXVlbmNlLmMn LAorICAnc2Vzc2lvbl92YXJpYWJsZS5jJywKICAgJ3N0YXRzY21kcy5jJywKICAgJ3N1YnNjcmlw dGlvbmNtZHMuYycsCiAgICd0YWJsZWNtZHMuYycsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUxOTBl ZjczODljCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5jCkBAIC0wLDAgKzEsNjAyIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBz ZXNzaW9uX3ZhcmlhYmxlLmMKKyAqCSAgc2Vzc2lvbiB2YXJpYWJsZSBjcmVhdGlvbi9tYW5pcHVs YXRpb24gY29tbWFuZHMKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwg UG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgor ICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaW5jbHVkZSAicG9zdGdy ZXMuaCIKKworI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKKyNpbmNsdWRlICJjb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3ZhcmlhYmxlUmVj ZWl2ZXIuaCIKKyNpbmNsdWRlICJmdW5jYXBpLmgiCisjaW5jbHVkZSAibWlzY2FkbWluLmgiCisj aW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgorI2luY2x1ZGUgInN0b3JhZ2UvbG1n ci5oIgorI2luY2x1ZGUgInN0b3JhZ2UvcHJvYy5oIgorI2luY2x1ZGUgInRjb3AvdGNvcHByb3Qu aCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2RhdHVtLmgi CisjaW5jbHVkZSAidXRpbHMvaW52YWwuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIK KyNpbmNsdWRlICJ1dGlscy9zbmFwbWdyLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIK KworLyoKKyAqIFZhbHVlcyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHRoZSBi YWNrZW5kIGxvY2FsIG1lbW9yeQorICogaW5zaWRlIHNlc3Npb252YXJzIGhhc2ggdGFibGUgaW4g YmluYXJ5IGZvcm1hdCBpbnNpZGUgYSBkZWRpY2F0ZWQgbWVtb3J5CisgKiBjb250ZXh0IFNWYXJp YWJsZU1lbW9yeUNvbnRleHQuICBUaGUgaGFzaCBrZXkgaXMgb2lkCisgKiBvZiByZWxhdGVkIGVu dHJ5IGluIHBnX3ZhcmlhYmxlIHRhYmxlLiBCdXQgbG9uZyB0ZXJtIHVuYW1iaWd1aXR5IG9mIG9p ZCBpcworICogbm90IGd1YXJhbnRlZWQuIEFzIGFuIGV4YW1wbGUsIGZvciBhIHZhbHVlIHdpdGgg b25lIG9pZCBhIHNlc3Npb24gY2FuIGJlCisgKiBpbmFjdGl2ZSBmb3IgbG9uZyB0aW1lLCB3aGls ZSBpbiB0aGUgbWVhbnRpbWUgdGhlIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZQorICogY2FuIGJl IGRyb3BwZWQgaW4gYW5vdGhlciBzZXNzaW9uLCBhc3NpZ25lZCBvaWQgY2FuIGJlIHJlbGVhc2Vk LCBhbmQKKyAqIHRoZW9yZXRpY2FseSB0aGlzIG9pZCBjYW4gYmUgYXNzaWduZWQgdG8gZGlmZmVy ZW50IHNlc3Npb24gdmFyaWFibGUuCisgKiBBdCB0aGUgZW5kLCB0aGUgcmVhZGluZyBvZiB2YWx1 ZSBzdG9yZWQgaW4gb2xkIHNlc3Npb24gc2hvdWxkIHRvIGZhaWwsCisgKiBiZWNhdXNlIHJlbGF0 ZWQgZW50cnkgaW4gcGdfdmFyaWFibGUgd2lsbCBub3QgYmUgY29uc2lzdGVudCB3aXRoCisgKiBz dG9yZWQgdmFsdWUuIFRoaXMgaXMgcmVhc29uIHdoeSB3ZSBkbyBjaGVjayBjb25zaXN0ZW5jeSBi ZXR3ZWVuIHN0b3JlZAorICogdmFsdWUgYW5kIGNhdGFsb2cgYnkgY3JlYXRlX2xzbiB2YWx1ZS4K KyAqCisgKiBCZWZvcmUgYW55IHVzYWdlIChub3Qgb25seSByZWFkIGluIHRyYW5zYWN0aW9uKSB3 ZSBuZWVkIHRvIGNoZWNrIGNvbnNpc3RlbmN5CisgKiB3aXRoIHBnX3ZhcmlhYmxlIGVudHJ5LiBX aGVuIHRoZXJlIGlzIG5vdCBlbnRyeSB3aXRoIHN0b3JlZCBvaWQsIHRoZSByZWxhdGVkCisgKiB2 YXJpYWJsZSB3YXMgZHJvcHBlZCwgYW5kIHN0b3JlZCB2YWx1ZSBpcyBub3QgY29uc2lzdGVudC4g V2hlbiBlbnRyeSB3aXRoCisgKiBrbm93biBvaWQsIGJ1dCBsc24gbnVtYmVyIGlzIGRpZmZlcmVu dCwgZW50cnkgb2YgcGdfdmFyaWFibGUgd2FzIGNyZWF0ZWQKKyAqIGZvciBkaWZmZXJlbnQgdmFy aWFibGUgYW5kIHN0b3JlZCB2YWx1ZSBpcyBub3QgY29uc2lzdGVudCBhZ2Fpbi4KKyAqLwordHlw ZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlRGF0YQoreworCU9pZAkJCXZhcmlkOwkJCS8qIHBnX3Zhcmlh YmxlIE9JRCBvZiB0aGUgdmFyaWFibGUgKGhhc2gga2V5KSAqLworCVhMb2dSZWNQdHIJY3JlYXRl X2xzbjsKKworCWJvb2wJCWlzbnVsbDsKKwlEYXR1bQkJdmFsdWU7CisKKwlPaWQJCQl0eXBpZDsK KwlpbnQxNgkJdHlwbGVuOworCWJvb2wJCXR5cGJ5dmFsOworCisJYm9vbAkJaXNfZG9tYWluOwor CisJLyoKKwkgKiBkb21haW5fY2hlY2tfZXh0cmEgaG9sZHMgYW4gZXh0cmEgKGNhY2hlKSBmb3Ig ZG9tYWluIGNoZWNrLgorCSAqIFRoaXMgZXh0cmEgaXMgdXN1YWxseSBzdG9yZWQgaW4gZm5fbWN4 dC4gV2UgZG8gbm90IGhhdmUgc2FtZQorCSAqIG1lbW9yeSBjb250ZXh0IGZvciBzZXNzaW9uIHZh cmlhYmxlcywgYnV0IHdlIGNhbiB1c2UKKwkgKiBUb3BUcmFuc2FjdGlvbkNvbnRleHQgaW5zdGVh ZC4gRnJlc2ggZXh0cmEgaXMgZm9yY2VkIHdoZW4KKwkgKiB3ZSBkZXRlY3Qgd2UgYXJlIGluIGEg ZGlmZmVyZW50IHRyYW5zYWN0aW9uIChkaWZmZXJlbnQKKwkgKiBsb2NhbCB0cmFuc2FjdGlvbiBp ZCBkb21haW5fY2hlY2tfZXh0cmFfbHhpZCkuCisJICovCisJdm9pZAkgICAqZG9tYWluX2NoZWNr X2V4dHJhOworCUxvY2FsVHJhbnNhY3Rpb25JZCBkb21haW5fY2hlY2tfZXh0cmFfbHhpZDsKKwor CS8qCisJICogU3RvcmVkIHZhbHVlIGFuZCB0eXBlIGRlc2NyaXB0aW9uIGNhbiBiZSBvdXRkYXRl ZCB3aGVuIHdlIHJlY2VpdmUKKwkgKiBzaW52YWwgbWVzc2FnZS4gV2UgaGF2ZSB0byBjaGVjayBh bHdheXMgaWYgdGhlIHN0b3JlZCBkYXRhIGFyZQorCSAqIHRydXN0ZnVsLgorCSAqLworCWJvb2wJ CWlzX3ZhbGlkOworCisJdWludDMyCQloYXNodmFsdWU7CQkvKiB1c2VkIGZvciBwYWlyaW5nIHNp bnZhbCBtZXNzYWdlICovCit9IFNWYXJpYWJsZURhdGE7CisKK3R5cGVkZWYgU1ZhcmlhYmxlRGF0 YSAqU1ZhcmlhYmxlOworCitzdGF0aWMgSFRBQiAqc2Vzc2lvbnZhcnMgPSBOVUxMOwkvKiBoYXNo IHRhYmxlIGZvciBzZXNzaW9uIHZhcmlhYmxlcyAqLworCitzdGF0aWMgTWVtb3J5Q29udGV4dCBT VmFyaWFibGVNZW1vcnlDb250ZXh0ID0gTlVMTDsKKworLyoKKyAqIENhbGxiYWNrIGZ1bmN0aW9u IGZvciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRhdGlvbi4KKyAqLworc3RhdGljIHZvaWQKK3Bn X3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBo YXNodmFsdWUpCit7CisJSEFTSF9TRVFfU1RBVFVTIHN0YXR1czsKKwlTVmFyaWFibGUJc3ZhcjsK KworCWVsb2coREVCVUcxLCAicGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2sgJXUgJXUiLCBjYWNo ZWlkLCBoYXNodmFsdWUpOworCisJQXNzZXJ0KHNlc3Npb252YXJzKTsKKworCS8qCisJICogV2hl biB0aGUgaGFzaHZhbHVlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZW4gd2UgaGF2ZSB0byByZWNoZWNr IGFsbAorCSAqIGN1cnJlbnRseSB1c2VkIHNlc3Npb24gdmFyaWFibGVzLiBTaW5jZSB3ZSBjYW4n dCBndWFyYW50ZWUgdGhlIGV4YWN0CisJICogc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIGl0cyBoYXNo VmFsdWUsIHdlIGFsc28gaGF2ZSB0byBpdGVyYXRlIG92ZXIgYWxsCisJICogaXRlbXMgb2YgdGhl IHNlc3Npb252YXJzIGhhc2ggdGFibGUuCisJICovCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBz ZXNzaW9udmFycyk7CisKKwl3aGlsZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFy Y2goJnN0YXR1cykpICE9IE5VTEwpCisJeworCQlpZiAoaGFzaHZhbHVlID09IDAgfHwgc3Zhci0+ aGFzaHZhbHVlID09IGhhc2h2YWx1ZSkKKwkJeworCQkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsK KwkJfQorCX0KK30KKworLyoKKyAqIFJlbGVhc2Ugc3RvcmVkIHZhbHVlLCBmcmVlIG1lbW9yeQor ICovCitzdGF0aWMgdm9pZAorZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKFNWYXJpYWJsZSBz dmFyKQoreworCS8qIENsZWFuIGN1cnJlbnQgdmFsdWUgKi8KKwlpZiAoIXN2YXItPmlzbnVsbCkK Kwl7CisJCWlmICghc3Zhci0+dHlwYnl2YWwpCisJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIoc3Zh ci0+dmFsdWUpKTsKKworCQlzdmFyLT5pc251bGwgPSB0cnVlOworCX0KKworCXN2YXItPnZhbHVl ID0gKERhdHVtKSAwOworfQorCisvKgorICogUmV0dXJucyB0cnVlIHdoZW4gdGhlIGVudHJ5IGlu IHBnX3ZhcmlhYmxlIGlzIGNvbnNpc3RlbnQgd2l0aAorICogdGhlIGdpdmVuIHNlc3Npb24gdmFy aWFibGUuCisgKi8KK3N0YXRpYyBib29sCitpc19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKFNWYXJp YWJsZSBzdmFyKQoreworCUhlYXBUdXBsZQl0cDsKKwlib29sCQlyZXN1bHQgPSBmYWxzZTsKKwor CUFzc2VydChPaWRJc1ZhbGlkKHN2YXItPnZhcmlkKSk7CisKKwl0cCA9IFNlYXJjaFN5c0NhY2hl MShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bShzdmFyLT52YXJpZCkpOworCisJaWYgKEhl YXBUdXBsZUlzVmFsaWQodHApKQorCXsKKwkJLyoKKwkJICogSW4gdGhpcyBjYXNlLCB0aGUgb25s eSBvaWQgY2Fubm90IGJlIHVzZWQgYXMgdW5pcXVlIGlkZW50aWZpZXIsCisJCSAqIGJlY2F1c2Ug dGhlIG9pZCBjb3VudGVyIGNhbiB3cmFwYXJvdW5kLCBhbmQgdGhlIG9pZCBjYW4gYmUgdXNlZCBm b3IKKwkJICogbmV3IG90aGVyIHNlc3Npb24gdmFyaWFibGUuIFdlIGRvIGEgc2Vjb25kIGNoZWNr IGFnYWluc3QgNjRiaXQKKwkJICogdW5pcXVlIGlkZW50aWZpZXIuCisJCSAqLworCQlpZiAoc3Zh ci0+Y3JlYXRlX2xzbiA9PSAoKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0cCkpLT52YXJj cmVhdGVfbHNuKQorCQkJcmVzdWx0ID0gdHJ1ZTsKKworCQlSZWxlYXNlU3lzQ2FjaGUodHApOwor CX0KKworCXJldHVybiByZXN1bHQ7Cit9CisKKy8qCisgKiBVcGRhdGUgYXR0cmlidXRlcyBjYWNo ZWQgaW4gc3ZhcgorICovCitzdGF0aWMgdm9pZAorc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFy aWFibGUgc3ZhciwgT2lkIHZhcmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJp YWJsZSB2YXJmb3JtOworCisJQXNzZXJ0KE9pZElzVmFsaWQodmFyaWQpKTsKKworCXR1cCA9IFNl YXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJ aWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAg ZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChG b3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCXN2YXItPnZhcmlkID0gdmFyaWQ7 CisJc3Zhci0+Y3JlYXRlX2xzbiA9IHZhcmZvcm0tPnZhcmNyZWF0ZV9sc247CisKKwlzdmFyLT50 eXBpZCA9IHZhcmZvcm0tPnZhcnR5cGU7CisKKwlnZXRfdHlwbGVuYnl2YWwoc3Zhci0+dHlwaWQs ICZzdmFyLT50eXBsZW4sICZzdmFyLT50eXBieXZhbCk7CisKKwlzdmFyLT5pc19kb21haW4gPSAo Z2V0X3R5cHR5cGUodmFyZm9ybS0+dmFydHlwZSkgPT0gVFlQVFlQRV9ET01BSU4pOworCXN2YXIt PmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CisJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhX2x4 aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOworCisJc3Zhci0+aXNudWxsID0gdHJ1ZTsK KwlzdmFyLT52YWx1ZSA9IChEYXR1bSkgMDsKKworCXN2YXItPmlzX3ZhbGlkID0gdHJ1ZTsKKwor CXN2YXItPmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZhbHVlMShWQVJJQUJMRU9JRCwKKwkJ CQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1 cCk7Cit9CisKKy8qCisgKiBBc3NpZ24gc29tZSBjb250ZW50IHRvIHRoZSBzZXNzaW9uIHZhcmlh YmxlLiBJdCdzIGNvcGllZCB0bworICogU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCBpZiBuZWNlc3Nh cnkuCisgKgorICogSWYgYW55IGVycm9yIGhhcHBlbnMsIHRoZSBleGlzdGluZyB2YWx1ZSBzaG91 bGRuJ3QgYmUgbW9kaWZpZWQuCisgKi8KK3N0YXRpYyB2b2lkCitzZXRfc2Vzc2lvbl92YXJpYWJs ZShTVmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQoreworCURhdHVtCQlu ZXd2YWw7CisJU1ZhcmlhYmxlRGF0YSBsb2NzdmFyLAorCQkJICAgKl9zdmFyOworCisJQXNzZXJ0 KHN2YXIpOworCUFzc2VydCghaXNudWxsIHx8IHZhbHVlID09IChEYXR1bSkgMCk7CisKKwkvKgor CSAqIFVzZSB0eXBieXZhbCwgdHlwYnlsZW4gZnJvbSBzZXNzaW9uIHZhcmlhYmxlIG9ubHkgd2hl biB0aGV5IGFyZQorCSAqIHRydXN0YWJsZSAodGhlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdhcyBu b3QgYWNjZXB0ZWQgZm9yIHRoaXMgdmFyaWFibGUpLgorCSAqIFdoZW4gdGhlIHZhcmlhYmxlIGlz IHBvc3NpYmx5IGludmFsaWQsIGZvcmNlIHNldHVwLgorCSAqCisJICogRG8gbm90IGRvIGl0IGFn YWluc3QgcGFzc2VkIHN2YXIsIGl0IHNob3VsZCBiZSB1bmNoYW5nZWQsIHdoZW4gYW4KKwkgKiBh c3NpZ25tZW50IGlzIG5vdCBzdWNjZXNzZnVsICh0aGUgZGF0dW1Db3B5IGNhbiBmYWlsKS4KKwkg Ki8KKwlpZiAoIXN2YXItPmlzX3ZhbGlkKQorCXsKKwkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZSgm bG9jc3Zhciwgc3Zhci0+dmFyaWQpOworCQlfc3ZhciA9ICZsb2NzdmFyOworCX0KKwllbHNlCisJ CV9zdmFyID0gc3ZhcjsKKworCWlmICghaXNudWxsKQorCXsKKwkJTWVtb3J5Q29udGV4dCBvbGRj eHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCk7CisKKwkJ bmV3dmFsID0gZGF0dW1Db3B5KHZhbHVlLCBfc3Zhci0+dHlwYnl2YWwsIF9zdmFyLT50eXBsZW4p OworCisJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQpOworCX0KKwllbHNlCisJCW5ld3Zh bCA9IHZhbHVlOworCisJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIpOworCisJLyog V2UgY2FuIG92ZXJ3cml0ZSBvbGQgdmFyaWFibGUgbm93LiBObyBlcnJvciBleHBlY3RlZCAqLwor CWlmIChzdmFyICE9IF9zdmFyKQorCQltZW1jcHkoc3ZhciwgX3N2YXIsIHNpemVvZihTVmFyaWFi bGVEYXRhKSk7CisKKwlzdmFyLT52YWx1ZSA9IG5ld3ZhbDsKKwlzdmFyLT5pc251bGwgPSBpc251 bGw7CisKKwkvKgorCSAqIFhYWCBXaGlsZSB1bmxpa2VseSwgYW4gZXJyb3IgaGVyZSBpcyBwb3Nz aWJsZS4gSXQgd291bGRuJ3QgbGVhayBtZW1vcnkKKwkgKiBhcyB0aGUgYWxsb2NhdGVkIGNodW5r IGhhcyBhbHJlYWR5IGJlZW4gY29ycmVjdGx5IGFzc2lnbmVkIHRvIHRoZQorCSAqIHNlc3Npb24g dmFyaWFibGUsIGJ1dCB3b3VsZCBjb250cmFkaWN0IHRoaXMgZnVuY3Rpb24gY29udHJhY3QsIHdo aWNoIGlzCisJICogdGhhdCB0aGlzIGZ1bmN0aW9uIHNob3VsZCBlaXRoZXIgc3VjY2VlZCBvciBs ZWF2ZSB0aGUgY3VycmVudCB2YWx1ZQorCSAqIHVudG91Y2hlZC4KKwkgKi8KKwllbG9nKERFQlVH MSwgInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBuZXcgdmFsdWUiLAor CQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShzdmFy LT52YXJpZCkpLAorCQkgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShzdmFyLT52YXJpZCksCisJ CSBzdmFyLT52YXJpZCk7Cit9CisKKy8qCisgKiBDcmVhdGUgdGhlIGhhc2ggdGFibGUgZm9yIHN0 b3Jpbmcgc2Vzc2lvbiB2YXJpYWJsZXMuCisgKi8KK3N0YXRpYyB2b2lkCitjcmVhdGVfc2Vzc2lv bnZhcnNfaGFzaHRhYmxlcyh2b2lkKQoreworCUhBU0hDVEwJCXZhcnNfY3RsOworCisJQXNzZXJ0 KCFzZXNzaW9udmFycyk7CisKKwlpZiAoIVNWYXJpYWJsZU1lbW9yeUNvbnRleHQpCisJeworCQkv KiBSZWFkIHNpbnZhbCBtZXNzYWdlcyAqLworCQlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFj ayhWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCSAgcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2ssCisJ CQkJCQkJCQkgIChEYXR1bSkgMCk7CisKKwkJLyogV2UgbmVlZCBvdXIgb3duIGxvbmcgbGl2ZWQg bWVtb3J5IGNvbnRleHQgKi8KKwkJU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9CisJCQlBbGxvY1Nl dENvbnRleHRDcmVhdGUoVG9wTWVtb3J5Q29udGV4dCwKKwkJCQkJCQkJICAic2Vzc2lvbiB2YXJp YWJsZXMiLAorCQkJCQkJCQkgIEFMTE9DU0VUX1NUQVJUX1NNQUxMX1NJWkVTKTsKKwl9CisKKwlt ZW1zZXQoJnZhcnNfY3RsLCAwLCBzaXplb2YodmFyc19jdGwpKTsKKwl2YXJzX2N0bC5rZXlzaXpl ID0gc2l6ZW9mKE9pZCk7CisJdmFyc19jdGwuZW50cnlzaXplID0gc2l6ZW9mKFNWYXJpYWJsZURh dGEpOworCXZhcnNfY3RsLmhjeHQgPSBTVmFyaWFibGVNZW1vcnlDb250ZXh0OworCisJc2Vzc2lv bnZhcnMgPSBoYXNoX2NyZWF0ZSgiU2Vzc2lvbiB2YXJpYWJsZXMiLCA2NCwgJnZhcnNfY3RsLAor CQkJCQkJCSAgSEFTSF9FTEVNIHwgSEFTSF9CTE9CUyB8IEhBU0hfQ09OVEVYVCk7Cit9CisKKy8q CisgKiBTZWFyY2ggYSBzZWVzaW9uIHZhcmlhYmxlIGluIHRoZSBoYXNoIHRhYmxlIGdpdmVuIGl0 cyBvaWQuIElmIGl0CisgKiBkb2Vzbid0IGV4aXN0LCB0aGVuIGluc2VydCBpdCB0aGVyZS4KKyAq CisgKiBDYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGRvaW5nIHBlcm1pc3Npb24gY2hlY2tzLgor ICoKKyAqIEFzIHNpZGUgZWZmZWN0IHRoaXMgZnVuY3Rpb24gYWNxdWlyZXMgQWNjZXNzU2hhcmVM b2NrIG9uCisgKiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGUgdW50aWwgdGhlIGVuZCBvZiB0aGUg dHJhbnNhY3Rpb24uCisgKi8KK3N0YXRpYyBTVmFyaWFibGUKK2dldF9zZXNzaW9uX3ZhcmlhYmxl KE9pZCB2YXJpZCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKwlib29sCQlmb3VuZDsKKworCS8qIFBy b3RlY3QgdXNlZCBzZXNzaW9uIHZhcmlhYmxlIGFnYWluc3QgZHJvcCB1bnRpbCB0cmFuc2FjdGlv biBlbmQgKi8KKwlMb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwg MCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCWlmICghc2Vzc2lvbnZhcnMpCisJCWNyZWF0ZV9zZXNz aW9udmFyc19oYXNodGFibGVzKCk7CisKKwlzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZWFyY2go c2Vzc2lvbnZhcnMsICZ2YXJpZCwKKwkJCQkJCQkJICAgSEFTSF9FTlRFUiwgJmZvdW5kKTsKKwor CWlmIChmb3VuZCkKKwl7CisJCWlmICghc3Zhci0+aXNfdmFsaWQpCisJCXsKKwkJCS8qCisJCQkg KiBUaGUgdmFyaWFibGUgY2FuIGJlIGZsYWdnZWQgYXMgaW52YWxpZCBieSBwcm9jZXNzaW5nIGlu dmFsaWRhdGlvbgorCQkJICogbWVzc2FnZSwgYnV0IGNhbiBiZSB2YWxpZGF0ZWQgYnkgcmVjaGVj ayBhZ2FpbnN0IHN5c3RlbSBjYXRhbG9nLgorCQkJICovCisJCQlpZiAoaXNfc2Vzc2lvbl92YXJp YWJsZV92YWxpZChzdmFyKSkKKwkJCQlzdmFyLT5pc192YWxpZCA9IHRydWU7CisJCQllbHNlCisJ CQkJLyoKKwkJCQkgKiBXaGVuIHRoZSB2YWx1ZSBjYW5ub3QgYmUgdmFsaWRhdGVkLCB3ZSBjYW4g c2FmZWx5IHRocm93IGl0LgorCQkJCSAqIFRoZXJlIGlzIG9pZCBpbiBjYXRhbG9nLCBidXQgaXQg aXMgcmVsYXRlZCB0byBkaWZmZXJlbnQKKwkJCQkgKiBzZXNzaW9uIHZhcmlhYmxlIChkaWZmZXJl bnQgY3JlYXRlX2xzbikuCisJCQkJICovCisJCQkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVl KHN2YXIpOworCQl9CisJfQorCWVsc2UKKwkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKKworCS8q CisJICogRm9yY2Ugc2V0dXAgZm9yIG5vdCB5ZXQgaW5pdGlhbGl6ZWQgdmFyaWFibGVzIG9yIHZh cmlhYmxlcyB0aGF0IGNhbm5vdAorCSAqIGJlIHZhbGlkYXRlZC4KKwkgKi8KKwlpZiAoIXN2YXIt PmlzX3ZhbGlkKQorCXsKKwkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShzdmFyLCB2YXJpZCk7CisK KwkJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiAob2lkOiV1KSBoYXMg YXNzaWduZWQgZW50cnkgaW4gbWVtb3J5IChlbWl0dGVkIGJ5IFJFQUQpIiwKKwkJCSBnZXRfbmFt ZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkg Z2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCksCisJCQkgdmFyaWQpOworCX0KKworCS8q IEVuc3VyZSBzbyByZXR1cm5lZCBkYXRhIGlzIHN0aWxsIGNvcnJlY3QgZG9tYWluICovCisJaWYg KHN2YXItPmlzX2RvbWFpbikKKwl7CisJCS8qCisJCSAqIFN0b3JlIGRvbWFpbl9jaGVjayBleHRy YSBpbiBUb3BUcmFuc2FjdGlvbkNvbnRleHQuIFdoZW4gd2UgYXJlIGluCisJCSAqIG90aGVyIHRy YW5zYWN0aW9uLCB0aGUgZG9tYWluX2NoZWNrX2V4dHJhIGNhY2hlIGlzIG5vdCB2YWxpZAorCQkg KiBhbnltb3JlLgorCQkgKi8KKwkJaWYgKHN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlkICE9 IE15UHJvYy0+dnhpZC5seGlkKQorCQkJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsK KworCQlkb21haW5fY2hlY2soc3Zhci0+dmFsdWUsIHN2YXItPmlzbnVsbCwKKwkJCQkJIHN2YXIt PnR5cGlkLCAmc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhLAorCQkJCQkgVG9wVHJhbnNhY3Rpb25D b250ZXh0KTsKKworCQlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmFfbHhpZCA9IE15UHJvYy0+dnhp ZC5seGlkOworCX0KKworCXJldHVybiBzdmFyOworfQorCisvKgorICogU3RvcmUgdGhlIGdpdmVu IHZhbHVlIGluIGFuIFNWYXJpYWJsZSwgYW5kIGNhY2hlIGl0IGlmIG5vdCBhbHJlYWR5IHByZXNl bnQuCisgKgorICogQ2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBkb2luZyBwZXJtaXNzaW9uIGNo ZWNrcy4KKyAqCisgKiBBcyBzaWRlIGVmZmVjdCB0aGlzIGZ1bmN0aW9uIGFjcXVpcmVzIEFjY2Vz c1NoYXJlTG9jayBvbgorICogcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlIHVudGlsIHRoZSBlbmQg b2YgdGhlIHRyYW5zYWN0aW9uLgorICovCit2b2lkCitTZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZh cmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpCit7CisJU1ZhcmlhYmxlCXN2YXI7CisJYm9v bAkJZm91bmQ7CisKKwkvKiBQcm90ZWN0IHVzZWQgc2Vzc2lvbiB2YXJpYWJsZSBhZ2FpbnN0IGRy b3AgdW50aWwgdHJhbnNhY3Rpb24gZW5kICovCisJTG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxl UmVsYXRpb25JZCwgdmFyaWQsIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwlpZiAoIXNlc3Npb252 YXJzKQorCQljcmVhdGVfc2Vzc2lvbnZhcnNfaGFzaHRhYmxlcygpOworCisJc3ZhciA9IChTVmFy aWFibGUpIGhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsCisJCQkJCQkJCSAgIEhBU0hf RU5URVIsICZmb3VuZCk7CisKKwlpZiAoIWZvdW5kKQorCXsKKwkJc2V0dXBfc2Vzc2lvbl92YXJp YWJsZShzdmFyLCB2YXJpZCk7CisKKwkJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZhcmlhYmxlIFwi JXMuJXNcIiAob2lkOiV1KSBoYXMgYXNzaWduZWQgZW50cnkgaW4gbWVtb3J5IChlbWl0dGVkIGJ5 IFdSSVRFKSIsCisJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWVzcGFjZShzdmFyLT52YXJpZCkpLAorCQkJIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zh ci0+dmFyaWQpLAorCQkJIHZhcmlkKTsKKwl9CisKKwkvKgorCSAqIFRoaXMgc2hvdWxkIGVpdGhl ciBzdWNjZWVkIG9yIGZhaWwgd2l0aG91dCBjaGFuZ2luZyB0aGUgY3VycmVudGx5CisJICogc3Rv cmVkIHZhbHVlLgorCSAqLworCXNldF9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZhbHVlLCBpc051 bGwpOworfQorCisvKgorICogV3JhcHBlciBhcm91bmQgU2V0U2Vzc2lvblZhcmlhYmxlIGFmdGVy IGNoZWNraW5nIGZvciBjb3JyZWN0IHBlcm1pc3Npb24uCisgKi8KK3ZvaWQKK1NldFNlc3Npb25W YXJpYWJsZVdpdGhTZWN1cml0eUNoZWNrKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNO dWxsKQoreworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwkvKgorCSAqIElzIGNhbGxlciBhbGxv d2VkIHRvIHVwZGF0ZSB0aGUgc2Vzc2lvbiB2YXJpYWJsZT8KKwkgKi8KKwlhY2xyZXN1bHQgPSBv YmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgR2V0VXNlcklkKCksIEFD TF9VUERBVEUpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCWFjbGNoZWNrX2Vy cm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLCBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHZhcmlkKSk7CisKKwlTZXRTZXNzaW9uVmFyaWFibGUodmFyaWQsIHZhbHVlLCBpc051bGwpOwor fQorCisvKgorICogUmV0dXJucyBjb3B5IG9mIHZhbHVlIHN0b3JlZCBpbiB2YXJpYWJsZS4KKyAq Lworc3RhdGljIGlubGluZSBEYXR1bQorY29weV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKFNWYXJp YWJsZSBzdmFyLCBib29sICppc051bGwpCit7CisJRGF0dW0JCXZhbHVlOworCisJLyogZm9yY2Ug Y29weSBvZiBub24gTlVMTCB2YWx1ZSAqLworCWlmICghc3Zhci0+aXNudWxsKQorCXsKKwkJdmFs dWUgPSBkYXR1bUNvcHkoc3Zhci0+dmFsdWUsIHN2YXItPnR5cGJ5dmFsLCBzdmFyLT50eXBsZW4p OworCQkqaXNOdWxsID0gZmFsc2U7CisJfQorCWVsc2UKKwl7CisJCXZhbHVlID0gKERhdHVtKSAw OworCQkqaXNOdWxsID0gdHJ1ZTsKKwl9CisKKwlyZXR1cm4gdmFsdWU7Cit9CisKKy8qCisgKiBS ZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsdWUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgKGluIGN1 cnJlbnQgbWVtb3J5CisgKiBjb250ZXh0KSBzcGVjaWZpZWQgYnkgaXRzIG9pZC4gQ2FsbGVyIGlz IHJlc3BvbnNpYmxlIGZvciBkb2luZyBwZXJtaXNzaW9uCisgKiBjaGVja3MuCisgKi8KK0RhdHVt CitHZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwsIE9pZCAqdHlwaWQp Cit7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwlzdmFyID0gZ2V0X3Nlc3Npb25fdmFyaWFibGUodmFy aWQpOworCisJLyoKKwkgKiBBbHRob3VnaCBzdmFyIGlzIGZyZXNobHkgdmFsaWRhdGVkIGluIHRo aXMgcG9pbnQsIHRoZSBzdmFyLT5pc192YWxpZCBjYW4KKwkgKiBiZSBmYWxzZSwgZHVlIHBvc3Np YmxlIGFjY2VwdGluZyBpbnZhbGlkYXRpb24gbWVzc2FnZSBpbnNpZGUgZG9tYWluCisJICogY2hl Y2suIE5vdywgdGhlIHZhbGlkYXRpb24gaXMgZG9uZSBhZnRlciBsb2NrLCB0aGF0IGNhbiBhbHNv IGFjY2VwdAorCSAqIGludmFsaWRhdGlvbiBtZXNzYWdlLCBzbyB2YWxpZGF0aW9uIHNob3VsZCBi ZSB0cnVzdGZ1bC4KKwkgKgorCSAqIEZvciBub3csIHdlIGRvbid0IG5lZWQgdG8gcmVwZWF0IHZh bGlkYXRpb24uIE9ubHkgc3ZhciBzaG91bGQgYmUgdmFsaWQKKwkgKiBwb2ludGVyLgorCSAqLwor CUFzc2VydChzdmFyKTsKKworCSp0eXBpZCA9IHN2YXItPnR5cGlkOworCisJcmV0dXJuIGNvcHlf c2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyLCBpc051bGwpOworfQorCisvKgorICogUmV0dXJu cyBhIGNvcHkgb2YgdGhlIHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIHNwZWNpZmllZCBi eSBpdHMgb2lkCisgKiB3aXRoIGEgY2hlY2sgb2YgdGhlIGV4cGVjdGVkIHR5cGUuIExpa2UgcHJl dmlvdXMgR2V0U2Vzc2lvblZhcmlhYmxlLCB0aGUKKyAqIGNhbGxlciBpcyByZXNwb25zaWJsZSBm b3IgZG9pbmcgcGVybWlzc2lvbiBjaGVja3MuCisgKi8KK0RhdHVtCitHZXRTZXNzaW9uVmFyaWFi bGVXaXRoVHlwZUNoZWNrKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsLCBPaWQgZXhwZWN0ZWRfdHlw aWQpCit7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwlzdmFyID0gZ2V0X3Nlc3Npb25fdmFyaWFibGUo dmFyaWQpOworCisJQXNzZXJ0KHN2YXIgJiYgc3Zhci0+aXNfdmFsaWQpOworCisJaWYgKGV4cGVj dGVkX3R5cGlkICE9IHN2YXItPnR5cGlkKQorCQllbG9nKEVSUk9SLCAidHlwZSBvZiB2YXJpYWJs ZSBcIiVzLiVzXCIgaXMgZGlmZmVyZW50IHRoYW4gZXhwZWN0ZWQiLAorCQkJIGdldF9uYW1lc3Bh Y2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCSBnZXRf c2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSk7CisKKwlyZXR1cm4gY29weV9zZXNzaW9uX3Zh cmlhYmxlX3ZhbHVlKHN2YXIsIGlzTnVsbCk7Cit9CisKKy8qCisgKiBBc3NpZ24gcmVzdWx0IG9m IGV2YWx1YXRlZCBleHByZXNzaW9uIHRvIHNlc3Npb24gdmFyaWFibGUKKyAqLwordm9pZAorRXhl Y3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJICAgTGV0U3RtdCAqc3RtdCwKKwkJ CSAgIFBhcmFtTGlzdEluZm8gcGFyYW1zLAorCQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlF bnYsCisJCQkgICBRdWVyeUNvbXBsZXRpb24gKnFjKQoreworCVF1ZXJ5CSAgICpxdWVyeSA9IGNh c3ROb2RlKFF1ZXJ5LCBzdG10LT5xdWVyeSk7CisJTGlzdAkgICAqcmV3cml0dGVuOworCURlc3RS ZWNlaXZlciAqZGVzdDsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCVBsYW5uZWRTdG10ICpwbGFu OworCVF1ZXJ5RGVzYyAgKnF1ZXJ5RGVzYzsKKwlPaWQJCQl2YXJpZCA9IHF1ZXJ5LT5yZXN1bHRW YXJpYWJsZTsKKworCUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisKKwkvKgorCSAqIElzIGl0 IGFsbG93ZWQgdG8gd3JpdGUgdG8gc2Vzc2lvbiB2YXJpYWJsZT8KKwkgKi8KKwlhY2xyZXN1bHQg PSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgR2V0VXNlcklkKCks IEFDTF9VUERBVEUpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCWFjbGNoZWNr X2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLCBnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lKHZhcmlkKSk7CisKKwkvKiBDcmVhdGUgZGVzdCByZWNlaXZlciBmb3IgTEVUICovCisJZGVz dCA9IENyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKHZhcmlkKTsKKworCS8qIHJ1biByZXdyaXRl ciAqLworCXF1ZXJ5ID0gY29weU9iamVjdChxdWVyeSk7CisKKwlyZXdyaXR0ZW4gPSBRdWVyeVJl d3JpdGUocXVlcnkpOworCisJQXNzZXJ0KGxpc3RfbGVuZ3RoKHJld3JpdHRlbikgPT0gMSk7CisK KwlxdWVyeSA9IGxpbml0aWFsX25vZGUoUXVlcnksIHJld3JpdHRlbik7CisJQXNzZXJ0KHF1ZXJ5 LT5jb21tYW5kVHlwZSA9PSBDTURfU0VMRUNUKTsKKworCS8qIHBsYW4gdGhlIHF1ZXJ5ICovCisJ cGxhbiA9IHBnX3BsYW5fcXVlcnkocXVlcnksIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAorCQkJCQkJ IENVUlNPUl9PUFRfUEFSQUxMRUxfT0ssIHBhcmFtcyk7CisKKwkvKgorCSAqIFVzZSBhIHNuYXBz aG90IHdpdGggYW4gdXBkYXRlZCBjb21tYW5kIElEIHRvIGVuc3VyZSB0aGlzIHF1ZXJ5IHNlZXMK KwkgKiByZXN1bHRzIG9mIGFueSBwcmV2aW91c2x5IGV4ZWN1dGVkIHF1ZXJpZXMuICAoVGhpcyBj b3VsZCBvbmx5IG1hdHRlciBpZgorCSAqIHRoZSBwbGFubmVyIGV4ZWN1dGVkIGFuIGFsbGVnZWRs eS1zdGFibGUgZnVuY3Rpb24gdGhhdCBjaGFuZ2VkIHRoZQorCSAqIGRhdGFiYXNlIGNvbnRlbnRz LCBidXQgbGV0J3MgZG8gaXQgYW55d2F5IHRvIGJlIHBhcmFsbGVsIHRvIHRoZSBFWFBMQUlOCisJ ICogY29kZSBwYXRoLikKKwkgKi8KKwlQdXNoQ29waWVkU25hcHNob3QoR2V0QWN0aXZlU25hcHNo b3QoKSk7CisJVXBkYXRlQWN0aXZlU25hcHNob3RDb21tYW5kSWQoKTsKKworCS8qIENyZWF0ZSBh IFF1ZXJ5RGVzYywgcmVkaXJlY3Rpbmcgb3V0cHV0IHRvIG91ciB0dXBsZSByZWNlaXZlciAqLwor CXF1ZXJ5RGVzYyA9IENyZWF0ZVF1ZXJ5RGVzYyhwbGFuLCBwc3RhdGUtPnBfc291cmNldGV4dCwK KwkJCQkJCQkJR2V0QWN0aXZlU25hcHNob3QoKSwgSW52YWxpZFNuYXBzaG90LAorCQkJCQkJCQlk ZXN0LCBwYXJhbXMsIHF1ZXJ5RW52LCAwKTsKKworCS8qIGNhbGwgRXhlY3V0b3JTdGFydCB0byBw cmVwYXJlIHRoZSBwbGFuIGZvciBleGVjdXRpb24gKi8KKwlFeGVjdXRvclN0YXJ0KHF1ZXJ5RGVz YywgMCk7CisKKwkvKgorCSAqIFJ1biB0aGUgcGxhbiB0byBjb21wbGV0aW9uLiBUaGUgcmVzdWx0 IHNob3VsZCBiZSBvbmx5IG9uZSByb3cuIEZvciBhbgorCSAqIGNoZWNrIHRvb19tYW55X3Jvd3Mg d2UgbmVlZCB0byByZWFkIHR3byByb3dzLgorCSAqLworCUV4ZWN1dG9yUnVuKHF1ZXJ5RGVzYywg Rm9yd2FyZFNjYW5EaXJlY3Rpb24sIDJMLCB0cnVlKTsKKworCS8qIHNhdmUgdGhlIHJvd2NvdW50 IGlmIHdlJ3JlIGdpdmVuIGEgcWMgdG8gZmlsbCAqLworCWlmIChxYykKKwkJU2V0UXVlcnlDb21w bGV0aW9uKHFjLCBDTURUQUdfTEVULCBxdWVyeURlc2MtPmVzdGF0ZS0+ZXNfcHJvY2Vzc2VkKTsK KworCS8qIGFuZCBjbGVhbiB1cCAqLworCUV4ZWN1dG9yRmluaXNoKHF1ZXJ5RGVzYyk7CisJRXhl Y3V0b3JFbmQocXVlcnlEZXNjKTsKKworCUZyZWVRdWVyeURlc2MocXVlcnlEZXNjKTsKKworCVBv cEFjdGl2ZVNuYXBzaG90KCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9N YWtlZmlsZSBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlCmluZGV4IDExMTE4ZDBjZTAy Li43MTI0OGEzNGYyNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUK KysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUKQEAgLTc2LDYgKzc2LDcgQEAgT0JK UyA9IFwKIAlub2RlV2luZG93QWdnLm8gXAogCW5vZGVXb3JrdGFibGVzY2FuLm8gXAogCXNwaS5v IFwKKwlzdmFyaWFibGVSZWNlaXZlci5vIFwKIAl0cXVldWUubyBcCiAJdHN0b3JlUmVjZWl2ZXIu bwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwppbmRleCBjY2Q0ODYzNzc4NC4uOTcyMjMzZWMyNWIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgImNh dGFsb2cvb2JqZWN0YWNjZXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5o IgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivbm9k ZVN1YnBsYW4uaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC05ODcsNiArOTg4LDQ3IEBAIEV4 ZWNJbml0RXhwclJlYyhFeHByICpub2RlLCBFeHByU3RhdGUgKnN0YXRlLAogCQkJCQkJc2NyYXRj aC5kLnBhcmFtLnBhcmFtdHlwZSA9IHBhcmFtLT5wYXJhbXR5cGU7CiAJCQkJCQlFeHByRXZhbFB1 c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CiAJCQkJCQlicmVhazsKKworCQkJCQljYXNlIFBBUkFN X1ZBUklBQkxFOgorCQkJCQkJeworCQkJCQkJCWludAkJCWVzX251bV9zZXNzaW9uX3ZhcmlhYmxl cyA9IDA7CisJCQkJCQkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKmVzX3Nlc3Npb25fdmFyaWFibGVz ID0gTlVMTDsKKwkJCQkJCQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqdmFyOworCisJCQkJCQkJaWYg KHN0YXRlLT5wYXJlbnQgJiYgc3RhdGUtPnBhcmVudC0+c3RhdGUpCisJCQkJCQkJeworCQkJCQkJ CQllc19zZXNzaW9uX3ZhcmlhYmxlcyA9IHN0YXRlLT5wYXJlbnQtPnN0YXRlLT5lc19zZXNzaW9u X3ZhcmlhYmxlczsKKwkJCQkJCQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gc3RhdGUtPnBh cmVudC0+c3RhdGUtPmVzX251bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwkJCQkJCQl9CisKKwkJCQkJ CQlBc3NlcnQoZXNfc2Vzc2lvbl92YXJpYWJsZXMpOworCisJCQkJCQkJLyoKKwkJCQkJCQkgKiBV c2UgYnVmZmVyZWQgc2Vzc2lvbiB2YXJpYWJsZXMgd2hlbiB0aGUKKwkJCQkJCQkgKiBidWZmZXIg d2l0aCBjb3BpZWQgdmFsdWVzIGlzIGF2YWlhYmxlCisJCQkJCQkJICogKHN0YW5kYXJkIHF1ZXJ5 IGV4ZWN1dG9yIG1vZGUpCisJCQkJCQkJICovCisKKwkJCQkJCQkvKiBQYXJhbWV0ZXIgc2FuaXR5 IGNoZWNrcy4gKi8KKwkJCQkJCQlpZiAocGFyYW0tPnBhcmFtaWQgPj0gZXNfbnVtX3Nlc3Npb25f dmFyaWFibGVzKQorCQkJCQkJCQllbG9nKEVSUk9SLCAicGFyYW1pZCBvZiBQQVJBTV9WQVJJQUJM RSBwYXJhbSBpcyBvdXQgb2YgcmFuZ2UiKTsKKworCQkJCQkJCXZhciA9ICZlc19zZXNzaW9uX3Zh cmlhYmxlc1twYXJhbS0+cGFyYW1pZF07CisKKwkJCQkJCQlpZiAodmFyLT50eXBpZCAhPSBwYXJh bS0+cGFyYW10eXBlKQorCQkJCQkJCQllbG9nKEVSUk9SLCAidHlwZSBvZiBidWZmZXJlZCB2YWx1 ZSBpcyBkaWZmZXJlbnQgdGhhbiBQQVJBTV9WQVJJQUJMRSB0eXBlIik7CisKKwkJCQkJCQkvKgor CQkJCQkJCSAqIEluIHRoaXMgY2FzZSwgcGFzcyB0aGUgdmFsdWUgbGlrZSBhCisJCQkJCQkJICog Y29uc3RhbnQuCisJCQkJCQkJICovCisJCQkJCQkJc2NyYXRjaC5vcGNvZGUgPSBFRU9QX0NPTlNU OworCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC52YWx1ZSA9IHZhci0+dmFsdWU7CisJCQkJCQkJ c2NyYXRjaC5kLmNvbnN0dmFsLmlzbnVsbCA9IHZhci0+aXNudWxsOworCQkJCQkJCUV4cHJFdmFs UHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNoKTsKKwkJCQkJCX0KKwkJCQkJCWJyZWFrOworCiAJCQkJ CWNhc2UgUEFSQU1fRVhURVJOOgogCiAJCQkJCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKaW5k ZXggNGQ3YzkyZDYzYzEuLmYyZmI2ODBkZWZjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVj dXRvci9leGVjTWFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKQEAg LTQzLDcgKzQzLDkgQEAKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFs b2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wYXJ0aXRpb24uaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvbWF0dmlldy5oIgor I2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5k cy90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJl eGVjdXRvci9ub2RlU3VicGxhbi5oIgpAQCAtMTk2LDYgKzE5OCw1MSBAQCBzdGFuZGFyZF9FeGVj dXRvclN0YXJ0KFF1ZXJ5RGVzYyAqcXVlcnlEZXNjLCBpbnQgZWZsYWdzKQogCUFzc2VydChxdWVy eURlc2MtPnNvdXJjZVRleHQgIT0gTlVMTCk7CiAJZXN0YXRlLT5lc19zb3VyY2VUZXh0ID0gcXVl cnlEZXNjLT5zb3VyY2VUZXh0OwogCisJLyoKKwkgKiBUaGUgZXhlY3V0b3IgZG9lc24ndCB3b3Jr IHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMgZGlyZWN0bHkuIFZhbHVlcyBvZgorCSAqIHJlbGF0ZWQg c2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGNvcGllZCB0byBkZWRpY2F0ZWQgYXJyYXksIGFuZCB0aGlz IGFycmF5CisJICogaXMgcGFzc2VkIHRvIGV4ZWN1dG9yLgorCSAqLworCWlmIChxdWVyeURlc2Mt PnBsYW5uZWRzdG10LT5zZXNzaW9uVmFyaWFibGVzKQorCXsKKwkJTGlzdENlbGwgICAqbGM7CisJ CWludAkJCW5TZXNzaW9uVmFyaWFibGVzOworCQlpbnQJCQlpID0gMDsKKworCQkvKgorCQkgKiBJ biB0aGlzIGNhc2UsIHRoZSBxdWVyeSB1c2VzIHNlc3Npb24gdmFyaWFibGVzLCBidXQgd2UgaGF2 ZSB0bworCQkgKiBwcmVwYXJlIHRoZSBhcnJheSB3aXRoIHBhc3NlZCB2YWx1ZXMgKG9mIHVzZWQg c2Vzc2lvbiB2YXJpYWJsZXMpCisJCSAqIGZpcnN0LgorCQkgKi8KKwkJQXNzZXJ0KCFJc1BhcmFs bGVsV29ya2VyKCkpOworCQluU2Vzc2lvblZhcmlhYmxlcyA9IGxpc3RfbGVuZ3RoKHF1ZXJ5RGVz Yy0+cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJpYWJsZXMpOworCisJCS8qIENyZWF0ZSB0aGUgYXJy YXkgdXNlZCBmb3IgcGFzc2luZyB2YWx1ZXMgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLwor CQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzID0gKFNlc3Npb25WYXJpYWJsZVZhbHVlICop CisJCQlwYWxsb2MoblNlc3Npb25WYXJpYWJsZXMgKiBzaXplb2YoU2Vzc2lvblZhcmlhYmxlVmFs dWUpKTsKKworCQkvKiBGaWxsIHRoZSBhcnJheSAqLworCQlmb3JlYWNoKGxjLCBxdWVyeURlc2Mt PnBsYW5uZWRzdG10LT5zZXNzaW9uVmFyaWFibGVzKQorCQl7CisJCQlBY2xSZXN1bHQJYWNscmVz dWx0OworCQkJT2lkCQkJdmFyaWQgPSBsZmlyc3Rfb2lkKGxjKTsKKworCQkJYWNscmVzdWx0ID0g b2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIEdldFVzZXJJZCgpLCBB Q0xfU0VMRUNUKTsKKwkJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQkJYWNsY2hl Y2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfVkFSSUFCTEUsCisJCQkJCQkJICAgZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJCQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFi bGVzW2ldLnZhcmlkID0gdmFyaWQ7CisJCQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ld LnZhbHVlID0gR2V0U2Vzc2lvblZhcmlhYmxlKHZhcmlkLAorCQkJCQkJCQkJCQkJCQkJCQkgICAm ZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlc1tpXS5pc251bGwsCisJCQkJCQkJCQkJCQkJCQkJ CSAgICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ldLnR5cGlkKTsKKworCQkJaSsrOwor CQl9CisKKwkJZXN0YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBuU2Vzc2lvblZhcmlh YmxlczsKKwl9CisKIAkvKgogCSAqIEZpbGwgaW4gdGhlIHF1ZXJ5IGVudmlyb25tZW50LCBpZiBh bnksIGZyb20gcXVlcnlEZXNjLgogCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5idWlsZAppbmRleCBi NTExYTQyOWFkZi4uYjY2NjJjNmU4ZmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkCkBAIC02 NCw2ICs2NCw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ25vZGVXaW5kb3dBZ2cu YycsCiAgICdub2RlV29ya3RhYmxlc2Nhbi5jJywKICAgJ3NwaS5jJywKKyAgJ3N2YXJpYWJsZVJl Y2VpdmVyLmMnLAogICAndHF1ZXVlLmMnLAogICAndHN0b3JlUmVjZWl2ZXIuYycsCiApCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uNzZjZDhhMGZiMzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCkBAIC0wLDAgKzEsMjAxIEBACisvKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqCisgKiBzdmFyaWFibGVSZWNlaXZlci5jCisgKgkgIEFuIGltcGxl bWVudGF0aW9uIG9mIERlc3RSZWNlaXZlciB0aGF0IHN0b3JlcyB0aGUgcmVzdWx0IHZhbHVlIGlu CisgKgkgIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRp b25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxp Zm9ybmlhCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tlbmQvZXhlY3V0b3Iv c3ZhcmlhYmxlUmVjZWl2ZXIuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNs dWRlICJwb3N0Z3Jlcy5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorCisjaW5jbHVkZSAiYWNj ZXNzL2RldG9hc3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisjaW5jbHVk ZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgorI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJp YWJsZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAic3RvcmFnZS9sb2NrLmgiCisjaW5jbHVkZSAidXRp bHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1 dGlscy9zeXNjYWNoZS5oIgorCisvKgorICogVGhpcyBEZXN0UmVjZWl2ZXIgaXMgdXNlZCBieSB0 aGUgTEVUIGNvbW1hbmQgZm9yIHN0b3JpbmcgdGhlIHJlc3VsdCB0bworICogc2Vzc2lvbiB2YXJp YWJsZS4gIFRoZSByZXN1bHQgaGFzIHRvIGhhdmUgb25seSBvbmUgdHVwbGUgd2l0aCBvbmx5IG9u ZQorICogbm90IGRlbGV0ZWQgYXR0cmlidXRlLiAgVGhlIHJvdyBjb3VudGVyIChmaWVsZCAicm93 cyIpIGlzIGluY3JlbWVudGVkCisgKiBhZnRlciByZWNlaXZpbmcgb2YgYW55IHJvdywgYW5kIHRo ZSBlcnJvciBpcyByYWlzZWQgd2hlbiB0aGVyZSBhcmUgbm8gcm93cworICogb3IgdGhlcmUgYXJl IG1vcmUgdGhhbiBvbmUgcmVjZWl2ZWQgcm93cy4gIEJlY2F1c2UgcmVjZWl2ZWQgdHVwbGUgY2Fu IGhhdmUKKyAqIGRlbGV0ZWQgYXR0cmlidXRlcywgd2UgbmVlZCB0byBmaW5kIHdpcnN0IG5vdCBk ZWxldGVkIGF0dHJpYnV0ZQorICogKGZpZWxkICJzbG90X29mZnNldCIpLiBUaGUgdmFsdWUgaXMg ZGV0b2FzdGVkIGJlZm9yZSBzdG9yaW5nIHRvIHNlc3Npb24KKyAqIHZhcmlhYmxlLgorICovCit0 eXBlZGVmIHN0cnVjdAoreworCURlc3RSZWNlaXZlciBwdWI7CisJT2lkCQkJdmFyaWQ7CisJYm9v bAkJbmVlZF9kZXRvYXN0OwkJLyogd2UgbmVlZCBkZXRvYXN0IGF0dHI/ICovCisJaW50CQkJc2xv dF9vZmZzZXQ7CQkvKiBwb3NpdGlvbiBvZiBub3QgZGVsZXRlZCBhdHRyICovCisJaW50CQkJcm93 czsJCQkJLyogcm93IGNvdW50ZXIgKi8KK30gU1ZhcmlhYmxlU3RhdGU7CisKKy8qCisgKiBQcmVw YXJlIHRvIHJlY2VpdmUgdHVwbGVzIGZyb20gZXhlY3V0b3IuCisgKi8KK3N0YXRpYyB2b2lkCitz dmFyaWFibGVTdGFydHVwUmVjZWl2ZXIoRGVzdFJlY2VpdmVyICpzZWxmLCBpbnQgb3BlcmF0aW9u LCBUdXBsZURlc2MgdHlwZWluZm8pCit7CisJU1ZhcmlhYmxlU3RhdGUgKm15U3RhdGUgPSAoU1Zh cmlhYmxlU3RhdGUgKikgc2VsZjsKKwlpbnQJCQluYXR0cyA9IHR5cGVpbmZvLT5uYXR0czsKKwlp bnQJCQlvdXRjb2xzID0gMDsKKwlpbnQJCQlpOworCUxPQ0tUQUcJCWxvY2t0YWcgUEdfVVNFRF9G T1JfQVNTRVJUU19PTkxZOworCisJQXNzZXJ0KG15U3RhdGUtPnB1Yi5teWRlc3QgPT0gRGVzdFZh cmlhYmxlKTsKKwlBc3NlcnQoT2lkSXNWYWxpZChteVN0YXRlLT52YXJpZCkpOworCUFzc2VydChT ZWFyY2hTeXNDYWNoZUV4aXN0czEoVkFSSUFCTEVPSUQsIG15U3RhdGUtPnZhcmlkKSk7CisKKyNp ZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisKKwlTRVRfTE9DS1RBR19PQkpFQ1QobG9ja3RhZywK KwkJCQkJICAgTXlEYXRhYmFzZUlkLAorCQkJCQkgICBWYXJpYWJsZVJlbGF0aW9uSWQsCisJCQkJ CSAgIG15U3RhdGUtPnZhcmlkLAorCQkJCQkgICAwKTsKKworCUFzc2VydChMb2NrSGVsZEJ5TWUo JmxvY2t0YWcsIEFjY2Vzc1NoYXJlTG9jaywgZmFsc2UpKTsKKworI2VuZGlmCisKKwlmb3IgKGkg PSAwOyBpIDwgbmF0dHM7IGkrKykKKwl7CisJCUZvcm1fcGdfYXR0cmlidXRlIGF0dHIgPSBUdXBs ZURlc2NBdHRyKHR5cGVpbmZvLCBpKTsKKwkJT2lkCQkJdHlwaWQ7CisJCU9pZAkJCWNvbGxpZDsK KwkJaW50MzIJCXR5cG1vZDsKKworCQlpZiAoYXR0ci0+YXR0aXNkcm9wcGVkKQorCQkJY29udGlu dWU7CisKKwkJaWYgKCsrb3V0Y29scyA+IDEpCisJCQljb250aW51ZTsKKworCQlnZXRfc2Vzc2lv bl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQobXlTdGF0ZS0+dmFyaWQsCisJCQkJCQkJCQkJ CQkmdHlwaWQsCisJCQkJCQkJCQkJCQkmdHlwbW9kLAorCQkJCQkJCQkJCQkJJmNvbGxpZCk7CisK KwkJLyoKKwkJICogZG91YmxlIGNoZWNrIC0gdGhlIHR5cGUgYW5kIHR5cG1vZCBvZiB0YXJnZXQg dmFyaWFibGUgc2hvdWxkIGJlCisJCSAqIHNhbWUgYXMgdHlwZSBhbmQgdHlwbW9kIG9mIGFzc2ln bm1lbnQgZXhwcmVzc2lvbi4gSXQgc2hvdWxkIGJlLCB0aGUKKwkJICogZXhwcmVzc2lvbiBpcyB3 cmFwcGVkIGJ5IGNhc3QgdG8gdGFyZ2V0IHR5cGUgYW5kIHR5cG1vZC4KKwkJICovCisJCWlmIChh dHRyLT5hdHR0eXBpZCAhPSB0eXBpZCB8fAorCQkJKGF0dHItPmF0dHR5cG1vZCA+PSAwICYmCisJ CQkgYXR0ci0+YXR0dHlwbW9kICE9IHR5cG1vZCkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQko ZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJIGVycm1zZygidGFyZ2V0 IHNlc3Npb24gdmFyaWFibGUgaXMgb2YgdHlwZSAlcyIKKwkJCQkJCQkiIGJ1dCBleHByZXNzaW9u IGlzIG9mIHR5cGUgJXMiLAorCQkJCQkJCWZvcm1hdF90eXBlX3dpdGhfdHlwZW1vZCh0eXBpZCwg dHlwbW9kKSwKKwkJCQkJCQlmb3JtYXRfdHlwZV93aXRoX3R5cGVtb2QoYXR0ci0+YXR0dHlwaWQs CisJCQkJCQkJCQkJCQkJIGF0dHItPmF0dHR5cG1vZCkpKSk7CisKKwkJbXlTdGF0ZS0+bmVlZF9k ZXRvYXN0ID0gYXR0ci0+YXR0bGVuID09IC0xOworCQlteVN0YXRlLT5zbG90X29mZnNldCA9IGk7 CisJfQorCisJaWYgKG91dGNvbHMgIT0gMSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29k ZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJIGVycm1zZ19wbHVyYWwoImFzc2lnbm1lbnQg ZXhwcmVzc2lvbiByZXR1cm5lZCAlZCBjb2x1bW4iLAorCQkJCQkJCSAgICJhc3NpZ25tZW50IGV4 cHJlc3Npb24gcmV0dXJuZWQgJWQgY29sdW1ucyIsCisJCQkJCQkJICAgb3V0Y29scywKKwkJCQkJ CQkgICBvdXRjb2xzKSkpOworCisJbXlTdGF0ZS0+cm93cyA9IDA7Cit9CisKKy8qCisgKiBSZWNl aXZlIGEgdHVwbGUgZnJvbSB0aGUgZXhlY3V0b3IgYW5kIHN0b3JlIGl0IGluIHNlc3Npb24gdmFy aWFibGUuCisgKi8KK3N0YXRpYyBib29sCitzdmFyaWFibGVSZWNlaXZlU2xvdChUdXBsZVRhYmxl U2xvdCAqc2xvdCwgRGVzdFJlY2VpdmVyICpzZWxmKQoreworCVNWYXJpYWJsZVN0YXRlICpteVN0 YXRlID0gKFNWYXJpYWJsZVN0YXRlICopIHNlbGY7CisJRGF0dW0JCXZhbHVlOworCWJvb2wJCWlz bnVsbDsKKwlib29sCQlmcmVldmFsID0gZmFsc2U7CisKKwkvKiBNYWtlIHN1cmUgdGhlIHR1cGxl IGlzIGZ1bGx5IGRlY29uc3RydWN0ZWQgKi8KKwlzbG90X2dldGFsbGF0dHJzKHNsb3QpOworCisJ dmFsdWUgPSBzbG90LT50dHNfdmFsdWVzW215U3RhdGUtPnNsb3Rfb2Zmc2V0XTsKKwlpc251bGwg PSBzbG90LT50dHNfaXNudWxsW215U3RhdGUtPnNsb3Rfb2Zmc2V0XTsKKworCWlmIChteVN0YXRl LT5uZWVkX2RldG9hc3QgJiYgIWlzbnVsbCAmJiBWQVJBVFRfSVNfRVhURVJOQUwoRGF0dW1HZXRQ b2ludGVyKHZhbHVlKSkpCisJeworCQl2YWx1ZSA9IFBvaW50ZXJHZXREYXR1bShkZXRvYXN0X2V4 dGVybmFsX2F0dHIoKHN0cnVjdCB2YXJsZW5hICopCisJCQkJCQkJCQkJCQkJICBEYXR1bUdldFBv aW50ZXIodmFsdWUpKSk7CisJCWZyZWV2YWwgPSB0cnVlOworCX0KKworCW15U3RhdGUtPnJvd3Mg Kz0gMTsKKworCWlmIChteVN0YXRlLT5yb3dzID4gMSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX1RPT19NQU5ZX1JPV1MpLAorCQkJCSBlcnJtc2coImV4cHJlc3Npb24g cmV0dXJuZWQgbW9yZSB0aGFuIG9uZSByb3ciKSkpOworCisJU2V0U2Vzc2lvblZhcmlhYmxlKG15 U3RhdGUtPnZhcmlkLCB2YWx1ZSwgaXNudWxsKTsKKworCWlmIChmcmVldmFsKQorCQlwZnJlZShE YXR1bUdldFBvaW50ZXIodmFsdWUpKTsKKworCXJldHVybiB0cnVlOworfQorCisvKgorICogQ2xl YW4gdXAgYXQgZW5kIG9mIGFuIGV4ZWN1dG9yIHJ1bgorICovCitzdGF0aWMgdm9pZAorc3Zhcmlh YmxlU2h1dGRvd25SZWNlaXZlcihEZXN0UmVjZWl2ZXIgKnNlbGYpCit7CisJaWYgKCgoU1Zhcmlh YmxlU3RhdGUgKikgc2VsZiktPnJvd3MgPT0gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJy Y29kZShFUlJDT0RFX05PX0RBVEFfRk9VTkQpLAorCQkJCSBlcnJtc2coImV4cHJlc3Npb24gcmV0 dXJuZWQgbm8gcm93cyIpKSk7Cit9CisKKy8qCisgKiBEZXN0cm95IHJlY2VpdmVyIHdoZW4gZG9u ZSB3aXRoIGl0CisgKi8KK3N0YXRpYyB2b2lkCitzdmFyaWFibGVEZXN0cm95UmVjZWl2ZXIoRGVz dFJlY2VpdmVyICpzZWxmKQoreworCXBmcmVlKHNlbGYpOworfQorCisvKgorICogSW5pdGlhbGx5 IGNyZWF0ZSBhIERlc3RSZWNlaXZlciBvYmplY3QuCisgKi8KK0Rlc3RSZWNlaXZlciAqCitDcmVh dGVWYXJpYWJsZURlc3RSZWNlaXZlcihPaWQgdmFyaWQpCit7CisJU1ZhcmlhYmxlU3RhdGUgKnNl bGYgPSAoU1ZhcmlhYmxlU3RhdGUgKikgcGFsbG9jMChzaXplb2YoU1ZhcmlhYmxlU3RhdGUpKTsK KworCXNlbGYtPnB1Yi5yZWNlaXZlU2xvdCA9IHN2YXJpYWJsZVJlY2VpdmVTbG90OworCXNlbGYt PnB1Yi5yU3RhcnR1cCA9IHN2YXJpYWJsZVN0YXJ0dXBSZWNlaXZlcjsKKwlzZWxmLT5wdWIuclNo dXRkb3duID0gc3ZhcmlhYmxlU2h1dGRvd25SZWNlaXZlcjsKKwlzZWxmLT5wdWIuckRlc3Ryb3kg PSBzdmFyaWFibGVEZXN0cm95UmVjZWl2ZXI7CisJc2VsZi0+cHViLm15ZGVzdCA9IERlc3RWYXJp YWJsZTsKKworCXNlbGYtPnZhcmlkID0gdmFyaWQ7CisKKwlyZXR1cm4gKERlc3RSZWNlaXZlciAq KSBzZWxmOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9z cmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRleCBkMmUyYWY0ZjgxMS4uMDdmZTA1ZGVh ZmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9i YWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC00MzI4LDYgKzQzMjgsMTYgQEAgcmF3X2V4cHJl c3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJ CX0KIAkJCWJyZWFrOworCQljYXNlIFRfTGV0U3RtdDoKKwkJCXsKKwkJCQlMZXRTdG10ICAgICpz dG10ID0gKExldFN0bXQgKikgbm9kZTsKKworCQkJCWlmIChXQUxLKHN0bXQtPnRhcmdldCkpCisJ CQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKHN0bXQtPnF1ZXJ5KSkKKwkJCQkJcmV0dXJu IHRydWU7CisJCQl9CisJCQlicmVhazsKIAkJY2FzZSBUX1BMQXNzaWduU3RtdDoKIAkJCXsKIAkJ CQlQTEFzc2lnblN0bXQgKnN0bXQgPSAoUExBc3NpZ25TdG10ICopIG5vZGU7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgYi9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9wbGFubmVyLmMKaW5kZXggOTQ4YWZkOTA5NDguLjIzMGFkMWE5YTNhIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKKysrIGIvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCkBAIC0zMjMsNiArMzIzLDcgQEAgc3RhbmRh cmRfcGxhbm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywgaW50IGN1 cnNvck9wdGlvbnMsCiAJZ2xvYi0+bGFzdFBsYW5Ob2RlSWQgPSAwOwogCWdsb2ItPnRyYW5zaWVu dFBsYW4gPSBmYWxzZTsKIAlnbG9iLT5kZXBlbmRzT25Sb2xlID0gZmFsc2U7CisJZ2xvYi0+c2Vz c2lvblZhcmlhYmxlcyA9IE5JTDsKIAogCS8qCiAJICogQXNzZXNzIHdoZXRoZXIgaXQncyBmZWFz aWJsZSB0byB1c2UgcGFyYWxsZWwgbW9kZSBmb3IgdGhpcyBxdWVyeS4gV2UKQEAgLTU1Nyw2ICs1 NTgsNyBAQCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlf c3RyaW5nLCBpbnQgY3Vyc29yT3B0aW9ucywKIAlyZXN1bHQtPnBhcmFtRXhlY1R5cGVzID0gZ2xv Yi0+cGFyYW1FeGVjVHlwZXM7CiAJLyogdXRpbGl0eVN0bXQgc2hvdWxkIGJlIG51bGwsIGJ1dCB3 ZSBtaWdodCBhcyB3ZWxsIGNvcHkgaXQgKi8KIAlyZXN1bHQtPnV0aWxpdHlTdG10ID0gcGFyc2Ut PnV0aWxpdHlTdG10OworCXJlc3VsdC0+c2Vzc2lvblZhcmlhYmxlcyA9IGdsb2ItPnNlc3Npb25W YXJpYWJsZXM7CiAJcmVzdWx0LT5zdG10X2xvY2F0aW9uID0gcGFyc2UtPnN0bXRfbG9jYXRpb247 CiAJcmVzdWx0LT5zdG10X2xlbiA9IHBhcnNlLT5zdG10X2xlbjsKIApAQCAtNzI3LDYgKzcyOSwx MiBAQCBzdWJxdWVyeV9wbGFubmVyKFBsYW5uZXJHbG9iYWwgKmdsb2IsIFF1ZXJ5ICpwYXJzZSwg UGxhbm5lckluZm8gKnBhcmVudF9yb290LAogCSAqLwogCXB1bGxfdXBfc3VicXVlcmllcyhyb290 KTsKIAorCS8qCisJICogQ2hlY2sgaWYgc29tZSBzdWJxdWVyeSB1c2VzIHNlc3Npb24gdmFyaWFi bGUuIEZsYWcgaGFzU2Vzc2lvblZhcmlhYmxlcworCSAqIHNob3VsZCBiZSB0cnVlIGlmIHF1ZXJ5 IG9yIHNvbWUgc3VicXVlcnkgdXNlcyBhbnkgc2Vzc2lvbiB2YXJpYWJsZS4KKwkgKi8KKwlwdWxs X3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlcyhyb290KTsKKwogCS8qCiAJICogSWYgdGhpcyBpcyBh IHNpbXBsZSBVTklPTiBBTEwgcXVlcnksIGZsYXR0ZW4gaXQgaW50byBhbiBhcHBlbmRyZWwuIFdl CiAJICogZG8gdGhpcyBub3cgYmVjYXVzZSBpdCByZXF1aXJlcyBhcHBseWluZyBwdWxsX3VwX3N1 YnF1ZXJpZXMgdG8gdGhlIGxlYWYKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9w bGFuL3NldHJlZnMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYwppbmRl eCA3YWVkODQ1ODRjNi4uM2YzNjY5N2Y2NjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL3NldHJlZnMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRy ZWZzLmMKQEAgLTIwOSw3ICsyMDksOSBAQCBzdGF0aWMgTGlzdCAqc2V0X3JldHVybmluZ19jbGF1 c2VfcmVmZXJlbmNlcyhQbGFubmVySW5mbyAqcm9vdCwKIHN0YXRpYyBMaXN0ICpzZXRfd2luZG93 YWdnX3J1bmNvbmRpdGlvbl9yZWZlcmVuY2VzKFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJCQkJ CQkJICAgTGlzdCAqcnVuY29uZGl0aW9uLAogCQkJCQkJCQkJCQkJICAgUGxhbiAqcGxhbik7Ci0K K3N0YXRpYyBib29sIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlcihOb2RlICpu b2RlLAorCQkJCQkJCQkJCQkJIFBsYW5uZXJJbmZvICpyb290KTsKK3N0YXRpYyB2b2lkIHJlY29y ZF9wbGFuX3ZhcmlhYmxlX2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9pZCB2YXJpZCk7 CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgogICoKQEAgLTEzMDgsNiArMTMxMCw1MCBAQCBzZXRf cGxhbl9yZWZzKFBsYW5uZXJJbmZvICpyb290LCBQbGFuICpwbGFuLCBpbnQgcnRvZmZzZXQpCiAJ cmV0dXJuIHBsYW47CiB9CiAKKy8qCisgKiBTZWFyY2ggdXNhZ2Ugb2Ygc2Vzc2lvbiB2YXJpYWJs ZXMgaW4gc3VicXVlcmllcworICovCit2b2lkCitwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxl cyhQbGFubmVySW5mbyAqcm9vdCkKK3sKKwlRdWVyeQkgICAqcXVlcnkgPSByb290LT5wYXJzZTsK KworCWlmIChxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKKwl7CisJCXJvb3QtPmhhc1Nlc3Np b25WYXJpYWJsZXMgPSB0cnVlOworCX0KKwllbHNlCisJeworCQkodm9pZCkgcXVlcnlfdHJlZV93 YWxrZXIocXVlcnksCisJCQkJCQkJCSBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxr ZXIsCisJCQkJCQkJCSAodm9pZCAqKSByb290LCAwKTsKKwl9Cit9CisKK3N0YXRpYyBib29sCitw dWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIoTm9kZSAqbm9kZSwgUGxhbm5lcklu Zm8gKnJvb3QpCit7CisJaWYgKG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChJ c0Eobm9kZSwgUXVlcnkpKQorCXsKKwkJUXVlcnkJICAgKnF1ZXJ5ID0gKFF1ZXJ5ICopIG5vZGU7 CisKKwkJaWYgKHF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzKQorCQl7CisJCQlyb290LT5oYXNT ZXNzaW9uVmFyaWFibGVzID0gdHJ1ZTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCisJCS8qIFJl Y3Vyc2UgaW50byBzdWJzZWxlY3RzICovCisJCXJldHVybiBxdWVyeV90cmVlX3dhbGtlcigoUXVl cnkgKikgbm9kZSwKKwkJCQkJCQkJIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtl ciwKKwkJCQkJCQkJICh2b2lkICopIHJvb3QsIDApOworCX0KKwlyZXR1cm4gZXhwcmVzc2lvbl90 cmVlX3dhbGtlcihub2RlLCBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIsCisJ CQkJCQkJCSAgKHZvaWQgKikgcm9vdCk7Cit9CisKIC8qCiAgKiBzZXRfaW5kZXhvbmx5c2Nhbl9y ZWZlcmVuY2VzCiAgKgkJRG8gc2V0X3BsYW5fcmVmZXJlbmNlcyBwcm9jZXNzaW5nIG9uIGFuIElu ZGV4T25seVNjYW4KQEAgLTE5NTYsOCArMjAwMiw5IEBAIGNvcHlWYXIoVmFyICp2YXIpCiAgKiBU aGlzIGlzIGNvZGUgdGhhdCBpcyBjb21tb24gdG8gYWxsIHZhcmlhbnRzIG9mIGV4cHJlc3Npb24t Zml4aW5nLgogICogV2UgbXVzdCBsb29rIHVwIG9wZXJhdG9yIG9wY29kZSBpbmZvIGZvciBPcEV4 cHIgYW5kIHJlbGF0ZWQgbm9kZXMsCiAgKiBhZGQgT0lEcyBmcm9tIHJlZ2NsYXNzIENvbnN0IG5v ZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVsYXRpb25PaWRzLCBhbmQKLSAqIGFkZCBQbGFuSW52YWxJ dGVtcyBmb3IgdXNlci1kZWZpbmVkIGZ1bmN0aW9ucyBpbnRvIHJvb3QtPmdsb2ItPmludmFsSXRl bXMuCi0gKiBXZSBhbHNvIGZpbGwgaW4gY29sdW1uIGluZGV4IGxpc3RzIGZvciBHUk9VUElORygp IGV4cHJlc3Npb25zLgorICogYWRkIFBsYW5JbnZhbEl0ZW1zIGZvciB1c2VyLWRlZmluZWQgZnVu Y3Rpb25zIGFuZCBzZXNzaW9uIHZhcmlhYmxlcyBpbnRvCisgKiByb290LT5nbG9iLT5pbnZhbEl0 ZW1zLiAgV2UgYWxzbyBmaWxsIGluIGNvbHVtbiBpbmRleCBsaXN0cyBmb3IgR1JPVVBJTkcoKQor ICogZXhwcmVzc2lvbnMuCiAgKgogICogV2UgYXNzdW1lIGl0J3Mgb2theSB0byB1cGRhdGUgb3Bj b2RlIGluZm8gaW4tcGxhY2UuICBTbyB0aGlzIGNvdWxkIHBvc3NpYmx5CiAgKiBzY3JpYmJsZSBv biB0aGUgcGxhbm5lcidzIGlucHV0IGRhdGEgc3RydWN0dXJlcywgYnV0IGl0J3MgT0suCkBAIC0y MDQ3LDE1ICsyMDk0LDI4IEBAIGZpeF9leHByX2NvbW1vbihQbGFubmVySW5mbyAqcm9vdCwgTm9k ZSAqbm9kZSkKIAkJCQlnLT5jb2xzID0gY29sczsKIAkJfQogCX0KKwllbHNlIGlmIChJc0Eobm9k ZSwgUGFyYW0pKQorCXsKKwkJUGFyYW0JICAgKnAgPSAoUGFyYW0gKikgbm9kZTsKKworCQlpZiAo cC0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQkJcmVjb3JkX3BsYW5fdmFyaWFibGVf ZGVwZW5kZW5jeShyb290LCBwLT5wYXJhbXZhcmlkKTsKKwl9CiB9CiAKIC8qCiAgKiBmaXhfcGFy YW1fbm9kZQogICoJCURvIHNldF9wbGFuX3JlZmVyZW5jZXMgcHJvY2Vzc2luZyBvbiBhIFBhcmFt CisgKgkJQ29sbGVjdCBzZXNzaW9uIHZhcmlhYmxlcyBsaXN0IGFuZCByZXBsYWNlIHZhcmlhYmxl IG9pZCBieQorICoJCWluZGV4IHRvIGNvbGxlY3RlZCBsaXN0LgogICoKICAqIElmIGl0J3MgYSBQ QVJBTV9NVUxUSUVYUFIsIHJlcGxhY2UgaXQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgUGFyYW0gZnJv bQogICogcm9vdC0+bXVsdGlleHByX3BhcmFtczsgb3RoZXJ3aXNlIG5vIGNoYW5nZSBpcyBuZWVk ZWQuCiAgKiBKdXN0IGZvciBwYXJhbm9pYSdzIHNha2UsIHdlIG1ha2UgYSBjb3B5IG9mIHRoZSBu b2RlIGluIGVpdGhlciBjYXNlLgorICoKKyAqIElmIGl0J3MgYSBQQVJBTV9WQVJJQUJMRSwgdGhl biB3ZSBjb2xsZWN0IHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaW4KKyAqIGxpc3Qgcm9vdC0+Z2xv Yi0+c2Vzc2lvblZhcmlhYmxlLiBXZSBzaG91bGQgYXNzaWduIFBhcmFtIHBhcmFtdmFyaWQKKyAq IHRvbywgYW5kIGl0IGlzIHBvc2l0aW9uIG9mIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZSBpbiBt ZW50aW9uZWQgbGlzdC4KICAqLwogc3RhdGljIE5vZGUgKgogZml4X3BhcmFtX25vZGUoUGxhbm5l ckluZm8gKnJvb3QsIFBhcmFtICpwKQpAQCAtMjA3NCw2ICsyMTM0LDQxIEBAIGZpeF9wYXJhbV9u b2RlKFBsYW5uZXJJbmZvICpyb290LCBQYXJhbSAqcCkKIAkJCWVsb2coRVJST1IsICJ1bmV4cGVj dGVkIFBBUkFNX01VTFRJRVhQUiBJRDogJWQiLCBwLT5wYXJhbWlkKTsKIAkJcmV0dXJuIGNvcHlP YmplY3QobGlzdF9udGgocGFyYW1zLCBjb2xubyAtIDEpKTsKIAl9CisKKwlpZiAocC0+cGFyYW1r aW5kID09IFBBUkFNX1ZBUklBQkxFKQorCXsKKwkJTGlzdENlbGwgICAqbGM7CisJCWludAkJCW4g PSAwOworCQlib29sCQlmb3VuZCA9IGZhbHNlOworCisJCS8qIFdlIHdpbGwgbW9kaWZ5IG9iamVj dCAqLworCQlwID0gKFBhcmFtICopIGNvcHlPYmplY3QocCk7CisKKwkJLyoKKwkJICogTm93LCB3 ZSBjYW4gYWN0dWFsaXplIGxpc3Qgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMsIGFuZCB3ZSBjYW4KKwkJ ICogY29tcGxldGUgcGFyYW1pZCBwYXJhbWV0ZXIuCisJCSAqLworCQlmb3JlYWNoKGxjLCByb290 LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzKQorCQl7CisJCQlpZiAobGZpcnN0X29pZChsYykgPT0g cC0+cGFyYW12YXJpZCkKKwkJCXsKKwkJCQlwLT5wYXJhbWlkID0gbjsKKwkJCQlmb3VuZCA9IHRy dWU7CisJCQkJYnJlYWs7CisJCQl9CisJCQluICs9IDE7CisJCX0KKworCQlpZiAoIWZvdW5kKQor CQl7CisJCQlyb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzID0gbGFwcGVuZF9vaWQocm9vdC0+ Z2xvYi0+c2Vzc2lvblZhcmlhYmxlcywKKwkJCQkJCQkJCQkJCQkgICBwLT5wYXJhbXZhcmlkKTsK KwkJCXAtPnBhcmFtaWQgPSBuOworCQl9CisKKwkJcmV0dXJuIChOb2RlICopIHA7CisJfQorCiAJ cmV0dXJuIChOb2RlICopIGNvcHlPYmplY3QocCk7CiB9CiAKQEAgLTIxMzUsNyArMjIzMCwxMCBA QCBmaXhfYWx0ZXJuYXRpdmVfc3VicGxhbihQbGFubmVySW5mbyAqcm9vdCwgQWx0ZXJuYXRpdmVT dWJQbGFuICphc3BsYW4sCiAgKiByZXBsYWNpbmcgQWdncmVmIG5vZGVzIHRoYXQgc2hvdWxkIGJl IHJlcGxhY2VkIGJ5IGluaXRwbGFuIG91dHB1dCBQYXJhbXMsCiAgKiBjaG9vc2luZyB0aGUgYmVz dCBpbXBsZW1lbnRhdGlvbiBmb3IgQWx0ZXJuYXRpdmVTdWJQbGFucywKICAqIGxvb2tpbmcgdXAg b3BlcmF0b3Igb3Bjb2RlIGluZm8gZm9yIE9wRXhwciBhbmQgcmVsYXRlZCBub2RlcywKLSAqIGFu ZCBhZGRpbmcgT0lEcyBmcm9tIHJlZ2NsYXNzIENvbnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+ cmVsYXRpb25PaWRzLgorICogYWRkaW5nIE9JRHMgZnJvbSByZWdjbGFzcyBDb25zdCBub2RlcyBp bnRvIHJvb3QtPmdsb2ItPnJlbGF0aW9uT2lkcywKKyAqIGFuZCBhc3NpZ25pbmcgcGFyYW12YXJp ZCB0byBQQVJBTV9WQVJJQUJMRSBwYXJhbXMsIGFuZCBjb2xsZWN0aW5nCisgKiBvZiBPSURzIG9m IHNlc3Npb24gdmFyaWFibGVzIGluIHJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZXMgbGlzdAor ICogKHBhcmFtdmFyaWQgaXMgYW4gcG9zaXRpb24gb2YgcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxl IGluIHRoaXMgbGlzdCkuCiAgKgogICogJ25vZGUnOiB0aGUgZXhwcmVzc2lvbiB0byBiZSBtb2Rp ZmllZAogICogJ3J0b2Zmc2V0JzogaG93IG11Y2ggdG8gaW5jcmVtZW50IHZhcm5vcyBieQpAQCAt MjE1Nyw3ICsyMjU1LDggQEAgZml4X3NjYW5fZXhwcihQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAq bm9kZSwgaW50IHJ0b2Zmc2V0LCBkb3VibGUgbnVtX2V4ZWMpCiAJCXJvb3QtPm11bHRpZXhwcl9w YXJhbXMgIT0gTklMIHx8CiAJCXJvb3QtPmdsb2ItPmxhc3RQSElkICE9IDAgfHwKIAkJcm9vdC0+ bWlubWF4X2FnZ3MgIT0gTklMIHx8Ci0JCXJvb3QtPmhhc0FsdGVybmF0aXZlU3ViUGxhbnMpCisJ CXJvb3QtPmhhc0FsdGVybmF0aXZlU3ViUGxhbnMgfHwKKwkJcm9vdC0+aGFzU2Vzc2lvblZhcmlh YmxlcykKIAl7CiAJCXJldHVybiBmaXhfc2Nhbl9leHByX211dGF0b3Iobm9kZSwgJmNvbnRleHQp OwogCX0KQEAgLTM1MjAsNiArMzYxOSwyNSBAQCByZWNvcmRfcGxhbl90eXBlX2RlcGVuZGVuY3ko UGxhbm5lckluZm8gKnJvb3QsIE9pZCB0eXBpZCkKIAl9CiB9CiAKKy8qCisgKiBSZWNvcmQgZGVw ZW5kZW5jeSBvbiBhIHNlc3Npb24gdmFyaWFibGUuIFRoZSB2YXJpYWJsZSBjYW4gYmUgdXNlZCBh cyBhCisgKiBzZXNzaW9uIHZhcmlhYmxlIGluIGV4cHJlc3Npb24gbGlzdCwgb3IgdGFyZ2V0IG9m IExFVCBzdGF0ZW1lbnQuCisgKi8KK3N0YXRpYyB2b2lkCityZWNvcmRfcGxhbl92YXJpYWJsZV9k ZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdmFyaWQpCit7CisJUGxhbkludmFsSXRl bSAqaW52YWxfaXRlbSA9IG1ha2VOb2RlKFBsYW5JbnZhbEl0ZW0pOworCisJLyogcGFyYW1pZCBp cyBzdGlsbCBzZXNzaW9uIHZhcmlhYmxlIGlkICovCisJaW52YWxfaXRlbS0+Y2FjaGVJZCA9IFZB UklBQkxFT0lEOworCWludmFsX2l0ZW0tPmhhc2hWYWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZhbHVl MShWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOwor CisJLyogQXBwZW5kIHRoaXMgdmFyaWFibGUgdG8gZ2xvYmFsLCByZWdpc3RlciBkZXBlbmRlbmN5 ICovCisJcm9vdC0+Z2xvYi0+aW52YWxJdGVtcyA9IGxhcHBlbmQocm9vdC0+Z2xvYi0+aW52YWxJ dGVtcywKKwkJCQkJCQkJCSBpbnZhbF9pdGVtKTsKK30KKwogLyoKICAqIGV4dHJhY3RfcXVlcnlf ZGVwZW5kZW5jaWVzCiAgKgkJR2l2ZW4gYSByZXdyaXR0ZW4sIGJ1dCBub3QgeWV0IHBsYW5uZWQs IHF1ZXJ5IG9yIHF1ZXJpZXMKQEAgLTM2MDUsOSArMzcyMyw5IEBAIGV4dHJhY3RfcXVlcnlfZGVw ZW5kZW5jaWVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqY29udGV4dCkKIAkJCX0K IAogCQkJLyoKLQkJCSAqIElnbm9yZSBvdGhlciB1dGlsaXR5IHN0YXRlbWVudHMsIGV4Y2VwdCB0 aG9zZSAoc3VjaCBhcyBFWFBMQUlOKQotCQkJICogdGhhdCBjb250YWluIGEgcGFyc2VkLWJ1dC1u b3QtcGxhbm5lZCBxdWVyeS4gIEZvciB0aG9zZSwgd2UKLQkJCSAqIGp1c3QgbmVlZCB0byB0cmFu c2ZlciBvdXIgYXR0ZW50aW9uIHRvIHRoZSBjb250YWluZWQgcXVlcnkuCisJCQkgKiBJZ25vcmUg b3RoZXIgdXRpbGl0eSBzdGF0ZW1lbnRzLCBleGNlcHQgdGhvc2UgKHN1Y2ggYXMgRVhQTEFJTgor CQkJICogb3IgTEVUKSB0aGF0IGNvbnRhaW4gYSBwYXJzZWQtYnV0LW5vdC1wbGFubmVkIHF1ZXJ5 LiAgRm9yIHRob3NlLAorCQkJICogd2UganVzdCBuZWVkIHRvIHRyYW5zZmVyIG91ciBhdHRlbnRp b24gdG8gdGhlIGNvbnRhaW5lZCBxdWVyeS4KIAkJCSAqLwogCQkJcXVlcnkgPSBVdGlsaXR5Q29u dGFpbnNRdWVyeShxdWVyeS0+dXRpbGl0eVN0bXQpOwogCQkJaWYgKHF1ZXJ5ID09IE5VTEwpCkBA IC0zNjMwLDYgKzM3NDgsMTAgQEAgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fsa2VyKE5v ZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpjb250ZXh0KQogCQkJCQlsYXBwZW5kX29pZChjb250ZXh0 LT5nbG9iLT5yZWxhdGlvbk9pZHMsIHJ0ZS0+cmVsaWQpOwogCQl9CiAKKwkJLyogUmVjb3JkIGRl cGVuZGVuY3kgb24gdGFyZ2VyIHZhcmlhYmxlIG9mIExFVCBjb21tYW5kICovCisJCWlmIChPaWRJ c1ZhbGlkKHF1ZXJ5LT5yZXN1bHRWYXJpYWJsZSkpCisJCQlyZWNvcmRfcGxhbl92YXJpYWJsZV9k ZXBlbmRlbmN5KGNvbnRleHQsIHF1ZXJ5LT5yZXN1bHRWYXJpYWJsZSk7CisKIAkJLyogQW5kIHJl Y3Vyc2UgaW50byB0aGUgcXVlcnkncyBzdWJleHByZXNzaW9ucyAqLwogCQlyZXR1cm4gcXVlcnlf dHJlZV93YWxrZXIocXVlcnksIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtlciwKIAkJ CQkJCQkJICh2b2lkICopIGNvbnRleHQsIDApOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9w cmVwam9pbnRyZWUuYwppbmRleCA5NjllMjU3ZjcwYi4uYTIyZWEwMzcyOTkgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCisrKyBiL3NyYy9iYWNr ZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCkBAIC0xMzE0LDYgKzEzMTQsOSBAQCBw dWxsX3VwX3NpbXBsZV9zdWJxdWVyeShQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqanRub2RlLCBS YW5nZVRibEVudHJ5ICpydGUsCiAJLyogSWYgc3VicXVlcnkgaGFkIGFueSBSTFMgY29uZGl0aW9u cywgbm93IG1haW4gcXVlcnkgZG9lcyB0b28gKi8KIAlwYXJzZS0+aGFzUm93U2VjdXJpdHkgfD0g c3VicXVlcnktPmhhc1Jvd1NlY3VyaXR5OwogCisJLyogSWYgc3VicXVlcnkgaGFkIHNlc3Npb24g dmFyaWFibGVzLCBub3cgbWFpbiBxdWVyeSBkb2VzIHRvbyAqLworCXBhcnNlLT5oYXNTZXNzaW9u VmFyaWFibGVzIHw9IHN1YnF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzOworCiAJLyoKIAkgKiBz dWJxdWVyeSB3b24ndCBiZSBwdWxsZWQgdXAgaWYgaXQgaGFzQWdncywgaGFzV2luZG93RnVuY3Ms IG9yCiAJICogaGFzVGFyZ2V0U1JGcywgc28gbm8gd29yayBuZWVkZWQgb24gdGhvc2UgZmxhZ3MK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9i YWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwppbmRleCBiNGUwODVlOWQ0Yi4uMWIxZmI2 ZWNmODEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwor KysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTI0LDYgKzI0LDcg QEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX29wZXJhdG9yLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAj aW5jbHVkZSAiZXhlY3V0b3IvZnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5oIgpAQCAt OTM1LDYgKzkzNiwxMyBAQCBtYXhfcGFyYWxsZWxfaGF6YXJkX3dhbGtlcihOb2RlICpub2RlLCBt YXhfcGFyYWxsZWxfaGF6YXJkX2NvbnRleHQgKmNvbnRleHQpCiAJCWlmIChwYXJhbS0+cGFyYW1r aW5kID09IFBBUkFNX0VYVEVSTikKIAkJCXJldHVybiBmYWxzZTsKIAorCQkvKiBXZSBkb2Vzbid0 IHN1cHBvcnQgcGFzc2luZyBzZXNzaW9uIHZhcmlhYmxlcyB0byB3b3JrZXJzICovCisJCWlmIChw YXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQl7CisJCQlpZiAobWF4X3BhcmFs bGVsX2hhemFyZF90ZXN0KFBST1BBUkFMTEVMX1JFU1RSSUNURUQsIGNvbnRleHQpKQorCQkJCXJl dHVybiB0cnVlOworCQl9CisKIAkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhFQyB8 fAogCQkJIWxpc3RfbWVtYmVyX2ludChjb250ZXh0LT5zYWZlX3BhcmFtX2lkcywgcGFyYW0tPnBh cmFtaWQpKQogCQl7CkBAIC0yMzg5LDYgKzIzOTcsNyBAQCBjb252ZXJ0X3Nhb3BfdG9faGFzaGVk X3Nhb3Bfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiAgKgkgIHZhbHVlIG9mIHRo ZSBQYXJhbS4KICAqIDIuIEZvbGQgc3RhYmxlLCBhcyB3ZWxsIGFzIGltbXV0YWJsZSwgZnVuY3Rp b25zIHRvIGNvbnN0YW50cy4KICAqIDMuIFJlZHVjZSBQbGFjZUhvbGRlclZhciBub2RlcyB0byB0 aGVpciBjb250YWluZWQgZXhwcmVzc2lvbnMuCisgKiA0LiBDdXJyZW50IHZhbHVlIG9mIHNlc3Np b24gdmFyaWFibGUgY2FuIGJlIHVzZWQgZm9yIGVzdGltYXRpb24gdG9vLgogICotLS0tLS0tLS0t LS0tLS0tLS0tLQogICovCiBOb2RlICoKQEAgLTI1MTUsNiArMjUyNCwyOSBAQCBldmFsX2NvbnN0 X2V4cHJlc3Npb25zX211dGF0b3IoTm9kZSAqbm9kZSwKIAkJCQkJCX0KIAkJCQkJfQogCQkJCX0K KwkJCQllbHNlIGlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFICYmCisJCQkJ CQkgY29udGV4dC0+ZXN0aW1hdGUpCisJCQkJeworCQkJCQlpbnQxNgkJdHlwTGVuOworCQkJCQli b29sCQl0eXBCeVZhbDsKKwkJCQkJRGF0dW0JCXB2YWw7CisJCQkJCWJvb2wJCWlzbnVsbDsKKwor CQkJCQlnZXRfdHlwbGVuYnl2YWwocGFyYW0tPnBhcmFtdHlwZSwKKwkJCQkJCQkJCSZ0eXBMZW4s ICZ0eXBCeVZhbCk7CisKKwkJCQkJcHZhbCA9IEdldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlQ2hl Y2socGFyYW0tPnBhcmFtdmFyaWQsCisJCQkJCQkJCQkJCQkJCSAgICZpc251bGwsCisJCQkJCQkJ CQkJCQkJCSAgIHBhcmFtLT5wYXJhbXR5cGUpOworCisJCQkJCXJldHVybiAoTm9kZSAqKSBtYWtl Q29uc3QocGFyYW0tPnBhcmFtdHlwZSwKKwkJCQkJCQkJCQkJICBwYXJhbS0+cGFyYW10eXBtb2Qs CisJCQkJCQkJCQkJCSAgcGFyYW0tPnBhcmFtY29sbGlkLAorCQkJCQkJCQkJCQkgIChpbnQpIHR5 cExlbiwKKwkJCQkJCQkJCQkJICBwdmFsLAorCQkJCQkJCQkJCQkgIGlzbnVsbCwKKwkJCQkJCQkJ CQkJICB0eXBCeVZhbCk7CisJCQkJfQogCiAJCQkJLyoKIAkJCQkgKiBOb3QgcmVwbGFjZWFibGUs IHNvIGp1c3QgY29weSB0aGUgUGFyYW0gKG5vIG5lZWQgdG8KQEAgLTQ3MDYsNyArNDczOCw4IEBA IGlubGluZV9mdW5jdGlvbihPaWQgZnVuY2lkLCBPaWQgcmVzdWx0X3R5cGUsIE9pZCByZXN1bHRf Y29sbGlkLAogCQlxdWVyeXRyZWUtPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5dHJlZS0+bGltaXRD b3VudCB8fAogCQlxdWVyeXRyZWUtPnNldE9wZXJhdGlvbnMgfHwKLQkJbGlzdF9sZW5ndGgocXVl cnl0cmVlLT50YXJnZXRMaXN0KSAhPSAxKQorCQkobGlzdF9sZW5ndGgocXVlcnl0cmVlLT50YXJn ZXRMaXN0KSAhPSAxKSB8fAorCQlxdWVyeXRyZWUtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJCWdv dG8gZmFpbDsKIAogCS8qIElmIHRoZSBmdW5jdGlvbiByZXN1bHQgaXMgY29tcG9zaXRlLCByZXNv bHZlIGl0ICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwppbmRleCAyOGZlZDlkODdmNi4uMmMwYTY2ZmIyY2Mg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKKysrIGIvc3JjL2JhY2tl bmQvcGFyc2VyL2FuYWx5emUuYwpAQCAtMjUsOSArMjUsMTIgQEAKICNpbmNsdWRlICJwb3N0Z3Jl cy5oIgogCiAjaW5jbHVkZSAiYWNjZXNzL3N5c2F0dHIuaCIKKyNpbmNsdWRlICJjYXRhbG9nL25h bWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRl ICJjb21tYW5kcy9kZWZyZW0uaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgi CiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCkBAIC01MCw2ICs1Myw3IEBACiAjaW5jbHVk ZSAicGFyc2VyL3BhcnNldHJlZS5oIgogI2luY2x1ZGUgInV0aWxzL2JhY2tlbmRfc3RhdHVzLmgi CiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUu aCIKICNpbmNsdWRlICJ1dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgog CkBAIC04Miw2ICs4Niw4IEBAIHN0YXRpYyBRdWVyeSAqdHJhbnNmb3JtQ3JlYXRlVGFibGVBc1N0 bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCSBDcmVhdGVUYWJsZUFzU3RtdCAqc3Rt dCk7CiBzdGF0aWMgUXVlcnkgKnRyYW5zZm9ybUNhbGxTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwK IAkJCQkJCQkJQ2FsbFN0bXQgKnN0bXQpOworc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1MZXRTdG10 KFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJCQkJCQkgICBMZXRTdG10ICpzdG10KTsKIHN0YXRpYyB2 b2lkIHRyYW5zZm9ybUxvY2tpbmdDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBRdWVyeSAqcXJ5 LAogCQkJCQkJCQkgICBMb2NraW5nQ2xhdXNlICpsYywgYm9vbCBwdXNoZWREb3duKTsKICNpZmRl ZiBSQVdfRVhQUkVTU0lPTl9DT1ZFUkFHRV9URVNUCkBAIC0zMjUsNiArMzMxLDcgQEAgdHJhbnNm b3JtU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKnBhcnNlVHJlZSkKIAkJY2FzZSBUX1Vw ZGF0ZVN0bXQ6CiAJCWNhc2UgVF9EZWxldGVTdG10OgogCQljYXNlIFRfTWVyZ2VTdG10OgorCQlj YXNlIFRfTGV0U3RtdDoKIAkJCSh2b2lkKSB0ZXN0X3Jhd19leHByZXNzaW9uX2NvdmVyYWdlKHBh cnNlVHJlZSwgTlVMTCk7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKQEAgLTQwMyw2ICs0MTAsMTEg QEAgdHJhbnNmb3JtU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKnBhcnNlVHJlZSkKIAkJ CQkJCQkJCSAgIChDYWxsU3RtdCAqKSBwYXJzZVRyZWUpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBU X0xldFN0bXQ6CisJCQlyZXN1bHQgPSB0cmFuc2Zvcm1MZXRTdG10KHBzdGF0ZSwKKwkJCQkJCQkJ CSAgKExldFN0bXQgKikgcGFyc2VUcmVlKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAKIAkJ CS8qCkBAIC00NTQsNiArNDY2LDcgQEAgc3RtdF9yZXF1aXJlc19wYXJzZV9hbmFseXNpcyhSYXdT dG10ICpwYXJzZVRyZWUpCiAJCWNhc2UgVF9TZWxlY3RTdG10OgogCQljYXNlIFRfUmV0dXJuU3Rt dDoKIAkJY2FzZSBUX1BMQXNzaWduU3RtdDoKKwkJY2FzZSBUX0xldFN0bXQ6CiAJCQlyZXN1bHQg PSB0cnVlOwogCQkJYnJlYWs7CiAKQEAgLTU2Miw2ICs1NzUsNyBAQCB0cmFuc2Zvcm1EZWxldGVT dG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVsZXRlU3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRv d0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9 IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNB Z2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFy aWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC05 ODgsNiArMTAwMiw3IEBAIHRyYW5zZm9ybUluc2VydFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBJ bnNlcnRTdG10ICpzdG10KQogCiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1Rh cmdldFNSRnM7CiAJcXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlx cnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsK IAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMTQ1Myw2ICsx NDY4LDcgQEAgdHJhbnNmb3JtU2VsZWN0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFNlbGVjdFN0 bXQgKnN0bXQpCiAJcXJ5LT5oYXNXaW5kb3dGdW5jcyA9IHBzdGF0ZS0+cF9oYXNXaW5kb3dGdW5j czsKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlxcnkt Pmhhc0FnZ3MgPSBwc3RhdGUtPnBfaGFzQWdnczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMg PSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWZvcmVhY2gobCwgc3RtdC0+bG9j a2luZ0NsYXVzZSkKIAl7CkBAIC0xNjc5LDEyICsxNjk1LDI0NyBAQCB0cmFuc2Zvcm1WYWx1ZXND bGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10KQogCXFyeS0+am9pbnRy ZWUgPSBtYWtlRnJvbUV4cHIocHN0YXRlLT5wX2pvaW5saXN0LCBOVUxMKTsKIAogCXFyeS0+aGFz U3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFi bGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29s bGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKIAlyZXR1cm4gcXJ5OwogfQogCisvKgorICogdHJhbnNm b3JtTGV0U3RtdCAtCisgKgkgIHRyYW5zZm9ybSBhbiBMZXQgU3RhdGVtZW50CisgKi8KK3N0YXRp YyBRdWVyeSAqCit0cmFuc2Zvcm1MZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAq c3RtdCkKK3sKKwlRdWVyeQkgICAqcXVlcnk7CisJUXVlcnkJICAgKnJlc3VsdDsKKwlMaXN0CSAg ICpleHByTGlzdCA9IE5JTDsKKwlMaXN0CSAgICpleHByTGlzdENvZXIgPSBOSUw7CisJTGlzdENl bGwgICAqbGM7CisJTGlzdENlbGwgICAqaW5kaXJlY3Rpb25faGVhZCA9IE5VTEw7CisJUXVlcnkJ ICAgKnNlbGVjdFF1ZXJ5OworCU9pZAkJCXZhcmlkOworCWNoYXIJICAgKmF0dHJuYW1lID0gTlVM TDsKKwlib29sCQlub3RfdW5pcXVlOworCWJvb2wJCWlzX3Jvd3R5cGU7CisJT2lkCQkJdHlwaWQ7 CisJaW50MzIJCXR5cG1vZDsKKwlPaWQJCQljb2xsaWQ7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsK KwlMaXN0CSAgICpuYW1lcyA9IE5VTEw7CisJaW50CQkJaW5kaXJlY3Rpb25fc3RhcnQ7CisJaW50 CQkJaSA9IDA7CisKKwkvKiBUaGVyZSBjYW4ndCBiZSBhbnkgb3V0ZXIgV0lUSCB0byB3b3JyeSBh Ym91dCAqLworCUFzc2VydChwc3RhdGUtPnBfY3RlbmFtZXNwYWNlID09IE5JTCk7CisKKwluYW1l cyA9IE5hbWVzRnJvbUxpc3Qoc3RtdC0+dGFyZ2V0KTsKKworCS8qCisJICogVGhlIEFjY2Vzc1No YXJlTG9jayBpcyBjcmVhdGVkIG9uIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZS4gVGhlIGxvY2sK KwkgKiB3aWxsIGJlIGtlcHQgZm9yIHRoZSB3aG9sZSB0cmFuc2FjdGlvbi4KKwkgKi8KKwl2YXJp ZCA9IElkZW50aWZ5VmFyaWFibGUobmFtZXMsICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIGZhbHNl KTsKKwlpZiAobm90X3VuaXF1ZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJD T0RFX0FNQklHVU9VU19QQVJBTUVURVIpLAorCQkJCSBlcnJtc2coInRhcmdldCBcIiVzXCIgb2Yg TEVUIGNvbW1hbmQgaXMgYW1iaWd1b3VzIiwKKwkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMp KSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgc3RtdC0+bG9jYXRpb24pKSk7CisK KwlpZiAoIU9pZElzVmFsaWQodmFyaWQpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJs ZSBcIiVzXCIgZG9lc24ndCBleGlzdCIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSks CisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHN0bXQtPmxvY2F0aW9uKSkpOworCisJ LyoKKwkgKiBDYWxjdWxhdGUgc3RhcnQgb2YgcG9zc2libGUgcG9zaXRpb24gb2YgYW4gaW5kaXJl Y3Rpb24gaW4gbGlzdCwgYW5kCisJICogd2hlbiBpdCBpcyBpbnNpZGUgdGhlIGxpc3QsIHN0b3Jl IHBvaW50ZXIgb24gZmlyc3Qgbm9kZSBvZiBpbmRpcmVjdGlvbi4KKwkgKi8KKwlpbmRpcmVjdGlv bl9zdGFydCA9IGxpc3RfbGVuZ3RoKG5hbWVzKSAtIChhdHRybmFtZSA/IDEgOiAwKTsKKwlpZiAo bGlzdF9sZW5ndGgoc3RtdC0+dGFyZ2V0KSA+IGluZGlyZWN0aW9uX3N0YXJ0KQorCQlpbmRpcmVj dGlvbl9oZWFkID0gbGlzdF9udGhfY2VsbChzdG10LT50YXJnZXQsIGluZGlyZWN0aW9uX3N0YXJ0 KTsKKworCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9kX2NvbGxpZCh2YXJpZCwgJnR5 cGlkLCAmdHlwbW9kLCAmY29sbGlkKTsKKworCWlzX3Jvd3R5cGUgPSB0eXBlX2lzX3Jvd3R5cGUo dHlwaWQpOworCisJaWYgKGF0dHJuYW1lICYmICFpc19yb3d0eXBlKQorCQllcmVwb3J0KEVSUk9S LAorCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2co InR5cGUgXCIlc1wiIG9mIHRhcmdldCBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiBpcyBub3Qg YSBjb21wb3NpdGUgdHlwZSIsCisJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCksCisJCQkJCQln ZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSks CisJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSksCisJCQkJIHBhcnNlcl9l cnJwb3NpdGlvbihwc3RhdGUsIHN0bXQtPmxvY2F0aW9uKSkpOworCisJYWNscmVzdWx0ID0gb2Jq ZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIEdldFVzZXJJZCgpLCBBQ0xf VVBEQVRFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQlhY2xjaGVja19lcnJv cihhY2xyZXN1bHQsIE9CSkVDVF9WQVJJQUJMRSwgTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpOwor CisJLyoKKwkgKiBUaGUgYmVoYXZpb3Igb2YgRVhQUl9LSU5EX0xFVF9UQVJHRVQgaXMgYWxtb3N0 IHNhbWUgbGlrZQorCSAqIEVYUFJfS0lORF9VUERBVEVfVEFSR0VULiBFWFBSX0tJTkRfTEVUX1RB UkdFVCB3YXMgaW50cm9kdWNlZCB0byBiZQorCSAqIHBvc3NpYmxlIHRvIHJhaXNlIG1vcmUgY29y cmVjdCBlcnJvcnMsIHdoZXJlIHRoZSBjb21tYW5kIExFVCBpcworCSAqIG1lbnRpb25lZCAoaW5z dGVhZCBVUERBVEUgY29tbWFuZCkuCisJICovCisJcHN0YXRlLT5wX2V4cHJfa2luZCA9IEVYUFJf S0lORF9MRVRfVEFSR0VUOworCisJLyogV2UgbmVlZCB0byBwb3N0cG9uZSBjb252ZXJzaW9uIG9m IHVua25vd24tdHlwZSB0byB0ZXh0ICovCisJcHN0YXRlLT5wX3Jlc29sdmVfdW5rbm93bnMgPSBm YWxzZTsKKworCXNlbGVjdFF1ZXJ5ID0gdHJhbnNmb3JtU3RtdChwc3RhdGUsIHN0bXQtPnF1ZXJ5 KTsKKworCS8qIFRoZSBncmFtbWFyIHNob3VsZCBoYXZlIHByb2R1Y2VkIGEgU0VMRUNUICovCisJ QXNzZXJ0KElzQShzZWxlY3RRdWVyeSwgUXVlcnkpICYmIHNlbGVjdFF1ZXJ5LT5jb21tYW5kVHlw ZSA9PSBDTURfU0VMRUNUKTsKKworCS8qLS0tLS0tLS0tLQorCSAqIEdlbmVyYXRlIGFuIGV4cHJl c3Npb24gbGlzdCBmb3IgdGhlIExFVCB0aGF0IHNlbGVjdHMgYWxsIHRoZQorCSAqIG5vbi1yZXNq dW5rIGNvbHVtbnMgZnJvbSB0aGUgc3VicXVlcnkuCisJICotLS0tLS0tLS0tCisJICovCisJZXhw ckxpc3QgPSBOSUw7CisJZm9yZWFjaChsYywgc2VsZWN0UXVlcnktPnRhcmdldExpc3QpCisJewor CQlUYXJnZXRFbnRyeSAqdGxlID0gKFRhcmdldEVudHJ5ICopIGxmaXJzdChsYyk7CisKKwkJaWYg KHRsZS0+cmVzanVuaykKKwkJCWNvbnRpbnVlOworCisJCWV4cHJMaXN0ID0gbGFwcGVuZChleHBy TGlzdCwgdGxlLT5leHByKTsKKwl9CisKKwkvKiBkb24ndCBhbGxvdyBtdWx0aWNvbHVtbiByZXN1 bHQgKi8KKwlpZiAobGlzdF9sZW5ndGgoZXhwckxpc3QpICE9IDEpCisJCWVyZXBvcnQoRVJST1Is CisJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCSBlcnJtc2dfcGx1cmFs KCJhc3NpZ25tZW50IGV4cHJlc3Npb24gcmV0dXJuZWQgJWQgY29sdW1uIiwKKwkJCQkJCQkgICAi YXNzaWdubWVudCBleHByZXNzaW9uIHJldHVybmVkICVkIGNvbHVtbnMiLAorCQkJCQkJCSAgIGxp c3RfbGVuZ3RoKGV4cHJMaXN0KSwKKwkJCQkJCQkgICBsaXN0X2xlbmd0aChleHByTGlzdCkpLAor CQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLAorCQkJCQkJCQkJZXhwckxvY2F0aW9uKChO b2RlICopIGV4cHJMaXN0KSkpKTsKKworCWV4cHJMaXN0Q29lciA9IE5JTDsKKworCWZvcmVhY2go bGMsIGV4cHJMaXN0KQorCXsKKwkJRXhwcgkgICAqZXhwciA9IChFeHByICopIGxmaXJzdChsYyk7 CisJCUV4cHIJICAgKmNvZXJjZWRfZXhwcjsKKwkJUGFyYW0JICAgKnBhcmFtOworCQlPaWQJCQll eHBydHlwaWQ7CisKKwkJLyogbm93IHdlIGNhbiByZWFkIHR5cGUgb2YgZXhwcmVzc2lvbiAqLwor CQlleHBydHlwaWQgPSBleHByVHlwZSgoTm9kZSAqKSBleHByKTsKKworCQlwYXJhbSA9IG1ha2VO b2RlKFBhcmFtKTsKKwkJcGFyYW0tPnBhcmFta2luZCA9IFBBUkFNX1ZBUklBQkxFOworCQlwYXJh bS0+cGFyYW12YXJpZCA9IHZhcmlkOworCQlwYXJhbS0+cGFyYW10eXBlID0gdHlwaWQ7CisJCXBh cmFtLT5wYXJhbXR5cG1vZCA9IHR5cG1vZDsKKworCQlpZiAoaW5kaXJlY3Rpb25faGVhZCkKKwkJ eworCQkJYm9vbAkJdGFyZ2V0SXNBcnJheTsKKwkJCWNoYXIJICAgKnRhcmdldE5hbWU7CisKKwkJ CXRhcmdldE5hbWUgPSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKTsKKwkJCXRhcmdl dElzQXJyYXkgPSBPaWRJc1ZhbGlkKGdldF9lbGVtZW50X3R5cGUodHlwaWQpKTsKKworCQkJcHN0 YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOworCisJCQljb2VyY2VkX2V4cHIgPSAo RXhwciAqKQorCQkJCXRyYW5zZm9ybUFzc2lnbm1lbnRJbmRpcmVjdGlvbihwc3RhdGUsCisJCQkJ CQkJCQkJCSAgIChOb2RlICopIHBhcmFtLAorCQkJCQkJCQkJCQkgICB0YXJnZXROYW1lLAorCQkJ CQkJCQkJCQkgICB0YXJnZXRJc0FycmF5LAorCQkJCQkJCQkJCQkgICB0eXBpZCwKKwkJCQkJCQkJ CQkJICAgdHlwbW9kLAorCQkJCQkJCQkJCQkgICBJbnZhbGlkT2lkLAorCQkJCQkJCQkJCQkgICBz dG10LT50YXJnZXQsCisJCQkJCQkJCQkJCSAgIGluZGlyZWN0aW9uX2hlYWQsCisJCQkJCQkJCQkJ CSAgIChOb2RlICopIGV4cHIsCisJCQkJCQkJCQkJCSAgIENPRVJDSU9OX0FTU0lHTk1FTlQsCisJ CQkJCQkJCQkJCSAgIHN0bXQtPmxvY2F0aW9uKTsKKwkJfQorCQllbHNlCisJCQljb2VyY2VkX2V4 cHIgPSAoRXhwciAqKQorCQkJCWNvZXJjZV90b190YXJnZXRfdHlwZShwc3RhdGUsCisJCQkJCQkJ CQkgIChOb2RlICopIGV4cHIsCisJCQkJCQkJCQkgIGV4cHJ0eXBpZCwKKwkJCQkJCQkJCSAgdHlw aWQsIHR5cG1vZCwKKwkJCQkJCQkJCSAgQ09FUkNJT05fQVNTSUdOTUVOVCwKKwkJCQkJCQkJCSAg Q09FUkNFX0lNUExJQ0lUX0NBU1QsCisJCQkJCQkJCQkgIHN0bXQtPmxvY2F0aW9uKTsKKworCQlp ZiAoY29lcmNlZF9leHByID09IE5VTEwpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29k ZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJIGVycm1zZygidmFyaWFibGUgXCIl cy4lc1wiIGlzIG9mIHR5cGUgJXMsIgorCQkJCQkJCSIgYnV0IGV4cHJlc3Npb24gaXMgb2YgdHlw ZSAlcyIsCisJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQp LAorCQkJCQkJCWZvcm1hdF90eXBlX2JlKHR5cGlkKSwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZShl eHBydHlwaWQpKSwKKwkJCQkJIGVycmhpbnQoIllvdSB3aWxsIG5lZWQgdG8gcmV3cml0ZSBvciBj YXN0IHRoZSBleHByZXNzaW9uLiIpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg ZXhwckxvY2F0aW9uKChOb2RlICopIGV4cHIpKSkpOworCisJCWV4cHJMaXN0Q29lciA9IGxhcHBl bmQoZXhwckxpc3RDb2VyLCBjb2VyY2VkX2V4cHIpOworCX0KKworCS8qCisJICogR2VuZXJhdGUg cXVlcnkncyB0YXJnZXQgbGlzdCB1c2luZyB0aGUgY29tcHV0ZWQgbGlzdCBvZiBleHByZXNzaW9u cy4KKwkgKi8KKwlxdWVyeSA9IG1ha2VOb2RlKFF1ZXJ5KTsKKwlxdWVyeS0+Y29tbWFuZFR5cGUg PSBDTURfU0VMRUNUOworCisJZm9yZWFjaChsYywgZXhwckxpc3RDb2VyKQorCXsKKwkJRXhwcgkg ICAqZXhwciA9IChFeHByICopIGxmaXJzdChsYyk7CisJCVRhcmdldEVudHJ5ICp0bGU7CisKKwkJ dGxlID0gbWFrZVRhcmdldEVudHJ5KGV4cHIsCisJCQkJCQkJICBpICsgMSwKKwkJCQkJCQkgIEZp Z3VyZUNvbG5hbWUoKE5vZGUgKikgZXhwciksCisJCQkJCQkJICBmYWxzZSk7CisJCXF1ZXJ5LT50 YXJnZXRMaXN0ID0gbGFwcGVuZChxdWVyeS0+dGFyZ2V0TGlzdCwgdGxlKTsKKwl9CisKKwkvKiBk b25lIGJ1aWxkaW5nIHRoZSByYW5nZSB0YWJsZSBhbmQgam9pbnRyZWUgKi8KKwlxdWVyeS0+cnRh YmxlID0gcHN0YXRlLT5wX3J0YWJsZTsKKwlxdWVyeS0+am9pbnRyZWUgPSBtYWtlRnJvbUV4cHIo cHN0YXRlLT5wX2pvaW5saXN0LCBOVUxMKTsKKworCXF1ZXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0 YXRlLT5wX2hhc1RhcmdldFNSRnM7CisJcXVlcnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5wX2hh c1N1YkxpbmtzOworCXF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nl c3Npb25WYXJpYWJsZXM7CisKKwkvKiBUaGlzIGlzIHRvcCBxdWVyeSAqLworCXF1ZXJ5LT5jYW5T ZXRUYWcgPSB0cnVlOworCisJLyoKKwkgKiBTYXZlIHRhcmdldCBzZXNzaW9uIHZhcmlhYmxlIGlk LiBUaGlzIHZhbHVlIGlzIHVzZWQgbXVsdGlwbGUgdGltZXM6IGJ5CisJICogcXVlcnkgcmV3cml0 ZXIgKGZvciBnZXR0aW5nIHJlbGF0ZWQgZGVmZXhwciksIGJ5IHBsYW5uZXIgKGZvciBhY3F1aXJp bmcKKwkgKiBBY2Nlc3NTaGFyZUxvY2sgb24gdGFyZ2V0IHZhcmlhYmxlKSwgYW5kIGJ5IGV4ZWN1 dG9yICh3ZSBuZWVkIHRvIGtub3cKKwkgKiB0YXJnZXQgdmFyaWFibGUgaWQpLgorCSAqLworCXF1 ZXJ5LT5yZXN1bHRWYXJpYWJsZSA9IHZhcmlkOworCisJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMo cHN0YXRlLCBxdWVyeSk7CisKKwlzdG10LT5xdWVyeSA9IChOb2RlICopIHF1ZXJ5OworCisJLyog cmVwcmVzZW50IHRoZSBjb21tYW5kIGFzIGEgdXRpbGl0eSBRdWVyeSAqLworCXJlc3VsdCA9IG1h a2VOb2RlKFF1ZXJ5KTsKKwlyZXN1bHQtPmNvbW1hbmRUeXBlID0gQ01EX1VUSUxJVFk7CisJcmVz dWx0LT51dGlsaXR5U3RtdCA9IChOb2RlICopIHN0bXQ7CisKKwlyZXR1cm4gcmVzdWx0OworfQor CiAvKgogICogdHJhbnNmb3JtU2V0T3BlcmF0aW9uU3RtdCAtCiAgKgkgIHRyYW5zZm9ybXMgYSBz ZXQtb3BlcmF0aW9ucyB0cmVlCkBAIC0xOTMwLDYgKzIxODEsNyBAQCB0cmFuc2Zvcm1TZXRPcGVy YXRpb25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAlxcnktPmhh c1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0 U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+ cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNz aW9uVmFyaWFibGVzOwogCiAJZm9yZWFjaChsLCBsb2NraW5nQ2xhdXNlKQogCXsKQEAgLTI0MDQs NiArMjY1Niw3IEBAIHRyYW5zZm9ybVJldHVyblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSZXR1 cm5TdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93 RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJ cXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFi bGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29s bGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTI0NzEsNiArMjcyNCw3IEBAIHRyYW5zZm9ybVVw ZGF0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBVcGRhdGVTdG10ICpzdG10KQogCiAJcXJ5LT5o YXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNTdWJMaW5r cyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBw c3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25z KHBzdGF0ZSwgcXJ5KTsKIApAQCAtMjY1OCw5ICsyOTEyLDE1IEBAIHRyYW5zZm9ybVBMQXNzaWdu U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFBMQXNzaWduU3RtdCAqc3RtdCkKIAkvKgogCSAqIFRy YW5zZm9ybSB0aGUgdGFyZ2V0IHJlZmVyZW5jZS4gIFR5cGljYWxseSB3ZSB3aWxsIGdldCBiYWNr IGEgUGFyYW0KIAkgKiBub2RlLCBidXQgdGhlcmUncyBubyByZWFzb24gdG8gYmUgdG9vIHBpY2t5 IGFib3V0IGl0cyB0eXBlLgorCSAqCisJICogVGhlIHNlc3Npb24gdmFyaWFibGVzIHNob3VsZCBu b3QgYmUgdXNlZCBhcyB0YXJnZXQgb2YgUEwvcGdTUUwgYXNzaWduCisJICogc3RhdGVtZW50LiBT byB3ZSBzaG91bGQgdG8gdXNlIGRlZGljYXRlZCBleHByZXNzaW9uIGtpbmQsIGFuZCBkaXNhbGxv dworCSAqIHNlc3Npb24gdmFyaWFibGVzIHRoZXJlLiBUaGUgZGVkaWNhdGVkIGNvbnRleHQgYWxs b3dzIHRvIGVsaW1pbmF0ZQorCSAqIGZhbHNlIGFsYXJtIHdhcm5pbmdzIHJlbGF0ZWQgdG8gcG9z c2liaWxpdHkgb2YgdGFyZ2V0IFBML3BnU1FMIHZhcmlhYmxlCisJICogc2hhZG93cyBhIHNlc3Np b24gdmFyaWFibGUuCiAJICovCiAJdGFyZ2V0ID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIChOb2Rl ICopIGNyZWYsCi0JCQkJCQkgICBFWFBSX0tJTkRfVVBEQVRFX1RBUkdFVCk7CisJCQkJCQkgICBF WFBSX0tJTkRfQVNTSUdOX1RBUkdFVCk7CiAJdGFyZ2V0dHlwZSA9IGV4cHJUeXBlKHRhcmdldCk7 CiAJdGFyZ2V0dHlwbW9kID0gZXhwclR5cG1vZCh0YXJnZXQpOwogCXRhcmdldGNvbGxhdGlvbiA9 IGV4cHJDb2xsYXRpb24odGFyZ2V0KTsKQEAgLTI3MDIsNiArMjk2MiwxMCBAQCB0cmFuc2Zvcm1Q TEFzc2lnblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQTEFzc2lnblN0bXQgKnN0bXQpCiAJICov CiAJdHlwZV9pZCA9IGV4cHJUeXBlKChOb2RlICopIHRsZS0+ZXhwcik7CiAKKwkvKgorCSAqIEZv ciBpbmRpcmVjdGlvbiBwcm9jZXNzaW5nIGFuZCBhZGRpdGlvbmFsIGNhc3RzIHdlIGNhbiB1c2Ug ZXhwcl9raW5kCisJICogRVhQUl9LSU5EX1VQREFURV9UQVJHRVQKKwkgKi8KIAlwc3RhdGUtPnBf ZXhwcl9raW5kID0gRVhQUl9LSU5EX1VQREFURV9UQVJHRVQ7CiAKIAlpZiAoaW5kaXJlY3Rpb24p CkBAIC0yODQ0LDYgKzMxMDgsOCBAQCB0cmFuc2Zvcm1QTEFzc2lnblN0bXQoUGFyc2VTdGF0ZSAq cHN0YXRlLCBQTEFzc2lnblN0bXQgKnN0bXQpCiAJCQkJCQkJICAgKExvY2tpbmdDbGF1c2UgKikg bGZpcnN0KGwpLCBmYWxzZSk7CiAJfQogCisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0 YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CisKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhw c3RhdGUsIHFyeSk7CiAKIAkvKiB0aGlzIG11c3QgYmUgZG9uZSBhZnRlciBjb2xsYXRpb25zLCBm b3IgcmVsaWFibGUgY29tcGFyaXNvbiBvZiBleHBycyAqLwpAQCAtMzExNyw2ICszMzgzLDE0IEBA IHRyYW5zZm9ybUNhbGxTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ2FsbFN0bXQgKnN0bXQpCiAJ CQkJCQkJIHRydWUsCiAJCQkJCQkJIHN0bXQtPmZ1bmNjYWxsLT5sb2NhdGlvbik7CiAKKwkvKgor CSAqIFRoZSBhcmd1bWVudHMgb2YgQ0FMTCBzdGF0ZW1lbnQgYXJlIGV2YWx1YXRlZCBieSBkaXJl Y3QKKwkgKiBleHByZXNzaW9uIGV4ZWN1dG9yIGNhbGwuIFRoaXMgcGF0aCBpcyB1bnN1cHBvcnRl ZCB5ZXQsCisJICogc28gYmxvY2sgaXQuIEl0IHdpbGwgYmUgZW5hYmxlZCBieSBzb21lIG90aGVy IHBhdGNoLgorCSAqLworCWlmIChwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcykKKwkJZWxv ZyhFUlJPUiwgInNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQi KTsKKwogCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCBub2RlKTsKIAogCWZleHByID0g Y2FzdE5vZGUoRnVuY0V4cHIsIG5vZGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggNTdiNWY2ODgyYjEuLmY1 MzY3MzY5Y2Y3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTMwNyw3ICszMDcsNyBAQCBzdGF0aWMgTm9kZSAq bWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9k ZSAqcXVlcnkpOwogCQlEcm9wVHJhbnNmb3JtU3RtdAogCQlEcm9wVXNlck1hcHBpbmdTdG10IEV4 cGxhaW5TdG10IEZldGNoU3RtdAogCQlHcmFudFN0bXQgR3JhbnRSb2xlU3RtdCBJbXBvcnRGb3Jl aWduU2NoZW1hU3RtdCBJbmRleFN0bXQgSW5zZXJ0U3RtdAotCQlMaXN0ZW5TdG10IExvYWRTdG10 IExvY2tTdG10IE1lcmdlU3RtdCBOb3RpZnlTdG10IEV4cGxhaW5hYmxlU3RtdCBQcmVwYXJhYmxl U3RtdAorCQlMZXRTdG10IExpc3RlblN0bXQgTG9hZFN0bXQgTG9ja1N0bXQgTWVyZ2VTdG10IE5v dGlmeVN0bXQgRXhwbGFpbmFibGVTdG10IFByZXBhcmFibGVTdG10CiAJCUNyZWF0ZUZ1bmN0aW9u U3RtdCBBbHRlckZ1bmN0aW9uU3RtdCBSZWluZGV4U3RtdCBSZW1vdmVBZ2dyU3RtdAogCQlSZW1v dmVGdW5jU3RtdCBSZW1vdmVPcGVyU3RtdCBSZW5hbWVTdG10IFJldHVyblN0bXQgUmV2b2tlU3Rt dCBSZXZva2VSb2xlU3RtdAogCQlSdWxlQWN0aW9uU3RtdCBSdWxlQWN0aW9uU3RtdE9yRW1wdHkg UnVsZVN0bXQKQEAgLTQ1Nyw2ICs0NTcsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZp ZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQkJ CVRyaWdnZXJUcmFuc2l0aW9ucyBUcmlnZ2VyUmVmZXJlbmNpbmcKIAkJCQl2YWN1dW1fcmVsYXRp b25fbGlzdCBvcHRfdmFjdXVtX3JlbGF0aW9uX2xpc3QKIAkJCQlkcm9wX29wdGlvbl9saXN0IHB1 Yl9vYmpfbGlzdAorCQkJCWxldF90YXJnZXQKIAogJXR5cGUgPG5vZGU+CW9wdF9yb3V0aW5lX2Jv ZHkKICV0eXBlIDxncm91cGNsYXVzZT4gZ3JvdXBfY2xhdXNlCkBAIC03NDksNyArNzUwLDcgQEAg c3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3Qg KmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlLRUVQIEtFWSBLRVlTCiAKIAlMQUJFTCBMQU5HVUFH RSBMQVJHRV9QIExBU1RfUCBMQVRFUkFMX1AKLQlMRUFESU5HIExFQUtQUk9PRiBMRUFTVCBMRUZU IExFVkVMIExJS0UgTElNSVQgTElTVEVOIExPQUQgTE9DQUwKKwlMRUFESU5HIExFQUtQUk9PRiBM RUFTVCBMRUZUIExFVCBMRVZFTCBMSUtFIExJTUlUIExJU1RFTiBMT0FEIExPQ0FMCiAJTE9DQUxU SU1FIExPQ0FMVElNRVNUQU1QIExPQ0FUSU9OIExPQ0tfUCBMT0NLRUQgTE9HR0VECiAKIAlNQVBQ SU5HIE1BVENIIE1BVENIRUQgTUFURVJJQUxJWkVEIE1BWFZBTFVFIE1FUkdFIE1FUkdFX0FDVElP TiBNRVRIT0QKQEAgLTExMDAsNiArMTEwMSw3IEBAIHN0bXQ6CiAJCQl8IEltcG9ydEZvcmVpZ25T Y2hlbWFTdG10CiAJCQl8IEluZGV4U3RtdAogCQkJfCBJbnNlcnRTdG10CisJCQl8IExldFN0bXQK IAkJCXwgTGlzdGVuU3RtdAogCQkJfCBSZWZyZXNoTWF0Vmlld1N0bXQKIAkJCXwgTG9hZFN0bXQK QEAgLTEyNzY4LDYgKzEyNzcwLDQ3IEBAIG9wdF9ob2xkOiAvKiBFTVBUWSAqLwkJCQkJCXsgJCQg PSAwOyB9CiAJCQl8IFdJVEhPVVQgSE9MRAkJCQkJeyAkJCA9IDA7IH0KIAkJOwogCisvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKKyAqCisgKgkJUVVFUlk6CisgKgkJCQlMRVQgU1RBVEVNRU5UUworICoK KyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKi8KK0xldFN0bXQ6CUxFVCBsZXRfdGFyZ2V0ICc9JyBhX2V4 cHIKKwkJCQl7CisJCQkJCUxldFN0bXQJICAgKm4gPSBtYWtlTm9kZShMZXRTdG10KTsKKwkJCQkJ U2VsZWN0U3RtdCAqc2VsZWN0OworCQkJCQlSZXNUYXJnZXQgICpyZXM7CisKKwkJCQkJbi0+dGFy Z2V0ID0gJDI7CisKKwkJCQkJc2VsZWN0ID0gbWFrZU5vZGUoU2VsZWN0U3RtdCk7CisJCQkJCXJl cyA9IG1ha2VOb2RlKFJlc1RhcmdldCk7CisKKwkJCQkJLyogQ3JlYXRlIHRhcmdldCBsaXN0IGZv ciBpbXBsaWNpdCBxdWVyeSAqLworCQkJCQlyZXMtPm5hbWUgPSBOVUxMOworCQkJCQlyZXMtPmlu ZGlyZWN0aW9uID0gTklMOworCQkJCQlyZXMtPnZhbCA9IChOb2RlICopICQ0OworCQkJCQlyZXMt PmxvY2F0aW9uID0gQDQ7CisKKwkJCQkJc2VsZWN0LT50YXJnZXRMaXN0ID0gbGlzdF9tYWtlMShy ZXMpOworCQkJCQluLT5xdWVyeSA9IChOb2RlICopIHNlbGVjdDsKKworCQkJCQluLT5sb2NhdGlv biA9IEAyOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQk7CisKK2xldF90YXJnZXQ6 CisJCQlDb2xJZCBvcHRfaW5kaXJlY3Rpb24KKwkJCQl7CisJCQkJCSQkID0gbGlzdF9tYWtlMSht YWtlU3RyaW5nKCQxKSk7CisJCQkJCWlmICgkMikKKwkJCQkJCSAgJCQgPSBsaXN0X2NvbmNhdCgk JCwKKwkJCQkJCQkJCQkgICBjaGVja19pbmRpcmVjdGlvbigkMiwgeXlzY2FubmVyKSk7CisJCQkJ fQorCQk7CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqCQlRVUVSWToKQEAgLTE3Nzk5 LDYgKzE3ODQyLDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBMQVJHRV9QCiAJCQl8IExB U1RfUAogCQkJfCBMRUFLUFJPT0YKKwkJCXwgTEVUCiAJCQl8IExFVkVMCiAJCQl8IExJU1RFTgog CQkJfCBMT0FECkBAIC0xODQxMiw2ICsxODQ1Niw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJ CXwgTEVBS1BST09GCiAJCQl8IExFQVNUCiAJCQl8IExFRlQKKwkJCXwgTEVUCiAJCQl8IExFVkVM CiAJCQl8IExJS0UKIAkJCXwgTElTVEVOCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfYWdnLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKaW5kZXggYmVlN2Q4 MzQ2YTMuLmI0OTRjODg1ZTlmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf YWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCkBAIC01NzcsNiArNTc3 LDExIEBAIGNoZWNrX2FnZ2xldmVsc19hbmRfY29uc3RyYWludHMoUGFyc2VTdGF0ZSAqcHN0YXRl LCBOb2RlICpleHByKQogCQkJZXJya2luZCA9IHRydWU7CiAJCQlicmVhazsKIAorCQljYXNlIEVY UFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgorCQkJ ZXJya2luZCA9IHRydWU7CisJCQlicmVhazsKKwogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVu dGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQogCQkJICogY29tcGls ZXIgd2lsbCB3YXJuIGlmIHdlIGFkZCBhIG5ldyBQYXJzZUV4cHJLaW5kIHdpdGhvdXQKQEAgLTk2 Nyw2ICs5NzIsMTAgQEAgdHJhbnNmb3JtV2luZG93RnVuY0NhbGwoUGFyc2VTdGF0ZSAqcHN0YXRl LCBXaW5kb3dGdW5jICp3ZnVuYywKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJCWVy cmtpbmQgPSB0cnVlOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6 CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJCQllcnJraW5kID0gdHJ1ZTsKKwkJCWJy ZWFrOwogCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBj YXNlIGhlcmUsIHNvIHRoYXQgdGhlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCA4NTc3ZjI3 ODA2NS4uNzNiZTJhOGUxMGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9l eHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtMTgsNiArMTgs NyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfYWdncmVnYXRlLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKICNp bmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKQEAgLTM0 LDE4ICszNSwxOSBAQAogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9yZWxhdGlvbi5oIgogI2luY2x1 ZGUgInBhcnNlci9wYXJzZV90YXJnZXQuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdHlwZS5o IgorI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgi CiAjaW5jbHVkZSAidXRpbHMvZGF0ZS5oIgogI2luY2x1ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCiAj aW5jbHVkZSAidXRpbHMvanNvbmIuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNp bmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKKyNpbmNsdWRlICJ1dGlscy90eXBjYWNoZS5oIgog I2luY2x1ZGUgInV0aWxzL3htbC5oIgogCiAvKiBHVUMgcGFyYW1ldGVycyAqLwogYm9vbAkJVHJh bnNmb3JtX251bGxfZXF1YWxzID0gZmFsc2U7CiAKLQogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUV4 cHJSZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcik7CiBzdGF0aWMgTm9kZSAq dHJhbnNmb3JtUGFyYW1SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbVJlZiAqcHJlZik7CiBz dGF0aWMgTm9kZSAqdHJhbnNmb3JtQUV4cHJPcChQYXJzZVN0YXRlICpwc3RhdGUsIEFfRXhwciAq YSk7CkBAIC0xMDgsNiArMTEwLDkgQEAgc3RhdGljIEV4cHIgKm1ha2VfZGlzdGluY3Rfb3AoUGFy c2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpvcG5hbWUsCiAJCQkJCQkJICBOb2RlICpsdHJlZSwgTm9k ZSAqcnRyZWUsIGludCBsb2NhdGlvbik7CiBzdGF0aWMgTm9kZSAqbWFrZV9udWxsdGVzdF9mcm9t X2Rpc3RpbmN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkgQV9FeHByICpkaXN0aW5j dGEsIE5vZGUgKmFyZyk7CitzdGF0aWMgTm9kZSAqbWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxlKFBh cnNlU3RhdGUgKnBzdGF0ZSwKKwkJCQkJCQkJCSAgT2lkIHZhcmlkLCBPaWQgdHlwaWQsIGludDMy IHR5cG1vZCwgT2lkIGNvbGxpZCwKKwkJCQkJCQkJCSAgY2hhciAqYXR0cm5hbWUsIGludCBsb2Nh dGlvbik7CiAKIAogLyoKQEAgLTUwMSw2ICs1MDYsODkgQEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24o UGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCiAJcmV0dXJuIHJlc3VsdDsK IH0KIAorLyoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBraW5kIGlz IHZhbGlkIGZvciBzZXNzaW9uIHZhcmlhYmxlcworICogU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJl IHVzZWQgZXZlcnl3aGVyZSB3aGVyZSBleHRlcm5hbCBwYXJhbWV0ZXJzIGNhbiBiZQorICogdXNl ZC4gU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCBhbGxvd2VkIGluIERETCBjb21tYW5kcyBvciBp biBjb25zdHJhaW50cy4KKyAqCisgKiBBbiBpZGVudGlmaWVyIGNhbiBiZSBwYXJzZWQgYXMgYSBz ZXNzaW9uIHZhcmlhYmxlIG9ubHkgZm9yIGV4cHJlc3Npb24ga2luZHMKKyAqIHdoZXJlIHNlc3Np b24gdmFyaWFibGVzIGFyZSBhbGxvd2VkLiBUaGlzIGlzIHRoZSBwcmltYXJ5IHVzYWdlIG9mIHRo aXMKKyAqIGZ1bmN0aW9uLgorICoKKyAqIFNlY29uZCB1c2FnZSBvZiB0aGlzIGZ1bmN0aW9uIGlz IHRvIGRlY2lkZSB3aGV0aGVyICJjb2x1bW4gZG9lcyBub3QgZXhpc3QiIG9yCisgKiAiY29sdW1u IG9yIHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0IiBlcnJvciBtZXNzYWdlIHNob3VsZCBiZSBwcmlu dGVkLgorICogV2hlbiB3ZSBhcmUgaW4gYW4gZXhwcmVzc2lvbiB3aGVyZSBzZXNzaW9uIHZhcmlh YmxlcyBjYW5ub3QgYmUgdXNlZCwgd2UgcmFpc2UKKyAqIHRoZSBmaXJzdCBmb3JtIG9mIGVycm9y IG1lc3NhZ2UuCisgKi8KK3N0YXRpYyBib29sCitleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25fdmFy aWFibGVzKFBhcnNlRXhwcktpbmQgcF9leHByX2tpbmQpCit7CisJYm9vbAkJcmVzdWx0ID0gZmFs c2U7CisKKwlzd2l0Y2ggKHBfZXhwcl9raW5kKQorCXsKKwkJY2FzZSBFWFBSX0tJTkRfTk9ORToK KwkJCUFzc2VydChmYWxzZSk7CQkvKiBjYW4ndCBoYXBwZW4gKi8KKwkJCXJldHVybiBmYWxzZTsK KworCQkJLyogYWxsb3cgKi8KKwkJY2FzZSBFWFBSX0tJTkRfT1RIRVI6CisJCWNhc2UgRVhQUl9L SU5EX0pPSU5fT046CisJCWNhc2UgRVhQUl9LSU5EX0ZST01fU1VCU0VMRUNUOgorCQljYXNlIEVY UFJfS0lORF9GUk9NX0ZVTkNUSU9OOgorCQljYXNlIEVYUFJfS0lORF9XSEVSRToKKwkJY2FzZSBF WFBSX0tJTkRfSEFWSU5HOgorCQljYXNlIEVYUFJfS0lORF9GSUxURVI6CisJCWNhc2UgRVhQUl9L SU5EX1dJTkRPV19QQVJUSVRJT046CisJCWNhc2UgRVhQUl9LSU5EX1dJTkRPV19PUkRFUjoKKwkJ Y2FzZSBFWFBSX0tJTkRfV0lORE9XX0ZSQU1FX1JBTkdFOgorCQljYXNlIEVYUFJfS0lORF9XSU5E T1dfRlJBTUVfUk9XUzoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX0ZSQU1FX0dST1VQUzoKKwkJ Y2FzZSBFWFBSX0tJTkRfU0VMRUNUX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfSU5TRVJUX1RB UkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfVVBEQVRFX1NPVVJDRToKKwkJY2FzZSBFWFBSX0tJTkRf VVBEQVRFX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfTUVSR0VfV0hFTjoKKwkJY2FzZSBFWFBS X0tJTkRfTUVSR0VfUkVUVVJOSU5HOgorCQljYXNlIEVYUFJfS0lORF9HUk9VUF9CWToKKwkJY2Fz ZSBFWFBSX0tJTkRfT1JERVJfQlk6CisJCWNhc2UgRVhQUl9LSU5EX0RJU1RJTkNUX09OOgorCQlj YXNlIEVYUFJfS0lORF9MSU1JVDoKKwkJY2FzZSBFWFBSX0tJTkRfT0ZGU0VUOgorCQljYXNlIEVY UFJfS0lORF9SRVRVUk5JTkc6CisJCWNhc2UgRVhQUl9LSU5EX1ZBTFVFUzoKKwkJY2FzZSBFWFBS X0tJTkRfVkFMVUVTX1NJTkdMRToKKwkJY2FzZSBFWFBSX0tJTkRfQUxURVJfQ09MX1RSQU5TRk9S TToKKwkJY2FzZSBFWFBSX0tJTkRfRVhFQ1VURV9QQVJBTUVURVI6CisJCWNhc2UgRVhQUl9LSU5E X1BPTElDWToKKwkJY2FzZSBFWFBSX0tJTkRfQ0FMTF9BUkdVTUVOVDoKKwkJY2FzZSBFWFBSX0tJ TkRfQ09QWV9XSEVSRToKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKKwkJCXJlc3VsdCA9 IHRydWU7CisJCQlicmVhazsKKworCQkJLyogbm90IGFsbG93ICovCisJCWNhc2UgRVhQUl9LSU5E X0NIRUNLX0NPTlNUUkFJTlQ6CisJCWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKKwkJY2Fz ZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RF RkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJT046CisJCWNhc2UgRVhQUl9L SU5EX0lOREVYX1BSRURJQ0FURToKKwkJY2FzZSBFWFBSX0tJTkRfU1RBVFNfRVhQUkVTU0lPTjoK KwkJY2FzZSBFWFBSX0tJTkRfVFJJR0dFUl9XSEVOOgorCQljYXNlIEVYUFJfS0lORF9QQVJUSVRJ T05fQk9VTkQ6CisJCWNhc2UgRVhQUl9LSU5EX1BBUlRJVElPTl9FWFBSRVNTSU9OOgorCQljYXNl IEVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1OOgorCQljYXNlIEVYUFJfS0lORF9KT0lOX1VTSU5H OgorCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9BU1NJR05f VEFSR0VUOgorCQkJcmVzdWx0ID0gZmFsc2U7CisJCQlicmVhazsKKwl9CisKKwlyZXR1cm4gcmVz dWx0OworfQorCiAvKgogICogVHJhbnNmb3JtIGEgQ29sdW1uUmVmLgogICoKQEAgLTU3Nyw2ICs2 NjUsOCBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYg KmNyZWYpCiAJCWNhc2UgRVhQUl9LSU5EX0NPUFlfV0hFUkU6CiAJCWNhc2UgRVhQUl9LSU5EX0dF TkVSQVRFRF9DT0xVTU46CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CisJCWNhc2UgRVhQ Ul9LSU5EX0FTU0lHTl9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CiAJCQkv KiBva2F5ICovCiAJCQlicmVhazsKIApAQCAtODQ4LDYgKzkzOCw2NCBAQCB0cmFuc2Zvcm1Db2x1 bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJCQkJCSBwYXJzZXJf ZXJycG9zaXRpb24ocHN0YXRlLCBjcmVmLT5sb2NhdGlvbikpKTsKIAl9CiAKKwkvKgorCSAqIFRo ZXJlIGFyZSBjb250ZXh0cyB3aGVyZSBzZXNzaW9uJ3MgdmFyaWFibGVzIGFyZSBub3QgYWxsb3dl ZC4gVGhlCisJICogcXVlc3Rpb24gaXMgaWYgd2Ugd2FudCB0byBpZGVudGlmeSBzZXNzaW9uJ3Mg dmFyaWFibGVzIGluIHRoZXNlCisJICogY29udGV4dHM/IFRoZSBjb2RlIGNhbiBiZSBtb3JlIHNp bXBsZSwgd2hlbiB3ZSBkb24ndCBkbyBpdCwgYnV0IHRoZW4gd2UKKwkgKiBjYW5ub3QgdG8gcmFp c2UgbWF5YmUgdXNlZnVsIG1lc3NhZ2UgbGlrZSAieW91IGNhbm5vdCB0byB1c2Ugc2Vzc2lvbgor CSAqIHZhcmlhYmxlcyBoZXJlIi4KKwkgKi8KKwlpZiAoZXhwcl9raW5kX2FsbG93c19zZXNzaW9u X3ZhcmlhYmxlcyhwc3RhdGUtPnBfZXhwcl9raW5kKSkKKwl7CisJCU9pZAkJCXZhcmlkID0gSW52 YWxpZE9pZDsKKwkJY2hhcgkgICAqYXR0cm5hbWUgPSBOVUxMOworCQlib29sCQlub3RfdW5pcXVl OworCisJCS8qCisJCSAqIFNlc3Npb24gdmFyaWFibGVzIGFyZSBzaGFkb3dlZCBieSBjb2x1bW5z LCByb3V0aW5lJ3MgdmFyaWFibGVzIG9yCisJCSAqIHJvdXRpbmUncyBhcmd1bWVudHMuIFdlIGRv bid0IHdhbnQgdG8gdXNlIHNlc3Npb24gdmFyaWFibGUKKwkJICogd2hlbiBpdCBpcyBub3QgZXhh Y3RseSBzaGFkb3dlZCwgYnV0IFJURSBsaWtlIHRoaXMgaXMgdmFsaWQ6CisJCSAqCisJCSAqIENS RUFURSBUWVBFIFQgQVMgKGMgaW50KTsgQ1JFQVRFIFZBUklBQkxFIGZvbyBBUyBUOyBDUkVBVEUg VEFCTEUKKwkJICogZm9vKGEgaW50LCBiIGludCk7CisJCSAqCisJCSAqIFNFTEVDVCBmb28uYSwg Zm9vLmIsIGZvby5jIEZST00gZm9vOworCQkgKgorCQkgKiBUaGlzIGNhc2UgY2FuIGJlIG1lc3N5 IGFuZCB0aGVuIHdlIGRpc2FsbG93IGl0LiBXaGVuIHdlIGtub3cgdGhhdCBhCisJCSAqIHBvc3Np YmxlIHZhcmlhYmxlIHdpbGwgYmUgc2hhZG93ZWQsIHdlIGRvbid0IHRyeSB0byBpZGVudGlmeQor CQkgKiB2YXJpYWJsZS4KKwkJICovCisJCWlmICghbm9kZSAmJiAhKHJlbG5hbWUgJiYgY3JlcnIg PT0gQ1JFUlJfTk9fQ09MVU1OKSkKKwkJeworCQkJLyoKKwkJCSAqIFRoZSBBY2Nlc3NTaGFyZUxv Y2sgaXMgY3JlYXRlZCBvbiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGUuIFRoZQorCQkJICogbG9j ayB3aWxsIGJlIGtlcHQgZm9yIHRoZSB3aG9sZSB0cmFuc2FjdGlvbi4KKwkJCSAqLworCQkJdmFy aWQgPSBJZGVudGlmeVZhcmlhYmxlKGNyZWYtPmZpZWxkcywgJmF0dHJuYW1lLCAmbm90X3VuaXF1 ZSwgZmFsc2UpOworCisJCQlpZiAoT2lkSXNWYWxpZCh2YXJpZCkpCisJCQl7CisJCQkJT2lkCQkJ dHlwaWQ7CisJCQkJaW50MzIJCXR5cG1vZDsKKwkJCQlPaWQJCQljb2xsaWQ7CisKKwkJCQlpZiAo bm90X3VuaXF1ZSkKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RF X0FNQklHVU9VU19QQVJBTUVURVIpLAorCQkJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUg cmVmZXJlbmNlIFwiJXNcIiBpcyBhbWJpZ3VvdXMiLAorCQkJCQkJCQkJTmFtZUxpc3RUb1N0cmlu ZyhjcmVmLT5maWVsZHMpKSwKKwkJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3Jl Zi0+bG9jYXRpb24pKSk7CisKKwkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9j b2xsaWQodmFyaWQsICZ0eXBpZCwgJnR5cG1vZCwKKwkJCQkJCQkJCQkJCQkJJmNvbGxpZCk7CisK KwkJCQlub2RlID0gbWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxlKHBzdGF0ZSwKKwkJCQkJCQkJCQkJ CXZhcmlkLCB0eXBpZCwgdHlwbW9kLCBjb2xsaWQsCisJCQkJCQkJCQkJCQlhdHRybmFtZSwgY3Jl Zi0+bG9jYXRpb24pOworCQkJfQorCQl9CisJfQorCiAJLyoKIAkgKiBUaHJvdyBlcnJvciBpZiBu byB0cmFuc2xhdGlvbiBmb3VuZC4KIAkgKi8KQEAgLTg4Miw2ICsxMDMwLDcyIEBAIHRyYW5zZm9y bUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAlyZXR1cm4g bm9kZTsKIH0KIAorLyoKKyAqIEdlbmVyYXRlIHBhcmFtIHZhcmlhYmxlIGZvciByZWZlcmVuY2Ug dG8gc2Vzc2lvbiB2YXJpYWJsZQorICovCitzdGF0aWMgTm9kZSAqCittYWtlUGFyYW1TZXNzaW9u VmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJIE9pZCB2YXJpZCwgT2lkIHR5cGlk LCBpbnQzMiB0eXBtb2QsIE9pZCBjb2xsaWQsCisJCQkJCQkgY2hhciAqYXR0cm5hbWUsIGludCBs b2NhdGlvbikKK3sKKwlQYXJhbQkgICAqcGFyYW07CisKKwlwYXJhbSA9IG1ha2VOb2RlKFBhcmFt KTsKKworCXBhcmFtLT5wYXJhbWtpbmQgPSBQQVJBTV9WQVJJQUJMRTsKKwlwYXJhbS0+cGFyYW12 YXJpZCA9IHZhcmlkOworCXBhcmFtLT5wYXJhbXR5cGUgPSB0eXBpZDsKKwlwYXJhbS0+cGFyYW10 eXBtb2QgPSB0eXBtb2Q7CisJcGFyYW0tPnBhcmFtY29sbGlkID0gY29sbGlkOworCisJcHN0YXRl LT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOworCisJaWYgKGF0dHJuYW1lICE9IE5VTEwp CisJeworCQlUdXBsZURlc2MJdHVwZGVzYzsKKwkJaW50CQkJaTsKKworCQl0dXBkZXNjID0gbG9v a3VwX3Jvd3R5cGVfdHVwZGVzY19ub2Vycm9yKHR5cGlkLCB0eXBtb2QsIHRydWUpOworCQlpZiAo IXR1cGRlc2MpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1dST05H X09CSkVDVF9UWVBFKSwKKwkJCQkJIGVycm1zZygidmFyaWFibGUgXCIlcy4lc1wiIGlzIG9mIHR5 cGUgXCIlc1wiLCB3aGljaCBpcyBub3QgYSBjb21wb3NpdGUgdHlwZSIsCisJCQkJCQkJZ2V0X25h bWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJ CQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpLAorCQkJCQkJCWZvcm1hdF90eXBl X2JlKHR5cGlkKSksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikp KTsKKworCQlmb3IgKGkgPSAwOyBpIDwgdHVwZGVzYy0+bmF0dHM7IGkrKykKKwkJeworCQkJRm9y bV9wZ19hdHRyaWJ1dGUgYXR0ID0gVHVwbGVEZXNjQXR0cih0dXBkZXNjLCBpKTsKKworCQkJaWYg KHN0cmNtcChhdHRybmFtZSwgTmFtZVN0cihhdHQtPmF0dG5hbWUpKSA9PSAwICYmCisJCQkJIWF0 dC0+YXR0aXNkcm9wcGVkKQorCQkJeworCQkJCS8qIFN1Y2Nlc3MsIHNvIGdlbmVyYXRlIGEgRmll bGRTZWxlY3QgZXhwcmVzc2lvbiAqLworCQkJCUZpZWxkU2VsZWN0ICpmc2VsZWN0ID0gbWFrZU5v ZGUoRmllbGRTZWxlY3QpOworCisJCQkJZnNlbGVjdC0+YXJnID0gKEV4cHIgKikgcGFyYW07CisJ CQkJZnNlbGVjdC0+ZmllbGRudW0gPSBpICsgMTsKKwkJCQlmc2VsZWN0LT5yZXN1bHR0eXBlID0g YXR0LT5hdHR0eXBpZDsKKwkJCQlmc2VsZWN0LT5yZXN1bHR0eXBtb2QgPSBhdHQtPmF0dHR5cG1v ZDsKKwkJCQkvKiBzYXZlIGF0dHJpYnV0ZSdzIGNvbGxhdGlvbiBmb3IgcGFyc2VfY29sbGF0ZS5j ICovCisJCQkJZnNlbGVjdC0+cmVzdWx0Y29sbGlkID0gYXR0LT5hdHRjb2xsYXRpb247CisKKwkJ CQlSZWxlYXNlVHVwbGVEZXNjKHR1cGRlc2MpOworCQkJCXJldHVybiAoTm9kZSAqKSBmc2VsZWN0 OworCQkJfQorCQl9CisKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VO REVGSU5FRF9DT0xVTU4pLAorCQkJCSBlcnJtc2coImNvdWxkIG5vdCBpZGVudGlmeSBjb2x1bW4g XCIlc1wiIGluIHZhcmlhYmxlIiwgYXR0cm5hbWUpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24o cHN0YXRlLCBsb2NhdGlvbikpKTsKKwl9CisKKwlyZXR1cm4gKE5vZGUgKikgcGFyYW07Cit9CisK IHN0YXRpYyBOb2RlICoKIHRyYW5zZm9ybVBhcmFtUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFy YW1SZWYgKnByZWYpCiB7CkBAIC0xODE2LDYgKzIwMzAsNyBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBh cnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJY2FzZSBFWFBSX0tJTkRfVkFM VUVTOgogCQljYXNlIEVYUFJfS0lORF9WQUxVRVNfU0lOR0xFOgogCQljYXNlIEVYUFJfS0lORF9D WUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgogCQkJLyogb2theSAqLwog CQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NIRUNLX0NPTlNUUkFJTlQ6CkBAIC0xODU5LDYg KzIwNzQsOSBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAq c3VibGluaykKIAkJY2FzZSBFWFBSX0tJTkRfR0VORVJBVEVEX0NPTFVNTjoKIAkJCWVyciA9IF8o ImNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbiIpOwog CQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CisJCQllcnIgPSBfKCJj YW5ub3QgdXNlIHN1YnF1ZXJ5IGFzIHRhcmdldCBvZiBhc3NpZ24gc3RhdGVtZW50Iik7CisJCQli cmVhazsKIAogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDog Y2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpAQCAtMzE5Niw2ICszNDE0LDEwIEBAIFBhcnNlRXhwcktp bmROYW1lKFBhcnNlRXhwcktpbmQgZXhwcktpbmQpCiAJCQlyZXR1cm4gIkdFTkVSQVRFRCBBUyI7 CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCQlyZXR1cm4gIkNZQ0xFIjsKKwkJY2Fz ZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJCXJldHVybiAiQVNTSUdOIjsKKwkJY2FzZSBF WFBSX0tJTkRfTEVUX1RBUkdFVDoKKwkJCXJldHVybiAiTEVUIjsKIAogCQkJLyoKIAkJCSAqIFRo ZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyBiL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9mdW5jLmMKaW5kZXggOWIyMzM0NGEzYjEuLjlhYTRmNjA3NjhiIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCisrKyBiL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9mdW5jLmMKQEAgLTI2NTYsNiArMjY1Niw4IEBAIGNoZWNrX3NyZl9jYWxs X3BsYWNlbWVudChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmxhc3Rfc3JmLCBpbnQgbG9jYXRp b24pCiAJCQllcnIgPSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQg aW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbnMiKTsKIAkJCWJyZWFrOwogCQljYXNlIEVY UFJfS0lORF9DWUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQlj YXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgogCQkJZXJya2luZCA9IHRydWU7CiAJCQlicmVhazsK IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMgYi9zcmMvYmFja2VuZC90Y29w L2Rlc3QuYwppbmRleCA5NmY4MGIzMDQ2My4uZGFjNzhiYTVjY2UgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3Rjb3AvZGVzdC5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvZGVzdC5jCkBAIC0zOCw2 ICszOCw3IEBACiAjaW5jbHVkZSAiZXhlY3V0b3IvZnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiZXhl Y3V0b3IvdHF1ZXVlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvdHN0b3JlUmVjZWl2ZXIuaCIKKyNp bmNsdWRlICJleGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgogI2luY2x1ZGUgImxpYnBxL2xp YnBxLmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKIApAQCAtMTU1LDYgKzE1Niw5IEBA IENyZWF0ZURlc3RSZWNlaXZlcihDb21tYW5kRGVzdCBkZXN0KQogCiAJCWNhc2UgRGVzdEV4cGxh aW5TZXJpYWxpemU6CiAJCQlyZXR1cm4gQ3JlYXRlRXhwbGFpblNlcmlhbGl6ZURlc3RSZWNlaXZl cihOVUxMKTsKKworCQljYXNlIERlc3RWYXJpYWJsZToKKwkJCXJldHVybiBDcmVhdGVWYXJpYWJs ZURlc3RSZWNlaXZlcihJbnZhbGlkT2lkKTsKIAl9CiAKIAkvKiBzaG91bGQgbmV2ZXIgZ2V0IGhl cmUgKi8KQEAgLTE5MSw2ICsxOTUsNyBAQCBFbmRDb21tYW5kKGNvbnN0IFF1ZXJ5Q29tcGxldGlv biAqcWMsIENvbW1hbmREZXN0IGRlc3QsIGJvb2wgZm9yY2VfdW5kZWNvcmF0ZWRfbwogCQljYXNl IERlc3RUcmFuc2llbnRSZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6CiAJCWNhc2UgRGVzdEV4 cGxhaW5TZXJpYWxpemU6CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJYnJlYWs7CiAJfQogfQpA QCAtMjM3LDYgKzI0Miw3IEBAIE51bGxDb21tYW5kKENvbW1hbmREZXN0IGRlc3QpCiAJCWNhc2Ug RGVzdFRyYW5zaWVudFJlbDoKIAkJY2FzZSBEZXN0VHVwbGVRdWV1ZToKIAkJY2FzZSBEZXN0RXhw bGFpblNlcmlhbGl6ZToKKwkJY2FzZSBEZXN0VmFyaWFibGU6CiAJCQlicmVhazsKIAl9CiB9CkBA IC0yODEsNiArMjg3LDcgQEAgUmVhZHlGb3JRdWVyeShDb21tYW5kRGVzdCBkZXN0KQogCQljYXNl IERlc3RUcmFuc2llbnRSZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6CiAJCWNhc2UgRGVzdEV4 cGxhaW5TZXJpYWxpemU6CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJYnJlYWs7CiAJfQogfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9wcXVlcnkuYyBiL3NyYy9iYWNrZW5kL3Rjb3Av cHF1ZXJ5LmMKaW5kZXggMGM0NWZjZjMxOGYuLjg1YjgwOWNiMDcxIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC90Y29wL3BxdWVyeS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMKQEAg LTg2LDYgKzg2LDkgQEAgQ3JlYXRlUXVlcnlEZXNjKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwK IAlxZC0+cXVlcnlFbnYgPSBxdWVyeUVudjsKIAlxZC0+aW5zdHJ1bWVudF9vcHRpb25zID0gaW5z dHJ1bWVudF9vcHRpb25zOwkvKiBpbnN0cnVtZW50YXRpb24gd2FudGVkPyAqLwogCisJcWQtPm51 bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IDA7CisJcWQtPnNlc3Npb25fdmFyaWFibGVzID0gTlVMTDsK KwogCS8qIG51bGwgdGhlc2UgZmllbGRzIHVudGlsIHNldCBieSBFeGVjdXRvclN0YXJ0ICovCiAJ cWQtPnR1cERlc2MgPSBOVUxMOwogCXFkLT5lc3RhdGUgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwppbmRl eCBjZThkYjdjZGE0My4uNjYyZGJjZDFkZDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3Av dXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC00OSw2ICs0OSw3 IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvc2NoZW1hY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRz L3NlY2xhYmVsLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VxdWVuY2UuaCIKKyNpbmNsdWRlICJj b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc3Vic2NyaXB0 aW9uY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUgImNv bW1hbmRzL3RhYmxlc3BhY2UuaCIKQEAgLTIzNSw2ICsyMzYsNyBAQCBDbGFzc2lmeVV0aWxpdHlD b21tYW5kQXNSZWFkT25seShOb2RlICpwYXJzZXRyZWUpCiAKIAkJY2FzZSBUX0NhbGxTdG10Ogog CQljYXNlIFRfRG9TdG10OgorCQljYXNlIFRfTGV0U3RtdDoKIAkJCXsKIAkJCQkvKgogCQkJCSAq IENvbW1hbmRzIGluc2lkZSB0aGUgRE8gYmxvY2sgb3IgdGhlIGNhbGxlZCBwcm9jZWR1cmUgbWln aHQKQEAgLTEwNjQsNiArMTA2NiwxMSBAQCBzdGFuZGFyZF9Qcm9jZXNzVXRpbGl0eShQbGFubmVk U3RtdCAqcHN0bXQsCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQlF eGVjdXRlTGV0U3RtdChwc3RhdGUsIChMZXRTdG10ICopIHBhcnNldHJlZSwgcGFyYW1zLAorCQkJ CQkJICAgcXVlcnlFbnYsIHFjKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQkvKiBBbGwg b3RoZXIgc3RhdGVtZW50IHR5cGVzIGhhdmUgZXZlbnQgdHJpZ2dlciBzdXBwb3J0ICovCiAJCQlQ cm9jZXNzVXRpbGl0eVNsb3cocHN0YXRlLCBwc3RtdCwgcXVlcnlTdHJpbmcsCkBAIC0yMjAzLDYg KzIyMTAsMTAgQEAgVXRpbGl0eUNvbnRhaW5zUXVlcnkoTm9kZSAqcGFyc2V0cmVlKQogCQkJCXJl dHVybiBVdGlsaXR5Q29udGFpbnNRdWVyeShxcnktPnV0aWxpdHlTdG10KTsKIAkJCXJldHVybiBx cnk7CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQlxcnkgPSBjYXN0Tm9kZShRdWVyeSwgKChMZXRT dG10ICopIHBhcnNldHJlZSktPnF1ZXJ5KTsKKwkJCXJldHVybiBxcnk7CisKIAkJZGVmYXVsdDoK IAkJCXJldHVybiBOVUxMOwogCX0KQEAgLTI0MDEsNiArMjQxMiwxMCBAQCBDcmVhdGVDb21tYW5k VGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCXRhZyA9IENNRFRBR19TRUxFQ1Q7CiAJCQlicmVhazsK IAorCQljYXNlIFRfTGV0U3RtdDoKKwkJCXRhZyA9IENNRFRBR19MRVQ7CisJCQlicmVhazsKKwog CQkJLyogdXRpbGl0eSBzdGF0ZW1lbnRzIC0tLSBzYW1lIHdoZXRoZXIgcmF3IG9yIGNvb2tlZCAq LwogCQljYXNlIFRfVHJhbnNhY3Rpb25TdG10OgogCQkJewpAQCAtMzI4Niw2ICszMzAxLDcgQEAg R2V0Q29tbWFuZExvZ0xldmVsKE5vZGUgKnBhcnNldHJlZSkKIAkJCWJyZWFrOwogCiAJCWNhc2Ug VF9QTEFzc2lnblN0bXQ6CisJCWNhc2UgVF9MZXRTdG10OgogCQkJbGV2ID0gTE9HU1RNVF9BTEw7 CiAJCQlicmVhazsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGls cy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IDY1MzY4NWJmZmM1 Li5hMGVkZDVlMDQ5MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGls cy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAtMzcsNiArMzcs NyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3RhdGlzdGljX2V4dC5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIK ICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNlLmgiCiAjaW5jbHVkZSAiY29tbW9uL2tleXdv cmRzLmgiCkBAIC01MTksNiArNTIwLDcgQEAgc3RhdGljIGNoYXIgKmdlbmVyYXRlX2Z1bmN0aW9u X25hbWUoT2lkIGZ1bmNpZCwgaW50IG5hcmdzLAogc3RhdGljIGNoYXIgKmdlbmVyYXRlX29wZXJh dG9yX25hbWUoT2lkIG9wZXJpZCwgT2lkIGFyZzEsIE9pZCBhcmcyKTsKIHN0YXRpYyB2b2lkIGFk ZF9jYXN0X3RvKFN0cmluZ0luZm8gYnVmLCBPaWQgdHlwaWQpOwogc3RhdGljIGNoYXIgKmdlbmVy YXRlX3F1YWxpZmllZF90eXBlX25hbWUoT2lkIHR5cGlkKTsKK3N0YXRpYyBjaGFyICpnZW5lcmF0 ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZhcmlkKTsKIHN0YXRpYyB0ZXh0ICpzdHJpbmdf dG9fdGV4dChjaGFyICpzdHIpOwogc3RhdGljIGNoYXIgKmZsYXR0ZW5fcmVsb3B0aW9ucyhPaWQg cmVsaWQpOwogc3RhdGljIHZvaWQgZ2V0X3JlbG9wdGlvbnMoU3RyaW5nSW5mbyBidWYsIERhdHVt IHJlbG9wdGlvbnMpOwpAQCAtODM1MSw2ICs4MzUzLDE0IEBAIGdldF9wYXJhbWV0ZXIoUGFyYW0g KnBhcmFtLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCiAJCXJldHVybjsKIAl9CiAKKwkvKiB0 cmFuc2xhdGUgcGFyYW12YXJpZCB0byBzZXNzaW9uIHZhcmlhYmxlIG5hbWUgKi8KKwlpZiAocGFy YW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwl7CisJCWFwcGVuZFN0cmluZ0luZm8o Y29udGV4dC0+YnVmLCAiJXMiLAorCQkJCQkJIGdlbmVyYXRlX3Nlc3Npb25fdmFyaWFibGVfbmFt ZShwYXJhbS0+cGFyYW12YXJpZCkpOworCQlyZXR1cm47CisJfQorCiAJLyoKIAkgKiBBbHRlcm5h dGl2ZWx5LCBtYXliZSBpdCdzIGEgc3VicGxhbiBvdXRwdXQsIHdoaWNoIHdlIHByaW50IGFzIGEK IAkgKiByZWZlcmVuY2UgdG8gdGhlIHN1YnBsYW4uICAoV2UgY291bGQgZHJpbGwgZG93biBpbnRv IHRoZSBzdWJwbGFuIGFuZApAQCAtMTMxMzEsNiArMTMxNDEsNDIgQEAgZ2VuZXJhdGVfY29sbGF0 aW9uX25hbWUoT2lkIGNvbGxpZCkKIAlyZXR1cm4gcmVzdWx0OwogfQogCisvKgorICogZ2VuZXJh dGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lCisgKgkJQ29tcHV0ZSB0aGUgbmFtZSB0byBkaXNwbGF5 IGZvciBhIHNlc3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IE9JRAorICoKKyAqIFRoZSByZXN1 bHQgaW5jbHVkZXMgYWxsIG5lY2Vzc2FyeSBxdW90aW5nIGFuZCBzY2hlbWEtcHJlZml4aW5nLgor ICovCitzdGF0aWMgY2hhciAqCitnZW5lcmF0ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZh cmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCWNo YXIJICAgKnZhcm5hbWU7CisJY2hhcgkgICAqbnNwbmFtZTsKKwljaGFyCSAgICpyZXN1bHQ7CisK Kwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFy aWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2Fj aGUgbG9va3VwIGZhaWxlZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0g KEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJdmFybmFtZSA9IE5hbWVTdHIo dmFyZm9ybS0+dmFybmFtZSk7CisKKwlpZiAoIVZhcmlhYmxlSXNWaXNpYmxlKHZhcmlkKSkKKwkJ bnNwbmFtZSA9IGdldF9uYW1lc3BhY2VfbmFtZV9vcl90ZW1wKHZhcmZvcm0tPnZhcm5hbWVzcGFj ZSk7CisJZWxzZQorCQluc3BuYW1lID0gTlVMTDsKKworCXJlc3VsdCA9IHF1b3RlX3F1YWxpZmll ZF9pZGVudGlmaWVyKG5zcG5hbWUsIHZhcm5hbWUpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7 CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAvKgogICogR2l2ZW4gYSBDIHN0cmluZywgcHJvZHVj ZSBhIFRFWFQgZGF0dW0uCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv cGxhbmNhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwppbmRleCA1 YWYxYTE2OGVjMi4uOTIyODRmNzdjNzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Nh Y2hlL3BsYW5jYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5j CkBAIC01OCw2ICs1OCw3IEBACiAKICNpbmNsdWRlICJhY2Nlc3MvdHJhbnNhbS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5o IgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgi CiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCkBAIC0xNjIsNiArMTYzLDcgQEAgSW5pdFBs YW5DYWNoZSh2b2lkKQogCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKEFNT1BPUElELCBQ bGFuQ2FjaGVTeXNDYWxsYmFjaywgKERhdHVtKSAwKTsKIAlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVD YWxsYmFjayhGT1JFSUdOU0VSVkVST0lELCBQbGFuQ2FjaGVTeXNDYWxsYmFjaywgKERhdHVtKSAw KTsKIAlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhGT1JFSUdOREFUQVdSQVBQRVJPSUQs IFBsYW5DYWNoZVN5c0NhbGxiYWNrLCAoRGF0dW0pIDApOworCUNhY2hlUmVnaXN0ZXJTeXNjYWNo ZUNhbGxiYWNrKFZBUklBQkxFT0lELCBQbGFuQ2FjaGVPYmplY3RDYWxsYmFjaywgKERhdHVtKSAw KTsKIH0KIAogLyoKQEAgLTE5MDMsMTggKzE5MDUsMzMgQEAgU2NhblF1ZXJ5Rm9yTG9ja3MoUXVl cnkgKnBhcnNldHJlZSwgYm9vbCBhY3F1aXJlKQogCiAJLyoKIAkgKiBSZWN1cnNlIGludG8gc3Vi bGluayBzdWJxdWVyaWVzLCB0b28uICBCdXQgd2UgYWxyZWFkeSBkaWQgdGhlIG9uZXMgaW4KLQkg KiB0aGUgcnRhYmxlIGFuZCBjdGVMaXN0LgorCSAqIHRoZSBydGFibGUgYW5kIGN0ZUxpc3QuIFdl IG5lZWQgdG8gZm9yY2UgcmVjdXJzaXZlIGNhbGwgZm9yIHNlc3Npb24KKwkgKiB2YXJpYWJsZXMg dG9vLCB0byBmaW5kIGFuZCBsb2NrIHZhcmlhYmxlcyB1c2VkIGluIHF1ZXJ5IChzZWUKKwkgKiBT Y2FuUXVlcnlXYWxrZXIpLgogCSAqLwotCWlmIChwYXJzZXRyZWUtPmhhc1N1YkxpbmtzKQorCWlm IChwYXJzZXRyZWUtPmhhc1N1YkxpbmtzIHx8CisJCXBhcnNldHJlZS0+aGFzU2Vzc2lvblZhcmlh YmxlcykKIAl7CiAJCXF1ZXJ5X3RyZWVfd2Fsa2VyKHBhcnNldHJlZSwgU2NhblF1ZXJ5V2Fsa2Vy LAogCQkJCQkJICAodm9pZCAqKSAmYWNxdWlyZSwKIAkJCQkJCSAgUVRXX0lHTk9SRV9SQ19TVUJR VUVSSUVTKTsKIAl9CisKKwkvKiBQcm9jZXNzIHNlc3Npb24gdmFyaWFibGVzICovCisJaWYgKE9p ZElzVmFsaWQocGFyc2V0cmVlLT5yZXN1bHRWYXJpYWJsZSkpCisJeworCQlpZiAoYWNxdWlyZSkK KwkJCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHBhcnNldHJlZS0+cmVz dWx0VmFyaWFibGUsCisJCQkJCQkJICAgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJZWxzZQorCQkJ VW5sb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCBwYXJzZXRyZWUtPnJlc3Vs dFZhcmlhYmxlLAorCQkJCQkJCQkgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwl9CiB9CiAKIC8qCi0g KiBXYWxrZXIgdG8gZmluZCBzdWJsaW5rIHN1YnF1ZXJpZXMgZm9yIFNjYW5RdWVyeUZvckxvY2tz CisgKiBXYWxrZXIgdG8gZmluZCBzdWJsaW5rIHN1YnF1ZXJpZXMgb3IgcmVmZXJlbmNlZCBzZXNz aW9uIHZhcmlhYmxlcworICogZm9yIFNjYW5RdWVyeUZvckxvY2tzCiAgKi8KIHN0YXRpYyBib29s CiBTY2FuUXVlcnlXYWxrZXIoTm9kZSAqbm9kZSwgYm9vbCAqYWNxdWlyZSkKQEAgLTE5MjksNiAr MTk0NiwyMCBAQCBTY2FuUXVlcnlXYWxrZXIoTm9kZSAqbm9kZSwgYm9vbCAqYWNxdWlyZSkKIAkJ U2NhblF1ZXJ5Rm9yTG9ja3MoY2FzdE5vZGUoUXVlcnksIHN1Yi0+c3Vic2VsZWN0KSwgKmFjcXVp cmUpOwogCQkvKiBGYWxsIHRocm91Z2ggdG8gcHJvY2VzcyBsZWZ0aGFuZCBhcmdzIG9mIFN1Ykxp bmsgKi8KIAl9CisJZWxzZSBpZiAoSXNBKG5vZGUsIFBhcmFtKSkKKwl7CisJCVBhcmFtCSAgICpw ID0gKFBhcmFtICopIG5vZGU7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJM RSkKKwkJeworCQkJaWYgKGFjcXVpcmUpCisJCQkJTG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxl UmVsYXRpb25JZCwgcC0+cGFyYW12YXJpZCwKKwkJCQkJCQkJICAgMCwgQWNjZXNzU2hhcmVMb2Nr KTsKKwkJCWVsc2UKKwkJCQlVbmxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQs IHAtPnBhcmFtdmFyaWQsCisJCQkJCQkJCQkgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJfQorCX0K IAogCS8qCiAJICogRG8gTk9UIHJlY3Vyc2UgaW50byBRdWVyeSBub2RlcywgYmVjYXVzZSBTY2Fu UXVlcnlGb3JMb2NrcyBhbHJlYWR5CkBAIC0yMDYwLDcgKzIwOTEsOSBAQCBQbGFuQ2FjaGVSZWxD YWxsYmFjayhEYXR1bSBhcmcsIE9pZCByZWxpZCkKIAogLyoKICAqIFBsYW5DYWNoZU9iamVjdENh bGxiYWNrCi0gKgkJU3lzY2FjaGUgaW52YWwgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIFBST0NPSUQg YW5kIFRZUEVPSUQgY2FjaGVzCisgKgkJU3lzY2FjaGUgaW52YWwgY2FsbGJhY2sgZnVuY3Rpb24g Zm9yIFRZUEVPSUQsIFBST0NPSUQsIE5BTUVTUEFDRU9JRCwKKyAqIE9QRVJPSUQsIEFNT1BPUElE LCBGT1JFSUdOU0VSVkVST0lELCBGT1JFSUdOREFUQVdSQVBQRVJPSUQgYW5kIFZBUklBQkxFT0lE CisgKiBjYWNoZXMuCiAgKgogICogSW52YWxpZGF0ZSBhbGwgcGxhbnMgbWVudGlvbmluZyB0aGUg b2JqZWN0IHdpdGggdGhlIHNwZWNpZmllZCBoYXNoIHZhbHVlLAogICogb3IgYWxsIHBsYW5zIG1l bnRpb25pbmcgYW55IG1lbWJlciBvZiB0aGlzIGNhY2hlIGlmIGhhc2h2YWx1ZSA9PSAwLgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMgYi9zcmMvYmFja2VuZC91dGls cy9mbWdyL2ZtZ3IuYwppbmRleCBlNDhhODZiZTU0Yi4uZWFhZTBjNWE5MzMgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Zt Z3IvZm1nci5jCkBAIC0yMDI2LDkgKzIwMjYsMTMgQEAgZ2V0X2NhbGxfZXhwcl9hcmdfc3RhYmxl KE5vZGUgKmV4cHIsIGludCBhcmdudW0pCiAJICovCiAJaWYgKElzQShhcmcsIENvbnN0KSkKIAkJ cmV0dXJuIHRydWU7Ci0JaWYgKElzQShhcmcsIFBhcmFtKSAmJgotCQkoKFBhcmFtICopIGFyZykt PnBhcmFta2luZCA9PSBQQVJBTV9FWFRFUk4pCi0JCXJldHVybiB0cnVlOworCWlmIChJc0EoYXJn LCBQYXJhbSkpCisJeworCQlQYXJhbQkgICAqcCA9IChQYXJhbSAqKSBhcmc7CisKKwkJaWYgKHAt PnBhcmFta2luZCA9PSBQQVJBTV9FWFRFUk4gfHwgcC0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklB QkxFKQorCQkJcmV0dXJuIHRydWU7CisJfQogCiAJcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0 ZS5jCmluZGV4IGExYWVjZjIwYjFkLi43NDQyNDM5OTZlMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpAQCAt MTcwOSw4ICsxNzA5LDggQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBz dGFydCwgaW50IGVuZCkKIAkJIkFCT1JUIiwgIkFMVEVSIiwgIkFOQUxZWkUiLCAiQkVHSU4iLCAi Q0FMTCIsICJDSEVDS1BPSU5UIiwgIkNMT1NFIiwgIkNMVVNURVIiLAogCQkiQ09NTUVOVCIsICJD T01NSVQiLCAiQ09QWSIsICJDUkVBVEUiLCAiREVBTExPQ0FURSIsICJERUNMQVJFIiwKIAkJIkRF TEVURSBGUk9NIiwgIkRJU0NBUkQiLCAiRE8iLCAiRFJPUCIsICJFTkQiLCAiRVhFQ1VURSIsICJF WFBMQUlOIiwKLQkJIkZFVENIIiwgIkdSQU5UIiwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsICJJ TlNFUlQgSU5UTyIsICJMSVNURU4iLCAiTE9BRCIsICJMT0NLIiwKLQkJIk1FUkdFIElOVE8iLCAi TU9WRSIsICJOT1RJRlkiLCAiUFJFUEFSRSIsCisJCSJGRVRDSCIsICJHUkFOVCIsICJJTVBPUlQg Rk9SRUlHTiBTQ0hFTUEiLCAiSU5TRVJUIElOVE8iLCAiTEVUIiwKKwkJIkxJU1RFTiIsICJMT0FE IiwgIkxPQ0siLCAiTUVSR0UgSU5UTyIsICJNT1ZFIiwgIk5PVElGWSIsICJQUkVQQVJFIiwKIAkJ IlJFQVNTSUdOIiwgIlJFRlJFU0ggTUFURVJJQUxJWkVEIFZJRVciLCAiUkVJTkRFWCIsICJSRUxF QVNFIiwKIAkJIlJFU0VUIiwgIlJFVk9LRSIsICJST0xMQkFDSyIsCiAJCSJTQVZFUE9JTlQiLCAi U0VDVVJJVFkgTEFCRUwiLCAiU0VMRUNUIiwgIlNFVCIsICJTSE9XIiwgIlNUQVJUIiwKQEAgLTQy ODgsNiArNDI4OCwxNCBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0 YXJ0LCBpbnQgZW5kKQogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQUxVRVMiKSAmJiAhVGFpbE1h dGNoZXMoIkRFRkFVTFQiLCAiVkFMVUVTIikpCiAJCUNPTVBMRVRFX1dJVEgoIigiKTsKIAorLyog TEVUICovCisJLyogSWYgcHJldi4gd29yZCBpcyBMRVQgc3VnZ2VzdCBhIGxpc3Qgb2YgdmFyaWFi bGVzICovCisJZWxzZSBpZiAoTWF0Y2hlcygiTEVUIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1B X1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyk7CisJLyogQ29tcGxldGUgTEVUIDx2 YXJpYWJsZT4gd2l0aCAiPSIgKi8KKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiTEVUIiwgTWF0Y2hB bnkpKQorCQlDT01QTEVURV9XSVRIKCI9Iik7CisKIC8qIExPQ0sgKi8KIAkvKiBDb21wbGV0ZSBM T0NLIFtUQUJMRV0gW09OTFldIHdpdGggYSBsaXN0IG9mIHRhYmxlcyAqLwogCWVsc2UgaWYgKE1h dGNoZXMoIkxPQ0siKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNl LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCmluZGV4IDQxNzJiMGNkMjY4Li44 NTVjYTUzMDk2NCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAor KysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCkBAIC0xNzEsNyArMTcxLDkgQEAg ZXh0ZXJuIFNlYXJjaFBhdGhNYXRjaGVyICpHZXRTZWFyY2hQYXRoTWF0Y2hlcihNZW1vcnlDb250 ZXh0IGNvbnRleHQpOwogZXh0ZXJuIFNlYXJjaFBhdGhNYXRjaGVyICpDb3B5U2VhcmNoUGF0aE1h dGNoZXIoU2VhcmNoUGF0aE1hdGNoZXIgKnBhdGgpOwogZXh0ZXJuIGJvb2wgU2VhcmNoUGF0aE1h dGNoZXNDdXJyZW50RW52aXJvbm1lbnQoU2VhcmNoUGF0aE1hdGNoZXIgKnBhdGgpOwogCitleHRl cm4gTGlzdCAqTmFtZXNGcm9tTGlzdChMaXN0ICpuYW1lcyk7CiBleHRlcm4gT2lkCUxvb2t1cFZh cmlhYmxlKGNvbnN0IGNoYXIgKm5zcG5hbWUsIGNvbnN0IGNoYXIgKnZhcm5hbWUsIGJvb2wgbWlz c2luZ19vayk7CitleHRlcm4gT2lkCUlkZW50aWZ5VmFyaWFibGUoTGlzdCAqbmFtZXMsIGNoYXIg KiphdHRybmFtZSwgYm9vbCAqbm90X3VuaXF1ZSwgYm9vbCBub2Vycm9yKTsKIAogZXh0ZXJuIE9p ZAlnZXRfY29sbGF0aW9uX29pZChMaXN0ICpjb2xsbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4 dGVybiBPaWQJZ2V0X2NvbnZlcnNpb25fb2lkKExpc3QgKmNvbm5hbWUsIGJvb2wgbWlzc2luZ19v ayk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggMTBmYmE4MDU4NDcuLjFmNDExMjc5 MGFmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKKysrIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCkBAIC0yNiw2ICsyNiwxMCBAQAogLyog LS0tLS0tLS0tLS0tLS0tLQogICoJCXBnX3ZhcmlhYmxlIGRlZmluaXRpb24uICBjcHAgdHVybnMg dGhpcyBpbnRvCiAgKgkJdHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFfcGdfdmFyaWFibGUKKyAqCisg KiBUaGUgY29sdW1uIHZhcmNyZWF0ZV9sc24gb2YgWGxvZ1JlY1B0ciB0eXBlICg4LWJ5dGUpIHNo b3VsZCBiZSBvbiBwb3NpdGlvbgorICogZGl2aXNpYmxlIGJ5IDggdW5jb25kaXRpb25hbGx5IGFu ZCBiZWZvcmUgdmFybmFtZSBjb2x1bW4gb2YgTmFtZURhdGEgdHlwZS4KKyAqIHNlZSBzYW5pdHlf Y2hlY2s6Y2hlY2tfY29sdW1ucwogICogLS0tLS0tLS0tLS0tLS0tLQogICovCiBDQVRBTE9HKHBn X3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQpAQCAtMzUsNiArMzksOSBAQCBDQVRB TE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQogCS8qIE9JRCBvZiBlbnRy eSBpbiBwZ190eXBlIGZvciB2YXJpYWJsZSdzIHR5cGUgKi8KIAlPaWQJCQl2YXJ0eXBlIEJLSV9M T09LVVAocGdfdHlwZSk7CiAKKwkvKiB1c2VkIGZvciBpZGVudGl0eSBjaGVjayBbb2lkLCBjcmVh dGVfbHNuXSAqLworCVhMb2dSZWNQdHIJdmFyY3JlYXRlX2xzbjsKKwogCS8qIHZhcmlhYmxlIG5h bWUgKi8KIAlOYW1lRGF0YQl2YXJuYW1lOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmIzZjAzYzY1 ODI3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHNlc3Np b252YXJpYWJsZS5oCisgKgkgIHByb3RvdHlwZXMgZm9yIHNlc3Npb252YXJpYWJsZS5jLgorICoK KyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9i YWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVn ZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8K KworI2lmbmRlZiBTRVNTSU9OVkFSSUFCTEVfSAorI2RlZmluZSBTRVNTSU9OVkFSSUFCTEVfSAor CisjaW5jbHVkZSAibm9kZXMvcGFyYW1zLmgiCisjaW5jbHVkZSAibm9kZXMvcGFyc2Vub2Rlcy5o IgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgiCisjaW5jbHVkZSAidGNvcC9jbWR0YWcu aCIKKyNpbmNsdWRlICJ1dGlscy9xdWVyeWVudmlyb25tZW50LmgiCisKK2V4dGVybiB2b2lkIFNl dFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7Citl eHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFyaWFibGVXaXRoU2VjdXJpdHlDaGVjayhPaWQgdmFyaWQs IERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7CitleHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZhcmlh YmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsLCBPaWQgKnR5cGlkKTsKK2V4dGVybiBEYXR1bSBH ZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZUNoZWNrKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsLCBP aWQgZXhwZWN0ZWRfdHlwaWQpOworCitleHRlcm4gdm9pZCBFeGVjdXRlTGV0U3RtdChQYXJzZVN0 YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQsIFBhcmFtTGlzdEluZm8gcGFyYW1zLAorCQkJCQkJ ICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsIFF1ZXJ5Q29tcGxldGlvbiAqcWMpOworCisj ZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNkZXNjLmggYi9zcmMv aW5jbHVkZS9leGVjdXRvci9leGVjZGVzYy5oCmluZGV4IDBhNzI3NGUyNmM4Li5kMWIyZjU5ZTBj ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaAorKysgYi9zcmMv aW5jbHVkZS9leGVjdXRvci9leGVjZGVzYy5oCkBAIC00OCw2ICs0OCwxMCBAQCB0eXBlZGVmIHN0 cnVjdCBRdWVyeURlc2MKIAlFU3RhdGUJICAgKmVzdGF0ZTsJCQkvKiBleGVjdXRvcidzIHF1ZXJ5 LXdpZGUgc3RhdGUgKi8KIAlQbGFuU3RhdGUgICpwbGFuc3RhdGU7CQkvKiB0cmVlIG9mIHBlci1w bGFuLW5vZGUgc3RhdGUgKi8KIAorCS8qIHJlZmVyZW5jZSB0byBzZXNzaW9uIHZhcmlhYmxlcyBi dWZmZXIgKi8KKwlpbnQJCQludW1fc2Vzc2lvbl92YXJpYWJsZXM7CisJU2Vzc2lvblZhcmlhYmxl VmFsdWUgKnNlc3Npb25fdmFyaWFibGVzOworCiAJLyogVGhpcyBmaWVsZCBpcyBzZXQgYnkgRXhl Y3V0b3JSdW4gKi8KIAlib29sCQlhbHJlYWR5X2V4ZWN1dGVkOwkvKiB0cnVlIGlmIHByZXZpb3Vz bHkgZXhlY3V0ZWQgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3Zhcmlh YmxlUmVjZWl2ZXIuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRiNDRkOGI5NGM2Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaApA QCAtMCwwICsxLDIyIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBzdmFyaWFibGVSZWNl aXZlci5oCisgKgkgIHByb3RvdHlwZXMgZm9yIHN2YXJpYWJsZVJlY2VpdmVyLmMKKyAqCisgKgor ICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERl dmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMg b2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2V4ZWN1 dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisj aWZuZGVmIFNWQVJJQUJMRV9SRUNFSVZFUl9ICisjZGVmaW5lIFNWQVJJQUJMRV9SRUNFSVZFUl9I CisKKyNpbmNsdWRlICJ0Y29wL2Rlc3QuaCIKKworZXh0ZXJuIERlc3RSZWNlaXZlciAqQ3JlYXRl VmFyaWFibGVEZXN0UmVjZWl2ZXIoT2lkIHZhcmlkKTsKKworI2VuZGlmCQkJCQkJCS8qIFNWQVJJ QUJMRV9SRUNFSVZFUl9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9k ZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCmluZGV4IGNhYzY4NGQ5YjNhLi5i ZWM3YjA0M2RhMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKKysr IGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKQEAgLTYwOSw2ICs2MDksMTggQEAgdHlw ZWRlZiBzdHJ1Y3QgQXN5bmNSZXF1ZXN0CiAJCQkJCQkJCSAqIHR1cGxlcykgKi8KIH0gQXN5bmNS ZXF1ZXN0OwogCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKiBTZXNzaW9uVmFyaWFibGVWYWx1ZQor ICogLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBTZXNzaW9uVmFyaWFibGVW YWx1ZQoreworCU9pZAkJCXZhcmlkOworCU9pZAkJCXR5cGlkOworCWJvb2wJCWlzbnVsbDsKKwlE YXR1bQkJdmFsdWU7Cit9IFNlc3Npb25WYXJpYWJsZVZhbHVlOworCiAvKiAtLS0tLS0tLS0tLS0t LS0tCiAgKgkgIEVTdGF0ZSBpbmZvcm1hdGlvbgogICoKQEAgLTY2MSw2ICs2NzMsMTMgQEAgdHlw ZWRlZiBzdHJ1Y3QgRVN0YXRlCiAJUGFyYW1MaXN0SW5mbyBlc19wYXJhbV9saXN0X2luZm87CS8q IHZhbHVlcyBvZiBleHRlcm5hbCBwYXJhbXMgKi8KIAlQYXJhbUV4ZWNEYXRhICplc19wYXJhbV9l eGVjX3ZhbHM7CS8qIHZhbHVlcyBvZiBpbnRlcm5hbCBwYXJhbXMgKi8KIAorCS8qIFZhcmlhYmxl cyBpbmZvOiAqLworCS8qIG51bWJlciBvZiB1c2VkIHNlc3Npb24gdmFyaWFibGVzICovCisJaW50 CQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzOworCisJLyogYXJyYXkgb2YgY29waWVkIHZhbHVl cyBvZiBzZXNzaW9uIHZhcmlhYmxlcyAqLworCVNlc3Npb25WYXJpYWJsZVZhbHVlICplc19zZXNz aW9uX3ZhcmlhYmxlczsKKwogCVF1ZXJ5RW52aXJvbm1lbnQgKmVzX3F1ZXJ5RW52OwkvKiBxdWVy eSBlbnZpcm9ubWVudCAqLwogCiAJLyogT3RoZXIgd29ya2luZyBzdGF0ZTogKi8KZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaAppbmRleCA4MGVhNTkyOGVlZi4uNzRiZjVhZjc3NjYgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmgKQEAgLTE0Miw2ICsxNDIsOSBAQCB0eXBlZGVmIHN0cnVjdCBRdWVyeQogCSAqLwog CWludAkJCXJlc3VsdFJlbGF0aW9uIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsK IAorCS8qIHRhcmdldCB2YXJpYWJsZSBvZiBMRVQgc3RhdGVtZW50ICovCisJT2lkCQkJcmVzdWx0 VmFyaWFibGU7CisKIAkvKiBoYXMgYWdncmVnYXRlcyBpbiB0bGlzdCBvciBoYXZpbmdRdWFsICov CiAJYm9vbAkJaGFzQWdncyBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyog aGFzIHdpbmRvdyBmdW5jdGlvbnMgaW4gdGxpc3QgKi8KQEAgLTE2MCw2ICsxNjMsOCBAQCB0eXBl ZGVmIHN0cnVjdCBRdWVyeQogCWJvb2wJCWhhc0ZvclVwZGF0ZSBwZ19ub2RlX2F0dHIocXVlcnlf anVtYmxlX2lnbm9yZSk7CiAJLyogcmV3cml0ZXIgaGFzIGFwcGxpZWQgc29tZSBSTFMgcG9saWN5 ICovCiAJYm9vbAkJaGFzUm93U2VjdXJpdHkgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25v cmUpOworCS8qIHVzZXMgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwlib29sCQloYXNTZXNzaW9uVmFy aWFibGVzIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiBpcyBhIFJFVFVS TiBzdGF0ZW1lbnQgKi8KIAlib29sCQlpc1JldHVybiBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxl X2lnbm9yZSk7CiAKQEAgLTIwOTUsNiArMjEwMCwxOCBAQCB0eXBlZGVmIHN0cnVjdCBNZXJnZVN0 bXQKIAlXaXRoQ2xhdXNlICp3aXRoQ2xhdXNlOwkJLyogV0lUSCBjbGF1c2UgKi8KIH0gTWVyZ2VT dG10OwogCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgkJTGV0IFN0YXRlbWVudAorICog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBMZXRTdG10Cit7CisJ Tm9kZVRhZwkJdHlwZTsKKwlMaXN0CSAgICp0YXJnZXQ7CQkJLyogdGFyZ2V0IHZhcmlhYmxlICov CisJTm9kZQkgICAqcXVlcnk7CQkJLyogc291cmNlIGV4cHJlc3Npb24gKi8KKwlpbnQJCQlsb2Nh dGlvbjsKK30gTGV0U3RtdDsKKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJCVNlbGVj dCBTdGF0ZW1lbnQKICAqCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMu aCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCmluZGV4IDE0Y2NmYzFhYzFjLi5jMTYz ODU1MTJmYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKKysrIGIv c3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKQEAgLTE2Myw2ICsxNjMsOSBAQCB0eXBlZGVm IHN0cnVjdCBQbGFubmVyR2xvYmFsCiAKIAkvKiBwYXJ0aXRpb24gZGVzY3JpcHRvcnMgKi8KIAlQ YXJ0aXRpb25EaXJlY3RvcnkgcGFydGl0aW9uX2RpcmVjdG9yeSBwZ19ub2RlX2F0dHIocmVhZF93 cml0ZV9pZ25vcmUpOworCisJLyogbGlzdCBvZiB1c2VkIHNlc3Npb24gdmFyaWFibGVzICovCisJ TGlzdAkgICAqc2Vzc2lvblZhcmlhYmxlczsKIH0gUGxhbm5lckdsb2JhbDsKIAogLyogbWFjcm8g Zm9yIGZldGNoaW5nIHRoZSBQbGFuIGFzc29jaWF0ZWQgd2l0aCBhIFN1YlBsYW4gbm9kZSAqLwpA QCAtNTA4LDYgKzUxMSw4IEBAIHN0cnVjdCBQbGFubmVySW5mbwogCWJvb2wJCXBsYWNlaG9sZGVy c0Zyb3plbjsKIAkvKiB0cnVlIGlmIHBsYW5uaW5nIGEgcmVjdXJzaXZlIFdJVEggaXRlbSAqLwog CWJvb2wJCWhhc1JlY3Vyc2lvbjsKKwkvKiB0cnVlIGlmIHNlc3Npb24gdmFyaWFibGVzIHdlcmUg dXNlZCAqLworCWJvb2wJCWhhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAkvKgogCSAqIEluZm9ybWF0 aW9uIGFib3V0IGFnZ3JlZ2F0ZXMuIEZpbGxlZCBieSBwcmVwcm9jZXNzX2FnZ3JlZnMoKS4KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGxhbm5vZGVzLmgKaW5kZXggMWFlZWFlYzk1ZTEuLjZiOWI5OTA0ZmRiIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9w bGFubm9kZXMuaApAQCAtNDksNyArNDksNyBAQCB0eXBlZGVmIHN0cnVjdCBQbGFubmVkU3RtdAog CiAJTm9kZVRhZwkJdHlwZTsKIAotCUNtZFR5cGUJCWNvbW1hbmRUeXBlOwkvKiBzZWxlY3R8aW5z ZXJ0fHVwZGF0ZXxkZWxldGV8bWVyZ2V8dXRpbGl0eSAqLworCUNtZFR5cGUJCWNvbW1hbmRUeXBl OwkvKiBzZWxlY3R8bGV0fGluc2VydHx1cGRhdGV8ZGVsZXRlfG1lcmdlfHV0aWxpdHkgKi8KIAog CXVpbnQ2NAkJcXVlcnlJZDsJCS8qIHF1ZXJ5IGlkZW50aWZpZXIgKGNvcGllZCBmcm9tIFF1ZXJ5 KSAqLwogCkBAIC05NCw2ICs5NCw4IEBAIHR5cGVkZWYgc3RydWN0IFBsYW5uZWRTdG10CiAKIAlO b2RlCSAgICp1dGlsaXR5U3RtdDsJLyogbm9uLW51bGwgaWYgdGhpcyBpcyB1dGlsaXR5IHN0bXQg Ki8KIAorCUxpc3QJICAgKnNlc3Npb25WYXJpYWJsZXM7CS8qIE9JRHMgZm9yIFBBUkFNX1ZBUklB QkxFIFBhcmFtcyAqLworCiAJLyogc3RhdGVtZW50IGxvY2F0aW9uIGluIHNvdXJjZSBzdHJpbmcg KGNvcGllZCBmcm9tIFF1ZXJ5KSAqLwogCVBhcnNlTG9jCXN0bXRfbG9jYXRpb247CS8qIHN0YXJ0 IGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJc3RtdF9sZW47CQkvKiBs ZW5ndGggaW4gYnl0ZXM7IDAgbWVhbnMgInJlc3Qgb2Ygc3RyaW5nIiAqLwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9k ZXMuaAppbmRleCBlYTQ3NjUyYWRiOC4uNzIyZGY2OTk1MzcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5o CkBAIC0zNjEsNiArMzYxLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgQ29uc3QKICAqCQkJCW9mIHRoZSBg cGFyYW1pZCcgZmllbGQgY29udGFpbiB0aGUgU3ViTGluaydzIHN1YkxpbmtJZCwgYW5kCiAgKgkJ CQl0aGUgbG93LW9yZGVyIDE2IGJpdHMgY29udGFpbiB0aGUgY29sdW1uIG51bWJlci4gIChUaGlz IHR5cGUKICAqCQkJCW9mIFBhcmFtIGlzIGFsc28gY29udmVydGVkIHRvIFBBUkFNX0VYRUMgZHVy aW5nIHBsYW5uaW5nLikKKyAqCisgKgkJUEFSQU1fVkFSSUFCTEU6ICBUaGUgcGFyYW1ldGVyIGlz IGFuIGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlCisgKgkJCQlwYXJhbWlkIGhvbGRzIHZhcmlk LgogICovCiB0eXBlZGVmIGVudW0gUGFyYW1LaW5kCiB7CkBAIC0zNjgsNiArMzcxLDcgQEAgdHlw ZWRlZiBlbnVtIFBhcmFtS2luZAogCVBBUkFNX0VYRUMsCiAJUEFSQU1fU1VCTElOSywKIAlQQVJB TV9NVUxUSUVYUFIsCisJUEFSQU1fVkFSSUFCTEUsCiB9IFBhcmFtS2luZDsKIAogdHlwZWRlZiBz dHJ1Y3QgUGFyYW0KQEAgLTM4MCw2ICszODQsOCBAQCB0eXBlZGVmIHN0cnVjdCBQYXJhbQogCWlu dDMyCQlwYXJhbXR5cG1vZCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyog T0lEIG9mIGNvbGxhdGlvbiwgb3IgSW52YWxpZE9pZCBpZiBub25lICovCiAJT2lkCQkJcGFyYW1j b2xsaWQgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOworCS8qIE9JRCBvZiBzZXNz aW9uIHZhcmlhYmxlIGlmIGl0IGlzIHVzZWQgKi8KKwlPaWQJCQlwYXJhbXZhcmlkOwogCS8qIHRv a2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJbG9jYXRpb247CiB9 IFBhcmFtOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmggYi9z cmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4uaAppbmRleCBhYWZjMTczNzkyMS4uZGU0NzE2 OTJlODIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFubWFpbi5oCisrKyBi L3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFubWFpbi5oCkBAIC0xMjAsNCArMTIwLDYgQEAgZXh0 ZXJuIHZvaWQgcmVjb3JkX3BsYW5fZnVuY3Rpb25fZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9v dCwgT2lkIGZ1bmNpZCk7CiBleHRlcm4gdm9pZCByZWNvcmRfcGxhbl90eXBlX2RlcGVuZGVuY3ko UGxhbm5lckluZm8gKnJvb3QsIE9pZCB0eXBpZCk7CiBleHRlcm4gYm9vbCBleHRyYWN0X3F1ZXJ5 X2RlcGVuZGVuY2llc193YWxrZXIoTm9kZSAqbm9kZSwgUGxhbm5lckluZm8gKmNvbnRleHQpOwog CitleHRlcm4gdm9pZCBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlcyhQbGFubmVySW5mbyAq cm9vdCk7CisKICNlbmRpZgkJCQkJCQkvKiBQTEFOTUFJTl9IICovCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKaW5k ZXggYzg4NGNkNWM0NjcuLjJlODhkN2Q5NTA4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJz ZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCkBAIC0yNTYsNiAr MjU2LDcgQEAgUEdfS0VZV09SRCgibGVhZGluZyIsIExFQURJTkcsIFJFU0VSVkVEX0tFWVdPUkQs IEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZWFrcHJvb2YiLCBMRUFLUFJPT0YsIFVOUkVTRVJW RURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxlYXN0IiwgTEVBU1QsIENPTF9O QU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZWZ0IiwgTEVGVCwgVFlQRV9G VU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoImxldCIsIExFVCwgVU5S RVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGV2ZWwiLCBMRVZFTCwg VU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGlrZSIsIExJS0Us IFRZUEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsaW1pdCIs IExJTUlULCBSRVNFUlZFRF9LRVlXT1JELCBBU19MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5o CmluZGV4IDViNzgxZDg3YTlkLi42ZDkzNjkxOTY1OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv cGFyc2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5o CkBAIC04Miw2ICs4Miw4IEBAIHR5cGVkZWYgZW51bSBQYXJzZUV4cHJLaW5kCiAJRVhQUl9LSU5E X0NPUFlfV0hFUkUsCQkvKiBXSEVSRSBjb25kaXRpb24gaW4gQ09QWSBGUk9NICovCiAJRVhQUl9L SU5EX0dFTkVSQVRFRF9DT0xVTU4sIC8qIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBmb3IgYSBjb2x1 bW4gKi8KIAlFWFBSX0tJTkRfQ1lDTEVfTUFSSywJCS8qIGN5Y2xlIG1hcmsgdmFsdWUgKi8KKwlF WFBSX0tJTkRfQVNTSUdOX1RBUkdFVCwJLyogUEwvcGdTUUwgYXNzaWdubWVudCB0YXJnZXQgKi8K KwlFWFBSX0tJTkRfTEVUX1RBUkdFVCwJCS8qIExFVCB0YXJnZXQgKi8KIH0gUGFyc2VFeHByS2lu ZDsKIAogCkBAIC0yMjUsNiArMjI3LDcgQEAgc3RydWN0IFBhcnNlU3RhdGUKIAlib29sCQlwX2hh c1RhcmdldFNSRnM7CiAJYm9vbAkJcF9oYXNTdWJMaW5rczsKIAlib29sCQlwX2hhc01vZGlmeWlu Z0NURTsKKwlib29sCQlwX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlOb2RlCSAgICpwX2xhc3Rf c3JmOwkJLyogbW9zdCByZWNlbnQgc2V0LXJldHVybmluZyBmdW5jL29wIGZvdW5kICovCiAKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNv cC9jbWR0YWdsaXN0LmgKaW5kZXggOTQ2NWRmN2IyZmYuLmE5MjFhZjI0ODZmIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2Nt ZHRhZ2xpc3QuaApAQCAtMTg2LDYgKzE4Niw3IEBAIFBHX0NNRFRBRyhDTURUQUdfR1JBTlQsICJH UkFOVCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfR1JBTlRfUk9MRSwg IkdSQU5UIFJPTEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19JTVBP UlRfRk9SRUlHTl9TQ0hFTUEsICJJTVBPUlQgRk9SRUlHTiBTQ0hFTUEiLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0lOU0VSVCwgIklOU0VSVCIsIGZhbHNlLCBmYWxzZSwg dHJ1ZSkKK1BHX0NNRFRBRyhDTURUQUdfTEVULCAiTEVUIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkK IFBHX0NNRFRBRyhDTURUQUdfTElTVEVOLCAiTElTVEVOIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkK IFBHX0NNRFRBRyhDTURUQUdfTE9BRCwgIkxPQUQiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdf Q01EVEFHKENNRFRBR19MT0NLX1RBQkxFLCAiTE9DSyBUQUJMRSIsIGZhbHNlLCBmYWxzZSwgZmFs c2UpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29wL2Rlc3QuaCBiL3NyYy9pbmNsdWRlL3Rj b3AvZGVzdC5oCmluZGV4IGEzZDUyMWI2Zjk3Li4yODZlNTcxZjI3YyAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvdGNvcC9kZXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmgKQEAgLTk3 LDYgKzk3LDcgQEAgdHlwZWRlZiBlbnVtCiAJRGVzdFRyYW5zaWVudFJlbCwJCQkvKiByZXN1bHRz IHNlbnQgdG8gdHJhbnNpZW50IHJlbGF0aW9uICovCiAJRGVzdFR1cGxlUXVldWUsCQkJCS8qIHJl c3VsdHMgc2VudCB0byB0dXBsZSBxdWV1ZSAqLwogCURlc3RFeHBsYWluU2VyaWFsaXplLAkJLyog cmVzdWx0cyBhcmUgc2VyaWFsaXplZCBhbmQgZGlzY2FyZGVkICovCisJRGVzdFZhcmlhYmxlLAkJ CQkvKiByZXN1bHRzIHNlbnRzIHRvIHNlc3Npb24gdmFyaWFibGUgKi8KIH0gQ29tbWFuZERlc3Q7 CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9w bF9leGVjLmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IDIzOWIzMjUwYTk1 Li5hOWUxZTMyM2FkMSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwor KysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCkBAIC04MTAxLDcgKzgxMDEsOCBAQCBl eGVjX2lzX3NpbXBsZV9xdWVyeShQTHBnU1FMX2V4cHIgKmV4cHIpCiAJCXF1ZXJ5LT5zb3J0Q2xh dXNlIHx8CiAJCXF1ZXJ5LT5saW1pdE9mZnNldCB8fAogCQlxdWVyeS0+bGltaXRDb3VudCB8fAot CQlxdWVyeS0+c2V0T3BlcmF0aW9ucykKKwkJcXVlcnktPnNldE9wZXJhdGlvbnMgfHwKKwkJcXVl cnktPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJCXJldHVybiBmYWxzZTsKIAogCS8qCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IGFjYTc2 NjA0MmRiLi4yODFiZGQ3OTIwYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTU1LDMgKzU1LDkxNSBAQCBTRVQgUk9MRSBUTyBERUZB VUxUOwogRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIxOwogRFJPUCBTQ0hFTUEgc3ZhcnRlc3Q7 CiBEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKKy0tIGNoZWNrIGFjY2VzcyByaWdo dHMKK0NSRUFURSBST0xFIHJlZ3Jlc3Nfbm9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFT IGludDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4KGludCkKK1JFVFVSTlMgaW50 IEFTICQkIFNFTEVDVCAkMSArIHZhcjEgJCQgTEFOR1VBR0Ugc3FsOworQ1JFQVRFIE9SIFJFUExB Q0UgRlVOQ1RJT04gc3FsZnhfc2QoaW50KQorUkVUVVJOUyBpbnQgQVMgJCQgU0VMRUNUICQxICsg dmFyMSAkJCBMQU5HVUFHRSBzcWwgU0VDVVJJVFkgREVGSU5FUjsKK0NSRUFURSBPUiBSRVBMQUNF IEZVTkNUSU9OIHBscGdzcWxmeChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBCRUdJTiBSRVRVUk4g JDEgKyB2YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OIHBscGdzcWxmeF9zZChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBCRUdJTiBSRVRVUk4g JDEgKyB2YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbCBTRUNVUklUWSBERUZJTkVSOworTEVU IHZhcjEgPSAxMDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0t LQorICAgMTAKKygxIHJvdykKKworU0VMRUNUIHNxbGZ4KDIwKTsKKyBzcWxmeCAKKy0tLS0tLS0K KyAgICAzMAorKDEgcm93KQorCitTRUxFQ1Qgc3FsZnhfc2QoMjApOworIHNxbGZ4X3NkIAorLS0t LS0tLS0tLQorICAgICAgIDMwCisoMSByb3cpCisKK1NFTEVDVCBwbHBnc3FsZngoMjApOworIHBs cGdzcWxmeCAKKy0tLS0tLS0tLS0tCisgICAgICAgIDMwCisoMSByb3cpCisKK1NFTEVDVCBwbHBn c3FsZnhfc2QoMjApOworIHBscGdzcWxmeF9zZCAKKy0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg IDMwCisoMSByb3cpCisKKy0tIHNob3VsZCB0byBmYWlsCitTRVQgUk9MRSBUTyByZWdyZXNzX25v b3duZXI7CitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Np b24gdmFyaWFibGUgdmFyMQorU0VMRUNUIHNxbGZ4KDIwKTsKK0VSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ09OVEVYVDogIFNRTCBmdW5jdGlvbiAi c3FsZngiIHN0YXRlbWVudCAxCitTRUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKK0VSUk9SOiAgcGVybWlz c2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ09OVEVYVDogIFNRTCBleHBy ZXNzaW9uICIkMSArIHZhcjEiCitQTC9wZ1NRTCBmdW5jdGlvbiBwbHBnc3FsZngoaW50ZWdlcikg bGluZSAxIGF0IFJFVFVSTgorLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1Qgc3FsZnhfc2QoMjApOwor IHNxbGZ4X3NkIAorLS0tLS0tLS0tLQorICAgICAgIDMwCisoMSByb3cpCisKK1NFTEVDVCBwbHBn c3FsZnhfc2QoMjApOworIHBscGdzcWxmeF9zZCAKKy0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg IDMwCisoMSByb3cpCisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitHUkFOVCBTRUxFQ1QgT04gVkFS SUFCTEUgdmFyMSBUTyByZWdyZXNzX25vb3duZXI7CistLSBzaG91bGQgYmUgb2sKK1NFVCBST0xF IFRPIHJlZ3Jlc3Nfbm9vd25lcjsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEw CisoMSByb3cpCisKK1NFTEVDVCBzcWxmeCgyMCk7Cisgc3FsZnggCistLS0tLS0tCisgICAgMzAK KygxIHJvdykKKworU0VMRUNUIHBscGdzcWxmeCgyMCk7CisgcGxwZ3NxbGZ4IAorLS0tLS0tLS0t LS0KKyAgICAgICAgMzAKKygxIHJvdykKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgVkFS SUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gc3FsZngoaW50KTsKK0RST1AgRlVOQ1RJT04gcGxw Z3NxbGZ4KGludCk7CitEUk9QIEZVTkNUSU9OIHNxbGZ4X3NkKGludCk7CitEUk9QIEZVTkNUSU9O IHBscGdzcWxmeF9zZChpbnQpOworRFJPUCBST0xFIHJlZ3Jlc3Nfbm9vd25lcjsKKy0tIHVzZSB2 YXJpYWJsZXMgaW5zaWRlIHZpZXdzCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljOwor LS0gdXNlIHZhcmlhYmxlcyBpbiB2aWV3cworQ1JFQVRFIFZJRVcgdGVzdF92aWV3IEFTIFNFTEVD VCBDT0FMRVNDRSh2YXIxICsgdiwgMCkgQVMgcmVzdWx0IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs MikgZyh2KTsKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworIHJlc3VsdCAKKy0tLS0tLS0tCisg ICAgICAwCisgICAgICAwCisoMiByb3dzKQorCitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1QgKiBG Uk9NIHRlc3RfdmlldzsKKyByZXN1bHQgCistLS0tLS0tLQorICAgNC4xNAorICAgNS4xNAorKDIg cm93cykKKworLS0gc3RhcnQgYSBuZXcgc2Vzc2lvbgorXGMKK1NFTEVDVCAqIEZST00gdGVzdF92 aWV3OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICAgICAwCisgICAgICAwCisoMiByb3dzKQorCitM RVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsKKyByZXN1bHQgCistLS0t LS0tLQorICAgNC4xNAorICAgNS4xNAorKDIgcm93cykKKworLS0gc2hvdWxkIGZhaWwsIGRlcGVu ZGVuY3kKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0VSUk9SOiAgY2Fubm90IGRyb3Agc2Vzc2lvbiB2 YXJpYWJsZSB2YXIxIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDog IHZpZXcgdGVzdF92aWV3IGRlcGVuZHMgb24gc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitISU5UOiAg VXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgor LS0gc2hvdWxkIGJlIG9rCitEUk9QIFZBUklBQkxFIHZhcjEgQ0FTQ0FERTsKK05PVElDRTogIGRy b3AgY2FzY2FkZXMgdG8gdmlldyB0ZXN0X3ZpZXcKK0NSRUFURSBWQVJJQUJMRSB2YXIxIHRleHQ7 CitDUkVBVEUgVkFSSUFCTEUgdmFyMiB0ZXh0OworLS0gdXNlIHZhcmlhYmxlcyBpbiBTUUwgZnVu Y3Rpb25zCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeDEodmFyY2hhcikKK1JFVFVS TlMgdmFyY2hhciBBUyAkJCBTRUxFQ1QgdmFyMSB8fCAnLCAnIHx8ICQxICQkIExBTkdVQUdFIHNx bDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4MiggdmFyY2hhcikKK1JFVFVSTlMg dmFyY2hhciBBUyAkJCBTRUxFQ1QgdmFyMiB8fCAnLCAnIHx8ICQxICQkIExBTkdVQUdFIHNxbDsK K0xFVCB2YXIxID0gJ3N0cjEnOworTEVUIHZhcjIgPSAnc3RyMic7CitTRUxFQ1Qgc3FsZngxKHNx bGZ4MignSGVsbG8nKSk7CisgICAgICBzcWxmeDEgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t Cisgc3RyMSwgc3RyMiwgSGVsbG8KKygxIHJvdykKKworLS0gaW5saW5pbmcgaXMgYmxvY2tlZAor RVhQTEFJTiAoQ09TVFMgT0ZGLCBWRVJCT1NFKSBTRUxFQ1Qgc3FsZngxKHNxbGZ4MignSGVsbG8n KSk7CisgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIFJlc3VsdAorICAgT3V0cHV0OiBzcWxmeDEoc3FsZngyKCdIZWxsbyc6OmNoYXJhY3RlciB2 YXJ5aW5nKSkKKygyIHJvd3MpCisKK0RST1AgRlVOQ1RJT04gc3FsZngxKHZhcmNoYXIpOworRFJP UCBGVU5DVElPTiBzcWxmeDIodmFyY2hhcik7CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZB UklBQkxFIHZhcjI7CistLSBhY2Nlc3MgZnJvbSBjYWNoZWQgcGxhbnMgc2hvdWxkIHRvIHdvcmsK K0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5D VElPTiBwbHBnc3FsZngoKQorUkVUVVJOUyBudW1lcmljIEFTICQkIEJFR0lOIFJFVFVSTiB2YXIx OyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK3NldCBwbGFuX2NhY2hlX21vZGUgVE8gZm9yY2Vf Z2VuZXJpY19wbGFuOworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUIHBscGdzcWxmeCgpOworIHBs cGdzcWxmeCAKKy0tLS0tLS0tLS0tCisgICAgICAzLjE0CisoMSByb3cpCisKK0xFVCB2YXIxID0g My4xNCAqIDI7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CisgcGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0K KyAgICAgIDYuMjgKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gZGVwZW5kZW5j eSAocGxhbiBpbnZhbGlkYXRpb24pIHNob3VsZCB0byB3b3JrCitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyBudW1lcmljOworTEVUIHZhcjEgPSAzLjE0ICogMzsKK1NFTEVDVCBwbHBnc3FsZngoKTsK KyBwbHBnc3FsZnggCistLS0tLS0tLS0tLQorICAgICAgOS40MgorKDEgcm93KQorCitMRVQgdmFy MSA9IDMuMTQgKiA0OworU0VMRUNUIHBscGdzcWxmeCgpOworIHBscGdzcWxmeCAKKy0tLS0tLS0t LS0tCisgICAgIDEyLjU2CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVO Q1RJT04gcGxwZ3NxbGZ4KCk7CitzZXQgcGxhbl9jYWNoZV9tb2RlIFRPIERFRkFVTFQ7CistLSB1 c2FnZSBMRVQgc3RhdGVtZW50IGluIHBscGdzcWwgc2hvdWxkIHRvIHdvcmsKK0NSRUFURSBWQVJJ QUJMRSB2YXIxIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIG51bWVyaWNbXTsKK0RPICQkCitC RUdJTgorICBMRVQgdmFyMiA9ICd7fSc6OmludFtdOworICBGT1IgaSBJTiAxLi4xMAorICBMT09Q CisgICAgTEVUIHZhcjEgPSBpOworICAgIExFVCB2YXIyW3ZhcjFdID0gaTsKKyAgRU5EIExPT1A7 CisgIFJBSVNFIE5PVElDRSAncmVzdWx0IGFycmF5OiAlJywgdmFyMjsKK0VORDsKKyQkOworTk9U SUNFOiAgcmVzdWx0IGFycmF5OiB7MSwyLDMsNCw1LDYsNyw4LDksMTB9CitEUk9QIFZBUklBQkxF IHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CistLSBDQUxMIHN0YXRlbWVudCBpcyBub3Qgc3Vw cG9ydGVkIHlldAorLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxl IGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorQ1JFQVRFIFZBUklBQkxFIHYgaW50OworQ1JFQVRF IFBST0NFRFVSRSBwKGFyZyBpbnQpIEFTICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIGFyZzsg RU5EICQkIExBTkdVQUdFIHBscGdzcWw7CistLSBzaG91bGQgbm90IGNyYXNoIChidXQgaXMgbm90 IHN1cHBvcnRlZCB5ZXQpCitDQUxMIHAodik7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgY2Fu bm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQKK0RPICQkIEJFR0lOIENBTEwgcCh2KTsgRU5EICQk OworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50 CitDT05URVhUOiAgU1FMIHN0YXRlbWVudCAiQ0FMTCBwKHYpIgorUEwvcGdTUUwgZnVuY3Rpb24g aW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IENBTEwKK0RST1AgUFJPQ0VEVVJFIHAoaW50KTsK K0RST1AgVkFSSUFCTEUgdjsKKy0tIHRlc3Qgc2VhcmNoIHBhdGgKK0NSRUFURSBTQ0hFTUEgc3Zh cnRlc3Q7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBudW1lcmljOworLS0gc2hv dWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gcGkoKTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAi dmFyMSIgZG9lc24ndCBleGlzdAorTElORSAxOiBMRVQgdmFyMSA9IHBpKCk7CisgICAgICAgICAg ICBeCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgY29sdW1uICJ2YXIxIiBkb2VzIG5vdCBleGlzdAor TElORSAxOiBTRUxFQ1QgdmFyMTsKKyAgICAgICAgICAgICAgIF4KKy0tIHNob3VsZCBiZSBvawor TEVUIHN2YXJ0ZXN0LnZhcjEgPSBwaSgpOworU0VMRUNUIHN2YXJ0ZXN0LnZhcjE7CisgICAgICAg dmFyMSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLQorIDMuMTQxNTkyNjUzNTg5NzkKKygxIHJv dykKKworU0VUIHNlYXJjaF9wYXRoIFRPIHN2YXJ0ZXN0OworLS0gc2hvdWxkIGJlIG9rCitMRVQg dmFyMSA9IHBpKCkgKyAxMDsKK1NFTEVDVCB2YXIxOworICAgICAgIHZhcjEgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0KKyAxMy4xNDE1OTI2NTM1ODk4CisoMSByb3cpCisKK1JFU0VUIHNlYXJj aF9wYXRoOworRFJPUCBTQ0hFTUEgc3ZhcnRlc3QgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2Fz Y2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdC52YXIxCitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyB0ZXh0OworLS0gdmFyaWFibGVzIGNhbiBiZSB1cGRhdGVkIHVuZGVyIFJPIHRyYW5z YWN0aW9uCitCRUdJTjsKK1NFVCBUUkFOU0FDVElPTiBSRUFEIE9OTFk7CitMRVQgdmFyMSA9ICdo ZWxsbyc7CitDT01NSVQ7CitTRUxFQ1QgdmFyMTsKKyB2YXIxICAKKy0tLS0tLS0KKyBoZWxsbwor KDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSB0ZXN0IG9mIGRvbWFpbnMKK0NSRUFU RSBET01BSU4gaW50X2RvbWFpbiBBUyBpbnQgTk9UIE5VTEwgQ0hFQ0sgKFZBTFVFID4gMTAwKTsK K0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludF9kb21haW47CistLSBzaG91bGQgZmFpbAorU0VM RUNUIHZhcjE7CitFUlJPUjogIGRvbWFpbiBpbnRfZG9tYWluIGRvZXMgbm90IGFsbG93IG51bGwg dmFsdWVzCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTAwMDsKK1NFTEVDVCB2YXIxOwor IHZhcjEgCistLS0tLS0KKyAxMDAwCisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFy MSA9IDEwOworRVJST1I6ICB2YWx1ZSBmb3IgZG9tYWluIGludF9kb21haW4gdmlvbGF0ZXMgY2hl Y2sgY29uc3RyYWludCAiaW50X2RvbWFpbl9jaGVjayIKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFy MSA9IE5VTEw7CitFUlJPUjogIGRvbWFpbiBpbnRfZG9tYWluIGRvZXMgbm90IGFsbG93IG51bGwg dmFsdWVzCistLSBub3RlIC0gZG9tYWluIGRlZmF1bHRzIGFyZSBub3Qgc3VwcG9ydGVkIHlldCAo bGlrZSBQTHBnU1FMKQorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBET01BSU4gaW50X2RvbWFp bjsKKy0tIGFuIGV4cHJlc3Npb24gc2hvdWxkIGJlIHVua25vd24tdHlwZQorQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgaW50NG11bHRpcmFuZ2VbXTsKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEg PSBOVUxMOworTEVUIHZhcjEgPSAneyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDE0KX0i fSc7CitMRVQgdmFyMVsyXSA9ICd7WzUsOCksWzEyLDEwMCl9JzsKK1NFTEVDVCB2YXIxOworICAg ICAgICAgICAgICAgICAgdmFyMSAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwx MDApfSJ9CisoMSByb3cpCisKKy0tSXQgc2hvdWxkIHRvIHdvcmsgaW4gcGxwZ3NxbCB0b28KK0RP ICQkCitCRUdJTgorICBMRVQgdmFyMSA9IE5VTEw7CisgIExFVCB2YXIxID0gJ3sie1syLDgpLFsx MSwxNCl9Iiwie1s1LDgpLFsxMiwxNCl9In0nOworICBMRVQgdmFyMVsyXSA9ICd7WzUsOCksWzEy LDEwMCl9JzsKKworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CitOT1RJQ0U6 ICB7IntbMiw4KSxbMTEsMTQpfSIsIntbNSw4KSxbMTIsMTAwKX0ifQorRFJPUCBWQVJJQUJMRSB2 YXIxOworQ1JFQVRFIFNDSEVNQSBzdmFydGVzdCBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQg Q1JFQVRFIFRBQkxFIGZvbyhhIGludCk7CitMRVQgc3ZhcnRlc3QudmFyMSA9IDEwMDsKK1NFTEVD VCBzdmFydGVzdC52YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK1NFVCBz ZWFyY2hfcGF0aCB0byBwdWJsaWMsIHN2YXJ0ZXN0OworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0t LS0tLQorICAxMDAKKygxIHJvdykKKworRFJPUCBTQ0hFTUEgc3ZhcnRlc3QgQ0FTQ0FERTsKK05P VElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMiBvdGhlciBvYmplY3RzCitERVRBSUw6ICBkcm9wIGNh c2NhZGVzIHRvIHRhYmxlIGZvbworZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHZh cjEKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFT IGludFtdOworTEVUIHZhcjEgPSAyOworTEVUIHZhcjIgPSAne30nOjppbnRbXTsKK0xFVCB2YXIy W3ZhcjFdID0gMDsKK1NFTEVDVCB2YXIyOworICAgdmFyMiAgICAKKy0tLS0tLS0tLS0tCisgWzI6 Ml09ezB9CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMSwgdmFyMjsKK0NSRUFURSBWQVJJ QUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGludFtdOworTEVUIHZh cjEgPSAyOworTEVUIHZhcjIgPSAne30nOjppbnRbXTsKK1NFTEVDVCB2YXIyOworIHZhcjIgCist LS0tLS0KKyB7fQorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7CistLSB0aGUg TEVUIHN0YXRlbWVudCBzaG91bGQgYmUgZGlzYWxsb3dlZCBpbiBDVEUKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIGludDsKK1dJVEggeCBBUyAoTEVUIHZhcjEgPSAxMDApIFNFTEVDVCAqIEZST00g eDsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIkxFVCIKK0xJTkUgMTogV0lUSCB4 IEFTIChMRVQgdmFyMSA9IDEwMCkgU0VMRUNUICogRlJPTSB4OworICAgICAgICAgICAgICAgICAg IF4KKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMSk7Cist LSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMik7CitFUlJPUjog IGV4cHJlc3Npb24gcmV0dXJuZWQgbW9yZSB0aGFuIG9uZSByb3cKK0xFVCB2YXIxID0gZ2VuZXJh dGVfc2VyaWVzKDEsIDApOworRVJST1I6ICBleHByZXNzaW9uIHJldHVybmVkIG5vIHJvd3MKK0RS T1AgVkFSSUFCTEUgdmFyMTsKKy0tIGNvbXBvc2l0ZSB2YXJpYWJsZXMKK0NSRUFURSBUWVBFIHN2 X3h5eiBBUyAoeCBpbnQsIHkgaW50LCB6IG51bWVyaWMoMTAsMikpOworQ1JFQVRFIFZBUklBQkxF IHYxIEFTIHN2X3h5ejsKK0NSRUFURSBWQVJJQUJMRSB2MiBBUyBzdl94eXo7CitMRVQgdjEgPSAo MSwgMiwgMy4xNCk7CitMRVQgdjIgPSAoMTAsIDIwLCAzLjE0ICogMTApOworLS0gc2hvdWxkIHdv cmsgdG9vIC0gdGhlcmUgYXJlIHByZXBhcmVkIGNhc3RzCitMRVQgdjEgPSAoMSwgMiwgMyk7CitT RUxFQ1QgdjE7CisgICAgIHYxICAgICAKKy0tLS0tLS0tLS0tLQorICgxLDIsMy4wMCkKKygxIHJv dykKKworU0VMRUNUIHYyOworICAgICAgdjIgICAgICAgCistLS0tLS0tLS0tLS0tLS0KKyAoMTAs MjAsMzEuNDApCisoMSByb3cpCisKK1NFTEVDVCAodjEpLio7CisgeCB8IHkgfCAgeiAgIAorLS0t Ky0tLSstLS0tLS0KKyAxIHwgMiB8IDMuMDAKKygxIHJvdykKKworU0VMRUNUICh2MikuKjsKKyB4 ICB8IHkgIHwgICB6ICAgCistLS0tKy0tLS0rLS0tLS0tLQorIDEwIHwgMjAgfCAzMS40MAorKDEg cm93KQorCitTRUxFQ1QgdjEueCArIHYxLno7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgICAg IDQuMDAKKygxIHJvdykKKworU0VMRUNUIHYyLnggKyB2Mi56OworID9jb2x1bW4/IAorLS0tLS0t LS0tLQorICAgIDQxLjQwCisoMSByb3cpCisKKy0tIGFjY2VzcyB0byBjb21wb3NpdGUgZmllbGRz IHNob3VsZCBiZSBzYWZlIHRvbworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfdGVzdF9yb2xlOwor U0VUIFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworLS0gc2hvdWxkIGZhaWwKK1NFTEVD VCB2Mi54OworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2 MgorU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgVkFSSUFCTEUgdjE7CitEUk9QIFZBUklBQkxF IHYyOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK0NSRUFURSBUWVBFIHQxIEFT IChhIGludCwgYiBudW1lcmljLCBjIHRleHQpOworQ1JFQVRFIFZBUklBQkxFIHYxIEFTIHQxOwor TEVUIHYxID0gKDEsIHBpKCksICdoZWxsbycpOworU0VMRUNUIHYxOworICAgICAgICAgICAgIHYx ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICgxLDMuMTQxNTky NjUzNTg5NzksaGVsbG8pCisoMSByb3cpCisKK0xFVCB2MS5iID0gMTAuMjIyMjsKK1NFTEVDVCB2 MTsKKyAgICAgICAgdjEgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoMSwxMC4yMjIy LGhlbGxvKQorKDEgcm93KQorCistLSBzaG91bGQgZmFpbCwgYXR0cmlidXRlIGRvZXNuJ3QgZXhp c3QKK0xFVCB2MS54ID0gMTA7CitFUlJPUjogIGNhbm5vdCBhc3NpZ24gdG8gZmllbGQgIngiIG9m IGNvbHVtbiAidjEiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBl IHQxCitMSU5FIDE6IExFVCB2MS54ID0gMTA7CisgICAgICAgICAgICBeCistLSBzaG91bGQgZmFp bCwgZG9uJ3QgYWxsb3cgbXVsdGkgY29sdW1uIHF1ZXJ5CitMRVQgdjEgPSAoTlVMTDo6dDEpLio7 CitFUlJPUjogIGFzc2lnbm1lbnQgZXhwcmVzc2lvbiByZXR1cm5lZCAzIGNvbHVtbnMKK0xJTkUg MTogTEVUIHYxID0gKE5VTEw6OnQxKS4qOworICAgICAgICAgICAgICAgICAgXgorLS0gYWxsb3cg RFJPUCBvciBBREQgQVRUUklCVVRFIG9uIGNvbXBvc2l0ZSB0eXBlcworLS0gc2hvdWxkIGJlIG9r CitBTFRFUiBUWVBFIHQxIERST1AgQVRUUklCVVRFIGM7CitTRUxFQ1QgdjE7CisgICAgIHYxICAg ICAgCistLS0tLS0tLS0tLS0tCisgKDEsMTAuMjIyMikKKygxIHJvdykKKworLS0gc2hvdWxkIGJl IG9rCitBTFRFUiBUWVBFIHQxIEFERCBBVFRSSUJVVEUgYyBpbnQ7CitTRUxFQ1QgdjE7CisgICAg ICB2MSAgICAgIAorLS0tLS0tLS0tLS0tLS0KKyAoMSwxMC4yMjIyLCkKKygxIHJvdykKKworTEVU IHYxID0gKDEwLCAxMC4zLCAyMCk7CitTRUxFQ1QgdjE7CisgICAgICB2MSAgICAgIAorLS0tLS0t LS0tLS0tLS0KKyAoMTAsMTAuMywyMCkKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIG9rCitBTFRF UiBUWVBFIHQxIERST1AgQVRUUklCVVRFIGI7CitTRUxFQ1QgdjE7CisgICB2MSAgICAKKy0tLS0t LS0tLQorICgxMCwyMCkKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwsIGRpc2FsbG93IGRhdGEg dHlwZSBjaGFuZ2UKK0FMVEVSIFRZUEUgdDEgQUxURVIgQVRUUklCVVRFIGMgVFlQRSBpbnQ7CitF UlJPUjogIGNhbm5vdCBhbHRlciB0eXBlICJ0MSIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlICJw dWJsaWMudjEiIHVzZXMgaXQKK0RST1AgVkFSSUFCTEUgdjE7CitEUk9QIFRZUEUgdDE7CistLSB0 aGUgdGFibGUgdHlwZSBjYW4gYmUgdXNlZCBhcyBjb21wb3NpdGUgdHlwZSB0b28KK0NSRUFURSBU QUJMRSBzdmFyX3Rlc3QoYSBpbnQsIGIgbnVtZXJpYywgYyBkYXRlKTsKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIHN2YXJfdGVzdDsKK0xFVCB2YXIxID0gKDEwLCBwaSgpLCAnMjAyMy0wNS0yNicp OworU0VMRUNUIHZhcjE7CisgICAgICAgICAgICAgICB2YXIxICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKDEwLDMuMTQxNTkyNjUzNTg5NzksMDUt MjYtMjAyMykKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwgZHVlIGRlcGVuZGVuY3kKK0FMVEVS IFRBQkxFIHN2YXJfdGVzdCBBTFRFUiBDT0xVTU4gYSBUWVBFIHRleHQ7CitFUlJPUjogIGNhbm5v dCBhbHRlciB0YWJsZSAic3Zhcl90ZXN0IiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgInB1Ymxp Yy52YXIxIiB1c2VzIGl0CistLSBzaG91bGQgZmFpbAorRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CitF UlJPUjogIGNhbm5vdCBkcm9wIHRhYmxlIHN2YXJfdGVzdCBiZWNhdXNlIG90aGVyIG9iamVjdHMg ZGVwZW5kIG9uIGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5kcyBvbiB0 eXBlIHN2YXJfdGVzdAorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRl cGVuZGVudCBvYmplY3RzIHRvby4KK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgc3Zh cl90ZXN0OworLS0gYXJyYXlzIGFyZSBzdXBwb3J0ZWQKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFT IG51bWVyaWNbXTsKK0xFVCB2YXIxID0gQVJSQVlbMS4xLDIuMV07CitMRVQgdmFyMVsxXSA9IDEw LjE7CitTRUxFQ1QgdmFyMTsKKyAgICB2YXIxICAgIAorLS0tLS0tLS0tLS0tCisgezEwLjEsMi4x fQorKDEgcm93KQorCistLSBMRVQgdGFyZ2V0IGRvZXNuJ3QgYWxsb3cgc3JmLCBzaG91bGQgZmFp bAorTEVUIHZhcjFbZ2VuZXJhdGVfc2VyaWVzKDEsMyldID0gMTAwOworRVJST1I6ICBzZXQtcmV0 dXJuaW5nIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gTEVUCitMSU5FIDE6IExFVCB2YXIx W2dlbmVyYXRlX3NlcmllcygxLDMpXSA9IDEwMDsKKyAgICAgICAgICAgICAgICAgXgorRFJPUCBW QVJJQUJMRSB2YXIxOworLS0gYXJyYXlzIGluc2lkZSBjb21wb3NpdGUKK0NSRUFURSBUWVBFIHQx IEFTIChhIG51bWVyaWMsIGIgbnVtZXJpY1tdKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHQx OworTEVUIHZhcjEgPSAoMTAuMSwgQVJSQVlbMC4wLCAwLjBdKTsKK0xFVCB2YXIxLmEgPSAxMC4y OworU0VMRUNUIHZhcjE7CisgICAgICAgIHZhcjEgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAoMTAuMiwiezAuMCwwLjB9IikKKygxIHJvdykKKworTEVUIHZhcjEuYlsxXSA9IDEwLjM7 CitTRUxFQ1QgdmFyMTsKKyAgICAgICAgdmFyMSAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgKDEwLjIsInsxMC4zLDAuMH0iKQorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7 CitEUk9QIFRZUEUgdDE7CistLSBFbmNvdXJhZ2UgdXNlIG9mIHBhcmFsbGVsIHBsYW5zCitTRVQg cGFyYWxsZWxfc2V0dXBfY29zdCA9IDA7CitTRVQgcGFyYWxsZWxfdHVwbGVfY29zdCA9IDA7CitT RVQgbWluX3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6ZSA9IDA7CitTRVQgbWF4X3BhcmFsbGVsX3dv cmtlcnNfcGVyX2dhdGhlciA9IDI7CistLSB0ZXN0IG9uIHF1ZXJ5IHdpdGggd29ya2VycworQ1JF QVRFIFRBQkxFIHN2YXJfdGVzdChhIGludCk7CitJTlNFUlQgSU5UTyBzdmFyX3Rlc3QgU0VMRUNU ICogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKTsKK0FOQUxZWkUgc3Zhcl90ZXN0OworQ1JF QVRFIFZBUklBQkxFIHplcm8gaW50OworTEVUIHplcm8gPSAwOworLS0gcmVzdWx0IHNob3VsZCBi ZSAxMDAKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBhJTEwID0gemVybzsK KyBjb3VudCAKKy0tLS0tLS0KKyAgIDEwMAorKDEgcm93KQorCistLSBwYXJhbGxlbCBleGVjdXRp b24gaXMgbm90IHN1cHBvcnRlZCB5ZXQKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50 KCopIEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOworICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg QWdncmVnYXRlCisgICAtPiAgU2VxIFNjYW4gb24gc3Zhcl90ZXN0CisgICAgICAgICBGaWx0ZXI6 ICgoYSAlIDEwKSA9IHplcm8pCisoMyByb3dzKQorCitMRVQgemVybyA9IChTRUxFQ1QgY291bnQo KikgRlJPTSBzdmFyX3Rlc3QpOworLS0gcmVzdWx0IHNob3VsZCBiZSAxMDAwCitTRUxFQ1QgemVy bzsKKyB6ZXJvIAorLS0tLS0tCisgMTAwMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHplcm87 CitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKK1JFU0VUIHBhcmFsbGVsX3NldHVwX2Nvc3Q7CitSRVNF VCBwYXJhbGxlbF90dXBsZV9jb3N0OworUkVTRVQgbWluX3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6 ZTsKK1JFU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXI7CistLSB0aGUgcmVzdWx0 IG9mIHZpZXcgc2hvdWxkIGJlIHNhbWUgaW4gcGFyYWxsZWwgbW9kZSB0b28KK0NSRUFURSBWQVJJ QUJMRSB2YXIxIEFTIGludDsKK0xFVCB2YXIxID0gMTA7CitDUkVBVEUgVklFVyB2YXIxdmlldyBB UyBTRUxFQ1QgQ09BTEVTQ0UodmFyMSwgMCkgQVMgcmVzdWx0OworU0VMRUNUICogRlJPTSB2YXIx dmlldzsKKyByZXN1bHQgCistLS0tLS0tLQorICAgICAxMAorKDEgcm93KQorCitTRVQgZGVidWdf cGFyYWxsZWxfcXVlcnkgVE8gb247CitTRUxFQ1QgKiBGUk9NIHZhcjF2aWV3OworIHJlc3VsdCAK Ky0tLS0tLS0tCisgICAgIDEwCisoMSByb3cpCisKK1NFVCBkZWJ1Z19wYXJhbGxlbF9xdWVyeSBU TyBvZmY7CitEUk9QIFZJRVcgdmFyMXZpZXc7CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUg VkFSSUFCTEUgdmFyaWQgaW50OworQ1JFQVRFIFRBQkxFIHN2YXJfdGVzdChpZCBpbnQsIHYgaW50 KTsKK0xFVCB2YXJpZCA9IDE7CitJTlNFUlQgSU5UTyBzdmFyX3Rlc3QgVkFMVUVTKHZhcmlkLCAx MDApOworU0VMRUNUICogRlJPTSBzdmFyX3Rlc3Q7CisgaWQgfCAgdiAgCistLS0tKy0tLS0tCisg IDEgfCAxMDAKKygxIHJvdykKKworVVBEQVRFIHN2YXJfdGVzdCBTRVQgdiA9IDIwMCBXSEVSRSBp ZCA9IHZhcmlkOworU0VMRUNUICogRlJPTSBzdmFyX3Rlc3Q7CisgaWQgfCAgdiAgCistLS0tKy0t LS0tCisgIDEgfCAyMDAKKygxIHJvdykKKworREVMRVRFIEZST00gc3Zhcl90ZXN0IFdIRVJFIGlk ID0gdmFyaWQ7CitTRUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsKKyBpZCB8IHYgCistLS0tKy0tLQor KDAgcm93cykKKworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CitEUk9QIFZBUklBQkxFIHZhcmlkOwor LS0gdmlzaWJpbGl0eSBjaGVjaworLS0gdmFyaWFibGVzIHNob3VsZCBiZSBzaGFkb3dlZCBhbHdh eXMKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRleHQ7CitTRUxFQ1QgdmFyMS5yZWxuYW1lIEZS T00gcGdfY2xhc3MgdmFyMSBXSEVSRSB2YXIxLnJlbG5hbWUgPSAncGdfY2xhc3MnOworIHJlbG5h bWUgIAorLS0tLS0tLS0tLQorIHBnX2NsYXNzCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFy MTsKK0NSRUFURSBUQUJMRSB4eHRhYihhdmFyIGludCk7CitJTlNFUlQgSU5UTyB4eHRhYiBWQUxV RVMoMzMzKTsKK0NSRUFURSBUWVBFIHh4dHlwZSBBUyAoYXZhciBpbnQpOworQ1JFQVRFIFZBUklB QkxFIHh4dGFiIEFTIHh4dHlwZTsKK0lOU0VSVCBJTlRPIHh4dGFiIFZBTFVFUygxMCk7CistLSBp dCBpcyBhbWJpZ3VvdXMsIGJ1dCBjb2x1bW5zIGFyZSBwcmVmZXJyZWQKK1NFTEVDVCB4eHRhYi5h dmFyIEZST00geHh0YWI7CisgYXZhciAKKy0tLS0tLQorICAzMzMKKyAgIDEwCisoMiByb3dzKQor CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBhdmFyIEZST00geHh0YWI7CisgYXZhciAKKy0tLS0t LQorICAzMzMKKyAgIDEwCisoMiByb3dzKQorCitDUkVBVEUgVkFSSUFCTEUgcHVibGljLmF2YXIg QVMgaW50OworLS0gc2hvdWxkIGJlIG9rLCBzZWUgdGhlIHRhYmxlCitTRUxFQ1QgYXZhciBGUk9N IHh4dGFiOworIGF2YXIgCistLS0tLS0KKyAgMzMzCisgICAxMAorKDIgcm93cykKKworLS0gc2hv dWxkIGJlIG9rCitTRUxFQ1QgcHVibGljLmF2YXIgRlJPTSB4eHRhYjsKKyBhdmFyIAorLS0tLS0t CisgICAgIAorICAgICAKKygyIHJvd3MpCisKK0RST1AgVkFSSUFCTEUgeHh0YWI7CitTRUxFQ1Qg eHh0YWIuYXZhciBGUk9NIHh4dGFiOworIGF2YXIgCistLS0tLS0KKyAgMzMzCisgICAxMAorKDIg cm93cykKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMuYXZhcjsKK0RST1AgVFlQRSB4eHR5cGU7CitE Uk9QIFRBQkxFIHh4dGFiOworLS0gVGhlIHZhcmlhYmxlIGNhbiBiZSBzaGFkb3dlZCBieSB0YWJs ZSBvciBieSBhbGlhcworQ1JFQVRFIFRZUEUgcHVibGljLnN2YXJfdHlwZSBBUyAoYSBpbnQsIGIg aW50LCBjIGludCk7CitDUkVBVEUgVkFSSUFCTEUgcHVibGljLnN2YXIgQVMgcHVibGljLnN2YXJf dHlwZTsKK0NSRUFURSBUQUJMRSBwdWJsaWMuc3ZhcihhIGludCwgYiBpbnQpOworSU5TRVJUIElO VE8gcHVibGljLnN2YXIgVkFMVUVTKDEwLCAyMCk7CitMRVQgcHVibGljLnN2YXIgPSAoMTAwLCAy MDAsIDMwMCk7CistLSBzaG91bGQgYmUgb2sKKy0tIHNob3cgdGFibGUKK1NFTEVDVCAqIEZST00g cHVibGljLnN2YXI7CisgYSAgfCBiICAKKy0tLS0rLS0tLQorIDEwIHwgMjAKKygxIHJvdykKKwor U0VMRUNUIHN2YXIuYSBGUk9NIHB1YmxpYy5zdmFyOworIGEgIAorLS0tLQorIDEwCisoMSByb3cp CisKK1NFTEVDVCBzdmFyLiogRlJPTSBwdWJsaWMuc3ZhcjsKKyBhICB8IGIgIAorLS0tLSstLS0t CisgMTAgfCAyMAorKDEgcm93KQorCistLSBzaG93IHZhcmlhYmxlCitTRUxFQ1QgcHVibGljLnN2 YXI7CisgICAgIHN2YXIgICAgICAKKy0tLS0tLS0tLS0tLS0tLQorICgxMDAsMjAwLDMwMCkKKygx IHJvdykKKworU0VMRUNUIHB1YmxpYy5zdmFyLmM7CisgIGMgIAorLS0tLS0KKyAzMDAKKygxIHJv dykKKworU0VMRUNUIChwdWJsaWMuc3ZhcikuKjsKKyAgYSAgfCAgYiAgfCAgYyAgCistLS0tLSst LS0tLSstLS0tLQorIDEwMCB8IDIwMCB8IDMwMAorKDEgcm93KQorCistLSB0aGUgdmFyaWFibGUg aXMgc2hhZG93ZWQsIHJhaXNlIGVycm9yCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1Ymxp Yy5zdmFyOworRVJST1I6ICBjb2x1bW4gc3Zhci5jIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IFNF TEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXI7CisgICAgICAgICAgICAgICBeCist LSBjYW4gYmUgZml4ZWQgYnkgYWxpYXMKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGlj LnN2YXIgeDsKKyAgYyAgCistLS0tLQorIDMwMAorKDEgcm93KQorCitTRUxFQ1Qgc3Zhci5hIEZS T00gcHVibGljLnN2YXI7CisgYSAgCistLS0tCisgMTAKKygxIHJvdykKKworU0VMRUNUIHN2YXIu KiBGUk9NIHB1YmxpYy5zdmFyOworIGEgIHwgYiAgCistLS0tKy0tLS0KKyAxMCB8IDIwCisoMSBy b3cpCisKKy0tIHNob3cgdmFyaWFibGUKK1NFTEVDVCBwdWJsaWMuc3ZhcjsKKyAgICAgc3ZhciAg ICAgIAorLS0tLS0tLS0tLS0tLS0tCisgKDEwMCwyMDAsMzAwKQorKDEgcm93KQorCitTRUxFQ1Qg cHVibGljLnN2YXIuYzsKKyAgYyAgCistLS0tLQorIDMwMAorKDEgcm93KQorCitTRUxFQ1QgKHB1 YmxpYy5zdmFyKS4qOworICBhICB8ICBiICB8ICBjICAKKy0tLS0tKy0tLS0tKy0tLS0tCisgMTAw IHwgMjAwIHwgMzAwCisoMSByb3cpCisKKy0tIHRoZSB2YXJpYWJsZSBpcyBzaGFkb3dlZCwgcmFp c2UgZXJyb3IKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXI7CitFUlJPUjog IGNvbHVtbiBzdmFyLmMgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIHB1YmxpYy5zdmFy LmMgRlJPTSBwdWJsaWMuc3ZhcjsKKyAgICAgICAgICAgICAgIF4KKy0tIGNhbiBiZSBmaXhlZCBi eSBhbGlhcworU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhciB4OworICBjICAK Ky0tLS0tCisgMzAwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgcHVibGljLnN2YXI7CitEUk9Q IFRBQkxFIHB1YmxpYy5zdmFyOworRFJPUCBUWVBFIHB1YmxpYy5zdmFyX3R5cGU7CitDUkVBVEUg VFlQRSBhYiBBUyAoYSBpbnRlZ2VyLCBiIGludGVnZXIpOworQ1JFQVRFIFZBUklBQkxFIHZfYWIg QVMgYWI7CitDUkVBVEUgVEFCTEUgdl9hYiAoYSBpbnRlZ2VyLCBiIGludGVnZXIpOworSU5TRVJU IElOVE8gdl9hYiBWQUxVRVMoMTAsMjApOworLS0gd2Ugc2hvdWxkIHRvIHNlZSB0YWJsZQorU0VM RUNUIHZfYWIuYSBGUk9NIHZfYWI7CisgYSAgCistLS0tCisgMTAKKygxIHJvdykKKworQ1JFQVRF IFNDSEVNQSB2X2FiOworQ1JFQVRFIFZBUklBQkxFIHZfYWIuYSBBUyBpbnRlZ2VyOworLS0gd2Ug c2hvdWxkIHRvIHNlZSB0YWJsZQorU0VMRUNUIHZfYWIuYSBGUk9NIHZfYWI7CisgYSAgCistLS0t CisgMTAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2X2FiOworRFJPUCBUQUJMRSB2X2FiOwor RFJPUCBUWVBFIGFiOworQ1JFQVRFIFRZUEUgdF9hbV90eXBlIEFTIChiIGludCk7CitDUkVBVEUg U0NIRU1BIHh4eF9hbTsKK1NFVCBzZWFyY2hfcGF0aCBUTyBwdWJsaWM7CitDUkVBVEUgVkFSSUFC TEUgeHh4X2FtIEFTIHRfYW1fdHlwZTsKK0xFVCB4eHhfYW0gPSBST1coMTApOworLS0gc2hvdWxk IGJlIG9rCitTRUxFQ1QgeHh4X2FtOworIHh4eF9hbSAKKy0tLS0tLS0tCisgKDEwKQorKDEgcm93 KQorCitDUkVBVEUgVkFSSUFCTEUgeHh4X2FtLmIgQVMgaW50OworTEVUIDoiREJOQU1FIi54eHhf YW0uYiA9IDIwOworLS0gc2hvdWxkIGJlIHN0aWxsIG9rCitTRUxFQ1QgeHh4X2FtOworIHh4eF9h bSAKKy0tLS0tLS0tCisgKDEwKQorKDEgcm93KQorCistLSBzaG91bGQgZmFpbCwgdGhlIHJlZmVy ZW5jZSBzaG91bGQgYmUgYW1iaWd1b3VzCitTRUxFQ1QgeHh4X2FtLmI7CitFUlJPUjogIHNlc3Np b24gdmFyaWFibGUgcmVmZXJlbmNlICJ4eHhfYW0uYiIgaXMgYW1iaWd1b3VzCitMSU5FIDE6IFNF TEVDVCB4eHhfYW0uYjsKKyAgICAgICAgICAgICAgIF4KKy0tIGVuaGFuY2VkIHJlZmVyZW5jZXMg c2hvdWxkIGJlIG9rCitTRUxFQ1QgcHVibGljLnh4eF9hbS5iOworIGIgIAorLS0tLQorIDEwCiso MSByb3cpCisKK1NFTEVDVCA6IkRCTkFNRSIueHh4X2FtLmI7CisgYiAgCistLS0tCisgMjAKKygx IHJvdykKKworQ1JFQVRFIFRBQkxFIHh4eF9hbShiICBpbnQpOworSU5TRVJUIElOVE8geHh4X2Ft IFZBTFVFUygxMCk7CistLSB3ZSBzaG91bGQgdG8gc2VlIHRhYmxlCitTRUxFQ1QgeHh4X2FtLmIg RlJPTSB4eHhfYW07CisgYiAgCistLS0tCisgMTAKKygxIHJvdykKKworU0VMRUNUIHguYiBGUk9N IHh4eF9hbSB4OworIGIgIAorLS0tLQorIDEwCisoMSByb3cpCisKK0RST1AgVEFCTEUgeHh4X2Ft OworRFJPUCBWQVJJQUJMRSBwdWJsaWMueHh4X2FtOworRFJPUCBWQVJJQUJMRSB4eHhfYW0uYjsK K0RST1AgU0NIRU1BIHh4eF9hbTsKK0NSRUFURSBTQ0hFTUEgOiJEQk5BTUUiOworQ1JFQVRFIFZB UklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiIEFTIHRfYW1fdHlwZTsKK0NSRUFU RSBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmIgQVMgaW50OworU0VUIHNlYXJjaF9wYXRo IFRPIDoiREJOQU1FIjsKKy0tIHNob3VsZCBiZSBhbWJpZ3VvdXMKK1NFTEVDVCA6IkRCTkFNRSIu YjsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVuY2UgInJlZ3Jlc3Npb24uYiIgaXMg YW1iaWd1b3VzCitMSU5FIDE6IFNFTEVDVCAicmVncmVzc2lvbiIuYjsKKyAgICAgICAgICAgICAg IF4KKy0tIHNob3VsZCBiZSBhbWJpZ3VvdXMgdG9vCitTRUxFQ1QgOiJEQk5BTUUiLjoiREJOQU1F Ii5iOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSAicmVncmVzc2lvbi5yZWdy ZXNzaW9uLmIiIGlzIGFtYmlndW91cworTElORSAxOiBTRUxFQ1QgInJlZ3Jlc3Npb24iLiJyZWdy ZXNzaW9uIi5iOworICAgICAgICAgICAgICAgXgorQ1JFQVRFIFRBQkxFIDoiREJOQU1FIihiIGlu dCk7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCA6IkRCTkFNRSIuYiBGUk9NIDoiREJOQU1FIjsK KyBiIAorLS0tCisoMCByb3dzKQorCitEUk9QIFRBQkxFIDoiREJOQU1FIjsKK0RST1AgVkFSSUFC TEUgOiJEQk5BTUUiLjoiREJOQU1FIi5iOworRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5B TUUiLjoiREJOQU1FIjsKK0RST1AgU0NIRU1BIDoiREJOQU1FIjsKK1JFU0VUIHNlYXJjaF9wYXRo OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IDQyZGZi OTVhMDIyLi5jY2U1MmU3YWU2ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzLnNxbApAQCAtNTksMyArNTksNjI4IEBAIERST1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFy MTsKIERST1AgU0NIRU1BIHN2YXJ0ZXN0OwogCiBEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9v d25lcjsKKworLS0gY2hlY2sgYWNjZXNzIHJpZ2h0cworQ1JFQVRFIFJPTEUgcmVncmVzc19ub293 bmVyOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisKK0NSRUFURSBPUiBSRVBMQUNF IEZVTkNUSU9OIHNxbGZ4KGludCkKK1JFVFVSTlMgaW50IEFTICQkIFNFTEVDVCAkMSArIHZhcjEg JCQgTEFOR1VBR0Ugc3FsOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeF9zZChp bnQpCitSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgJDEgKyB2YXIxICQkIExBTkdVQUdFIHNxbCBT RUNVUklUWSBERUZJTkVSOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBwbHBnc3FsZngo aW50KQorUkVUVVJOUyBpbnQgQVMgJCQgQkVHSU4gUkVUVVJOICQxICsgdmFyMTsgRU5EICQkIExB TkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBscGdzcWxmeF9z ZChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBCRUdJTiBSRVRVUk4gJDEgKyB2YXIxOyBFTkQgJCQg TEFOR1VBR0UgcGxwZ3NxbCBTRUNVUklUWSBERUZJTkVSOworCitMRVQgdmFyMSA9IDEwOworLS0g c2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKK1NFTEVDVCBzcWxmeCgyMCk7CitTRUxFQ1Qgc3Fs Znhfc2QoMjApOworU0VMRUNUIHBscGdzcWxmeCgyMCk7CitTRUxFQ1QgcGxwZ3NxbGZ4X3NkKDIw KTsKKworLS0gc2hvdWxkIHRvIGZhaWwKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfbm9vd25lcjsKKwor U0VMRUNUIHZhcjE7CitTRUxFQ1Qgc3FsZngoMjApOworU0VMRUNUIHBscGdzcWxmeCgyMCk7CisK Ky0tIHNob3VsZCBiZSBvaworU0VMRUNUIHNxbGZ4X3NkKDIwKTsKK1NFTEVDVCBwbHBnc3FsZnhf c2QoMjApOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxF IHZhcjEgVE8gcmVncmVzc19ub293bmVyOworCistLSBzaG91bGQgYmUgb2sKK1NFVCBST0xFIFRP IHJlZ3Jlc3Nfbm9vd25lcjsKKworU0VMRUNUIHZhcjE7CitTRUxFQ1Qgc3FsZngoMjApOworU0VM RUNUIHBscGdzcWxmeCgyMCk7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFZBUklBQkxF IHZhcjE7CitEUk9QIEZVTkNUSU9OIHNxbGZ4KGludCk7CitEUk9QIEZVTkNUSU9OIHBscGdzcWxm eChpbnQpOworRFJPUCBGVU5DVElPTiBzcWxmeF9zZChpbnQpOworRFJPUCBGVU5DVElPTiBwbHBn c3FsZnhfc2QoaW50KTsKKworRFJPUCBST0xFIHJlZ3Jlc3Nfbm9vd25lcjsKKworLS0gdXNlIHZh cmlhYmxlcyBpbnNpZGUgdmlld3MKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7CisK Ky0tIHVzZSB2YXJpYWJsZXMgaW4gdmlld3MKK0NSRUFURSBWSUVXIHRlc3RfdmlldyBBUyBTRUxF Q1QgQ09BTEVTQ0UodmFyMSArIHYsIDApIEFTIHJlc3VsdCBGUk9NIGdlbmVyYXRlX3Nlcmllcygx LDIpIGcodik7CitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsKK0xFVCB2YXIxID0gMy4xNDsKK1NF TEVDVCAqIEZST00gdGVzdF92aWV3OworCistLSBzdGFydCBhIG5ldyBzZXNzaW9uCitcYworCitT RUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsKK0xFVCB2YXIxID0gMy4xNDsKK1NFTEVDVCAqIEZST00g dGVzdF92aWV3OworCistLSBzaG91bGQgZmFpbCwgZGVwZW5kZW5jeQorRFJPUCBWQVJJQUJMRSB2 YXIxOworCistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFCTEUgdmFyMSBDQVNDQURFOworCitD UkVBVEUgVkFSSUFCTEUgdmFyMSB0ZXh0OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgdGV4dDsKKwor LS0gdXNlIHZhcmlhYmxlcyBpbiBTUUwgZnVuY3Rpb25zCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5D VElPTiBzcWxmeDEodmFyY2hhcikKK1JFVFVSTlMgdmFyY2hhciBBUyAkJCBTRUxFQ1QgdmFyMSB8 fCAnLCAnIHx8ICQxICQkIExBTkdVQUdFIHNxbDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJ T04gc3FsZngyKCB2YXJjaGFyKQorUkVUVVJOUyB2YXJjaGFyIEFTICQkIFNFTEVDVCB2YXIyIHx8 ICcsICcgfHwgJDEgJCQgTEFOR1VBR0Ugc3FsOworCitMRVQgdmFyMSA9ICdzdHIxJzsKK0xFVCB2 YXIyID0gJ3N0cjInOworCitTRUxFQ1Qgc3FsZngxKHNxbGZ4MignSGVsbG8nKSk7CisKKy0tIGlu bGluaW5nIGlzIGJsb2NrZWQKK0VYUExBSU4gKENPU1RTIE9GRiwgVkVSQk9TRSkgU0VMRUNUIHNx bGZ4MShzcWxmeDIoJ0hlbGxvJykpOworCitEUk9QIEZVTkNUSU9OIHNxbGZ4MSh2YXJjaGFyKTsK K0RST1AgRlVOQ1RJT04gc3FsZngyKHZhcmNoYXIpOworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJP UCBWQVJJQUJMRSB2YXIyOworCistLSBhY2Nlc3MgZnJvbSBjYWNoZWQgcGxhbnMgc2hvdWxkIHRv IHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7CisKK0NSRUFURSBPUiBSRVBM QUNFIEZVTkNUSU9OIHBscGdzcWxmeCgpCitSRVRVUk5TIG51bWVyaWMgQVMgJCQgQkVHSU4gUkVU VVJOIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworCitzZXQgcGxhbl9jYWNoZV9tb2Rl IFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUIHBscGdz cWxmeCgpOworTEVUIHZhcjEgPSAzLjE0ICogMjsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKworRFJP UCBWQVJJQUJMRSB2YXIxOworCistLSBkZXBlbmRlbmN5IChwbGFuIGludmFsaWRhdGlvbikgc2hv dWxkIHRvIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7CisKK0xFVCB2YXIx ID0gMy4xNCAqIDM7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CitMRVQgdmFyMSA9IDMuMTQgKiA0Owor U0VMRUNUIHBscGdzcWxmeCgpOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIEZVTkNUSU9O IHBscGdzcWxmeCgpOworCitzZXQgcGxhbl9jYWNoZV9tb2RlIFRPIERFRkFVTFQ7CisKKy0tIHVz YWdlIExFVCBzdGF0ZW1lbnQgaW4gcGxwZ3NxbCBzaG91bGQgdG8gd29yaworQ1JFQVRFIFZBUklB QkxFIHZhcjEgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgbnVtZXJpY1tdOworCitETyAkJAor QkVHSU4KKyAgTEVUIHZhcjIgPSAne30nOjppbnRbXTsKKyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9P UAorICAgIExFVCB2YXIxID0gaTsKKyAgICBMRVQgdmFyMlt2YXIxXSA9IGk7CisgIEVORCBMT09Q OworICBSQUlTRSBOT1RJQ0UgJ3Jlc3VsdCBhcnJheTogJScsIHZhcjI7CitFTkQ7CiskJDsKKwor RFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworCistLSBDQUxMIHN0YXRl bWVudCBpcyBub3Qgc3VwcG9ydGVkIHlldAorLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBz ZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorQ1JFQVRFIFZBUklBQkxF IHYgaW50OworCitDUkVBVEUgUFJPQ0VEVVJFIHAoYXJnIGludCkgQVMgJCQgQkVHSU4gUkFJU0Ug Tk9USUNFICclJywgYXJnOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworLS0gc2hvdWxkIG5v dCBjcmFzaCAoYnV0IGlzIG5vdCBzdXBwb3J0ZWQgeWV0KQorQ0FMTCBwKHYpOworCitETyAkJCBC RUdJTiBDQUxMIHAodik7IEVORCAkJDsKKworRFJPUCBQUk9DRURVUkUgcChpbnQpOworRFJPUCBW QVJJQUJMRSB2OworCistLSB0ZXN0IHNlYXJjaCBwYXRoCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0 OworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgbnVtZXJpYzsKKworLS0gc2hvdWxk IHRvIGZhaWwKK0xFVCB2YXIxID0gcGkoKTsKK1NFTEVDVCB2YXIxOworCistLSBzaG91bGQgYmUg b2sKK0xFVCBzdmFydGVzdC52YXIxID0gcGkoKTsKK1NFTEVDVCBzdmFydGVzdC52YXIxOworCitT RVQgc2VhcmNoX3BhdGggVE8gc3ZhcnRlc3Q7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEg PSBwaSgpICsgMTA7CitTRUxFQ1QgdmFyMTsKKworUkVTRVQgc2VhcmNoX3BhdGg7CitEUk9QIFND SEVNQSBzdmFydGVzdCBDQVNDQURFOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXh0Owor CistLSB2YXJpYWJsZXMgY2FuIGJlIHVwZGF0ZWQgdW5kZXIgUk8gdHJhbnNhY3Rpb24KK0JFR0lO OworU0VUIFRSQU5TQUNUSU9OIFJFQUQgT05MWTsKK0xFVCB2YXIxID0gJ2hlbGxvJzsKK0NPTU1J VDsKKworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gdGVzdCBvZiBk b21haW5zCitDUkVBVEUgRE9NQUlOIGludF9kb21haW4gQVMgaW50IE5PVCBOVUxMIENIRUNLIChW QUxVRSA+IDEwMCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnRfZG9tYWluOworCistLSBz aG91bGQgZmFpbAorU0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAx MDAwOworU0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDEwOworCist LSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBOVUxMOworCistLSBub3RlIC0gZG9tYWluIGRlZmF1 bHRzIGFyZSBub3Qgc3VwcG9ydGVkIHlldCAobGlrZSBQTHBnU1FMKQorCitEUk9QIFZBUklBQkxF IHZhcjE7CitEUk9QIERPTUFJTiBpbnRfZG9tYWluOworCistLSBhbiBleHByZXNzaW9uIHNob3Vs ZCBiZSB1bmtub3duLXR5cGUKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDRtdWx0aXJhbmdl W107CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gTlVMTDsKK0xFVCB2YXIxID0gJ3sie1sy LDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxNCl9In0nOworTEVUIHZhcjFbMl0gPSAne1s1LDgp LFsxMiwxMDApfSc7CitTRUxFQ1QgdmFyMTsKKworLS1JdCBzaG91bGQgdG8gd29yayBpbiBwbHBn c3FsIHRvbworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gTlVMTDsKKyAgTEVUIHZhcjEgPSAn eyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDE0KX0ifSc7CisgIExFVCB2YXIxWzJdID0g J3tbNSw4KSxbMTIsMTAwKX0nOworCisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitFTkQ7Cisk JDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0IENSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIGludCBDUkVBVEUgVEFCTEUgZm9vKGEgaW50KTsKK0xFVCBzdmFy dGVzdC52YXIxID0gMTAwOworU0VMRUNUIHN2YXJ0ZXN0LnZhcjE7CisKK1NFVCBzZWFyY2hfcGF0 aCB0byBwdWJsaWMsIHN2YXJ0ZXN0OworCitTRUxFQ1QgdmFyMTsKKworRFJPUCBTQ0hFTUEgc3Zh cnRlc3QgQ0FTQ0FERTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIFZB UklBQkxFIHZhcjIgQVMgaW50W107CisKK0xFVCB2YXIxID0gMjsKK0xFVCB2YXIyID0gJ3t9Jzo6 aW50W107CisKK0xFVCB2YXIyW3ZhcjFdID0gMDsKKworU0VMRUNUIHZhcjI7CisKK0RST1AgVkFS SUFCTEUgdmFyMSwgdmFyMjsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRF IFZBUklBQkxFIHZhcjIgQVMgaW50W107CisKK0xFVCB2YXIxID0gMjsKK0xFVCB2YXIyID0gJ3t9 Jzo6aW50W107CisKK1NFTEVDVCB2YXIyOworCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7CisK Ky0tIHRoZSBMRVQgc3RhdGVtZW50IHNob3VsZCBiZSBkaXNhbGxvd2VkIGluIENURQorQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgaW50OworV0lUSCB4IEFTIChMRVQgdmFyMSA9IDEwMCkgU0VMRUNU ICogRlJPTSB4OworCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVz KDEsIDEpOworCistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwg Mik7CitMRVQgdmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAwKTsKKworRFJPUCBWQVJJQUJMRSB2 YXIxOworCistLSBjb21wb3NpdGUgdmFyaWFibGVzCitDUkVBVEUgVFlQRSBzdl94eXogQVMgKHgg aW50LCB5IGludCwgeiBudW1lcmljKDEwLDIpKTsKKworQ1JFQVRFIFZBUklBQkxFIHYxIEFTIHN2 X3h5ejsKK0NSRUFURSBWQVJJQUJMRSB2MiBBUyBzdl94eXo7CisKK0xFVCB2MSA9ICgxLCAyLCAz LjE0KTsKK0xFVCB2MiA9ICgxMCwgMjAsIDMuMTQgKiAxMCk7CisKKy0tIHNob3VsZCB3b3JrIHRv byAtIHRoZXJlIGFyZSBwcmVwYXJlZCBjYXN0cworTEVUIHYxID0gKDEsIDIsIDMpOworCitTRUxF Q1QgdjE7CitTRUxFQ1QgdjI7CitTRUxFQ1QgKHYxKS4qOworU0VMRUNUICh2MikuKjsKKworU0VM RUNUIHYxLnggKyB2MS56OworU0VMRUNUIHYyLnggKyB2Mi56OworCistLSBhY2Nlc3MgdG8gY29t cG9zaXRlIGZpZWxkcyBzaG91bGQgYmUgc2FmZSB0b28KK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFy X3Rlc3Rfcm9sZTsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworCistLSBz aG91bGQgZmFpbAorU0VMRUNUIHYyLng7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK0RST1Ag VkFSSUFCTEUgdjE7CitEUk9QIFZBUklBQkxFIHYyOworCitEUk9QIFJPTEUgcmVncmVzc192YXJf dGVzdF9yb2xlOworCitDUkVBVEUgVFlQRSB0MSBBUyAoYSBpbnQsIGIgbnVtZXJpYywgYyB0ZXh0 KTsKKworQ1JFQVRFIFZBUklBQkxFIHYxIEFTIHQxOworTEVUIHYxID0gKDEsIHBpKCksICdoZWxs bycpOworU0VMRUNUIHYxOworTEVUIHYxLmIgPSAxMC4yMjIyOworU0VMRUNUIHYxOworCistLSBz aG91bGQgZmFpbCwgYXR0cmlidXRlIGRvZXNuJ3QgZXhpc3QKK0xFVCB2MS54ID0gMTA7CisKKy0t IHNob3VsZCBmYWlsLCBkb24ndCBhbGxvdyBtdWx0aSBjb2x1bW4gcXVlcnkKK0xFVCB2MSA9IChO VUxMOjp0MSkuKjsKKworLS0gYWxsb3cgRFJPUCBvciBBREQgQVRUUklCVVRFIG9uIGNvbXBvc2l0 ZSB0eXBlcworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIERST1AgQVRUUklCVVRFIGM7 CitTRUxFQ1QgdjE7CisKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBBREQgQVRUUklC VVRFIGMgaW50OworU0VMRUNUIHYxOworCitMRVQgdjEgPSAoMTAsIDEwLjMsIDIwKTsKK1NFTEVD VCB2MTsKKworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIERST1AgQVRUUklCVVRFIGI7 CitTRUxFQ1QgdjE7CisKKy0tIHNob3VsZCBmYWlsLCBkaXNhbGxvdyBkYXRhIHR5cGUgY2hhbmdl CitBTFRFUiBUWVBFIHQxIEFMVEVSIEFUVFJJQlVURSBjIFRZUEUgaW50OworCitEUk9QIFZBUklB QkxFIHYxOworRFJPUCBUWVBFIHQxOworCistLSB0aGUgdGFibGUgdHlwZSBjYW4gYmUgdXNlZCBh cyBjb21wb3NpdGUgdHlwZSB0b28KK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoYSBpbnQsIGIgbnVt ZXJpYywgYyBkYXRlKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHN2YXJfdGVzdDsKKworTEVU IHZhcjEgPSAoMTAsIHBpKCksICcyMDIzLTA1LTI2Jyk7CitTRUxFQ1QgdmFyMTsKKworLS0gc2hv dWxkIGZhaWwgZHVlIGRlcGVuZGVuY3kKK0FMVEVSIFRBQkxFIHN2YXJfdGVzdCBBTFRFUiBDT0xV TU4gYSBUWVBFIHRleHQ7CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRBQkxFIHN2YXJfdGVzdDsK KworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CisKKy0tIGFycmF5 cyBhcmUgc3VwcG9ydGVkCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljW107CitMRVQg dmFyMSA9IEFSUkFZWzEuMSwyLjFdOworTEVUIHZhcjFbMV0gPSAxMC4xOworU0VMRUNUIHZhcjE7 CisKKy0tIExFVCB0YXJnZXQgZG9lc24ndCBhbGxvdyBzcmYsIHNob3VsZCBmYWlsCitMRVQgdmFy MVtnZW5lcmF0ZV9zZXJpZXMoMSwzKV0gPSAxMDA7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKwor LS0gYXJyYXlzIGluc2lkZSBjb21wb3NpdGUKK0NSRUFURSBUWVBFIHQxIEFTIChhIG51bWVyaWMs IGIgbnVtZXJpY1tdKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHQxOworTEVUIHZhcjEgPSAo MTAuMSwgQVJSQVlbMC4wLCAwLjBdKTsKK0xFVCB2YXIxLmEgPSAxMC4yOworU0VMRUNUIHZhcjE7 CitMRVQgdmFyMS5iWzFdID0gMTAuMzsKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZh cjE7CitEUk9QIFRZUEUgdDE7CisKKy0tIEVuY291cmFnZSB1c2Ugb2YgcGFyYWxsZWwgcGxhbnMK K1NFVCBwYXJhbGxlbF9zZXR1cF9jb3N0ID0gMDsKK1NFVCBwYXJhbGxlbF90dXBsZV9jb3N0ID0g MDsKK1NFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplID0gMDsKK1NFVCBtYXhfcGFyYWxs ZWxfd29ya2Vyc19wZXJfZ2F0aGVyID0gMjsKKworLS0gdGVzdCBvbiBxdWVyeSB3aXRoIHdvcmtl cnMKK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoYSBpbnQpOworSU5TRVJUIElOVE8gc3Zhcl90ZXN0 IFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMCk7CitBTkFMWVpFIHN2YXJfdGVz dDsKK0NSRUFURSBWQVJJQUJMRSB6ZXJvIGludDsKK0xFVCB6ZXJvID0gMDsKKworLS0gcmVzdWx0 IHNob3VsZCBiZSAxMDAKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBhJTEw ID0gemVybzsKKworLS0gcGFyYWxsZWwgZXhlY3V0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgeWV0CitF WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBh JTEwID0gemVybzsKKworTEVUIHplcm8gPSAoU0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0 KTsKKworLS0gcmVzdWx0IHNob3VsZCBiZSAxMDAwCitTRUxFQ1QgemVybzsKKworRFJPUCBWQVJJ QUJMRSB6ZXJvOworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CisKK1JFU0VUIHBhcmFsbGVsX3NldHVw X2Nvc3Q7CitSRVNFVCBwYXJhbGxlbF90dXBsZV9jb3N0OworUkVTRVQgbWluX3BhcmFsbGVsX3Rh YmxlX3NjYW5fc2l6ZTsKK1JFU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXI7CisK Ky0tIHRoZSByZXN1bHQgb2YgdmlldyBzaG91bGQgYmUgc2FtZSBpbiBwYXJhbGxlbCBtb2RlIHRv bworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworTEVUIHZhcjEgPSAxMDsKKworQ1JFQVRF IFZJRVcgdmFyMXZpZXcgQVMgU0VMRUNUIENPQUxFU0NFKHZhcjEsIDApIEFTIHJlc3VsdDsKKwor U0VMRUNUICogRlJPTSB2YXIxdmlldzsKKworU0VUIGRlYnVnX3BhcmFsbGVsX3F1ZXJ5IFRPIG9u OworCitTRUxFQ1QgKiBGUk9NIHZhcjF2aWV3OworCitTRVQgZGVidWdfcGFyYWxsZWxfcXVlcnkg VE8gb2ZmOworCitEUk9QIFZJRVcgdmFyMXZpZXc7CitEUk9QIFZBUklBQkxFIHZhcjE7CisKK0NS RUFURSBWQVJJQUJMRSB2YXJpZCBpbnQ7CitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGlkIGludCwg diBpbnQpOworCitMRVQgdmFyaWQgPSAxOworSU5TRVJUIElOVE8gc3Zhcl90ZXN0IFZBTFVFUyh2 YXJpZCwgMTAwKTsKK1NFTEVDVCAqIEZST00gc3Zhcl90ZXN0OworVVBEQVRFIHN2YXJfdGVzdCBT RVQgdiA9IDIwMCBXSEVSRSBpZCA9IHZhcmlkOworU0VMRUNUICogRlJPTSBzdmFyX3Rlc3Q7CitE RUxFVEUgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgaWQgPSB2YXJpZDsKK1NFTEVDVCAqIEZST00gc3Zh cl90ZXN0OworCitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKK0RST1AgVkFSSUFCTEUgdmFyaWQ7CisK KworLS0gdmlzaWJpbGl0eSBjaGVjaworLS0gdmFyaWFibGVzIHNob3VsZCBiZSBzaGFkb3dlZCBh bHdheXMKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRleHQ7CitTRUxFQ1QgdmFyMS5yZWxuYW1l IEZST00gcGdfY2xhc3MgdmFyMSBXSEVSRSB2YXIxLnJlbG5hbWUgPSAncGdfY2xhc3MnOworCitE Uk9QIFZBUklBQkxFIHZhcjE7CisKK0NSRUFURSBUQUJMRSB4eHRhYihhdmFyIGludCk7CisKK0lO U0VSVCBJTlRPIHh4dGFiIFZBTFVFUygzMzMpOworCitDUkVBVEUgVFlQRSB4eHR5cGUgQVMgKGF2 YXIgaW50KTsKKworQ1JFQVRFIFZBUklBQkxFIHh4dGFiIEFTIHh4dHlwZTsKKworSU5TRVJUIElO VE8geHh0YWIgVkFMVUVTKDEwKTsKKworLS0gaXQgaXMgYW1iaWd1b3VzLCBidXQgY29sdW1ucyBh cmUgcHJlZmVycmVkCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHh4dGFiOworCistLSBzaG91bGQg YmUgb2sKK1NFTEVDVCBhdmFyIEZST00geHh0YWI7CisKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMu YXZhciBBUyBpbnQ7CisKKy0tIHNob3VsZCBiZSBvaywgc2VlIHRoZSB0YWJsZQorU0VMRUNUIGF2 YXIgRlJPTSB4eHRhYjsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgcHVibGljLmF2YXIgRlJP TSB4eHRhYjsKKworRFJPUCBWQVJJQUJMRSB4eHRhYjsKKworU0VMRUNUIHh4dGFiLmF2YXIgRlJP TSB4eHRhYjsKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMuYXZhcjsKKworRFJPUCBUWVBFIHh4dHlw ZTsKKworRFJPUCBUQUJMRSB4eHRhYjsKKworLS0gVGhlIHZhcmlhYmxlIGNhbiBiZSBzaGFkb3dl ZCBieSB0YWJsZSBvciBieSBhbGlhcworQ1JFQVRFIFRZUEUgcHVibGljLnN2YXJfdHlwZSBBUyAo YSBpbnQsIGIgaW50LCBjIGludCk7CitDUkVBVEUgVkFSSUFCTEUgcHVibGljLnN2YXIgQVMgcHVi bGljLnN2YXJfdHlwZTsKKworQ1JFQVRFIFRBQkxFIHB1YmxpYy5zdmFyKGEgaW50LCBiIGludCk7 CisKK0lOU0VSVCBJTlRPIHB1YmxpYy5zdmFyIFZBTFVFUygxMCwgMjApOworCitMRVQgcHVibGlj LnN2YXIgPSAoMTAwLCAyMDAsIDMwMCk7CisKKy0tIHNob3VsZCBiZSBvaworLS0gc2hvdyB0YWJs ZQorU0VMRUNUICogRlJPTSBwdWJsaWMuc3ZhcjsKK1NFTEVDVCBzdmFyLmEgRlJPTSBwdWJsaWMu c3ZhcjsKK1NFTEVDVCBzdmFyLiogRlJPTSBwdWJsaWMuc3ZhcjsKKworLS0gc2hvdyB2YXJpYWJs ZQorU0VMRUNUIHB1YmxpYy5zdmFyOworU0VMRUNUIHB1YmxpYy5zdmFyLmM7CitTRUxFQ1QgKHB1 YmxpYy5zdmFyKS4qOworCistLSB0aGUgdmFyaWFibGUgaXMgc2hhZG93ZWQsIHJhaXNlIGVycm9y CitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworCistLSBjYW4gYmUgZml4 ZWQgYnkgYWxpYXMKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXIgeDsKKwor U0VMRUNUIHN2YXIuYSBGUk9NIHB1YmxpYy5zdmFyOworU0VMRUNUIHN2YXIuKiBGUk9NIHB1Ymxp Yy5zdmFyOworCistLSBzaG93IHZhcmlhYmxlCitTRUxFQ1QgcHVibGljLnN2YXI7CitTRUxFQ1Qg cHVibGljLnN2YXIuYzsKK1NFTEVDVCAocHVibGljLnN2YXIpLio7CisKKy0tIHRoZSB2YXJpYWJs ZSBpcyBzaGFkb3dlZCwgcmFpc2UgZXJyb3IKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVi bGljLnN2YXI7CisKKy0tIGNhbiBiZSBmaXhlZCBieSBhbGlhcworU0VMRUNUIHB1YmxpYy5zdmFy LmMgRlJPTSBwdWJsaWMuc3ZhciB4OworCitEUk9QIFZBUklBQkxFIHB1YmxpYy5zdmFyOworRFJP UCBUQUJMRSBwdWJsaWMuc3ZhcjsKK0RST1AgVFlQRSBwdWJsaWMuc3Zhcl90eXBlOworCitDUkVB VEUgVFlQRSBhYiBBUyAoYSBpbnRlZ2VyLCBiIGludGVnZXIpOworCitDUkVBVEUgVkFSSUFCTEUg dl9hYiBBUyBhYjsKKworQ1JFQVRFIFRBQkxFIHZfYWIgKGEgaW50ZWdlciwgYiBpbnRlZ2VyKTsK K0lOU0VSVCBJTlRPIHZfYWIgVkFMVUVTKDEwLDIwKTsKKworLS0gd2Ugc2hvdWxkIHRvIHNlZSB0 YWJsZQorU0VMRUNUIHZfYWIuYSBGUk9NIHZfYWI7CisKK0NSRUFURSBTQ0hFTUEgdl9hYjsKKwor Q1JFQVRFIFZBUklBQkxFIHZfYWIuYSBBUyBpbnRlZ2VyOworCistLSB3ZSBzaG91bGQgdG8gc2Vl IHRhYmxlCitTRUxFQ1Qgdl9hYi5hIEZST00gdl9hYjsKKworRFJPUCBWQVJJQUJMRSB2X2FiOwor RFJPUCBUQUJMRSB2X2FiOworRFJPUCBUWVBFIGFiOworCitDUkVBVEUgVFlQRSB0X2FtX3R5cGUg QVMgKGIgaW50KTsKK0NSRUFURSBTQ0hFTUEgeHh4X2FtOworCitTRVQgc2VhcmNoX3BhdGggVE8g cHVibGljOworCitDUkVBVEUgVkFSSUFCTEUgeHh4X2FtIEFTIHRfYW1fdHlwZTsKK0xFVCB4eHhf YW0gPSBST1coMTApOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB4eHhfYW07CisKK0NSRUFU RSBWQVJJQUJMRSB4eHhfYW0uYiBBUyBpbnQ7CitMRVQgOiJEQk5BTUUiLnh4eF9hbS5iID0gMjA7 CisKKy0tIHNob3VsZCBiZSBzdGlsbCBvaworU0VMRUNUIHh4eF9hbTsKKworLS0gc2hvdWxkIGZh aWwsIHRoZSByZWZlcmVuY2Ugc2hvdWxkIGJlIGFtYmlndW91cworU0VMRUNUIHh4eF9hbS5iOwor CistLSBlbmhhbmNlZCByZWZlcmVuY2VzIHNob3VsZCBiZSBvaworU0VMRUNUIHB1YmxpYy54eHhf YW0uYjsKK1NFTEVDVCA6IkRCTkFNRSIueHh4X2FtLmI7CisKK0NSRUFURSBUQUJMRSB4eHhfYW0o YiAgaW50KTsKK0lOU0VSVCBJTlRPIHh4eF9hbSBWQUxVRVMoMTApOworCistLSB3ZSBzaG91bGQg dG8gc2VlIHRhYmxlCitTRUxFQ1QgeHh4X2FtLmIgRlJPTSB4eHhfYW07CitTRUxFQ1QgeC5iIEZS T00geHh4X2FtIHg7CisKK0RST1AgVEFCTEUgeHh4X2FtOworRFJPUCBWQVJJQUJMRSBwdWJsaWMu eHh4X2FtOworRFJPUCBWQVJJQUJMRSB4eHhfYW0uYjsKK0RST1AgU0NIRU1BIHh4eF9hbTsKKwor Q1JFQVRFIFNDSEVNQSA6IkRCTkFNRSI7CisKK0NSRUFURSBWQVJJQUJMRSA6IkRCTkFNRSIuOiJE Qk5BTUUiLjoiREJOQU1FIiBBUyB0X2FtX3R5cGU7CitDUkVBVEUgVkFSSUFCTEUgOiJEQk5BTUUi LjoiREJOQU1FIi5iIEFTIGludDsKKworU0VUIHNlYXJjaF9wYXRoIFRPIDoiREJOQU1FIjsKKwor LS0gc2hvdWxkIGJlIGFtYmlndW91cworU0VMRUNUIDoiREJOQU1FIi5iOworCistLSBzaG91bGQg YmUgYW1iaWd1b3VzIHRvbworU0VMRUNUIDoiREJOQU1FIi46IkRCTkFNRSIuYjsKKworQ1JFQVRF IFRBQkxFIDoiREJOQU1FIihiIGludCk7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIDoiREJO QU1FIi5iIEZST00gOiJEQk5BTUUiOworCitEUk9QIFRBQkxFIDoiREJOQU1FIjsKKworRFJPUCBW QVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmI7CitEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46 IkRCTkFNRSIuOiJEQk5BTUUiOworRFJPUCBTQ0hFTUEgOiJEQk5BTUUiOworCitSRVNFVCBzZWFy Y2hfcGF0aDsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIv c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggYTE4ZTgxMTI1YjUuLmJiOWQ4 MzE0ODFkIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysg Yi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMTQ5NCw2ICsxNDk0LDcgQEAg TGFyZ2VPYmplY3REZXNjCiBMYXRjaAogTGF1bmNoZXJMYXN0U3RhcnRUaW1lc0VudHJ5CiBMZXJw RnVuYworTGV0U3RtdAogTGV4RGVzY3IKIExleGVtZUVudHJ5CiBMZXhlbWVIYXNoS2V5CkBAIC0y NTkwLDYgKzI1OTEsNyBAQCBTZXJpYWxpemVkVHJhbnNhY3Rpb25TdGF0ZQogU2Vzc2lvbgogU2Vz c2lvbkJhY2t1cFN0YXRlCiBTZXNzaW9uRW5kVHlwZQorU2Vzc2lvblZhcmlhYmxlVmFsdWUKIFNl dENvbnN0cmFpbnRTdGF0ZQogU2V0Q29uc3RyYWludFN0YXRlRGF0YQogU2V0Q29uc3RyYWludFRy aWdnZXJEYXRhCkBAIC0yNzgyLDYgKzI3ODQsOSBAQCBTdXBwb3J0UmVxdWVzdFJvd3MKIFN1cHBv cnRSZXF1ZXN0U2VsZWN0aXZpdHkKIFN1cHBvcnRSZXF1ZXN0U2ltcGxpZnkKIFN1cHBvcnRSZXF1 ZXN0V0Z1bmNNb25vdG9uaWMKK1NWYXJpYWJsZQorU1ZhcmlhYmxlRGF0YQorU1ZhcmlhYmxlU3Rh dGUKIFN5bgogU3luY09wcwogU3luY1JlcENvbmZpZ0RhdGEKLS0gCjIuNDUuMgoK --000000000000bfc92e061dffd1c5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240724-0007-GUC-session_variables_ambiguity_warning.patch" Content-Disposition: attachment; filename="v20240724-0007-GUC-session_variables_ambiguity_warning.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyzzqe1s6 RnJvbSA1ZjQyZjdiN2ZlOGUzOGZmNDhjMDFhMWM4ZjUxYmVjZTVjMDA4YzhmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIxIE1heSAyMDI0IDE3OjU1OjI0ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNy8yMF0gR1VDIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nCgpJbnNp ZGUgYW4gcXVlcnkgdGhlIHNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZC4gVGhpcyBi ZWhhdmlvdXIgaXMgYnkgZGVzaWduLApiZWNhdXNlIHRoaXMgZW5zdXJpbmcgc28gbmV3IHZhcmlh YmxlcyBkb2Vzbid0IGJyZWFrIGV4aXN0aW5nIHF1ZXJpZXMuIEJ1dCB0aGlzCmJlaGF2aW91ciBj YW4gYmUgY29uZnVzaW5nLCBiZWNhdXNlIHNoYWRvd2luZyBpcyBxdWlldC4KCldoZW4gbmV3IEdV QyBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBpcyBvbiwgdGhlbiB0aGUgd2Fy bmluZwppcyBkaXNwbGF5ZWQsIHdoZW4gc29tZSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBiZSB1c2Vk LCBidXQgaXQgaXMgbm90IHVzZWQKZHVlIHNoYWRvd2luZy4gVGhpcyBmZWF0dXJlIHNob3VsZCB0 byBoZWxwIHdpdGggaW52ZXN0aWdhdGlvbiBvZiB1bmV4cGVjdGVkCmJlaGF2aW91ci4KCk5vdGU6 IFBMcGdTUUwgaGFzIGFuIG9wdGlvbiB0aGF0IGNvbnRyb2xzIHByaW9yaXR5IG9mIGlkZW50aWZp ZXIncyBzcGFjZXMKKFNRTCBvciBQTHBnU1FMKS4gRGVmYXVsdCBiZWhhdmlvdXIgZG9lc24ndCBh bGxvd3MgY29sbGlzaW9ucy4gSSBiZWxpZXZlCnRoaXMgZGVmYXVsdCBpcyB0aGUgYmVzdC4gSSBj YW5ub3QgdG8gaW1wbGVtZW50IHNpbWlsYXIgdmVyeSBzdHJpY3QKYmVoYXZpb3VyIHRvIHNlc3Np b24gdmFyaWFibGVzLCBiZWNhdXNlIG9uZSB1bmhhcHB5IG5hbWVkIHNlc3Npb24gdmFyaWFibGUK Y2FuIGJyZWFrcyBhbiBhcHBsaWNhdGlvbnMuIFRoZSBwcm9ibGVtcyByZWxhdGVkIHRvIGJhZGx5 IG5hbWVkIFBMcGdTUUwncwp2YXJpYmxlIGlzIGxpbWl0dGVkIGp1c3QgdG8gb25seSBvbmUgcm91 dGluZS4KLS0tCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgICAgICAgICAgICAgICAgICAgICAg fCA2MCArKysrKysrKysrKysrKysrKysrCiBkb2Mvc3JjL3NnbWwvZGRsLnNnbWwgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgNiArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAg ICAgICAgICAgICAgIHwgNDggKysrKysrKysrKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9taXNj L2d1Y190YWJsZXMuYyAgICAgICAgICAgfCAgOSArKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2Mv cG9zdGdyZXNxbC5jb25mLnNhbXBsZSB8ICAxICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9l eHByLmggICAgICAgICAgICAgICB8ICAxICsKIC4uLi9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNz aW9uX3ZhcmlhYmxlLm91dCB8IDMzICsrKysrKysrKysKIC4uLi9zcmMvc3FsL3BscGdzcWxfc2Vz c2lvbl92YXJpYWJsZS5zcWwgICAgICB8IDI5ICsrKysrKysrKwogLi4uL3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMjIgKysrKysrKwogc3JjL3Rlc3QvcmVncmVz cy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgMjAgKysrKysrKwogMTAgZmlsZXMgY2hh bmdlZCwgMjI0IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4IDNk ZWMwYjdjZmViLi45ZjE0YWQzNmY4MiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtMTA2ODUsNiArMTA2ODUsNjYg QEAgZHluYW1pY19saWJyYXJ5X3BhdGggPSAnQzpcdG9vbHNccG9zdGdyZXNxbDtIOlxteV9wcm9q ZWN0XGxpYjskbGliZGlyJwogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+ CiAKKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0iZ3VjLXNlc3Npb24tdmFyaWFibGVzLWFtYmlndWl0 eS13YXJuaW5nIiB4cmVmbGFiZWw9InNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5n Ij4KKyAgICAgIDx0ZXJtPjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJu aW5nPC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgor ICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJu aW5nPC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgIDwv aW5kZXh0ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJh PgorICAgICAgICBXaGVuIG9uLCBhIHdhcm5pbmcgaXMgcmFpc2VkIHdoZW4gYW55IGlkZW50aWZp ZXIgaW4gYSBxdWVyeSBjb3VsZCBiZQorICAgICAgICB1c2VkIGFzIGJvdGggYSBjb2x1bW4gaWRl bnRpZmllciwgcm91dGluZSB2YXJpYWJsZSBvciBhIHNlc3Npb24KKyAgICAgICAgdmFyaWFibGUg aWRlbnRpZmllci4gVGhlIGRlZmF1bHQgaXMgPGxpdGVyYWw+b2ZmPC9saXRlcmFsPi4KKyAgICAg ICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIFNlc3Npb24gdmFyaWFibGVzIGNhbiBi ZSBzaGFkb3dlZCBieSBjb2x1bW4gcmVmZXJlbmNlcyBpbiBhIHF1ZXJ5LCB0aGlzCisgICAgICAg IGlzIGFuIGV4cGVjdGVkIGJlaGF2aW9yLiAgUHJldmlvdXNseSB3b3JraW5nIHF1ZXJpZXMgc2hv dWxkbid0IGVycm9yIG91dAorICAgICAgICBieSBjcmVhdGluZyBhbnkgc2Vzc2lvbiB2YXJpYWJs ZSwgc28gc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGFsd2F5cyBzaGFkb3dlZAorICAgICAgICBpZiBh biBpZGVudGlmaWVyIGlzIGFtYmlndW91cy4gIFZhcmlhYmxlcyBzaG91bGQgYmUgcmVmZXJlbmNl ZCB1c2luZworICAgICAgICBhbnVuYW1iaWd1b3VzIGlkZW50aWZpZXIgd2l0aG91dCBhbnkgcG9z c2liaWxpdHkgZm9yIGEgY29sbGlzaW9uIHdpdGgKKyAgICAgICAgaWRlbnRpZmllciBvZiBvdGhl ciBkYXRhYmFzZSBvYmplY3RzIChjb2x1bW4gbmFtZXMgb3IgcmVjb3JkIGZpZWxkcyBuYW1lcyku CisgICAgICAgIFRoZSB3YXJuaW5nIG1lc3NhZ2VzIGVtaXR0ZWQgd2hlbiBlbmFibGluZyA8dmFy bmFtZT5zZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZzwvdmFybmFtZT4KKyAgICAg ICAgY2FuIGhlbHAgZmluZGluZyBzdWNoIGlkZW50aWZpZXIgY29sbGlzaW9uLgorPHByb2dyYW1s aXN0aW5nPgorQ1JFQVRFIFRBQkxFIGZvbyhhIGludCk7CitJTlNFUlQgSU5UTyBmb28gVkFMVUVT KDEwKTsKK0NSRUFURSBWQVJJQUJMRSBhIGludDsKK0xFVCBhID0gMTAwOworU0VMRUNUIGEgRlJP TSBmb287Cis8L3Byb2dyYW1saXN0aW5nPgorCis8c2NyZWVuPgorIGEKKy0tLS0KKyAxMAorKDEg cm93KQorPC9zY3JlZW4+CisKKzxwcm9ncmFtbGlzdGluZz4KK1NFVCBzZXNzaW9uX3ZhcmlhYmxl c19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKK1NFTEVDVCBhIEZST00gZm9vOworPC9wcm9ncmFt bGlzdGluZz4KKworPHNjcmVlbj4KK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlhYmxlICJhIiBpcyBz aGFkb3dlZAorTElORSAxOiBTRUxFQ1QgYSBGUk9NIGZvbzsKKyAgICAgICAgICAgICAgIF4KK0RF VEFJTDogIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0 aW5lJ3MgdmFyaWFibGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFt ZS4KKyBhCistLS0tCisgMTAKKygxIHJvdykKKzwvc2NyZWVuPgorICAgICAgIDwvcGFyYT4KKyAg ICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBmZWF0dXJlIGNhbiBzaWduaWZpY2FudGx5IGluY3Jl YXNlIGxvZyBzaXplLCBzbyBpdCdzIGRpc2FibGVkIGJ5CisgICAgICAgIGRlZmF1bHQuICBGb3Ig dGVzdGluZyBvciBkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMgaXQncyByZWNvbW1lbmRlZCB0bwor ICAgICAgICBlbmFibGUgaXQgaWYgeW91IHVzZSBzZXNzaW9uIHZhcmlhYmxlcy4KKyAgICAgICA8 L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8 dmFybGlzdGVudHJ5IGlkPSJndWMtc3RhbmRhcmQtY29uZm9ybWluZy1zdHJpbmdzIiB4cmVmbGFi ZWw9InN0YW5kYXJkX2NvbmZvcm1pbmdfc3RyaW5ncyI+CiAgICAgICA8dGVybT48dmFybmFtZT5z dGFuZGFyZF9jb25mb3JtaW5nX3N0cmluZ3M8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBl PikKICAgICAgIDxpbmRleHRlcm0+PHByaW1hcnk+c3RyaW5nczwvcHJpbWFyeT48c2Vjb25kYXJ5 PnN0YW5kYXJkIGNvbmZvcm1pbmc8L3NlY29uZGFyeT48L2luZGV4dGVybT4KZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCA5Mjcz MDc5OWY0MC4uOWQ1MDgyZGQzY2UgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTUzNTMsNyArNTM1MywxMSBAQCBTRUxFQ1Qg Y3VycmVudF91c2VyX2lkOwogICAgIFRoZSBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hhZG93 ZWQgYnkgY29sdW1uIHJlZmVyZW5jZXMgaW4gYSBxdWVyeS4gV2hlbgogICAgIGEgcXVlcnkgY29u dGFpbnMgaWRlbnRpZmllcnMgb3IgcXVhbGlmaWVkIGlkZW50aWZpZXJzIHRoYXQgY291bGQgYmUg dXNlZCBhcwogICAgIGJvdGggYSBzZXNzaW9uIHZhcmlhYmxlIGlkZW50aWZpZXJzIGFuZCBhcyBj b2x1bW4gaWRlbnRpZmllciwgdGhlbiB0aGUKLSAgICBjb2x1bW4gaWRlbnRpZmllciBpcyBwcmVm ZXJyZWQgZXZlcnkgdGltZS4KKyAgICBjb2x1bW4gaWRlbnRpZmllciBpcyBwcmVmZXJyZWQgZXZl cnkgdGltZS4gV2FybmluZ3MgY2FuIGJlIGVtaXR0ZWQgd2hlbgorICAgIHRoaXMgc2l0dWF0aW9u IGhhcHBlbnMgYnkgZW5hYmxpbmcgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgPHhyZWYKKyAgICBs aW5rZW5kPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtYW1iaWd1aXR5LXdhcm5pbmciLz4uIFVzZXIg Y2FuIGV4cGxpY2l0bHkKKyAgICBxdWFsaWZ5IHRoZSBzb3VyY2Ugb2JqZWN0IGJ5IHN5bnRheCA8 bGl0ZXJhbD50YWJsZS5jb2x1bW48L2xpdGVyYWw+IG9yCisgICAgPGxpdGVyYWw+c2NoZW1hLnZh cmlhYmxlPC9saXRlcmFsPi4KICAgIDwvcGFyYT4KICAgPC9zZWN0MT4KIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9leHByLmMKaW5kZXggNzNiZTJhOGUxMGEuLmYwZWJiY2Y1YmViIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9leHByLmMKQEAgLTQ3LDYgKzQ3LDcgQEAKIAogLyogR1VDIHBhcmFtZXRlcnMgKi8KIGJvb2wJ CVRyYW5zZm9ybV9udWxsX2VxdWFscyA9IGZhbHNlOworYm9vbAkJc2Vzc2lvbl92YXJpYWJsZXNf YW1iaWd1aXR5X3dhcm5pbmcgPSBmYWxzZTsKIAogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUV4cHJS ZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcik7CiBzdGF0aWMgTm9kZSAqdHJh bnNmb3JtUGFyYW1SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbVJlZiAqcHJlZik7CkBAIC05 NDMsNyArOTQ0LDggQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29s dW1uUmVmICpjcmVmKQogCSAqIHF1ZXN0aW9uIGlzIGlmIHdlIHdhbnQgdG8gaWRlbnRpZnkgc2Vz c2lvbidzIHZhcmlhYmxlcyBpbiB0aGVzZQogCSAqIGNvbnRleHRzPyBUaGUgY29kZSBjYW4gYmUg bW9yZSBzaW1wbGUsIHdoZW4gd2UgZG9uJ3QgZG8gaXQsIGJ1dCB0aGVuIHdlCiAJICogY2Fubm90 IHRvIHJhaXNlIG1heWJlIHVzZWZ1bCBtZXNzYWdlIGxpa2UgInlvdSBjYW5ub3QgdG8gdXNlIHNl c3Npb24KLQkgKiB2YXJpYWJsZXMgaGVyZSIuCisJICogdmFyaWFibGVzIGhlcmUiLiBPbiBzZWNv bmQgaGFuZCwgaW4gdGhpcyBjYXNlIHRoZSB3YXJuaW5ncyBhYm91dAorCSAqIHNlc3Npb24ncyB2 YXJpYWJsZSBzaGFkb3dpbmcgY2FuIGJlIG1lc3N5LgogCSAqLwogCWlmIChleHByX2tpbmRfYWxs b3dzX3Nlc3Npb25fdmFyaWFibGVzKHBzdGF0ZS0+cF9leHByX2tpbmQpKQogCXsKQEAgLTk2Miwx MCArOTY0LDQ4IEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVt blJlZiAqY3JlZikKIAkJICogU0VMRUNUIGZvby5hLCBmb28uYiwgZm9vLmMgRlJPTSBmb287CiAJ CSAqCiAJCSAqIFRoaXMgY2FzZSBjYW4gYmUgbWVzc3kgYW5kIHRoZW4gd2UgZGlzYWxsb3cgaXQu IFdoZW4gd2Uga25vdyB0aGF0IGEKLQkJICogcG9zc2libGUgdmFyaWFibGUgd2lsbCBiZSBzaGFk b3dlZCwgd2UgZG9uJ3QgdHJ5IHRvIGlkZW50aWZ5Ci0JCSAqIHZhcmlhYmxlLgorCQkgKiBwb3Nz aWJsZSB2YXJpYWJsZSB3aWxsIGJlIHNoYWRvd2VkLCB3ZSB0cnkgdG8gaWRlbnRpZnkgdmFyaWFi bGUKKwkJICogb25seSB3aGVuIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIGlz IHJlcXVlc3RlZC4KIAkJICovCi0JCWlmICghbm9kZSAmJiAhKHJlbG5hbWUgJiYgY3JlcnIgPT0g Q1JFUlJfTk9fQ09MVU1OKSkKKwkJaWYgKG5vZGUgfHwgKHJlbG5hbWUgJiYgY3JlcnIgPT0gQ1JF UlJfTk9fQ09MVU1OKSkKKwkJeworCQkJLyoKKwkJCSAqIEluIHRoaXMgcGF0aCB3ZSBqdXN0IHRy eSAoaWYgaXQgaXMgd2FudGVkKSBkZXRlY3QgaWYgc2Vzc2lvbgorCQkJICogdmFyaWFibGUgaXMg c2hhZG93ZWQuCisJCQkgKi8KKwkJCWlmIChzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2Fy bmluZykKKwkJCXsKKwkJCQkvKgorCQkJCSAqIFRoZSBBY2Nlc3NTaGFyZUxvY2sgaXMgY3JlYXRl ZCBvbiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGUuCisJCQkJICogVGhlIGxvY2sgd2lsbCBiZSBr ZXB0IGZvciB0aGUgd2hvbGUgdHJhbnNhY3Rpb24uCisJCQkJICovCisJCQkJdmFyaWQgPSBJZGVu dGlmeVZhcmlhYmxlKGNyZWYtPmZpZWxkcywgJmF0dHJuYW1lLCAmbm90X3VuaXF1ZSwgdHJ1ZSk7 CisKKwkJCQlpZiAoT2lkSXNWYWxpZCh2YXJpZCkpCisJCQkJeworCQkJCQkvKiBUaGlzIHBhdGgg d2lsbCBlbmRpbmcgYnkgV0FSTklORy4gVW5sb2NrIHZhcmlhYmxlIGZpcnN0ICovCisJCQkJCVVu bG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIDAsIEFjY2Vzc1No YXJlTG9jayk7CisKKwkJCQkJaWYgKG5vZGUpCisJCQkJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJ CQkJCShlcnJjb2RlKEVSUkNPREVfQU1CSUdVT1VTX0NPTFVNTiksCisJCQkJCQkJCSBlcnJtc2co InNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGlzIHNoYWRvd2VkIiwKKwkJCQkJCQkJCQlOYW1lTGlz dFRvU3RyaW5nKGNyZWYtPmZpZWxkcykpLAorCQkJCQkJCQkgZXJyZGV0YWlsKCJTZXNzaW9uIHZh cmlhYmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSdzIHZhcmlhYmxlcyBh bmQgcm91dGluZSdzIGFyZ3VtZW50cyB3aXRoIHRoZSBzYW1lIG5hbWUuIiksCisJCQkJCQkJCSBw YXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjcmVmLT5sb2NhdGlvbikpKTsKKwkJCQkJZWxzZQor CQkJCQkJLyogc2Vzc2lvbiB2YXJpYWJsZSBpcyBzaGFkb3dlZCBieSBSVEUgKi8KKwkJCQkJCWVy ZXBvcnQoV0FSTklORywKKwkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJR1VPVVNfQ09MVU1O KSwKKwkJCQkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgaXMgc2hhZG93 ZWQiLAorCQkJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZh cmlkKSksCisJCQkJCQkJCSBlcnJkZXRhaWwoIlNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFk b3dlZCBieSB0YWJsZXMgb3IgdGFibGUncyBhbGlhc2VzIHdpdGggdGhlIHNhbWUgbmFtZS4iKSwK KwkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0aW9uKSkpOwor CQkJCX0KKwkJCX0KKwkJfQorCQllbHNlCiAJCXsKIAkJCS8qCiAJCQkgKiBUaGUgQWNjZXNzU2hh cmVMb2NrIGlzIGNyZWF0ZWQgb24gcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlLiBUaGUKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggNjMwZWQwZjE2MjkuLjBkNWRlNDA4ODBmIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpAQCAtMTU0NCw2ICsxNTQ0LDE1IEBAIHN0 cnVjdCBjb25maWdfYm9vbCBDb25maWd1cmVOYW1lc0Jvb2xbXSA9CiAJCWZhbHNlLAogCQlOVUxM LCBOVUxMLCBOVUxMCiAJfSwKKwl7CisJCXsic2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmciLCBQR0NfVVNFUlNFVCwgQ0xJRU5UX0NPTk5fT1RIRVIsCisJCQlnZXR0ZXh0X25vb3Ao IlJhaXNlIGEgd2FybmluZyB3aGVuIHJlZmVyZW5jZSB0byBhIHNlc3Npb24gdmFyaWFibGUgaXMg YW1iaWd1b3VzLiIpLAorCQkJTlVMTAorCQl9LAorCQkmc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1 aXR5X3dhcm5pbmcsCisJCWZhbHNlLAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwKIAl7CiAJCXsi ZGVmYXVsdF90cmFuc2FjdGlvbl9yZWFkX29ubHkiLCBQR0NfVVNFUlNFVCwgQ0xJRU5UX0NPTk5f U1RBVEVNRU5ULAogCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRoZSBkZWZhdWx0IHJlYWQtb25seSBz dGF0dXMgb2YgbmV3IHRyYW5zYWN0aW9ucy4iKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2Mv cG9zdGdyZXNxbC5jb25mLnNhbXBsZQppbmRleCA5ZWM5Zjk3ZTkyNi4uZWJmNmYwMTZkMmQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQor KysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKQEAgLTcx Myw2ICs3MTMsNyBAQAogI2RlZmF1bHRfdHJhbnNhY3Rpb25fcmVhZF9vbmx5ID0gb2ZmCiAjZGVm YXVsdF90cmFuc2FjdGlvbl9kZWZlcnJhYmxlID0gb2ZmCiAjc2Vzc2lvbl9yZXBsaWNhdGlvbl9y b2xlID0gJ29yaWdpbicKKyNzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyA9IG9m ZgogI3N0YXRlbWVudF90aW1lb3V0ID0gMAkJCQkjIGluIG1pbGxpc2Vjb25kcywgMCBpcyBkaXNh YmxlZAogI3RyYW5zYWN0aW9uX3RpbWVvdXQgPSAwCQkJIyBpbiBtaWxsaXNlY29uZHMsIDAgaXMg ZGlzYWJsZWQKICNsb2NrX3RpbWVvdXQgPSAwCQkJCSMgaW4gbWlsbGlzZWNvbmRzLCAwIGlzIGRp c2FibGVkCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oIGIvc3Jj L2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAppbmRleCA5YjQ2ZGZkOWVjYy4uMGQ2NGIzMDBm OGEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKKysrIGIvc3Jj L2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaApAQCAtMTcsNiArMTcsNyBAQAogCiAvKiBHVUMg cGFyYW1ldGVycyAqLwogZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgVHJhbnNmb3JtX251bGxfZXF1 YWxzOworZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5 X3dhcm5pbmc7CiAKIGV4dGVybiBOb2RlICp0cmFuc2Zvcm1FeHByKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgTm9kZSAqZXhwciwgUGFyc2VFeHByS2luZCBleHByS2luZCk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0IGIv c3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQK aW5kZXggNmU4YjQxMzRjMDYuLmVjMDdmMWNiYWU5IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dAorKysgYi9zcmMvcGwv cGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dApAQCAtMzU0 LDYgKzM1NCwzOSBAQCAkJDsKIE5PVElDRTogIHNlc3Npb24gdmFyaWFibGUgaXMgMTAwCiBOT1RJ Q0U6ICBwbHBnc3FsIHZhcmlhYmxlIGlzIDEwMDAKIE5PVElDRTogIHZhcmlhYmxlIGlzIDEwMDAK Ky0tIGFnYWludCB3aXRoIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nKG9uKQor U0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9uOworRE8gJCQKKzw8 bXlibG9jaz4+CitERUNMQVJFIHBscGdzcWxfc3ZfdmFyMSBpbnQ7CitCRUdJTgorICBMRVQgcGxw Z3NxbF9zdl92YXIxID0gMTAwOworCisgIC0tIHNob3VsZCBiZSBvayB3aXRob3V0IHdhcm5pbmcK KyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gc2hvdWxkIGJlIG9rIHdpdGhvdXQg d2FybmluZworICAtLSBwcmludCAxMDA7CisgIFJBSVNFIE5PVElDRSAnc2Vzc2lvbiB2YXJpYWJs ZSBpcyAlJywgcHVibGljLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBzaG91bGQgYmUgb2sgd2l0 aG91dCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNFICdwbHBnc3FsIHZh cmlhYmxlIGlzICUnLCBteWJsb2NrLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBzaG91bGQgdG8g cHJpbnQgcGxwZ3NxbCB2YXJpYWJsZSB3aXRoIHdhcm5pbmcKKyAgLS0gcHJpbnQgMTAwMAorICBS QUlTRSBOT1RJQ0UgJ3ZhcmlhYmxlIGlzICUnLCBwbHBnc3FsX3N2X3ZhcjE7CitFTkQ7CiskJDsK K05PVElDRTogIHNlc3Npb24gdmFyaWFibGUgaXMgMTAwCitOT1RJQ0U6ICBwbHBnc3FsIHZhcmlh YmxlIGlzIDEwMDAKK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlhYmxlICJwbHBnc3FsX3N2X3ZhcjEi IGlzIHNoYWRvd2VkCitMSU5FIDE6IHBscGdzcWxfc3ZfdmFyMQorICAgICAgICBeCitERVRBSUw6 ICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSdz IHZhcmlhYmxlcyBhbmQgcm91dGluZSdzIGFyZ3VtZW50cyB3aXRoIHRoZSBzYW1lIG5hbWUuCitR VUVSWTogIHBscGdzcWxfc3ZfdmFyMQorTk9USUNFOiAgdmFyaWFibGUgaXMgMTAwMAorU0VUIHNl c3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9mZjsKIERST1AgVkFSSUFCTEUg cGxwZ3NxbF9zdl92YXIxOwogLS0gdGhlIHZhbHVlIHNob3VsZCBub3QgYmUgY29ycnVwdGVkCiBD UkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92IHRleHQ7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxw Z3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwgYi9zcmMvcGwvcGxwZ3Nx bC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKaW5kZXggMzk4ZTdmZTJhN2Mu LmVmNzA1YTRjYzg3IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxf c2Vzc2lvbl92YXJpYWJsZS5zcWwKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3NxbC9wbHBnc3Fs X3Nlc3Npb25fdmFyaWFibGUuc3FsCkBAIC0yNjAsNiArMjYwLDM1IEBAIEJFR0lOCiBFTkQ7CiAk JDsKIAorLS0gYWdhaW50IHdpdGggc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmco b24pCisKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKKwor RE8gJCQKKzw8bXlibG9jaz4+CitERUNMQVJFIHBscGdzcWxfc3ZfdmFyMSBpbnQ7CitCRUdJTgor ICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTAwOworCisgIC0tIHNob3VsZCBiZSBvayB3aXRob3V0 IHdhcm5pbmcKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gc2hvdWxkIGJlIG9r IHdpdGhvdXQgd2FybmluZworICAtLSBwcmludCAxMDA7CisgIFJBSVNFIE5PVElDRSAnc2Vzc2lv biB2YXJpYWJsZSBpcyAlJywgcHVibGljLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBzaG91bGQg YmUgb2sgd2l0aG91dCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNFICdw bHBnc3FsIHZhcmlhYmxlIGlzICUnLCBteWJsb2NrLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBz aG91bGQgdG8gcHJpbnQgcGxwZ3NxbCB2YXJpYWJsZSB3aXRoIHdhcm5pbmcKKyAgLS0gcHJpbnQg MTAwMAorICBSQUlTRSBOT1RJQ0UgJ3ZhcmlhYmxlIGlzICUnLCBwbHBnc3FsX3N2X3ZhcjE7CitF TkQ7CiskJDsKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9m ZjsKKwogRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjE7CiAKIC0tIHRoZSB2YWx1ZSBzaG91 bGQgbm90IGJlIGNvcnJ1cHRlZApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dAppbmRleCBmY2EyMWY0MTM3ZC4uMmY5MDMyNDM3NjcgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0xMjQ4 LDMgKzEyNDgsMjUgQEAgU0VMRUNUIHZhcjE7CiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUgdmFy MSwgdmFyMjsKKy0tIHRlc3Qgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcKK0NS RUFURSBTQ0hFTUEgeHh0YWI7CitDUkVBVEUgVkFSSUFCTEUgeHh0YWIuYXZhciBpbnQ7CitDUkVB VEUgVEFCTEUgcHVibGljLnh4dGFiKGF2YXIgaW50KTsKK0lOU0VSVCBJTlRPIHB1YmxpYy54eHRh YiBWQUxVRVMoMSk7CitMRVQgeHh0YWIuYXZhciA9IDIwOworU0VUIHNlc3Npb25fdmFyaWFibGVz X2FtYmlndWl0eV93YXJuaW5nIFRPIG9uOworLS0tIHNob3VsZCB0byByYWlzZSB3YXJuaW5nLCBz aG93IDEKK1NFTEVDVCB4eHRhYi5hdmFyIEZST00gcHVibGljLnh4dGFiOworV0FSTklORzogIHNl c3Npb24gdmFyaWFibGUgInh4dGFiLmF2YXIiIGlzIHNoYWRvd2VkCitMSU5FIDE6IFNFTEVDVCB4 eHRhYi5hdmFyIEZST00gcHVibGljLnh4dGFiOworICAgICAgICAgICAgICAgXgorREVUQUlMOiAg U2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUncyB2 YXJpYWJsZXMgYW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUgc2FtZSBuYW1lLgorIGF2 YXIgCistLS0tLS0KKyAgICAxCisoMSByb3cpCisKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJp Z3VpdHlfd2FybmluZyBUTyBvZmY7CitEUk9QIFRBQkxFIHB1YmxpYy54eHRhYjsKK0RST1AgU0NI RU1BIHh4dGFiIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFy aWFibGUgeHh0YWIuYXZhcgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCmluZGV4IDUxODZjZDlkYzlmLi5hNWQzYWY2YWRlMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtODQxLDMgKzg0MSwyMyBAQCBCRUdJTjsgRFJP UCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKIFNFTEVDVCB2YXIxOwogCiBEUk9QIFZBUklBQkxF IHZhcjEsIHZhcjI7CisKKy0tIHRlc3Qgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5p bmcKK0NSRUFURSBTQ0hFTUEgeHh0YWI7CisKK0NSRUFURSBWQVJJQUJMRSB4eHRhYi5hdmFyIGlu dDsKKworQ1JFQVRFIFRBQkxFIHB1YmxpYy54eHRhYihhdmFyIGludCk7CisKK0lOU0VSVCBJTlRP IHB1YmxpYy54eHRhYiBWQUxVRVMoMSk7CisKK0xFVCB4eHRhYi5hdmFyID0gMjA7CisKK1NFVCBz ZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKKy0tLSBzaG91bGQgdG8g cmFpc2Ugd2FybmluZywgc2hvdyAxCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHB1YmxpYy54eHRh YjsKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9mZjsKKwor RFJPUCBUQUJMRSBwdWJsaWMueHh0YWI7CitEUk9QIFNDSEVNQSB4eHRhYiBDQVNDQURFOwotLSAK Mi40NS4yCgo= --000000000000bfc92e061dffd1c5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240724-0008-EXPLAIN-LET-support.patch" Content-Disposition: attachment; filename="v20240724-0008-EXPLAIN-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyzzqe1x7 RnJvbSBhNWNmNjVhODA3NWY0M2QyYTdkOTAzMzNlMzIwZTE0ZTViOTY2YzY0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIxIE1heSAyMDI0IDE4OjI4OjA3ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwOC8yMF0gRVhQTEFJTiBMRVQgc3VwcG9ydAoKRW5oYW5jaW5nIEV4cGxhaW5PbmVQbGFu IGlzIG5lY2Vzc2FyeSB0byBiZSBFWFBMQUlOIEFOQUxZWkUgTEVUIGZ1bGx5IHdvcmthYmxlLgpJ biB0aGlzIGNhc2Ugd2Ugd2FudCB0byBiZSByZXN1bHQgb2YgcXVlcnkgb3IgZXhwcmVzc2lvbiB3 cml0dGVuIHRvIHRhcmdldCB2YXJpYWJsZS4KLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2V4cGxhaW4u c2dtbCAgICAgICAgICAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bi5jICAgICAgICAgICAgICAgIHwgMzEgKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3ByZXBhcmUuYyAgICAgICAgICAgICAgICB8ICA1ICsrLQogc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9pbmNsdWRlL2NvbW1hbmRz L2V4cGxhaW4uaCAgICAgICAgICAgICAgICB8ICAzICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCA0MCArKysrKysrKysrKysrKysrKysrCiBzcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyMSArKysrKysrKysrCiA3 IGZpbGVzIGNoYW5nZWQsIDk3IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9leHBsYWluLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2V4 cGxhaW4uc2dtbAppbmRleCBkYjlkM2E4NTQ5YS4uY2FjY2M3MDY1OGMgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFp bi5zZ21sCkBAIC05OCw3ICs5OCw4IEBAIEVYUExBSU4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5vcHRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXSA8cmVwCiAgICAgPGNv bW1hbmQ+SU5TRVJUPC9jb21tYW5kPiwgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwKICAgICA8 Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5NRVJHRTwvY29tbWFuZD4sCiAgICAg PGNvbW1hbmQ+Q1JFQVRFIFRBQkxFIEFTPC9jb21tYW5kPiwKLSAgICBvciA8Y29tbWFuZD5FWEVD VVRFPC9jb21tYW5kPiBzdGF0ZW1lbnQKKyAgICA8Y29tbWFuZD5FWEVDVVRFPC9jb21tYW5kPiwK KyAgICBvciA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IHN0YXRlbWVudAogICAgIHdpdGhvdXQgbGV0 dGluZyB0aGUgY29tbWFuZCBhZmZlY3QgeW91ciBkYXRhLCB1c2UgdGhpcyBhcHByb2FjaDoKIDxw cm9ncmFtbGlzdGluZz4KIEJFR0lOOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZXhwbGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IDU3NzFhYWJm NDBhLi44ZWQyODcxNWYzZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwpAQCAtMTgsNiArMTgsNyBA QAogI2luY2x1ZGUgImNvbW1hbmRzL2NyZWF0ZWFzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVm cmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJlcGFyZS5oIgorI2luY2x1ZGUgImV4ZWN1dG9y L3N2YXJpYWJsZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiZm9yZWlnbi9mZHdhcGkuaCIKICNpbmNs dWRlICJqaXQvaml0LmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKQEAgLTUwNyw4ICs1 MDgsOSBAQCBzdGFuZGFyZF9FeHBsYWluT25lUXVlcnkoUXVlcnkgKnF1ZXJ5LCBpbnQgY3Vyc29y T3B0aW9ucywKIAl9CiAKIAkvKiBydW4gaXQgKGlmIG5lZWRlZCkgYW5kIHByb2R1Y2Ugb3V0cHV0 ICovCi0JRXhwbGFpbk9uZVBsYW4ocGxhbiwgaW50bywgZXMsIHF1ZXJ5U3RyaW5nLCBwYXJhbXMs IHF1ZXJ5RW52LAotCQkJCSAgICZwbGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZidWZ1c2Fn ZSA6IE5VTEwpLAorCUV4cGxhaW5PbmVQbGFuKHBsYW4sIGludG8sIHF1ZXJ5LT5yZXN1bHRWYXJp YWJsZSwgZXMsIHF1ZXJ5U3RyaW5nLAorCQkJCSAgIHBhcmFtcywgcXVlcnlFbnYsICZwbGFuZHVy YXRpb24sCisJCQkJICAgKGVzLT5idWZmZXJzID8gJmJ1ZnVzYWdlIDogTlVMTCksCiAJCQkJICAg ZXMtPm1lbW9yeSA/ICZtZW1fY291bnRlcnMgOiBOVUxMKTsKIH0KIApAQCAtNTkyLDYgKzU5NCwy NSBAQCBFeHBsYWluT25lVXRpbGl0eShOb2RlICp1dGlsaXR5U3RtdCwgSW50b0NsYXVzZSAqaW50 bywgRXhwbGFpblN0YXRlICplcywKIAkJZWxzZQogCQkJRXhwbGFpbkR1bW15R3JvdXAoIk5vdGlm eSIsIE5VTEwsIGVzKTsKIAl9CisJZWxzZSBpZiAoSXNBKHV0aWxpdHlTdG10LCBMZXRTdG10KSkK Kwl7CisJCUxldFN0bXQgICAgKmxldHN0bXQgPSAoTGV0U3RtdCAqKSB1dGlsaXR5U3RtdDsKKwkJ TGlzdAkgICAqcmV3cml0dGVuOworCQlRdWVyeQkgICAqcXVlcnk7CisKKwkJaWYgKGVzLT5mb3Jt YXQgPT0gRVhQTEFJTl9GT1JNQVRfVEVYVCkKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoZXMt PnN0ciwgIlNFVCBTRVNTSU9OIFZBUklBQkxFXG4iKTsKKwkJZWxzZQorCQkJRXhwbGFpbkR1bW15 R3JvdXAoIlNldCBTZXNzaW9uIFZhcmlhYmxlIiwgTlVMTCwgZXMpOworCisJCXJld3JpdHRlbiA9 IFF1ZXJ5UmV3cml0ZShjYXN0Tm9kZShRdWVyeSwgY29weU9iamVjdChsZXRzdG10LT5xdWVyeSkp KTsKKworCQlBc3NlcnQobGlzdF9sZW5ndGgocmV3cml0dGVuKSA9PSAxKTsKKwkJcXVlcnkgPSBs aW5pdGlhbF9ub2RlKFF1ZXJ5LCByZXdyaXR0ZW4pOworCQlFeHBsYWluT25lUXVlcnkocXVlcnks CisJCQkJCQlDVVJTT1JfT1BUX1BBUkFMTEVMX09LLCBOVUxMLCBlcywKKwkJCQkJCXF1ZXJ5U3Ry aW5nLCBwYXJhbXMsIHF1ZXJ5RW52KTsKKwl9CiAJZWxzZQogCXsKIAkJaWYgKGVzLT5mb3JtYXQg PT0gRVhQTEFJTl9GT1JNQVRfVEVYVCkKQEAgLTYxNSw4ICs2MzYsOCBAQCBFeHBsYWluT25lVXRp bGl0eShOb2RlICp1dGlsaXR5U3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRlICpl cywKICAqIHRvIGNhbGwgaXQuCiAgKi8KIHZvaWQKLUV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10 ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRlICplcywKLQkJCSAg IGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKK0V4cGxhaW5P bmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAqaW50bywgT2lkIHRh cmdldHZhciwKKwkJCSAgIEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5n LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKIAkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52 LCBjb25zdCBpbnN0cl90aW1lICpwbGFuZHVyYXRpb24sCiAJCQkgICBjb25zdCBCdWZmZXJVc2Fn ZSAqYnVmdXNhZ2UsCiAJCQkgICBjb25zdCBNZW1vcnlDb250ZXh0Q291bnRlcnMgKm1lbV9jb3Vu dGVycykKQEAgLTY2NSw2ICs2ODYsOCBAQCBFeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxh bm5lZHN0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJICovCiAJaWYg KGludG8pCiAJCWRlc3QgPSBDcmVhdGVJbnRvUmVsRGVzdFJlY2VpdmVyKGludG8pOworCWVsc2Ug aWYgKE9pZElzVmFsaWQodGFyZ2V0dmFyKSkKKwkJZGVzdCA9IENyZWF0ZVZhcmlhYmxlRGVzdFJl Y2VpdmVyKHRhcmdldHZhcik7CiAJZWxzZSBpZiAoZXMtPnNlcmlhbGl6ZSAhPSBFWFBMQUlOX1NF UklBTElaRV9OT05FKQogCQlkZXN0ID0gQ3JlYXRlRXhwbGFpblNlcmlhbGl6ZURlc3RSZWNlaXZl cihlcyk7CiAJZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IDA3MjU3ZDRkYjk0Li4zNjRk Zjc3N2VhNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwpAQCAtNjU1LDggKzY1NSw5IEBAIEV4cGxh aW5FeGVjdXRlUXVlcnkoRXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBF eHBsYWluU3RhdGUgKmVzLAogCQlQbGFubmVkU3RtdCAqcHN0bXQgPSBsZmlyc3Rfbm9kZShQbGFu bmVkU3RtdCwgcCk7CiAKIAkJaWYgKHBzdG10LT5jb21tYW5kVHlwZSAhPSBDTURfVVRJTElUWSkK LQkJCUV4cGxhaW5PbmVQbGFuKHBzdG10LCBpbnRvLCBlcywgcXVlcnlfc3RyaW5nLCBwYXJhbUxJ LCBxdWVyeUVudiwKLQkJCQkJCSAgICZwbGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZidWZ1 c2FnZSA6IE5VTEwpLAorCQkJRXhwbGFpbk9uZVBsYW4ocHN0bXQsIGludG8sIEludmFsaWRPaWQs IGVzLCBxdWVyeV9zdHJpbmcsIHBhcmFtTEksCisJCQkJCQkgICBxdWVyeUVudiwgJnBsYW5kdXJh dGlvbiwKKwkJCQkJCSAgIChlcy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwpLAogCQkJCQkJ ICAgZXMtPm1lbW9yeSA/ICZtZW1fY291bnRlcnMgOiBOVUxMKTsKIAkJZWxzZQogCQkJRXhwbGFp bk9uZVV0aWxpdHkocHN0bXQtPnV0aWxpdHlTdG10LCBpbnRvLCBlcywgcXVlcnlfc3RyaW5nLApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKaW5kZXggNGFjMzE5YmYyMjUuLmZjYWNlZjI3NmNmIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAg LTEyMTMyLDcgKzEyMTMyLDggQEAgRXhwbGFpbmFibGVTdG10OgogCQkJfCBDcmVhdGVBc1N0bXQK IAkJCXwgQ3JlYXRlTWF0Vmlld1N0bXQKIAkJCXwgUmVmcmVzaE1hdFZpZXdTdG10Ci0JCQl8IEV4 ZWN1dGVTdG10CQkJCQkvKiBieSBkZWZhdWx0IGFsbCBhcmUgJCQ9JDEgKi8KKwkJCXwgRXhlY3V0 ZVN0bXQKKwkJCXwgTGV0U3RtdAkJCQkJCS8qIGJ5IGRlZmF1bHQgYWxsIGFyZSAkJD0kMSAqLwog CQk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29t bWFuZHMvZXhwbGFpbi5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFpbi5oCmluZGV4IDli OGIzNTFkOWEyLi44OTY1NjYyNTA2NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv ZXhwbGFpbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2V4cGxhaW4uaApAQCAtMTAxLDcg KzEwMSw4IEBAIGV4dGVybiB2b2lkIEV4cGxhaW5PbmVVdGlsaXR5KE5vZGUgKnV0aWxpdHlTdG10 LCBJbnRvQ2xhdXNlICppbnRvLAogCQkJCQkJCSAgRXhwbGFpblN0YXRlICplcywgY29uc3QgY2hh ciAqcXVlcnlTdHJpbmcsCiAJCQkJCQkJICBQYXJhbUxpc3RJbmZvIHBhcmFtcywgUXVlcnlFbnZp cm9ubWVudCAqcXVlcnlFbnYpOwogCi1leHRlcm4gdm9pZCBFeHBsYWluT25lUGxhbihQbGFubmVk U3RtdCAqcGxhbm5lZHN0bXQsIEludG9DbGF1c2UgKmludG8sCitleHRlcm4gdm9pZCBFeHBsYWlu T25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsCisJCQkJCQkgICBJbnRvQ2xhdXNlICpp bnRvLCBPaWQgdGFyZ2V0dmFyLAogCQkJCQkJICAgRXhwbGFpblN0YXRlICplcywgY29uc3QgY2hh ciAqcXVlcnlTdHJpbmcsCiAJCQkJCQkgICBQYXJhbUxpc3RJbmZvIHBhcmFtcywgUXVlcnlFbnZp cm9ubWVudCAqcXVlcnlFbnYsCiAJCQkJCQkgICBjb25zdCBpbnN0cl90aW1lICpwbGFuZHVyYXRp b24sCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CmluZGV4IDJmOTAzMjQzNzY3Li4xMWVhZWE2NjlkYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTEyNzAsMyArMTI3MCw0MyBAQCBT RVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwogRFJPUCBUQUJM RSBwdWJsaWMueHh0YWI7CiBEUk9QIFNDSEVNQSB4eHRhYiBDQVNDQURFOwogTk9USUNFOiAgZHJv cCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHh4dGFiLmF2YXIKK0NSRUFURSBWQVJJQUJM RSB2YXIxIGJpZ2ludDsKK0NSRUFURSBUQUJMRSB2YXJfdGFiX3Rlc3RfdGFibGUoYSBpbnQpOwor SU5TRVJUIElOVE8gdmFyX3RhYl90ZXN0X3RhYmxlIFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsMTApOworVkFDVVVNIEFOQUxZWkUgdmFyX3RhYl90ZXN0X3RhYmxlOworRVhQTEFJTiAo Q09TVFMgT0ZGKSBMRVQgdmFyMSA9IChTRUxFQ1QgY291bnQoKikgRlJPTSB2YXJfdGFiX3Rlc3Rf dGFibGUpOworICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNFVCBTRVNT SU9OIFZBUklBQkxFCisgUmVzdWx0CisgICBJbml0UGxhbiAxCisgICAgIC0+ICBBZ2dyZWdhdGUK KyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHZhcl90YWJfdGVzdF90YWJsZQorKDUgcm93cykK KworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAg CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElNSU5HIE9GRiwgQU5BTFlaRSwgU1VN TUFSWSBPRkYpIExFVCB2YXIxID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVzdF90 YWJsZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJ QUJMRQorIFJlc3VsdCAoYWN0dWFsIHJvd3M9MSBsb29wcz0xKQorICAgSW5pdFBsYW4gMQorICAg ICAtPiAgQWdncmVnYXRlIChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiB2YXJfdGFiX3Rlc3RfdGFibGUgKGFjdHVhbCByb3dzPTEwIGxvb3BzPTEpCiso NSByb3dzKQorCistLSBzaG91bGQgYmUgMTAKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0K KyAgIDEwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgdmFyX3Rh Yl90ZXN0X3RhYmxlOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs CmluZGV4IGE1ZDNhZjZhZGUxLi5mYTBhNTdmYzc3ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtODYxLDMgKzg2MSwyNCBAQCBTRVQgc2Vzc2lvbl92 YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwogCiBEUk9QIFRBQkxFIHB1YmxpYy54 eHRhYjsKIERST1AgU0NIRU1BIHh4dGFiIENBU0NBREU7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIx IGJpZ2ludDsKKworQ1JFQVRFIFRBQkxFIHZhcl90YWJfdGVzdF90YWJsZShhIGludCk7CisKK0lO U0VSVCBJTlRPIHZhcl90YWJfdGVzdF90YWJsZSBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLDEwKTsKKworVkFDVVVNIEFOQUxZWkUgdmFyX3RhYl90ZXN0X3RhYmxlOworCitFWFBMQUlO IChDT1NUUyBPRkYpIExFVCB2YXIxID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVz dF90YWJsZSk7CisKKy0tIHNob3VsZCBiZSBOVUxMCitTRUxFQ1QgdmFyMTsKKworRVhQTEFJTiAo Q09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBBTkFMWVpFLCBTVU1NQVJZIE9GRikgTEVUIHZhcjEgPSAo U0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKworLS0gc2hvdWxkIGJl IDEwCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJf dGFiX3Rlc3RfdGFibGU7Ci0tIAoyLjQ1LjIKCg== --000000000000bfc92e061dffd1c5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240724-0006-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20240724-0006-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyzzqe1l5 RnJvbSAxMmQwM2VjMjNjMzhjZTU2MzNjZGYxMTE3YzIxZWFlZTBiNmFhYWJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTY6MDg6NTIgKzAxMDAKU3ViamVjdDogW1BBVENIIDA2 LzIwXSBwbHBnc3FsIHRlc3RzCgotLS0KIHNyYy9wbC9wbHBnc3FsL3NyYy9NYWtlZmlsZSAgICAg ICAgICAgICAgICAgICB8ICAgMyArLQogLi4uL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25f dmFyaWFibGUub3V0IHwgMzgyICsrKysrKysrKysrKysrKysrKwogc3JjL3BsL3BscGdzcWwvc3Jj L21lc29uLmJ1aWxkICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9zcmMvc3FsL3BscGdzcWxf c2Vzc2lvbl92YXJpYWJsZS5zcWwgICAgICB8IDI4OSArKysrKysrKysrKysrCiA0IGZpbGVzIGNo YW5nZWQsIDY3NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5v dXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcGwvcGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vz c2lvbl92YXJpYWJsZS5zcWwKCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZp bGUgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKaW5kZXggNjNjYjk2ZmFlM2UuLmJiY2Fl MjdkNDIyIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKKysrIGIvc3Jj L3BsL3BscGdzcWwvc3JjL01ha2VmaWxlCkBAIC0zNSw3ICszNSw4IEBAIFJFR1JFU1NfT1BUUyA9 IC0tZGJuYW1lPSQoUExfVEVTVERCKQogUkVHUkVTUyA9IHBscGdzcWxfYXJyYXkgcGxwZ3NxbF9j YWNoZSBwbHBnc3FsX2NhbGwgcGxwZ3NxbF9jb250cm9sIFwKIAlwbHBnc3FsX2NvcHkgcGxwZ3Nx bF9kb21haW4gcGxwZ3NxbF9taXNjIFwKIAlwbHBnc3FsX3JlY29yZCBwbHBnc3FsX3NpbXBsZSBw bHBnc3FsX3RyYW5zYWN0aW9uIFwKLQlwbHBnc3FsX3RyYXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdz cWxfdmFycHJvcHMKKwlwbHBnc3FsX3RyYXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdzcWxfdmFycHJv cHMgXAorCXBscGdzcWxfc2Vzc2lvbl92YXJpYWJsZQogCiAjIHdoZXJlIHRvIGZpbmQgZ2VuX2tl eXdvcmRsaXN0LnBsIGFuZCBzdWJzaWRpYXJ5IGZpbGVzCiBUT09MU0RJUiA9ICQodG9wX3NyY2Rp cikvc3JjL3Rvb2xzCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxw Z3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9w bHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi42ZThiNDEzNGMwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wbC9wbHBnc3Fs L3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CkBAIC0wLDAgKzEsMzgy IEBACistLSB0ZXN0IG9mIHNlc3Npb24gdmFyaWFibGVzCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIgQVMgbnVtZXJpYzsKK0xFVCBwbHBnc3FsX3N2X3ZhciA9IHBpKCk7CistLSBwYXNz aW5nIHBhcmFtZXRlcnMgdG8gRE8gYmxvY2sKK0RPICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0Ug J3ZhbHVlIG9mIHNlc3Npb24gdmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFyOworRU5EOwor JCQ7CitOT1RJQ0U6ICB2YWx1ZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGlzIDMuMTQxNTkyNjUzNTg5 NzkKKy0tIHBhc3Npbmcgb3V0cHV0IGZyb20gRE8gYmxvY2s7CitETyAkJAorQkVHSU4KKyAgTEVU IHBscGdzcWxfc3ZfdmFyID0gMiAqIHBpKCk7CitFTkQKKyQkOworU0VMRUNUIHBscGdzcWxfc3Zf dmFyIEFTICJwaV9tdWx0aXBseV8yIjsKKyAgcGlfbXVsdGlwbHlfMiAgIAorLS0tLS0tLS0tLS0t LS0tLS0tCisgNi4yODMxODUzMDcxNzk1OQorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHBscGdz cWxfc3ZfdmFyOworLS0gdGVzdCBhY2Nlc3MgZnJvbSBQTC9wZ1NRTAorQ1JFQVRFIFZBUklBQkxF IHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIy IEFTIG51bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNoYXI7 CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB3cml0ZXJfZnVuYygpCitSRVRVUk5TIHZvaWQg QVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsKKyAgTEVUIHBscGdzcWxf c3ZfdmFyMiA9IHBpKCk7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9zdl92 YXIzID0gZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcqJywgMTAwMDApKTsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB1cGRhdGVyX2Z1bmMoKQor UkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gcGxwZ3Nx bF9zdl92YXIxICsgMTAwOworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gcGxwZ3NxbF9zdl92YXIy ICsgMTAwMDAwMDAwMDAwOworICAtLSB2ZXJ5IGxvbmcgdmFsdWUKKyAgTEVUIHBscGdzcWxfc3Zf dmFyMyA9IHBscGdzcWxfc3ZfdmFyMyB8fCBmb3JtYXQoJyglcyknLCByZXBlYXQoJyonLCAxMDAw MCkpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIHJlYWRlcl9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9U SUNFICd2YXIxID0gJScsIHBscGdzcWxfc3ZfdmFyMTsKKyAgUkFJU0UgTk9USUNFICd2YXIyID0g JScsIHBscGdzcWxfc3ZfdmFyMjsKKyAgUkFJU0UgTk9USUNFICdsZW5ndGggb2YgdmFyMyA9ICUn LCBsZW5ndGgocGxwZ3NxbF9zdl92YXIzKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7Cist LSBleGVjdXRlIHVuZGVyIHRyYW5zYWN0aW9uCitCRUdJTjsKK1NFTEVDVCB3cml0ZXJfZnVuYygp OworIHdyaXRlcl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcmVh ZGVyX2Z1bmMoKTsKK05PVElDRTogIHZhcjEgPSAxMAorTk9USUNFOiAgdmFyMiA9IDMuMTQxNTky NjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMTAwMDIKKyByZWFkZXJfZnVuYyAK Ky0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHVwZGF0ZXJfZnVuYygpOworIHVw ZGF0ZXJfZnVuYyAKKy0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJf ZnVuYygpOworTk9USUNFOiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAw My4xNDE1OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorIHJlYWRl cl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitFTkQ7CistLSBleGVjdXRlIG91 dCBvZiB0cmFuc2FjdGlvbgorU0VMRUNUIHdyaXRlcl9mdW5jKCk7Cisgd3JpdGVyX2Z1bmMgCist LS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJfZnVuYygpOworTk9USUNF OiAgdmFyMSA9IDEwCitOT1RJQ0U6ICB2YXIyID0gMy4xNDE1OTI2NTM1ODk3OQorTk9USUNFOiAg bGVuZ3RoIG9mIHZhcjMgPSAxMDAwMgorIHJlYWRlcl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAor KDEgcm93KQorCitTRUxFQ1QgdXBkYXRlcl9mdW5jKCk7CisgdXBkYXRlcl9mdW5jIAorLS0tLS0t LS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHJlYWRlcl9mdW5jKCk7CitOT1RJQ0U6ICB2 YXIxID0gMTEwCitOT1RJQ0U6ICB2YXIyID0gMTAwMDAwMDAwMDAzLjE0MTU5MjY1MzU4OTc5CitO T1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDIwMDA0CisgcmVhZGVyX2Z1bmMgCistLS0tLS0tLS0t LS0tCisgCisoMSByb3cpCisKKy0tIGV4ZWN1dGUgaW5zaWRlIFBML3BnU1FMIGJsb2NrCitETyAk JAorQkVHSU4KKyAgUEVSRk9STSB3cml0ZXJfZnVuYygpOworICBQRVJGT1JNIHJlYWRlcl9mdW5j KCk7CisgIFBFUkZPUk0gdXBkYXRlcl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsK K0VORDsKKyQkOworTk9USUNFOiAgdmFyMSA9IDEwCitOT1RJQ0U6ICB2YXIyID0gMy4xNDE1OTI2 NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAxMDAwMgorTk9USUNFOiAgdmFyMSA9 IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4xNDE1OTI2NTM1ODk3OQorTk9USUNF OiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorLS0gcGxhbiBjYWNoZXMgc2hvdWxkIGJlIGNvcnJl Y3RseSBpbnZhbGlkYXRlZAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxf c3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIG51bWVyaWM7CitD UkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNoYXI7CistLSBzaG91bGQgdG8g d29yayBhZ2FpbgorRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0gd3JpdGVyX2Z1bmMoKTsKKyAgUEVS Rk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0ZXJfZnVuYygpOworICBQRVJGT1JN IHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKK05PVElDRTogIHZhcjEgPSAxMAorTk9USUNFOiAg dmFyMiA9IDMuMTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMTAwMDIK K05PVElDRTogIHZhcjEgPSAxMTAKK05PVElDRTogIHZhcjIgPSAxMDAwMDAwMDAwMDMuMTQxNTky NjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMjAwMDQKK0RST1AgVkFSSUFCTEUg cGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFyMzsKK0RST1Ag RlVOQ1RJT04gd3JpdGVyX2Z1bmM7CitEUk9QIEZVTkNUSU9OIHJlYWRlcl9mdW5jOworRFJPUCBG VU5DVElPTiB1cGRhdGVyX2Z1bmM7CistLSBhbm90aGVyIGNoZWNrIG9mIGNvcnJlY3QgcGxhbiBj YWNoZSBpbnZhbGlkYXRpb24KK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50 OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBBUyBpbnRbXTsKK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIHRlc3RfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0RFQ0xBUkUg diBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTsK KyAgdltwbHBnc3FsX3N2X3ZhcjFdID0gMTAwOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2OworICBM RVQgcGxwZ3NxbF9zdl92YXIyID0gdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMltwbHBnc3FsX3N2 X3ZhcjFdID0gLTE7CisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdzcWxfc3ZfdmFyMjsKK0VORDsK KyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgdGVzdF9mdW5jKCk7CitOT1RJQ0U6ICB7MTAw fQorTk9USUNFOiAgey0xfQorIHRlc3RfZnVuYyAKKy0tLS0tLS0tLS0tCisgCisoMSByb3cpCisK K0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CitDUkVBVEUg VkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3Fs X3N2X3ZhcjIgQVMgaW50W107CitTRUxFQ1QgdGVzdF9mdW5jKCk7CitOT1RJQ0U6ICB7MTAwfQor Tk9USUNFOiAgey0xfQorIHRlc3RfZnVuYyAKKy0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK0RS T1AgRlVOQ1RJT04gdGVzdF9mdW5jKCk7CitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSwg cGxwZ3NxbF9zdl92YXIyOworLS0gY2hlY2sgc2VjdXJlIGFjY2VzcworQ1JFQVRFIFJPTEUgcmVn cmVzc192YXJfb3duZXJfcm9sZTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xl OworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfZXhlY19yb2xlOworR1JBTlQgQUxMIE9OIFNDSEVN QSBwdWJsaWMgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVhZGVyX3Jv bGUsIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX293bmVy X3JvbGU7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0xFVCBwbHBn c3FsX3N2X3ZhcjEgPSAxMDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBUTyByZWdy ZXNzX3Zhcl9yZWFkZXJfcm9sZTsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcl9yZWFk X2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUnLCBw bHBnc3FsX3N2X3ZhcjE7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsIFNFQ1VSSVRZIERFRklO RVI7CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19y b2xlOworLS0gc2hvdWxkIHRvIGZhaWwKK1NFTEVDVCB2YXJfcmVhZF9mdW5jKCk7CitFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHBscGdzcWxfc3ZfdmFyMQor Q09OVEVYVDogIFNRTCBleHByZXNzaW9uICJwbHBnc3FsX3N2X3ZhcjEiCitQTC9wZ1NRTCBmdW5j dGlvbiB2YXJfcmVhZF9mdW5jKCkgbGluZSAzIGF0IFJBSVNFCitTRVQgUk9MRSBUTyBERUZBVUxU OworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0dSQU5UIFNFTEVDVCBPTiBW QVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgVE8gcmVncmVzc192YXJfcmVhZGVyX3JvbGU7CitTRVQg Uk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOworLS0g c2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyX3JlYWRfZnVuYygpOworTk9USUNFOiAgMTAKKyB2YXJf cmVhZF9mdW5jIAorLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFVCBST0xFIFRPIERF RkFVTFQ7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjE7CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVn cmVzc192YXJfZXhlY19yb2xlOworLS0gc2hvdWxkIHRvIGZhaWwsIGJ1dCBub3QgY3Jhc2gKK1NF TEVDVCB2YXJfcmVhZF9mdW5jKCk7CitFUlJPUjogIGNvbHVtbiAicGxwZ3NxbF9zdl92YXIxIiBk b2VzIG5vdCBleGlzdAorTElORSAxOiBwbHBnc3FsX3N2X3ZhcjEKKyAgICAgICAgXgorUVVFUlk6 ICBwbHBnc3FsX3N2X3ZhcjEKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiB2YXJfcmVhZF9m dW5jKCkgbGluZSAzIGF0IFJBSVNFCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBGVU5DVElP TiB2YXJfcmVhZF9mdW5jOworUkVWT0tFIEFMTCBPTiBTQ0hFTUEgcHVibGljIEZST00gcmVncmVz c192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVhZGVyX3JvbGUsIHJlZ3Jlc3NfdmFyX2V4 ZWNfcm9sZTsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBST0xFIHJl Z3Jlc3NfdmFyX3JlYWRlcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsK Ky0tIHJldHVybnMgdXBkYXRlZCB2YWx1ZQorQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MSBBUyBpbnQ7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBpbmNfdmFyX2ludChpbnQpCitS RVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IENPQUxFU0NF KHBscGdzcWxfc3ZfdmFyMSArICQxLCAkMSk7CisgIFJFVFVSTiBwbHBnc3FsX3N2X3ZhcjE7CitF TkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIGluY192YXJfaW50KDEpOworIGluY192 YXJfaW50IAorLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAxCisoMSByb3cpCisKK1NFTEVDVCBp bmNfdmFyX2ludCgxKTsKKyBpbmNfdmFyX2ludCAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAg MgorKDEgcm93KQorCitTRUxFQ1QgaW5jX3Zhcl9pbnQoMSk7CisgaW5jX3Zhcl9pbnQgCistLS0t LS0tLS0tLS0tCisgICAgICAgICAgIDMKKygxIHJvdykKKworU0VMRUNUIGluY192YXJfaW50KDEp IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworIGluY192YXJfaW50IAorLS0tLS0tLS0tLS0t LQorICAgICAgICAgICA0CisgICAgICAgICAgIDUKKyAgICAgICAgICAgNgorICAgICAgICAgICA3 CisgICAgICAgICAgIDgKKyAgICAgICAgICAgOQorICAgICAgICAgIDEwCisgICAgICAgICAgMTEK KyAgICAgICAgICAxMgorICAgICAgICAgIDEzCisoMTAgcm93cykKKworQ1JFQVRFIFZBUklBQkxF IHBscGdzcWxfc3ZfdmFyMiBBUyBudW1lcmljOworTEVUIHBscGdzcWxfc3ZfdmFyMiA9IDAuMDsK K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGluY192YXJfbnVtKG51bWVyaWMpCitSRVRVUk5T IGludCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IENPQUxFU0NFKHBscGdz cWxfc3ZfdmFyMiArICQxLCAkMSk7CisgIFJFVFVSTiBwbHBnc3FsX3N2X3ZhcjI7CitFTkQ7Cisk JCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIGluY192YXJfbnVtKDEuMCk7CisgaW5jX3Zhcl9u dW0gCistLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEKKygxIHJvdykKKworU0VMRUNUIGluY192 YXJfbnVtKDEuMCk7CisgaW5jX3Zhcl9udW0gCistLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDIK KygxIHJvdykKKworU0VMRUNUIGluY192YXJfbnVtKDEuMCk7CisgaW5jX3Zhcl9udW0gCistLS0t LS0tLS0tLS0tCisgICAgICAgICAgIDMKKygxIHJvdykKKworU0VMRUNUIGluY192YXJfbnVtKDEu MCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisgaW5jX3Zhcl9udW0gCistLS0tLS0tLS0t LS0tCisgICAgICAgICAgIDQKKyAgICAgICAgICAgNQorICAgICAgICAgICA2CisgICAgICAgICAg IDcKKyAgICAgICAgICAgOAorICAgICAgICAgICA5CisgICAgICAgICAgMTAKKyAgICAgICAgICAx MQorICAgICAgICAgIDEyCisgICAgICAgICAgMTMKKygxMCByb3dzKQorCitEUk9QIFZBUklBQkxF IHBscGdzcWxfc3ZfdmFyMSwgcGxwZ3NxbF9zdl92YXIyOworRFJPUCBGVU5DVElPTiBpbmNfdmFy X2ludDsKK0RST1AgRlVOQ1RJT04gaW5jX3Zhcl9udW07CistLSBwbHBnc3FsIHZhcmlhYmxlcyBh cmUgcHJlZmVycmVkIGFnYWluc3Qgc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjEgQVMgaW50OworRE8gJCQKKzw8bXlibG9jaz4+CitERUNMQVJFIHBscGdz cWxfc3ZfdmFyMSBpbnQ7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTAwOworCisg IHBscGdzcWxfc3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHByaW50IDEwMDsKKyAgUkFJU0UgTk9U SUNFICdzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwdWJsaWMucGxwZ3NxbF9zdl92YXIxOworCisg IC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNFICdwbHBnc3FsIHZhcmlhYmxlIGlzICUnLCBt eWJsb2NrLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElD RSAndmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkOworTk9USUNFOiAg c2Vzc2lvbiB2YXJpYWJsZSBpcyAxMDAKK05PVElDRTogIHBscGdzcWwgdmFyaWFibGUgaXMgMTAw MAorTk9USUNFOiAgdmFyaWFibGUgaXMgMTAwMAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3Zh cjE7CistLSB0aGUgdmFsdWUgc2hvdWxkIG5vdCBiZSBjb3JydXB0ZWQKK0NSRUFURSBWQVJJQUJM RSBwbHBnc3FsX3N2X3YgdGV4dDsKK0xFVCBwbHBnc3FsX3N2X3YgPSAnYWJjJzsKK0NSRUFURSBG VU5DVElPTiBmZnVuYygpCitSRVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIFJFVFVSTiBnZnVu YyhwbHBnc3FsX3N2X3YpOworRU5ECiskJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIEZVTkNU SU9OIGdmdW5jKHQgdGV4dCkKK1JFVFVSTlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdz cWxfc3ZfdiA9ICdCT09NISc7CisgIFJFVFVSTiB0OworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3Nx bDsKK3NlbGVjdCBmZnVuYygpOworIGZmdW5jIAorLS0tLS0tLQorIGFiYworKDEgcm93KQorCitE Uk9QIEZVTkNUSU9OIGZmdW5jKCk7CitEUk9QIEZVTkNUSU9OIGdmdW5jKHRleHQpOworRFJPUCBW QVJJQUJMRSBwbHBnc3FsX3N2X3Y7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVz b24uYnVpbGQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQKaW5kZXggM2RkNzM0Yjc3 NmIuLjM5MDVjMGI2ZDQ1IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVp bGQKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxkCkBAIC04OCw2ICs4OCw3IEBA IHRlc3RzICs9IHsKICAgICAgICdwbHBnc3FsX3RyYXAnLAogICAgICAgJ3BscGdzcWxfdHJpZ2dl cicsCiAgICAgICAncGxwZ3NxbF92YXJwcm9wcycsCisgICAgICAncGxwZ3NxbF9zZXNzaW9uX3Zh cmlhYmxlJywKICAgICBdLAogICB9LAogfQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3Jj L3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsIGIvc3JjL3BsL3BscGdzcWwvc3JjL3Nx bC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi4zOThlN2ZlMmE3YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wbC9wbHBn c3FsL3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbApAQCAtMCwwICsxLDI4OSBA QAorLS0gdGVzdCBvZiBzZXNzaW9uIHZhcmlhYmxlcworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxf c3ZfdmFyIEFTIG51bWVyaWM7CisKK0xFVCBwbHBnc3FsX3N2X3ZhciA9IHBpKCk7CisKKy0tIHBh c3NpbmcgcGFyYW1ldGVycyB0byBETyBibG9jaworRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElD RSAndmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXI7CitFTkQ7 CiskJDsKKworLS0gcGFzc2luZyBvdXRwdXQgZnJvbSBETyBibG9jazsKK0RPICQkCitCRUdJTgor ICBMRVQgcGxwZ3NxbF9zdl92YXIgPSAyICogcGkoKTsKK0VORAorJCQ7CisKK1NFTEVDVCBwbHBn c3FsX3N2X3ZhciBBUyAicGlfbXVsdGlwbHlfMiI7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9z dl92YXI7CisKKy0tIHRlc3QgYWNjZXNzIGZyb20gUEwvcGdTUUwKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBB UyBudW1lcmljOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMyBBUyB2YXJjaGFyOwor CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB3cml0ZXJfZnVuYygpCitSRVRVUk5TIHZvaWQg QVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsKKyAgTEVUIHBscGdzcWxf c3ZfdmFyMiA9IHBpKCk7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9zdl92 YXIzID0gZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcqJywgMTAwMDApKTsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYygp CitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBwbHBn c3FsX3N2X3ZhcjEgKyAxMDA7CisgIExFVCBwbHBnc3FsX3N2X3ZhcjIgPSBwbHBnc3FsX3N2X3Zh cjIgKyAxMDAwMDAwMDAwMDA7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9z dl92YXIzID0gcGxwZ3NxbF9zdl92YXIzIHx8IGZvcm1hdCgnKCVzKScsIHJlcGVhdCgnKicsIDEw MDAwKSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCisKK0NSRUFURSBPUiBSRVBMQUNF IEZVTkNUSU9OIHJlYWRlcl9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJ U0UgTk9USUNFICd2YXIxID0gJScsIHBscGdzcWxfc3ZfdmFyMTsKKyAgUkFJU0UgTk9USUNFICd2 YXIyID0gJScsIHBscGdzcWxfc3ZfdmFyMjsKKyAgUkFJU0UgTk9USUNFICdsZW5ndGggb2YgdmFy MyA9ICUnLCBsZW5ndGgocGxwZ3NxbF9zdl92YXIzKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdz cWw7CisKKy0tIGV4ZWN1dGUgdW5kZXIgdHJhbnNhY3Rpb24KK0JFR0lOOworU0VMRUNUIHdyaXRl cl9mdW5jKCk7CitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsKK1NFTEVDVCB1cGRhdGVyX2Z1bmMoKTsK K1NFTEVDVCByZWFkZXJfZnVuYygpOworRU5EOworCistLSBleGVjdXRlIG91dCBvZiB0cmFuc2Fj dGlvbgorU0VMRUNUIHdyaXRlcl9mdW5jKCk7CitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsKK1NFTEVD VCB1cGRhdGVyX2Z1bmMoKTsKK1NFTEVDVCByZWFkZXJfZnVuYygpOworCistLSBleGVjdXRlIGlu c2lkZSBQTC9wZ1NRTCBibG9jaworRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0gd3JpdGVyX2Z1bmMo KTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0ZXJfZnVuYygpOwor ICBQRVJGT1JNIHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKKworLS0gcGxhbiBjYWNoZXMgc2hv dWxkIGJlIGNvcnJlY3RseSBpbnZhbGlkYXRlZAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3Zh cjEsIHBscGdzcWxfc3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworCitDUkVBVEUgVkFSSUFCTEUg cGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjIg QVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjMgQVMgdmFyY2hhcjsK KworLS0gc2hvdWxkIHRvIHdvcmsgYWdhaW4KK0RPICQkCitCRUdJTgorICBQRVJGT1JNIHdyaXRl cl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsKKyAgUEVSRk9STSB1cGRhdGVyX2Z1 bmMoKTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworRU5EOworJCQ7CisKK0RST1AgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFyMzsKKwor RFJPUCBGVU5DVElPTiB3cml0ZXJfZnVuYzsKK0RST1AgRlVOQ1RJT04gcmVhZGVyX2Z1bmM7CitE Uk9QIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYzsKKworLS0gYW5vdGhlciBjaGVjayBvZiBjb3JyZWN0 IHBsYW4gY2FjaGUgaW52YWxpZGF0aW9uCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIx IEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjIgQVMgaW50W107CisKK0NS RUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHRlc3RfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQK K0RFQ0xBUkUgdiBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92 YXIxID0gMTsKKyAgdltwbHBnc3FsX3N2X3ZhcjFdID0gMTAwOworICBSQUlTRSBOT1RJQ0UgJyUn LCB2OworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMltw bHBnc3FsX3N2X3ZhcjFdID0gLTE7CisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdzcWxfc3ZfdmFy MjsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCB0ZXN0X2Z1bmMoKTsKKwor RFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMjsKKworQ1JFQVRF IFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIyIEFTIGludFtdOworCitTRUxFQ1QgdGVzdF9mdW5jKCk7CisKK0RST1AgRlVOQ1RJ T04gdGVzdF9mdW5jKCk7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3Fs X3N2X3ZhcjI7CisKKy0tIGNoZWNrIHNlY3VyZSBhY2Nlc3MKK0NSRUFURSBST0xFIHJlZ3Jlc3Nf dmFyX293bmVyX3JvbGU7CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKK0NS RUFURSBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworR1JBTlQgQUxMIE9OIFNDSEVNQSBw dWJsaWMgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVhZGVyX3JvbGUs IHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3duZXJf cm9sZTsKKworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitMRVQgcGxw Z3NxbF9zdl92YXIxID0gMTA7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFVCBST0xFIFRP IHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2 YXJfcmVhZF9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNF ICclJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbCBTRUNVUklU WSBERUZJTkVSOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNz X3Zhcl9leGVjX3JvbGU7CisKKy0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgdmFyX3JlYWRfZnVu YygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9v d25lcl9yb2xlOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBUTyBy ZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VUIFJP TEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2 YXJfcmVhZF9mdW5jKCk7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFVCBST0xFIFRPIHJl Z3Jlc3NfdmFyX293bmVyX3JvbGU7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOwor CitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9leGVjX3Jv bGU7CisKKy0tIHNob3VsZCB0byBmYWlsLCBidXQgbm90IGNyYXNoCitTRUxFQ1QgdmFyX3JlYWRf ZnVuYygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitEUk9QIEZVTkNUSU9OIHZhcl9yZWFk X2Z1bmM7CisKK1JFVk9LRSBBTEwgT04gU0NIRU1BIHB1YmxpYyBGUk9NIHJlZ3Jlc3NfdmFyX293 bmVyX3JvbGUsIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlLCByZWdyZXNzX3Zhcl9leGVjX3JvbGU7 CisKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3Nf dmFyX3JlYWRlcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworLS0g cmV0dXJucyB1cGRhdGVkIHZhbHVlCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFT IGludDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9pbnQoaW50KQorUkVU VVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBDT0FMRVNDRShw bHBnc3FsX3N2X3ZhcjEgKyAkMSwgJDEpOworICBSRVRVUk4gcGxwZ3NxbF9zdl92YXIxOworRU5E OworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VMRUNUIGluY192YXJfaW50KDEpOworU0VMRUNU IGluY192YXJfaW50KDEpOworU0VMRUNUIGluY192YXJfaW50KDEpOworCitTRUxFQ1QgaW5jX3Zh cl9pbnQoMSkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjIgQVMgbnVtZXJpYzsKKworTEVUIHBscGdzcWxfc3ZfdmFyMiA9IDAuMDsK KworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9udW0obnVtZXJpYykKK1JFVFVS TlMgaW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gQ09BTEVTQ0UocGxw Z3NxbF9zdl92YXIyICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFyMjsKK0VORDsK KyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCBpbmNfdmFyX251bSgxLjApOworU0VMRUNU IGluY192YXJfbnVtKDEuMCk7CitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKKworU0VMRUNUIGlu Y192YXJfbnVtKDEuMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisKK0RST1AgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CisKK0RST1AgRlVOQ1RJT04gaW5j X3Zhcl9pbnQ7CitEUk9QIEZVTkNUSU9OIGluY192YXJfbnVtOworCistLSBwbHBnc3FsIHZhcmlh YmxlcyBhcmUgcHJlZmVycmVkIGFnYWluc3Qgc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBWQVJJ QUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworCitETyAkJAorPDxteWJsb2NrPj4KK0RFQ0xB UkUgcGxwZ3NxbF9zdl92YXIxIGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAx MDA7CisKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gcHJpbnQgMTAwOworICBS QUlTRSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2X3Zh cjE7CisKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFibGUg aXMgJScsIG15YmxvY2sucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHByaW50IDEwMDAKKyAgUkFJ U0UgTk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7CisK K0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOworCistLSB0aGUgdmFsdWUgc2hvdWxkIG5v dCBiZSBjb3JydXB0ZWQKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3YgdGV4dDsKK0xFVCBw bHBnc3FsX3N2X3YgPSAnYWJjJzsKKworQ1JFQVRFIEZVTkNUSU9OIGZmdW5jKCkKK1JFVFVSTlMg dGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIGdmdW5jKHBscGdzcWxfc3Zfdik7CitFTkQKKyQk IExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBGVU5DVElPTiBnZnVuYyh0IHRleHQpCitSRVRV Uk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3YgPSAnQk9PTSEnOworICBS RVRVUk4gdDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK3NlbGVjdCBmZnVuYygpOwor CitEUk9QIEZVTkNUSU9OIGZmdW5jKCk7CitEUk9QIEZVTkNUSU9OIGdmdW5jKHRleHQpOworCitE Uk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdjsKLS0gCjIuNDUuMgoK --000000000000bfc92e061dffd1c5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240724-0009-PREPARE-LET-support.patch" Content-Disposition: attachment; filename="v20240724-0009-PREPARE-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyzzqe258 RnJvbSAyMjk3MmFiYWMwMzYzZjU5NGU2MzIxOGEzNDUwODlhZGUzOWY1OTFjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMDk6NDQ6NTggKzAxMDAKU3ViamVjdDogW1BBVENIIDA5 LzIwXSBQUkVQQVJFIExFVCBzdXBwb3J0CgpJbiBjdXJyZW50IGNvZGUgYmFzZSBpdCByZXF1aXJl cyBqdXN0IHNtYWxsIGNoYW5nZXMgaW4gcGFyc2VyLiBJdCBpcyBuaWNlCnRvIGhhdmUgdG8gaGF2 ZSBwb3NzaWJpbGl0eSB0byB1c2UgcHJlcGFyZWQgTEVUIHN0YXRlbWVudHMgbWFpbmx5IGR1ZSBy ZWR1Y3Rpb24Kb2Ygc2VjdXJpdHkgcmlza3MgKFNRTCBpbmplY3Rpb24pLCBhbmQgaW1wbGVtZW50 YXRpb24gaXMgYWxtb3N0IGNoZWFwLgoKRXhwbGljaXQgcHJlcGFyaW5nIGlzIG5vdCBuZWNlc3Np dHkgZm9yIHN1cHBvcnQgb2YgTEVUIHN0YXRlbWVudHMgaW4gUEwsIGJlY2F1c2UKUEwgdXNlcyBT UEkgZm9yIHF1ZXJ5IGV4ZWN1dGlvbiwgYnV0IGl0IGlzIG5pY2UgdG8gaGF2ZSB0aGlzIHBvc3Np YmlsaXR5IChjb21wbGV0ZW5lZXMsIC4uLikKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUu c2dtbCAgICAgICAgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAg ICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jdGUu YyAgICAgICAgICAgICAgICB8ICA3ICsrCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAg ICAgICAgICAgICAgICAgfCAgNCArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXMub3V0ICAgIHwgODEgKysrKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgNTcgKysrKysrKysrKysrKwogNiBmaWxlcyBj aGFuZ2VkLCAxNDkgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcHJlcGFyZS5z Z21sCmluZGV4IDhlZTk0MzlmNjExLi40NWQ3MmIxZDUyYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9wcmVwYXJlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wcmVwYXJlLnNnbWwK QEAgLTExNiw4ICsxMTYsOCBAQCBQUkVQQVJFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcwogICAgIDxsaXN0aXRl bT4KICAgICAgPHBhcmE+CiAgICAgICBBbnkgPGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPiwgPGNv bW1hbmQ+SU5TRVJUPC9jb21tYW5kPiwgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwKLSAgICAg IDxjb21tYW5kPkRFTEVURTwvY29tbWFuZD4sIDxjb21tYW5kPk1FUkdFPC9jb21tYW5kPiwgb3Ig PGNvbW1hbmQ+VkFMVUVTPC9jb21tYW5kPgotICAgICAgc3RhdGVtZW50LgorICAgICAgPGNvbW1h bmQ+REVMRVRFPC9jb21tYW5kPiwgPGNvbW1hbmQ+TUVSR0U8L2NvbW1hbmQ+LCA8Y29tbWFuZD5W QUxVRVM8L2NvbW1hbmQ+LAorICAgICAgb3IgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBzdGF0ZW1l bnQuCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueQppbmRleCBmY2FjZWYyNzZjZi4uYzE3YTcxZjY2NTYgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAt MTIxNjMsNyArMTIxNjMsOCBAQCBQcmVwYXJhYmxlU3RtdDoKIAkJCXwgSW5zZXJ0U3RtdAogCQkJ fCBVcGRhdGVTdG10CiAJCQl8IERlbGV0ZVN0bXQKLQkJCXwgTWVyZ2VTdG10CQkJCQkJLyogYnkg ZGVmYXVsdCBhbGwgYXJlICQkPSQxICovCisJCQl8IE1lcmdlU3RtdAorCQkJfCBMZXRTdG10CQkJ CQkJLyogYnkgZGVmYXVsdCBhbGwgYXJlICQkPSQxICovCiAJCTsKIAogLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKaW5kZXggZGU5YWU5YjQ4MzQuLmI0YjliNWI2MWM4 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2N0ZS5jCkBAIC0xMjYsNiArMTI2LDEzIEBAIHRyYW5zZm9ybVdp dGhDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaXRoQ2xhdXNlICp3aXRoQ2xhdXNlKQogCQlD b21tb25UYWJsZUV4cHIgKmN0ZSA9IChDb21tb25UYWJsZUV4cHIgKikgbGZpcnN0KGxjKTsKIAkJ TGlzdENlbGwgICAqcmVzdDsKIAorCQkvKiBMRVQgaXMgYWxsb3dlZCBieSBwYXJzZXIsIGJ1dCBu b3Qgc3VwcG9ydGVkLiBSZWplY3QgZm9yIG5vdyAqLworCQlpZiAoSXNBKGN0ZS0+Y3RlcXVlcnks IExldFN0bXQpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCWVycm1zZygiTEVUIG5vdCBzdXBwb3J0ZWQgaW4gV0lU SCBxdWVyeSIpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjdGUtPmxvY2F0aW9u KSk7CisKIAkJZm9yX2VhY2hfY2VsbChyZXN0LCB3aXRoQ2xhdXNlLT5jdGVzLCBsbmV4dCh3aXRo Q2xhdXNlLT5jdGVzLCBsYykpCiAJCXsKIAkJCUNvbW1vblRhYmxlRXhwciAqY3RlMiA9IChDb21t b25UYWJsZUV4cHIgKikgbGZpcnN0KHJlc3QpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCmluZGV4IGY0YTNhZjI2 YWIyLi5lNDU1ODkwMjE3ZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5j CisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpAQCAtNDI4OCw5ICs0Mjg4LDkgQEAg cHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAll bHNlIGlmIChUYWlsTWF0Y2hlcygiVkFMVUVTIikgJiYgIVRhaWxNYXRjaGVzKCJERUZBVUxUIiwg IlZBTFVFUyIpKQogCQlDT01QTEVURV9XSVRIKCIoIik7CiAKLS8qIExFVCAqLworLyogTEVULCBF WFBMQUlOIExFVCwgUFJFUEFSRSBMRVQgKi8KIAkvKiBJZiBwcmV2LiB3b3JkIGlzIExFVCBzdWdn ZXN0IGEgbGlzdCBvZiB2YXJpYWJsZXMgKi8KLQllbHNlIGlmIChNYXRjaGVzKCJMRVQiKSkKKwll bHNlIGlmIChUYWlsTWF0Y2hlcygiTEVUIikpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZ KFF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyk7CiAJLyogQ29tcGxldGUgTEVUIDx2YXJpYWJs ZT4gd2l0aCAiPSIgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiTEVUIiwgTWF0Y2hBbnkpKQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRl eCAxMWVhZWE2NjlkYi4uMzU4NTAyZmEzMWMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC00MjgsOSArNDI4LDkgQEAgRFJPUCBWQVJJ QUJMRSB2YXIxLCB2YXIyOwogLS0gdGhlIExFVCBzdGF0ZW1lbnQgc2hvdWxkIGJlIGRpc2FsbG93 ZWQgaW4gQ1RFCiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CiBXSVRIIHggQVMgKExFVCB2 YXIxID0gMTAwKSBTRUxFQ1QgKiBGUk9NIHg7Ci1FUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBu ZWFyICJMRVQiCitFUlJPUjogIExFVCBub3Qgc3VwcG9ydGVkIGluIFdJVEggcXVlcnkKIExJTkUg MTogV0lUSCB4IEFTIChMRVQgdmFyMSA9IDEwMCkgU0VMRUNUICogRlJPTSB4OwotICAgICAgICAg ICAgICAgICAgIF4KKyAgICAgICAgICAgICBeCiAtLSBzaG91bGQgYmUgb2sKIExFVCB2YXIxID0g Z2VuZXJhdGVfc2VyaWVzKDEsIDEpOwogLS0gc2hvdWxkIGZhaWwKQEAgLTEzMDgsNSArMTMwOCw4 MiBAQCBTRUxFQ1QgdmFyMTsKICAgIDEwCiAoMSByb3cpCiAKK1NFVCBwbGFuX2NhY2hlX21vZGUg VE8gZm9yY2VfZ2VuZXJpY19wbGFuOworUFJFUEFSRSBwMSBBUyBMRVQgdmFyMSA9IChTRUxFQ1Qg Y291bnQoKikgRlJPTSB2YXJfdGFiX3Rlc3RfdGFibGUpOworTEVUIHZhcjEgPSBOVUxMOworRVhQ TEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHAxOworICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIFNFVCBTRVNTSU9OIFZBUklBQkxFCisgUmVzdWx0CisgICBJbml0UGxhbiAx CisgICAgIC0+ICBBZ2dyZWdhdGUKKyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHZhcl90YWJf dGVzdF90YWJsZQorKDUgcm93cykKKworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxOwor IHZhcjEgCistLS0tLS0KKyAgICAgCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElN SU5HIE9GRiwgQU5BTFlaRSwgU1VNTUFSWSBPRkYpIEVYRUNVVEUgcDE7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJQUJMRQorIFJlc3VsdCAoYWN0dWFs IHJvd3M9MSBsb29wcz0xKQorICAgSW5pdFBsYW4gMQorICAgICAtPiAgQWdncmVnYXRlIChhY3R1 YWwgcm93cz0xIGxvb3BzPTEpCisgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB2YXJfdGFiX3Rl c3RfdGFibGUgKGFjdHVhbCByb3dzPTEwIGxvb3BzPTEpCisoNSByb3dzKQorCistLSBzaG91bGQg YmUgMTAKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK1NF VCBwbGFuX2NhY2hlX21vZGUgVE8gREVGQVVMVDsKK0RFQUxMT0NBVEUgcDE7CiBEUk9QIFZBUklB QkxFIHZhcjE7CiBEUk9QIFRBQkxFIHZhcl90YWJfdGVzdF90YWJsZTsKK0NSRUFURSBWQVJJQUJM RSB2YXIxIG51bWVyaWM7CitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxh bjsKK1BSRVBBUkUgcDEobnVtZXJpYykgQVMgTEVUIHZhcjEgPSAkMTsKK1BSRVBBUkUgcDIgQVMg U0VMRUNUIHZhcjE7CitFWEVDVVRFIHAxKHBpKCkgKyAxMDApOworRVhFQ1VURSBwMjsKKyAgICAg IHZhcjEgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLQorIDEwMy4xNDE1OTI2NTM1OQorKDEgcm93 KQorCistLSBwcmVwYXJlZCBwbGFuIGNhY2hlIGludmFsaWRhdGlvbiB0ZXN0CitEUk9QIFZBUklB QkxFIHZhcjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1lcmljOworLS0gc2hvdWxkIGJlIE5V TEwKK0VYRUNVVEUgcDI7CisgdmFyMSAKKy0tLS0tLQorICAgICAKKygxIHJvdykKKworREVBTExP Q0FURSBwMTsKK0RFQUxMT0NBVEUgcDI7CitEUk9QIFZBUklBQkxFIHZhcjE7CitTRVQgcGxhbl9j YWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51 bWVyaWNbXTsKK1BSRVBBUkUgcDEoaW50LCBudW1lcmljKSBBUyBMRVQgdmFyMVskMV0gPSAkMjsK K0xFVCB2YXIxID0gJ3t9Jzo6bnVtZXJpY1tdOworRVhFQ1VURSBwMSgxLCAxMC4yKTsKK0VYRUNV VEUgcDEoMiwgMTAuMyk7CitTRUxFQ1QgdmFyMTsKKyAgICB2YXIxICAgICAKKy0tLS0tLS0tLS0t LS0KKyB7MTAuMiwxMC4zfQorKDEgcm93KQorCitERUFMTE9DQVRFIHAxOworRFJPUCBWQVJJQUJM RSB2YXIxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4 IGZhMGE1N2ZjNzdlLi4zNDM2YjU3ZThjNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Np b25fdmFyaWFibGVzLnNxbApAQCAtODgwLDUgKzg4MCw2MiBAQCBFWFBMQUlOIChDT1NUUyBPRkYs IFRJTUlORyBPRkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGKSBMRVQgdmFyMSA9IChTRUxFQ1QgY291 bnQoKgogLS0gc2hvdWxkIGJlIDEwCiBTRUxFQ1QgdmFyMTsKIAorU0VUIHBsYW5fY2FjaGVfbW9k ZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47CisKK1BSRVBBUkUgcDEgQVMgTEVUIHZhcjEgPSAoU0VM RUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKworTEVUIHZhcjEgPSBOVUxM OworCitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcDE7CisKKy0tIHNob3VsZCBiZSBOVUxM CitTRUxFQ1QgdmFyMTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBBTkFMWVpF LCBTVU1NQVJZIE9GRikgRVhFQ1VURSBwMTsKKworLS0gc2hvdWxkIGJlIDEwCitTRUxFQ1QgdmFy MTsKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBERUZBVUxUOworCitERUFMTE9DQVRFIHAxOwor CiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9QIFRBQkxFIHZhcl90YWJfdGVzdF90YWJsZTsKKwor Q1JFQVRFIFZBUklBQkxFIHZhcjEgbnVtZXJpYzsKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBm b3JjZV9nZW5lcmljX3BsYW47CisKK1BSRVBBUkUgcDEobnVtZXJpYykgQVMgTEVUIHZhcjEgPSAk MTsKK1BSRVBBUkUgcDIgQVMgU0VMRUNUIHZhcjE7CisKK0VYRUNVVEUgcDEocGkoKSArIDEwMCk7 CitFWEVDVVRFIHAyOworCistLSBwcmVwYXJlZCBwbGFuIGNhY2hlIGludmFsaWRhdGlvbiB0ZXN0 CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1lcmljOworCist LSBzaG91bGQgYmUgTlVMTAorRVhFQ1VURSBwMjsKKworREVBTExPQ0FURSBwMTsKK0RFQUxMT0NB VEUgcDI7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBm b3JjZV9nZW5lcmljX3BsYW47CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51bWVyaWNbXTsKKwor UFJFUEFSRSBwMShpbnQsIG51bWVyaWMpIEFTIExFVCB2YXIxWyQxXSA9ICQyOworCitMRVQgdmFy MSA9ICd7fSc6Om51bWVyaWNbXTsKK0VYRUNVVEUgcDEoMSwgMTAuMik7CitFWEVDVVRFIHAxKDIs IDEwLjMpOworCitTRUxFQ1QgdmFyMTsKKworREVBTExPQ0FURSBwMTsKK0RST1AgVkFSSUFCTEUg dmFyMTsKLS0gCjIuNDUuMgoK --000000000000bfc92e061dffd1c5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240724-0010-implementation-of-temporary-session-variables.patch" Content-Disposition: attachment; filename="v20240724-0010-implementation-of-temporary-session-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyzzqe2a9 RnJvbSA3MWFhZTBkNWRiM2ZhMTNiNjExYjAzMmU0ZDE0ZmQwOTM0ZjgyYTIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjE6MzY6NTQgKzAxMDAKU3ViamVjdDogW1BBVENIIDEw LzIwXSBpbXBsZW1lbnRhdGlvbiBvZiB0ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMKClRoZSB0 ZW1wb3JhcnkgdmFyaWFibGVzIGFyZSBjcmVhdGVkIGluc2lkZSB0ZW1wIHNjaGVtYSBhbmQgdGhl eSBhcmUgZHJvcHBlZCBieSBkcm9wcGluZwp0aGlzIHNjaGVtYS4gRm9yIGNvbnNpc3RlbmN5IHdp dGggdGVtcCB0YWJsZXMsIHRoZSBDUkVBVEUgVEVNUCBWQVJJQUJMRSBjb21tYW5kIHN1cHBvcnRz Ck9OIENPTU1JVCBEUk9QIGNsYXVzZS4gVGhlIHRlbXBvcmFyeSB2YXJpYWJsZXMgd2l0aCB0aGlz IGNsYXVzZSBhcmUgY29sbGVjdGVkIGluIHhhY3RfZHJvcF9pdGVtcwpsaXN0LiBUaGlzIGxpc3Qg c2hvdWxkIGJlIGNhcmVmdWxseSBtYWludGFpbmVkIGFuZCBjYW4gY29udGFpbiBvbmx5IHZhbGlk IGVudHJpZXMgKG5vdAp5ZXQgZHJvcHBlZCkuIEZyb20gdGhpcyByZWFzb25zIG5vdyB0aGUgc3Vi Y29tbWl0IGFuZCBzdWJhYm9ydGluZyBoYXZlIHRvIGJlIGhhbmRsZWQuCi0tLQogZG9jL3NyYy9z Z21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDEwICsKIGRvYy9zcmMvc2dt bC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQogZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgIDE1ICstCiBzcmMvYmFja2VuZC9h Y2Nlc3MvdHJhbnNhbS94YWN0LmMgICAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2Nh dGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8ICAyNCArKy0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDE5MCArKysrKysrKysrKysrKysrKy0K IHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYyAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog c3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBz cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgMzAgKystCiBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYyAgICAgICAgICAgfCAgMjIgKy0KIHNy Yy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLQogc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jICAgICAgICAgICAgICAgICAgIHwgICAzICstCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgIDkgKwogc3JjL2lu Y2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgICAgIHwgICA3ICstCiBzcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1 ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvaW5jbHVk ZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaCAgICAgICAgICAgfCAgIDIgKy0KIC4uLi9pc29sYXRp b24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgICB8ICAgMyArLQogLi4uL2lzb2xhdGlv bi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgICAgIHwgICAzICstCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAgMzYgKystLQogLi4uL3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMTMwICsrKysrKysrKysrLQogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgIDY2ICsrKysrKwog c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICAxICsKIDIz IGZpbGVzIGNoYW5nZWQsIDUyMCBpbnNlcnRpb25zKCspLCA2NCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCmluZGV4IDVkNDk1NTU0NDI5Li44MWI2MjlhOWY0MSAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAg LTk4MzIsNiArOTgzMiwxNiBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0 aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgPC9wYXJh PjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD52YXJ4YWN0ZW5kYWN0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hh cjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEFjdGlvbiBwZXJm b3JtZWQgYXQgZW5kIG9mIHRyYW5zYWN0aW9uOgorICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ ID0gbm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRlcmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJjb2xsYXRpb248L3N0cnVjdGZpZWxkPiA8 dHlwZT5vaWQ8L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggOWQ1MDgyZGQzY2UuLmViNDk5ZTQxMThmIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBA IC01MzQ1LDggKzUzNDUsOSBAQCBTRUxFQ1QgY3VycmVudF91c2VyX2lkOwogICAgIGJlZW4gc2V0 IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNlc3Npb24gdXNpbmcgdGhlCiAgICAg PGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLiBUaGUgY29udGVudCBvZiBhIHZhcmlhYmxl IGlzIG5vdAogICAgIHRyYW5zYWN0aW9uYWwuIFRoaXMgaXMgdGhlIHNhbWUgYXMgcmVndWxhciB2 YXJpYWJsZXMgaW4gUEwgbGFuZ3VhZ2VzLgotICAgIFRoZSBzZXNzaW9uIHZhcmlhYmxlcyBhcmUg cGVyc2lzdGVudCwgYnV0IHRoZSBjb250ZW50IG9mIHNlc3Npb24gdmFyaWFibGVzIGlzCi0gICAg dGVtcG9yYXJ5IGFuZCBub3Qgc2hhcmVkIChsaWtlIHRoZSBjb250ZW50IG9mIHRlbXBvcmFyeSB0 YWJsZXMpLgorICAgIFRoZSBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgcGVyc2lzdGVudCBvciBj YW4gYmUgdGVtcG9yYXJ5LiBJbiBib3RoIGNhc2VzLAorICAgIHRoZSBjb250ZW50IG9mIHNlc3Np b24gdmFyaWFibGVzIGlzIHRlbXBvcmFyeSBhbmQgbm90IHNoYXJlZCAobGlrZSB0aGUKKyAgICBj b250ZW50IG9mIHRlbXBvcmFyeSB0YWJsZXMpLgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4IGM5NWJkMzI3NDJmLi40ZDM3NjEx YTFmZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBAIC0yNiw3ICsyNiw4 IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9w c2lzPgotQ1JFQVRFIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQorQ1JFQVRF IFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENP TExBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFi bGU+IF0KKyAgICBbIE9OIENPTU1JVCBEUk9QIF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNp c2Rpdj4KICA8cmVmc2VjdDE+CkBAIC0xMDgsNiArMTA5LDE4IEBAIENSRUFURSBWQVJJQUJMRSBb IElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVw bGFjZWFiCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlz dGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtb24tY29tbWl0LWRyb3AiPgorICAgIDx0ZXJt PjxsaXRlcmFsPk9OIENPTU1JVCBEUk9QPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgVGhlIDxsaXRlcmFsPk9OIENPTU1JVCBEUk9QPC9saXRlcmFs PiBjbGF1c2Ugc3BlY2lmaWVzIHRoZSBiZWhhdmlvdXIgb2YgYQorICAgICAgdGVtcG9yYXJ5IHNl c3Npb24gdmFyaWFibGUgYXQgdHJhbnNhY3Rpb24gY29tbWl0LiBXaXRoIHRoaXMgY2xhdXNlLCB0 aGUKKyAgICAgIHNlc3Npb24gdmFyaWFibGUgaXMgZHJvcHBlZCBhdCBjb21taXQgdGltZS4gVGhl IGNsYXVzZSBpcyBvbmx5IGFsbG93ZWQKKyAgICAgIGZvciB0ZW1wb3JhcnkgdmFyaWFibGVzLgor ICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgIDwv dmFyaWFibGVsaXN0PgogIDwvcmVmc2VjdDE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL3hhY3QuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3QuYwpp bmRleCAyZDNlZDg2MDdhYi4uZDg3N2UxOGY5NmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL3hhY3QuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0 LmMKQEAgLTIzMDcsNyArMjMwNyw3IEBAIENvbW1pdFRyYW5zYWN0aW9uKHZvaWQpCiAJc21nckRv UGVuZGluZ1N5bmNzKHRydWUsIGlzX3BhcmFsbGVsX3dvcmtlcik7CiAKIAkvKiBSZW1vdmUgdmFs dWVzIG9mIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgZnJvbSBtZW1vcnkgKi8KLQlBdFByZUVP WGFjdF9TZXNzaW9uVmFyaWFibGVzKCk7CisJQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyh0 cnVlKTsKIAogCS8qIGNsb3NlIGxhcmdlIG9iamVjdHMgYmVmb3JlIGxvd2VyLWxldmVsIGNsZWFu dXAgKi8KIAlBdEVPWGFjdF9MYXJnZU9iamVjdCh0cnVlKTsKQEAgLTI4OTksNiArMjg5OSw3IEBA IEFib3J0VHJhbnNhY3Rpb24odm9pZCkKIAlBdEFib3J0X1BvcnRhbHMoKTsKIAlzbWdyRG9QZW5k aW5nU3luY3MoZmFsc2UsIGlzX3BhcmFsbGVsX3dvcmtlcik7CiAJQXRFT1hhY3RfTGFyZ2VPYmpl Y3QoZmFsc2UpOworCUF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoZmFsc2UpOwogCUF0QWJv cnRfTm90aWZ5KCk7CiAJQXRFT1hhY3RfUmVsYXRpb25NYXAoZmFsc2UsIGlzX3BhcmFsbGVsX3dv cmtlcik7CiAJQXRBYm9ydF9Ud29waGFzZSgpOwpAQCAtNTE3NSw2ICs1MTc2LDggQEAgQ29tbWl0 U3ViVHJhbnNhY3Rpb24odm9pZCkKIAlBdEVPU3ViWGFjdF9TUEkodHJ1ZSwgcy0+c3ViVHJhbnNh Y3Rpb25JZCk7CiAJQXRFT1N1YlhhY3Rfb25fY29tbWl0X2FjdGlvbnModHJ1ZSwgcy0+c3ViVHJh bnNhY3Rpb25JZCwKIAkJCQkJCQkJICBzLT5wYXJlbnQtPnN1YlRyYW5zYWN0aW9uSWQpOworCUF0 RU9TdWJYYWN0X1Nlc3Npb25WYXJpYWJsZXModHJ1ZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCwKKwkJ CQkJCQkJIHMtPnBhcmVudC0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJQXRFT1N1YlhhY3RfTmFtZXNw YWNlKHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCiAJCQkJCQkgIHMtPnBhcmVudC0+c3ViVHJh bnNhY3Rpb25JZCk7CiAJQXRFT1N1YlhhY3RfRmlsZXModHJ1ZSwgcy0+c3ViVHJhbnNhY3Rpb25J ZCwKQEAgLTUzMzksNiArNTM0Miw4IEBAIEFib3J0U3ViVHJhbnNhY3Rpb24odm9pZCkKIAkJQXRF T1N1YlhhY3RfU1BJKGZhbHNlLCBzLT5zdWJUcmFuc2FjdGlvbklkKTsKIAkJQXRFT1N1YlhhY3Rf b25fY29tbWl0X2FjdGlvbnMoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCiAJCQkJCQkJCQkg IHMtPnBhcmVudC0+c3ViVHJhbnNhY3Rpb25JZCk7CisJCUF0RU9TdWJYYWN0X1Nlc3Npb25WYXJp YWJsZXMoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCisJCQkJCQkJCQkgcy0+cGFyZW50LT5z dWJUcmFuc2FjdGlvbklkKTsKIAkJQXRFT1N1YlhhY3RfTmFtZXNwYWNlKGZhbHNlLCBzLT5zdWJU cmFuc2FjdGlvbklkLAogCQkJCQkJCSAgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlvbklkKTsKIAkJ QXRFT1N1YlhhY3RfRmlsZXMoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9n L3BnX3ZhcmlhYmxlLmMKaW5kZXggMGIyMTIwNGJjNDcuLjcwYjYyMmFhNjcyIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ192YXJpYWJsZS5jCkBAIC0zNiw3ICszNiw4IEBAIHN0YXRpYyBPYmplY3RBZGRyZXNz IGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCQkJCQkJCQkJIGludDMyIHZh clR5cG1vZCwKIAkJCQkJCQkJCSBPaWQgdmFyT3duZXIsCiAJCQkJCQkJCQkgT2lkIHZhckNvbGxh dGlvbiwKLQkJCQkJCQkJCSBib29sIGlmX25vdF9leGlzdHMpOworCQkJCQkJCQkJIGJvb2wgaWZf bm90X2V4aXN0cywKKwkJCQkJCQkJCSBWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFyWGFjdEVuZEFj dGlvbik7CiAKIAogLyoKQEAgLTQ5LDcgKzUwLDggQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNo YXIgKnZhck5hbWUsCiAJCQkJaW50MzIgdmFyVHlwbW9kLAogCQkJCU9pZCB2YXJPd25lciwKIAkJ CQlPaWQgdmFyQ29sbGF0aW9uLAotCQkJCWJvb2wgaWZfbm90X2V4aXN0cykKKwkJCQlib29sIGlm X25vdF9leGlzdHMsCisJCQkJVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RFbmRBY3Rpb24p CiB7CiAJQWNsCQkgICAqdmFyYWNsOwogCU5hbWVEYXRhCXZhcm5hbWU7CkBAIC0xMTAsNiArMTEy LDcgQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJdmFsdWVzW0FudW1f cGdfdmFyaWFibGVfdmFydHlwbW9kIC0gMV0gPSBJbnQzMkdldERhdHVtKHZhclR5cG1vZCk7CiAJ dmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyb3duZXIgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0o dmFyT3duZXIpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmNvbGxhdGlvbiAtIDFdID0g T2JqZWN0SWRHZXREYXR1bSh2YXJDb2xsYXRpb24pOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxl X3ZhcnhhY3RlbmRhY3Rpb24gLSAxXSA9IENoYXJHZXREYXR1bSh2YXJYYWN0RW5kQWN0aW9uKTsK IAogCXZhcmFjbCA9IGdldF91c2VyX2RlZmF1bHRfYWNsKE9CSkVDVF9WQVJJQUJMRSwgdmFyT3du ZXIsCiAJCQkJCQkJCSAgdmFyTmFtZXNwYWNlKTsKQEAgLTE4Myw2ICsxODYsMTMgQEAgQ3JlYXRl VmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkK IAlPaWQJCQl0eXBjb2xsYXRpb247CiAJT2JqZWN0QWRkcmVzcyB2YXJpYWJsZTsKIAorCS8qIENo ZWNrIGNvbnNpc3RlbmN5IG9mIGFyZ3VtZW50cyAqLworCWlmIChzdG10LT5YYWN0RW5kQWN0aW9u ID09IFZBUklBQkxFX1hBQ1RFTkRfRFJPUAorCQkmJiBzdG10LT52YXJpYWJsZS0+cmVscGVyc2lz dGVuY2UgIT0gUkVMUEVSU0lTVEVOQ0VfVEVNUCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJy Y29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCSBlcnJtc2coIk9O IENPTU1JVCBEUk9QIGNhbiBvbmx5IGJlIHVzZWQgb24gdGVtcG9yYXJ5IHZhcmlhYmxlcyIpKSk7 CisKIAluYW1lc3BhY2VpZCA9CiAJCVJhbmdlVmFyR2V0QW5kQ2hlY2tDcmVhdGlvbk5hbWVzcGFj ZShzdG10LT52YXJpYWJsZSwgTm9Mb2NrLCBOVUxMKTsKIApAQCAtMjIyLDcgKzIzMiw4IEBAIENy ZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0 bXQpCiAJCQkJCQkJICAgdHlwbW9kLAogCQkJCQkJCSAgIHZhcm93bmVyLAogCQkJCQkJCSAgIGNv bGxhdGlvbiwKLQkJCQkJCQkgICBzdG10LT5pZl9ub3RfZXhpc3RzKTsKKwkJCQkJCQkgICBzdG10 LT5pZl9ub3RfZXhpc3RzLAorCQkJCQkJCSAgIHN0bXQtPlhhY3RFbmRBY3Rpb24pOwogCiAJZWxv ZyhERUJVRzEsICJyZWNvcmQgZm9yIHNlc3Npb24gdmFyaWFibGUgXCIlc1wiIChvaWQ6JWQpIHdh cyBjcmVhdGVkIGluIHBnX3ZhcmlhYmxlIiwKIAkJIHN0bXQtPnZhcmlhYmxlLT5yZWxuYW1lLCB2 YXJpYWJsZS5vYmplY3RJZCk7CkBAIC0yMzAsNiArMjQxLDggQEAgQ3JlYXRlVmFyaWFibGUoUGFy c2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkvKiBXZSB3YW50 IFNlc3Npb25WYXJpYWJsZUNyZWF0ZVBvc3Rwcm9jZXNzIHRvIHNlZSB0aGUgY2F0YWxvZyBjaGFu Z2VzLiAqLwogCUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CiAKKwlTZXNzaW9uVmFyaWFibGVD cmVhdGVQb3N0cHJvY2Vzcyh2YXJpYWJsZS5vYmplY3RJZCwgc3RtdC0+WGFjdEVuZEFjdGlvbik7 CisKIAlyZXR1cm4gdmFyaWFibGU7CiB9CiAKQEAgLTI0Miw2ICsyNTUsNyBAQCBEcm9wVmFyaWFi bGVCeUlkKE9pZCB2YXJpZCkKIHsKIAlSZWxhdGlvbglyZWw7CiAJSGVhcFR1cGxlCXR1cDsKKwlj aGFyCQlYYWN0RW5kQWN0aW9uOwogCiAJcmVsID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9u SWQsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCkBAIC0yNTAsNiArMjY0LDggQEAgRHJvcFZhcmlhYmxl QnlJZChPaWQgdmFyaWQpCiAJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCiAJCWVsb2coRVJS T1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB2YXJpYWJsZSAldSIsIHZhcmlkKTsKIAorCVhh Y3RFbmRBY3Rpb24gPSAoKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApKS0+dmFyeGFj dGVuZGFjdGlvbjsKKwogCUNhdGFsb2dUdXBsZURlbGV0ZShyZWwsICZ0dXAtPnRfc2VsZik7CiAK IAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKQEAgLTI1Nyw1ICsyNzMsNSBAQCBEcm9wVmFyaWFibGVC eUlkKE9pZCB2YXJpZCkKIAl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCiAJ LyogRG8gdGhlIG5lY2Vzc2FyeSBjbGVhbnVwIGlmIG5lZWRlZCBpbiBsb2NhbCBtZW1vcnkgKi8K LQlTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3ModmFyaWQpOworCVNlc3Npb25WYXJpYWJs ZURyb3BQb3N0cHJvY2Vzcyh2YXJpZCwgWGFjdEVuZEFjdGlvbik7CiB9CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggZDkxNjk4MjBhN2YuLjNhMzQ4OWVjNzQzIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0xNiw2ICsxNiw4IEBA CiAKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFi bGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2RlcGVuZGVuY3kuaCIKKyNpbmNsdWRlICJjYXRhbG9n L25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNp bmNsdWRlICJleGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgogI2luY2x1ZGUgImZ1bmNhcGku aCIKQEAgLTMxLDYgKzMzLDE5IEBACiAjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgogI2luY2x1 ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKK3R5cGVkZWYgc3RydWN0IFNWYXJpYWJsZVhBY3REcm9w SXRlbQoreworCU9pZAkJCXZhcmlkOwkJCS8qIHZhcmlkIG9mIHNlc3Npb24gdmFyaWFibGUgKi8K KworCS8qCisJICogY3JlYXRpbmdfc3ViaWQgaXMgdGhlIElEIG9mIHRoZSBjcmVhdGluZyBzdWJ4 YWN0LiBJZiB0aGUgYWN0aW9uIHdhcworCSAqIHVucmVnaXN0ZXJlZCBkdXJpbmcgdGhlIGN1cnJl bnQgdHJhbnNhY3Rpb24sIGRlbGV0aW5nX3N1YmlkIGlzIHRoZSBJRAorCSAqIG9mIHRoZSBkZWxl dGluZyBzdWJ4YWN0LCBvdGhlcndpc2UgSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQuCisJICovCisJ U3ViVHJhbnNhY3Rpb25JZCBjcmVhdGluZ19zdWJpZDsKKwlTdWJUcmFuc2FjdGlvbklkIGRlbGV0 aW5nX3N1YmlkOworfSBTVmFyaWFibGVYQWN0RHJvcEl0ZW07CisKIC8qCiAgKiBWYWx1ZXMgb2Yg c2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHN0b3JlZCBpbiB0aGUgYmFja2VuZCBsb2NhbCBtZW1vcnkK ICAqIGluc2lkZSBzZXNzaW9udmFycyBoYXNoIHRhYmxlIGluIGJpbmFyeSBmb3JtYXQgaW5zaWRl IGEgZGVkaWNhdGVkIG1lbW9yeQpAQCAtMTEzLDYgKzEyOCwxMiBAQCBzdGF0aWMgYm9vbCBuZWVk c192YWxpZGF0aW9uID0gZmFsc2U7CiAgKi8KIHN0YXRpYyBMb2NhbFRyYW5zYWN0aW9uSWQgdmFs aWRhdGVkX2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOwogCisvKiBsaXN0IGhvbGRz IGZpZWxkcyBvZiBTVmFyaWFibGVYQWN0RHJvcEl0ZW0gdHlwZSAqLworc3RhdGljIExpc3QgKnhh Y3RfZHJvcF9pdGVtcyA9IE5JTDsKKworc3RhdGljIHZvaWQgcmVnaXN0ZXJfc2Vzc2lvbl92YXJp YWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKTsKK3N0YXRpYyB2b2lkIHVucmVnaXN0ZXJfc2Vzc2lv bl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKTsKKwogLyoKICAqIENhbGxiYWNrIGZ1bmN0 aW9uIGZvciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRhdGlvbi4KICAqLwpAQCAtMTUxLDE2ICsx NzIsNDUgQEAgcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2soRGF0dW0gYXJnLCBpbnQgY2FjaGVp ZCwgdWludDMyIGhhc2h2YWx1ZSkKIAl9CiB9CiAKKy8qCisgKiBEbyB0aGUgbmVjZXNzYXJ5IHdv cmsgdG8gc2V0dXAgbG9jYWwgbWVtb3J5IG1hbmFnZW1lbnQgb2YgYSBuZXcKKyAqIHZhcmlhYmxl LgorICoKKyAqIENhbGxlciBzaG91bGQgYWxyZWFkeSBoYXZlIGNyZWF0ZWQgdGhlIG5lY2Vzc2Fy eSBlbnRyeSBpbiBjYXRhbG9nCisgKiBhbmQgbWFkZSB0aGVtIHZpc2libGUuCisgKi8KK3ZvaWQK K1Nlc3Npb25WYXJpYWJsZUNyZWF0ZVBvc3Rwcm9jZXNzKE9pZCB2YXJpZCwgY2hhciBYYWN0RW5k QWN0aW9uKQoreworCS8qCisJICogRm9yIHRlbXBvcmFyeSB2YXJpYWJsZXMsIHdlIG5lZWQgdG8g Y3JlYXRlIGEgbmV3IGVuZCBvZiB4YWN0IGFjdGlvbiB0bworCSAqIGVuc3VyZSBkZWxldGlvbiBm cm9tIGNhdGFsb2cuCisJICovCisJaWYgKFhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVO RF9EUk9QKQorCXsKKwkJQXNzZXJ0KGlzVGVtcE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lc3BhY2UodmFyaWQpKSk7CisKKwkJcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0 X2Ryb3AodmFyaWQpOworCX0KK30KKwogLyoKICAqIEhhbmRsZSB0aGUgbG9jYWwgbWVtb3J5IGNs ZWFudXAgZm9yIGEgRFJPUCBWQVJJQUJMRSBjb21tYW5kLgogICoKICAqIENhbGxlciBzaG91bGQg dGFrZSBjYXJlIG9mIHJlbW92aW5nIHRoZSBwZ192YXJpYWJsZSBlbnRyeSBmaXJzdC4KICAqLwog dm9pZAotU2Vzc2lvblZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKE9pZCB2YXJpZCkKK1Nlc3Npb25W YXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQsIGNoYXIgWGFjdEVuZEFjdGlvbikKIHsK IAlBc3NlcnQoTG9jYWxUcmFuc2FjdGlvbklkSXNWYWxpZChNeVByb2MtPnZ4aWQubHhpZCkpOwog CisJaWYgKFhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9EUk9QKQorCXsKKwkJQXNz ZXJ0KGlzVGVtcE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQp KSk7CisKKwkJdW5yZWdpc3Rlcl9zZXNzaW9uX3ZhcmlhYmxlX3hhY3RfZHJvcCh2YXJpZCk7CisJ fQorCiAJaWYgKHNlc3Npb252YXJzKQogCXsKIAkJYm9vbAkJZm91bmQ7CkBAIC0xODMsNiArMjMz LDU3IEBAIFNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQpCiAJfQogfQog CisvKgorICogUmVnaXN0cmF0aW9uIG9mIGFjdGlvbnMgdG8gYmUgZXhlY3V0ZWQgb24gc2Vzc2lv biB2YXJpYWJsZXMgYXQgdHJhbnNhY3Rpb24KKyAqIGVuZCB0aW1lLiBXZSB3YW50IHRvIGRyb3Ag dGVtcG9yYXJ5IHNlc3Npb24gdmFyaWFibGVzIHdpdGggY2xhdXNlIE9OIENPTU1JVAorICogRFJP UC4KKyAqLworCisvKgorICogUmVnaXN0ZXIgYSBzZXNzaW9uIHZhcmlhYmxlIHhhY3QgYWN0aW9u LgorICovCitzdGF0aWMgdm9pZAorcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3Ao T2lkIHZhcmlkKQoreworCVNWYXJpYWJsZVhBY3REcm9wSXRlbSAqeGFjdF9haTsKKwlNZW1vcnlD b250ZXh0IG9sZGN4dDsKKworCW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhDYWNoZU1l bW9yeUNvbnRleHQpOworCisJeGFjdF9haSA9IChTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKikKKwkJ cGFsbG9jKHNpemVvZihTVmFyaWFibGVYQWN0RHJvcEl0ZW0pKTsKKworCXhhY3RfYWktPnZhcmlk ID0gdmFyaWQ7CisKKwl4YWN0X2FpLT5jcmVhdGluZ19zdWJpZCA9IEdldEN1cnJlbnRTdWJUcmFu c2FjdGlvbklkKCk7CisJeGFjdF9haS0+ZGVsZXRpbmdfc3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNh Y3Rpb25JZDsKKworCXhhY3RfZHJvcF9pdGVtcyA9IGxjb25zKHhhY3RfYWksIHhhY3RfZHJvcF9p dGVtcyk7CisKKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKK30KKworLyoKKyAqIFVu cmVnaXN0ZXIgYW4gaWQgb2YgYSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZHJvcCBsaXN0 LiBJbiB0aGlzCisgKiBtb21lbnQsIHRoZSBhY3Rpb24gaXMganVzdCBtYXJrZWQgYXMgZGVsZXRl ZCBieSBzZXR0aW5nIGRlbGV0aW5nX3N1YmlkLiBUaGUKKyAqIGNhbGxpbmcgZXZlbiBtaWdodCBi ZSByb2xsYmFja2VkLCBpbiB3aGljaCBjYXNlIHdlIHNob3VsZCBub3QgbG9zZSB0aGlzCisgKiBh Y3Rpb24uCisgKi8KK3N0YXRpYyB2b2lkCit1bnJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFj dF9kcm9wKE9pZCB2YXJpZCkKK3sKKwlMaXN0Q2VsbCAgICpsOworCisJZm9yZWFjaChsLCB4YWN0 X2Ryb3BfaXRlbXMpCisJeworCQlTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKnhhY3RfYWkgPQorCQkJ KFNWYXJpYWJsZVhBY3REcm9wSXRlbSAqKSBsZmlyc3QobCk7CisKKwkJaWYgKHhhY3RfYWktPnZh cmlkID09IHZhcmlkKQorCQkJeGFjdF9haS0+ZGVsZXRpbmdfc3ViaWQgPSBHZXRDdXJyZW50U3Vi VHJhbnNhY3Rpb25JZCgpOworCX0KK30KKwogLyoKICAqIFJlbGVhc2Ugc3RvcmVkIHZhbHVlLCBm cmVlIG1lbW9yeQogICovCkBAIC0yOTgsMTUgKzM5OSw5MiBAQCByZW1vdmVfaW52YWxpZF9zZXNz aW9uX3ZhcmlhYmxlcyhib29sIGF0RU9YKQogfQogCiAvKgotICogUmVtb3ZlIHZhbHVlcyBvZiBk cm9wcGVkIHNlc3Npb24gdmFyaWFibGVzIGZyb20gbWVtb3J5LgorICAqIFBlcmZvcm0gT04gQ09N TUlUIERST1AgZm9yIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlcywKKyAgKiBhbmQgcmVtb3Zl IGFsbCBkcm9wcGVkIHZhcmlhYmxlcyBmcm9tIG1lbW9yeS4KICAqLwogdm9pZAotQXRQcmVFT1hh Y3RfU2Vzc2lvblZhcmlhYmxlcyh2b2lkKQorQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhi b29sIGlzQ29tbWl0KQogewotCS8qIFdlIGNhbm5vdCB0byBkbyBpdCB3aGVuIHRyYW5zYWN0aW9u IGlzIGFib3J0ZWQgKi8KLQlBc3NlcnQoSXNUcmFuc2FjdGlvblN0YXRlKCkpOworCWlmIChpc0Nv bW1pdCkKKwl7CisJCWlmICh4YWN0X2Ryb3BfaXRlbXMpCisJCXsKKwkJCUxpc3RDZWxsICAgKmw7 CisKKwkJCWZvcmVhY2gobCwgeGFjdF9kcm9wX2l0ZW1zKQorCQkJeworCQkJCVNWYXJpYWJsZVhB Y3REcm9wSXRlbSAqeGFjdF9haSA9CisJCQkJCShTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKikgbGZp cnN0KGwpOworCisJCQkJLyogSXRlcmF0ZSBvbmx5IG92ZXIgZW50cmllcyB0aGF0IGFyZSBzdGls bCBwZW5kaW5nICovCisJCQkJaWYgKHhhY3RfYWktPmRlbGV0aW5nX3N1YmlkID09IEludmFsaWRT dWJUcmFuc2FjdGlvbklkKQorCQkJCXsKKwkJCQkJT2JqZWN0QWRkcmVzcyBvYmplY3Q7CisKKwkJ CQkJb2JqZWN0LmNsYXNzSWQgPSBWYXJpYWJsZVJlbGF0aW9uSWQ7CisJCQkJCW9iamVjdC5vYmpl Y3RJZCA9IHhhY3RfYWktPnZhcmlkOworCQkJCQlvYmplY3Qub2JqZWN0U3ViSWQgPSAwOworCisJ CQkJCS8qCisJCQkJCSAqIFNpbmNlIHRoaXMgaXMgYW4gYXV0b21hdGljIGRyb3AsIHJhdGhlciB0 aGFuIG9uZQorCQkJCQkgKiBkaXJlY3RseSBpbml0aWF0ZWQgYnkgdGhlIHVzZXIsIHdlIHBhc3Mg dGhlCisJCQkJCSAqIFBFUkZPUk1fREVMRVRJT05fSU5URVJOQUwgZmxhZy4KKwkJCQkJICovCisJ CQkJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSAob2lkOiV1KSB3aWxsIGJlIGRlbGV0 ZWQgKGZvcmNlZCBieSBPTiBDT01NSVQgRFJPUCBjbGF1c2UpIiwKKwkJCQkJCSB4YWN0X2FpLT52 YXJpZCk7CisKKwkJCQkJcGVyZm9ybURlbGV0aW9uKCZvYmplY3QsIERST1BfQ0FTQ0FERSwKKwkJ CQkJCQkJCVBFUkZPUk1fREVMRVRJT05fSU5URVJOQUwgfAorCQkJCQkJCQkJUEVSRk9STV9ERUxF VElPTl9RVUlFVExZKTsKKwkJCQl9CisJCQl9CisJCX0KIAotCXJlbW92ZV9pbnZhbGlkX3Nlc3Np b25fdmFyaWFibGVzKHRydWUpOworCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh0 cnVlKTsKKwl9CisKKwkvKgorCSAqIFdlIGhhdmUgdG8gY2xlYW4geGFjdF9kcm9wX2l0ZW1zLiBB bGwgcmVsYXRlZCB2YXJpYWJsZXMgYXJlIGRyb3BwZWQKKwkgKiBub3csIG9yIGxvc3QgaW5zaWRl IGFib3J0ZWQgdHJhbnNhY3Rpb24uCisJICovCisJbGlzdF9mcmVlX2RlZXAoeGFjdF9kcm9wX2l0 ZW1zKTsKKwl4YWN0X2Ryb3BfaXRlbXMgPSBOVUxMOworfQorCisvKgorICogUG9zdC1zdWJjb21t aXQgb3IgcG9zdC1zdWJhYm9ydCBjbGVhbnVwIG9mIHhhY3QgZHJvcCBsaXN0LgorICoKKyAqIER1 cmluZyBzdWJhYm9ydCwgd2UgY2FuIGltbWVkaWF0ZWx5IHJlbW92ZSBlbnRyaWVzIGNyZWF0ZWQg ZHVyaW5nIHRoaXMKKyAqIHN1YnRyYW5zYWN0aW9uLiBEdXJpbmcgc3ViY29tbWl0LCBqdXN0IHRy YW5zZmVyIGVudHJpZXMgbWFya2VkIGR1cmluZworICogdGhpcyBzdWJ0cmFuc2FjdGlvbiBhcyBi ZWluZyB0aGUgcGFyZW50J3MgcmVzcG9uc2liaWxpdHkuCisgKi8KK3ZvaWQKK0F0RU9TdWJYYWN0 X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCwKKwkJCQkJCQkgU3ViVHJhbnNhY3Rpb25J ZCBteVN1YmlkLAorCQkJCQkJCSBTdWJUcmFuc2FjdGlvbklkIHBhcmVudFN1YmlkKQoreworCUxp c3RDZWxsICAgKmN1cl9pdGVtOworCisJZm9yZWFjaChjdXJfaXRlbSwgeGFjdF9kcm9wX2l0ZW1z KQorCXsKKwkJU1ZhcmlhYmxlWEFjdERyb3BJdGVtICp4YWN0X2FpID0KKwkJCShTVmFyaWFibGVY QWN0RHJvcEl0ZW0gKikgbGZpcnN0KGN1cl9pdGVtKTsKKworCQlpZiAoIWlzQ29tbWl0ICYmIHhh Y3RfYWktPmNyZWF0aW5nX3N1YmlkID09IG15U3ViaWQpCisJCXsKKwkJCS8qIGN1cl9pdGVtIG11 c3QgYmUgcmVtb3ZlZCAqLworCQkJeGFjdF9kcm9wX2l0ZW1zID0gZm9yZWFjaF9kZWxldGVfY3Vy cmVudCh4YWN0X2Ryb3BfaXRlbXMsIGN1cl9pdGVtKTsKKwkJCXBmcmVlKHhhY3RfYWkpOworCQl9 CisJCWVsc2UKKwkJeworCQkJLyogY3VyX2l0ZW0gbXVzdCBiZSBwcmVzZXJ2ZWQgKi8KKwkJCWlm ICh4YWN0X2FpLT5jcmVhdGluZ19zdWJpZCA9PSBteVN1YmlkKQorCQkJCXhhY3RfYWktPmNyZWF0 aW5nX3N1YmlkID0gcGFyZW50U3ViaWQ7CisJCQlpZiAoeGFjdF9haS0+ZGVsZXRpbmdfc3ViaWQg PT0gbXlTdWJpZCkKKwkJCQl4YWN0X2FpLT5kZWxldGluZ19zdWJpZCA9IGlzQ29tbWl0ID8gcGFy ZW50U3ViaWQgOiBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKwkJfQorCX0KIH0KIAogLyoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3ZpZXcuYwppbmRleCBmZGFkODMzODMyNC4uNmY3NGYxNGY2YWUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3 LmMKQEAgLTQ4NCw3ICs0ODQsNyBAQCBEZWZpbmVWaWV3KFZpZXdTdG10ICpzdG10LCBjb25zdCBj aGFyICpxdWVyeVN0cmluZywKIAkgKi8KIAl2aWV3ID0gY29weU9iamVjdChzdG10LT52aWV3KTsJ LyogZG9uJ3QgY29ycnVwdCBvcmlnaW5hbCBjb21tYW5kICovCiAJaWYgKHZpZXctPnJlbHBlcnNp c3RlbmNlID09IFJFTFBFUlNJU1RFTkNFX1BFUk1BTkVOVAotCQkmJiBpc1F1ZXJ5VXNpbmdUZW1w UmVsYXRpb24odmlld1BhcnNlKSkKKwkJJiYgaXNRdWVyeVVzaW5nVGVtcE9iamVjdCh2aWV3UGFy c2UpKQogCXsKIAkJdmlldy0+cmVscGVyc2lzdGVuY2UgPSBSRUxQRVJTSVNURU5DRV9URU1QOwog CQllcmVwb3J0KE5PVElDRSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXpl LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IDJjMGE2NmZiMmNjLi40NzA3 NDEzNmU2YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC0zMzAzLDEwICszMzAzLDEwIEBAIHRyYW5z Zm9ybUNyZWF0ZVRhYmxlQXNTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlVGFibGVBc1N0 bXQgKnN0bXQpCiAJCSAqIGNyZWF0aW9uIHF1ZXJ5LiBJdCB3b3VsZCBiZSBoYXJkIHRvIHJlZnJl c2ggZGF0YSBvciBpbmNyZW1lbnRhbGx5CiAJCSAqIG1haW50YWluIGl0IGlmIGEgc291cmNlIGRp c2FwcGVhcmVkLgogCQkgKi8KLQkJaWYgKGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbihxdWVyeSkp CisJCWlmIChpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0KHF1ZXJ5KSkKIAkJCWVyZXBvcnQoRVJST1Is CiAJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkJIGVy cm1zZygibWF0ZXJpYWxpemVkIHZpZXdzIG11c3Qgbm90IHVzZSB0ZW1wb3JhcnkgdGFibGVzIG9y IHZpZXdzIikpKTsKKwkJCQkJIGVycm1zZygibWF0ZXJpYWxpemVkIHZpZXdzIG11c3Qgbm90IHVz ZSB0ZW1wb3JhcnkgdGFibGVzLCB2aWV3cyBvciBzZXNzaW9uIHZhcmlhYmxlcyIpKSk7CiAKIAkJ LyoKIAkJICogQSBtYXRlcmlhbGl6ZWQgdmlldyB3b3VsZCBlaXRoZXIgbmVlZCB0byBzYXZlIHBh cmFtZXRlcnMgZm9yIHVzZSBpbgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYzE3YTcxZjY2NTYuLjQ4NTIzZTZj M2I1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKQEAgLTQ4MCw2ICs0ODAsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJl Y3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVl cnkpOwogJXR5cGUgPGl2YWw+CSBPcHRUZW1wCiAldHlwZSA8aXZhbD4JIE9wdE5vTG9nCiAldHlw ZSA8b25jb21taXQ+IE9uQ29tbWl0T3B0aW9uCisldHlwZSA8aXZhbD4JIFhhY3RFbmRBY3Rpb25P cHRpb24KIAogJXR5cGUgPGl2YWw+CWZvcl9sb2NraW5nX3N0cmVuZ3RoCiAldHlwZSA8bm9kZT4J Zm9yX2xvY2tpbmdfaXRlbQpAQCAtNTIyMSwyNiArNTIyMiwzOSBAQCBjcmVhdGVfZXh0ZW5zaW9u X29wdF9pdGVtOgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiBDcmVhdGVTZXNzaW9uVmFyU3Rt dDoKLQkJCUNSRUFURSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0 X2NvbGxhdGVfY2xhdXNlCisJCQlDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBxdWFsaWZpZWRfbmFt ZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIFhhY3RFbmRBY3Rpb25PcHRpb24K IAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vz c2lvblZhclN0bXQpOwotCQkJCQluLT52YXJpYWJsZSA9ICQzOwotCQkJCQluLT50eXBlTmFtZSA9 ICQ1OwotCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDY7CisJCQkJCSQ0 LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOworCQkJCQluLT52YXJpYWJsZSA9ICQ0OworCQkJCQluLT50 eXBlTmFtZSA9ICQ2OworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDc7 CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkODsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZh bHNlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgVkFSSUFCTEUg SUZfUCBOT1QgRVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0 ZV9jbGF1c2UKKwkJCXwgQ1JFQVRFIE9wdFRlbXAgVkFSSUFCTEUgSUZfUCBOT1QgRVhJU1RTIHF1 YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgWGFjdEVuZEFj dGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9k ZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7Ci0JCQkJCW4tPnZhcmlhYmxlID0gJDY7Ci0JCQkJCW4t PnR5cGVOYW1lID0gJDg7Ci0JCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAk OTsKKwkJCQkJJDctPnJlbHBlcnNpc3RlbmNlID0gJDI7CisJCQkJCW4tPnZhcmlhYmxlID0gJDc7 CisJCQkJCW4tPnR5cGVOYW1lID0gJDk7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNs YXVzZSAqKSAkMTA7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTE7CiAJCQkJCW4tPmlmX25v dF9leGlzdHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQogCQk7CiAKKy8q CisgKiBUZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGRyb3BwZWQgb24gc3VjY2Vz c2Z1bAorICogdHJhbnNhY3Rpb24gZW5kIGxpa2UgdGFibGVzLgorICovCitYYWN0RW5kQWN0aW9u T3B0aW9uOiAgT04gQ09NTUlUIERST1AJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfRFJPUDsg fQorCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX05PT1A7IH0K KwkJOworCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqIEFMVEVSIEVYVEVOU0lPTiBu YW1lIFVQREFURSBbIFRPIHZlcnNpb24gXQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3JlbGF0aW9uLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwpp bmRleCAyZjY0ZWFmMGUzNy4uYmRlNWIxMTE4YzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9yZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxh dGlvbi5jCkBAIC0xMDEsNyArMTAxLDcgQEAgc3RhdGljIHZvaWQgZXhwYW5kVHVwbGVEZXNjKFR1 cGxlRGVzYyB0dXBkZXNjLCBBbGlhcyAqZXJlZiwKIHN0YXRpYyBpbnQJc3BlY2lhbEF0dE51bShj b25zdCBjaGFyICphdHRuYW1lKTsKIHN0YXRpYyBib29sIHJ0ZV92aXNpYmxlX2lmX2xhdGVyYWwo UGFyc2VTdGF0ZSAqcHN0YXRlLCBSYW5nZVRibEVudHJ5ICpydGUpOwogc3RhdGljIGJvb2wgcnRl X3Zpc2libGVfaWZfcXVhbGlmaWVkKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmFuZ2VUYmxFbnRyeSAq cnRlKTsKLXN0YXRpYyBib29sIGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbl93YWxrZXIoTm9kZSAq bm9kZSwgdm9pZCAqY29udGV4dCk7CitzdGF0aWMgYm9vbCBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0 X3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KTsKIAogCiAvKgpAQCAtMzgyMSwxMyAr MzgyMSwxMyBAQCBydGVfdmlzaWJsZV9pZl9xdWFsaWZpZWQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBS YW5nZVRibEVudHJ5ICpydGUpCiAgKiB0aGUgcXVlcnkgaXMgYSB0ZW1wb3JhcnkgcmVsYXRpb24g KHRhYmxlLCB2aWV3LCBvciBtYXRlcmlhbGl6ZWQgdmlldykuCiAgKi8KIGJvb2wKLWlzUXVlcnlV c2luZ1RlbXBSZWxhdGlvbihRdWVyeSAqcXVlcnkpCitpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0KFF1 ZXJ5ICpxdWVyeSkKIHsKLQlyZXR1cm4gaXNRdWVyeVVzaW5nVGVtcFJlbGF0aW9uX3dhbGtlcigo Tm9kZSAqKSBxdWVyeSwgTlVMTCk7CisJcmV0dXJuIGlzUXVlcnlVc2luZ1RlbXBPYmplY3Rfd2Fs a2VyKChOb2RlICopIHF1ZXJ5LCBOVUxMKTsKIH0KIAogc3RhdGljIGJvb2wKLWlzUXVlcnlVc2lu Z1RlbXBSZWxhdGlvbl93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKK2lzUXVlcnlV c2luZ1RlbXBPYmplY3Rfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiB7CiAJaWYg KG5vZGUgPT0gTlVMTCkKIAkJcmV0dXJuIGZhbHNlOwpAQCAtMzg1MywxMyArMzg1MywyMyBAQCBp c1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb25fd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQp CiAJCX0KIAogCQlyZXR1cm4gcXVlcnlfdHJlZV93YWxrZXIocXVlcnksCi0JCQkJCQkJCSBpc1F1 ZXJ5VXNpbmdUZW1wUmVsYXRpb25fd2Fsa2VyLAorCQkJCQkJCQkgaXNRdWVyeVVzaW5nVGVtcE9i amVjdF93YWxrZXIsCiAJCQkJCQkJCSBjb250ZXh0LAogCQkJCQkJCQkgUVRXX0lHTk9SRV9KT0lO QUxJQVNFUyk7CiAJfQorCWVsc2UgaWYgKElzQShub2RlLCBQYXJhbSkpCisJeworCQlQYXJhbQkg ICAqcCA9IChQYXJhbSAqKSBub2RlOworCisJCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFS SUFCTEUpCisJCXsKKwkJCWlmIChpc0FueVRlbXBOYW1lc3BhY2UoZ2V0X3Nlc3Npb25fdmFyaWFi bGVfbmFtZXNwYWNlKHAtPnBhcmFtdmFyaWQpKSkKKwkJCQlyZXR1cm4gdHJ1ZTsKKwkJfQorCX0K IAogCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsCi0JCQkJCQkJCSAgaXNRdWVy eVVzaW5nVGVtcFJlbGF0aW9uX3dhbGtlciwKKwkJCQkJCQkJICBpc1F1ZXJ5VXNpbmdUZW1wT2Jq ZWN0X3dhbGtlciwKIAkJCQkJCQkJICBjb250ZXh0KTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBhZGY4M2Vk MTk3MC4uZjZhYThiYzVmNmMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisr KyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC01MTU5LDcgKzUxNTksNyBAQCBsaXN0VmFy aWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlQUUV4cEJ1ZmZlckRh dGEgYnVmOwogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5w b3B0OwotCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCXN0YXRpYyBjb25zdCBi b29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKIAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTgwMDAw KQogCXsKQEAgLTUxNzksMTIgKzUxNzksMTYgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpw YXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2 LnZhcnR5cGUsIHYudmFydHlwbW9kKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgKFNFTEVDVCBj LmNvbGxuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190 eXBlIGJ0XG4iCiAJCQkJCSAgIiAgIFdIRVJFIGMub2lkID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0 Lm9pZCA9IHYudmFydHlwZSBBTkQgdi52YXJjb2xsYXRpb24gPD4gYnQudHlwY29sbGF0aW9uKSBh cyBcIiVzXCIsXG4iCi0JCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJv d25lcikgYXMgXCIlc1wiXG4iLAorCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlk KHYudmFyb3duZXIpIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBDQVNFIHYudmFyeGFjdGVuZGFj dGlvblxuIgorCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09NTUlUIERST1AnXG4iCisJ CQkJCSAgIiAgRU5EIGFzIFwiJXNcIlxuIiwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlNjaGVtYSIp LAogCQkJCQkgIGdldHRleHRfbm9vcCgiTmFtZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlw ZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiQ29sbGF0aW9uIiksCi0JCQkJCSAgZ2V0dGV4dF9u b29wKCJPd25lciIpKTsKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCisJCQkJCSAgZ2V0 dGV4dF9ub29wKCJUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24iKSk7CiAKIAlpZiAodmVyYm9zZSkK IAl7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmMKaW5kZXggZTQ1NTg5MDIxN2UuLjUyZWE2YjBlMjhjIDEwMDY0NAot LS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5jCkBAIC0zNTk5LDcgKzM1OTksOCBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hh ciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCX0KIC8qIENSRUFURSBWQVJJQUJMRSAtLS0g aXMgYWxsb3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxNYXRjaGVzICovCiAJ LyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTICovCi0JZWxzZSBpZiAo VGFpbE1hdGNoZXMoIkNSRUFURSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKKwllbHNlIGlmIChU YWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8CisJCQkgVGFpbE1h dGNoZXMoIlRFTVB8VEVNUE9SQVJZIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVU RV9XSVRIKCJBUyIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIsIE1hdGNoQW55 LCAiQVMiKSkKIAkJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTIHR5 cGVzICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggMWY0MTEyNzkwYWYuLmUzYWNh Mjg1YTJiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKKysr IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCkBAIC01NCw2ICs1NCw5IEBAIENB VEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJpYWJsZVJlbGF0aW9uSWQpCiAJLyogdHlwbW9kIGZv ciB2YXJpYWJsZSdzIHR5cGUgKi8KIAlpbnQzMgkJdmFydHlwbW9kIEJLSV9ERUZBVUxUKC0xKTsK IAorCS8qIGFjdGlvbiBvbiB0cmFuc2FjdGlvbiBlbmQgKi8KKwljaGFyCQl2YXJ4YWN0ZW5kYWN0 aW9uIEJLSV9ERUZBVUxUKG4pOworCiAJLyogdmFyaWFibGUgY29sbGF0aW9uICovCiAJT2lkCQkJ dmFyY29sbGF0aW9uIEJLSV9ERUZBVUxUKDApIEJLSV9MT09LVVBfT1BUKHBnX2NvbGxhdGlvbik7 CiAKQEAgLTY2LDYgKzY5LDEyIEBAIENBVEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJpYWJsZVJl bGF0aW9uSWQpCiAjZW5kaWYKIH0gRm9ybURhdGFfcGdfdmFyaWFibGU7CiAKK3R5cGVkZWYgZW51 bSBWYXJpYWJsZVhhY3RFbmRBY3Rpb24KK3sKKwlWQVJJQUJMRV9YQUNURU5EX05PT1AgPSAnbics CS8qIE5PT1AgKi8KKwlWQVJJQUJMRV9YQUNURU5EX0RST1AgPSAnZCcsCS8qIE9OIENPTU1JVCBE Uk9QICovCit9CQkJVmFyaWFibGVYYWN0RW5kQWN0aW9uOworCiAvKiAtLS0tLS0tLS0tLS0tLS0t CiAgKgkJRm9ybV9wZ192YXJpYWJsZSBjb3JyZXNwb25kcyB0byBhIHBvaW50ZXIgdG8gYSB0dXBs ZSB3aXRoCiAgKgkJdGhlIGZvcm1hdCBvZiBwZ192YXJpYWJsZSByZWxhdGlvbi4KZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRl L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAppbmRleCAwZDRjNjM1YWU3Yi4uZGM4MzI5NmIx YmEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAor KysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKQEAgLTIxLDggKzIx LDExIEBACiAjaW5jbHVkZSAidGNvcC9jbWR0YWcuaCIKICNpbmNsdWRlICJ1dGlscy9xdWVyeWVu dmlyb25tZW50LmgiCiAKLWV4dGVybiB2b2lkIFNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2Vz cyhPaWQgdmFyaWQpOwotZXh0ZXJuIHZvaWQgQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyh2 b2lkKTsKK2V4dGVybiB2b2lkIFNlc3Npb25WYXJpYWJsZUNyZWF0ZVBvc3Rwcm9jZXNzKE9pZCB2 YXJpZCwgY2hhciBYYWN0RW5kQWN0aW9uKTsKK2V4dGVybiB2b2lkIFNlc3Npb25WYXJpYWJsZURy b3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQsIGNoYXIgWGFjdEVuZEFjdGlvbik7CitleHRlcm4gdm9p ZCBBdFByZUVPWGFjdF9TZXNzaW9uVmFyaWFibGVzKGJvb2wgaXNDb21taXQpOworZXh0ZXJuIHZv aWQgQXRFT1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0LCBTdWJUcmFuc2Fj dGlvbklkIG15U3ViaWQsCisJCQkJCQkJCQkJIFN1YlRyYW5zYWN0aW9uSWQgcGFyZW50U3ViaWQp OwogCiBleHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1 ZSwgYm9vbCBpc051bGwpOwogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlV2l0aFNlY3Vy aXR5Q2hlY2soT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oCmluZGV4IGZiYWIzMzhhOTM4Li41NmUyODRkYzA5YyAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaApAQCAtMzQ1NSw2ICszNDU1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lv blZhclN0bXQKIAlUeXBlTmFtZSAgICp0eXBlTmFtZTsJCS8qIHRoZSB0eXBlIG9mIHZhcmlhYmxl ICovCiAJQ29sbGF0ZUNsYXVzZSAqY29sbENsYXVzZTsKIAlib29sCQlpZl9ub3RfZXhpc3RzOwkv KiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhpc3RzICovCisJY2hhcgkJWGFjdEVuZEFjdGlv bjsJLyogb24gdHJhbnNhY3Rpb24gZW5kIGFjdGlvbiAqLwogfSBDcmVhdGVTZXNzaW9uVmFyU3Rt dDsKIAogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9p bmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4IDcyMmRmNjk5NTM3Li4xODUyN2QwZjg1YiAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcHJpbW5vZGVzLmgKQEAgLTUxLDcgKzUxLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgQWxp YXMKIAlMaXN0CSAgICpjb2xuYW1lczsJCS8qIG9wdGlvbmFsIGxpc3Qgb2YgY29sdW1uIGFsaWFz ZXMgKi8KIH0gQWxpYXM7CiAKLS8qIFdoYXQgdG8gZG8gYXQgY29tbWl0IHRpbWUgZm9yIHRlbXBv cmFyeSByZWxhdGlvbnMgKi8KKy8qCisgKiBXaGF0IHRvIGRvIGF0IGNvbW1pdCB0aW1lIGZvciB0 ZW1wb3JhcnkgcmVsYXRpb25zIG9yIHNlc3Npb24gdmFyaWFibGVzLgorICovCiB0eXBlZGVmIGVu dW0gT25Db21taXRBY3Rpb24KIHsKIAlPTkNPTU1JVF9OT09QLAkJCQkvKiBObyBPTiBDT01NSVQg Y2xhdXNlIChkbyBub3RoaW5nKSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX3JlbGF0aW9uLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaAppbmRl eCBiZWEyZGE1NDk2MS4uNTg1ZWFkZjY1MjQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZV9yZWxhdGlvbi5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9yZWxhdGlv bi5oCkBAIC0xMjQsNiArMTI0LDYgQEAgZXh0ZXJuIGludAlhdHRuYW1lQXR0TnVtKFJlbGF0aW9u IHJkLCBjb25zdCBjaGFyICphdHRuYW1lLCBib29sIHN5c0NvbE9LKTsKIGV4dGVybiBjb25zdCBO YW1lRGF0YSAqYXR0bnVtQXR0TmFtZShSZWxhdGlvbiByZCwgaW50IGF0dGlkKTsKIGV4dGVybiBP aWQJYXR0bnVtVHlwZUlkKFJlbGF0aW9uIHJkLCBpbnQgYXR0aWQpOwogZXh0ZXJuIE9pZAlhdHRu dW1Db2xsYXRpb25JZChSZWxhdGlvbiByZCwgaW50IGF0dGlkKTsKLWV4dGVybiBib29sIGlzUXVl cnlVc2luZ1RlbXBSZWxhdGlvbihRdWVyeSAqcXVlcnkpOworZXh0ZXJuIGJvb2wgaXNRdWVyeVVz aW5nVGVtcE9iamVjdChRdWVyeSAqcXVlcnkpOwogCiAjZW5kaWYJCQkJCQkJLyogUEFSU0VfUkVM QVRJT05fSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Np b24tdmFyaWFibGUub3V0IGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFy aWFibGUub3V0CmluZGV4IDI5NjhjY2UwODk1Li45ZmJiZjkwNTdhNiAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CisrKyBiL3NyYy90 ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApAQCAtODUsMTAgKzg1 LDExIEBAIG15dmFyCiAKIHN0ZXAgc3IxOiBST0xMQkFDSzsKIAotc3RhcnRpbmcgcGVybXV0YXRp b246IGNyZWF0ZTMgbGV0MyBzMyBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2Nh cmQgc2MzIHN0YXRlCitzdGFydGluZyBwZXJtdXRhdGlvbjogY3JlYXRlMyBsZXQzIHMzIG9fY19k IGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKIHN0ZXAg Y3JlYXRlMzogQ1JFQVRFIFZBUklBQkxFIG15dmFyMyBBUyB0ZXh0Owogc3RlcCBsZXQzOiBMRVQg bXl2YXIzID0gJ3Rlc3QnOwogc3RlcCBzMzogQkVHSU47CitzdGVwIG9fY19kOiBDUkVBVEUgVEVN UCBWQVJJQUJMRSBteXZhcl9vX2NfZCBBUyB0ZXh0IE9OIENPTU1JVCBEUk9QOwogc3RlcCBjcmVh dGU0OiBDUkVBVEUgVkFSSUFCTEUgbXl2YXI0IEFTIHRleHQ7CiBzdGVwIGxldDQ6IExFVCBteXZh cjQgPSAndGVzdCc7CiBzdGVwIGRyb3A0OiBEUk9QIFZBUklBQkxFIG15dmFyNDsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgYi9zcmMv dGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCmluZGV4IGM4NjRmZWU0 MDA2Li40NWU2NWQ0MDg1ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nl c3Npb24tdmFyaWFibGUuc3BlYworKysgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lv bi12YXJpYWJsZS5zcGVjCkBAIC0yNCw2ICsyNCw3IEBAIHN0ZXAgY3JlYXRlCQl7IENSRUFURSBW QVJJQUJMRSBteXZhciBBUyB0ZXh0OyB9CiBzZXNzaW9uIHMzCiBzdGVwIHMzCQkJeyBCRUdJTjsg fQogc3RlcCBsZXQzCQl7IExFVCBteXZhcjMgPSAndGVzdCc7IH0KK3N0ZXAgb19jX2QJCXsgQ1JF QVRFIFRFTVAgVkFSSUFCTEUgbXl2YXJfb19jX2QgQVMgdGV4dCBPTiBDT01NSVQgRFJPUDsgfQog c3RlcCBjcmVhdGU0CXsgQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0OyB9CiBzdGVwIGxl dDQJCXsgTEVUIG15dmFyNCA9ICd0ZXN0JzsgfQogc3RlcCBkcm9wNAkJeyBEUk9QIFZBUklBQkxF IG15dmFyNDsgfQpAQCAtNDcsNCArNDgsNCBAQCBwZXJtdXRhdGlvbiBsZXQgdmFsIGRiZyBkcm9w IGNyZWF0ZSBkYmcgdmFsCiAjIGNhbGxpbmcgdGhlIGRiZyBzdGVwIGFmdGVyIHRoZSBjb25jdXJy ZW50IGRyb3AKIHBlcm11dGF0aW9uIGxldCB2YWwgczEgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwg c3IxCiAjIHRlc3QgZm9yIERJU0NBUkQgQUxMIHdoZW4gYWxsIGludGVybmFsIHF1ZXVlcyBoYXZl IGFjdGlvbnMgcmVnaXN0ZXJlZAotcGVybXV0YXRpb24gY3JlYXRlMyBsZXQzIHMzIGNyZWF0ZTQg bGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKK3Blcm11dGF0aW9uIGNy ZWF0ZTMgbGV0MyBzMyBvX2NfZCBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2Nh cmQgc2MzIHN0YXRlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwu b3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRleCBjODkwNjc0OTBm Ny4uYWQ3Y2QxY2EzOTAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNx bC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApAQCAtNTgzMywy MCArNTgzMywyMCBAQCBDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogU0VUIFJP TEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZh cmNoYXIgQ09MTEFURSAiQyI7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAg ICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgQWNj ZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlp bmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAg ICAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAg ICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBUcmFuc2FjdGlvbmFs IGVuZCBhY3Rpb24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0r LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAg ICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUg dmFyMSBUTyBQVUJMSUM7CiBDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgZGVzY3Jp cHRpb24nOwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFt ZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAg ICB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAg RGVzY3JpcHRpb24gICAgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCi0gcHVibGljIHwg dmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9v d25lciB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8 IHNvbWUgZGVzY3JpcHRpb24KLSAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9v d25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRp b24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwg ICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgICBEZXNj cmlwdGlvbiAgICAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAg ICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwg cmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBk ZXNjcmlwdGlvbgorICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA9 ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJv dykKIAogRFJPUCBWQVJJQUJMRSB2YXIxOwpAQCAtNjMxNCw5ICs2MzE0LDkgQEAgTGlzdCBvZiBz Y2hlbWFzCiAoMCByb3dzKQogCiBcZFYgIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICBM aXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3du ZXIgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlw ZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0t LS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFs aWZpY2F0aW9ucy4KQEAgLTY0ODksOSArNjQ4OSw5IEBAIGltcHJvcGVyIHF1YWxpZmllZCBuYW1l ICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3Rh CiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgogaW1wcm9wZXIg cXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIu Im5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIFxkViAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZh cmlhYmxlIgotICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwg VHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVz CisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IFRyYW5zYWN0aW9u YWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3 aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBA IC02NjI4LDkgKzY2MjgsOSBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRlcwogKDAgcm93 cykKIAogXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIK LSAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBD b2xsYXRpb24gfCBPd25lciAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVt YSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBUcmFuc2FjdGlvbmFsIGVuZCBh Y3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0 ZWQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDM1ODUwMmZh MzFjLi41YzgxYjNlMzQzNSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTQ1LDExICs0NSwxMSBAQCBTRVQgUk9MRSBUTyByZWdyZXNz X3ZhcmlhYmxlX293bmVyOwogQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50Owog U0VUIFJPTEUgVE8gREVGQVVMVDsKIFxkVisgc3ZhcnRlc3QudmFyMQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxl cwotICBTY2hlbWEgIHwgTmFtZSB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVy ICAgICAgICAgIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAg ICAgIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBzdmFydGVzdCB8IHZhcjEgfCBp bnRlZ2VyIHwgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8IHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IAotICAgICAgICAgIHwgICAg ICB8ICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c192YXJpYWJsZV9yZWFkZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHZhcmlhYmxlcworICBTY2hlbWEgIHwgTmFtZSB8ICBUeXBlICAgfCBDb2xsYXRp b24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwg ICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgRGVzY3Jp cHRpb24gCistLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBzdmFy dGVzdCB8IHZhcjEgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25l ciB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncv cmVncmVzc192YXJpYWJsZV9vd25lcit8IAorICAgICAgICAgIHwgICAgICB8ICAgICAgICAgfCAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgcmVncmVzc192YXJpYWJsZV9yZWFkZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwg CiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsKQEAgLTEzODcsMyArMTM4 NywxMjMgQEAgU0VMRUNUIHZhcjE7CiAKIERFQUxMT0NBVEUgcDE7CiBEUk9QIFZBUklBQkxFIHZh cjE7CistLSB0ZW1wb3JhcnkgdmFyaWFibGVzCitDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFT IGludDsKKy0tIHRoaXMgdmlldyBzaG91bGQgYmUgdGVtcG9yYXJ5CitDUkVBVEUgVklFVyB2YXJf dGVzdF92aWV3IEFTIFNFTEVDVCB2YXIxOworTk9USUNFOiAgdmlldyAidmFyX3Rlc3RfdmlldyIg d2lsbCBiZSBhIHRlbXBvcmFyeSB2aWV3CitEUk9QIFZBUklBQkxFIHZhcjEgQ0FTQ0FERTsKK05P VElDRTogIGRyb3AgY2FzY2FkZXMgdG8gdmlldyB2YXJfdGVzdF92aWV3CitCRUdJTjsKKyAgQ1JF QVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIx ID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQor CitDT01NSVQ7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFy aWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAor KDEgcm93KQorCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vz c2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitC RUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7 CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEw MAorKDEgcm93KQorCitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQo KikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworIGNvdW50IAorLS0t LS0tLQorICAgICAwCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQo KikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAw CisoMSByb3cpCisKK0JFR0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBP TiBDT01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIERST1AgVkFSSUFCTEUgdmFyMTsK K0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ192YXJp YWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCiso MSByb3cpCisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNz aW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0JF R0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsK KyAgTEVUIHZhcjEgPSAxMDA7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKK1JPTExCQUNLOworLS0g c2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZh cm5hbWUgPSAndmFyMSc7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworLS0g c2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVz KCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworQkVHSU47CisgIENSRUFU RSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9 IDEwMDsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIFJPTExCQUNL IFRPIHMxOworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQor CitDT01NSVQ7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFy aWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAor KDEgcm93KQorCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vz c2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggMzQzNmI1N2U4 YzcuLjFmMmJhODExMWY0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsCkBAIC04MTMsNiArODEzLDcgQEAgQkVHSU47CiAgIERST1AgVkFSSUFCTEUgdmFyMTsK ICAgU0VMRUNUIHZhcjI7CiBST0xMQkFDSzsKKwogLS0gc2hvdWxkIGJlIG9rCiBTRUxFQ1QgdmFy MTsKIApAQCAtOTM5LDMgKzk0MCw2OCBAQCBTRUxFQ1QgdmFyMTsKIAogREVBTExPQ0FURSBwMTsK IERST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gdGVtcG9yYXJ5IHZhcmlhYmxlcworQ1JFQVRFIFRF TVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CistLSB0aGlzIHZpZXcgc2hvdWxkIGJlIHRlbXBvcmFy eQorQ1JFQVRFIFZJRVcgdmFyX3Rlc3RfdmlldyBBUyBTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJ QUJMRSB2YXIxIENBU0NBREU7CisKK0JFR0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIx IEFTIGludCBPTiBDT01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIx OworQ09NTUlUOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdf dmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxF Q1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitCRUdJTjsKKyAgQ1JF QVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIx ID0gMTAwOworICBTRUxFQ1QgdmFyMTsKK1JPTExCQUNLOworCistLSBzaG91bGQgYmUgemVybwor U0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsK Ky0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3Zhcmlh YmxlcygpOworCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04g Q09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitD T01NSVQ7CisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ192YXJp YWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBj b3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0JFR0lOOworICBDUkVBVEUg VEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAx MDA7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKK1JPTExCQUNLOworCistLSBzaG91bGQgYmUgemVy bworU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIx JzsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3Zh cmlhYmxlcygpOworCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQg T04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBTQVZFUE9JTlQgczE7CisgIERS T1AgVkFSSUFCTEUgdmFyMTsKKyAgUk9MTEJBQ0sgVE8gczE7CisgIFNFTEVDVCB2YXIxOworQ09N TUlUOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFi bGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291 bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xz L3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dAppbmRleCBiYjlkODMxNDgxZC4uOTFhOTYzZjk1NzAgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9w Z2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0CkBAIC0yNzg3LDYgKzI3ODcsNyBAQCBTdXBwb3J0UmVxdWVzdFdGdW5jTW9ub3RvbmljCiBT VmFyaWFibGUKIFNWYXJpYWJsZURhdGEKIFNWYXJpYWJsZVN0YXRlCitTVmFyaWFibGVYQWN0RHJv cEl0ZW0KIFN5bgogU3luY09wcwogU3luY1JlcENvbmZpZ0RhdGEKLS0gCjIuNDUuMgoK --000000000000bfc92e061dffd1c5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240724-0011-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Disposition: attachment; filename="v20240724-0011-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyzzqe2f10 RnJvbSBhYjU0NmZiOGVhNTYzNGU0M2M3NzY2NjVjMTBiY2NjYWM5OWIyYjg3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFdlZCwgMjAgTWFyIDIwMjQgMDg6Mzc6MTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDEx LzIwXSBJbXBsZW1lbnRhdGlvbiBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgY2xhdXNlCgpUaGlz IGlzIHNpbXBsZSBwYXRjaCAtIGp1c3QgYWRkIHNwZWNpYWwgZmxhZyB0byBzZXNzaW9uIHZhcmlh YmxlIG1lbW9yeSBlbnRyeS4KVGhlIGVudHJpZXMgd2l0aCBhY3RpdmUgdGhpcyBmbGFnIGFyZSBy ZW1vdmVkIGZyb20gc2Vzc2lvbnZhcnMgaGFzaCB0YWJsZQphdCB0cmFuc2FjdGlvbiBlbmQuIFRo ZSAiVFJBTlNBQ1RJT04gRU5EIiBpcyBzeW5vbnltcyBmb3IgIkNPTU1JVCBST0xMQkFDSyIKYnV0 IHRoZSAiVFJBTlNBQ1RJT04gRU5EIiBpcyBtb3JlIGlsbHVzdHJhdGl2ZSBhbmQgbGVzcyBjb25m dXNpbmcgdGhlbiAiQ09NTUlUIFJPTExCQUNLIi4KLS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMyArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf dmFyaWFibGUuc2dtbCAgICAgICAgIHwgMTMgKysrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuYyAgICAgICB8IDUxICsrKysrKysrKysrKysrKysrKysKIHNyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDExICsrKysKIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9iaW4vcGdfZHVt cC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8IDE4ICsrKysrKysKIHNyYy9iaW4vcHNx bC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAxICsKIC4uLi9pc29sYXRpb24vZXhw ZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgICB8ICA0ICstCiAuLi4vaXNvbGF0aW9uL3NwZWNz L3Nlc3Npb24tdmFyaWFibGUuc3BlYyAgICAgfCAgNCArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMzQgKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgMjAgKysrKysrKysKIDEzIGZpbGVz IGNoYW5nZWQsIDE1OCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwK aW5kZXggODFiNjI5YTlmNDEuLjg1MDA2MGFhYzlmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtOTgzOCw3 ICs5ODM4LDggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3Vu dCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT4KICAgICAg IDxwYXJhPgogICAgICAgIEFjdGlvbiBwZXJmb3JtZWQgYXQgZW5kIG9mIHRyYW5zYWN0aW9uOgot ICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0gbm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRl cmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLgorICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0g bm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRlcmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLAorICAg ICAgIDxsaXRlcmFsPnI8L2xpdGVyYWw+ID0gcmVzZXQgdGhlIHZhcmlhYmxlIHRvIGl0cyBkZWZh dWx0IHZhbHVlLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCA0ZDM3NjExYTFmZS4uMjE0ZjU2NWYxNzIg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMjcsNyArMjcsNyBAQCBQ b3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+CiBD UkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBd IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBs YWNlYWJsZT4gXQotICAgIFsgT04gQ09NTUlUIERST1AgXQorICAgIFsgeyBPTiBDT01NSVQgRFJP UCB8IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCB9IF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5v cHNpc2Rpdj4KICA8cmVmc2VjdDE+CkBAIC0xMjEsNiArMTIxLDE3IEBAIENSRUFURSBbIHsgVEVN UE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFy bGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtb24tdHJhbnNhY3Rpb24tZW5kLXJlc2V0 Ij4KKyAgICA8dGVybT48bGl0ZXJhbD5PTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ8L2xpdGVyYWw+ PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgPGxpdGVyYWw+ T04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUPC9saXRlcmFsPiBjbGF1c2UgY2F1c2VzIHRoZSBzZXNz aW9uCisgICAgICB2YXJpYWJsZSB0byBiZSByZXNldCB0byBpdHMgZGVmYXVsdCB2YWx1ZSB3aGVu IHRoZSB0cmFuc2FjdGlvbiBpcyBjb21taXR0ZWQKKyAgICAgIG9yIHJvbGxlZCBiYWNrLgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgIDwvdmFy aWFibGVsaXN0PgogIDwvcmVmc2VjdDE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwppbmRleCAzYTM0ODllYzc0My4uZDY1YTkyZDg1YTQgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTkxLDYgKzkxLDggQEAgdHlwZWRlZiBzdHJ1Y3Qg U1ZhcmlhYmxlRGF0YQogCXZvaWQJICAgKmRvbWFpbl9jaGVja19leHRyYTsKIAlMb2NhbFRyYW5z YWN0aW9uSWQgZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQ7CiAKKwlib29sCQlyZXNldF9hdF9lb3g7 CisKIAkvKgogCSAqIFRvcCBsZXZlbCBsb2NhbCB0cmFuc2FjdGlvbiBpZCBvZiB0aGUgbGFzdCB0 cmFuc2FjdGlvbiB0aGF0IGRyb3BwZWQgdGhlCiAJICogdmFyaWFibGUgaWYgYW55LiAgV2UgbmVl ZCB0aGlzIGluZm9ybWF0aW9uIHRvIGF2b2lkIGZyZWVpbmcgbWVtb3J5IGZvcgpAQCAtMTE4LDYg KzEyMCwxMiBAQCBzdGF0aWMgTWVtb3J5Q29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0ID0g TlVMTDsKIC8qIHRydWUgYWZ0ZXIgYWNjZXB0ZWQgc2ludmFsIG1lc3NhZ2UgKi8KIHN0YXRpYyBi b29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxzZTsKIAorLyoKKyAqIHRydWUsIHdoZW4gc29tZSB1 c2VkIHNlc3Npb24gdmFyaWFibGUgaGFzIE9OIENPTU1JVCBEUk9QCisgKiBvciBPTiBUUkFOU0FD VElPTiBFTkQgUkVTRVQgY2xhdXNlcworICovCitzdGF0aWMgYm9vbCBoYXNfc2Vzc2lvbl92YXJp YWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKKwogLyoKICAqIFRoZSBjb250ZW50IG9m IHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1vdmVkIGltbWVkaWF0ZWx5LiBXaGVuIGl0CiAg KiBpcyBwb3NzaWJsZSB3ZSBkbyB0aGlzIGF0IHRoZSB0cmFuc2FjdGlvbiBlbmQuIEJ1dCB3aGVu IHRoZSB0cmFuc2FjdGlvbiBmYWlsZWQsCkBAIC0zOTgsNiArNDA2LDMyIEBAIHJlbW92ZV9pbnZh bGlkX3Nlc3Npb25fdmFyaWFibGVzKGJvb2wgYXRFT1gpCiAJfQogfQogCisvKgorICogcmVtb3Zl IGVudHJpZXMgbWFya2VkIGFzICJyZXNldF9hdF9lb3giCisgKi8KK3N0YXRpYyB2b2lkCityZW1v dmVfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3godm9pZCkKK3sKKwlIQVNIX1NF UV9TVEFUVVMgc3RhdHVzOworCVNWYXJpYWJsZQlzdmFyOworCisJaWYgKCFzZXNzaW9udmFycykK KwkJcmV0dXJuOworCisJLyogbGVhdmUgcXVja2x5LCB3aGVuIHRoZXJlIGFyZSBub3QgdGhhdCB2 YXJpYWJsZXMgKi8KKwlpZiAoIWhhc19zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2Vv eCkKKwkJcmV0dXJuOworCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7CisJ d2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBO VUxMKQorCXsKKwkJaWYgKHN2YXItPnJlc2V0X2F0X2VveCkKKwkJCWhhc2hfc2VhcmNoKHNlc3Np b252YXJzLCAmc3Zhci0+dmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKKwl9CisKKwloYXNfc2Vz c2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKK30KKwogLyoKICAgKiBQ ZXJmb3JtIE9OIENPTU1JVCBEUk9QIGZvciB0ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMsCiAg ICogYW5kIHJlbW92ZSBhbGwgZHJvcHBlZCB2YXJpYWJsZXMgZnJvbSBtZW1vcnkuCkBAIC00MDUs NiArNDM5LDggQEAgcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoYm9vbCBhdEVPWCkK IHZvaWQKIEF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCkKIHsKKwly ZW1vdmVfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3goKTsKKwogCWlmIChpc0Nv bW1pdCkKIAl7CiAJCWlmICh4YWN0X2Ryb3BfaXRlbXMpCkBAIC01MTYsNiArNTUyLDIxIEBAIHNl dHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCkKIAlzdmFyLT5k b21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOwogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlk ID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKIAorCS8qCisJICogV2UgZG9uJ3QgbmVlZCB0 byBleHBsaWNpdGx5IHJlc2V0IHZhcmlhYmxlcyBtYXJrZWQgT04gQ09NTUlUIERST1AuIEl0CisJ ICogY2FuIGJlIGRvbmUgYnkgc2ludmFsIG1lc3NhZ2UgcHJvY2Vzc2luZy4gQnV0IHRoaXMgcHJv Y2Vzc2luZyBjYW4gYmUKKwkgKiBwb3N0cG9uZWQgZHVlIGFib3J0ZWQgdHJhbnNhY3Rpb24uIE9u IHNlY29uZCBoYW5kIHRoZXJlIGlzIG5vdCBhCisJICogcmVhc29uLCB3aHkgZG9uJ3QgZG8gaXQg YXQgdHJhbnNhY3Rpb24gZW5kIGltbWVkaWF0ZWx5LgorCSAqLworCWlmICh2YXJmb3JtLT52YXJ4 YWN0ZW5kYWN0aW9uID09IFZBUklBQkxFX1hBQ1RFTkRfUkVTRVQgfHwKKwkJdmFyZm9ybS0+dmFy eGFjdGVuZGFjdGlvbiA9PSBWQVJJQUJMRV9YQUNURU5EX0RST1ApCisJeworCQlzdmFyLT5yZXNl dF9hdF9lb3ggPSB0cnVlOworCQloYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9l b3ggPSB0cnVlOworCX0KKwllbHNlCisJCXN2YXItPnJlc2V0X2F0X2VveCA9IGZhbHNlOworCiAJ c3Zhci0+ZHJvcF9seGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAKIAlzdmFyLT5pc251bGwg PSB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggNDg1MjNlNmMzYjUuLmNkOTViMmJiOTdkIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKQEAgLTUyNTEsNiArNTI1MSw3IEBAIENyZWF0ZVNlc3Npb25WYXJTdG10OgogICogdHJh bnNhY3Rpb24gZW5kIGxpa2UgdGFibGVzLgogICovCiBYYWN0RW5kQWN0aW9uT3B0aW9uOiAgT04g Q09NTUlUIERST1AJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfRFJPUDsgfQorCQkJfCBPTiBU UkFOU0FDVElPTiBFTkRfUCBSRVNFVAkJCXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX1JFU0VUOyB9 CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfTk9PUDsgfQog CQk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5jCmluZGV4IDY0YTYzMzZhODk3Li41Mjk2YTI4MDc4YiAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jCkBAIC01MzMwLDYgKzUzMzAsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlp bnQJCQlpX3Zhcm5hbWVzcGFjZTsKIAlpbnQJCQlpX3ZhcnR5cGU7CiAJaW50CQkJaV92YXJ0eXBu YW1lOworCWludAkJCWlfdmFyeGFjdGVuZGFjdGlvbjsKIAlpbnQJCQlpX3Zhcm93bmVyOwogCWlu dAkJCWlfdmFyY29sbGF0aW9uOwogCWludAkJCWlfdmFyYWNsOwpAQCAtNTM0Nyw2ICs1MzQ4LDcg QEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJLyogR2V0IHRoZSB2YXJpYWJsZXMgaW4g Y3VycmVudCBkYXRhYmFzZS4gKi8KIAlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKIAkJCQkJICAi U0VMRUNUIHYudGFibGVvaWQsIHYub2lkLCB2LnZhcm5hbWUsXG4iCisJCQkJCSAgInYudmFyeGFj dGVuZGFjdGlvbixcbiIKIAkJCQkJICAidi52YXJuYW1lc3BhY2UsXG4iCiAJCQkJCSAgInYudmFy dHlwZSxcbiIKIAkJCQkJICAicGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2LnZhcnR5cGUsIHYudmFy dHlwbW9kKSBhcyB2YXJ0eXBuYW1lLFxuIgpAQCAtNTM2OSw2ICs1MzcxLDcgQEAgZ2V0VmFyaWFi bGVzKEFyY2hpdmUgKmZvdXQpCiAJaV92YXJuYW1lc3BhY2UgPSBQUWZudW1iZXIocmVzLCAidmFy bmFtZXNwYWNlIik7CiAJaV92YXJ0eXBlID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cGUiKTsKIAlp X3ZhcnR5cG5hbWUgPSBQUWZudW1iZXIocmVzLCAidmFydHlwbmFtZSIpOworCWlfdmFyeGFjdGVu ZGFjdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJ4YWN0ZW5kYWN0aW9uIik7CiAJaV92YXJjb2xs YXRpb24gPSBQUWZudW1iZXIocmVzLCAidmFyY29sbGF0aW9uIik7CiAKIAlpX3Zhcm93bmVyID0g UFFmbnVtYmVyKHJlcywgInZhcm93bmVyIik7CkBAIC01MzkyLDYgKzUzOTUsOSBAQCBnZXRWYXJp YWJsZXMoQXJjaGl2ZSAqZm91dCkKIAogCQl2YXJpbmZvW2ldLnZhcnR5cGUgPSBhdG9vaWQoUFFn ZXR2YWx1ZShyZXMsIGksIGlfdmFydHlwZSkpOwogCQl2YXJpbmZvW2ldLnZhcnR5cG5hbWUgPSBw Z19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFydHlwbmFtZSkpOworCQl2YXJpbmZvW2ld LnZhcnhhY3RlbmRhY3Rpb24gPQorCQkJcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zh cnhhY3RlbmRhY3Rpb24pKTsKKwogCQl2YXJpbmZvW2ldLnZhcmNvbGxhdGlvbiA9IGF0b29pZChQ UWdldHZhbHVlKHJlcywgaSwgaV92YXJjb2xsYXRpb24pKTsKIAogCQl2YXJpbmZvW2ldLmRhY2wu YWNsID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmFjbCkpOwpAQCAtNTQzNSw2 ICs1NDQxLDcgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5m byAqdmFyaW5mbykKIAlQUUV4cEJ1ZmZlciBxdWVyeTsKIAljaGFyCSAgICpxdWFsdmFybmFtZTsK IAljb25zdCBjaGFyICp2YXJ0eXBuYW1lOworCWNvbnN0IGNoYXIgKnZhcnhhY3RlbmRhY3Rpb247 CiAJT2lkCQkJdmFyY29sbGF0aW9uOwogCiAJLyogU2tpcCBpZiBub3QgdG8gYmUgZHVtcGVkICov CkBAIC01NDQ2LDYgKzU0NTMsNyBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3Qg VmFyaWFibGVJbmZvICp2YXJpbmZvKQogCiAJcXVhbHZhcm5hbWUgPSBwZ19zdHJkdXAoZm10UXVh bGlmaWVkRHVtcGFibGUodmFyaW5mbykpOwogCXZhcnR5cG5hbWUgPSB2YXJpbmZvLT52YXJ0eXBu YW1lOworCXZhcnhhY3RlbmRhY3Rpb24gPSB2YXJpbmZvLT52YXJ4YWN0ZW5kYWN0aW9uOwogCXZh cmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKIAogCWFwcGVuZFBRRXhwQnVmZmVy KGRlbHEsICJEUk9QIFZBUklBQkxFICVzO1xuIiwKQEAgLTU0NjQsNiArNTQ3Miw5IEBAIGR1bXBW YXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJCQkJ CQkJICBmbXRRdWFsaWZpZWREdW1wYWJsZShjb2xsKSk7CiAJfQogCisJaWYgKHN0cmNtcCh2YXJ4 YWN0ZW5kYWN0aW9uLCAiciIpID09IDApCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIE9O IFRSQU5TQUNUSU9OIEVORCBSRVNFVCIpOworCiAJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICI7 XG4iKTsKIAogCWlmICh2YXJpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9ERUZJTklU SU9OKQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmgKaW5kZXggMzZhNjlhMDgzMjQuLjA5MTA1MDdkOWFjIDEwMDY0NAotLS0g YS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmgKQEAgLTcwMiw2ICs3MDIsNyBAQCB0eXBlZGVmIHN0cnVjdCBfVmFyaWFibGVJbmZvCiAJRHVt cGFibGVBY2wgZGFjbDsKIAlPaWQJCQl2YXJ0eXBlOwogCWNoYXIJICAgKnZhcnR5cG5hbWU7CisJ Y2hhcgkgICAqdmFyeGFjdGVuZGFjdGlvbjsKIAljaGFyCSAgICp2YXJhY2w7CiAJY2hhcgkgICAq cnZhcmFjbDsKIAljaGFyCSAgICppbml0dmFyYWNsOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApp bmRleCBkNjJkYjI0MjI4Ny4uNzFmOGM3MTNmNjggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVt cC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBs CkBAIC0zOTQxLDYgKzM5NDEsMjQgQEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0sCiAKKwknQ1JF QVRFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUJyA9PiB7 CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29t bWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRF IFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTIgQVMgaW50ZWdlciBPTiBUUkFOU0FDVElPTiBF TkQgUkVTRVQ7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFZBUklBQkxFIGR1bXBf dGVzdC52YXJpYWJsZTIgQVMgaW50ZWdlciBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ7XEUveG0s CisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMs CisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNs dWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9 PiAxLAorCQl9LAorCX0sCisKIAknQ1JFQVRFIFZJRVcgdGVzdF92aWV3JyA9PiB7CiAJCWNyZWF0 ZV9vcmRlciA9PiA2MSwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFZJRVcgZHVtcF90ZXN0LnRl c3RfdmlldwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3Bz cWwvZGVzY3JpYmUuYwppbmRleCBmNmFhOGJjNWY2Yy4uNTBiYWU1MzkxMTMgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBA IC01MTgyLDYgKzUxODIsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJv b2wgdmVyYm9zZSkKIAkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZCh2LnZhcm93 bmVyKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgQ0FTRSB2LnZhcnhhY3RlbmRhY3Rpb25cbiIK IAkJCQkJICAiICAgIFdIRU4gJ2QnIFRIRU4gJ09OIENPTU1JVCBEUk9QJ1xuIgorCQkJCQkgICIg ICAgV0hFTiAncicgVEhFTiAnT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUJ1xuIgogCQkJCQkgICIg IEVORCBhcyBcIiVzXCJcbiIsCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJTY2hlbWEiKSwKIAkJCQkJ ICBnZXR0ZXh0X25vb3AoIk5hbWUiKSwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAppbmRleCBl M2FjYTI4NWEyYi4uMGZjODI0Y2ZlMTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKQEAg LTczLDYgKzczLDcgQEAgdHlwZWRlZiBlbnVtIFZhcmlhYmxlWGFjdEVuZEFjdGlvbgogewogCVZB UklBQkxFX1hBQ1RFTkRfTk9PUCA9ICduJywJLyogTk9PUCAqLwogCVZBUklBQkxFX1hBQ1RFTkRf RFJPUCA9ICdkJywJLyogT04gQ09NTUlUIERST1AgKi8KKwlWQVJJQUJMRV9YQUNURU5EX1JFU0VU ID0gJ3InLAkvKiBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgKi8KIH0JCQlWYXJpYWJsZVhhY3RF bmRBY3Rpb247CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lz b2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCBiL3NyYy90ZXN0L2lzb2xhdGlv bi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dAppbmRleCA5ZmJiZjkwNTdhNi4uMTlhMmU1 YThmNjQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZh cmlhYmxlLm91dAorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJp YWJsZS5vdXQKQEAgLTg1LDExICs4NSwxMiBAQCBteXZhcgogCiBzdGVwIHNyMTogUk9MTEJBQ0s7 CiAKLXN0YXJ0aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgb19jX2QgY3JlYXRlNCBs ZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQorc3RhcnRpbmcgcGVybXV0 YXRpb246IGNyZWF0ZTMgbGV0MyBzMyBvX2NfZCBvX2VveF9yIGNyZWF0ZTQgbGV0NCBkcm9wNCBk cm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgY2xlYW4gc3RhdGUKIHN0ZXAgY3JlYXRlMzogQ1JFQVRF IFZBUklBQkxFIG15dmFyMyBBUyB0ZXh0Owogc3RlcCBsZXQzOiBMRVQgbXl2YXIzID0gJ3Rlc3Qn Owogc3RlcCBzMzogQkVHSU47CiBzdGVwIG9fY19kOiBDUkVBVEUgVEVNUCBWQVJJQUJMRSBteXZh cl9vX2NfZCBBUyB0ZXh0IE9OIENPTU1JVCBEUk9QOworc3RlcCBvX2VveF9yOiBDUkVBVEUgVkFS SUFCTEUgbXl2YXJfb19lb3hfciBBUyB0ZXh0IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsgTEVU IG15dmFyX29fZW94X3IgPSAndGVzdCc7CiBzdGVwIGNyZWF0ZTQ6IENSRUFURSBWQVJJQUJMRSBt eXZhcjQgQVMgdGV4dDsKIHN0ZXAgbGV0NDogTEVUIG15dmFyNCA9ICd0ZXN0JzsKIHN0ZXAgZHJv cDQ6IERST1AgVkFSSUFCTEUgbXl2YXI0OwpAQCAtMTAyLDYgKzEwMyw3IEBAIHQKIAogc3RlcCBk aXNjYXJkOiBESVNDQVJEIFZBUklBQkxFUzsKIHN0ZXAgc2MzOiBDT01NSVQ7CitzdGVwIGNsZWFu OiBEUk9QIFZBUklBQkxFIG15dmFyX29fZW94X3I7CiBzdGVwIHN0YXRlOiBTRUxFQ1QgdmFybmFt ZSBGUk9NIHBnX3ZhcmlhYmxlOwogdmFybmFtZQogLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYyBiL3NyYy90ZXN0L2lzb2xh dGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKaW5kZXggNDVlNjVkNDA4NWQuLjVkMDg5 YzhhNGVkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJp YWJsZS5zcGVjCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxl LnNwZWMKQEAgLTI1LDEyICsyNSwxNCBAQCBzZXNzaW9uIHMzCiBzdGVwIHMzCQkJeyBCRUdJTjsg fQogc3RlcCBsZXQzCQl7IExFVCBteXZhcjMgPSAndGVzdCc7IH0KIHN0ZXAgb19jX2QJCXsgQ1JF QVRFIFRFTVAgVkFSSUFCTEUgbXl2YXJfb19jX2QgQVMgdGV4dCBPTiBDT01NSVQgRFJPUDsgfQor c3RlcCBvX2VveF9yCXsgQ1JFQVRFIFZBUklBQkxFIG15dmFyX29fZW94X3IgQVMgdGV4dCBPTiBU UkFOU0FDVElPTiBFTkQgUkVTRVQ7IExFVCBteXZhcl9vX2VveF9yID0gJ3Rlc3QnOyB9CiBzdGVw IGNyZWF0ZTQJeyBDUkVBVEUgVkFSSUFCTEUgbXl2YXI0IEFTIHRleHQ7IH0KIHN0ZXAgbGV0NAkJ eyBMRVQgbXl2YXI0ID0gJ3Rlc3QnOyB9CiBzdGVwIGRyb3A0CQl7IERST1AgVkFSSUFCTEUgbXl2 YXI0OyB9CiBzdGVwIGludmFsMwkJeyBTRUxFQ1QgQ09VTlQoKikgPj0gMCBGUk9NIHBnX2ZvcmVp Z25fdGFibGU7IH0KIHN0ZXAgZGlzY2FyZAl7IERJU0NBUkQgVkFSSUFCTEVTOyB9CiBzdGVwIHNj MwkJeyBDT01NSVQ7IH0KK3N0ZXAgY2xlYW4JCXsgRFJPUCBWQVJJQUJMRSBteXZhcl9vX2VveF9y OyB9CiBzdGVwIHN0YXRlCQl7IFNFTEVDVCB2YXJuYW1lIEZST00gcGdfdmFyaWFibGU7IH0KIAog c2Vzc2lvbiBzNApAQCAtNDgsNCArNTAsNCBAQCBwZXJtdXRhdGlvbiBsZXQgdmFsIGRiZyBkcm9w IGNyZWF0ZSBkYmcgdmFsCiAjIGNhbGxpbmcgdGhlIGRiZyBzdGVwIGFmdGVyIHRoZSBjb25jdXJy ZW50IGRyb3AKIHBlcm11dGF0aW9uIGxldCB2YWwgczEgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwg c3IxCiAjIHRlc3QgZm9yIERJU0NBUkQgQUxMIHdoZW4gYWxsIGludGVybmFsIHF1ZXVlcyBoYXZl IGFjdGlvbnMgcmVnaXN0ZXJlZAotcGVybXV0YXRpb24gY3JlYXRlMyBsZXQzIHMzIG9fY19kIGNy ZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKK3Blcm11dGF0 aW9uIGNyZWF0ZTMgbGV0MyBzMyBvX2NfZCBvX2VveF9yIGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9w MyBpbnZhbDMgZGlzY2FyZCBzYzMgY2xlYW4gc3RhdGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggNWM4MWIzZTM0MzUuLmUzZmU4Mjg1 ZGZhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz Lm91dApAQCAtMTUwNywzICsxNTA3LDM3IEBAIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Np b25fdmFyaWFibGVzKCk7CiAgICAgIDAKICgxIHJvdykKIAorQ1JFQVRFIFZBUklBQkxFIHZhcjEg QVMgaW50IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsKK0JFR0lOOworICBMRVQgdmFyMSA9IDEw MDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykKKworQ09N TUlUOworLS0gc2hvdWxkIGJlIE5VTEw7CitTRUxFQ1QgdmFyMSBJUyBOVUxMOworID9jb2x1bW4/ IAorLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworQkVHSU47CisgIExFVCB2YXIxID0gMTAwOwor ICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitST0xMQkFD SzsKKy0tIHNob3VsZCBiZSBOVUxMCitTRUxFQ1QgdmFyMSBJUyBOVUxMOworID9jb2x1bW4/IAor LS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IDFmMmJhODExMWY0Li4yMjIx ZjE3ZDU1ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApA QCAtMTAwNSwzICsxMDA1LDIzIEBAIENPTU1JVDsKIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Zh cmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CiAtLSBzaG91bGQgYmUgemVybwogU0VMRUNU IGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgaW50IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsKKworQkVHSU47CisgIExFVCB2 YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIE5VTEw7 CitTRUxFQ1QgdmFyMSBJUyBOVUxMOworCitCRUdJTjsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNF TEVDVCB2YXIxOworUk9MTEJBQ0s7CisKKy0tIHNob3VsZCBiZSBOVUxMCitTRUxFQ1QgdmFyMSBJ UyBOVUxMOworCitEUk9QIFZBUklBQkxFIHZhcjE7Ci0tIAoyLjQ1LjIKCg== --000000000000bfc92e061dffd1c5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240724-0012-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Disposition: attachment; filename="v20240724-0012-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyzzqe2p11 RnJvbSBmZjBmNzJhNzI3YWFmOGY5YjAwMGIyYjg3ZDNjMTRlNDFiOTJiMjY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAxMDo0NDoyMCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTIv MjBdIEltcGxlbWVudGF0aW9uIG9mIERFRkFVTFQgY2xhdXNlIC0gZGVmYXVsdCBleHByZXNzaW9u cwogZm9yIHNlc3Npb24gdmFyaWFibGVzCgpXaGVuIHRoZSBldmFsdWF0aW9uIG9mIGRlZmF1bHQg ZXhwcmVzc2lvbiBmYWlscywgd2UgcmVtb3ZlIHJlbGF0ZWQgZW50cnkgZnJvbSBzZXNzaW9udmFy cwpoYXNoIHRhYmxlLiBUaGVuIHNlc3Npb252YXJzIGNhbiBjb250YWluIG9ubHkgc3VjZXNzZnVs bHkgaW5pdGlhbGl6ZWQgdmFsdWVzLiBUaGVuIHdlIGRvbid0Cm5lZWQgc3BlY2lhbCBmbGFnIGZv ciBiYWRseSBpbml0aWFsaXplZCBzZXNzaW9uIHZhcmlhYmxlcy4KLS0tCiBkb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgOCArKwogZG9jL3NyYy9zZ21sL2Rk bC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTMgKystCiBkb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAyMSArKystLQogZG9jL3NyYy9zZ21sL3Jl Zi9kaXNjYXJkLnNnbWwgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL2NhdGFs b2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8IDI3ICsrKysrKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgODcgKysrKysrKysrKysrKysrKysrLQog c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgMTUgKysrLQog c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jICAgICAgICAgICAgICAgIHwgIDIgKwogc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAgICAgICAgICAgIHwgIDQgKwogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgMTQgKysrCiBzcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvYmluL3BnX2R1 bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAgfCAzNiArKysrKysrKwogc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAzICsKIHNyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZV9ub2RlLmggICAgICAgICAgICAgICB8ICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHNxbC5vdXQgICAgICAgICAgICB8IDM2ICsrKystLS0tCiAuLi4vcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCA3MyArKysrKysrKysrKysrKy0tCiBzcmMv dGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCA0OCArKysrKysrKysr CiAyMCBmaWxlcyBjaGFuZ2VkLCAzNTMgaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAppbmRleCA4NTAwNjBhYWM5Zi4uMTg5NzVhOWU1OGMgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CkBAIC05ODY2LDYgKzk4NjYsMTQgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0 ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwv cGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+dmFyZGVmZXhwcjwvc3RydWN0ZmllbGQ+IDx0eXBlPnBnX25v ZGVfdHJlZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBp bnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmFyaWFibGUgZGVmYXVsdCB2YWx1ZQorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91 cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9z cmMvc2dtbC9kZGwuc2dtbAppbmRleCBlYjQ5OWU0MTE4Zi4uZDNmMGQwOGNkOTkgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAg LTUzNDEsMTMgKzUzNDEsMTIgQEAgU0VMRUNUIGN1cnJlbnRfdXNlcl9pZDsKIAogICAgPHBhcmE+ CiAgICAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBsb2NhbCB0byB0aGUgY3Vy cmVudCBzZXNzaW9uLiBSZXRyaWV2aW5nCi0gICAgYSB2YXJpYWJsZSdzIHZhbHVlIHJldHVybnMg YSA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiwgdW5sZXNzIGl0cyB2YWx1ZSBoYXMKLSAgICBiZWVu IHNldCB0byBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uIHVzaW5nIHRoZQot ICAgIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4gVGhlIGNvbnRlbnQgb2YgYSB2YXJp YWJsZSBpcyBub3QKLSAgICB0cmFuc2FjdGlvbmFsLiBUaGlzIGlzIHRoZSBzYW1lIGFzIHJlZ3Vs YXIgdmFyaWFibGVzIGluIFBMIGxhbmd1YWdlcy4KLSAgICBUaGUgc2Vzc2lvbiB2YXJpYWJsZXMg Y2FuIGJlIHBlcnNpc3RlbnQgb3IgY2FuIGJlIHRlbXBvcmFyeS4gSW4gYm90aCBjYXNlcywKLSAg ICB0aGUgY29udGVudCBvZiBzZXNzaW9uIHZhcmlhYmxlcyBpcyB0ZW1wb3JhcnkgYW5kIG5vdCBz aGFyZWQgKGxpa2UgdGhlCi0gICAgY29udGVudCBvZiB0ZW1wb3JhcnkgdGFibGVzKS4KKyAgICBh IHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBlaXRoZXIgYSA8bGl0ZXJhbD5OVUxMPC9saXRlcmFs PiBvciBhIGRlZmF1bHQKKyAgICB2YWx1ZSwgdW5sZXNzIGl0cyB2YWx1ZSBoYXMgYmVlbiBzZXQg dG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQKKyAgICBzZXNzaW9uIHVzaW5nIHRoZSA8 Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuIFRoZSBjb250ZW50IG9mIGEgdmFyaWFibGUK KyAgICBpcyBub3QgdHJhbnNhY3Rpb25hbC4gVGhpcyBpcyB0aGUgc2FtZSBhcyByZWd1bGFyIHZh cmlhYmxlcyBpbiBQTCBsYW5ndWFnZXMuCisgICAgVGhlIHNlc3Npb24gdmFyaWFibGVzIGFyZSBw ZXJzaXN0ZW50LCBidXQgdGhlIGNvbnRlbnQgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMKKyAgICBpcyB0 ZW1wb3JhcnkgYW5kIG5vdCBzaGFyZWQgKGxpa2UgdGhlIGNvbnRlbnQgb2YgdGVtcG9yYXJ5IHRh YmxlcykuCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zhcmlh YmxlLnNnbWwKaW5kZXggMjE0ZjU2NWYxNzIuLmQ2MTk0MDE3MmIxIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTI3LDcgKzI3LDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVu dGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogQ1JFQVRFIFsgeyBURU1QT1JB UlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KLSAgICBb IHsgT04gQ09NTUlUIERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBdCisgICAgWyBE RUZBVUxUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZWZhdWx0X2V4cHI8L3JlcGxh Y2VhYmxlPiBdIFsgeyBPTiBDT01NSVQgRFJPUCB8IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCB9 IF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KICA8cmVmc2VjdDE+CkBAIC00Miwx MCArNDIsMTAgQEAgQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElG IE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InAKIAogICA8cGFyYT4KICAgIFRoZSB2 YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbG9jYWwgdG8gdGhlIGN1cnJlbnQgc2Vzc2lv bi4gUmV0cmlldmluZwotICAgYSBzZXNzaW9uIHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBlaXRo ZXIgYSBOVUxMLCB1bmxlc3MgaXRzIHZhbHVlIGlzIHNldCB0bwotICAgc29tZXRoaW5nIGVsc2Ug aW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB3aXRoIGEgTEVUIGNvbW1hbmQuIFRoZSBjb250ZW50IG9m Ci0gICBhIHNlc3Npb24gdmFyaWFibGUgaXMgbm90IHRyYW5zYWN0aW9uYWwuIFRoaXMgaXMgdGhl ICBzYW1lIGFzIHJlZ3VsYXIKLSAgIHZhcmlhYmxlcyBpbiBwcm9jZWR1cmFsIGxhbmd1YWdlcy4K KyAgIGEgc2Vzc2lvbiB2YXJpYWJsZSdzIHZhbHVlIHJldHVybnMgZWl0aGVyIGEgTlVMTCBvciBh IGRlZmF1bHQgdmFsdWUsIHVubGVzcworICAgaXRzIHZhbHVlIGlzIHNldCB0byBzb21ldGhpbmcg ZWxzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uIHdpdGggYSBMRVQKKyAgIGNvbW1hbmQuIFRoZSBj b250ZW50IG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBub3QgdHJhbnNhY3Rpb25hbC4gVGhpcyBp cyB0aGUKKyAgIHNhbWUgYXMgcmVndWxhciB2YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBsYW5ndWFn ZXMuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KQEAgLTEwOSw2ICsxMDksMTcgQEAgQ1JFQVRFIFsg eyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InAKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAg IDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1kZWZhdWx0Ij4KKyAgICA8dGVy bT48bGl0ZXJhbD5ERUZBVUxUIDxyZXBsYWNlYWJsZT5kZWZhdWx0X2V4cHI8L3JlcGxhY2VhYmxl PjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRo ZSA8bGl0ZXJhbD5ERUZBVUxUPC9saXRlcmFsPiBjbGF1c2UgY2FuIGJlIHVzZWQgdG8gYXNzaWdu IGEgZGVmYXVsdAorICAgICAgdmFsdWUgdG8gYSBzZXNzaW9uIHZhcmlhYmxlLiBUaGlzIGV4cHJl c3Npb24gaXMgZXZhbHVhdGVkIHdoZW4gdGhlIHNlc3Npb24KKyAgICAgIHZhcmlhYmxlIGlzIGZp cnN0IGFjY2Vzc2VkIGZvciByZWFkaW5nIGFuZCBoYWQgbm90IHlldCBiZWVuIGFzc2lnbmVkIGEg dmFsdWUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisKICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1vbi1jb21taXQtZHJv cCI+CiAgICAgPHRlcm0+PGxpdGVyYWw+T04gQ09NTUlUIERST1A8L2xpdGVyYWw+PC90ZXJtPgog ICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwKaW5kZXggNjFiOTY3ZjljOWIuLjZiMGNi OTUwMzRmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbApAQCAtNzEsNyArNzEsOCBAQCBESVNDQVJEIHsg QUxMIHwgUExBTlMgfCBTRVFVRU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIHwgVkFSSUFCTEVTIH0K ICAgICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgUmVzZXRzIHRoZSB2YWx1ZSBvZiBh bGwgc2Vzc2lvbiB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUKLSAgICAgIGlzIGxhdGVyIHJldXNl ZCwgaXQgaXMgcmUtaW5pdGlhbGl6ZWQgdG8gPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4uCisgICAg ICBpcyBsYXRlciByZXVzZWQsIGl0IGlzIHJlLWluaXRpYWxpemVkIHRvIGVpdGhlcgorICAgICAg PGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4gb3IgaXRzIGRlZmF1bHQgdmFsdWUuCiAgICAgIDwvcGFy YT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Zh cmlhYmxlLmMKaW5kZXggNzBiNjIyYWE2NzIuLjk0ZGZlYWM0ZjQ3IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z192YXJpYWJsZS5jCkBAIC0yNCw2ICsyNCw5IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJp YWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRl ICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfY29lcmNlLmgiCisjaW5jbHVk ZSAicGFyc2VyL3BhcnNlX2NvbGxhdGUuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfZXhwci5o IgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRp bnMuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKQEAgLTM3LDYgKzQwLDcgQEAgc3Rh dGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJ CQkJCQkJCQkgT2lkIHZhck93bmVyLAogCQkJCQkJCQkJIE9pZCB2YXJDb2xsYXRpb24sCiAJCQkJ CQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCQkJCQkJIE5vZGUgKnZhckRlZmV4cHIsCiAJ CQkJCQkJCQkgVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RFbmRBY3Rpb24pOwogCiAKQEAg LTUxLDYgKzU1LDcgQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJCQkJ T2lkIHZhck93bmVyLAogCQkJCU9pZCB2YXJDb2xsYXRpb24sCiAJCQkJYm9vbCBpZl9ub3RfZXhp c3RzLAorCQkJCU5vZGUgKnZhckRlZmV4cHIsCiAJCQkJVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZh clhhY3RFbmRBY3Rpb24pCiB7CiAJQWNsCQkgICAqdmFyYWNsOwpAQCAtMTE0LDYgKzExOSwxMSBA QCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAl2YWx1ZXNbQW51bV9wZ192 YXJpYWJsZV92YXJjb2xsYXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyQ29sbGF0aW9u KTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ4YWN0ZW5kYWN0aW9uIC0gMV0gPSBDaGFy R2V0RGF0dW0odmFyWGFjdEVuZEFjdGlvbik7CiAKKwlpZiAodmFyRGVmZXhwcikKKwkJdmFsdWVz W0FudW1fcGdfdmFyaWFibGVfdmFyZGVmZXhwciAtIDFdID0gQ1N0cmluZ0dldFRleHREYXR1bShu b2RlVG9TdHJpbmcodmFyRGVmZXhwcikpOworCWVsc2UKKwkJbnVsbHNbQW51bV9wZ192YXJpYWJs ZV92YXJkZWZleHByIC0gMV0gPSB0cnVlOworCiAJdmFyYWNsID0gZ2V0X3VzZXJfZGVmYXVsdF9h Y2woT0JKRUNUX1ZBUklBQkxFLCB2YXJPd25lciwKIAkJCQkJCQkJICB2YXJOYW1lc3BhY2UpOwog CWlmICh2YXJhY2wgIT0gTlVMTCkKQEAgLTE1MCw2ICsxNjAsMTEgQEAgY3JlYXRlX3ZhcmlhYmxl KGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJcmVjb3JkX29iamVjdF9hZGRyZXNzX2RlcGVuZGVuY2ll cygmbXlzZWxmLCBhZGRycywgREVQRU5ERU5DWV9OT1JNQUwpOwogCWZyZWVfb2JqZWN0X2FkZHJl c3NlcyhhZGRycyk7CiAKKwkvKiBkZXBlbmRlbmN5IG9uIGRlZmF1bHQgZXhwciAqLworCWlmICh2 YXJEZWZleHByKQorCQlyZWNvcmREZXBlbmRlbmN5T25FeHByKCZteXNlbGYsIChOb2RlICopIHZh ckRlZmV4cHIsCisJCQkJCQkJICAgTklMLCBERVBFTkRFTkNZX05PUk1BTCk7CisKIAkvKiBkZXBl bmRlbmN5IG9uIG93bmVyICovCiAJcmVjb3JkRGVwZW5kZW5jeU9uT3duZXIoVmFyaWFibGVSZWxh dGlvbklkLCB2YXJpZCwgdmFyT3duZXIpOwogCkBAIC0xODUsNiArMjAwLDcgQEAgQ3JlYXRlVmFy aWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAlP aWQJCQljb2xsYXRpb247CiAJT2lkCQkJdHlwY29sbGF0aW9uOwogCU9iamVjdEFkZHJlc3MgdmFy aWFibGU7CisJTm9kZQkgICAqY29va2VkX2RlZmF1bHQgPSBOVUxMOwogCiAJLyogQ2hlY2sgY29u c2lzdGVuY3kgb2YgYXJndW1lbnRzICovCiAJaWYgKHN0bXQtPlhhY3RFbmRBY3Rpb24gPT0gVkFS SUFCTEVfWEFDVEVORF9EUk9QCkBAIC0yMjYsNiArMjQyLDE2IEBAIENyZWF0ZVZhcmlhYmxlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQlmb3Jt YXRfdHlwZV9iZSh0eXBpZCkpLAogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10 LT5jb2xsQ2xhdXNlLT5sb2NhdGlvbikpKTsKIAorCWlmIChzdG10LT5kZWZleHByKQorCXsKKwkJ Y29va2VkX2RlZmF1bHQgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgc3RtdC0+ZGVmZXhwciwKKwkJ CQkJCQkJCSAgIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUKTsKKworCQljb29rZWRfZGVmYXVs dCA9IGNvZXJjZV90b19zcGVjaWZpY190eXBlKHBzdGF0ZSwKKwkJCQkJCQkJCQkJCSBjb29rZWRf ZGVmYXVsdCwgdHlwaWQsICJERUZBVUxUIik7CisJCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0 YXRlLCBjb29rZWRfZGVmYXVsdCk7CisJfQorCiAJdmFyaWFibGUgPSBjcmVhdGVfdmFyaWFibGUo c3RtdC0+dmFyaWFibGUtPnJlbG5hbWUsCiAJCQkJCQkJICAgbmFtZXNwYWNlaWQsCiAJCQkJCQkJ ICAgdHlwaWQsCkBAIC0yMzMsNiArMjU5LDcgQEAgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkJCQkJCQkgICB2YXJvd25lciwK IAkJCQkJCQkgICBjb2xsYXRpb24sCiAJCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0cywKKwkJ CQkJCQkgICBjb29rZWRfZGVmYXVsdCwKIAkJCQkJCQkgICBzdG10LT5YYWN0RW5kQWN0aW9uKTsK IAogCWVsb2coREVCVUcxLCAicmVjb3JkIGZvciBzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiAob2lk OiVkKSB3YXMgY3JlYXRlZCBpbiBwZ192YXJpYWJsZSIsCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmMKaW5kZXggZDY1YTkyZDg1YTQuLjM3ZmUwZmVjZDUwIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVk ZSAiZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCiAj aW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAib3B0aW1pemVyL29wdGltaXplci5oIgog I2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKICNpbmNsdWRlICJzdG9yYWdlL2xt Z3IuaCIKICNpbmNsdWRlICJzdG9yYWdlL3Byb2MuaCIKQEAgLTUyMywxMSArNTI0LDY4IEBAIEF0 RU9TdWJYYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCwKIAl9CiB9CiAKKy8qCisg KiBldmFsdWF0ZSBhbiBleHByZXNzaW9uCisgKi8KK3N0YXRpYyB2b2lkCitldmFsX2Fzc2lnbl9k ZWZleHByKFNWYXJpYWJsZSBzdmFyLCBIZWFwVHVwbGUgdHVwKQoreworCURhdHVtCQlkZWZleHBy X3ZhbHVlOworCWJvb2wJCWlzbnVsbDsKKworCUFzc2VydChzdmFyKTsKKwlBc3NlcnQoc3Zhci0+ aXNfdmFsaWQpOworCUFzc2VydChIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpOworCisJZGVmZXhwcl92 YWx1ZSA9IFN5c0NhY2hlR2V0QXR0cihWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCXR1cCwKKwkJCQkJ CQkJCUFudW1fcGdfdmFyaWFibGVfdmFyZGVmZXhwciwKKwkJCQkJCQkJCSZpc251bGwpOworCisJ aWYgKCFpc251bGwpCisJeworCQlFU3RhdGUJICAgKmVzdGF0ZTsKKwkJRXhwclN0YXRlICAqZGVm ZXhwcnM7CisJCUV4cHIJICAgKmRlZmV4cHI7CisJCWNoYXIJICAgKmRlZmV4cHJfc3RyOworCQlE YXR1bQkJdmFsdWU7CisJCU1lbW9yeUNvbnRleHQgb2xkY3h0OworCisJCWVzdGF0ZSA9IENyZWF0 ZUV4ZWN1dG9yU3RhdGUoKTsKKworCQlkZWZleHByX3N0ciA9IFRleHREYXR1bUdldENTdHJpbmco ZGVmZXhwcl92YWx1ZSk7CisJCWRlZmV4cHIgPSAoRXhwciAqKSBzdHJpbmdUb05vZGUoZGVmZXhw cl9zdHIpOworCisJCW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhlc3RhdGUtPmVzX3F1 ZXJ5X2N4dCk7CisKKwkJZGVmZXhwciA9IGV4cHJlc3Npb25fcGxhbm5lcigoRXhwciAqKSBkZWZl eHByKTsKKwkJZGVmZXhwcnMgPSBFeGVjSW5pdEV4cHIoZGVmZXhwciwgTlVMTCk7CisKKwkJdmFs dWUgPSBFeGVjRXZhbEV4cHJTd2l0Y2hDb250ZXh0KGRlZmV4cHJzLAorCQkJCQkJCQkJCSAgR2V0 UGVyVHVwbGVFeHByQ29udGV4dChlc3RhdGUpLAorCQkJCQkJCQkJCSAgJmlzbnVsbCk7CisKKwkJ TWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7CisKKwkJaWYgKCFpc251bGwpCisJCXsKKwkJ CW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhTVmFyaWFibGVNZW1vcnlDb250ZXh0KTsK KworCQkJc3Zhci0+dmFsdWUgPSBkYXR1bUNvcHkodmFsdWUsIHN2YXItPnR5cGJ5dmFsLCBzdmFy LT50eXBsZW4pOworCQkJc3Zhci0+aXNudWxsID0gZmFsc2U7CisKKwkJCU1lbW9yeUNvbnRleHRT d2l0Y2hUbyhvbGRjeHQpOworCQl9CisKKwkJRnJlZUV4ZWN1dG9yU3RhdGUoZXN0YXRlKTsKKwl9 Cit9CisKIC8qCiAgKiBVcGRhdGUgYXR0cmlidXRlcyBjYWNoZWQgaW4gc3ZhcgogICovCiBzdGF0 aWMgdm9pZAotc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlk KQorc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29s IGlzX3dyaXRlKQogewogCUhlYXBUdXBsZQl0dXA7CiAJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3Jt OwpAQCAtNTc3LDYgKzYzNSw5IEBAIHNldHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2 YXIsIE9pZCB2YXJpZCkKIAlzdmFyLT5oYXNodmFsdWUgPSBHZXRTeXNDYWNoZUhhc2hWYWx1ZTEo VkFSSUFCTEVPSUQsCiAJCQkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKIAorCWlm ICghaXNfd3JpdGUpCisJCWV2YWxfYXNzaWduX2RlZmV4cHIoc3ZhciwgdHVwKTsKKwogCVJlbGVh c2VTeXNDYWNoZSh0dXApOwogfQogCkBAIC02MDYsNyArNjY3LDcgQEAgc2V0X3Nlc3Npb25fdmFy aWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAkgKi8KIAlp ZiAoIXN2YXItPmlzX3ZhbGlkKQogCXsKLQkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZSgmbG9jc3Zh ciwgc3Zhci0+dmFyaWQpOworCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKCZsb2NzdmFyLCBzdmFy LT52YXJpZCwgZmFsc2UpOwogCQlfc3ZhciA9ICZsb2NzdmFyOwogCX0KIAllbHNlCkBAIC03NDgs NyArODA5LDI1IEBAIGdldF9zZXNzaW9uX3ZhcmlhYmxlKE9pZCB2YXJpZCkKIAkgKi8KIAlpZiAo IXN2YXItPmlzX3ZhbGlkKQogCXsKLQkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShzdmFyLCB2YXJp ZCk7CisJCS8qIGluIHRoaXMgY2FzZSB3ZSB3YW50IHRvIHVzZSBkZWZleHAgaWYgaXQgaXMgZGVm aW5lZCAqLworCQlQR19UUlkoKTsKKwkJeworCQkJLyoKKwkJCSAqIEluIHRoaXMgY2FzZSwgdGhl IHNldHVwIGNhbiBleGVjdXRlIGRlZmF1bHQgZXhwcmVzc2lvbi4gV2hlbgorCQkJICogdGhlIGV4 ZWN1dGlvbiBvZiBkZWZhdWx0IGV4cHJlc3Npb24gZmFpbHMsIHRoZW4gd2UgbmVlZCB0bworCQkJ ICogcmVtb3ZlIGVudHJ5IGZyb20gc2Vzc2lvbiB2YXJzLgorCQkJICovCisJCQlzZXR1cF9zZXNz aW9uX3ZhcmlhYmxlKHN2YXIsIHZhcmlkLCBmYWxzZSk7CisJCX0KKwkJUEdfQ0FUQ0goKTsKKwkJ eworCQkJLyogVGhpcyBlbnRyeSBjYW5ub3QgYmUgdmFsaWQsIHJlbW92ZSBmcm9tIHNlc3Npb252 YXJzICovCisJCQloYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLCBIQVNIX1JFTU9WRSwg TlVMTCk7CisKKwkJCS8qIHByb3BhZ2F0ZSB0aGUgZXJyb3IgKi8KKwkJCVBHX1JFX1RIUk9XKCk7 CisJCX0KKwkJUEdfRU5EX1RSWSgpOwogCiAJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJs ZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRl ZCBieSBSRUFEKSIsCiAJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxl X25hbWVzcGFjZSh2YXJpZCkpLApAQCAtODEyLDcgKzg5MSw3IEBAIFNldFNlc3Npb25WYXJpYWJs ZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCkKIAogCWlmICghZm91bmQpCiAJ ewotCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZhcmlkKTsKKwkJc2V0dXBfc2Vzc2lv bl92YXJpYWJsZShzdmFyLCB2YXJpZCwgdHJ1ZSk7CiAKIAkJZWxvZyhERUJVRzEsICJzZXNzaW9u IHZhcmlhYmxlIFwiJXMuJXNcIiAob2lkOiV1KSBoYXMgYXNzaWduZWQgZW50cnkgaW4gbWVtb3J5 IChlbWl0dGVkIGJ5IFdSSVRFKSIsCiAJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9u X3ZhcmlhYmxlX25hbWVzcGFjZShzdmFyLT52YXJpZCkpLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggY2Q5NWIy YmI5N2QuLjQ4MjkzMDkzNTE4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTY1Myw2ICs2NTMsNyBAQCBzdGF0 aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxp YXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUgPGxpc3Q+CQlwYXJ0aXRpb25zX2xpc3QKICV0eXBl IDxsaXN0PgkJaGFzaF9wYXJ0Ym91bmQKICV0eXBlIDxkZWZlbHQ+CQloYXNoX3BhcnRib3VuZF9l bGVtCisldHlwZSA8bm9kZT4JCU9wdFNlc3Npb25WYXJEZWZFeHByCiAKICV0eXBlIDxub2RlPglq c29uX2Zvcm1hdF9jbGF1c2UKIAkJCQlqc29uX2Zvcm1hdF9jbGF1c2Vfb3B0CkBAIC01MjIyLDMw ICs1MjIzLDM2IEBAIGNyZWF0ZV9leHRlbnNpb25fb3B0X2l0ZW06CiAgKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovCiAKIENyZWF0ZVNlc3Npb25WYXJTdG10OgotCQkJQ1JFQVRFIE9wdFRlbXAgVkFSSUFC TEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBYYWN0 RW5kQWN0aW9uT3B0aW9uCisJCQlDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBxdWFsaWZpZWRfbmFt ZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdFNlc3Npb25WYXJEZWZFeHBy IFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpu ID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwogCQkJCQkkNC0+cmVscGVyc2lzdGVu Y2UgPSAkMjsKIAkJCQkJbi0+dmFyaWFibGUgPSAkNDsKIAkJCQkJbi0+dHlwZU5hbWUgPSAkNjsK IAkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ3OwotCQkJCQluLT5YYWN0 RW5kQWN0aW9uID0gJDg7CisJCQkJCW4tPmRlZmV4cHIgPSAkODsKKwkJCQkJbi0+WGFjdEVuZEFj dGlvbiA9ICQ5OwogCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gZmFsc2U7CiAJCQkJCSQkID0gKE5v ZGUgKikgbjsKIAkJCQl9Ci0JCQl8IENSRUFURSBPcHRUZW1wIFZBUklBQkxFIElGX1AgTk9UIEVY SVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIFhh Y3RFbmRBY3Rpb25PcHRpb24KKwkJCXwgQ1JFQVRFIE9wdFRlbXAgVkFSSUFCTEUgSUZfUCBOT1Qg RVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2Ug T3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3Jl YXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7CiAJ CQkJCSQ3LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOwogCQkJCQluLT52YXJpYWJsZSA9ICQ3OwogCQkJ CQluLT50eXBlTmFtZSA9ICQ5OwogCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2Ug KikgJDEwOwotCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDExOworCQkJCQluLT5kZWZleHByID0g JDExOworCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDEyOwogCQkJCQluLT5pZl9ub3RfZXhpc3Rz ID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KIAkJOwogCitPcHRTZXNzaW9u VmFyRGVmRXhwcjogREVGQVVMVCBiX2V4cHIJCQkJCXsgJCQgPSAkMjsgfQorCQkJfCAvKiBFTVBU WSAqLwkJCQkJCQl7ICQkID0gTlVMTDsgfQorCQk7CisKIC8qCiAgKiBUZW1wb3Jhcnkgc2Vzc2lv biB2YXJpYWJsZXMgY2FuIGJlIGRyb3BwZWQgb24gc3VjY2Vzc2Z1bAogICogdHJhbnNhY3Rpb24g ZW5kIGxpa2UgdGFibGVzLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Fn Zy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCmluZGV4IGI0OTRjODg1ZTlmLi5j YjU3MjAzZTE4NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpAQCAtNDg1LDYgKzQ4NSw3IEBAIGNo ZWNrX2FnZ2xldmVsc19hbmRfY29uc3RyYWludHMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpl eHByKQogCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNl IEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgorCQljYXNlIEVYUFJfS0lORF9WQVJJQUJMRV9E RUZBVUxUOgogCiAJCQlpZiAoaXNBZ2cpCiAJCQkJZXJyID0gXygiYWdncmVnYXRlIGZ1bmN0aW9u cyBhcmUgbm90IGFsbG93ZWQgaW4gREVGQVVMVCBleHByZXNzaW9ucyIpOwpAQCAtOTM0LDYgKzkz NSw3IEBAIHRyYW5zZm9ybVdpbmRvd0Z1bmNDYWxsKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93 RnVuYyAqd2Z1bmMsCiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6 CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZB UklBQkxFX0RFRkFVTFQ6CiAJCQllcnIgPSBfKCJ3aW5kb3cgZnVuY3Rpb25zIGFyZSBub3QgYWxs b3dlZCBpbiBERUZBVUxUIGV4cHJlc3Npb25zIik7CiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJ TkRfSU5ERVhfRVhQUkVTU0lPTjoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IGYwZWJiY2Y1 YmViLi42MDA3NjU1NjMwZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4 cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC01ODMsNiArNTgz LDcgQEAgZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhQYXJzZUV4cHJLaW5kIHBf ZXhwcl9raW5kKQogCQljYXNlIEVYUFJfS0lORF9KT0lOX1VTSU5HOgogCQljYXNlIEVYUFJfS0lO RF9DWUNMRV9NQVJLOgogCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQljYXNlIEVY UFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJcmVzdWx0ID0gZmFsc2U7CiAJCQlicmVhazsK IAl9CkBAIC02NjgsNiArNjY5LDcgQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgogCQlj YXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgogCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VU OgorCQljYXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJLyogb2theSAqLwogCQkJ YnJlYWs7CiAKQEAgLTIwNzksNiArMjA4MSw3IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5rKQogCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5E X0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgorCQlj YXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJZXJyID0gXygiY2Fubm90IHVzZSBz dWJxdWVyeSBpbiBERUZBVUxUIGV4cHJlc3Npb24iKTsKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJf S0lORF9JTkRFWF9FWFBSRVNTSU9OOgpAQCAtMzQyOSw2ICszNDMyLDcgQEAgUGFyc2VFeHByS2lu ZE5hbWUoUGFyc2VFeHByS2luZCBleHByS2luZCkKIAkJCXJldHVybiAiQ0hFQ0siOwogCQljYXNl IEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVG QVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCXJldHVybiAiREVG QVVMVCI7CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJT046CiAJCQlyZXR1cm4gImlu ZGV4IGV4cHJlc3Npb24iOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1 bmMuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKaW5kZXggOWFhNGY2MDc2OGIu LmZjYWM2OTQ0NTVkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5j CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKQEAgLTI2MjAsNiArMjYyMCw3 IEBAIGNoZWNrX3NyZl9jYWxsX3BsYWNlbWVudChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmxh c3Rfc3JmLCBpbnQgbG9jYXRpb24pCiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1O X0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQ Ul9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6CiAJCQllcnIgPSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0 aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gREVGQVVMVCBleHByZXNzaW9ucyIpOwogCQkJYnJlYWs7 CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJT046CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCA1Mjk2 YTI4MDc4Yi4uOWY3MTk1MGM2MGYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNTMzMCw2ICs1MzMwLDcgQEAg Z2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJaV92YXJuYW1lc3BhY2U7CiAJaW50 CQkJaV92YXJ0eXBlOwogCWludAkJCWlfdmFydHlwbmFtZTsKKwlpbnQJCQlpX3ZhcmRlZmV4cHI7 CiAJaW50CQkJaV92YXJ4YWN0ZW5kYWN0aW9uOwogCWludAkJCWlfdmFyb3duZXI7CiAJaW50CQkJ aV92YXJjb2xsYXRpb247CkBAIC01MzU0LDYgKzUzNTUsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2 ZSAqZm91dCkKIAkJCQkJICAicGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2LnZhcnR5cGUsIHYudmFy dHlwbW9kKSBhcyB2YXJ0eXBuYW1lLFxuIgogCQkJCQkgICJDQVNFIFdIRU4gdi52YXJjb2xsYXRp b24gPD4gdC50eXBjb2xsYXRpb24gIgogCQkJCQkgICJUSEVOIHYudmFyY29sbGF0aW9uIEVMU0Ug MCBFTkQgQVMgdmFyY29sbGF0aW9uLFxuIgorCQkJCQkgICJwZ19jYXRhbG9nLnBnX2dldF9leHBy KHYudmFyZGVmZXhwciwwKSBhcyB2YXJkZWZleHByLFxuIgogCQkJCQkgICJ2LnZhcm93bmVyLFxu IgogCQkJCQkgICJ2LnZhcmFjbCxcbiIKIAkJCQkJICAiYWNsZGVmYXVsdCgnVicsIHYudmFyb3du ZXIpIEFTIGFjbGRlZmF1bHRcbiIKQEAgLTUzNzEsNiArNTM3Myw3IEBAIGdldFZhcmlhYmxlcyhB cmNoaXZlICpmb3V0KQogCWlfdmFybmFtZXNwYWNlID0gUFFmbnVtYmVyKHJlcywgInZhcm5hbWVz cGFjZSIpOwogCWlfdmFydHlwZSA9IFBRZm51bWJlcihyZXMsICJ2YXJ0eXBlIik7CiAJaV92YXJ0 eXBuYW1lID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cG5hbWUiKTsKKwlpX3ZhcmRlZmV4cHIgPSBQ UWZudW1iZXIocmVzLCAidmFyZGVmZXhwciIpOwogCWlfdmFyeGFjdGVuZGFjdGlvbiA9IFBRZm51 bWJlcihyZXMsICJ2YXJ4YWN0ZW5kYWN0aW9uIik7CiAJaV92YXJjb2xsYXRpb24gPSBQUWZudW1i ZXIocmVzLCAidmFyY29sbGF0aW9uIik7CiAKQEAgLTU0MDksNiArNTQxMiwxMSBAQCBnZXRWYXJp YWJsZXMoQXJjaGl2ZSAqZm91dCkKIAkJLyogRGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBkdW1w IGl0ICovCiAJCXNlbGVjdER1bXBhYmxlT2JqZWN0KCYodmFyaW5mb1tpXS5kb2JqKSwgZm91dCk7 CiAKKwkJaWYgKFBRZ2V0aXNudWxsKHJlcywgaSwgaV92YXJkZWZleHByKSkKKwkJCXZhcmluZm9b aV0udmFyZGVmZXhwciA9IE5VTEw7CisJCWVsc2UKKwkJCXZhcmluZm9baV0udmFyZGVmZXhwciA9 IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJkZWZleHByKSk7CisKIAkJLyogRG8g bm90IHRyeSB0byBkdW1wIEFDTCBpZiBubyBBQ0wgZXhpc3RzLiAqLwogCQlpZiAoIVBRZ2V0aXNu dWxsKHJlcywgaSwgaV92YXJhY2wpKQogCQkJdmFyaW5mb1tpXS5kb2JqLmNvbXBvbmVudHMgfD0g RFVNUF9DT01QT05FTlRfQUNMOwpAQCAtNTQ0MSw2ICs1NDQ5LDcgQEAgZHVtcFZhcmlhYmxlKEFy Y2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAlQUUV4cEJ1ZmZlciBx dWVyeTsKIAljaGFyCSAgICpxdWFsdmFybmFtZTsKIAljb25zdCBjaGFyICp2YXJ0eXBuYW1lOwor CWNvbnN0IGNoYXIgKnZhcmRlZmV4cHI7CiAJY29uc3QgY2hhciAqdmFyeGFjdGVuZGFjdGlvbjsK IAlPaWQJCQl2YXJjb2xsYXRpb247CiAKQEAgLTU0NTMsNiArNTQ2Miw3IEBAIGR1bXBWYXJpYWJs ZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAKIAlxdWFsdmFy bmFtZSA9IHBnX3N0cmR1cChmbXRRdWFsaWZpZWREdW1wYWJsZSh2YXJpbmZvKSk7CiAJdmFydHlw bmFtZSA9IHZhcmluZm8tPnZhcnR5cG5hbWU7CisJdmFyZGVmZXhwciA9IHZhcmluZm8tPnZhcmRl ZmV4cHI7CiAJdmFyeGFjdGVuZGFjdGlvbiA9IHZhcmluZm8tPnZhcnhhY3RlbmRhY3Rpb247CiAJ dmFyY29sbGF0aW9uID0gdmFyaW5mby0+dmFyY29sbGF0aW9uOwogCkBAIC01NDcyLDYgKzU0ODIs MTAgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFy aW5mbykKIAkJCQkJCQkgIGZtdFF1YWxpZmllZER1bXBhYmxlKGNvbGwpKTsKIAl9CiAKKwlpZiAo dmFyZGVmZXhwcikKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIgREVGQVVMVCAlcyIsCisJ CQkJCQkgIHZhcmRlZmV4cHIpOworCiAJaWYgKHN0cmNtcCh2YXJ4YWN0ZW5kYWN0aW9uLCAiciIp ID09IDApCiAJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIE9OIFRSQU5TQUNUSU9OIEVORCBS RVNFVCIpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCAwOTEwNTA3ZDlhYy4uZTJjYjA2Y2M4ODMgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuaApAQCAtNzAyLDYgKzcwMiw3IEBAIHR5cGVkZWYgc3RydWN0IF9WYXJpYWJsZUluZm8K IAlEdW1wYWJsZUFjbCBkYWNsOwogCU9pZAkJCXZhcnR5cGU7CiAJY2hhcgkgICAqdmFydHlwbmFt ZTsKKwljaGFyCSAgICp2YXJkZWZleHByOwogCWNoYXIJICAgKnZhcnhhY3RlbmRhY3Rpb247CiAJ Y2hhcgkgICAqdmFyYWNsOwogCWNoYXIJICAgKnJ2YXJhY2w7CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1w LnBsCmluZGV4IDcxZjhjNzEzZjY4Li5mZjVjMDEwMjBlNCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w Z19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1 bXAucGwKQEAgLTM5NTksNiArMzk1OSw0MiBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAor CSdDUkVBVEUgVkFSSUFCTEUgdGVzdF92YXJpYWJsZSBERUZBVUxUJyA9PiB7CisJCWFsbF9ydW5z ICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQlj cmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFZBUklBQkxFIGR1 bXBfdGVzdC52YXJpYWJsZTMgQVMgaW50ZWdlciBERUZBVUxUIDEwOycsCisJCXJlZ2V4cCA9PiBx ci9eCisJCQlcUUNSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUzIEFTIGludGVnZXIg REVGQVVMVCAxMDtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBf dGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5s aWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1w X21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKworCSdDUkVBVEUgVkFSSUFCTEUgdGVz dF92YXJpYWJsZSBERUZBVUxUIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCcgPT4geworCQlhbGxf cnVucyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxsICAgID0+ICdDUkVBVEUgLi4uIGNvbW1hbmRzJywK KwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBWQVJJQUJM RSBkdW1wX3Rlc3QudmFyaWFibGU0IEFTIGludGVnZXIgREVGQVVMVCAxMCBPTiBUUkFOU0FDVElP TiBFTkQgUkVTRVQnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVkFSSUFCTEUgZHVt cF90ZXN0LnZhcmlhYmxlNCBBUyBpbnRlZ2VyIERFRkFVTFQgMTAgT04gVFJBTlNBQ1RJT04gRU5E IFJFU0VUO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0 X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2Ug PT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVh c3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NSRUFURSBWSUVXIHRlc3Rfdmlldycg PT4gewogCQljcmVhdGVfb3JkZXIgPT4gNjEsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBWSUVX IGR1bXBfdGVzdC50ZXN0X3ZpZXcKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5j IGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggNTBiYWU1MzkxMTMuLjU2NjU1OTMxNmVl IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYwpAQCAtNTE1OSw3ICs1MTU5LDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFy ICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJUFFFeHBCdWZmZXJEYXRhIGJ1ZjsKIAlQR3Jlc3Vs dCAgICpyZXM7CiAJcHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQucG9wdDsKLQlzdGF0aWMgY29u c3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisJc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNs YXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl LCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKIAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTgwMDAwKQog CXsKQEAgLTUxODAsNiArNTE4MCw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVy biwgYm9vbCB2ZXJib3NlKQogCQkJCQkgICIgIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBnX2Nh dGFsb2cucGdfY29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSBidFxuIgogCQkJCQkgICIg ICBXSEVSRSBjLm9pZCA9IHYudmFyY29sbGF0aW9uIEFORCBidC5vaWQgPSB2LnZhcnR5cGUgQU5E IHYudmFyY29sbGF0aW9uIDw+IGJ0LnR5cGNvbGxhdGlvbikgYXMgXCIlc1wiLFxuIgogCQkJCQkg ICIgIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFzIFwiJXNcIixcbiIK KwkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF9leHByKHYudmFyZGVmZXhwciwgMCkgYXMgXCIl c1wiLFxuIgogCQkJCQkgICIgIENBU0Ugdi52YXJ4YWN0ZW5kYWN0aW9uXG4iCiAJCQkJCSAgIiAg ICBXSEVOICdkJyBUSEVOICdPTiBDT01NSVQgRFJPUCdcbiIKIAkJCQkJICAiICAgIFdIRU4gJ3In IFRIRU4gJ09OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCdcbiIKQEAgLTUxODksNiArNTE5MCw3IEBA IGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCQkJCQkg IGdldHRleHRfbm9vcCgiVHlwZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiQ29sbGF0aW9uIiks CiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiRGVm YXVsdCIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIikp OwogCiAJaWYgKHZlcmJvc2UpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Zh cmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggMGZjODI0 Y2ZlMTUuLjBhOTcyYWE1ZDA0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Zh cmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCkBAIC02Niw2 ICs2Niw5IEBAIENBVEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJpYWJsZVJlbGF0aW9uSWQpCiAJ LyogYWNjZXNzIHBlcm1pc3Npb25zICovCiAJYWNsaXRlbQkJdmFyYWNsWzFdIEJLSV9ERUZBVUxU KF9udWxsXyk7CiAKKwkvKiBsaXN0IG9mIGV4cHJlc3Npb24gdHJlZXMgZm9yIHZhcmlhYmxlIGRl ZmF1bHQgKE5VTEwgaWYgbm9uZSkgKi8KKwlwZ19ub2RlX3RyZWUgdmFyZGVmZXhwciBCS0lfREVG QVVMVChfbnVsbF8pOworCiAjZW5kaWYKIH0gRm9ybURhdGFfcGdfdmFyaWFibGU7CiAKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaAppbmRleCA1NmUyODRkYzA5Yy4uZWQwYTIxNGZmZTQgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmgKQEAgLTM0NTUsNiArMzQ1NSw3IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZVNl c3Npb25WYXJTdG10CiAJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0aGUgdHlwZSBvZiB2YXJp YWJsZSAqLwogCUNvbGxhdGVDbGF1c2UgKmNvbGxDbGF1c2U7CiAJYm9vbAkJaWZfbm90X2V4aXN0 czsJLyogZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cyAqLworCU5vZGUJICAgKmRlZmV4 cHI7CQkvKiBkZWZhdWx0IGV4cHJlc3Npb24gKi8KIAljaGFyCQlYYWN0RW5kQWN0aW9uOwkvKiBv biB0cmFuc2FjdGlvbiBlbmQgYWN0aW9uICovCiB9IENyZWF0ZVNlc3Npb25WYXJTdG10OwogCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oIGIvc3JjL2luY2x1ZGUv cGFyc2VyL3BhcnNlX25vZGUuaAppbmRleCA2ZDkzNjkxOTY1OS4uYmFiYTIyZWQ4NDAgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUv cGFyc2VyL3BhcnNlX25vZGUuaApAQCAtODQsNiArODQsNyBAQCB0eXBlZGVmIGVudW0gUGFyc2VF eHByS2luZAogCUVYUFJfS0lORF9DWUNMRV9NQVJLLAkJLyogY3ljbGUgbWFyayB2YWx1ZSAqLwog CUVYUFJfS0lORF9BU1NJR05fVEFSR0VULAkvKiBQTC9wZ1NRTCBhc3NpZ25tZW50IHRhcmdldCAq LwogCUVYUFJfS0lORF9MRVRfVEFSR0VULAkJLyogTEVUIHRhcmdldCAqLworCUVYUFJfS0lORF9W QVJJQUJMRV9ERUZBVUxULCAvKiBkZWZhdWx0IHZhbHVlIGZvciBzZXNzaW9uIHZhcmlhYmxlICov CiB9IFBhcnNlRXhwcktpbmQ7CiAKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXgg YWQ3Y2QxY2EzOTAuLmNhMTMxZTU2OGViIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQK QEAgLTU4MzMsMjAgKzU4MzMsMjAgQEAgQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25l cjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJs ZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAg ICAgIE93bmVyICAgICAgICAgIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNjZXNzIHBy aXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2 YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293 bmVyIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAg IHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IERlZmF1bHQgfCBUcmFuc2Fj dGlvbmFsIGVuZCBhY3Rpb24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAorLS0t LS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZh cnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAK IEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKIENPTU1FTlQgT04gVkFS SUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CiBcZFYrIHZhcjEKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAg ICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBUcmFuc2FjdGlvbmFs IGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAg ICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFy eWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVf b3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCi0gICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAg ICAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hl bWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVy ICAgICAgICAgIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAg ICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24g ICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAg ICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293 bmVyK3wgc29tZSBkZXNjcmlwdGlvbgorICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25lciAgICAgICAgICAg ICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUgdmFyMTsKQEAgLTYzMTQs OSArNjMxNCw5IEBAIExpc3Qgb2Ygc2NoZW1hcwogKDAgcm93cykKIAogXGRWICJuby5zdWNoLnZh cmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNj aGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBUcmFuc2FjdGlvbmFsIGVu ZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3du ZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0t Ky0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVh bGlmaWNhdGlvbnMuCkBAIC02NDg5LDkgKzY0ODksOSBAQCBpbXByb3BlciBxdWFsaWZpZWQgbmFt ZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0 YQogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIGltcHJvcGVy IHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEi LiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBcZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52 YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBT Y2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93 bmVyIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0t LSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBjdXJyZW50IGRhdGFiYXNl IGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpAQCAtNjYyOCw5ICs2NjI4LDkgQEAg TGlzdCBvZiB0ZXh0IHNlYXJjaCB0ZW1wbGF0ZXMKICgwIHJvd3MpCiAKIFxkViByZWdyZXNzaW9u LiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRp b24gfCBPd25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSst LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwg TmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFs IGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2Fp biwgYnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRp b25zLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dAppbmRleCBlM2ZlODI4NWRmYS4uOWM0MmY4ZTRlMDkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC00NSwxMSArNDUsMTEgQEAgU0VU IFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSBzdmFydGVz dC52YXIxIEFTIGludDsKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBcZFYrIHN2YXJ0ZXN0LnZhcjEK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gIFNjaGVtYSAgfCBOYW1lIHwgIFR5cGUg ICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBUcmFuc2FjdGlvbmFsIGVu ZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAg ICAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLQotIHN2YXJ0ZXN0IHwgdmFyMSB8IGludGVnZXIgfCAgICAgICAgICAgfCByZWdyZXNzX3Zh cmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJs ZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgCi0gICAgICAgICAgfCAgICAgIHwg ICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3NfdmFyaWFi bGVfb3duZXIgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyAgU2NoZW1h ICB8IE5hbWUgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8 IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nl c3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0r LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBzdmFydGVzdCB8IHZh cjEgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3 L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKKyAgICAgICAgICB8ICAgICAgfCAgICAgICAgIHwg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3NfdmFyaWFi bGVfb3duZXIgfCAKICgxIHJvdykKIAogRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIxOwpAQCAt MTU0MSwzICsxNTQxLDY2IEBAIFNFTEVDVCB2YXIxIElTIE5VTEw7CiAoMSByb3cpCiAKIERST1Ag VkFSSUFCTEUgdmFyMTsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQor UkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAndmFydGVzdF9meCBleGVj dXRlZCc7CisgIFJFVFVSTiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIGludCBERUZBVUxUIHZhcnRlc3RfZngoKTsKKy0tIHZhcnRlc3RfZngg c2hvdWxkIGJlIHByb3RlY3RlZCBieSBkZXAsIHNob3VsZCBmYWlsCitEUk9QIEZVTkNUSU9OIHZh cnRlc3RfZngoKTsKK0VSUk9SOiAgY2Fubm90IGRyb3AgZnVuY3Rpb24gdmFydGVzdF9meCgpIGJl Y2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHNlc3Npb24gdmFyaWFi bGUgdmFyMSBkZXBlbmRzIG9uIGZ1bmN0aW9uIHZhcnRlc3RfZngoKQorSElOVDogIFVzZSBEUk9Q IC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KKy0tIHNob3Vs ZCBiZSBvaworU0VMRUNUIHZhcjE7CitOT1RJQ0U6ICB2YXJ0ZXN0X2Z4IGV4ZWN1dGVkCisgdmFy MSAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworLS0gdGhlIGRlZmV4cHIgc2hvdWxkIGJlIGV2 YWx1YXRlZCBvbmx5IG9uY2UKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAwCiso MSByb3cpCisKK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gaW4gdGhpcyBjYXNlLCB0aGUgZGVmZXhw ciBzaG91bGQgbm90IGJlIGV2YWx1YXRlZAorTEVUIHZhcjEgPSAxMDA7CitTRUxFQ1QgdmFyMTsK KyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitESVNDQVJEIFZBUklBQkxFUzsKK0NS RUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVUVVJOUyBpbnQgQVMgJCQK K0JFR0lOCisgIFJBSVNFIEVYQ0VQVElPTiAndmFydGVzdF9meCBpcyBleGVjdXRpbmcnOworICBS RVRVUk4gMDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CistLSBzaG91bGQgdG8gZmFpbCwg YnV0IG5vdCB0byBjcmFzaAorU0VMRUNUIHZhcjE7CitFUlJPUjogIHZhcnRlc3RfZnggaXMgZXhl Y3V0aW5nCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gdmFydGVzdF9meCgpIGxpbmUgMyBh dCBSQUlTRQorLS0gYWdhaW4KK1NFTEVDVCB2YXIxOworRVJST1I6ICB2YXJ0ZXN0X2Z4IGlzIGV4 ZWN1dGluZworQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHZhcnRlc3RfZngoKSBsaW5lIDMg YXQgUkFJU0UKKy0tIGJ1dCB3ZSBjYW4gd3JpdGUKK0xFVCB2YXIxID0gMTAwOworU0VMRUNUIHZh cjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIx OworRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNz aW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggMjIyMWYxN2Q1NWQuLjhiNDMyMTc3OTgwIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xMDI1LDMgKzEwMjUs NTEgQEAgUk9MTEJBQ0s7CiBTRUxFQ1QgdmFyMSBJUyBOVUxMOwogCiBEUk9QIFZBUklBQkxFIHZh cjE7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVUVVJOUyBp bnQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAndmFydGVzdF9meCBleGVjdXRlZCc7Cisg IFJFVFVSTiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgaW50IERFRkFVTFQgdmFydGVzdF9meCgpOworCistLSB2YXJ0ZXN0X2Z4IHNob3Vs ZCBiZSBwcm90ZWN0ZWQgYnkgZGVwLCBzaG91bGQgZmFpbAorRFJPUCBGVU5DVElPTiB2YXJ0ZXN0 X2Z4KCk7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKKy0tIHRoZSBkZWZleHBy IHNob3VsZCBiZSBldmFsdWF0ZWQgb25seSBvbmNlCitTRUxFQ1QgdmFyMTsKKworRElTQ0FSRCBW QVJJQUJMRVM7CisKKy0tIGluIHRoaXMgY2FzZSwgdGhlIGRlZmV4cHIgc2hvdWxkIG5vdCBiZSBl dmFsdWF0ZWQKK0xFVCB2YXIxID0gMTAwOworU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgVkFSSUFC TEVTOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMg aW50IEFTICQkCitCRUdJTgorICBSQUlTRSBFWENFUFRJT04gJ3ZhcnRlc3RfZnggaXMgZXhlY3V0 aW5nJzsKKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCistLSBzaG91 bGQgdG8gZmFpbCwgYnV0IG5vdCB0byBjcmFzaAorU0VMRUNUIHZhcjE7CisKKy0tIGFnYWluCitT RUxFQ1QgdmFyMTsKKworLS0gYnV0IHdlIGNhbiB3cml0ZQorTEVUIHZhcjEgPSAxMDA7CitTRUxF Q1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4 KCk7Ci0tIAoyLjQ1LjIKCg== --000000000000bfc92e061dffd1c5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240724-0013-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Disposition: attachment; filename="v20240724-0013-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyzzqe2v12 RnJvbSBkYjQxYjYzYjU2OTA2MzU4NDNmYWY2ZWY1MThlZjM0ZDlmYTdmNmNhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAxNDo0MDozNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMv MjBdIEltcGxlbWVudGF0aW9uIG9mIE5PVCBOVUxMIGFuZCBJTU1VVEFCTEUgY2xhdXNlcwoKQWxt b3N0IHRyaXZpYWwgcGF0Y2ggLSBwc3FsLCBwZ19kdW1wIHN1cHBvcnQKLS0tCiBkb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMjAgKysrCiBkb2Mvc3JjL3Nn bWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGRvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAzMSArKystCiBzcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgMTMgKysKIHNyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8ICA2OSArKysrKysrKy0KIHNyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICA0MSArKystLQogc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgIDE5ICsrLQogc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9i aW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICAzNiArKysrKwogc3Jj L2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBzcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAgICAgfCAgMTEgKy0KIHNyYy9p bmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAgNiArCiBzcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDM2ICsrLS0tCiAuLi4vcmVn cmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAxNDMgKysrKysrKysrKysr KysrKystCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAx MTQgKysrKysrKysrKysrKysKIDE2IGZpbGVzIGNoYW5nZWQsIDUwNyBpbnNlcnRpb25zKCspLCA0 OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBi L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IDE4OTc1YTllNThjLi45NmNjODhlNmNm NiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL2NhdGFsb2dzLnNnbWwKQEAgLTk4MzQsNiArOTgzNCwyNiBAQCBTQ1JBTS1TSEEtMjU2JDxy ZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNl YWJsZT4mbAogCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD52YXJub3RudWxsPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRydWUgaWYgdGhlIHNlc3Npb24gdmFyaWFibGUg ZG9lc24ndCBhbGxvdyBudWxsIHZhbHVlcy4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UuCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmlzaW1tdXRhYmxlPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IFRydWUgaWYgdGhlIHZhcmlhYmxlIGlzIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJs ZS1pbW11dGFibGUiPmltbXV0YWJsZTwvbGluaz4gKGNhbm5vdCBiZSBtb2RpZmllZCkuCisgICAg ICAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPnZhcmVveGFjdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXI8L3R5cGU+CiAgICAgICAg PHN0cnVjdGZpZWxkPnZhcnhhY3RlbmRhY3Rpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFyPC90 eXBlPgogICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcGxwZ3NxbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAppbmRleCBkNmQ0ZWJk MWEwMy4uYjc1NzVhNTY3M2EgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbApAQCAtNjA0MSw5ICs2MDQxLDkgQEAgJCQg TEFOR1VBR0UgcGxwZ3NxbCBTVFJJQ1QgSU1NVVRBQkxFOwogICAgIDxwYXJhPgogICAgICBUaGUg PGFwcGxpY2F0aW9uPlBML3BnU1FMPC9hcHBsaWNhdGlvbj4gbGFuZ3VhZ2UgaGFzIG5vIHBhY2th Z2VzLCBhbmQKICAgICAgdGhlcmVmb3JlIG5vIHBhY2thZ2UgdmFyaWFibGVzIG9yIHBhY2thZ2Ug Y29uc3RhbnRzLgotICAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGhh cyBzZXNzaW9uIHZhcmlhYmxlcy4KLSAgICAgU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGNyZWF0 ZWQgYnkgPGNvbW1hbmQ+Q1JFQVRFIFZBUklBQkxFPC9jb21tYW5kPiwKLSAgICAgYXMgZGVzY3Jp YmVkIGluIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPi4KKyAgICAgPHByb2R1 Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBoYXMgc2Vzc2lvbiB2YXJpYWJsZXMgYW5k IGltbXV0YWJsZQorICAgICBzZXNzaW9uIHZhcmlhYmxlcy4gU2Vzc2lvbiB2YXJpYWJsZXMgY2Fu IGJlIGNyZWF0ZWQgYnkgPGNvbW1hbmQ+Q1JFQVRFCisgICAgIFZBUklBQkxFPC9jb21tYW5kPiwg YXMgZGVzY3JpYmVkIGluIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPi4KICAg ICA8L3BhcmE+CiAgICA8L3NlY3QzPgogICA8L3NlY3QyPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zh cmlhYmxlLnNnbWwKaW5kZXggZDYxOTQwMTcyYjEuLmM1ODBmYWM5ZjFjIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTI2LDggKzI2LDggQEAgUG9zdGdyZVNRTCBkb2N1 bWVudGF0aW9uCiAKICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+Ci1DUkVBVEUgWyB7IFRF TVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQot ICAgIFsgREVGQVVMVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGVmYXVsdF9leHBy PC9yZXBsYWNlYWJsZT4gXSBbIHsgT04gQ09NTUlUIERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQg UkVTRVQgfSBdCitDUkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFsgSU1NVVRBQkxFIF0g VkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IF0gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCisgICAgWyBOT1QgTlVMTCBdIFsg REVGQVVMVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGVmYXVsdF9leHByPC9yZXBs YWNlYWJsZT4gXSBbIHsgT04gQ09NTUlUIERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQg fSBdCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CiAgPHJlZnNlY3QxPgpAQCAtNjks NiArNjksMjIgQEAgQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElG IE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InAKIAogICA8dmFyaWFibGVsaXN0Pgog CisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtaW1tdXRhYmxlIj4KKyAg ICA8dGVybT48bGl0ZXJhbD5JTU1VVEFCTEU8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRl bT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgYXNzaWduZWQgdmFsdWUgb2YgdGhlIHNlc3Npb24g dmFyaWFibGUgY2FuIG5vdCBiZSBjaGFuZ2VkLgorICAgICAgT25seSBpZiB0aGUgc2Vzc2lvbiB2 YXJpYWJsZSBkb2Vzbid0IGhhdmUgYSBkZWZhdWx0IHZhbHVlLCBhIHNpbmdsZQorICAgICAgaW5p dGlhbGl6YXRpb24gaXMgYWxsb3dlZCB1c2luZyB0aGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBj b21tYW5kLiBPbmNlCisgICAgICBkb25lLCBubyBmdXJ0aGVyIGNoYW5nZSBpcyBhbGxvd2VkIHVu dGlsIGVuZCBvZiB0cmFuc2FjdGlvbgorICAgICAgaWYgdGhlIHNlc3Npb24gdmFyaWFibGUgd2Fz IGNyZWF0ZWQgd2l0aCBjbGF1c2UgPGxpdGVyYWw+T04gVFJBTlNBQ1RJT04KKyAgICAgIEVORCBS RVNFVDwvbGl0ZXJhbD4sIG9yIHVudGlsIHJlc2V0IG9mIGFsbCBzZXNzaW9uIHZhcmlhYmxlcyBi eQorICAgICAgPGNvbW1hbmQ+RElTQ0FSRCBWQVJJQUJMRVM8L2NvbW1hbmQ+LCBvciB1bnRpbCBy ZXNldCBvZiBhbGwgc2Vzc2lvbgorICAgICAgb2JqZWN0cyBieSBjb21tYW5kIDxjb21tYW5kPkRJ U0NBUkQgQUxMPC9jb21tYW5kPi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8 L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSAgaWQ9InNxbC1jcmVhdGV2YXJpYWJs ZS1pZi1ub3QtZXhpc3RzIj4KICAgICA8dGVybT48bGl0ZXJhbD5JRiBOT1QgRVhJU1RTPC9saXRl cmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC0xMDksNiArMTI1LDE3IEBAIENSRUFURSBb IHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisg ICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtbm90LW51bGwiPgorICAgIDx0 ZXJtPjxsaXRlcmFsPk5PVCBOVUxMPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+Cisg ICAgIDxwYXJhPgorICAgICAgVGhlIDxsaXRlcmFsPk5PVCBOVUxMPC9saXRlcmFsPiBjbGF1c2Ug Zm9yYmlkcyBzZXR0aW5nIHRoZSBzZXNzaW9uCisgICAgICB2YXJpYWJsZSB0byBhIG51bGwgdmFs dWUuIEEgc2Vzc2lvbiB2YXJpYWJsZSBjcmVhdGVkIGFzIE5PVCBOVUxMCisgICAgICBtdXN0IGhh dmUgYSBkZWNsYXJlZCBkZWZhdWx0IHZhbHVlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRl dmFyaWFibGUtZGVmYXVsdCI+CiAgICAgPHRlcm0+PGxpdGVyYWw+REVGQVVMVCA8cmVwbGFjZWFi bGU+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0 aXRlbT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCA5NGRmZWFjNGY0Ny4uYjRlMzgz NjI0NGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYworKysg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAgLTQwLDYgKzQwLDggQEAgc3Rh dGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJ CQkJCQkJCQkgT2lkIHZhck93bmVyLAogCQkJCQkJCQkJIE9pZCB2YXJDb2xsYXRpb24sCiAJCQkJ CQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCQkJCQkJIGJvb2wgbm90X251bGwsCisJCQkJ CQkJCQkgYm9vbCBpc19pbW11dGFibGUsCiAJCQkJCQkJCQkgTm9kZSAqdmFyRGVmZXhwciwKIAkJ CQkJCQkJCSBWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFyWGFjdEVuZEFjdGlvbik7CiAKQEAgLTU1 LDYgKzU3LDggQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJCQkJT2lk IHZhck93bmVyLAogCQkJCU9pZCB2YXJDb2xsYXRpb24sCiAJCQkJYm9vbCBpZl9ub3RfZXhpc3Rz LAorCQkJCWJvb2wgbm90X251bGwsCisJCQkJYm9vbCBpc19pbW11dGFibGUsCiAJCQkJTm9kZSAq dmFyRGVmZXhwciwKIAkJCQlWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFyWGFjdEVuZEFjdGlvbikK IHsKQEAgLTExNyw2ICsxMjEsOCBAQCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFt ZSwKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBtb2QgLSAxXSA9IEludDMyR2V0RGF0 dW0odmFyVHlwbW9kKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJvd25lciAtIDFdID0g T2JqZWN0SWRHZXREYXR1bSh2YXJPd25lcik7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFy Y29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxhdGlvbik7CisJdmFsdWVz W0FudW1fcGdfdmFyaWFibGVfdmFybm90bnVsbCAtIDFdID0gQm9vbEdldERhdHVtKG5vdF9udWxs KTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJpc2ltbXV0YWJsZSAtIDFdID0gQm9vbEdl dERhdHVtKGlzX2ltbXV0YWJsZSk7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyeGFjdGVu ZGFjdGlvbiAtIDFdID0gQ2hhckdldERhdHVtKHZhclhhY3RFbmRBY3Rpb24pOwogCiAJaWYgKHZh ckRlZmV4cHIpCkBAIC0yMDMsNiArMjA5LDExIEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJTm9kZQkgICAqY29va2VkX2Rl ZmF1bHQgPSBOVUxMOwogCiAJLyogQ2hlY2sgY29uc2lzdGVuY3kgb2YgYXJndW1lbnRzICovCisJ aWYgKHN0bXQtPm5vdF9udWxsICYmICFzdG10LT5kZWZleHByKQorCQllcmVwb3J0KEVSUk9SLAor CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJCQkJIGVy cm1zZygic2Vzc2lvbiB2YXJpYWJsZXMgZGVjbGFyZWQgYXMgTk9UIE5VTEwgbXVzdCBoYXZlIGEg ZGVmYXVsdCB2YWx1ZSIpKSk7CisKIAlpZiAoc3RtdC0+WGFjdEVuZEFjdGlvbiA9PSBWQVJJQUJM RV9YQUNURU5EX0RST1AKIAkJJiYgc3RtdC0+dmFyaWFibGUtPnJlbHBlcnNpc3RlbmNlICE9IFJF TFBFUlNJU1RFTkNFX1RFTVApCiAJCWVyZXBvcnQoRVJST1IsCkBAIC0yNTksNiArMjcwLDggQEAg Q3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAq c3RtdCkKIAkJCQkJCQkgICB2YXJvd25lciwKIAkJCQkJCQkgICBjb2xsYXRpb24sCiAJCQkJCQkJ ICAgc3RtdC0+aWZfbm90X2V4aXN0cywKKwkJCQkJCQkgICBzdG10LT5ub3RfbnVsbCwKKwkJCQkJ CQkgICBzdG10LT5pc19pbW11dGFibGUsCiAJCQkJCQkJICAgY29va2VkX2RlZmF1bHQsCiAJCQkJ CQkJICAgc3RtdC0+WGFjdEVuZEFjdGlvbik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuYwppbmRleCAzN2ZlMGZlY2Q1MC4uOGM5OTdmZjJiNTEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTkyLDYgKzkyLDkgQEAgdHlwZWRlZiBzdHJ1 Y3QgU1ZhcmlhYmxlRGF0YQogCXZvaWQJICAgKmRvbWFpbl9jaGVja19leHRyYTsKIAlMb2NhbFRy YW5zYWN0aW9uSWQgZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQ7CiAKKwlib29sCQlub3RfbnVsbDsK Kwlib29sCQlpc19pbW11dGFibGU7CisKIAlib29sCQlyZXNldF9hdF9lb3g7CiAKIAkvKgpAQCAt MTEwLDYgKzExMyw5IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKIAlib29sCQlpc192 YWxpZDsKIAogCXVpbnQzMgkJaGFzaHZhbHVlOwkJLyogdXNlZCBmb3IgcGFpcmluZyBzaW52YWwg bWVzc2FnZSAqLworCisJLyogdHJ1ZSwgd2hlbiB0aGUgdmFsdWUgaXMgYWxyZWFkeSBzZXQsIGFu ZCBjYW5ub3QgYmUgY2hhbmdlZCBtb3JlICovCisJYm9vbAkJcHJvdGVjdF92YWx1ZTsKIH0gU1Zh cmlhYmxlRGF0YTsKIAogdHlwZWRlZiBTVmFyaWFibGVEYXRhICpTVmFyaWFibGU7CkBAIC01NzYs NiArNTgyLDIzIEBAIGV2YWxfYXNzaWduX2RlZmV4cHIoU1ZhcmlhYmxlIHN2YXIsIEhlYXBUdXBs ZSB0dXApCiAKIAkJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQpOwogCQl9CisJCWVsc2UK KwkJeworCQkJLyoKKwkJCSAqIFJhaXNlIGFuIGVycm9yIGlmIHRoaXMgaXMgYSBOT1QgTlVMTCB2 YXJpYWJsZSBidXQgdGhlIHJlc3VsdCBvZgorCQkJICogREVGQVVMVCBleHByZXNzaW9uIGlzIE5V TEwuCisJCQkgKi8KKwkJCWlmIChzdmFyLT5ub3RfbnVsbCkKKwkJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkJKGVycmNvZGUoRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9BTExPV0VEKSwKKwkJCQkJCSBl cnJtc2coIm51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBOVUxMIHNlc3Npb24gdmFy aWFibGUgXCIlcy4lc1wiIiwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9u X3ZhcmlhYmxlX25hbWVzcGFjZShzdmFyLT52YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSksCisJCQkJCQkgZXJyZGV0YWlsKCJUaGUgcmVzdWx0 IG9mIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBOVUxMLiIpKSk7CisJCX0KKworCQlpZiAoc3Zhci0+ aXNfaW1tdXRhYmxlKQorCQkJc3Zhci0+cHJvdGVjdF92YWx1ZSA9IHRydWU7CiAKIAkJRnJlZUV4 ZWN1dG9yU3RhdGUoZXN0YXRlKTsKIAl9CkBAIC02MDYsNiArNjI5LDkgQEAgc2V0dXBfc2Vzc2lv bl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dyaXRlKQogCiAJ Z2V0X3R5cGxlbmJ5dmFsKHN2YXItPnR5cGlkLCAmc3Zhci0+dHlwbGVuLCAmc3Zhci0+dHlwYnl2 YWwpOwogCisJc3Zhci0+bm90X251bGwgPSB2YXJmb3JtLT52YXJub3RudWxsOworCXN2YXItPmlz X2ltbXV0YWJsZSA9IHZhcmZvcm0tPnZhcmlzaW1tdXRhYmxlOworCiAJc3Zhci0+aXNfZG9tYWlu ID0gKGdldF90eXB0eXBlKHZhcmZvcm0tPnZhcnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsKIAlz dmFyLT5kb21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOwogCXN2YXItPmRvbWFpbl9jaGVja19leHRy YV9seGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKQEAgLTYzNSw5ICs2NjEsMzEgQEAg c2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlz X3dyaXRlKQogCXN2YXItPmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZhbHVlMShWQVJJQUJM RU9JRCwKIAkJCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOwogCi0JaWYgKCFpc193 cml0ZSkKKwlzdmFyLT5wcm90ZWN0X3ZhbHVlID0gZmFsc2U7CisKKwkvKgorCSAqIFdoZW4gdGhl IHZhcmlhYmxlIGlzIG1hcmtlZCBhcyBJTU1VVEFCTEUsIHdlIHByZWZlciB0byBldmFsdWF0ZQor CSAqIHBvc3NpYmxlIERFRkFVTFQgYmVmb3JlIHdyaXRlIG9wLiBJbiB0aGlzIGNhc2Ugd2Ugd2Fu dCB0byBwcm90ZWN0CisJICogZGVmYXVsdCB2YWx1ZSBhZ2FpbnN0IGFueSBvdmVyd3JpdGUuCisJ ICovCisJaWYgKCFpc193cml0ZSB8fAorCQlzdmFyLT5pc19pbW11dGFibGUpCisJewogCQlldmFs X2Fzc2lnbl9kZWZleHByKHN2YXIsIHR1cCk7CiAKKwkJLyoKKwkJICogUmFpc2UgYW4gZXJyb3Ig aWYgdGhpcyBpcyBhIE5PVCBOVUxMIHZhcmlhYmxlIHdpdGhvdXQgZGVmYXVsdAorCQkgKiBleHBy ZXNzaW9uLgorCQkgKi8KKwkJaWYgKHN2YXItPmlzbnVsbCAmJiBzdmFyLT5ub3RfbnVsbCkKKwkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfTlVMTF9WQUxVRV9OT1RfQUxM T1dFRCksCisJCQkJCSBlcnJtc2coIm51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBO VUxMIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIiwKKwkJCQkJCQlnZXRfbmFtZXNwYWNlX25h bWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJZ2V0X3Nl c3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpLAorCQkJCQkgZXJyZGV0YWlsKCJUaGUgc2Vzc2lv biB2YXJpYWJsZSB3YXMgbm90IGluaXRpYWxpemVkIHlldC4iKSkpOworCX0KKwogCVJlbGVhc2VT eXNDYWNoZSh0dXApOwogfQogCkBAIC02NTcsNiArNzA1LDIxIEBAIHNldF9zZXNzaW9uX3Zhcmlh YmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAJQXNzZXJ0KHN2 YXIpOwogCUFzc2VydCghaXNudWxsIHx8IHZhbHVlID09IChEYXR1bSkgMCk7CiAKKwlpZiAoc3Zh ci0+cHJvdGVjdF92YWx1ZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RF X0VSUk9SX0lOX0FTU0lHTk1FTlQpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIl cy4lc1wiIGlzIGRlY2xhcmVkIElNTVVUQUJMRSIsCisJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUo Z2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCisJCQkJCQlnZXRf c2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSkpKTsKKworCS8qIGRvbid0IGFsbG93 IGFzc2lnbm1lbnQgb2YgbnVsbCB0byBOT1QgTlVMTCB2YXJpYWJsZSAqLworCWlmIChpc251bGwg JiYgc3Zhci0+bm90X251bGwpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09E RV9OVUxMX1ZBTFVFX05PVF9BTExPV0VEKSwKKwkJCQkgZXJybXNnKCJudWxsIHZhbHVlIGlzIG5v dCBhbGxvd2VkIGZvciBOT1QgTlVMTCBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiIsCisJCQkJ CQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXIt PnZhcmlkKSksCisJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSkp KTsKKwogCS8qCiAJICogVXNlIHR5cGJ5dmFsLCB0eXBieWxlbiBmcm9tIHNlc3Npb24gdmFyaWFi bGUgb25seSB3aGVuIHRoZXkgYXJlCiAJICogdHJ1c3RhYmxlICh0aGUgaW52YWxpZGF0aW9uIG1l c3NhZ2Ugd2FzIG5vdCBhY2NlcHRlZCBmb3IgdGhpcyB2YXJpYWJsZSkuCkBAIC02OTMsNiArNzU2 LDEwIEBAIHNldF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwg Ym9vbCBpc251bGwpCiAJc3Zhci0+dmFsdWUgPSBuZXd2YWw7CiAJc3Zhci0+aXNudWxsID0gaXNu dWxsOwogCisJLyogZG9uJ3QgYWxsb3cgbW9yZSBjaGFuZ2VzIG9mIHZhbHVlIHdoZW4gdmFyaWFi bGUgaXMgSU1NVVRBQkxFICovCisJaWYgKHN2YXItPmlzX2ltbXV0YWJsZSkKKwkJc3Zhci0+cHJv dGVjdF92YWx1ZSA9IHRydWU7CisKIAkvKgogCSAqIFhYWCBXaGlsZSB1bmxpa2VseSwgYW4gZXJy b3IgaGVyZSBpcyBwb3NzaWJsZS4gSXQgd291bGRuJ3QgbGVhayBtZW1vcnkKIAkgKiBhcyB0aGUg YWxsb2NhdGVkIGNodW5rIGhhcyBhbHJlYWR5IGJlZW4gY29ycmVjdGx5IGFzc2lnbmVkIHRvIHRo ZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKaW5kZXggNDgyOTMwOTM1MTguLjdjNmUwNzdhNDZhIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkK QEAgLTY4Myw2ICs2ODMsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3Qo Y2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQkJCWpzb25fb2Jq ZWN0X2NvbnN0cnVjdG9yX251bGxfY2xhdXNlX29wdAogCQkJCWpzb25fYXJyYXlfY29uc3RydWN0 b3JfbnVsbF9jbGF1c2Vfb3B0CiAKKyV0eXBlIDxib29sZWFuPgkJT3B0Tm90TnVsbCBPcHRJbW11 dGFibGUKIAogLyoKICAqIE5vbi1rZXl3b3JkIHRva2VuIHR5cGVzLiAgVGhlc2UgYXJlIGhhcmQt d2lyZWQgaW50byB0aGUgImZsZXgiIGxleGVyLgpAQCAtNTIyMywyNyArNTIyNCwzMSBAQCBjcmVh dGVfZXh0ZW5zaW9uX29wdF9pdGVtOgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiBDcmVhdGVT ZXNzaW9uVmFyU3RtdDoKLQkJCUNSRUFURSBPcHRUZW1wIFZBUklBQkxFIHF1YWxpZmllZF9uYW1l IG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0U2Vzc2lvblZhckRlZkV4cHIg WGFjdEVuZEFjdGlvbk9wdGlvbgorCQkJQ1JFQVRFIE9wdFRlbXAgT3B0SW1tdXRhYmxlIFZBUklB QkxFIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0 Tm90TnVsbCBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCiAJCQkJewog CQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJT dG10KTsKLQkJCQkJJDQtPnJlbHBlcnNpc3RlbmNlID0gJDI7Ci0JCQkJCW4tPnZhcmlhYmxlID0g JDQ7Ci0JCQkJCW4tPnR5cGVOYW1lID0gJDY7Ci0JCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0 ZUNsYXVzZSAqKSAkNzsKLQkJCQkJbi0+ZGVmZXhwciA9ICQ4OwotCQkJCQluLT5YYWN0RW5kQWN0 aW9uID0gJDk7CisJCQkJCSQ1LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOworCQkJCQluLT5pc19pbW11 dGFibGUgPSAkMzsKKwkJCQkJbi0+dmFyaWFibGUgPSAkNTsKKwkJCQkJbi0+dHlwZU5hbWUgPSAk NzsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ4OworCQkJCQluLT5u b3RfbnVsbCA9ICQ5OworCQkJCQluLT5kZWZleHByID0gJDEwOworCQkJCQluLT5YYWN0RW5kQWN0 aW9uID0gJDExOwogCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gZmFsc2U7CiAJCQkJCSQkID0gKE5v ZGUgKikgbjsKIAkJCQl9Ci0JCQl8IENSRUFURSBPcHRUZW1wIFZBUklBQkxFIElGX1AgTk9UIEVY SVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9w dFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KKwkJCXwgQ1JFQVRFIE9wdFRl bXAgT3B0SW1tdXRhYmxlIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBv cHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lvblZh ckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZh clN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7Ci0JCQkJCSQ3LT5yZWxw ZXJzaXN0ZW5jZSA9ICQyOwotCQkJCQluLT52YXJpYWJsZSA9ICQ3OwotCQkJCQluLT50eXBlTmFt ZSA9ICQ5OwotCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDEwOwotCQkJ CQluLT5kZWZleHByID0gJDExOwotCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDEyOworCQkJCQkk OC0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+aXNfaW1tdXRhYmxlID0gJDM7CisJCQkJ CW4tPnZhcmlhYmxlID0gJDg7CisJCQkJCW4tPnR5cGVOYW1lID0gJDEwOworCQkJCQluLT5jb2xs Q2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDExOworCQkJCQluLT5ub3RfbnVsbCA9ICQxMjsK KwkJCQkJbi0+ZGVmZXhwciA9ICQxMzsKKwkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxNDsKIAkJ CQkJbi0+aWZfbm90X2V4aXN0cyA9IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9 CkBAIC01MjYzLDYgKzUyNjgsMTQgQEAgWGFjdEVuZEFjdGlvbk9wdGlvbjogIE9OIENPTU1JVCBE Uk9QCQkJCXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX0RST1A7IH0KIAkJOwogCiAKK09wdE5vdE51 bGw6IE5PVCBOVUxMX1AJCQkJCQkJCXsgJCQgPSB0cnVlOyB9CisJCQl8IC8qIEVNUFRZICovCQkJ CQkJCXsgJCQgPSBmYWxzZTsgfQorCQk7CisKK09wdEltbXV0YWJsZTogSU1NVVRBQkxFCQkJCQkJ CQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKiBFTVBUWSAqLwkJCQkJCQl7ICQkID0gZmFsc2U7IH0K KwkJOworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBBTFRFUiBFWFRFTlNJT04gbmFt ZSBVUERBVEUgWyBUTyB2ZXJzaW9uIF0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDlmNzE5NTBjNjBmLi40OWMz M2U1MmRlZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC01MzM0LDYgKzUzMzQsOCBAQCBnZXRWYXJpYWJsZXMo QXJjaGl2ZSAqZm91dCkKIAlpbnQJCQlpX3ZhcnhhY3RlbmRhY3Rpb247CiAJaW50CQkJaV92YXJv d25lcjsKIAlpbnQJCQlpX3ZhcmNvbGxhdGlvbjsKKwlpbnQJCQlpX3Zhcm5vdG51bGw7CisJaW50 CQkJaV92YXJpc2ltbXV0YWJsZTsKIAlpbnQJCQlpX3ZhcmFjbDsKIAlpbnQJCQlpX2FjbGRlZmF1 bHQ7CiAJaW50CQkJaSwKQEAgLTUzNTUsNiArNTM1Nyw4IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZl ICpmb3V0KQogCQkJCQkgICJwZ19jYXRhbG9nLmZvcm1hdF90eXBlKHYudmFydHlwZSwgdi52YXJ0 eXBtb2QpIGFzIHZhcnR5cG5hbWUsXG4iCiAJCQkJCSAgIkNBU0UgV0hFTiB2LnZhcmNvbGxhdGlv biA8PiB0LnR5cGNvbGxhdGlvbiAiCiAJCQkJCSAgIlRIRU4gdi52YXJjb2xsYXRpb24gRUxTRSAw IEVORCBBUyB2YXJjb2xsYXRpb24sXG4iCisJCQkJCSAgInYudmFybm90bnVsbCxcbiIKKwkJCQkJ ICAidi52YXJpc2ltbXV0YWJsZSxcbiIKIAkJCQkJICAicGdfY2F0YWxvZy5wZ19nZXRfZXhwcih2 LnZhcmRlZmV4cHIsMCkgYXMgdmFyZGVmZXhwcixcbiIKIAkJCQkJICAidi52YXJvd25lcixcbiIK IAkJCQkJICAidi52YXJhY2wsXG4iCkBAIC01Mzc2LDYgKzUzODAsOCBAQCBnZXRWYXJpYWJsZXMo QXJjaGl2ZSAqZm91dCkKIAlpX3ZhcmRlZmV4cHIgPSBQUWZudW1iZXIocmVzLCAidmFyZGVmZXhw ciIpOwogCWlfdmFyeGFjdGVuZGFjdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJ4YWN0ZW5kYWN0 aW9uIik7CiAJaV92YXJjb2xsYXRpb24gPSBQUWZudW1iZXIocmVzLCAidmFyY29sbGF0aW9uIik7 CisJaV92YXJub3RudWxsID0gUFFmbnVtYmVyKHJlcywgInZhcm5vdG51bGwiKTsKKwlpX3Zhcmlz aW1tdXRhYmxlID0gUFFmbnVtYmVyKHJlcywgInZhcmlzaW1tdXRhYmxlIik7CiAKIAlpX3Zhcm93 bmVyID0gUFFmbnVtYmVyKHJlcywgInZhcm93bmVyIik7CiAJaV92YXJhY2wgPSBQUWZudW1iZXIo cmVzLCAidmFyYWNsIik7CkBAIC01NDAyLDYgKzU0MDgsOCBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2 ZSAqZm91dCkKIAkJCXBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJ4YWN0ZW5kYWN0 aW9uKSk7CiAKIAkJdmFyaW5mb1tpXS52YXJjb2xsYXRpb24gPSBhdG9vaWQoUFFnZXR2YWx1ZShy ZXMsIGksIGlfdmFyY29sbGF0aW9uKSk7CisJCXZhcmluZm9baV0udmFybm90bnVsbCA9ICooUFFn ZXR2YWx1ZShyZXMsIGksIGlfdmFybm90bnVsbCkpID09ICd0JzsKKwkJdmFyaW5mb1tpXS52YXJp c2ltbXV0YWJsZSA9ICooUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyaXNpbW11dGFibGUpKSA9PSAn dCc7CiAKIAkJdmFyaW5mb1tpXS5kYWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywg aSwgaV92YXJhY2wpKTsKIAkJdmFyaW5mb1tpXS5kYWNsLmFjbGRlZmF1bHQgPSBwZ19zdHJkdXAo UFFnZXR2YWx1ZShyZXMsIGksIGlfYWNsZGVmYXVsdCkpOwpAQCAtNTQ1MSw3ICs1NDU5LDkgQEAg ZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykK IAljb25zdCBjaGFyICp2YXJ0eXBuYW1lOwogCWNvbnN0IGNoYXIgKnZhcmRlZmV4cHI7CiAJY29u c3QgY2hhciAqdmFyeGFjdGVuZGFjdGlvbjsKKwljb25zdCBjaGFyICp2YXJpc2ltbXV0YWJsZTsK IAlPaWQJCQl2YXJjb2xsYXRpb247CisJYm9vbAkJdmFybm90bnVsbDsKIAogCS8qIFNraXAgaWYg bm90IHRvIGJlIGR1bXBlZCAqLwogCWlmICghdmFyaW5mby0+ZG9iai5kdW1wIHx8IGRvcHQtPmRh dGFPbmx5KQpAQCAtNTQ2NSwxMiArNTQ3NSwxNCBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91 dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCXZhcmRlZmV4cHIgPSB2YXJpbmZvLT52 YXJkZWZleHByOwogCXZhcnhhY3RlbmRhY3Rpb24gPSB2YXJpbmZvLT52YXJ4YWN0ZW5kYWN0aW9u OwogCXZhcmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKKwl2YXJub3RudWxsID0g dmFyaW5mby0+dmFybm90bnVsbDsKKwl2YXJpc2ltbXV0YWJsZSA9IHZhcmluZm8tPnZhcmlzaW1t dXRhYmxlID8gIklNTVVUQUJMRSAiIDogIiI7CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxxLCAi RFJPUCBWQVJJQUJMRSAlcztcbiIsCiAJCQkJCSAgcXVhbHZhcm5hbWUpOwogCi0JYXBwZW5kUFFF eHBCdWZmZXIocXVlcnksICJDUkVBVEUgVkFSSUFCTEUgJXMgQVMgJXMiLAotCQkJCQkgIHF1YWx2 YXJuYW1lLCB2YXJ0eXBuYW1lKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSAl c1ZBUklBQkxFICVzIEFTICVzIiwKKwkJCQkJICB2YXJpc2ltbXV0YWJsZSwgcXVhbHZhcm5hbWUs IHZhcnR5cG5hbWUpOwogCiAJaWYgKE9pZElzVmFsaWQodmFyY29sbGF0aW9uKSkKIAl7CkBAIC01 NDgyLDYgKzU0OTQsOSBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFi bGVJbmZvICp2YXJpbmZvKQogCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbCkpOwog CX0KIAorCWlmICh2YXJub3RudWxsKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiBOT1Qg TlVMTCIpOworCiAJaWYgKHZhcmRlZmV4cHIpCiAJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAi IERFRkFVTFQgJXMiLAogCQkJCQkJICB2YXJkZWZleHByKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IGUyY2Iw NmNjODgzLi5jYmIwNmI2NmY3NCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu aAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC03MTAsNiArNzEwLDggQEAgdHlw ZWRlZiBzdHJ1Y3QgX1ZhcmlhYmxlSW5mbwogCWNoYXIJICAgKmluaXRydmFyYWNsOwogCU9pZAkJ CXZhcmNvbGxhdGlvbjsKIAljb25zdCBjaGFyICpyb2xuYW1lOwkJLyogbmFtZSBvZiBvd25lciwg b3IgZW1wdHkgc3RyaW5nICovCisJYm9vbAkJdmFybm90bnVsbDsKKwlib29sCQl2YXJpc2ltbXV0 YWJsZTsKIH0gVmFyaWFibGVJbmZvOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRl eCBmZjVjMDEwMjBlNC4uYTA3MDdjN2RiMTYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90 LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBA IC0zOTk1LDYgKzM5OTUsNDIgQEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0sCiAKKwknQ1JFQVRF IElNTVVUQUJMRSBWQVJJQUJMRSB0ZXN0X3ZhcmlhYmxlJyA9PiB7CisJCWFsbF9ydW5zICAgICA9 PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVf b3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJM RSBkdW1wX3Rlc3QudmFyaWFibGU1IEFTIGludGVnZXInLAorCQlyZWdleHAgPT4gcXIvXgorCQkJ XFFDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTUgQVMgaW50ZWdl cjtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hl bWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsK KwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVt ZW50ICAgID0+IDEsCisJCX0sCisJfSwKKworCSdDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHRl c3RfdmFyaWFibGUgTk9UIE5VTEwgREVGQVVMVCcgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwK KwkJY2F0Y2hfYWxsICAgID0+ICdDUkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVy ID0+IDYxLAorCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgZHVt cF90ZXN0LnZhcmlhYmxlNyBBUyBpbnRlZ2VyIE5PVCBOVUxMIERFRkFVTFQgMTAnLAorCQlyZWdl eHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJp YWJsZTcgQVMgaW50ZWdlciBOT1QgTlVMTCBERUZBVUxUIDEwO1xFL3htLAorCQlsaWtlID0+IHsK KwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9w cmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rf c2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9 LAorCiAJJ0NSRUFURSBWSUVXIHRlc3RfdmlldycgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNjEs CiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBWSUVXIGR1bXBfdGVzdC50ZXN0X3ZpZXcKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMK aW5kZXggNTY2NTU5MzE2ZWUuLjE1Y2E3Nzc5OTZhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtNTE1OSw3ICs1MTU5 LDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJ UFFFeHBCdWZmZXJEYXRhIGJ1ZjsKIAlQR3Jlc3VsdCAgICpyZXM7CiAJcHJpbnRRdWVyeU9wdCBt eW9wdCA9IHBzZXQucG9wdDsKLQlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1td ID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2UsIGZhbHNlfTsKIAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTgwMDAwKQogCXsKQEAg LTUxODAsNiArNTE4MCw4IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9v bCB2ZXJib3NlKQogCQkJCQkgICIgIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBnX2NhdGFsb2cu cGdfY29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSBidFxuIgogCQkJCQkgICIgICBXSEVS RSBjLm9pZCA9IHYudmFyY29sbGF0aW9uIEFORCBidC5vaWQgPSB2LnZhcnR5cGUgQU5EIHYudmFy Y29sbGF0aW9uIDw+IGJ0LnR5cGNvbGxhdGlvbikgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIHBn X2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFzIFwiJXNcIixcbiIKKwkJCQkJ ICAiICBOT1Qgdi52YXJub3RudWxsIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBOT1Qgdi52YXJp c2ltbXV0YWJsZSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfZXhw cih2LnZhcmRlZmV4cHIsIDApIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBDQVNFIHYudmFyeGFj dGVuZGFjdGlvblxuIgogCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09NTUlUIERST1An XG4iCkBAIC01MTkwLDYgKzUxOTIsOCBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRl cm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlR5cGUiKSwKIAkJCQkJICBn ZXR0ZXh0X25vb3AoIkNvbGxhdGlvbiIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSwK KwkJCQkJICBnZXR0ZXh0X25vb3AoIk51bGxhYmxlIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJN dXRhYmxlIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJEZWZhdWx0IiksCiAJCQkJCSAgZ2V0dGV4 dF9ub29wKCJUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24iKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcHNxbC90YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwppbmRl eCA1MmVhNmIwZTI4Yy4uOGRkOWNjY2IxYWYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKQEAgLTEyNTIsNiAr MTI1Miw4IEBAIHN0YXRpYyBjb25zdCBwZ3NxbF90aGluZ190IHdvcmRzX2FmdGVyX2NyZWF0ZVtd ID0gewogCXsiRk9SRUlHTiBUQUJMRSIsIE5VTEwsIE5VTEwsIE5VTEx9LAogCXsiRlVOQ1RJT04i LCBOVUxMLCBOVUxMLCBRdWVyeV9mb3JfbGlzdF9vZl9mdW5jdGlvbnN9LAogCXsiR1JPVVAiLCBR dWVyeV9mb3JfbGlzdF9vZl9yb2xlc30sCisJeyJJTU1VVEFCTEUgVkFSSUFCTEUiLCBOVUxMLCBO VUxMLCBOVUxMLCBOVUxMLCBUSElOR19OT19EUk9QIHwgVEhJTkdfTk9fQUxURVJ9LCAvKiBmb3Ig Q1JFQVRFIElNTVVUQUJMRQorCQkJCQkJCQkJCQkJCQkJCQkJCQkJICogVkFSSUFCTEUgLi4uICov CiAJeyJJTkRFWCIsIE5VTEwsIE5VTEwsICZRdWVyeV9mb3JfbGlzdF9vZl9pbmRleGVzfSwKIAl7 IkxBTkdVQUdFIiwgUXVlcnlfZm9yX2xpc3Rfb2ZfbGFuZ3VhZ2VzfSwKIAl7IkxBUkdFIE9CSkVD VCIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFRISU5HX05PX0NSRUFURSB8IFRISU5HX05PX0RS T1B9LApAQCAtMzI3Nyw3ICszMjc5LDcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRl eHQsIGludCBzdGFydCwgaW50IGVuZCkKIC8qIENSRUFURSBUQUJMRSAtLS0gaXMgYWxsb3dlZCBp bnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxNYXRjaGVzICovCiAJLyogQ29tcGxldGUg IkNSRUFURSBURU1QL1RFTVBPUkFSWSIgd2l0aCB0aGUgcG9zc2libGUgdGVtcCBvYmplY3RzICov CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJURU1QfFRFTVBPUkFSWSIpKQotCQlD T01QTEVURV9XSVRIKCJTRVFVRU5DRSIsICJUQUJMRSIsICJWQVJJQUJMRSIsICJWSUVXIik7CisJ CUNPTVBMRVRFX1dJVEgoIklNTVVUQUJMRSBWQVJJQUJMRSIsICJTRVFVRU5DRSIsICJUQUJMRSIs ICJWQVJJQUJMRSIsICJWSUVXIik7CiAJLyogQ29tcGxldGUgIkNSRUFURSBVTkxPR0dFRCIgd2l0 aCBUQUJMRSwgU0VRVUVOQ0Ugb3IgTUFUVklFVyAqLwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJD UkVBVEUiLCAiVU5MT0dHRUQiKSkKIAl7CkBAIC0zNjAwLDcgKzM2MDIsOCBAQCBwc3FsX2NvbXBs ZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogLyogQ1JFQVRFIFZB UklBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1h dGNoZXMgKi8KIAkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMgKi8K IAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8 Ci0JCQkgVGFpbE1hdGNoZXMoIlRFTVB8VEVNUE9SQVJZIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkp KQorCQkJIFRhaWxNYXRjaGVzKCJURU1QfFRFTVBPUkFSWSIsICJWQVJJQUJMRSIsIE1hdGNoQW55 KSB8fAorCQkJIFRhaWxNYXRjaGVzKCJJTU1VVEFCTEUiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkp CiAJCUNPTVBMRVRFX1dJVEgoIkFTIik7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZBUklBQkxF IiwgTWF0Y2hBbnksICJBUyIpKQogCQkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+ IHdpdGggQVMgdHlwZXMgKi8KQEAgLTQyNDgsNiArNDI1MSwxMCBAQCBwc3FsX2NvbXBsZXRpb24o Y29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCWVsc2UgaWYgKFRhaWxNYXRj aGVzKCJGUk9NIiwgIlNFUlZFUiIsIE1hdGNoQW55LCAiSU5UTyIsIE1hdGNoQW55KSkKIAkJQ09N UExFVEVfV0lUSCgiT1BUSU9OUyAoIik7CiAKKy8qIElNTVVUQUJMRSAtLSBjYW4gYmUgZXhwZW5k IHRvIElNTVVUQUJMRSBWQVJJQUJMRSAqLworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUi LCAiSU1NVVRBQkxFIikpCisJCUNPTVBMRVRFX1dJVEgoIlZBUklBQkxFIik7CisKIC8qIElOU0VS VCAtLS0gY2FuIGJlIGluc2lkZSBFWFBMQUlOLCBSVUxFLCBldGMgKi8KIAkvKiBDb21wbGV0ZSBO T1QgTUFUQ0hFRCBUSEVOIElOU0VSVCAqLwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJOT1QiLCAi TUFUQ0hFRCIsICJUSEVOIiwgIklOU0VSVCIpKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCmlu ZGV4IDBhOTcyYWE1ZDA0Li5hZDE3Yjc4ZDZhOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUu aApAQCAtNTQsNiArNTQsMTIgQEAgQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZhcmlhYmxlUmVs YXRpb25JZCkKIAkvKiB0eXBtb2QgZm9yIHZhcmlhYmxlJ3MgdHlwZSAqLwogCWludDMyCQl2YXJ0 eXBtb2QgQktJX0RFRkFVTFQoLTEpOwogCisJLyogZG9uJ3QgYWxsb3cgTlVMTCAqLworCWJvb2wJ CXZhcm5vdG51bGwgQktJX0RFRkFVTFQoZik7CisKKwkvKiBkb24ndCBhbGxvdyBjaGFuZ2VzICov CisJYm9vbAkJdmFyaXNpbW11dGFibGUgQktJX0RFRkFVTFQoZik7CisKIAkvKiBhY3Rpb24gb24g dHJhbnNhY3Rpb24gZW5kICovCiAJY2hhcgkJdmFyeGFjdGVuZGFjdGlvbiBCS0lfREVGQVVMVChu KTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGVkMGEyMTRmZmU0Li43NmQ3NjU2ZDdmNyAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzQ1NSw2ICszNDU1LDggQEAgdHlwZWRlZiBzdHJ1 Y3QgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAlUeXBlTmFtZSAgICp0eXBlTmFtZTsJCS8qIHRoZSB0 eXBlIG9mIHZhcmlhYmxlICovCiAJQ29sbGF0ZUNsYXVzZSAqY29sbENsYXVzZTsKIAlib29sCQlp Zl9ub3RfZXhpc3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhpc3RzICovCisJYm9v bAkJbm90X251bGw7CQkvKiBkaXNhbGxvdyBudWxscyAqLworCWJvb2wJCWlzX2ltbXV0YWJsZTsJ LyogZG9uJ3QgYWxsb3cgY2hhbmdlcyAqLwogCU5vZGUJICAgKmRlZmV4cHI7CQkvKiBkZWZhdWx0 IGV4cHJlc3Npb24gKi8KIAljaGFyCQlYYWN0RW5kQWN0aW9uOwkvKiBvbiB0cmFuc2FjdGlvbiBl bmQgYWN0aW9uICovCiB9IENyZWF0ZVNlc3Npb25WYXJTdG10OwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHNxbC5vdXQKaW5kZXggY2ExMzFlNTY4ZWIuLmY3MDgyNjM5NjA1IDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHNxbC5vdXQKQEAgLTU4MzMsMjAgKzU4MzMsMjAgQEAgQ1JFQVRFIFJPTEUgcmVncmVz c192YXJpYWJsZV9vd25lcjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBD UkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOwogXGRWKyB2YXIxCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAg ICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBEZWZhdWx0IHwgVHJhbnNh Y3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKLS0t LS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2 YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAg ICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxhYmxlIHwgTXV0 YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCBBY2Nlc3MgcHJpdmls ZWdlcyB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAg ICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0ICAgICAgIHwgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgCiAo MSByb3cpCiAKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKIENPTU1F TlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CiBcZFYrIHZhcjEKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8 ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8 IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nl c3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAotLS0tLS0t LS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdy ZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8 IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUg ZGVzY3JpcHRpb24KLSAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAg ICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVz CisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAg ICBPd25lciAgICAgICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2Fj dGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAg ICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCBy ZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0ICAgICAgIHwgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVz c192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KKyAgICAgICAgfCAgICAgIHwgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ID1y L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93 KQogCiBEUk9QIFZBUklBQkxFIHZhcjE7CkBAIC02MzE0LDkgKzYzMTQsOSBAQCBMaXN0IG9mIHNj aGVtYXMKICgwIHJvd3MpCiAKIFxkViAibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBl IHwgQ29sbGF0aW9uIHwgT3duZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9u IAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29s bGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rp b25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVhbGlm aWNhdGlvbnMuCkBAIC02NDg5LDkgKzY0ODksOSBAQCBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAo dG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0YQog XGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIGltcHJvcGVyIHF1 YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJu by5zdWNoLmV2ZW50LnRyaWdnZXIiCiBcZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJp YWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwot IFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBEZWZhdWx0IHwgVHJh bnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVt YSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUg fCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRo IGN1cnJlbnQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02 NjI4LDkgKzY2MjgsOSBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRlcwogKDAgcm93cykK IAogXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8 IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25h bCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUg fCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0 IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBk YXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggOWM0MmY4ZTRlMDku LmJkZmEwZTI2NjgzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dApAQCAtNDUsMTEgKzQ1LDExIEBAIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CiBTRVQg Uk9MRSBUTyBERUZBVUxUOwogXGRWKyBzdmFydGVzdC52YXIxCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2YgdmFyaWFibGVzCi0gIFNjaGVtYSAgfCBOYW1lIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8 ICAgICAgICAgT3duZXIgICAgICAgICAgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0 aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwg RGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tCi0gc3ZhcnRlc3QgfCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8IHJlZ3Jl c3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwg cmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgCi0gICAg ICAgICAgfCAgICAgIHwgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJs ZV9yZWFkZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyAgU2NoZW1hICB8IE5hbWUgfCAgVHlwZSAgIHwg Q29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8 IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nl c3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0r LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0KKyBzdmFydGVzdCB8IHZhcjEgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgcmVncmVzc192 YXJpYWJsZV9vd25lciB8IHQgICAgICAgIHwgdCAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFi bGVfb3duZXIrfCAKKyAgICAgICAgICB8ICAgICAgfCAgICAgICAgIHwgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgfCAKICgxIHJvdykKIAogRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIx OwpAQCAtMTYwNCwzICsxNjA0LDEzNiBAQCBTRUxFQ1QgdmFyMTsKIAogRFJPUCBWQVJJQUJMRSB2 YXIxOwogRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CistLSB0ZXN0IE5PVCBOVUxMCistLSBz aG91bGQgdG8gZmFpbAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50IE5PVCBOVUxMOworRVJS T1I6ICBzZXNzaW9uIHZhcmlhYmxlcyBkZWNsYXJlZCBhcyBOT1QgTlVMTCBtdXN0IGhhdmUgYSBk ZWZhdWx0IHZhbHVlCistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGlu dCBOT1QgTlVMTCBERUZBVUxUIDA7CistLXNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFy MSAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9 IDEwOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworRElT Q0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgdG8gZmFpbAorTEVUIHZhcjEgPSBOVUxMOworRVJS T1I6ICBudWxsIHZhbHVlIGlzIG5vdCBhbGxvd2VkIGZvciBOT1QgTlVMTCBzZXNzaW9uIHZhcmlh YmxlICJwdWJsaWMudmFyMSIKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHRlc3QgTk9UIE5VTEwK K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVUVVJOUyBpbnQgQVMg JCQKK0JFR0lOCisgIFJFVFVSTiBOVUxMOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NS RUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBOT1QgTlVMTCBERUZBVUxUIHZhcnRlc3RfZngoKTsK Ky0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpcyBu b3QgYWxsb3dlZCBmb3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiCitE RVRBSUw6ICBUaGUgcmVzdWx0IG9mIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBOVUxMLgorRElTQ0FS RCBWQVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CitTRUxFQ1QgdmFy MTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSRVRVUk4g MDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitESVNDQVJEIFZBUklBQkxFUzsKKy0tIHNo b3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgIDAKKygxIHJvdykK KworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CistLSB0 ZXN0IElNTVVUQkxFCitDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHZhcjEgQVMgaW50OworLS0g c2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAgIAorKDEgcm93 KQorCistLSBmaXJzdCB3cml0ZSBzaG91bGQgb2sKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEg PSAxMDsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDIwOworRVJST1I6ICBzZXNzaW9uIHZh cmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitESVNDQVJEIFZBUklB QkxFUzsKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKKy0tIHNob3VsZCBmYWlsCitM RVQgdmFyMSA9IDIwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMg ZGVjbGFyZWQgSU1NVVRBQkxFCitESVNDQVJEIFZBUklBQkxFUzsKKy0tIHNob3VsZCBiZSBvawor U0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgICAKKygxIHJvdykKKworLS0gc2hvdWxk IGJlIG9rCitMRVQgdmFyMSA9IE5VTEw7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsK K0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVU QUJMRQorRFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSB2YXIx IEFTIGludCBERUZBVUxUIDEwOworLS0gZG9uJ3QgYWxsb3cgY2hhbmdlIHdoZW4gdmFyaWFibGUg aGFzIERFRkFVTFQgdmFsdWUKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDIwOworRVJS T1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxF CitESVNDQVJEIFZBUklBQkxFUzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFy MSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0g MjA7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJ TU1VVEFCTEUKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIElN TVVUQUJMRSBWQVJJQUJMRSB2YXIxIEFTIElOVCBOT1QgTlVMTCBERUZBVUxUIDEwOworLS0gc2hv dWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gMTA7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1 YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKK0xFVCB2YXIxID0gMjA7CitFUlJPUjog IHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKKy0t IHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJv dykKKworLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gMzA7CitFUlJPUjogIHNlc3Npb24g dmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKK0RST1AgVkFSSUFC TEUgdmFyMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFi bGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRl eCA4YjQzMjE3Nzk4MC4uY2FkMTQ3NzY1YWMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNz aW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTEwNzMsMyArMTA3MywxMTcgQEAgU0VMRUNUIHZhcjE7CiAK IERST1AgVkFSSUFCTEUgdmFyMTsKIERST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOworCistLSB0 ZXN0IE5PVCBOVUxMCistLSBzaG91bGQgdG8gZmFpbAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg aW50IE5PVCBOVUxMOworCistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFT IGludCBOT1QgTlVMTCBERUZBVUxUIDA7CisKKy0tc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsK KworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisKK0RJU0NB UkQgVkFSSUFCTEVTOworCistLSBzaG91bGQgdG8gZmFpbAorTEVUIHZhcjEgPSBOVUxMOworCitE Uk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHRlc3QgTk9UIE5VTEwKK0NSRUFURSBPUiBSRVBMQUNF IEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJFVFVS TiBOVUxMOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgaW50IE5PVCBOVUxMIERFRkFVTFQgdmFydGVzdF9meCgpOworCistLSBzaG91bGQgdG8g ZmFpbAorU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCistLSBzaG91bGQgYmUg b2sKK0xFVCB2YXIxID0gMTA7CitTRUxFQ1QgdmFyMTsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVO Q1RJT04gdmFydGVzdF9meCgpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIDA7 CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0g c2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBG VU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CisKKy0tIHRlc3QgSU1NVVRCTEUKK0NSRUFURSBJTU1VVEFC TEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7 CistLSBmaXJzdCB3cml0ZSBzaG91bGQgb2sKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAx MDsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDIwOworCitESVNDQVJEIFZBUklBQkxFUzsK KworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2 YXIxID0gMjA7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVD VCB2YXIxOworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IE5VTEw7CistLSBzaG91bGQgZmFp bAorTEVUIHZhcjEgPSAyMDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCitDUkVBVEUgSU1NVVRB QkxFIFZBUklBQkxFIHZhcjEgQVMgaW50IERFRkFVTFQgMTA7CisKKy0tIGRvbid0IGFsbG93IGNo YW5nZSB3aGVuIHZhcmlhYmxlIGhhcyBERUZBVUxUIHZhbHVlCistLSBzaG91bGQgdG8gZmFpbAor TEVUIHZhcjEgPSAyMDsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSBvawor U0VMRUNUIHZhcjE7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKKworRFJPUCBWQVJJ QUJMRSB2YXIxOworCistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUg dmFyMSBBUyBJTlQgTk9UIE5VTEwgREVGQVVMVCAxMDsKKworLS0gc2hvdWxkIHRvIGZhaWwKK0xF VCB2YXIxID0gMTA7CitMRVQgdmFyMSA9IDIwOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2 YXIxOworCistLSBzaG91bGQgdG8gZmFpbAorTEVUIHZhcjEgPSAzMDsKKworRFJPUCBWQVJJQUJM RSB2YXIxOwotLSAKMi40NS4yCgo= --000000000000bfc92e061dffd1c5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240724-0014-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Disposition: attachment; filename="v20240724-0014-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyzzqe3513 RnJvbSAxYzUyYjgyZGU2NGYxMjc2NjVlOWQ1YjI3NDUxODU5YTU0YjhmMjNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDY6MzE6NDggKzAxMDAKU3ViamVjdDogW1BBVENIIDE0 LzIwXSBhbGxvdyByZWFkIGFuIHZhbHVlIG9mIHNlc3Npb24gdmFyaWFibGUgZGlyZWN0bHkgZnJv bQogZXhwcmVzc2lvbiBleGVjdXRvcgoKVGhlIGV4cHJlc3Npb24gZXhlY3V0b3IgY2FuIGJlIGNh bGxlZCBkaXJlY3RseSAobm90IGluc2lkZSBxdWVyeSBleGVjdXRvcikKd2hlbiBleHByZXNzaW9u IGlzIGV2YWx1YXRlZCBhcyBzaW1wbGUgZXhwcmVzc2lvbiBpbiBwbHBnc3FsIG9yIHdoZW4gZXhw cmVzc2lvbgppcyBhbiBhcmd1bWVudCBvZiBDQUxMIHN0YXRlbWVudC4gRm9yIHRoZXNlIGNhc2Vz IHdlIG5lZWQgdG8gYWxsb3cgZGlyZWN0CmFjY2VzcyB0byBjb250ZW50IG9mIHNlc3Npb24gdmFy aWFibGVzIGZyb20gZXhlY3V0b3IuIFdlIGNhbiBkbyBpdCwgYmVjYXVzZQp3ZSBrbm93IHNvIHRo ZSBleHByZXNzaW9uIGlzIG5vdCBldmFsdWF0ZWQgdW5kZXIgcXVlcnkgYW5kIGNhbm5vdCBiZQpl dmFsdWF0ZWQgaW5zaWRlIHBhcmFsbGVsIHdvcmtlci4KClRoaXMgcGF0Y2ggZW5hYmxlcyBzZXNz aW9uIHZhcmlhYmxlcyBmb3Igc2ltcGxlIGV4cHJlc3Npb24gZXZhbHVhdGlvbi4KClRoaXMgcGF0 Y2ggZW5hYmxlcyB1c2FnZSBzZXNzaW9uIHZhcmlhYmxlcyBpbiBhcmd1bWVudHMgb2YgQ0FMTCBz dG10LgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8 IDg4ICsrKysrKysrKysrKystLS0tLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50 ZXJwLmMgICAgICAgICB8IDE2ICsrKysKIHNyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhw ci5jICAgICAgICAgICB8ICA2ICsrCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jICAgICAg ICAgICAgICAgICAgfCAgOCAtLQogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaCAgICAg ICAgICAgICAgIHwgMTIgKystCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJp YWJsZS5vdXQgfCAgMyArLQogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYyAgICAgICAgICAg ICAgICAgIHwgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dCAgICB8IDE1ICsrLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bCAgICB8ICA3ICstCiA5IGZpbGVzIGNoYW5nZWQsIDEwOCBpbnNlcnRpb25zKCspLCA1MCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwppbmRleCA5NzIyMzNlYzI1Yi4uMTVhZWZk YzMxM2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpAQCAtMTAwMSwzMSArMTAwMSw2OSBAQCBF eGVjSW5pdEV4cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0YXRlICpzdGF0ZSwKIAkJCQkJCQkJZXNf bnVtX3Nlc3Npb25fdmFyaWFibGVzID0gc3RhdGUtPnBhcmVudC0+c3RhdGUtPmVzX251bV9zZXNz aW9uX3ZhcmlhYmxlczsKIAkJCQkJCQl9CiAKLQkJCQkJCQlBc3NlcnQoZXNfc2Vzc2lvbl92YXJp YWJsZXMpOwotCi0JCQkJCQkJLyoKLQkJCQkJCQkgKiBVc2UgYnVmZmVyZWQgc2Vzc2lvbiB2YXJp YWJsZXMgd2hlbiB0aGUKLQkJCQkJCQkgKiBidWZmZXIgd2l0aCBjb3BpZWQgdmFsdWVzIGlzIGF2 YWlhYmxlCi0JCQkJCQkJICogKHN0YW5kYXJkIHF1ZXJ5IGV4ZWN1dG9yIG1vZGUpCi0JCQkJCQkJ ICovCi0KLQkJCQkJCQkvKiBQYXJhbWV0ZXIgc2FuaXR5IGNoZWNrcy4gKi8KLQkJCQkJCQlpZiAo cGFyYW0tPnBhcmFtaWQgPj0gZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzKQotCQkJCQkJCQllbG9n KEVSUk9SLCAicGFyYW1pZCBvZiBQQVJBTV9WQVJJQUJMRSBwYXJhbSBpcyBvdXQgb2YgcmFuZ2Ui KTsKLQotCQkJCQkJCXZhciA9ICZlc19zZXNzaW9uX3ZhcmlhYmxlc1twYXJhbS0+cGFyYW1pZF07 Ci0KLQkJCQkJCQlpZiAodmFyLT50eXBpZCAhPSBwYXJhbS0+cGFyYW10eXBlKQotCQkJCQkJCQll bG9nKEVSUk9SLCAidHlwZSBvZiBidWZmZXJlZCB2YWx1ZSBpcyBkaWZmZXJlbnQgdGhhbiBQQVJB TV9WQVJJQUJMRSB0eXBlIik7Ci0KLQkJCQkJCQkvKgotCQkJCQkJCSAqIEluIHRoaXMgY2FzZSwg cGFzcyB0aGUgdmFsdWUgbGlrZSBhCi0JCQkJCQkJICogY29uc3RhbnQuCi0JCQkJCQkJICovCi0J CQkJCQkJc2NyYXRjaC5vcGNvZGUgPSBFRU9QX0NPTlNUOwotCQkJCQkJCXNjcmF0Y2guZC5jb25z dHZhbC52YWx1ZSA9IHZhci0+dmFsdWU7Ci0JCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFsLmlzbnVs bCA9IHZhci0+aXNudWxsOwotCQkJCQkJCUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNo KTsKKwkJCQkJCQlpZiAoZXNfc2Vzc2lvbl92YXJpYWJsZXMpCisJCQkJCQkJeworCQkJCQkJCQkv KgorCQkJCQkJCQkgKiBUaGlzIHBhdGggaXMgdXNlZCB3aGVuIGV4cHJlc3Npb24gaXMKKwkJCQkJ CQkJICogZXZhbHVhdGVkIGluc2lkZSBxdWVyeSBldmFsdWF0aW9uLiBGb3IKKwkJCQkJCQkJICog ZW5zdXJpbmcgb2YgaW1tdXRhYmlsaXR5IG9mIHNlc3Npb24gdmFyaWFibGUKKwkJCQkJCQkJICog aW5zaWRlIHF1ZXJ5IHdlIHVzZSBzcGVjaWFsIGJ1ZmZlciB3aXRoIGNvcHkKKwkJCQkJCQkJICog b2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcy4gVGhpcyBtZXRob2QgaGVscHMKKwkJCQkJCQkJICog d2l0aCBwYXJhbGxlbCBleGVjdXRpb24gdG9vLgorCQkJCQkJCQkgKi8KKworCQkJCQkJCQkvKiBQ YXJhbWV0ZXIgc2FuaXR5IGNoZWNrcy4gKi8KKwkJCQkJCQkJaWYgKHBhcmFtLT5wYXJhbWlkID49 IGVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcykKKwkJCQkJCQkJCWVsb2coRVJST1IsICJwYXJhbWlk IG9mIFBBUkFNX1ZBUklBQkxFIHBhcmFtIGlzIG91dCBvZiByYW5nZSIpOworCisJCQkJCQkJCXZh ciA9ICZlc19zZXNzaW9uX3ZhcmlhYmxlc1twYXJhbS0+cGFyYW1pZF07CisKKwkJCQkJCQkJaWYg KHZhci0+dHlwaWQgIT0gcGFyYW0tPnBhcmFtdHlwZSkKKwkJCQkJCQkJCWVsb2coRVJST1IsICJ0 eXBlIG9mIGJ1ZmZlcmVkIHZhbHVlIGlzIGRpZmZlcmVudCB0aGFuIFBBUkFNX1ZBUklBQkxFIHR5 cGUiKTsKKworCQkJCQkJCQkvKgorCQkJCQkJCQkgKiBJbiB0aGlzIGNhc2UsIHBhc3MgdGhlIHZh bHVlIGxpa2UgYQorCQkJCQkJCQkgKiBjb25zdGFudC4KKwkJCQkJCQkJICovCisJCQkJCQkJCXNj cmF0Y2gub3Bjb2RlID0gRUVPUF9DT05TVDsKKwkJCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFsLnZh bHVlID0gdmFyLT52YWx1ZTsKKwkJCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFsLmlzbnVsbCA9IHZh ci0+aXNudWxsOworCQkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisJ CQkJCQkJfQorCQkJCQkJCWVsc2UKKwkJCQkJCQl7CisJCQkJCQkJCUFjbFJlc3VsdAlhY2xyZXN1 bHQ7CisJCQkJCQkJCU9pZAkJCXZhcmlkID0gcGFyYW0tPnBhcmFtdmFyaWQ7CisJCQkJCQkJCU9p ZAkJCXZhcnR5cGUgPSBwYXJhbS0+cGFyYW10eXBlOworCisJCQkJCQkJCUFzc2VydCghSXNQYXJh bGxlbFdvcmtlcigpKTsKKworCQkJCQkJCQkvKgorCQkJCQkJCQkgKiBJbiBzb21lIGNhc2VzIChw bHBnc3FsJ3Mgc2ltcGxlIGV4cHJlc3Npb24KKwkJCQkJCQkJICogZXZhbHVhdGlvbiBvciBldmFs dWF0aW9uIG9mIENBTEwgYXJndW1lbnRzKSwKKwkJCQkJCQkJICogdGhlIGV4cHJlc3Npb24gZXhl Y3V0b3IgaXMgY2FsbGVkIGRpcmVjdGx5LgorCQkJCQkJCQkgKiBXZSBjYW4gYWxsb3cgZGlyZWN0 IGFjY2VzcyB0byBzZXNzaW9uCisJCQkJCQkJCSAqIHZhcmlhYmxlcyAoY29weSBvbmx5KSwgYmVj YXVzZSB3ZSBrbm93LCBzbworCQkJCQkJCQkgKiBvdXRzaWRlIGlzIG5vdCBhbnkgcXVlcnkgKGFu ZCBleHByZXNzaW9uCisJCQkJCQkJCSAqIGNhbm5vdCBiZSBleGVjdXRlZCBwYXJhbGxlbCkuCisJ CQkJCQkJCSAqCisJCQkJCQkJCSAqIEluIHRoaXMgY2FzZSB3ZSBzaG91bGQgdG8gZG8gYWNsY2hl Y2ssCisJCQkJCQkJCSAqIGJlY2F1c2UgdXN1YWwgYWNsY2hlY2sgZnJvbQorCQkJCQkJCQkgKiBz dGFuZGFyZF9FeGVjdXRvclN0YXJ0IGlzIG5vdCBleGVjdXRlZCBpbgorCQkJCQkJCQkgKiB0aGlz IGNhc2UuIEZvcnR1bmF0ZWx5IGl0IGlzIGp1c3Qgb25jZSBwZXIKKwkJCQkJCQkJICogdHJhbnNh Y3Rpb24uCisJCQkJCQkJCSAqLworCQkJCQkJCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2so VmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCQkJCQkJCUdldFVzZXJJZCgpLCBB Q0xfU0VMRUNUKTsKKwkJCQkJCQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCQkJ CQkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLAorCQkJCQkJCQkJ CQkJICAgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJCQkJCQkJCXNjcmF0 Y2gub3Bjb2RlID0gRUVPUF9QQVJBTV9WQVJJQUJMRTsKKwkJCQkJCQkJc2NyYXRjaC5kLnZwYXJh bS52YXJpZCA9IHZhcmlkOworCQkJCQkJCQlzY3JhdGNoLmQudnBhcmFtLnZhcnR5cGUgPSB2YXJ0 eXBlOworCQkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisJCQkJCQkJ fQogCQkJCQkJfQogCQkJCQkJYnJlYWs7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNFeHBySW50ZXJwLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVy cC5jCmluZGV4IGQ4NzM1Mjg2YzRkLi44MGE4NjJiMjg0MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjRXhwckludGVycC5jCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSAiYWNjZXNzL2hlYXB0 b2FzdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRz L3NlcXVlbmNlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2lu Y2x1ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivbm9kZVN1YnBs YW4uaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC00NTAsNiArNDUxLDcgQEAgRXhlY0ludGVy cEV4cHIoRXhwclN0YXRlICpzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0LCBib29sICppc251 bGwpCiAJCSYmQ0FTRV9FRU9QX1BBUkFNX0VYRUMsCiAJCSYmQ0FTRV9FRU9QX1BBUkFNX0VYVEVS TiwKIAkJJiZDQVNFX0VFT1BfUEFSQU1fQ0FMTEJBQ0ssCisJCSYmQ0FTRV9FRU9QX1BBUkFNX1ZB UklBQkxFLAogCQkmJkNBU0VfRUVPUF9DQVNFX1RFU1RWQUwsCiAJCSYmQ0FTRV9FRU9QX01BS0Vf UkVBRE9OTFksCiAJCSYmQ0FTRV9FRU9QX0lPQ09FUkNFLApAQCAtMTA5Myw2ICsxMDk1LDIwIEBA IEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwg Ym9vbCAqaXNudWxsKQogCQkJRUVPX05FWFQoKTsKIAkJfQogCisJCUVFT19DQVNFKEVFT1BfUEFS QU1fVkFSSUFCTEUpCisJCXsKKwkJCS8qCisJCQkgKiBEaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24g dmFyaWFibGUgKHdpdGhvdXQgYnVmZmVyaW5nKS4gQmVjYXVzZQorCQkJICogcmV0dXJuZWQgdmFs dWUgY2FuIGJlIHVzZWQgKHdpdGhvdXQgYW4gYXNzaWduZW1lbnQpIGFmdGVyIHRoZQorCQkJICog cmVmZXJlbmNlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyB1cGRhdGVkLCB3ZSBoYXZlIHRvIHVzZSBh biBjb3B5CisJCQkgKiBvZiBzdG9yZWQgdmFsdWUgZXZlcnkgdGltZS4KKwkJCSAqLworCQkJKm9w LT5yZXN2YWx1ZSA9IEdldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlQ2hlY2sob3AtPmQudnBhcmFt LnZhcmlkLAorCQkJCQkJCQkJCQkJCQkJb3AtPnJlc251bGwsCisJCQkJCQkJCQkJCQkJCQlvcC0+ ZC52cGFyYW0udmFydHlwZSk7CisJCQlFRU9fTkVYVCgpOworCQl9CisKIAkJRUVPX0NBU0UoRUVP UF9DQVNFX1RFU1RWQUwpCiAJCXsKIAkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9qaXQv bGx2bS9sbHZtaml0X2V4cHIuYyBiL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5j CmluZGV4IGNiZDllZDdjYzRiLi43YWY4M2Y1YThlNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv aml0L2xsdm0vbGx2bWppdF9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWpp dF9leHByLmMKQEAgLTExNDUsNiArMTE0NSwxMiBAQCBsbHZtX2NvbXBpbGVfZXhwcihFeHByU3Rh dGUgKnN0YXRlKQogCQkJCQlicmVhazsKIAkJCQl9CiAKKwkJCWNhc2UgRUVPUF9QQVJBTV9WQVJJ QUJMRToKKwkJCQlidWlsZF9FdmFsWEZ1bmMoYiwgbW9kLCAiRXhlY0V2YWxQYXJhbVZhcmlhYmxl IiwKKwkJCQkJCQkJdl9zdGF0ZSwgb3AsIHZfZWNvbnRleHQpOworCQkJCUxMVk1CdWlsZEJyKGIs IG9wYmxvY2tzW29wbm8gKyAxXSk7CisJCQkJYnJlYWs7CisKIAkJCWNhc2UgRUVPUF9TQlNSRUZf U1VCU0NSSVBUUzoKIAkJCQl7CiAJCQkJCWludAkJCWp1bXBkb25lID0gb3AtPmQuc2JzcmVmX3N1 YnNjcmlwdC5qdW1wZG9uZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXpl LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IDQ3MDc0MTM2ZTZiLi5kMzY2 MWE5YWQ0OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC0zMzgzLDE0ICszMzgzLDYgQEAgdHJhbnNm b3JtQ2FsbFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDYWxsU3RtdCAqc3RtdCkKIAkJCQkJCQkg dHJ1ZSwKIAkJCQkJCQkgc3RtdC0+ZnVuY2NhbGwtPmxvY2F0aW9uKTsKIAotCS8qCi0JICogVGhl IGFyZ3VtZW50cyBvZiBDQUxMIHN0YXRlbWVudCBhcmUgZXZhbHVhdGVkIGJ5IGRpcmVjdAotCSAq IGV4cHJlc3Npb24gZXhlY3V0b3IgY2FsbC4gVGhpcyBwYXRoIGlzIHVuc3VwcG9ydGVkIHlldCwK LQkgKiBzbyBibG9jayBpdC4gSXQgd2lsbCBiZSBlbmFibGVkIGJ5IHNvbWUgb3RoZXIgcGF0Y2gu Ci0JICovCi0JaWYgKHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzKQotCQllbG9nKEVSUk9S LCAic2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudCIpOwotCiAJ YXNzaWduX2V4cHJfY29sbGF0aW9ucyhwc3RhdGUsIG5vZGUpOwogCiAJZmV4cHIgPSBjYXN0Tm9k ZShGdW5jRXhwciwgbm9kZSk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVj RXhwci5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaAppbmRleCA1NTMzN2Q0OTE2 Ni4uMDQ3NzcyM2ZhMmUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHBy LmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaApAQCAtMTU2LDEwICsxNTYs MTEgQEAgdHlwZWRlZiBlbnVtIEV4cHJFdmFsT3AKIAlFRU9QX0JPT0xURVNUX0lTX0ZBTFNFLAog CUVFT1BfQk9PTFRFU1RfSVNfTk9UX0ZBTFNFLAogCi0JLyogZXZhbHVhdGUgUEFSQU1fRVhFQy9F WFRFUk4gcGFyYW1ldGVycyAqLworCS8qIGV2YWx1YXRlIFBBUkFNX0VYRUMvRVhURVJOL1ZBUklB QkxFIHBhcmFtZXRlcnMgKi8KIAlFRU9QX1BBUkFNX0VYRUMsCiAJRUVPUF9QQVJBTV9FWFRFUk4s CiAJRUVPUF9QQVJBTV9DQUxMQkFDSywKKwlFRU9QX1BBUkFNX1ZBUklBQkxFLAogCiAJLyogcmV0 dXJuIENhc2VUZXN0RXhwciB2YWx1ZSAqLwogCUVFT1BfQ0FTRV9URVNUVkFMLApAQCAtNDAwLDYg KzQwMSwxMyBAQCB0eXBlZGVmIHN0cnVjdCBFeHByRXZhbFN0ZXAKIAkJCU9pZAkJCXBhcmFtdHlw ZTsJLyogT0lEIG9mIHBhcmFtZXRlcidzIGRhdGF0eXBlICovCiAJCX0JCQljcGFyYW07CiAKKwkJ LyogZm9yIEVFT1BfUEFSQU1fVkFSSUFCTEUgKi8KKwkJc3RydWN0CisJCXsKKwkJCU9pZAkJCXZh cmlkOwkJLyogT0lEIG9mIGFzc2lnbmVkIHZhcmlhYmxlICovCisJCQlPaWQJCQl2YXJ0eXBlOwkv KiBPSUQgb2YgcGFyYW1ldGVyJ3MgZGF0YXR5cGUgKi8KKwkJfQkJCXZwYXJhbTsKKwogCQkvKiBm b3IgRUVPUF9DQVNFX1RFU1RWQUwvRE9NQUlOX1RFU1RWQUwgKi8KIAkJc3RydWN0CiAJCXsKQEAg LTc5OCw2ICs4MDYsOCBAQCBleHRlcm4gdm9pZCBFeGVjRXZhbFBhcmFtRXhlYyhFeHByU3RhdGUg KnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wLAogCQkJCQkJCSAgRXhwckNvbnRleHQgKmVjb250ZXh0 KTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFsUGFyYW1FeHRlcm4oRXhwclN0YXRlICpzdGF0ZSwgRXhw ckV2YWxTdGVwICpvcCwKIAkJCQkJCQkJRXhwckNvbnRleHQgKmVjb250ZXh0KTsKK2V4dGVybiB2 b2lkIEV4ZWNFdmFsUGFyYW1WYXJpYWJsZShFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAg Km9wLAorCQkJCQkJCQkgIEV4cHJDb250ZXh0ICplY29udGV4dCk7CiBleHRlcm4gdm9pZCBFeGVj RXZhbENvZXJjZVZpYUlPU2FmZShFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKTsK IGV4dGVybiB2b2lkIEV4ZWNFdmFsU1FMVmFsdWVGdW5jdGlvbihFeHByU3RhdGUgKnN0YXRlLCBF eHByRXZhbFN0ZXAgKm9wKTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFsQ3VycmVudE9mRXhwcihFeHBy U3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKTsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBn c3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0IGIvc3JjL3BsL3Bs cGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKaW5kZXggZWMw N2YxY2JhZTkuLjc4OWMzMTIzYjBjIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhw ZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dAorKysgYi9zcmMvcGwvcGxwZ3NxbC9z cmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dApAQCAtMjExLDggKzIxMSw3 IEBAIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKIC0tIHNob3VsZCB0byBmYWls CiBTRUxFQ1QgdmFyX3JlYWRfZnVuYygpOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Ig c2Vzc2lvbiB2YXJpYWJsZSBwbHBnc3FsX3N2X3ZhcjEKLUNPTlRFWFQ6ICBTUUwgZXhwcmVzc2lv biAicGxwZ3NxbF9zdl92YXIxIgotUEwvcGdTUUwgZnVuY3Rpb24gdmFyX3JlYWRfZnVuYygpIGxp bmUgMyBhdCBSQUlTRQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHZhcl9yZWFkX2Z1bmMo KSBsaW5lIDMgYXQgUkFJU0UKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBTRVQgUk9MRSBUTyByZWdy ZXNzX3Zhcl9vd25lcl9yb2xlOwogR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3Zf dmFyMSBUTyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBn c3FsL3NyYy9wbF9leGVjLmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IGE5 ZTFlMzIzYWQxLi4yMzliMzI1MGE5NSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3Bs X2V4ZWMuYworKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCkBAIC04MTAxLDggKzgx MDEsNyBAQCBleGVjX2lzX3NpbXBsZV9xdWVyeShQTHBnU1FMX2V4cHIgKmV4cHIpCiAJCXF1ZXJ5 LT5zb3J0Q2xhdXNlIHx8CiAJCXF1ZXJ5LT5saW1pdE9mZnNldCB8fAogCQlxdWVyeS0+bGltaXRD b3VudCB8fAotCQlxdWVyeS0+c2V0T3BlcmF0aW9ucyB8fAotCQlxdWVyeS0+aGFzU2Vzc2lvblZh cmlhYmxlcykKKwkJcXVlcnktPnNldE9wZXJhdGlvbnMpCiAJCXJldHVybiBmYWxzZTsKIAogCS8q CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0Cmlu ZGV4IGJkZmEwZTI2NjgzLi45YTNhMzY4MjRjNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTEwNyw4ICsxMDcsNyBAQCBFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKIENPTlRFWFQ6ICBT UUwgZnVuY3Rpb24gInNxbGZ4IiBzdGF0ZW1lbnQgMQogU0VMRUNUIHBscGdzcWxmeCgyMCk7CiBF UlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKLUNPTlRF WFQ6ICBTUUwgZXhwcmVzc2lvbiAiJDEgKyB2YXIxIgotUEwvcGdTUUwgZnVuY3Rpb24gcGxwZ3Nx bGZ4KGludGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4KK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlv biBwbHBnc3FsZngoaW50ZWdlcikgbGluZSAxIGF0IFJFVFVSTgogLS0gc2hvdWxkIGJlIG9rCiBT RUxFQ1Qgc3FsZnhfc2QoMjApOwogIHNxbGZ4X3NkIApAQCAtMjc4LDE3ICsyNzcsMTUgQEAgJCQ7 CiBOT1RJQ0U6ICByZXN1bHQgYXJyYXk6IHsxLDIsMyw0LDUsNiw3LDgsOSwxMH0KIERST1AgVkFS SUFCTEUgdmFyMTsKIERST1AgVkFSSUFCTEUgdmFyMjsKLS0tIENBTEwgc3RhdGVtZW50IGlzIG5v dCBzdXBwb3J0ZWQgeWV0Ci0tLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFy aWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCistLSBDQUxMIHN0YXRlbWVudCBpcyBzdXBw b3J0ZWQKIENSRUFURSBWQVJJQUJMRSB2IGludDsKK0xFVCB2ID0gMTsKIENSRUFURSBQUk9DRURV UkUgcChhcmcgaW50KSBBUyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCBhcmc7IEVORCAkJCBM QU5HVUFHRSBwbHBnc3FsOwotLS0gc2hvdWxkIG5vdCBjcmFzaCAoYnV0IGlzIG5vdCBzdXBwb3J0 ZWQgeWV0KQorLS0gc2hvdWxkIHRvIHdvcmsKIENBTEwgcCh2KTsKLUVSUk9SOiAgc2Vzc2lvbiB2 YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudAorTk9USUNFOiAgMQogRE8gJCQg QkVHSU4gQ0FMTCBwKHYpOyBFTkQgJCQ7Ci1FUlJPUjogIHNlc3Npb24gdmFyaWFibGUgY2Fubm90 IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQKLUNPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJDQUxMIHAo dikiCi1QTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgQ0FMTAor Tk9USUNFOiAgMQogRFJPUCBQUk9DRURVUkUgcChpbnQpOwogRFJPUCBWQVJJQUJMRSB2OwogLS0g dGVzdCBzZWFyY2ggcGF0aApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCmluZGV4IGNhZDE0Nzc2NWFjLi41OTgwMDM1N2U0NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtMjA3LDEzICsyMDcsMTQgQEAgJCQ7CiBEUk9Q IFZBUklBQkxFIHZhcjE7CiBEUk9QIFZBUklBQkxFIHZhcjI7CiAKLS0tIENBTEwgc3RhdGVtZW50 IGlzIG5vdCBzdXBwb3J0ZWQgeWV0Ci0tLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Np b24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCistLSBDQUxMIHN0YXRlbWVudCBp cyBzdXBwb3J0ZWQKIENSRUFURSBWQVJJQUJMRSB2IGludDsKIAorTEVUIHYgPSAxOworCiBDUkVB VEUgUFJPQ0VEVVJFIHAoYXJnIGludCkgQVMgJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgYXJn OyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKIAotLS0gc2hvdWxkIG5vdCBjcmFzaCAoYnV0IGlz IG5vdCBzdXBwb3J0ZWQgeWV0KQorLS0gc2hvdWxkIHRvIHdvcmsKIENBTEwgcCh2KTsKIAogRE8g JCQgQkVHSU4gQ0FMTCBwKHYpOyBFTkQgJCQ7Ci0tIAoyLjQ1LjIKCg== --000000000000bfc92e061dffd1c5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240724-0015-allow-parallel-execution-queries-with-session-variab.patch" Content-Disposition: attachment; filename="v20240724-0015-allow-parallel-execution-queries-with-session-variab.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyzzqe3a14 RnJvbSA0YjY5MWJiZjk4OWUwNDU0YjE4YmU2ODYxOWQxZGJiMTcxZWYzY2M0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDc6NTc6MjkgKzAxMDAKU3ViamVjdDogW1BBVENIIDE1 LzIwXSBhbGxvdyBwYXJhbGxlbCBleGVjdXRpb24gcXVlcmllcyB3aXRoIHNlc3Npb24gdmFyaWFi bGVzCgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8 ICAxNCArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMgICAgICAgICAgIHwg MTQ3ICsrKysrKysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNl cy5jICAgICAgICAgIHwgIDE4ICstLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXMub3V0ICAgIHwgIDEyICstCiA0IGZpbGVzIGNoYW5nZWQsIDE3MSBpbnNlcnRpb25zKCsp LCAyMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj TWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwppbmRleCBmMmZiNjgwZGVm Yy4uNGZiZTdjNzE4NDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWlu LmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwpAQCAtMjAzLDcgKzIwMywx OSBAQCBzdGFuZGFyZF9FeGVjdXRvclN0YXJ0KFF1ZXJ5RGVzYyAqcXVlcnlEZXNjLCBpbnQgZWZs YWdzKQogCSAqIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGNvcGllZCB0byBkZWRpY2F0 ZWQgYXJyYXksIGFuZCB0aGlzIGFycmF5CiAJICogaXMgcGFzc2VkIHRvIGV4ZWN1dG9yLgogCSAq LwotCWlmIChxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5zZXNzaW9uVmFyaWFibGVzKQorCWlmIChx dWVyeURlc2MtPm51bV9zZXNzaW9uX3ZhcmlhYmxlcyA+IDApCisJeworCQkvKgorCQkgKiBXaGVu IGEgcGFyYWxsZWwgcXVlcnkgbmVlZHMgdG8gYWNjZXNzIHF1ZXJ5IHBhcmFtZXRlcnMgKGluY2x1 ZGluZworCQkgKiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGVzKSwgdGhlbiByZWxhdGVkIHNlc3Np b24gdmFyaWFibGVzIGFyZQorCQkgKiByZXN0b3JlZCAoZGVzZXJpYWxpemVkKSBpbiBxdWVyeURl c2MgYWxyZWFkeS4gU28ganVzdCBwdXNoIHBvaW50ZXIKKwkJICogb2YgdGhpcyBhcnJheSB0byBl eGVjdXRvcidzIGVzdGF0ZS4KKwkJICovCisJCUFzc2VydChJc1BhcmFsbGVsV29ya2VyKCkpOwor CQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzID0gcXVlcnlEZXNjLT5zZXNzaW9uX3Zhcmlh YmxlczsKKwkJZXN0YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBxdWVyeURlc2MtPm51 bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwl9CisJZWxzZSBpZiAocXVlcnlEZXNjLT5wbGFubmVkc3Rt dC0+c2Vzc2lvblZhcmlhYmxlcykKIAl7CiAJCUxpc3RDZWxsICAgKmxjOwogCQlpbnQJCQluU2Vz c2lvblZhcmlhYmxlczsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJh bGxlbC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKaW5kZXggYmZiMzQx OWVmYjcuLmNiNDM0ZTI3NjhlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj UGFyYWxsZWwuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwpAQCAt MTIsOCArMTIsOSBAQAogICogd29ya2VycyBhbmQgZW5zdXJpbmcgdGhhdCB0aGVpciBzdGF0ZSBn ZW5lcmFsbHkgbWF0Y2hlcyB0aGF0IG9mIHRoZQogICogbGVhZGVyOyBzZWUgc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0vUkVBRE1FLnBhcmFsbGVsIGZvciBkZXRhaWxzLgogICogSG93ZXZlciwg d2UgbXVzdCBzYXZlIGFuZCByZXN0b3JlIHJlbGV2YW50IGV4ZWN1dG9yIHN0YXRlLCBzdWNoIGFz Ci0gKiBhbnkgUGFyYW1MaXN0SW5mbyBhc3NvY2lhdGVkIHdpdGggdGhlIHF1ZXJ5LCBidWZmZXIv V0FMIHVzYWdlIGluZm8sIGFuZAotICogdGhlIGFjdHVhbCBwbGFuIHRvIGJlIHBhc3NlZCBkb3du IHRvIHRoZSB3b3JrZXIuCisgKiBhbnkgUGFyYW1MaXN0SW5mbyBhc3NvY2lhdGVkIHdpdGggdGhl IHF1ZXJ5LCBidWZmZXIvV0FMIHVzYWdlIGluZm8sCisgKiBzZXNzaW9uIHZhcmlhYmxlcyBidWZm ZXIsIGFuZCB0aGUgYWN0dWFsIHBsYW4gdG8gYmUgcGFzc2VkIGRvd24gdG8KKyAqIHRoZSB3b3Jr ZXIuCiAgKgogICogSURFTlRJRklDQVRJT04KICAqCSAgc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y1BhcmFsbGVsLmMKQEAgLTY0LDYgKzY1LDcgQEAKICNkZWZpbmUgUEFSQUxMRUxfS0VZX1FVRVJZ X1RFWFQJCVVJTlQ2NENPTlNUKDB4RTAwMDAwMDAwMDAwMDAwOCkKICNkZWZpbmUgUEFSQUxMRUxf S0VZX0pJVF9JTlNUUlVNRU5UQVRJT04gVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDA5KQog I2RlZmluZSBQQVJBTExFTF9LRVlfV0FMX1VTQUdFCQkJVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAw MDAwMDBBKQorI2RlZmluZSBQQVJBTExFTF9LRVlfU0VTU0lPTl9WQVJJQUJMRVMJVUlOVDY0Q09O U1QoMHhFMDAwMDAwMDAwMDAwMDBCKQogCiAjZGVmaW5lIFBBUkFMTEVMX1RVUExFX1FVRVVFX1NJ WkUJCTY1NTM2CiAKQEAgLTEzOCw2ICsxNDAsMTIgQEAgc3RhdGljIGJvb2wgRXhlY1BhcmFsbGVs UmV0cmlldmVJbnN0cnVtZW50YXRpb24oUGxhblN0YXRlICpwbGFuc3RhdGUsCiAvKiBIZWxwZXIg ZnVuY3Rpb24gdGhhdCBydW5zIGluIHRoZSBwYXJhbGxlbCB3b3JrZXIuICovCiBzdGF0aWMgRGVz dFJlY2VpdmVyICpFeGVjUGFyYWxsZWxHZXRSZWNlaXZlcihkc21fc2VnbWVudCAqc2VnLCBzaG1f dG9jICp0b2MpOwogCisvKiBIZWxwZXIgZnVuY3Rpb25zIHRoYXQgY2FuIHBhc3MgdmFsdWVzIG9m IHNlc3Npb24gdmFyaWFibGVzICovCitzdGF0aWMgU2l6ZSBFc3RpbWF0ZVNlc3Npb25WYXJpYWJs ZXMoRVN0YXRlICplc3RhdGUpOworc3RhdGljIHZvaWQgU2VyaWFsaXplU2Vzc2lvblZhcmlhYmxl cyhFU3RhdGUgKmVzdGF0ZSwgY2hhciAqKnN0YXJ0X2FkZHJlc3MpOworc3RhdGljIFNlc3Npb25W YXJpYWJsZVZhbHVlICpSZXN0b3JlU2Vzc2lvblZhcmlhYmxlcyhjaGFyICoqc3RhcnRfYWRkcmVz cywKKwkJCQkJCQkJCQkJCQkgaW50ICpudW1fc2Vzc2lvbl92YXJpYWJsZXMpOworCiAvKgogICog Q3JlYXRlIGEgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgcGxhbiB0byBiZSBzZW50 IHRvIGVhY2ggd29ya2VyLgogICovCkBAIC01OTYsNiArNjA0LDcgQEAgRXhlY0luaXRQYXJhbGxl bFBsYW4oUGxhblN0YXRlICpwbGFuc3RhdGUsIEVTdGF0ZSAqZXN0YXRlLAogCWNoYXIJICAgKnBz dG10X2RhdGE7CiAJY2hhcgkgICAqcHN0bXRfc3BhY2U7CiAJY2hhcgkgICAqcGFyYW1saXN0aW5m b19zcGFjZTsKKwljaGFyCSAgICpzZXNzaW9uX3ZhcmlhYmxlc19zcGFjZTsKIAlCdWZmZXJVc2Fn ZSAqYnVmdXNhZ2Vfc3BhY2U7CiAJV2FsVXNhZ2UgICAqd2FsdXNhZ2Vfc3BhY2U7CiAJU2hhcmVk RXhlY3V0b3JJbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnRhdGlvbiA9IE5VTEw7CkBAIC02MDUs NiArNjE0LDcgQEAgRXhlY0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpwbGFuc3RhdGUsIEVT dGF0ZSAqZXN0YXRlLAogCWludAkJCWluc3RydW1lbnRhdGlvbl9sZW4gPSAwOwogCWludAkJCWpp dF9pbnN0cnVtZW50YXRpb25fbGVuID0gMDsKIAlpbnQJCQlpbnN0cnVtZW50X29mZnNldCA9IDA7 CisJaW50CQkJc2Vzc2lvbl92YXJpYWJsZXNfbGVuID0gMDsKIAlTaXplCQlkc2FfbWluc2l6ZSA9 IGRzYV9taW5pbXVtX3NpemUoKTsKIAljaGFyCSAgICpxdWVyeV9zdHJpbmc7CiAJaW50CQkJcXVl cnlfbGVuOwpAQCAtNjYwLDYgKzY3MCwxMSBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3Rh dGUgKnBsYW5zdGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJc2htX3RvY19lc3RpbWF0ZV9jaHVuaygm cGN4dC0+ZXN0aW1hdG9yLCBwYXJhbWxpc3RpbmZvX2xlbik7CiAJc2htX3RvY19lc3RpbWF0ZV9r ZXlzKCZwY3h0LT5lc3RpbWF0b3IsIDEpOwogCisJLyogRXN0aW1hdGUgc3BhY2UgZm9yIHNlcmlh bGl6ZWQgc2Vzc2lvbiB2YXJpYWJsZXMuICovCisJc2Vzc2lvbl92YXJpYWJsZXNfbGVuID0gRXN0 aW1hdGVTZXNzaW9uVmFyaWFibGVzKGVzdGF0ZSk7CisJc2htX3RvY19lc3RpbWF0ZV9jaHVuaygm cGN4dC0+ZXN0aW1hdG9yLCBzZXNzaW9uX3ZhcmlhYmxlc19sZW4pOworCXNobV90b2NfZXN0aW1h dGVfa2V5cygmcGN4dC0+ZXN0aW1hdG9yLCAxKTsKKwogCS8qCiAJICogRXN0aW1hdGUgc3BhY2Ug Zm9yIEJ1ZmZlclVzYWdlLgogCSAqCkBAIC03NjEsNiArNzc2LDExIEBAIEV4ZWNJbml0UGFyYWxs ZWxQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAlzaG1fdG9jX2lu c2VydChwY3h0LT50b2MsIFBBUkFMTEVMX0tFWV9QQVJBTUxJU1RJTkZPLCBwYXJhbWxpc3RpbmZv X3NwYWNlKTsKIAlTZXJpYWxpemVQYXJhbUxpc3QoZXN0YXRlLT5lc19wYXJhbV9saXN0X2luZm8s ICZwYXJhbWxpc3RpbmZvX3NwYWNlKTsKIAorCS8qIFN0b3JlIHNlcmlhbGl6ZWQgc2Vzc2lvbiB2 YXJpYWJsZXMuICovCisJc2Vzc2lvbl92YXJpYWJsZXNfc3BhY2UgPSBzaG1fdG9jX2FsbG9jYXRl KHBjeHQtPnRvYywgc2Vzc2lvbl92YXJpYWJsZXNfbGVuKTsKKwlzaG1fdG9jX2luc2VydChwY3h0 LT50b2MsIFBBUkFMTEVMX0tFWV9TRVNTSU9OX1ZBUklBQkxFUywgc2Vzc2lvbl92YXJpYWJsZXNf c3BhY2UpOworCVNlcmlhbGl6ZVNlc3Npb25WYXJpYWJsZXMoZXN0YXRlLCAmc2Vzc2lvbl92YXJp YWJsZXNfc3BhY2UpOworCiAJLyogQWxsb2NhdGUgc3BhY2UgZm9yIGVhY2ggd29ya2VyJ3MgQnVm ZmVyVXNhZ2U7IG5vIG5lZWQgdG8gaW5pdGlhbGl6ZS4gKi8KIAlidWZ1c2FnZV9zcGFjZSA9IHNo bV90b2NfYWxsb2NhdGUocGN4dC0+dG9jLAogCQkJCQkJCQkJICBtdWxfc2l6ZShzaXplb2YoQnVm ZmVyVXNhZ2UpLCBwY3h0LT5ud29ya2VycykpOwpAQCAtMTQxMSw2ICsxNDMxLDcgQEAgUGFyYWxs ZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCVNoYXJlZEppdElu c3RydW1lbnRhdGlvbiAqaml0X2luc3RydW1lbnRhdGlvbjsKIAlpbnQJCQlpbnN0cnVtZW50X29w dGlvbnMgPSAwOwogCXZvaWQJICAgKmFyZWFfc3BhY2U7CisJY2hhcgkgICAqc2Vzc2lvbnZhcmlh YmxlX3NwYWNlOwogCWRzYV9hcmVhICAgKmFyZWE7CiAJUGFyYWxsZWxXb3JrZXJDb250ZXh0IHB3 Y3h0OwogCkBAIC0xNDM2LDYgKzE0NTcsMTQgQEAgUGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21l bnQgKnNlZywgc2htX3RvYyAqdG9jKQogCWFyZWFfc3BhY2UgPSBzaG1fdG9jX2xvb2t1cCh0b2Ms IFBBUkFMTEVMX0tFWV9EU0EsIGZhbHNlKTsKIAlhcmVhID0gZHNhX2F0dGFjaF9pbl9wbGFjZShh cmVhX3NwYWNlLCBzZWcpOwogCisJLyogUmVjb25zdHJ1Y3Qgc2Vzc2lvbiB2YXJpYWJsZXMuICov CisJc2Vzc2lvbnZhcmlhYmxlX3NwYWNlID0gc2htX3RvY19sb29rdXAodG9jLAorCQkJCQkJCQkJ CSAgIFBBUkFMTEVMX0tFWV9TRVNTSU9OX1ZBUklBQkxFUywKKwkJCQkJCQkJCQkgICBmYWxzZSk7 CisJcXVlcnlEZXNjLT5zZXNzaW9uX3ZhcmlhYmxlcyA9CisJCVJlc3RvcmVTZXNzaW9uVmFyaWFi bGVzKCZzZXNzaW9udmFyaWFibGVfc3BhY2UsCisJCQkJCQkJCSZxdWVyeURlc2MtPm51bV9zZXNz aW9uX3ZhcmlhYmxlcyk7CisKIAkvKiBTdGFydCB1cCB0aGUgZXhlY3V0b3IgKi8KIAlxdWVyeURl c2MtPnBsYW5uZWRzdG10LT5qaXRGbGFncyA9IGZwZXMtPmppdF9mbGFnczsKIAlFeGVjdXRvclN0 YXJ0KHF1ZXJ5RGVzYywgZnBlcy0+ZWZsYWdzKTsKQEAgLTE1MDQsMyArMTUzMywxMTcgQEAgUGFy YWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCUZyZWVRdWVy eURlc2MocXVlcnlEZXNjKTsKIAlyZWNlaXZlci0+ckRlc3Ryb3kocmVjZWl2ZXIpOwogfQorCisv KgorICogRXN0aW1hdGUgdGhlIGFtb3VudCBvZiBzcGFjZSByZXF1aXJlZCB0byBzZXJpYWxpemUg YSBzZXNzaW9uIHZhcmlhYmxlLgorICovCitzdGF0aWMgU2l6ZQorRXN0aW1hdGVTZXNzaW9uVmFy aWFibGVzKEVTdGF0ZSAqZXN0YXRlKQoreworCWludAkJCWk7CisJU2l6ZQkJc3ogPSBzaXplb2Yo aW50KTsKKworCWlmIChlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzID09IE5VTEwpCisJCXJl dHVybiBzejsKKworCWZvciAoaSA9IDA7IGkgPCBlc3RhdGUtPmVzX251bV9zZXNzaW9uX3Zhcmlh YmxlczsgaSsrKQorCXsKKwkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnN2YXJ2YWw7CisJCU9pZAkJ CXR5cGVPaWQ7CisJCWludDE2CQl0eXBMZW47CisJCWJvb2wJCXR5cEJ5VmFsOworCisJCXN2YXJ2 YWwgPSAmZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlc1tpXTsKKworCQl0eXBlT2lkID0gc3Zh cnZhbC0+dHlwaWQ7CisKKwkJc3ogPSBhZGRfc2l6ZShzeiwgc2l6ZW9mKE9pZCkpOyAvKiBzcGFj ZSBmb3IgdHlwZSBPSUQgKi8KKworCQkvKiBzcGFjZSBmb3IgZGF0dW0vaXNudWxsICovCisJCUFz c2VydChPaWRJc1ZhbGlkKHR5cGVPaWQpKTsKKwkJZ2V0X3R5cGxlbmJ5dmFsKHR5cGVPaWQsICZ0 eXBMZW4sICZ0eXBCeVZhbCk7CisKKwkJc3ogPSBhZGRfc2l6ZShzeiwKKwkJCQkJICBkYXR1bUVz dGltYXRlU3BhY2Uoc3ZhcnZhbC0+dmFsdWUsIHN2YXJ2YWwtPmlzbnVsbCwgdHlwQnlWYWwsIHR5 cExlbikpOworCX0KKworCXJldHVybiBzejsKK30KKworLyoKKyAqIFNlcmlhbGl6ZSBhIHNlc3Np b24gdmFyaWFibGVzIGJ1ZmZlciBpbnRvIGNhbGxlci1wcm92aWRlZCBzdG9yYWdlLgorICoKKyAq IFdlIHdyaXRlIHRoZSBudW1iZXIgb2YgcGFyYW1ldGVycyBmaXJzdCwgYXMgYSA0LWJ5dGUgaW50 ZWdlciwgYW5kIHRoZW4KKyAqIHdyaXRlIGRldGFpbHMgZm9yIGVhY2ggcGFyYW1ldGVyIGluIHR1 cm4uICBUaGUgZGV0YWlscyBmb3IgZWFjaCBwYXJhbWV0ZXIKKyAqIGNvbnNpc3Qgb2YgYSA0LWJ5 dGUgdHlwZSBPSUQsIGFuZCB0aGVuIHRoZSBkYXR1bSBhcyBzZXJpYWxpemVkIGJ5CisgKiBkYXR1 bVNlcmlhbGl6ZSgpLiAgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZW5zdXJpbmcgdGhh dCB0aGVyZSBpcworICogZW5vdWdoIHN0b3JhZ2UgdG8gc3RvcmUgdGhlIG51bWJlciBvZiBieXRl cyB0aGF0IHdpbGwgYmUgd3JpdHRlbjsgdXNlCisgKiBFc3RpbWF0ZVNlc3Npb25WYXJpYWJsZXMg dG8gZmluZCBvdXQgaG93IG1hbnkgd2lsbCBiZSBuZWVkZWQuCisgKiAqc3RhcnRfYWRkcmVzcyBp cyB1cGRhdGVkIHRvIHBvaW50IHRvIHRoZSBieXRlIGltbWVkaWF0ZWx5IGZvbGxvd2luZyB0aG9z ZQorICogd3JpdHRlbi4KKyAqCisgKiBSZXN0b3JlU2Vzc2lvblZhcmlhYmxlcyBjYW4gYmUgdXNl ZCB0byByZWNyZWF0ZSBhIHNlc3Npb24gdmFyaWFibGUgYnVmZmVyCisgKiBiYXNlZCBvbiB0aGUg c2VyaWFsaXplZCByZXByZXNlbnRhdGlvbjsKKyAqLworc3RhdGljIHZvaWQKK1NlcmlhbGl6ZVNl c3Npb25WYXJpYWJsZXMoRVN0YXRlICplc3RhdGUsIGNoYXIgKipzdGFydF9hZGRyZXNzKQorewor CWludAkJCW5wYXJhbXM7CisJaW50CQkJaTsKKworCS8qIFdyaXRlIG51bWJlciBvZiBwYXJhbWV0 ZXJzLiAqLworCW5wYXJhbXMgPSBlc3RhdGUtPmVzX251bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwlt ZW1jcHkoKnN0YXJ0X2FkZHJlc3MsICZucGFyYW1zLCBzaXplb2YoaW50KSk7CisJKnN0YXJ0X2Fk ZHJlc3MgKz0gc2l6ZW9mKGludCk7CisKKwkvKiBXcml0ZSBlYWNoIHBhcmFtZXRlciBpbiB0dXJu LiAqLworCWZvciAoaSA9IDA7IGkgPCBucGFyYW1zOyBpKyspCisJeworCQlTZXNzaW9uVmFyaWFi bGVWYWx1ZSAqc3ZhcnZhbDsKKwkJT2lkCQkJdHlwZU9pZDsKKwkJaW50MTYJCXR5cExlbjsKKwkJ Ym9vbAkJdHlwQnlWYWw7CisKKwkJc3ZhcnZhbCA9ICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFi bGVzW2ldOworCQl0eXBlT2lkID0gc3ZhcnZhbC0+dHlwaWQ7CisKKwkJLyogV3JpdGUgdHlwZSBP SUQuICovCisJCW1lbWNweSgqc3RhcnRfYWRkcmVzcywgJnR5cGVPaWQsIHNpemVvZihPaWQpKTsK KwkJKnN0YXJ0X2FkZHJlc3MgKz0gc2l6ZW9mKE9pZCk7CisKKwkJQXNzZXJ0KE9pZElzVmFsaWQo dHlwZU9pZCkpOworCQlnZXRfdHlwbGVuYnl2YWwodHlwZU9pZCwgJnR5cExlbiwgJnR5cEJ5VmFs KTsKKworCQlkYXR1bVNlcmlhbGl6ZShzdmFydmFsLT52YWx1ZSwgc3ZhcnZhbC0+aXNudWxsLCB0 eXBCeVZhbCwgdHlwTGVuLAorCQkJCQkgICBzdGFydF9hZGRyZXNzKTsKKwl9Cit9CisKK3N0YXRp YyBTZXNzaW9uVmFyaWFibGVWYWx1ZSAqCitSZXN0b3JlU2Vzc2lvblZhcmlhYmxlcyhjaGFyICoq c3RhcnRfYWRkcmVzcywgaW50ICpudW1fc2Vzc2lvbl92YXJpYWJsZXMpCit7CisJU2Vzc2lvblZh cmlhYmxlVmFsdWUgKnNlc3Npb25fdmFyaWFibGVzOworCWludAkJCWk7CisJaW50CQkJbnBhcmFt czsKKworCW1lbWNweSgmbnBhcmFtcywgKnN0YXJ0X2FkZHJlc3MsIHNpemVvZihpbnQpKTsKKwkq c3RhcnRfYWRkcmVzcyArPSBzaXplb2YoaW50KTsKKworCSpudW1fc2Vzc2lvbl92YXJpYWJsZXMg PSBucGFyYW1zOworCXNlc3Npb25fdmFyaWFibGVzID0gKFNlc3Npb25WYXJpYWJsZVZhbHVlICop CisJCXBhbGxvYyhucGFyYW1zICogc2l6ZW9mKFNlc3Npb25WYXJpYWJsZVZhbHVlKSk7CisKKwlm b3IgKGkgPSAwOyBpIDwgbnBhcmFtczsgaSsrKQorCXsKKwkJU2Vzc2lvblZhcmlhYmxlVmFsdWUg KnN2YXJ2YWwgPSAmc2Vzc2lvbl92YXJpYWJsZXNbaV07CisKKwkJLyogUmVhZCB0eXBlIE9JRC4g Ki8KKwkJbWVtY3B5KCZzdmFydmFsLT50eXBpZCwgKnN0YXJ0X2FkZHJlc3MsIHNpemVvZihPaWQp KTsKKwkJKnN0YXJ0X2FkZHJlc3MgKz0gc2l6ZW9mKE9pZCk7CisKKwkJLyogUmVhZCBkYXR1bS9p c251bGwuICovCisJCXN2YXJ2YWwtPnZhbHVlID0gZGF0dW1SZXN0b3JlKHN0YXJ0X2FkZHJlc3Ms ICZzdmFydmFsLT5pc251bGwpOworCX0KKworCXJldHVybiBzZXNzaW9uX3ZhcmlhYmxlczsKK30K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9i YWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwppbmRleCAxYjFmYjZlY2Y4MS4uMDkyZWQy MzUzYWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwor KysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTkyNCwyNSArOTI0 LDE5IEBAIG1heF9wYXJhbGxlbF9oYXphcmRfd2Fsa2VyKE5vZGUgKm5vZGUsIG1heF9wYXJhbGxl bF9oYXphcmRfY29udGV4dCAqY29udGV4dCkKIAogCS8qCiAJICogV2UgY2FuJ3QgcGFzcyBQYXJh bXMgdG8gd29ya2VycyBhdCB0aGUgbW9tZW50IGVpdGhlciwgc28gdGhleSBhcmUgYWxzbwotCSAq IHBhcmFsbGVsLXJlc3RyaWN0ZWQsIHVubGVzcyB0aGV5IGFyZSBQQVJBTV9FWFRFUk4gUGFyYW1z IG9yIGFyZQotCSAqIFBBUkFNX0VYRUMgUGFyYW1zIGxpc3RlZCBpbiBzYWZlX3BhcmFtX2lkcywg bWVhbmluZyB0aGV5IGNvdWxkIGJlCi0JICogZWl0aGVyIGdlbmVyYXRlZCB3aXRoaW4gd29ya2Vy cyBvciBjYW4gYmUgY29tcHV0ZWQgYnkgdGhlIGxlYWRlciBhbmQKLQkgKiB0aGVuIHRoZWlyIHZh bHVlIGNhbiBiZSBwYXNzZWQgdG8gd29ya2Vycy4KKwkgKiBwYXJhbGxlbC1yZXN0cmljdGVkLCB1 bmxlc3MgdGhleSBhcmUgUEFSQU1fRVhURVJOIG9yIFBBUkFNX1ZBUklBQkxFCisJICogUGFyYW1z IG9yIGFyZSBQQVJBTV9FWEVDIFBhcmFtcyBsaXN0ZWQgaW4gc2FmZV9wYXJhbV9pZHMsIG1lYW5p bmcgdGhleQorCSAqIGNvdWxkIGJlIGVpdGhlciBnZW5lcmF0ZWQgd2l0aGluIHdvcmtlcnMgb3Ig Y2FuIGJlIGNvbXB1dGVkIGJ5IHRoZQorCSAqIGxlYWRlciBhbmQgdGhlbiB0aGVpciB2YWx1ZSBj YW4gYmUgcGFzc2VkIHRvIHdvcmtlcnMuCiAJICovCiAJZWxzZSBpZiAoSXNBKG5vZGUsIFBhcmFt KSkKIAl7CiAJCVBhcmFtCSAgICpwYXJhbSA9IChQYXJhbSAqKSBub2RlOwogCi0JCWlmIChwYXJh bS0+cGFyYW1raW5kID09IFBBUkFNX0VYVEVSTikKKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0g UEFSQU1fRVhURVJOIHx8CisJCQlwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQog CQkJcmV0dXJuIGZhbHNlOwogCi0JCS8qIFdlIGRvZXNuJ3Qgc3VwcG9ydCBwYXNzaW5nIHNlc3Np b24gdmFyaWFibGVzIHRvIHdvcmtlcnMgKi8KLQkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFS QU1fVkFSSUFCTEUpCi0JCXsKLQkJCWlmIChtYXhfcGFyYWxsZWxfaGF6YXJkX3Rlc3QoUFJPUEFS QUxMRUxfUkVTVFJJQ1RFRCwgY29udGV4dCkpCi0JCQkJcmV0dXJuIHRydWU7Ci0JCX0KLQogCQlp ZiAocGFyYW0tPnBhcmFta2luZCAhPSBQQVJBTV9FWEVDIHx8CiAJCQkhbGlzdF9tZW1iZXJfaW50 KGNvbnRleHQtPnNhZmVfcGFyYW1faWRzLCBwYXJhbS0+cGFyYW1pZCkpCiAJCXsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggOWEzYTM2 ODI0YzcuLmM5YjhlNThjZmQ5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dApAQCAtNjI5LDEyICs2MjksMTQgQEAgU0VMRUNUIGNvdW50KCop IEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOwogCiAtLSBwYXJhbGxlbCBleGVjdXRp b24gaXMgbm90IHN1cHBvcnRlZCB5ZXQKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50 KCopIEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOwotICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBBZ2dyZWdhdGUKLSAgIC0+ICBTZXEg U2NhbiBvbiBzdmFyX3Rlc3QKLSAgICAgICAgIEZpbHRlcjogKChhICUgMTApID0gemVybykKLSgz IHJvd3MpCisgICAtPiAgR2F0aGVyCisgICAgICAgICBXb3JrZXJzIFBsYW5uZWQ6IDIKKyAgICAg ICAgIC0+ICBQYXJhbGxlbCBTZXEgU2NhbiBvbiBzdmFyX3Rlc3QKKyAgICAgICAgICAgICAgIEZp bHRlcjogKChhICUgMTApID0gemVybykKKyg1IHJvd3MpCiAKIExFVCB6ZXJvID0gKFNFTEVDVCBj b3VudCgqKSBGUk9NIHN2YXJfdGVzdCk7CiAtLSByZXN1bHQgc2hvdWxkIGJlIDEwMDAKLS0gCjIu NDUuMgoK --000000000000bfc92e061dffd1c5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240724-0016-plpgsql-implementation-for-LET-statement.patch" Content-Disposition: attachment; filename="v20240724-0016-plpgsql-implementation-for-LET-statement.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyzzqe3g15 RnJvbSBlNWViY2E1MWNjMzEzYjVkMzUzOGEwMjllMDAyYmY1ZTJkYWI3Njk5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDg6NTY6MTcgKzAxMDAKU3ViamVjdDogW1BBVENIIDE2 LzIwXSBwbHBnc3FsIGltcGxlbWVudGF0aW9uIGZvciBMRVQgc3RhdGVtZW50CgpQTHBnU1FMIGFs bG93cyB0byBjYWxsIGV4cHJlc3Npb24gZXhlY3V0b3IgZGlyZWN0bHkgKGZvciBzaW1wbGUgZXhw cmVzc2lvbikuClRoaXMgcG9zc2liaWxpdHkgc3Ryb25nbHkgcmVkdWNlcyBvdmVyaGVhZCByZWxh dGVkIHRvIGV4ZWN1dGlvbi4gUmVpbXBsZW1lbnRhdGlvbgpvZiBMRVQgc3RhdGVtZW50IChpbnNp ZGUgUExwZ1NRTCkgYWxsb3dzIHRvIHVzZSB0aGlzIHBvc3NpYmlsaXR5LCBhbmQgc3Ryb25nbHkK aW5jcmVhc2UgcGVyZm9ybWFuY2U6CgpDUkVBVEUgVkFSSUFCTEUgc3ZhciBpbnQ7CgpETyAkJApC RUdJTgogIEZPUiBpIElOIDEuLjEwMDAwCiAgTE9PUAogICAgTEVUIHN2YXIgPSBpOwogIEVORCBM T09QOwpFTkQ7CiQkOwoKRnJvbSAxMjBtcyB0byA4bXMgKHdpdGggYXNzZXJ0aW9ucykgKHRoaXMg aXMgYmVzdCBjYXNlLCBidXQgd2l0aG91dCBpdCwgdGhlIExFVCBzdGF0ZW1lbnQKY2FuIGJlIGJv dHRsZSBuZWNrKS4KCkFuIGFsdGVybmF0aXZlIGNhbiBiZSByZWltcGxlbWVudGF0aW9uIG9mIExF VCBzdGF0ZW1lbnQgaW5zaWRlIGV4cHJlc3Npb24KZXhlY3V0b3IsIGFuZCB0aGVuIFNRTCBMRVQg Y29tbWFuZCBjYW4gYmUgZXhlY3V0ZWQgaW4gc2ltcGxlIGV4cHJlc3Npb24KZXhlY3V0aW9uLCBi dXQgdGhpcyBpbmNyZWFzZSBhbiBjb21wbGV4aXR5IG9mIGV4ZWN1dG9yLCBidXQgc3RpbGwgdGhl CmJlbmVmaXRzIGlzIG9ubHkgaW5zaWRlIHBscGdzcWwsIHNvIGl0IGlzIGJldHRlciB0byB0aGlz IG9wdGltaXphdGlvbgppbnNpZGUgcGxwZ3NxbC4KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9z cGkuYyAgICAgICAgICAgICAgfCAgMyArKwogc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAg ICAgICAgICAgIHwgMTIgKysrKysrCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAg ICAgICAgfCAgOCArKysrCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VyLmMgICAgICAgICAgICAg fCAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgfCAgMiArCiBz cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VyLmggICAgICAgICAgICAgfCAgNCArKwogc3JjL3BsL3Bs cGdzcWwvc3JjL3BsX2V4ZWMuYyAgICAgICAgICAgIHwgNTUgKysrKysrKysrKysrKysrKysrKysr KysrKwogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2Z1bmNzLmMgICAgICAgICAgIHwgMjQgKysrKysr KysrKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkgICAgICAgICAgICB8IDI4ICsrKysr KysrKysrKy0KIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9yZXNlcnZlZF9rd2xpc3QuaCB8ICAxICsK IHNyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3FsLmggICAgICAgICAgICB8IDEyICsrKysrKwogc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgIHwgIDEgKwogMTIgZmlsZXMgY2hh bmdlZCwgMTUwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9zcGkuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCmluZGV4 IGU1MTZjMGE2N2M2Li5jMzE5MWZkYzQzMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivc3BpLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKQEAgLTI5ODMsNiArMjk4 Myw5IEBAIF9TUElfZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJnKQogCQkJY2FzZSBSQVdfUEFSU0Vf UExQR1NRTF9BU1NJR04zOgogCQkJCWVycmNvbnRleHQoIlBML3BnU1FMIGFzc2lnbm1lbnQgXCIl c1wiIiwgcXVlcnkpOwogCQkJCWJyZWFrOworCQkJY2FzZSBSQVdfUEFSU0VfUExQR1NRTF9MRVQ6 CisJCQkJZXJyY29udGV4dCgiTEVUIHN0YXRlbWVudCBcIiVzXCIiLCBxdWVyeSk7CisJCQkJYnJl YWs7CiAJCQlkZWZhdWx0OgogCQkJCWVycmNvbnRleHQoIlNRTCBzdGF0ZW1lbnQgXCIlc1wiIiwg cXVlcnkpOwogCQkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5 emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggZDM2NjFhOWFkNDguLjc2 MmUwNThhNDk3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTE5MjgsNiArMTkyOCwxOCBAQCB0cmFu c2Zvcm1MZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCkKIAogCXN0bXQt PnF1ZXJ5ID0gKE5vZGUgKikgcXVlcnk7CiAKKwkvKgorCSAqIEluc2lkZSBQTC9wZ1NRTCB3ZSBk b24ndCB3YW50IHRvIGV4ZWN1dGUgTEVUIHN0YXRlbWVudCBhcyB1dGlsaXR5CisJICogY29tbWFu ZCwgYmVjYXVzZSBpdCBkaXNhbGxvdyB0byBleGVjdXRlIGV4cHJlc3Npb24gYXMgc2ltcGxlCisJ ICogZXhwcmVzc2lvbi4gU28gZm9yIFBML3BnU1FMIHdlIGhhdmUgZXh0cmEgcGF0aCwgYW5kIHdl IHJldHVybiBTRUxFQ1QuCisJICogVGhlbiBpdCBjYW4gYmUgZXhlY3V0ZWQgYnkgZXhlY19ldmFs X2V4cHIuIFJlc3VsdCBpcyBkaXJyZWN0bHkgYXNzaWduZWQKKwkgKiB0byB0YXJnZXQgc2Vzc2lv biB2YXJpYWJsZSBpbnNpZGUgUEwvcGdTUUwgTEVUIHN0YXRlbWVudCBoYW5kbGVyLiBUaGlzCisJ ICogaXMgZXh0cmEgY29kZSwgZXh0cmEgcGF0aCwgYnV0IHBvc3NpYmlsaXR5IHRvIGdldCBmYXN0 ZXIgZXhlY3V0aW9uIGlzCisJICogdG9vIGF0dHJhY3RpdmUuCisJICovCisJaWYgKHN0bXQtPnBs cGdzcWxfbW9kZSkKKwkJcmV0dXJuIHF1ZXJ5OworCiAJLyogcmVwcmVzZW50IHRoZSBjb21tYW5k IGFzIGEgdXRpbGl0eSBRdWVyeSAqLwogCXJlc3VsdCA9IG1ha2VOb2RlKFF1ZXJ5KTsKIAlyZXN1 bHQtPmNvbW1hbmRUeXBlID0gQ01EX1VUSUxJVFk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA3YzZlMDc3YTQ2 YS4uM2JiYzU5ZWNhMmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtODMyLDYgKzgzMiw3IEBAIHN0YXRpYyBO b2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2Vz LCBOb2RlICpxdWVyeSk7CiAldG9rZW4JCU1PREVfUExQR1NRTF9BU1NJR04xCiAldG9rZW4JCU1P REVfUExQR1NRTF9BU1NJR04yCiAldG9rZW4JCU1PREVfUExQR1NRTF9BU1NJR04zCisldG9rZW4J CU1PREVfUExQR1NRTF9MRVQKIAogCiAvKiBQcmVjZWRlbmNlOiBsb3dlc3QgdG8gaGlnaGVzdCAq LwpAQCAtOTYzLDYgKzk2NCwxMyBAQCBwYXJzZV90b3BsZXZlbDoKIAkJCQlwZ195eWdldF9leHRy YSh5eXNjYW5uZXIpLT5wYXJzZXRyZWUgPQogCQkJCQlsaXN0X21ha2UxKG1ha2VSYXdTdG10KChO b2RlICopIG4sIDApKTsKIAkJCX0KKwkJCXwgTU9ERV9QTFBHU1FMX0xFVCBMZXRTdG10CisJCQl7 CisJCQkJTGV0U3RtdCAqbiA9IChMZXRTdG10ICopICQyOworCQkJCW4tPnBscGdzcWxfbW9kZSA9 IHRydWU7CisJCQkJcGdfeXlnZXRfZXh0cmEoeXlzY2FubmVyKS0+cGFyc2V0cmVlID0KKwkJCQkJ bGlzdF9tYWtlMShtYWtlUmF3U3RtdCgoTm9kZSAqKSBuLCAwKSk7CisJCQl9CiAJCTsKIAogLyoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZXIuYyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZXIuYwppbmRleCAxMTg0ODhjM2YzMC4uZjk0MzBhMzI5MTkgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZXIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VyLmMKQEAgLTYyLDYgKzYyLDcgQEAgcmF3X3BhcnNlcihjb25zdCBjaGFyICpzdHIsIFJhd1Bh cnNlTW9kZSBtb2RlKQogCQkJW1JBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjFdID0gTU9ERV9QTFBH U1FMX0FTU0lHTjEsCiAJCQlbUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMl0gPSBNT0RFX1BMUEdT UUxfQVNTSUdOMiwKIAkJCVtSQVdfUEFSU0VfUExQR1NRTF9BU1NJR04zXSA9IE1PREVfUExQR1NR TF9BU1NJR04zLAorCQkJW1JBV19QQVJTRV9QTFBHU1FMX0xFVF0gPSBNT0RFX1BMUEdTUUxfTEVU LAogCQl9OwogCiAJCXl5ZXh0cmEuaGF2ZV9sb29rYWhlYWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCmluZGV4IDc2ZDc2NTZkN2Y3Li4wY2M1NjBkNTM4ZiAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaApAQCAtMjEwOSw2ICsyMTA5LDggQEAgdHlwZWRlZiBzdHJ1Y3QgTGV0U3RtdAogCU5vZGVU YWcJCXR5cGU7CiAJTGlzdAkgICAqdGFyZ2V0OwkJCS8qIHRhcmdldCB2YXJpYWJsZSAqLwogCU5v ZGUJICAgKnF1ZXJ5OwkJCS8qIHNvdXJjZSBleHByZXNzaW9uICovCisJYm9vbAkJcGxwZ3NxbF9t b2RlOwkvKiB0cnVlLCB3aGVuIGNvbW1hbmQgd2lsbCBiZSBleGVjdXRlZAorCQkJCQkJCQkgKiAo cGFyc2VkKSBieSBwbHBnc3FsIHJ1bnRpbWUgKi8KIAlpbnQJCQlsb2NhdGlvbjsKIH0gTGV0U3Rt dDsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oIGIvc3JjL2luY2x1 ZGUvcGFyc2VyL3BhcnNlci5oCmluZGV4IGJlMTg0ZWM1MDY2Li5lZmJjNzZmMGFkNCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZXIuaApAQCAtMzMsNiArMzMsOSBAQAogICogUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdO bjogcGFyc2UgYSBQTC9wZ1NRTCBhc3NpZ25tZW50IHN0YXRlbWVudCwKICAqIGFuZCByZXR1cm4g YSBvbmUtZWxlbWVudCBMaXN0IGNvbnRhaW5pbmcgYSBSYXdTdG10IG5vZGUuICAibiIKICAqIGdp dmVzIHRoZSBudW1iZXIgb2YgZG90dGVkIG5hbWVzIGNvbXByaXNpbmcgdGhlIHRhcmdldCBDb2x1 bW5SZWYuCisgKgorICogUkFXX1BBUlNFX1BMUEdTUUxfTEVUOiBwYXJzZSBhIExFVCBzdGF0ZW1l bnQsIGFuZCByZXR1cm4gYQorICogb25lLWVsZW1lbnQgTGlzdCBjb250YWluaW5nIGEgUmF3U3Rt dCBub2RlLgogICovCiB0eXBlZGVmIGVudW0KIHsKQEAgLTQyLDYgKzQ1LDcgQEAgdHlwZWRlZiBl bnVtCiAJUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMSwKIAlSQVdfUEFSU0VfUExQR1NRTF9BU1NJ R04yLAogCVJBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjMsCisJUkFXX1BBUlNFX1BMUEdTUUxfTEVU LAogfSBSYXdQYXJzZU1vZGU7CiAKIC8qIFZhbHVlcyBmb3IgdGhlIGJhY2tzbGFzaF9xdW90ZSBH VUMgKi8KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgYi9zcmMvcGwv cGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IDIzOWIzMjUwYTk1Li44MGQ1MTJkMzBhMCAxMDA2 NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYworKysgYi9zcmMvcGwvcGxwZ3Nx bC9zcmMvcGxfZXhlYy5jCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19w cm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv ZGVmcmVtLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1 ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivc3BpLmgiCiAjaW5j bHVkZSAiZXhlY3V0b3IvdHN0b3JlUmVjZWl2ZXIuaCIKQEAgLTMyOCw2ICszMjksOCBAQCBzdGF0 aWMgaW50CWV4ZWNfc3RtdF9jb21taXQoUExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKIAkJCQkJ CQkgUExwZ1NRTF9zdG10X2NvbW1pdCAqc3RtdCk7CiBzdGF0aWMgaW50CWV4ZWNfc3RtdF9yb2xs YmFjayhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAogCQkJCQkJCSAgIFBMcGdTUUxfc3RtdF9y b2xsYmFjayAqc3RtdCk7CitzdGF0aWMgaW50CWV4ZWNfc3RtdF9sZXQoUExwZ1NRTF9leGVjc3Rh dGUgKmVzdGF0ZSwKKwkJCQkJCSAgUExwZ1NRTF9zdG10X2xldCAqbGV0KTsKIAogc3RhdGljIHZv aWQgcGxwZ3NxbF9lc3RhdGVfc2V0dXAoUExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKIAkJCQkJ CQkJIFBMcGdTUUxfZnVuY3Rpb24gKmZ1bmMsCkBAIC0yMTIwLDYgKzIxMjMsMTAgQEAgZXhlY19z dG10cyhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBMaXN0ICpzdG10cykKIAkJCQlyYyA9IGV4 ZWNfc3RtdF9yb2xsYmFjayhlc3RhdGUsIChQTHBnU1FMX3N0bXRfcm9sbGJhY2sgKikgc3RtdCk7 CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgUExQR1NRTF9TVE1UX0xFVDoKKwkJCQlyYyA9IGV4ZWNf c3RtdF9sZXQoZXN0YXRlLCAoUExwZ1NRTF9zdG10X2xldCAqKSBzdG10KTsKKwkJCQlicmVhazsK KwogCQkJZGVmYXVsdDoKIAkJCQkvKiBwb2ludCBlcnJfc3RtdCB0byBwYXJlbnQsIHNpbmNlIHRo aXMgb25lIHNlZW1zIGNvcnJ1cHQgKi8KIAkJCQllc3RhdGUtPmVycl9zdG10ID0gc2F2ZV9lc3Rt dDsKQEAgLTUwMDEsNiArNTAwOCw1NCBAQCBleGVjX3N0bXRfcm9sbGJhY2soUExwZ1NRTF9leGVj c3RhdGUgKmVzdGF0ZSwgUExwZ1NRTF9zdG10X3JvbGxiYWNrICpzdG10KQogCXJldHVybiBQTFBH U1FMX1JDX09LOwogfQogCisvKiAtLS0tLS0tLS0tCisgKiBleGVjX3N0bXRfbGV0CQkJRXZhbHVh dGUgYW4gZXhwcmVzc2lvbiBhbmQKKyAqCQkJCQlwdXQgdGhlIHJlc3VsdCBpbnRvIGEgc2Vzc2lv biB2YXJpYWJsZS4KKyAqIC0tLS0tLS0tLS0KKyAqLworc3RhdGljIGludAorZXhlY19zdG10X2xl dChQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBQTHBnU1FMX3N0bXRfbGV0ICpzdG10KQorewor CWJvb2wJCWlzTnVsbDsKKwlPaWQJCQl2YWx0eXBlOworCWludDMyCQl2YWx0eXBtb2Q7CisJRGF0 dW0JCXZhbHVlOworCU9pZAkJCXZhcmlkOworCisJTGlzdAkgICAqcGxhbnNvdXJjZXM7CisJQ2Fj aGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZTsKKworCXZhbHVlID0gZXhlY19ldmFsX2V4cHIoZXN0 YXRlLAorCQkJCQkJICAgc3RtdC0+ZXhwciwKKwkJCQkJCSAgICZpc051bGwsCisJCQkJCQkgICAm dmFsdHlwZSwKKwkJCQkJCSAgICZ2YWx0eXBtb2QpOworCisJLyoKKwkgKiBPaWQgb2YgdGFyZ2V0 IHNlc3Npb24gdmFyaWFibGUgaXMgc3RvcmVkIGluIFF1ZXJ5IHN0cnVjdHVyZS4gSXQgaXMKKwkg KiBzYWZlciB0byByZWFkIHRoaXMgdmFsdWUgZGlyZWN0bHkgZnJvbSB0aGUgcGxhbiB0aGFuIHRv IGhvbGQgdGhpcyB2YWx1ZQorCSAqIGluIHRoZSBwbHBnc3FsIGNvbnRleHQsIGJlY2F1c2UgaXQn cyBub3QgbmVjZXNzYXJ5IHRvIGhhbmRsZQorCSAqIGludmFsaWRhdGlvbiBvZiB0aGUgY2FjaGVk IHZhbHVlLiBOZXh0IG9wZXJhdGlvbnMgYXJlIHJlYWQgb25seSB3aXRob3V0CisJICogYW55IGFs bG9jYXRpb25zLCBzbyB3ZSBjYW4gZXhwZWN0IHRoYXQgcmV0cmlldmluZyB2YXJpZCBmcm9tIFF1 ZXJ5CisJICogc2hvdWxkIGJlIGZhc3QuCisJICovCisJcGxhbnNvdXJjZXMgPSBTUElfcGxhbl9n ZXRfcGxhbl9zb3VyY2VzKHN0bXQtPmV4cHItPnBsYW4pOworCWlmIChsaXN0X2xlbmd0aChwbGFu c291cmNlcykgIT0gMSkKKwkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgbGVuZ3RoIG9mIHBsYW5z b3VyY2VzIG9mIHF1ZXJ5IGZvciBMRVQgc3RhdGVtZW50Iik7CisKKwlwbGFuc291cmNlID0gKENh Y2hlZFBsYW5Tb3VyY2UgKikgbGluaXRpYWwocGxhbnNvdXJjZXMpOworCWlmIChsaXN0X2xlbmd0 aChwbGFuc291cmNlLT5xdWVyeV9saXN0KSAhPSAxKQorCQllbG9nKEVSUk9SLCAidW5leHBlY3Rl ZCBsZW5ndGggb2YgcGxhbnNvdXJjZSBvZiBxdWVyeSBmb3IgTEVUIHN0YXRlbWVudCIpOworCisJ dmFyaWQgPSBsaW5pdGlhbF9ub2RlKFF1ZXJ5LCBwbGFuc291cmNlLT5xdWVyeV9saXN0KS0+cmVz dWx0VmFyaWFibGU7CisJaWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJZWxvZyhFUlJPUiwgIm9p ZCBvZiB0YXJnZXQgc2Vzc2lvbiB2YXJpYWJsZSBpcyBub3QgdmFsaWQiKTsKKworCVNldFNlc3Np b25WYXJpYWJsZVdpdGhTZWN1cml0eUNoZWNrKHZhcmlkLCB2YWx1ZSwgaXNOdWxsKTsKKworCXJl dHVybiBQTFBHU1FMX1JDX09LOworfQorCiAvKiAtLS0tLS0tLS0tCiAgKiBleGVjX2Fzc2lnbl9l eHByCQkJUHV0IGFuIGV4cHJlc3Npb24ncyByZXN1bHQgaW50byBhIHZhcmlhYmxlLgogICogLS0t LS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2Z1bmNzLmMgYi9zcmMv cGwvcGxwZ3NxbC9zcmMvcGxfZnVuY3MuYwppbmRleCBlZWI3YzRkN2MwNC4uMWIzOTM1MWRiN2Yg MTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9mdW5jcy5jCisrKyBiL3NyYy9wbC9w bHBnc3FsL3NyYy9wbF9mdW5jcy5jCkBAIC0yODgsNiArMjg4LDggQEAgcGxwZ3NxbF9zdG10X3R5 cGVuYW1lKFBMcGdTUUxfc3RtdCAqc3RtdCkKIAkJCXJldHVybiAiQ09NTUlUIjsKIAkJY2FzZSBQ TFBHU1FMX1NUTVRfUk9MTEJBQ0s6CiAJCQlyZXR1cm4gIlJPTExCQUNLIjsKKwkJY2FzZSBQTFBH U1FMX1NUTVRfTEVUOgorCQkJcmV0dXJuICJMRVQiOwogCX0KIAogCXJldHVybiAidW5rbm93biI7 CkBAIC0zNzAsNiArMzcyLDcgQEAgc3RhdGljIHZvaWQgZnJlZV9wZXJmb3JtKFBMcGdTUUxfc3Rt dF9wZXJmb3JtICpzdG10KTsKIHN0YXRpYyB2b2lkIGZyZWVfY2FsbChQTHBnU1FMX3N0bXRfY2Fs bCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBmcmVlX2NvbW1pdChQTHBnU1FMX3N0bXRfY29tbWl0ICpz dG10KTsKIHN0YXRpYyB2b2lkIGZyZWVfcm9sbGJhY2soUExwZ1NRTF9zdG10X3JvbGxiYWNrICpz dG10KTsKK3N0YXRpYyB2b2lkIGZyZWVfbGV0KFBMcGdTUUxfc3RtdF9sZXQgKnN0bXQpOwogc3Rh dGljIHZvaWQgZnJlZV9leHByKFBMcGdTUUxfZXhwciAqZXhwcik7CiAKIApAQCAtNDU5LDYgKzQ2 Miw5IEBAIGZyZWVfc3RtdChQTHBnU1FMX3N0bXQgKnN0bXQpCiAJCWNhc2UgUExQR1NRTF9TVE1U X1JPTExCQUNLOgogCQkJZnJlZV9yb2xsYmFjaygoUExwZ1NRTF9zdG10X3JvbGxiYWNrICopIHN0 bXQpOwogCQkJYnJlYWs7CisJCWNhc2UgUExQR1NRTF9TVE1UX0xFVDoKKwkJCWZyZWVfbGV0KChQ THBnU1FMX3N0bXRfbGV0ICopIHN0bXQpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9n KEVSUk9SLCAidW5yZWNvZ25pemVkIGNtZF90eXBlOiAlZCIsIHN0bXQtPmNtZF90eXBlKTsKIAkJ CWJyZWFrOwpAQCAtNzEzLDYgKzcxOSwxMiBAQCBmcmVlX2dldGRpYWcoUExwZ1NRTF9zdG10X2dl dGRpYWcgKnN0bXQpCiB7CiB9CiAKK3N0YXRpYyB2b2lkCitmcmVlX2xldChQTHBnU1FMX3N0bXRf bGV0ICpzdG10KQoreworCWZyZWVfZXhwcihzdG10LT5leHByKTsKK30KKwogc3RhdGljIHZvaWQK IGZyZWVfZXhwcihQTHBnU1FMX2V4cHIgKmV4cHIpCiB7CkBAIC04MTUsNiArODI3LDcgQEAgc3Rh dGljIHZvaWQgZHVtcF9wZXJmb3JtKFBMcGdTUUxfc3RtdF9wZXJmb3JtICpzdG10KTsKIHN0YXRp YyB2b2lkIGR1bXBfY2FsbChQTHBnU1FMX3N0bXRfY2FsbCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBk dW1wX2NvbW1pdChQTHBnU1FMX3N0bXRfY29tbWl0ICpzdG10KTsKIHN0YXRpYyB2b2lkIGR1bXBf cm9sbGJhY2soUExwZ1NRTF9zdG10X3JvbGxiYWNrICpzdG10KTsKK3N0YXRpYyB2b2lkIGR1bXBf bGV0KFBMcGdTUUxfc3RtdF9sZXQgKnN0bXQpOwogc3RhdGljIHZvaWQgZHVtcF9leHByKFBMcGdT UUxfZXhwciAqZXhwcik7CiAKIApAQCAtOTE0LDYgKzkyNyw5IEBAIGR1bXBfc3RtdChQTHBnU1FM X3N0bXQgKnN0bXQpCiAJCWNhc2UgUExQR1NRTF9TVE1UX1JPTExCQUNLOgogCQkJZHVtcF9yb2xs YmFjaygoUExwZ1NRTF9zdG10X3JvbGxiYWNrICopIHN0bXQpOwogCQkJYnJlYWs7CisJCWNhc2Ug UExQR1NRTF9TVE1UX0xFVDoKKwkJCWR1bXBfbGV0KChQTHBnU1FMX3N0bXRfbGV0ICopIHN0bXQp OworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIGNt ZF90eXBlOiAlZCIsIHN0bXQtPmNtZF90eXBlKTsKIAkJCWJyZWFrOwpAQCAtMTU5MCw2ICsxNjA2 LDE0IEBAIGR1bXBfZ2V0ZGlhZyhQTHBnU1FMX3N0bXRfZ2V0ZGlhZyAqc3RtdCkKIAlwcmludGYo IlxuIik7CiB9CiAKK3N0YXRpYyB2b2lkCitkdW1wX2xldChQTHBnU1FMX3N0bXRfbGV0ICpzdG10 KQoreworCWR1bXBfaW5kKCk7CisJZHVtcF9leHByKHN0bXQtPmV4cHIpOworCXByaW50ZigiXG4i KTsKK30KKwogc3RhdGljIHZvaWQKIGR1bXBfZXhwcihQTHBnU1FMX2V4cHIgKmV4cHIpCiB7CmRp ZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZ3JhbS55IGIvc3JjL3BsL3BscGdzcWwv c3JjL3BsX2dyYW0ueQppbmRleCA5N2JlOTIzOWUzNy4uNjY5NzQxNzMzZmIgMTAwNjQ0Ci0tLSBh L3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3Bs X2dyYW0ueQpAQCAtMTk1LDcgKzE5NSw3IEBAIHN0YXRpYwl2b2lkCQkJY2hlY2tfcmFpc2VfcGFy YW1ldGVycyhQTHBnU1FMX3N0bXRfcmFpc2UgKnN0bXQpOwogJXR5cGUgPHN0bXQ+CXN0bXRfcmV0 dXJuIHN0bXRfcmFpc2Ugc3RtdF9hc3NlcnQgc3RtdF9leGVjc3FsCiAldHlwZSA8c3RtdD4Jc3Rt dF9keW5leGVjdXRlIHN0bXRfZm9yIHN0bXRfcGVyZm9ybSBzdG10X2NhbGwgc3RtdF9nZXRkaWFn CiAldHlwZSA8c3RtdD4Jc3RtdF9vcGVuIHN0bXRfZmV0Y2ggc3RtdF9tb3ZlIHN0bXRfY2xvc2Ug c3RtdF9udWxsCi0ldHlwZSA8c3RtdD4Jc3RtdF9jb21taXQgc3RtdF9yb2xsYmFjaworJXR5cGUg PHN0bXQ+CXN0bXRfY29tbWl0IHN0bXRfcm9sbGJhY2sgc3RtdF9sZXQKICV0eXBlIDxzdG10Pglz dG10X2Nhc2Ugc3RtdF9mb3JlYWNoX2EKIAogJXR5cGUgPGxpc3Q+CXByb2NfZXhjZXB0aW9ucwpA QCAtMzAyLDYgKzMwMiw3IEBAIHN0YXRpYwl2b2lkCQkJY2hlY2tfcmFpc2VfcGFyYW1ldGVycyhQ THBnU1FMX3N0bXRfcmFpc2UgKnN0bXQpOwogJXRva2VuIDxrZXl3b3JkPglLX0lOVE8KICV0b2tl biA8a2V5d29yZD4JS19JUwogJXRva2VuIDxrZXl3b3JkPglLX0xBU1QKKyV0b2tlbiA8a2V5d29y ZD4JS19MRVQKICV0b2tlbiA8a2V5d29yZD4JS19MT0cKICV0b2tlbiA8a2V5d29yZD4JS19MT09Q CiAldG9rZW4gPGtleXdvcmQ+CUtfTUVSR0UKQEAgLTg3MSw2ICs4NzIsOCBAQCBwcm9jX3N0bXQJ CTogcGxfYmxvY2sgJzsnCiAJCQkJCQl7ICQkID0gJDE7IH0KIAkJCQl8IHN0bXRfcm9sbGJhY2sK IAkJCQkJCXsgJCQgPSAkMTsgfQorCQkJCXwgc3RtdF9sZXQKKwkJCQkJCXsgJCQgPSAkMTsgfQog CQkJCTsKIAogc3RtdF9wZXJmb3JtCTogS19QRVJGT1JNCkBAIC05ODcsNiArOTkwLDI5IEBAIHN0 bXRfYXNzaWduCQk6IFRfREFUVU0KIAkJCQkJfQogCQkJCTsKIAorc3RtdF9sZXQJCTogS19MRVQK KwkJCQkJeworCQkJCQkJUExwZ1NRTF9zdG10X2xldCAqbmV3OworCQkJCQkJUmF3UGFyc2VNb2Rl IHBtb2RlOworCisJCQkJCQlwbW9kZSA9IFJBV19QQVJTRV9QTFBHU1FMX0xFVDsKKworCQkJCQkJ bmV3ID0gcGFsbG9jMChzaXplb2YoUExwZ1NRTF9zdG10X2xldCkpOworCQkJCQkJbmV3LT5jbWRf dHlwZSA9IFBMUEdTUUxfU1RNVF9MRVQ7CisJCQkJCQluZXctPmxpbmVubyAgID0gcGxwZ3NxbF9s b2NhdGlvbl90b19saW5lbm8oQDEpOworCQkJCQkJbmV3LT5zdG10aWQgPSArK3BscGdzcWxfY3Vy cl9jb21waWxlLT5uc3RhdGVtZW50czsKKworCQkJCQkJLyogUHVzaCBiYWNrIHRoZSBoZWFkIG5h bWUgdG8gaW5jbHVkZSBpdCBpbiB0aGUgc3RtdCAqLworCQkJCQkJcGxwZ3NxbF9wdXNoX2JhY2tf dG9rZW4oS19MRVQpOworCQkJCQkJbmV3LT5leHByID0gcmVhZF9zcWxfY29uc3RydWN0KCc7Jywg MCwgMCwgIjsiLAorCQkJCQkJCQkJCQkJCSAgIHBtb2RlLAorCQkJCQkJCQkJCQkJCSAgIGZhbHNl LCB0cnVlLAorCQkJCQkJCQkJCQkJCSAgIE5VTEwsIE5VTEwpOworCisJCQkJCQkkJCA9IChQTHBn U1FMX3N0bXQgKiluZXc7CisJCQkJCX0KKwkJCQk7CisKIHN0bXRfZ2V0ZGlhZwk6IEtfR0VUIGdl dGRpYWdfYXJlYV9vcHQgS19ESUFHTk9TVElDUyBnZXRkaWFnX2xpc3QgJzsnCiAJCQkJCXsKIAkJ CQkJCVBMcGdTUUxfc3RtdF9nZXRkaWFnICpuZXc7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmggYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfcmVzZXJ2 ZWRfa3dsaXN0LmgKaW5kZXggZDMzOGU5ZjYzNzQuLmJlOTRhYTc1MWE0IDEwMDY0NAotLS0gYS9z cmMvcGwvcGxwZ3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmgKKysrIGIvc3JjL3BsL3BscGdz cWwvc3JjL3BsX3Jlc2VydmVkX2t3bGlzdC5oCkBAIC00MCw2ICs0MCw3IEBAIFBHX0tFWVdPUkQo ImZyb20iLCBLX0ZST00pCiBQR19LRVlXT1JEKCJpZiIsIEtfSUYpCiBQR19LRVlXT1JEKCJpbiIs IEtfSU4pCiBQR19LRVlXT1JEKCJpbnRvIiwgS19JTlRPKQorUEdfS0VZV09SRCgibGV0IiwgS19M RVQpCiBQR19LRVlXT1JEKCJsb29wIiwgS19MT09QKQogUEdfS0VZV09SRCgibm90IiwgS19OT1Qp CiBQR19LRVlXT1JEKCJudWxsIiwgS19OVUxMKQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwv c3JjL3BscGdzcWwuaCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3FsLmgKaW5kZXggNTBjM2Iy ODQ3MmIuLmJiNDAwNjI5YWRiIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3Nx bC5oCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3FsLmgKQEAgLTEyOCw2ICsxMjgsNyBA QCB0eXBlZGVmIGVudW0gUExwZ1NRTF9zdG10X3R5cGUKIAlQTFBHU1FMX1NUTVRfQ0FMTCwKIAlQ TFBHU1FMX1NUTVRfQ09NTUlULAogCVBMUEdTUUxfU1RNVF9ST0xMQkFDSywKKwlQTFBHU1FMX1NU TVRfTEVULAogfSBQTHBnU1FMX3N0bXRfdHlwZTsKIAogLyoKQEAgLTUyMCw2ICs1MjEsMTcgQEAg dHlwZWRlZiBzdHJ1Y3QgUExwZ1NRTF9zdG10X2Fzc2lnbgogCVBMcGdTUUxfZXhwciAqZXhwcjsK IH0gUExwZ1NRTF9zdG10X2Fzc2lnbjsKIAorLyoKKyAqIExldCBzdGF0ZW1lbnQKKyAqLwordHlw ZWRlZiBzdHJ1Y3QgUExwZ1NRTF9zdG10X2xldAoreworCVBMcGdTUUxfc3RtdF90eXBlIGNtZF90 eXBlOworCWludAkJCWxpbmVubzsKKwl1bnNpZ25lZCBpbnQgc3RtdGlkOworCVBMcGdTUUxfZXhw ciAqZXhwcjsKK30gUExwZ1NRTF9zdG10X2xldDsKKwogLyoKICAqIFBFUkZPUk0gc3RhdGVtZW50 CiAgKi8KZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggOTFhOTYzZjk1NzAuLmQzOWRmZGUx NzRhIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9z cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMTg4Niw2ICsxODg2LDcgQEAgUExw Z1NRTF9zdG10X2ZvcnEKIFBMcGdTUUxfc3RtdF9mb3JzCiBQTHBnU1FMX3N0bXRfZ2V0ZGlhZwog UExwZ1NRTF9zdG10X2lmCitQTHBnU1FMX3N0bXRfbGV0CiBQTHBnU1FMX3N0bXRfbG9vcAogUExw Z1NRTF9zdG10X29wZW4KIFBMcGdTUUxfc3RtdF9wZXJmb3JtCi0tIAoyLjQ1LjIKCg== --000000000000bfc92e061dffd1c5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240724-0017-expression-with-session-variables-can-be-inlined.patch" Content-Disposition: attachment; filename="v20240724-0017-expression-with-session-variables-can-be-inlined.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyzzqe3p16 RnJvbSAxZTBjNDVkNGMyMmEzOTZiNjQ2YjI5NDkxZDRhZDlhNzI0OWM4MjVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMjA6MzU6MzggKzAxMDAKU3ViamVjdDogW1BBVENIIDE3 LzIwXSBleHByZXNzaW9uIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGlubGluZWQKClRo ZXJlIGlzIG5vdCBhbiByZWFzb24gd2h5IHNlc3Npb24gdmFyaWFibGVzIHNob3VsZCB0byBibG9j ayBpbmxpbmluZy4KKG9mIFNRTCBmdW5jdGlvbnMpLiBJIGNhbiBpbWFnaW5lIHNvbWUgdXNlIGNh c2VzIGxpa2Ugd3JhcHBpbmcsIGFuZAppbmxpbmluZyBzaWduaWZpY2FudGx5IHJlZHVjZXMgYW4g b3ZlcmhlYWQgb2YgU1FMIGZ1bmN0aW9ucy4KLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC9jbGF1c2VzLmMgICAgICAgICAgfCAzNyArKysrKysrKysrKysrKy0tLS0tCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAgNyArKy0tCiAyIGZpbGVzIGNo YW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL2NsYXVzZXMuYwppbmRleCAwOTJlZDIzNTNhYy4uZDk4Y2YyMmRhZWYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTQ3MzIsOCArNDczMiw3IEBAIGlubGluZV9m dW5jdGlvbihPaWQgZnVuY2lkLCBPaWQgcmVzdWx0X3R5cGUsIE9pZCByZXN1bHRfY29sbGlkLAog CQlxdWVyeXRyZWUtPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5dHJlZS0+bGltaXRDb3VudCB8fAog CQlxdWVyeXRyZWUtPnNldE9wZXJhdGlvbnMgfHwKLQkJKGxpc3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+ dGFyZ2V0TGlzdCkgIT0gMSkgfHwKLQkJcXVlcnl0cmVlLT5oYXNTZXNzaW9uVmFyaWFibGVzKQor CQkobGlzdF9sZW5ndGgocXVlcnl0cmVlLT50YXJnZXRMaXN0KSAhPSAxKSkKIAkJZ290byBmYWls OwogCiAJLyogSWYgdGhlIGZ1bmN0aW9uIHJlc3VsdCBpcyBjb21wb3NpdGUsIHJlc29sdmUgaXQg Ki8KQEAgLTQ5MzcsMjEgKzQ5MzYsMzkgQEAgc3Vic3RpdHV0ZV9hY3R1YWxfcGFyYW1ldGVyc19t dXRhdG9yKE5vZGUgKm5vZGUsCiB7CiAJaWYgKG5vZGUgPT0gTlVMTCkKIAkJcmV0dXJuIE5VTEw7 CisKKworCS8qCisJICogU1FMIGZ1bmN0aW9ucyBjYW4gY29udGFpbiB0d28gZGlmZmVyZW50IGtp bmQgb2YgcGFyYW1zLiBUaGUgbm9kZXMgd2l0aAorCSAqIHBhcmFta2luZCBQQVJBTV9FWFRFUk4g YXJlIHJlbGF0ZWQgdG8gZnVuY3Rpb24ncyBhcmd1bWVudHMgKGFuZCBzaG91bGQKKwkgKiBiZSBy ZXBsYWNlZCBpbiB0aGlzIHN0ZXApLCBiZWNhdXNlIHRoaXMgaXMgaG93IHdlIGFwcGx5IHRoZSBm dW5jdGlvbidzCisJICogYXJndW1lbnRzIGZvciBhbiBleHByZXNzaW9uLgorCSAqCisJICogVGhl IG5vZGVzIHdpdGggcGFyYW1raW5kIFBBUkFNX1ZBUklBQkxFIGFyZSByZWxhdGVkIHRvIHVzYWdl IG9mIHNlc3Npb24KKwkgKiB2YXJpYWJsZXMuIFRoZSB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJs ZXMgYXJlIG5vdCBwYXNzZWQgdG8gZXhwcmVzc2lvbgorCSAqIGJ5IGV4cHJlc3Npb24gYXJndW1l bnRzLCBzbyBpdCBzaG91bGQgbm90IGJlIHJlcGxhY2VkIGhlcmUgYnkKKwkgKiBmdW5jdGlvbidz IGFyZ3VtZW50cy4KKwkgKi8KIAlpZiAoSXNBKG5vZGUsIFBhcmFtKSkKIAl7CiAJCVBhcmFtCSAg ICpwYXJhbSA9IChQYXJhbSAqKSBub2RlOwogCi0JCWlmIChwYXJhbS0+cGFyYW1raW5kICE9IFBB UkFNX0VYVEVSTikKKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhURVJOICYmCisJ CQlwYXJhbS0+cGFyYW1raW5kICE9IFBBUkFNX1ZBUklBQkxFKQogCQkJZWxvZyhFUlJPUiwgInVu ZXhwZWN0ZWQgcGFyYW1raW5kOiAlZCIsIChpbnQpIHBhcmFtLT5wYXJhbWtpbmQpOwotCQlpZiAo cGFyYW0tPnBhcmFtaWQgPD0gMCB8fCBwYXJhbS0+cGFyYW1pZCA+IGNvbnRleHQtPm5hcmdzKQot CQkJZWxvZyhFUlJPUiwgImludmFsaWQgcGFyYW1pZDogJWQiLCBwYXJhbS0+cGFyYW1pZCk7CiAK LQkJLyogQ291bnQgdXNhZ2Ugb2YgcGFyYW1ldGVyICovCi0JCWNvbnRleHQtPnVzZWNvdW50c1tw YXJhbS0+cGFyYW1pZCAtIDFdKys7CisJCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX0VY VEVSTikKKwkJeworCQkJaWYgKHBhcmFtLT5wYXJhbWlkIDw9IDAgfHwgcGFyYW0tPnBhcmFtaWQg PiBjb250ZXh0LT5uYXJncykKKwkJCQllbG9nKEVSUk9SLCAiaW52YWxpZCBwYXJhbWlkOiAlZCIs IHBhcmFtLT5wYXJhbWlkKTsKIAotCQkvKiBTZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGFjdHVhbCBh cmcgYW5kIHJlcGxhY2UgdGhlIFBhcmFtIHdpdGggaXQgKi8KLQkJLyogV2UgZG9uJ3QgbmVlZCB0 byBjb3B5IGF0IHRoaXMgdGltZSAoaXQnbGwgZ2V0IGRvbmUgbGF0ZXIpICovCi0JCXJldHVybiBs aXN0X250aChjb250ZXh0LT5hcmdzLCBwYXJhbS0+cGFyYW1pZCAtIDEpOworCQkJLyogQ291bnQg dXNhZ2Ugb2YgcGFyYW1ldGVyICovCisJCQljb250ZXh0LT51c2Vjb3VudHNbcGFyYW0tPnBhcmFt aWQgLSAxXSsrOworCisJCQkvKiBTZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGFjdHVhbCBhcmcgYW5k IHJlcGxhY2UgdGhlIFBhcmFtIHdpdGggaXQgKi8KKwkJCS8qIFdlIGRvbid0IG5lZWQgdG8gY29w eSBhdCB0aGlzIHRpbWUgKGl0J2xsIGdldCBkb25lIGxhdGVyKSAqLworCQkJcmV0dXJuIGxpc3Rf bnRoKGNvbnRleHQtPmFyZ3MsIHBhcmFtLT5wYXJhbWlkIC0gMSk7CisJCX0KIAl9CiAJcmV0dXJu IGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yKG5vZGUsIHN1YnN0aXR1dGVfYWN0dWFsX3BhcmFtZXRl cnNfbXV0YXRvciwKIAkJCQkJCQkJICAgKHZvaWQgKikgY29udGV4dCk7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IGM5YjhlNThjZmQ5 Li4zOWRiYjQzNTlkYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQKQEAgLTEwNCw3ICsxMDQsNiBAQCBTRUxFQ1QgdmFyMTsKIEVSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQogU0VMRUNUIHNxbGZ4 KDIwKTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFy MQotQ09OVEVYVDogIFNRTCBmdW5jdGlvbiAic3FsZngiIHN0YXRlbWVudCAxCiBTRUxFQ1QgcGxw Z3NxbGZ4KDIwKTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFi bGUgdmFyMQogQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHBscGdzcWxmeChpbnRlZ2VyKSBs aW5lIDEgYXQgUkVUVVJOCkBAIC0yMTEsMTAgKzIxMCwxMCBAQCBTRUxFQ1Qgc3FsZngxKHNxbGZ4 MignSGVsbG8nKSk7CiAKIC0tIGlubGluaW5nIGlzIGJsb2NrZWQKIEVYUExBSU4gKENPU1RTIE9G RiwgVkVSQk9TRSkgU0VMRUNUIHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOwotICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFJlc3VsdAotICAgT3V0cHV0OiBzcWxmeDEo c3FsZngyKCdIZWxsbyc6OmNoYXJhY3RlciB2YXJ5aW5nKSkKKyAgIE91dHB1dDogKCh2YXIxIHx8 ICcsICc6OnRleHQpIHx8ICgodmFyMiB8fCAnLCAnOjp0ZXh0KSB8fCAnSGVsbG8nOjp0ZXh0KSkK ICgyIHJvd3MpCiAKIERST1AgRlVOQ1RJT04gc3FsZngxKHZhcmNoYXIpOwotLSAKMi40NS4yCgo= --000000000000bfc92e061dffd1c5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240724-0018-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Disposition: attachment; filename="v20240724-0018-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyzzqe3x17 RnJvbSBlODI1MjVlOWVkYThmNTBjOGM1MzJlNWUyOTUzZDYyOGJlZWFiMjY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMTc6MDY6MDQgKzAxMDAKU3ViamVjdDogW1BBVENIIDE4 LzIwXSB0aGlzIHBhdGNoIGNoYW5nZXMgZXJyb3IgbWVzc2FnZSAiY29sdW1uIGRvZXNuJ3QgZXhp c3QiCiB0byBtZXNzYWdlICJjb2x1bW4gb3IgdmFyaWFibGUgZG9lc24ndCBleGlzdCIKClRoZSBl cnJvciBtZXNzYWdlIHdpbGwgYmUgbW9yZSBjb3JyZWN0LiBUb2RheSwgbWlzc2luZyBQTC9wZ1NR TCB2YXJpYWJsZSBjYW4gYmUgcmVwb3J0ZWQuIFRoZSBjaGFuZ2UgaGFzCmltcGFjdCBvbiBsb3Qg b2YgcmVncmVzcyB0ZXN0cyBub3QgZGlyZWN0bHkgcmVsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxl cywgYW5kIHRoZW4gaXQgaXMgZGlzdHJpYnV0ZWQgYXMgc2VwYXJhdGUgcGF0Y2gKLS0tCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgMjQgKysrKysrKysrKyst LS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgICAgICAgICAgICB8ICA4ICsr Ky0tCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oICAgICAgICAgICAgICAgfCAgMiAr Kwogc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJyYXkub3V0IHwgIDIgKy0K IC4uLi9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3JlY29yZC5vdXQgICB8ICA0ICstLQog Li4uL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0IHwgIDIgKy0KIHNy Yy9wbC90Y2wvZXhwZWN0ZWQvcGx0Y2xfcXVlcmllcy5vdXQgICAgICAgICB8IDEyICsrKy0tLS0K IC4uLi9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgICB8ICA0ICstLQog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90YWJsZS5vdXQgICAgIHwgMzIgKysrKysr KysrLS0tLS0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQgICAgICAg ICAgIHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dCAgICAgICAg ICB8ICA4ICsrLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0ICAgICAgICAg ICAgfCAxMiArKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL25hbWVzcGFjZS5vdXQg ICAgICAgfCAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dCAg ICAgIHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGxwZ3NxbC5vdXQgICAgICAg ICB8IDEyICsrKy0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgICAgICAg ICAgICB8ICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCAgICAgICAg ICAgfCAgMiArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAg IHwgIDYgKystLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMub3V0ICAg IHwgIDQgKy0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VuaW9uLm91dCAgICAgICAgICAg fCAgMiArLQogMjEgZmlsZXMgY2hhbmdlZCwgODMgaW5zZXJ0aW9ucygrKSwgNjMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggNjAwNzY1NTYzMGQuLjQyYWNkMTI0YTAx IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTUyMSw3ICs1MjEsNyBAQCB0cmFuc2Zvcm1J bmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKICAqIFdo ZW4gd2UgYXJlIGluIGFuIGV4cHJlc3Npb24gd2hlcmUgc2Vzc2lvbiB2YXJpYWJsZXMgY2Fubm90 IGJlIHVzZWQsIHdlIHJhaXNlCiAgKiB0aGUgZmlyc3QgZm9ybSBvZiBlcnJvciBtZXNzYWdlLgog ICovCi1zdGF0aWMgYm9vbAorYm9vbAogZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxl cyhQYXJzZUV4cHJLaW5kIHBfZXhwcl9raW5kKQogewogCWJvb2wJCXJlc3VsdCA9IGZhbHNlOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwppbmRleCBiZGU1YjExMThjNS4uOTNhNTg5OGM2 YzMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCkBAIC0yNyw2ICsyNyw3IEBACiAj aW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgi CiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2Vuci5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9l eHByLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicGFy c2VyL3BhcnNlX3R5cGUuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2V0cmVlLmgiCkBAIC0zNjU1 LDYgKzM2NTYsMTkgQEAgZXJyb3JNaXNzaW5nUlRFKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmFuZ2VW YXIgKnJlbGF0aW9uKQogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCByZWxhdGlvbi0+ bG9jYXRpb24pKSk7CiB9CiAKKy8qCisgKiBzZXQgbWVzc2FnZSAiY29sdW1uIGRvZXMgbm90IGV4 aXN0IiBvciAiY29sdW1uIG9yIHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0IgorICogaW4gZGVwZW5k ZW5jeSBpZiBleHByZXNzaW9uIGNvbnRleHQgYWxsb3dzIHNlc3Npb24gdmFyaWFibGVzLgorICov CitzdGF0aWMgaW50Citjb2x1bW5fb3JfdmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgY29uc3QgY2hhciAqY29sbmFtZSkKK3sKKwlpZiAoZXhwcl9raW5kX2FsbG93 c19zZXNzaW9uX3ZhcmlhYmxlcyhwc3RhdGUtPnBfZXhwcl9raW5kKSkKKwkJcmV0dXJuIGVycm1z ZygiY29sdW1uIG9yIHZhcmlhYmxlIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNvbG5hbWUpOwor CWVsc2UKKwkJcmV0dXJuIGVycm1zZygiY29sdW1uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNv bG5hbWUpOworfQorCiAvKgogICogR2VuZXJhdGUgYSBzdWl0YWJsZSBlcnJvciBhYm91dCBhIG1p c3NpbmcgY29sdW1uLgogICoKQEAgLTM2ODksNyArMzcwMyw3IEBAIGVycm9yTWlzc2luZ0NvbHVt bihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NP TFVNTiksCiAJCQkJCSByZWxuYW1lID8KIAkJCQkJIGVycm1zZygiY29sdW1uICVzLiVzIGRvZXMg bm90IGV4aXN0IiwgcmVsbmFtZSwgY29sbmFtZSkgOgotCQkJCQkgZXJybXNnKCJjb2x1bW4gXCIl c1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSksCisJCQkJCSBjb2x1bW5fb3JfdmFyaWFibGVf ZG9lc19ub3RfZXhpc3RzKHBzdGF0ZSwgY29sbmFtZSksCiAJCQkJCSBlcnJkZXRhaWwoIlRoZXJl IGFyZSBjb2x1bW5zIG5hbWVkIFwiJXNcIiwgYnV0IHRoZXkgYXJlIGluIHRhYmxlcyB0aGF0IGNh bm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4iLAogCQkJCQkJ CSAgIGNvbG5hbWUpLAogCQkJCQkgIXJlbG5hbWUgPyBlcnJoaW50KCJUcnkgdXNpbmcgYSB0YWJs ZS1xdWFsaWZpZWQgbmFtZS4iKSA6IDAsCkBAIC0zNjk5LDcgKzM3MTMsNyBAQCBlcnJvck1pc3Np bmdDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJ TkVEX0NPTFVNTiksCiAJCQkJIHJlbG5hbWUgPwogCQkJCSBlcnJtc2coImNvbHVtbiAlcy4lcyBk b2VzIG5vdCBleGlzdCIsIHJlbG5hbWUsIGNvbG5hbWUpIDoKLQkJCQkgZXJybXNnKCJjb2x1bW4g XCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSksCisJCQkJIGNvbHVtbl9vcl92YXJpYWJs ZV9kb2VzX25vdF9leGlzdHMocHN0YXRlLCBjb2xuYW1lKSwKIAkJCQkgZXJyZGV0YWlsKCJUaGVy ZSBpcyBhIGNvbHVtbiBuYW1lZCBcIiVzXCIgaW4gdGFibGUgXCIlc1wiLCBidXQgaXQgY2Fubm90 IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LiIsCiAJCQkJCQkgICBj b2xuYW1lLCBzdGF0ZS0+cmV4YWN0MS0+ZXJlZi0+YWxpYXNuYW1lKSwKIAkJCQkgcnRlX3Zpc2li bGVfaWZfbGF0ZXJhbChwc3RhdGUsIHN0YXRlLT5yZXhhY3QxKSA/CkBAIC0zNzE3LDE0ICszNzMx LDE0IEBAIGVycm9yTWlzc2luZ0NvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCShlcnJj b2RlKEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCiAJCQkJCSByZWxuYW1lID8KIAkJCQkJIGVy cm1zZygiY29sdW1uICVzLiVzIGRvZXMgbm90IGV4aXN0IiwgcmVsbmFtZSwgY29sbmFtZSkgOgot CQkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSksCisJ CQkJCSBjb2x1bW5fb3JfdmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKHBzdGF0ZSwgY29sbmFtZSks CiAJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKIAkJLyogSGFu ZGxlIGNhc2Ugd2hlcmUgd2UgaGF2ZSBhIHNpbmdsZSBhbHRlcm5hdGl2ZSBzcGVsbGluZyB0byBv ZmZlciAqLwogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVE X0NPTFVNTiksCiAJCQkJIHJlbG5hbWUgPwogCQkJCSBlcnJtc2coImNvbHVtbiAlcy4lcyBkb2Vz IG5vdCBleGlzdCIsIHJlbG5hbWUsIGNvbG5hbWUpIDoKLQkJCQkgZXJybXNnKCJjb2x1bW4gXCIl c1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSksCisJCQkJIGNvbHVtbl9vcl92YXJpYWJsZV9k b2VzX25vdF9leGlzdHMocHN0YXRlLCBjb2xuYW1lKSwKIAkJCQkgZXJyaGludCgiUGVyaGFwcyB5 b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1bW4gXCIlcy4lc1wiLiIsCiAJCQkJCQkgc3Rh dGUtPnJmaXJzdC0+ZXJlZi0+YWxpYXNuYW1lLAogCQkJCQkJIHN0clZhbChsaXN0X250aChzdGF0 ZS0+cmZpcnN0LT5lcmVmLT5jb2xuYW1lcywKQEAgLTM3MzgsNyArMzc1Miw3IEBAIGVycm9yTWlz c2luZ0NvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRF RklORURfQ09MVU1OKSwKIAkJCQkgcmVsbmFtZSA/CiAJCQkJIGVycm1zZygiY29sdW1uICVzLiVz IGRvZXMgbm90IGV4aXN0IiwgcmVsbmFtZSwgY29sbmFtZSkgOgotCQkJCSBlcnJtc2coImNvbHVt biBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjb2xuYW1lKSwKKwkJCQkgY29sdW1uX29yX3Zhcmlh YmxlX2RvZXNfbm90X2V4aXN0cyhwc3RhdGUsIGNvbG5hbWUpLAogCQkJCSBlcnJoaW50KCJQZXJo YXBzIHlvdSBtZWFudCB0byByZWZlcmVuY2UgdGhlIGNvbHVtbiBcIiVzLiVzXCIgb3IgdGhlIGNv bHVtbiBcIiVzLiVzXCIuIiwKIAkJCQkJCSBzdGF0ZS0+cmZpcnN0LT5lcmVmLT5hbGlhc25hbWUs CiAJCQkJCQkgc3RyVmFsKGxpc3RfbnRoKHN0YXRlLT5yZmlyc3QtPmVyZWYtPmNvbG5hbWVzLApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCmluZGV4IGVlNmZjZDA1MDNhLi5lN2RjYzE2YjVkYyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwpAQCAtNzc2LDcgKzc3Niw5IEBAIHRyYW5zZm9y bUFzc2lnbm1lbnRJbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQlpZiAoIXR5cHJl bGlkKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBF X01JU01BVENIKSwKLQkJCQkJCSBlcnJtc2coImNhbm5vdCBhc3NpZ24gdG8gZmllbGQgXCIlc1wi IG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAlcyBpcyBub3QgYSBjb21wb3NpdGUg dHlwZSIsCisJCQkJCQkgZXJybXNnKGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMo cHN0YXRlLT5wX2V4cHJfa2luZCkgPworCQkJCQkJCQkgImNhbm5vdCBhc3NpZ24gdG8gZmllbGQg XCIlc1wiIG9mIGNvbHVtbiBvciB2YXJpYWJsZSBcIiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAlcyBp cyBub3QgYSBjb21wb3NpdGUgdHlwZSIgOgorCQkJCQkJCQkgImNhbm5vdCBhc3NpZ24gdG8gZmll bGQgXCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAlcyBpcyBub3QgYSBj b21wb3NpdGUgdHlwZSIsCiAJCQkJCQkJCXN0clZhbChuKSwgdGFyZ2V0TmFtZSwKIAkJCQkJCQkJ Zm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZUlkKSksCiAJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9u KHBzdGF0ZSwgbG9jYXRpb24pKSk7CkBAIC03ODUsNyArNzg3LDkgQEAgdHJhbnNmb3JtQXNzaWdu bWVudEluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCWlmIChhdHRudW0gPT0gSW52 YWxpZEF0dHJOdW1iZXIpCiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCShlcnJjb2RlKEVSUkNP REVfVU5ERUZJTkVEX0NPTFVNTiksCi0JCQkJCQkgZXJybXNnKCJjYW5ub3QgYXNzaWduIHRvIGZp ZWxkIFwiJXNcIiBvZiBjb2x1bW4gXCIlc1wiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1 bW4gaW4gZGF0YSB0eXBlICVzIiwKKwkJCQkJCSBlcnJtc2coZXhwcl9raW5kX2FsbG93c19zZXNz aW9uX3ZhcmlhYmxlcyhwc3RhdGUtPnBfZXhwcl9raW5kKSA/CisJCQkJCQkJCSAiY2Fubm90IGFz c2lnbiB0byBmaWVsZCBcIiVzXCIgb2YgY29sdW1uIG9yIHZhcmlhYmxlIFwiJXNcIiBiZWNhdXNl IHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSAlcyIgOgorCQkJCQkJCQkgImNh bm5vdCBhc3NpZ24gdG8gZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVzZSB0aGVy ZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgJXMiLAogCQkJCQkJCQlzdHJWYWwobiks IHRhcmdldE5hbWUsCiAJCQkJCQkJCWZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGVJZCkpLAogCQkJ CQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9leHByLmgKaW5kZXggMGQ2NGIzMDBmOGEuLmU1YWViZjk5YjRhIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9leHByLmgKQEAgLTIzLDQgKzIzLDYgQEAgZXh0ZXJuIE5vZGUgKnRyYW5zZm9ybUV4cHIoUGFy c2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBQYXJzZUV4cHJLaW5kIGV4cHJLaW4KIAogZXh0 ZXJuIGNvbnN0IGNoYXIgKlBhcnNlRXhwcktpbmROYW1lKFBhcnNlRXhwcktpbmQgZXhwcktpbmQp OwogCitleHRlcm4gYm9vbCBleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25fdmFyaWFibGVzKFBhcnNl RXhwcktpbmQgcF9leHByX2tpbmQpOworCiAjZW5kaWYJCQkJCQkJLyogUEFSU0VfRVhQUl9IICov CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9hcnJheS5v dXQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9hcnJheS5vdXQKaW5kZXgg YWQ2MGUwZThiZTMuLmMxYWI5ZmQ3ZWQ5IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMv ZXhwZWN0ZWQvcGxwZ3NxbF9hcnJheS5vdXQKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVj dGVkL3BscGdzcWxfYXJyYXkub3V0CkBAIC00MSw3ICs0MSw3IEBAIE5PVElDRTogIGEgPSB7Iigs MTEpIn0sIGFbMV0uaSA9IDExCiAtLSBwZXJoYXBzIHRoaXMgb3VnaHQgdG8gd29yaywgYnV0IGZv ciBub3cgaXQgZG9lc24ndDoKIGRvICQkIGRlY2xhcmUgYSBjb21wbGV4W107CiBiZWdpbiBhWzE6 Ml0uaSA6PSBhcnJheVsxMSwxMl07IHJhaXNlIG5vdGljZSAnYSA9ICUnLCBhOyBlbmQkJDsKLUVS Uk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAiaSIgb2YgY29sdW1uICJhIiBiZWNhdXNlIGl0 cyB0eXBlIGNvbXBsZXhbXSBpcyBub3QgYSBjb21wb3NpdGUgdHlwZQorRVJST1I6ICBjYW5ub3Qg YXNzaWduIHRvIGZpZWxkICJpIiBvZiBjb2x1bW4gb3IgdmFyaWFibGUgImEiIGJlY2F1c2UgaXRz IHR5cGUgY29tcGxleFtdIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlCiBMSU5FIDE6IGFbMToyXS5p IDo9IGFycmF5WzExLDEyXQogICAgICAgICBeCiBRVUVSWTogIGFbMToyXS5pIDo9IGFycmF5WzEx LDEyXQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfcmVj b3JkLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3JlY29yZC5vdXQK aW5kZXggYTliNWI3NzhlZmMuLjA3YWJjMmU4NGQ0IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9yZWNvcmQub3V0CisrKyBiL3NyYy9wbC9wbHBnc3FsL3Ny Yy9leHBlY3RlZC9wbHBnc3FsX3JlY29yZC5vdXQKQEAgLTEzNSw3ICsxMzUsNyBAQCBFUlJPUjog IHJlY29yZCAiYyIgaGFzIG5vIGZpZWxkICJ4IgogQ09OVEVYVDogIFBML3BnU1FMIGFzc2lnbm1l bnQgImMueC5xMSA9IDEiCiBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5l IDEgYXQgYXNzaWdubWVudAogZG8gJCQgZGVjbGFyZSBjIG5lc3RlZF9pbnQ4czsgYmVnaW4gYy5j Mi54ID0gMTsgZW5kICQkOwotRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBj b2x1bW4gImMiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3 b19pbnQ4cworRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gb3Ig dmFyaWFibGUgImMiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBl IHR3b19pbnQ4cwogTElORSAxOiBjLmMyLnggPSAxCiAgICAgICAgIF4KIFFVRVJZOiAgYy5jMi54 ID0gMQpAQCAtMTU3LDcgKzE1Nyw3IEBAIEVSUk9SOiAgcmVjb3JkICJjIiBoYXMgbm8gZmllbGQg IngiCiBDT05URVhUOiAgUEwvcGdTUUwgYXNzaWdubWVudCAiYi5jLngucTEgPSAxIgogUEwvcGdT UUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IGFzc2lnbm1lbnQKIGRvICQk IDw8Yj4+IGRlY2xhcmUgYyBuZXN0ZWRfaW50OHM7IGJlZ2luIGIuYy5jMi54ID0gMTsgZW5kICQk OwotRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gImIiIGJlY2F1 c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3b19pbnQ4cworRVJST1I6 ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gb3IgdmFyaWFibGUgImIiIGJl Y2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3b19pbnQ4cwogTElO RSAxOiBiLmMuYzIueCA9IDEKICAgICAgICAgXgogUVVFUlk6ICBiLmMuYzIueCA9IDEKZGlmZiAt LWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFi bGUub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJp YWJsZS5vdXQKaW5kZXggNzg5YzMxMjNiMGMuLmYwMDZkYjRmYWE4IDEwMDY0NAotLS0gYS9zcmMv cGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dAorKysg Yi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91 dApAQCAtMjMyLDcgKzIzMiw3IEBAIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBTRVQgUk9MRSBUTyBy ZWdyZXNzX3Zhcl9leGVjX3JvbGU7CiAtLSBzaG91bGQgdG8gZmFpbCwgYnV0IG5vdCBjcmFzaAog U0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKLUVSUk9SOiAgY29sdW1uICJwbHBnc3FsX3N2X3ZhcjEi IGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAicGxwZ3NxbF9zdl92 YXIxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBwbHBnc3FsX3N2X3ZhcjEKICAgICAgICAgXgog UVVFUlk6ICBwbHBnc3FsX3N2X3ZhcjEKZGlmZiAtLWdpdCBhL3NyYy9wbC90Y2wvZXhwZWN0ZWQv cGx0Y2xfcXVlcmllcy5vdXQgYi9zcmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNsX3F1ZXJpZXMub3V0 CmluZGV4IDM1Y2M2ZTYyYWFkLi40OTdjZDM4MTg5YiAxMDA2NDQKLS0tIGEvc3JjL3BsL3RjbC9l eHBlY3RlZC9wbHRjbF9xdWVyaWVzLm91dAorKysgYi9zcmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNs X3F1ZXJpZXMub3V0CkBAIC00NTAsMTIgKzQ1MCwxMiBAQCBDT05URVhUOiAgd2hpbGUgZXhlY3V0 aW5nCiAiX19QTFRjbF9wcm9jX3RjbF9ldmFsX3RleHQgc3BpX3ByZXBhcmVcIGFcIFwiYlwgXHtc IiIKIGluIFBML1RjbCBmdW5jdGlvbiB0Y2xfZXZhbCh0ZXh0KQogc2VsZWN0IHRjbF9lcnJvcl9o YW5kbGluZ190ZXN0KCR0Y2wkc3BpX3ByZXBhcmUgInNlbGVjdCBtb28iIFtdJHRjbCQpOwotICAg ICAgIHRjbF9lcnJvcl9oYW5kbGluZ190ZXN0ICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi0gU1FMU1RBVEU6IDQyNzAzICAgICAgICAgICAgICAgICAgICAg KwotIGNvbmRpdGlvbjogdW5kZWZpbmVkX2NvbHVtbiAgICAgICAgICsKLSBjdXJzb3JfcG9zaXRp b246IDggICAgICAgICAgICAgICAgICArCi0gbWVzc2FnZTogY29sdW1uICJtb28iIGRvZXMgbm90 IGV4aXN0KworICAgICAgICAgICAgIHRjbF9lcnJvcl9oYW5kbGluZ190ZXN0ICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg U1FMU1RBVEU6IDQyNzAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworIGNvbmRp dGlvbjogdW5kZWZpbmVkX2NvbHVtbiAgICAgICAgICAgICAgICAgICAgICsKKyBjdXJzb3JfcG9z aXRpb246IDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgbWVzc2FnZTogY29sdW1u IG9yIHZhcmlhYmxlICJtb28iIGRvZXMgbm90IGV4aXN0KwogIHN0YXRlbWVudDogc2VsZWN0IG1v bwogKDEgcm93KQogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vz c2lvbi12YXJpYWJsZS5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12 YXJpYWJsZS5vdXQKaW5kZXggMTlhMmU1YThmNjQuLjFjNDE0OWY2ZWYxIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKKysrIGIvc3Jj L3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CkBAIC0xMCw3ICsx MCw3IEBAIHRlc3QKIAogc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOwogc3RlcCB2YWw6 IFNFTEVDVCBteXZhcjsKLUVSUk9SOiAgY29sdW1uICJteXZhciIgZG9lcyBub3QgZXhpc3QKK0VS Uk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJteXZhciIgZG9lcyBub3QgZXhpc3QKIAogc3RhcnRp bmcgcGVybXV0YXRpb246IGxldCB2YWwgczEgZHJvcCB2YWwgc3IxCiBzdGVwIGxldDogTEVUIG15 dmFyID0gJ3Rlc3QnOwpAQCAtMjMsNyArMjMsNyBAQCB0ZXN0CiBzdGVwIHMxOiBCRUdJTjsKIHN0 ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsKIHN0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7Ci1F UlJPUjogIGNvbHVtbiAibXl2YXIiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2 YXJpYWJsZSAibXl2YXIiIGRvZXMgbm90IGV4aXN0CiBzdGVwIHNyMTogUk9MTEJBQ0s7CiAKIHN0 YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFsCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0CmluZGV4IDY3MzM2MWU4NDA0Li40 NWU2ODQ4MWViMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90 YWJsZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90YWJsZS5vdXQK QEAgLTEzMDksMTkgKzEzMDksMTkgQEAgc2VsZWN0ICogZnJvbSBhdGFjYzE7CiAoMSByb3cpCiAK IHNlbGVjdCAqIGZyb20gYXRhY2MxIG9yZGVyIGJ5IGE7Ci1FUlJPUjogIGNvbHVtbiAiYSIgZG9l cyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2VzIG5vdCBleGlz dAogTElORSAxOiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBvcmRlciBieSBhOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBvcmRlciBi eSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiI7Ci1FUlJPUjogIGNvbHVtbiAiLi4uLi4u Li5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9y IHZhcmlhYmxlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAog TElORSAxOiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBvcmRlciBieSAiLi4uLi4uLi5wZy5kcm9wcGVk LjEuLi4uLi4uLiIuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgog c2VsZWN0ICogZnJvbSBhdGFjYzEgZ3JvdXAgYnkgYTsKLUVSUk9SOiAgY29sdW1uICJhIiBkb2Vz IG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImEiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IHNlbGVjdCAqIGZyb20gYXRhY2MxIGdyb3VwIGJ5IGE7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAqIGZyb20gYXRhY2MxIGdyb3VwIGJ5 ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIjsKLUVSUk9SOiAgY29sdW1uICIuLi4uLi4u LnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3Ig dmFyaWFibGUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CiBM SU5FIDE6IHNlbGVjdCAqIGZyb20gYXRhY2MxIGdyb3VwIGJ5ICIuLi4uLi4uLnBnLmRyb3BwZWQu MS4uLi4uLi4uIi4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBz ZWxlY3QgYXRhY2MxLiogZnJvbSBhdGFjYzE7CkBAIC0xMzMxLDcgKzEzMzEsNyBAQCBzZWxlY3Qg YXRhY2MxLiogZnJvbSBhdGFjYzE7CiAoMSByb3cpCiAKIHNlbGVjdCBhIGZyb20gYXRhY2MxOwot RVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJp YWJsZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGEgZnJvbSBhdGFjYzE7CiAg ICAgICAgICAgICAgICBeCiBzZWxlY3QgYXRhY2MxLmEgZnJvbSBhdGFjYzE7CkBAIC0xMzQ1LDE1 ICsxMzQ1LDE1IEBAIHNlbGVjdCBiLGMsZCBmcm9tIGF0YWNjMTsKICgxIHJvdykKIAogc2VsZWN0 IGEsYixjLGQgZnJvbSBhdGFjYzE7Ci1FUlJPUjogIGNvbHVtbiAiYSIgZG9lcyBub3QgZXhpc3QK K0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBz ZWxlY3QgYSxiLGMsZCBmcm9tIGF0YWNjMTsKICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAqIGZy b20gYXRhY2MxIHdoZXJlIGEgPSAxOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0 CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTog c2VsZWN0ICogZnJvbSBhdGFjYzEgd2hlcmUgYSA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KIHNlbGVjdCAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZnJv bSBhdGFjYzE7Ci1FUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIg ZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIuLi4uLi4uLnBnLmRy b3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgIi4uLi4uLi4u cGcuZHJvcHBlZC4xLi4uLi4uLi4iIGZyb20gYXRhY2MxOwogICAgICAgICAgICAgICAgXgogc2Vs ZWN0IGF0YWNjMS4iLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZnJvbSBhdGFjYzE7CkBA IC0xMzYxLDExICsxMzYxLDExIEBAIEVSUk9SOiAgY29sdW1uIGF0YWNjMS4uLi4uLi4uLnBnLmRy b3BwZWQuMS4uLi4uLi4uIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBhdGFjYzEuIi4u Li4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGZyb20gYXRhY2MxOwogICAgICAgICAgICAgICAg Xgogc2VsZWN0ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIixiLGMsZCBmcm9tIGF0YWNj MTsKLUVSUk9SOiAgY29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5v dCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIi4uLi4uLi4ucGcuZHJvcHBlZC4x Li4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAiLi4uLi4uLi5wZy5kcm9w cGVkLjEuLi4uLi4uLiIsYixjLGQgZnJvbSBhdGFjYzE7CiAgICAgICAgICAgICAgICBeCiBzZWxl Y3QgKiBmcm9tIGF0YWNjMSB3aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAx OwotRVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEu Li4uLi4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0ICogZnJvbSBhdGFjYzEgd2hl cmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0gLi4uCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KIC0tIFVQREFURXMKQEAgLTEzNzQsNyArMTM3NCw3IEBAIEVS Uk9SOiAgY29sdW1uICJhIiBvZiByZWxhdGlvbiAiYXRhY2MxIiBkb2VzIG5vdCBleGlzdAogTElO RSAxOiB1cGRhdGUgYXRhY2MxIHNldCBhID0gMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAg XgogdXBkYXRlIGF0YWNjMSBzZXQgYiA9IDIgd2hlcmUgYSA9IDM7Ci1FUlJPUjogIGNvbHVtbiAi YSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2VzIG5v dCBleGlzdAogTElORSAxOiB1cGRhdGUgYXRhY2MxIHNldCBiID0gMiB3aGVyZSBhID0gMzsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogdXBkYXRlIGF0YWNjMSBzZXQg Ii4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0gMzsKQEAgLTEzODIsNyArMTM4Miw3IEBA IEVSUk9SOiAgY29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBvZiByZWxhdGlv biAiYXRhY2MxIiBkb2VzIG5vdCBleGlzCiBMSU5FIDE6IHVwZGF0ZSBhdGFjYzEgc2V0ICIuLi4u Li4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiA9IDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KIHVwZGF0ZSBhdGFjYzEgc2V0IGIgPSAyIHdoZXJlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4u Li4uLi4uIiA9IDM7Ci1FUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4u LiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIuLi4uLi4uLnBn LmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiB1cGRhdGUgYXRhY2Mx IHNldCBiID0gMiB3aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIuLi4KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gSU5TRVJUcwpAQCAtMTQzMCwx MSArMTQzMCwxMSBAQCBMSU5FIDE6IGluc2VydCBpbnRvIGF0YWNjMSAoIi4uLi4uLi4ucGcuZHJv cHBlZC4xLi4uLi4uLi4iLGIsYyxkKSB2YS4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KIC0tIERFTEVURXMKIGRlbGV0ZSBmcm9tIGF0YWNjMSB3aGVyZSBhID0gMzsKLUVSUk9SOiAg Y29sdW1uICJhIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImEi IGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IGRlbGV0ZSBmcm9tIGF0YWNjMSB3aGVyZSBhID0gMzsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIGRlbGV0ZSBmcm9tIGF0YWNjMSB3 aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAzOwotRVJST1I6ICBjb2x1bW4g Ii4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNv bHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3Qg ZXhpc3QKIExJTkUgMTogZGVsZXRlIGZyb20gYXRhY2MxIHdoZXJlICIuLi4uLi4uLnBnLmRyb3Bw ZWQuMS4uLi4uLi4uIiA9IDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBk ZWxldGUgZnJvbSBhdGFjYzE7CkBAIC0xNzIwLDcgKzE3MjAsNyBAQCBzZWxlY3QgZjEgZnJvbSBj MTsKIAogYWx0ZXIgdGFibGUgYzEgZHJvcCBjb2x1bW4gZjE7CiBzZWxlY3QgZjEgZnJvbSBjMTsK LUVSUk9SOiAgY29sdW1uICJmMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZh cmlhYmxlICJmMSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGYxIGZyb20gYzE7CiAg ICAgICAgICAgICAgICBeCiBISU5UOiAgUGVyaGFwcyB5b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRo ZSBjb2x1bW4gImMxLmYyIi4KQEAgLTE3MzQsNyArMTczNCw3IEBAIEVSUk9SOiAgY2Fubm90IGRy b3AgaW5oZXJpdGVkIGNvbHVtbiAiZjEiCiBhbHRlciB0YWJsZSBwMSBkcm9wIGNvbHVtbiBmMTsK IC0tIGMxLmYxIGlzIGRyb3BwZWQgbm93LCBzaW5jZSB0aGVyZSBpcyBubyBsb2NhbCBkZWZpbml0 aW9uIGZvciBpdAogc2VsZWN0IGYxIGZyb20gYzE7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRvZXMg bm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IHNlbGVjdCBmMSBmcm9tIGMxOwogICAgICAgICAgICAgICAgXgogSElOVDogIFBl cmhhcHMgeW91IG1lYW50IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uICJjMS5mMiIuCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY29weTIub3V0CmluZGV4IDkzMTU0MmYyNjg5Li5iNDg5NzBlNTZhYyAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQKQEAgLTE0NCw3ICsxNDQsNyBAQCBMSU5FIDE6 IENPUFkgeCBUTyBzdGRvdXQgV0hFUkUgYSA9IDE7CiBDT1BZIHggZnJvbSBzdGRpbiBXSEVSRSBh ID0gNTAwMDQ7CiBDT1BZIHggZnJvbSBzdGRpbiBXSEVSRSBhID4gNjAwMDM7CiBDT1BZIHggZnJv bSBzdGRpbiBXSEVSRSBmID4gNjAwMDM7Ci1FUlJPUjogIGNvbHVtbiAiZiIgZG9lcyBub3QgZXhp c3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJmIiBkb2VzIG5vdCBleGlzdAogTElORSAx OiBDT1BZIHggZnJvbSBzdGRpbiBXSEVSRSBmID4gNjAwMDM7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KIENPUFkgeCBmcm9tIHN0ZGluIFdIRVJFIGEgPSBtYXgoeC5iKTsKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dAppbmRleCA4YzUyNzQ3NGRhZi4uZTUzYWU0NTFk ZmMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Vycm9ycy5vdXQKQEAgLTI3LDcgKzI3LDcgQEAg TElORSAxOiBzZWxlY3QgKiBmcm9tIG5vbmVzdWNoOwogICAgICAgICAgICAgICAgICAgICAgIF4K IC0tIGJhZCBuYW1lIGluIHRhcmdldCBsaXN0CiBzZWxlY3Qgbm9uZXN1Y2ggZnJvbSBwZ19kYXRh YmFzZTsKLUVSUk9SOiAgY29sdW1uICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAg Y29sdW1uIG9yIHZhcmlhYmxlICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2Vs ZWN0IG5vbmVzdWNoIGZyb20gcGdfZGF0YWJhc2U7CiAgICAgICAgICAgICAgICBeCiAtLSBlbXB0 eSBkaXN0aW5jdCBsaXN0IGlzbid0IE9LCkBAIC0zNywxNyArMzcsMTcgQEAgTElORSAxOiBzZWxl Y3QgZGlzdGluY3QgZnJvbSBwZ19kYXRhYmFzZTsKICAgICAgICAgICAgICAgICAgICAgICAgIF4K IC0tIGJhZCBhdHRyaWJ1dGUgbmFtZSBvbiBsaHMgb2Ygb3BlcmF0b3IKIHNlbGVjdCAqIGZyb20g cGdfZGF0YWJhc2Ugd2hlcmUgbm9uZXN1Y2ggPSBwZ19kYXRhYmFzZS5kYXRuYW1lOwotRVJST1I6 ICBjb2x1bW4gIm5vbmVzdWNoIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFy aWFibGUgIm5vbmVzdWNoIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgKiBmcm9tIHBn X2RhdGFiYXNlIHdoZXJlIG5vbmVzdWNoID0gcGdfZGF0YWJhc2UuZGF0bmEuLi4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBiYWQgYXR0cmlidXRlIG5hbWUg b24gcmhzIG9mIG9wZXJhdG9yCiBzZWxlY3QgKiBmcm9tIHBnX2RhdGFiYXNlIHdoZXJlIHBnX2Rh dGFiYXNlLmRhdG5hbWUgPSBub25lc3VjaDsKLUVSUk9SOiAgY29sdW1uICJub25lc3VjaCIgZG9l cyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJub25lc3VjaCIgZG9lcyBu b3QgZXhpc3QKIExJTkUgMTogLi4uZWN0ICogZnJvbSBwZ19kYXRhYmFzZSB3aGVyZSBwZ19kYXRh YmFzZS5kYXRuYW1lID0gbm9uZXN1Y2g7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIGJhZCBhdHRyaWJ1dGUgbmFtZSBp biBzZWxlY3QgZGlzdGluY3Qgb24KIHNlbGVjdCBkaXN0aW5jdCBvbiAoZm9vYmFyKSAqIGZyb20g cGdfZGF0YWJhc2U7Ci1FUlJPUjogIGNvbHVtbiAiZm9vYmFyIiBkb2VzIG5vdCBleGlzdAorRVJS T1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImZvb2JhciIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTog c2VsZWN0IGRpc3RpbmN0IG9uIChmb29iYXIpICogZnJvbSBwZ19kYXRhYmFzZTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCiAtLSBncm91cGluZyB3aXRoIEZPUiBVUERBVEUKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2pvaW4ub3V0CmluZGV4IDUzZjcwZDcyZWQ2Li42NjFiYjFhMzBkZSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0CkBAIC02MjMwLDEzICs2MjMwLDEzIEBAIExJTkUg MTogc2VsZWN0IHQyLnV1bmlxdWUxIGZyb20KIEhJTlQ6ICBQZXJoYXBzIHlvdSBtZWFudCB0byBy ZWZlcmVuY2UgdGhlIGNvbHVtbiAidDIudW5pcXVlMSIuCiBzZWxlY3QgdXVuaXF1ZTEgZnJvbQog ICB0ZW5rMSB0MSBqb2luIHRlbmsyIHQyIG9uIHQxLnR3byA9IHQyLnR3bzsgLS0gZXJyb3IsIHN1 Z2dlc3QgYm90aCBhdCBvbmNlCi1FUlJPUjogIGNvbHVtbiAidXVuaXF1ZTEiIGRvZXMgbm90IGV4 aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAidXVuaXF1ZTEiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IHNlbGVjdCB1dW5pcXVlMSBmcm9tCiAgICAgICAgICAgICAgICBeCiBISU5UOiAg UGVyaGFwcyB5b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1bW4gInQxLnVuaXF1ZTEiIG9y IHRoZSBjb2x1bW4gInQyLnVuaXF1ZTEiLgogc2VsZWN0IGN0aWQgZnJvbQogICB0ZW5rMSB0MSBq b2luIHRlbmsyIHQyIG9uIHQxLnR3byA9IHQyLnR3bzsgLS0gZXJyb3IsIG5lZWQgcXVhbGlmaWNh dGlvbgotRVJST1I6ICBjb2x1bW4gImN0aWQiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVt biBvciB2YXJpYWJsZSAiY3RpZCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGN0aWQg ZnJvbQogICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUgYXJlIGNvbHVtbnMgbmFtZWQg ImN0aWQiLCBidXQgdGhleSBhcmUgaW4gdGFibGVzIHRoYXQgY2Fubm90IGJlIHJlZmVyZW5jZWQg ZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpAQCAtNzMzMyw3ICs3MzMzLDcgQEAgbGF0ZXJh bCAoc2VsZWN0ICogZnJvbSBpbnQ4X3RibCB0MSwKIAogLS0gdGVzdCBzb21lIGVycm9yIGNhc2Vz IHdoZXJlIExBVEVSQUwgc2hvdWxkIGhhdmUgYmVlbiB1c2VkIGJ1dCB3YXNuJ3QKIHNlbGVjdCBm MSxnIGZyb20gaW50NF90YmwgYSwgKHNlbGVjdCBmMSBhcyBnKSBzczsKLUVSUk9SOiAgY29sdW1u ICJmMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJmMSIgZG9l cyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGYxLGcgZnJvbSBpbnQ0X3RibCBhLCAoc2VsZWN0 IGYxIGFzIGcpIHNzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgogREVUQUlMOiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFtZWQgImYxIiBpbiB0YWJsZSAiYSIs IGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnku CkBAIC03MzQ1LDcgKzczNDUsNyBAQCBMSU5FIDE6IHNlbGVjdCBmMSxnIGZyb20gaW50NF90Ymwg YSwgKHNlbGVjdCBhLmYxIGFzIGcpIHNzOwogREVUQUlMOiAgVGhlcmUgaXMgYW4gZW50cnkgZm9y IHRhYmxlICJhIiwgYnV0IGl0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9m IHRoZSBxdWVyeS4KIEhJTlQ6ICBUbyByZWZlcmVuY2UgdGhhdCB0YWJsZSwgeW91IG11c3QgbWFy ayB0aGlzIHN1YnF1ZXJ5IHdpdGggTEFURVJBTC4KIHNlbGVjdCBmMSxnIGZyb20gaW50NF90Ymwg YSBjcm9zcyBqb2luIChzZWxlY3QgZjEgYXMgZykgc3M7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRv ZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4 aXN0CiBMSU5FIDE6IHNlbGVjdCBmMSxnIGZyb20gaW50NF90YmwgYSBjcm9zcyBqb2luIChzZWxl Y3QgZjEgYXMgZykgc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFtZWQgImYxIiBp biB0YWJsZSAiYSIsIGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBv ZiB0aGUgcXVlcnkuCkBAIC03MzgyLDcgKzczODIsNyBAQCBMSU5FIDE6IHNlbGVjdCAxIGZyb20g dGVuazEgYSwgbGF0ZXJhbCAoc2VsZWN0IG1heChhLnVuaXF1ZTEpIGZyb20gaS4uLgogY3JlYXRl IHRlbXAgdGFibGUgeHgxIGFzIHNlbGVjdCBmMSBhcyB4MSwgLWYxIGFzIHgyIGZyb20gaW50NF90 Ymw7CiAtLSBlcnJvciwgY2FuJ3QgZG8gdGhpczoKIHVwZGF0ZSB4eDEgc2V0IHgyID0gZjEgZnJv bSAoc2VsZWN0ICogZnJvbSBpbnQ0X3RibCB3aGVyZSBmMSA9IHgxKSBzczsKLUVSUk9SOiAgY29s dW1uICJ4MSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ4MSIg ZG9lcyBub3QgZXhpc3QKIExJTkUgMTogLi4uIHNldCB4MiA9IGYxIGZyb20gKHNlbGVjdCAqIGZy b20gaW50NF90Ymwgd2hlcmUgZjEgPSB4MSkgc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUg aXMgYSBjb2x1bW4gbmFtZWQgIngxIiBpbiB0YWJsZSAieHgxIiwgYnV0IGl0IGNhbm5vdCBiZSBy ZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KQEAgLTc0MDIsNyArNzQwMiw3 IEBAIHVwZGF0ZSB4eDEgc2V0IHgyID0gZjEgZnJvbSB4eDEsIGxhdGVyYWwgKHNlbGVjdCAqIGZy b20gaW50NF90Ymwgd2hlcmUgZjEgPSB4MSkKIEVSUk9SOiAgdGFibGUgbmFtZSAieHgxIiBzcGVj aWZpZWQgbW9yZSB0aGFuIG9uY2UKIC0tIGFsc28gZXJyb3JzOgogZGVsZXRlIGZyb20geHgxIHVz aW5nIChzZWxlY3QgKiBmcm9tIGludDRfdGJsIHdoZXJlIGYxID0geDEpIHNzOwotRVJST1I6ICBj b2x1bW4gIngxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIngx IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiAuLi50ZSBmcm9tIHh4MSB1c2luZyAoc2VsZWN0ICog ZnJvbSBpbnQ0X3RibCB3aGVyZSBmMSA9IHgxKSBzczsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBERVRBSUw6ICBUaGVy ZSBpcyBhIGNvbHVtbiBuYW1lZCAieDEiIGluIHRhYmxlICJ4eDEiLCBidXQgaXQgY2Fubm90IGJl IHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9uYW1lc3BhY2Uub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9uYW1lc3BhY2Uub3V0CmluZGV4IGRiYmRhNzJkMzk1Li5kOTg3OTNmOTJhNyAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9uYW1lc3BhY2Uub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91dApAQCAtMjMsNyArMjMsNyBAQCBC RUdJTjsKIFNFVCBzZWFyY2hfcGF0aCB0byBwdWJsaWMsIHRlc3RfbnNfc2NoZW1hXzE7CiBDUkVB VEUgU0NIRU1BIHRlc3RfbnNfc2NoZW1hXzIKICAgICAgICBDUkVBVEUgVklFVyBhYmNfdmlldyBB UyBTRUxFQ1QgYyBGUk9NIGFiYzsKLUVSUk9SOiAgY29sdW1uICJjIiBkb2VzIG5vdCBleGlzdAor RVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImMiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDI6ICAg ICAgICBDUkVBVEUgVklFVyBhYmNfdmlldyBBUyBTRUxFQ1QgYyBGUk9NIGFiYzsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBDT01NSVQ7CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251bWVyb2xvZ3kub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dAppbmRleCA3MTdhMjM3ZGY5OC4uMzg1YzRi MWI0Y2MgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVtZXJvbG9neS5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dApAQCAtMzE0 LDcgKzMxNCw3IEBAIE5PVElDRTogIGkgPSAxMDAyCiBOT1RJQ0U6ICBpID0gMTAwMwogLS0gZXJy b3IgY2FzZXMKIFNFTEVDVCBfMTAwOwotRVJST1I6ICBjb2x1bW4gIl8xMDAiIGRvZXMgbm90IGV4 aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiXzEwMCIgZG9lcyBub3QgZXhpc3QKIExJ TkUgMTogU0VMRUNUIF8xMDA7CiAgICAgICAgICAgICAgICBeCiBTRUxFQ1QgMTAwXzsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGxwZ3NxbC5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3BscGdzcWwub3V0CmluZGV4IDA3NGFmOGYzM2E4Li4wYTdhOWZlYjZl MiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wbHBnc3FsLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BscGdzcWwub3V0CkBAIC0yNTk4LDcgKzI1OTgs NyBAQCBlbmQ7ICQkIGxhbmd1YWdlIHBscGdzcWw7CiAtLSBzaG91bGQgZmFpbDogU1FMU1RBVEUg YW5kIFNRTEVSUk0gYXJlIG9ubHkgaW4gZGVmaW5lZCBFWENFUFRJT04KIC0tIGJsb2Nrcwogc2Vs ZWN0IGV4Y3B0X3Rlc3QxKCk7Ci1FUlJPUjogIGNvbHVtbiAic3Fsc3RhdGUiIGRvZXMgbm90IGV4 aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAic3Fsc3RhdGUiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IHNxbHN0YXRlCiAgICAgICAgIF4KIFFVRVJZOiAgc3Fsc3RhdGUKQEAgLTI2MTMs NyArMjYxMyw3IEBAIGJlZ2luCiBlbmQ7ICQkIGxhbmd1YWdlIHBscGdzcWw7CiAtLSBzaG91bGQg ZmFpbAogc2VsZWN0IGV4Y3B0X3Rlc3QyKCk7Ci1FUlJPUjogIGNvbHVtbiAic3Fsc3RhdGUiIGRv ZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAic3Fsc3RhdGUiIGRvZXMg bm90IGV4aXN0CiBMSU5FIDE6IHNxbHN0YXRlCiAgICAgICAgIF4KIFFVRVJZOiAgc3Fsc3RhdGUK QEAgLTQ2NzUsNyArNDY3NSw3IEBAIEJFR0lOCiAgICAgICAgIFJBSVNFIE5PVElDRSAnJSwgJScs IHIucm9vbW5vLCByLmNvbW1lbnQ7CiAgICAgRU5EIExPT1A7CiBFTkQkJDsKLUVSUk9SOiAgY29s dW1uICJmb28iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZm9v IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgcnRyaW0ocm9vbW5vKSBBUyByb29tbm8s IGZvbyBGUk9NIFJvb20gT1JERVIgQlkgcm9vbW4uLi4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCiBRVUVSWTogIFNFTEVDVCBydHJpbShyb29tbm8pIEFTIHJvb21u bywgZm9vIEZST00gUm9vbSBPUkRFUiBCWSByb29tbm8KQEAgLTQ3MTcsNyArNDcxNyw3IEBAIGJl Z2luCiAgIHJhaXNlIG5vdGljZSAneCA9ICUnLCB4OwogZW5kOwogJCQ7Ci1FUlJPUjogIGNvbHVt biAieCIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ4IiBkb2Vz IG5vdCBleGlzdAogTElORSAxOiB4ICsgMQogICAgICAgICBeCiBRVUVSWTogIHggKyAxCkBAIC00 NzI5LDcgKzQ3MjksNyBAQCBiZWdpbgogICByYWlzZSBub3RpY2UgJ3ggPSAlLCB5ID0gJScsIHgs IHk7CiBlbmQ7CiAkJDsKLUVSUk9SOiAgY29sdW1uICJ4IiBkb2VzIG5vdCBleGlzdAorRVJST1I6 ICBjb2x1bW4gb3IgdmFyaWFibGUgIngiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHggKyAxCiAg ICAgICAgIF4KIFFVRVJZOiAgeCArIDEKQEAgLTU3NjksNyArNTc2OSw3IEBAIEFMVEVSIFRBQkxF IGFsdGVyX3RhYmxlX3VuZGVyX3RyYW5zaXRpb25fdGFibGVzCiAgIERST1AgY29sdW1uIG5hbWU7 CiBVUERBVEUgYWx0ZXJfdGFibGVfdW5kZXJfdHJhbnNpdGlvbl90YWJsZXMKICAgU0VUIGlkID0g aWQ7Ci1FUlJPUjogIGNvbHVtbiAibmFtZSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1u IG9yIHZhcmlhYmxlICJuYW1lIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiAoU0VMRUNUIHN0cmlu Z19hZ2coaWQgfHwgJz0nIHx8IG5hbWUsICcsJykgRlJPTSBkKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIFFVRVJZOiAgKFNFTEVDVCBzdHJpbmdfYWdnKGlkIHx8 ICc9JyB8fCBuYW1lLCAnLCcpIEZST00gZCkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0Cmlu ZGV4IGY3MDgyNjM5NjA1Li40NTFmZGRlMzFjZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwu b3V0CkBAIC0xMjAsNyArMTIwLDcgQEAgU0VMRUNUICQxLCAkMiBcYmluZCAnZm9vJyAnYmFyJyBc ZwogLS0gZXJyb3JzCiAtLSBwYXJzZSBlcnJvcgogU0VMRUNUIGZvbyBcYmluZCBcZwotRVJST1I6 ICBjb2x1bW4gImZvbyIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxl ICJmb28iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCBmb28gCiAgICAgICAgICAgICAg ICBeCiAtLSB0Y29wIGVycm9yCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4IDRj Nzg5Mjc5ZTVlLi5lMTcyZmExNDA0YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQK QEAgLTExOTEsNyArMTE5MSw3IEBAIGRyb3AgcnVsZSBydWxlc19mb29ydWxlIG9uIHJ1bGVzX2Zv bzsKIC0tIHRoaXMgc2hvdWxkIGZhaWwgYmVjYXVzZSBmMSBpcyBub3QgZXhwb3NlZCBmb3IgdW5x dWFsaWZpZWQgcmVmZXJlbmNlOgogY3JlYXRlIHJ1bGUgcnVsZXNfZm9vcnVsZSBhcyBvbiBpbnNl cnQgdG8gcnVsZXNfZm9vIHdoZXJlIGYxIDwgMTAwCiBkbyBpbnN0ZWFkIGluc2VydCBpbnRvIHJ1 bGVzX2ZvbzIgdmFsdWVzIChmMSk7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRvZXMgbm90IGV4aXN0 CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDI6 IGRvIGluc3RlYWQgaW5zZXJ0IGludG8gcnVsZXNfZm9vMiB2YWx1ZXMgKGYxKTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhl cmUgYXJlIGNvbHVtbnMgbmFtZWQgImYxIiwgYnV0IHRoZXkgYXJlIGluIHRhYmxlcyB0aGF0IGNh bm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggMzlkYmI0 MzU5ZGEuLmMwYzhlNDViN2UzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dApAQCAtMjk2LDcgKzI5Niw3IEBAIEVSUk9SOiAgc2Vzc2lvbiB2 YXJpYWJsZSAidmFyMSIgZG9lc24ndCBleGlzdAogTElORSAxOiBMRVQgdmFyMSA9IHBpKCk7CiAg ICAgICAgICAgICBeCiBTRUxFQ1QgdmFyMTsKLUVSUk9SOiAgY29sdW1uICJ2YXIxIiBkb2VzIG5v dCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInZhcjEiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IFNFTEVDVCB2YXIxOwogICAgICAgICAgICAgICAgXgogLS0gc2hvdWxkIGJlIG9r CkBAIC01MDcsNyArNTA3LDcgQEAgU0VMRUNUIHYxOwogCiAtLSBzaG91bGQgZmFpbCwgYXR0cmli dXRlIGRvZXNuJ3QgZXhpc3QKIExFVCB2MS54ID0gMTA7Ci1FUlJPUjogIGNhbm5vdCBhc3NpZ24g dG8gZmllbGQgIngiIG9mIGNvbHVtbiAidjEiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1 bW4gaW4gZGF0YSB0eXBlIHQxCitFUlJPUjogIGNhbm5vdCBhc3NpZ24gdG8gZmllbGQgIngiIG9m IGNvbHVtbiBvciB2YXJpYWJsZSAidjEiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4g aW4gZGF0YSB0eXBlIHQxCiBMSU5FIDE6IExFVCB2MS54ID0gMTA7CiAgICAgICAgICAgICBeCiAt LSBzaG91bGQgZmFpbCwgZG9uJ3QgYWxsb3cgbXVsdGkgY29sdW1uIHF1ZXJ5CkBAIC0xMDU0LDcg KzEwNTQsNyBAQCBCRUdJTjsKIERST1AgVkFSSUFCTEUgdmFyMTsKIC0tIHNob3VsZCBmYWlsCiBT RUxFQ1QgdmFyMTsKLUVSUk9SOiAgY29sdW1uICJ2YXIxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6 ICBjb2x1bW4gb3IgdmFyaWFibGUgInZhcjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IFNFTEVD VCB2YXIxOwogICAgICAgICAgICAgICAgXgogUk9MTEJBQ0s7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3RyYW5zYWN0aW9ucy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3RyYW5zYWN0aW9ucy5vdXQKaW5kZXggN2Y1NzU3ZTg5YzQuLmIwNWIxNmQ5NGJmIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyYW5zYWN0aW9ucy5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMub3V0CkBAIC0yNTYsNyAr MjU2LDcgQEAgU0VMRUNUICogRlJPTSB0cmFuc19iYXJiYXo7CS0tIHNob3VsZCBoYXZlIDEKIEJF R0lOOwogCVNBVkVQT0lOVCBvbmU7CiAJCVNFTEVDVCB0cmFuc19mb287Ci1FUlJPUjogIGNvbHVt biAidHJhbnNfZm9vIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUg InRyYW5zX2ZvbyIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogU0VMRUNUIHRyYW5zX2ZvbzsKICAg ICAgICAgICAgICAgIF4KIAlST0xMQkFDSyBUTyBTQVZFUE9JTlQgb25lOwpAQCAtMzA1LDcgKzMw NSw3IEBAIEJFR0lOOwogCVNBVkVQT0lOVCBvbmU7CiAJCUlOU0VSVCBJTlRPIHNhdmVwb2ludHMg VkFMVUVTICg1KTsKIAkJU0VMRUNUIHRyYW5zX2ZvbzsKLUVSUk9SOiAgY29sdW1uICJ0cmFuc19m b28iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAidHJhbnNfZm9v IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgdHJhbnNfZm9vOwogICAgICAgICAgICAg ICAgXgogQ09NTUlUOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91bmlv bi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VuaW9uLm91dAppbmRleCAwZmQwZTFj MzhiMy4uZjg2OTg3ZGJkYzkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv dW5pb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0CkBAIC05 MjEsNyArOTIxLDcgQEAgT1JERVIgQlkgcTIscTE7CiAKIC0tIFRoaXMgc2hvdWxkIGZhaWwsIGJl Y2F1c2UgcTIgaXNuJ3QgYSBuYW1lIG9mIGFuIEVYQ0VQVCBvdXRwdXQgY29sdW1uCiBTRUxFQ1Qg cTEgRlJPTSBpbnQ4X3RibCBFWENFUFQgU0VMRUNUIHEyIEZST00gaW50OF90YmwgT1JERVIgQlkg cTIgTElNSVQgMTsKLUVSUk9SOiAgY29sdW1uICJxMiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAg Y29sdW1uIG9yIHZhcmlhYmxlICJxMiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogLi4uIGludDhf dGJsIEVYQ0VQVCBTRUxFQ1QgcTIgRlJPTSBpbnQ4X3RibCBPUkRFUiBCWSBxMiBMSU1JVCAxLi4u CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgogREVUQUlMOiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFtZWQgInEyIiBpbiB0YWJsZSAi KlNFTEVDVCogMiIsIGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBv ZiB0aGUgcXVlcnkuCi0tIAoyLjQ1LjIKCg== --000000000000bfc92e061dffd1c5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240724-0019-transactional-variables.patch" Content-Disposition: attachment; filename="v20240724-0019-transactional-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyzzqe4618 RnJvbSBjMmU2ZjliYjAzZjMxYTA5MzcyNjM5YTE5YTA0YmVlNWZjMTE4NTI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIxIE1heSAyMDI0IDIyOjQwOjU1ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAxOS8yMF0gdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMKClRoaXMgY29tbWl0IGltcGxlbWVu dHMgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMuIFRoZSBjb250ZW50IG9mIHRyYW5zYWN0aW9uYWwK c2Vzc2lvbiB2YXJpYWJsZXMgaXMgc2Vuc2l0aXZlIHRvIHRyYW5zYWN0aW9ucyBhbmQgc3VidHJh bnNhY3Rpb25zLiBBbnkKdHJhbnNhY3Rpb25hbCB2YXJpYWJsZSBob2xkcyBhIGhpc3Rvcnkgb2Yg dmFsdWVzIG5lY2Vzc2FyeSBmb3IgcmV2ZXJ0LiBUaGlzIGhpc3RvcnkKaXMgY2xlYW5lZCAocHVy Z2VkKSB3aGVuIGEpIHdlIHJlYWQgdGhlIHZhcmlhYmxlLCBiKSB3aGVuIHRoZSB0cmFuc2FjdGlv biBpcyBmaW5pc2hlZC4KCldlIGRvbid0IHRyeSB0byBwdXJnZSwgd2hlbiB0aGUgbGFzdCBtb2Rp ZmljYXRpb24gb2YgYSB2YXJpYWJsZSBpcyBmcm9tCmN1cnJlbnQgc3VidHJhbnNhY3Rpb24sIG9y IHdoZW4gcHVyZ2Ugd2FzIHByb2Nlc3NlZCBpbiBjdXJyZW50IHN1YnRyYW5zYWN0aW9uLgoKVGhp cyBwYXRjaCBpcyBiYXNlZCBvbiBteSB3b3JrIGZyb20gRmViIDIwMjAgYW5kIGl0IGlzIHJlbGF0 ZWQgdG8gZGlzY3Vzc2lvbgphYm91dCBmZWF0dXJlcyByZWxhdGVkIHRvIHNlc3Npb24gdmFyaWFi bGVzLiBOb3csIHdoZW4gdGhlIGFsbCBmZWF0dXJlcyBhcmUKc2VwYXJhdGVkIHRvIGlzb2xhdGVk IHBhdGNoZXMgSSBjYW4gcmV2aXRhbGl6ZSB0aGlzIHBhdGNoLCBiZWNhdXNlIGl0IGRvZXNuJ3QK aW5jcmVhc2UgY29tcGxleGl0eSBvZiBiYXNpYyBwYXRjaGVzLgoKVW5saWtlIG90aGVyIHBhdGNo ZXMsIHRoaXMgcGF0Y2ggaXMgd2l0aG91dCBhbnkgcmV2aWV3IGF0IHRoaXMgbW9tZW50IChGZWIg MjAyNCksCmJ1dCB0aGUgZmVhdHVyZSBzaG91bGQgYmUgZnVsbHkgZnVuY3Rpb25hbCBmb3IgcGVv cGxlIHdobyBhcmUgaW50ZXJlc3RlZCBhYm91dAp0aGlzIGZlYXR1cmUgKGZvciB0ZXN0aW5nKS4K LS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTEg KwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgIDEwICst CiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDQgKwog c3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgMzAxICsrKysr KysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAg ICAgIHwgIDUwICstLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAg ICAgIHwgIDEwICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAg ICAgfCAgIDEgKwogc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAg IHwgIDM2ICsrKwogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAg IHwgICA0ICstCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAgICAg fCAgIDUgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwg ICAzICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAg MSArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAgIDEg Kwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDM2ICst LQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMTEwICsr KysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA1 OCArKysrCiAxNiBmaWxlcyBjaGFuZ2VkLCA1OTEgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbAppbmRleCA5NmNjODhlNmNmNi4uMzFmYWM0MjYxZGYgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCkBAIC05ODUxLDYgKzk4NTEsMTcgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+ Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAg ICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVu dHJ5PjxzdHJ1Y3RmaWVsZD52YXJpc3RyYW5zYWN0PC9zdHJ1Y3RmaWVsZD48L2VudHJ5PgorICAg ICAgPGVudHJ5Pjx0eXBlPmJvb2xlYW48L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48L2Vu dHJ5PgorICAgICAgPGVudHJ5PgorICAgICAgIFRydWUsIHdoZW4gdGhlIHZhcmlhYmxlIGlzICJ0 cmFuc2FjdGlvbmFsIi4gSW4gY2FzZSBvZiB0cmFuc2FjdGlvbgorICAgICAgIHJvbGxiYWNrLCB0 cmFuc2FjdGlvbmFsIHZhcmlhYmxlcyBhcmUgcmVzZXQgdG8gdGhlaXIgY29udGVudCBhdCB0aGUK KyAgICAgICB0cmFuc2FjdGlvbiBzdGFydC4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UuCisg ICAgICA8L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K ICAgICAgICA8c3RydWN0ZmllbGQ+dmFyZW94YWN0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hh cjwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNn bWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4IGM1ODBmYWM5 ZjFjLi40MDkzZjQyZDIzOSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFy aWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBA IC0yNiw3ICsyNiw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgPHJlZnN5bm9wc2lz ZGl2PgogPHN5bm9wc2lzPgotQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBbIElNTVVU QUJMRSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQorQ1JFQVRFIFsgeyBU RU1QT1JBUlkgfCBURU1QIH0gXSBbIHsgVFJBTlNBQ1RJT05BTCB8IFRSQU5TQUNUSU9OIH0gXSBb IElNTVVUQUJMRSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQogICAgIFsg Tk9UIE5VTEwgXSBbIERFRkFVTFQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRlZmF1 bHRfZXhwcjwvcmVwbGFjZWFibGU+IF0gWyB7IE9OIENPTU1JVCBEUk9QIHwgT04gVFJBTlNBQ1RJ T04gRU5EIFJFU0VUIH0gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgpAQCAtNDgs NiArNDgsMTQgQEAgQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBbIElNTVVUQUJMRSBd IFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWMKICAgIHNhbWUgYXMgcmVndWxhciB2 YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBsYW5ndWFnZXMuCiAgIDwvcGFyYT4KIAorICA8cGFyYT4K KyAgIFdoZW4gYSBzY2hlbWEgdmFyaWFibGUgaXMgY3JlYXRlZCB3aXRoIGEKKyAgIDxjb21tYW5k PkNSRUFURSBUUkFOU0FDVElPTkFMIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kLCB0aGUgdmFy aWFibGVzCisgICBjb250ZW50IGNoYW5nZXMgYXJlIHRyYW5zYWN0aW9uYWw6IGluIGNhc2Ugb2Yg cm9sbGJhY2ssIHRoZXkgYXJlIHJlc2V0IHRvCisgICB0aGVpciB2YWx1ZSBhdCB0aGUgYmVnaW5u aW5nIG9mIHRoZSB0cmFuc2FjdGlvbiBvciB0aGUgbGF0ZXN0IHN1YnRyYW5zYWN0aW9uLgorICAg VGhlIHZhcmlhYmxlIGNvbnRlbnQgaXMgb25seSBob2xkIGluIG1lbW9yeSwgYW5kIHRodXMgaXMg bm90IHBlcnNpc3RlbnQuCisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIFNlc3Npb24gdmFyaWFi bGVzIGFyZSByZXRyaWV2ZWQgYnkgdGhlIDxjb21tYW5kPlNFTEVDVDwvY29tbWFuZD4KICAgIGNv bW1hbmQuICBUaGVpciB2YWx1ZSBpcyBzZXQgd2l0aCB0aGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5k PiBjb21tYW5kLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5j IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCmluZGV4IGI0ZTM4MzYyNDRhLi4w NjMxODVlMjBlOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5j CisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtNDIsNiArNDIsNyBA QCBzdGF0aWMgT2JqZWN0QWRkcmVzcyBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFt ZSwKIAkJCQkJCQkJCSBib29sIGlmX25vdF9leGlzdHMsCiAJCQkJCQkJCQkgYm9vbCBub3RfbnVs bCwKIAkJCQkJCQkJCSBib29sIGlzX2ltbXV0YWJsZSwKKwkJCQkJCQkJCSBib29sIGlzX3RyYW5z YWN0LAogCQkJCQkJCQkJIE5vZGUgKnZhckRlZmV4cHIsCiAJCQkJCQkJCQkgVmFyaWFibGVYYWN0 RW5kQWN0aW9uIHZhclhhY3RFbmRBY3Rpb24pOwogCkBAIC01OSw2ICs2MCw3IEBAIGNyZWF0ZV92 YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCQkJCWJvb2wgaWZfbm90X2V4aXN0cywKIAkJ CQlib29sIG5vdF9udWxsLAogCQkJCWJvb2wgaXNfaW1tdXRhYmxlLAorCQkJCWJvb2wgaXNfdHJh bnNhY3QsCiAJCQkJTm9kZSAqdmFyRGVmZXhwciwKIAkJCQlWYXJpYWJsZVhhY3RFbmRBY3Rpb24g dmFyWGFjdEVuZEFjdGlvbikKIHsKQEAgLTEyMyw2ICsxMjUsNyBAQCBjcmVhdGVfdmFyaWFibGUo Y29uc3QgY2hhciAqdmFyTmFtZSwKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjb2xsYXRp b24gLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyQ29sbGF0aW9uKTsKIAl2YWx1ZXNbQW51bV9w Z192YXJpYWJsZV92YXJub3RudWxsIC0gMV0gPSBCb29sR2V0RGF0dW0obm90X251bGwpOwogCXZh bHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmlzaW1tdXRhYmxlIC0gMV0gPSBCb29sR2V0RGF0dW0o aXNfaW1tdXRhYmxlKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJpc3RyYW5zYWN0IC0g MV0gPSBCb29sR2V0RGF0dW0oaXNfdHJhbnNhY3QpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxl X3ZhcnhhY3RlbmRhY3Rpb24gLSAxXSA9IENoYXJHZXREYXR1bSh2YXJYYWN0RW5kQWN0aW9uKTsK IAogCWlmICh2YXJEZWZleHByKQpAQCAtMjcyLDYgKzI3NSw3IEBAIENyZWF0ZVZhcmlhYmxlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQkJICAg c3RtdC0+aWZfbm90X2V4aXN0cywKIAkJCQkJCQkgICBzdG10LT5ub3RfbnVsbCwKIAkJCQkJCQkg ICBzdG10LT5pc19pbW11dGFibGUsCisJCQkJCQkJICAgc3RtdC0+aXNfdHJhbnNhY3QsCiAJCQkJ CQkJICAgY29va2VkX2RlZmF1bHQsCiAJCQkJCQkJICAgc3RtdC0+WGFjdEVuZEFjdGlvbik7CiAK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCA4Yzk5N2ZmMmI1MS4u OWFjZmNiYWNjMGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAg LTQ3LDYgKzQ3LDE5IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJsZVhBY3REcm9wSXRlbQogCVN1 YlRyYW5zYWN0aW9uSWQgZGVsZXRpbmdfc3ViaWQ7CiB9IFNWYXJpYWJsZVhBY3REcm9wSXRlbTsK IAorLyoKKyAqIFVzZWQgZm9yIHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzLiBIb2xkcyBwcmV2IHZl cnNpb24uCisgKi8KK3R5cGVkZWYgc3RydWN0IFByZXZWYWx1ZQoreworCURhdHVtCQl2YWx1ZTsK Kwlib29sCQlpc251bGw7CisKKwlTdWJUcmFuc2FjdGlvbklkIG1vZGlmeV9zdWJpZDsKKworCXN0 cnVjdCBQcmV2VmFsdWUgKnByZXZfdmFsdWU7Cit9IFByZXZWYWx1ZTsKKwogLyoKICAqIFZhbHVl cyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHRoZSBiYWNrZW5kIGxvY2FsIG1l bW9yeQogICogaW5zaWRlIHNlc3Npb252YXJzIGhhc2ggdGFibGUgaW4gYmluYXJ5IGZvcm1hdCBp bnNpZGUgYSBkZWRpY2F0ZWQgbWVtb3J5CkBAIC03NSw2ICs4OCwyNSBAQCB0eXBlZGVmIHN0cnVj dCBTVmFyaWFibGVEYXRhCiAJYm9vbAkJaXNudWxsOwogCURhdHVtCQl2YWx1ZTsKIAorCS8qCisJ ICogV2UgZG9uJ3QgbmVlZCBzdGFjayB2ZXJzaW9ucyBtb2RpZmllZCBpbiBzYW1lIHN1YnRyYW5z YWN0aW9uLgorCSAqIFVzZWQgYnkgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMgb25seS4gVGhlIHZh bHVlIG9mIHRyYW5zYWN0aW9uYWwKKwkgKiB2YXJpYWJsZSBjYW4gYmUgcmV0dXJuZWQgaW1tZWRp YXRlbHkgd2hlbiBtb2RpZnlfc3ViaWQgaXMgc2FtZQorCSAqIGxpa2UgY3VycmVudCBzdWJpZC4K KwkgKi8KKwlTdWJUcmFuc2FjdGlvbklkIG1vZGlmeV9zdWJpZDsKKworCS8qCisJICogV2hlbiB0 aGUgbW9kaWZ5X3N1YmlkIGlzIGRpZmZlcmVudCB0aGFuIGN1cnJlbnQgc3ViaWQsIHRoZW4KKwkg KiB3ZSBuZWVkIHRvIHJlY2hlY2sgdmVyc2lvbnMgYW5kIHRocm93IHZlcnNpb25zIHJlbGF0ZWQg dG8KKwkgKiByZXZlcnRlZCB0cmFuc2FjdGlvbnMuIFdoZW4gcHVyZ2Vfc3ViaWQgaXMgc2FtZSBs aWtlIGN1cnJlbnQgc3ViaWQKKwkgKiB3ZSBjYW4gcmV0dXJuIHRoZSB2YWx1ZSBvZiB0cmFuc2Fj dGlvbiB2YXJpYWJsZSB3aXRob3V0IHRoaXMKKwkgKiByZWNoZWNrLgorCSAqLworCVN1YlRyYW5z YWN0aW9uSWQgcHVyZ2Vfc3ViaWQ7CisKKwlQcmV2VmFsdWUgICpwcmV2X3ZhbHVlOworCiAJT2lk CQkJdHlwaWQ7CiAJaW50MTYJCXR5cGxlbjsKIAlib29sCQl0eXBieXZhbDsKQEAgLTk0LDYgKzEy Niw3IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKIAogCWJvb2wJCW5vdF9udWxsOwog CWJvb2wJCWlzX2ltbXV0YWJsZTsKKwlib29sCQlpc190cmFuc2FjdDsKIAogCWJvb2wJCXJlc2V0 X2F0X2VveDsKIApAQCAtMTMzLDYgKzE2Niw5IEBAIHN0YXRpYyBib29sIG5lZWRzX3ZhbGlkYXRp b24gPSBmYWxzZTsKICAqLwogc3RhdGljIGJvb2wgaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dpdGhf cmVzZXRfYXRfZW94ID0gZmFsc2U7CiAKKy8qIHRydWUsIHdoZW4gdHJhbnNhY3Rpb25hbCB2YXJp YWJsZXMgd2FzIG1vZGlmaWVkICovCitzdGF0aWMgYm9vbCBoYXNfbW9kaWZpZWRfdHJhbnNhY3Rp b25hbF92YXJpYWJsZXMgPSBmYWxzZTsKKwogLyoKICAqIFRoZSBjb250ZW50IG9mIHNlc3Npb24g dmFyaWFibGVzIGlzIG5vdCByZW1vdmVkIGltbWVkaWF0ZWx5LiBXaGVuIGl0CiAgKiBpcyBwb3Nz aWJsZSB3ZSBkbyB0aGlzIGF0IHRoZSB0cmFuc2FjdGlvbiBlbmQuIEJ1dCB3aGVuIHRoZSB0cmFu c2FjdGlvbiBmYWlsZWQsCkBAIC0xNDgsNiArMTg0LDcgQEAgc3RhdGljIExpc3QgKnhhY3RfZHJv cF9pdGVtcyA9IE5JTDsKIAogc3RhdGljIHZvaWQgcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94 YWN0X2Ryb3AoT2lkIHZhcmlkKTsKIHN0YXRpYyB2b2lkIHVucmVnaXN0ZXJfc2Vzc2lvbl92YXJp YWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKTsKK3N0YXRpYyBib29sIHB1cmdlX3Nlc3Npb25fdmFy aWFibGUoU1ZhcmlhYmxlIHN2YXIpOwogCiAvKgogICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHNl c3Npb24gdmFyaWFibGUgaW52YWxpZGF0aW9uLgpAQCAtMzAzLDggKzM0MCwyNSBAQCB1bnJlZ2lz dGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCkKICAqIFJlbGVhc2Ugc3Rv cmVkIHZhbHVlLCBmcmVlIG1lbW9yeQogICovCiBzdGF0aWMgdm9pZAotZnJlZV9zZXNzaW9uX3Zh cmlhYmxlX3ZhbHVlKFNWYXJpYWJsZSBzdmFyKQorZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVl KFNWYXJpYWJsZSBzdmFyLCBib29sIGRlZXBfZnJlZSkKIHsKKwlpZiAoZGVlcF9mcmVlKQorCXsK KwkJUHJldlZhbHVlICpwcmV2X3ZhbHVlID0gc3Zhci0+cHJldl92YWx1ZTsKKwkJUHJldlZhbHVl ICpuZXh0X3ZhbHVlOworCisJCXdoaWxlIChwcmV2X3ZhbHVlKQorCQl7CisJCQlpZiAoIXN2YXIt PnR5cGJ5dmFsKQorCQkJCXBmcmVlKERhdHVtR2V0UG9pbnRlcihwcmV2X3ZhbHVlLT52YWx1ZSkp OworCisJCQluZXh0X3ZhbHVlID0gcHJldl92YWx1ZS0+cHJldl92YWx1ZTsKKwkJCXBmcmVlKHBy ZXZfdmFsdWUpOworCisJCQlwcmV2X3ZhbHVlID0gbmV4dF92YWx1ZTsKKwkJfQorCX0KKwogCS8q IENsZWFuIGN1cnJlbnQgdmFsdWUgKi8KIAlpZiAoIXN2YXItPmlzbnVsbCkKIAl7CkBAIC00MDMs NyArNDU3LDcgQEAgcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoYm9vbCBhdEVPWCkK IAkJCXsKIAkJCQlPaWQJCQl2YXJpZCA9IHN2YXItPnZhcmlkOwogCi0JCQkJZnJlZV9zZXNzaW9u X3ZhcmlhYmxlX3ZhbHVlKHN2YXIpOworCQkJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShz dmFyLCB0cnVlKTsKIAkJCQloYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLCBIQVNIX1JF TU9WRSwgTlVMTCk7CiAJCQkJc3ZhciA9IE5VTEw7CiAJCQl9CkBAIC00MzksNiArNDkzLDk0IEBA IHJlbW92ZV9zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCh2b2lkKQogCWhhc19z ZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCA9IGZhbHNlOwogfQogCisvKgorICog cmVtb3ZlIHByZXYgdmFsdWVzIGF0IGVveAorICovCitzdGF0aWMgdm9pZAorcmVtb3ZlX3ByZXZf dmFsdWVzX2F0X2VveChib29sIGlzQ29tbWl0KQoreworCUhBU0hfU0VRX1NUQVRVUyBzdGF0dXM7 CisJU1ZhcmlhYmxlCXN2YXI7CisKKwlpZiAoIXNlc3Npb252YXJzKQorCQlyZXR1cm47CisKKwkv KiBsZWF2ZSBxdWNrbHksIHdoZW4gdGhlcmUgYXJlIG5vdCB0aGF0IHZhcmlhYmxlcyAqLworCWlm ICghaGFzX21vZGlmaWVkX3RyYW5zYWN0aW9uYWxfdmFyaWFibGVzKQorCQlyZXR1cm47CisKKwlo YXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJzKTsKKwl3aGlsZSAoKHN2YXIgPSAoU1Zh cmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykpICE9IE5VTEwpCisJeworCQlpZiAoc3Zh ci0+aXNfdHJhbnNhY3QgJiYgc3Zhci0+bW9kaWZ5X3N1YmlkICE9IEludmFsaWRTdWJUcmFuc2Fj dGlvbklkKQorCQl7CisJCQlpZiAoaXNDb21taXQpCisJCQl7CisJCQkJaWYgKHB1cmdlX3Nlc3Np b25fdmFyaWFibGUoc3ZhcikpCisJCQkJeworCQkJCQlQcmV2VmFsdWUgKnByZXZfdmFsdWUgPSBz dmFyLT5wcmV2X3ZhbHVlOworCisJCQkJCXdoaWxlIChwcmV2X3ZhbHVlKQorCQkJCQl7CisJCQkJ CQlQcmV2VmFsdWUgKmN1cnJlbnRfcHYgPSBwcmV2X3ZhbHVlOworCisJCQkJCQlpZiAoIXN2YXIt PnR5cGJ5dmFsICYmICFjdXJyZW50X3B2LT5pc251bGwpCisJCQkJCQkJcGZyZWUoRGF0dW1HZXRQ b2ludGVyKGN1cnJlbnRfcHYtPnZhbHVlKSk7CisKKwkJCQkJCXByZXZfdmFsdWUgPSBjdXJyZW50 X3B2LT5wcmV2X3ZhbHVlOworCQkJCQkJcGZyZWUoY3VycmVudF9wdik7CisJCQkJCX0KKwkJCQl9 CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZzdmFyLT52 YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwpOworCQkJCQlzdmFyID0gTlVMTDsKKwkJCQl9CisJCQl9 CisJCQllbHNlCisJCQl7CisJCQkJUHJldlZhbHVlICpwcmV2X3ZhbHVlID0gc3Zhci0+cHJldl92 YWx1ZTsKKworCQkJCXdoaWxlIChwcmV2X3ZhbHVlKQorCQkJCXsKKwkJCQkJUHJldlZhbHVlICpj dXJyZW50X3B2ID0gcHJldl92YWx1ZTsKKworCQkJCQlpZiAoY3VycmVudF9wdi0+bW9kaWZ5X3N1 YmlkID09IEludmFsaWRTdWJUcmFuc2FjdGlvbklkKQorCQkJCQkJYnJlYWs7CisKKwkJCQkJaWYg KCFzdmFyLT50eXBieXZhbCAmJiAhY3VycmVudF9wdi0+aXNudWxsKQorCQkJCQkJcGZyZWUoRGF0 dW1HZXRQb2ludGVyKGN1cnJlbnRfcHYtPnZhbHVlKSk7CisKKwkJCQkJcHJldl92YWx1ZSA9IGN1 cnJlbnRfcHYtPnByZXZfdmFsdWU7CisJCQkJCXBmcmVlKGN1cnJlbnRfcHYpOworCQkJCX0KKwor CQkJCWlmIChwcmV2X3ZhbHVlKQorCQkJCXsKKwkJCQkJc3Zhci0+dmFsdWUgPSBwcmV2X3ZhbHVl LT52YWx1ZTsKKwkJCQkJc3Zhci0+aXNudWxsID0gcHJldl92YWx1ZS0+aXNudWxsOworCisJCQkJ CXBmcmVlKHByZXZfdmFsdWUpOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQloYXNoX3Nl YXJjaChzZXNzaW9udmFycywgJnN2YXItPnZhcmlkLCBIQVNIX1JFTU9WRSwgTlVMTCk7CisJCQkJ CXN2YXIgPSBOVUxMOworCQkJCX0KKwkJCX0KKworCQkJLyogV2hlbiBzdmFyIGlzIHN0aWxsIHZh bGlkIChub3QgcmVtb3ZlZCBmcm9tIHNlc3Npb252YXJzICovCisJCQlpZiAoc3ZhcikKKwkJCXsK KwkJCQlzdmFyLT5tb2RpZnlfc3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKwkJCQlz dmFyLT5wcmV2X3ZhbHVlID0gTlVMTDsKKwkJCX0KKwkJfQorCX0KKworCWhhc19tb2RpZmllZF90 cmFuc2FjdGlvbmFsX3ZhcmlhYmxlcyA9IGZhbHNlOworfQorCiAvKgogICAqIFBlcmZvcm0gT04g Q09NTUlUIERST1AgZm9yIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlcywKICAgKiBhbmQgcmVt b3ZlIGFsbCBkcm9wcGVkIHZhcmlhYmxlcyBmcm9tIG1lbW9yeS4KQEAgLTQ4Niw2ICs2MjgsOCBA QCBBdFByZUVPWGFjdF9TZXNzaW9uVmFyaWFibGVzKGJvb2wgaXNDb21taXQpCiAJCXJlbW92ZV9p bnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKHRydWUpOwogCX0KIAorCXJlbW92ZV9wcmV2X3ZhbHVl c19hdF9lb3goaXNDb21taXQpOworCiAJLyoKIAkgKiBXZSBoYXZlIHRvIGNsZWFuIHhhY3RfZHJv cF9pdGVtcy4gQWxsIHJlbGF0ZWQgdmFyaWFibGVzIGFyZSBkcm9wcGVkCiAJICogbm93LCBvciBs b3N0IGluc2lkZSBhYm9ydGVkIHRyYW5zYWN0aW9uLgpAQCAtNjMxLDYgKzc3NSw3IEBAIHNldHVw X3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCwgYm9vbCBpc193cml0 ZSkKIAogCXN2YXItPm5vdF9udWxsID0gdmFyZm9ybS0+dmFybm90bnVsbDsKIAlzdmFyLT5pc19p bW11dGFibGUgPSB2YXJmb3JtLT52YXJpc2ltbXV0YWJsZTsKKwlzdmFyLT5pc190cmFuc2FjdCA9 IHZhcmZvcm0tPnZhcmlzdHJhbnNhY3Q7CiAKIAlzdmFyLT5pc19kb21haW4gPSAoZ2V0X3R5cHR5 cGUodmFyZm9ybS0+dmFydHlwZSkgPT0gVFlQVFlQRV9ET01BSU4pOwogCXN2YXItPmRvbWFpbl9j aGVja19leHRyYSA9IE5VTEw7CkBAIC02NTYsNiArODAxLDE3IEBAIHNldHVwX3Nlc3Npb25fdmFy aWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCwgYm9vbCBpc193cml0ZSkKIAlzdmFyLT5p c251bGwgPSB0cnVlOwogCXN2YXItPnZhbHVlID0gKERhdHVtKSAwOwogCisJaWYgKHN2YXItPmlz X3RyYW5zYWN0KQorCXsKKwkJc3Zhci0+bW9kaWZ5X3N1YmlkID0gR2V0Q3VycmVudFN1YlRyYW5z YWN0aW9uSWQoKTsKKwkJaGFzX21vZGlmaWVkX3RyYW5zYWN0aW9uYWxfdmFyaWFibGVzID0gdHJ1 ZTsKKwl9CisJZWxzZQorCQlzdmFyLT5tb2RpZnlfc3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rp b25JZDsKKworCXN2YXItPnB1cmdlX3N1YmlkID0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQ7CisJ c3Zhci0+cHJldl92YWx1ZSA9IE5VTEw7CisKIAlzdmFyLT5pc192YWxpZCA9IHRydWU7CiAKIAlz dmFyLT5oYXNodmFsdWUgPSBHZXRTeXNDYWNoZUhhc2hWYWx1ZTEoVkFSSUFCTEVPSUQsCkBAIC02 ODksNiArODQ1LDY5IEBAIHNldHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9p ZCB2YXJpZCwgYm9vbCBpc193cml0ZSkKIAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIH0KIAorLyoK KyAqIFRyeSB0byByZW1vdmUgYWxsIHByZXZpb3VzIHZlcnNpb25zIHJlbGF0ZWQgdG8gcmV2ZXJ0 ZWQgdHJhbnNhY3Rpb25zLgorICogUmV0dXJucyB0cnVlLCB3aGVuIHZhbGlkIHZlcnNpb24gd2Fz IGZvdW5kLgorICovCitzdGF0aWMgYm9vbAorcHVyZ2Vfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFi bGUgc3ZhcikKK3sKKwlTdWJUcmFuc2FjdGlvbklkIGN1cnJlbnRfc3ViaWQ7CisJUHJldlZhbHVl CSAgICpwcmV2X3ZhbHVlOworCWJvb2wJCQlmb3VuZCA9IHRydWU7CisKKwlBc3NlcnQoc3Zhci0+ aXNfdHJhbnNhY3QpOworCisJaWYgKHN2YXItPm1vZGlmeV9zdWJpZCA9PSBJbnZhbGlkU3ViVHJh bnNhY3Rpb25JZCkKKwkJcmV0dXJuIHRydWU7CisKKwljdXJyZW50X3N1YmlkID0gR2V0Q3VycmVu dFN1YlRyYW5zYWN0aW9uSWQoKTsKKworCWlmIChzdmFyLT5tb2RpZnlfc3ViaWQgPT0gY3VycmVu dF9zdWJpZCkKKwkJcmV0dXJuIHRydWU7CisKKwlpZiAoc3Zhci0+cHVyZ2Vfc3ViaWQgPT0gY3Vy cmVudF9zdWJpZCkKKwkJcmV0dXJuIHRydWU7CisKKwlpZiAoU3ViVHJhbnNhY3Rpb25Jc0FjdGl2 ZShzdmFyLT5tb2RpZnlfc3ViaWQpKQorCXsKKwkJc3Zhci0+cHVyZ2Vfc3ViaWQgPSBjdXJyZW50 X3N1YmlkOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlwcmV2X3ZhbHVlID0gc3Zhci0+cHJldl92 YWx1ZTsKKworCXdoaWxlIChwcmV2X3ZhbHVlKQorCXsKKwkJUHJldlZhbHVlICpjdXJyZW50X3B2 ID0gcHJldl92YWx1ZTsKKworCQlpZiAoY3VycmVudF9wdi0+bW9kaWZ5X3N1YmlkID09IEludmFs aWRTdWJUcmFuc2FjdGlvbklkIHx8CisJCQlTdWJUcmFuc2FjdGlvbklzQWN0aXZlKGN1cnJlbnRf cHYtPm1vZGlmeV9zdWJpZCkpCisJCXsKKwkJCXN2YXItPnZhbHVlID0gY3VycmVudF9wdi0+dmFs dWU7CisJCQlzdmFyLT5pc251bGwgPSBjdXJyZW50X3B2LT5pc251bGw7CisJCQlzdmFyLT5tb2Rp Znlfc3ViaWQgPSBjdXJyZW50X3B2LT5tb2RpZnlfc3ViaWQ7CisKKwkJCXByZXZfdmFsdWUgPSBj dXJyZW50X3B2LT5wcmV2X3ZhbHVlOworCQkJcGZyZWUoY3VycmVudF9wdik7CisKKwkJCWZvdW5k ID0gdHJ1ZTsKKwkJCWJyZWFrOworCQl9CisKKwkJaWYgKCFzdmFyLT50eXBieXZhbCAmJiAhY3Vy cmVudF9wdi0+aXNudWxsKQorCQkJcGZyZWUoRGF0dW1HZXRQb2ludGVyKGN1cnJlbnRfcHYtPnZh bHVlKSk7CisKKwkJcHJldl92YWx1ZSA9IGN1cnJlbnRfcHYtPnByZXZfdmFsdWU7CisJCXBmcmVl KGN1cnJlbnRfcHYpOworCX0KKworCXN2YXItPnByZXZfdmFsdWUgPSBwcmV2X3ZhbHVlOworCXN2 YXItPnB1cmdlX3N1YmlkID0gY3VycmVudF9zdWJpZDsKKworCXJldHVybiBmb3VuZDsKK30KKwog LyoKICAqIEFzc2lnbiBzb21lIGNvbnRlbnQgdG8gdGhlIHNlc3Npb24gdmFyaWFibGUuIEl0J3Mg Y29waWVkIHRvCiAgKiBTVmFyaWFibGVNZW1vcnlDb250ZXh0IGlmIG5lY2Vzc2FyeS4KQEAgLTcw MSw2ICs5MjAsMTAgQEAgc2V0X3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVt IHZhbHVlLCBib29sIGlzbnVsbCkKIAlEYXR1bQkJbmV3dmFsOwogCVNWYXJpYWJsZURhdGEgbG9j c3ZhciwKIAkJCSAgICpfc3ZhcjsKKwlTdWJUcmFuc2FjdGlvbklkIGN1cnJlbnRfc3ViaWQgPSBH ZXRDdXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpOworCVN1YlRyYW5zYWN0aW9uSWQgcHJldl9wdXJn ZV9zdWJpZCA9IEludmFsaWRTdWJUcmFuc2FjdGlvbklkOworCWJvb2wJCXNhdmVfcHJldl92YWx1 ZTsKKwlQcmV2VmFsdWUgICpwcmV2X3ZhbHVlOwogCiAJQXNzZXJ0KHN2YXIpOwogCUFzc2VydCgh aXNudWxsIHx8IHZhbHVlID09IChEYXR1bSkgMCk7CkBAIC03MzYsNiArOTU5LDIxIEBAIHNldF9z ZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwp CiAJZWxzZQogCQlfc3ZhciA9IHN2YXI7CiAKKwlpZiAoX3N2YXItPmlzX3RyYW5zYWN0ICYmIF9z dmFyLT5jcmVhdGVfbHNuID09IHN2YXItPmNyZWF0ZV9sc24pCisJeworCQlBc3NlcnQoc3Zhci0+ dHlwaWQgPT0gX3N2YXItPnR5cGlkKTsKKwkJQXNzZXJ0KHN2YXItPnR5cGJ5dmFsID09IF9zdmFy LT50eXBieXZhbCk7CisJCUFzc2VydChzdmFyLT50eXBsZW4gPT0gX3N2YXItPnR5cGxlbik7CisK KwkJc2F2ZV9wcmV2X3ZhbHVlID0gc3Zhci0+bW9kaWZ5X3N1YmlkICE9IGN1cnJlbnRfc3ViaWQ7 CisJCXByZXZfdmFsdWUgPSBzdmFyLT5wcmV2X3ZhbHVlOworCX0KKwllbHNlCisJeworCQlzYXZl X3ByZXZfdmFsdWUgPSBmYWxzZTsKKwkJcHJldl92YWx1ZSA9IE5VTEw7CisJfQorCiAJaWYgKCFp c251bGwpCiAJewogCQlNZW1vcnlDb250ZXh0IG9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hU byhTVmFyaWFibGVNZW1vcnlDb250ZXh0KTsKQEAgLTc0Nyw3ICs5ODUsMzcgQEAgc2V0X3Nlc3Np b25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAll bHNlCiAJCW5ld3ZhbCA9IHZhbHVlOwogCi0JZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2 YXIpOworCWlmIChzYXZlX3ByZXZfdmFsdWUpCisJeworCQl2b2xhdGlsZSBQcmV2VmFsdWUgKm5l d19wcmV2X3ZhbHVlOworCisJCVBHX1RSWSgpOworCQl7CisJCQluZXdfcHJldl92YWx1ZSA9IE1l bW9yeUNvbnRleHRBbGxvYyhTVmFyaWFibGVNZW1vcnlDb250ZXh0LAorCQkJCQkJCQkJCQkJc2l6 ZW9mKFByZXZWYWx1ZSkpOworCQl9CisJCVBHX0NBVENIKCk7CisJCXsKKwkJCS8qIHJlbGVhc2Ug bWVtIGZyb20gcGVyc2lzdGVudCBjb250ZW50ICovCisJCQlpZiAobmV3dmFsICE9IHZhbHVlKQor CQkJCXBmcmVlKERhdHVtR2V0UG9pbnRlcihuZXd2YWwpKTsKKwkJCVBHX1JFX1RIUk9XKCk7CisJ CX0KKwkJUEdfRU5EX1RSWSgpOworCisJCW5ld19wcmV2X3ZhbHVlLT52YWx1ZSA9IHN2YXItPnZh bHVlOworCQluZXdfcHJldl92YWx1ZS0+aXNudWxsID0gc3Zhci0+aXNudWxsOworCQluZXdfcHJl dl92YWx1ZS0+bW9kaWZ5X3N1YmlkID0gc3Zhci0+bW9kaWZ5X3N1YmlkOworCQluZXdfcHJldl92 YWx1ZS0+cHJldl92YWx1ZSA9IHByZXZfdmFsdWU7CisKKwkJcHJldl92YWx1ZSA9IChQcmV2VmFs dWUgKikgbmV3X3ByZXZfdmFsdWU7CisJCXByZXZfcHVyZ2Vfc3ViaWQgPSBzdmFyLT5wdXJnZV9z dWJpZDsKKworCQloYXNfbW9kaWZpZWRfdHJhbnNhY3Rpb25hbF92YXJpYWJsZXMgPSB0cnVlOwor CisJfQorCWVsc2UKKwkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIsIHByZXZfdmFs dWUgPT0gTlVMTCk7CiAKIAkvKiBXZSBjYW4gb3ZlcndyaXRlIG9sZCB2YXJpYWJsZSBub3cuIE5v IGVycm9yIGV4cGVjdGVkICovCiAJaWYgKHN2YXIgIT0gX3N2YXIpCkBAIC03NTUsNiArMTAyMyw5 IEBAIHNldF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9v bCBpc251bGwpCiAKIAlzdmFyLT52YWx1ZSA9IG5ld3ZhbDsKIAlzdmFyLT5pc251bGwgPSBpc251 bGw7CisJc3Zhci0+bW9kaWZ5X3N1YmlkID0gY3VycmVudF9zdWJpZDsKKwlzdmFyLT5wdXJnZV9z dWJpZCA9IHByZXZfcHVyZ2Vfc3ViaWQ7CisJc3Zhci0+cHJldl92YWx1ZSA9IHByZXZfdmFsdWU7 CiAKIAkvKiBkb24ndCBhbGxvdyBtb3JlIGNoYW5nZXMgb2YgdmFsdWUgd2hlbiB2YXJpYWJsZSBp cyBJTU1VVEFCTEUgKi8KIAlpZiAoc3Zhci0+aXNfaW1tdXRhYmxlKQpAQCAtODcwLDYgKzExNDEs OCBAQCBnZXRfc2Vzc2lvbl92YXJpYWJsZShPaWQgdmFyaWQpCiAJZWxzZQogCQlzdmFyLT5pc192 YWxpZCA9IGZhbHNlOwogCityZWluaXQ6CisKIAkvKgogCSAqIEZvcmNlIHNldHVwIGZvciBub3Qg eWV0IGluaXRpYWxpemVkIHZhcmlhYmxlcyBvciB2YXJpYWJsZXMgdGhhdCBjYW5ub3QKIAkgKiBi ZSB2YWxpZGF0ZWQuCkBAIC05MDIsNiArMTE3NSwyOCBAQCBnZXRfc2Vzc2lvbl92YXJpYWJsZShP aWQgdmFyaWQpCiAJCQkgdmFyaWQpOwogCX0KIAorCS8qCisJICogVHJhbnNhY3Rpb25hbCB2YXJp YWJsZXMgc2hvdWxkIGJlIHB1cmdlZCBiZWZvcmUgKHJlbW92ZQorCSAqIHZlcnNpb25zIGNyZWF0 ZWQgYnkgcG9zc2libHkgcmV2ZXJ0ZWQgc3VidHJhbnNhY3Rpb25zKS4KKwkgKi8KKwlpZiAoc3Zh ci0+aXNfdHJhbnNhY3QgJiYKKwkJc3Zhci0+bW9kaWZ5X3N1YmlkICE9IEdldEN1cnJlbnRTdWJU cmFuc2FjdGlvbklkKCkgJiYKKwkJc3Zhci0+bW9kaWZ5X3N1YmlkICE9IEludmFsaWRTdWJUcmFu c2FjdGlvbklkKQorCXsKKwkJaWYgKCFwdXJnZV9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIpKQorCQl7 CisJCQkvKiBmb3JjZSByZWluaXQgKi8KKwkJCXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisKKwkJ CS8qCisJCQkgKiBJbiBuZXh0IGl0ZXJhdGlvbiBtb2RpZnlfc3ViaWQgc2hvdWxkIGJlCisJCQkg KiBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZCBvciBjdXJyZW50IHN1YmlkLAorCQkJICogc28gdGhl cmUgaXMgbm90IHJpc2sgb2YgaW5maW5pdHkgY3ljbGUuCisJCQkgKi8KKwkJCWdvdG8gcmVpbml0 OworCQl9CisJfQorCiAJLyogRW5zdXJlIHNvIHJldHVybmVkIGRhdGEgaXMgc3RpbGwgY29ycmVj dCBkb21haW4gKi8KIAlpZiAoc3Zhci0+aXNfZG9tYWluKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDNi YmM1OWVjYTJlLi41NWMyMDFhZWEyMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC02ODMsNyArNjgzLDcgQEAg c3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3Qg KmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQlqc29uX29iamVjdF9jb25zdHJ1Y3Rvcl9udWxs X2NsYXVzZV9vcHQKIAkJCQlqc29uX2FycmF5X2NvbnN0cnVjdG9yX251bGxfY2xhdXNlX29wdAog Ci0ldHlwZSA8Ym9vbGVhbj4JCU9wdE5vdE51bGwgT3B0SW1tdXRhYmxlCisldHlwZSA8Ym9vbGVh bj4JCU9wdE5vdE51bGwgT3B0SW1tdXRhYmxlIE9wdFRyYW5zYWN0aW9uYWwKIAogLyoKICAqIE5v bi1rZXl3b3JkIHRva2VuIHR5cGVzLiAgVGhlc2UgYXJlIGhhcmQtd2lyZWQgaW50byB0aGUgImZs ZXgiIGxleGVyLgpAQCAtNzg4LDcgKzc4OCw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZl Vmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJ U1VCU0NSSVBUSU9OIFNVQlNUUklORyBTVVBQT1JUIFNZTU1FVFJJQyBTWVNJRCBTWVNURU1fUCBT WVNURU1fVVNFUgogCiAJVEFCTEUgVEFCTEVTIFRBQkxFU0FNUExFIFRBQkxFU1BBQ0UgVEFSR0VU IFRFTVAgVEVNUExBVEUgVEVNUE9SQVJZIFRFWFRfUCBUSEVOCi0JVElFUyBUSU1FIFRJTUVTVEFN UCBUTyBUUkFJTElORyBUUkFOU0FDVElPTiBUUkFOU0ZPUk0KKwlUSUVTIFRJTUUgVElNRVNUQU1Q IFRPIFRSQUlMSU5HIFRSQU5TQUNUSU9OIFRSQU5TQUNUSU9OQUwgVFJBTlNGT1JNCiAJVFJFQVQg VFJJR0dFUiBUUklNIFRSVUVfUAogCVRSVU5DQVRFIFRSVVNURUQgVFlQRV9QIFRZUEVTX1AKIApA QCAtNTIzMiwzMSArNTIzMiwzMyBAQCBjcmVhdGVfZXh0ZW5zaW9uX29wdF9pdGVtOgogICoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLwogCiBDcmVhdGVTZXNzaW9uVmFyU3RtdDoKLQkJCUNSRUFURSBPcHRU ZW1wIE9wdEltbXV0YWJsZSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUg b3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVu ZEFjdGlvbk9wdGlvbgorCQkJQ1JFQVRFIE9wdFRlbXAgT3B0VHJhbnNhY3Rpb25hbCBPcHRJbW11 dGFibGUgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRl X2NsYXVzZSBPcHROb3ROdWxsIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRp b24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRl U2Vzc2lvblZhclN0bXQpOwotCQkJCQkkNS0+cmVscGVyc2lzdGVuY2UgPSAkMjsKLQkJCQkJbi0+ aXNfaW1tdXRhYmxlID0gJDM7Ci0JCQkJCW4tPnZhcmlhYmxlID0gJDU7Ci0JCQkJCW4tPnR5cGVO YW1lID0gJDc7Ci0JCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkODsKLQkJ CQkJbi0+bm90X251bGwgPSAkOTsKLQkJCQkJbi0+ZGVmZXhwciA9ICQxMDsKLQkJCQkJbi0+WGFj dEVuZEFjdGlvbiA9ICQxMTsKKwkJCQkJJDYtPnJlbHBlcnNpc3RlbmNlID0gJDI7CisJCQkJCW4t PmlzX2ltbXV0YWJsZSA9ICQ0OworCQkJCQluLT5pc190cmFuc2FjdCA9ICQzOworCQkJCQluLT52 YXJpYWJsZSA9ICQ2OworCQkJCQluLT50eXBlTmFtZSA9ICQ4OworCQkJCQluLT5jb2xsQ2xhdXNl ID0gKENvbGxhdGVDbGF1c2UgKikgJDk7CisJCQkJCW4tPm5vdF9udWxsID0gJDEwOworCQkJCQlu LT5kZWZleHByID0gJDExOworCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDEyOwogCQkJCQluLT5p Zl9ub3RfZXhpc3RzID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9Ci0JCQl8 IENSRUFURSBPcHRUZW1wIE9wdEltbXV0YWJsZSBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVh bGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHROb3ROdWxs IE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KKwkJCXwgQ1JFQVRFIE9w dFRlbXAgT3B0VHJhbnNhY3Rpb25hbCBPcHRJbW11dGFibGUgVkFSSUFCTEUgSUZfUCBOT1QgRVhJ U1RTIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0 Tm90TnVsbCBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCiAJCQkJewog CQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJT dG10KTsKLQkJCQkJJDgtPnJlbHBlcnNpc3RlbmNlID0gJDI7Ci0JCQkJCW4tPmlzX2ltbXV0YWJs ZSA9ICQzOwotCQkJCQluLT52YXJpYWJsZSA9ICQ4OwotCQkJCQluLT50eXBlTmFtZSA9ICQxMDsK LQkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMTsKLQkJCQkJbi0+bm90 X251bGwgPSAkMTI7Ci0JCQkJCW4tPmRlZmV4cHIgPSAkMTM7Ci0JCQkJCW4tPlhhY3RFbmRBY3Rp b24gPSAkMTQ7CisJCQkJCSQ5LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOworCQkJCQluLT5pc19pbW11 dGFibGUgPSAkNDsKKwkJCQkJbi0+aXNfdHJhbnNhY3QgPSAkMzsKKwkJCQkJbi0+dmFyaWFibGUg PSAkOTsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkMTE7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29s bGF0ZUNsYXVzZSAqKSAkMTI7CisJCQkJCW4tPm5vdF9udWxsID0gJDEzOworCQkJCQluLT5kZWZl eHByID0gJDE0OworCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDE1OwogCQkJCQluLT5pZl9ub3Rf ZXhpc3RzID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KQEAgLTUyODQsNiAr NTI4NiwxMiBAQCBPcHRJbW11dGFibGU6IElNTVVUQUJMRQkJCQkJCQkJeyAkJCA9IHRydWU7IH0K IAkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9IGZhbHNlOyB9CiAJCTsKIAorT3B0VHJhbnNh Y3Rpb25hbDoKKwkJCVRSQU5TQUNUSU9OCQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCBUUkFO U0FDVElPTkFMCQkJCQkJCXsgJCQgPSB0cnVlOyB9CisJCQl8IC8qIEVNUFRZICovCQkJCQkJCXsg JCQgPSBmYWxzZTsgfQorCQk7CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqIEFMVEVS IEVYVEVOU0lPTiBuYW1lIFVQREFURSBbIFRPIHZlcnNpb24gXQpAQCAtMTgwNDUsNiArMTgwNTMs NyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IFRFWFRfUAogCQkJfCBUSUVTCiAJCQl8IFRS QU5TQUNUSU9OCisJCQl8IFRSQU5TQUNUSU9OQUwKIAkJCXwgVFJBTlNGT1JNCiAJCQl8IFRSSUdH RVIKIAkJCXwgVFJVTkNBVEUKQEAgLTE4Njk1LDYgKzE4NzA0LDcgQEAgYmFyZV9sYWJlbF9rZXl3 b3JkOgogCQkJfCBUSU1FU1RBTVAKIAkJCXwgVFJBSUxJTkcKIAkJCXwgVFJBTlNBQ1RJT04KKwkJ CXwgVFJBTlNBQ1RJT05BTAogCQkJfCBUUkFOU0ZPUk0KIAkJCXwgVFJFQVQKIAkJCXwgVFJJR0dF UgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMKaW5kZXggNDljMzNlNTJkZWYuLjI0NzUzZDU5MjFkIDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMK QEAgLTUzMzYsNiArNTMzNiw3IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCWludAkJ CWlfdmFyY29sbGF0aW9uOwogCWludAkJCWlfdmFybm90bnVsbDsKIAlpbnQJCQlpX3ZhcmlzaW1t dXRhYmxlOworCWludAkJCWlfdmFyaXN0cmFuc2FjdDsKIAlpbnQJCQlpX3ZhcmFjbDsKIAlpbnQJ CQlpX2FjbGRlZmF1bHQ7CiAJaW50CQkJaSwKQEAgLTUzNTksNiArNTM2MCw3IEBAIGdldFZhcmlh YmxlcyhBcmNoaXZlICpmb3V0KQogCQkJCQkgICJUSEVOIHYudmFyY29sbGF0aW9uIEVMU0UgMCBF TkQgQVMgdmFyY29sbGF0aW9uLFxuIgogCQkJCQkgICJ2LnZhcm5vdG51bGwsXG4iCiAJCQkJCSAg InYudmFyaXNpbW11dGFibGUsXG4iCisJCQkJCSAgInYudmFyaXN0cmFuc2FjdCxcbiIKIAkJCQkJ ICAicGdfY2F0YWxvZy5wZ19nZXRfZXhwcih2LnZhcmRlZmV4cHIsMCkgYXMgdmFyZGVmZXhwcixc biIKIAkJCQkJICAidi52YXJvd25lcixcbiIKIAkJCQkJICAidi52YXJhY2wsXG4iCkBAIC01Mzgy LDYgKzUzODQsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlpX3ZhcmNvbGxhdGlv biA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24iKTsKIAlpX3Zhcm5vdG51bGwgPSBQUWZu dW1iZXIocmVzLCAidmFybm90bnVsbCIpOwogCWlfdmFyaXNpbW11dGFibGUgPSBQUWZudW1iZXIo cmVzLCAidmFyaXNpbW11dGFibGUiKTsKKwlpX3ZhcmlzdHJhbnNhY3QgPSBQUWZudW1iZXIocmVz LCAidmFyaXN0cmFuc2FjdCIpOwogCiAJaV92YXJvd25lciA9IFBRZm51bWJlcihyZXMsICJ2YXJv d25lciIpOwogCWlfdmFyYWNsID0gUFFmbnVtYmVyKHJlcywgInZhcmFjbCIpOwpAQCAtNTQxMCw2 ICs1NDEzLDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJCXZhcmluZm9baV0udmFy Y29sbGF0aW9uID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmNvbGxhdGlvbikpOwog CQl2YXJpbmZvW2ldLnZhcm5vdG51bGwgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm5vdG51 bGwpKSA9PSAndCc7CiAJCXZhcmluZm9baV0udmFyaXNpbW11dGFibGUgPSAqKFBRZ2V0dmFsdWUo cmVzLCBpLCBpX3ZhcmlzaW1tdXRhYmxlKSkgPT0gJ3QnOworCQl2YXJpbmZvW2ldLnZhcmlzdHJh bnNhY3QgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmlzdHJhbnNhY3QpKSA9PSAndCc7CiAK IAkJdmFyaW5mb1tpXS5kYWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92 YXJhY2wpKTsKIAkJdmFyaW5mb1tpXS5kYWNsLmFjbGRlZmF1bHQgPSBwZ19zdHJkdXAoUFFnZXR2 YWx1ZShyZXMsIGksIGlfYWNsZGVmYXVsdCkpOwpAQCAtNTQ2MCw2ICs1NDY0LDcgQEAgZHVtcFZh cmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAljb25z dCBjaGFyICp2YXJkZWZleHByOwogCWNvbnN0IGNoYXIgKnZhcnhhY3RlbmRhY3Rpb247CiAJY29u c3QgY2hhciAqdmFyaXNpbW11dGFibGU7CisJY29uc3QgY2hhciAqdmFyaXN0cmFuc2FjdDsKIAlP aWQJCQl2YXJjb2xsYXRpb247CiAJYm9vbAkJdmFybm90bnVsbDsKIApAQCAtNTQ3NywxMiArNTQ4 MiwxMyBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2 YXJpbmZvKQogCXZhcmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKIAl2YXJub3Ru dWxsID0gdmFyaW5mby0+dmFybm90bnVsbDsKIAl2YXJpc2ltbXV0YWJsZSA9IHZhcmluZm8tPnZh cmlzaW1tdXRhYmxlID8gIklNTVVUQUJMRSAiIDogIiI7CisJdmFyaXN0cmFuc2FjdCA9IHZhcmlu Zm8tPnZhcmlzdHJhbnNhY3QgPyAiVFJBTlNBQ1RJT05BTCAiIDogIiI7CiAKIAlhcHBlbmRQUUV4 cEJ1ZmZlcihkZWxxLCAiRFJPUCBWQVJJQUJMRSAlcztcbiIsCiAJCQkJCSAgcXVhbHZhcm5hbWUp OwogCi0JYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgJXNWQVJJQUJMRSAlcyBBUyAl cyIsCi0JCQkJCSAgdmFyaXNpbW11dGFibGUsIHF1YWx2YXJuYW1lLCB2YXJ0eXBuYW1lKTsKKwlh cHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSAlcyVzVkFSSUFCTEUgJXMgQVMgJXMiLAor CQkJCQkgIHZhcmlzdHJhbnNhY3QsIHZhcmlzaW1tdXRhYmxlLCBxdWFsdmFybmFtZSwgdmFydHlw bmFtZSk7CiAKIAlpZiAoT2lkSXNWYWxpZCh2YXJjb2xsYXRpb24pKQogCXsKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmlu ZGV4IGNiYjA2YjY2Zjc0Li4yMmJjYWNlMzMwZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC03MTIsNiArNzEy LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1ZhcmlhYmxlSW5mbwogCWNvbnN0IGNoYXIgKnJvbG5hbWU7 CQkvKiBuYW1lIG9mIG93bmVyLCBvciBlbXB0eSBzdHJpbmcgKi8KIAlib29sCQl2YXJub3RudWxs OwogCWJvb2wJCXZhcmlzaW1tdXRhYmxlOworCWJvb2wJCXZhcmlzdHJhbnNhY3Q7CiB9IFZhcmlh YmxlSW5mbzsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1w LnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggYTA3MDdjN2RiMTYu LjQ2ZGMwMjNmOTA5IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5w bAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtNDAzMSw2ICs0MDMx LDQyIEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJJ0NSRUFURSBUUkFOU0FDVElPTkFM IFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNh dGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2 MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgVFJBTlNBQ1RJT05BTCBWQVJJQUJMRSBkdW1w X3Rlc3QudmFyaWFibGU4IEFTIGludGVnZXInLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVB VEUgVFJBTlNBQ1RJT05BTCBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU4IEFTIGludGVnZXI7 XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1h X3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJ CQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVu dCAgICA9PiAxLAorCQl9LAorCX0sCisKKwknQ1JFQVRFIFRSQU5TQUNUSU9OQUwgSU1NVVRBQkxF IFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNh dGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2 MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgVFJBTlNBQ1RJT05BTCBJTU1VVEFCTEUgVkFS SUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlOSBBUyBpbnRlZ2VyJywKKwkJcmVnZXhwID0+IHFyL14K KwkJCVxRQ1JFQVRFIFRSQU5TQUNUSU9OQUwgSU1NVVRBQkxFIFZBUklBQkxFIGR1bXBfdGVzdC52 YXJpYWJsZTkgQVMgaW50ZWdlcjtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAor CQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJ fSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJ b25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDUkVBVEUgVklF VyB0ZXN0X3ZpZXcnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDYxLAogCQljcmVhdGVfc3FsID0+ ICdDUkVBVEUgVklFVyBkdW1wX3Rlc3QudGVzdF92aWV3CmRpZmYgLS1naXQgYS9zcmMvYmluL3Bz cWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDE1Y2E3Nzc5OTZh Li5jZTA3NGEwMGI4YiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTUxNTksNyArNTE1OSw3IEBAIGxpc3RWYXJpYWJs ZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCVBRRXhwQnVmZmVyRGF0YSBi dWY7CiAJUEdyZXN1bHQgICAqcmVzOwogCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7 Ci0Jc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZX07CiAKIAlpZiAocHNldC5zdmVyc2lvbiA8IDE4MDAwMCkKIAl7 CkBAIC01MTgyLDYgKzUxODIsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4s IGJvb2wgdmVyYm9zZSkKIAkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZCh2LnZh cm93bmVyKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgTk9UIHYudmFybm90bnVsbCBhcyBcIiVz XCIsXG4iCiAJCQkJCSAgIiAgTk9UIHYudmFyaXNpbW11dGFibGUgYXMgXCIlc1wiLFxuIgorCQkJ CQkgICIgIHYudmFyaXN0cmFuc2FjdCBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxv Zy5wZ19nZXRfZXhwcih2LnZhcmRlZmV4cHIsIDApIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBD QVNFIHYudmFyeGFjdGVuZGFjdGlvblxuIgogCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04g Q09NTUlUIERST1AnXG4iCkBAIC01MTk0LDYgKzUxOTUsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0 IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVy IiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJOdWxsYWJsZSIpLAogCQkJCQkgIGdldHRleHRfbm9v cCgiTXV0YWJsZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiVHJhbnNhY3Rpb25hbCIpLAogCQkJ CQkgIGdldHRleHRfbm9vcCgiRGVmYXVsdCIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHJhbnNh Y3Rpb25hbCBlbmQgYWN0aW9uIikpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKaW5kZXggOGRkOWNjY2IxYWYu LmI1MzFkY2U5Yjk0IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysr IGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0xMjg0LDYgKzEyODQsOCBAQCBzdGF0 aWMgY29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRlcl9jcmVhdGVbXSA9IHsKIAkJCQkJCQkJ CQkJCQkJCQkJCQkgKiBUQUJMRSAuLi4gKi8KIAl7IlRFWFQgU0VBUkNIIiwgTlVMTCwgTlVMTCwg TlVMTH0sCiAJeyJUUkFOU0ZPUk0iLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBUSElOR19OT19B TFRFUn0sCisJeyJUUkFOU0FDVElPTkFMIiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgVEhJTkdf Tk9fRFJPUCB8IFRISU5HX05PX0FMVEVSfSwgLyogZm9yIENSRUFURSBUUkFOU0FDVElPTkFMCisJ CQkJCQkJCQkJCQkJCQkJCQkJCSogVkFSSUFCTEUgLi4uICovCiAJeyJUUklHR0VSIiwgIlNFTEVD VCB0Z25hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX3RyaWdnZXIgV0hFUkUgdGduYW1lIExJS0UgJyVz JyBBTkQgTk9UIHRnaXNpbnRlcm5hbCJ9LAogCXsiVFlQRSIsIE5VTEwsIE5VTEwsICZRdWVyeV9m b3JfbGlzdF9vZl9kYXRhdHlwZXN9LAogCXsiVU5JUVVFIiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVM TCwgVEhJTkdfTk9fRFJPUCB8IFRISU5HX05PX0FMVEVSfSwgLyogZm9yIENSRUFURSBVTklRVUUK QEAgLTM2MDEsOCArMzYwMywxMSBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwg aW50IHN0YXJ0LCBpbnQgZW5kKQogCX0KIC8qIENSRUFURSBWQVJJQUJMRSAtLS0gaXMgYWxsb3dl ZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxNYXRjaGVzICovCiAJLyogQ29tcGxl dGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTICovCisJZWxzZSBpZiAoTWF0Y2hlcygi Q1JFQVRFIiwgIlRSQU5TQUNUSU9OfFRSQU5TQUNUSU9OQUwiKSkKKwkJQ09NUExFVEVfV0lUSCgi SU1NVVRBQkxFIiwgIlZBUklBQkxFIik7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIs ICJWQVJJQUJMRSIsIE1hdGNoQW55KSB8fAogCQkJIFRhaWxNYXRjaGVzKCJURU1QfFRFTVBPUkFS WSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSB8fAorCQkJIFRhaWxNYXRjaGVzKCJUUkFOU0FDVElP TnxUUkFOU0FDVElPTkFMIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8CiAJCQkgVGFpbE1hdGNo ZXMoIklNTVVUQUJMRSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgi QVMiKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiVkFSSUFCTEUiLCBNYXRjaEFueSwgIkFTIikp CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggYWQxN2I3OGQ2YTguLjMxZTAyMTEzZTlk IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKKysrIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCkBAIC02MCw2ICs2MCw5IEBAIENBVEFMT0co cGdfdmFyaWFibGUsOTIyMixWYXJpYWJsZVJlbGF0aW9uSWQpCiAJLyogZG9uJ3QgYWxsb3cgY2hh bmdlcyAqLwogCWJvb2wJCXZhcmlzaW1tdXRhYmxlIEJLSV9ERUZBVUxUKGYpOwogCisJLyogc3Vw cG9ydHMgdHJhbnNhY3Rpb25zICovCisJYm9vbAkJdmFyaXN0cmFuc2FjdCBCS0lfREVGQVVMVChm KTsKKwogCS8qIGFjdGlvbiBvbiB0cmFuc2FjdGlvbiBlbmQgKi8KIAljaGFyCQl2YXJ4YWN0ZW5k YWN0aW9uIEJLSV9ERUZBVUxUKG4pOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggMGNjNTYw ZDUzOGYuLjFmOTgxYmE4Yzg1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0zNDU5LDYgKzM0 NTksNyBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVTZXNzaW9uVmFyU3RtdAogCWJvb2wJCWlmX25v dF9leGlzdHM7CS8qIGRvIG5vdGhpbmcgaWYgaXQgYWxyZWFkeSBleGlzdHMgKi8KIAlib29sCQlu b3RfbnVsbDsJCS8qIGRpc2FsbG93IG51bGxzICovCiAJYm9vbAkJaXNfaW1tdXRhYmxlOwkvKiBk b24ndCBhbGxvdyBjaGFuZ2VzICovCisJYm9vbAkJaXNfdHJhbnNhY3Q7CS8qIHN1cHBvcnRzIHRy YW5zYWN0aW9ucyAqLwogCU5vZGUJICAgKmRlZmV4cHI7CQkvKiBkZWZhdWx0IGV4cHJlc3Npb24g Ki8KIAljaGFyCQlYYWN0RW5kQWN0aW9uOwkvKiBvbiB0cmFuc2FjdGlvbiBlbmQgYWN0aW9uICov CiB9IENyZWF0ZVNlc3Npb25WYXJTdG10OwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2Vy L2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4IDJlODhkN2Q5NTA4 Li43NTNjZjM2MGRiNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisr KyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApAQCAtNDU3LDYgKzQ1Nyw3IEBAIFBHX0tF WVdPUkQoInRpbWVzdGFtcCIsIFRJTUVTVEFNUCwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoInRvIiwgVE8sIFJFU0VSVkVEX0tFWVdPUkQsIEFTX0xBQkVMKQogUEdf S0VZV09SRCgidHJhaWxpbmciLCBUUkFJTElORywgUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoInRyYW5zYWN0aW9uIiwgVFJBTlNBQ1RJT04sIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInRyYW5zYWN0aW9uYWwiLCBUUkFOU0FDVElP TkFMLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ0cmFuc2Zv cm0iLCBUUkFOU0ZPUk0sIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdP UkQoInRyZWF0IiwgVFJFQVQsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlX T1JEKCJ0cmlnZ2VyIiwgVFJJR0dFUiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXggNDUxZmRkZTMxY2UuLjc1ZjE3M2QyMzMz IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTU4MzMsMjAgKzU4MzMsMjAgQEAg Q1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUg IkMiOwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hl bWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVy ICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwg ZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLSst LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZhcjEg fCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIg fCB0ICAgICAgICB8IHQgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg dmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9u IHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0 aW9uYWwgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNjZXNzIHByaXZp bGVnZXMgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0 ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAg ICB8IHQgICAgICAgfCBmICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIEdSQU5UIFNFTEVDVCBP TiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKIENPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAn c29tZSBkZXNjcmlwdGlvbic7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAg ICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBOdWxsYWJsZSB8IE11 dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAg ICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAK LS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNoYXJhY3Rl ciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8IHQgICAgICAg IHwgdCAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNz X3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0 aW9uCi0gICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyICAgICAgICAg ICAgICAgICAgICAgICAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAg IHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxhYmxlIHwgTXV0YWJs ZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwg ICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgICBEZXNj cmlwdGlvbiAgICAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jl c3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCBmICAgICAgICAgICAgIHwg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KKyAgICAgICAg fCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyICAgICAg ICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogRFJPUCBWQVJJQUJMRSB2YXIxOwpAQCAt NjMxNCw5ICs2MzE0LDkgQEAgTGlzdCBvZiBzY2hlbWFzCiAoMCByb3dzKQogCiBcZFYgIm5vLnN1 Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25l ciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rp b24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJs ZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgTnVsbGFibGUg fCBNdXRhYmxlIHwgVHJhbnNhY3Rpb25hbCB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBh Y3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEg cXVhbGlmaWNhdGlvbnMuCkBAIC02NDg5LDkgKzY0ODksOSBAQCBpbXByb3BlciBxdWFsaWZpZWQg bmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5p bnN0YQogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIGltcHJv cGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBcZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVy IHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlv biAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxl cworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8 IE11dGFibGUgfCBUcmFuc2FjdGlvbmFsIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFj dGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFz ZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY2MjgsOSArNjYyOCw5IEBA IExpc3Qgb2YgdGV4dCBzZWFyY2ggdGVtcGxhdGVzCiAoMCByb3dzKQogCiBcZFYgcmVncmVzc2lv bi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUg fCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0 IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xs YXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZh dWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWlu LCBidXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlv bnMuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CmluZGV4IGMwYzhlNDViN2UzLi44MDYxY2U2YmFkOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTQ1LDExICs0NSwxMSBAQCBTRVQg Uk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0 LnZhcjEgQVMgaW50OwogU0VUIFJPTEUgVE8gREVGQVVMVDsKIFxkVisgc3ZhcnRlc3QudmFyMQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gIFNjaGVtYSAg fCBOYW1lIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBO dWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwg ICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgRGVzY3Jp cHRpb24gCi0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gc3ZhcnRlc3QgfCB2YXIxIHwgaW50ZWdlciB8ICAg ICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25l cj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgCi0gICAgICAgICAgfCAgICAgIHwgICAgICAg ICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAg ICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJs ZV9yZWFkZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworICBTY2hlbWEgIHwgTmFtZSB8ICBU eXBlICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFibGUgfCBN dXRhYmxlIHwgVHJhbnNhY3Rpb25hbCB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rp b24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCBE ZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgc3ZhcnRlc3Qg fCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0 ICAgICAgICB8IHQgICAgICAgfCBmICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJs ZV9vd25lcit8IAorICAgICAgICAgIHwgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICB8 ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX3Jl YWRlcj1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAKICgxIHJvdykKIAogRFJPUCBWQVJJQUJM RSBzdmFydGVzdC52YXIxOwpAQCAtMTczNSwzICsxNzM1LDEwMyBAQCBTRUxFQ1QgdmFyMTsKIExF VCB2YXIxID0gMzA7CiBFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBk ZWNsYXJlZCBJTU1VVEFCTEUKIERST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHRlc3QgdHJhbnNhY3Rp b25hbCB2YXJpYWJsZXMKK0NSRUFURSBUUkFOU0FDVElPTiBWQVJJQUJMRSB0diBBUyBpbnQgREVG QVVMVCAwOworQkVHSU47CisgIExFVCB0diA9IDEwMDsKKyAgU0VMRUNUIHR2OworIHR2ICAKKy0t LS0tCisgMTAwCisoMSByb3cpCisKK1JPTExCQUNLOworU0VMRUNUIHR2OworIHR2IAorLS0tLQor ICAwCisoMSByb3cpCisKK0xFVCB0diA9IDEwMDsKK0JFR0lOOworICBMRVQgdHYgPSAxMDAwOwor Q09NTUlUOworU0VMRUNUIHR2OworICB0diAgCistLS0tLS0KKyAxMDAwCisoMSByb3cpCisKK0JF R0lOOworICBMRVQgdHYgPSAwOworICBTRUxFQ1QgdHY7CisgdHYgCistLS0tCisgIDAKKygxIHJv dykKKworUk9MTEJBQ0s7CitTRUxFQ1QgdHY7CisgIHR2ICAKKy0tLS0tLQorIDEwMDAKKygxIHJv dykKKworLS0gdGVzdCBzdWJ0cmFuc2FjdGlvbnMKK0JFR0lOOworICBMRVQgdHYgPSAxOworU0FW RVBPSU5UIHgxOworICBMRVQgdHYgPSAyOworU0FWRVBPSU5UIHgyOworICBMRVQgdHYgPSAzOwor Uk9MTEJBQ0sgVE8geDI7CisgIFNFTEVDVCB0djsKKyB0diAKKy0tLS0KKyAgMgorKDEgcm93KQor CisgIExFVCB0diA9IDEwOworUk9MTEJBQ0sgVE8geDE7CisgIFNFTEVDVCB0djsKKyB0diAKKy0t LS0KKyAgMQorKDEgcm93KQorCitST0xMQkFDSzsKK1NFTEVDVCB0djsKKyAgdHYgIAorLS0tLS0t CisgMTAwMAorKDEgcm93KQorCitCRUdJTjsKKyAgTEVUIHR2ID0gMTsKK1NBVkVQT0lOVCB4MTsK KyAgTEVUIHR2ID0gMjsKK1NBVkVQT0lOVCB4MjsKKyAgTEVUIHR2ID0gMzsKK1JPTExCQUNLIFRP IHgyOworICBTRUxFQ1QgdHY7CisgdHYgCistLS0tCisgIDIKKygxIHJvdykKKworICBMRVQgdHYg PSAxMDsKK1JPTExCQUNLIFRPIHgxOworICBTRUxFQ1QgdHY7CisgdHYgCistLS0tCisgIDEKKygx IHJvdykKKworQ09NTUlUOworU0VMRUNUIHR2OworIHR2IAorLS0tLQorICAxCisoMSByb3cpCisK K0RST1AgVkFSSUFCTEUgdHY7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNz aW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxl cy5zcWwKaW5kZXggNTk4MDAzNTdlNDQuLjI1NmY5YWMwYzZhIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xMTg4LDMgKzExODgsNjEgQEAgU0VMRUNU IHZhcjE7CiBMRVQgdmFyMSA9IDMwOwogCiBEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHRlc3Qg dHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMKK0NSRUFURSBUUkFOU0FDVElPTiBWQVJJQUJMRSB0diBB UyBpbnQgREVGQVVMVCAwOworCitCRUdJTjsKKyAgTEVUIHR2ID0gMTAwOworICBTRUxFQ1QgdHY7 CitST0xMQkFDSzsKKworU0VMRUNUIHR2OworCitMRVQgdHYgPSAxMDA7CitCRUdJTjsKKyAgTEVU IHR2ID0gMTAwMDsKK0NPTU1JVDsKKworU0VMRUNUIHR2OworCitCRUdJTjsKKyAgTEVUIHR2ID0g MDsKKyAgU0VMRUNUIHR2OworUk9MTEJBQ0s7CisKK1NFTEVDVCB0djsKKworLS0gdGVzdCBzdWJ0 cmFuc2FjdGlvbnMKKworQkVHSU47CisgIExFVCB0diA9IDE7CitTQVZFUE9JTlQgeDE7CisgIExF VCB0diA9IDI7CitTQVZFUE9JTlQgeDI7CisgIExFVCB0diA9IDM7CitST0xMQkFDSyBUTyB4MjsK KyAgU0VMRUNUIHR2OworICBMRVQgdHYgPSAxMDsKK1JPTExCQUNLIFRPIHgxOworICBTRUxFQ1Qg dHY7CitST0xMQkFDSzsKKworU0VMRUNUIHR2OworCitCRUdJTjsKKyAgTEVUIHR2ID0gMTsKK1NB VkVQT0lOVCB4MTsKKyAgTEVUIHR2ID0gMjsKK1NBVkVQT0lOVCB4MjsKKyAgTEVUIHR2ID0gMzsK K1JPTExCQUNLIFRPIHgyOworICBTRUxFQ1QgdHY7CisgIExFVCB0diA9IDEwOworUk9MTEJBQ0sg VE8geDE7CisgIFNFTEVDVCB0djsKK0NPTU1JVDsKKworU0VMRUNUIHR2OworCitEUk9QIFZBUklB QkxFIHR2OwotLSAKMi40NS4yCgo= --000000000000bfc92e061dffd1c5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240724-0020-pg_restore-A-variable.patch" Content-Disposition: attachment; filename="v20240724-0020-pg_restore-A-variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lyzzqe4e19 RnJvbSA5NGIwZmQwNDM4NDAyNWZmNWY1Y2ZjZjZjYTdhMmJkODFhOTAwMWI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBTdW4sIDIxIEp1bCAyMDI0IDE3OjA0OjQxICswMjAwClN1YmplY3Q6IFtQ QVRDSCAyMC8yMF0gcGdfcmVzdG9yZSAtQSwgLS12YXJpYWJsZQoKcG9zc2liaWxpdHkgdG8gcmVz dG9yZSBzZXNzaW9uIHZhcmlhYmxlIHNwZWNpZmllZCBieSBuYW1lCi0tLQogZG9jL3NyYy9zZ21s L3JlZi9wZ19yZXN0b3JlLnNnbWwgfCAxMSArKysrKysrKysrKwogc3JjL2Jpbi9wZ19kdW1wL3Bn X3Jlc3RvcmUuYyAgICAgfCAgOSArKysrKysrKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdf cmVzdG9yZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19yZXN0b3JlLnNnbWwKaW5kZXggMmUz YmE4MDI1ODEuLjk1MmY1MmIxZjlkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jl c3RvcmUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbApAQCAtMTA2 LDYgKzEwNiwxNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgIDwvbGlzdGl0ZW0+ CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVy bT48b3B0aW9uPi1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9uX3Zhcmlh YmxlPC9yZXBsYWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisgICAgICA8dGVybT48b3B0aW9uPi0t dmFyaWFibGU9PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNlc3Npb25fdmFyaWFibGU8 L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8 cGFyYT4KKyAgICAgICAgUmVzdG9yZSBhIG5hbWVkIHNlc3Npb24gdmFyaWFibGUgb25seS4gIE11 bHRpcGxlIHNlc3Npb24gdmFyaWFibGVzIG1heQorICAgICAgICBiZSBzcGVjaWZpZWQgd2l0aCBt dWx0aXBsZSA8b3B0aW9uPi1BPC9vcHRpb24+IHN3aXRjaGVzLgorICAgICAgIDwvcGFyYT4KKyAg ICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50 cnk+CiAgICAgICA8dGVybT48b3B0aW9uPi1jPC9vcHRpb24+PC90ZXJtPgogICAgICAgPHRlcm0+ PG9wdGlvbj4tLWNsZWFuPC9vcHRpb24+PC90ZXJtPgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19k dW1wL3BnX3Jlc3RvcmUuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKaW5kZXggZGYx MTk1OTFjY2EuLmE3YzNhZTliZmQxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfcmVz dG9yZS5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKQEAgLTEwNSw2ICsxMDUs NyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJeyJ0cmlnZ2VyIiwgMSwgTlVMTCwg J1QnfSwKIAkJeyJ1c2UtbGlzdCIsIDEsIE5VTEwsICdMJ30sCiAJCXsidXNlcm5hbWUiLCAxLCBO VUxMLCAnVSd9LAorCQl7InZhcmlhYmxlIiwgMSwgTlVMTCwgJ0EnfSwKIAkJeyJ2ZXJib3NlIiwg MCwgTlVMTCwgJ3YnfSwKIAkJeyJzaW5nbGUtdHJhbnNhY3Rpb24iLCAwLCBOVUxMLCAnMSd9LAog CkBAIC0xNTUsNyArMTU2LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCX0KIAl9 CiAKLQl3aGlsZSAoKGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiYWNDZDplZjpGOmg6STpq OmxMOm46TjpPcDpQOlJzUzp0OlQ6VTp2d1d4MSIsCisJd2hpbGUgKChjID0gZ2V0b3B0X2xvbmco YXJnYywgYXJndiwgIkE6YWNDZDplZjpGOmg6STpqOmxMOm46TjpPcDpQOlJzUzp0OlQ6VTp2d1d4 MSIsCiAJCQkJCQkJY21kb3B0cywgTlVMTCkpICE9IC0xKQogCXsKIAkJc3dpdGNoIChjKQpAQCAt MTYzLDYgKzE2NCwxMSBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJCWNhc2UgJ2En OgkJCS8qIER1bXAgZGF0YSBvbmx5ICovCiAJCQkJb3B0cy0+ZGF0YU9ubHkgPSAxOwogCQkJCWJy ZWFrOworCQkJY2FzZSAnQSc6CQkJLyogdkFyaWFibGUgKi8KKwkJCQlvcHRzLT5zZWxUeXBlcyA9 IDE7CisJCQkJb3B0cy0+c2VsVmFyaWFibGUgPSAxOworCQkJCXNpbXBsZV9zdHJpbmdfbGlzdF9h cHBlbmQoJm9wdHMtPnZhcmlhYmxlTmFtZXMsIG9wdGFyZyk7CisJCQkJYnJlYWs7CiAJCQljYXNl ICdjJzoJCQkvKiBjbGVhbiAoaS5lLiwgZHJvcCkgc2NoZW1hIHByaW9yIHRvIGNyZWF0ZSAqLwog CQkJCW9wdHMtPmRyb3BTY2hlbWEgPSAxOwogCQkJCWJyZWFrOwpAQCAtNDYzLDYgKzQ2OSw3IEBA IHVzYWdlKGNvbnN0IGNoYXIgKnByb2duYW1lKQogCiAJcHJpbnRmKF8oIlxuT3B0aW9ucyBjb250 cm9sbGluZyB0aGUgcmVzdG9yZTpcbiIpKTsKIAlwcmludGYoXygiICAtYSwgLS1kYXRhLW9ubHkg ICAgICAgICAgICAgIHJlc3RvcmUgb25seSB0aGUgZGF0YSwgbm8gc2NoZW1hXG4iKSk7CisJcHJp bnRmKF8oIiAgLUEsIC0tdmFyaWFibGU9TkFNRSAgICAgICAgICByZXN0b3JlIG5hbWVkIHNlc3Np b24gdmFyaWFibGVcbiIpKTsKIAlwcmludGYoXygiICAtYywgLS1jbGVhbiAgICAgICAgICAgICAg ICAgIGNsZWFuIChkcm9wKSBkYXRhYmFzZSBvYmplY3RzIGJlZm9yZSByZWNyZWF0aW5nXG4iKSk7 CiAJcHJpbnRmKF8oIiAgLUMsIC0tY3JlYXRlICAgICAgICAgICAgICAgICBjcmVhdGUgdGhlIHRh cmdldCBkYXRhYmFzZVxuIikpOwogCXByaW50ZihfKCIgIC1lLCAtLWV4aXQtb24tZXJyb3IgICAg ICAgICAgZXhpdCBvbiBlcnJvciwgZGVmYXVsdCBpcyB0byBjb250aW51ZVxuIikpOwotLSAKMi40 NS4yCgo= --000000000000bfc92e061dffd1c5--