Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d7lJg-00022r-OZ for pgadmin-hackers@arkaria.postgresql.org; Mon, 08 May 2017 16:15:21 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1d7lJg-0005q9-An for pgadmin-hackers@arkaria.postgresql.org; Mon, 08 May 2017 16:15:20 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1d7lJJ-0005LM-KX for pgadmin-hackers@postgresql.org; Mon, 08 May 2017 16:14:58 +0000 Received: from mail-io0-x230.google.com ([2607:f8b0:4001:c06::230]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1d7lJF-0006gr-7B for pgadmin-hackers@postgresql.org; Mon, 08 May 2017 16:14:56 +0000 Received: by mail-io0-x230.google.com with SMTP id f102so52717245ioi.2 for ; Mon, 08 May 2017 09:14:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pivotal-io.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=dyhV0AyzaPVRJfMCjnPOtc0Utt1M5jJj9kXU03YtptA=; b=ZgbSKf75sjRhFRjFswLg03xnYnkYkK5CVZmFtl0eMM9Zy7oICSfdUVx1zaMxQsVe3u Ef7gWrkm3MhqUOFf+Gn5FjCx3/zLltpj10Gim8naEiVaLJaMxRhMtiz8pcBHRcSpLP1R pEC9EREjwBR2r0nfC2/yk4dZJnMNZZVu+WiDa37sWC9fnIoLtTkUWd32QOtRM0WZvWAX BLEFdpbrtwl6F7Btsa38ztdVyVtkJqwuCXPUC4JdfCrUDVC4XMmi1Cky7CHu+u4N0SLT jjVO7+NzZZ41agLbm6WYT1t6360TEorgRZocCA42ubNvqIEJF8peNA+6aPnwGIDjdi3d lu5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=dyhV0AyzaPVRJfMCjnPOtc0Utt1M5jJj9kXU03YtptA=; b=qgE8KMW9ZViTD9QFdqX5MKXbO5IoaZYr6RzZWh6qHZBeyP9etYdJ4yJogu2STloH4O r2l8fB0J9mKivnL1X2m5EP9FyDZLNiVj6ht1xNO0rDuqOZRKBrZSTWgLbnE1g44wOxP2 6rr0ejmHWTyAIY3xuqeglRb+HxZbveLlzZ3Bhd5mxKXzN27tvUr5ceK5PjhCPh6q26sI 8QMVzARXauwh5ryEe0fvQyHGJn0PhyxDMGaGMw3Pr9gAJ2NyaIY8XN6oJjWpg0WQfLzV blCdK0ES7YK+tScOYsmWKnfVSGS6pQn/zYpGqZVJcUj63HMyVpUOhOyFmx46Xcgk5lvI aT8g== X-Gm-Message-State: AN3rC/7uUUUMFESSGrshDtjq9pTz/BqQgbSDCQofvXshzWiq+OMGPN3q FXPJv+E+xSkPeY49qqJSCUeTvwBYpop+ X-Received: by 10.107.185.10 with SMTP id j10mr30446044iof.3.1494260091652; Mon, 08 May 2017 09:14:51 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.58.138 with HTTP; Mon, 8 May 2017 09:14:30 -0700 (PDT) In-Reply-To: References: From: Sarah McAlear Date: Mon, 8 May 2017 12:14:30 -0400 Message-ID: Subject: Re: [patch] Dependents and Dependencies in GreenPlum To: Dave Page Cc: Akshay Joshi , Robert Eckhardt , Joao Pedro De Almeida Pereira , Ashesh Vashi , pgadmin-hackers , Matthew Kleiman Content-Type: multipart/mixed; boundary=94eb2c06f5c6f79fa4054f0589b5 X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --94eb2c06f5c6f79fa4054f0589b5 Content-Type: multipart/alternative; boundary=94eb2c06f5c6f79f9a054f0589b2 --94eb2c06f5c6f79f9a054f0589b2 Content-Type: text/plain; charset=UTF-8 Hi! This patch has the tests moved to the test directories of the parent. Thanks, Joao & Sarah On Mon, May 8, 2017 at 7:28 AM, Dave Page wrote: > Hi > > On Mon, May 8, 2017 at 12:24 PM, Akshay Joshi < > akshay.joshi@enterprisedb.com> wrote: > >> Hi All >> >> I have reviewed the code and have following questions: >> >> - Why do we have empty __init__.py file in sql and templates/ >> folder. In this patch we have couple of occurrences one of them is web/ >> pgadmin/browser/server_groups/servers/databases/schemas/table/templates/trigger >> and web/pgadmin/browser/server_groups/servers/databases/schemas >> /table/templates/trigger/sql >> >> That was already answered up-thread: We added the __init__.py files into > templates to convert them into packages so that the tests inside of them > can be found by the test runner. > >> >> - Why do we have tests folder inside sql folder as we already have >> tests folder in respective module. For example we have tests folder in >> *web/pgadmin/browser/server_groups/servers/databases/schemas/table/column *then >> why do we need it in >> *web/pgadmin/browser/server_groups/servers/databases/schemas/table/templates/column/sql/tests* >> >> That does seem like a valid concern to me. > > >> Apart from above code looks good to me. >> >> On Mon, May 8, 2017 at 2:20 PM, Akshay Joshi < >> akshay.joshi@enterprisedb.com> wrote: >> >>> >>> >>> On Mon, May 8, 2017 at 1:46 PM, Dave Page wrote: >>> >>>> Akshay, as Ashesh is unavailable today, can you please review/commit >>>> this ASAP? >>>> >>> >>> Sure. >>> >>>> >>>> Thanks. >>>> >>>> On Fri, May 5, 2017 at 1:18 PM, Dave Page wrote: >>>> >>>>> Can you get this polished off on Monday please Ashesh? >>>>> >>>>> On Thu, May 4, 2017 at 12:51 PM, Robert Eckhardt >>>> > wrote: >>>>> >>>>>> All, >>>>>> >>>>>> This change in the xss testing is preventing our CI from going green >>>>>> and is also preventing the Dependents and Dependencies tabs in Greenplum >>>>>> from being useful. >>>>>> >>>>>> Can we either merge this or provide feedback as to what needs to >>>>>> change so that it can be merged. >>>>>> >>>>>> Thank you >>>>>> Rob >>>>>> >>>>>> On Tue, May 2, 2017 at 5:17 PM, Sarah McAlear >>>>>> wrote: >>>>>> >>>>>>> Hi Hackers & Ashesh! >>>>>>> >>>>>>> Is there anything else we can do for this? >>>>>>> >>>>>>> Thanks! >>>>>>> Matt & Sarah >>>>>>> >>>>>>> On Thu, Apr 27, 2017 at 10:37 AM, Joao Pedro De Almeida Pereira < >>>>>>> jdealmeidapereira@pivotal.io> wrote: >>>>>>> >>>>>>>> Thanks for reviewing, Ashesh. >>>>>>>> >>>>>>>> We have updated the patch. The headers are all consistent and we >>>>>>>> removed the __init__.py files in directories containing only .sql. >>>>>>>> >>>>>>>> Thanks! >>>>>>>> Joao & Matt >>>>>>>> >>>>>>>> On Wed, Apr 26, 2017 at 11:22 AM, Joao Pedro De Almeida Pereira < >>>>>>>> jdealmeidapereira@pivotal.io> wrote: >>>>>>>> >>>>>>>>> Hello Ashesh, >>>>>>>>> >>>>>>>>> Thanks for reviewing the patch. >>>>>>>>> >>>>>>>>> We added the __init__.py files into templates to convert them into >>>>>>>>> packages so that the tests inside of them can be found by the test runner. >>>>>>>>> >>>>>>>>> Thanks! >>>>>>>>> Joao & Sarah >>>>>>>>> >>>>>>>>> On Wed, Apr 26, 2017 at 1:26 AM, Ashesh Vashi < >>>>>>>>> ashesh.vashi@enterprisedb.com> wrote: >>>>>>>>> >>>>>>>>>> On Mon, Apr 24, 2017 at 4:43 PM, Dave Page >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Ashesh, can you review/commit this please? >>>>>>>>>>> >>>>>>>>>>> On Fri, Apr 21, 2017 at 8:42 PM, Joao Pedro De Almeida Pereira < >>>>>>>>>>> jdealmeidapereira@pivotal.io> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi Hackers, >>>>>>>>>>>> >>>>>>>>>>>> We found out that when you are connected to a GreenPlum >>>>>>>>>>>> database and try to get Dependents and Dependencies of an object the >>>>>>>>>>>> application was returning a SQL error. >>>>>>>>>>>> >>>>>>>>>>>> This patch splits the SQL query used to retrieve the >>>>>>>>>>>> Dependents, Dependencies, and Roles SQL file into multiple versioned files. >>>>>>>>>>>> Add Unit Tests for each file. >>>>>>>>>>>> Also added __init__.py files to other test directories to run >>>>>>>>>>>> the tests in them. >>>>>>>>>>>> >>>>>>>>>>> Hi Joao & Sarah, >>>>>>>>>> >>>>>>>>>> Why do we need to add __init__.py in the template directory? >>>>>>>>>> I didn't understand the purpose of the adding __init__.py files >>>>>>>>>> in the template directories. >>>>>>>>>> >>>>>>>>>> NOTE: The headers in those files are not consistent with the >>>>>>>>>> other project files. >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> >>>>>>>>>> Thanks & Regards, >>>>>>>>>> >>>>>>>>>> Ashesh Vashi >>>>>>>>>> EnterpriseDB INDIA: Enterprise PostgreSQL Company >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> *http://www.linkedin.com/in/asheshvashi* >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> Add ORDER BY into Copy Selection Feature test to ensure the >>>>>>>>>>>> results are retrieved always in the same order >>>>>>>>>>>> Renamed the Scenario of the xss_checks_pgadmin_debugger_test >>>>>>>>>>>> and skip it for versions less than 9.1 >>>>>>>>>>>> >>>>>>>>>>>> Thanks >>>>>>>>>>>> >>>>>>>>>>>> Joao & Sarah >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> Sent via pgadmin-hackers mailing list ( >>>>>>>>>>>> pgadmin-hackers@postgresql.org) >>>>>>>>>>>> To make changes to your subscription: >>>>>>>>>>>> http://www.postgresql.org/mailpref/pgadmin-hackers >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Dave Page >>>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>>> Twitter: @pgsnake >>>>>>>>>>> >>>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Sent via pgadmin-hackers mailing list ( >>>>>>>> pgadmin-hackers@postgresql.org) >>>>>>>> To make changes to your subscription: >>>>>>>> http://www.postgresql.org/mailpref/pgadmin-hackers >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Dave Page >>>>> Blog: http://pgsnake.blogspot.com >>>>> Twitter: @pgsnake >>>>> >>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>> The Enterprise PostgreSQL Company >>>>> >>>> >>>> >>>> >>>> -- >>>> Dave Page >>>> Blog: http://pgsnake.blogspot.com >>>> Twitter: @pgsnake >>>> >>>> EnterpriseDB UK: http://www.enterprisedb.com >>>> The Enterprise PostgreSQL Company >>>> >>> >>> >>> >>> -- >>> *Akshay Joshi* >>> *Principal Software Engineer * >>> >>> >>> >>> *Phone: +91 20-3058-9517 <+91%2020%203058%209517>Mobile: +91 >>> 976-788-8246 <+91%2097678%2088246>* >>> >> >> >> >> -- >> *Akshay Joshi* >> *Principal Software Engineer * >> >> >> >> *Phone: +91 20-3058-9517 <+91%2020%203058%209517>Mobile: +91 976-788-8246 >> <+91%2097678%2088246>* >> > > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --94eb2c06f5c6f79f9a054f0589b2 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi!

This patch has the tests moved to t= he test directories of the parent.=C2=A0

Thanks,
Joao & Sarah

On Mon, May 8, 2017 at 7:28 AM, Dave Page <dpage@pgadm= in.org> wrote:
Hi

On Mon, May 8, 2017 at 12:24 PM, Akshay Joshi = <aksh= ay.joshi@enterprisedb.com> wrote:
Hi All

I have reviewed the code and have following questions:
  • W= hy do we have empty __init__.py file in sql and templates/<module&= gt; folder. In this patch we have couple of occurrences one of them is web/= pgadm= in/browser/server_groups/servers/databases/schemas/table= /templates/trigger and=C2=A0=C2=A0web/pgadmin/browser/server_= groups/servers/databases/schemas/table/templates/trigger/sql<= /li>
That was already answered up-= thread:=C2=A0We added the __init__.py file= s into templates to convert them into packages so that the tests inside of = them can be found by the test runner.
  • Why= do we have tests folder inside sql folder as we already have tests folde= r in respective module. For example we have tests folder in=C2=A0web/pgadmin<= /span>/browser/server_groups/servers/databases/schemas/table/co= lumn=C2=A0then why do we need it in=C2=A0web/pgadmin/browser/serve= r_groups/servers/databases/schemas/table/templates/column/sql= /tests
That does see= m like a valid concern to me.
=C2=A0
=
Apa= rt from above code looks good to me.

On Mon, May 8, 2017 at 2:= 20 PM, Akshay Joshi <akshay.joshi@enterprisedb.com>= ; wrote:


On Mon, May 8, 2017 at 1:46 PM, Dave Page <dpage@pgadmin.org> wrote:
Akshay, as Ashesh is unavailable today, can you please review/comm= it this ASAP?

=C2=A0 =C2=A0 Su= re.=C2=A0

Thanks.
=

On Fri, May 5, 20= 17 at 1:18 PM, Dave Page <dpage@pgadmin.org> wrote:
Can you get t= his polished off on Monday please Ashesh?

=
On Thu, May 4, 2017 at 12:51 PM, Robert Eckhardt= <reckhardt@pivotal.io> wrote:
All,=C2=A0

T= his change in the xss testing is preventing our CI from going green and is = also preventing the=C2=A0Dependents and Dependencies tabs in Greenplum from= being useful.=C2=A0

Can we either merge this or p= rovide feedback as to what needs to change so that it can be merged.=C2=A0<= /div>

Thank you
Rob

On Tue, May 2, 2017 at 5:17 PM, Sarah McAlear &l= t;smcalear@pivotal= .io> wrote:
Hi Hackers & Ashesh!

Is there anything= else we can do for this?

Thanks!
Matt & Sa= rah

On Thu, Apr 27, 2017 at 10:37 AM, Joao Pedro De Almeida Pereira <jdealmeidapereira@pivotal.io> wrote:
Thanks for reviewing,= Ashesh.

We have updated the patch. The headers are all = consistent and we removed the __init__.= py files in directories containing only .sql.

Thanks!
Joao & = Matt

On Wed, Apr 26, 2017 at 11= :22 AM, Joao Pedro De Almeida Pereira <jdealmeidapereira@pivota= l.io> wrote:
Hello Ashesh,

Thanks for reviewing the p= atch.

We added the __init__.py files into template= s to convert them into packages so that the tests inside of them can be fou= nd by the test runner.

Thanks!
Joao &= Sarah

On Wed, Apr 26, 2017 at 1:26 AM, Ashesh Vashi <ashesh.vashi@enterprisedb.com> wrote:
On Mon, Apr 24, 2017 at 4:43 PM, = Dave Page <dpage@pgadmin.org> wrote:
Ashesh, can you review/commi= t this please?

On Fri, Apr 21, 2017 at 8:42 PM, Joao Pedro De Al= meida Pereira <jdealmeidapereira@pivotal.io> wrot= e:
Hi Hackers,

We found ou= t that when you are connected to a GreenPlum database and try to get Depend= ents and Dependencies of an object the application was returning a SQL erro= r.

This patch splits the SQL query used to retriev= e the Dependents, Dependencies, and Roles SQL file into multiple versioned = files.
Add Unit Tests for each file.
Also added __init_= _.py files to other test directories to run the tests in them.
<= /div>
Hi Joao & Sarah= ,

Why do we need to add __init__.py in the template dire= ctory?
I didn't understand the purpose of the adding __init__= .py files in the template directories.

NOTE: The h= eaders in those files are not consistent with the other project files.

= --

Thanks &am= p; Regards,

Ashesh Vashi
EnterpriseDB INDIA:=C2= =A0Enterp= rise PostgreSQL Company


= http://www.linkedin.com/in/asheshvashi

Add O= RDER BY into Copy Selection Feature test to ensure the results are retrieve= d always in the same order
Renamed the Scenario of the=C2=A0xss_c= hecks_pgadmin_debugger_test and skip it for versions less than 9.1

Thanks

Joao & Sarah


--
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-ha= ckers




--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter= : @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise Postgre= SQL Company





--
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-ha= ckers






--
=
Dave P= age
Blog: http= ://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterpri= sedb.com
The Enterprise PostgreSQL Company



--
=
Dave Page
Blog: http://pgsnake.blogspot.= com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The = Enterprise PostgreSQL Company



--
Akshay Joshi
Principal Software Engineer=C2=A0

=




--
Aksh= ay Joshi
Principal Software Engineer=C2=A0





--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

E= nterpriseDB UK: h= ttp://www.enterprisedb.com
The Enterprise PostgreSQL Company

--94eb2c06f5c6f79f9a054f0589b2-- --94eb2c06f5c6f79fa4054f0589b5 Content-Type: application/octet-stream; name="0001-Fix-error-while-checking-Dependents-and-Dependencies.patch" Content-Disposition: attachment; filename="0001-Fix-error-while-checking-Dependents-and-Dependencies.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j2gbv28f0 RnJvbSA1OGQ3OWFjZjhiOTM0NDE0ZTAzZWViNmM4NDkxOGFiMTY1Y2FhYWMw IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQaXZvdGFsIDxwaXZv dGFsQGJldmVybGV5LmxvY2FsPgpEYXRlOiBNb24sIDggTWF5IDIwMTcgMTI6 MTI6MjQgLTA0MDAKU3ViamVjdDogW1BBVENIXSBGaXggZXJyb3Igd2hpbGUg Y2hlY2tpbmcgRGVwZW5kZW50cyBhbmQgRGVwZW5kZW5jaWVzIG9mCiBvYmpl Y3QgaW4gR3JlZW5QbHVtOiAgIC0gTWFrZSBTUUwgdGVtcGxhdGUgVVQgdmlz aWJsZSB0byBydW50ZXN0ICAgLSBBZGQgU1FMCiB0byByZXRyaWV2ZSBkZXBl bmRlbmNpZXMgZm9yIEdyZWVuUGx1bSAgIC0gRXh0cmFjdCBSb2xlIERlcGVu ZGVuY2llcyBmcm9tCiBzaW5nbGUgZGVwZW5kZW50cyBmaWxlICAgLSBTcGxp dCB0ZW1wbGF0ZSBmb3IgZGVwZW5kZW50cyBTUUwgICAtIEFkZCAnU0VUCiBM T0NBTCBqb2luX2NvbGxhcHNlX2xpbWl0PTg7JyB0byBkZXBlbmRlbmN5L2Rl cGVuZGVudHMgdG8gbWFrZSB0aGVtIGZhc3Rlci4KIE9ubHkgY2F2ZWF0IGlz IHRoYXQgdGhpcyB3aWxsIHJlbWFpbiB1bmNoYW5nZWQgZm9yIHRoZSBzZXNz aW9uICAgLSBBZGQgbW9yZQogZXhwZWN0YXRpb25zIHRvIHJvbGUgZGVwZW5k ZW5jaWVzICAgLSBTcGVjaWZ5IG9yZGVyIG9mIHF1ZXJ5IGluCiBjb3B5X3Nl bGVjdGVkX3F1ZXJ5X3Jlc3VsdHNfZmVhdHVyZV90ZXN0IHRvIG1ha2UgdGVz dHMgcGFzcyAgIC0gR3JlZW5QbHVtIGFuZAogUG9zdGdyZXMgb3JkZXIgdGhl c2UgcmVzdWx0cyBkaWZmZXJlbnRseSBieSBkZWZhdWx0IHdpdGhvdXQgYW4g b3JkZXIgY2xhdXNlCiBzcGVjaWZpZWQuICAgLSBTa2lwIFhTUyB0ZXN0IGZv ciBHcmVlblBsdW0gICAtIE1vdmVkIHRlc3RzIHRvIHRoZSBjb3JyZWN0CiBm b2xkZXJzCgotLS0KIC4uLi9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVt cGxhdGVzL19faW5pdF9fLnB5IHwgIDAKIC4uLi9zY2hlbWFzL3RhYmxlcy90 ZW1wbGF0ZXMvY29sdW1uL19faW5pdF9fLnB5ICAgIHwgIDAKIC4uLi90ZW1w bGF0ZXMvY29sdW1uL3NxbC85LjJfcGx1cy9fX2luaXRfXy5weSAgICAgIHwg IDAKIC4uLi90ZW1wbGF0ZXMvY29sdW1uL3NxbC9kZWZhdWx0L19faW5pdF9f LnB5ICAgICAgIHwgIDAKIC4uLi90ZW1wbGF0ZXMvY29sdW1uL3NxbC90ZXN0 cy90ZXN0X2NvbHVtbl9hY2wucHkgIHwgNDcgLS0tLS0tLS0tLS0tLQogLi4u L2NvbHVtbi9zcWwvdGVzdHMvdGVzdF9jb2x1bW5fcHJvcGVydGllcy5weSAg ICAgfCA1NiAtLS0tLS0tLS0tLS0tLS0tCiAuLi4vc2NoZW1hcy90YWJsZXMv dGVtcGxhdGVzL3RhYmxlL19faW5pdF9fLnB5ICAgICB8ICAwCiAuLi4vc2No ZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlL3NxbC9fX2luaXRfXy5weSB8 ICAwCiAuLi4vdGFibGVzL3RlbXBsYXRlcy90YWJsZS9zcWwvdGVzdHMvX19p bml0X18ucHkgICB8ICAwCiAuLi4vdGVtcGxhdGVzL3RhYmxlL3NxbC90ZXN0 cy90ZXN0X3RhYmxlc19hY2wucHkgICB8IDY2IC0tLS0tLS0tLS0tLS0tLS0t LS0KIC4uLi90ZW1wbGF0ZXMvdGFibGUvc3FsL3Rlc3RzL3Rlc3RfdGFibGVz X25vZGUucHkgIHwgNzQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vdGFi bGUvc3FsL3Rlc3RzL3Rlc3RfdGFibGVzX3Byb3BlcnRpZXMucHkgICAgICB8 IDc3IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi90ZW1wbGF0ZXMvdHJp Z2dlci9zcWwvOS4xX3BsdXMvX19pbml0X18ucHkgICAgIHwgIDAKIC4uLi90 YWJsZXMvdGVtcGxhdGVzL3RyaWdnZXIvc3FsL19faW5pdF9fLnB5ICAgICAg IHwgIDAKIC4uLi90ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvZGVmYXVsdC9fX2lu aXRfXy5weSAgICAgIHwgIDAKIC4uLi90YWJsZXMvdGVtcGxhdGVzL3RyaWdn ZXIvc3FsL3Rlc3RzL19faW5pdF9fLnB5IHwgIDAKIC4uLi90cmlnZ2VyL3Nx bC90ZXN0cy90ZXN0X3RyaWdnZXJfZ2V0X29pZC5weSAgICAgIHwgNjAgLS0t LS0tLS0tLS0tLS0tLS0KIC4uLi90YWJsZXMvdGVzdHMvdGVzdF9jb2x1bW5f YWNsX3NxbF90ZW1wbGF0ZS5weSAgIHwgNTEgKysrKysrKysrKysrKysKIC4u Li90ZXN0cy90ZXN0X2NvbHVtbl9wcm9wZXJ0aWVzX3NxbF90ZW1wbGF0ZS5w eSAgIHwgNTIgKysrKysrKysrKysrKysrCiAuLi4vdGFibGVzL3Rlc3RzL3Rl c3RfdGFibGVzX2FjbF9zcWxfdGVtcGxhdGUucHkgICB8IDU0ICsrKysrKysr KysrKysrKwogLi4uL3RhYmxlcy90ZXN0cy90ZXN0X3RhYmxlc19ub2RlX3Nx bF90ZW1wbGF0ZS5weSAgfCA1MSArKysrKysrKysrKysrKwogLi4uL3Rlc3Rz L3Rlc3RfdGFibGVzX3Byb3BlcnRpZXNfc3FsX3RlbXBsYXRlLnB5ICAgfCA2 NyArKysrKysrKysrKysrKysrKysrCiAuLi4vdGVzdHMvdGVzdF90cmlnZ2Vy X2dldF9vaWRfc3FsX3RlbXBsYXRlLnB5ICAgICB8IDUzICsrKysrKysrKysr KysrKwogLi4uL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9ub2Rlc19zcWxfdGVtcGxh dGUucHkgICAgICAgfCA0MyArKysrKysrKysrKysKIC4uLi9kZXBlbmRzL3Nx bC85LjFfcGx1cy9kZXBlbmRlbmNpZXMuc3FsICAgICAgICAgIHwgNDUgKysr KysrKysrKysrKwogLi4uL3RlbXBsYXRlcy9kZXBlbmRzL3NxbC85LjFfcGx1 cy9kZXBlbmRlbnRzLnNxbCAgfCA0NCArKysrKysrKysrKysrCiAuLi4vdGVt cGxhdGVzL2RlcGVuZHMvc3FsL2RlZmF1bHQvZGVwZW5kZW5jaWVzLnNxbCB8 IDQyICsrKysrKysrKysrKwogLi4uL3RlbXBsYXRlcy9kZXBlbmRzL3NxbC9k ZWZhdWx0L2RlcGVuZGVudHMuc3FsICAgfCA2NiArLS0tLS0tLS0tLS0tLS0t LS0tCiAuLi4vZGVwZW5kcy9zcWwvZGVmYXVsdC9yb2xlX2RlcGVuZGVuY2ll cy5zcWwgICAgICB8ICA0ICsrCiAuLi4vdGVzdHMvdGVzdF9kZXBlbmRlbmNp ZXNfc3FsX3RlbXBsYXRlLnB5ICAgICAgICB8IDUxICsrKysrKysrKysrKysr CiAuLi4vc2VydmVycy90ZXN0cy90ZXN0X2RlcGVuZGVudHNfc3FsX3RlbXBs YXRlLnB5ICB8IDUyICsrKysrKysrKysrKysrKwogLi4uL3Rlc3RzL3Rlc3Rf cm9sZV9kZXBlbmRlbmNpZXNfc3FsX3RlbXBsYXRlLnB5ICAgfCA1MiArKysr KysrKysrKysrKysKIHdlYi9wZ2FkbWluL2Jyb3dzZXIvdXRpbHMucHkgICAg ICAgICAgICAgICAgICAgICAgIHwgMTAgKy0tCiAuLi4vY29weV9zZWxlY3Rl ZF9xdWVyeV9yZXN1bHRzX2ZlYXR1cmVfdGVzdC5weSAgICB8IDExICsrKy0K IC4uLi94c3NfY2hlY2tzX3BnYWRtaW5fZGVidWdnZXJfdGVzdC5weSAgICAg ICAgICAgIHwgIDYgKy0KIC4uLi9weXRob25fdGVzdF91dGlscy9zcWxfdGVt cGxhdGVfdGVzdF9iYXNlLnB5fSAgIHwgNTAgKysrKysrKystLS0tLS0KIDM2 IGZpbGVzIGNoYW5nZWQsIDcxNSBpbnNlcnRpb25zKCspLCA0NjkgZGVsZXRp b25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3RlbXBsYXRlcy9fX2luaXRfXy5weQogZGVsZXRlIG1vZGUgMTAwNjQ0 IHdlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvY29sdW1uL19faW5p dF9fLnB5CiBkZWxldGUgbW9kZSAxMDA2NDQgd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9wbHVzL19faW5pdF9fLnB5 CiBkZWxldGUgbW9kZSAxMDA2NDQgd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rl bXBsYXRlcy9jb2x1bW4vc3FsL2RlZmF1bHQvX19pbml0X18ucHkKIGRlbGV0 ZSBtb2RlIDEwMDY0NCB3ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVz L2NvbHVtbi9zcWwvdGVzdHMvdGVzdF9jb2x1bW5fYWNsLnB5CiBkZWxldGUg bW9kZSAxMDA2NDQgd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9j b2x1bW4vc3FsL3Rlc3RzL3Rlc3RfY29sdW1uX3Byb3BlcnRpZXMucHkKIGRl bGV0ZSBtb2RlIDEwMDY0NCB3ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxh dGVzL3RhYmxlL19faW5pdF9fLnB5CiBkZWxldGUgbW9kZSAxMDA2NDQgd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZS9zcWwvX19pbml0 X18ucHkKIGRlbGV0ZSBtb2RlIDEwMDY0NCB3ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvdGVtcGxhdGVzL3RhYmxlL3NxbC90ZXN0cy9fX2luaXRfXy5weQogZGVs ZXRlIG1vZGUgMTAwNjQ0IHdlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0 ZXMvdGFibGUvc3FsL3Rlc3RzL3Rlc3RfdGFibGVzX2FjbC5weQogZGVsZXRl IG1vZGUgMTAwNjQ0IHdlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMv dGFibGUvc3FsL3Rlc3RzL3Rlc3RfdGFibGVzX25vZGUucHkKIGRlbGV0ZSBt b2RlIDEwMDY0NCB3ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3Rh YmxlL3NxbC90ZXN0cy90ZXN0X3RhYmxlc19wcm9wZXJ0aWVzLnB5CiBkZWxl dGUgbW9kZSAxMDA2NDQgd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRl cy90cmlnZ2VyL3NxbC85LjFfcGx1cy9fX2luaXRfXy5weQogZGVsZXRlIG1v ZGUgMTAwNjQ0IHdlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdHJp Z2dlci9zcWwvX19pbml0X18ucHkKIGRlbGV0ZSBtb2RlIDEwMDY0NCB3ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RyaWdnZXIvc3FsL2RlZmF1 bHQvX19pbml0X18ucHkKIGRlbGV0ZSBtb2RlIDEwMDY0NCB3ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RyaWdnZXIvc3FsL3Rlc3RzL19faW5p dF9fLnB5CiBkZWxldGUgbW9kZSAxMDA2NDQgd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3RlbXBsYXRlcy90cmlnZ2VyL3NxbC90ZXN0cy90ZXN0X3RyaWdnZXJf Z2V0X29pZC5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IHdlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy90ZXN0cy90ZXN0X2NvbHVtbl9hY2xfc3FsX3RlbXBsYXRlLnB5 CiBjcmVhdGUgbW9kZSAxMDA2NDQgd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rl c3RzL3Rlc3RfY29sdW1uX3Byb3BlcnRpZXNfc3FsX3RlbXBsYXRlLnB5CiBj cmVhdGUgbW9kZSAxMDA2NDQgd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3Rz L3Rlc3RfdGFibGVzX2FjbF9zcWxfdGVtcGxhdGUucHkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCB3ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJs ZXNfbm9kZV9zcWxfdGVtcGxhdGUucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB3 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZXNfcHJvcGVy dGllc19zcWxfdGVtcGxhdGUucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB3ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90cmlnZ2VyX2dldF9vaWRf c3FsX3RlbXBsYXRlLnB5CiBjcmVhdGUgbW9kZSAxMDA2NDQgd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9ub2Rlc19zcWxfdGVt cGxhdGUucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB3ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZW1wbGF0ZXMvZGVwZW5kcy9z cWwvOS4xX3BsdXMvZGVwZW5kZW5jaWVzLnNxbAogY3JlYXRlIG1vZGUgMTAw NjQ0IHdlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L3RlbXBsYXRlcy9kZXBlbmRzL3NxbC85LjFfcGx1cy9kZXBlbmRlbnRzLnNx bAogY3JlYXRlIG1vZGUgMTAwNjQ0IHdlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL3RlbXBsYXRlcy9kZXBlbmRzL3NxbC9kZWZh dWx0L2RlcGVuZGVuY2llcy5zcWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCB3ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZW1wbGF0 ZXMvZGVwZW5kcy9zcWwvZGVmYXVsdC9yb2xlX2RlcGVuZGVuY2llcy5zcWwK IGNyZWF0ZSBtb2RlIDEwMDY0NCB3ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2RlcGVuZGVuY2llc19zcWxf dGVtcGxhdGUucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB3ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2RlcGVu ZGVudHNfc3FsX3RlbXBsYXRlLnB5CiBjcmVhdGUgbW9kZSAxMDA2NDQgd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMv dGVzdF9yb2xlX2RlcGVuZGVuY2llc19zcWxfdGVtcGxhdGUucHkKIHJlbmFt ZSB3ZWIve3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90cmlnZ2VyL3Nx bC90ZXN0cy90ZXN0X3RyaWdnZXJfbm9kZXMucHkgPT4gcmVncmVzc2lvbi9w eXRob25fdGVzdF91dGlscy9zcWxfdGVtcGxhdGVfdGVzdF9iYXNlLnB5fSAo NjElKQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1w bGF0ZXMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVt cGxhdGVzL19faW5pdF9fLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCBlNjlkZTI5Yi4uMDAwMDAwMDAKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvY29sdW1uL19faW5pdF9fLnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9jb2x1bW4vX19pbml0 X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2OWRlMjli Li4wMDAwMDAwMApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9wbHVzL19faW5pdF9fLnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzku Ml9wbHVzL19faW5pdF9fLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCBlNjlkZTI5Yi4uMDAwMDAwMDAKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvY29sdW1uL3NxbC9kZWZhdWx0L19f aW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9j b2x1bW4vc3FsL2RlZmF1bHQvX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IGU2OWRlMjliLi4wMDAwMDAwMApkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9jb2x1bW4vc3Fs L3Rlc3RzL3Rlc3RfY29sdW1uX2FjbC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy90ZW1wbGF0ZXMvY29sdW1uL3NxbC90ZXN0cy90ZXN0X2NvbHVtbl9h Y2wucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiZTk0NWM3 Li4wMDAwMDAwMAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxh dGVzL2NvbHVtbi9zcWwvdGVzdHMvdGVzdF9jb2x1bW5fYWNsLnB5CisrKyAv ZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotaW1wb3J0IG9zCi1pbXBvcnQg c3lzCi0KLWZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IERyaXZl clJlZ2lzdHJ5Ci1mcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMu dGVtcGxhdGVfaGVscGVyIGltcG9ydCBmaWxlX2FzX3RlbXBsYXRlCi0KLURy aXZlclJlZ2lzdHJ5LmxvYWRfZHJpdmVycygpCi1mcm9tIHBnYWRtaW4udXRp bHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jl c3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMKLQot aWYgc3lzLnZlcnNpb25faW5mb1swXSA+PSAzOgotICAgIGxvbmcgPSBpbnQK LQotCi1jbGFzcyBUZXN0Q29sdW1uQWNsKEJhc2VUZXN0R2VuZXJhdG9yKToK LSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFdoZW4gdGhl cmUgYXJlIG5vIHBlcm1pc3Npb25zIG9uIHRoZSBjb2x1bW4sIGl0IHJldHVy bnMgYW4gZW1wdHkgcmVzdWx0ICIiIgotICAgICAgICB3aXRoIHRlc3RfdXRp bHMuRGF0YWJhc2Uoc2VsZi5zZXJ2ZXIpIGFzIChjb25uZWN0aW9uLCBkYXRh YmFzZV9uYW1lKToKLSAgICAgICAgICAgIHRlc3RfdXRpbHMuY3JlYXRlX3Rh YmxlKHNlbGYuc2VydmVyLCBkYXRhYmFzZV9uYW1lLCAidGVzdF90YWJsZSIp Ci0KLSAgICAgICAgICAgIGN1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkK LSAgICAgICAgICAgIGN1cnNvci5leGVjdXRlKCJTRUxFQ1QgcGdfY2xhc3Mu b2lkIGFzIHRhYmxlX2lkLCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAicGdfYXR0cmlidXRlLmF0dG51bSBhcyBjb2x1bW5faWQgIgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgIkZST00gcGdfY2xhc3Mgam9pbiBwZ19h dHRyaWJ1dGUgb24gYXR0cmVsaWQ9cGdfY2xhc3Mub2lkICIKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICJ3aGVyZSBwZ19jbGFzcy5yZWxuYW1lPSd0 ZXN0X3RhYmxlJyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICIgYW5k IHBnX2F0dHJpYnV0ZS5hdHRuYW1lID0gJ3NvbWVfY29sdW1uJyIpCi0gICAg ICAgICAgICB0YWJsZV9pZCwgY29sdW1uX2lkID0gY3Vyc29yLmZldGNob25l KCkKLQotICAgICAgICAgICAgaWYgY29ubmVjdGlvbi5zZXJ2ZXJfdmVyc2lv biA8IDkwMTAwOgotICAgICAgICAgICAgICAgIHNlbGYudmVyc2lvbnNfdG9f dGVzdCA9IFsnZGVmYXVsdCddCi0gICAgICAgICAgICBlbHNlOgotICAgICAg ICAgICAgICAgIHNlbGYudmVyc2lvbnNfdG9fdGVzdCA9IFsnOS4xX3BsdXMn XQotCi0gICAgICAgICAgICBmb3IgdmVyc2lvbiBpbiBzZWxmLnZlcnNpb25z X3RvX3Rlc3Q6Ci0gICAgICAgICAgICAgICAgdGVtcGxhdGVfZmlsZSA9IG9z LnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4iLCB2 ZXJzaW9uLCAiYWNsLnNxbCIpCi0gICAgICAgICAgICAgICAgdGVtcGxhdGUg PSBmaWxlX2FzX3RlbXBsYXRlKHRlbXBsYXRlX2ZpbGUpCi0KLSAgICAgICAg ICAgICAgICBwdWJsaWNfc2NoZW1hX2lkID0gMjIwMAotICAgICAgICAgICAg ICAgIHNxbCA9IHRlbXBsYXRlLnJlbmRlcihzY2lkPXB1YmxpY19zY2hlbWFf aWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRp ZD10YWJsZV9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY2xpZD1jb2x1bW5faWQKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAgICAgY3Vyc29yID0g Y29ubmVjdGlvbi5jdXJzb3IoKQotICAgICAgICAgICAgICAgIGN1cnNvci5l eGVjdXRlKHNxbCkKLSAgICAgICAgICAgICAgICBmZXRjaF9yZXN1bHQgPSBj dXJzb3IuZmV0Y2hhbGwoKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWwoMCwgbGVuKGZldGNoX3Jlc3VsdCkpClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L3RlbXBsYXRlcy9jb2x1bW4vc3FsL3Rlc3RzL3Rlc3RfY29sdW1uX3Byb3Bl cnRpZXMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2Nv bHVtbi9zcWwvdGVzdHMvdGVzdF9jb2x1bW5fcHJvcGVydGllcy5weQpkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjE5ODRiZGEuLjAwMDAwMDAw Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvY29sdW1u L3NxbC90ZXN0cy90ZXN0X2NvbHVtbl9wcm9wZXJ0aWVzLnB5CisrKyAvZGV2 L251bGwKQEAgLTEsNTYgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKLSMKLSMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwot IwotIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE3LCBUaGUgcGdBZG1pbiBE ZXZlbG9wbWVudCBUZWFtCi0jIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQg dW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQotIwotIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKLQotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi0K LWZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IERyaXZlclJlZ2lz dHJ5Ci1mcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMudGVtcGxh dGVfaGVscGVyIGltcG9ydCBmaWxlX2FzX3RlbXBsYXRlCi0KLURyaXZlclJl Z2lzdHJ5LmxvYWRfZHJpdmVycygpCi1mcm9tIHBnYWRtaW4udXRpbHMucm91 dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24u cHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMKLQotaWYgc3lz LnZlcnNpb25faW5mb1swXSA+PSAzOgotICAgIGxvbmcgPSBpbnQKLQotCi1j bGFzcyBUZXN0Q29sdW1uUHJvcGVydGllcyhCYXNlVGVzdEdlbmVyYXRvcik6 Ci0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIHRl c3RzIHRoYXQgY29sdW1uIHByb3BlcnRpZXMgYXJlIHJldHVybmVkIiIiCi0g ICAgICAgIHdpdGggdGVzdF91dGlscy5EYXRhYmFzZShzZWxmLnNlcnZlcikg YXMgKGNvbm5lY3Rpb24sIGRhdGFiYXNlX25hbWUpOgotICAgICAgICAgICAg dGVzdF91dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXIsIGRhdGFiYXNl X25hbWUsICJ0ZXN0X3RhYmxlIikKLQotICAgICAgICAgICAgY3Vyc29yID0g Y29ubmVjdGlvbi5jdXJzb3IoKQotICAgICAgICAgICAgY3Vyc29yLmV4ZWN1 dGUoIlNFTEVDVCBvaWQgRlJPTSBwZ19jbGFzcyB3aGVyZSByZWxuYW1lPSd0 ZXN0X3RhYmxlJyIpCi0gICAgICAgICAgICB0YWJsZV9pZCA9IGN1cnNvci5m ZXRjaG9uZSgpWzBdCi0KLSAgICAgICAgICAgIGlmIGNvbm5lY3Rpb24uc2Vy dmVyX3ZlcnNpb24gPCA5MDEwMDoKLSAgICAgICAgICAgICAgICBzZWxmLnZl cnNpb25zX3RvX3Rlc3QgPSBbJ2RlZmF1bHQnXQotICAgICAgICAgICAgZWxz ZToKLSAgICAgICAgICAgICAgICBzZWxmLnZlcnNpb25zX3RvX3Rlc3QgPSBb JzkuMV9wbHVzJ10KLQotICAgICAgICAgICAgZm9yIHZlcnNpb24gaW4gc2Vs Zi52ZXJzaW9uc190b190ZXN0OgotICAgICAgICAgICAgICAgIHRlbXBsYXRl X2ZpbGUgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9f KSwgIi4uIiwgdmVyc2lvbiwgInByb3BlcnRpZXMuc3FsIikKLSAgICAgICAg ICAgICAgICB0ZW1wbGF0ZSA9IGZpbGVfYXNfdGVtcGxhdGUodGVtcGxhdGVf ZmlsZSkKLSAgICAgICAgICAgICAgICBwdWJsaWNfc2NoZW1hX2lkID0gMjIw MAotICAgICAgICAgICAgICAgIHNxbCA9IHRlbXBsYXRlLnJlbmRlcihzY2lk PXB1YmxpY19zY2hlbWFfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRpZD10YWJsZV9pZAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgICAgICAgICBjdXJz b3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCi0gICAgICAgICAgICAgICAgY3Vy c29yLmV4ZWN1dGUoc3FsKQotICAgICAgICAgICAgICAgIGZldGNoX3Jlc3Vs dCA9IGN1cnNvci5mZXRjaGFsbCgpCi0gICAgICAgICAgICAgICAgZmlyc3Rf cm93ID0ge30KLSAgICAgICAgICAgICAgICBmb3IgaW5kZXgsIGRlc2NyaXB0 aW9uIGluIGVudW1lcmF0ZShjdXJzb3IuZGVzY3JpcHRpb24pOgotICAgICAg ICAgICAgICAgICAgICBmaXJzdF9yb3dbZGVzY3JpcHRpb24ubmFtZV0gPSBm ZXRjaF9yZXN1bHRbMF1baW5kZXhdCi0KLSAgICAgICAgICAgICAgICBzZWxm LmFzc2VydEVxdWFsKCdzb21lX2NvbHVtbicsIGZpcnN0X3Jvd1snbmFtZSdd KQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2NoYXJhY3Rl ciB2YXJ5aW5nJywgZmlyc3Rfcm93WydjbHR5cGUnXSkKLSAgICAgICAgICAg ICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihmZXRjaF9yZXN1bHQpKQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90 YWJsZS9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1w bGF0ZXMvdGFibGUvX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGU2OWRlMjliLi4wMDAwMDAwMApkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZS9zcWwvX19pbml0 X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxl L3NxbC9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggZTY5ZGUyOWIuLjAwMDAwMDAwCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlL3NxbC90ZXN0cy9fX2luaXRf Xy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGUv c3FsL3Rlc3RzL19faW5pdF9fLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBlNjlkZTI5Yi4uMDAwMDAwMDAKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGUvc3FsL3Rlc3RzL3Rl c3RfdGFibGVzX2FjbC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1w bGF0ZXMvdGFibGUvc3FsL3Rlc3RzL3Rlc3RfdGFibGVzX2FjbC5weQpkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTBmN2Y5NGUuLjAwMDAwMDAw Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGUv c3FsL3Rlc3RzL3Rlc3RfdGFibGVzX2FjbC5weQorKysgL2Rldi9udWxsCkBA IC0xLDY2ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj Ci0jCi0jIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKLSMKLSMgQ29w eXJpZ2h0IChDKSAyMDEzIC0gMjAxNywgVGhlIHBnQWRtaW4gRGV2ZWxvcG1l bnQgVGVhbQotIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRo ZSBQb3N0Z3JlU1FMIExpY2VuY2UKLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCi0KLWltcG9ydCBvcwotaW1wb3J0IHN5cwotCi1mcm9tIHBn YWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBEcml2ZXJSZWdpc3RyeQotZnJv bSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzLnRlbXBsYXRlX2hlbHBl ciBpbXBvcnQgZmlsZV9hc190ZW1wbGF0ZQotCi1Ecml2ZXJSZWdpc3RyeS5s b2FkX2RyaXZlcnMoKQotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90 ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzCi0KLWlmIHN5cy52ZXJzaW9u X2luZm9bMF0gPj0gMzoKLSAgICBsb25nID0gaW50Ci0KLQotY2xhc3MgVGVz dFRhYmxlc0FjbChCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgc2NlbmFyaW9z ID0gWwotICAgICAgICAoIlRlc3QgcXVlcnkgcmV0dXJucyB0aGUgcGVybWlz c2lvbnMgd2hlbiB0aGVyZSBhcmUgcGVybWlzc2lvbnMgc2V0IHVwIgotICAg ICAgICAgIiBvbiB0aGUgdGFibGUiLCBkaWN0KCkpCi0gICAgXQotCi0gICAg ZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIHRlc3RzIHRo YXQgd2hlbiB0aGVyZSBhcmUgcGVybWlzc2lvbnMgc2V0IHVwIG9uIHRoZSB0 YWJsZSwgYWNsIHF1ZXJ5IHJldHVybnMgdGhlIHBlcm1pc3Npb25zIiIiCi0g ICAgICAgIHdpdGggdGVzdF91dGlscy5EYXRhYmFzZShzZWxmLnNlcnZlcikg YXMgKGNvbm5lY3Rpb24sIGRhdGFiYXNlX25hbWUpOgotICAgICAgICAgICAg dGVzdF91dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXIsIGRhdGFiYXNl X25hbWUsICJ0ZXN0X3RhYmxlIikKLQotICAgICAgICAgICAgY3Vyc29yID0g Y29ubmVjdGlvbi5jdXJzb3IoKQotICAgICAgICAgICAgY3Vyc29yLmV4ZWN1 dGUoIkdSQU5UIFNFTEVDVCBPTiB0ZXN0X3RhYmxlIFRPIFBVQkxJQyIpCi0K LSAgICAgICAgICAgIGN1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKLSAg ICAgICAgICAgIGN1cnNvci5leGVjdXRlKCJTRUxFQ1Qgb2lkIEZST00gcGdf Y2xhc3MgV0hFUkUgcmVsbmFtZT0ndGVzdF90YWJsZSciKQotICAgICAgICAg ICAgdGFibGVfaWQgPSBjdXJzb3IuZmV0Y2hvbmUoKVswXQotCi0gICAgICAg ICAgICBpZiBjb25uZWN0aW9uLnNlcnZlcl92ZXJzaW9uIDwgOTAxMDA6Ci0g ICAgICAgICAgICAgICAgc2VsZi52ZXJzaW9uc190b190ZXN0ID0gWydkZWZh dWx0J10KLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2Vs Zi52ZXJzaW9uc190b190ZXN0ID0gWyc5LjFfcGx1cyddCi0KLSAgICAgICAg ICAgIGZvciB2ZXJzaW9uIGluIHNlbGYudmVyc2lvbnNfdG9fdGVzdDoKLSAg ICAgICAgICAgICAgICB0ZW1wbGF0ZV9maWxlID0gb3MucGF0aC5qb2luKG9z LnBhdGguZGlybmFtZShfX2ZpbGVfXyksICIuLiIsIHZlcnNpb24sICJhY2wu c3FsIikKLSAgICAgICAgICAgICAgICB0ZW1wbGF0ZSA9IGZpbGVfYXNfdGVt cGxhdGUodGVtcGxhdGVfZmlsZSkKLSAgICAgICAgICAgICAgICBwdWJsaWNf c2NoZW1hX2lkID0gMjIwMAotICAgICAgICAgICAgICAgIHNxbCA9IHRlbXBs YXRlLnJlbmRlcihzY2lkPXB1YmxpY19zY2hlbWFfaWQsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZD10YWJsZV9pZCkKLQot ICAgICAgICAgICAgICAgIGN1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkK LSAgICAgICAgICAgICAgICBjdXJzb3IuZXhlY3V0ZShzcWwpCi0gICAgICAg ICAgICAgICAgZmV0Y2hfcmVzdWx0ID0gY3Vyc29yLmZldGNoYWxsKCkKLSAg ICAgICAgICAgICAgICBwdWJsaWNfYWNscyA9IGxpc3QoZmlsdGVyKGxhbWJk YSBhY2w6IGFjbFsxXSA9PSAnUFVCTElDJywgZmV0Y2hfcmVzdWx0KSkKLSAg ICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihwdWJsaWNfYWNs cyksIDEpCi0KLSAgICAgICAgICAgICAgICBuZXdfYWNsX21hcCA9IGRpY3Qo emlwKG1hcChsYW1iZGEgY29sdW1uOiBjb2x1bW4ubmFtZSwgY3Vyc29yLmRl c2NyaXB0aW9uKSwgcHVibGljX2FjbHNbMF0pKQotCi0gICAgICAgICAgICAg ICAgc2VsZi5hc3NlcnRFcXVhbCgnUFVCTElDJywgbmV3X2FjbF9tYXBbJ2dy YW50ZWUnXSkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNl bGYuc2VydmVyWyd1c2VybmFtZSddLCBuZXdfYWNsX21hcFsnZ3JhbnRvcidd KQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3JlbGFjbCcs IG5ld19hY2xfbWFwWydkZWZ0eXBlJ10pCi0gICAgICAgICAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbChbJ3InXSwgbmV3X2FjbF9tYXBbJ3ByaXZpbGVnZXMn XSkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFtGYWxzZV0s IG5ld19hY2xfbWFwWydncmFudGFibGUnXSkKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dGVtcGxhdGVzL3RhYmxlL3NxbC90ZXN0cy90ZXN0X3RhYmxlc19ub2RlLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZS9zcWwv dGVzdHMvdGVzdF90YWJsZXNfbm9kZS5weQpkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMjFlYzMyNzUuLjAwMDAwMDAwCi0tLSBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGUvc3FsL3Rlc3RzL3Rlc3Rf dGFibGVzX25vZGUucHkKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBA Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBwZ0FkbWlu IDQgLSBQb3N0Z3JlU1FMIFRvb2xzCi0jCi0jIENvcHlyaWdodCAoQykgMjAx MyAtIDIwMTcsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KLSMgVGhp cyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBM aWNlbmNlCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1p bXBvcnQgb3MKLWltcG9ydCBzeXMKLQotZnJvbSBqaW5qYTIgaW1wb3J0IEJh c2VMb2FkZXIKLWZyb20gamluamEyIGltcG9ydCBFbnZpcm9ubWVudAotCi1m cm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJh dG9yCi1mcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0 IHRlc3RfdXRpbHMKLQotaWYgc3lzLnZlcnNpb25faW5mb1swXSA+PSAzOgot ICAgIGxvbmcgPSBpbnQKLQotCi1jbGFzcyBUZXN0VGFibGVzTm9kZShCYXNl VGVzdEdlbmVyYXRvcik6Ci0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAo IlRoaXMgc2NlbmFyaW8gdGVzdHMgdGhhdCBhbGwgYXBwbGljYWJsZSBzcWwg dGVtcGxhdGUgdmVyc2lvbnMgY2FuICIKLSAgICAgICAgICJmZXRjaCB0YWJs ZSBuYW1lcyIsIGRpY3QoKSkKLSAgICBdCi0KLSAgICBkZWYgcnVuVGVzdChz ZWxmKToKLSAgICAgICAgIiIiIFRoaXMgdGVzdHMgdGhhdCBhbGwgYXBwbGlj YWJsZSBzcWwgdGVtcGxhdGUgdmVyc2lvbnMgY2FuIGZldGNoIHRhYmxlIG5h bWVzICIiIgotICAgICAgICB3aXRoIHRlc3RfdXRpbHMuRGF0YWJhc2Uoc2Vs Zi5zZXJ2ZXIpIGFzIChjb25uZWN0aW9uLCBkYXRhYmFzZV9uYW1lKToKLSAg ICAgICAgICAgIHRlc3RfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVy LCBkYXRhYmFzZV9uYW1lLCAidGVzdF90YWJsZSIpCi0KLSAgICAgICAgICAg IGlmIGNvbm5lY3Rpb24uc2VydmVyX3ZlcnNpb24gPCA5MTAwMDoKLSAgICAg ICAgICAgICAgICBzZWxmLnZlcnNpb25zX3RvX3Rlc3QgPSBbJ2RlZmF1bHQn XQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLnZl cnNpb25zX3RvX3Rlc3QgPSBbJ2RlZmF1bHQnLCAnOS4xX3BsdXMnXQotCi0g ICAgICAgICAgICBmb3IgdmVyc2lvbiBpbiBzZWxmLnZlcnNpb25zX3RvX3Rl c3Q6Ci0gICAgICAgICAgICAgICAgdGVtcGxhdGVfZmlsZSA9IG9zLnBhdGgu am9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4iLCB2ZXJzaW9u LCAibm9kZXMuc3FsIikKLSAgICAgICAgICAgICAgICBmaWxlX2NvbnRlbnQg PSBvcGVuKHRlbXBsYXRlX2ZpbGUsICdyJykucmVhZCgpCi0KLSAgICAgICAg ICAgICAgICBlbnYgPSBFbnZpcm9ubWVudChsb2FkZXI9U2ltcGxlVGVtcGxh dGVMb2FkZXIoZmlsZV9jb250ZW50KSkKLQotICAgICAgICAgICAgICAgIHRl bXBsYXRlID0gZW52LmdldF90ZW1wbGF0ZSgiIikKLSAgICAgICAgICAgICAg ICBwdWJsaWNfc2NoZW1hX2lkID0gMjIwMAotICAgICAgICAgICAgICAgIHNx bCA9IHRlbXBsYXRlLnJlbmRlcihzY2lkPXB1YmxpY19zY2hlbWFfaWQpCi0K LSAgICAgICAgICAgICAgICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigp Ci0gICAgICAgICAgICAgICAgY3Vyc29yLmV4ZWN1dGUoc3FsKQotICAgICAg ICAgICAgICAgIGZldGNoX3Jlc3VsdCA9IGN1cnNvci5mZXRjaGFsbCgpCi0K LSAgICAgICAgICAgICAgICBmaXJzdF9yb3cgPSB7fQotICAgICAgICAgICAg ICAgIGZvciBpbmRleCwgZGVzY3JpcHRpb24gaW4gZW51bWVyYXRlKGN1cnNv ci5kZXNjcmlwdGlvbik6Ci0gICAgICAgICAgICAgICAgICAgIGZpcnN0X3Jv d1tkZXNjcmlwdGlvbi5uYW1lXSA9IGZldGNoX3Jlc3VsdFswXVtpbmRleF0K LQotICAgICAgICAgICAgICAgIG9pZCA9IGZpcnN0X3Jvd1snb2lkJ10KLSAg ICAgICAgICAgICAgICBuYW1lID0gZmlyc3Rfcm93WyduYW1lJ10KLSAgICAg ICAgICAgICAgICB0cmlnZ2VyY291bnQgPSBmaXJzdF9yb3dbJ3RyaWdnZXJj b3VudCddCi0gICAgICAgICAgICAgICAgaGFzX2VuYWJsZV90cmlnZ2VycyA9 IGZpcnN0X3Jvd1snaGFzX2VuYWJsZV90cmlnZ2VycyddCi0KLSAgICAgICAg ICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShsb25nKG9pZCkpCi0gICAg ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgndGVzdF90YWJsZScsIG5h bWUpCi0gICAgICAgICAgICAgICAgIyB0cmlnZ2VyY291bnQgaXMgc29tZXRp bWVzIHJldHVybmVkIGFzIGEgc3RyaW5nIGZvciBzb21lIHJlYXNvbgotICAg ICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbG9uZyh0cmlnZ2Vy Y291bnQpKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25l KGxvbmcoaGFzX2VuYWJsZV90cmlnZ2VycykpCi0KLQotY2xhc3MgU2ltcGxl VGVtcGxhdGVMb2FkZXIoQmFzZUxvYWRlcik6Ci0gICAgZGVmIF9faW5pdF9f KHNlbGYsIGZpbGVfY29udGVudCk6Ci0gICAgICAgIHNlbGYuZmlsZV9jb250 ZW50ID0gZmlsZV9jb250ZW50Ci0KLSAgICBkZWYgZ2V0X3NvdXJjZShzZWxm LCAqYXJncyk6Ci0gICAgICAgIHJldHVybiBzZWxmLmZpbGVfY29udGVudCwg InJlcXVpcmVkLXJldHVybi1ub3QtYS1yZWFsLWZpbGUudHh0IiwgVHJ1ZQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90 YWJsZS9zcWwvdGVzdHMvdGVzdF90YWJsZXNfcHJvcGVydGllcy5weSBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGUvc3FsL3Rlc3Rz L3Rlc3RfdGFibGVzX3Byb3BlcnRpZXMucHkKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDU5ODRiZGE1Li4wMDAwMDAwMAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlL3NxbC90ZXN0cy90ZXN0 X3RhYmxlc19wcm9wZXJ0aWVzLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNzcg KzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMg cGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwotIwotIyBDb3B5cmlnaHQg KEMpIDIwMTMgLSAyMDE3LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFt Ci0jIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3Rn cmVTUUwgTGljZW5jZQotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKLQotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi0KLWZyb20gcGdhZG1pbi51 dGlscy5kcml2ZXIgaW1wb3J0IERyaXZlclJlZ2lzdHJ5Ci1mcm9tIHJlZ3Jl c3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMudGVtcGxhdGVfaGVscGVyIGltcG9y dCBmaWxlX2FzX3RlbXBsYXRlCi0KLURyaXZlclJlZ2lzdHJ5LmxvYWRfZHJp dmVycygpCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRp bHMgaW1wb3J0IHRlc3RfdXRpbHMKLQotaWYgc3lzLnZlcnNpb25faW5mb1sw XSA+PSAzOgotICAgIGxvbmcgPSBpbnQKLQotCi1jbGFzcyBUZXN0VGFibGVz UHJvcGVydGllcyhCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgc2NlbmFyaW9z ID0gWwotICAgICAgICAoIlRoaXMgc2NlbmFyaW8gdGVzdHMgdGhhdCBhbGwg YXBwbGljYWJsZSBzcWwgdGVtcGxhdGUgdmVyc2lvbnMgY2FuICIKLSAgICAg ICAgICJmZXRjaCBzb21lIGRkbCIsIGRpY3QoKSkKLSAgICBdCi0KLSAgICBk ZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgdGVzdHMgdGhh dCBhbGwgYXBwbGljYWJsZSBzcWwgdGVtcGxhdGUgdmVyc2lvbnMgY2FuIGZl dGNoIHNvbWUgZGRsICIiIgotICAgICAgICB3aXRoIHRlc3RfdXRpbHMuRGF0 YWJhc2Uoc2VsZi5zZXJ2ZXIpIGFzIChjb25uZWN0aW9uLCBkYXRhYmFzZV9u YW1lKToKLSAgICAgICAgICAgIHRlc3RfdXRpbHMuY3JlYXRlX3RhYmxlKHNl bGYuc2VydmVyLCBkYXRhYmFzZV9uYW1lLCAidGVzdF90YWJsZSIpCi0KLSAg ICAgICAgICAgIGN1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKLSAgICAg ICAgICAgIGN1cnNvci5leGVjdXRlKHUiIiIKLSAgICAgICAgICAgIFNFTEVD VAotICAgICAgICAgICAgICAgIGRiLm9pZCBhcyBkaWQsIGRhdGxhc3RzeXNv aWQKLSAgICAgICAgICAgIEZST00KLSAgICAgICAgICAgICAgICBwZ19kYXRh YmFzZSBkYgotICAgICAgICAgICAgV0hFUkUgZGIuZGF0bmFtZSA9ICd7MH0n IiIiLmZvcm1hdChkYXRhYmFzZV9uYW1lKQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgKQotICAgICAgICAgICAgZGF0YWJhc2VfaWQsIGxhc3Rfc3lz dGVtX29pZCA9IGN1cnNvci5mZXRjaG9uZSgpCi0KLSAgICAgICAgICAgIGN1 cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKLSAgICAgICAgICAgIGN1cnNv ci5leGVjdXRlKCJTRUxFQ1Qgb2lkIEZST00gcGdfY2xhc3Mgd2hlcmUgcmVs bmFtZT0ndGVzdF90YWJsZSciKQotICAgICAgICAgICAgdGFibGVfaWQgPSBj dXJzb3IuZmV0Y2hvbmUoKVswXQotCi0gICAgICAgICAgICBpZiBjb25uZWN0 aW9uLnNlcnZlcl92ZXJzaW9uIDwgOTAxMDA6Ci0gICAgICAgICAgICAgICAg c2VsZi52ZXJzaW9uc190b190ZXN0ID0gWydkZWZhdWx0J10KLSAgICAgICAg ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi52ZXJzaW9uc190b190 ZXN0ID0gWyc5LjFfcGx1cyddCi0KLSAgICAgICAgICAgIGZvciB2ZXJzaW9u IGluIHNlbGYudmVyc2lvbnNfdG9fdGVzdDoKLSAgICAgICAgICAgICAgICB0 ZW1wbGF0ZV9maWxlID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShf X2ZpbGVfXyksICIuLiIsIHZlcnNpb24sICJwcm9wZXJ0aWVzLnNxbCIpCi0g ICAgICAgICAgICAgICAgdGVtcGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRlKHRl bXBsYXRlX2ZpbGUpCi0KLSAgICAgICAgICAgICAgICBwdWJsaWNfc2NoZW1h X2lkID0gMjIwMAotICAgICAgICAgICAgICAgIHNxbCA9IHRlbXBsYXRlLnJl bmRlcihzY2lkPXB1YmxpY19zY2hlbWFfaWQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRpZD1kYXRhYmFzZV9pZCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0bGFzdHN5c29p ZD1sYXN0X3N5c3RlbV9vaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRpZD10YWJsZV9pZAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgICAgICAgICBjdXJz b3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCi0gICAgICAgICAgICAgICAgY3Vy c29yLmV4ZWN1dGUoc3FsKQotICAgICAgICAgICAgICAgIGZldGNoX3Jlc3Vs dCA9IGN1cnNvci5mZXRjaG9uZSgpCi0KLSAgICAgICAgICAgICAgICBmaXJz dF9yb3cgPSB7fQotICAgICAgICAgICAgICAgIGZvciBpbmRleCwgZGVzY3Jp cHRpb24gaW4gZW51bWVyYXRlKGN1cnNvci5kZXNjcmlwdGlvbik6Ci0gICAg ICAgICAgICAgICAgICAgIGZpcnN0X3Jvd1tkZXNjcmlwdGlvbi5uYW1lXSA9 IGZldGNoX3Jlc3VsdFtpbmRleF0KLQotICAgICAgICAgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWwoJ3Rlc3RfdGFibGUnLCBmaXJzdF9yb3dbJ25hbWUnXSkK LSAgICAgICAgICAgICAgICAjIHRyaWdnZXJjb3VudCBpcyBzb21ldGltZXMg cmV0dXJuZWQgYXMgYSBzdHJpbmcgZm9yIHNvbWUgcmVhc29uCi0gICAgICAg ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsb25nKGZpcnN0X3Jvd1sn dHJpZ2dlcmNvdW50J10pKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWwoTm9uZSwgZmlyc3Rfcm93Wyd0eXBuYW1lJ10pCi0gICAgICAgICAg ICAgICAgc2VsZi5hc3NlcnRFcXVhbChbXSwgZmlyc3Rfcm93Wydjb2xsX2lu aGVyaXRzJ10pCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dGVtcGxhdGVzL3RyaWdnZXIvc3FsLzkuMV9wbHVzL19faW5pdF9fLnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90cmlnZ2VyL3NxbC85 LjFfcGx1cy9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggZTY5ZGUyOWIuLjAwMDAwMDAwCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RyaWdnZXIvc3FsL19faW5pdF9f LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90cmlnZ2Vy L3NxbC9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggZTY5ZGUyOWIuLjAwMDAwMDAwCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RyaWdnZXIvc3FsL2RlZmF1bHQvX19p bml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3Ry aWdnZXIvc3FsL2RlZmF1bHQvX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IGU2OWRlMjliLi4wMDAwMDAwMApkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90cmlnZ2VyL3Nx bC90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90 ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvdGVzdHMvX19pbml0X18ucHkKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2OWRlMjliLi4wMDAwMDAwMApk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90 cmlnZ2VyL3NxbC90ZXN0cy90ZXN0X3RyaWdnZXJfZ2V0X29pZC5weSBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvdGVz dHMvdGVzdF90cmlnZ2VyX2dldF9vaWQucHkKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IGYyYjYzN2VlLi4wMDAwMDAwMAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RyaWdnZXIvc3FsL3Rlc3RzL3Rl c3RfdHJpZ2dlcl9nZXRfb2lkLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNjAg KzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMg cGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwotIwotIyBDb3B5cmlnaHQg KEMpIDIwMTMgLSAyMDE3LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFt Ci0jIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3Rn cmVTUUwgTGljZW5jZQotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKLQotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi0KLWltcG9ydCBqaW5qYTIK LQotZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgRHJpdmVyUmVn aXN0cnkKLWZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscy50ZW1w bGF0ZV9oZWxwZXIgaW1wb3J0IGZpbGVfYXNfdGVtcGxhdGUKLQotRHJpdmVy UmVnaXN0cnkubG9hZF9kcml2ZXJzKCkKLWZyb20gcGdhZG1pbi51dGlscy5y b3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lv bi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscwotCi1pZiBz eXMudmVyc2lvbl9pbmZvWzBdID49IDM6Ci0gICAgbG9uZyA9IGludAotCi0K LWNsYXNzIFRlc3RUcmlnZ2VyR2V0T2lkKEJhc2VUZXN0R2VuZXJhdG9yKToK LSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFdoZW4gdGhl cmUgYXJlIG5vIHBlcm1pc3Npb25zIG9uIHRoZSBjb2x1bW4sIGl0IHJldHVy bnMgYW4gZW1wdHkgcmVzdWx0ICIiIgotICAgICAgICB3aXRoIHRlc3RfdXRp bHMuRGF0YWJhc2Uoc2VsZi5zZXJ2ZXIpIGFzIChjb25uZWN0aW9uLCBkYXRh YmFzZV9uYW1lKToKLSAgICAgICAgICAgIHRlc3RfdXRpbHMuY3JlYXRlX3Rh YmxlKHNlbGYuc2VydmVyLCBkYXRhYmFzZV9uYW1lLCAidGVzdF90YWJsZSIp Ci0KLSAgICAgICAgICAgIGN1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkK LSAgICAgICAgICAgIGN1cnNvci5leGVjdXRlKCJTRUxFQ1QgcGdfY2xhc3Mu b2lkIGFzIHRhYmxlX2lkLCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAicGdfYXR0cmlidXRlLmF0dG51bSBhcyBjb2x1bW5faWQgIgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgIkZST00gcGdfY2xhc3Mgam9pbiBwZ19h dHRyaWJ1dGUgb24gYXR0cmVsaWQ9cGdfY2xhc3Mub2lkICIKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICJ3aGVyZSBwZ19jbGFzcy5yZWxuYW1lPSd0 ZXN0X3RhYmxlJyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICIgYW5k IHBnX2F0dHJpYnV0ZS5hdHRuYW1lID0gJ3NvbWVfY29sdW1uJyIpCi0gICAg ICAgICAgICB0YWJsZV9pZCwgY29sdW1uX2lkID0gY3Vyc29yLmZldGNob25l KCkKLQotICAgICAgICAgICAgaWYgY29ubmVjdGlvbi5zZXJ2ZXJfdmVyc2lv biA8IDkwMTAwOgotICAgICAgICAgICAgICAgIHNlbGYudmVyc2lvbnNfdG9f dGVzdCA9IFsnZGVmYXVsdCddCi0gICAgICAgICAgICBlbHNlOgotICAgICAg ICAgICAgICAgIHNlbGYudmVyc2lvbnNfdG9fdGVzdCA9IFsnOS4xX3BsdXMn XQotCi0gICAgICAgICAgICBmb3IgdmVyc2lvbiBpbiBzZWxmLnZlcnNpb25z X3RvX3Rlc3Q6Ci0gICAgICAgICAgICAgICAgdGVtcGxhdGVfZmlsZSA9IG9z LnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4iLCB2 ZXJzaW9uLCAiZ2V0X29pZC5zcWwiKQotCi0gICAgICAgICAgICAgICAgamlu amEyLmZpbHRlcnMuRklMVEVSU1sncXRMaXRlcmFsJ10gPSBsYW1iZGEgdmFs dWU6ICJOVUxMIgotICAgICAgICAgICAgICAgIHRlbXBsYXRlID0gZmlsZV9h c190ZW1wbGF0ZSh0ZW1wbGF0ZV9maWxlKQotCi0gICAgICAgICAgICAgICAg c3FsID0gdGVtcGxhdGUucmVuZGVyKGRhdGE9eyduYW1lJzogTm9uZX0sCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZD10YWJs ZV9pZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAp Ci0KLSAgICAgICAgICAgICAgICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNv cigpCi0gICAgICAgICAgICAgICAgY3Vyc29yLmV4ZWN1dGUoc3FsKQotICAg ICAgICAgICAgICAgIGZldGNoX3Jlc3VsdCA9IGN1cnNvci5mZXRjaGFsbCgp Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4oZmV0 Y2hfcmVzdWx0KSkKLQotCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvdGVzdHMvdGVzdF9jb2x1bW5fYWNsX3NxbF90ZW1wbGF0ZS5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X2NvbHVtbl9hY2xf c3FsX3RlbXBsYXRlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwLi5iYzQyMWEzMwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X2NvbHVtbl9hY2xfc3FsX3RlbXBs YXRlLnB5CkBAIC0wLDAgKzEsNTEgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMK KyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNywgVGhlIHBnQWRtaW4g RGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2Vk IHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCBvcworCitmcm9tIHJlZ3Jl c3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMuc3FsX3RlbXBsYXRlX3Rlc3RfYmFz ZSBpbXBvcnQgU1FMVGVtcGxhdGVUZXN0QmFzZQorZnJvbSByZWdyZXNzaW9u LnB5dGhvbl90ZXN0X3V0aWxzLnRlbXBsYXRlX2hlbHBlciBpbXBvcnQgZmls ZV9hc190ZW1wbGF0ZQorCisKK2NsYXNzIFRlc3RDb2x1bW5BY2xTcWxUZW1w bGF0ZShTUUxUZW1wbGF0ZVRlc3RCYXNlKToKKyAgICBzY2VuYXJpb3MgPSBb CisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHNjaGVtYSBu b2RlLgorICAgICAgICAoJ1Rlc3QgQ29sdW1uIEFDTCBTUUwgZmlsZScsIGRp Y3QoKSkKKyAgICBdCisKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAg ICAgIHN1cGVyKFRlc3RDb2x1bW5BY2xTcWxUZW1wbGF0ZSwgc2VsZikuX19p bml0X18oKQorICAgICAgICBzZWxmLnRhYmxlX2lkID0gLTEKKyAgICAgICAg c2VsZi5jb2x1bW5faWQgPSAtMQorCisgICAgZGVmIHRlc3Rfc2V0dXAoc2Vs ZiwgY29ubmVjdGlvbiwgY3Vyc29yKToKKyAgICAgICAgY3Vyc29yLmV4ZWN1 dGUoIlNFTEVDVCBwZ19jbGFzcy5vaWQgQVMgdGFibGVfaWQsICIKKyAgICAg ICAgICAgICAgICAgICAgICAgInBnX2F0dHJpYnV0ZS5hdHRudW0gQVMgY29s dW1uX2lkICIKKyAgICAgICAgICAgICAgICAgICAgICAgIkZST00gcGdfY2xh c3MgSk9JTiBwZ19hdHRyaWJ1dGUgT04gYXR0cmVsaWQ9cGdfY2xhc3Mub2lk ICIKKyAgICAgICAgICAgICAgICAgICAgICAgIldIRVJFIHBnX2NsYXNzLnJl bG5hbWU9J3Rlc3RfdGFibGUnIgorICAgICAgICAgICAgICAgICAgICAgICAi IEFORCBwZ19hdHRyaWJ1dGUuYXR0bmFtZSA9ICdzb21lX2NvbHVtbiciKQor ICAgICAgICBzZWxmLnRhYmxlX2lkLCBzZWxmLmNvbHVtbl9pZCA9IGN1cnNv ci5mZXRjaG9uZSgpCisKKyAgICBkZWYgZ2VuZXJhdGVfc3FsKHNlbGYsIHZl cnNpb24pOgorICAgICAgICB0ZW1wbGF0ZV9maWxlID0gc2VsZi5nZXRfdGVt cGxhdGVfZmlsZSh2ZXJzaW9uLCAiYWNsLnNxbCIpCisgICAgICAgIHRlbXBs YXRlID0gZmlsZV9hc190ZW1wbGF0ZSh0ZW1wbGF0ZV9maWxlKQorICAgICAg ICBwdWJsaWNfc2NoZW1hX2lkID0gMjIwMAorICAgICAgICBzcWwgPSB0ZW1w bGF0ZS5yZW5kZXIoc2NpZD1wdWJsaWNfc2NoZW1hX2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGlkPXNlbGYudGFibGVfaWQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlkPXNlbGYuY29sdW1uX2lk CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisKKyAgICAgICAg cmV0dXJuIHNxbAorCisgICAgZGVmIGFzc2VydGlvbnMoc2VsZiwgZmV0Y2hf cmVzdWx0LCBkZXNjcmlwdGlvbnMpOgorICAgICAgICBzZWxmLmFzc2VydEVx dWFsKDAsIGxlbihmZXRjaF9yZXN1bHQpKQorCisgICAgQHN0YXRpY21ldGhv ZAorICAgIGRlZiBnZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCBmaWxlbmFt ZSk6CisgICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJu YW1lKF9fZmlsZV9fKSwgIi4uIiwgInRlbXBsYXRlcyIsICJjb2x1bW4iLCAi c3FsIiwgdmVyc2lvbiwgZmlsZW5hbWUpCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF9jb2x1bW5fcHJvcGVydGllc19z cWxfdGVtcGxhdGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMv dGVzdF9jb2x1bW5fcHJvcGVydGllc19zcWxfdGVtcGxhdGUucHkKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjA5OGVkNWI4Ci0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rl c3RfY29sdW1uX3Byb3BlcnRpZXNfc3FsX3RlbXBsYXRlLnB5CkBAIC0wLDAg KzEsNTIgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisj IHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0 IChDKSAyMDEzIC0gMjAxNywgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVh bQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0 Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisKK2ltcG9ydCBvcworCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rl c3RfdXRpbHMuc3FsX3RlbXBsYXRlX3Rlc3RfYmFzZSBpbXBvcnQgU1FMVGVt cGxhdGVUZXN0QmFzZQorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0 aWxzLnRlbXBsYXRlX2hlbHBlciBpbXBvcnQgZmlsZV9hc190ZW1wbGF0ZQor CisKK2NsYXNzIFRlc3RDb2x1bW5Qcm9wZXJ0aWVzU3FsVGVtcGxhdGUoU1FM VGVtcGxhdGVUZXN0QmFzZSk6CisgICAgc2NlbmFyaW9zID0gWworICAgICAg ICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBzY2hlbWEgbm9kZS4KKyAg ICAgICAgKCdUZXN0IENvbHVtbiBQcm9wZXJ0aWVzIFNRTCBmaWxlJywgZGlj dCgpKQorICAgIF0KKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAg ICAgc3VwZXIoVGVzdENvbHVtblByb3BlcnRpZXNTcWxUZW1wbGF0ZSwgc2Vs ZikuX19pbml0X18oKQorICAgICAgICBzZWxmLnRhYmxlX2lkID0gLTEKKwor ICAgIGRlZiB0ZXN0X3NldHVwKHNlbGYsIGNvbm5lY3Rpb24sIGN1cnNvcik6 CisgICAgICAgIGN1cnNvci5leGVjdXRlKCJTRUxFQ1Qgb2lkIEZST00gcGdf Y2xhc3Mgd2hlcmUgcmVsbmFtZT0ndGVzdF90YWJsZSciKQorCisgICAgICAg IHNlbGYudGFibGVfaWQgPSBjdXJzb3IuZmV0Y2hvbmUoKVswXQorCisgICAg ZGVmIGdlbmVyYXRlX3NxbChzZWxmLCB2ZXJzaW9uKToKKyAgICAgICAgdGVt cGxhdGVfZmlsZSA9IHNlbGYuZ2V0X3RlbXBsYXRlX2ZpbGUodmVyc2lvbiwg InByb3BlcnRpZXMuc3FsIikKKyAgICAgICAgdGVtcGxhdGUgPSBmaWxlX2Fz X3RlbXBsYXRlKHRlbXBsYXRlX2ZpbGUpCisgICAgICAgIHB1YmxpY19zY2hl bWFfaWQgPSAyMjAwCisgICAgICAgIHNxbCA9IHRlbXBsYXRlLnJlbmRlcihz Y2lkPXB1YmxpY19zY2hlbWFfaWQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0aWQ9c2VsZi50YWJsZV9pZAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKQorCisgICAgICAgIHJldHVybiBzcWwKKworICAgIGRl ZiBhc3NlcnRpb25zKHNlbGYsIGZldGNoX3Jlc3VsdCwgZGVzY3JpcHRpb25z KToKKyAgICAgICAgZmlyc3Rfcm93ID0ge30KKyAgICAgICAgZm9yIGluZGV4 LCBkZXNjcmlwdGlvbiBpbiBlbnVtZXJhdGUoZGVzY3JpcHRpb25zKToKKyAg ICAgICAgICAgIGZpcnN0X3Jvd1tkZXNjcmlwdGlvbi5uYW1lXSA9IGZldGNo X3Jlc3VsdFswXVtpbmRleF0KKworICAgICAgICBzZWxmLmFzc2VydEVxdWFs KCdzb21lX2NvbHVtbicsIGZpcnN0X3Jvd1snbmFtZSddKQorICAgICAgICBz ZWxmLmFzc2VydEVxdWFsKCdjaGFyYWN0ZXIgdmFyeWluZycsIGZpcnN0X3Jv d1snY2x0eXBlJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVu KGZldGNoX3Jlc3VsdCkpCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVm IGdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24sIGZpbGVuYW1lKToKKyAgICAg ICAgcmV0dXJuIG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxl X18pLCAiLi4iLCAidGVtcGxhdGVzIiwgImNvbHVtbiIsICJzcWwiLCB2ZXJz aW9uLCBmaWxlbmFtZSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy90ZXN0cy90ZXN0X3RhYmxlc19hY2xfc3FsX3RlbXBsYXRlLnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVzX2FjbF9z cWxfdGVtcGxhdGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAuLmQxZWQzZDdlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVzX2FjbF9zcWxfdGVtcGxh dGUucHkKQEAgLTAsMCArMSw1NCBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwor IworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE3LCBUaGUgcGdBZG1pbiBE ZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQg dW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IG9zCitmcm9tIHJlZ3Jlc3Np b24ucHl0aG9uX3Rlc3RfdXRpbHMudGVtcGxhdGVfaGVscGVyIGltcG9ydCBm aWxlX2FzX3RlbXBsYXRlCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3Rf dXRpbHMuc3FsX3RlbXBsYXRlX3Rlc3RfYmFzZSBpbXBvcnQgU1FMVGVtcGxh dGVUZXN0QmFzZQorCisKK2NsYXNzIFRlc3RUYWJsZXNBY2xTcWxUZW1wbGF0 ZShTUUxUZW1wbGF0ZVRlc3RCYXNlKToKKyAgICBzY2VuYXJpb3MgPSBbCisg ICAgICAgICgiVGVzdCBxdWVyeSByZXR1cm5zIHRoZSBwZXJtaXNzaW9ucyB3 aGVuIHRoZXJlIGFyZSBwZXJtaXNzaW9ucyBzZXQgdXAiCisgICAgICAgICAi IG9uIHRoZSB0YWJsZSIsIGRpY3QoKSkKKyAgICBdCisKKyAgICBkZWYgX19p bml0X18oc2VsZik6CisgICAgICAgIHN1cGVyKFRlc3RUYWJsZXNBY2xTcWxU ZW1wbGF0ZSwgc2VsZikuX19pbml0X18oKQorICAgICAgICBzZWxmLnRhYmxl X2lkID0gLTEKKworICAgIGRlZiB0ZXN0X3NldHVwKHNlbGYsIGNvbm5lY3Rp b24sIGN1cnNvcik6CisgICAgICAgIGN1cnNvci5leGVjdXRlKCJHUkFOVCBT RUxFQ1QgT04gdGVzdF90YWJsZSBUTyBQVUJMSUMiKQorICAgICAgICBjdXJz b3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgIGN1cnNvci5leGVj dXRlKCJTRUxFQ1Qgb2lkIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZT0n dGVzdF90YWJsZSciKQorICAgICAgICBzZWxmLnRhYmxlX2lkID0gY3Vyc29y LmZldGNob25lKClbMF0KKworICAgIGRlZiBnZW5lcmF0ZV9zcWwoc2VsZiwg dmVyc2lvbik6CisgICAgICAgIHRlbXBsYXRlX2ZpbGUgPSBzZWxmLmdldF90 ZW1wbGF0ZV9maWxlKHZlcnNpb24sICJhY2wuc3FsIikKKyAgICAgICAgdGVt cGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRlKHRlbXBsYXRlX2ZpbGUpCisgICAg ICAgIHB1YmxpY19zY2hlbWFfaWQgPSAyMjAwCisgICAgICAgIHNxbCA9IHRl bXBsYXRlLnJlbmRlcihzY2lkPXB1YmxpY19zY2hlbWFfaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0aWQ9c2VsZi50YWJsZV9pZCkKKyAg ICAgICAgcmV0dXJuIHNxbAorCisgICAgZGVmIGFzc2VydGlvbnMoc2VsZiwg ZmV0Y2hfcmVzdWx0LCBkZXNjcmlwdGlvbnMpOgorICAgICAgICBwdWJsaWNf YWNscyA9IGxpc3QoZmlsdGVyKGxhbWJkYSBhY2w6IGFjbFsxXSA9PSAnUFVC TElDJywgZmV0Y2hfcmVzdWx0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh bChsZW4ocHVibGljX2FjbHMpLCAxKQorCisgICAgICAgIG5ld19hY2xfbWFw ID0gZGljdCh6aXAobWFwKGxhbWJkYSBjb2x1bW46IGNvbHVtbi5uYW1lLCBk ZXNjcmlwdGlvbnMpLCBwdWJsaWNfYWNsc1swXSkpCisKKyAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbCgnUFVCTElDJywgbmV3X2FjbF9tYXBbJ2dyYW50ZWUn XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNlcnZlclsndXNl cm5hbWUnXSwgbmV3X2FjbF9tYXBbJ2dyYW50b3InXSkKKyAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbCgncmVsYWNsJywgbmV3X2FjbF9tYXBbJ2RlZnR5cGUn XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ3InXSwgbmV3X2FjbF9t YXBbJ3ByaXZpbGVnZXMnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChb RmFsc2VdLCBuZXdfYWNsX21hcFsnZ3JhbnRhYmxlJ10pCisgICAgICAgIHJl dHVybiBwdWJsaWNfYWNscworCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRl ZiBnZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCBmaWxlbmFtZSk6CisgICAg ICAgIHJldHVybiBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmls ZV9fKSwgIi4uIiwgInRlbXBsYXRlcyIsICJ0YWJsZSIsICJzcWwiLCB2ZXJz aW9uLCBmaWxlbmFtZSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy90ZXN0cy90ZXN0X3RhYmxlc19ub2RlX3NxbF90ZW1wbGF0ZS5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RhYmxlc19ub2Rl X3NxbF90ZW1wbGF0ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMC4uOTM1NWE4YmIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZXNfbm9kZV9zcWxfdGVt cGxhdGUucHkKQEAgLTAsMCArMSw1MSBAQAorIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29s cworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE3LCBUaGUgcGdBZG1p biBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFz ZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IG9zCisKK2Zyb20gcmVn cmVzc2lvbi5weXRob25fdGVzdF91dGlscy5zcWxfdGVtcGxhdGVfdGVzdF9i YXNlIGltcG9ydCBTUUxUZW1wbGF0ZVRlc3RCYXNlCitmcm9tIHJlZ3Jlc3Np b24ucHl0aG9uX3Rlc3RfdXRpbHMudGVtcGxhdGVfaGVscGVyIGltcG9ydCBm aWxlX2FzX3RlbXBsYXRlCisKKworY2xhc3MgVGVzdFRhYmxlc05vZGVTcWxU ZW1wbGF0ZShTUUxUZW1wbGF0ZVRlc3RCYXNlKToKKyAgICBzY2VuYXJpb3Mg PSBbCisgICAgICAgICgiVGhpcyBzY2VuYXJpbyB0ZXN0cyB0aGF0IGFsbCBh cHBsaWNhYmxlIHNxbCB0ZW1wbGF0ZSB2ZXJzaW9ucyBjYW4gIgorICAgICAg ICAgImZldGNoIHRhYmxlIG5hbWVzIiwgZGljdCgpKQorICAgIF0KKworICAg IGRlZiB0ZXN0X3NldHVwKHNlbGYsIGNvbm5lY3Rpb24sIGN1cnNvcik6Cisg ICAgICAgIHBhc3MKKworICAgIGRlZiBnZW5lcmF0ZV9zcWwoc2VsZiwgdmVy c2lvbik6CisgICAgICAgIHRlbXBsYXRlX2ZpbGUgPSBzZWxmLmdldF90ZW1w bGF0ZV9maWxlKHZlcnNpb24sICJub2Rlcy5zcWwiKQorICAgICAgICB0ZW1w bGF0ZSA9IGZpbGVfYXNfdGVtcGxhdGUodGVtcGxhdGVfZmlsZSkKKyAgICAg ICAgcHVibGljX3NjaGVtYV9pZCA9IDIyMDAKKyAgICAgICAgc3FsID0gdGVt cGxhdGUucmVuZGVyKHNjaWQ9cHVibGljX3NjaGVtYV9pZCkKKyAgICAgICAg cmV0dXJuIHNxbAorCisgICAgZGVmIGFzc2VydGlvbnMoc2VsZiwgZmV0Y2hf cmVzdWx0LCBkZXNjcmlwdGlvbnMpOgorCisgICAgICAgIGZpcnN0X3JvdyA9 IHt9CisgICAgICAgIGZvciBpbmRleCwgZGVzY3JpcHRpb24gaW4gZW51bWVy YXRlKGRlc2NyaXB0aW9ucyk6CisgICAgICAgICAgICBmaXJzdF9yb3dbZGVz Y3JpcHRpb24ubmFtZV0gPSBmZXRjaF9yZXN1bHRbMF1baW5kZXhdCisKKyAg ICAgICAgb2lkID0gZmlyc3Rfcm93WydvaWQnXQorICAgICAgICBuYW1lID0g Zmlyc3Rfcm93WyduYW1lJ10KKyAgICAgICAgdHJpZ2dlcmNvdW50ID0gZmly c3Rfcm93Wyd0cmlnZ2VyY291bnQnXQorICAgICAgICBoYXNfZW5hYmxlX3Ry aWdnZXJzID0gZmlyc3Rfcm93WydoYXNfZW5hYmxlX3RyaWdnZXJzJ10KKwor ICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShsb25nKG9pZCkpCisgICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3Rlc3RfdGFibGUnLCBuYW1lKQorICAg ICAgICAjIHRyaWdnZXJjb3VudCBpcyBzb21ldGltZXMgcmV0dXJuZWQgYXMg YSBzdHJpbmcgZm9yIHNvbWUgcmVhc29uCisgICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWwoMCwgbG9uZyh0cmlnZ2VyY291bnQpKQorICAgICAgICBzZWxmLmFz c2VydElzTm90Tm9uZShsb25nKGhhc19lbmFibGVfdHJpZ2dlcnMpKQorCisg ICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBnZXRfdGVtcGxhdGVfZmlsZSh2 ZXJzaW9uLCBmaWxlbmFtZSk6CisgICAgICAgIHJldHVybiBvcy5wYXRoLmpv aW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgIi4uIiwgInRlbXBsYXRl cyIsICJ0YWJsZSIsICJzcWwiLCB2ZXJzaW9uLCBmaWxlbmFtZSkKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RhYmxl c19wcm9wZXJ0aWVzX3NxbF90ZW1wbGF0ZS5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy90ZXN0cy90ZXN0X3RhYmxlc19wcm9wZXJ0aWVzX3NxbF90ZW1w bGF0ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4u NTQ2ZjIwZGQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvdGVzdHMvdGVzdF90YWJsZXNfcHJvcGVydGllc19zcWxfdGVtcGxh dGUucHkKQEAgLTAsMCArMSw2NyBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwor IworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE3LCBUaGUgcGdBZG1pbiBE ZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQg dW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IG9zCisKK2Zyb20gcmVncmVz c2lvbi5weXRob25fdGVzdF91dGlscy50ZW1wbGF0ZV9oZWxwZXIgaW1wb3J0 IGZpbGVfYXNfdGVtcGxhdGUKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVz dF91dGlscy5zcWxfdGVtcGxhdGVfdGVzdF9iYXNlIGltcG9ydCBTUUxUZW1w bGF0ZVRlc3RCYXNlCisKKworY2xhc3MgVGVzdFRhYmxlc1Byb3BlcnRpZXNT cWxUZW1wbGF0ZShTUUxUZW1wbGF0ZVRlc3RCYXNlKToKKyAgICBzY2VuYXJp b3MgPSBbCisgICAgICAgICgiVGhpcyBzY2VuYXJpbyB0ZXN0cyB0aGF0IGFs bCBhcHBsaWNhYmxlIHNxbCB0ZW1wbGF0ZSB2ZXJzaW9ucyBjYW4gIgorICAg ICAgICAgImZldGNoIHNvbWUgZGRsIiwgZGljdCgpKQorICAgIF0KKworICAg IGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc3VwZXIoVGVzdFRhYmxl c1Byb3BlcnRpZXNTcWxUZW1wbGF0ZSwgc2VsZikuX19pbml0X18oKQorICAg ICAgICBzZWxmLmRhdGFiYXNlX2lkID0gLTEKKyAgICAgICAgc2VsZi5sYXN0 X3N5c3RlbV9vaWQgPSAtMQorICAgICAgICBzZWxmLnRhYmxlX2lkID0gLTEK KworICAgIGRlZiBhc3NlcnRpb25zKHNlbGYsIGZldGNoX3Jlc3VsdCwgZGVz Y3JpcHRpb25zKToKKworICAgICAgICBmaXJzdF9yb3cgPSB7fQorICAgICAg ICBmb3IgaW5kZXgsIGRlc2NyaXB0aW9uIGluIGVudW1lcmF0ZShkZXNjcmlw dGlvbnMpOgorICAgICAgICAgICAgZmlyc3Rfcm93W2Rlc2NyaXB0aW9uLm5h bWVdID0gZmV0Y2hfcmVzdWx0WzBdW2luZGV4XQorCisgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWwoJ3Rlc3RfdGFibGUnLCBmaXJzdF9yb3dbJ25hbWUnXSkK KyAgICAgICAgIyB0cmlnZ2VyY291bnQgaXMgc29tZXRpbWVzIHJldHVybmVk IGFzIGEgc3RyaW5nIGZvciBzb21lIHJlYXNvbgorICAgICAgICBzZWxmLmFz c2VydEVxdWFsKDAsIGxvbmcoZmlyc3Rfcm93Wyd0cmlnZ2VyY291bnQnXSkp CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgZmlyc3Rfcm93Wyd0 eXBuYW1lJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW10sIGZpcnN0 X3Jvd1snY29sbF9pbmhlcml0cyddKQorCisgICAgZGVmIGdlbmVyYXRlX3Nx bChzZWxmLCB2ZXJzaW9uKToKKyAgICAgICAgdGVtcGxhdGVfZmlsZSA9IHNl bGYuZ2V0X3RlbXBsYXRlX2ZpbGUodmVyc2lvbiwgInByb3BlcnRpZXMuc3Fs IikKKyAgICAgICAgdGVtcGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRlKHRlbXBs YXRlX2ZpbGUpCisgICAgICAgIHB1YmxpY19zY2hlbWFfaWQgPSAyMjAwCisg ICAgICAgIHNxbCA9IHRlbXBsYXRlLnJlbmRlcihzY2lkPXB1YmxpY19zY2hl bWFfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWQ9c2Vs Zi5kYXRhYmFzZV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRhdGxhc3RzeXNvaWQ9c2VsZi5sYXN0X3N5c3RlbV9vaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0aWQ9c2VsZi50YWJsZV9pZAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICByZXR1cm4g c3FsCisKKyAgICBkZWYgdGVzdF9zZXR1cChzZWxmLCBjb25uZWN0aW9uLCBj dXJzb3IpOgorICAgICAgICBjdXJzb3IuZXhlY3V0ZSh1IiIiCisgICAgICAg ICAgICBTRUxFQ1QKKyAgICAgICAgICAgICAgICBkYi5vaWQgYXMgZGlkLCBk YXRsYXN0c3lzb2lkCisgICAgICAgICAgICBGUk9NCisgICAgICAgICAgICAg ICAgcGdfZGF0YWJhc2UgZGIKKyAgICAgICAgICAgIFdIRVJFIGRiLmRhdG5h bWUgPSAnezB9JyIiIi5mb3JtYXQoc2VsZi5kYXRhYmFzZV9uYW1lKQorICAg ICAgICAgICAgICAgICAgICAgICApCisgICAgICAgIHNlbGYuZGF0YWJhc2Vf aWQsIHNlbGYubGFzdF9zeXN0ZW1fb2lkID0gY3Vyc29yLmZldGNob25lKCkK KworICAgICAgICBjdXJzb3IuZXhlY3V0ZSgiU0VMRUNUIG9pZCBGUk9NIHBn X2NsYXNzIHdoZXJlIHJlbG5hbWU9J3Rlc3RfdGFibGUnIikKKyAgICAgICAg c2VsZi50YWJsZV9pZCA9IGN1cnNvci5mZXRjaG9uZSgpWzBdCisKKworICAg IEBzdGF0aWNtZXRob2QKKyAgICBkZWYgZ2V0X3RlbXBsYXRlX2ZpbGUodmVy c2lvbiwgZmlsZW5hbWUpOgorICAgICAgICByZXR1cm4gb3MucGF0aC5qb2lu KG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICIuLiIsICJ0ZW1wbGF0ZXMi LCAidGFibGUiLCAic3FsIiwgdmVyc2lvbiwgZmlsZW5hbWUpClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9nZXRfb2lkX3NxbF90ZW1w bGF0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3Ry aWdnZXJfZ2V0X29pZF9zcWxfdGVtcGxhdGUucHkKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAuLjI2N2E2MTQxCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdHJpZ2dl cl9nZXRfb2lkX3NxbF90ZW1wbGF0ZS5weQpAQCAtMCwwICsxLDUzIEBACisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQg LSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAt IDIwMTcsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBz b2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNl bmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBv cnQgb3MKKworaW1wb3J0IGppbmphMgorZnJvbSByZWdyZXNzaW9uLnB5dGhv bl90ZXN0X3V0aWxzLnNxbF90ZW1wbGF0ZV90ZXN0X2Jhc2UgaW1wb3J0IFNR TFRlbXBsYXRlVGVzdEJhc2UKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVz dF91dGlscy50ZW1wbGF0ZV9oZWxwZXIgaW1wb3J0IGZpbGVfYXNfdGVtcGxh dGUKKworCisKK2NsYXNzIFRlc3RUcmlnZ2VyR2V0T2lkU3FsVGVtcGxhdGUo U1FMVGVtcGxhdGVUZXN0QmFzZSk6CisgICAgc2NlbmFyaW9zID0gWworICAg ICAgICAoJ1Rlc3QgVHJpZ2dlciB0byByZXRyaWV2ZSBPSUQgU1FMIGZpbGUn LCBkaWN0KCkpCisgICAgXQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgor ICAgICAgICBzdXBlcihUZXN0VHJpZ2dlckdldE9pZFNxbFRlbXBsYXRlLCBz ZWxmKS5fX2luaXRfXygpCisgICAgICAgIHNlbGYudGFibGVfaWQgPSAtMQor ICAgICAgICBzZWxmLmNvbHVtbl9pZCA9IC0xCisKKyAgICBkZWYgdGVzdF9z ZXR1cChzZWxmLCBjb25uZWN0aW9uLCBjdXJzb3IpOgorICAgICAgICBjdXJz b3IuZXhlY3V0ZSgiU0VMRUNUIHBnX2NsYXNzLm9pZCBBUyB0YWJsZV9pZCwg IgorICAgICAgICAgICAgICAgICAgICAgICAicGdfYXR0cmlidXRlLmF0dG51 bSBBUyBjb2x1bW5faWQgIgorICAgICAgICAgICAgICAgICAgICAgICAiRlJP TSBwZ19jbGFzcyBKT0lOIHBnX2F0dHJpYnV0ZSBPTiBhdHRyZWxpZD1wZ19j bGFzcy5vaWQgIgorICAgICAgICAgICAgICAgICAgICAgICAiV0hFUkUgcGdf Y2xhc3MucmVsbmFtZT0ndGVzdF90YWJsZSciCisgICAgICAgICAgICAgICAg ICAgICAgICIgQU5EIHBnX2F0dHJpYnV0ZS5hdHRuYW1lID0gJ3NvbWVfY29s dW1uJyIpCisgICAgICAgIHNlbGYudGFibGVfaWQsIHNlbGYuY29sdW1uX2lk ID0gY3Vyc29yLmZldGNob25lKCkKKworICAgIGRlZiBnZW5lcmF0ZV9zcWwo c2VsZiwgdmVyc2lvbik6CisgICAgICAgIHRlbXBsYXRlX2ZpbGUgPSBzZWxm LmdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24sICJnZXRfb2lkLnNxbCIpCisg ICAgICAgIGppbmphMi5maWx0ZXJzLkZJTFRFUlNbJ3F0TGl0ZXJhbCddID0g bGFtYmRhIHZhbHVlOiAiTlVMTCIKKyAgICAgICAgdGVtcGxhdGUgPSBmaWxl X2FzX3RlbXBsYXRlKHRlbXBsYXRlX2ZpbGUpCisKKyAgICAgICAgc3FsID0g dGVtcGxhdGUucmVuZGVyKGRhdGE9eyduYW1lJzogTm9uZX0sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0aWQ9c2VsZi50YWJsZV9pZAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorCisgICAgICAgIHJldHVy biBzcWwKKworICAgIGRlZiBhc3NlcnRpb25zKHNlbGYsIGZldGNoX3Jlc3Vs dCwgZGVzY3JpcHRpb25zKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgw LCBsZW4oZmV0Y2hfcmVzdWx0KSkKKworICAgIEBzdGF0aWNtZXRob2QKKyAg ICBkZWYgZ2V0X3RlbXBsYXRlX2ZpbGUodmVyc2lvbiwgZmlsZW5hbWUpOgor ICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShf X2ZpbGVfXyksICIuLiIsICJ0ZW1wbGF0ZXMiLCAidHJpZ2dlciIsICJzcWwi LCB2ZXJzaW9uLCBmaWxlbmFtZSkKKwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9ub2Rlc19zcWxfdGVt cGxhdGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90 cmlnZ2VyX25vZGVzX3NxbF90ZW1wbGF0ZS5weQpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMC4uZjFkZWY2NTEKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90cmlnZ2Vy X25vZGVzX3NxbF90ZW1wbGF0ZS5weQpAQCAtMCwwICsxLDQzIEBACisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIw MTcsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0 d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNl CisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQg b3MKKworZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzLnNxbF90 ZW1wbGF0ZV90ZXN0X2Jhc2UgaW1wb3J0IFNRTFRlbXBsYXRlVGVzdEJhc2UK K2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscy50ZW1wbGF0ZV9o ZWxwZXIgaW1wb3J0IGZpbGVfYXNfdGVtcGxhdGUKKworCitjbGFzcyBUZXN0 VHJpZ2dlck5vZGVzU3FsVGVtcGxhdGUoU1FMVGVtcGxhdGVUZXN0QmFzZSk6 CisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAoJ1Rlc3QgVHJpZ2dlciBO b2RlcyBTUUwgZmlsZScsIGRpY3QoKSkKKyAgICBdCisKKyAgICBkZWYgX19p bml0X18oc2VsZik6CisgICAgICAgIHN1cGVyKFRlc3RUcmlnZ2VyTm9kZXNT cWxUZW1wbGF0ZSwgc2VsZikuX19pbml0X18oKQorICAgICAgICBzZWxmLnRh YmxlX2lkID0gLTEKKworICAgIGRlZiB0ZXN0X3NldHVwKHNlbGYsIGNvbm5l Y3Rpb24sIGN1cnNvcik6CisgICAgICAgIGN1cnNvci5leGVjdXRlKCJTRUxF Q1QgcGdfY2xhc3Mub2lkIEFTIHRhYmxlX2lkICIKKyAgICAgICAgICAgICAg ICAgICAgICAgIkZST00gcGdfY2xhc3MgIgorICAgICAgICAgICAgICAgICAg ICAgICAiV0hFUkUgcGdfY2xhc3MucmVsbmFtZT0ndGVzdF90YWJsZSciKQor ICAgICAgICBzZWxmLnRhYmxlX2lkID0gY3Vyc29yLmZldGNob25lKClbMF0K KworICAgIGRlZiBnZW5lcmF0ZV9zcWwoc2VsZiwgdmVyc2lvbik6CisgICAg ICAgIHRlbXBsYXRlX2ZpbGUgPSBzZWxmLmdldF90ZW1wbGF0ZV9maWxlKHZl cnNpb24sICJub2Rlcy5zcWwiKQorICAgICAgICB0ZW1wbGF0ZSA9IGZpbGVf YXNfdGVtcGxhdGUodGVtcGxhdGVfZmlsZSkKKyAgICAgICAgc3FsID0gdGVt cGxhdGUucmVuZGVyKHRpZD1zZWxmLnRhYmxlX2lkKQorCisgICAgICAgIHJl dHVybiBzcWwKKworICAgIGRlZiBhc3NlcnRpb25zKHNlbGYsIGZldGNoX3Jl c3VsdCwgZGVzY3JpcHRpb25zKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh bCgwLCBsZW4oZmV0Y2hfcmVzdWx0KSkKKworICAgIEBzdGF0aWNtZXRob2QK KyAgICBkZWYgZ2V0X3RlbXBsYXRlX2ZpbGUodmVyc2lvbiwgZmlsZW5hbWUp OgorICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFt ZShfX2ZpbGVfXyksICIuLiIsICJ0ZW1wbGF0ZXMiLCAidHJpZ2dlciIsICJz cWwiLCB2ZXJzaW9uLCBmaWxlbmFtZSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RlbXBsYXRlcy9k ZXBlbmRzL3NxbC85LjFfcGx1cy9kZXBlbmRlbmNpZXMuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVtcGxhdGVz L2RlcGVuZHMvc3FsLzkuMV9wbHVzL2RlcGVuZGVuY2llcy5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLmU1YmI4Y2I2Ci0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvdGVtcGxhdGVzL2RlcGVuZHMvc3FsLzkuMV9wbHVzL2Rl cGVuZGVuY2llcy5zcWwKQEAgLTAsMCArMSw0NSBAQAorU0VMRUNUIERJU1RJ TkNUIGRlcC5kZXB0eXBlLCBkZXAucmVmY2xhc3NpZCwgY2wucmVsa2luZCwg YWQuYWRiaW4sIGFkLmFkc3JjLAorICAgIENBU0UgV0hFTiBjbC5yZWxraW5k IElTIE5PVCBOVUxMIFRIRU4gY2wucmVsa2luZCB8fCBDT0FMRVNDRShkZXAu cmVmb2Jqc3ViaWQ6OmNoYXJhY3RlciB2YXJ5aW5nLCAnJykKKyAgICAgICAg V0hFTiB0Zy5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnVCc6OnRleHQKKyAgICAg ICAgV0hFTiB0eS5vaWQgSVMgTk9UIE5VTEwgQU5EIHR5LnR5cGJhc2V0eXBl ID0gMCBUSEVOICd5Jzo6dGV4dAorICAgICAgICBXSEVOIHR5Lm9pZCBJUyBO T1QgTlVMTCBBTkQgdHkudHlwYmFzZXR5cGUgIT0gMCBUSEVOICdkJzo6dGV4 dAorICAgICAgICBXSEVOIG5zLm9pZCBJUyBOT1QgTlVMTCBUSEVOICduJzo6 dGV4dAorICAgICAgICBXSEVOIHByLm9pZCBJUyBOT1QgTlVMTCBUSEVOICdw Jzo6dGV4dAorICAgICAgICBXSEVOIGxhLm9pZCBJUyBOT1QgTlVMTCBUSEVO ICdsJzo6dGV4dAorICAgICAgICBXSEVOIHJ3Lm9pZCBJUyBOT1QgTlVMTCBU SEVOICdSJzo6dGV4dAorICAgICAgICBXSEVOIGNvLm9pZCBJUyBOT1QgTlVM TCBUSEVOICdDJzo6dGV4dCB8fCBjb250eXBlCisgICAgICAgIFdIRU4gYWQu b2lkIElTIE5PVCBOVUxMIFRIRU4gJ0EnOjp0ZXh0CisgICAgICAgIFdIRU4g ZnMub2lkIElTIE5PVCBOVUxMIFRIRU4gJ0YnOjp0ZXh0CisgICAgICAgIFdI RU4gZmR3Lm9pZCBJUyBOT1QgTlVMTCBUSEVOICdmJzo6dGV4dAorICAgIEVM U0UgJycKKyAgICBFTkQgQVMgdHlwZSwKKyAgICBDT0FMRVNDRShjb2MucmVs bmFtZSwgY2xydy5yZWxuYW1lKSBBUyBvd25lcnRhYmxlLAorICAgIENBU0Ug V0hFTiBjbC5yZWxuYW1lIElTIE5PVCBOVUxMIE9SIGF0dC5hdHRuYW1lIElT IE5PVCBOVUxMIFRIRU4gY2wucmVsbmFtZSB8fCAnLicgfHwgYXR0LmF0dG5h bWUKKyAgICBFTFNFIENPQUxFU0NFKGNsLnJlbG5hbWUsIGNvLmNvbm5hbWUs IHByLnByb25hbWUsIHRnLnRnbmFtZSwgdHkudHlwbmFtZSwgbGEubGFubmFt ZSwgcncucnVsZW5hbWUsIG5zLm5zcG5hbWUsIGZzLnNydm5hbWUsIGZkdy5m ZHduYW1lKQorICAgIEVORCBBUyByZWZuYW1lLAorICAgIENPQUxFU0NFKG5z Yy5uc3BuYW1lLCBuc28ubnNwbmFtZSwgbnNwLm5zcG5hbWUsIG5zdC5uc3Bu YW1lLCBuc3J3Lm5zcG5hbWUpIEFTIG5zcG5hbWUKK0ZST00gcGdfZGVwZW5k IGRlcAorTEVGVCBKT0lOIHBnX2NsYXNzIGNsIE9OIGRlcC5yZWZvYmppZD1j bC5vaWQKK0xFRlQgSk9JTiBwZ19hdHRyaWJ1dGUgYXR0IE9OIGRlcC5yZWZv YmppZD1hdHQuYXR0cmVsaWQgQU5EIGRlcC5yZWZvYmpzdWJpZD1hdHQuYXR0 bnVtCitMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5zYyBPTiBjbC5yZWxuYW1l c3BhY2U9bnNjLm9pZAorTEVGVCBKT0lOIHBnX3Byb2MgcHIgT04gZGVwLnJl Zm9iamlkPXByLm9pZAorTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuc3AgT04g cHIucHJvbmFtZXNwYWNlPW5zcC5vaWQKK0xFRlQgSk9JTiBwZ190cmlnZ2Vy IHRnIE9OIGRlcC5yZWZvYmppZD10Zy5vaWQKK0xFRlQgSk9JTiBwZ190eXBl IHR5IE9OIGRlcC5yZWZvYmppZD10eS5vaWQKK0xFRlQgSk9JTiBwZ19uYW1l c3BhY2UgbnN0IE9OIHR5LnR5cG5hbWVzcGFjZT1uc3Qub2lkCitMRUZUIEpP SU4gcGdfY29uc3RyYWludCBjbyBPTiBkZXAucmVmb2JqaWQ9Y28ub2lkCitM RUZUIEpPSU4gcGdfY2xhc3MgY29jIE9OIGNvLmNvbnJlbGlkPWNvYy5vaWQK K0xFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbnNvIE9OIGNvLmNvbm5hbWVzcGFj ZT1uc28ub2lkCitMRUZUIEpPSU4gcGdfcmV3cml0ZSBydyBPTiBkZXAucmVm b2JqaWQ9cncub2lkCitMRUZUIEpPSU4gcGdfY2xhc3MgY2xydyBPTiBjbHJ3 Lm9pZD1ydy5ldl9jbGFzcworTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuc3J3 IE9OIGNscncucmVsbmFtZXNwYWNlPW5zcncub2lkCitMRUZUIEpPSU4gcGdf bGFuZ3VhZ2UgbGEgT04gZGVwLnJlZm9iamlkPWxhLm9pZAorTEVGVCBKT0lO IHBnX25hbWVzcGFjZSBucyBPTiBkZXAucmVmb2JqaWQ9bnMub2lkCitMRUZU IEpPSU4gcGdfYXR0cmRlZiBhZCBPTiBhZC5hZHJlbGlkPWF0dC5hdHRyZWxp ZCBBTkQgYWQuYWRudW09YXR0LmF0dG51bQorTEVGVCBKT0lOIHBnX2ZvcmVp Z25fc2VydmVyIGZzIE9OIGZzLm9pZD1kZXAucmVmb2JqaWQKK0xFRlQgSk9J TiBwZ19mb3JlaWduX2RhdGFfd3JhcHBlciBmZHcgT04gZmR3Lm9pZD1kZXAu cmVmb2JqaWQKK3t7d2hlcmVfY2xhdXNlfX0gQU5ECityZWZjbGFzc2lkIElO ICggU0VMRUNUIG9pZCBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgSU4K KyAgICgncGdfY2xhc3MnLCAncGdfY29uc3RyYWludCcsICdwZ19jb252ZXJz aW9uJywgJ3BnX2xhbmd1YWdlJywgJ3BnX3Byb2MnLCAncGdfcmV3cml0ZScs ICdwZ19uYW1lc3BhY2UnLAorICAgJ3BnX3RyaWdnZXInLCAncGdfdHlwZScs ICdwZ19hdHRyZGVmJywgJ3BnX2V2ZW50X3RyaWdnZXInLCAncGdfZm9yZWln bl9zZXJ2ZXInLCAncGdfZm9yZWlnbl9kYXRhX3dyYXBwZXInKSkKK09SREVS IEJZIHJlZmNsYXNzaWQsIGNsLnJlbGtpbmQKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy90ZW1wbGF0ZXMvZGVwZW5kcy9zcWwvOS4x X3BsdXMvZGVwZW5kZW50cy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy90ZW1wbGF0ZXMvZGVwZW5kcy9zcWwvOS4x X3BsdXMvZGVwZW5kZW50cy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAuLjEyODE2NzJmCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVtcGxh dGVzL2RlcGVuZHMvc3FsLzkuMV9wbHVzL2RlcGVuZGVudHMuc3FsCkBAIC0w LDAgKzEsNDQgQEAKK1NFTEVDVCBESVNUSU5DVCBkZXAuZGVwdHlwZSwgZGVw LmNsYXNzaWQsIGNsLnJlbGtpbmQsIGFkLmFkYmluLCBhZC5hZHNyYywKKyAg ICBDQVNFIFdIRU4gY2wucmVsa2luZCBJUyBOT1QgTlVMTCBUSEVOIGNsLnJl bGtpbmQgfHwgQ09BTEVTQ0UoZGVwLm9ianN1YmlkOjp0ZXh0LCAnJykKKyAg ICAgICAgV0hFTiB0Zy5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnVCc6OnRleHQK KyAgICAgICAgV0hFTiB0eS5vaWQgSVMgTk9UIE5VTEwgVEhFTiAneSc6OnRl eHQKKyAgICAgICAgV0hFTiBucy5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnbic6 OnRleHQKKyAgICAgICAgV0hFTiBwci5vaWQgSVMgTk9UIE5VTEwgVEhFTiAn cCc6OnRleHQKKyAgICAgICAgV0hFTiBsYS5vaWQgSVMgTk9UIE5VTEwgVEhF TiAnbCc6OnRleHQKKyAgICAgICAgV0hFTiBydy5vaWQgSVMgTk9UIE5VTEwg VEhFTiAnUic6OnRleHQKKyAgICAgICAgV0hFTiBjby5vaWQgSVMgTk9UIE5V TEwgVEhFTiAnQyc6OnRleHQgfHwgY29udHlwZQorICAgICAgICBXSEVOIGFk Lm9pZCBJUyBOT1QgTlVMTCBUSEVOICdBJzo6dGV4dAorICAgICAgICBXSEVO IGZzLm9pZCBJUyBOT1QgTlVMTCBUSEVOICdGJzo6dGV4dAorICAgICAgICBX SEVOIGZkdy5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnZic6OnRleHQKKyAgICAg ICAgRUxTRSAnJworICAgIEVORCBBUyB0eXBlLAorICAgIENPQUxFU0NFKGNv Yy5yZWxuYW1lLCBjbHJ3LnJlbG5hbWUpIEFTIG93bmVydGFibGUsCisgICAg Q0FTRSBXSEVOIGNsLnJlbG5hbWUgSVMgTk9UIE5VTEwgQU5EIGF0dC5hdHRu YW1lIElTIE5PVCBOVUxMIFRIRU4gY2wucmVsbmFtZSB8fCAnLicgfHwgYXR0 LmF0dG5hbWUKKyAgICBFTFNFIENPQUxFU0NFKGNsLnJlbG5hbWUsIGNvLmNv bm5hbWUsIHByLnByb25hbWUsIHRnLnRnbmFtZSwgdHkudHlwbmFtZSwgbGEu bGFubmFtZSwgcncucnVsZW5hbWUsIG5zLm5zcG5hbWUsIGZzLnNydm5hbWUs IGZkdy5mZHduYW1lKQorICAgIEVORCBBUyByZWZuYW1lLAorICAgIENPQUxF U0NFKG5zYy5uc3BuYW1lLCBuc28ubnNwbmFtZSwgbnNwLm5zcG5hbWUsIG5z dC5uc3BuYW1lLCBuc3J3Lm5zcG5hbWUpIEFTIG5zcG5hbWUKK0ZST00gcGdf ZGVwZW5kIGRlcAorTEVGVCBKT0lOIHBnX2NsYXNzIGNsIE9OIGRlcC5vYmpp ZD1jbC5vaWQKK0xFRlQgSk9JTiBwZ19hdHRyaWJ1dGUgYXR0IE9OIGRlcC5v YmppZD1hdHQuYXR0cmVsaWQgQU5EIGRlcC5vYmpzdWJpZD1hdHQuYXR0bnVt CitMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5zYyBPTiBjbC5yZWxuYW1lc3Bh Y2U9bnNjLm9pZAorTEVGVCBKT0lOIHBnX3Byb2MgcHIgT04gZGVwLm9iamlk PXByLm9pZAorTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuc3AgT04gcHIucHJv bmFtZXNwYWNlPW5zcC5vaWQKK0xFRlQgSk9JTiBwZ190cmlnZ2VyIHRnIE9O IGRlcC5vYmppZD10Zy5vaWQKK0xFRlQgSk9JTiBwZ190eXBlIHR5IE9OIGRl cC5vYmppZD10eS5vaWQKK0xFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbnN0IE9O IHR5LnR5cG5hbWVzcGFjZT1uc3Qub2lkCitMRUZUIEpPSU4gcGdfY29uc3Ry YWludCBjbyBPTiBkZXAub2JqaWQ9Y28ub2lkCitMRUZUIEpPSU4gcGdfY2xh c3MgY29jIE9OIGNvLmNvbnJlbGlkPWNvYy5vaWQKK0xFRlQgSk9JTiBwZ19u YW1lc3BhY2UgbnNvIE9OIGNvLmNvbm5hbWVzcGFjZT1uc28ub2lkCitMRUZU IEpPSU4gcGdfcmV3cml0ZSBydyBPTiBkZXAub2JqaWQ9cncub2lkCitMRUZU IEpPSU4gcGdfY2xhc3MgY2xydyBPTiBjbHJ3Lm9pZD1ydy5ldl9jbGFzcwor TEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuc3J3IE9OIGNscncucmVsbmFtZXNw YWNlPW5zcncub2lkCitMRUZUIEpPSU4gcGdfbGFuZ3VhZ2UgbGEgT04gZGVw Lm9iamlkPWxhLm9pZAorTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBucyBPTiBk ZXAub2JqaWQ9bnMub2lkCitMRUZUIEpPSU4gcGdfYXR0cmRlZiBhZCBPTiBh ZC5vaWQ9ZGVwLm9iamlkCitMRUZUIEpPSU4gcGdfZm9yZWlnbl9zZXJ2ZXIg ZnMgT04gZnMub2lkPWRlcC5vYmppZAorTEVGVCBKT0lOIHBnX2ZvcmVpZ25f ZGF0YV93cmFwcGVyIGZkdyBPTiBmZHcub2lkPWRlcC5vYmppZAore3t3aGVy ZV9jbGF1c2V9fSBBTkQKK2NsYXNzaWQgSU4gKCBTRUxFQ1Qgb2lkIEZST00g cGdfY2xhc3MgV0hFUkUgcmVsbmFtZSBJTgorICAgKCdwZ19jbGFzcycsICdw Z19jb25zdHJhaW50JywgJ3BnX2NvbnZlcnNpb24nLCAncGdfbGFuZ3VhZ2Un LCAncGdfcHJvYycsICdwZ19yZXdyaXRlJywgJ3BnX25hbWVzcGFjZScsCisg ICAncGdfdHJpZ2dlcicsICdwZ190eXBlJywgJ3BnX2F0dHJkZWYnLCAncGdf ZXZlbnRfdHJpZ2dlcicsICdwZ19mb3JlaWduX3NlcnZlcicsICdwZ19mb3Jl aWduX2RhdGFfd3JhcHBlcicpKQorT1JERVIgQlkgY2xhc3NpZCwgY2wucmVs a2luZApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvdGVtcGxhdGVzL2RlcGVuZHMvc3FsL2RlZmF1bHQv ZGVwZW5kZW5jaWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL3RlbXBsYXRlcy9kZXBlbmRzL3NxbC9kZWZhdWx0 L2RlcGVuZGVuY2llcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAuLmFhZTU5ODJlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVtcGxhdGVz L2RlcGVuZHMvc3FsL2RlZmF1bHQvZGVwZW5kZW5jaWVzLnNxbApAQCAtMCww ICsxLDQyIEBACitTRVQgTE9DQUwgam9pbl9jb2xsYXBzZV9saW1pdD04Owor U0VMRUNUIERJU1RJTkNUIGRlcC5kZXB0eXBlLCBkZXAucmVmY2xhc3NpZCwg Y2wucmVsa2luZCwgYWQuYWRiaW4sIGFkLmFkc3JjLAorICAgIENBU0UgV0hF TiBjbC5yZWxraW5kIElTIE5PVCBOVUxMIFRIRU4gY2wucmVsa2luZCB8fCBD T0FMRVNDRShkZXAucmVmb2Jqc3ViaWQ6OmNoYXJhY3RlciB2YXJ5aW5nLCAn JykKKyAgICAgICAgV0hFTiB0Zy5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnVCc6 OnRleHQKKyAgICAgICAgV0hFTiB0eS5vaWQgSVMgTk9UIE5VTEwgQU5EIHR5 LnR5cGJhc2V0eXBlID0gMCBUSEVOICd5Jzo6dGV4dAorICAgICAgICBXSEVO IHR5Lm9pZCBJUyBOT1QgTlVMTCBBTkQgdHkudHlwYmFzZXR5cGUgIT0gMCBU SEVOICdkJzo6dGV4dAorICAgICAgICBXSEVOIG5zLm9pZCBJUyBOT1QgTlVM TCBUSEVOICduJzo6dGV4dAorICAgICAgICBXSEVOIHByLm9pZCBJUyBOT1Qg TlVMTCBUSEVOICdwJzo6dGV4dAorICAgICAgICBXSEVOIGxhLm9pZCBJUyBO T1QgTlVMTCBUSEVOICdsJzo6dGV4dAorICAgICAgICBXSEVOIHJ3Lm9pZCBJ UyBOT1QgTlVMTCBUSEVOICdSJzo6dGV4dAorICAgICAgICBXSEVOIGNvLm9p ZCBJUyBOT1QgTlVMTCBUSEVOICdDJzo6dGV4dCB8fCBjb250eXBlCisgICAg ICAgIFdIRU4gYWQub2lkIElTIE5PVCBOVUxMIFRIRU4gJ0EnOjp0ZXh0Cisg ICAgRUxTRSAnJworICAgIEVORCBBUyB0eXBlLAorICAgIENPQUxFU0NFKGNv Yy5yZWxuYW1lLCBjbHJ3LnJlbG5hbWUpIEFTIG93bmVydGFibGUsCisgICAg Q0FTRSBXSEVOIGNsLnJlbG5hbWUgSVMgTk9UIE5VTEwgT1IgYXR0LmF0dG5h bWUgSVMgTk9UIE5VTEwgVEhFTiBjbC5yZWxuYW1lIHx8ICcuJyB8fCBhdHQu YXR0bmFtZQorICAgIEVMU0UgQ09BTEVTQ0UoY2wucmVsbmFtZSwgY28uY29u bmFtZSwgcHIucHJvbmFtZSwgdGcudGduYW1lLCB0eS50eXBuYW1lLCBsYS5s YW5uYW1lLCBydy5ydWxlbmFtZSwgbnMubnNwbmFtZSkKKyAgICBFTkQgQVMg cmVmbmFtZSwKKyAgICBDT0FMRVNDRShuc2MubnNwbmFtZSwgbnNvLm5zcG5h bWUsIG5zcC5uc3BuYW1lLCBuc3QubnNwbmFtZSwgbnNydy5uc3BuYW1lKSBB UyBuc3BuYW1lCitGUk9NIHBnX2RlcGVuZCBkZXAKK0xFRlQgSk9JTiBwZ19j bGFzcyBjbCBPTiBkZXAucmVmb2JqaWQ9Y2wub2lkCitMRUZUIEpPSU4gcGdf YXR0cmlidXRlIGF0dCBPTiBkZXAucmVmb2JqaWQ9YXR0LmF0dHJlbGlkIEFO RCBkZXAucmVmb2Jqc3ViaWQ9YXR0LmF0dG51bQorTEVGVCBKT0lOIHBnX25h bWVzcGFjZSBuc2MgT04gY2wucmVsbmFtZXNwYWNlPW5zYy5vaWQKK0xFRlQg Sk9JTiBwZ19wcm9jIHByIE9OIGRlcC5yZWZvYmppZD1wci5vaWQKK0xFRlQg Sk9JTiBwZ19uYW1lc3BhY2UgbnNwIE9OIHByLnByb25hbWVzcGFjZT1uc3Au b2lkCitMRUZUIEpPSU4gcGdfdHJpZ2dlciB0ZyBPTiBkZXAucmVmb2JqaWQ9 dGcub2lkCitMRUZUIEpPSU4gcGdfdHlwZSB0eSBPTiBkZXAucmVmb2JqaWQ9 dHkub2lkCitMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5zdCBPTiB0eS50eXBu YW1lc3BhY2U9bnN0Lm9pZAorTEVGVCBKT0lOIHBnX2NvbnN0cmFpbnQgY28g T04gZGVwLnJlZm9iamlkPWNvLm9pZAorTEVGVCBKT0lOIHBnX2NsYXNzIGNv YyBPTiBjby5jb25yZWxpZD1jb2Mub2lkCitMRUZUIEpPSU4gcGdfbmFtZXNw YWNlIG5zbyBPTiBjby5jb25uYW1lc3BhY2U9bnNvLm9pZAorTEVGVCBKT0lO IHBnX3Jld3JpdGUgcncgT04gZGVwLnJlZm9iamlkPXJ3Lm9pZAorTEVGVCBK T0lOIHBnX2NsYXNzIGNscncgT04gY2xydy5vaWQ9cncuZXZfY2xhc3MKK0xF RlQgSk9JTiBwZ19uYW1lc3BhY2UgbnNydyBPTiBjbHJ3LnJlbG5hbWVzcGFj ZT1uc3J3Lm9pZAorTEVGVCBKT0lOIHBnX2xhbmd1YWdlIGxhIE9OIGRlcC5y ZWZvYmppZD1sYS5vaWQKK0xFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbnMgT04g ZGVwLnJlZm9iamlkPW5zLm9pZAorTEVGVCBKT0lOIHBnX2F0dHJkZWYgYWQg T04gYWQuYWRyZWxpZD1hdHQuYXR0cmVsaWQgQU5EIGFkLmFkbnVtPWF0dC5h dHRudW0KK3t7d2hlcmVfY2xhdXNlfX0gQU5ECityZWZjbGFzc2lkIElOICgg U0VMRUNUIG9pZCBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgSU4KKyAg ICgncGdfY2xhc3MnLCAncGdfY29uc3RyYWludCcsICdwZ19jb252ZXJzaW9u JywgJ3BnX2xhbmd1YWdlJywgJ3BnX3Byb2MnLCAncGdfcmV3cml0ZScsICdw Z19uYW1lc3BhY2UnLAorICAgJ3BnX3RyaWdnZXInLCAncGdfdHlwZScsICdw Z19hdHRyZGVmJywgJ3BnX2V2ZW50X3RyaWdnZXInLCAncGdfZm9yZWlnbl9z ZXJ2ZXInLCAncGdfZm9yZWlnbl9kYXRhX3dyYXBwZXInKSkKK09SREVSIEJZ IHJlZmNsYXNzaWQsIGNsLnJlbGtpbmQKXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy90ZW1wbGF0ZXMvZGVwZW5kcy9zcWwvZGVmYXVs dC9kZXBlbmRlbnRzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL3RlbXBsYXRlcy9kZXBlbmRzL3NxbC9kZWZhdWx0 L2RlcGVuZGVudHMuc3FsCmluZGV4IGUyYmEzZDZiLi4yZmUyZWYzZSAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGVtcGxhdGVzL2RlcGVuZHMvc3FsL2RlZmF1bHQvZGVwZW5kZW50 cy5zcWwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvdGVtcGxhdGVzL2RlcGVuZHMvc3FsL2RlZmF1bHQvZGVwZW5k ZW50cy5zcWwKQEAgLTEsNTkgKzEsNCBAQAoteyUgaWYgZmV0Y2hfZGVwZW5k ZW5jaWVzICV9Ci1TRUxFQ1QgRElTVElOQ1QgZGVwLmRlcHR5cGUsIGRlcC5y ZWZjbGFzc2lkLCBjbC5yZWxraW5kLCBhZC5hZGJpbiwgYWQuYWRzcmMsCi0g ICAgQ0FTRSBXSEVOIGNsLnJlbGtpbmQgSVMgTk9UIE5VTEwgVEhFTiBjbC5y ZWxraW5kIHx8IENPQUxFU0NFKGRlcC5yZWZvYmpzdWJpZDo6Y2hhcmFjdGVy IHZhcnlpbmcsICcnKQotICAgICAgICBXSEVOIHRnLm9pZCBJUyBOT1QgTlVM TCBUSEVOICdUJzo6dGV4dAotICAgICAgICBXSEVOIHR5Lm9pZCBJUyBOT1Qg TlVMTCBBTkQgdHkudHlwYmFzZXR5cGUgPSAwIFRIRU4gJ3knOjp0ZXh0Ci0g ICAgICAgIFdIRU4gdHkub2lkIElTIE5PVCBOVUxMIEFORCB0eS50eXBiYXNl dHlwZSAhPSAwIFRIRU4gJ2QnOjp0ZXh0Ci0gICAgICAgIFdIRU4gbnMub2lk IElTIE5PVCBOVUxMIFRIRU4gJ24nOjp0ZXh0Ci0gICAgICAgIFdIRU4gcHIu b2lkIElTIE5PVCBOVUxMIFRIRU4gJ3AnOjp0ZXh0Ci0gICAgICAgIFdIRU4g bGEub2lkIElTIE5PVCBOVUxMIFRIRU4gJ2wnOjp0ZXh0Ci0gICAgICAgIFdI RU4gcncub2lkIElTIE5PVCBOVUxMIFRIRU4gJ1InOjp0ZXh0Ci0gICAgICAg IFdIRU4gY28ub2lkIElTIE5PVCBOVUxMIFRIRU4gJ0MnOjp0ZXh0IHx8IGNv bnR5cGUKLSAgICAgICAgV0hFTiBhZC5vaWQgSVMgTk9UIE5VTEwgVEhFTiAn QSc6OnRleHQKLSAgICAgICAgV0hFTiBmcy5vaWQgSVMgTk9UIE5VTEwgVEhF TiAnRic6OnRleHQKLSAgICAgICAgV0hFTiBmZHcub2lkIElTIE5PVCBOVUxM IFRIRU4gJ2YnOjp0ZXh0Ci0gICAgRUxTRSAnJwotICAgIEVORCBBUyB0eXBl LAotICAgIENPQUxFU0NFKGNvYy5yZWxuYW1lLCBjbHJ3LnJlbG5hbWUpIEFT IG93bmVydGFibGUsCi0gICAgQ0FTRSBXSEVOIGNsLnJlbG5hbWUgSVMgTk9U IE5VTEwgT1IgYXR0LmF0dG5hbWUgSVMgTk9UIE5VTEwgVEhFTiBjbC5yZWxu YW1lIHx8ICcuJyB8fCBhdHQuYXR0bmFtZQotICAgIEVMU0UgQ09BTEVTQ0Uo Y2wucmVsbmFtZSwgY28uY29ubmFtZSwgcHIucHJvbmFtZSwgdGcudGduYW1l LCB0eS50eXBuYW1lLCBsYS5sYW5uYW1lLCBydy5ydWxlbmFtZSwgbnMubnNw bmFtZSwgZnMuc3J2bmFtZSwgZmR3LmZkd25hbWUpCi0gICAgRU5EIEFTIHJl Zm5hbWUsCi0gICAgQ09BTEVTQ0UobnNjLm5zcG5hbWUsIG5zby5uc3BuYW1l LCBuc3AubnNwbmFtZSwgbnN0Lm5zcG5hbWUsIG5zcncubnNwbmFtZSkgQVMg bnNwbmFtZQotRlJPTSBwZ19kZXBlbmQgZGVwCi1MRUZUIEpPSU4gcGdfY2xh c3MgY2wgT04gZGVwLnJlZm9iamlkPWNsLm9pZAotTEVGVCBKT0lOIHBnX2F0 dHJpYnV0ZSBhdHQgT04gZGVwLnJlZm9iamlkPWF0dC5hdHRyZWxpZCBBTkQg ZGVwLnJlZm9ianN1YmlkPWF0dC5hdHRudW0KLUxFRlQgSk9JTiBwZ19uYW1l c3BhY2UgbnNjIE9OIGNsLnJlbG5hbWVzcGFjZT1uc2Mub2lkCi1MRUZUIEpP SU4gcGdfcHJvYyBwciBPTiBkZXAucmVmb2JqaWQ9cHIub2lkCi1MRUZUIEpP SU4gcGdfbmFtZXNwYWNlIG5zcCBPTiBwci5wcm9uYW1lc3BhY2U9bnNwLm9p ZAotTEVGVCBKT0lOIHBnX3RyaWdnZXIgdGcgT04gZGVwLnJlZm9iamlkPXRn Lm9pZAotTEVGVCBKT0lOIHBnX3R5cGUgdHkgT04gZGVwLnJlZm9iamlkPXR5 Lm9pZAotTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuc3QgT04gdHkudHlwbmFt ZXNwYWNlPW5zdC5vaWQKLUxFRlQgSk9JTiBwZ19jb25zdHJhaW50IGNvIE9O IGRlcC5yZWZvYmppZD1jby5vaWQKLUxFRlQgSk9JTiBwZ19jbGFzcyBjb2Mg T04gY28uY29ucmVsaWQ9Y29jLm9pZAotTEVGVCBKT0lOIHBnX25hbWVzcGFj ZSBuc28gT04gY28uY29ubmFtZXNwYWNlPW5zby5vaWQKLUxFRlQgSk9JTiBw Z19yZXdyaXRlIHJ3IE9OIGRlcC5yZWZvYmppZD1ydy5vaWQKLUxFRlQgSk9J TiBwZ19jbGFzcyBjbHJ3IE9OIGNscncub2lkPXJ3LmV2X2NsYXNzCi1MRUZU IEpPSU4gcGdfbmFtZXNwYWNlIG5zcncgT04gY2xydy5yZWxuYW1lc3BhY2U9 bnNydy5vaWQKLUxFRlQgSk9JTiBwZ19sYW5ndWFnZSBsYSBPTiBkZXAucmVm b2JqaWQ9bGEub2lkCi1MRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5zIE9OIGRl cC5yZWZvYmppZD1ucy5vaWQKLUxFRlQgSk9JTiBwZ19hdHRyZGVmIGFkIE9O IGFkLmFkcmVsaWQ9YXR0LmF0dHJlbGlkIEFORCBhZC5hZG51bT1hdHQuYXR0 bnVtCi1MRUZUIEpPSU4gcGdfZm9yZWlnbl9zZXJ2ZXIgZnMgT04gZnMub2lk PWRlcC5yZWZvYmppZAotTEVGVCBKT0lOIHBnX2ZvcmVpZ25fZGF0YV93cmFw cGVyIGZkdyBPTiBmZHcub2lkPWRlcC5yZWZvYmppZAote3t3aGVyZV9jbGF1 c2V9fSBBTkQKLXJlZmNsYXNzaWQgSU4gKCBTRUxFQ1Qgb2lkIEZST00gcGdf Y2xhc3MgV0hFUkUgcmVsbmFtZSBJTgotICAgKCdwZ19jbGFzcycsICdwZ19j b25zdHJhaW50JywgJ3BnX2NvbnZlcnNpb24nLCAncGdfbGFuZ3VhZ2UnLCAn cGdfcHJvYycsICdwZ19yZXdyaXRlJywgJ3BnX25hbWVzcGFjZScsCi0gICAn cGdfdHJpZ2dlcicsICdwZ190eXBlJywgJ3BnX2F0dHJkZWYnLCAncGdfZXZl bnRfdHJpZ2dlcicsICdwZ19mb3JlaWduX3NlcnZlcicsICdwZ19mb3JlaWdu X2RhdGFfd3JhcHBlcicpKQotT1JERVIgQlkgcmVmY2xhc3NpZCwgY2wucmVs a2luZAoteyUgZW5kaWYgJX0KLQoteyUgaWYgZmV0Y2hfcm9sZV9kZXBlbmRl bmNpZXMgJX0KLVNFTEVDVCByb2xuYW1lIEFTIHJlZm5hbWUsIHJlZmNsYXNz aWQsIGRlcHR5cGUKLUZST00gcGdfc2hkZXBlbmQgZGVwCi1MRUZUIEpPSU4g cGdfcm9sZXMgciBPTiByZWZjbGFzc2lkPTEyNjAgQU5EIHJlZm9iamlkPXIu b2lkCi17e3doZXJlX2NsYXVzZX19IE9SREVSIEJZIDEKLXslIGVuZGlmICV9 Ci0KLXslIGlmIGZldGNoX2RlcGVuZGVudHMgJX0KK1NFVCBMT0NBTCBqb2lu X2NvbGxhcHNlX2xpbWl0PTg7CiBTRUxFQ1QgRElTVElOQ1QgZGVwLmRlcHR5 cGUsIGRlcC5jbGFzc2lkLCBjbC5yZWxraW5kLCBhZC5hZGJpbiwgYWQuYWRz cmMsCiAgICAgQ0FTRSBXSEVOIGNsLnJlbGtpbmQgSVMgTk9UIE5VTEwgVEhF TiBjbC5yZWxraW5kIHx8IENPQUxFU0NFKGRlcC5vYmpzdWJpZDo6dGV4dCwg JycpCiAgICAgICAgIFdIRU4gdGcub2lkIElTIE5PVCBOVUxMIFRIRU4gJ1Qn Ojp0ZXh0CkBAIC02NCwxMyArOSwxMSBAQCBTRUxFQ1QgRElTVElOQ1QgZGVw LmRlcHR5cGUsIGRlcC5jbGFzc2lkLCBjbC5yZWxraW5kLCBhZC5hZGJpbiwg YWQuYWRzcmMsCiAgICAgICAgIFdIRU4gcncub2lkIElTIE5PVCBOVUxMIFRI RU4gJ1InOjp0ZXh0CiAgICAgICAgIFdIRU4gY28ub2lkIElTIE5PVCBOVUxM IFRIRU4gJ0MnOjp0ZXh0IHx8IGNvbnR5cGUKICAgICAgICAgV0hFTiBhZC5v aWQgSVMgTk9UIE5VTEwgVEhFTiAnQSc6OnRleHQKLSAgICAgICAgV0hFTiBm cy5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnRic6OnRleHQKLSAgICAgICAgV0hF TiBmZHcub2lkIElTIE5PVCBOVUxMIFRIRU4gJ2YnOjp0ZXh0CiAgICAgICAg IEVMU0UgJycKICAgICBFTkQgQVMgdHlwZSwKICAgICBDT0FMRVNDRShjb2Mu cmVsbmFtZSwgY2xydy5yZWxuYW1lKSBBUyBvd25lcnRhYmxlLAogICAgIENB U0UgV0hFTiBjbC5yZWxuYW1lIElTIE5PVCBOVUxMIEFORCBhdHQuYXR0bmFt ZSBJUyBOT1QgTlVMTCBUSEVOIGNsLnJlbG5hbWUgfHwgJy4nIHx8IGF0dC5h dHRuYW1lCi0gICAgRUxTRSBDT0FMRVNDRShjbC5yZWxuYW1lLCBjby5jb25u YW1lLCBwci5wcm9uYW1lLCB0Zy50Z25hbWUsIHR5LnR5cG5hbWUsIGxhLmxh bm5hbWUsIHJ3LnJ1bGVuYW1lLCBucy5uc3BuYW1lLCBmcy5zcnZuYW1lLCBm ZHcuZmR3bmFtZSkKKyAgICBFTFNFIENPQUxFU0NFKGNsLnJlbG5hbWUsIGNv LmNvbm5hbWUsIHByLnByb25hbWUsIHRnLnRnbmFtZSwgdHkudHlwbmFtZSwg bGEubGFubmFtZSwgcncucnVsZW5hbWUsIG5zLm5zcG5hbWUpCiAgICAgRU5E IEFTIHJlZm5hbWUsCiAgICAgQ09BTEVTQ0UobnNjLm5zcG5hbWUsIG5zby5u c3BuYW1lLCBuc3AubnNwbmFtZSwgbnN0Lm5zcG5hbWUsIG5zcncubnNwbmFt ZSkgQVMgbnNwbmFtZQogRlJPTSBwZ19kZXBlbmQgZGVwCkBAIC05MSwxMSAr MzQsOCBAQCBMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5zcncgT04gY2xydy5y ZWxuYW1lc3BhY2U9bnNydy5vaWQKIExFRlQgSk9JTiBwZ19sYW5ndWFnZSBs YSBPTiBkZXAub2JqaWQ9bGEub2lkCiBMRUZUIEpPSU4gcGdfbmFtZXNwYWNl IG5zIE9OIGRlcC5vYmppZD1ucy5vaWQKIExFRlQgSk9JTiBwZ19hdHRyZGVm IGFkIE9OIGFkLm9pZD1kZXAub2JqaWQKLUxFRlQgSk9JTiBwZ19mb3JlaWdu X3NlcnZlciBmcyBPTiBmcy5vaWQ9ZGVwLm9iamlkCi1MRUZUIEpPSU4gcGdf Zm9yZWlnbl9kYXRhX3dyYXBwZXIgZmR3IE9OIGZkdy5vaWQ9ZGVwLm9iamlk CiB7e3doZXJlX2NsYXVzZX19IEFORAogY2xhc3NpZCBJTiAoIFNFTEVDVCBv aWQgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lIElOCiAgICAoJ3BnX2Ns YXNzJywgJ3BnX2NvbnN0cmFpbnQnLCAncGdfY29udmVyc2lvbicsICdwZ19s YW5ndWFnZScsICdwZ19wcm9jJywgJ3BnX3Jld3JpdGUnLCAncGdfbmFtZXNw YWNlJywKICAgICdwZ190cmlnZ2VyJywgJ3BnX3R5cGUnLCAncGdfYXR0cmRl ZicsICdwZ19ldmVudF90cmlnZ2VyJywgJ3BnX2ZvcmVpZ25fc2VydmVyJywg J3BnX2ZvcmVpZ25fZGF0YV93cmFwcGVyJykpCi1PUkRFUiBCWSBjbGFzc2lk LCBjbC5yZWxraW5kCi17JSBlbmRpZiAlfQorT1JERVIgQlkgY2xhc3NpZCwg Y2wucmVsa2luZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RlbXBsYXRlcy9kZXBlbmRzL3NxbC9k ZWZhdWx0L3JvbGVfZGVwZW5kZW5jaWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RlbXBsYXRlcy9kZXBlbmRz L3NxbC9kZWZhdWx0L3JvbGVfZGVwZW5kZW5jaWVzLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uMjVmYzNmODUKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy90ZW1wbGF0ZXMvZGVwZW5kcy9zcWwvZGVmYXVsdC9yb2xlX2Rl cGVuZGVuY2llcy5zcWwKQEAgLTAsMCArMSw0IEBACitTRUxFQ1Qgcm9sbmFt ZSBBUyByZWZuYW1lLCByZWZjbGFzc2lkLCBkZXB0eXBlCitGUk9NIHBnX3No ZGVwZW5kIGRlcAorTEVGVCBKT0lOIHBnX3JvbGVzIHIgT04gcmVmY2xhc3Np ZD0xMjYwIEFORCByZWZvYmppZD1yLm9pZAore3t3aGVyZV9jbGF1c2V9fSBP UkRFUiBCWSAxCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2RlcGVuZGVuY2llc19z cWxfdGVtcGxhdGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2RlcGVuZGVuY2llc19zcWxfdGVt cGxhdGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAu LmY3ZDJmZTY0Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9kZXBlbmRl bmNpZXNfc3FsX3RlbXBsYXRlLnB5CkBAIC0wLDAgKzEsNTEgQEAKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBv c3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAx NywgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3 YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UK KyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCBv cworCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMuc3FsX3Rl bXBsYXRlX3Rlc3RfYmFzZSBpbXBvcnQgU1FMVGVtcGxhdGVUZXN0QmFzZQor ZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzLnRlbXBsYXRlX2hl bHBlciBpbXBvcnQgZmlsZV9hc190ZW1wbGF0ZQorCisKK2NsYXNzIFRlc3RE ZXBlbmRlbmNpZXNTcWxUZW1wbGF0ZShTUUxUZW1wbGF0ZVRlc3RCYXNlKToK KyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVs dCBVUkwgZm9yIHNjaGVtYSBub2RlLgorICAgICAgICAoJ1Rlc3QgZGVwZW5k ZW5jaWVzIFNRTCBmaWxlJywgZGljdCgpKQorICAgIF0KKworICAgIGRlZiBf X2luaXRfXyhzZWxmKToKKyAgICAgICAgc3VwZXIoVGVzdERlcGVuZGVuY2ll c1NxbFRlbXBsYXRlLCBzZWxmKS5fX2luaXRfXygpCisgICAgICAgIHNlbGYu dGFibGVfaWQgPSAtMQorCisgICAgZGVmIHRlc3Rfc2V0dXAoc2VsZiwgY29u bmVjdGlvbiwgY3Vyc29yKToKKyAgICAgICAgY3Vyc29yLmV4ZWN1dGUoIlNF TEVDVCBwZ19jbGFzcy5vaWQgQVMgdGFibGVfaWQgIgorICAgICAgICAgICAg ICAgICAgICAgICAiRlJPTSBwZ19jbGFzcyAiCisgICAgICAgICAgICAgICAg ICAgICAgICJXSEVSRSBwZ19jbGFzcy5yZWxuYW1lPSd0ZXN0X3RhYmxlJyIp CisgICAgICAgIHNlbGYudGFibGVfaWQgPSBjdXJzb3IuZmV0Y2hvbmUoKVsw XQorCisgICAgZGVmIGdlbmVyYXRlX3NxbChzZWxmLCB2ZXJzaW9uKToKKyAg ICAgICAgdGVtcGxhdGVfZmlsZSA9IHNlbGYuZ2V0X3RlbXBsYXRlX2ZpbGUo dmVyc2lvbiwgImRlcGVuZGVuY2llcy5zcWwiKQorICAgICAgICB0ZW1wbGF0 ZSA9IGZpbGVfYXNfdGVtcGxhdGUodGVtcGxhdGVfZmlsZSkKKyAgICAgICAg c3FsID0gdGVtcGxhdGUucmVuZGVyKHdoZXJlX2NsYXVzZT0iV0hFUkUgZGVw Lm9iamlkPSVzOjpvaWQiICUgc2VsZi50YWJsZV9pZCkKKworICAgICAgICBy ZXR1cm4gc3FsCisKKyAgICBkZWYgYXNzZXJ0aW9ucyhzZWxmLCBmZXRjaF9y ZXN1bHQsIGRlc2NyaXB0aW9ucyk6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWwoMSwgbGVuKGZldGNoX3Jlc3VsdCkpCisKKyAgICAgICAgZmlyc3Rfcm93 ID0ge30KKyAgICAgICAgZm9yIGluZGV4LCBkZXNjcmlwdGlvbiBpbiBlbnVt ZXJhdGUoZGVzY3JpcHRpb25zKToKKyAgICAgICAgICAgIGZpcnN0X3Jvd1tk ZXNjcmlwdGlvbi5uYW1lXSA9IGZldGNoX3Jlc3VsdFswXVtpbmRleF0KKwor ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCduJywgZmlyc3Rfcm93WyJkZXB0 eXBlIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3B1YmxpYycsIGZp cnN0X3Jvd1sicmVmbmFtZSJdKQorCisgICAgQHN0YXRpY21ldGhvZAorICAg IGRlZiBnZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCBmaWxlbmFtZSk6Cisg ICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9f ZmlsZV9fKSwgIi4uIiwgInRlbXBsYXRlcyIsICJkZXBlbmRzIiwgInNxbCIs IHZlcnNpb24sIGZpbGVuYW1lKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9kZXBl bmRlbnRzX3NxbF90ZW1wbGF0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfZGVwZW5kZW50c19z cWxfdGVtcGxhdGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAuLjAwNjhjZDQ1Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9k ZXBlbmRlbnRzX3NxbF90ZW1wbGF0ZS5weQpAQCAtMCwwICsxLDUyIEBACisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQg LSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAt IDIwMTcsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBz b2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNl bmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBv cnQgb3MKKworZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzLnNx bF90ZW1wbGF0ZV90ZXN0X2Jhc2UgaW1wb3J0IFNRTFRlbXBsYXRlVGVzdEJh c2UKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscy50ZW1wbGF0 ZV9oZWxwZXIgaW1wb3J0IGZpbGVfYXNfdGVtcGxhdGUKKworCisKK2NsYXNz IFRlc3REZXBlbmRlbnRzU3FsVGVtcGxhdGUoU1FMVGVtcGxhdGVUZXN0QmFz ZSk6CisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5nIGRl ZmF1bHQgVVJMIGZvciBzY2hlbWEgbm9kZS4KKyAgICAgICAgKCdUZXN0IGRl cGVuZGVuY2llcyBTUUwgZmlsZScsIGRpY3QoKSkKKyAgICBdCisKKyAgICBk ZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHN1cGVyKFRlc3REZXBlbmRl bnRzU3FsVGVtcGxhdGUsIHNlbGYpLl9faW5pdF9fKCkKKyAgICAgICAgc2Vs Zi50YWJsZV9pZCA9IC0xCisKKyAgICBkZWYgdGVzdF9zZXR1cChzZWxmLCBj b25uZWN0aW9uLCBjdXJzb3IpOgorICAgICAgICBjdXJzb3IuZXhlY3V0ZSgi U0VMRUNUIHBnX2NsYXNzLm9pZCBBUyB0YWJsZV9pZCAiCisgICAgICAgICAg ICAgICAgICAgICAgICJGUk9NIHBnX2NsYXNzICIKKyAgICAgICAgICAgICAg ICAgICAgICAgIldIRVJFIHBnX2NsYXNzLnJlbG5hbWU9J3Rlc3RfdGFibGUn IikKKyAgICAgICAgc2VsZi50YWJsZV9pZCA9IGN1cnNvci5mZXRjaG9uZSgp WzBdCisKKyAgICBkZWYgZ2VuZXJhdGVfc3FsKHNlbGYsIHZlcnNpb24pOgor ICAgICAgICB0ZW1wbGF0ZV9maWxlID0gc2VsZi5nZXRfdGVtcGxhdGVfZmls ZSh2ZXJzaW9uLCAiZGVwZW5kZW50cy5zcWwiKQorICAgICAgICB0ZW1wbGF0 ZSA9IGZpbGVfYXNfdGVtcGxhdGUodGVtcGxhdGVfZmlsZSkKKyAgICAgICAg c3FsID0gdGVtcGxhdGUucmVuZGVyKHdoZXJlX2NsYXVzZT0iV0hFUkUgZGVw Lm9iamlkPSVzOjpvaWQiICUgc2VsZi50YWJsZV9pZCkKKworICAgICAgICBy ZXR1cm4gc3FsCisKKyAgICBkZWYgYXNzZXJ0aW9ucyhzZWxmLCBmZXRjaF9y ZXN1bHQsIGRlc2NyaXB0aW9ucyk6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWwoMSwgbGVuKGZldGNoX3Jlc3VsdCkpCisKKyAgICAgICAgZmlyc3Rfcm93 ID0ge30KKyAgICAgICAgZm9yIGluZGV4LCBkZXNjcmlwdGlvbiBpbiBlbnVt ZXJhdGUoZGVzY3JpcHRpb25zKToKKyAgICAgICAgICAgIGZpcnN0X3Jvd1tk ZXNjcmlwdGlvbi5uYW1lXSA9IGZldGNoX3Jlc3VsdFswXVtpbmRleF0KKwor ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCduJywgZmlyc3Rfcm93WyJkZXB0 eXBlIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3Rlc3RfdGFibGUn LCBmaXJzdF9yb3dbInJlZm5hbWUiXSkKKworICAgIEBzdGF0aWNtZXRob2QK KyAgICBkZWYgZ2V0X3RlbXBsYXRlX2ZpbGUodmVyc2lvbiwgZmlsZW5hbWUp OgorICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFt ZShfX2ZpbGVfXyksICIuLiIsICJ0ZW1wbGF0ZXMiLCAiZGVwZW5kcyIsICJz cWwiLCB2ZXJzaW9uLCBmaWxlbmFtZSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rf cm9sZV9kZXBlbmRlbmNpZXNfc3FsX3RlbXBsYXRlLnB5IGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9y b2xlX2RlcGVuZGVuY2llc19zcWxfdGVtcGxhdGUucHkKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLmExYmVkYzRjCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGVzdHMvdGVzdF9yb2xlX2RlcGVuZGVuY2llc19zcWxfdGVtcGxh dGUucHkKQEAgLTAsMCArMSw1MiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwor IworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE3LCBUaGUgcGdBZG1pbiBE ZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQg dW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IG9zCisKK2Zyb20gcmVncmVz c2lvbi5weXRob25fdGVzdF91dGlscy5zcWxfdGVtcGxhdGVfdGVzdF9iYXNl IGltcG9ydCBTUUxUZW1wbGF0ZVRlc3RCYXNlCitmcm9tIHJlZ3Jlc3Npb24u cHl0aG9uX3Rlc3RfdXRpbHMudGVtcGxhdGVfaGVscGVyIGltcG9ydCBmaWxl X2FzX3RlbXBsYXRlCisKKworCitjbGFzcyBUZXN0Um9sZURlcGVuZGVuY2ll c1NxbFRlbXBsYXRlKFNRTFRlbXBsYXRlVGVzdEJhc2UpOgorICAgIHNjZW5h cmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3Ig c2NoZW1hIG5vZGUuCisgICAgICAgICgnVGVzdCBSb2xlIERlcGVuZGVuY2ll cyBTUUwgZmlsZScsIGRpY3QoKSkKKyAgICBdCisKKyAgICBkZWYgX19pbml0 X18oc2VsZik6CisgICAgICAgIHN1cGVyKFRlc3RSb2xlRGVwZW5kZW5jaWVz U3FsVGVtcGxhdGUsIHNlbGYpLl9faW5pdF9fKCkKKyAgICAgICAgc2VsZi50 YWJsZV9pZCA9IC0xCisKKyAgICBkZWYgdGVzdF9zZXR1cChzZWxmLCBjb25u ZWN0aW9uLCBjdXJzb3IpOgorICAgICAgICBjdXJzb3IuZXhlY3V0ZSgiU0VM RUNUIHBnX2NsYXNzLm9pZCBBUyB0YWJsZV9pZCAiCisgICAgICAgICAgICAg ICAgICAgICAgICJGUk9NIHBnX2NsYXNzICIKKyAgICAgICAgICAgICAgICAg ICAgICAgIldIRVJFIHBnX2NsYXNzLnJlbG5hbWU9J3Rlc3RfdGFibGUnIikK KyAgICAgICAgc2VsZi50YWJsZV9pZCA9IGN1cnNvci5mZXRjaG9uZSgpWzBd CisgICAgICAgIHNlbGYudmVyc2lvbnNfdG9fdGVzdCA9IFsnZGVmYXVsdCdd CisKKyAgICBkZWYgZ2VuZXJhdGVfc3FsKHNlbGYsIHZlcnNpb24pOgorICAg ICAgICB0ZW1wbGF0ZV9maWxlID0gc2VsZi5nZXRfdGVtcGxhdGVfZmlsZSh2 ZXJzaW9uLCAicm9sZV9kZXBlbmRlbmNpZXMuc3FsIikKKyAgICAgICAgdGVt cGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRlKHRlbXBsYXRlX2ZpbGUpCisgICAg ICAgIHNxbCA9IHRlbXBsYXRlLnJlbmRlcih3aGVyZV9jbGF1c2U9IldIRVJF IGRlcC5vYmppZD0lczo6b2lkIiAlIHNlbGYudGFibGVfaWQpCisKKyAgICAg ICAgcmV0dXJuIHNxbAorCisgICAgZGVmIGFzc2VydGlvbnMoc2VsZiwgZmV0 Y2hfcmVzdWx0LCBkZXNjcmlwdGlvbnMpOgorICAgICAgICBzZWxmLmFzc2Vy dEVxdWFsKDEsIGxlbihmZXRjaF9yZXN1bHQpKQorCisgICAgICAgIGZpcnN0 X3JvdyA9IHt9CisgICAgICAgIGZvciBpbmRleCwgZGVzY3JpcHRpb24gaW4g ZW51bWVyYXRlKGRlc2NyaXB0aW9ucyk6CisgICAgICAgICAgICBmaXJzdF9y b3dbZGVzY3JpcHRpb24ubmFtZV0gPSBmZXRjaF9yZXN1bHRbMF1baW5kZXhd CisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnbycsIGZpcnN0X3Jvd1si ZGVwdHlwZSJdKQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBnZXRf dGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCBmaWxlbmFtZSk6CisgICAgICAgIHJl dHVybiBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwg Ii4uIiwgInRlbXBsYXRlcyIsICJkZXBlbmRzIiwgInNxbCIsIHZlcnNpb24s IGZpbGVuYW1lKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci91 dGlscy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdXRpbHMucHkKaW5kZXgg ZDI4OTk4NzUuLjcwOGJmZGZiIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9i cm93c2VyL3V0aWxzLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdXRp bHMucHkKQEAgLTM1MywxNSArMzUzLDE1IEBAIGNsYXNzIFBHQ2hpbGROb2Rl VmlldyhOb2RlVmlldyk6CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICB3 aGVyZV9jbGF1c2UgPSB3aGVyZQogCi0gICAgICAgIHF1ZXJ5ID0gcmVuZGVy X3RlbXBsYXRlKCIvIi5qb2luKFtzcWxfcGF0aCwgJ2RlcGVuZGVudHMuc3Fs J10pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaF9k ZXBlbmRlbmNpZXM9VHJ1ZSwgd2hlcmVfY2xhdXNlPXdoZXJlX2NsYXVzZSkK KyAgICAgICAgcXVlcnkgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3Nx bF9wYXRoLCAnZGVwZW5kZW5jaWVzLnNxbCddKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgd2hlcmVfY2xhdXNlPXdoZXJlX2NsYXVzZSkK ICAgICAgICAgIyBmZXRjaCB0aGUgZGVwZW5kZW5jeSBmb3IgdGhlIHNlbGVj dGVkIG9iamVjdAogICAgICAgICBkZXBlbmRlbmNpZXMgPSBzZWxmLl9fZmV0 Y2hfZGVwZW5kZW5jeShjb25uLCBxdWVyeSkKIAogICAgICAgICAjIGZldGNo IHJvbGUgZGVwZW5kZW5jaWVzCiAgICAgICAgIGlmIHdoZXJlX2NsYXVzZS5m aW5kKCdzdWJpZCcpIDwgMDoKLSAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90 ZW1wbGF0ZSgiLyIuam9pbihbc3FsX3BhdGgsICdkZXBlbmRlbnRzLnNxbCdd KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaF9y b2xlX2RlcGVuZGVuY2llcz1UcnVlLCB3aGVyZV9jbGF1c2U9d2hlcmVfY2xh dXNlKQorICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5q b2luKFtzcWxfcGF0aCwgJ3JvbGVfZGVwZW5kZW5jaWVzLnNxbCddKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGVyZV9jbGF1c2U9 d2hlcmVfY2xhdXNlKQogCiAgICAgICAgICAgICBzdGF0dXMsIHJlc3VsdCA9 IGNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKICAgICAgICAgICAgIGlmIG5vdCBz dGF0dXM6CkBAIC00MDIsNyArNDAyLDcgQEAgY2xhc3MgUEdDaGlsZE5vZGVW aWV3KE5vZGVWaWV3KToKICAgICAgICAgICAgIHdoZXJlX2NsYXVzZSA9IHdo ZXJlCiAKICAgICAgICAgcXVlcnkgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpv aW4oW3NxbF9wYXRoLCAnZGVwZW5kZW50cy5zcWwnXSksCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZldGNoX2RlcGVuZGVudHM9VHJ1ZSwg d2hlcmVfY2xhdXNlPXdoZXJlX2NsYXVzZSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgd2hlcmVfY2xhdXNlPXdoZXJlX2NsYXVzZSkKICAg ICAgICAgIyBmZXRjaCB0aGUgZGVwZW5kZW5jeSBmb3IgdGhlIHNlbGVjdGVk IG9iamVjdAogICAgICAgICBkZXBlbmRlbnRzID0gc2VsZi5fX2ZldGNoX2Rl cGVuZGVuY3koY29ubiwgcXVlcnkpCiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2ZlYXR1cmVfdGVzdHMvY29weV9zZWxlY3RlZF9xdWVyeV9yZXN1bHRz X2ZlYXR1cmVfdGVzdC5weSBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMv Y29weV9zZWxlY3RlZF9xdWVyeV9yZXN1bHRzX2ZlYXR1cmVfdGVzdC5weQpp bmRleCAyMjM1NzllZS4uMzM4ZTVmNzEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL2ZlYXR1cmVfdGVzdHMvY29weV9zZWxlY3RlZF9xdWVyeV9yZXN1bHRz X2ZlYXR1cmVfdGVzdC5weQorKysgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rl c3RzL2NvcHlfc2VsZWN0ZWRfcXVlcnlfcmVzdWx0c19mZWF0dXJlX3Rlc3Qu cHkKQEAgLTEsMyArMSwxMiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIwor IyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE3LCBUaGUgcGdBZG1pbiBEZXZl bG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5k ZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKwogaW1wb3J0IHB5cGVyY2xpcAogaW1wb3J0IHRp bWUKIApAQCAtMzcsNyArNDYsNyBAQCBjbGFzcyBDb3B5U2VsZWN0ZWRRdWVy eVJlc3VsdHNGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAg ICBzZWxmLnBhZ2UuZmluZF9ieV9wYXJ0aWFsX2xpbmtfdGV4dCgiUXVlcnkg VG9vbCIpLmNsaWNrKCkKICAgICAgICAgc2VsZi5wYWdlLmNsaWNrX3RhYign UXVlcnktMScpCiAgICAgICAgIHRpbWUuc2xlZXAoNSkKLSAgICAgICAgQWN0 aW9uQ2hhaW5zKHNlbGYucGFnZS5kcml2ZXIpLnNlbmRfa2V5cygiU0VMRUNU ICogRlJPTSB0ZXN0X3RhYmxlIikucGVyZm9ybSgpCisgICAgICAgIEFjdGlv bkNoYWlucyhzZWxmLnBhZ2UuZHJpdmVyKS5zZW5kX2tleXMoIlNFTEVDVCAq IEZST00gdGVzdF90YWJsZSBPUkRFUiBCWSBzb21lX2NvbHVtbiIpLnBlcmZv cm0oKQogICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyLnN3aXRjaF90b19mcmFt ZShzZWxmLnBhZ2UuZHJpdmVyLmZpbmRfZWxlbWVudF9ieV90YWdfbmFtZSgi aWZyYW1lIikpCiAgICAgICAgIHNlbGYucGFnZS5maW5kX2J5X2lkKCJidG4t Zmxhc2giKS5jbGljaygpCiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Zl YXR1cmVfdGVzdHMveHNzX2NoZWNrc19wZ2FkbWluX2RlYnVnZ2VyX3Rlc3Qu cHkgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3hzc19jaGVja3NfcGdh ZG1pbl9kZWJ1Z2dlcl90ZXN0LnB5CmluZGV4IDhiMDE4ZmVkLi4xN2JjN2Jm NSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy94c3Nf Y2hlY2tzX3BnYWRtaW5fZGVidWdnZXJfdGVzdC5weQorKysgYi93ZWIvcGdh ZG1pbi9mZWF0dXJlX3Rlc3RzL3hzc19jaGVja3NfcGdhZG1pbl9kZWJ1Z2dl cl90ZXN0LnB5CkBAIC0xNiwxMCArMTYsMTQgQEAgY2xhc3MgQ2hlY2tEZWJ1 Z2dlckZvclhzc0ZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAg IiIiVGVzdHMgdG8gY2hlY2sgaWYgRGVidWdnZXIgaXMgdnVsbmVyYWJsZSB0 byBYU1MuIiIiCiAKICAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgiVGVz dCB0YWJsZSBEREwgZ2VuZXJhdGlvbiIsIGRpY3QoKSkKKyAgICAgICAgKCJU ZXN0cyB0byBjaGVjayBpZiBEZWJ1Z2dlciBpcyB2dWxuZXJhYmxlIHRvIFhT UyIsIGRpY3QoKSkKICAgICBdCiAKICAgICBkZWYgYmVmb3JlKHNlbGYpOgor ICAgICAgICB3aXRoIHRlc3RfdXRpbHMuRGF0YWJhc2Uoc2VsZi5zZXJ2ZXIp IGFzIChjb25uZWN0aW9uLCBfKToKKyAgICAgICAgICAgIGlmIGNvbm5lY3Rp b24uc2VydmVyX3ZlcnNpb24gPCA5MDEwMDoKKyAgICAgICAgICAgICAgICBz ZWxmLnNraXBUZXN0KCJGdW5jdGlvbnMgdHJlZSBub2RlIGlzIG5vdCBwcmVz ZW50IGluIHBnQWRtaW4gYmVsb3cgUEcgdjkuMSIpCisKICAgICAgICAgIyBT b21lIHRlc3QgZnVuY3Rpb24gaXMgbmVlZGVkIGZvciBkZWJ1Z2dlcgogICAg ICAgICB0ZXN0X3V0aWxzLmNyZWF0ZV9kZWJ1Z19mdW5jdGlvbihzZWxmLnNl cnZlciwgInBvc3RncmVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgInRlc3RfZnVuY3Rpb24iKQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90cmlnZ2VyL3NxbC90ZXN0cy90 ZXN0X3RyaWdnZXJfbm9kZXMucHkgYi93ZWIvcmVncmVzc2lvbi9weXRob25f dGVzdF91dGlscy9zcWxfdGVtcGxhdGVfdGVzdF9iYXNlLnB5CnNpbWlsYXJp dHkgaW5kZXggNjElCnJlbmFtZSBmcm9tIHdlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy90ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvdGVzdHMvdGVzdF90cmlnZ2VyX25v ZGVzLnB5CnJlbmFtZSB0byB3ZWIvcmVncmVzc2lvbi9weXRob25fdGVzdF91 dGlscy9zcWxfdGVtcGxhdGVfdGVzdF9iYXNlLnB5CmluZGV4IGIyM2JmNjBh Li5iZjBmNjgyMCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L3RlbXBsYXRlcy90cmlnZ2VyL3NxbC90ZXN0cy90ZXN0X3RyaWdnZXJfbm9k ZXMucHkKKysrIGIvd2ViL3JlZ3Jlc3Npb24vcHl0aG9uX3Rlc3RfdXRpbHMv c3FsX3RlbXBsYXRlX3Rlc3RfYmFzZS5weQpAQCAtNyw0NSArNyw1NyBAQAog IwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAotaW1wb3J0IG9z CiBpbXBvcnQgc3lzCi0KK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBv cnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbi5weXRob25f dGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscwogZnJvbSBwZ2FkbWluLnV0 aWxzLmRyaXZlciBpbXBvcnQgRHJpdmVyUmVnaXN0cnkKLWZyb20gcmVncmVz c2lvbi5weXRob25fdGVzdF91dGlscy50ZW1wbGF0ZV9oZWxwZXIgaW1wb3J0 IGZpbGVfYXNfdGVtcGxhdGUKIAogRHJpdmVyUmVnaXN0cnkubG9hZF9kcml2 ZXJzKCkKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRl c3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGls cyBpbXBvcnQgdGVzdF91dGlscwogCiBpZiBzeXMudmVyc2lvbl9pbmZvWzBd ID49IDM6CiAgICAgbG9uZyA9IGludAogCiAKLWNsYXNzIFRlc3RUcmlnZ2Vy Tm9kZXMoQmFzZVRlc3RHZW5lcmF0b3IpOgorY2xhc3MgU1FMVGVtcGxhdGVU ZXN0QmFzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgc2NlbmFyaW9zID0g WworICAgICAgICAoInBhcmVudCB0ZXN0IGNsYXNzIiwgZGljdChpZ25vcmVf dGVzdD1UcnVlKSkKKyAgICBdCisKKyAgICBkZWYgX19pbml0X18oc2VsZik6 CisgICAgICAgIHN1cGVyKFNRTFRlbXBsYXRlVGVzdEJhc2UsIHNlbGYpLl9f aW5pdF9fKCkKKyAgICAgICAgc2VsZi5kYXRhYmFzZV9uYW1lID0gLTEKKyAg ICAgICAgc2VsZi52ZXJzaW9uc190b190ZXN0ID0gLTEKKworICAgIGRlZiB0 ZXN0X3NldHVwKHNlbGYsIGNvbm5lY3Rpb24sIGN1cnNvcik6CisgICAgICAg IHBhc3MKKworICAgIGRlZiBnZW5lcmF0ZV9zcWwoc2VsZiwgdmVyc2lvbik6 CisgICAgICAgIHBhc3MKKworICAgIGRlZiBhc3NlcnRpb25zKHNlbGYsIGZl dGNoX3Jlc3VsdCwgZGVzY3JpcHRpb25zKToKKyAgICAgICAgcGFzcworCiAg ICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBXaGVuIHRoZXJl IGFyZSBubyB0cmlnZ2VycywgaXQgcmV0dXJucyBhbiBlbXB0eSByZXN1bHQg IiIiCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgImlnbm9yZV90ZXN0Iik6 CisgICAgICAgICAgICByZXR1cm4KKwogICAgICAgICB3aXRoIHRlc3RfdXRp bHMuRGF0YWJhc2Uoc2VsZi5zZXJ2ZXIpIGFzIChjb25uZWN0aW9uLCBkYXRh YmFzZV9uYW1lKToKICAgICAgICAgICAgIHRlc3RfdXRpbHMuY3JlYXRlX3Rh YmxlKHNlbGYuc2VydmVyLCBkYXRhYmFzZV9uYW1lLCAidGVzdF90YWJsZSIp Ci0KLSAgICAgICAgICAgIGN1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkK LSAgICAgICAgICAgIGN1cnNvci5leGVjdXRlKCJTRUxFQ1QgcGdfY2xhc3Mu b2lkIEFTIHRhYmxlX2lkICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICJGUk9NIHBnX2NsYXNzICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICJXSEVSRSBwZ19jbGFzcy5yZWxuYW1lPSd0ZXN0X3RhYmxlJyIpCi0gICAg ICAgICAgICB0YWJsZV9pZCA9IGN1cnNvci5mZXRjaG9uZSgpWzBdCisgICAg ICAgICAgICBzZWxmLmRhdGFiYXNlX25hbWUgPSBkYXRhYmFzZV9uYW1lCiAK ICAgICAgICAgICAgIGlmIGNvbm5lY3Rpb24uc2VydmVyX3ZlcnNpb24gPCA5 MDEwMDoKICAgICAgICAgICAgICAgICBzZWxmLnZlcnNpb25zX3RvX3Rlc3Qg PSBbJ2RlZmF1bHQnXQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAg ICAgICBzZWxmLnZlcnNpb25zX3RvX3Rlc3QgPSBbJzkuMV9wbHVzJ10KIAot ICAgICAgICAgICAgZm9yIHZlcnNpb24gaW4gc2VsZi52ZXJzaW9uc190b190 ZXN0OgotICAgICAgICAgICAgICAgIHRlbXBsYXRlX2ZpbGUgPSBvcy5wYXRo LmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgIi4uIiwgdmVyc2lv biwgIm5vZGVzLnNxbCIpCi0KLSAgICAgICAgICAgICAgICB0ZW1wbGF0ZSA9 IGZpbGVfYXNfdGVtcGxhdGUodGVtcGxhdGVfZmlsZSkKKyAgICAgICAgICAg IGN1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICAgICAgICAgIHNl bGYudGVzdF9zZXR1cChjb25uZWN0aW9uLCBjdXJzb3IpCiAKLSAgICAgICAg ICAgICAgICBzcWwgPSB0ZW1wbGF0ZS5yZW5kZXIodGlkPXRhYmxlX2lkKQor ICAgICAgICAgICAgZm9yIHZlcnNpb24gaW4gc2VsZi52ZXJzaW9uc190b190 ZXN0OgorICAgICAgICAgICAgICAgIHNxbCA9IHNlbGYuZ2VuZXJhdGVfc3Fs KHZlcnNpb24pCiAKICAgICAgICAgICAgICAgICBjdXJzb3IgPSBjb25uZWN0 aW9uLmN1cnNvcigpCiAgICAgICAgICAgICAgICAgY3Vyc29yLmV4ZWN1dGUo c3FsKQogICAgICAgICAgICAgICAgIGZldGNoX3Jlc3VsdCA9IGN1cnNvci5m ZXRjaGFsbCgpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgw LCBsZW4oZmV0Y2hfcmVzdWx0KSkKKworICAgICAgICAgICAgICAgIHNlbGYu YXNzZXJ0aW9ucyhmZXRjaF9yZXN1bHQsIGN1cnNvci5kZXNjcmlwdGlvbikK LS0gCjIuMTIuMAoK --94eb2c06f5c6f79fa4054f0589b5 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --94eb2c06f5c6f79fa4054f0589b5--