Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fhuj9-00010t-Fo for pgadmin-hackers@arkaria.postgresql.org; Tue, 24 Jul 2018 10:39:36 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fhuj7-0007Hs-Ia for pgadmin-hackers@arkaria.postgresql.org; Tue, 24 Jul 2018 10:39:33 +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.89) (envelope-from ) id 1fhuj6-0007Hl-Nq for pgadmin-hackers@lists.postgresql.org; Tue, 24 Jul 2018 10:39:33 +0000 Received: from mail-lf1-x142.google.com ([2a00:1450:4864:20::142]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1fhuj2-0000Gh-D3 for pgadmin-hackers@postgresql.org; Tue, 24 Jul 2018 10:39:31 +0000 Received: by mail-lf1-x142.google.com with SMTP id j143-v6so2618127lfj.12 for ; Tue, 24 Jul 2018 03:39:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=452qV5AMSU8c8SnfIwPwWo1VYVZQMlNdU3whFO0uomc=; b=ECKUtDfrtYHJtO18XfidgyLKNkClFYiagUJvLTK0uP3TGhAsX8g7V1s1yj88TMc59K t9dYF58x5wL0pZ42pXw/I2N2rbNPS9QfGb12bPZ8dKMN32uuTD/jl3IZMCw9od6+6dlt 5gNfu+bR4igPw7pNnvM56x1fbo1YBwUHacBHqtebVb2JgQoGBkCpYvuHpIjmx8+31jUW D8s3l1FahaQ9pNInRC+XN1UC1UclzUCKAGsozzQnnTIzFX8DjKjy58aSNLpNtyL9fRV/ 5j3YY6gCKx64xtsBzYwwgwUTaK7JO9yp+vAQEmlAukJblUgzx0Hb9O37TtFuD8Vi13iA xVkw== 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=452qV5AMSU8c8SnfIwPwWo1VYVZQMlNdU3whFO0uomc=; b=Wu9Oh02nuLqfZUfR1+ZCEF89tXX+GmAa3M9fvlaFKw2IpUFCK2lB0Ky5JZjaZmqPpJ IcqW85zJziTuCwnYOxf3jEMjYteQvqDp493a1nVwgax5yInxo35NlMBlUjatfOAFnSQY dfs/xlgpqcNgLz43J7jC0g7zJOyTj7y+CDl2sCIcWO7w032ssSm/3bdJOBRgdvSnUf1v QnZ1tPIAVlSiBGvI3BXHdR/giLR50Mf2s114KCECgghj8GGYTZvmUzAhTwl1Yjn1k46u jk1ZqR47U+ZTuGc2JcjwjJwjHeemNdqWxu+v2WJzh/kwmX0Harlzngcr+8QHvVYUwA6n 94Zg== X-Gm-Message-State: AOUpUlGPxoGzCO4X70t2lCMAczNUtQyb0SUzDE7dhdnTregXw7HzI2nA gv4mSvAHE88Rh9ErInIzqwpYYoSsScwNlasHGrIiBQ== X-Google-Smtp-Source: AAOMgpcMf8dd2lNUqVG2kXlwwTKE86iDcrDlpVYJ/8HS2x6O3TjQtZsBr8BExBBeyVUfojgfbWLJu0uTn8ToWCdKVY0= X-Received: by 2002:a19:6511:: with SMTP id z17-v6mr9545929lfb.56.1532428766375; Tue, 24 Jul 2018 03:39:26 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a2e:8703:0:0:0:0:0 with HTTP; Tue, 24 Jul 2018 03:39:25 -0700 (PDT) In-Reply-To: References: From: Aditya Toshniwal Date: Tue, 24 Jul 2018 16:09:25 +0530 Message-ID: Subject: Re: [pgAdmin4][RM3294] User need to reset the layout to see the changed preferences parameters To: Dave Page Cc: Akshay Joshi , pgadmin-hackers Content-Type: multipart/mixed; boundary="00000000000043abec0571bc600c" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --00000000000043abec0571bc600c Content-Type: multipart/alternative; boundary="00000000000043abe90571bc600a" --00000000000043abe90571bc600a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Hackers, Attached is the second part of the changes for making preferences realtime. The patch includes dashboard and debugger modules. I would also request to create RMs for javascript test cases for dashboard and debugger modules as currently there is no setup for the test cases of these two modules. The changes are on the JS side and so patch does not have any test cases included. Kindly review. On Thu, Jul 5, 2018 at 4:09 PM, Dave Page wrote: > Thanks - patch applied! > > On Wed, Jul 4, 2018 at 10:19 AM, Aditya Toshniwal enterprisedb.com> wrote: > >> Hi Hackers, >> >> Attached is the updated patch for the RM. Change of the flags like auto >> commit, explain->verbose, etc. will reflect in all other open sql editor= s. >> Kindly review. >> >> On Fri, Jun 29, 2018 at 10:39 PM, Aditya Toshniwal < >> aditya.toshniwal@enterprisedb.com> wrote: >> >>> Hi Dave, >>> >>> On Fri, Jun 29, 2018 at 9:30 PM, Dave Page wrote: >>> >>>> Hi >>>> >>>> On Fri, Jun 29, 2018 at 3:14 PM, Aditya Toshniwal < >>>> aditya.toshniwal@enterprisedb.com> wrote: >>>> >>>>> Hi Hackers, >>>>> >>>>> Attached is the updated patch. >>>>> >>>> >>>> This seems to work for the most part, however I saw what seemed like >>>> odd behaviour. If I have 2 query tool windows open; >>>> >>>> - Changing a preference from the Preferences dialogue updates both >>>> query tools. >>>> >>>> - Changing a preference from a Query Tool updates the Preferences >>>> dialogue. >>>> >>>> - Changing a preference from a Query Tool does *not* update the other >>>> Query Tool. >>>> >>>> The last point seems odd to me, though it also kinda makes sense to no= t >>>> have one query tool affect the other. The problem with that is that it >>>> could get quite confusing when they get out of sync. I think it would = be >>>> better for a change in one Query Tool to update the other(s). >>>> >>>> What do you think? Was this behaviour intentional? >>>> >>> >>> =E2=80=8BNo this was not intentional. It should reflect in other query = tools as >>> well because changing the flags like Auto Commit changes the preference= s >>> config and is not local to a Query tool. I missed the fact that some >>> preferences can be changed from other than preference dialog.=E2=80=8B >>> >>> =E2=80=8BWill send the updated patch with the fix.=E2=80=8B >>> >>>> >>>> (FYI, in case this was a one-off bug, I was testing using "Auto >>>> Commit?") >>>> >>>> >>>>> >>>>> On Fri, Jun 29, 2018 at 4:46 PM, Aditya Toshniwal < >>>>> aditya.toshniwal@enterprisedb.com> wrote: >>>>> >>>>>> Hi Akshay, >>>>>> >>>>>> On Fri, Jun 29, 2018 at 3:42 PM, Akshay Joshi < >>>>>> akshay.joshi@enterprisedb.com> wrote: >>>>>> >>>>>>> Hi Aditya >>>>>>> >>>>>>> I have applied your patch and run pgAdmin4. I have found following >>>>>>> two issue in the browser: >>>>>>> >>>>>>> - Found error while open Preferences dialog. Refer >>>>>>> Open_Preferences_Dialog.png >>>>>>> >>>>>>> =E2=80=8BThis error occurs even with the latest pull without change= s.=E2=80=8B >>>>>> >>>>>> >>>>>>> >>>>>>> - Set the preferences setting "Open in new browser tab" to True >>>>>>> and open the query tool. Refer "Open_In_New_Broswer.png". >>>>>>> >>>>>>> =E2=80=8BWill look into this.=E2=80=8B >>>>>> >>>>>> >>>>>>> I haven't review the code. >>>>>>> >>>>>>> On Thu, Jun 28, 2018 at 8:04 PM, Aditya Toshniwal < >>>>>>> aditya.toshniwal@enterprisedb.com> wrote: >>>>>>> >>>>>>>> Hi Hackers, >>>>>>>> >>>>>>>> Attached is the patch for making preferences realtime and applying >>>>>>>> without reseting the layout. Please note, the patch is only for on= e module >>>>>>>> - SQL Editor and is the first part for the RM. There are lot of ch= anges to >>>>>>>> be done to cover all and hence sending in parts. This will not aff= ect/break >>>>>>>> existing code. Further patches will cover other modules. >>>>>>>> >>>>>>>> Highlights of this patch include: >>>>>>>> - Changes will affect SQL Editors in Create dialog boxes, SQL tab >>>>>>>> of the main screen, Query tool, History entries in the query tool,= Query >>>>>>>> tool opened in New Tab/Window >>>>>>>> - All the components of SQL editor will refer to single source of >>>>>>>> preferences which is cached in the Browser object. All other redun= dant ajax >>>>>>>> get preference calls are removed. >>>>>>>> - SQL editor will not refer template JS variables anymore, once >>>>>>>> all the references are removed the template variables will also be= removed. >>>>>>>> - Code refactoring wherever possible. >>>>>>>> - Covered JS test cases wherever possible. >>>>>>>> >>>>>>>> Request you to kindly review. >>>>>>>> >>>>>>>> -- >>>>>>>> Thanks and Regards, >>>>>>>> Aditya Toshniwal >>>>>>>> Software Engineer | EnterpriseDB Software Solutions | Pune >>>>>>>> "Don't Complain about Heat, Plant a tree" >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *Akshay Joshi* >>>>>>> >>>>>>> *Sr. Software Architect * >>>>>>> >>>>>>> >>>>>>> >>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Thanks and Regards, >>>>>> Aditya Toshniwal >>>>>> Software Engineer | EnterpriseDB Software Solutions | Pune >>>>>> "Don't Complain about Heat, Plant a tree" >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Thanks and Regards, >>>>> Aditya Toshniwal >>>>> Software Engineer | EnterpriseDB Software Solutions | Pune >>>>> "Don't Complain about Heat, Plant a tree" >>>>> >>>> >>>> >>>> >>>> -- >>>> Dave Page >>>> Blog: http://pgsnake.blogspot.com >>>> Twitter: @pgsnake >>>> >>>> EnterpriseDB UK: http://www.enterprisedb.com >>>> The Enterprise PostgreSQL Company >>>> >>> >>> >>> >>> -- >>> Thanks and Regards, >>> Aditya Toshniwal >>> Software Engineer | EnterpriseDB Software Solutions | Pune >>> "Don't Complain about Heat, Plant a tree" >>> >> >> >> >> -- >> Thanks and Regards, >> Aditya Toshniwal >> Software Engineer | EnterpriseDB Software Solutions | Pune >> "Don't Complain about Heat, Plant a tree" >> > > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --=20 Thanks and Regards, Aditya Toshniwal Software Engineer | EnterpriseDB Software Solutions | Pune "Don't Complain about Heat, Plant a tree" --00000000000043abe90571bc600a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

Attached is the second part of the changes for= making preferences realtime. The patch includes dashboard and debugger mod= ules.
I would also request to create RMs for javascript test cases for dash= board and debugger modules as currently there is no setup for the test case= s of these two modules.
The changes are on the JS side and so patch does no= t have any test cases included.

Kindly review.


On Thu, Jul 5, 2018 at 4= :09 PM, Dave Page <dpage@pgadmin.org> wrote:
Thanks - patch applied!

On Wed, Jul 4, 2018 at 10:19 AM, Aditya Toshniwal <aditya.toshniwal@enterprisedb.com> wrote:
Hi Hackers,

Attached is the upda= ted patch for the RM. Change of the flags like auto commit, explain->ver= bose, etc. will reflect in all other open sql editors.
Kindly review.
=

On F= ri, Jun 29, 2018 at 10:39 PM, Aditya Toshniwal <aditya.tos= hniwal@enterprisedb.com> wrote:
Hi Dave,

On Fri, Jun 29, 2018 at 9:30 PM, Dave Page <dpage= @pgadmin.org> wrote:
Hi

= On Fri, Jun 29, 2018 at 3:14 PM, Aditya Toshniwal &= lt;a= ditya.toshniwal@enterprisedb.com> wrote:
Hi Hackers,=C2=A0

Attached is= the updated patch.

This seems = to work for the most part, however I saw what seemed like odd behaviour. If= I have 2 query tool windows open;

- Changing a pr= eference from the Preferences dialogue updates both query tools.
=
- Changing a preference from a Query Tool updates the Prefer= ences dialogue.

- Changing a preference from a Que= ry Tool does *not* update the other Query Tool.

Th= e last point seems odd to me, though it also kinda makes sense to not have = one query tool affect the other. The problem with that is that it could get= quite confusing when they get out of sync. I think it would be better for = a change in one Query Tool to update the other(s).=C2=A0

What do you think? Was this behaviour intentional?
=
=C2=A0
=E2=80=8BNo this was not int= entional. It should reflect in other query tools as well because changing t= he flags like Auto Commit changes the preferences config and is not local t= o a Query tool. I missed the fact that some preferences can be changed from= other than preference dialog.=E2=80=8B
=C2=A0
=E2=80=8BWill = send the updated patch with the fix.=E2=80=8B
<= div>
(FYI, in case this was a one-off bug, I was testing usin= g "Auto Commit?")
=C2=A0

On Fri, Jun 29,= 2018 at 4:46 PM, Aditya Toshniwal <aditya.toshniwal@enter= prisedb.com> wrote:
Hi Akshay,

On Fri, J= un 29, 2018 at 3:42 PM, Akshay Joshi <akshay.joshi@enterprised= b.com> wrote:
Hi Aditya=C2=A0

I have applied your patch and r= un pgAdmin4. I have found following two issue in the browser:
  • Found error while open Preferences dialog. Refer Open_Preferences_Dial= og.png
  • =E2=80=8BThis error occurs even with= the latest pull without changes.=E2=80=8B
    =C2=A0
    • Set the preferences set= ting "Open in new browser tab" to True and open the query tool. R= efer "Open_In_New_Broswer.png".
    = =E2=80=8BWill look into this.=E2=80=8B
    =C2=A0
    I haven't review the code.

    On Thu, Jun 28, 2018 at 8:04 PM, Ad= itya Toshniwal <aditya.toshniwal@enterprisedb.com= > wrote:
    Hi Hackers,

    Attached is the patch for making preferences realtime and applyin= g without reseting the layout. Please note, the patch is only for one modul= e - SQL Editor and is the first part for the RM. There are lot of changes t= o be done to cover all and hence sending in parts. This will not affect/bre= ak existing code. Further patches will cover other modules.

    Highlights of this patch include:
    - Changes will affect SQL Editors in Create dial= og boxes, SQL tab of the main screen, Query tool, History entries in the qu= ery tool, Query tool opened in New Tab/Window
    - All the components of SQL editor will refer to sing= le source of preferences which is cached in the Browser object. All other r= edundant ajax get preference calls are removed.
    -=C2=A0SQL editor will not refer template JS vari= ables anymore, once all the references are removed the template variables w= ill also be removed.
    - Code refactoring wherever possible.
    - Covered JS test cases wherever possible.

    Request you to kindly review.
    =

    --
    <= div>
    Thanks and Regards,
    Aditya Toshniwal
    Software Engineer |=C2=A0EnterpriseDB Software Solutions |= =C2=A0Pune
    "Don't Complain about Heat, Pla= nt a tree"



    --
    Akshay Joshi
    <= div>Sr. Software Arch= itect

    =

    Phone: +91 20-3058-9517
    Mobile: +91 976-788-8246



    --
    Thanks and Regar= ds,
    Aditya Toshniwal=
    = Softwa= re Engineer |=C2=A0EnterpriseDB Software Solutions |=C2=A0Pune
    &qu= ot;Don't Complain about Heat, Plant a tree"



    --
    Thanks and Regards,Aditya Toshniwal
    Software Engineer |= =C2=A0EnterpriseDB Software Solutions |=C2=A0Pune
    "Don't = Complain about Heat, Plant a tree"



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

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



    --
    Thanks and Regards,
    Aditya Toshniwal
    Software Engineer |=C2=A0EnterpriseDB Software Solutions |=C2= =A0Pune
    "Don't Complain about Heat, Plant a tree"



    --
    Thanks and Regards,=
    Aditya Toshniwal
    Software = Engineer |=C2=A0EnterpriseDB Software Solutions |=C2=A0Pune
    "= Don't Complain about Heat, Plant a tree"
    =



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

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



    --
    =
    Thanks and Regards,
    Aditya Toshniwal
    Software Engineer |=C2=A0EnterpriseDB So= ftware Solutions |=C2=A0Pune
    "Don't Complain about Heat, = Plant a tree"
    --00000000000043abe90571bc600a-- --00000000000043abec0571bc600c Content-Type: application/octet-stream; name="0002-RM3294.patch" Content-Disposition: attachment; filename="0002-RM3294.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jjzkimu80 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Rhc2hib2FyZC9fX2luaXRfXy5weSBiL3dlYi9wZ2Fk bWluL2Rhc2hib2FyZC9fX2luaXRfXy5weQppbmRleCA5MTE2MmY3Ni4uZmZkNGE3YmMgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL2Rhc2hib2FyZC9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1p bi9kYXNoYm9hcmQvX19pbml0X18ucHkKQEAgLTI4MCw4ICsyODAsNiBAQCBkZWYgaW5kZXgoc2lk PU5vbmUsIGRpZD1Ob25lKToKICAgICByYXRlcyA9IHt9CiAgICAgc2V0dGluZ3MgPSB7fQogCi0g ICAgcHJlZnMgPSBQcmVmZXJlbmNlcy5tb2R1bGUoJ2Rhc2hib2FyZHMnKQotCiAgICAgIyBHZXQg dGhlIHNlcnZlciB2ZXJzaW9uCiAgICAgaWYgc2lkIGlzIG5vdCBOb25lOgogICAgICAgICBnLm1h bmFnZXIgPSBnZXRfZHJpdmVyKApAQCAtMjkzLDIyICsyOTEsNiBAQCBkZWYgaW5kZXgoc2lkPU5v bmUsIGRpZD1Ob25lKToKICAgICAgICAgaWYgbm90IGcuY29ubi5jb25uZWN0ZWQoKToKICAgICAg ICAgICAgIGcudmVyc2lvbiA9IDAKIAotICAgIHNlc3Npb25fc3RhdHNfcmVmcmVzaF9wcmVmID0g cHJlZnMucHJlZmVyZW5jZSgnc2Vzc2lvbl9zdGF0c19yZWZyZXNoJykKLSAgICByYXRlc1snc2Vz c2lvbl9zdGF0c19yZWZyZXNoJ10gPSBzZXNzaW9uX3N0YXRzX3JlZnJlc2hfcHJlZi5nZXQoKQot ICAgIHRwc19zdGF0c19yZWZyZXNoX3ByZWYgPSBwcmVmcy5wcmVmZXJlbmNlKCd0cHNfc3RhdHNf cmVmcmVzaCcpCi0gICAgcmF0ZXNbJ3Rwc19zdGF0c19yZWZyZXNoJ10gPSB0cHNfc3RhdHNfcmVm cmVzaF9wcmVmLmdldCgpCi0gICAgdGlfc3RhdHNfcmVmcmVzaF9wcmVmID0gcHJlZnMucHJlZmVy ZW5jZSgndGlfc3RhdHNfcmVmcmVzaCcpCi0gICAgcmF0ZXNbJ3RpX3N0YXRzX3JlZnJlc2gnXSA9 IHRpX3N0YXRzX3JlZnJlc2hfcHJlZi5nZXQoKQotICAgIHRvX3N0YXRzX3JlZnJlc2hfcHJlZiA9 IHByZWZzLnByZWZlcmVuY2UoJ3RvX3N0YXRzX3JlZnJlc2gnKQotICAgIHJhdGVzWyd0b19zdGF0 c19yZWZyZXNoJ10gPSB0b19zdGF0c19yZWZyZXNoX3ByZWYuZ2V0KCkKLSAgICBiaW9fc3RhdHNf cmVmcmVzaF9wcmVmID0gcHJlZnMucHJlZmVyZW5jZSgnYmlvX3N0YXRzX3JlZnJlc2gnKQotICAg IHJhdGVzWydiaW9fc3RhdHNfcmVmcmVzaCddID0gYmlvX3N0YXRzX3JlZnJlc2hfcHJlZi5nZXQo KQotICAgICMgV2hldGhlciB0byBkaXNwbGF5IGdyYXBocyBhbmQgc2VydmVyIGFjdGl2aXR5IHBy ZWZlcmVuY2VzCi0gICAgc2hvd19ncmFwaHNfcHJlZiA9IHByZWZzLnByZWZlcmVuY2UoJ3Nob3df Z3JhcGhzJykKLSAgICBzZXR0aW5nc1snc2hvd19ncmFwaHMnXSA9IHNob3dfZ3JhcGhzX3ByZWYu Z2V0KCkKLSAgICBzaG93X2FjdGl2aXR5X3ByZWYgPSBwcmVmcy5wcmVmZXJlbmNlKCdzaG93X2Fj dGl2aXR5JykKLSAgICBzZXR0aW5nc1snc2hvd19hY3Rpdml0eSddID0gc2hvd19hY3Rpdml0eV9w cmVmLmdldCgpCi0KICAgICAjIFNob3cgdGhlIGFwcHJvcHJpYXRlIGRhc2hib2FyZCBiYXNlZCBv biB0aGUgaWRlbnRpZmllcnMgcGFzc2VkIHRvIHVzCiAgICAgaWYgc2lkIGlzIE5vbmUgYW5kIGRp ZCBpcyBOb25lOgogICAgICAgICByZXR1cm4gcmVuZGVyX3RlbXBsYXRlKCcvZGFzaGJvYXJkL3dl bGNvbWVfZGFzaGJvYXJkLmh0bWwnKQpAQCAtMzE3LDggKzI5OSw3IEBAIGRlZiBpbmRleChzaWQ9 Tm9uZSwgZGlkPU5vbmUpOgogICAgICAgICAgICAgJy9kYXNoYm9hcmQvc2VydmVyX2Rhc2hib2Fy ZC5odG1sJywKICAgICAgICAgICAgIHNpZD1zaWQsCiAgICAgICAgICAgICByYXRlcz1yYXRlcywK LSAgICAgICAgICAgIHZlcnNpb249Zy52ZXJzaW9uLAotICAgICAgICAgICAgc2V0dGluZ3M9c2V0 dGluZ3MKKyAgICAgICAgICAgIHZlcnNpb249Zy52ZXJzaW9uCiAgICAgICAgICkKICAgICBlbHNl OgogICAgICAgICByZXR1cm4gcmVuZGVyX3RlbXBsYXRlKApAQCAtMzI2LDggKzMwNyw3IEBAIGRl ZiBpbmRleChzaWQ9Tm9uZSwgZGlkPU5vbmUpOgogICAgICAgICAgICAgc2lkPXNpZCwKICAgICAg ICAgICAgIGRpZD1kaWQsCiAgICAgICAgICAgICByYXRlcz1yYXRlcywKLSAgICAgICAgICAgIHZl cnNpb249Zy52ZXJzaW9uLAotICAgICAgICAgICAgc2V0dGluZ3M9c2V0dGluZ3MKKyAgICAgICAg ICAgIHZlcnNpb249Zy52ZXJzaW9uCiAgICAgICAgICkKIAogCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9kYXNoYm9hcmQvc3RhdGljL2Nzcy9kYXNoYm9hcmQuY3NzIGIvd2ViL3BnYWRtaW4vZGFz aGJvYXJkL3N0YXRpYy9jc3MvZGFzaGJvYXJkLmNzcwppbmRleCAyZmM3ODk3Yy4uNjExNzRmMzMg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Rhc2hib2FyZC9zdGF0aWMvY3NzL2Rhc2hib2FyZC5j c3MKKysrIGIvd2ViL3BnYWRtaW4vZGFzaGJvYXJkL3N0YXRpYy9jc3MvZGFzaGJvYXJkLmNzcwpA QCAtMiw4ICsyLDggQEAKICAgICBwYWRkaW5nOiAxNXB4OwogfQogCi0uZGFzaGJvYXJkLWhlYWRl ci1zcGFjZXIgewotICAgIHBhZGRpbmctdG9wOiAxNXB4OworLmRhc2hib2FyZC1yb3cgeworICAg IG1hcmdpbi1ib3R0b206IDE1cHg7CiB9CiAKIC5kYXNoYm9hcmQtbGluayB7CkBAIC0xNzUsNCAr MTc1LDYgQEAKICAgICBtYXJnaW4tYm90dG9tOiAwJTsKIH0KIAotLyogQ1NTIHRvIG1ha2Ugc3Vi bm9kZSBjb250cm9sIGxvb2sgcHJlZXR5IGluIGJhY2tncmlkIC0gRU5EICovCisuZGFzaGJvYXJk LWhpZGRlbiB7CisgIGRpc3BsYXk6IG5vbmU7Cit9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9k YXNoYm9hcmQvc3RhdGljL2pzL2Rhc2hib2FyZC5qcyBiL3dlYi9wZ2FkbWluL2Rhc2hib2FyZC9z dGF0aWMvanMvZGFzaGJvYXJkLmpzCmluZGV4IDAyYzdkNDM5Li4yOWE4NmJiMCAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vZGFzaGJvYXJkL3N0YXRpYy9qcy9kYXNoYm9hcmQuanMKKysrIGIvd2Vi L3BnYWRtaW4vZGFzaGJvYXJkL3N0YXRpYy9qcy9kYXNoYm9hcmQuanMKQEAgLTIwNSw2ICsyMDUs MTEgQEAgZGVmaW5lKCdwZ2FkbWluLmRhc2hib2FyZCcsIFsKICAgICAgIC8vIExvYWQgdGhlIGRl ZmF1bHQgd2VsY29tZSBkYXNoYm9hcmQKICAgICAgIHZhciB1cmwgPSB1cmxfZm9yKCdkYXNoYm9h cmQuaW5kZXgnKTsKIAorICAgICAgLyogU3RvcmUgdGhlIGludGVydmFsIGlkcyBvZiB0aGUgZ3Jh cGggaW50ZXJ2YWwgZnVuY3Rpb25zIHNvIHRoYXQgd2UgY2FuIGNsZWFyCisgICAgICAgKiB0aGVt IHdoZW4gZ3JhcGhzIGFyZSBkaXNhYmxlZAorICAgICAgICovCisgICAgICB0aGlzLmludGVydmFs SWRzID0ge307CisKICAgICAgIHZhciBkYXNoYm9hcmRQYW5lbCA9IHBnQnJvd3Nlci5wYW5lbHNb J2Rhc2hib2FyZCddLnBhbmVsOwogICAgICAgaWYgKGRhc2hib2FyZFBhbmVsKSB7CiAgICAgICAg IHZhciBkaXYgPSBkYXNoYm9hcmRQYW5lbC5sYXlvdXQoKS5zY2VuZSgpLmZpbmQoJy5wZy1wYW5l bC1jb250ZW50Jyk7CkBAIC0yMzgsMTQgKzI0MywxNyBAQCBkZWZpbmUoJ3BnYWRtaW4uZGFzaGJv YXJkJywgWwogCiAgICAgLy8gSGFuZGxlIHRyZWV2aWV3IGNsaWNrcwogICAgIG9iamVjdF9zZWxl Y3RlZDogZnVuY3Rpb24oaXRlbSwgaXRlbURhdGEsIG5vZGUpIHsKKyAgICAgIGxldCBzZWxmID0g dGhpczsKKyAgICAgIC8qIENsZWFyIGFsbCB0aGUgaW50ZXJ2YWwgZnVuY3Rpb25zIG9mIHByZXZp b3VzIGRhc2hib2FyZHMgKi8KKyAgICAgIHNlbGYuY2xlYXJJbnRlcnZhbElkKCk7CiAgICAgICBp ZiAoaXRlbURhdGEgJiYgaXRlbURhdGEuX3R5cGUgJiYgZGFzaGJvYXJkVmlzaWJsZSkgewogICAg ICAgICB2YXIgdHJlZUhpZXJhcmNoeSA9IG5vZGUuZ2V0VHJlZU5vZGVIaWVyYXJjaHkoaXRlbSks CiAgICAgICAgICAgdXJsID0gdXJsX2ZvcignZGFzaGJvYXJkLmluZGV4JyksCi0gICAgICAgICAg c2lkID0gLTEsCi0gICAgICAgICAgZGlkID0gLTEsCiAgICAgICAgICAgYiA9IHBnQWRtaW4uQnJv d3NlciwKICAgICAgICAgICBtID0gYiAmJiBiLk5vZGVzW2l0ZW1EYXRhLl90eXBlXTsKIAorICAg ICAgICBzZWxmLnNpZCA9IHNlbGYuZGlkID0gLTE7CisgICAgICAgIHNlbGYudmVyc2lvbiA9IGl0 ZW1EYXRhLnZlcnNpb247CiAgICAgICAgIGNhbmNlbF9xdWVyeV91cmwgPSB1cmxfZm9yKCdkYXNo Ym9hcmQuaW5kZXgnKSArICdjYW5jZWxfcXVlcnkvJzsKICAgICAgICAgdGVybWluYXRlX3Nlc3Np b25fdXJsID0gdXJsX2ZvcignZGFzaGJvYXJkLmluZGV4JykgKyAndGVybWluYXRlX3Nlc3Npb24v JzsKIApAQCAtMjcxLDIwICsyNzksMjEgQEAgZGVmaW5lKCdwZ2FkbWluLmRhc2hib2FyZCcsIFsK ICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgaWYgKCdkYXRhYmFzZScg aW4gdHJlZUhpZXJhcmNoeSkgewotICAgICAgICAgICAgc2lkID0gdHJlZUhpZXJhcmNoeS5zZXJ2 ZXIuX2lkOwotICAgICAgICAgICAgZGlkID0gdHJlZUhpZXJhcmNoeS5kYXRhYmFzZS5faWQ7Cisg ICAgICAgICAgICBzZWxmLnNpZCA9IHRyZWVIaWVyYXJjaHkuc2VydmVyLl9pZDsKKyAgICAgICAg ICAgIHNlbGYuZGlkID0gdHJlZUhpZXJhcmNoeS5kYXRhYmFzZS5faWQ7CiAgICAgICAgICAgICBp c19zZXJ2ZXJfZGFzaGJvYXJkID0gZmFsc2U7CiAgICAgICAgICAgICBpc19kYXRhYmFzZV9kYXNo Ym9hcmQgPSB0cnVlOwotICAgICAgICAgICAgdXJsICs9IHNpZCArICcvJyArIGRpZDsKLSAgICAg ICAgICAgIGNhbmNlbF9xdWVyeV91cmwgKz0gc2lkICsgJy8nICsgZGlkICsgJy8nOwotICAgICAg ICAgICAgdGVybWluYXRlX3Nlc3Npb25fdXJsICs9IHNpZCArICcvJyArIGRpZCArICcvJzsKKyAg ICAgICAgICAgIHVybCArPSBzZWxmLnNpZCArICcvJyArIHNlbGYuZGlkOworICAgICAgICAgICAg Y2FuY2VsX3F1ZXJ5X3VybCArPSBzZWxmLnNpZCArICcvJyArIHNlbGYuZGlkICsgJy8nOworICAg ICAgICAgICAgdGVybWluYXRlX3Nlc3Npb25fdXJsICs9IHNlbGYuc2lkICsgJy8nICsgc2VsZi5k aWQgKyAnLyc7CiAgICAgICAgICAgfSBlbHNlIGlmICgnc2VydmVyJyBpbiB0cmVlSGllcmFyY2h5 KSB7Ci0gICAgICAgICAgICBzaWQgPSB0cmVlSGllcmFyY2h5LnNlcnZlci5faWQ7CisgICAgICAg ICAgICBzZWxmLnNpZCA9IHRyZWVIaWVyYXJjaHkuc2VydmVyLl9pZDsKKyAgICAgICAgICAgIHNl bGYuZGlkID0gLTE7CiAgICAgICAgICAgICBpc19zZXJ2ZXJfZGFzaGJvYXJkID0gdHJ1ZTsKICAg ICAgICAgICAgIGlzX2RhdGFiYXNlX2Rhc2hib2FyZCA9IGZhbHNlOwotICAgICAgICAgICAgdXJs ICs9IHNpZDsKLSAgICAgICAgICAgIGNhbmNlbF9xdWVyeV91cmwgKz0gc2lkICsgJy8nOwotICAg ICAgICAgICAgdGVybWluYXRlX3Nlc3Npb25fdXJsICs9IHNpZCArICcvJzsKKyAgICAgICAgICAg IHVybCArPSBzZWxmLnNpZDsKKyAgICAgICAgICAgIGNhbmNlbF9xdWVyeV91cmwgKz0gc2VsZi5z aWQgKyAnLyc7CisgICAgICAgICAgICB0ZXJtaW5hdGVfc2Vzc2lvbl91cmwgKz0gc2VsZi5zaWQg KyAnLyc7CiAgICAgICAgICAgfQogICAgICAgICB9CiAKQEAgLTMwOSw2ICszMTgsNyBAQCBkZWZp bmUoJ3BnYWRtaW4uZGFzaGJvYXJkJywgWwogICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICAgLmRvbmUoZnVuY3Rpb24oZGF0YSkgewogICAgICAgICAgICAgICAgICAgJChkaXYpLmh0 bWwoZGF0YSk7CisgICAgICAgICAgICAgICAgICBzZWxmLmluaXRfZGFzaGJvYXJkKCk7CiAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAuZmFpbChmdW5jdGlvbigpIHsKICAgICAg ICAgICAgICAgICAgICQoZGl2KS5odG1sKApAQCAtMzI3LDEwMiArMzM3LDE2IEBAIGRlZmluZSgn cGdhZG1pbi5kYXNoYm9hcmQnLCBbCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAvLyBDYWNo ZSB0aGUgY3VycmVudCBJRHMgZm9yIG5leHQgdGltZQogICAgICAgICAgICAgJChkYXNoYm9hcmRQ YW5lbCkuZGF0YSgnZGFzaGJvYXJkX3VybCcsIHVybCk7Ci0KICAgICAgICAgICB9CiAgICAgICAg IH0KICAgICAgIH0KICAgICB9LAogCi0gICAgLy8gUmVuZGVyIGEgY2hhcnQKLSAgICByZW5kZXJf Y2hhcnQ6IGZ1bmN0aW9uKAotICAgICAgY29udGFpbmVyLCBkYXRhLCBkYXRhc2V0LCBzaWQsIGRp ZCwgdXJsLCBvcHRpb25zLCBjb3VudGVyLCByZWZyZXNoCi0gICAgKSB7Ci0KLSAgICAgIC8vIERh dGEgZm9ybWF0OgotICAgICAgLy8gWwotICAgICAgLy8gICAgIHsgZGF0YTogW1swLCB5MF0sIFsx LCB5MV0uLi5dLCBsYWJlbDogJ0xhYmVsIDEnLCBbb3B0aW9uc10gfSwKLSAgICAgIC8vICAgICB7 IGRhdGE6IFtbMCwgeTBdLCBbMSwgeTFdLi4uXSwgbGFiZWw6ICdMYWJlbCAyJywgW29wdGlvbnNd IH0sCi0gICAgICAvLyAgICAgeyBkYXRhOiBbWzAsIHkwXSwgWzEsIHkxXS4uLl0sIGxhYmVsOiAn TGFiZWwgMycsIFtvcHRpb25zXSB9Ci0gICAgICAvLyBdCi0KLSAgICAgIGlmICghZGFzaGJvYXJk VmlzaWJsZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgeSA9IDAsCi0gICAgICAgIHg7 Ci0gICAgICBpZiAoZGF0YXNldC5sZW5ndGggPT0gMCkgewotICAgICAgICBpZiAoY291bnRlciA9 PSB0cnVlKSB7Ci0gICAgICAgICAgLy8gSGF2ZSB3ZSBzdGFzaGVkIGluaXRpYWwgdmFsdWVzPwot ICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKCQoY29udGFpbmVyKS5kYXRhKCdjb3VudGVyX3By ZXZpb3VzX3ZhbHMnKSkpIHsKLSAgICAgICAgICAgICQoY29udGFpbmVyKS5kYXRhKCdjb3VudGVy X3ByZXZpb3VzX3ZhbHMnLCBkYXRhWzBdKTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg ICAgLy8gQ3JlYXRlIHRoZSBpbml0aWFsIGRhdGEgc3RydWN0dXJlCi0gICAgICAgICAgICBmb3Ig KHggaW4gZGF0YVswXSkgewotICAgICAgICAgICAgICBkYXRhc2V0LnB1c2goewotICAgICAgICAg ICAgICAgICdkYXRhJzogWwotICAgICAgICAgICAgICAgICAgWzAsIGRhdGFbMF1beF0gLSAkKGNv bnRhaW5lcikuZGF0YSgnY291bnRlcl9wcmV2aW91c192YWxzJylbeF1dLAotICAgICAgICAgICAg ICAgIF0sCi0gICAgICAgICAgICAgICAgJ2xhYmVsJzogeCwKLSAgICAgICAgICAgICAgfSk7Ci0g ICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIC8v IENyZWF0ZSB0aGUgaW5pdGlhbCBkYXRhIHN0cnVjdHVyZQotICAgICAgICAgIGZvciAoeCBpbiBk YXRhWzBdKSB7Ci0gICAgICAgICAgICBkYXRhc2V0LnB1c2goewotICAgICAgICAgICAgICAnZGF0 YSc6IFsKLSAgICAgICAgICAgICAgICBbMCwgZGF0YVswXVt4XV0sCi0gICAgICAgICAgICAgIF0s Ci0gICAgICAgICAgICAgICdsYWJlbCc6IHgsCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICB9 Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGZvciAoeCBpbiBkYXRhWzBdKSB7 Ci0gICAgICAgICAgLy8gUHVzaCBuZXcgdmFsdWVzIG9udG8gdGhlIGV4aXN0aW5nIGRhdGEgc3Ry dWN0dXJlCi0gICAgICAgICAgLy8gSWYgdGhpcyBpcyBhIGNvdW50ZXIgc3RhdCwgd2UgbmVlZCB0 byBzdWJ0cmFjdCB0aGUgcHJldmlvdXMgdmFsdWUKLSAgICAgICAgICBpZiAoY291bnRlciA9PSBm YWxzZSkgewotICAgICAgICAgICAgZGF0YXNldFt5XVsnZGF0YSddLnVuc2hpZnQoWzAsIGRhdGFb MF1beF1dKTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gU3RvcmUgdGhlIGN1 cnJlbnQgdmFsdWUsIG1pbnVzIHRoZSBwcmV2aW91cyBvbmUgd2Ugc3Rhc2hlZC4KLSAgICAgICAg ICAgIC8vIEl0J3MgcG9zc2libGUgdGhlIHRhYiBoYXMgYmVlbiByZWxvYWRlZCwgaW4gd2hpY2gg Y2FzZSBvdXQgcHJldmlvdXMgdmFsdWVzIGFyZSBnb25lCi0gICAgICAgICAgICBpZiAoXy5pc1Vu ZGVmaW5lZCgkKGNvbnRhaW5lcikuZGF0YSgnY291bnRlcl9wcmV2aW91c192YWxzJykpKQotICAg ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGRhdGFzZXRbeV1bJ2RhdGEnXS51bnNo aWZ0KFswLCBkYXRhWzBdW3hdIC0gJChjb250YWluZXIpLmRhdGEoJ2NvdW50ZXJfcHJldmlvdXNf dmFscycpW3hdXSk7Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgLy8gUmVzZXQgdGhlIHRpbWUg aW5kZXggdG8gZ2V0IGEgcHJvcGVyIHNjcm9sbGluZyBkaXNwbGF5Ci0gICAgICAgICAgZm9yICh2 YXIgeiA9IDA7IHogPCBkYXRhc2V0W3ldWydkYXRhJ10ubGVuZ3RoOyB6KyspIHsKLSAgICAgICAg ICAgIGRhdGFzZXRbeV1bJ2RhdGEnXVt6XVswXSA9IHo7Ci0gICAgICAgICAgfQotCi0gICAgICAg ICAgeSsrOwotICAgICAgICB9Ci0gICAgICAgICQoY29udGFpbmVyKS5kYXRhKCdjb3VudGVyX3By ZXZpb3VzX3ZhbHMnLCBkYXRhWzBdKTsKLSAgICAgIH0KLQotICAgICAgLy8gUmVtb3ZlIHVuZWVk ZWQgZWxlbWVudHMKLSAgICAgIGZvciAoeCA9IDA7IHggPCBkYXRhc2V0Lmxlbmd0aDsgeCsrKSB7 Ci0gICAgICAgIC8vIFJlbW92ZSBvbGQgZGF0YSBwb2ludHMKLSAgICAgICAgaWYgKGRhdGFzZXRb eF1bJ2RhdGEnXS5sZW5ndGggPiAxMDEpIHsKLSAgICAgICAgICBkYXRhc2V0W3hdWydkYXRhJ10u cG9wKCk7Ci0gICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgLy8gRHJhdyBHcmFwaCwgaWYgdGhl IGNvbnRhaW5lciBzdGlsbCBleGlzdHMgYW5kIGhhcyBhIHNpemUKLSAgICAgIHZhciBkYXNoYm9h cmRQYW5lbCA9IHBnQnJvd3Nlci5wYW5lbHNbJ2Rhc2hib2FyZCddLnBhbmVsOwotICAgICAgdmFy IGRpdiA9IGRhc2hib2FyZFBhbmVsLmxheW91dCgpLnNjZW5lKCkuZmluZCgnLnBnLXBhbmVsLWNv bnRlbnQnKTsKLSAgICAgIGlmICgkKGRpdikuZmluZChjb250YWluZXIpLmxlbmd0aCkgeyAvLyBF eGlzdHM/Ci0gICAgICAgIGlmIChjb250YWluZXIuY2xpZW50SGVpZ2h0ID4gMCAmJiBjb250YWlu ZXIuY2xpZW50V2lkdGggPiAwKSB7IC8vIE5vdCBoaWRkZW4/Ci0gICAgICAgICAgRmxvdHIuZHJh dyhjb250YWluZXIsIGRhdGFzZXQsIG9wdGlvbnMpOwotICAgICAgICB9Ci0gICAgICB9IGVsc2Ug ewotICAgICAgICByZXR1cm47Ci0gICAgICB9CisgICAgcmVuZGVyQ2hhcnRMb29wOiBmdW5jdGlv bihjb250YWluZXIsIHNpZCwgZGlkLCB1cmwsIG9wdGlvbnMsIGNvdW50ZXIsIHJlZnJlc2gpIHsK KyAgICAgIHZhciBkYXRhID0gW10sCisgICAgICAgIGRhdGFzZXQgPSBbXTsKIAotICAgICAgLy8g QW5pbWF0ZQotICAgICAgdmFyIHNldFRpbWVvdXRGdW5jID0gZnVuY3Rpb24oKSB7CisgICAgICB2 YXIgdGhlSW50ZXJ2YWxGdW5jID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIHZhciBwYXRoID0gdXJs ICsgc2lkOwogICAgICAgICBpZiAoZGlkICE9IC0xKSB7CiAgICAgICAgICAgcGF0aCArPSAnLycg KyBkaWQ7CkBAIC00MzUsNyArMzU5LDgyIEBAIGRlZmluZSgncGdhZG1pbi5kYXNoYm9hcmQnLCBb CiAgICAgICAgIC5kb25lKGZ1bmN0aW9uKHJlc3ApIHsKICAgICAgICAgICAkKGNvbnRhaW5lciku cmVtb3ZlQ2xhc3MoJ2dyYXBoLWVycm9yJyk7CiAgICAgICAgICAgZGF0YSA9IEpTT04ucGFyc2Uo cmVzcCk7Ci0gICAgICAgICAgcGdBZG1pbi5EYXNoYm9hcmQucmVuZGVyX2NoYXJ0KGNvbnRhaW5l ciwgZGF0YSwgZGF0YXNldCwgc2lkLCBkaWQsIHVybCwgb3B0aW9ucywgY291bnRlciwgcmVmcmVz aCk7CisgICAgICAgICAgaWYgKCFkYXNoYm9hcmRWaXNpYmxlKQorICAgICAgICAgICAgcmV0dXJu OworCisgICAgICAgICAgdmFyIHkgPSAwLAorICAgICAgICAgICAgeDsKKyAgICAgICAgICBpZiAo ZGF0YXNldC5sZW5ndGggPT0gMCkgeworICAgICAgICAgICAgaWYgKGNvdW50ZXIgPT0gdHJ1ZSkg eworICAgICAgICAgICAgICAvLyBIYXZlIHdlIHN0YXNoZWQgaW5pdGlhbCB2YWx1ZXM/CisgICAg ICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKCQoY29udGFpbmVyKS5kYXRhKCdjb3VudGVyX3By ZXZpb3VzX3ZhbHMnKSkpIHsKKyAgICAgICAgICAgICAgICAkKGNvbnRhaW5lcikuZGF0YSgnY291 bnRlcl9wcmV2aW91c192YWxzJywgZGF0YVswXSk7CisgICAgICAgICAgICAgIH0gZWxzZSB7Cisg ICAgICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBpbml0aWFsIGRhdGEgc3RydWN0dXJlCisgICAg ICAgICAgICAgICAgZm9yICh4IGluIGRhdGFbMF0pIHsKKyAgICAgICAgICAgICAgICAgIGRhdGFz ZXQucHVzaCh7CisgICAgICAgICAgICAgICAgICAgICdkYXRhJzogWworICAgICAgICAgICAgICAg ICAgICAgIFswLCBkYXRhWzBdW3hdIC0gJChjb250YWluZXIpLmRhdGEoJ2NvdW50ZXJfcHJldmlv dXNfdmFscycpW3hdXSwKKyAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAg ICAgJ2xhYmVsJzogeCwKKyAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgLy8g Q3JlYXRlIHRoZSBpbml0aWFsIGRhdGEgc3RydWN0dXJlCisgICAgICAgICAgICAgIGZvciAoeCBp biBkYXRhWzBdKSB7CisgICAgICAgICAgICAgICAgZGF0YXNldC5wdXNoKHsKKyAgICAgICAgICAg ICAgICAgICdkYXRhJzogWworICAgICAgICAgICAgICAgICAgICBbMCwgZGF0YVswXVt4XV0sCisg ICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICAgJ2xhYmVsJzogeCwKKyAgICAg ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAg IH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKHggaW4gZGF0YVswXSkgeworICAgICAgICAgICAg ICAvLyBQdXNoIG5ldyB2YWx1ZXMgb250byB0aGUgZXhpc3RpbmcgZGF0YSBzdHJ1Y3R1cmUKKyAg ICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhIGNvdW50ZXIgc3RhdCwgd2UgbmVlZCB0byBzdWJ0 cmFjdCB0aGUgcHJldmlvdXMgdmFsdWUKKyAgICAgICAgICAgICAgaWYgKGNvdW50ZXIgPT0gZmFs c2UpIHsKKyAgICAgICAgICAgICAgICBkYXRhc2V0W3ldWydkYXRhJ10udW5zaGlmdChbMCwgZGF0 YVswXVt4XV0pOworICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFN0 b3JlIHRoZSBjdXJyZW50IHZhbHVlLCBtaW51cyB0aGUgcHJldmlvdXMgb25lIHdlIHN0YXNoZWQu CisgICAgICAgICAgICAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGUgdGFiIGhhcyBiZWVuIHJlbG9h ZGVkLCBpbiB3aGljaCBjYXNlIG91dCBwcmV2aW91cyB2YWx1ZXMgYXJlIGdvbmUKKyAgICAgICAg ICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZCgkKGNvbnRhaW5lcikuZGF0YSgnY291bnRlcl9wcmV2 aW91c192YWxzJykpKQorICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAg ICAgZGF0YXNldFt5XVsnZGF0YSddLnVuc2hpZnQoWzAsIGRhdGFbMF1beF0gLSAkKGNvbnRhaW5l cikuZGF0YSgnY291bnRlcl9wcmV2aW91c192YWxzJylbeF1dKTsKKyAgICAgICAgICAgICAgfQor CisgICAgICAgICAgICAgIC8vIFJlc2V0IHRoZSB0aW1lIGluZGV4IHRvIGdldCBhIHByb3BlciBz Y3JvbGxpbmcgZGlzcGxheQorICAgICAgICAgICAgICBmb3IgKHZhciB6ID0gMDsgeiA8IGRhdGFz ZXRbeV1bJ2RhdGEnXS5sZW5ndGg7IHorKykgeworICAgICAgICAgICAgICAgIGRhdGFzZXRbeV1b J2RhdGEnXVt6XVswXSA9IHo7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICB5Kys7 CisgICAgICAgICAgICB9CisgICAgICAgICAgICAkKGNvbnRhaW5lcikuZGF0YSgnY291bnRlcl9w cmV2aW91c192YWxzJywgZGF0YVswXSk7CisgICAgICAgICAgfQorCisgICAgICAgICAgLy8gUmVt b3ZlIHVuZWVkZWQgZWxlbWVudHMKKyAgICAgICAgICBmb3IgKHggPSAwOyB4IDwgZGF0YXNldC5s ZW5ndGg7IHgrKykgeworICAgICAgICAgICAgLy8gUmVtb3ZlIG9sZCBkYXRhIHBvaW50cworICAg ICAgICAgICAgaWYgKGRhdGFzZXRbeF1bJ2RhdGEnXS5sZW5ndGggPiAxMDEpIHsKKyAgICAgICAg ICAgICAgZGF0YXNldFt4XVsnZGF0YSddLnBvcCgpOworICAgICAgICAgICAgfQorICAgICAgICAg IH0KKworICAgICAgICAgIC8vIERyYXcgR3JhcGgsIGlmIHRoZSBjb250YWluZXIgc3RpbGwgZXhp c3RzIGFuZCBoYXMgYSBzaXplCisgICAgICAgICAgdmFyIGRhc2hib2FyZFBhbmVsID0gcGdCcm93 c2VyLnBhbmVsc1snZGFzaGJvYXJkJ10ucGFuZWw7CisgICAgICAgICAgdmFyIGRpdiA9IGRhc2hi b2FyZFBhbmVsLmxheW91dCgpLnNjZW5lKCkuZmluZCgnLnBnLXBhbmVsLWNvbnRlbnQnKTsKKyAg ICAgICAgICBpZiAoJChkaXYpLmZpbmQoY29udGFpbmVyKS5sZW5ndGgpIHsgLy8gRXhpc3RzPwor ICAgICAgICAgICAgaWYgKGNvbnRhaW5lci5jbGllbnRIZWlnaHQgPiAwICYmIGNvbnRhaW5lci5j bGllbnRXaWR0aCA+IDApIHsgLy8gTm90IGhpZGRlbj8KKyAgICAgICAgICAgICAgRmxvdHIuZHJh dyhjb250YWluZXIsIGRhdGFzZXQsIG9wdGlvbnMpOworICAgICAgICAgICAgfQorICAgICAgICAg IH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgfQorCiAgICAgICAgIH0p CiAgICAgICAgIC5mYWlsKGZ1bmN0aW9uKHhocikgewogICAgICAgICAgIGxldCBlcnIgPSAnJzsK QEAgLTQ2MywxNSArNDYyLDM2IEBAIGRlZmluZSgncGdhZG1pbi5kYXNoYm9hcmQnLCBbCiAgICAg ICAgICAgJChjb250YWluZXIpLmh0bWwoCiAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iYWxlcnQg YWxlcnQtJyArIGNscyArICcgcGctcGFuZWwtbWVzc2FnZSIgcm9sZT0iYWxlcnQiPicgKyBtc2cg KyAnPC9kaXY+JwogICAgICAgICAgICk7Ci0KLSAgICAgICAgICAvLyBUcnkgYWdhaW4uLi4KLSAg ICAgICAgICBpZiAoY29udGFpbmVyLmNsaWVudEhlaWdodCA+IDAgJiYgY29udGFpbmVyLmNsaWVu dFdpZHRoID4gMCkgewotICAgICAgICAgICAgc2V0VGltZW91dChzZXRUaW1lb3V0RnVuYywgcmVm cmVzaCAqIDEwMDApOwotICAgICAgICAgIH0KICAgICAgICAgfSk7CiAgICAgICB9OworICAgICAg LyogRXhlY3V0ZSBvbmNlIGZvciB0aGUgZmlyc3QgdGltZSBhcyBzZXRJbnRlcnZhbCB3aWxsIG5v dCBkbyAqLworICAgICAgdGhlSW50ZXJ2YWxGdW5jKCk7CisgICAgICByZXR1cm4gc2V0SW50ZXJ2 YWwodGhlSW50ZXJ2YWxGdW5jLCByZWZyZXNoICogMTAwMCk7CisgICAgfSwKIAotICAgICAgc2V0 VGltZW91dChzZXRUaW1lb3V0RnVuYywgcmVmcmVzaCAqIDEwMDApOworICAgIC8vIFJlbmRlciBh IGNoYXJ0CisgICAgcmVuZGVyX2NoYXJ0OiBmdW5jdGlvbigKKyAgICAgIGNvbnRhaW5lciwgdXJs LCBvcHRpb25zLCBjb3VudGVyLCBjaGFydE5hbWUsIHByZWZOYW1lCisgICAgKSB7CisKKyAgICAg IC8vIERhdGEgZm9ybWF0OgorICAgICAgLy8gWworICAgICAgLy8gICAgIHsgZGF0YTogW1swLCB5 MF0sIFsxLCB5MV0uLi5dLCBsYWJlbDogJ0xhYmVsIDEnLCBbb3B0aW9uc10gfSwKKyAgICAgIC8v ICAgICB7IGRhdGE6IFtbMCwgeTBdLCBbMSwgeTFdLi4uXSwgbGFiZWw6ICdMYWJlbCAyJywgW29w dGlvbnNdIH0sCisgICAgICAvLyAgICAgeyBkYXRhOiBbWzAsIHkwXSwgWzEsIHkxXS4uLl0sIGxh YmVsOiAnTGFiZWwgMycsIFtvcHRpb25zXSB9CisgICAgICAvLyBdCisKKyAgICAgIGxldCBzZWxm ID0gdGhpczsKKyAgICAgIGlmKHNlbGYuaW50ZXJ2YWxJZHNbY2hhcnROYW1lXQorICAgICAgICAm JiBzZWxmLm9sZF9wcmVmZXJlbmNlc1twcmVmTmFtZV0gIT0gc2VsZi5wcmVmZXJlbmNlc1twcmVm TmFtZV0pIHsKKyAgICAgICAgc2VsZi5jbGVhckludGVydmFsSWQoY2hhcnROYW1lKTsKKyAgICAg IH0KKyAgICAgIGlmKCFzZWxmLmludGVydmFsSWRzW2NoYXJ0TmFtZV0pIHsKKyAgICAgICAgc2Vs Zi5pbnRlcnZhbElkc1tjaGFydE5hbWVdID0gc2VsZi5yZW5kZXJDaGFydExvb3AoCisgICAgICAg ICAgY29udGFpbmVyLCBzZWxmLnNpZCwgc2VsZi5kaWQsIHVybF9mb3IoJ2Rhc2hib2FyZC5zZXNz aW9uX3N0YXRzJyksCisgICAgICAgICAgb3B0aW9ucywgZmFsc2UsIHNlbGYucHJlZmVyZW5jZXNb cHJlZk5hbWVdCisgICAgICAgICk7CisgICAgICB9CiAgICAgfSwKIAogICAgIC8vIEhhbmRsZXIg ZnVuY3Rpb24gdG8gc3VwcG9ydCB0aGUgIkFkZCBTZXJ2ZXIiIGxpbmsKQEAgLTUwMywxMiArNTIz LDEzIEBAIGRlZmluZSgncGdhZG1pbi5kYXNoYm9hcmQnLCBbCiAgICAgfSwKIAogICAgIC8vIFJl bmRlciBhIGdyaWQKLSAgICByZW5kZXJfZ3JpZDogZnVuY3Rpb24oY29udGFpbmVyLCBzaWQsIGRp ZCwgdXJsLCBjb2x1bW5zKSB7Ci0gICAgICB2YXIgRGF0dW0gPSBCYWNrYm9uZS5Nb2RlbC5leHRl bmQoe30pOworICAgIHJlbmRlcl9ncmlkOiBmdW5jdGlvbihjb250YWluZXIsIHVybCwgY29sdW1u cykgeworICAgICAgdmFyIERhdHVtID0gQmFja2JvbmUuTW9kZWwuZXh0ZW5kKHt9KSwKKyAgICAg ICAgc2VsZiA9IHRoaXM7CiAKLSAgICAgIHZhciBwYXRoID0gdXJsICsgc2lkOwotICAgICAgaWYg KGRpZCAhPSAtMSkgewotICAgICAgICBwYXRoICs9ICcvJyArIGRpZDsKKyAgICAgIHZhciBwYXRo ID0gdXJsICsgc2VsZi5zaWQ7CisgICAgICBpZiAoc2VsZi5kaWQgIT0gLTEpIHsKKyAgICAgICAg cGF0aCArPSAnLycgKyBzZWxmLmRpZDsKICAgICAgIH0KIAogICAgICAgdmFyIERhdGEgPSBCYWNr Ym9uZS5Db2xsZWN0aW9uLmV4dGVuZCh7CkBAIC01MjcsNiArNTQ4LDcgQEAgZGVmaW5lKCdwZ2Fk bWluLmRhc2hib2FyZCcsIFsKICAgICAgIH0pOwogCiAgICAgICAvLyBSZW5kZXIgdGhlIGdyaWQK KyAgICAgICQoY29udGFpbmVyKS5lbXB0eSgpOwogICAgICAgJChjb250YWluZXIpLmFwcGVuZChn cmlkLnJlbmRlcigpLmVsKTsKIAogICAgICAgLy8gSW5pdGlhbGl6ZSBhIGNsaWVudC1zaWRlIGZp bHRlciB0byBmaWx0ZXIgb24gdGhlIGNsaWVudApAQCAtNjE1LDQxICs2MzcsNTkgQEAgZGVmaW5l KCdwZ2FkbWluLmRhc2hib2FyZCcsIFsKICAgICAgIH0pOwogICAgIH0sCiAKLSAgICAvLyBSb2Nr IG4nIHJvbGwgb24gdGhlIHNlcnZlciBkYXNoYm9hcmQKLSAgICBpbml0X3NlcnZlcl9kYXNoYm9h cmQ6IGZ1bmN0aW9uKAotICAgICAgc2lkLAotICAgICAgdmVyc2lvbiwKLSAgICAgIHNlc3Npb25f c3RhdHNfcmVmcmVzaCwKLSAgICAgIHRwc19zdGF0c19yZWZyZXNoLAotICAgICAgdGlfc3RhdHNf cmVmcmVzaCwKLSAgICAgIHRvX3N0YXRzX3JlZnJlc2gsCi0gICAgICBiaW9fc3RhdHNfcmVmcmVz aCwKLSAgICAgIHNob3dfZ3JhcGhzLAotICAgICAgc2hvd19zZXJ2ZXJfYWN0aXZpdHkKLSAgICAp IHsKKyAgICBjbGVhckludGVydmFsSWQ6IGZ1bmN0aW9uKGludGVydmFsSWQpIHsKKyAgICAgIHZh ciBzZWxmID0gdGhpczsKKyAgICAgIGlmKCFpbnRlcnZhbElkKXsKKyAgICAgICAgXy5lYWNoKHNl bGYuaW50ZXJ2YWxJZHMsIGZ1bmN0aW9uKGlkLCBrZXkpIHsKKyAgICAgICAgICBjbGVhckludGVy dmFsKGlkKTsKKyAgICAgICAgICBkZWxldGUgc2VsZi5pbnRlcnZhbElkc1trZXldOworICAgICAg ICB9KTsKKyAgICAgIH0KKyAgICAgIGVsc2UgeworICAgICAgICBjbGVhckludGVydmFsKHNlbGYu aW50ZXJ2YWxJZHNbaW50ZXJ2YWxJZF0pOworICAgICAgICBkZWxldGUgc2VsZi5pbnRlcnZhbElk c1tpbnRlcnZhbElkXTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgLy8gUm9jayBuJyByb2xsIG9u IHRoZSBkYXNoYm9hcmQKKyAgICBpbml0X2Rhc2hib2FyZDogZnVuY3Rpb24oKSB7CisgICAgICBs ZXQgc2VsZiA9IHRoaXM7CisKKyAgICAgIGlmKHNlbGYuc2lkID09PSAtMSAmJiBzZWxmLmRpZCA9 PT0gLTEpIHsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICAvKiBDYWNoZSBtYXkg dGFrZSB0aW1lIHRvIGxvYWQgZm9yIHRoZSBmaXJzdCB0aW1lCisgICAgICAgKiBLZWVwIHRyeWlu ZyB0aWxsIGF2YWlsYWJsZQorICAgICAgICovCisgICAgICBsZXQgY2FjaGVJbnRlcnZhbElkID0g c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgaWYod2lu ZG93LnRvcC5wZ0FkbWluLkJyb3dzZXIucHJlZmVyZW5jZV92ZXJzaW9uKCkgPiAwKSB7CisgICAg ICAgICAgICBjbGVhckludGVydmFsKGNhY2hlSW50ZXJ2YWxJZCk7CisgICAgICAgICAgICBzZWxm LnJlZmxlY3RQcmVmZXJlbmNlcygpOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBj YXRjaChlcnIpIHsKKyAgICAgICAgICBjbGVhckludGVydmFsKGNhY2hlSW50ZXJ2YWxJZCk7Cisg ICAgICAgICAgdGhyb3cgZXJyOworICAgICAgICB9CisgICAgICB9LDApOworCisgICAgICAvKiBS ZWdpc3RlciBmb3IgcHJlZmVyZW5jZSBjaGFuZ2VkIGV2ZW50IGJyb2FkY2FzdGVkICovCisgICAg ICBwZ0Jyb3dzZXIub25QcmVmZXJlbmNlc0NoYW5nZSgnZGFzaGJvYXJkcycsIGZ1bmN0aW9uKCkg eworICAgICAgICBzZWxmLnJlZmxlY3RQcmVmZXJlbmNlcygpOworICAgICAgfSk7CisKKyAgICB9 LAorCisgICAgcmVmbGVjdFByZWZlcmVuY2VzOiBmdW5jdGlvbigpIHsKKyAgICAgIC8qIENvbW1v biB0aGluZ3MgY2FuIGNvbWUgaGVyZSAqLworICAgICAgdmFyIHNlbGYgPSB0aGlzOwogICAgICAg dmFyIGRpdl9zZXNzaW9ucyA9ICQoJy5kYXNoYm9hcmQtY29udGFpbmVyJykuZmluZCgnI2dyYXBo LXNlc3Npb25zJylbMF07CiAgICAgICB2YXIgZGl2X3RwcyA9ICQoJy5kYXNoYm9hcmQtY29udGFp bmVyJykuZmluZCgnI2dyYXBoLXRwcycpWzBdOwogICAgICAgdmFyIGRpdl90aSA9ICQoJy5kYXNo Ym9hcmQtY29udGFpbmVyJykuZmluZCgnI2dyYXBoLXRpJylbMF07CiAgICAgICB2YXIgZGl2X3Rv ID0gJCgnLmRhc2hib2FyZC1jb250YWluZXInKS5maW5kKCcjZ3JhcGgtdG8nKVswXTsKICAgICAg IHZhciBkaXZfYmlvID0gJCgnLmRhc2hib2FyZC1jb250YWluZXInKS5maW5kKCcjZ3JhcGgtYmlv JylbMF07Ci0gICAgICB2YXIgZGl2X3NlcnZlcl9hY3Rpdml0eSA9ICQoJy5kYXNoYm9hcmQtY29u dGFpbmVyJykuZmluZCgnI3NlcnZlcl9hY3Rpdml0eScpOwotICAgICAgdmFyIGRpdl9zZXJ2ZXJf bG9ja3MgPSAkKCcuZGFzaGJvYXJkLWNvbnRhaW5lcicpLmZpbmQoJyNzZXJ2ZXJfbG9ja3MnKTsK LSAgICAgIHZhciBkaXZfc2VydmVyX3ByZXBhcmVkID0gJCgnLmRhc2hib2FyZC1jb250YWluZXIn KS5maW5kKCcjc2VydmVyX3ByZXBhcmVkJyk7Ci0gICAgICB2YXIgZGl2X3NlcnZlcl9jb25maWcg PSAkKCcuZGFzaGJvYXJkLWNvbnRhaW5lcicpLmZpbmQoJyNzZXJ2ZXJfY29uZmlnJyk7Ci0gICAg ICB2YXIgZGF0YXNldF9zZXNzaW9ucyA9IFtdOwotICAgICAgdmFyIGRhdGFfc2Vzc2lvbnMgPSBb XTsKLSAgICAgIHZhciBkYXRhc2V0X3RwcyA9IFtdOwotICAgICAgdmFyIGRhdGFfdHBzID0gW107 Ci0gICAgICB2YXIgZGF0YXNldF90aSA9IFtdOwotICAgICAgdmFyIGRhdGFfdGkgPSBbXTsKLSAg ICAgIHZhciBkYXRhc2V0X3RvID0gW107Ci0gICAgICB2YXIgZGF0YV90byA9IFtdOwotICAgICAg dmFyIGRhdGFzZXRfYmlvID0gW107Ci0gICAgICB2YXIgZGF0YV9iaW8gPSBbXTsKLQotICAgICAg Ly8gRmFrZSBEQiBJRAotICAgICAgdmFyIGRpZCA9IC0xOwotCiAgICAgICB2YXIgb3B0aW9uc19s aW5lID0gewogICAgICAgICBwYXJzZUZsb2F0OiBmYWxzZSwKICAgICAgICAgeGF4aXM6IHsKQEAg LTY2NCw0MCArNzA0LDg1IEBAIGRlZmluZSgncGdhZG1pbi5kYXNoYm9hcmQnLCBbCiAgICAgICAg ICAgcG9zaXRpb246ICdudycsCiAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0QyRThGRics CiAgICAgICAgIH0sCisgICAgICAgIHNoYWRvd1NpemU6IDAsCisgICAgICAgIHJlc29sdXRpb24g OiA1LAogICAgICAgfTsKIAotICAgICAgLy8gRGlzcGxheSBncmFwaHMKLSAgICAgIGlmKHNob3df Z3JhcGhzKSB7CisgICAgICAvKiBXZSB3aWxsIHVzZSBvbGQgcHJlZmVyZW5jZXMgZm9yIHNlbGVj dGl2ZSBncmFwaCB1cGRhdGVzIG9uIHByZWZlcmVuY2UgY2hhbmdlICovCisgICAgICBpZihzZWxm LnByZWZlcmVuY2VzKSB7CisgICAgICAgIHNlbGYub2xkX3ByZWZlcmVuY2VzID0gc2VsZi5wcmVm ZXJlbmNlczsKKyAgICAgICAgc2VsZi5wcmVmZXJlbmNlcyA9IHdpbmRvdy50b3AucGdBZG1pbi5C cm93c2VyLmdldF9wcmVmZXJlbmNlc19mb3JfbW9kdWxlKCdkYXNoYm9hcmRzJyk7CisgICAgICB9 CisgICAgICBlbHNlIHsKKyAgICAgICAgc2VsZi5wcmVmZXJlbmNlcyA9IHdpbmRvdy50b3AucGdB ZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNlc19mb3JfbW9kdWxlKCdkYXNoYm9hcmRzJyk7Cisg ICAgICAgIHNlbGYub2xkX3ByZWZlcmVuY2VzID0gc2VsZi5wcmVmZXJlbmNlczsKKyAgICAgIH0K KworICAgICAgaWYoc2VsZi5wcmVmZXJlbmNlcy5zaG93X2dyYXBocyAmJiAkKCcjZGFzaGJvYXJk LWdyYXBocycpLmhhc0NsYXNzKCdkYXNoYm9hcmQtaGlkZGVuJykpIHsKKyAgICAgICAgJCgnI2Rh c2hib2FyZC1ncmFwaHMnKS5yZW1vdmVDbGFzcygnZGFzaGJvYXJkLWhpZGRlbicpOworICAgICAg fQorICAgICAgZWxzZSBpZighc2VsZi5wcmVmZXJlbmNlcy5zaG93X2dyYXBocykgeworICAgICAg ICAkKCcjZGFzaGJvYXJkLWdyYXBocycpLmFkZENsYXNzKCdkYXNoYm9hcmQtaGlkZGVuJyk7Cisg ICAgICAgIHNlbGYuY2xlYXJJbnRlcnZhbElkKCk7CisgICAgICB9CisKKyAgICAgIGlmIChzZWxm LnByZWZlcmVuY2VzLnNob3dfYWN0aXZpdHkgJiYgJCgnI2Rhc2hib2FyZC1hY3Rpdml0eScpLmhh c0NsYXNzKCdkYXNoYm9hcmQtaGlkZGVuJykpIHsKKyAgICAgICAgJCgnI2Rhc2hib2FyZC1hY3Rp dml0eScpLnJlbW92ZUNsYXNzKCdkYXNoYm9hcmQtaGlkZGVuJyk7CisgICAgICB9CisgICAgICBl bHNlIGlmKCFzZWxmLnByZWZlcmVuY2VzLnNob3dfYWN0aXZpdHkpIHsKKyAgICAgICAgJCgnI2Rh c2hib2FyZC1hY3Rpdml0eScpLmFkZENsYXNzKCdkYXNoYm9hcmQtaGlkZGVuJyk7CisgICAgICB9 CisKKyAgICAgIGlmKHNlbGYucHJlZmVyZW5jZXMuc2hvd19ncmFwaHMpIHsKICAgICAgICAgLy8g UmVuZGVyIHRoZSBncmFwaHMKICAgICAgICAgcGdBZG1pbi5EYXNoYm9hcmQucmVuZGVyX2NoYXJ0 KAotICAgICAgICAgIGRpdl9zZXNzaW9ucywgZGF0YV9zZXNzaW9ucywgZGF0YXNldF9zZXNzaW9u cywgc2lkLCBkaWQsCi0gICAgICAgICAgdXJsX2ZvcignZGFzaGJvYXJkLnNlc3Npb25fc3RhdHMn KSwgb3B0aW9uc19saW5lLCBmYWxzZSwKLSAgICAgICAgICBzZXNzaW9uX3N0YXRzX3JlZnJlc2gK KyAgICAgICAgICBkaXZfc2Vzc2lvbnMsIHVybF9mb3IoJ2Rhc2hib2FyZC5zZXNzaW9uX3N0YXRz JyksIG9wdGlvbnNfbGluZSwgZmFsc2UsCisgICAgICAgICAgJ3Nlc3Npb25fc3RhdHMnLCAnc2Vz c2lvbl9zdGF0c19yZWZyZXNoJwogICAgICAgICApOwogICAgICAgICBwZ0FkbWluLkRhc2hib2Fy ZC5yZW5kZXJfY2hhcnQoCi0gICAgICAgICAgZGl2X3RwcywgZGF0YV90cHMsIGRhdGFzZXRfdHBz LCBzaWQsIGRpZCwKLSAgICAgICAgICB1cmxfZm9yKCdkYXNoYm9hcmQudHBzX3N0YXRzJyksIG9w dGlvbnNfbGluZSwgdHJ1ZSwKLSAgICAgICAgICB0cHNfc3RhdHNfcmVmcmVzaAorICAgICAgICAg IGRpdl90cHMsIHVybF9mb3IoJ2Rhc2hib2FyZC50cHNfc3RhdHMnKSwgb3B0aW9uc19saW5lLCB0 cnVlLAorICAgICAgICAgICd0cHNfc3RhdHMnLCd0cHNfc3RhdHNfcmVmcmVzaCcKICAgICAgICAg KTsKICAgICAgICAgcGdBZG1pbi5EYXNoYm9hcmQucmVuZGVyX2NoYXJ0KAotICAgICAgICAgIGRp dl90aSwgZGF0YV90aSwgZGF0YXNldF90aSwgc2lkLCBkaWQsCi0gICAgICAgICAgdXJsX2Zvcign ZGFzaGJvYXJkLnRpX3N0YXRzJyksIG9wdGlvbnNfbGluZSwgdHJ1ZSwKLSAgICAgICAgICB0aV9z dGF0c19yZWZyZXNoCisgICAgICAgICAgZGl2X3RpLCB1cmxfZm9yKCdkYXNoYm9hcmQudGlfc3Rh dHMnKSwgb3B0aW9uc19saW5lLCB0cnVlLAorICAgICAgICAgICd0aV9zdGF0cycsICd0aV9zdGF0 c19yZWZyZXNoJwogICAgICAgICApOwogICAgICAgICBwZ0FkbWluLkRhc2hib2FyZC5yZW5kZXJf Y2hhcnQoCi0gICAgICAgICAgZGl2X3RvLCBkYXRhX3RvLCBkYXRhc2V0X3RvLCBzaWQsIGRpZCwK LSAgICAgICAgICB1cmxfZm9yKCdkYXNoYm9hcmQudG9fc3RhdHMnKSwgb3B0aW9uc19saW5lLCB0 cnVlLAotICAgICAgICAgIHRvX3N0YXRzX3JlZnJlc2gKKyAgICAgICAgICBkaXZfdG8sIHVybF9m b3IoJ2Rhc2hib2FyZC50b19zdGF0cycpLCBvcHRpb25zX2xpbmUsIHRydWUsCisgICAgICAgICAg J3RvX3N0YXRzJywndG9fc3RhdHNfcmVmcmVzaCcKICAgICAgICAgKTsKICAgICAgICAgcGdBZG1p bi5EYXNoYm9hcmQucmVuZGVyX2NoYXJ0KAotICAgICAgICAgIGRpdl9iaW8sIGRhdGFfYmlvLCBk YXRhc2V0X2Jpbywgc2lkLCBkaWQsCi0gICAgICAgICAgdXJsX2ZvcignZGFzaGJvYXJkLmJpb19z dGF0cycpLCBvcHRpb25zX2xpbmUsIHRydWUsCi0gICAgICAgICAgYmlvX3N0YXRzX3JlZnJlc2gK KyAgICAgICAgICBkaXZfYmlvLCB1cmxfZm9yKCdkYXNoYm9hcmQuYmlvX3N0YXRzJyksIG9wdGlv bnNfbGluZSwgdHJ1ZSwKKyAgICAgICAgICAnYmlvX3N0YXRzJywnYmlvX3N0YXRzX3JlZnJlc2gn CiAgICAgICAgICk7CiAgICAgICB9CiAKKyAgICAgIC8qIERhc2hib2FyZCBzcGVjaWZpYyBwcmVm ZXJlbmNlcyBjYW4gYmUgdXBkYXRlZCBpbiB0aGUKKyAgICAgICAqIGFwcHJvcHJpYXRlIGZ1bmN0 aW9ucworICAgICAgICovCisgICAgICBpZihpc19zZXJ2ZXJfZGFzaGJvYXJkKSB7CisgICAgICAg IHNlbGYucmVmbGVjdFByZWZlcmVuY2VzU2VydmVyKCk7CisgICAgICB9CisgICAgICBlbHNlIGlm KGlzX2RhdGFiYXNlX2Rhc2hib2FyZCkgeworICAgICAgICBzZWxmLnJlZmxlY3RQcmVmZXJlbmNl c0RhdGFiYXNlKCk7CisgICAgICB9CisKKyAgICAgIGlmKCFzZWxmLnByZWZlcmVuY2VzLnNob3df Z3JhcGhzICYmICFzZWxmLnByZWZlcmVuY2VzLnNob3dfYWN0aXZpdHkpIHsKKyAgICAgICAgJCgn I2Rhc2hib2FyZC1ub25lLXNob3cnKS5yZW1vdmVDbGFzcygnZGFzaGJvYXJkLWhpZGRlbicpOwor ICAgICAgfQorICAgICAgZWxzZSB7CisgICAgICAgICQoJyNkYXNoYm9hcmQtbm9uZS1zaG93Jyku YWRkQ2xhc3MoJ2Rhc2hib2FyZC1oaWRkZW4nKTsKKyAgICAgIH0KKyAgICB9LAorICAgIHJlZmxl Y3RQcmVmZXJlbmNlc1NlcnZlcjogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgc2VsZiA9IHRoaXM7 CisgICAgICB2YXIgZGl2X3NlcnZlcl9hY3Rpdml0eSA9ICQoJy5kYXNoYm9hcmQtY29udGFpbmVy JykuZmluZCgnI3NlcnZlcl9hY3Rpdml0eScpOworICAgICAgdmFyIGRpdl9zZXJ2ZXJfbG9ja3Mg PSAkKCcuZGFzaGJvYXJkLWNvbnRhaW5lcicpLmZpbmQoJyNzZXJ2ZXJfbG9ja3MnKTsKKyAgICAg IHZhciBkaXZfc2VydmVyX3ByZXBhcmVkID0gJCgnLmRhc2hib2FyZC1jb250YWluZXInKS5maW5k KCcjc2VydmVyX3ByZXBhcmVkJyk7CisgICAgICB2YXIgZGl2X3NlcnZlcl9jb25maWcgPSAkKCcu ZGFzaGJvYXJkLWNvbnRhaW5lcicpLmZpbmQoJyNzZXJ2ZXJfY29uZmlnJyk7CisKICAgICAgIC8v IERpc3BsYXkgc2VydmVyIGFjdGl2aXR5Ci0gICAgICBpZiAoc2hvd19zZXJ2ZXJfYWN0aXZpdHkp IHsKKyAgICAgIGlmIChzZWxmLnByZWZlcmVuY2VzLnNob3dfYWN0aXZpdHkpIHsKICAgICAgICAg dmFyIHNlcnZlcl9hY3Rpdml0eV9jb2x1bW5zID0gW3sKICAgICAgICAgICBuYW1lOiAncGlkJywK ICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnUElEJyksCkBAIC03MzUsNyArODIwLDcgQEAgZGVm aW5lKCdwZ2FkbWluLmRhc2hib2FyZCcsIFsKICAgICAgICAgICBjZWxsOiAnc3RyaW5nJywKICAg ICAgICAgfV07CiAKLSAgICAgICAgaWYgKHZlcnNpb24gPCA5MDYwMCkgeworICAgICAgICBpZiAo c2VsZi52ZXJzaW9uIDwgOTA2MDApIHsKICAgICAgICAgICBzZXJ2ZXJfYWN0aXZpdHlfY29sdW1u cyA9IHNlcnZlcl9hY3Rpdml0eV9jb2x1bW5zLmNvbmNhdCgKICAgICAgICAgICAgIFt7CiAgICAg ICAgICAgICAgIG5hbWU6ICd3YWl0aW5nJywKQEAgLTc2Niw3ICs4NTEsNyBAQCBkZWZpbmUoJ3Bn YWRtaW4uZGFzaGJvYXJkJywgWwogCiAgICAgICAgIC8vIEFkZCB2ZXJzaW9uIHRvIGVhY2ggZmll bGQKICAgICAgICAgXy5lYWNoKHN1Yk5vZGVGaWVsZHNNb2RlbFswXS5maWVsZHMsIGZ1bmN0aW9u KG9iaikgewotICAgICAgICAgIG9ialsndmVyc2lvbiddID0gdmVyc2lvbjsKKyAgICAgICAgICBv YmpbJ3ZlcnNpb24nXSA9IHNlbGYudmVyc2lvbjsKICAgICAgICAgfSk7CiAKICAgICAgICAgLy8g QWRkIGNhbmNlbCBhY3RpdmUgcXVlcnkgYnV0dG9uCkBAIC03NzUsNyArODYwLDcgQEAgZGVmaW5l KCdwZ2FkbWluLmRhc2hib2FyZCcsIFsKICAgICAgICAgICBsYWJlbDogJycsCiAgICAgICAgICAg Y2VsbDogU2Vzc2lvbkRldGFpbHNDZWxsLAogICAgICAgICAgIGNlbGxfcHJpb3JpdHk6IC0xLAot ICAgICAgICAgIHBvc3RncmVzX3ZlcnNpb246IHZlcnNpb24sCisgICAgICAgICAgcG9zdGdyZXNf dmVyc2lvbjogc2VsZi52ZXJzaW9uLAogICAgICAgICAgIHNjaGVtYTogc3ViTm9kZUZpZWxkc01v ZGVsLAogICAgICAgICB9KTsKIApAQCAtNzg4LDcgKzg3Myw3IEBAIGRlZmluZSgncGdhZG1pbi5k YXNoYm9hcmQnLCBbCiAgICAgICAgICAgZWRpdGFibGU6IGZhbHNlLAogICAgICAgICAgIGNlbGxf cHJpb3JpdHk6IC0xLAogICAgICAgICAgIGNhbkRlbGV0ZVJvdzogcGdBZG1pbi5EYXNoYm9hcmQu Y2FuX3Rha2VfYWN0aW9uLAotICAgICAgICAgIHBvc3RncmVzX3ZlcnNpb246IHZlcnNpb24sCisg ICAgICAgICAgcG9zdGdyZXNfdmVyc2lvbjogc2VsZi52ZXJzaW9uLAogICAgICAgICB9KTsKIAog ICAgICAgICBzZXJ2ZXJfYWN0aXZpdHlfY29sdW1ucy51bnNoaWZ0KHsKQEAgLTc5OSw3ICs4ODQs NyBAQCBkZWZpbmUoJ3BnYWRtaW4uZGFzaGJvYXJkJywgWwogICAgICAgICAgIGVkaXRhYmxlOiBm YWxzZSwKICAgICAgICAgICBjZWxsX3ByaW9yaXR5OiAtMSwKICAgICAgICAgICBjYW5EZWxldGVS b3c6IHBnQWRtaW4uRGFzaGJvYXJkLmNhbl90YWtlX2FjdGlvbiwKLSAgICAgICAgICBwb3N0Z3Jl c192ZXJzaW9uOiB2ZXJzaW9uLAorICAgICAgICAgIHBvc3RncmVzX3ZlcnNpb246IHNlbGYudmVy c2lvbiwKICAgICAgICAgfSk7CiAKICAgICAgICAgdmFyIHNlcnZlcl9sb2Nrc19jb2x1bW5zID0g W3sKQEAgLTkyOSwyMCArMTAxNCwxNiBAQCBkZWZpbmUoJ3BnYWRtaW4uZGFzaGJvYXJkJywgWwog CiAgICAgICAgIC8vIFJlbmRlciB0aGUgdGFicywgYnV0IG9ubHkgZ2V0IGRhdGEgZm9yIHRoZSBh Y3Rpdml0eSB0YWIgZm9yIG5vdwogICAgICAgICBwZ0FkbWluLkRhc2hib2FyZC5yZW5kZXJfZ3Jp ZCgKLSAgICAgICAgICBkaXZfc2VydmVyX2FjdGl2aXR5LCBzaWQsIGRpZCwKLSAgICAgICAgICB1 cmxfZm9yKCdkYXNoYm9hcmQuYWN0aXZpdHknKSwgc2VydmVyX2FjdGl2aXR5X2NvbHVtbnMKKyAg ICAgICAgICBkaXZfc2VydmVyX2FjdGl2aXR5LCB1cmxfZm9yKCdkYXNoYm9hcmQuYWN0aXZpdHkn KSwgc2VydmVyX2FjdGl2aXR5X2NvbHVtbnMKICAgICAgICAgKTsKICAgICAgICAgcGdBZG1pbi5E YXNoYm9hcmQucmVuZGVyX2dyaWQoCi0gICAgICAgICAgZGl2X3NlcnZlcl9sb2Nrcywgc2lkLCBk aWQsIHVybF9mb3IoJ2Rhc2hib2FyZC5sb2NrcycpLAotICAgICAgICAgIHNlcnZlcl9sb2Nrc19j b2x1bW5zCisgICAgICAgICAgZGl2X3NlcnZlcl9sb2NrcywgdXJsX2ZvcignZGFzaGJvYXJkLmxv Y2tzJyksIHNlcnZlcl9sb2Nrc19jb2x1bW5zCiAgICAgICAgICk7CiAgICAgICAgIHBnQWRtaW4u RGFzaGJvYXJkLnJlbmRlcl9ncmlkKAotICAgICAgICAgIGRpdl9zZXJ2ZXJfcHJlcGFyZWQsIHNp ZCwgZGlkLCB1cmxfZm9yKCdkYXNoYm9hcmQucHJlcGFyZWQnKSwKLSAgICAgICAgICBzZXJ2ZXJf cHJlcGFyZWRfY29sdW1ucworICAgICAgICAgIGRpdl9zZXJ2ZXJfcHJlcGFyZWQsIHVybF9mb3Io J2Rhc2hib2FyZC5wcmVwYXJlZCcpLCBzZXJ2ZXJfcHJlcGFyZWRfY29sdW1ucwogICAgICAgICAp OwogICAgICAgICBwZ0FkbWluLkRhc2hib2FyZC5yZW5kZXJfZ3JpZCgKLSAgICAgICAgICBkaXZf c2VydmVyX2NvbmZpZywgc2lkLCBkaWQsIHVybF9mb3IoJ2Rhc2hib2FyZC5jb25maWcnKSwKLSAg ICAgICAgICBzZXJ2ZXJfY29uZmlnX2NvbHVtbnMKKyAgICAgICAgICBkaXZfc2VydmVyX2NvbmZp ZywgdXJsX2ZvcignZGFzaGJvYXJkLmNvbmZpZycpLCBzZXJ2ZXJfY29uZmlnX2NvbHVtbnMKICAg ICAgICAgKTsKIAogICAgICAgICBwZ0FkbWluLkRhc2hib2FyZC5yZW5kZXJfZ3JpZF9kYXRhKGRp dl9zZXJ2ZXJfYWN0aXZpdHkpOwpAQCAtOTY5LDcgKzEwNTAsNyBAQCBkZWZpbmUoJ3BnYWRtaW4u ZGFzaGJvYXJkJywgWwogICAgICAgICB9KTsKIAogICAgICAgICAvLyBIYW5kbGUgYnV0dG9uIGNs aWNrcwotICAgICAgICAkKCdidXR0b24nKS5vbignY2xpY2snLCgpID0+IHsKKyAgICAgICAgJCgn YnV0dG9uJykub2ZmKCdjbGljaycpLm9uKCdjbGljaycsKCkgPT4gewogICAgICAgICAgIHN3aXRj aCAodGhpcy5pZCkgewogICAgICAgICAgIGNhc2UgJ2J0bl9zZXJ2ZXJfYWN0aXZpdHlfcmVmcmVz aCc6CiAgICAgICAgICAgICBwZ0FkbWluLkRhc2hib2FyZC5yZW5kZXJfZ3JpZF9kYXRhKGRpdl9z ZXJ2ZXJfYWN0aXZpdHkpOwpAQCAtOTkwLDg3ICsxMDcxLDE0IEBAIGRlZmluZSgncGdhZG1pbi5k YXNoYm9hcmQnLCBbCiAgICAgICAgIH0pOwogICAgICAgfQogICAgIH0sCi0KLSAgICAvLyBSb2Nr IG4nIHJvbGwgb24gdGhlIGRhdGFiYXNlIGRhc2hib2FyZAotICAgIGluaXRfZGF0YWJhc2VfZGFz aGJvYXJkOiBmdW5jdGlvbigKLSAgICAgIHNpZCwKLSAgICAgIGRpZCwKLSAgICAgIHZlcnNpb24s Ci0gICAgICBzZXNzaW9uX3N0YXRzX3JlZnJlc2gsCi0gICAgICB0cHNfc3RhdHNfcmVmcmVzaCwK LSAgICAgIHRpX3N0YXRzX3JlZnJlc2gsCi0gICAgICB0b19zdGF0c19yZWZyZXNoLAotICAgICAg YmlvX3N0YXRzX3JlZnJlc2gsCi0gICAgICBzaG93X2dyYXBocywKLSAgICAgIHNob3dfZGF0YWJh c2VfYWN0aXZpdHkKLSAgICApIHsKLSAgICAgIHZhciBkaXZfc2Vzc2lvbnMgPSBkb2N1bWVudC5n ZXRFbGVtZW50QnlJZCgnZ3JhcGgtc2Vzc2lvbnMnKTsKLSAgICAgIHZhciBkaXZfdHBzID0gZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dyYXBoLXRwcycpOwotICAgICAgdmFyIGRpdl90aSA9IGRv Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdncmFwaC10aScpOwotICAgICAgdmFyIGRpdl90byA9IGRv Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdncmFwaC10bycpOwotICAgICAgdmFyIGRpdl9iaW8gPSBk b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ3JhcGgtYmlvJyk7CisgICAgcmVmbGVjdFByZWZlcmVu Y2VzRGF0YWJhc2U6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHNlbGYgPSB0aGlzOwogICAgICAg dmFyIGRpdl9kYXRhYmFzZV9hY3Rpdml0eSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkYXRh YmFzZV9hY3Rpdml0eScpOwogICAgICAgdmFyIGRpdl9kYXRhYmFzZV9sb2NrcyA9IGRvY3VtZW50 LmdldEVsZW1lbnRCeUlkKCdkYXRhYmFzZV9sb2NrcycpOwogICAgICAgdmFyIGRpdl9kYXRhYmFz ZV9wcmVwYXJlZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkYXRhYmFzZV9wcmVwYXJlZCcp OwotICAgICAgdmFyIGRhdGFzZXRfc2Vzc2lvbnMgPSBbXTsKLSAgICAgIHZhciBkYXRhX3Nlc3Np b25zID0gW107Ci0gICAgICB2YXIgZGF0YXNldF90cHMgPSBbXTsKLSAgICAgIHZhciBkYXRhX3Rw cyA9IFtdOwotICAgICAgdmFyIGRhdGFzZXRfdGkgPSBbXTsKLSAgICAgIHZhciBkYXRhX3RpID0g W107Ci0gICAgICB2YXIgZGF0YXNldF90byA9IFtdOwotICAgICAgdmFyIGRhdGFfdG8gPSBbXTsK LSAgICAgIHZhciBkYXRhc2V0X2JpbyA9IFtdOwotICAgICAgdmFyIGRhdGFfYmlvID0gW107Ci0K LSAgICAgIHZhciBvcHRpb25zX2xpbmUgPSB7Ci0gICAgICAgIHBhcnNlRmxvYXQ6IGZhbHNlLAot ICAgICAgICB4YXhpczogewotICAgICAgICAgIG1pbjogMTAwLAotICAgICAgICAgIG1heDogMCwK LSAgICAgICAgICBhdXRvc2NhbGU6IDAsCi0gICAgICAgIH0sCi0gICAgICAgIHlheGlzOiB7Ci0g ICAgICAgICAgYXV0b3NjYWxlOiAxLAotICAgICAgICB9LAotICAgICAgICBsZWdlbmQ6IHsKLSAg ICAgICAgICBwb3NpdGlvbjogJ253JywKLSAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRDJF OEZGJywKLSAgICAgICAgfSwKLSAgICAgIH07Ci0KLSAgICAgIC8vIERpc3BsYXkgZ3JhcGhzCi0g ICAgICBpZihzaG93X2dyYXBocykgewotICAgICAgICAvLyBSZW5kZXIgdGhlIGdyYXBocwotICAg ICAgICBwZ0FkbWluLkRhc2hib2FyZC5yZW5kZXJfY2hhcnQoCi0gICAgICAgICAgZGl2X3Nlc3Np b25zLCBkYXRhX3Nlc3Npb25zLCBkYXRhc2V0X3Nlc3Npb25zLCBzaWQsIGRpZCwKLSAgICAgICAg ICB1cmxfZm9yKCdkYXNoYm9hcmQuc2Vzc2lvbl9zdGF0cycpLCBvcHRpb25zX2xpbmUsIGZhbHNl LAotICAgICAgICAgIHNlc3Npb25fc3RhdHNfcmVmcmVzaAotICAgICAgICApOwotICAgICAgICBw Z0FkbWluLkRhc2hib2FyZC5yZW5kZXJfY2hhcnQoCi0gICAgICAgICAgZGl2X3RwcywgZGF0YV90 cHMsIGRhdGFzZXRfdHBzLCBzaWQsIGRpZCwKLSAgICAgICAgICB1cmxfZm9yKCdkYXNoYm9hcmQu dHBzX3N0YXRzJyksIG9wdGlvbnNfbGluZSwgdHJ1ZSwKLSAgICAgICAgICB0cHNfc3RhdHNfcmVm cmVzaAotICAgICAgICApOwotICAgICAgICBwZ0FkbWluLkRhc2hib2FyZC5yZW5kZXJfY2hhcnQo Ci0gICAgICAgICAgZGl2X3RpLCBkYXRhX3RpLCBkYXRhc2V0X3RpLCBzaWQsIGRpZCwKLSAgICAg ICAgICB1cmxfZm9yKCdkYXNoYm9hcmQudGlfc3RhdHMnKSwgb3B0aW9uc19saW5lLCB0cnVlLAot ICAgICAgICAgIHRpX3N0YXRzX3JlZnJlc2gKLSAgICAgICAgKTsKLSAgICAgICAgcGdBZG1pbi5E YXNoYm9hcmQucmVuZGVyX2NoYXJ0KAotICAgICAgICAgIGRpdl90bywgZGF0YV90bywgZGF0YXNl dF90bywgc2lkLCBkaWQsCi0gICAgICAgICAgdXJsX2ZvcignZGFzaGJvYXJkLnRvX3N0YXRzJyks IG9wdGlvbnNfbGluZSwgdHJ1ZSwKLSAgICAgICAgICB0b19zdGF0c19yZWZyZXNoCi0gICAgICAg ICk7Ci0gICAgICAgIHBnQWRtaW4uRGFzaGJvYXJkLnJlbmRlcl9jaGFydCgKLSAgICAgICAgICBk aXZfYmlvLCBkYXRhX2JpbywgZGF0YXNldF9iaW8sIHNpZCwgZGlkLAotICAgICAgICAgIHVybF9m b3IoJ2Rhc2hib2FyZC5iaW9fc3RhdHMnKSwgb3B0aW9uc19saW5lLCB0cnVlLAotICAgICAgICAg IGJpb19zdGF0c19yZWZyZXNoCi0gICAgICAgICk7Ci0gICAgICB9CiAKICAgICAgIC8vIERpc3Bs YXkgc2VydmVyIGFjdGl2aXR5Ci0gICAgICBpZiAoc2hvd19kYXRhYmFzZV9hY3Rpdml0eSkgewor ICAgICAgaWYgKHNlbGYucHJlZmVyZW5jZXMuc2hvd19hY3Rpdml0eSkgewogICAgICAgICB2YXIg ZGF0YWJhc2VfYWN0aXZpdHlfY29sdW1ucyA9IFt7CiAgICAgICAgICAgbmFtZTogJ3BpZCcsCiAg ICAgICAgICAgbGFiZWw6IGdldHRleHQoJ1BJRCcpLApAQCAtMTEwMyw3ICsxMTExLDcgQEAgZGVm aW5lKCdwZ2FkbWluLmRhc2hib2FyZCcsIFsKICAgICAgICAgICBjZWxsOiAnc3RyaW5nJywKICAg ICAgICAgfV07CiAKLSAgICAgICAgaWYgKHZlcnNpb24gPCA5MDYwMCkgeworICAgICAgICBpZiAo c2VsZi52ZXJzaW9uIDwgOTA2MDApIHsKICAgICAgICAgICBkYXRhYmFzZV9hY3Rpdml0eV9jb2x1 bW5zID0gZGF0YWJhc2VfYWN0aXZpdHlfY29sdW1ucy5jb25jYXQoCiAgICAgICAgICAgICBbewog ICAgICAgICAgICAgICBuYW1lOiAnd2FpdGluZycsCkBAIC0xMTM0LDcgKzExNDIsNyBAQCBkZWZp bmUoJ3BnYWRtaW4uZGFzaGJvYXJkJywgWwogCiAgICAgICAgIC8vIEFkZCB2ZXJzaW9uIHRvIGVh Y2ggZmllbGQKICAgICAgICAgXy5lYWNoKHN1Yk5vZGVGaWVsZHNNb2RlbFswXS5maWVsZHMsIGZ1 bmN0aW9uKG9iaikgewotICAgICAgICAgIG9ialsndmVyc2lvbiddID0gdmVyc2lvbjsKKyAgICAg ICAgICBvYmpbJ3ZlcnNpb24nXSA9IHNlbGYudmVyc2lvbjsKICAgICAgICAgfSk7CiAKICAgICAg ICAgLy8gQWRkIGNhbmNlbCBhY3RpdmUgcXVlcnkgYnV0dG9uCkBAIC0xMTQzLDcgKzExNTEsNyBA QCBkZWZpbmUoJ3BnYWRtaW4uZGFzaGJvYXJkJywgWwogICAgICAgICAgIGxhYmVsOiAnJywKICAg ICAgICAgICBjZWxsOiBTZXNzaW9uRGV0YWlsc0NlbGwsCiAgICAgICAgICAgY2VsbF9wcmlvcml0 eTogLTEsCi0gICAgICAgICAgcG9zdGdyZXNfdmVyc2lvbjogdmVyc2lvbiwKKyAgICAgICAgICBw b3N0Z3Jlc192ZXJzaW9uOiBzZWxmLnZlcnNpb24sCiAgICAgICAgICAgc2NoZW1hOiBzdWJOb2Rl RmllbGRzTW9kZWwsCiAgICAgICAgIH0pOwogCkBAIC0xMTU1LDcgKzExNjMsNyBAQCBkZWZpbmUo J3BnYWRtaW4uZGFzaGJvYXJkJywgWwogICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZSwKICAgICAg ICAgICBjZWxsX3ByaW9yaXR5OiAtMSwKICAgICAgICAgICBjYW5EZWxldGVSb3c6IHBnQWRtaW4u RGFzaGJvYXJkLmNhbl90YWtlX2FjdGlvbiwKLSAgICAgICAgICBwb3N0Z3Jlc192ZXJzaW9uOiB2 ZXJzaW9uLAorICAgICAgICAgIHBvc3RncmVzX3ZlcnNpb246IHNlbGYudmVyc2lvbiwKICAgICAg ICAgfSk7CiAgICAgICAgIGRhdGFiYXNlX2FjdGl2aXR5X2NvbHVtbnMudW5zaGlmdCh7CiAgICAg ICAgICAgbmFtZTogJ3BnLWJhY2tmb3JtLWRlbGV0ZScsCkBAIC0xMTY1LDcgKzExNzMsNyBAQCBk ZWZpbmUoJ3BnYWRtaW4uZGFzaGJvYXJkJywgWwogICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZSwK ICAgICAgICAgICBjZWxsX3ByaW9yaXR5OiAtMSwKICAgICAgICAgICBjYW5EZWxldGVSb3c6IHBn QWRtaW4uRGFzaGJvYXJkLmNhbl90YWtlX2FjdGlvbiwKLSAgICAgICAgICBwb3N0Z3Jlc192ZXJz aW9uOiB2ZXJzaW9uLAorICAgICAgICAgIHBvc3RncmVzX3ZlcnNpb246IHNlbGYudmVyc2lvbiwK ICAgICAgICAgfSk7CiAKICAgICAgICAgdmFyIGRhdGFiYXNlX2xvY2tzX2NvbHVtbnMgPSBbewpA QCAtMTI1OCwyMiArMTI2NiwxOSBAQCBkZWZpbmUoJ3BnYWRtaW4uZGFzaGJvYXJkJywgWwogCiAg ICAgICAgIC8vIFJlbmRlciB0aGUgdGFicywgYnV0IG9ubHkgZ2V0IGRhdGEgZm9yIHRoZSBhY3Rp dml0eSB0YWIgZm9yIG5vdwogICAgICAgICBwZ0FkbWluLkRhc2hib2FyZC5yZW5kZXJfZ3JpZCgK LSAgICAgICAgICBkaXZfZGF0YWJhc2VfYWN0aXZpdHksIHNpZCwgZGlkLCB1cmxfZm9yKCdkYXNo Ym9hcmQuYWN0aXZpdHknKSwKLSAgICAgICAgICBkYXRhYmFzZV9hY3Rpdml0eV9jb2x1bW5zCisg ICAgICAgICAgZGl2X2RhdGFiYXNlX2FjdGl2aXR5LCB1cmxfZm9yKCdkYXNoYm9hcmQuYWN0aXZp dHknKSwgZGF0YWJhc2VfYWN0aXZpdHlfY29sdW1ucwogICAgICAgICApOwogICAgICAgICBwZ0Fk bWluLkRhc2hib2FyZC5yZW5kZXJfZ3JpZCgKLSAgICAgICAgICBkaXZfZGF0YWJhc2VfbG9ja3Ms IHNpZCwgZGlkLCB1cmxfZm9yKCdkYXNoYm9hcmQubG9ja3MnKSwKLSAgICAgICAgICBkYXRhYmFz ZV9sb2Nrc19jb2x1bW5zCisgICAgICAgICAgZGl2X2RhdGFiYXNlX2xvY2tzLCB1cmxfZm9yKCdk YXNoYm9hcmQubG9ja3MnKSwgZGF0YWJhc2VfbG9ja3NfY29sdW1ucwogICAgICAgICApOwogICAg ICAgICBwZ0FkbWluLkRhc2hib2FyZC5yZW5kZXJfZ3JpZCgKLSAgICAgICAgICBkaXZfZGF0YWJh c2VfcHJlcGFyZWQsIHNpZCwgZGlkLCB1cmxfZm9yKCdkYXNoYm9hcmQucHJlcGFyZWQnKSwKLSAg ICAgICAgICBkYXRhYmFzZV9wcmVwYXJlZF9jb2x1bW5zCisgICAgICAgICAgZGl2X2RhdGFiYXNl X3ByZXBhcmVkLCB1cmxfZm9yKCdkYXNoYm9hcmQucHJlcGFyZWQnKSwgZGF0YWJhc2VfcHJlcGFy ZWRfY29sdW1ucwogICAgICAgICApOwogCiAgICAgICAgIHBnQWRtaW4uRGFzaGJvYXJkLnJlbmRl cl9ncmlkX2RhdGEoZGl2X2RhdGFiYXNlX2FjdGl2aXR5KTsKIAogICAgICAgICAvLyAoUmUpcmVu ZGVyIHRoZSBhcHByb3ByaWF0ZSB0YWIKLSAgICAgICAgJCgnYVtkYXRhLXRvZ2dsZT0idGFiIl0n KS5vbignc2hvd24uYnMudGFiJywgZnVuY3Rpb24oZSkgeworICAgICAgICAkKCdhW2RhdGEtdG9n Z2xlPSJ0YWIiXScpLm9mZignc2hvd24uYnMudGFiJykub24oJ3Nob3duLmJzLnRhYicsIGZ1bmN0 aW9uKGUpIHsKICAgICAgICAgICBzd2l0Y2ggKCQoZS50YXJnZXQpLmF0dHIoJ2FyaWEtY29udHJv bHMnKSkgewogICAgICAgICAgIGNhc2UgJ3RhYl9kYXRhYmFzZV9hY3Rpdml0eSc6CiAgICAgICAg ICAgICBwZ0FkbWluLkRhc2hib2FyZC5yZW5kZXJfZ3JpZF9kYXRhKGRpdl9kYXRhYmFzZV9hY3Rp dml0eSk7CkBAIC0xMjkwLDcgKzEyOTUsNyBAQCBkZWZpbmUoJ3BnYWRtaW4uZGFzaGJvYXJkJywg WwogICAgICAgICB9KTsKIAogICAgICAgICAvLyBIYW5kbGUgYnV0dG9uIGNsaWNrcwotICAgICAg ICAkKCdidXR0b24nKS5vbignY2xpY2snLCgpID0+IHsKKyAgICAgICAgJCgnYnV0dG9uJykub2Zm KCdjbGljaycpLm9uKCdjbGljaycsKCkgPT4gewogICAgICAgICAgIHN3aXRjaCAodGhpcy5pZCkg ewogICAgICAgICAgIGNhc2UgJ2J0bl9kYXRhYmFzZV9hY3Rpdml0eV9yZWZyZXNoJzoKICAgICAg ICAgICAgIHBnQWRtaW4uRGFzaGJvYXJkLnJlbmRlcl9ncmlkX2RhdGEoZGl2X2RhdGFiYXNlX2Fj dGl2aXR5KTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Rhc2hib2FyZC90ZW1wbGF0ZXMvZGFz aGJvYXJkL2RhdGFiYXNlX2Rhc2hib2FyZC5odG1sIGIvd2ViL3BnYWRtaW4vZGFzaGJvYXJkL3Rl bXBsYXRlcy9kYXNoYm9hcmQvZGF0YWJhc2VfZGFzaGJvYXJkLmh0bWwKaW5kZXggMzdmZjViOTcu LjI2Y2RlMDFhIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9kYXNoYm9hcmQvdGVtcGxhdGVzL2Rh c2hib2FyZC9kYXRhYmFzZV9kYXNoYm9hcmQuaHRtbAorKysgYi93ZWIvcGdhZG1pbi9kYXNoYm9h cmQvdGVtcGxhdGVzL2Rhc2hib2FyZC9kYXRhYmFzZV9kYXNoYm9hcmQuaHRtbApAQCAtMSwxMzUg KzEsMTEwIEBACiA8ZGl2IGNsYXNzPSJkYXNoYm9hcmQtY29udGFpbmVyIj4KLXslIGlmIHNldHRp bmdzLnNob3dfZ3JhcGhzICV9Ci0gICAgPGRpdiBjbGFzcz0icm93Ij4KLSAgICAgICAgPGRpdiBj bGFzcz0iY29sLXhzLTYiPgotICAgICAgICAgICAgPGRpdiBjbGFzcz0ib2JqX3Byb3BlcnRpZXMi PgotICAgICAgICAgICAgICAgIDxsZWdlbmQgY2xhc3M9ImJhZGdlIj57eyBfKCdEYXRhYmFzZSBz ZXNzaW9ucycpIH19PC9sZWdlbmQ+CisgICAgPGRpdiBpZD0iZGFzaGJvYXJkLWdyYXBocyIgY2xh c3M9ImRhc2hib2FyZC1oaWRkZW4iPgorICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgorICAgICAg ICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTYiPgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9 Im9ial9wcm9wZXJ0aWVzIj4KKyAgICAgICAgICAgICAgICAgICAgPGxlZ2VuZCBjbGFzcz0iYmFk Z2UiPnt7IF8oJ0RhdGFiYXNlIHNlc3Npb25zJykgfX08L2xlZ2VuZD4KKyAgICAgICAgICAgICAg ICA8L2Rpdj4KICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICA8L2Rpdj4KLSAgICAgICAgPGRp diBjbGFzcz0iY29sLXhzLTYiPgotICAgICAgICAgICAgPGRpdiBjbGFzcz0ib2JqX3Byb3BlcnRp ZXMiPgotICAgICAgICAgICAgICAgIDxsZWdlbmQgY2xhc3M9ImJhZGdlIj57eyBfKCdUcmFuc2Fj dGlvbnMgcGVyIHNlY29uZCcpIH19PC9sZWdlbmQ+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJj b2wteHMtNiI+CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib2JqX3Byb3BlcnRpZXMiPgor ICAgICAgICAgICAgICAgICAgICA8bGVnZW5kIGNsYXNzPSJiYWRnZSI+e3sgXygnVHJhbnNhY3Rp b25zIHBlciBzZWNvbmQnKSB9fTwvbGVnZW5kPgorICAgICAgICAgICAgICAgIDwvZGl2PgogICAg ICAgICAgICAgPC9kaXY+CiAgICAgICAgIDwvZGl2PgotICAgIDwvZGl2PgotICAgIDxkaXYgY2xh c3M9InJvdyI+Ci0gICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy02Ij4KLSAgICAgICAgICAgIDxk aXYgaWQ9ImdyYXBoLXNlc3Npb25zIiBjbGFzcz0iZ3JhcGgtY29udGFpbmVyIj48L2Rpdj4KLSAg ICAgICAgPC9kaXY+Ci0gICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy02Ij4KLSAgICAgICAgICAg IDxkaXYgaWQ9ImdyYXBoLXRwcyIgY2xhc3M9ImdyYXBoLWNvbnRhaW5lciI+PC9kaXY+CisgICAg ICAgIDxkaXYgY2xhc3M9InJvdyBkYXNoYm9hcmQtcm93Ij4KKyAgICAgICAgICAgIDxkaXYgY2xh c3M9ImNvbC14cy02Ij4KKyAgICAgICAgICAgICAgICA8ZGl2IGlkPSJncmFwaC1zZXNzaW9ucyIg Y2xhc3M9ImdyYXBoLWNvbnRhaW5lciI+PC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAg ICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy02Ij4KKyAgICAgICAgICAgICAgICA8ZGl2IGlkPSJn cmFwaC10cHMiIGNsYXNzPSJncmFwaC1jb250YWluZXIiPjwvZGl2PgorICAgICAgICAgICAgPC9k aXY+CiAgICAgICAgIDwvZGl2PgotICAgIDwvZGl2PgogCi0gICAgPGRpdiBjbGFzcz0icm93IGRh c2hib2FyZC1oZWFkZXItc3BhY2VyIj4KLSAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTQiPgot ICAgICAgICAgICAgPGRpdiBjbGFzcz0ib2JqX3Byb3BlcnRpZXMiPgotICAgICAgICAgICAgICAg IDxsZWdlbmQgY2xhc3M9ImJhZGdlIj57eyBfKCdUdXBsZXMgaW4nKSB9fTwvbGVnZW5kPgorICAg ICAgICA8ZGl2IGNsYXNzPSJyb3ciPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTQi PgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9ial9wcm9wZXJ0aWVzIj4KKyAgICAgICAg ICAgICAgICAgICAgPGxlZ2VuZCBjbGFzcz0iYmFkZ2UiPnt7IF8oJ1R1cGxlcyBpbicpIH19PC9s ZWdlbmQ+CisgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICA8L2Rpdj4KLSAgICAg ICAgPC9kaXY+Ci0gICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy00Ij4KLSAgICAgICAgICAgIDxk aXYgY2xhc3M9Im9ial9wcm9wZXJ0aWVzIj4KLSAgICAgICAgICAgICAgICA8bGVnZW5kIGNsYXNz PSJiYWRnZSI+e3sgXygnVHVwbGVzIG91dCcpIH19PC9sZWdlbmQ+CisgICAgICAgICAgICA8ZGl2 IGNsYXNzPSJjb2wteHMtNCI+CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib2JqX3Byb3Bl cnRpZXMiPgorICAgICAgICAgICAgICAgICAgICA8bGVnZW5kIGNsYXNzPSJiYWRnZSI+e3sgXygn VHVwbGVzIG91dCcpIH19PC9sZWdlbmQ+CisgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg ICAgICA8L2Rpdj4KLSAgICAgICAgPC9kaXY+Ci0gICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy00 Ij4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9ial9wcm9wZXJ0aWVzIj4KLSAgICAgICAgICAg ICAgICA8bGVnZW5kIGNsYXNzPSJiYWRnZSI+e3sgXygnQmxvY2sgSS9PJykgfX08L2xlZ2VuZD4K KyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy00Ij4KKyAgICAgICAgICAgICAgICA8ZGl2 IGNsYXNzPSJvYmpfcHJvcGVydGllcyI+CisgICAgICAgICAgICAgICAgICAgIDxsZWdlbmQgY2xh c3M9ImJhZGdlIj57eyBfKCdCbG9jayBJL08nKSB9fTwvbGVnZW5kPgorICAgICAgICAgICAgICAg IDwvZGl2PgogICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgIDwvZGl2PgotICAgIDwvZGl2Pgog Ci0gICAgPGRpdiBjbGFzcz0icm93Ij4KLSAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTQiPgot ICAgICAgICAgICAgPGRpdiBpZD0iZ3JhcGgtdGkiIGNsYXNzPSJncmFwaC1jb250YWluZXIiPjwv ZGl2PgotICAgICAgICA8L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTQiPgotICAg ICAgICAgICAgPGRpdiBpZD0iZ3JhcGgtdG8iIGNsYXNzPSJncmFwaC1jb250YWluZXIiPjwvZGl2 PgotICAgICAgICA8L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTQiPgotICAgICAg ICAgICAgPGRpdiBpZD0iZ3JhcGgtYmlvIiBjbGFzcz0iZ3JhcGgtY29udGFpbmVyIj48L2Rpdj4K KyAgICAgICAgPGRpdiBjbGFzcz0icm93IGRhc2hib2FyZC1yb3ciPgorICAgICAgICAgICAgPGRp diBjbGFzcz0iY29sLXhzLTQiPgorICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImdyYXBoLXRpIiBj bGFzcz0iZ3JhcGgtY29udGFpbmVyIj48L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAg ICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTQiPgorICAgICAgICAgICAgICAgIDxkaXYgaWQ9Imdy YXBoLXRvIiBjbGFzcz0iZ3JhcGgtY29udGFpbmVyIj48L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2 PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTQiPgorICAgICAgICAgICAgICAgIDxk aXYgaWQ9ImdyYXBoLWJpbyIgY2xhc3M9ImdyYXBoLWNvbnRhaW5lciI+PC9kaXY+CisgICAgICAg ICAgICA8L2Rpdj4KICAgICAgICAgPC9kaXY+CiAgICAgPC9kaXY+Ci17JSBlbmRpZiAlfQoteyUg aWYgc2V0dGluZ3Muc2hvd19hY3Rpdml0eSAlfQotICB7IyBJZiB3ZSBhcmUgZGlzcGxheWluZyBn cmFwaHMgdGhlbiBvbmx5IHdlIG5lZWQgc3BhY2Ugb24gdG9wICN9Ci0gIHslIGlmIHNldHRpbmdz LnNob3dfZ3JhcGhzICV9Ci0gICAgPGRpdiBjbGFzcz0icm93IGRhc2hib2FyZC1oZWFkZXItc3Bh Y2VyIj4KLSAgeyUgZWxzZSAlfQotICAgIDxkaXYgY2xhc3M9InJvdyI+Ci0gIHslIGVuZGlmICV9 Ci0gICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy0xMiI+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNz PSJvYmpfcHJvcGVydGllcyI+Ci0gICAgICAgICAgICAgICAgPGxlZ2VuZCBjbGFzcz0iYmFkZ2Ui Pnt7IF8oJ0RhdGFiYXNlIGFjdGl2aXR5JykgfX08L2xlZ2VuZD4KKyAgICA8ZGl2IGlkPSJkYXNo Ym9hcmQtYWN0aXZpdHkiIGNsYXNzPSJkYXNoYm9hcmQtaGlkZGVuIj4KKyAgICAgICAgPGRpdiBj bGFzcz0icm93Ij4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy0xMiI+CisgICAgICAg ICAgICAgICAgPGRpdiBjbGFzcz0ib2JqX3Byb3BlcnRpZXMiPgorICAgICAgICAgICAgICAgICAg ICA8bGVnZW5kIGNsYXNzPSJiYWRnZSI+e3sgXygnRGF0YWJhc2UgYWN0aXZpdHknKSB9fTwvbGVn ZW5kPgorICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg IDwvZGl2PgotICAgIDwvZGl2PgotICAgIDxkaXYgY2xhc3M9InJvdyI+Ci0gICAgICAgIDxkaXYg Y2xhc3M9ImNvbC14cy0xMiI+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJkYXNoYm9hcmQtdGFi LWNvbnRhaW5lciI+Ci0gICAgICAgICAgICAgICAgPCEtLSBOYXYgdGFicyAtLT4KLSAgICAgICAg ICAgICAgICA8dWwgY2xhc3M9Im5hdiBuYXYtdGFicyBkYXNoYm9hcmQtdGFiLXBhbmVsIiByb2xl PSJ0YWJsaXN0Ij4KLSAgICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9InByZXNlbnRhdGlvbiIg Y2xhc3M9ImFjdGl2ZSBkYXNoYm9hcmQtdGFiIj48YSBocmVmPSIjdGFiX3BhbmVsX2RhdGFiYXNl X2FjdGl2aXR5IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9InRhYl9kYXRhYmFz ZV9hY3Rpdml0eSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPSJ0YWIiIGRhdGEtdG9nZ2xlPSJ0 YWIiPnt7IF8oJ1Nlc3Npb25zJykgfX08L2E+Ci0gICAgICAgICAgICAgICAgICAgIDwvbGk+Ci0g ICAgICAgICAgICAgICAgICAgIDxsaSByb2xlPSJwcmVzZW50YXRpb24iIGNsYXNzPSJkYXNoYm9h cmQtdGFiIj48YSBocmVmPSIjdGFiX3BhbmVsX2RhdGFiYXNlX2xvY2tzIgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXJpYS1jb250cm9scz0idGFiX2RhdGFiYXNlX2xvY2tzIiByb2xlPSJ0YWIiCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkYXRhLXRvZ2dsZT0idGFiIj57eyBfKCdMb2NrcycpIH19PC9hPjwvbGk+Ci0gICAgICAgICAg ICAgICAgICAgIDxsaSByb2xlPSJwcmVzZW50YXRpb24iIGNsYXNzPSJkYXNoYm9hcmQtdGFiIj48 YSBocmVmPSIjdGFiX3BhbmVsX2RhdGFiYXNlX3ByZXBhcmVkIgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1j b250cm9scz0idGFiX2RhdGFiYXNlX3ByZXBhcmVkIiByb2xlPSJ0YWIiCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk YXRhLXRvZ2dsZT0idGFiIj57eyBfKCdQcmVwYXJlZCBUcmFuc2FjdGlvbnMnKSB9fTwvYT48L2xp PgotICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgIDxkaXYgY2xhc3M9InJvdyBkYXNoYm9h cmQtcm93Ij4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy0xMiI+CisgICAgICAgICAg ICAgICAgPGRpdiBjbGFzcz0iZGFzaGJvYXJkLXRhYi1jb250YWluZXIiPgorICAgICAgICAgICAg ICAgICAgICA8IS0tIE5hdiB0YWJzIC0tPgorICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9 Im5hdiBuYXYtdGFicyBkYXNoYm9hcmQtdGFiLXBhbmVsIiByb2xlPSJ0YWJsaXN0Ij4KKyAgICAg ICAgICAgICAgICAgICAgICAgIDxsaSByb2xlPSJwcmVzZW50YXRpb24iIGNsYXNzPSJhY3RpdmUg ZGFzaGJvYXJkLXRhYiI+PGEgaHJlZj0iI3RhYl9wYW5lbF9kYXRhYmFzZV9hY3Rpdml0eSIKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz0idGFiX2RhdGFiYXNlX2FjdGl2aXR5 IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPSJ0YWIiIGRhdGEtdG9nZ2xlPSJ0YWIiPnt7 IF8oJ1Nlc3Npb25zJykgfX08L2E+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAg ICAgICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9InByZXNlbnRhdGlvbiIgY2xhc3M9ImRhc2hi b2FyZC10YWIiPjxhIGhyZWY9IiN0YWJfcGFuZWxfZGF0YWJhc2VfbG9ja3MiCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXJpYS1jb250cm9scz0idGFiX2RhdGFiYXNlX2xvY2tzIiByb2xlPSJ0YWIiCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGF0YS10b2dnbGU9InRhYiI+e3sgXygnTG9ja3MnKSB9fTwvYT48L2xpPgor ICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9InByZXNlbnRhdGlvbiIgY2xhc3M9ImRh c2hib2FyZC10YWIiPjxhIGhyZWY9IiN0YWJfcGFuZWxfZGF0YWJhc2VfcHJlcGFyZWQiCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXJpYS1jb250cm9scz0idGFiX2RhdGFiYXNlX3ByZXBhcmVkIiByb2xlPSJ0 YWIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGF0YS10b2dnbGU9InRhYiI+e3sgXygnUHJlcGFyZWQgVHJh bnNhY3Rpb25zJykgfX08L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPC91bD4KIAotICAg ICAgICAgICAgICAgIDwhLS0gVGFiIHBhbmVzIC0tPgotICAgICAgICAgICAgICAgIDxkaXYgY2xh c3M9InRhYi1jb250ZW50Ij4KLSAgICAgICAgICAgICAgICAgICAgPGRpdiByb2xlPSJ0YWJwYW5l bCIgY2xhc3M9InRhYi1wYW5lIGFjdGl2ZSIgaWQ9InRhYl9wYW5lbF9kYXRhYmFzZV9hY3Rpdml0 eSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkYXNoYm9hcmQtdGFiLWJ0 bi1ncm91cCBwZy1wcm9wLWJ0bi1ncm91cC1hYm92ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgPGJ1dHRvbiBpZD0iYnRuX2RhdGFiYXNlX2FjdGl2aXR5X3JlZnJlc2giIHR5cGU9ImJ1 dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgdGl0bGU9Int7IF8oJ1JlZnJlc2gnKSB9fSI+ IDxzcGFuIGNsYXNzPSJmYSBmYS1sZyBmYS1yZWZyZXNoIj48L3NwYW4+PC9idXR0b24+Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZGF0YWJhc2VfYWN0aXZpdHlfZmlsdGVy Ij48L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAgPCEtLSBUYWIgcGFuZXMgLS0+CisgICAgICAg ICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1jb250ZW50Ij4KKyAgICAgICAgICAgICAgICAg ICAgICAgIDxkaXYgcm9sZT0idGFicGFuZWwiIGNsYXNzPSJ0YWItcGFuZSBhY3RpdmUiIGlkPSJ0 YWJfcGFuZWxfZGF0YWJhc2VfYWN0aXZpdHkiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg IDxkaXYgY2xhc3M9ImRhc2hib2FyZC10YWItYnRuLWdyb3VwIHBnLXByb3AtYnRuLWdyb3VwLWFi b3ZlIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuX2Rh dGFiYXNlX2FjdGl2aXR5X3JlZnJlc2giIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVm YXVsdCIgdGl0bGU9Int7IF8oJ1JlZnJlc2gnKSB9fSI+IDxzcGFuIGNsYXNzPSJmYSBmYS1sZyBm YS1yZWZyZXNoIj48L3NwYW4+PC9idXR0b24+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDxkaXYgaWQ9ImRhdGFiYXNlX2FjdGl2aXR5X2ZpbHRlciI+PC9kaXY+CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRp diBpZD0iZGF0YWJhc2VfYWN0aXZpdHkiIGNsYXNzPSJncmlkLWNvbnRhaW5lciI+PC9kaXY+CiAg ICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxk aXYgaWQ9ImRhdGFiYXNlX2FjdGl2aXR5IiBjbGFzcz0iZ3JpZC1jb250YWluZXIiPjwvZGl2Pgot ICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgPGRpdiByb2xl PSJ0YWJwYW5lbCIgY2xhc3M9InRhYi1wYW5lIiBpZD0idGFiX3BhbmVsX2RhdGFiYXNlX2xvY2tz Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRhc2hib2FyZC10YWItYnRu LWdyb3VwIHBnLXByb3AtYnRuLWdyb3VwLWFib3ZlIj4KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8YnV0dG9uIGlkPSJidG5fZGF0YWJhc2VfbG9ja3NfcmVmcmVzaCIgdHlwZT0iYnV0dG9u IiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiB0aXRsZT0ie3sgXygnUmVmcmVzaCcpIH19Ij4gPHNw YW4gY2xhc3M9ImZhIGZhLWxnIGZhLXJlZnJlc2giPjwvc3Bhbj48L2J1dHRvbj4KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJkYXRhYmFzZV9sb2Nrc19maWx0ZXIiPjwvZGl2 PgorICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByb2xlPSJ0YWJwYW5lbCIgY2xhc3M9InRh Yi1wYW5lIiBpZD0idGFiX3BhbmVsX2RhdGFiYXNlX2xvY2tzIj4KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICA8ZGl2IGNsYXNzPSJkYXNoYm9hcmQtdGFiLWJ0bi1ncm91cCBwZy1wcm9wLWJ0 bi1ncm91cC1hYm92ZSI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24g aWQ9ImJ0bl9kYXRhYmFzZV9sb2Nrc19yZWZyZXNoIiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4g YnRuLWRlZmF1bHQiIHRpdGxlPSJ7eyBfKCdSZWZyZXNoJykgfX0iPiA8c3BhbiBjbGFzcz0iZmEg ZmEtbGcgZmEtcmVmcmVzaCI+PC9zcGFuPjwvYnV0dG9uPgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA8ZGl2IGlkPSJkYXRhYmFzZV9sb2Nrc19maWx0ZXIiPjwvZGl2PgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgICAgICAgICAgICAgICAg IDxkaXYgaWQ9ImRhdGFiYXNlX2xvY2tzIiBjbGFzcz0iZ3JpZC1jb250YWluZXIiPjwvZGl2Pgog ICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8 ZGl2IGlkPSJkYXRhYmFzZV9sb2NrcyIgY2xhc3M9ImdyaWQtY29udGFpbmVyIj48L2Rpdj4KLSAg ICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICAgICAgICAgIDxkaXYgcm9sZT0i dGFicGFuZWwiIGNsYXNzPSJ0YWItcGFuZSIgaWQ9InRhYl9wYW5lbF9kYXRhYmFzZV9wcmVwYXJl ZCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkYXNoYm9hcmQtdGFiLWJ0 bi1ncm91cCBwZy1wcm9wLWJ0bi1ncm91cC1hYm92ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgPGJ1dHRvbiBpZD0iYnRuX2RhdGFiYXNlX3ByZXBhcmVkX3JlZnJlc2giIHR5cGU9ImJ1 dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgdGl0bGU9Int7IF8oJ1JlZnJlc2gnKSB9fSI+ IDxzcGFuIGNsYXNzPSJmYSBmYS1sZyBmYS1yZWZyZXNoIj48L3NwYW4+PC9idXR0b24+Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZGF0YWJhc2VfcHJlcGFyZWRfZmlsdGVy Ij48L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgcm9sZT0idGFicGFuZWwiIGNs YXNzPSJ0YWItcGFuZSIgaWQ9InRhYl9wYW5lbF9kYXRhYmFzZV9wcmVwYXJlZCI+CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGFzaGJvYXJkLXRhYi1idG4tZ3JvdXAg cGctcHJvcC1idG4tZ3JvdXAtYWJvdmUiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8YnV0dG9uIGlkPSJidG5fZGF0YWJhc2VfcHJlcGFyZWRfcmVmcmVzaCIgdHlwZT0iYnV0dG9u IiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiB0aXRsZT0ie3sgXygnUmVmcmVzaCcpIH19Ij4gPHNw YW4gY2xhc3M9ImZhIGZhLWxnIGZhLXJlZnJlc2giPjwvc3Bhbj48L2J1dHRvbj4KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZGF0YWJhc2VfcHJlcGFyZWRfZmlsdGVy Ij48L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJkYXRhYmFzZV9wcmVwYXJlZCIgY2xhc3M9ImdyaWQt Y29udGFpbmVyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAg ICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZGF0YWJhc2VfcHJlcGFyZWQiIGNsYXNzPSJncmlk LWNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAg ICAgICAgIDwvZGl2PgogICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgIDwvZGl2PgogICAgIDwv ZGl2PgoteyUgZW5kaWYgJX0KLQoteyUgaWYgbm90IHNldHRpbmdzLnNob3dfZ3JhcGhzIGFuZCBu b3Qgc2V0dGluZ3Muc2hvd19hY3Rpdml0eSAlfQotICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0 LWluZm8gcGctcGFuZWwtbWVzc2FnZSIgcm9sZT0iYWxlcnQiPgorICAgIDxkaXYgaWQ9ImRhc2hi b2FyZC1ub25lLXNob3ciIGNsYXNzPSJhbGVydCBhbGVydC1pbmZvIHBnLXBhbmVsLW1lc3NhZ2Ug ZGFzaGJvYXJkLWhpZGRlbiIgcm9sZT0iYWxlcnQiPgogICAgICAgICB7eyBfKCdBbGwgRGFzaGJv YXJkIGVsZW1lbnRzIGFyZSBjdXJyZW50bHkgZGlzYWJsZWQuJykgfX0KICAgICA8L2Rpdj4KLXsl IGVuZGlmICV9Ci0KIDwvZGl2PgotCi08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0g ICAgLy8gSW5pdGlhdGUgZGF0YWJhc2UgZGFzaGJvYXJkCi0gICAgcGdBZG1pbi5EYXNoYm9hcmQu aW5pdF9kYXRhYmFzZV9kYXNoYm9hcmQoCi0gICAgICB7eyBzaWQgfX0sCi0gICAgICB7eyBkaWQg fX0sCi0gICAgICB7eyB2ZXJzaW9uIH19LAotICAgICAge3sgcmF0ZXMuc2Vzc2lvbl9zdGF0c19y ZWZyZXNoIH19LAotICAgICAge3sgcmF0ZXMudHBzX3N0YXRzX3JlZnJlc2ggfX0sCi0gICAgICB7 eyByYXRlcy50aV9zdGF0c19yZWZyZXNoIH19LAotICAgICAge3sgcmF0ZXMudG9fc3RhdHNfcmVm cmVzaCB9fSwKLSAgICAgIHt7IHJhdGVzLmJpb19zdGF0c19yZWZyZXNoIH19LAotICAgICAge3sg c2V0dGluZ3Muc2hvd19ncmFwaHN8bG93ZXIgfX0sCi0gICAgICB7eyBzZXR0aW5ncy5zaG93X2Fj dGl2aXR5fGxvd2VyIH19Ci0gICAgKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vZGFzaGJvYXJkL3RlbXBsYXRlcy9kYXNoYm9hcmQvc2VydmVyX2Rhc2hib2FyZC5odG1sIGIv d2ViL3BnYWRtaW4vZGFzaGJvYXJkL3RlbXBsYXRlcy9kYXNoYm9hcmQvc2VydmVyX2Rhc2hib2Fy ZC5odG1sCmluZGV4IGIzNTc4MjUzLi41YTRkZjY2YSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v ZGFzaGJvYXJkL3RlbXBsYXRlcy9kYXNoYm9hcmQvc2VydmVyX2Rhc2hib2FyZC5odG1sCisrKyBi L3dlYi9wZ2FkbWluL2Rhc2hib2FyZC90ZW1wbGF0ZXMvZGFzaGJvYXJkL3NlcnZlcl9kYXNoYm9h cmQuaHRtbApAQCAtMSwxNDQgKzEsMTIwIEBACiA8ZGl2IGNsYXNzPSJkYXNoYm9hcmQtY29udGFp bmVyIj4KLXslIGlmIHNldHRpbmdzLnNob3dfZ3JhcGhzICV9Ci0gICAgPGRpdiBjbGFzcz0icm93 Ij4KLSAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTYiPgotICAgICAgICAgICAgPGRpdiBjbGFz cz0ib2JqX3Byb3BlcnRpZXMiPgotICAgICAgICAgICAgICAgIDxsZWdlbmQgY2xhc3M9ImJhZGdl Ij57eyBfKCdTZXJ2ZXIgc2Vzc2lvbnMnKSB9fTwvbGVnZW5kPgorICAgIDxkaXYgaWQ9ImRhc2hi b2FyZC1ncmFwaHMiIGNsYXNzPSJkYXNoYm9hcmQtaGlkZGVuIj4KKyAgICAgICAgPGRpdiBjbGFz cz0icm93Ij4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy02Ij4KKyAgICAgICAgICAg ICAgICA8ZGl2IGNsYXNzPSJvYmpfcHJvcGVydGllcyI+CisgICAgICAgICAgICAgICAgICAgIDxs ZWdlbmQgY2xhc3M9ImJhZGdlIj57eyBfKCdTZXJ2ZXIgc2Vzc2lvbnMnKSB9fTwvbGVnZW5kPgor ICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgIDwvZGl2 PgotICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNiI+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNz PSJvYmpfcHJvcGVydGllcyI+Ci0gICAgICAgICAgICAgICAgPGxlZ2VuZCBjbGFzcz0iYmFkZ2Ui Pnt7IF8oJ1RyYW5zYWN0aW9ucyBwZXIgc2Vjb25kJykgfX08L2xlZ2VuZD4KKyAgICAgICAgICAg IDxkaXYgY2xhc3M9ImNvbC14cy02Ij4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvYmpf cHJvcGVydGllcyI+CisgICAgICAgICAgICAgICAgICAgIDxsZWdlbmQgY2xhc3M9ImJhZGdlIj57 eyBfKCdUcmFuc2FjdGlvbnMgcGVyIHNlY29uZCcpIH19PC9sZWdlbmQ+CisgICAgICAgICAgICAg ICAgPC9kaXY+CiAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgPC9kaXY+Ci0gICAgPC9kaXY+ Ci0gICAgPGRpdiBjbGFzcz0icm93Ij4KLSAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTYiPgot ICAgICAgICAgICAgPGRpdiBpZD0iZ3JhcGgtc2Vzc2lvbnMiIGNsYXNzPSJncmFwaC1jb250YWlu ZXIiPjwvZGl2PgotICAgICAgICA8L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTYi PgotICAgICAgICAgICAgPGRpdiBpZD0iZ3JhcGgtdHBzIiBjbGFzcz0iZ3JhcGgtY29udGFpbmVy Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0icm93IGRhc2hib2FyZC1yb3ciPgorICAgICAg ICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTYiPgorICAgICAgICAgICAgICAgIDxkaXYgaWQ9Imdy YXBoLXNlc3Npb25zIiBjbGFzcz0iZ3JhcGgtY29udGFpbmVyIj48L2Rpdj4KKyAgICAgICAgICAg IDwvZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTYiPgorICAgICAgICAgICAg ICAgIDxkaXYgaWQ9ImdyYXBoLXRwcyIgY2xhc3M9ImdyYXBoLWNvbnRhaW5lciI+PC9kaXY+Cisg ICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgPC9kaXY+Ci0gICAgPC9kaXY+CiAKLSAgICA8ZGl2 IGNsYXNzPSJyb3cgZGFzaGJvYXJkLWhlYWRlci1zcGFjZXIiPgotICAgICAgICA8ZGl2IGNsYXNz PSJjb2wteHMtNCI+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJvYmpfcHJvcGVydGllcyI+Ci0g ICAgICAgICAgICAgICAgPGxlZ2VuZCBjbGFzcz0iYmFkZ2UiPnt7IF8oJ1R1cGxlcyBpbicpIH19 PC9sZWdlbmQ+CisgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CisgICAgICAgICAgICA8ZGl2IGNs YXNzPSJjb2wteHMtNCI+CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib2JqX3Byb3BlcnRp ZXMiPgorICAgICAgICAgICAgICAgICAgICA8bGVnZW5kIGNsYXNzPSJiYWRnZSI+e3sgXygnVHVw bGVzIGluJykgfX08L2xlZ2VuZD4KKyAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAg IDwvZGl2PgotICAgICAgICA8L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTQiPgot ICAgICAgICAgICAgPGRpdiBjbGFzcz0ib2JqX3Byb3BlcnRpZXMiPgotICAgICAgICAgICAgICAg IDxsZWdlbmQgY2xhc3M9ImJhZGdlIj57eyBfKCdUdXBsZXMgb3V0JykgfX08L2xlZ2VuZD4KKyAg ICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy00Ij4KKyAgICAgICAgICAgICAgICA8ZGl2IGNs YXNzPSJvYmpfcHJvcGVydGllcyI+CisgICAgICAgICAgICAgICAgICAgIDxsZWdlbmQgY2xhc3M9 ImJhZGdlIj57eyBfKCdUdXBsZXMgb3V0JykgfX08L2xlZ2VuZD4KKyAgICAgICAgICAgICAgICA8 L2Rpdj4KICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICA8L2Rpdj4KLSAgICAgICAgPGRpdiBj bGFzcz0iY29sLXhzLTQiPgotICAgICAgICAgICAgPGRpdiBjbGFzcz0ib2JqX3Byb3BlcnRpZXMi PgotICAgICAgICAgICAgICAgIDxsZWdlbmQgY2xhc3M9ImJhZGdlIj57eyBfKCdCbG9jayBJL08n KSB9fTwvbGVnZW5kPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTQiPgorICAgICAg ICAgICAgICAgIDxkaXYgY2xhc3M9Im9ial9wcm9wZXJ0aWVzIj4KKyAgICAgICAgICAgICAgICAg ICAgPGxlZ2VuZCBjbGFzcz0iYmFkZ2UiPnt7IF8oJ0Jsb2NrIEkvTycpIH19PC9sZWdlbmQ+Cisg ICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgPC9kaXY+ Ci0gICAgPC9kaXY+CiAKLSAgICA8ZGl2IGNsYXNzPSJyb3ciPgotICAgICAgICA8ZGl2IGNsYXNz PSJjb2wteHMtNCI+Ci0gICAgICAgICAgICA8ZGl2IGlkPSJncmFwaC10aSIgY2xhc3M9ImdyYXBo LWNvbnRhaW5lciI+PC9kaXY+Ci0gICAgICAgIDwvZGl2PgotICAgICAgICA8ZGl2IGNsYXNzPSJj b2wteHMtNCI+Ci0gICAgICAgICAgICA8ZGl2IGlkPSJncmFwaC10byIgY2xhc3M9ImdyYXBoLWNv bnRhaW5lciI+PC9kaXY+Ci0gICAgICAgIDwvZGl2PgotICAgICAgICA8ZGl2IGNsYXNzPSJjb2wt eHMtNCI+Ci0gICAgICAgICAgICA8ZGl2IGlkPSJncmFwaC1iaW8iIGNsYXNzPSJncmFwaC1jb250 YWluZXIiPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJyb3cgZGFzaGJvYXJkLXJvdyI+Cisg ICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNCI+CisgICAgICAgICAgICAgICAgPGRpdiBp ZD0iZ3JhcGgtdGkiIGNsYXNzPSJncmFwaC1jb250YWluZXIiPjwvZGl2PgorICAgICAgICAgICAg PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNCI+CisgICAgICAgICAgICAg ICAgPGRpdiBpZD0iZ3JhcGgtdG8iIGNsYXNzPSJncmFwaC1jb250YWluZXIiPjwvZGl2PgorICAg ICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNCI+CisgICAg ICAgICAgICAgICAgPGRpdiBpZD0iZ3JhcGgtYmlvIiBjbGFzcz0iZ3JhcGgtY29udGFpbmVyIj48 L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICA8L2Rpdj4KICAgICA8L2Rpdj4KLXsl IGVuZGlmICV9Ci17JSBpZiBzZXR0aW5ncy5zaG93X2FjdGl2aXR5ICV9Ci0gIHsjIElmIHdlIGFy ZSBkaXNwbGF5aW5nIGdyYXBocyB0aGVuIG9ubHkgd2UgbmVlZCBzcGFjZSBvbiB0b3AgI30KLSAg eyUgaWYgc2V0dGluZ3Muc2hvd19ncmFwaHMgJX0KLSAgICA8ZGl2IGNsYXNzPSJyb3cgZGFzaGJv YXJkLWhlYWRlci1zcGFjZXIiPgotICB7JSBlbHNlICV9Ci0gICAgPGRpdiBjbGFzcz0icm93Ij4K LSAgeyUgZW5kaWYgJX0KLSAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTEyIj4KLSAgICAgICAg ICAgIDxkaXYgY2xhc3M9Im9ial9wcm9wZXJ0aWVzIj4KLSAgICAgICAgICAgICAgICA8bGVnZW5k IGNsYXNzPSJiYWRnZSI+e3sgXygnU2VydmVyIGFjdGl2aXR5JykgfX08L2xlZ2VuZD4KKyAgICA8 ZGl2IGlkPSJkYXNoYm9hcmQtYWN0aXZpdHkiIGNsYXNzPSJkYXNoYm9hcmQtaGlkZGVuIj4KKyAg ICAgICAgPGRpdiBjbGFzcz0icm93Ij4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy0x MiI+CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib2JqX3Byb3BlcnRpZXMiPgorICAgICAg ICAgICAgICAgICAgICA8bGVnZW5kIGNsYXNzPSJiYWRnZSI+e3sgXygnU2VydmVyIGFjdGl2aXR5 JykgfX08L2xlZ2VuZD4KKyAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgIDwvZGl2 PgogICAgICAgICA8L2Rpdj4KLSAgICA8L2Rpdj4KLSAgICA8ZGl2IGNsYXNzPSJyb3ciPgotICAg ICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtMTIiPgotICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGFz aGJvYXJkLXRhYi1jb250YWluZXIiPgotICAgICAgICAgICAgICAgIDwhLS0gTmF2IHRhYnMgLS0+ Ci0gICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYgbmF2LXRhYnMgZGFzaGJvYXJkLXRhYi1w YW5lbCIgcm9sZT0idGFibGlzdCI+Ci0gICAgICAgICAgICAgICAgICAgIDxsaSByb2xlPSJwcmVz ZW50YXRpb24iIGNsYXNzPSJhY3RpdmUgZGFzaGJvYXJkLXRhYiI+PGEgaHJlZj0iI3RhYl9wYW5l bF9zZXJ2ZXJfYWN0aXZpdHkiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz0idGFi X3NlcnZlcl9hY3Rpdml0eSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPSJ0YWIiIGRhdGEtdG9n Z2xlPSJ0YWIiPnt7IF8oJ1Nlc3Npb25zJykgfX08L2E+Ci0gICAgICAgICAgICAgICAgICAgIDwv bGk+Ci0gICAgICAgICAgICAgICAgICAgIDxsaSByb2xlPSJwcmVzZW50YXRpb24iIGNsYXNzPSJk YXNoYm9hcmQtdGFiIj48YSBocmVmPSIjdGFiX3BhbmVsX3NlcnZlcl9sb2NrcyIKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFyaWEtY29udHJvbHM9InRhYl9zZXJ2ZXJfbG9ja3MiIHJvbGU9InRhYiIKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRhdGEtdG9nZ2xlPSJ0YWIiPnt7IF8oJ0xvY2tzJykgfX08L2E+PC9saT4KLSAgICAgICAg ICAgICAgICAgICAgPGxpIHJvbGU9InByZXNlbnRhdGlvbiIgY2xhc3M9ImRhc2hib2FyZC10YWIi PjxhIGhyZWY9IiN0YWJfcGFuZWxfc2VydmVyX3ByZXBhcmVkIgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1j b250cm9scz0idGFiX3NlcnZlcl9wcmVwYXJlZCIgcm9sZT0idGFiIgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YS10b2dnbGU9InRhYiI+e3sgXygnUHJlcGFyZWQgVHJhbnNhY3Rpb25zJykgfX08L2E+PC9saT4K LSAgICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9InByZXNlbnRhdGlvbiIgY2xhc3M9ImRhc2hi b2FyZC10YWIiPjxhIGhyZWY9IiN0YWJfcGFuZWxfc2VydmVyX2NvbmZpZyIKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFyaWEtY29udHJvbHM9InRhYl9zZXJ2ZXJfY29uZmlnIiByb2xlPSJ0YWIiCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkYXRhLXRvZ2dsZT0idGFiIj57eyBfKCdDb25maWd1cmF0aW9uJykgfX08L2E+PC9saT4KLSAg ICAgICAgICAgICAgICA8L3VsPgorICAgICAgICA8ZGl2IGNsYXNzPSJyb3cgZGFzaGJvYXJkLXJv dyI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtMTIiPgorICAgICAgICAgICAgICAg IDxkaXYgY2xhc3M9ImRhc2hib2FyZC10YWItY29udGFpbmVyIj4KKyAgICAgICAgICAgICAgICAg ICAgPCEtLSBOYXYgdGFicyAtLT4KKyAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYg bmF2LXRhYnMgZGFzaGJvYXJkLXRhYi1wYW5lbCIgcm9sZT0idGFibGlzdCI+CisgICAgICAgICAg ICAgICAgICAgICAgICA8bGkgcm9sZT0icHJlc2VudGF0aW9uIiBjbGFzcz0iYWN0aXZlIGRhc2hi b2FyZC10YWIiPjxhIGhyZWY9IiN0YWJfcGFuZWxfc2VydmVyX2FjdGl2aXR5IgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPSJ0YWJfc2VydmVyX2FjdGl2aXR5IgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByb2xlPSJ0YWIiIGRhdGEtdG9nZ2xlPSJ0YWIiPnt7IF8oJ1Nlc3Np b25zJykgfX08L2E+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAg ICAgICAgICAgICAgPGxpIHJvbGU9InByZXNlbnRhdGlvbiIgY2xhc3M9ImRhc2hib2FyZC10YWIi PjxhIGhyZWY9IiN0YWJfcGFuZWxfc2VydmVyX2xvY2tzIgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEt Y29udHJvbHM9InRhYl9zZXJ2ZXJfbG9ja3MiIHJvbGU9InRhYiIKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk YXRhLXRvZ2dsZT0idGFiIj57eyBfKCdMb2NrcycpIH19PC9hPjwvbGk+CisgICAgICAgICAgICAg ICAgICAgICAgICA8bGkgcm9sZT0icHJlc2VudGF0aW9uIiBjbGFzcz0iZGFzaGJvYXJkLXRhYiI+ PGEgaHJlZj0iI3RhYl9wYW5lbF9zZXJ2ZXJfcHJlcGFyZWQiCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJp YS1jb250cm9scz0idGFiX3NlcnZlcl9wcmVwYXJlZCIgcm9sZT0idGFiIgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRhdGEtdG9nZ2xlPSJ0YWIiPnt7IF8oJ1ByZXBhcmVkIFRyYW5zYWN0aW9ucycpIH19PC9h PjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGkgcm9sZT0icHJlc2VudGF0aW9uIiBj bGFzcz0iZGFzaGJvYXJkLXRhYiI+PGEgaHJlZj0iI3RhYl9wYW5lbF9zZXJ2ZXJfY29uZmlnIgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9InRhYl9zZXJ2ZXJfY29uZmlnIiByb2xlPSJ0 YWIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGF0YS10b2dnbGU9InRhYiI+e3sgXygnQ29uZmlndXJhdGlv bicpIH19PC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAKLSAgICAgICAgICAg ICAgICA8IS0tIFRhYiBwYW5lcyAtLT4KLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWIt Y29udGVudCI+Ci0gICAgICAgICAgICAgICAgICAgIDxkaXYgcm9sZT0idGFicGFuZWwiIGNsYXNz PSJ0YWItcGFuZSBhY3RpdmUiIGlkPSJ0YWJfcGFuZWxfc2VydmVyX2FjdGl2aXR5Ij4KLSAgICAg ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRhc2hib2FyZC10YWItYnRuLWdyb3VwIHBn LXByb3AtYnRuLWdyb3VwLWFib3ZlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0 dG9uIGlkPSJidG5fc2VydmVyX2FjdGl2aXR5X3JlZnJlc2giIHR5cGU9ImJ1dHRvbiIgY2xhc3M9 ImJ0biBidG4tZGVmYXVsdCIgdGl0bGU9Int7IF8oJ1JlZnJlc2gnKSB9fSI+IDxzcGFuIGNsYXNz PSJmYSBmYS1sZyBmYS1yZWZyZXNoIj48L3NwYW4+PC9idXR0b24+Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgPGRpdiBpZD0ic2VydmVyX2FjdGl2aXR5X2ZpbHRlciI+PC9kaXY+CisgICAg ICAgICAgICAgICAgICAgIDwhLS0gVGFiIHBhbmVzIC0tPgorICAgICAgICAgICAgICAgICAgICA8 ZGl2IGNsYXNzPSJ0YWItY29udGVudCI+CisgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHJv bGU9InRhYnBhbmVsIiBjbGFzcz0idGFiLXBhbmUgYWN0aXZlIiBpZD0idGFiX3BhbmVsX3NlcnZl cl9hY3Rpdml0eSI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGFz aGJvYXJkLXRhYi1idG4tZ3JvdXAgcGctcHJvcC1idG4tZ3JvdXAtYWJvdmUiPgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG5fc2VydmVyX2FjdGl2aXR5X3Jl ZnJlc2giIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgdGl0bGU9Int7IF8o J1JlZnJlc2gnKSB9fSI+IDxzcGFuIGNsYXNzPSJmYSBmYS1sZyBmYS1yZWZyZXNoIj48L3NwYW4+ PC9idXR0b24+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InNlcnZl cl9hY3Rpdml0eV9maWx0ZXIiPjwvZGl2PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv ZGl2PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InNlcnZlcl9hY3Rpdml0 eSIgY2xhc3M9ImdyaWQtY29udGFpbmVyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAg IDwvZGl2PgotICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ic2VydmVyX2FjdGl2aXR5 IiBjbGFzcz0iZ3JpZC1jb250YWluZXIiPjwvZGl2PgotICAgICAgICAgICAgICAgICAgICA8L2Rp dj4KLSAgICAgICAgICAgICAgICAgICAgPGRpdiByb2xlPSJ0YWJwYW5lbCIgY2xhc3M9InRhYi1w YW5lIiBpZD0idGFiX3BhbmVsX3NlcnZlcl9sb2NrcyI+Ci0gICAgICAgICAgICAgICAgICAgICAg ICA8ZGl2IGNsYXNzPSJkYXNoYm9hcmQtdGFiLWJ0bi1ncm91cCBwZy1wcm9wLWJ0bi1ncm91cC1h Ym92ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuX3NlcnZl cl9sb2Nrc19yZWZyZXNoIiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiIHRp dGxlPSJ7eyBfKCdSZWZyZXNoJykgfX0iPiA8c3BhbiBjbGFzcz0iZmEgZmEtbGcgZmEtcmVmcmVz aCI+PC9zcGFuPjwvYnV0dG9uPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9 InNlcnZlcl9sb2Nrc19maWx0ZXIiPjwvZGl2PgorICAgICAgICAgICAgICAgICAgICAgICAgPGRp diByb2xlPSJ0YWJwYW5lbCIgY2xhc3M9InRhYi1wYW5lIiBpZD0idGFiX3BhbmVsX3NlcnZlcl9s b2NrcyI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGFzaGJvYXJk LXRhYi1idG4tZ3JvdXAgcGctcHJvcC1idG4tZ3JvdXAtYWJvdmUiPgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG5fc2VydmVyX2xvY2tzX3JlZnJlc2giIHR5 cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgdGl0bGU9Int7IF8oJ1JlZnJlc2gn KSB9fSI+IDxzcGFuIGNsYXNzPSJmYSBmYS1sZyBmYS1yZWZyZXNoIj48L3NwYW4+PC9idXR0b24+ CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InNlcnZlcl9sb2Nrc19m aWx0ZXIiPjwvZGl2PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InNlcnZlcl9sb2NrcyIgY2xhc3M9ImdyaWQt Y29udGFpbmVyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAg ICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ic2VydmVyX2xvY2tzIiBjbGFzcz0iZ3JpZC1jb250 YWluZXIiPjwvZGl2PgotICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgICAg ICAgICAgPGRpdiByb2xlPSJ0YWJwYW5lbCIgY2xhc3M9InRhYi1wYW5lIiBpZD0idGFiX3BhbmVs X3NlcnZlcl9wcmVwYXJlZCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJk YXNoYm9hcmQtdGFiLWJ0bi1ncm91cCBwZy1wcm9wLWJ0bi1ncm91cC1hYm92ZSI+Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuX3NlcnZlcl9wcmVwYXJlZF9yZWZy ZXNoIiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiIHRpdGxlPSJ7eyBfKCdS ZWZyZXNoJykgfX0iPiA8c3BhbiBjbGFzcz0iZmEgZmEtbGcgZmEtcmVmcmVzaCI+PC9zcGFuPjwv YnV0dG9uPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InNlcnZlcl9wcmVw YXJlZF9maWx0ZXIiPjwvZGl2PgorICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByb2xlPSJ0 YWJwYW5lbCIgY2xhc3M9InRhYi1wYW5lIiBpZD0idGFiX3BhbmVsX3NlcnZlcl9wcmVwYXJlZCI+ CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGFzaGJvYXJkLXRhYi1i dG4tZ3JvdXAgcGctcHJvcC1idG4tZ3JvdXAtYWJvdmUiPgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA8YnV0dG9uIGlkPSJidG5fc2VydmVyX3ByZXBhcmVkX3JlZnJlc2giIHR5cGU9 ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgdGl0bGU9Int7IF8oJ1JlZnJlc2gnKSB9 fSI+IDxzcGFuIGNsYXNzPSJmYSBmYS1sZyBmYS1yZWZyZXNoIj48L3NwYW4+PC9idXR0b24+Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InNlcnZlcl9wcmVwYXJlZF9m aWx0ZXIiPjwvZGl2PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InNlcnZlcl9wcmVwYXJlZCIgY2xhc3M9Imdy aWQtY29udGFpbmVyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgotICAg ICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ic2VydmVyX3ByZXBhcmVkIiBjbGFzcz0iZ3Jp ZC1jb250YWluZXIiPjwvZGl2PgotICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAg ICAgICAgICAgICAgPGRpdiByb2xlPSJ0YWJwYW5lbCIgY2xhc3M9InRhYi1wYW5lIiBpZD0idGFi X3BhbmVsX3NlcnZlcl9jb25maWciPgotICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFz cz0iZGFzaGJvYXJkLXRhYi1idG4tZ3JvdXAgcGctcHJvcC1idG4tZ3JvdXAtYWJvdmUiPgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bl9zZXJ2ZXJfY29uZmlnX3Jl ZnJlc2giIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgdGl0bGU9Int7IF8o J1JlZnJlc2gnKSB9fSI+IDxzcGFuIGNsYXNzPSJmYSBmYS1sZyBmYS1yZWZyZXNoIj48L3NwYW4+ PC9idXR0b24+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ic2VydmVyX2Nv bmZpZ19maWx0ZXIiPjwvZGl2PgorICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByb2xlPSJ0 YWJwYW5lbCIgY2xhc3M9InRhYi1wYW5lIiBpZD0idGFiX3BhbmVsX3NlcnZlcl9jb25maWciPgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRhc2hib2FyZC10YWItYnRu LWdyb3VwIHBnLXByb3AtYnRuLWdyb3VwLWFib3ZlIj4KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuX3NlcnZlcl9jb25maWdfcmVmcmVzaCIgdHlwZT0iYnV0 dG9uIiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiB0aXRsZT0ie3sgXygnUmVmcmVzaCcpIH19Ij4g PHNwYW4gY2xhc3M9ImZhIGZhLWxnIGZhLXJlZnJlc2giPjwvc3Bhbj48L2J1dHRvbj4KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ic2VydmVyX2NvbmZpZ19maWx0ZXIi PjwvZGl2PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDxkaXYgaWQ9InNlcnZlcl9jb25maWciIGNsYXNzPSJncmlkLWNvbnRh aW5lciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAg ICAgICAgICAgICAgIDxkaXYgaWQ9InNlcnZlcl9jb25maWciIGNsYXNzPSJncmlkLWNvbnRhaW5l ciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgIDwv ZGl2PgogICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgIDwvZGl2PgogICAgIDwvZGl2PgoteyUg ZW5kaWYgJX0KLQoteyUgaWYgbm90IHNldHRpbmdzLnNob3dfZ3JhcGhzIGFuZCBub3Qgc2V0dGlu Z3Muc2hvd19hY3Rpdml0eSAlfQotICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8gcGct cGFuZWwtbWVzc2FnZSIgcm9sZT0iYWxlcnQiPgotICAgICAgICB7eyBfKCdEYXNoYm9hcmQgaGFz IGJlZW4gZGlzYWJsZWQgYnkgdXNlci4nKSB9fQorICAgIDxkaXYgaWQ9ImRhc2hib2FyZC1ub25l LXNob3ciIGNsYXNzPSJhbGVydCBhbGVydC1pbmZvIHBnLXBhbmVsLW1lc3NhZ2UgZGFzaGJvYXJk LWhpZGRlbiIgcm9sZT0iYWxlcnQiPgorICAgICAgICB7eyBfKCdBbGwgRGFzaGJvYXJkIGVsZW1l bnRzIGFyZSBjdXJyZW50bHkgZGlzYWJsZWQuJykgfX0KICAgICA8L2Rpdj4KLXslIGVuZGlmICV9 Ci0KIDwvZGl2PgotCi08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgLy8gSW5p dGlhdGUgc2VydmVyIGRhc2hib2FyZAotICAgIHBnQWRtaW4uRGFzaGJvYXJkLmluaXRfc2VydmVy X2Rhc2hib2FyZCgKLSAgICAgIHt7IHNpZCB9fSwKLSAgICAgIHt7IHZlcnNpb24gfX0sCi0gICAg ICB7eyByYXRlcy5zZXNzaW9uX3N0YXRzX3JlZnJlc2ggfX0sCi0gICAgICB7eyByYXRlcy50cHNf c3RhdHNfcmVmcmVzaCB9fSwKLSAgICAgIHt7IHJhdGVzLnRpX3N0YXRzX3JlZnJlc2ggfX0sCi0g ICAgICB7eyByYXRlcy50b19zdGF0c19yZWZyZXNoIH19LAotICAgICAge3sgcmF0ZXMuYmlvX3N0 YXRzX3JlZnJlc2ggfX0sCi0gICAgICB7eyBzZXR0aW5ncy5zaG93X2dyYXBoc3xsb3dlciB9fSwK LSAgICAgIHt7IHNldHRpbmdzLnNob3dfYWN0aXZpdHl8bG93ZXIgfX0KLSAgICApOwotPC9zY3Jp cHQ+CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9kYXNoYm9hcmQvdGVzdHMvdGVzdF9kYXNoYm9h cmRfdGVtcGxhdGVzLnB5IGIvd2ViL3BnYWRtaW4vZGFzaGJvYXJkL3Rlc3RzL3Rlc3RfZGFzaGJv YXJkX3RlbXBsYXRlcy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGQyNGJkZGMu LjAwMDAwMDAwCi0tLSBhL3dlYi9wZ2FkbWluL2Rhc2hib2FyZC90ZXN0cy90ZXN0X2Rhc2hib2Fy ZF90ZW1wbGF0ZXMucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyNjMgKzAsMCBAQAotIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKLSMKLSMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwotIwotIyBDb3B5cmln aHQgKEMpIDIwMTMgLSAyMDE4LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCi0jIFRoaXMg c29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQotIwotIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKLQotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi1mcm9tIGZsYXNrIGltcG9y dCBGbGFzaywgcmVuZGVyX3RlbXBsYXRlCi1mcm9tIGppbmphMiBpbXBvcnQgRmlsZVN5c3RlbUxv YWRlcgotZnJvbSBwZ2FkbWluIGltcG9ydCBWZXJzaW9uZWRUZW1wbGF0ZUxvYWRlcgotZnJvbSBw Z2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotCi1pZiBzeXMudmVy c2lvbl9pbmZvIDwgKDMsIDMpOgotICAgIGZyb20gbW9jayBpbXBvcnQgTWFnaWNNb2NrCi1lbHNl OgotICAgIGZyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgTWFnaWNNb2NrCi0KLSMgSGFyZCBjb2Rl ZCBkdW1teSBpbnB1dCBwYXJhbWV0ZXJzIGZvciB0aGUgdGVtcGxhdGVzCi1SQVRFUyA9IHsKLSAg ICAnc2Vzc2lvbl9zdGF0c19yZWZyZXNoJzogMSwKLSAgICAndHBzX3N0YXRzX3JlZnJlc2gnOiAx LAotICAgICd0aV9zdGF0c19yZWZyZXNoJzogMSwKLSAgICAndG9fc3RhdHNfcmVmcmVzaCc6IDEs Ci0gICAgJ2Jpb19zdGF0c19yZWZyZXNoJzogMQotfQotCi1ESVNQTEFZX0RBU0hCT0FSRCA9IHsK LSAgICAnYm90aCc6IHsKLSAgICAgICAgJ3Nob3dfZ3JhcGhzJzogVHJ1ZSwKLSAgICAgICAgJ3No b3dfYWN0aXZpdHknOiBUcnVlCi0gICAgfSwKLQotICAgICdvbmx5X2dyYXBocyc6IHsKLSAgICAg ICAgJ3Nob3dfZ3JhcGhzJzogVHJ1ZSwKLSAgICAgICAgJ3Nob3dfYWN0aXZpdHknOiBGYWxzZQot ICAgIH0sCi0KLSAgICAnb25seV9zZXJ2ZXJfYWN0aXZpdHknOiB7Ci0gICAgICAgICdzaG93X2dy YXBocyc6IEZhbHNlLAotICAgICAgICAnc2hvd19hY3Rpdml0eSc6IFRydWUKLSAgICB9LAotCi0g ICAgJ25vbmUnOiB7Ci0gICAgICAgICdzaG93X2dyYXBocyc6IEZhbHNlLAotICAgICAgICAnc2hv d19hY3Rpdml0eSc6IEZhbHNlCi0gICAgfQotfQotCi1WRVJTSU9OID0gOTUwMDAKLQotU0VSVkVS X0lEID0gMQotCi1EQVRBQkFTRV9JRCA9IDEyMwotCi0KLSMgVG8gbW9rZSBnZXR0ZXh0IGZ1bmN0 aW9uIHVzZWQgaW4gdGhlIHRlbXBsYXRlCi1fID0gTWFnaWNNb2NrKHNpZGVfZWZmZWN0PWxhbWJk YSB4OiB4KQotCi0KLWNsYXNzIFRlc3REYXNoYm9hcmRUZW1wbGF0ZXMoQmFzZVRlc3RHZW5lcmF0 b3IpOgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBTZXJ2ZXIgZGFzaGJvYXJkCi0gICAg ICAgICgKLSAgICAgICAgICAgICdEYXNoYm9hcmQsIHdoZW4gcmV0dXJuaW5nIHRoZSBodG1sIHBh Z2Ugd2l0aCBncmFwaHMgYW5kICcKLSAgICAgICAgICAgICdzZXJ2ZXIgYWN0aXZpdHkgcmVsYXRl ZCBodG1sIGVsZW1lbnRzIGZvciBzZXJ2ZXIgZGFzaGJvYXJkJywKLSAgICAgICAgICAgIGRpY3Qo Ci0gICAgICAgICAgICAgICAgdGVtcGxhdGVfcGF0aD0nZGFzaGJvYXJkL3NlcnZlcl9kYXNoYm9h cmQuaHRtbCcsCi0gICAgICAgICAgICAgICAgaW5wdXRfcGFyYW1ldGVycz1kaWN0KAotICAgICAg ICAgICAgICAgICAgICBzaWQ9U0VSVkVSX0lELAotICAgICAgICAgICAgICAgICAgICBkaWQ9Tm9u ZSwKLSAgICAgICAgICAgICAgICAgICAgcmF0ZXM9UkFURVMsCi0gICAgICAgICAgICAgICAgICAg IHZlcnNpb249VkVSU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M9RElTUExBWV9E QVNIQk9BUkRbJ2JvdGgnXSwKLSAgICAgICAgICAgICAgICAgICAgXz1fCi0gICAgICAgICAgICAg ICAgKSwKLSAgICAgICAgICAgICAgICBleHBlY3RlZF9yZXR1cm5fdmFsdWU9WwotICAgICAgICAg ICAgICAgICAgICAnU2VydmVyIHNlc3Npb25zJywKLSAgICAgICAgICAgICAgICAgICAgJ1NlcnZl ciBhY3Rpdml0eScKLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgIG5vdF9leHBl Y3RlZF9yZXR1cm5fdmFsdWU9W10KLSAgICAgICAgICAgICkKLSAgICAgICAgKSwKLSAgICAgICAg KAotICAgICAgICAgICAgJ0Rhc2hib2FyZCwgd2hlbiByZXR1cm5pbmcgdGhlIGh0bWwgcGFnZSB3 aXRoIG9ubHkgZ3JhcGhzICcKLSAgICAgICAgICAgICdyZWxhdGVkIGh0bWwgZWxlbWVudHMgZm9y IHNlcnZlciBkYXNoYm9hcmQnLAotICAgICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICAgICB0 ZW1wbGF0ZV9wYXRoPSdkYXNoYm9hcmQvc2VydmVyX2Rhc2hib2FyZC5odG1sJywKLSAgICAgICAg ICAgICAgICBpbnB1dF9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIHNpZD1T RVJWRVJfSUQsCi0gICAgICAgICAgICAgICAgICAgIGRpZD1Ob25lLAotICAgICAgICAgICAgICAg ICAgICByYXRlcz1SQVRFUywKLSAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1WRVJTSU9OLAot ICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncz1ESVNQTEFZX0RBU0hCT0FSRFsnb25seV9ncmFw aHMnXSwKLSAgICAgICAgICAgICAgICAgICAgXz1fCi0gICAgICAgICAgICAgICAgKSwKLSAgICAg ICAgICAgICAgICBleHBlY3RlZF9yZXR1cm5fdmFsdWU9WwotICAgICAgICAgICAgICAgICAgICAn U2VydmVyIHNlc3Npb25zJwotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgbm90 X2V4cGVjdGVkX3JldHVybl92YWx1ZT1bCi0gICAgICAgICAgICAgICAgICAgICdTZXJ2ZXIgYWN0 aXZpdHknCi0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgKQotICAgICAgICApLAotICAg ICAgICAoCi0gICAgICAgICAgICAnRGFzaGJvYXJkLCB3aGVuIHJldHVybmluZyB0aGUgaHRtbCBw YWdlIHdpdGggb25seSBzZXJ2ZXIgJwotICAgICAgICAgICAgJ2FjdGl2aXR5IHJlbGF0ZWQgaHRt bCBlbGVtZW50cyBmb3Igc2VydmVyIGRhc2hib2FyZCcsCi0gICAgICAgICAgICBkaWN0KAotICAg ICAgICAgICAgICAgIHRlbXBsYXRlX3BhdGg9J2Rhc2hib2FyZC9zZXJ2ZXJfZGFzaGJvYXJkLmh0 bWwnLAotICAgICAgICAgICAgICAgIGlucHV0X3BhcmFtZXRlcnM9ZGljdCgKLSAgICAgICAgICAg ICAgICAgICAgc2lkPVNFUlZFUl9JRCwKLSAgICAgICAgICAgICAgICAgICAgZGlkPU5vbmUsCi0g ICAgICAgICAgICAgICAgICAgIHJhdGVzPVJBVEVTLAotICAgICAgICAgICAgICAgICAgICB2ZXJz aW9uPVZFUlNJT04sCi0gICAgICAgICAgICAgICAgICAgIHNldHRpbmdzPURJU1BMQVlfREFTSEJP QVJEWydvbmx5X3NlcnZlcl9hY3Rpdml0eSddLAotICAgICAgICAgICAgICAgICAgICBfPV8KLSAg ICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgIGV4cGVjdGVkX3JldHVybl92YWx1ZT1b Ci0gICAgICAgICAgICAgICAgICAgICdTZXJ2ZXIgYWN0aXZpdHknCi0gICAgICAgICAgICAgICAg XSwKLSAgICAgICAgICAgICAgICBub3RfZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPVsKLSAgICAgICAg ICAgICAgICAgICAgJ1NlcnZlciBzZXNzaW9ucycKLSAgICAgICAgICAgICAgICBdCi0gICAgICAg ICAgICApCi0gICAgICAgICksCi0gICAgICAgICgKLSAgICAgICAgICAgICdEYXNoYm9hcmQsIHdo ZW4gcmV0dXJuaW5nIHRoZSBodG1sIHBhZ2Ugd2l0aCBuZWl0aGVyICcKLSAgICAgICAgICAgICdn cmFwaHMgbm9yIHNlcnZlciBhY3Rpdml0eSByZWxhdGVkIGh0bWwgZWxlbWVudHMgZm9yIHNlcnZl ciAnCi0gICAgICAgICAgICAnZGFzaGJvYXJkJywKLSAgICAgICAgICAgIGRpY3QoCi0gICAgICAg ICAgICAgICAgdGVtcGxhdGVfcGF0aD0nZGFzaGJvYXJkL3NlcnZlcl9kYXNoYm9hcmQuaHRtbCcs Ci0gICAgICAgICAgICAgICAgaW5wdXRfcGFyYW1ldGVycz1kaWN0KAotICAgICAgICAgICAgICAg ICAgICBzaWQ9U0VSVkVSX0lELAotICAgICAgICAgICAgICAgICAgICBkaWQ9Tm9uZSwKLSAgICAg ICAgICAgICAgICAgICAgcmF0ZXM9UkFURVMsCi0gICAgICAgICAgICAgICAgICAgIHZlcnNpb249 VkVSU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M9RElTUExBWV9EQVNIQk9BUkRb J25vbmUnXSwKLSAgICAgICAgICAgICAgICAgICAgXz1fCi0gICAgICAgICAgICAgICAgKSwKLSAg ICAgICAgICAgICAgICBleHBlY3RlZF9yZXR1cm5fdmFsdWU9W10sCi0gICAgICAgICAgICAgICAg bm90X2V4cGVjdGVkX3JldHVybl92YWx1ZT1bCi0gICAgICAgICAgICAgICAgICAgICdTZXJ2ZXIg YWN0aXZpdHknLAotICAgICAgICAgICAgICAgICAgICAnU2VydmVyIHNlc3Npb25zJwotICAgICAg ICAgICAgICAgIF0KLSAgICAgICAgICAgICkKLSAgICAgICAgKSwKLSAgICAgICAgIyBEYXRhYmFz ZSBkYXNoYm9hcmQKLSAgICAgICAgKAotICAgICAgICAgICAgJ0Rhc2hib2FyZCwgd2hlbiByZXR1 cm5pbmcgdGhlIGh0bWwgcGFnZSB3aXRoIGdyYXBocyBhbmQgJwotICAgICAgICAgICAgJ2RhdGFi YXNlIGFjdGl2aXR5IHJlbGF0ZWQgaHRtbCBlbGVtZW50cyBmb3IgZGF0YWJhc2UgZGFzaGJvYXJk JywKLSAgICAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgICAgdGVtcGxhdGVfcGF0aD0nZGFz aGJvYXJkL2RhdGFiYXNlX2Rhc2hib2FyZC5odG1sJywKLSAgICAgICAgICAgICAgICBpbnB1dF9w YXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIHNpZD1TRVJWRVJfSUQsCi0gICAg ICAgICAgICAgICAgICAgIGRpZD1EQVRBQkFTRV9JRCwKLSAgICAgICAgICAgICAgICAgICAgcmF0 ZXM9UkFURVMsCi0gICAgICAgICAgICAgICAgICAgIHZlcnNpb249VkVSU0lPTiwKLSAgICAgICAg ICAgICAgICAgICAgc2V0dGluZ3M9RElTUExBWV9EQVNIQk9BUkRbJ2JvdGgnXSwKLSAgICAgICAg ICAgICAgICAgICAgXz1fCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBleHBl Y3RlZF9yZXR1cm5fdmFsdWU9WwotICAgICAgICAgICAgICAgICAgICAnRGF0YWJhc2Ugc2Vzc2lv bnMnLAotICAgICAgICAgICAgICAgICAgICAnRGF0YWJhc2UgYWN0aXZpdHknCi0gICAgICAgICAg ICAgICAgXSwKLSAgICAgICAgICAgICAgICBub3RfZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPVtdCi0g ICAgICAgICAgICApCi0gICAgICAgICksCi0gICAgICAgICgKLSAgICAgICAgICAgICdEYXNoYm9h cmQsIHdoZW4gcmV0dXJuaW5nIHRoZSBodG1sIHBhZ2Ugd2l0aCBvbmx5ICcKLSAgICAgICAgICAg ICdncmFwaHMgcmVsYXRlZCBodG1sIGVsZW1lbnRzIGZvciBkYXRhYmFzZSBkYXNoYm9hcmQnLAot ICAgICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9wYXRoPSdkYXNoYm9h cmQvZGF0YWJhc2VfZGFzaGJvYXJkLmh0bWwnLAotICAgICAgICAgICAgICAgIGlucHV0X3BhcmFt ZXRlcnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgc2lkPVNFUlZFUl9JRCwKLSAgICAgICAg ICAgICAgICAgICAgZGlkPURBVEFCQVNFX0lELAotICAgICAgICAgICAgICAgICAgICByYXRlcz1S QVRFUywKLSAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1WRVJTSU9OLAotICAgICAgICAgICAg ICAgICAgICBzZXR0aW5ncz1ESVNQTEFZX0RBU0hCT0FSRFsnb25seV9ncmFwaHMnXSwKLSAgICAg ICAgICAgICAgICAgICAgXz1fCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBl eHBlY3RlZF9yZXR1cm5fdmFsdWU9WwotICAgICAgICAgICAgICAgICAgICAnRGF0YWJhc2Ugc2Vz c2lvbnMnCi0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBub3RfZXhwZWN0ZWRf cmV0dXJuX3ZhbHVlPVsKLSAgICAgICAgICAgICAgICAgICAgJ0RhdGFiYXNlIGFjdGl2aXR5Jwot ICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICkKLSAgICAgICAgKSwKLSAgICAgICAgKAot ICAgICAgICAgICAgJ0Rhc2hib2FyZCwgd2hlbiByZXR1cm5pbmcgdGhlIGh0bWwgcGFnZSB3aXRo IG9ubHkgJwotICAgICAgICAgICAgJ2RhdGFiYXNlIGFjdGl2aXR5IHJlbGF0ZWQgaHRtbCBlbGVt ZW50cyBmb3IgZGF0YWJhc2UgZGFzaGJvYXJkJywKLSAgICAgICAgICAgIGRpY3QoCi0gICAgICAg ICAgICAgICAgdGVtcGxhdGVfcGF0aD0nZGFzaGJvYXJkL2RhdGFiYXNlX2Rhc2hib2FyZC5odG1s JywKLSAgICAgICAgICAgICAgICBpbnB1dF9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAg ICAgICAgIHNpZD1TRVJWRVJfSUQsCi0gICAgICAgICAgICAgICAgICAgIGRpZD1EQVRBQkFTRV9J RCwKLSAgICAgICAgICAgICAgICAgICAgcmF0ZXM9UkFURVMsCi0gICAgICAgICAgICAgICAgICAg IHZlcnNpb249VkVSU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M9RElTUExBWV9E QVNIQk9BUkRbJ29ubHlfc2VydmVyX2FjdGl2aXR5J10sCi0gICAgICAgICAgICAgICAgICAgIF89 XwotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmV0dXJuX3Zh bHVlPVsKLSAgICAgICAgICAgICAgICAgICAgJ0RhdGFiYXNlIGFjdGl2aXR5JwotICAgICAgICAg ICAgICAgIF0sCi0gICAgICAgICAgICAgICAgbm90X2V4cGVjdGVkX3JldHVybl92YWx1ZT1bCi0g ICAgICAgICAgICAgICAgICAgICdEYXRhYmFzZSBzZXNzaW9ucycKLSAgICAgICAgICAgICAgICBd Ci0gICAgICAgICAgICApCi0gICAgICAgICksCi0gICAgICAgICgKLSAgICAgICAgICAgICdEYXNo Ym9hcmQsIHdoZW4gcmV0dXJuaW5nIHRoZSBodG1sIHBhZ2Ugd2l0aCBuZWl0aGVyICcKLSAgICAg ICAgICAgICdncmFwaHMgbm9yIGRhdGFiYXNlIGFjdGl2aXR5IHJlbGF0ZWQgaHRtbCBlbGVtZW50 cyBmb3IgZGF0YWJhc2UgJwotICAgICAgICAgICAgJ2Rhc2hib2FyZCcsCi0gICAgICAgICAgICBk aWN0KAotICAgICAgICAgICAgICAgIHRlbXBsYXRlX3BhdGg9J2Rhc2hib2FyZC9kYXRhYmFzZV9k YXNoYm9hcmQuaHRtbCcsCi0gICAgICAgICAgICAgICAgaW5wdXRfcGFyYW1ldGVycz1kaWN0KAot ICAgICAgICAgICAgICAgICAgICBzaWQ9U0VSVkVSX0lELAotICAgICAgICAgICAgICAgICAgICBk aWQ9REFUQUJBU0VfSUQsCi0gICAgICAgICAgICAgICAgICAgIHJhdGVzPVJBVEVTLAotICAgICAg ICAgICAgICAgICAgICB2ZXJzaW9uPVZFUlNJT04sCi0gICAgICAgICAgICAgICAgICAgIHNldHRp bmdzPURJU1BMQVlfREFTSEJPQVJEWydub25lJ10sCi0gICAgICAgICAgICAgICAgICAgIF89Xwot ICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmV0dXJuX3ZhbHVl PVtdLAotICAgICAgICAgICAgICAgIG5vdF9leHBlY3RlZF9yZXR1cm5fdmFsdWU9WwotICAgICAg ICAgICAgICAgICAgICAnRGF0YWJhc2Ugc2Vzc2lvbnMnLAotICAgICAgICAgICAgICAgICAgICAn RGF0YWJhc2UgYWN0aXZpdHknCi0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgKQotICAg ICAgICApLAotCi0gICAgXQotCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLmxv YWRlciA9IFZlcnNpb25lZFRlbXBsYXRlTG9hZGVyKEZha2VBcHAoKSkKLQotICAgIGRlZiBydW5U ZXN0KHNlbGYpOgotICAgICAgICB3aXRoIEZha2VBcHAoKS5hcHBfY29udGV4dCgpOgotICAgICAg ICAgICAgcmVzdWx0ID0gcmVuZGVyX3RlbXBsYXRlKAotICAgICAgICAgICAgICAgIHNlbGYudGVt cGxhdGVfcGF0aCwgKipzZWxmLmlucHV0X3BhcmFtZXRlcnMKLSAgICAgICAgICAgICkKLSAgICAg ICAgICAgICMgY2hlY2tzIGZvciBleHBlY3RlZCBodG1sIGVsZW1lbnRzCi0gICAgICAgICAgICBm b3IgZXhwZWN0ZWRfc3RyaW5nIGluIHNlbGYuZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlOgotICAgICAg ICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oCi0gICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3N0 cmluZywgcmVzdWx0Ci0gICAgICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAjIGNoZWNrcyBm b3Igbm90IGV4cGVjdGVkIGh0bWwgZWxlbWVudHMKLSAgICAgICAgICAgIGZvciBub3RfZXhwZWN0 ZWRfc3RyaW5nIGluIHNlbGYubm90X2V4cGVjdGVkX3JldHVybl92YWx1ZToKLSAgICAgICAgICAg ICAgICBzZWxmLmFzc2VydE5vdEluKAotICAgICAgICAgICAgICAgICAgICBub3RfZXhwZWN0ZWRf c3RyaW5nLCByZXN1bHQKLSAgICAgICAgICAgICAgICApCi0KLQotY2xhc3MgRmFrZUFwcChGbGFz ayk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzdXBlcihGYWtlQXBwLCBzZWxm KS5fX2luaXRfXygiIikKLSAgICAgICAgc2VsZi5qaW5qYV9sb2FkZXIgPSBGaWxlU3lzdGVtTG9h ZGVyKAotICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKG9zLnBhdGgucmVhbHBhdGgoX19maWxl X18pKSArICIvLi4vdGVtcGxhdGVzIgotICAgICAgICApCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9zdGF0aWMvanMva2V5Ym9hcmRfc2hvcnRjdXRzLmpzIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pz L2tleWJvYXJkX3Nob3J0Y3V0cy5qcwppbmRleCAyMzJmNjdmZC4uNjY3MTI5ZGQgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9rZXlib2FyZF9zaG9ydGN1dHMuanMKKysrIGIvd2Vi L3BnYWRtaW4vc3RhdGljL2pzL2tleWJvYXJkX3Nob3J0Y3V0cy5qcwpAQCAtMTE3LDEzICsxMTcs MTAgQEAgZnVuY3Rpb24gdmFsaWRhdGVTaG9ydGN1dEtleXModXNlcl9kZWZpbmVkX3Nob3J0Y3V0 LCBldmVudCkgewogfQogCiAvKiBEZWJ1Z2dlcjogS2V5Ym9hcmQgU2hvcnRjdXRzIGhhbmRsaW5n ICovCi1mdW5jdGlvbiBrZXlib2FyZFNob3J0Y3V0c0RlYnVnZ2VyKCRlbCwgZXZlbnQsIHVzZXJf ZGVmaW5lZF9zaG9ydGN1dHMpIHsKK2Z1bmN0aW9uIGtleWJvYXJkU2hvcnRjdXRzRGVidWdnZXIo JGVsLCBldmVudCwgcHJlZmVyZW5jZXMpIHsKICAgbGV0IHBhbmVsX2lkLCBwYW5lbF9jb250ZW50 LCAkaW5wdXQ7Ci0gIGxldCBlZGl0X2dyaWRfa2V5cyA9IHVzZXJfZGVmaW5lZF9zaG9ydGN1dHMu ZWRpdF9ncmlkX2tleXMsCi0gICAgbmV4dF9wYW5lbF9rZXlzID0gdXNlcl9kZWZpbmVkX3Nob3J0 Y3V0cy5uZXh0X3BhbmVsX2tleXMsCi0gICAgcHJldmlvdXNfcGFuZWxfa2V5cyA9IHVzZXJfZGVm aW5lZF9zaG9ydGN1dHMucHJldmlvdXNfcGFuZWxfa2V5czsKIAotICBpZih0aGlzLnZhbGlkYXRl U2hvcnRjdXRLZXlzKGVkaXRfZ3JpZF9rZXlzLCBldmVudCkpIHsKKyAgaWYodGhpcy52YWxpZGF0 ZVNob3J0Y3V0S2V5cyhwcmVmZXJlbmNlcy5lZGl0X2dyaWRfdmFsdWVzLCBldmVudCkpIHsKICAg ICB0aGlzLl9zdG9wRXZlbnRQcm9wYWdhdGlvbihldmVudCk7CiAgICAgcGFuZWxfY29udGVudCA9 ICRlbC5maW5kKAogICAgICAgJ2Rpdi53Y1BhbmVsVGFiQ29udGVudDpub3QoIi53Y1BhbmVsVGFi Q29udGVudEhpZGRlbiIpJwpAQCAtMTMzLDEwICsxMzAsMTAgQEAgZnVuY3Rpb24ga2V5Ym9hcmRT aG9ydGN1dHNEZWJ1Z2dlcigkZWwsIGV2ZW50LCB1c2VyX2RlZmluZWRfc2hvcnRjdXRzKSB7CiAg ICAgICBpZigkaW5wdXQubGVuZ3RoKQogICAgICAgICAkaW5wdXQudHJpZ2dlcignY2xpY2snKTsK ICAgICB9Ci0gIH0gZWxzZSBpZih0aGlzLnZhbGlkYXRlU2hvcnRjdXRLZXlzKG5leHRfcGFuZWxf a2V5cywgZXZlbnQpKSB7CisgIH0gZWxzZSBpZih0aGlzLnZhbGlkYXRlU2hvcnRjdXRLZXlzKHBy ZWZlcmVuY2VzLm1vdmVfbmV4dCwgZXZlbnQpKSB7CiAgICAgdGhpcy5fc3RvcEV2ZW50UHJvcGFn YXRpb24oZXZlbnQpOwogICAgIHBhbmVsX2lkID0gdGhpcy5nZXRJbm5lclBhbmVsKCRlbCwgJ3Jp Z2h0Jyk7Ci0gIH0gZWxzZSBpZih0aGlzLnZhbGlkYXRlU2hvcnRjdXRLZXlzKHByZXZpb3VzX3Bh bmVsX2tleXMsIGV2ZW50KSkgeworICB9IGVsc2UgaWYodGhpcy52YWxpZGF0ZVNob3J0Y3V0S2V5 cyhwcmVmZXJlbmNlcy5tb3ZlX3ByZXZpb3VzLCBldmVudCkpIHsKICAgICB0aGlzLl9zdG9wRXZl bnRQcm9wYWdhdGlvbihldmVudCk7CiAgICAgcGFuZWxfaWQgPSB0aGlzLmdldElubmVyUGFuZWwo JGVsLCAnbGVmdCcpOwogICB9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9kZWJ1Z2dl ci9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL19faW5pdF9fLnB5Cmlu ZGV4IGYyNDk0MmQ3Li40NDc5Zjg1YyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvZGVi dWdnZXIvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvZGVidWdnZXIvX19pbml0 X18ucHkKQEAgLTI5MywzMyArMjkzLDYgQEAgZGVmIHVwZGF0ZV9zZXNzaW9uX2Z1bmN0aW9uX3Ry YW5zYWN0aW9uKHRyYW5zX2lkLCBkYXRhKToKICAgICBzZXNzaW9uWydmdW5jdGlvbkRhdGEnXSA9 IGZ1bmN0aW9uX2RhdGEKIAogCi1kZWYgZ2V0X3Nob3J0Y3V0c19mb3JfYWNjZXNza2V5KCk6Ci0g ICAgIiIiCi0gICAgVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIGFuZCByZXR1cm4gYWNjZXNza2V5 IHNob3J0Y3V0cyBmb3IgZGVidWdnZXIKLSAgICB0b29sYmFyIGJ1dHRvbnMKLQotICAgIFJldHVy bnM6Ci0gICAgICAgIERpY3Qgb2Ygc2hvcnRjdXQga2V5cwotICAgICIiIgotICAgICMgRmV0Y2gg ZGVidWdnZXIgcHJlZmVyZW5jZXMKLSAgICBkcCA9IFByZWZlcmVuY2VzLm1vZHVsZSgnZGVidWdn ZXInKQotICAgIGJ0bl9zdGFydCA9IGRwLnByZWZlcmVuY2UoJ2J0bl9zdGFydCcpLmdldCgpCi0g ICAgYnRuX3N0b3AgPSBkcC5wcmVmZXJlbmNlKCdidG5fc3RvcCcpLmdldCgpCi0gICAgYnRuX3N0 ZXBfaW50byA9IGRwLnByZWZlcmVuY2UoJ2J0bl9zdGVwX2ludG8nKS5nZXQoKQotICAgIGJ0bl9z dGVwX292ZXIgPSBkcC5wcmVmZXJlbmNlKCdidG5fc3RlcF9vdmVyJykuZ2V0KCkKLSAgICBidG5f dG9nZ2xlX2JyZWFrcG9pbnQgPSBkcC5wcmVmZXJlbmNlKCdidG5fdG9nZ2xlX2JyZWFrcG9pbnQn KS5nZXQoKQotICAgIGJ0bl9jbGVhcl9icmVha3BvaW50cyA9IGRwLnByZWZlcmVuY2UoJ2J0bl9j bGVhcl9icmVha3BvaW50cycpLmdldCgpCi0KLSAgICByZXR1cm4gewotICAgICAgICAnc3RhcnQn OiBidG5fc3RhcnQuZ2V0KCdrZXknKS5nZXQoJ2NoYXInKSwKLSAgICAgICAgJ3N0b3AnOiBidG5f c3RvcC5nZXQoJ2tleScpLmdldCgnY2hhcicpLAotICAgICAgICAnc3RlcF9pbnRvJzogYnRuX3N0 ZXBfaW50by5nZXQoJ2tleScpLmdldCgnY2hhcicpLAotICAgICAgICAnc3RlcF9vdmVyJzogYnRu X3N0ZXBfb3Zlci5nZXQoJ2tleScpLmdldCgnY2hhcicpLAotICAgICAgICAndG9nZ2xlX2JyZWFr cG9pbnQnOiBidG5fdG9nZ2xlX2JyZWFrcG9pbnQuZ2V0KCdrZXknKS5nZXQoJ2NoYXInKSwKLSAg ICAgICAgJ2NsZWFyX2JyZWFrcG9pbnRzJzogYnRuX2NsZWFyX2JyZWFrcG9pbnRzLmdldCgna2V5 JykuZ2V0KCdjaGFyJykKLSAgICB9Ci0KLQogQGJsdWVwcmludC5yb3V0ZSgKICAgICAnL2luaXQv PG5vZGVfdHlwZT4vPGludDpzaWQ+LzxpbnQ6ZGlkPi88aW50OnNjaWQ+LzxpbnQ6ZmlkPicsCiAg ICAgbWV0aG9kcz1bJ0dFVCddLCBlbmRwb2ludD0naW5pdF9mb3JfZnVuY3Rpb24nCkBAIC01ODks NyArNTYyLDYgQEAgZGVmIGRpcmVjdF9uZXcodHJhbnNfaWQpOgogICAgICAgICBpc19saW51eD1p c19saW51eF9wbGF0Zm9ybSwKICAgICAgICAgY2xpZW50X3BsYXRmb3JtPXVzZXJfYWdlbnQucGxh dGZvcm0sCiAgICAgICAgIHN0eWxlc2hlZXRzPVt1cmxfZm9yKCdkZWJ1Z2dlci5zdGF0aWMnLCBm aWxlbmFtZT0nY3NzL2RlYnVnZ2VyLmNzcycpXSwKLSAgICAgICAgYWNjZXNza2V5PWdldF9zaG9y dGN1dHNfZm9yX2FjY2Vzc2tleSgpCiAgICAgKQogCiAKQEAgLTgxMSwxMiArNzgzLDggQEAgZGVm IGluaXRpYWxpemVfdGFyZ2V0KGRlYnVnX3R5cGUsIHNpZCwgZGlkLCBzY2lkLCBmdW5jX2lkLCB0 cmlfaWQ9Tm9uZSk6CiAgICAgIyBpcyBpbml0aWFsaXplZAogICAgIGRlbCBzZXNzaW9uWydmdW5j RGF0YSddCiAKLSAgICBwcmVmID0gUHJlZmVyZW5jZXMubW9kdWxlKCdkZWJ1Z2dlcicpCi0gICAg bmV3X2Jyb3dzZXJfdGFiID0gcHJlZi5wcmVmZXJlbmNlKCdkZWJ1Z2dlcl9uZXdfYnJvd3Nlcl90 YWInKS5nZXQoKQotCiAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZShkYXRhPXsnc3RhdHVz Jzogc3RhdHVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlYnVnZ2Vy VHJhbnNJZCc6IHRyYW5zX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J25ld0Jyb3dzZXJUYWInOiBuZXdfYnJvd3Nlcl90YWJ9KQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ2RlYnVnZ2VyVHJhbnNJZCc6IHRyYW5zX2lkfSkKIAogCiBAYmx1ZXBy aW50LnJvdXRlKApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvZGVidWdnZXIvc3RhdGlj L2pzL2RlYnVnZ2VyLmpzIGIvd2ViL3BnYWRtaW4vdG9vbHMvZGVidWdnZXIvc3RhdGljL2pzL2Rl YnVnZ2VyLmpzCmluZGV4IGQ2MzIzNDNlLi4zOWNhY2E3MSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vdG9vbHMvZGVidWdnZXIvc3RhdGljL2pzL2RlYnVnZ2VyLmpzCisrKyBiL3dlYi9wZ2FkbWlu L3Rvb2xzL2RlYnVnZ2VyL3N0YXRpYy9qcy9kZWJ1Z2dlci5qcwpAQCAtMTg0LDYgKzE4NCwxOCBA QCBkZWZpbmUoWwogICAgICAgfSk7CiAKICAgICAgIHRoaXMuZnJhbWUubG9hZChwZ0Jyb3dzZXIu ZG9ja2VyKTsKKworICAgICAgbGV0IHNlbGYgPSB0aGlzOworICAgICAgbGV0IGNhY2hlSW50ZXJ2 YWxJZCA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkgeworICAgICAgICB0cnkgeworICAgICAgICAg IHNlbGYucHJlZmVyZW5jZXMgPSB3aW5kb3cudG9wLnBnQWRtaW4uQnJvd3NlcjsKKyAgICAgICAg ICBjbGVhckludGVydmFsKGNhY2hlSW50ZXJ2YWxJZCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0 Y2goZXJyKSB7CisgICAgICAgICAgY2xlYXJJbnRlcnZhbChjYWNoZUludGVydmFsSWQpOworICAg ICAgICAgIHRocm93IGVycjsKKyAgICAgICAgfQorICAgICAgfSk7CiAgICAgfSwKICAgICAvLyBJ dCB3aWxsIGNoZWNrIHdlYXRoZXIgdGhlIGZ1bmN0aW9uIGlzIGFjdHVhbGx5IGRlYnVnZ2FibGUg b3Igbm90IHdpdGggcHJlLXJlcXVpcmVkIGNvbmRpdGlvbi4KICAgICBjYW5fZGVidWc6IGZ1bmN0 aW9uKGl0ZW1EYXRhLCBpdGVtLCBkYXRhKSB7CkBAIC0zMTMsNyArMzI1LDggQEAgZGVmaW5lKFsK ICAgICAgIHZhciB0ID0gcGdCcm93c2VyLnRyZWUsCiAgICAgICAgIGkgPSBpdGVtIHx8IHQuc2Vs ZWN0ZWQoKSwKICAgICAgICAgZCA9IGkgJiYgaS5sZW5ndGggPT0gMSA/IHQuaXRlbURhdGEoaSkg OiB1bmRlZmluZWQsCi0gICAgICAgIG5vZGUgPSBkICYmIHBnQnJvd3Nlci5Ob2Rlc1tkLl90eXBl XTsKKyAgICAgICAgbm9kZSA9IGQgJiYgcGdCcm93c2VyLk5vZGVzW2QuX3R5cGVdLAorICAgICAg ICBzZWxmID0gdGhpczsKIAogICAgICAgaWYgKCFkKQogICAgICAgICByZXR1cm47CkBAIC0zODQs NyArMzk3LDcgQEAgZGVmaW5lKFsKICAgICAgICAgICAndHJhbnNfaWQnOiByZXMuZGF0YS5kZWJ1 Z2dlclRyYW5zSWQsCiAgICAgICAgIH0pOwogCi0gICAgICAgIGlmIChyZXMuZGF0YS5uZXdCcm93 c2VyVGFiKSB7CisgICAgICAgIGlmIChzZWxmLnByZWZlcmVuY2VzLmRlYnVnZ2VyX25ld19icm93 c2VyX3RhYikgewogICAgICAgICAgIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpOwogICAgICAg ICB9IGVsc2UgewogICAgICAgICAgIHBnQnJvd3Nlci5FdmVudHMub25jZSgKQEAgLTQzNSw3ICs0 NDgsOCBAQCBkZWZpbmUoWwogICAgICAgdmFyIHQgPSBwZ0Jyb3dzZXIudHJlZSwKICAgICAgICAg aSA9IGl0ZW0gfHwgdC5zZWxlY3RlZCgpLAogICAgICAgICBkID0gaSAmJiBpLmxlbmd0aCA9PSAx ID8gdC5pdGVtRGF0YShpKSA6IHVuZGVmaW5lZCwKLSAgICAgICAgbm9kZSA9IGQgJiYgcGdCcm93 c2VyLk5vZGVzW2QuX3R5cGVdOworICAgICAgICBub2RlID0gZCAmJiBwZ0Jyb3dzZXIuTm9kZXNb ZC5fdHlwZV0sCisgICAgICAgIHNlbGYgPSB0aGlzOwogCiAgICAgICBpZiAoIWQpCiAgICAgICAg IHJldHVybjsKQEAgLTQ5OSw3ICs1MTMsNyBAQCBkZWZpbmUoWwogICAgICAgICAgICAgICAndHJh bnNfaWQnOiByZXMuZGF0YS5kZWJ1Z2dlclRyYW5zSWQsCiAgICAgICAgICAgICB9KTsKIAotICAg ICAgICAgICAgaWYgKHJlcy5kYXRhLm5ld0Jyb3dzZXJUYWIpIHsKKyAgICAgICAgICAgIGlmIChz ZWxmLnByZWZlcmVuY2VzLmRlYnVnZ2VyX25ld19icm93c2VyX3RhYikgewogICAgICAgICAgICAg ICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAg ICAgICAgICAgIHBnQnJvd3Nlci5FdmVudHMub25jZSgKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L3Rvb2xzL2RlYnVnZ2VyL3N0YXRpYy9qcy9kaXJlY3QuanMgYi93ZWIvcGdhZG1pbi90b29scy9k ZWJ1Z2dlci9zdGF0aWMvanMvZGlyZWN0LmpzCmluZGV4IGJjMWFmZjExLi4zNWE2OTcwZSAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvZGVidWdnZXIvc3RhdGljL2pzL2RpcmVjdC5qcwor KysgYi93ZWIvcGdhZG1pbi90b29scy9kZWJ1Z2dlci9zdGF0aWMvanMvZGlyZWN0LmpzCkBAIC0x MzkzLDcgKzEzOTMsNyBAQCBkZWZpbmUoWwogICAgIGNvbnRyb2xsZXIgYWJvdXQgdGhlIGNsaWNr IGFuZCBjb250cm9sbGVyIHdpbGwgdGFrZSB0aGUgYWN0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGJ1 dHRvbiBjbGljay4KICAgKi8KICAgdmFyIERlYnVnZ2VyVG9vbGJhclZpZXcgPSBCYWNrYm9uZS5W aWV3LmV4dGVuZCh7Ci0gICAgZWw6ICcuZHVidWdnZXJfbWFpbl9jb250YWluZXInLAorICAgIGVs OiAnLmRlYnVnZ2VyX21haW5fY29udGFpbmVyJywKICAgICBpbml0aWFsaXplOiBmdW5jdGlvbigp IHsKICAgICAgIGNvbnRyb2xsZXIub24oJ3BnRGVidWdnZXI6YnV0dG9uOnN0YXRlOnN0b3AnLCB0 aGlzLmVuYWJsZV9zdG9wLCB0aGlzKTsKICAgICAgIGNvbnRyb2xsZXIub24oJ3BnRGVidWdnZXI6 YnV0dG9uOnN0YXRlOnN0ZXBfb3ZlcicsIHRoaXMuZW5hYmxlX3N0ZXBfb3ZlciwgdGhpcyk7CkBA IC0xNDk2LDQ0ICsxNDk2LDExIEBAIGRlZmluZShbCiAgICAgICBjb250cm9sbGVyLlN0ZXBfaW50 byhwZ1Rvb2xzLkRpcmVjdERlYnVnLnRyYW5zX2lkKTsKICAgICB9LAogICAgIGtleUFjdGlvbjog ZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgICB2YXIgJGVsID0gdGhpcy4kZWwsIHBhbmVsX2lkLCBh Y3R1YWxfcGFuZWw7Ci0KLSAgICAgIC8vIElmIGFscmVhZHkgZmV0Y2hlZCBlYXJsaWVyIHRoZW4g ZG9uJ3QgZG8gaXQgYWdhaW4KLSAgICAgIGlmKF8uc2l6ZShwZ1Rvb2xzLkRpcmVjdERlYnVnLmRl YnVnZ2VyX2tleWJvYXJkX3Nob3J0Y3V0cykgPT0gMCkgewotICAgICAgICAvLyBGZXRjaCBrZXli b2FyZCBzaG9ydGN1dCBrZXlzCi0gICAgICAgIHZhciBlZGl0X2dyaWRfc2hvcnRjdXRfcGVyZiwg bmV4dF9wYW5lbF9wZXJmLCBwcmV2aW91c19wYW5lbF9wZXJmOwotICAgICAgICBlZGl0X2dyaWRf c2hvcnRjdXRfcGVyZiA9IHdpbmRvdy50b3AucGdBZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNl KAotICAgICAgICAgICdkZWJ1Z2dlcicsICdlZGl0X2dyaWRfdmFsdWVzJwotICAgICAgICApOwot ICAgICAgICBuZXh0X3BhbmVsX3BlcmYgPSB3aW5kb3cudG9wLnBnQWRtaW4uQnJvd3Nlci5nZXRf cHJlZmVyZW5jZSgKLSAgICAgICAgICAnZGVidWdnZXInLCAnbW92ZV9uZXh0JwotICAgICAgICAp OwotICAgICAgICBwcmV2aW91c19wYW5lbF9wZXJmID0gd2luZG93LnRvcC5wZ0FkbWluLkJyb3dz ZXIuZ2V0X3ByZWZlcmVuY2UoCi0gICAgICAgICAgJ2RlYnVnZ2VyJywgJ21vdmVfcHJldmlvdXMn Ci0gICAgICAgICk7Ci0KLSAgICAgICAgLy8gSWYgZGVidWdnZXIgb3BlbmVkIGluIG5ldyBUYWIg dGhlbiB3aW5kb3cudG9wIHdvbid0IGJlIGF2YWlsYWJsZQotICAgICAgICBpZighZWRpdF9ncmlk X3Nob3J0Y3V0X3BlcmYgfHwgIW5leHRfcGFuZWxfcGVyZiB8fCAhcHJldmlvdXNfcGFuZWxfcGVy ZikgewotICAgICAgICAgIGVkaXRfZ3JpZF9zaG9ydGN1dF9wZXJmID0gd2luZG93Lm9wZW5lci5w Z0FkbWluLkJyb3dzZXIuZ2V0X3ByZWZlcmVuY2UoCi0gICAgICAgICAgICAnZGVidWdnZXInLCAn ZWRpdF9ncmlkX3ZhbHVlcycKLSAgICAgICAgICApOwotICAgICAgICAgIG5leHRfcGFuZWxfcGVy ZiA9IHdpbmRvdy5vcGVuZXIucGdBZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNlKAotICAgICAg ICAgICAgJ2RlYnVnZ2VyJywgJ21vdmVfbmV4dCcKLSAgICAgICAgICApOwotICAgICAgICAgIHBy ZXZpb3VzX3BhbmVsX3BlcmYgPSB3aW5kb3cub3BlbmVyLnBnQWRtaW4uQnJvd3Nlci5nZXRfcHJl ZmVyZW5jZSgKLSAgICAgICAgICAgICdkZWJ1Z2dlcicsICdtb3ZlX3ByZXZpb3VzJwotICAgICAg ICAgICk7Ci0gICAgICAgIH0KLQotICAgICAgICBwZ1Rvb2xzLkRpcmVjdERlYnVnLmRlYnVnZ2Vy X2tleWJvYXJkX3Nob3J0Y3V0cyA9IHsKLSAgICAgICAgICAnZWRpdF9ncmlkX2tleXMnOiBlZGl0 X2dyaWRfc2hvcnRjdXRfcGVyZi52YWx1ZSwKLSAgICAgICAgICAnbmV4dF9wYW5lbF9rZXlzJzog bmV4dF9wYW5lbF9wZXJmLnZhbHVlLAotICAgICAgICAgICdwcmV2aW91c19wYW5lbF9rZXlzJzog cHJldmlvdXNfcGFuZWxfcGVyZi52YWx1ZSwKLSAgICAgICAgfTsKLSAgICAgIH0KKyAgICAgIHZh ciAkZWwgPSB0aGlzLiRlbCwgcGFuZWxfaWQsIGFjdHVhbF9wYW5lbCwKKyAgICAgICAgc2VsZiA9 IHRoaXM7CiAKICAgICAgIHBhbmVsX2lkID0ga2V5Ym9hcmRTaG9ydGN1dHMucHJvY2Vzc0V2ZW50 RGVidWdnZXIoCi0gICAgICAgICRlbCwgZXZlbnQsIHBnVG9vbHMuRGlyZWN0RGVidWcuZGVidWdn ZXJfa2V5Ym9hcmRfc2hvcnRjdXRzCisgICAgICAgICRlbCwgZXZlbnQsIHNlbGYucHJlZmVyZW5j ZXMKICAgICAgICk7CiAKICAgICAgIC8vIFBhbmVsIG5hdmlnYXRpb24KQEAgLTE1NzIsNyArMTUz OSwxMCBAQCBkZWZpbmUoWwogICAgICAgdGhpcy5kZWJ1Z19yZXN0YXJ0ZWQgPSBmYWxzZTsKICAg ICAgIHRoaXMuaXNfdXNlcl9hYm9ydGVkX2RlYnVnZ2luZyA9IGZhbHNlOwogICAgICAgdGhpcy5p c19wb2xsaW5nX3JlcXVpcmVkID0gdHJ1ZTsgLy8gRmxhZyB0byBzdG9wIHVud2FudGVkIGFqYXgg Y2FsbHMKLSAgICAgIHRoaXMuZGVidWdnZXJfa2V5Ym9hcmRfc2hvcnRjdXRzID0ge307CisKKyAg ICAgIGxldCBicm93c2VyID0gd2luZG93Lm9wZW5lciA/CisgICAgICAgICAgICAgIHdpbmRvdy5v cGVuZXIucGdBZG1pbi5Ccm93c2VyIDogd2luZG93LnRvcC5wZ0FkbWluLkJyb3dzZXI7CisgICAg ICB0aGlzLnByZWZlcmVuY2VzID0gYnJvd3Nlci5nZXRfcHJlZmVyZW5jZXNfZm9yX21vZHVsZSgn c3FsZWRpdG9yJyk7CiAKICAgICAgIHRoaXMuZG9ja2VyID0gbmV3IHdjRG9ja2VyKAogICAgICAg ICAnI2NvbnRhaW5lcicsIHsKQEAgLTE4NTYsNiArMTgyNiwzNSBAQCBkZWZpbmUoWwogICAgICAg ICBpZihzZWxmLmRvY2tlci4kY29udGFpbmVyKXsKICAgICAgICAgICBzZWxmLmRvY2tlci4kY29u dGFpbmVyLnBhcmVudCgpLmZvY3VzKCk7CiAgICAgICAgIH0KKworICAgICAgICBsZXQgY2FjaGVJ bnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CisgICAgICAgICAgdHJ5IHsKKyAg ICAgICAgICAgIGxldCBicm93c2VyID0gd2luZG93Lm9wZW5lciA/IHdpbmRvdy5vcGVuZXIucGdB ZG1pbi5Ccm93c2VyIDogd2luZG93LnRvcC5wZ0FkbWluLkJyb3dzZXI7CisgICAgICAgICAgICBp Zihicm93c2VyLnByZWZlcmVuY2VfdmVyc2lvbigpID4gMCkgeworICAgICAgICAgICAgICBjbGVh ckludGVydmFsKGNhY2hlSW50ZXJ2YWxJZCk7CisgICAgICAgICAgICAgIHNlbGYucmVmbGVjdFBy ZWZlcmVuY2VzKCk7CisKKyAgICAgICAgICAgICAgLyogSWYgZGVidWdnZXIgaXMgaW4gYSBuZXcg dGFiLCBldmVudCBmaXJlZCBpcyBub3QgYXZhaWxhYmxlCisgICAgICAgICAgICAgICAqIGluc3Rl YWQsIGEgcG9sbGVyIGlzIHNldCB1cCB3aG8gd2lsbCBjaGVjaworICAgICAgICAgICAgICAgKi8K KyAgICAgICAgICAgICAgaWYoc2VsZi5wcmVmZXJlbmNlcy5kZWJ1Z2dlcl9uZXdfYnJvd3Nlcl90 YWIpIHsKKyAgICAgICAgICAgICAgICBsZXQgcG9sbEludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgo KT0+eworICAgICAgICAgICAgICAgICAgaWYod2luZG93Lm9wZW5lciAmJiB3aW5kb3cub3BlbmVy LnBnQWRtaW4pIHsKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWZsZWN0UHJlZmVyZW5jZXMo KTsKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAg ICAgICAgICAgICAgICBjbGVhckludGVydmFsKHBvbGxJbnRlcnZhbElkKTsKKyAgICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LCAxMDAwKTsKKyAgICAgICAgICAgICAgfQorICAg ICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBjYXRjaChlcnIpIHsKKyAgICAgICAg ICAgIGNsZWFySW50ZXJ2YWwoY2FjaGVJbnRlcnZhbElkKTsKKyAgICAgICAgICAgIHRocm93IGVy cjsKKyAgICAgICAgICB9CisgICAgICAgIH0sMCk7CisKICAgICAgIH07CiAKICAgICAgIHNlbGYu ZG9ja2VyLnN0YXJ0TG9hZGluZyhnZXR0ZXh0KCdMb2FkaW5nLi4uJykpOwpAQCAtMTg2Myw4ICsx ODYyLDUwIEBAIGRlZmluZShbCiAKICAgICAgIC8vIENyZWF0ZSB0aGUgdG9vbGJhciB2aWV3IGZv ciBkZWJ1Z2dpbmcgdGhlIGZ1bmN0aW9uCiAgICAgICB0aGlzLnRvb2xiYXJWaWV3ID0gbmV3IERl YnVnZ2VyVG9vbGJhclZpZXcoKTsKLSAgICB9LAogCisgICAgICAvKiBDYWNoZSBtYXkgdGFrZSB0 aW1lIHRvIGxvYWQgZm9yIHRoZSBmaXJzdCB0aW1lCisgICAgICAgKiBLZWVwIHRyeWluZyB0aWxs IGF2YWlsYWJsZQorICAgICAgICovCisKKworICAgICAgLyogUmVnaXN0ZXIgZm9yIHByZWZlcmVu Y2UgY2hhbmdlZCBldmVudCBicm9hZGNhc3RlZCBpbiBwYXJlbnQKKyAgICAgICAqIHRvIHJlbG9h ZCB0aGUgc2hvcmN1dHMuCisgICAgICAgKi8KKyAgICAgIHBnQnJvd3Nlci5vblByZWZlcmVuY2Vz Q2hhbmdlKCdkZWJ1Z2dlcicsIGZ1bmN0aW9uKCkgeworICAgICAgICBzZWxmLnJlZmxlY3RQcmVm ZXJlbmNlcygpOworICAgICAgfSk7CisgICAgfSwKKyAgICByZWZsZWN0UHJlZmVyZW5jZXM6IGZ1 bmN0aW9uKCkgeworICAgICAgbGV0IHNlbGYgPSB0aGlzLAorICAgICAgICBicm93c2VyID0gd2lu ZG93Lm9wZW5lciA/IHdpbmRvdy5vcGVuZXIucGdBZG1pbi5Ccm93c2VyIDogd2luZG93LnRvcC5w Z0FkbWluLkJyb3dzZXI7CisgICAgICBzZWxmLnByZWZlcmVuY2VzID0gYnJvd3Nlci5nZXRfcHJl ZmVyZW5jZXNfZm9yX21vZHVsZSgnZGVidWdnZXInKTsKKyAgICAgIHNlbGYudG9vbGJhclZpZXcu cHJlZmVyZW5jZXMgPSBzZWxmLnByZWZlcmVuY2VzOworCisgICAgICAvKiBVcGRhdGUgdGhlIHNo b3J0Y3V0cyBvZiB0aGUgYnV0dG9ucyAqLworICAgICAgc2VsZi50b29sYmFyVmlldy4kZWwuZmlu ZCgnI2J0bi1zdGVwLWludG8nKQorICAgICAgICAuYXR0cigndGl0bGUnLCBrZXlib2FyZFNob3J0 Y3V0cy5zaG9ydGN1dF9hY2Nlc3NrZXlfdGl0bGUoJ1N0ZXAgaW50bycsc2VsZi5wcmVmZXJlbmNl cy5idG5fc3RlcF9pbnRvKSkKKyAgICAgICAgLmF0dHIoJ2FjY2Vzc2tleScsIGtleWJvYXJkU2hv cnRjdXRzLnNob3J0Y3V0X2tleShzZWxmLnByZWZlcmVuY2VzLmJ0bl9zdGVwX2ludG8pKTsKKwor ICAgICAgc2VsZi50b29sYmFyVmlldy4kZWwuZmluZCgnI2J0bi1zdGVwLW92ZXInKQorICAgICAg ICAuYXR0cigndGl0bGUnLCBrZXlib2FyZFNob3J0Y3V0cy5zaG9ydGN1dF9hY2Nlc3NrZXlfdGl0 bGUoJ1N0ZXAgb3Zlcicsc2VsZi5wcmVmZXJlbmNlcy5idG5fc3RlcF9vdmVyKSkKKyAgICAgICAg LmF0dHIoJ2FjY2Vzc2tleScsIGtleWJvYXJkU2hvcnRjdXRzLnNob3J0Y3V0X2tleShzZWxmLnBy ZWZlcmVuY2VzLmJ0bl9zdGVwX292ZXIpKTsKKworICAgICAgc2VsZi50b29sYmFyVmlldy4kZWwu ZmluZCgnI2J0bi1jb250aW51ZScpCisgICAgICAgIC5hdHRyKCd0aXRsZScsIGtleWJvYXJkU2hv cnRjdXRzLnNob3J0Y3V0X2FjY2Vzc2tleV90aXRsZSgnQ29udGludWUvU3RhcnQnLHNlbGYucHJl ZmVyZW5jZXMuYnRuX3N0YXJ0KSkKKyAgICAgICAgLmF0dHIoJ2FjY2Vzc2tleScsIGtleWJvYXJk U2hvcnRjdXRzLnNob3J0Y3V0X2tleShzZWxmLnByZWZlcmVuY2VzLmJ0bl9zdGFydCkpOworCisg ICAgICBzZWxmLnRvb2xiYXJWaWV3LiRlbC5maW5kKCcjYnRuLXRvZ2dsZS1icmVha3BvaW50JykK KyAgICAgICAgLmF0dHIoJ3RpdGxlJywga2V5Ym9hcmRTaG9ydGN1dHMuc2hvcnRjdXRfYWNjZXNz a2V5X3RpdGxlKCdUb2dnbGUgYnJlYWtwb2ludCcsc2VsZi5wcmVmZXJlbmNlcy5idG5fdG9nZ2xl X2JyZWFrcG9pbnQpKQorICAgICAgICAuYXR0cignYWNjZXNza2V5Jywga2V5Ym9hcmRTaG9ydGN1 dHMuc2hvcnRjdXRfa2V5KHNlbGYucHJlZmVyZW5jZXMuYnRuX3RvZ2dsZV9icmVha3BvaW50KSk7 CisKKyAgICAgIHNlbGYudG9vbGJhclZpZXcuJGVsLmZpbmQoJyNidG4tY2xlYXItYnJlYWtwb2lu dCcpCisgICAgICAgIC5hdHRyKCd0aXRsZScsIGtleWJvYXJkU2hvcnRjdXRzLnNob3J0Y3V0X2Fj Y2Vzc2tleV90aXRsZSgnQ2xlYXIgYWxsIGJyZWFrcG9pbnRzJyxzZWxmLnByZWZlcmVuY2VzLmJ0 bl9jbGVhcl9icmVha3BvaW50cykpCisgICAgICAgIC5hdHRyKCdhY2Nlc3NrZXknLCBrZXlib2Fy ZFNob3J0Y3V0cy5zaG9ydGN1dF9rZXkoc2VsZi5wcmVmZXJlbmNlcy5idG5fY2xlYXJfYnJlYWtw b2ludHMpKTsKKworICAgICAgc2VsZi50b29sYmFyVmlldy4kZWwuZmluZCgnI2J0bi1zdG9wJykK KyAgICAgICAgLmF0dHIoJ3RpdGxlJywga2V5Ym9hcmRTaG9ydGN1dHMuc2hvcnRjdXRfYWNjZXNz a2V5X3RpdGxlKCdTdG9wJyxzZWxmLnByZWZlcmVuY2VzLmJ0bl9zdG9wKSkKKyAgICAgICAgLmF0 dHIoJ2FjY2Vzc2tleScsIGtleWJvYXJkU2hvcnRjdXRzLnNob3J0Y3V0X2tleShzZWxmLnByZWZl cmVuY2VzLmJ0bl9zdG9wKSk7CisgICAgfSwKICAgICAvLyBSZWdpc3RlciB0aGUgcGFuZWwgd2l0 aCBuZXcgZGVidWdnZXIgZG9ja2VyIGluc3RhbmNlLgogICAgIHJlZ2lzdGVyUGFuZWw6IGZ1bmN0 aW9uKG5hbWUsIHRpdGxlLCB3aWR0aCwgaGVpZ2h0LCBvbkluaXQpIHsKICAgICAgIHZhciBzZWxm ID0gdGhpczsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3RlbXBsYXRl cy9kZWJ1Z2dlci9kaXJlY3QuaHRtbCBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3RlbXBs YXRlcy9kZWJ1Z2dlci9kaXJlY3QuaHRtbAppbmRleCA1OGQ5N2EwNi4uMDg0MTI2OTggMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3RlbXBsYXRlcy9kZWJ1Z2dlci9kaXJl Y3QuaHRtbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9kZWJ1Z2dlci90ZW1wbGF0ZXMvZGVidWdn ZXIvZGlyZWN0Lmh0bWwKQEAgLTM1LDQ3ICszNSw0NyBAQCB0cnkgewogICAgIC5kZWJ1Z2dlci1j b250YWluZXIgLndjTG9hZGluZ0ljb24uZmEtcHVsc2V7LXdlYmtpdC1hbmltYXRpb246IG5vbmU7 fQogPC9zdHlsZT4KIHslIGVuZGlmICV9Ci08ZGl2IGNsYXNzPSJkdWJ1Z2dlcl9tYWluX2NvbnRh aW5lciIgdGFiaW5kZXg9IjAiPgorPGRpdiBjbGFzcz0iZGVidWdnZXJfbWFpbl9jb250YWluZXIi IHRhYmluZGV4PSIwIj4KICAgICA8bmF2IGNsYXNzPSJuYXZiYXItaW52ZXJzZSBuYXZiYXItZml4 ZWQtdG9wIj4KICAgICAgICAgPGRpdiBpZD0iYnRuLXRvb2xiYXIiIGNsYXNzPSJidG4tdG9vbGJh ciBwZy1wcm9wLWJ0bi1ncm91cCBiZy1ncmF5LTIgYm9yZGVyLWdyYXktMyIgcm9sZT0idG9vbGJh ciIgYXJpYS1sYWJlbD0iIj4KICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0bi1ncm91cCIgcm9s ZT0iZ3JvdXAiIGFyaWEtbGFiZWw9IiI+Ci0gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJi dXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgYnRuLXN0ZXAtaW50byIKLSAgICAgICAgICAg ICAgICAgICAgICAgIHRpdGxlPSJ7eyBfKCdTdGVwIGludG8nKSB9fXt7IF8oJyAoYWNjZXNza2V5 K3swfSknLmZvcm1hdChhY2Nlc3NrZXkuc3RlcF9pbnRvKSkgfX0iCi0gICAgICAgICAgICAgICAg ICAgICAgICBhY2Nlc3NrZXk9Int7IGFjY2Vzc2tleS5zdGVwX2ludG8gfX0iCisgICAgICAgICAg ICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgYnRuLXN0 ZXAtaW50byIgaWQ9ImJ0bi1zdGVwLWludG8iCisgICAgICAgICAgICAgICAgICAgICAgICB0aXRs ZT0iIgorICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSIiCiAgICAgICAgICAgICAg ICAgICAgICAgICB0YWJpbmRleD0iMCIgYXV0b2ZvY3VzPSJhdXRvZm9jdXMiPgogICAgICAgICAg ICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtaW5kZW50Ij48L2k+CiAgICAgICAgICAgICAgICAg PC9idXR0b24+Ci0gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJi dG4gYnRuLWRlZmF1bHQgYnRuLXN0ZXAtb3ZlciIKLSAgICAgICAgICAgICAgICAgICAgICAgIHRp dGxlPSJ7eyBfKCdTdGVwIG92ZXInKSB9fXt7IF8oJyAoYWNjZXNza2V5K3swfSknLmZvcm1hdChh Y2Nlc3NrZXkuc3RlcF9vdmVyKSkgfX0iCi0gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3Nr ZXk9Int7IGFjY2Vzc2tleS5zdGVwX292ZXIgfX0iCisgICAgICAgICAgICAgICAgPGJ1dHRvbiB0 eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgYnRuLXN0ZXAtb3ZlciIgaWQ9ImJ0 bi1zdGVwLW92ZXIiCisgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0iIgorICAgICAgICAg ICAgICAgICAgICAgICAgYWNjZXNza2V5PSIiCiAgICAgICAgICAgICAgICAgICAgICAgICB0YWJp bmRleD0iMCI+CiAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1vdXRkZW50Ij48 L2k+CiAgICAgICAgICAgICAgICAgPC9idXR0b24+Ci0gICAgICAgICAgICAgICAgPGJ1dHRvbiB0 eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgYnRuLWNvbnRpbnVlIgotICAgICAg ICAgICAgICAgICAgICAgICAgdGl0bGU9Int7IF8oJ0NvbnRpbnVlL1N0YXJ0JykgfX17eyBfKCcg KGFjY2Vzc2tleSt7MH0pJy5mb3JtYXQoYWNjZXNza2V5LnN0YXJ0KSkgfX0iCi0gICAgICAgICAg ICAgICAgICAgICAgICBhY2Nlc3NrZXk9Int7IGFjY2Vzc2tleS5zdGFydCB9fSIKKyAgICAgICAg ICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCBidG4t Y29udGludWUiIGlkPSJidG4tY29udGludWUiCisgICAgICAgICAgICAgICAgICAgICAgICB0aXRs ZT0iIgorICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSIiCiAgICAgICAgICAgICAg ICAgICAgICAgICB0YWJpbmRleD0iMCI+CiAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJm YSBmYS1wbGF5LWNpcmNsZSI+PC9pPgogICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAg ICAgICAgPC9kaXY+CiAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidG4tZ3JvdXAiIHJvbGU9Imdy b3VwIiBhcmlhLWxhYmVsPSIiPgotICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9u IiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IGJ0bi10b2dnbGUtYnJlYWtwb2ludCIKLSAgICAgICAg ICAgICAgICAgICAgICAgIHRpdGxlPSJ7eyBfKCdUb2dnbGUgYnJlYWtwb2ludCcpIH19e3sgXygn IChhY2Nlc3NrZXkrezB9KScuZm9ybWF0KGFjY2Vzc2tleS50b2dnbGVfYnJlYWtwb2ludCkpIH19 IgotICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSJ7eyBhY2Nlc3NrZXkudG9nZ2xl X2JyZWFrcG9pbnQgfX0iCisgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNs YXNzPSJidG4gYnRuLWRlZmF1bHQgYnRuLXRvZ2dsZS1icmVha3BvaW50IiBpZD0iYnRuLXRvZ2ds ZS1icmVha3BvaW50IgorICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IiIKKyAgICAgICAg ICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0iIgogICAgICAgICAgICAgICAgICAgICAgICAgdGFi aW5kZXg9IjAiPgogICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtY2lyY2xlIj48 L2k+CiAgICAgICAgICAgICAgICAgPC9idXR0b24+Ci0gICAgICAgICAgICAgICAgPGJ1dHRvbiB0 eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgYnRuLWNsZWFyLWJyZWFrcG9pbnQi Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0ie3sgXygnQ2xlYXIgYWxsIGJyZWFrcG9p bnRzJykgfX17eyBfKCcgKGFjY2Vzc2tleSt7MH0pJy5mb3JtYXQoYWNjZXNza2V5LmNsZWFyX2Jy ZWFrcG9pbnRzKSkgfX0iCi0gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NrZXk9Int7IGFj Y2Vzc2tleS5jbGVhcl9icmVha3BvaW50cyB9fSIKKyAgICAgICAgICAgICAgICA8YnV0dG9uIHR5 cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCBidG4tY2xlYXItYnJlYWtwb2ludCIg aWQ9ImJ0bi1jbGVhci1icmVha3BvaW50IgorICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9 IiIKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0iIgogICAgICAgICAgICAgICAg ICAgICAgICAgdGFiaW5kZXg9IjAiPgogICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEg ZmEtYmFuIj48L2k+CiAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICA8L2Rp dj4KICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0bi1ncm91cCIgcm9sZT0iZ3JvdXAiIGFyaWEt bGFiZWw9IiI+Ci0gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJi dG4gYnRuLWRlZmF1bHQgYnRuLXN0b3AiCi0gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3Nr ZXk9Int7IGFjY2Vzc2tleS5zdG9wIH19IgotICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9 Int7IF8oJ1N0b3AnKSB9fXt7IF8oJyAoYWNjZXNza2V5K3swfSknLmZvcm1hdChhY2Nlc3NrZXku c3RvcCkpIH19IgorICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0i YnRuIGJ0bi1kZWZhdWx0IGJ0bi1zdG9wIiBpZD0iYnRuLXN0b3AiCisgICAgICAgICAgICAgICAg ICAgICAgICBhY2Nlc3NrZXk9IiIKKyAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSIiCiAg ICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD0iMCI+CiAgICAgICAgICAgICAgICAgICAg IDxpIGNsYXNzPSJmYSBmYS1zdG9wLWNpcmNsZSI+PC9pPgogICAgICAgICAgICAgICAgIDwvYnV0 dG9uPgo= --00000000000043abec0571bc600c--