Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1iaIjY-0004Zk-2g for pgadmin-hackers@arkaria.postgresql.org; Thu, 28 Nov 2019 12:17:20 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1iaIjW-0001oZ-EW for pgadmin-hackers@arkaria.postgresql.org; Thu, 28 Nov 2019 12:17:18 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1iaIjV-0001oS-GG for pgadmin-hackers@lists.postgresql.org; Thu, 28 Nov 2019 12:17:18 +0000 Received: from mail-oi1-x244.google.com ([2607:f8b0:4864:20::244]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1iaIjS-0008HB-2M for pgadmin-hackers@postgresql.org; Thu, 28 Nov 2019 12:17:16 +0000 Received: by mail-oi1-x244.google.com with SMTP id d22so23139799oic.7 for ; Thu, 28 Nov 2019 04:17:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=uiAAygs/adAeDpMtXn6SpQK5ww0nO/1eRtFrucZgSns=; b=tu8jqWl1Nl4KCguhnu3+eSLeoXVBz96UycdeB51MJZ6opjqUiso5qVs/OrZ8NX1sjW TqcP+FjkPi1I7EA5gwPNv3tN73EA20VjrQ5Z4z1at2z6lPAdPJ+bSJ3X5T846ynRMo0a 9i65j525ePROdweUXmWaF9iT1FpAyjmImfl1vc8T1JT50g2/W3OcIayoci5nglaledcP 0pW+ngMMgZbbteRkXY8LJ92we+G+zNGA3MSbdVA/kfQhwzLvPqMc/MnDJHRZYberkcYC ISkcreNM779+udvsEaFodXIorR4rY0gzHQPvv0EuMmzSJd96vhkBu8dUWarP3t+59YSv Q5WA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=uiAAygs/adAeDpMtXn6SpQK5ww0nO/1eRtFrucZgSns=; b=UAf1rvxb5FRFGCo4YqLhFAxx1nhBoUKGbgv+qMBlWofkvQUJhh/tKT8+Rwoc5uj6I6 +qPgYhzEincDP4Pw9WF3yuDCbCvY7GPGyVPivETgSjPaQtnxJQnM9Udu6e6QCobEXfJ3 jHjWte02qZovHYRTDlVHQuWiq/UMJm37CRY/CajAk61675/IGIeidrqJe0/mr+Xx3AZ6 Um2aiUWdThwDiNVdUCzWTw1m0wFKSH9ltZMjM4Z6cYjF7/xfVwFYhHVBb+LENcQpppb7 ipaJYtgUluR+AhpjOEpC6BGndVYI0NFSvy2yy6BXbN01pXd20dZeN4RR2nWLoZhuREKv CAlA== X-Gm-Message-State: APjAAAU0h22msRU+FukZKnTMcB6UAgwbHzTdg4irPmaXSyuZBP+Lwynu /40llIPMmA5gOW1Wxouh58Y4GVdPGvDgzwiSD6HGwRxeRg57VrmTHXRHQDJj9weYuLGUPVeUgUZ at8aKQFhKTed8zUcrORXRmeMcLtmJf/YISqjgioRpFReAzGf33CMo11tTj8dDumwe1goBI8/6Zb yPDPAAoZYVtmK+0IN8Liw+tktKrR/zVBH+XswK+TrBW2ImYaeIvMQ= X-Google-Smtp-Source: APXvYqyawRgwgELSgPyWt9QS7mT3+bVv36SdJTyjkuXXQ3wdAdrr+05jTrL8sjlwRzmGdC/eUU/t4bLzBmz41meMeFw= X-Received: by 2002:aca:51d1:: with SMTP id f200mr1414310oib.43.1574943433231; Thu, 28 Nov 2019 04:17:13 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Aditya Toshniwal Date: Thu, 28 Nov 2019 17:46:37 +0530 Message-ID: Subject: Re: [pgAdmin][RM4938] Code refactoring of 'Columns' node To: Akshay Joshi Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000e1604505986717db" X-CLOUD-SEC-AV-Info: edb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000e1604505986717db Content-Type: multipart/alternative; boundary="000000000000e1604005986717d9" --000000000000e1604005986717d9 Content-Type: text/plain; charset="UTF-8" Hi Akshay, The patch looks good to me. Test cases are passing. I had found one issue, but it was not related to your patch so I've logged it in redmine. Apart from that, I've changed column.js code slightly to handle min_val and max_val for length and precision correctly. Attached is the updated patch. On Wed, Nov 27, 2019 at 2:25 PM Akshay Joshi wrote: > Hi Hackers, > > Attached is the patch contains following fixes: > > - RM #4938 Code refactoring of 'Columns' node. > - RM #4761 Wrong type when changing timestamp with time zone to > timestamp without a time zone. > - RM #4964 Column length is not being removed through the properties > of any table. > - RM #4965 Interval data type is not displayed in the properties > section of a table>columns. > - Change the label from 'Length and Precision' to 'Length/Precision > and Scale' for columns. > - The maximum length for datatype like interval, timestamp with time > zone, time with time zone, etc.. is 6. Set the max length to 6 instead of > 10. > > Please review and test it from the table and column dialogs. > > -- > *Thanks & Regards* > *Akshay Joshi* > > *Sr. Software Architect* > *EnterpriseDB Software India Private Limited* > *Mobile: +91 976-788-8246* > -- Thanks and Regards, Aditya Toshniwal Sr. Software Engineer | EnterpriseDB India | Pune "Don't Complain about Heat, Plant a TREE" --000000000000e1604005986717d9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi=C2=A0Akshay,

The patch looks good=C2=A0to me. Test = cases are passing.
I had found one issue, but it was not related to your pa= tch so I've logged it in redmine.
Apart=C2=A0from that, I've change= d column.js code slightly to handle min_val and max_val for length and prec= ision correctly.
Attached is the updated patch.


On Wed, Nov 27, 2= 019 at 2:25 PM Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:
Hi Hackers,

Attached=C2=A0is the patch contains following fixes:
    =
  • RM #4938=C2=A0Code refactoring of 'Columns' node.
  • RM #4= 761=C2=A0Wrong type when changing timestamp with time zone to timestamp wit= hout a time zone.
  • RM #4964=C2=A0Column length is not being removed = through the properties of any table.
  • RM #4965=C2=A0Interval data ty= pe is not displayed in the properties section of a table>columns.
  • Change=C2=A0the label from 'Length and Precision' to 'Length/= Precision and Scale' for columns.
  • The maximum length for dataty= pe like interval, timestamp with time zone, time with time zone, etc.. is 6= . Set the max length to 6 instead of 10.
Please review and test it= from the table and column dialogs.

--
Thanks & Regards
Akshay Joshi
Sr. Software Archite= ct
EnterpriseDB Softwar= e India Private Limited
Mobile: +91 976-788-8246


--
Thanks and Regards,
Aditya Toshniwal
Sr. Software Engineer |=C2=A0EnterpriseDB In= dia |=C2=A0Pune
"Don't Complain about Heat, Plant a TREE"
=
--000000000000e1604005986717d9-- --000000000000e1604505986717db Content-Type: application/octet-stream; name="RM_4938_v2.patch" Content-Disposition: attachment; filename="RM_4938_v2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k3iomrzg0 ZGlmZiAtLWdpdCBhL2RvY3MvZW5fVVMvY29sdW1uX2RpYWxvZy5yc3QgYi9kb2NzL2VuX1VTL2Nv bHVtbl9kaWFsb2cucnN0CmluZGV4IDNiNDFjNWJmMC4uMjZjNWE4NzgyIDEwMDY0NAotLS0gYS9k b2NzL2VuX1VTL2NvbHVtbl9kaWFsb2cucnN0CisrKyBiL2RvY3MvZW5fVVMvY29sdW1uX2RpYWxv Zy5yc3QKQEAgLTM0LDcgKzM0LDcgQEAgYXJlIGRpc2FibGVkIGlmIGluYXBwbGljYWJsZS4pCiAg IGNvbHVtbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhlIGRhdGEgdHlwZXMgdGhhdCBhcmUg c3VwcG9ydGVkIGJ5CiAgIFBvc3RncmVTUUwsIHJlZmVyIHRvIENoYXB0ZXIgOCBvZiB0aGUgUG9z dGdyZXMgY29yZSBkb2N1bWVudGF0aW9uLiBUaGlzIGZpZWxkCiAgIGlzIHJlcXVpcmVkLgotKiBV c2UgdGhlICpMZW5ndGgqIGFuZCAqUHJlY2lzaW9uKiBmaWVsZHMgdG8gc3BlY2lmeSB0aGUgbWF4 aW11bSBudW1iZXIgb2YKKyogVXNlIHRoZSAqTGVuZ3RoL1ByZWNpc2lvbiogYW5kICpTY2FsZSog ZmllbGRzIHRvIHNwZWNpZnkgdGhlIG1heGltdW0gbnVtYmVyIG9mCiAgIHNpZ25pZmljYW50IGRp Z2l0cyBpbiBhIG51bWVyaWMgdmFsdWUsIG9yIHRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0 ZXJzIGluCiAgIGEgdGV4dCB2YWx1ZS4KICogVXNlIHRoZSBkcm9wLWRvd24gbGlzdGJveCBuZXh0 IHRvICpDb2xsYXRpb24qIHRvIGFwcGx5IGEgY29sbGF0aW9uIHNldHRpbmcgdG8KZGlmZiAtLWdp dCBhL2RvY3MvZW5fVVMvaW1hZ2VzL2NvbHVtbl9kZWZpbml0aW9uLnBuZyBiL2RvY3MvZW5fVVMv aW1hZ2VzL2NvbHVtbl9kZWZpbml0aW9uLnBuZwppbmRleCBlNzJhYzYxYmUuLmRjNmMwMzEwNiAx MDA2NDQKQmluYXJ5IGZpbGVzIGEvZG9jcy9lbl9VUy9pbWFnZXMvY29sdW1uX2RlZmluaXRpb24u cG5nIGFuZCBiL2RvY3MvZW5fVVMvaW1hZ2VzL2NvbHVtbl9kZWZpbml0aW9uLnBuZyBkaWZmZXIK ZGlmZiAtLWdpdCBhL2RvY3MvZW5fVVMvaW1hZ2VzL3RhYmxlX2NvbHVtbnMucG5nIGIvZG9jcy9l bl9VUy9pbWFnZXMvdGFibGVfY29sdW1ucy5wbmcKb2xkIG1vZGUgMTAwNzU1Cm5ldyBtb2RlIDEw MDY0NAppbmRleCBjNzYwYmVmNjUuLmZjNDdiMGIwMgpCaW5hcnkgZmlsZXMgYS9kb2NzL2VuX1VT L2ltYWdlcy90YWJsZV9jb2x1bW5zLnBuZyBhbmQgYi9kb2NzL2VuX1VTL2ltYWdlcy90YWJsZV9j b2x1bW5zLnBuZyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RvY3MvZW5fVVMvdGFibGVfZGlhbG9nLnJz dCBiL2RvY3MvZW5fVVMvdGFibGVfZGlhbG9nLnJzdAppbmRleCA1MjliMGMxM2QuLjQ1NjQ4YjNj NyAxMDA2NDQKLS0tIGEvZG9jcy9lbl9VUy90YWJsZV9kaWFsb2cucnN0CisrKyBiL2RvY3MvZW5f VVMvdGFibGVfZGlhbG9nLnJzdApAQCAtNTAsOSArNTAsOSBAQCB0aGUgKkNvbHVtbnMqIHRhYmxl OgogICB0aGUgY29sdW1uLiBUaGlzIGNhbiBpbmNsdWRlIGFycmF5IHNwZWNpZmllcnMuIEZvciBt b3JlIGluZm9ybWF0aW9uIG9uIHRoZQogICBkYXRhIHR5cGVzIHN1cHBvcnRlZCBieSBQb3N0Z3Jl U1FMLCByZWZlciB0byBDaGFwdGVyIDggb2YgdGhlIGNvcmUKICAgZG9jdW1lbnRhdGlvbi4KLSog SWYgZW5hYmxlZCwgdXNlIHRoZSAqTGVuZ3RoKiBhbmQgKlByZWNpc2lvbiogZmllbGRzIHRvIHNw ZWNpZnkgdGhlIG1heGltdW0KLSAgbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cyBpbiBhIG51 bWVyaWMgdmFsdWUsIG9yIHRoZSBtYXhpbXVtIG51bWJlciBvZgotICBjaGFyYWN0ZXJzIGluIGEg dGV4dCB2YWx1ZS4KKyogSWYgZW5hYmxlZCwgdXNlIHRoZSAqTGVuZ3RoL1ByZWNpc2lvbiogYW5k ICpTY2FsZSogZmllbGRzIHRvIHNwZWNpZnkgdGhlCisgIG1heGltdW0gbnVtYmVyIG9mIHNpZ25p ZmljYW50IGRpZ2l0cyBpbiBhIG51bWVyaWMgdmFsdWUsIG9yIHRoZSBtYXhpbXVtCisgIG51bWJl ciBvZiBjaGFyYWN0ZXJzIGluIGEgdGV4dCB2YWx1ZS4KICogTW92ZSB0aGUgKk5vdCBOVUxMPyog c3dpdGNoIHRvIHRoZSAqWWVzKiBwb3NpdGlvbiB0byByZXF1aXJlIGEgdmFsdWUgaW4gdGhlCiAg IGNvbHVtbiBmaWVsZC4KICogTW92ZSB0aGUgKlByaW1hcnkga2V5Pyogc3dpdGNoIHRvIHRoZSAq WWVzKiBwb3NpdGlvbiB0byBzcGVjaWZ5IHRoZSBjb2x1bW4gaXMKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9fX2luaXRfXy5weQppbmRleCBmM2M5MWY2ZWEu LmI2ZTBiNWYyMCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL19faW5pdF9fLnB5CisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy9fX2luaXRfXy5weQpAQCAtMjQsNiArMjQsOCBAQCBmcm9tIC51dGlscyBpbXBvcnQgQmFz ZVRhYmxlVmlldwogZnJvbSBwZ2FkbWluLnV0aWxzLnByZWZlcmVuY2VzIGltcG9ydCBQcmVmZXJl bmNlcwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy5zY2hlbWFzLnRhYmxlcy5cCiAgICAgY29uc3RyYWludHMuZm9yZWlnbl9rZXkgaW1wb3J0IHV0 aWxzIGFzIGZrZXlfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2Vy dmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMuXAorICAgIGNvbHVtbnMgaW1wb3J0IHV0aWxz IGFzIGNvbHVtbl91dGlscwogCiAKIGNsYXNzIFRhYmxlTW9kdWxlKFNjaGVtYUNoaWxkTW9kdWxl KToKQEAgLTIxMCwxMCArMjEyLDYgQEAgY2xhc3MgVGFibGVWaWV3KEJhc2VUYWJsZVZpZXcsIERh dGFUeXBlUmVhZGVyLCBWYWN1dW1TZXR0aW5ncyk6CiAgICAgKiBnZXRfdG9hc3RfdGFibGVfdmFj dXVtKGdpZCwgc2lkLCBkaWQsIHNjaWQ9Tm9uZSwgdGlkPU5vbmUpCiAgICAgICAtIEZldGNoIHRo ZSBkZWZhdWx0IHZhbHVlcyBmb3IgdG9hc3QgdGFibGUgYXV0by12YWN1dW0KIAotICAgICogX3Bh cnNlX2Zvcm1hdF9jb2x1bW5zKHNlbGYsIGRhdGEsIG1vZGU9Tm9uZSk6Ci0gICAgICAgLSBUaGlz IGZ1bmN0aW9uIHdpbGwgcGFyc2UgYW5kIHJldHVybiBmb3JtYXR0ZWQgbGlzdCBvZiBjb2x1bW5z Ci0gICAgICAgICBhZGRlZCBieSB1c2VyCi0KICAgICAqIGdldF9pbmRleF9jb25zdHJhaW50X3Nx bChzZWxmLCBkaWQsIHRpZCwgZGF0YSk6CiAgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5l cmF0ZSBtb2RpZmllZCBzcWwgZm9yIGluZGV4IGNvbnN0cmFpbnRzCiAgICAgICAgIChQcmltYXJ5 IEtleSAmIFVuaXF1ZSkKQEAgLTg4Niw3NSArODg0LDYgQEAgY2xhc3MgVGFibGVWaWV3KEJhc2VU YWJsZVZpZXcsIERhdGFUeXBlUmVhZGVyLCBWYWN1dW1TZXR0aW5ncyk6CiAgICAgICAgIGV4Y2Vw dCBFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoZXJyb3Jtc2c9c3RyKGUpKQogCi0gICAgZGVmIF9wYXJzZV9mb3JtYXRfY29sdW1ucyhzZWxm LCBkYXRhLCBtb2RlPU5vbmUpOgotICAgICAgICAiIiIKLSAgICAgICAgZGF0YToKLSAgICAgICAg ICAgIERhdGEgY29taW5nIGZyb20gY2xpZW50IHNpZGUKLQotICAgICAgICBSZXR1cm5zOgotICAg ICAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIHBhcnNlIGFuZCByZXR1cm4gZm9ybWF0dGVkIGxp c3Qgb2YgY29sdW1ucwotICAgICAgICAgICAgYWRkZWQgYnkgdXNlcgotICAgICAgICAiIiIKLSAg ICAgICAgY29sdW1ucyA9IGRhdGFbJ2NvbHVtbnMnXQotICAgICAgICAjICdFRElUJyBtb2RlCi0g ICAgICAgIGlmIG1vZGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBmb3IgYWN0aW9uIGluIFsn YWRkZWQnLCAnY2hhbmdlZCddOgotICAgICAgICAgICAgICAgIGlmIGFjdGlvbiBpbiBjb2x1bW5z OgotICAgICAgICAgICAgICAgICAgICBmaW5hbF9jb2x1bW5zID0gW10KLSAgICAgICAgICAgICAg ICAgICAgZm9yIGMgaW4gY29sdW1uc1thY3Rpb25dOgotICAgICAgICAgICAgICAgICAgICAgICAg aWYgJ2luaGVyaXRlZGZyb20nIG5vdCBpbiBjOgotICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZpbmFsX2NvbHVtbnMuYXBwZW5kKGMpCi0KLSAgICAgICAgICAgICAgICAgICAgZm9yIGMgaW4g ZmluYWxfY29sdW1uczoKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICdhdHRhY2wnIGluIGM6 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgJ2FkZGVkJyBpbiBjWydhdHRhY2wnXToK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY1snYXR0YWNsJ11bJ2FkZGVkJ10gPSBw YXJzZV9wcml2X3RvX2RiKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY1sn YXR0YWNsJ11bJ2FkZGVkJ10sIHNlbGYuY29sdW1uX2FjbAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxpZiAnY2hhbmdlZCcg aW4gY1snYXR0YWNsJ106Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNbJ2F0dGFj bCddWydjaGFuZ2VkJ10gPSBwYXJzZV9wcml2X3RvX2RiKAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY1snYXR0YWNsJ11bJ2NoYW5nZWQnXSwgc2VsZi5jb2x1bW5fYWNsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlbGlmICdkZWxldGVkJyBpbiBjWydhdHRhY2wnXToKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY1snYXR0YWNsJ11bJ2RlbGV0ZWQnXSA9IHBhcnNlX3ByaXZfdG9fZGIoCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjWydhdHRhY2wnXVsnZGVsZXRlZCdd LCBzZWxmLmNvbHVtbl9hY2wKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotICAg ICAgICAgICAgICAgICAgICAgICAgaWYgJ2NsdHlwZScgaW4gYzoKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjIGNoZWNrIHR5cGUgZm9yICdbXScgaW4gaXQKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjWydjbHR5cGUnXSwgY1snaGFzU3FyQnJhY2tldCddID0gXAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9jbHR5cGVfZm9ybWF0dGVyKGNbJ2NsdHlwZSdd KQotCi0gICAgICAgICAgICAgICAgICAgICAgICBjID0gVGFibGVWaWV3LmNvbnZlcnRfbGVuZ3Ro X3ByZWNpc2lvbl90b19zdHJpbmcoYykKLQotICAgICAgICAgICAgICAgICAgICBkYXRhWydjb2x1 bW5zJ11bYWN0aW9uXSA9IGZpbmFsX2NvbHVtbnMKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg ICMgV2UgbmVlZCB0byBleGNsdWRlIGFsbCB0aGUgY29sdW1ucyB3aGljaCBhcmUgaW5oZXJpdGVk IGZyb20gb3RoZXIKLSAgICAgICAgICAgICMgdGFibGVzICdDUkVBVEUnIG1vZGUKLSAgICAgICAg ICAgIGZpbmFsX2NvbHVtbnMgPSBbXQotCi0gICAgICAgICAgICBmb3IgYyBpbiBjb2x1bW5zOgot ICAgICAgICAgICAgICAgIGlmICdpbmhlcml0ZWRmcm9tJyBub3QgaW4gYzoKLSAgICAgICAgICAg ICAgICAgICAgZmluYWxfY29sdW1ucy5hcHBlbmQoYykKLQotICAgICAgICAgICAgIyBOb3cgd2Ug aGF2ZSBhbGwgbGlzIG9mIGNvbHVtbnMgd2hpY2ggd2UgbmVlZAotICAgICAgICAgICAgIyB0byBp bmNsdWRlIGluIG91ciBjcmVhdGUgZGVmaW5pdGlvbiwgTGV0J3MgZm9ybWF0IHRoZW0KLSAgICAg ICAgICAgIGZvciBjIGluIGZpbmFsX2NvbHVtbnM6Ci0gICAgICAgICAgICAgICAgaWYgJ2F0dGFj bCcgaW4gYzoKLSAgICAgICAgICAgICAgICAgICAgY1snYXR0YWNsJ10gPSBwYXJzZV9wcml2X3Rv X2RiKAotICAgICAgICAgICAgICAgICAgICAgICAgY1snYXR0YWNsJ10sIHNlbGYuY29sdW1uX2Fj bAotICAgICAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgICAgICAgICBpZiAnY2x0eXBlJyBp biBjOgotICAgICAgICAgICAgICAgICAgICAjIGNoZWNrIHR5cGUgZm9yICdbXScgaW4gaXQKLSAg ICAgICAgICAgICAgICAgICAgY1snY2x0eXBlJ10sIGNbJ2hhc1NxckJyYWNrZXQnXSA9IFwKLSAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2NsdHlwZV9mb3JtYXR0ZXIoY1snY2x0eXBlJ10p Ci0KLSAgICAgICAgICAgICAgICBjID0gVGFibGVWaWV3LmNvbnZlcnRfbGVuZ3RoX3ByZWNpc2lv bl90b19zdHJpbmcoYykKLQotICAgICAgICAgICAgZGF0YVsnY29sdW1ucyddID0gZmluYWxfY29s dW1ucwotCi0gICAgICAgIHJldHVybiBkYXRhCi0KICAgICBAQmFzZVRhYmxlVmlldy5jaGVja19w cmVjb25kaXRpb24KICAgICBkZWYgY3JlYXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgog ICAgICAgICAiIiIKQEAgLTEwMDAsNyArOTI5LDcgQEAgY2xhc3MgVGFibGVWaWV3KEJhc2VUYWJs ZVZpZXcsIERhdGFUeXBlUmVhZGVyLCBWYWN1dW1TZXR0aW5ncyk6CiAgICAgICAgICAgICBkYXRh WydyZWxhY2wnXSA9IHBhcnNlX3ByaXZfdG9fZGIoZGF0YVsncmVsYWNsJ10sIHNlbGYuYWNsKQog CiAgICAgICAgICMgUGFyc2UgJiBmb3JtYXQgY29sdW1ucwotICAgICAgICBkYXRhID0gc2VsZi5f cGFyc2VfZm9ybWF0X2NvbHVtbnMoZGF0YSkKKyAgICAgICAgZGF0YSA9IGNvbHVtbl91dGlscy5w YXJzZV9mb3JtYXRfY29sdW1ucyhkYXRhKQogICAgICAgICBkYXRhID0gVGFibGVWaWV3LmNoZWNr X2FuZF9jb252ZXJ0X25hbWVfdG9fc3RyaW5nKGRhdGEpCiAKICAgICAgICAgIyAnY29sbF9pbmhl cml0cycgaXMgQXJyYXkgYnV0IGl0IGNvbWVzIGFzIHN0cmluZyBmcm9tIGJyb3dzZXIKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMv X19pbml0X18ucHkKaW5kZXggNDYyZDc5NzhmLi5lZTA4MjgxMGIgMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy9jb2x1bW5zL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL19faW5pdF9f LnB5CkBAIC0yMyw2ICsyMyw4IEBAIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMu c2VydmVycy51dGlscyBpbXBvcnQgcGFyc2VfcHJpdl9mcm9tX2RiLCBcCiBmcm9tIHBnYWRtaW4u YnJvd3Nlci51dGlscyBpbXBvcnQgUEdDaGlsZE5vZGVWaWV3CiBmcm9tIHBnYWRtaW4udXRpbHMu YWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IsIFwK ICAgICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UsIGdvbmUKK2Zyb20gcGdhZG1pbi5i cm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMuXAor ICAgIGNvbHVtbnMgaW1wb3J0IHV0aWxzIGFzIGNvbHVtbl91dGlscwogZnJvbSBwZ2FkbWluLnV0 aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgogZnJvbSBjb25maWcgaW1wb3J0IFBHX0RFRkFV TFRfRFJJVkVSCiBmcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IElTX1BZMgpAQCAtMjE1LDE2ICsy MTcsOSBAQCBjbGFzcyBDb2x1bW5zVmlldyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVy KToKICAgICAgICAgICAgIHNlbGYuYWNsID0gWydhJywgJ3InLCAndycsICd4J10KIAogICAgICAg ICAgICAgIyBXZSBuZWVkIHBhcmVudCdzIG5hbWUgZWcgdGFibGUgbmFtZSBhbmQgc2NoZW1hIG5h bWUKLSAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1w bGF0ZV9wYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn Z2V0X3BhcmVudC5zcWwnXSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlk PWt3YXJnc1sndGlkJ10pCi0gICAgICAgICAgICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhl Y3V0ZV8yZGFycmF5KFNRTCkKLSAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6Ci0gICAgICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yc2V0KQotCi0gICAg ICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKLSAgICAgICAgICAgICAgICBzZWxmLnNj aGVtYSA9IHJvd1snc2NoZW1hJ10KLSAgICAgICAgICAgICAgICBzZWxmLnRhYmxlID0gcm93Wyd0 YWJsZSddCisgICAgICAgICAgICBzY2hlbWEsIHRhYmxlID0gY29sdW1uX3V0aWxzLmdldF9wYXJl bnQoc2VsZi5jb25uLCBrd2FyZ3NbJ3RpZCddKQorICAgICAgICAgICAgc2VsZi5zY2hlbWEgPSBz Y2hlbWEKKyAgICAgICAgICAgIHNlbGYudGFibGUgPSB0YWJsZQogCiAgICAgICAgICAgICByZXR1 cm4gZigqYXJncywgKiprd2FyZ3MpCiAKQEAgLTMxOSwxMzggKzMxNCw2IEBAIGNsYXNzIENvbHVt bnNWaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFkZXIpOgogICAgICAgICAgICAgc3Rh dHVzPTIwMAogICAgICAgICApCiAKLSAgICBkZWYgX2Zvcm1hdHRlcihzZWxmLCBzY2lkLCB0aWQs IGNsaWQsIGRhdGEpOgotICAgICAgICAiIiIKLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgICBz Y2lkOiBzY2hlbWEgb2lkCi0gICAgICAgICAgICAgdGlkOiB0YWJsZSBvaWQKLSAgICAgICAgICAg ICBjbGlkOiBwb3NpdGlvbiBvZiBjb2x1bW4gaW4gdGFibGUKLSAgICAgICAgICAgICBkYXRhOiBk aWN0IG9mIHF1ZXJ5IHJlc3VsdAotCi0gICAgICAgIFJldHVybnM6Ci0gICAgICAgICAgICBJdCB3 aWxsIHJldHVybiBmb3JtYXR0ZWQgb3V0cHV0IG9mIGNvbGxlY3Rpb25zCi0gICAgICAgICIiIgot ICAgICAgICAjIFRvIGNoZWNrIGlmIGNvbHVtbiBpcyBwcmltYXJ5IGtleQotICAgICAgICBpZiAn YXR0bnVtJyBpbiBkYXRhIGFuZCAnaW5ka2V5JyBpbiBkYXRhOgotICAgICAgICAgICAgIyBDdXJy ZW50IGNvbHVtbgotICAgICAgICAgICAgYXR0bnVtID0gc3RyKGRhdGFbJ2F0dG51bSddKQotCi0g ICAgICAgICAgICAjIFNpbmdsZS9MaXN0IG9mIHByaW1hcnkga2V5IGNvbHVtbihzKQotICAgICAg ICAgICAgaW5ka2V5ID0gc3RyKGRhdGFbJ2luZGtleSddKQotCi0gICAgICAgICAgICAjIFdlIHdp bGwgY2hlY2sgaWYgY29sdW1uIGlzIGluIHByaW1hcnkgY29sdW1uKHMpCi0gICAgICAgICAgICBp ZiBhdHRudW0gaW4gaW5ka2V5LnNwbGl0KCIgIik6Ci0gICAgICAgICAgICAgICAgZGF0YVsnaXNf cGsnXSA9IFRydWUKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZGF0YVsnaXNf cGsnXSA9IEZhbHNlCi0KLSAgICAgICAgIyBGaW5kIGxlbmd0aCAmIHByZWNpc2lvbiBvZiBjb2x1 bW4gZGF0YSB0eXBlCi0gICAgICAgIGZ1bGx0eXBlID0gc2VsZi5nZXRfZnVsbF90eXBlKAotICAg ICAgICAgICAgZGF0YVsndHlwbnNwbmFtZSddLCBkYXRhWyd0eXBuYW1lJ10sCi0gICAgICAgICAg ICBkYXRhWydpc2R1cCddLCBkYXRhWydhdHRuZGltcyddLCBkYXRhWydhdHR0eXBtb2QnXQotICAg ICAgICApCi0KLSAgICAgICAgbGVuZ3RoID0gRmFsc2UKLSAgICAgICAgcHJlY2lzaW9uID0gRmFs c2UKLSAgICAgICAgaWYgJ2VsZW1vaWQnIGluIGRhdGE6Ci0gICAgICAgICAgICBsZW5ndGgsIHBy ZWNpc2lvbiwgdHlwZXZhbCA9IFwKLSAgICAgICAgICAgICAgICBzZWxmLmdldF9sZW5ndGhfcHJl Y2lzaW9uKGRhdGFbJ2VsZW1vaWQnXSkKLQotICAgICAgICAjIFNldCBsZW5ndGggYW5kIHByZWNp c2lvbiB0byBOb25lCi0gICAgICAgIGRhdGFbJ2F0dGxlbiddID0gTm9uZQotICAgICAgICBkYXRh WydhdHRwcmVjaXNpb24nXSA9IE5vbmUKLQotICAgICAgICBpbXBvcnQgcmUKLQotICAgICAgICAj IElmIHdlIGhhdmUgbGVuZ3RoICYgcHJlY2lzaW9uIGJvdGgKLSAgICAgICAgaWYgbGVuZ3RoIGFu ZCBwcmVjaXNpb246Ci0gICAgICAgICAgICBtYXRjaE9iaiA9IHJlLnNlYXJjaChyJyhcZCspLChc ZCspJywgZnVsbHR5cGUpCi0gICAgICAgICAgICBpZiBtYXRjaE9iajoKLSAgICAgICAgICAgICAg ICBkYXRhWydhdHRsZW4nXSA9IG1hdGNoT2JqLmdyb3VwKDEpCi0gICAgICAgICAgICAgICAgZGF0 YVsnYXR0cHJlY2lzaW9uJ10gPSBtYXRjaE9iai5ncm91cCgyKQotICAgICAgICBlbGlmIGxlbmd0 aDoKLSAgICAgICAgICAgICMgSWYgd2UgaGF2ZSBsZW5ndGggb25seQotICAgICAgICAgICAgbWF0 Y2hPYmogPSByZS5zZWFyY2gocicoXGQrKScsIGZ1bGx0eXBlKQotICAgICAgICAgICAgaWYgbWF0 Y2hPYmo6Ci0gICAgICAgICAgICAgICAgZGF0YVsnYXR0bGVuJ10gPSBtYXRjaE9iai5ncm91cCgx KQotICAgICAgICAgICAgICAgIGRhdGFbJ2F0dHByZWNpc2lvbiddID0gTm9uZQotCi0gICAgICAg ICMgV2UgbmVlZCB0byBmZXRjaCBpbmhlcml0ZWQgdGFibGVzIGZvciBlYWNoIHRhYmxlCi0gICAg ICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZXRfaW5oZXJpdGVkX3Rh Ymxlcy5zcWwnXSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQ9dGlkKQotICAg ICAgICBzdGF0dXMsIGluaF9yZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKLSAgICAg ICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoZXJyb3Jtc2c9aW5oX3JlcykKLSAgICAgICAgZm9yIHJvdyBpbiBpbmhfcmVzWydyb3dzJ106 Ci0gICAgICAgICAgICBpZiByb3dbJ2F0dHJuYW1lJ10gPT0gZGF0YVsnbmFtZSddOgotICAgICAg ICAgICAgICAgIGRhdGFbJ2lzX2luaGVyaXRlZCddID0gVHJ1ZQotICAgICAgICAgICAgICAgIGRh dGFbJ3RibHNfaW5oZXJpdGVkJ10gPSByb3dbJ2luaHJlbG5hbWUnXQotCi0gICAgICAgICMgV2Ug bmVlZCB0byBmb3JtYXQgdmFyaWFibGVzIGFjY29yZGluZyB0byBjbGllbnQganMgY29sbGVjdGlv bgotICAgICAgICBpZiAnYXR0b3B0aW9ucycgaW4gZGF0YSBhbmQgZGF0YVsnYXR0b3B0aW9ucydd IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc3Bjb3B0aW9ucyA9IFtdCi0gICAgICAgICAgICBm b3Igc3Bjb3B0aW9uIGluIGRhdGFbJ2F0dG9wdGlvbnMnXToKLSAgICAgICAgICAgICAgICBrLCB2 ID0gc3Bjb3B0aW9uLnNwbGl0KCc9JykKLSAgICAgICAgICAgICAgICBzcGNvcHRpb25zLmFwcGVu ZCh7J25hbWUnOiBrLCAndmFsdWUnOiB2fSkKLQotICAgICAgICAgICAgZGF0YVsnYXR0b3B0aW9u cyddID0gc3Bjb3B0aW9ucwotCi0gICAgICAgICMgTmVlZCB0byBmb3JtYXQgc2VjdXJpdHkgbGFi ZWxzIGFjY29yZGluZyB0byBjbGllbnQganMgY29sbGVjdGlvbgotICAgICAgICBpZiAnc2VjbGFi ZWxzJyBpbiBkYXRhIGFuZCBkYXRhWydzZWNsYWJlbHMnXSBpcyBub3QgTm9uZToKLSAgICAgICAg ICAgIHNlY2xhYmVscyA9IFtdCi0gICAgICAgICAgICBmb3Igc2VjbGJscyBpbiBkYXRhWydzZWNs YWJlbHMnXToKLSAgICAgICAgICAgICAgICBrLCB2ID0gc2VjbGJscy5zcGxpdCgnPScpCi0gICAg ICAgICAgICAgICAgc2VjbGFiZWxzLmFwcGVuZCh7J3Byb3ZpZGVyJzogaywgJ2xhYmVsJzogdn0p Ci0KLSAgICAgICAgICAgIGRhdGFbJ3NlY2xhYmVscyddID0gc2VjbGFiZWxzCi0KLSAgICAgICAg IyBXZSBuZWVkIHRvIHBhcnNlICYgY29udmVydCBBQ0wgY29taW5nIGZyb20gZGF0YWJhc2UgdG8g anNvbiBmb3JtYXQKLSAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxm LnRlbXBsYXRlX3BhdGgsICdhY2wuc3FsJ10pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGlkPXRpZCwgY2xpZD1jbGlkKQotICAgICAgICBzdGF0dXMsIGFjbCA9IHNlbGYuY29ubi5l eGVjdXRlX2RpY3QoU1FMKQotCi0gICAgICAgIGlmIG5vdCBzdGF0dXM6Ci0gICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPWFjbCkKLQotICAgICAgICAjIFdl IHdpbGwgc2V0IGdldCBwcml2aWxlZ2VzIGZyb20gYWNsIHNxbCBzbyB3ZSBkb24ndCBuZWVkCi0g ICAgICAgICMgaXQgZnJvbSBwcm9wZXJ0aWVzIHNxbAotICAgICAgICBkYXRhWydhdHRhY2wnXSA9 IFtdCi0KLSAgICAgICAgZm9yIHJvdyBpbiBhY2xbJ3Jvd3MnXToKLSAgICAgICAgICAgIHByaXYg PSBwYXJzZV9wcml2X2Zyb21fZGIocm93KQotICAgICAgICAgICAgZGF0YS5zZXRkZWZhdWx0KHJv d1snZGVmdHlwZSddLCBbXSkuYXBwZW5kKHByaXYpCi0KLSAgICAgICAgIyB3ZSBhcmUgcmVjZWl2 aW5nIHJlcXVlc3Qgd2hlbiBpbiBlZGl0IG1vZGUKLSAgICAgICAgIyB3ZSB3aWxsIHNlbmQgZmls dGVyZWQgdHlwZXMgcmVsYXRlZCB0byBjdXJyZW50IHR5cGUKLSAgICAgICAgdHlwZV9pZCA9IGRh dGFbJ2F0dHR5cGlkJ10KLQotICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4o W3NlbGYudGVtcGxhdGVfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnaXNfcmVmZXJlbmNlZC5zcWwnXSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0aWQ9dGlkLCBjbGlkPWNsaWQpCi0KLSAgICAgICAgc3RhdHVzLCBpc19yZWZlcmVuY2UgPSBz ZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQotCi0gICAgICAgIGVkaXRfdHlwZXNfbGlzdCA9 IGxpc3QoKQotICAgICAgICAjIFdlIHdpbGwgbmVlZCBwcmVzZW50IHR5cGUgaW4gZWRpdCBtb2Rl Ci0gICAgICAgIGVkaXRfdHlwZXNfbGlzdC5hcHBlbmQoZGF0YVsnY2x0eXBlJ10pCi0KLSAgICAg ICAgaWYgaW50KGlzX3JlZmVyZW5jZSkgPT0gMDoKLSAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90 ZW1wbGF0ZSgKLSAgICAgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAn ZWRpdF9tb2RlX3R5cGVzLnNxbCddKSwKLSAgICAgICAgICAgICAgICB0eXBlX2lkPXR5cGVfaWQK LSAgICAgICAgICAgICkKLSAgICAgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVj dXRlXzJkYXJyYXkoU1FMKQotCi0gICAgICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToK LSAgICAgICAgICAgICAgICBlZGl0X3R5cGVzX2xpc3QuYXBwZW5kKHJvd1sndHlwbmFtZSddKQot Ci0gICAgICAgIGRhdGFbJ2VkaXRfdHlwZXMnXSA9IGVkaXRfdHlwZXNfbGlzdAotCi0gICAgICAg IGRhdGFbJ2NsdHlwZSddID0gRGF0YVR5cGVSZWFkZXIucGFyc2VfdHlwZV9uYW1lKGRhdGFbJ2Ns dHlwZSddKQotCi0gICAgICAgIHJldHVybiBkYXRhCi0KICAgICBAY2hlY2tfcHJlY29uZGl0aW9u CiAgICAgZGVmIHByb3BlcnRpZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCBjbGlk KToKICAgICAgICAgIiIiCkBAIC00ODUsNjEgKzM0OCwxMyBAQCBjbGFzcyBDb2x1bW5zVmlldyhQ R0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyKToKIAogICAgICAgICAjIE1ha2luZyBjb3B5 IG9mIG91dHB1dCBmb3IgZnV0dXJlIHVzZQogICAgICAgICBkYXRhID0gZGljdChyZXNbJ3Jvd3Mn XVswXSkKLSAgICAgICAgZGF0YSA9IHNlbGYuX2Zvcm1hdHRlcihzY2lkLCB0aWQsIGNsaWQsIGRh dGEpCisgICAgICAgIGRhdGEgPSBjb2x1bW5fdXRpbHMuY29sdW1uX2Zvcm1hdHRlcihzZWxmLmNv bm4sIHRpZCwgY2xpZCwgZGF0YSkKIAogICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKICAg ICAgICAgICAgIHJlc3BvbnNlPWRhdGEsCiAgICAgICAgICAgICBzdGF0dXM9MjAwCiAgICAgICAg ICkKIAotICAgIGRlZiBfY2x0eXBlX2Zvcm1hdHRlcihzZWxmLCB0eXBlKToKLSAgICAgICAgIiIi Ci0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGRhdGE6IFR5cGUgc3RyaW5nCi0KLSAgICAg ICAgUmV0dXJuczoKLSAgICAgICAgICAgIFdlIG5lZWQgdG8gcmVtb3ZlIFtdIGZyb20gdHlwZSBh bmQgYXBwZW5kIGl0Ci0gICAgICAgICAgICBhZnRlciBsZW5ndGgvcHJlY2lzaW9uIHNvIHdlIHdp bGwgc2V0IGZsYWcgZm9yCi0gICAgICAgICAgICBzcWwgdGVtcGxhdGUKLSAgICAgICAgIiIiCi0K LSAgICAgICAgaWYgJ1tdJyBpbiB0eXBlOgotICAgICAgICAgICAgdHlwZSA9IHR5cGUucmVwbGFj ZSgnW10nLCAnJykKLSAgICAgICAgICAgIHNlbGYuaGFzU3FyQnJhY2tldCA9IFRydWUKLSAgICAg ICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuaGFzU3FyQnJhY2tldCA9IEZhbHNlCi0KLSAgICAg ICAgcmV0dXJuIHR5cGUKLQotICAgIEBzdGF0aWNtZXRob2QKLSAgICBkZWYgY29udmVydF9sZW5n dGhfcHJlY2lzaW9uX3RvX3N0cmluZyhkYXRhKToKLSAgICAgICAgIiIiCi0gICAgICAgIFRoaXMg ZnVuY3Rpb24gaXMgdXNlZCB0byBjb252ZXJ0IGxlbmd0aCAmIHByZWNpc2lvbiB0byBzdHJpbmcK LSAgICAgICAgdG8gaGFuZGxlIGNhc2UgbGlrZSB3aGVuIHVzZXIgZ2l2ZXMgMCBhcyBsZW5ndGgK LQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgZGF0YTogRGF0YSBmcm9tIGNsaWVudAotCi0g ICAgICAgIFJldHVybnM6Ci0gICAgICAgICAgICBDb252ZXJ0ZWQgZGF0YQotICAgICAgICAiIiIK LQotICAgICAgICAjIFdlIG5lZWQgdG8gaGFuZGxlIHRoZSBiZWxvdyBjYXNlIGJlY2F1c2UganF1 ZXJ5IGhhcyBjaGFuZ2VkCi0gICAgICAgICMgdW5kZWZpbmVkL251bGwgdmFsdWVzIHRvIGVtcHR5 IHN0cmluZ3MKLSAgICAgICAgIyBodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L2pxdWVyeS9jb21t aXQvMzZkMmQ5YWU5MzdmNjI2ZDk4MzE5ZWQ4NTA5MDVlOGQxY2JmZDA3OAotICAgICAgICBpZiAn YXR0bGVuJyBpbiBkYXRhIGFuZCBkYXRhWydhdHRsZW4nXSA9PSAnJzoKLSAgICAgICAgICAgIGRh dGFbJ2F0dGxlbiddID0gTm9uZQotICAgICAgICBlbGlmICdhdHRsZW4nIGluIGRhdGEgYW5kIGRh dGFbJ2F0dGxlbiddIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgZGF0YVsnYXR0bGVuJ10gPSBz dHIoZGF0YVsnYXR0bGVuJ10pCi0KLSAgICAgICAgaWYgJ2F0dHByZWNpc2lvbicgaW4gZGF0YSBh bmQgZGF0YVsnYXR0cHJlY2lzaW9uJ10gPT0gJyc6Ci0gICAgICAgICAgICBkYXRhWydhdHRwcmVj aXNpb24nXSA9IE5vbmUKLSAgICAgICAgZWxpZiAnYXR0cHJlY2lzaW9uJyBpbiBkYXRhIGFuZCBk YXRhWydhdHRwcmVjaXNpb24nXSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGRhdGFbJ2F0dHBy ZWNpc2lvbiddID0gc3RyKGRhdGFbJ2F0dHByZWNpc2lvbiddKQotCi0gICAgICAgIHJldHVybiBk YXRhCi0KICAgICBAY2hlY2tfcHJlY29uZGl0aW9uCiAgICAgZGVmIGNyZWF0ZShzZWxmLCBnaWQs IHNpZCwgZGlkLCBzY2lkLCB0aWQpOgogICAgICAgICAiIiIKQEAgLTU5MCw5ICs0MDUsOSBAQCBj bGFzcyBDb2x1bW5zVmlldyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyKToKICAgICAg ICAgZGF0YVsndGFibGUnXSA9IHNlbGYudGFibGUKIAogICAgICAgICAjIGNoZWNrIHR5cGUgZm9y ICdbXScgaW4gaXQKLSAgICAgICAgZGF0YVsnY2x0eXBlJ10gPSBzZWxmLl9jbHR5cGVfZm9ybWF0 dGVyKGRhdGFbJ2NsdHlwZSddKQotICAgICAgICBkYXRhWydoYXNTcXJCcmFja2V0J10gPSBzZWxm Lmhhc1NxckJyYWNrZXQKLSAgICAgICAgZGF0YSA9IHNlbGYuY29udmVydF9sZW5ndGhfcHJlY2lz aW9uX3RvX3N0cmluZyhkYXRhKQorICAgICAgICBkYXRhWydjbHR5cGUnXSwgZGF0YVsnaGFzU3Fy QnJhY2tldCddID0gXAorICAgICAgICAgICAgY29sdW1uX3V0aWxzLnR5cGVfZm9ybWF0dGVyKGRh dGFbJ2NsdHlwZSddKQorICAgICAgICBkYXRhID0gY29sdW1uX3V0aWxzLmNvbnZlcnRfbGVuZ3Ro X3ByZWNpc2lvbl90b19zdHJpbmcoZGF0YSkKIAogICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxh dGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnY3JlYXRlLnNxbCddKSwKQEAgLTcxMSw4ICs1MjYsOCBAQCBjbGFz cyBDb2x1bW5zVmlldyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyKToKIAogICAgICAg ICAjIGNoZWNrIHR5cGUgZm9yICdbXScgaW4gaXQKICAgICAgICAgaWYgJ2NsdHlwZScgaW4gZGF0 YToKLSAgICAgICAgICAgIGRhdGFbJ2NsdHlwZSddID0gc2VsZi5fY2x0eXBlX2Zvcm1hdHRlcihk YXRhWydjbHR5cGUnXSkKLSAgICAgICAgICAgIGRhdGFbJ2hhc1NxckJyYWNrZXQnXSA9IHNlbGYu aGFzU3FyQnJhY2tldAorICAgICAgICAgICAgZGF0YVsnY2x0eXBlJ10sIGRhdGFbJ2hhc1NxckJy YWNrZXQnXSA9IFwKKyAgICAgICAgICAgICAgICBjb2x1bW5fdXRpbHMudHlwZV9mb3JtYXR0ZXIo ZGF0YVsnY2x0eXBlJ10pCiAKICAgICAgICAgU1FMLCBuYW1lID0gc2VsZi5nZXRfc3FsKHNjaWQs IHRpZCwgY2xpZCwgZGF0YSkKICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoU1FMLCAoc3RyLCB1 bmljb2RlKSk6CkBAIC03NTQsOCArNTY5LDggQEAgY2xhc3MgQ29sdW1uc1ZpZXcoUEdDaGlsZE5v ZGVWaWV3LCBEYXRhVHlwZVJlYWRlcik6CiAKICAgICAgICAgIyBjaGVjayB0eXBlIGZvciAnW10n IGluIGl0CiAgICAgICAgIGlmICdjbHR5cGUnIGluIGRhdGE6Ci0gICAgICAgICAgICBkYXRhWydj bHR5cGUnXSA9IHNlbGYuX2NsdHlwZV9mb3JtYXR0ZXIoZGF0YVsnY2x0eXBlJ10pCi0gICAgICAg ICAgICBkYXRhWydoYXNTcXJCcmFja2V0J10gPSBzZWxmLmhhc1NxckJyYWNrZXQKKyAgICAgICAg ICAgIGRhdGFbJ2NsdHlwZSddLCBkYXRhWydoYXNTcXJCcmFja2V0J10gPSBcCisgICAgICAgICAg ICAgICAgY29sdW1uX3V0aWxzLnR5cGVfZm9ybWF0dGVyKGRhdGFbJ2NsdHlwZSddKQogCiAgICAg ICAgIHRyeToKICAgICAgICAgICAgIFNRTCwgbmFtZSA9IHNlbGYuZ2V0X3NxbChzY2lkLCB0aWQs IGNsaWQsIGRhdGEpCkBAIC03NzYsNyArNTkxLDcgQEAgY2xhc3MgQ29sdW1uc1ZpZXcoUEdDaGls ZE5vZGVWaWV3LCBEYXRhVHlwZVJlYWRlcik6CiAgICAgICAgICIiIgogICAgICAgICBUaGlzIGZ1 bmN0aW9uIHdpbGwgZ2VucmF0ZSBzcWwgZnJvbSBtb2RlbCBkYXRhCiAgICAgICAgICIiIgotICAg ICAgICBkYXRhID0gc2VsZi5jb252ZXJ0X2xlbmd0aF9wcmVjaXNpb25fdG9fc3RyaW5nKGRhdGEp CisgICAgICAgIGRhdGEgPSBjb2x1bW5fdXRpbHMuY29udmVydF9sZW5ndGhfcHJlY2lzaW9uX3Rv X3N0cmluZyhkYXRhKQogCiAgICAgICAgIGlmIGNsaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAg ICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoCkBAIC03OTQsMTIgKzYwOSwxMyBAQCBjbGFzcyBDb2x1 bW5zVmlldyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyKToKICAgICAgICAgICAgICAg ICApCiAgICAgICAgICAgICBvbGRfZGF0YSA9IGRpY3QocmVzWydyb3dzJ11bMF0pCiAgICAgICAg ICAgICAjIFdlIHdpbGwgYWRkIHRhYmxlICYgc2NoZW1hIGFzIHdlbGwKLSAgICAgICAgICAgIG9s ZF9kYXRhID0gc2VsZi5fZm9ybWF0dGVyKHNjaWQsIHRpZCwgY2xpZCwgb2xkX2RhdGEpCisgICAg ICAgICAgICBvbGRfZGF0YSA9IGNvbHVtbl91dGlscy5jb2x1bW5fZm9ybWF0dGVyKAorICAgICAg ICAgICAgICAgIHNlbGYuY29ubiwgdGlkLCBjbGlkLCBvbGRfZGF0YSkKIAogICAgICAgICAgICAg IyBjaGVjayB0eXBlIGZvciAnW10nIGluIGl0CiAgICAgICAgICAgICBpZiAnY2x0eXBlJyBpbiBv bGRfZGF0YToKLSAgICAgICAgICAgICAgICBvbGRfZGF0YVsnY2x0eXBlJ10gPSBzZWxmLl9jbHR5 cGVfZm9ybWF0dGVyKG9sZF9kYXRhWydjbHR5cGUnXSkKLSAgICAgICAgICAgICAgICBvbGRfZGF0 YVsnaGFzU3FyQnJhY2tldCddID0gc2VsZi5oYXNTcXJCcmFja2V0CisgICAgICAgICAgICAgICAg b2xkX2RhdGFbJ2NsdHlwZSddLCBvbGRfZGF0YVsnaGFzU3FyQnJhY2tldCddID0gXAorICAgICAg ICAgICAgICAgICAgICBjb2x1bW5fdXRpbHMudHlwZV9mb3JtYXR0ZXIob2xkX2RhdGFbJ2NsdHlw ZSddKQogCiAgICAgICAgICAgICAgICAgaWYgJ2NsdHlwZScgaW4gZGF0YSBhbmQgZGF0YVsnY2x0 eXBlJ10gIT0gb2xkX2RhdGFbJ2NsdHlwZSddOgogICAgICAgICAgICAgICAgICAgICBsZW5ndGgs IHByZWNpc2lvbiwgdHlwZXZhbCA9IFwKQEAgLTg5NywxMSArNzEzLDExIEBAIGNsYXNzIENvbHVt bnNWaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFkZXIpOgogICAgICAgICAgICAgZGF0 YVsndGFibGUnXSA9IHNlbGYudGFibGUKICAgICAgICAgICAgICMgY2hlY2sgdHlwZSBmb3IgJ1td JyBpbiBpdAogICAgICAgICAgICAgaWYgJ2NsdHlwZScgaW4gZGF0YToKLSAgICAgICAgICAgICAg ICBkYXRhWydjbHR5cGUnXSA9IHNlbGYuX2NsdHlwZV9mb3JtYXR0ZXIoZGF0YVsnY2x0eXBlJ10p Ci0gICAgICAgICAgICAgICAgZGF0YVsnaGFzU3FyQnJhY2tldCddID0gc2VsZi5oYXNTcXJCcmFj a2V0CisgICAgICAgICAgICAgICAgZGF0YVsnY2x0eXBlJ10sIGRhdGFbJ2hhc1NxckJyYWNrZXQn XSA9IFwKKyAgICAgICAgICAgICAgICAgICAgY29sdW1uX3V0aWxzLnR5cGVfZm9ybWF0dGVyKGRh dGFbJ2NsdHlwZSddKQogCiAgICAgICAgICAgICAjIFdlIHdpbGwgYWRkIHRhYmxlICYgc2NoZW1h IGFzIHdlbGwKLSAgICAgICAgICAgIGRhdGEgPSBzZWxmLl9mb3JtYXR0ZXIoc2NpZCwgdGlkLCBj bGlkLCBkYXRhKQorICAgICAgICAgICAgZGF0YSA9IGNvbHVtbl91dGlscy5jb2x1bW5fZm9ybWF0 dGVyKHNlbGYuY29ubiwgdGlkLCBjbGlkLCBkYXRhKQogCiAgICAgICAgICAgICBTUUwsIG5hbWUg PSBzZWxmLmdldF9zcWwoc2NpZCwgdGlkLCBOb25lLCBkYXRhLCBpc19zcWw9VHJ1ZSkKICAgICAg ICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKFNRTCwgKHN0ciwgdW5pY29kZSkpOgpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL2NvbHVtbnMvc3RhdGljL2pzL2NvbHVtbi5qcyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1 bW5zL3N0YXRpYy9qcy9jb2x1bW4uanMKaW5kZXggYTA0NWRjNzgyLi42MjA4NjU4M2QgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3N0YXRpYy9qcy9jb2x1bW4uanMKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL2NvbHVtbnMvc3RhdGljL2pzL2NvbHVtbi5qcwpAQCAtMTc2LDggKzE3NiwxMCBAQCBkZWZp bmUoJ3BnYWRtaW4ubm9kZS5jb2x1bW4nLCBbCiAgICAgICAgICAgYXR0YWNsOiB1bmRlZmluZWQs CiAgICAgICAgICAgZGVzY3JpcHRpb246IHVuZGVmaW5lZCwKICAgICAgICAgICBwYXJlbnRfdGJs OiB1bmRlZmluZWQsCi0gICAgICAgICAgbWluX3ZhbDogdW5kZWZpbmVkLAotICAgICAgICAgIG1h eF92YWw6IHVuZGVmaW5lZCwKKyAgICAgICAgICBtaW5fdmFsX2F0dGxlbjogdW5kZWZpbmVkLAor ICAgICAgICAgIG1pbl92YWxfYXR0cHJlY2lzaW9uOiB1bmRlZmluZWQsCisgICAgICAgICAgbWF4 X3ZhbF9hdHRsZW46IHVuZGVmaW5lZCwKKyAgICAgICAgICBtYXhfdmFsX2F0dHByZWNpc2lvbjog dW5kZWZpbmVkLAogICAgICAgICAgIGVkaXRfdHlwZXM6IHVuZGVmaW5lZCwKICAgICAgICAgICBp c19wcmltYXJ5X2tleTogZmFsc2UsCiAgICAgICAgICAgaW5oZXJpdGVkZnJvbTogdW5kZWZpbmVk LApAQCAtMzQ4LDcgKzM1MCw3IEBAIGRlZmluZSgncGdhZG1pbi5ub2RlLmNvbHVtbicsIFsKICAg ICAgICAgICAgIHJldHVybiBfLmlzVW5kZWZpbmVkKG0udG9wLm5vZGVfaW5mb1sndGFibGUnXSB8 fCBtLnRvcC5ub2RlX2luZm9bJ3ZpZXcnXSB8fCBtLnRvcC5ub2RlX2luZm9bJ212aWV3J10pOwog ICAgICAgICAgIH0sCiAgICAgICAgIH0sewotICAgICAgICAgIGlkOiAnYXR0bGVuJywgbGFiZWw6 IGdldHRleHQoJ0xlbmd0aCcpLCBjZWxsOiBJbnRlZ2VyRGVwQ2VsbCwKKyAgICAgICAgICBpZDog J2F0dGxlbicsIGxhYmVsOiBnZXR0ZXh0KCdMZW5ndGgvUHJlY2lzaW9uJyksIGNlbGw6IEludGVn ZXJEZXBDZWxsLAogICAgICAgICAgIGRlcHM6IFsnY2x0eXBlJ10sIHR5cGU6ICdpbnQnLCBncm91 cDogZ2V0dGV4dCgnRGVmaW5pdGlvbicpLCBjZWxsSGVhZGVyQ2xhc3Nlczond2lkdGhfcGVyY2Vu dF8yMCcsCiAgICAgICAgICAgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIHZh ciBvZl90eXBlID0gbS5nZXQoJ2NsdHlwZScpLApAQCAtMzU3LDggKzM1OSw4IEBAIGRlZmluZSgn cGdhZG1pbi5ub2RlLmNvbHVtbicsIFsKICAgICAgICAgICAgICAgaWYgKCBvZl90eXBlID09IG8u dmFsdWUgKSB7CiAgICAgICAgICAgICAgICAgaWYoby5sZW5ndGgpCiAgICAgICAgICAgICAgICAg ewotICAgICAgICAgICAgICAgICAgbS5zZXQoJ21pbl92YWwnLCBvLm1pbl92YWwsIHtzaWxlbnQ6 IHRydWV9KTsKLSAgICAgICAgICAgICAgICAgIG0uc2V0KCdtYXhfdmFsJywgby5tYXhfdmFsLCB7 c2lsZW50OiB0cnVlfSk7CisgICAgICAgICAgICAgICAgICBtLnNldCgnbWluX3ZhbF9hdHRsZW4n LCBvLm1pbl92YWwsIHtzaWxlbnQ6IHRydWV9KTsKKyAgICAgICAgICAgICAgICAgIG0uc2V0KCdt YXhfdmFsX2F0dGxlbicsIG8ubWF4X3ZhbCwge3NpbGVudDogdHJ1ZX0pOwogICAgICAgICAgICAg ICAgICAgZmxhZyA9IGZhbHNlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQpA QCAtMzg4LDggKzM5MCw4IEBAIGRlZmluZSgncGdhZG1pbi5ub2RlLmNvbHVtbicsIFsKICAgICAg ICAgICAgIF8uZWFjaChtLmRhdGF0eXBlcywgZnVuY3Rpb24obykgewogICAgICAgICAgICAgICBp ZiAoIG9mX3R5cGUgPT0gby52YWx1ZSApIHsKICAgICAgICAgICAgICAgICBpZihvLmxlbmd0aCkg ewotICAgICAgICAgICAgICAgICAgbS5zZXQoJ21pbl92YWwnLCBvLm1pbl92YWwsIHtzaWxlbnQ6 IHRydWV9KTsKLSAgICAgICAgICAgICAgICAgIG0uc2V0KCdtYXhfdmFsJywgby5tYXhfdmFsLCB7 c2lsZW50OiB0cnVlfSk7CisgICAgICAgICAgICAgICAgICBtLnNldCgnbWluX3ZhbF9hdHRsZW4n LCBvLm1pbl92YWwsIHtzaWxlbnQ6IHRydWV9KTsKKyAgICAgICAgICAgICAgICAgIG0uc2V0KCdt YXhfdmFsX2F0dGxlbicsIG8ubWF4X3ZhbCwge3NpbGVudDogdHJ1ZX0pOwogICAgICAgICAgICAg ICAgICAgZmxhZyA9IHRydWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CkBA IC00MDQsNyArNDA2LDcgQEAgZGVmaW5lKCdwZ2FkbWluLm5vZGUuY29sdW1uJywgWwogICAgICAg ICAgICAgcmV0dXJuIGZsYWc7CiAgICAgICAgICAgfSwKICAgICAgICAgfSx7Ci0gICAgICAgICAg aWQ6ICdhdHRwcmVjaXNpb24nLCBsYWJlbDogZ2V0dGV4dCgnUHJlY2lzaW9uJyksIGNlbGw6IElu dGVnZXJEZXBDZWxsLAorICAgICAgICAgIGlkOiAnYXR0cHJlY2lzaW9uJywgbGFiZWw6IGdldHRl eHQoJ1NjYWxlJyksIGNlbGw6IEludGVnZXJEZXBDZWxsLAogICAgICAgICAgIGRlcHM6IFsnY2x0 eXBlJ10sIHR5cGU6ICdpbnQnLCBncm91cDogZ2V0dGV4dCgnRGVmaW5pdGlvbicpLCBjZWxsSGVh ZGVyQ2xhc3Nlczond2lkdGhfcGVyY2VudF8yMCcsCiAgICAgICAgICAgZGlzYWJsZWQ6IGZ1bmN0 aW9uKG0pIHsKICAgICAgICAgICAgIHZhciBvZl90eXBlID0gbS5nZXQoJ2NsdHlwZScpLApAQCAt NDEyLDggKzQxNCw4IEBAIGRlZmluZSgncGdhZG1pbi5ub2RlLmNvbHVtbicsIFsKICAgICAgICAg ICAgIF8uZWFjaChtLmRhdGF0eXBlcywgZnVuY3Rpb24obykgewogICAgICAgICAgICAgICBpZiAo IG9mX3R5cGUgPT0gby52YWx1ZSApIHsKICAgICAgICAgICAgICAgICBpZihvLnByZWNpc2lvbikg ewotICAgICAgICAgICAgICAgICAgbS5zZXQoJ21pbl92YWwnLCAwLCB7c2lsZW50OiB0cnVlfSk7 Ci0gICAgICAgICAgICAgICAgICBtLnNldCgnbWF4X3ZhbCcsIG8ubWF4X3ZhbCwge3NpbGVudDog dHJ1ZX0pOworICAgICAgICAgICAgICAgICAgbS5zZXQoJ21pbl92YWxfYXR0cHJlY2lzaW9uJywg MCwge3NpbGVudDogdHJ1ZX0pOworICAgICAgICAgICAgICAgICAgbS5zZXQoJ21heF92YWxfYXR0 cHJlY2lzaW9uJywgby5tYXhfdmFsLCB7c2lsZW50OiB0cnVlfSk7CiAgICAgICAgICAgICAgICAg ICBmbGFnID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CkBAIC00 NDIsOCArNDQ0LDggQEAgZGVmaW5lKCdwZ2FkbWluLm5vZGUuY29sdW1uJywgWwogICAgICAgICAg ICAgXy5lYWNoKG0uZGF0YXR5cGVzLCBmdW5jdGlvbihvKSB7CiAgICAgICAgICAgICAgIGlmICgg b2ZfdHlwZSA9PSBvLnZhbHVlICkgewogICAgICAgICAgICAgICAgIGlmKG8ucHJlY2lzaW9uKSB7 Ci0gICAgICAgICAgICAgICAgICBtLnNldCgnbWluX3ZhbCcsIDAsIHtzaWxlbnQ6IHRydWV9KTsK LSAgICAgICAgICAgICAgICAgIG0uc2V0KCdtYXhfdmFsJywgby5tYXhfdmFsLCB7c2lsZW50OiB0 cnVlfSk7CisgICAgICAgICAgICAgICAgICBtLnNldCgnbWluX3ZhbF9hdHRwcmVjaXNpb24nLCAw LCB7c2lsZW50OiB0cnVlfSk7CisgICAgICAgICAgICAgICAgICBtLnNldCgnbWF4X3ZhbF9hdHRw cmVjaXNpb24nLCBvLm1heF92YWwsIHtzaWxlbnQ6IHRydWV9KTsKICAgICAgICAgICAgICAgICAg IGZsYWcgPSB0cnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQpAQCAtNzIy LDEwICs3MjQsMTAgQEAgZGVmaW5lKCdwZ2FkbWluLm5vZGUuY29sdW1uJywgWwogICAgICAgICAg ICAgICAgICYmICFfLmlzTnVsbCh0aGlzLmdldCgnYXR0bGVuJykpCiAgICAgICAgICAgICAgICAg JiYgdGhpcy5nZXQoJ2F0dGxlbicpICE9PSAnJykgewogICAgICAgICAgICAgLy8gVmFsaWRhdGlv biBmb3IgTGVuZ3RoIGZpZWxkCi0gICAgICAgICAgICBpZiAodGhpcy5nZXQoJ2F0dGxlbicpIDwg dGhpcy5nZXQoJ21pbl92YWwnKSkKLSAgICAgICAgICAgICAgbXNnID0gZ2V0dGV4dCgnTGVuZ3Ro IHNob3VsZCBub3QgYmUgbGVzcyB0aGFuOiAnKSArIHRoaXMuZ2V0KCdtaW5fdmFsJyk7Ci0gICAg ICAgICAgICBpZiAodGhpcy5nZXQoJ2F0dGxlbicpID4gdGhpcy5nZXQoJ21heF92YWwnKSkKLSAg ICAgICAgICAgICAgbXNnID0gZ2V0dGV4dCgnTGVuZ3RoIHNob3VsZCBub3QgYmUgZ3JlYXRlciB0 aGFuOiAnKSArIHRoaXMuZ2V0KCdtYXhfdmFsJyk7CisgICAgICAgICAgICBpZiAodGhpcy5nZXQo J2F0dGxlbicpIDwgdGhpcy5nZXQoJ21pbl92YWxfYXR0bGVuJykpCisgICAgICAgICAgICAgIG1z ZyA9IGdldHRleHQoJ0xlbmd0aC9QcmVjaXNpb24gc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW46ICcp ICsgdGhpcy5nZXQoJ21pbl92YWxfYXR0bGVuJyk7CisgICAgICAgICAgICBpZiAodGhpcy5nZXQo J2F0dGxlbicpID4gdGhpcy5nZXQoJ21heF92YWxfYXR0bGVuJykpCisgICAgICAgICAgICAgIG1z ZyA9IGdldHRleHQoJ0xlbmd0aC9QcmVjaXNpb24gc2hvdWxkIG5vdCBiZSBncmVhdGVyIHRoYW46 ICcpICsgdGhpcy5nZXQoJ21heF92YWxfYXR0bGVuJyk7CiAgICAgICAgICAgICAvLyBJZiB3ZSBo YXZlIGFueSBlcnJvciBzZXQgdGhlbiB0aHJvdyBpdCB0byB1c2VyCiAgICAgICAgICAgICBpZiht c2cpIHsKICAgICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNldCgnYXR0bGVuJywgbXNnKTsK QEAgLTczOCwxMCArNzQwLDEwIEBAIGRlZmluZSgncGdhZG1pbi5ub2RlLmNvbHVtbicsIFsKICAg ICAgICAgICAgICAgICAmJiAhXy5pc051bGwodGhpcy5nZXQoJ2F0dHByZWNpc2lvbicpKQogICAg ICAgICAgICAgICAgICYmIHRoaXMuZ2V0KCdhdHRwcmVjaXNpb24nKSAhPT0gJycpIHsKICAgICAg ICAgICAgIC8vIFZhbGlkYXRpb24gZm9yIHByZWNpc2lvbiBmaWVsZAotICAgICAgICAgICAgaWYg KHRoaXMuZ2V0KCdhdHRwcmVjaXNpb24nKSA8IHRoaXMuZ2V0KCdtaW5fdmFsJykpCi0gICAgICAg ICAgICAgIG1zZyA9IGdldHRleHQoJ1ByZWNpc2lvbiBzaG91bGQgbm90IGJlIGxlc3MgdGhhbjog JykgKyB0aGlzLmdldCgnbWluX3ZhbCcpOwotICAgICAgICAgICAgaWYgKHRoaXMuZ2V0KCdhdHRw cmVjaXNpb24nKSA+IHRoaXMuZ2V0KCdtYXhfdmFsJykpCi0gICAgICAgICAgICAgIG1zZyA9IGdl dHRleHQoJ1ByZWNpc2lvbiBzaG91bGQgbm90IGJlIGdyZWF0ZXIgdGhhbjogJykgKyB0aGlzLmdl dCgnbWF4X3ZhbCcpOworICAgICAgICAgICAgaWYgKHRoaXMuZ2V0KCdhdHRwcmVjaXNpb24nKSA8 IHRoaXMuZ2V0KCdtaW5fdmFsX2F0dHByZWNpc2lvbicpKQorICAgICAgICAgICAgICBtc2cgPSBn ZXR0ZXh0KCdTY2FsZSBzaG91bGQgbm90IGJlIGxlc3MgdGhhbjogJykgKyB0aGlzLmdldCgnbWlu X3ZhbF9hdHRwcmVjaXNpb24nKTsKKyAgICAgICAgICAgIGlmICh0aGlzLmdldCgnYXR0cHJlY2lz aW9uJykgPiB0aGlzLmdldCgnbWF4X3ZhbF9hdHRwcmVjaXNpb24nKSkKKyAgICAgICAgICAgICAg bXNnID0gZ2V0dGV4dCgnU2NhbGUgc2hvdWxkIG5vdCBiZSBncmVhdGVyIHRoYW46ICcpICsgdGhp cy5nZXQoJ21heF92YWxfYXR0cHJlY2lzaW9uJyk7CiAgICAgICAgICAgICAvLyBJZiB3ZSBoYXZl IGFueSBlcnJvciBzZXQgdGhlbiB0aHJvdyBpdCB0byB1c2VyCiAgICAgICAgICAgICBpZihtc2cp IHsKICAgICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNldCgnYXR0cHJlY2lzaW9uJywgbXNn KTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3Rlc3RzLzEwX3BsdXMvYWx0ZXJfY29s dW1uX2NoYXIuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVzdHMvMTBfcGx1cy9hbHRlcl9jb2x1 bW5fY2hhci5zcWwKaW5kZXggYzViOWIyM2M4Li5kNWNiNjVlOGYgMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy9jb2x1bW5zL3Rlc3RzLzEwX3BsdXMvYWx0ZXJfY29sdW1uX2NoYXIuc3FsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9jb2x1bW5zL3Rlc3RzLzEwX3BsdXMvYWx0ZXJfY29sdW1uX2NoYXIuc3FsCkBAIC0z LDcgKzMsNyBAQAogLS0gQUxURVIgVEFCTEUgdGVzdHNjaGVtYS4idGFibGVfMl8kJXt9W10oKSYq XiFAIiInYFwvIyIgRFJPUCBDT0xVTU4gIm5ld19jb2xfMl8kJXt9W10oKSYqXiFAIiInYFwvIyI7 CiAKIEFMVEVSIFRBQkxFIHRlc3RzY2hlbWEuInRhYmxlXzJfJCV7fVtdKCkmKl4hQCIiJ2BcLyMi Ci0gICAgQUREIENPTFVNTiAibmV3X2NvbF8yXyQle31bXSgpJipeIUAiIidgXC8jIiBjaGFyYWN0 ZXIoNTApIENPTExBVEUgcGdfY2F0YWxvZy4iQyI7CisgICAgQUREIENPTFVNTiAibmV3X2NvbF8y XyQle31bXSgpJipeIUAiIidgXC8jIiBjaGFyYWN0ZXIoMSkgQ09MTEFURSBwZ19jYXRhbG9nLiJD IjsKIAogQ09NTUVOVCBPTiBDT0xVTU4gdGVzdHNjaGVtYS4idGFibGVfMl8kJXt9W10oKSYqXiFA IiInYFwvIyIuIm5ld19jb2xfMl8kJXt9W10oKSYqXiFAIiInYFwvIyIKICAgICBJUyAnQ29tbWVu dCBmb3IgYWx0ZXInOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVzdHMvMTBfcGx1 cy9hbHRlcl9jb2x1bW5fbnVtZXJpYy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZXN0cy8xMF9w bHVzL2FsdGVyX2NvbHVtbl9udW1lcmljLnNxbAppbmRleCBlZWNlYjllNjEuLjk1ODE3YWQ2MiAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVzdHMvMTBfcGx1cy9hbHRlcl9jb2x1bW5f bnVtZXJpYy5zcWwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVzdHMvMTBfcGx1cy9hbHRlcl9j b2x1bW5fbnVtZXJpYy5zcWwKQEAgLTMsNyArMyw3IEBACiAtLSBBTFRFUiBUQUJMRSB0ZXN0c2No ZW1hLiJ0YWJsZV8yXyQle31bXSgpJipeIUAiIidgXC8jIiBEUk9QIENPTFVNTiAibmV3X2NvbF80 XyQle31bXSgpJipeIUAiIidgXC8jIjsKIAogQUxURVIgVEFCTEUgdGVzdHNjaGVtYS4idGFibGVf Ml8kJXt9W10oKSYqXiFAIiInYFwvIyIKLSAgICBBREQgQ09MVU1OICJuZXdfY29sXzRfJCV7fVtd KCkmKl4hQCIiJ2BcLyMiIG51bWVyaWMoMTUsMCkgTk9UIE5VTEw7CisgICAgQUREIENPTFVNTiAi bmV3X2NvbF80XyQle31bXSgpJipeIUAiIidgXC8jIiBudW1lcmljKDE1LDYpIE5PVCBOVUxMOwog CiBDT01NRU5UIE9OIENPTFVNTiB0ZXN0c2NoZW1hLiJ0YWJsZV8yXyQle31bXSgpJipeIUAiIidg XC8jIi4ibmV3X2NvbF80XyQle31bXSgpJipeIUAiIidgXC8jIgogICAgIElTICdDb21tZW50IGZv ciBhbHRlcic7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZXN0cy8xMF9wbHVzL2Fs dGVyX2NvbHVtbl9yZW1vdmVfbGVuZ3RoLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3Rlc3RzLzEw X3BsdXMvYWx0ZXJfY29sdW1uX3JlbW92ZV9sZW5ndGguc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMC4uNTUwNmYyOTc0Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2NvbHVtbnMvdGVzdHMvMTBfcGx1cy9hbHRlcl9jb2x1bW5fcmVtb3ZlX2xlbmd0aC5zcWwKQEAg LTAsMCArMSwxNSBAQAorLS0gQ29sdW1uOiB0ZXN0c2NoZW1hLiJ0YWJsZV8yXyQle31bXSgpJipe IUAiIidgXC8jIi4ibmV3X2NvbF80XyQle31bXSgpJipeIUAiIidgXC8jIgorCistLSBBTFRFUiBU QUJMRSB0ZXN0c2NoZW1hLiJ0YWJsZV8yXyQle31bXSgpJipeIUAiIidgXC8jIiBEUk9QIENPTFVN TiAibmV3X2NvbF80XyQle31bXSgpJipeIUAiIidgXC8jIjsKKworQUxURVIgVEFCTEUgdGVzdHNj aGVtYS4idGFibGVfMl8kJXt9W10oKSYqXiFAIiInYFwvIyIKKyAgICBBREQgQ09MVU1OICJuZXdf Y29sXzRfJCV7fVtdKCkmKl4hQCIiJ2BcLyMiIG51bWVyaWMgTk9UIE5VTEw7CisKK0NPTU1FTlQg T04gQ09MVU1OIHRlc3RzY2hlbWEuInRhYmxlXzJfJCV7fVtdKCkmKl4hQCIiJ2BcLyMiLiJuZXdf Y29sXzRfJCV7fVtdKCkmKl4hQCIiJ2BcLyMiCisgICAgSVMgJ0NvbW1lbnQgZm9yIGFsdGVyJzsK KworQUxURVIgVEFCTEUgdGVzdHNjaGVtYS4idGFibGVfMl8kJXt9W10oKSYqXiFAIiInYFwvIyIK KyAgICBBTFRFUiBDT0xVTU4gIm5ld19jb2xfNF8kJXt9W10oKSYqXiFAIiInYFwvIyIKKyAgICBT RVQgKG5fZGlzdGluY3Q9MSk7CisKK0dSQU5UIEFMTCgibmV3X2NvbF80XyQle31bXSgpJipeIUAi IidgXC8jIikgT04gdGVzdHNjaGVtYS4idGFibGVfMl8kJXt9W10oKSYqXiFAIiInYFwvIyIgVE8g UFVCTElDOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVzdHMvMTBfcGx1cy90ZXN0 Lmpzb24gYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZXN0cy8xMF9wbHVzL3Rlc3QuanNvbgppbmRleCAw OTg0NGVjOTcuLmNmZWRkY2EwNCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVzdHMv MTBfcGx1cy90ZXN0Lmpzb24KKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVzdHMvMTBfcGx1cy90 ZXN0Lmpzb24KQEAgLTE5NSwxMiArMTk1LDIzIEBACiAgICAgICAgICJuYW1lIjogIm5ld19jb2xf NF8kJXt9W10oKSYqXiFAXCInYFxcLyMiLAogICAgICAgICAiYXR0bnVtIjogNCwKICAgICAgICAg ImF0dGxlbiI6IjE1IiwKLSAgICAgICAgImF0dHByZWNpc2lvbiI6IjAiLAorICAgICAgICAiYXR0 cHJlY2lzaW9uIjoiNiIsCiAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJDb21tZW50IGZvciBhbHRl ciIsCiAgICAgICAgICJhdHRhY2wiOnsiYWRkZWQiOlt7ImdyYW50ZWUiOiJQVUJMSUMiLCJncmFu dG9yIjoicG9zdGdyZXMiLCJwcml2aWxlZ2VzIjpbeyJwcml2aWxlZ2VfdHlwZSI6ImEiLCJwcml2 aWxlZ2UiOnRydWUsIndpdGhfZ3JhbnQiOmZhbHNlfSx7InByaXZpbGVnZV90eXBlIjoiciIsInBy aXZpbGVnZSI6dHJ1ZSwid2l0aF9ncmFudCI6ZmFsc2V9LHsicHJpdmlsZWdlX3R5cGUiOiJ3Iiwi cHJpdmlsZWdlIjp0cnVlLCJ3aXRoX2dyYW50IjpmYWxzZX0seyJwcml2aWxlZ2VfdHlwZSI6Ingi LCJwcml2aWxlZ2UiOnRydWUsIndpdGhfZ3JhbnQiOmZhbHNlfV19XX0KICAgICAgIH0sCiAgICAg ICAiZXhwZWN0ZWRfc3FsX2ZpbGUiOiAiYWx0ZXJfY29sdW1uX251bWVyaWMuc3FsIgogICAgIH0s CisgICAgeworICAgICAgInR5cGUiOiAiYWx0ZXIiLAorICAgICAgIm5hbWUiOiAiQWx0ZXIgQ29s dW1uIChSZW1vdmUgTGVuZ3RoKSIsCisgICAgICAiZW5kcG9pbnQiOiAiTk9ERS1jb2x1bW4ub2Jq X2lkIiwKKyAgICAgICJzcWxfZW5kcG9pbnQiOiAiTk9ERS1jb2x1bW4uc3FsX2lkIiwKKyAgICAg ICJkYXRhIjogeworICAgICAgICAiYXR0bnVtIjogMywKKyAgICAgICAgImF0dGxlbiI6IiIKKyAg ICAgIH0sCisgICAgICAiZXhwZWN0ZWRfc3FsX2ZpbGUiOiAiYWx0ZXJfY29sdW1uX3JlbW92ZV9s ZW5ndGguc3FsIgorICAgIH0sCiAgICAgewogICAgICAgInR5cGUiOiAiZGVsZXRlIiwKICAgICAg ICJuYW1lIjogIkRyb3AgQ29sdW1uIChOdW1lcmljIHR5cGUgd2l0aCBMZW5ndGggUHJlY2lzaW9u ICYgVmFyaWFibGVzKSIsCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZXN0cy8xMl9w bHVzL2FsdGVyX2NvbHVtbl9jaGFyLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3Rlc3RzLzEyX3Bs dXMvYWx0ZXJfY29sdW1uX2NoYXIuc3FsCmluZGV4IDFmZTJiN2E4OC4uYjQyNzQyNzJjIDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZXN0cy8xMl9wbHVzL2FsdGVyX2NvbHVtbl9jaGFy LnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZXN0cy8xMl9wbHVzL2FsdGVyX2NvbHVtbl9j aGFyLnNxbApAQCAtMyw3ICszLDcgQEAKIC0tIEFMVEVSIFRBQkxFIHRlc3RzY2hlbWEuInRhYmxl XzNfJCV7fVtdKCkmKl4hQCIiJ2BcLyMiIERST1AgQ09MVU1OICJuZXdfY29sXzJfJCV7fVtdKCkm Kl4hQCIiJ2BcLyMiOwogCiBBTFRFUiBUQUJMRSB0ZXN0c2NoZW1hLiJ0YWJsZV8zXyQle31bXSgp JipeIUAiIidgXC8jIgotICAgIEFERCBDT0xVTU4gIm5ld19jb2xfMl8kJXt9W10oKSYqXiFAIiIn YFwvIyIgY2hhcmFjdGVyKDUwKSBDT0xMQVRFIHBnX2NhdGFsb2cuIkMiOworICAgIEFERCBDT0xV TU4gIm5ld19jb2xfMl8kJXt9W10oKSYqXiFAIiInYFwvIyIgY2hhcmFjdGVyKDEpIENPTExBVEUg cGdfY2F0YWxvZy4iQyI7CiAKIENPTU1FTlQgT04gQ09MVU1OIHRlc3RzY2hlbWEuInRhYmxlXzNf JCV7fVtdKCkmKl4hQCIiJ2BcLyMiLiJuZXdfY29sXzJfJCV7fVtdKCkmKl4hQCIiJ2BcLyMiCiAg ICAgSVMgJ0NvbW1lbnQgZm9yIGFsdGVyJzsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5z L3Rlc3RzLzEyX3BsdXMvYWx0ZXJfY29sdW1uX251bWVyaWMuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVt bnMvdGVzdHMvMTJfcGx1cy9hbHRlcl9jb2x1bW5fbnVtZXJpYy5zcWwKaW5kZXggNWZmZjBmM2M5 Li5jMzRiZmM3ZmMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3Rlc3RzLzEyX3BsdXMv YWx0ZXJfY29sdW1uX251bWVyaWMuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3Rlc3RzLzEy X3BsdXMvYWx0ZXJfY29sdW1uX251bWVyaWMuc3FsCkBAIC0zLDcgKzMsNyBAQAogLS0gQUxURVIg VEFCTEUgdGVzdHNjaGVtYS4idGFibGVfM18kJXt9W10oKSYqXiFAIiInYFwvIyIgRFJPUCBDT0xV TU4gIm5ld19jb2xfNV8kJXt9W10oKSYqXiFAIiInYFwvIyI7CiAKIEFMVEVSIFRBQkxFIHRlc3Rz Y2hlbWEuInRhYmxlXzNfJCV7fVtdKCkmKl4hQCIiJ2BcLyMiCi0gICAgQUREIENPTFVNTiAibmV3 X2NvbF81XyQle31bXSgpJipeIUAiIidgXC8jIiBudW1lcmljKDE1LDApIE5PVCBOVUxMOworICAg IEFERCBDT0xVTU4gIm5ld19jb2xfNV8kJXt9W10oKSYqXiFAIiInYFwvIyIgbnVtZXJpYygxNSw2 KSBOT1QgTlVMTDsKIAogQ09NTUVOVCBPTiBDT0xVTU4gdGVzdHNjaGVtYS4idGFibGVfM18kJXt9 W10oKSYqXiFAIiInYFwvIyIuIm5ld19jb2xfNV8kJXt9W10oKSYqXiFAIiInYFwvIyIKICAgICBJ UyAnQ29tbWVudCBmb3IgYWx0ZXInOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVz dHMvMTJfcGx1cy9hbHRlcl9jb2x1bW5fcmVtb3ZlX2xlbmd0aC5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29s dW1ucy90ZXN0cy8xMl9wbHVzL2FsdGVyX2NvbHVtbl9yZW1vdmVfbGVuZ3RoLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjY4NmViZjNjMwotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy9jb2x1bW5zL3Rlc3RzLzEyX3BsdXMvYWx0ZXJfY29sdW1uX3JlbW92ZV9s ZW5ndGguc3FsCkBAIC0wLDAgKzEsMTUgQEAKKy0tIENvbHVtbjogdGVzdHNjaGVtYS4idGFibGVf M18kJXt9W10oKSYqXiFAIiInYFwvIyIuIm5ld19jb2xfNV8kJXt9W10oKSYqXiFAIiInYFwvIyIK KworLS0gQUxURVIgVEFCTEUgdGVzdHNjaGVtYS4idGFibGVfM18kJXt9W10oKSYqXiFAIiInYFwv IyIgRFJPUCBDT0xVTU4gIm5ld19jb2xfNV8kJXt9W10oKSYqXiFAIiInYFwvIyI7CisKK0FMVEVS IFRBQkxFIHRlc3RzY2hlbWEuInRhYmxlXzNfJCV7fVtdKCkmKl4hQCIiJ2BcLyMiCisgICAgQURE IENPTFVNTiAibmV3X2NvbF81XyQle31bXSgpJipeIUAiIidgXC8jIiBudW1lcmljIE5PVCBOVUxM OworCitDT01NRU5UIE9OIENPTFVNTiB0ZXN0c2NoZW1hLiJ0YWJsZV8zXyQle31bXSgpJipeIUAi IidgXC8jIi4ibmV3X2NvbF81XyQle31bXSgpJipeIUAiIidgXC8jIgorICAgIElTICdDb21tZW50 IGZvciBhbHRlcic7CisKK0FMVEVSIFRBQkxFIHRlc3RzY2hlbWEuInRhYmxlXzNfJCV7fVtdKCkm Kl4hQCIiJ2BcLyMiCisgICAgQUxURVIgQ09MVU1OICJuZXdfY29sXzVfJCV7fVtdKCkmKl4hQCIi J2BcLyMiCisgICAgU0VUIChuX2Rpc3RpbmN0PTEpOworCitHUkFOVCBBTEwoIm5ld19jb2xfNV8k JXt9W10oKSYqXiFAIiInYFwvIyIpIE9OIHRlc3RzY2hlbWEuInRhYmxlXzNfJCV7fVtdKCkmKl4h QCIiJ2BcLyMiIFRPIFBVQkxJQzsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3Rlc3Rz LzEyX3BsdXMvdGVzdC5qc29uIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVzdHMvMTJfcGx1cy90ZXN0 Lmpzb24KaW5kZXggMWQ1MTVjYTRjLi5iZDBmMjE3ZWMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9j b2x1bW5zL3Rlc3RzLzEyX3BsdXMvdGVzdC5qc29uCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3Rl c3RzLzEyX3BsdXMvdGVzdC5qc29uCkBAIC0yMzgsMTIgKzIzOCwyMyBAQAogICAgICAgICAibmFt ZSI6ICJuZXdfY29sXzVfJCV7fVtdKCkmKl4hQFwiJ2BcXC8jIiwKICAgICAgICAgImF0dG51bSI6 IDUsCiAgICAgICAgICJhdHRsZW4iOiIxNSIsCi0gICAgICAgICJhdHRwcmVjaXNpb24iOiIwIiwK KyAgICAgICAgImF0dHByZWNpc2lvbiI6IjYiLAogICAgICAgICAiZGVzY3JpcHRpb24iOiAiQ29t bWVudCBmb3IgYWx0ZXIiLAogICAgICAgICAiYXR0YWNsIjp7ImFkZGVkIjpbeyJncmFudGVlIjoi UFVCTElDIiwiZ3JhbnRvciI6InBvc3RncmVzIiwicHJpdmlsZWdlcyI6W3sicHJpdmlsZWdlX3R5 cGUiOiJhIiwicHJpdmlsZWdlIjp0cnVlLCJ3aXRoX2dyYW50IjpmYWxzZX0seyJwcml2aWxlZ2Vf dHlwZSI6InIiLCJwcml2aWxlZ2UiOnRydWUsIndpdGhfZ3JhbnQiOmZhbHNlfSx7InByaXZpbGVn ZV90eXBlIjoidyIsInByaXZpbGVnZSI6dHJ1ZSwid2l0aF9ncmFudCI6ZmFsc2V9LHsicHJpdmls ZWdlX3R5cGUiOiJ4IiwicHJpdmlsZWdlIjp0cnVlLCJ3aXRoX2dyYW50IjpmYWxzZX1dfV19CiAg ICAgICB9LAogICAgICAgImV4cGVjdGVkX3NxbF9maWxlIjogImFsdGVyX2NvbHVtbl9udW1lcmlj LnNxbCIKICAgICB9LAorICAgIHsKKyAgICAgICJ0eXBlIjogImFsdGVyIiwKKyAgICAgICJuYW1l IjogIkFsdGVyIENvbHVtbiAoUmVtb3ZlIExlbmd0aCkiLAorICAgICAgImVuZHBvaW50IjogIk5P REUtY29sdW1uLm9ial9pZCIsCisgICAgICAic3FsX2VuZHBvaW50IjogIk5PREUtY29sdW1uLnNx bF9pZCIsCisgICAgICAiZGF0YSI6IHsKKyAgICAgICAgImF0dG51bSI6IDMsCisgICAgICAgICJh dHRsZW4iOiIiCisgICAgICB9LAorICAgICAgImV4cGVjdGVkX3NxbF9maWxlIjogImFsdGVyX2Nv bHVtbl9yZW1vdmVfbGVuZ3RoLnNxbCIKKyAgICB9LAogICAgIHsKICAgICAgICJ0eXBlIjogImRl bGV0ZSIsCiAgICAgICAibmFtZSI6ICJEcm9wIENvbHVtbiAoTnVtZXJpYyB0eXBlIHdpdGggTGVu Z3RoIFByZWNpc2lvbiAmIFZhcmlhYmxlcykiLApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVt bnMvdGVzdHMvZGVmYXVsdC9hbHRlcl9jb2x1bW5fY2hhci5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1u cy90ZXN0cy9kZWZhdWx0L2FsdGVyX2NvbHVtbl9jaGFyLnNxbAppbmRleCA1Y2QxNDViYjMuLjk2 MjYzNGNkYyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVzdHMvZGVmYXVsdC9hbHRl cl9jb2x1bW5fY2hhci5zcWwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVzdHMvZGVmYXVsdC9h bHRlcl9jb2x1bW5fY2hhci5zcWwKQEAgLTMsNyArMyw3IEBACiAtLSBBTFRFUiBUQUJMRSB0ZXN0 c2NoZW1hLiJ0YWJsZV8xXyQle31bXSgpJipeIUAiIidgXC8jIiBEUk9QIENPTFVNTiAibmV3X2Nv bF8yXyQle31bXSgpJipeIUAiIidgXC8jIjsKIAogQUxURVIgVEFCTEUgdGVzdHNjaGVtYS4idGFi bGVfMV8kJXt9W10oKSYqXiFAIiInYFwvIyIKLSAgICBBREQgQ09MVU1OICJuZXdfY29sXzJfJCV7 fVtdKCkmKl4hQCIiJ2BcLyMiIGNoYXJhY3Rlcig1MCkgQ09MTEFURSBwZ19jYXRhbG9nLiJDIjsK KyAgICBBREQgQ09MVU1OICJuZXdfY29sXzJfJCV7fVtdKCkmKl4hQCIiJ2BcLyMiIGNoYXJhY3Rl cigxKSBDT0xMQVRFIHBnX2NhdGFsb2cuIkMiOwogCiBDT01NRU5UIE9OIENPTFVNTiB0ZXN0c2No ZW1hLiJ0YWJsZV8xXyQle31bXSgpJipeIUAiIidgXC8jIi4ibmV3X2NvbF8yXyQle31bXSgpJipe IUAiIidgXC8jIgogICAgIElTICdDb21tZW50IGZvciBhbHRlcic7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvY29sdW1ucy90ZXN0cy9kZWZhdWx0L2FsdGVyX2NvbHVtbl9udW1lcmljLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9jb2x1bW5zL3Rlc3RzL2RlZmF1bHQvYWx0ZXJfY29sdW1uX251bWVyaWMuc3FsCmlu ZGV4IDVlNWViM2UxOC4uZjExNTQ1OWQ0IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90 ZXN0cy9kZWZhdWx0L2FsdGVyX2NvbHVtbl9udW1lcmljLnNxbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29s dW1ucy90ZXN0cy9kZWZhdWx0L2FsdGVyX2NvbHVtbl9udW1lcmljLnNxbApAQCAtMyw3ICszLDcg QEAKIC0tIEFMVEVSIFRBQkxFIHRlc3RzY2hlbWEuInRhYmxlXzFfJCV7fVtdKCkmKl4hQCIiJ2Bc LyMiIERST1AgQ09MVU1OICJuZXdfY29sXzNfJCV7fVtdKCkmKl4hQCIiJ2BcLyMiOwogCiBBTFRF UiBUQUJMRSB0ZXN0c2NoZW1hLiJ0YWJsZV8xXyQle31bXSgpJipeIUAiIidgXC8jIgotICAgIEFE RCBDT0xVTU4gIm5ld19jb2xfM18kJXt9W10oKSYqXiFAIiInYFwvIyIgbnVtZXJpYygxNSwwKSBO T1QgTlVMTDsKKyAgICBBREQgQ09MVU1OICJuZXdfY29sXzNfJCV7fVtdKCkmKl4hQCIiJ2BcLyMi IG51bWVyaWMoMTUsNikgTk9UIE5VTEw7CiAKIENPTU1FTlQgT04gQ09MVU1OIHRlc3RzY2hlbWEu InRhYmxlXzFfJCV7fVtdKCkmKl4hQCIiJ2BcLyMiLiJuZXdfY29sXzNfJCV7fVtdKCkmKl4hQCIi J2BcLyMiCiAgICAgSVMgJ0NvbW1lbnQgZm9yIGFsdGVyJzsKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy9jb2x1bW5zL3Rlc3RzL2RlZmF1bHQvYWx0ZXJfY29sdW1uX3JlbW92ZV9sZW5ndGguc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbHVtbnMvdGVzdHMvZGVmYXVsdC9hbHRlcl9jb2x1bW5fcmVtb3ZlX2xlbmd0 aC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi43YTc0NDViNjYKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZXN0cy9kZWZhdWx0L2FsdGVyX2Nv bHVtbl9yZW1vdmVfbGVuZ3RoLnNxbApAQCAtMCwwICsxLDE1IEBACistLSBDb2x1bW46IHRlc3Rz Y2hlbWEuInRhYmxlXzFfJCV7fVtdKCkmKl4hQCIiJ2BcLyMiLiJuZXdfY29sXzNfJCV7fVtdKCkm Kl4hQCIiJ2BcLyMiCisKKy0tIEFMVEVSIFRBQkxFIHRlc3RzY2hlbWEuInRhYmxlXzFfJCV7fVtd KCkmKl4hQCIiJ2BcLyMiIERST1AgQ09MVU1OICJuZXdfY29sXzNfJCV7fVtdKCkmKl4hQCIiJ2Bc LyMiOworCitBTFRFUiBUQUJMRSB0ZXN0c2NoZW1hLiJ0YWJsZV8xXyQle31bXSgpJipeIUAiIidg XC8jIgorICAgIEFERCBDT0xVTU4gIm5ld19jb2xfM18kJXt9W10oKSYqXiFAIiInYFwvIyIgbnVt ZXJpYyBOT1QgTlVMTDsKKworQ09NTUVOVCBPTiBDT0xVTU4gdGVzdHNjaGVtYS4idGFibGVfMV8k JXt9W10oKSYqXiFAIiInYFwvIyIuIm5ld19jb2xfM18kJXt9W10oKSYqXiFAIiInYFwvIyIKKyAg ICBJUyAnQ29tbWVudCBmb3IgYWx0ZXInOworCitBTFRFUiBUQUJMRSB0ZXN0c2NoZW1hLiJ0YWJs ZV8xXyQle31bXSgpJipeIUAiIidgXC8jIgorICAgIEFMVEVSIENPTFVNTiAibmV3X2NvbF8zXyQl e31bXSgpJipeIUAiIidgXC8jIgorICAgIFNFVCAobl9kaXN0aW5jdD0xKTsKKworR1JBTlQgQUxM KCJuZXdfY29sXzNfJCV7fVtdKCkmKl4hQCIiJ2BcLyMiKSBPTiB0ZXN0c2NoZW1hLiJ0YWJsZV8x XyQle31bXSgpJipeIUAiIidgXC8jIiBUTyBQVUJMSUM7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv Y29sdW1ucy90ZXN0cy9kZWZhdWx0L3Rlc3QuanNvbiBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3Rlc3Rz L2RlZmF1bHQvdGVzdC5qc29uCmluZGV4IDhkMGU0ZDA1Yy4uOGNjNDVjOWZhIDEwMDY0NAotLS0g YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvY29sdW1ucy90ZXN0cy9kZWZhdWx0L3Rlc3QuanNvbgorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvY29sdW1ucy90ZXN0cy9kZWZhdWx0L3Rlc3QuanNvbgpAQCAtMTM1LDEyICsxMzUsMjMgQEAK ICAgICAgICAgIm5hbWUiOiAibmV3X2NvbF8zXyQle31bXSgpJipeIUBcIidgXFwvIyIsCiAgICAg ICAgICJhdHRudW0iOiAzLAogICAgICAgICAiYXR0bGVuIjoiMTUiLAotICAgICAgICAiYXR0cHJl Y2lzaW9uIjoiMCIsCisgICAgICAgICJhdHRwcmVjaXNpb24iOiI2IiwKICAgICAgICAgImRlc2Ny aXB0aW9uIjogIkNvbW1lbnQgZm9yIGFsdGVyIiwKICAgICAgICAgImF0dGFjbCI6eyJhZGRlZCI6 W3siZ3JhbnRlZSI6IlBVQkxJQyIsImdyYW50b3IiOiJwb3N0Z3JlcyIsInByaXZpbGVnZXMiOlt7 InByaXZpbGVnZV90eXBlIjoiYSIsInByaXZpbGVnZSI6dHJ1ZSwid2l0aF9ncmFudCI6ZmFsc2V9 LHsicHJpdmlsZWdlX3R5cGUiOiJyIiwicHJpdmlsZWdlIjp0cnVlLCJ3aXRoX2dyYW50IjpmYWxz ZX0seyJwcml2aWxlZ2VfdHlwZSI6InciLCJwcml2aWxlZ2UiOnRydWUsIndpdGhfZ3JhbnQiOmZh bHNlfSx7InByaXZpbGVnZV90eXBlIjoieCIsInByaXZpbGVnZSI6dHJ1ZSwid2l0aF9ncmFudCI6 ZmFsc2V9XX1dfQogICAgICAgfSwKICAgICAgICJleHBlY3RlZF9zcWxfZmlsZSI6ICJhbHRlcl9j b2x1bW5fbnVtZXJpYy5zcWwiCiAgICAgfSwKKyAgICB7CisgICAgICAidHlwZSI6ICJhbHRlciIs CisgICAgICAibmFtZSI6ICJBbHRlciBDb2x1bW4gKFJlbW92ZSBMZW5ndGgpIiwKKyAgICAgICJl bmRwb2ludCI6ICJOT0RFLWNvbHVtbi5vYmpfaWQiLAorICAgICAgInNxbF9lbmRwb2ludCI6ICJO T0RFLWNvbHVtbi5zcWxfaWQiLAorICAgICAgImRhdGEiOiB7CisgICAgICAgICJhdHRudW0iOiAz LAorICAgICAgICAiYXR0bGVuIjoiIgorICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9zcWxfZmls ZSI6ICJhbHRlcl9jb2x1bW5fcmVtb3ZlX2xlbmd0aC5zcWwiCisgICAgfSwKICAgICB7CiAgICAg ICAidHlwZSI6ICJkZWxldGUiLAogICAgICAgIm5hbWUiOiAiRHJvcCBDb2x1bW4gKE51bWVyaWMg dHlwZSB3aXRoIExlbmd0aCBQcmVjaXNpb24gJiBWYXJpYWJsZXMpIiwKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9jb2x1bW5zL3Rlc3RzL3Rlc3RfY29sdW1uX21zcWwucHkgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29s dW1ucy90ZXN0cy90ZXN0X2NvbHVtbl9tc3FsLnB5CmluZGV4IGJjYWFiMTYwMS4uNmE2ZGQxYWM5 IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZXN0cy90ZXN0X2NvbHVtbl9tc3FsLnB5 CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3Rlc3RzL3Rlc3RfY29sdW1uX21zcWwucHkKQEAgLTUz LDcgKzUzLDcgQEAgY2xhc3MgQ29sdW1uTXNxbFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToK ICAgICAgICAgICAgICBvbGRfbGVuPTUsCiAgICAgICAgICAgICAgbmV3X3ByZWNpc2lvbj00LAog ICAgICAgICAgICAgIGV4cGVjdGVkX3Jlcz0nQUxURVIgVEFCTEUge3NjaGVtYX0ue3RhYmxlfVxu ICAgIEFMVEVSIENPTFVNTiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICd7Y29sdW1ufSBU WVBFIG51bWVyaWMgKHtsZW59LCB7cHJlY2lzaW9ufSlbXTsnCisgICAgICAgICAgICAgICAgICAg ICAgICAgICd7Y29sdW1ufSBUWVBFIG51bWVyaWMoe2xlbn0sIHtwcmVjaXNpb259KVtdOycKICAg ICAgICAgICkpLAogICAgICAgICAoJ21zcWwgY29sdW1uIGNoYW5nZSBudW1lcmljIHByZWNpc2lv bicsCiAgICAgICAgICBkaWN0KApAQCAtNjIsNyArNjIsNyBAQCBjbGFzcyBDb2x1bW5Nc3FsVGVz dENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgIG9sZF9sZW49NiwKICAgICAg ICAgICAgICBuZXdfcHJlY2lzaW9uPTUsCiAgICAgICAgICAgICAgZXhwZWN0ZWRfcmVzPSdBTFRF UiBUQUJMRSB7c2NoZW1hfS57dGFibGV9XG4gICAgQUxURVIgQ09MVU1OICcKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgJ3tjb2x1bW59IFRZUEUgbnVtZXJpYyAoe2xlbn0sIHtwcmVjaXNpb259 KTsnCisgICAgICAgICAgICAgICAgICAgICAgICAgICd7Y29sdW1ufSBUWVBFIG51bWVyaWMoe2xl bn0sIHtwcmVjaXNpb259KTsnCiAgICAgICAgICApKSwKICAgICAgICAgKCdtc3FsIGNvbHVtbiBj aGFuZ2UgbnVtZXJpYyBhcnJheSBsZW5ndGgnLAogICAgICAgICAgZGljdCgKQEAgLTcxLDcgKzcx LDcgQEAgY2xhc3MgQ29sdW1uTXNxbFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAg ICAgICAgICBuZXdfbGVuPTgsCiAgICAgICAgICAgICAgb2xkX3ByZWNpc2lvbj0zLAogICAgICAg ICAgICAgIGV4cGVjdGVkX3Jlcz0nQUxURVIgVEFCTEUge3NjaGVtYX0ue3RhYmxlfVxuICAgIEFM VEVSIENPTFVNTiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICd7Y29sdW1ufSBUWVBFIG51 bWVyaWMgKHtsZW59LCB7cHJlY2lzaW9ufSlbXTsnCisgICAgICAgICAgICAgICAgICAgICAgICAg ICd7Y29sdW1ufSBUWVBFIG51bWVyaWMoe2xlbn0sIHtwcmVjaXNpb259KVtdOycKICAgICAgICAg ICkpLAogICAgICAgICAoJ21zcWwgY29sdW1uIGNoYW5nZSBudW1lcmljIGxlbmd0aCcsCiAgICAg ICAgICBkaWN0KApAQCAtODAsNyArODAsNyBAQCBjbGFzcyBDb2x1bW5Nc3FsVGVzdENhc2UoQmFz ZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgIG5ld19sZW49OCwKICAgICAgICAgICAgICBv bGRfcHJlY2lzaW9uPTQsCiAgICAgICAgICAgICAgZXhwZWN0ZWRfcmVzPSdBTFRFUiBUQUJMRSB7 c2NoZW1hfS57dGFibGV9XG4gICAgQUxURVIgQ09MVU1OICcKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgJ3tjb2x1bW59IFRZUEUgbnVtZXJpYyAoe2xlbn0sIHtwcmVjaXNpb259KTsnCisgICAg ICAgICAgICAgICAgICAgICAgICAgICd7Y29sdW1ufSBUWVBFIG51bWVyaWMoe2xlbn0sIHtwcmVj aXNpb259KTsnCiAgICAgICAgICApKSwKICAgICAgICAgKCdtc3FsIGNvbHVtbiBjaGFuZ2UgbnVt ZXJpYyBhcnJheSBsZW4gYW5kIHByZWNpc2lvbicsCiAgICAgICAgICBkaWN0KApAQCAtODksNyAr ODksNyBAQCBjbGFzcyBDb2x1bW5Nc3FsVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAg ICAgICAgICAgIG5ld19sZW49MTUsCiAgICAgICAgICAgICAgbmV3X3ByZWNpc2lvbj04LAogICAg ICAgICAgICAgIGV4cGVjdGVkX3Jlcz0nQUxURVIgVEFCTEUge3NjaGVtYX0ue3RhYmxlfVxuICAg IEFMVEVSIENPTFVNTiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICd7Y29sdW1ufSBUWVBF IG51bWVyaWMgKHtsZW59LCB7cHJlY2lzaW9ufSlbXTsnCisgICAgICAgICAgICAgICAgICAgICAg ICAgICd7Y29sdW1ufSBUWVBFIG51bWVyaWMoe2xlbn0sIHtwcmVjaXNpb259KVtdOycKICAgICAg ICAgICkpLAogICAgICAgICAoJ21zcWwgY29sdW1uIGNoYW5nZSBudW1lcmljIGxlbiBhbmQgcHJl Y2lzaW9uJywKICAgICAgICAgIGRpY3QoCkBAIC05OCw3ICs5OCw3IEBAIGNsYXNzIENvbHVtbk1z cWxUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAgbmV3X2xlbj0xNCwK ICAgICAgICAgICAgICBuZXdfcHJlY2lzaW9uPTksCiAgICAgICAgICAgICAgZXhwZWN0ZWRfcmVz PSdBTFRFUiBUQUJMRSB7c2NoZW1hfS57dGFibGV9XG4gICAgQUxURVIgQ09MVU1OICcKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgJ3tjb2x1bW59IFRZUEUgbnVtZXJpYyAoe2xlbn0sIHtwcmVj aXNpb259KTsnCisgICAgICAgICAgICAgICAgICAgICAgICAgICd7Y29sdW1ufSBUWVBFIG51bWVy aWMoe2xlbn0sIHtwcmVjaXNpb259KTsnCiAgICAgICAgICApKQogICAgIF0KIApkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL2NvbHVtbnMvdXRpbHMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy91dGlscy5w eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmJhZDkzODE0MgotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3V0aWxzLnB5CkBAIC0wLDAgKzEsMzYwIEBA CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisj CisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTksIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRl YW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNl bmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisiIiIgSW1wbGVtZW50cyBVdGlsaXR5IGNsYXNz IGZvciBDb21wb3VuZCBUcmlnZ2Vycy4gIiIiCisKK2Zyb20gZmxhc2sgaW1wb3J0IHJlbmRlcl90 ZW1wbGF0ZQorZnJvbSBmbGFza19iYWJlbGV4IGltcG9ydCBnZXR0ZXh0IGFzIF8KK2Zyb20gcGdh ZG1pbi51dGlscy5hamF4IGltcG9ydCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IKK2Zyb20gcGdhZG1p bi51dGlscy5leGNlcHRpb24gaW1wb3J0IE9iamVjdEdvbmUKK2Zyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy51dGlscyBcCisgICAgaW1w b3J0IERhdGFUeXBlUmVhZGVyCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl cnZlcnMudXRpbHMgaW1wb3J0IHBhcnNlX3ByaXZfZnJvbV9kYiwgXAorICAgIHBhcnNlX3ByaXZf dG9fZGIKK2Zyb20gZnVuY3Rvb2xzIGltcG9ydCB3cmFwcworCisKK2RlZiBnZXRfdGVtcGxhdGVf cGF0aChmKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgYmVoYXZlIGFzIGEgZGVj b3JhdG9yIHdoaWNoIHdpbGwgcHJlcGFyZQorICAgIHRoZSB0ZW1wbGF0ZSBwYXRoIGJhc2VkIG9u IGRhdGFiYXNlIHNlcnZlciB2ZXJzaW9uLgorICAgICIiIgorCisgICAgQHdyYXBzKGYpCisgICAg ZGVmIHdyYXAoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIyBIZXJlIGFyZ3NbMF0gd2lsbCBo b2xkIHRoZSBjb25uZWN0aW9uIG9iamVjdAorICAgICAgICBjb25uX29iaiA9IGFyZ3NbMF0KKyAg ICAgICAgaWYgJ3RlbXBsYXRlX3BhdGgnIG5vdCBpbiBrd2FyZ3M6CisgICAgICAgICAgICBrd2Fy Z3NbJ3RlbXBsYXRlX3BhdGgnXSA9ICdjb2x1bW5zL3NxbC8jezB9IycuZm9ybWF0KAorICAgICAg ICAgICAgICAgIGNvbm5fb2JqLm1hbmFnZXIudmVyc2lvbikKKworICAgICAgICByZXR1cm4gZigq YXJncywgKiprd2FyZ3MpCisgICAgcmV0dXJuIHdyYXAKKworCitAZ2V0X3RlbXBsYXRlX3BhdGgK K2RlZiBnZXRfcGFyZW50KGNvbm4sIHRpZCwgdGVtcGxhdGVfcGF0aD1Ob25lKToKKyAgICAiIiIK KyAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIHRoZSBwYXJlbnQgb2YgdGhlIGdpdmVuIHRh YmxlLgorICAgIDpwYXJhbSBjb25uOiBDb25uZWN0aW9uIE9iamVjdAorICAgIDpwYXJhbSB0aWQ6 IFRhYmxlIG9pZAorICAgIDpwYXJhbSB0ZW1wbGF0ZV9wYXRoOiBPcHRpb25hbCB0ZW1wbGF0ZSBw YXRoCisgICAgOnJldHVybjoKKyAgICAiIiIKKworICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgi LyIuam9pbihbdGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdnZXRfcGFyZW50LnNxbCddKSwgdGlkPXRpZCkKKyAgICBzdGF0dXMsIHJzZXQgPSBjb25u LmV4ZWN1dGVfMmRhcnJheShTUUwpCisgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKHJzZXQpCisKKyAgICBzY2hlbWEgPSAnJworICAgIHRhYmxlID0gJycKKyAgICBp ZiAncm93cycgaW4gcnNldCBhbmQgbGVuKHJzZXRbJ3Jvd3MnXSkgPiAwOgorICAgICAgICBzY2hl bWEgPSByc2V0Wydyb3dzJ11bMF1bJ3NjaGVtYSddCisgICAgICAgIHRhYmxlID0gcnNldFsncm93 cyddWzBdWyd0YWJsZSddCisKKyAgICByZXR1cm4gc2NoZW1hLCB0YWJsZQorCisKK0BnZXRfdGVt cGxhdGVfcGF0aAorZGVmIGNvbHVtbl9mb3JtYXR0ZXIoY29ubiwgdGlkLCBjbGlkLCBkYXRhLCB0 ZW1wbGF0ZV9wYXRoPU5vbmUpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gd2lsbCByZXR1 cm4gZm9ybWF0dGVkIG91dHB1dCBvZiBxdWVyeSByZXN1bHQKKyAgICBhcyBwZXIgY2xpZW50IG1v ZGVsIGZvcm1hdCBmb3IgY29sdW1uIG5vZGUKKyAgICA6cGFyYW0gY29ubjogQ29ubmVjdGlvbiBP YmplY3QKKyAgICA6cGFyYW0gdGlkOiBUYWJsZSBJRAorICAgIDpwYXJhbSBjbGlkOiBDb2x1bW4g SUQKKyAgICA6cGFyYW0gZGF0YTogRGF0YQorICAgIDpwYXJhbSB0ZW1wbGF0ZV9wYXRoOiBPcHRp b25hbCB0ZW1wbGF0ZSBwYXRoCisgICAgOnJldHVybjoKKyAgICAiIiIKKworICAgICMgVG8gY2hl Y2sgaWYgY29sdW1uIGlzIHByaW1hcnkga2V5CisgICAgaWYgJ2F0dG51bScgaW4gZGF0YSBhbmQg J2luZGtleScgaW4gZGF0YToKKyAgICAgICAgIyBDdXJyZW50IGNvbHVtbgorICAgICAgICBhdHRu dW0gPSBzdHIoZGF0YVsnYXR0bnVtJ10pCisKKyAgICAgICAgIyBTaW5nbGUvTGlzdCBvZiBwcmlt YXJ5IGtleSBjb2x1bW4ocykKKyAgICAgICAgaW5ka2V5ID0gc3RyKGRhdGFbJ2luZGtleSddKQor CisgICAgICAgICMgV2Ugd2lsbCBjaGVjayBpZiBjb2x1bW4gaXMgaW4gcHJpbWFyeSBjb2x1bW4o cykKKyAgICAgICAgaWYgYXR0bnVtIGluIGluZGtleS5zcGxpdCgiICIpOgorICAgICAgICAgICAg ZGF0YVsnaXNfcGsnXSA9IFRydWUKKyAgICAgICAgICAgIGRhdGFbJ2lzX3ByaW1hcnlfa2V5J10g PSBUcnVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBkYXRhWydpc19wayddID0gRmFsc2UK KyAgICAgICAgICAgIGRhdGFbJ2lzX3ByaW1hcnlfa2V5J10gPSBGYWxzZQorCisgICAgIyBGZXRj aCBsZW5ndGggYW5kIHByZWNpc2lvbgorICAgIGRhdGEgPSBmZXRjaF9sZW5ndGhfcHJlY2lzaW9u KGRhdGEpCisKKyAgICAjIFdlIG5lZWQgdG8gZmV0Y2ggaW5oZXJpdGVkIHRhYmxlcyBmb3IgZWFj aCB0YWJsZQorICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbdGVtcGxhdGVfcGF0 aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZXRfaW5oZXJpdGVkX3Rh Ymxlcy5zcWwnXSksIHRpZD10aWQpCisgICAgc3RhdHVzLCBpbmhfcmVzID0gY29ubi5leGVjdXRl X2RpY3QoU1FMKQorICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgIHJldHVybiBpbnRlcm5hbF9z ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9aW5oX3JlcykKKyAgICBmb3Igcm93IGluIGluaF9yZXNbJ3Jv d3MnXToKKyAgICAgICAgaWYgcm93WydhdHRybmFtZSddID09IGRhdGFbJ25hbWUnXToKKyAgICAg ICAgICAgIGRhdGFbJ2lzX2luaGVyaXRlZCddID0gVHJ1ZQorICAgICAgICAgICAgZGF0YVsndGJs c19pbmhlcml0ZWQnXSA9IHJvd1snaW5ocmVsbmFtZSddCisKKyAgICAjIFdlIG5lZWQgdG8gZm9y bWF0IHZhcmlhYmxlcyBhY2NvcmRpbmcgdG8gY2xpZW50IGpzIGNvbGxlY3Rpb24KKyAgICBpZiAn YXR0b3B0aW9ucycgaW4gZGF0YSBhbmQgZGF0YVsnYXR0b3B0aW9ucyddIGlzIG5vdCBOb25lOgor ICAgICAgICBzcGNvcHRpb25zID0gW10KKyAgICAgICAgZm9yIHNwY29wdGlvbiBpbiBkYXRhWydh dHRvcHRpb25zJ106CisgICAgICAgICAgICBrLCB2ID0gc3Bjb3B0aW9uLnNwbGl0KCc9JykKKyAg ICAgICAgICAgIHNwY29wdGlvbnMuYXBwZW5kKHsnbmFtZSc6IGssICd2YWx1ZSc6IHZ9KQorCisg ICAgICAgIGRhdGFbJ2F0dG9wdGlvbnMnXSA9IHNwY29wdGlvbnMKKworICAgICMgTmVlZCB0byBm b3JtYXQgc2VjdXJpdHkgbGFiZWxzIGFjY29yZGluZyB0byBjbGllbnQganMgY29sbGVjdGlvbgor ICAgIGlmICdzZWNsYWJlbHMnIGluIGRhdGEgYW5kIGRhdGFbJ3NlY2xhYmVscyddIGlzIG5vdCBO b25lOgorICAgICAgICBzZWNsYWJlbHMgPSBbXQorICAgICAgICBmb3Igc2VjbGJscyBpbiBkYXRh WydzZWNsYWJlbHMnXToKKyAgICAgICAgICAgIGssIHYgPSBzZWNsYmxzLnNwbGl0KCc9JykKKyAg ICAgICAgICAgIHNlY2xhYmVscy5hcHBlbmQoeydwcm92aWRlcic6IGssICdsYWJlbCc6IHZ9KQor CisgICAgICAgIGRhdGFbJ3NlY2xhYmVscyddID0gc2VjbGFiZWxzCisKKyAgICAjIFdlIG5lZWQg dG8gcGFyc2UgJiBjb252ZXJ0IEFDTCBjb21pbmcgZnJvbSBkYXRhYmFzZSB0byBqc29uIGZvcm1h dAorICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbdGVtcGxhdGVfcGF0aCwgJ2Fj bC5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZD10aWQsIGNsaWQ9Y2xpZCkK KyAgICBzdGF0dXMsIGFjbCA9IGNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKworICAgIGlmIG5vdCBz dGF0dXM6CisgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9YWNs KQorCisgICAgIyBXZSB3aWxsIHNldCBnZXQgcHJpdmlsZWdlcyBmcm9tIGFjbCBzcWwgc28gd2Ug ZG9uJ3QgbmVlZAorICAgICMgaXQgZnJvbSBwcm9wZXJ0aWVzIHNxbAorICAgIGRhdGFbJ2F0dGFj bCddID0gW10KKworICAgIGZvciByb3cgaW4gYWNsWydyb3dzJ106CisgICAgICAgIHByaXYgPSBw YXJzZV9wcml2X2Zyb21fZGIocm93KQorICAgICAgICBkYXRhLnNldGRlZmF1bHQocm93WydkZWZ0 eXBlJ10sIFtdKS5hcHBlbmQocHJpdikKKworICAgICMgd2UgYXJlIHJlY2VpdmluZyByZXF1ZXN0 IHdoZW4gaW4gZWRpdCBtb2RlCisgICAgIyB3ZSB3aWxsIHNlbmQgZmlsdGVyZWQgdHlwZXMgcmVs YXRlZCB0byBjdXJyZW50IHR5cGUKKyAgICB0eXBlX2lkID0gZGF0YVsnYXR0dHlwaWQnXQorCisg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFt0ZW1wbGF0ZV9wYXRoLCAnaXNfcmVm ZXJlbmNlZC5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZD10aWQsIGNsaWQ9 Y2xpZCkKKworICAgIHN0YXR1cywgaXNfcmVmZXJlbmNlID0gY29ubi5leGVjdXRlX3NjYWxhcihT UUwpCisKKyAgICBlZGl0X3R5cGVzX2xpc3QgPSBsaXN0KCkKKyAgICAjIFdlIHdpbGwgbmVlZCBw cmVzZW50IHR5cGUgaW4gZWRpdCBtb2RlCisgICAgZWRpdF90eXBlc19saXN0LmFwcGVuZChkYXRh WydjbHR5cGUnXSkKKworICAgIGlmIGludChpc19yZWZlcmVuY2UpID09IDA6CisgICAgICAgIFNR TCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbdGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdF9tb2RlX3R5cGVzLnNxbCddKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVfaWQ9dHlwZV9pZCkKKyAgICAgICAgc3Rh dHVzLCByc2V0ID0gY29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQorCisgICAgICAgIGZvciByb3cg aW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgZWRpdF90eXBlc19saXN0LmFwcGVuZChyb3db J3R5cG5hbWUnXSkKKworICAgIGRhdGFbJ2VkaXRfdHlwZXMnXSA9IGVkaXRfdHlwZXNfbGlzdAor CisgICAgZGF0YVsnY2x0eXBlJ10gPSBEYXRhVHlwZVJlYWRlci5wYXJzZV90eXBlX25hbWUoZGF0 YVsnY2x0eXBlJ10pCisKKyAgICByZXR1cm4gZGF0YQorCisKK0BnZXRfdGVtcGxhdGVfcGF0aAor ZGVmIGdldF9mb3JtYXR0ZWRfY29sdW1ucyhjb25uLCB0aWQsIGRhdGEsIG90aGVyX2NvbHVtbnMs CisgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlX29yX3R5cGUsIHRlbXBsYXRlX3BhdGg9 Tm9uZSk6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGl0ZXJhdGUgYW5kIHJldHVy biBmb3JtYXR0ZWQgZGF0YSBmb3IgYWxsCisgICAgdGhlIGNvbHVtbnMuCisgICAgOnBhcmFtIGNv bm46IENvbm5lY3Rpb24gT2JqZWN0CisgICAgOnBhcmFtIHRpZDogVGFibGUgSUQKKyAgICA6cGFy YW0gZGF0YTogRGF0YQorICAgIDpwYXJhbSBvdGhlcl9jb2x1bW5zOgorICAgIDpwYXJhbSB0YWJs ZV9vcl90eXBlOgorICAgIDpwYXJhbSB0ZW1wbGF0ZV9wYXRoOiBPcHRpb25hbCB0ZW1wbGF0ZSBw YXRoCisgICAgOnJldHVybjoKKyAgICAiIiIKKyAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8i LmpvaW4oW3RlbXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgdGlkPXRpZCwgc2hvd19zeXNfb2JqZWN0cz1GYWxzZSkKKworICAgIHN0YXR1 cywgcmVzID0gY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgIGlmIG5vdCBzdGF0dXM6CisgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbihyZXMpCisKKyAgICBhbGxfY29sdW1ucyA9IHJlc1sncm93cydd CisKKyAgICAjIEFkZCBpbmhlcml0ZWQgZnJvbSBkZXRhaWxzIGZyb20gb3RoZXIgY29sdW1ucyAt IHR5cGUsIHRhYmxlCisgICAgZm9yIGNvbCBpbiBhbGxfY29sdW1uczoKKyAgICAgICAgZm9yIG90 aGVyX2NvbCBpbiBvdGhlcl9jb2x1bW5zOgorICAgICAgICAgICAgaWYgY29sWyduYW1lJ10gPT0g b3RoZXJfY29sWyduYW1lJ106CisgICAgICAgICAgICAgICAgY29sWydpbmhlcml0ZWRmcm9tJyAr IHRhYmxlX29yX3R5cGVdID0gXAorICAgICAgICAgICAgICAgICAgICBvdGhlcl9jb2xbJ2luaGVy aXRlZGZyb20nXQorCisgICAgZGF0YVsnY29sdW1ucyddID0gYWxsX2NvbHVtbnMKKworICAgIGlm ICdjb2x1bW5zJyBpbiBkYXRhIGFuZCBsZW4oZGF0YVsnY29sdW1ucyddKSA+IDA6CisgICAgICAg IGZvciBjb2x1bW4gaW4gZGF0YVsnY29sdW1ucyddOgorICAgICAgICAgICAgY29sdW1uX2Zvcm1h dHRlcihjb25uLCB0aWQsIGNvbHVtblsnYXR0bnVtJ10sIGNvbHVtbikKKworICAgIHJldHVybiBk YXRhCisKKworZGVmIHBhcnNlX2Zvcm1hdF9jb2x1bW5zKGRhdGEsIG1vZGU9Tm9uZSk6CisgICAg IiIiCisgICAgVGhpcyBmdW5jdGlvbiB3aWxsIHBhcnNlIGFuZCByZXR1cm4gZm9ybWF0dGVkIGxp c3Qgb2YgY29sdW1ucworICAgIGFkZGVkIGJ5IHVzZXIuCisKKyAgICA6cGFyYW0gZGF0YToKKyAg ICA6cGFyYW0gbW9kZToKKyAgICA6cmV0dXJuOgorICAgICIiIgorICAgIGNvbHVtbl9hY2wgPSBb J2EnLCAncicsICd3JywgJ3gnXQorICAgIGNvbHVtbnMgPSBkYXRhWydjb2x1bW5zJ10KKyAgICAj ICdFRElUJyBtb2RlCisgICAgaWYgbW9kZSBpcyBub3QgTm9uZToKKyAgICAgICAgZm9yIGFjdGlv biBpbiBbJ2FkZGVkJywgJ2NoYW5nZWQnXToKKyAgICAgICAgICAgIGlmIGFjdGlvbiBpbiBjb2x1 bW5zOgorICAgICAgICAgICAgICAgIGZpbmFsX2NvbHVtbnMgPSBbXQorICAgICAgICAgICAgICAg IGZvciBjIGluIGNvbHVtbnNbYWN0aW9uXToKKyAgICAgICAgICAgICAgICAgICAgaWYgJ2luaGVy aXRlZGZyb20nIG5vdCBpbiBjOgorICAgICAgICAgICAgICAgICAgICAgICAgZmluYWxfY29sdW1u cy5hcHBlbmQoYykKKworICAgICAgICAgICAgICAgIGZvciBjIGluIGZpbmFsX2NvbHVtbnM6Cisg ICAgICAgICAgICAgICAgICAgIGlmICdhdHRhY2wnIGluIGM6CisgICAgICAgICAgICAgICAgICAg ICAgICBpZiAnYWRkZWQnIGluIGNbJ2F0dGFjbCddOgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNbJ2F0dGFjbCddWydhZGRlZCddID0gcGFyc2VfcHJpdl90b19kYigKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY1snYXR0YWNsJ11bJ2FkZGVkJ10sIGNvbHVtbl9hY2wKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICBlbGlm ICdjaGFuZ2VkJyBpbiBjWydhdHRhY2wnXToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBj WydhdHRhY2wnXVsnY2hhbmdlZCddID0gcGFyc2VfcHJpdl90b19kYigKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY1snYXR0YWNsJ11bJ2NoYW5nZWQnXSwgY29sdW1uX2FjbAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYg J2RlbGV0ZWQnIGluIGNbJ2F0dGFjbCddOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNb J2F0dGFjbCddWydkZWxldGVkJ10gPSBwYXJzZV9wcml2X3RvX2RiKAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjWydhdHRhY2wnXVsnZGVsZXRlZCddLCBjb2x1bW5fYWNsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICBpZiAnY2x0eXBl JyBpbiBjOgorICAgICAgICAgICAgICAgICAgICAgICAgIyBjaGVjayB0eXBlIGZvciAnW10nIGlu IGl0CisgICAgICAgICAgICAgICAgICAgICAgICBjWydjbHR5cGUnXSwgY1snaGFzU3FyQnJhY2tl dCddID0gXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVfZm9ybWF0dGVyKGNbJ2Ns dHlwZSddKQorCisgICAgICAgICAgICAgICAgICAgIGMgPSBjb252ZXJ0X2xlbmd0aF9wcmVjaXNp b25fdG9fc3RyaW5nKGMpCisKKyAgICAgICAgICAgICAgICBkYXRhWydjb2x1bW5zJ11bYWN0aW9u XSA9IGZpbmFsX2NvbHVtbnMKKyAgICBlbHNlOgorICAgICAgICAjIFdlIG5lZWQgdG8gZXhjbHVk ZSBhbGwgdGhlIGNvbHVtbnMgd2hpY2ggYXJlIGluaGVyaXRlZCBmcm9tIG90aGVyCisgICAgICAg ICMgdGFibGVzICdDUkVBVEUnIG1vZGUKKyAgICAgICAgZmluYWxfY29sdW1ucyA9IFtdCisKKyAg ICAgICAgZm9yIGMgaW4gY29sdW1uczoKKyAgICAgICAgICAgIGlmICdpbmhlcml0ZWRmcm9tJyBu b3QgaW4gYzoKKyAgICAgICAgICAgICAgICBmaW5hbF9jb2x1bW5zLmFwcGVuZChjKQorCisgICAg ICAgICMgTm93IHdlIGhhdmUgYWxsIGxpcyBvZiBjb2x1bW5zIHdoaWNoIHdlIG5lZWQKKyAgICAg ICAgIyB0byBpbmNsdWRlIGluIG91ciBjcmVhdGUgZGVmaW5pdGlvbiwgTGV0J3MgZm9ybWF0IHRo ZW0KKyAgICAgICAgZm9yIGMgaW4gZmluYWxfY29sdW1uczoKKyAgICAgICAgICAgIGlmICdhdHRh Y2wnIGluIGM6CisgICAgICAgICAgICAgICAgY1snYXR0YWNsJ10gPSBwYXJzZV9wcml2X3RvX2Ri KAorICAgICAgICAgICAgICAgICAgICBjWydhdHRhY2wnXSwgY29sdW1uX2FjbAorICAgICAgICAg ICAgICAgICkKKworICAgICAgICAgICAgaWYgJ2NsdHlwZScgaW4gYzoKKyAgICAgICAgICAgICAg ICAjIGNoZWNrIHR5cGUgZm9yICdbXScgaW4gaXQKKyAgICAgICAgICAgICAgICBjWydjbHR5cGUn XSwgY1snaGFzU3FyQnJhY2tldCddID0gdHlwZV9mb3JtYXR0ZXIoY1snY2x0eXBlJ10pCisKKyAg ICAgICAgICAgIGMgPSBjb252ZXJ0X2xlbmd0aF9wcmVjaXNpb25fdG9fc3RyaW5nKGMpCisKKyAg ICAgICAgZGF0YVsnY29sdW1ucyddID0gZmluYWxfY29sdW1ucworCisgICAgcmV0dXJuIGRhdGEK KworCitkZWYgY29udmVydF9sZW5ndGhfcHJlY2lzaW9uX3RvX3N0cmluZyhkYXRhKToKKyAgICAi IiIKKyAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gY29udmVydCBsZW5ndGggJiBwcmVjaXNp b24gdG8gc3RyaW5nCisgICAgdG8gaGFuZGxlIGNhc2UgbGlrZSB3aGVuIHVzZXIgZ2l2ZXMgMCBh cyBsZW5ndGguCisKKyAgICA6cGFyYW0gZGF0YToKKyAgICA6cmV0dXJuOgorICAgICIiIgorCisg ICAgIyBXZSBuZWVkIHRvIGhhbmRsZSB0aGUgYmVsb3cgY2FzZSBiZWNhdXNlIGpxdWVyeSBoYXMg Y2hhbmdlZAorICAgICMgdW5kZWZpbmVkL251bGwgdmFsdWVzIHRvIGVtcHR5IHN0cmluZ3MKKyAg ICAjIGh0dHBzOi8vZ2l0aHViLmNvbS9qcXVlcnkvanF1ZXJ5L2NvbW1pdC8zNmQyZDlhZTkzN2Y2 MjZkOTgzMTllZDg1MDkwNWU4ZDFjYmZkMDc4CisgICAgaWYgJ2F0dGxlbicgaW4gZGF0YSBhbmQg ZGF0YVsnYXR0bGVuJ10gPT0gJyc6CisgICAgICAgIGRhdGFbJ2F0dGxlbiddID0gTm9uZQorICAg IGVsaWYgJ2F0dGxlbicgaW4gZGF0YSBhbmQgZGF0YVsnYXR0bGVuJ10gaXMgbm90IE5vbmU6Cisg ICAgICAgIGRhdGFbJ2F0dGxlbiddID0gc3RyKGRhdGFbJ2F0dGxlbiddKQorCisgICAgaWYgJ2F0 dHByZWNpc2lvbicgaW4gZGF0YSBhbmQgZGF0YVsnYXR0cHJlY2lzaW9uJ10gPT0gJyc6CisgICAg ICAgIGRhdGFbJ2F0dHByZWNpc2lvbiddID0gTm9uZQorICAgIGVsaWYgJ2F0dHByZWNpc2lvbicg aW4gZGF0YSBhbmQgZGF0YVsnYXR0cHJlY2lzaW9uJ10gaXMgbm90IE5vbmU6CisgICAgICAgIGRh dGFbJ2F0dHByZWNpc2lvbiddID0gc3RyKGRhdGFbJ2F0dHByZWNpc2lvbiddKQorCisgICAgcmV0 dXJuIGRhdGEKKworCitkZWYgdHlwZV9mb3JtYXR0ZXIoZGF0YV90eXBlKToKKyAgICAiIiIKKyAg ICBXZSBuZWVkIHRvIHJlbW92ZSBbXSBmcm9tIHR5cGUgYW5kIGFwcGVuZCBpdAorICAgIGFmdGVy IGxlbmd0aC9wcmVjaXNpb24gc28gd2Ugd2lsbCBzZXQgZmxhZyBmb3IKKyAgICBzcWwgdGVtcGxh dGUuCisKKyAgICA6cGFyYW0gZGF0YV90eXBlOgorICAgIDpwYXJhbSB0ZW1wbGF0ZV9wYXRoOiBP cHRpb25hbCB0ZW1wbGF0ZSBwYXRoCisgICAgOnJldHVybjoKKyAgICAiIiIKKworICAgIGlmICdb XScgaW4gZGF0YV90eXBlOgorICAgICAgICByZXR1cm4gZGF0YV90eXBlWzotMl0sIFRydWUKKyAg ICBlbHNlOgorICAgICAgICByZXR1cm4gZGF0YV90eXBlLCBGYWxzZQorCisKK2RlZiBmZXRjaF9s ZW5ndGhfcHJlY2lzaW9uKGRhdGEpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNl ZCB0byBmZXRjaCB0aGUgbGVuZ3RoIGFuZCBwcmVjaXNpb24uCisKKyAgICA6cGFyYW0gZGF0YToK KyAgICA6cmV0dXJuOgorICAgICIiIgorICAgICMgRmluZCBsZW5ndGggJiBwcmVjaXNpb24gb2Yg Y29sdW1uIGRhdGEgdHlwZQorICAgIGZ1bGx0eXBlID0gRGF0YVR5cGVSZWFkZXIuZ2V0X2Z1bGxf dHlwZSgKKyAgICAgICAgZGF0YVsndHlwbnNwbmFtZSddLCBkYXRhWyd0eXBuYW1lJ10sCisgICAg ICAgIGRhdGFbJ2lzZHVwJ10sIGRhdGFbJ2F0dG5kaW1zJ10sIGRhdGFbJ2F0dHR5cG1vZCddKQor CisgICAgbGVuZ3RoID0gRmFsc2UKKyAgICBwcmVjaXNpb24gPSBGYWxzZQorICAgIGlmICdlbGVt b2lkJyBpbiBkYXRhOgorICAgICAgICBsZW5ndGgsIHByZWNpc2lvbiwgdHlwZXZhbCA9IFwKKyAg ICAgICAgICAgIERhdGFUeXBlUmVhZGVyLmdldF9sZW5ndGhfcHJlY2lzaW9uKGRhdGFbJ2VsZW1v aWQnXSkKKworICAgICMgU2V0IGxlbmd0aCBhbmQgcHJlY2lzaW9uIHRvIE5vbmUKKyAgICBkYXRh WydhdHRsZW4nXSA9IE5vbmUKKyAgICBkYXRhWydhdHRwcmVjaXNpb24nXSA9IE5vbmUKKworICAg IGltcG9ydCByZQorCisgICAgIyBJZiB3ZSBoYXZlIGxlbmd0aCAmIHByZWNpc2lvbiBib3RoCisg ICAgaWYgbGVuZ3RoIGFuZCBwcmVjaXNpb246CisgICAgICAgIG1hdGNoT2JqID0gcmUuc2VhcmNo KHInKFxkKyksKFxkKyknLCBmdWxsdHlwZSkKKyAgICAgICAgaWYgbWF0Y2hPYmo6CisgICAgICAg ICAgICBkYXRhWydhdHRsZW4nXSA9IG1hdGNoT2JqLmdyb3VwKDEpCisgICAgICAgICAgICBkYXRh WydhdHRwcmVjaXNpb24nXSA9IG1hdGNoT2JqLmdyb3VwKDIpCisgICAgZWxpZiBsZW5ndGg6Cisg ICAgICAgICMgSWYgd2UgaGF2ZSBsZW5ndGggb25seQorICAgICAgICBtYXRjaE9iaiA9IHJlLnNl YXJjaChyJyhcZCspJywgZnVsbHR5cGUpCisgICAgICAgIGlmIG1hdGNoT2JqOgorICAgICAgICAg ICAgZGF0YVsnYXR0bGVuJ10gPSBtYXRjaE9iai5ncm91cCgxKQorICAgICAgICAgICAgZGF0YVsn YXR0cHJlY2lzaW9uJ10gPSBOb25lCisKKyAgICByZXR1cm4gZGF0YQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL2NvbXBvdW5kX3RyaWdnZXJzL3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbXBvdW5kX3Ry aWdnZXJzL3V0aWxzLnB5CmluZGV4IDQ5Mjk4MzkwMC4uNzAxMTc1MjhmIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29tcG91bmRfdHJpZ2dlcnMvdXRpbHMucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbXBv dW5kX3RyaWdnZXJzL3V0aWxzLnB5CkBAIC03LDcgKzcsNyBAQAogIwogIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKIAotIiIiIEltcGxlbWVudHMgVXRpbGl0eSBjbGFzcyBmb3IgRm9yZWlnbiBLZXlzLiAiIiIK KyIiIiBJbXBsZW1lbnRzIFV0aWxpdHkgY2xhc3MgZm9yIENvbXBvdW5kIFRyaWdnZXJzLiAiIiIK IAogZnJvbSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlCiBmcm9tIGZsYXNrX2JhYmVsZXgg aW1wb3J0IGdldHRleHQgYXMgXwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2lu ZGV4X2NvbnN0cmFpbnQvdXRpbHMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvaW5kZXhfY29u c3RyYWludC91dGlscy5weQppbmRleCAwMjdhN2UzMWMuLjQ3YmFlZTliMyAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQvdXRpbHMucHkKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQvdXRpbHMucHkKQEAgLTcsNyArNyw3 IEBACiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCi0iIiIgSW1wbGVtZW50cyBVdGlsaXR5IGNsYXNz IGZvciBFeGNsdXNpb24gQ29uc3RyYWludC4gIiIiCisiIiIgSW1wbGVtZW50cyBVdGlsaXR5IGNs YXNzIGZvciBJbmRleCBDb25zdHJhaW50LiAiIiIKIAogZnJvbSBmbGFzayBpbXBvcnQgcmVuZGVy X3RlbXBsYXRlCiBmcm9tIGZsYXNrX2JhYmVsZXggaW1wb3J0IGdldHRleHQgYXMgXwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9jb2x1bW5zL3NxbC8xMF9wbHVzL3VwZGF0ZS5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvdGVtcGxhdGVzL2NvbHVtbnMvc3FsLzEwX3BsdXMvdXBkYXRlLnNxbAppbmRl eCA1ODEzNjkxMTMuLjYxYzc4ZTFhMCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9j b2x1bW5zL3NxbC8xMF9wbHVzL3VwZGF0ZS5zcWwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9j b2x1bW5zL3NxbC8xMF9wbHVzL3VwZGF0ZS5zcWwKQEAgLTksNyArOSw3IEBAIEFMVEVSIFRBQkxF IHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlKX19CiAKIHslIGVuZGlmICV9 CiB7IyMjICBBbHRlciBjb2x1bW4gdHlwZSBhbmQgY29sbGF0aW9uICMjI30KLXslIGlmIChkYXRh LmNsdHlwZSBhbmQgZGF0YS5jbHR5cGUgIT0gb19kYXRhLmNsdHlwZSkgb3IgKGRhdGEuYXR0bGVu IGlzIGRlZmluZWQgYW5kIGRhdGEuYXR0bGVuIGlzIG5vdCBub25lIGFuZCBkYXRhLmF0dGxlbiAh PSBvX2RhdGEuYXR0bGVuKSBvciAoZGF0YS5hdHRwcmVjaXNpb24gaXMgZGVmaW5lZCBhbmQgZGF0 YS5hdHRwcmVjaXNpb24gIT0gb19kYXRhLmF0dHByZWNpc2lvbikgb3IgKGRhdGEuY29sbHNwY25h bWUgYW5kIGRhdGEuY29sbHNwY25hbWUgIT0gb19kYXRhLmNvbGxzcGNuYW1lKSV9Cit7JSBpZiAo ZGF0YS5jbHR5cGUgYW5kIGRhdGEuY2x0eXBlICE9IG9fZGF0YS5jbHR5cGUpIG9yIChkYXRhLmF0 dGxlbiBpcyBkZWZpbmVkIGFuZCBkYXRhLmF0dGxlbiAhPSBvX2RhdGEuYXR0bGVuKSBvciAoZGF0 YS5hdHRwcmVjaXNpb24gaXMgZGVmaW5lZCBhbmQgZGF0YS5hdHRwcmVjaXNpb24gIT0gb19kYXRh LmF0dHByZWNpc2lvbikgb3IgKGRhdGEuY29sbHNwY25hbWUgYW5kIGRhdGEuY29sbHNwY25hbWUg IT0gb19kYXRhLmNvbGxzcGNuYW1lKSV9CiBBTFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRh LnNjaGVtYSwgZGF0YS50YWJsZSl9fQogICAgIEFMVEVSIENPTFVNTiB7JSBpZiBkYXRhLm5hbWUg JX17e2Nvbm58cXRUeXBlSWRlbnQoZGF0YS5uYW1lKX19eyUgZWxzZSAlfXt7Y29ubnxxdFR5cGVJ ZGVudChvX2RhdGEubmFtZSl9fXslIGVuZGlmICV9IFRZUEUge3sgR0VUX1RZUEUuVVBEQVRFX1RZ UEVfU1FMKGNvbm4sIGRhdGEsIG9fZGF0YSkgfX17JSBpZiBkYXRhLmNvbGxzcGNuYW1lIGFuZCBk YXRhLmNvbGxzcGNuYW1lICE9IG9fZGF0YS5jb2xsc3BjbmFtZSAlfQogIENPTExBVEUge3tkYXRh LmNvbGxzcGNuYW1lfX17JSBlbGlmIG9fZGF0YS5jb2xsc3BjbmFtZSAlfSBDT0xMQVRFIHt7b19k YXRhLmNvbGxzcGNuYW1lfX17JSBlbmRpZiAlfTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1w bGF0ZXMvY29sdW1ucy9zcWwvOS4yX3BsdXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0 ZXMvY29sdW1ucy9zcWwvOS4yX3BsdXMvdXBkYXRlLnNxbAppbmRleCBkOTJkMDExMjEuLjViZjVl ZmQ0MiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9jb2x1bW5zL3NxbC85LjJfcGx1 cy91cGRhdGUuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvY29sdW1ucy9zcWwvOS4yX3Bs dXMvdXBkYXRlLnNxbApAQCAtNiwxMCArNiw5IEBACiB7JSBpZiBkYXRhLm5hbWUgYW5kIGRhdGEu bmFtZSAhPSBvX2RhdGEubmFtZSAlfQogQUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5z Y2hlbWEsIGRhdGEudGFibGUpfX0KICAgICBSRU5BTUUge3tjb25ufHF0SWRlbnQob19kYXRhLm5h bWUpfX0gVE8ge3tjb25ufHF0SWRlbnQoZGF0YS5uYW1lKX19OwotCiB7JSBlbmRpZiAlfQogeyMj IyAgQWx0ZXIgY29sdW1uIHR5cGUgYW5kIGNvbGxhdGlvbiAjIyN9Ci17JSBpZiAoZGF0YS5jbHR5 cGUgYW5kIGRhdGEuY2x0eXBlICE9IG9fZGF0YS5jbHR5cGUpIG9yIChkYXRhLmF0dGxlbiBpcyBk ZWZpbmVkIGFuZCBkYXRhLmF0dGxlbiBpcyBub3Qgbm9uZSBhbmQgZGF0YS5hdHRsZW4gIT0gb19k YXRhLmF0dGxlbikgb3IgKGRhdGEuYXR0cHJlY2lzaW9uIGlzIGRlZmluZWQgYW5kIGRhdGEuYXR0 cHJlY2lzaW9uICE9IG9fZGF0YS5hdHRwcmVjaXNpb24pIG9yIChkYXRhLmNvbGxzcGNuYW1lIGFu ZCBkYXRhLmNvbGxzcGNuYW1lICE9IG9fZGF0YS5jb2xsc3BjbmFtZSklfQoreyUgaWYgKGRhdGEu Y2x0eXBlIGFuZCBkYXRhLmNsdHlwZSAhPSBvX2RhdGEuY2x0eXBlKSBvciAoZGF0YS5hdHRsZW4g aXMgZGVmaW5lZCBhbmQgZGF0YS5hdHRsZW4gIT0gb19kYXRhLmF0dGxlbikgb3IgKGRhdGEuYXR0 cHJlY2lzaW9uIGlzIGRlZmluZWQgYW5kIGRhdGEuYXR0cHJlY2lzaW9uICE9IG9fZGF0YS5hdHRw cmVjaXNpb24pIG9yIChkYXRhLmNvbGxzcGNuYW1lIGFuZCBkYXRhLmNvbGxzcGNuYW1lICE9IG9f ZGF0YS5jb2xsc3BjbmFtZSklfQogQUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hl bWEsIGRhdGEudGFibGUpfX0KICAgICBBTFRFUiBDT0xVTU4geyUgaWYgZGF0YS5uYW1lICV9e3tj b25ufHF0VHlwZUlkZW50KGRhdGEubmFtZSl9fXslIGVsc2UgJX17e2Nvbm58cXRUeXBlSWRlbnQo b19kYXRhLm5hbWUpfX17JSBlbmRpZiAlfSBUWVBFIHt7IEdFVF9UWVBFLlVQREFURV9UWVBFX1NR TChjb25uLCBkYXRhLCBvX2RhdGEpIH19eyUgaWYgZGF0YS5jb2xsc3BjbmFtZSBhbmQgZGF0YS5j b2xsc3BjbmFtZSAhPSBvX2RhdGEuY29sbHNwY25hbWUgJX0KICBDT0xMQVRFIHt7ZGF0YS5jb2xs c3BjbmFtZX19eyUgZWxpZiBvX2RhdGEuY29sbHNwY25hbWUgJX0gQ09MTEFURSB7e29fZGF0YS5j b2xsc3BjbmFtZX19eyUgZW5kaWYgJX07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVz L2NvbHVtbnMvc3FsL2RlZmF1bHQvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvY29s dW1ucy9zcWwvZGVmYXVsdC91cGRhdGUuc3FsCmluZGV4IGZmYmYyNTAzNS4uYmFhYmRhYTZjIDEw MDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2NvbHVtbnMvc3FsL2RlZmF1bHQvdXBkYXRl LnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2NvbHVtbnMvc3FsL2RlZmF1bHQvdXBkYXRl LnNxbApAQCAtOSw3ICs5LDcgQEAgQUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hl bWEsIGRhdGEudGFibGUpfX0KIAogeyUgZW5kaWYgJX0KIHsjIyMgIEFsdGVyIGNvbHVtbiB0eXBl IGFuZCBjb2xsYXRpb24gIyMjfQoteyUgaWYgKGRhdGEuY2x0eXBlIGFuZCBkYXRhLmNsdHlwZSAh PSBvX2RhdGEuY2x0eXBlKSBvciAoZGF0YS5hdHRsZW4gaXMgZGVmaW5lZCBhbmQgZGF0YS5hdHRs ZW4gaXMgbm90IG5vbmUgYW5kIGRhdGEuYXR0bGVuICE9IG9fZGF0YS5hdHRsZW4pIG9yIChkYXRh LmF0dHByZWNpc2lvbiBpcyBkZWZpbmVkIGFuZCBkYXRhLmF0dHByZWNpc2lvbiAhPSBvX2RhdGEu YXR0cHJlY2lzaW9uKSAgb3IgKGRhdGEuY29sbHNwY25hbWUgYW5kIGRhdGEuY29sbHNwY25hbWUg IT0gb19kYXRhLmNvbGxzcGNuYW1lKSAlfQoreyUgaWYgKGRhdGEuY2x0eXBlIGFuZCBkYXRhLmNs dHlwZSAhPSBvX2RhdGEuY2x0eXBlKSBvciAoZGF0YS5hdHRsZW4gaXMgZGVmaW5lZCBhbmQgZGF0 YS5hdHRsZW4gIT0gb19kYXRhLmF0dGxlbikgb3IgKGRhdGEuYXR0cHJlY2lzaW9uIGlzIGRlZmlu ZWQgYW5kIGRhdGEuYXR0cHJlY2lzaW9uICE9IG9fZGF0YS5hdHRwcmVjaXNpb24pICBvciAoZGF0 YS5jb2xsc3BjbmFtZSBhbmQgZGF0YS5jb2xsc3BjbmFtZSAhPSBvX2RhdGEuY29sbHNwY25hbWUp ICV9CiBBTFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSl9 fQogICAgIEFMVEVSIENPTFVNTiB7JSBpZiBkYXRhLm5hbWUgJX17e2Nvbm58cXRUeXBlSWRlbnQo ZGF0YS5uYW1lKX19eyUgZWxzZSAlfXt7Y29ubnxxdFR5cGVJZGVudChvX2RhdGEubmFtZSl9fXsl IGVuZGlmICV9IFRZUEUge3sgR0VUX1RZUEUuVVBEQVRFX1RZUEVfU1FMKGNvbm4sIGRhdGEsIG9f ZGF0YSkgfX17JSBpZiBkYXRhLmNvbGxzcGNuYW1lIGFuZCBkYXRhLmNvbGxzcGNuYW1lICE9IG9f ZGF0YS5jb2xsc3BjbmFtZSAlfQogIENPTExBVEUge3tkYXRhLmNvbGxzcGNuYW1lfX17JSBlbGlm IG9fZGF0YS5jb2xsc3BjbmFtZSAlfSBDT0xMQVRFIHt7b19kYXRhLmNvbGxzcGNuYW1lfX17JSBl bmRpZiAlfTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy91dGlscy5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy90cmlnZ2Vycy91dGlscy5weQppbmRleCA0NTM1ZjhiNDEuLjdmOTMzNmFkYyAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3V0aWxzLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vy cy91dGlscy5weQpAQCAtNyw3ICs3LDcgQEAKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKLSIiIiBJ bXBsZW1lbnRzIFV0aWxpdHkgY2xhc3MgZm9yIEZvcmVpZ24gS2V5cy4gIiIiCisiIiIgSW1wbGVt ZW50cyBVdGlsaXR5IGNsYXNzIGZvciBUcmlnZ2Vycy4gIiIiCiAKIGZyb20gZmxhc2sgaW1wb3J0 IHJlbmRlcl90ZW1wbGF0ZQogZnJvbSBmbGFza19iYWJlbGV4IGltcG9ydCBnZXR0ZXh0IGFzIF8K ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy91dGlscy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy91dGlscy5weQppbmRl eCAxYzRjYzdiYjkuLjE1OTlkMzVlMiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3V0aWxzLnB5Cisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy91dGlscy5weQpAQCAtMjgsNiArMjgsOCBAQCBmcm9tIHBnYWRtaW4udXRp bHMgaW1wb3J0IElTX1BZMgogZnJvbSBwZ2FkbWluLnV0aWxzLmNvbXBpbGVfdGVtcGxhdGVfbmFt ZSBpbXBvcnQgY29tcGlsZV90ZW1wbGF0ZV9wYXRoCiBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVy IGltcG9ydCBnZXRfZHJpdmVyCiBmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIK K2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2No ZW1hcy50YWJsZXMuXAorICAgIGNvbHVtbnMgaW1wb3J0IHV0aWxzIGFzIGNvbHVtbl91dGlscwog ZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hl bWFzLnRhYmxlcy5cCiAgICAgY29uc3RyYWludHMuZm9yZWlnbl9rZXkgaW1wb3J0IHV0aWxzIGFz IGZrZXlfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMuc2NoZW1hcy50YWJsZXMuXApAQCAtNTcsMTUgKzU5LDYgQEAgY2xhc3MgQmFzZVRh YmxlVmlldyhQR0NoaWxkTm9kZVZpZXcsIEJhc2VQYXJ0aXRpb25UYWJsZSk6CiAgICAgICAtIEl0 IHdpbGwgcmV0dXJuIGZvcm1hdHRlZCBvdXRwdXQgb2YgcXVlcnkgcmVzdWx0CiAgICAgICAgIGFz IHBlciBjbGllbnQgbW9kZWwgZm9ybWF0CiAKLSAgICAqIF9jb2x1bW5zX2Zvcm1hdHRlcih0aWQs IGRhdGEpOgotICAgICAgLSBJdCB3aWxsIHJldHVybiBmb3JtYXR0ZWQgb3V0cHV0IG9mIHF1ZXJ5 IHJlc3VsdAotICAgICAgICBhcyBwZXIgY2xpZW50IG1vZGVsIGZvcm1hdCBmb3IgY29sdW1uIG5v ZGUKLQotICAgICogX2NsdHlwZV9mb3JtYXR0ZXIodHlwZSk6IChzdGF0aWNtZXRob2QpCi0gICAg ICAtIFdlIG5lZWQgdG8gcmVtb3ZlIFtdIGZyb20gdHlwZSBhbmQgYXBwZW5kIGl0Ci0gICAgICAg IGFmdGVyIGxlbmd0aC9wcmVjaXNpb24gc28gd2Ugd2lsbCBzZW5kIGZsYWcgZm9yCi0gICAgICAg IHNxbCB0ZW1wbGF0ZS4KLQogICAgICogZ2V0X3RhYmxlX2RlcGVuZGVudHMoc2VsZiwgdGlkKToK ICAgICAgIC0gVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRlcGVuZGVudHMgYW5kIHJldHVybiBhamF4 IHJlc3BvbnNlCiAgICAgICAgIGZvciB0aGUgdGFibGUgbm9kZS4KQEAgLTE0OSwxMjkgKzE0Miw2 IEBAIGNsYXNzIEJhc2VUYWJsZVZpZXcoUEdDaGlsZE5vZGVWaWV3LCBCYXNlUGFydGl0aW9uVGFi bGUpOgogCiAgICAgICAgIHJldHVybiB3cmFwCiAKLSAgICBkZWYgX2NvbHVtbnNfZm9ybWF0dGVy KHNlbGYsIHRpZCwgZGF0YSk6Ci0gICAgICAgICIiIgotICAgICAgICBBcmdzOgotICAgICAgICAg ICAgdGlkOiBUYWJsZSBPSUQKLSAgICAgICAgICAgIGRhdGE6IGRpY3Qgb2YgcXVlcnkgcmVzdWx0 Ci0KLSAgICAgICAgUmV0dXJuczoKLSAgICAgICAgICAgIEl0IHdpbGwgcmV0dXJuIGZvcm1hdHRl ZCBvdXRwdXQgb2YgcXVlcnkgcmVzdWx0Ci0gICAgICAgICAgICBhcyBwZXIgY2xpZW50IG1vZGVs IGZvcm1hdCBmb3IgY29sdW1uIG5vZGUKLSAgICAgICAgIiIiCi0gICAgICAgIGZvciBjb2x1bW4g aW4gZGF0YVsnY29sdW1ucyddOgotCi0gICAgICAgICAgICAjIFdlIG5lZWQgdG8gZm9ybWF0IHZh cmlhYmxlcyBhY2NvcmRpbmcgdG8gY2xpZW50IGpzIGNvbGxlY3Rpb24KLSAgICAgICAgICAgIGlm ICdhdHRvcHRpb25zJyBpbiBjb2x1bW4gYW5kIGNvbHVtblsnYXR0b3B0aW9ucyddIGlzIG5vdCBO b25lOgotICAgICAgICAgICAgICAgIHNwY29wdGlvbnMgPSBbXQotICAgICAgICAgICAgICAgIGZv ciBzcGNvcHRpb24gaW4gY29sdW1uWydhdHRvcHRpb25zJ106Ci0gICAgICAgICAgICAgICAgICAg IGssIHYgPSBzcGNvcHRpb24uc3BsaXQoJz0nKQotICAgICAgICAgICAgICAgICAgICBzcGNvcHRp b25zLmFwcGVuZCh7J25hbWUnOiBrLCAndmFsdWUnOiB2fSkKLQotICAgICAgICAgICAgICAgIGNv bHVtblsnYXR0b3B0aW9ucyddID0gc3Bjb3B0aW9ucwotCi0gICAgICAgICAgICAjIE5lZWQgdG8g Zm9ybWF0IHNlY3VyaXR5IGxhYmVscyBhY2NvcmRpbmcgdG8gY2xpZW50IGpzIGNvbGxlY3Rpb24K LSAgICAgICAgICAgIGlmICdzZWNsYWJlbHMnIGluIGNvbHVtbiBhbmQgY29sdW1uWydzZWNsYWJl bHMnXSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBzZWNsYWJlbHMgPSBbXQotICAgICAg ICAgICAgICAgIGZvciBzZWNsYmxzIGluIGNvbHVtblsnc2VjbGFiZWxzJ106Ci0gICAgICAgICAg ICAgICAgICAgIGssIHYgPSBzZWNsYmxzLnNwbGl0KCc9JykKLSAgICAgICAgICAgICAgICAgICAg c2VjbGFiZWxzLmFwcGVuZCh7J3Byb3ZpZGVyJzogaywgJ2xhYmVsJzogdn0pCi0KLSAgICAgICAg ICAgICAgICBjb2x1bW5bJ3NlY2xhYmVscyddID0gc2VjbGFiZWxzCi0KLSAgICAgICAgICAgIGlm ICdhdHRudW0nIGluIGNvbHVtbiBhbmQgY29sdW1uWydhdHRudW0nXSBpcyBub3QgTm9uZSBcCi0g ICAgICAgICAgICAgICAgICAgIGFuZCBjb2x1bW5bJ2F0dG51bSddID4gMDoKLSAgICAgICAgICAg ICAgICAjIFdlIG5lZWQgdG8gcGFyc2UgJiBjb252ZXJ0IEFDTCBjb21pbmcgZnJvbSBkYXRhYmFz ZSB0bwotICAgICAgICAgICAgICAgICMganNvbiBmb3JtYXQKLSAgICAgICAgICAgICAgICBTUUwg PSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCi0gICAgICAgICAgICAgICAgICAgIFtzZWxmLmNv bHVtbl90ZW1wbGF0ZV9wYXRoLCAnYWNsLnNxbCddKSwKLSAgICAgICAgICAgICAgICAgICAgdGlk PXRpZCwgY2xpZD1jb2x1bW5bJ2F0dG51bSddCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAg ICAgICAgIHN0YXR1cywgYWNsID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCi0KLSAgICAg ICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPWFjbCkKLQotICAgICAgICAgICAgICAgICMgV2Ug d2lsbCBzZXQgZ2V0IHByaXZpbGVnZXMgZnJvbSBhY2wgc3FsIHNvIHdlIGRvbid0IG5lZWQKLSAg ICAgICAgICAgICAgICAjIGl0IGZyb20gcHJvcGVydGllcyBzcWwKLSAgICAgICAgICAgICAgICBj b2x1bW5bJ2F0dGFjbCddID0gW10KLQotICAgICAgICAgICAgICAgIGZvciByb3cgaW4gYWNsWydy b3dzJ106Ci0gICAgICAgICAgICAgICAgICAgIHByaXYgPSBwYXJzZV9wcml2X2Zyb21fZGIocm93 KQotICAgICAgICAgICAgICAgICAgICBjb2x1bW4uc2V0ZGVmYXVsdChyb3dbJ2RlZnR5cGUnXSwg W10pLmFwcGVuZChwcml2KQotCi0gICAgICAgICAgICAgICAgIyB3ZSBhcmUgcmVjZWl2aW5nIHJl cXVlc3Qgd2hlbiBpbiBlZGl0IG1vZGUKLSAgICAgICAgICAgICAgICAjIHdlIHdpbGwgc2VuZCBm aWx0ZXJlZCB0eXBlcyByZWxhdGVkIHRvIGN1cnJlbnQgdHlwZQotCi0gICAgICAgICAgICAgICAg dHlwZV9pZCA9IGNvbHVtblsnYXR0dHlwaWQnXQotCi0gICAgICAgICAgICAgICAgZnVsbHR5cGUg PSBzZWxmLmdldF9mdWxsX3R5cGUoCi0gICAgICAgICAgICAgICAgICAgIGNvbHVtblsndHlwbnNw bmFtZSddLCBjb2x1bW5bJ3R5cG5hbWUnXSwKLSAgICAgICAgICAgICAgICAgICAgY29sdW1uWydp c2R1cCddLCBjb2x1bW5bJ2F0dG5kaW1zJ10sIGNvbHVtblsnYXR0dHlwbW9kJ10KLSAgICAgICAg ICAgICAgICApCi0KLSAgICAgICAgICAgICAgICBsZW5ndGggPSBGYWxzZQotICAgICAgICAgICAg ICAgIHByZWNpc2lvbiA9IEZhbHNlCi0gICAgICAgICAgICAgICAgaWYgJ2VsZW1vaWQnIGluIGNv bHVtbjoKLSAgICAgICAgICAgICAgICAgICAgbGVuZ3RoLCBwcmVjaXNpb24sIHR5cGV2YWwgPSBc Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmdldF9sZW5ndGhfcHJlY2lzaW9uKGNvbHVt blsnZWxlbW9pZCddKQotCi0gICAgICAgICAgICAgICAgIyBTZXQgbGVuZ3RoIGFuZCBwcmVjaXNp b24gdG8gTm9uZQotICAgICAgICAgICAgICAgIGNvbHVtblsnYXR0bGVuJ10gPSBOb25lCi0gICAg ICAgICAgICAgICAgY29sdW1uWydhdHRwcmVjaXNpb24nXSA9IE5vbmUKLQotICAgICAgICAgICAg ICAgICMgSWYgd2UgaGF2ZSBsZW5ndGggJiBwcmVjaXNpb24gYm90aAotICAgICAgICAgICAgICAg IGlmIGxlbmd0aCBhbmQgcHJlY2lzaW9uOgotICAgICAgICAgICAgICAgICAgICBtYXRjaE9iaiA9 IHJlLnNlYXJjaChyJyhcZCspLChcZCspJywgZnVsbHR5cGUpCi0gICAgICAgICAgICAgICAgICAg IGlmIG1hdGNoT2JqOgotICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uWydhdHRsZW4nXSA9 IG1hdGNoT2JqLmdyb3VwKDEpCi0gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5bJ2F0dHBy ZWNpc2lvbiddID0gbWF0Y2hPYmouZ3JvdXAoMikKLSAgICAgICAgICAgICAgICBlbGlmIGxlbmd0 aDoKLSAgICAgICAgICAgICAgICAgICAgIyBJZiB3ZSBoYXZlIGxlbmd0aCBvbmx5Ci0gICAgICAg ICAgICAgICAgICAgIG1hdGNoT2JqID0gcmUuc2VhcmNoKHInKFxkKyknLCBmdWxsdHlwZSkKLSAg ICAgICAgICAgICAgICAgICAgaWYgbWF0Y2hPYmo6Ci0gICAgICAgICAgICAgICAgICAgICAgICBj b2x1bW5bJ2F0dGxlbiddID0gbWF0Y2hPYmouZ3JvdXAoMSkKLSAgICAgICAgICAgICAgICAgICAg ICAgIGNvbHVtblsnYXR0cHJlY2lzaW9uJ10gPSBOb25lCi0KLSAgICAgICAgICAgICAgICBTUUwg PSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYuY29sdW1uX3RlbXBsYXRlX3BhdGgsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXNfcmVmZXJl bmNlZC5zcWwnXSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZD10 aWQsIGNsaWQ9Y29sdW1uWydhdHRudW0nXSkKLQotICAgICAgICAgICAgICAgIHN0YXR1cywgaXNf cmVmZXJlbmNlID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKLQotICAgICAgICAgICAg ICAgIGVkaXRfdHlwZXNfbGlzdCA9IGxpc3QoKQotICAgICAgICAgICAgICAgICMgV2Ugd2lsbCBu ZWVkIHByZXNlbnQgdHlwZSBpbiBlZGl0IG1vZGUKLSAgICAgICAgICAgICAgICBlZGl0X3R5cGVz X2xpc3QuYXBwZW5kKGNvbHVtblsnY2x0eXBlJ10pCi0KLSAgICAgICAgICAgICAgICBpZiBpbnQo aXNfcmVmZXJlbmNlKSA9PSAwOgotICAgICAgICAgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVt cGxhdGUoIi8iLmpvaW4oW3NlbGYuY29sdW1uX3RlbXBsYXRlX3BhdGgsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXRfbW9kZV90eXBlcy5z cWwnXSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlX2lk PXR5cGVfaWQpCi0gICAgICAgICAgICAgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5l eGVjdXRlXzJkYXJyYXkoU1FMKQotCi0gICAgICAgICAgICAgICAgICAgIGZvciByb3cgaW4gcnNl dFsncm93cyddOgotICAgICAgICAgICAgICAgICAgICAgICAgZWRpdF90eXBlc19saXN0LmFwcGVu ZChyb3dbJ3R5cG5hbWUnXSkKLQotICAgICAgICAgICAgICAgIGNvbHVtblsnZWRpdF90eXBlcydd ID0gZWRpdF90eXBlc19saXN0Ci0gICAgICAgICAgICAgICAgY29sdW1uWydjbHR5cGUnXSA9IERh dGFUeXBlUmVhZGVyLnBhcnNlX3R5cGVfbmFtZSgKLSAgICAgICAgICAgICAgICAgICAgY29sdW1u WydjbHR5cGUnXQotICAgICAgICAgICAgICAgICkKLQotICAgICAgICAgICAgICAgIGlmICdpbmRr ZXknIGluIGNvbHVtbjoKLSAgICAgICAgICAgICAgICAgICAgIyBDdXJyZW50IGNvbHVtbgotICAg ICAgICAgICAgICAgICAgICBhdHRudW0gPSBzdHIoY29sdW1uWydhdHRudW0nXSkKLQotICAgICAg ICAgICAgICAgICAgICAjIFNpbmdsZS9MaXN0IG9mIHByaW1hcnkga2V5IGNvbHVtbihzKQotICAg ICAgICAgICAgICAgICAgICBpbmRrZXkgPSBzdHIoY29sdW1uWydpbmRrZXknXSkKLQotICAgICAg ICAgICAgICAgICAgICAjIFdlIHdpbGwgY2hlY2sgaWYgY29sdW1uIGlzIGluIHByaW1hcnkgY29s dW1uKHMpCi0gICAgICAgICAgICAgICAgICAgIGlmIGF0dG51bSBpbiBpbmRrZXkuc3BsaXQoIiAi KToKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblsnaXNfcHJpbWFyeV9rZXknXSA9IFRy dWUKLSAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgIGNv bHVtblsnaXNfcHJpbWFyeV9rZXknXSA9IEZhbHNlCi0KLSAgICAgICAgcmV0dXJuIGRhdGEKLQog ICAgIGRlZiBfZm9ybWF0dGVyKHNlbGYsIGRpZCwgc2NpZCwgdGlkLCBkYXRhKToKICAgICAgICAg IiIiCiAgICAgICAgIEFyZ3M6CkBAIC0zNjMsMjggKzIzMyw5IEBAIGNsYXNzIEJhc2VUYWJsZVZp ZXcoUEdDaGlsZE5vZGVWaWV3LCBCYXNlUGFydGl0aW9uVGFibGUpOgogCiAgICAgICAgICMgV2Ug d2lsbCBmZXRjaCBhbGwgdGhlIGNvbHVtbnMgZm9yIHRoZSB0YWJsZSB1c2luZwogICAgICAgICAj IGNvbHVtbnMgcHJvcGVydGllcy5zcWwsIHNvIHdlIG5lZWQgdG8gc2V0IHRlbXBsYXRlIHBhdGgK LSAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLmNvbHVtbl90ZW1w bGF0ZV9wYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9w ZXJ0aWVzLnNxbCddKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZD10aWQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93X3N5c19vYmplY3RzPUZhbHNlCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxm LmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKLSAgICAgICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAg ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQotICAgICAgICBh bGxfY29sdW1ucyA9IHJlc1sncm93cyddCi0KLSAgICAgICAgIyBBZGQgaW5oZXJpdGVkZnJvbSBk ZXRhaWxzIGZyb20gb3RoZXIgY29sdW1ucyAtIHR5cGUsIHRhYmxlCi0gICAgICAgIGZvciBjb2wg aW4gYWxsX2NvbHVtbnM6Ci0gICAgICAgICAgICBmb3Igb3RoZXJfY29sIGluIG90aGVyX2NvbHVt bnM6Ci0gICAgICAgICAgICAgICAgaWYgY29sWyduYW1lJ10gPT0gb3RoZXJfY29sWyduYW1lJ106 Ci0gICAgICAgICAgICAgICAgICAgIGNvbFsnaW5oZXJpdGVkZnJvbScgKyB0YWJsZV9vcl90eXBl XSA9IFwKLSAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyX2NvbFsnaW5oZXJpdGVkZnJvbSdd Ci0KLSAgICAgICAgZGF0YVsnY29sdW1ucyddID0gYWxsX2NvbHVtbnMKLQotICAgICAgICBpZiAn Y29sdW1ucycgaW4gZGF0YSBhbmQgbGVuKGRhdGFbJ2NvbHVtbnMnXSkgPiAwOgotICAgICAgICAg ICAgZGF0YSA9IHNlbGYuX2NvbHVtbnNfZm9ybWF0dGVyKHRpZCwgZGF0YSkKKyAgICAgICAgZGF0 YSA9IGNvbHVtbl91dGlscy5nZXRfZm9ybWF0dGVkX2NvbHVtbnMoc2VsZi5jb25uLCB0aWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsIG90 aGVyX2NvbHVtbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRhYmxlX29yX3R5cGUpCiAKICAgICAgICAgIyBIZXJlIHdlIHdpbGwgYWRkIGNvbnN0 cmFpbnQgaW4gb3VyIG91dHB1dAogICAgICAgICBpbmRleF9jb25zdHJhaW50cyA9IHsKQEAgLTQy MCwyMyArMjcxLDYgQEAgY2xhc3MgQmFzZVRhYmxlVmlldyhQR0NoaWxkTm9kZVZpZXcsIEJhc2VQ YXJ0aXRpb25UYWJsZSk6CiAKICAgICAgICAgcmV0dXJuIGRhdGEKIAotICAgIEBzdGF0aWNtZXRo b2QKLSAgICBkZWYgX2NsdHlwZV9mb3JtYXR0ZXIoZGF0YV90eXBlKToKLSAgICAgICAgIiIiCi0K LSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGRhdGFfdHlwZTogVHlwZSBzdHJpbmcKLQotICAg ICAgICBSZXR1cm5zOgotICAgICAgICAgICAgV2UgbmVlZCB0byByZW1vdmUgW10gZnJvbSB0eXBl IGFuZCBhcHBlbmQgaXQKLSAgICAgICAgICAgIGFmdGVyIGxlbmd0aC9wcmVjaXNpb24gc28gd2Ug d2lsbCBzZW5kIGZsYWcgZm9yCi0gICAgICAgICAgICBzcWwgdGVtcGxhdGUKLSAgICAgICAgIiIi Ci0gICAgICAgIGlmICdbXScgaW4gZGF0YV90eXBlOgotICAgICAgICAgICAgcmV0dXJuIGRhdGFf dHlwZVs6LTJdLCBUcnVlCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gZGF0YV90 eXBlLCBGYWxzZQotCiAgICAgZGVmIGdldF90YWJsZV9kZXBlbmRlbnRzKHNlbGYsIHRpZCk6CiAg ICAgICAgICIiIgogICAgICAgICBUaGlzIGZ1bmN0aW9uIGdldCB0aGUgZGVwZW5kZW50cyBhbmQg cmV0dXJuIGFqYXggcmVzcG9uc2UKQEAgLTYwOCw3ICs0NDIsNyBAQCBjbGFzcyBCYXNlVGFibGVW aWV3KFBHQ2hpbGROb2RlVmlldywgQmFzZVBhcnRpdGlvblRhYmxlKToKICAgICAgICAgICAgICAg ICAjIGNoZWNrIHR5cGUgZm9yICdbXScgaW4gaXQKICAgICAgICAgICAgICAgICBpZiAnY2x0eXBl JyBpbiBjOgogICAgICAgICAgICAgICAgICAgICBjWydjbHR5cGUnXSwgY1snaGFzU3FyQnJhY2tl dCddID0gXAotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY2x0eXBlX2Zvcm1hdHRlcihj WydjbHR5cGUnXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbl91dGlscy50eXBlX2Zv cm1hdHRlcihjWydjbHR5cGUnXSkKIAogICAgICAgICBzcWxfaGVhZGVyID0gdSItLSBUYWJsZTog ezB9XG5cbi0tICIuZm9ybWF0KAogICAgICAgICAgICAgc2VsZi5xdElkZW50KHNlbGYuY29ubiwg ZGF0YVsnc2NoZW1hJ10sIGRhdGFbJ25hbWUnXSkpCkBAIC05NzEsNyArODA1LDcgQEAgY2xhc3Mg QmFzZVRhYmxlVmlldyhQR0NoaWxkTm9kZVZpZXcsIEJhc2VQYXJ0aXRpb25UYWJsZSk6CiAgICAg ICAgICAgICAjIFBhcnNlL0Zvcm1hdCBjb2x1bW5zICYgY3JlYXRlIHNxbAogICAgICAgICAgICAg aWYgJ2NvbHVtbnMnIGluIGRhdGE6CiAgICAgICAgICAgICAgICAgIyBQYXJzZSB0aGUgZGF0YSBj b21pbmcgZnJvbSBjbGllbnQKLSAgICAgICAgICAgICAgICBkYXRhID0gc2VsZi5fcGFyc2VfZm9y bWF0X2NvbHVtbnMoZGF0YSwgbW9kZT0nZWRpdCcpCisgICAgICAgICAgICAgICAgZGF0YSA9IGNv bHVtbl91dGlscy5wYXJzZV9mb3JtYXRfY29sdW1ucyhkYXRhLCBtb2RlPSdlZGl0JykKIAogICAg ICAgICAgICAgICAgIGNvbHVtbnMgPSBkYXRhWydjb2x1bW5zJ10KICAgICAgICAgICAgICAgICBj b2x1bW5fc3FsID0gJ1xuJwpAQCAtMTAxMCw4MSArODQ0LDE3IEBAIGNsYXNzIEJhc2VUYWJsZVZp ZXcoUEdDaGlsZE5vZGVWaWV3LCBCYXNlUGFydGl0aW9uVGFibGUpOgogCiAgICAgICAgICAgICAg ICAgICAgICAgICBvbGRfY29sX2RhdGFbJ2NsdHlwZSddLCBcCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgb2xkX2NvbF9kYXRhWydoYXNTcXJCcmFja2V0J10gPSBcCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5fY2x0eXBlX2Zvcm1hdHRlcihvbGRfY29sX2RhdGFbJ2NsdHlw ZSddKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbl91dGlscy50eXBlX2Zvcm1h dHRlcihvbGRfY29sX2RhdGFbJ2NsdHlwZSddKQogICAgICAgICAgICAgICAgICAgICAgICAgb2xk X2NvbF9kYXRhID0gXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhc2VUYWJsZVZpZXcu Y29udmVydF9sZW5ndGhfcHJlY2lzaW9uX3RvX3N0cmluZygKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2xkX2NvbF9kYXRhCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKQot Ci0gICAgICAgICAgICAgICAgICAgICAgICBmdWxsdHlwZSA9IHNlbGYuZ2V0X2Z1bGxfdHlwZSgK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRfY29sX2RhdGFbJ3R5cG5zcG5hbWUnXSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRfY29sX2RhdGFbJ3R5cG5hbWUnXSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRfY29sX2RhdGFbJ2lzZHVwJ10sCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgb2xkX2NvbF9kYXRhWydhdHRuZGltcyddLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG9sZF9jb2xfZGF0YVsnYXR0dHlwbW9kJ10KLSAgICAgICAgICAg ICAgICAgICAgICAgICkKLQotICAgICAgICAgICAgICAgICAgICAgICAgZGVmIGdldF90eXBlX2F0 dHIoa2V5LCBkYXRhKToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiJVdGlsaXR5IGZ1 bmN0aW9uIiIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYga2V5IGluIGRhdGE6Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhW2tleV0KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgICAgICAgICAgICAgICAgICAg ICAjIElmIHRoZSBjb2x1bW4gZGF0YSB0eXBlIGhhcyBub3QgY2hhbmdlZCB0aGVuIGZldGNoCi0g ICAgICAgICAgICAgICAgICAgICAgICAjIG9sZCBsZW5ndGggYW5kIHByZWNpc2lvbgotICAgICAg ICAgICAgICAgICAgICAgICAgaWYgJ2VsZW1vaWQnIGluIG9sZF9jb2xfZGF0YSBhbmQgJ2NsdHlw ZScgbm90IGluIGM6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoLCBwcmVjaXNp b24sIHR5cGV2YWwgPSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZ2V0 X2xlbmd0aF9wcmVjaXNpb24oCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv bGRfY29sX2RhdGFbJ2VsZW1vaWQnXSkKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg SWYgd2UgaGF2ZSBsZW5ndGggJiBwcmVjaXNpb24gYm90aAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIGxlbmd0aCBhbmQgcHJlY2lzaW9uOgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtYXRjaE9iaiA9IHJlLnNlYXJjaChyJyhcZCspLChcZCspJywgZnVsbHR5cGUpCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG1hdGNoT2JqOgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY1snYXR0bGVuJ10gPSBnZXRfdHlwZV9hdHRyKAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhdHRsZW4nLCBjCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIG9yIG1hdGNoT2JqLmdyb3VwKDEpCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjWydhdHRwcmVjaXNpb24nXSA9IGdldF90 eXBlX2F0dHIoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2F0dHBy ZWNpc2lvbicsIGMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgb3IgbWF0 Y2hPYmouZ3JvdXAoMikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIGxlbmd0aDoK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBJZiB3ZSBoYXZlIGxlbmd0aCBvbmx5 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoT2JqID0gcmUuc2VhcmNoKHIn KFxkKyknLCBmdWxsdHlwZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbWF0 Y2hPYmo6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjWydhdHRsZW4nXSA9 IGdldF90eXBlX2F0dHIoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J2F0dGxlbicsIGMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgb3IgbWF0 Y2hPYmouZ3JvdXAoMSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNbJ2F0 dHByZWNpc2lvbiddID0gTm9uZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNbJ2F0dGxlbiddID0gTm9uZQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjWydhdHRwcmVjaXNpb24nXSA9IE5vbmUKLQotICAg ICAgICAgICAgICAgICAgICAgICAgaWYgJ2NsdHlwZScgaW4gYzoKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0eXBlbmFtZSA9IGNbJ2NsdHlwZSddCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgJ2hhc1NxckJyYWNrZXQnIGluIGMgYW5kIGNbJ2hhc1NxckJyYWNrZXQnXToKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgKz0gJ1tdJwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxlbmd0aCwgcHJlY2lzaW9uLCB0eXBldmFsID0gXAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmdldF9sZW5ndGhfcHJlY2lzaW9uKHR5cGVu YW1lKQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpZiBuZXcgZGF0YXR5cGUgZG9l cyBub3QgaGF2ZSBsZW5ndGggb3IgcHJlY2lzaW9uCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIyB0aGVuIHdlIGNhbm5vdCBhcHBseSBsZW5ndGggb3IgcHJlY2lzaW9uIG9mIG9sZAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMgZGF0YXR5cGUgdG8gbmV3IG9uZS4KLQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBsZW5ndGg6Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG9sZF9jb2xfZGF0YVsnYXR0bGVuJ10gPSAtMQotCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgbm90IHByZWNpc2lvbjoKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgb2xkX2NvbF9kYXRhWydhdHRwcmVjaXNpb24nXSA9IE5vbmUKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb2x1bW5fdXRpbHMuY29udmVydF9sZW5ndGhfcHJlY2lzaW9uX3Rv X3N0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkX2NvbF9kYXRhKQor ICAgICAgICAgICAgICAgICAgICAgICAgb2xkX2NvbF9kYXRhID0gY29sdW1uX3V0aWxzLmZldGNo X2xlbmd0aF9wcmVjaXNpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkX2NvbF9k YXRhKQogCiAgICAgICAgICAgICAgICAgICAgICAgICBvbGRfY29sX2RhdGFbJ2NsdHlwZSddID0g XAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGFUeXBlUmVhZGVyLnBhcnNlX3R5cGVf bmFtZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkX2NvbF9kYXRhWydjbHR5 cGUnXSkKIAotICAgICAgICAgICAgICAgICAgICAgICAgaWYgaW50KG9sZF9jb2xfZGF0YVsnYXR0 bGVuJ10pID09IC0xOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZF9jb2xfZGF0YVsn YXR0bGVuJ10gPSBOb25lCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAnYXR0cHJlY2lzaW9u JyBub3QgaW4gb2xkX2NvbF9kYXRhOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZF9j b2xfZGF0YVsnYXR0cHJlY2lzaW9uJ10gPSBOb25lCi0KICAgICAgICAgICAgICAgICAgICAgICAg ICMgU3FsIGZvciBhbHRlciBjb2x1bW4KICAgICAgICAgICAgICAgICAgICAgICAgIGlmICdpbmhl cml0ZWRmcm9tJyBub3QgaW4gYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5f c3FsICs9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKQEAgLTEwOTgsNyArODY4LDcgQEAgY2xh c3MgQmFzZVRhYmxlVmlldyhQR0NoaWxkTm9kZVZpZXcsIEJhc2VQYXJ0aXRpb25UYWJsZSk6CiAg ICAgICAgICAgICAgICAgICAgICAgICBjWydzY2hlbWEnXSA9IGRhdGFbJ3NjaGVtYSddCiAgICAg ICAgICAgICAgICAgICAgICAgICBjWyd0YWJsZSddID0gZGF0YVsnbmFtZSddCiAKLSAgICAgICAg ICAgICAgICAgICAgICAgIGMgPSBCYXNlVGFibGVWaWV3LmNvbnZlcnRfbGVuZ3RoX3ByZWNpc2lv bl90b19zdHJpbmcoYykKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBjb2x1bW5fdXRpbHMu Y29udmVydF9sZW5ndGhfcHJlY2lzaW9uX3RvX3N0cmluZyhjKQogCiAgICAgICAgICAgICAgICAg ICAgICAgICBpZiAnaW5oZXJpdGVkZnJvbScgbm90IGluIGM6CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29sdW1uX3NxbCArPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCkBAIC0xMjA5 LDcgKzk3OSw3IEBAIGNsYXNzIEJhc2VUYWJsZVZpZXcoUEdDaGlsZE5vZGVWaWV3LCBCYXNlUGFy dGl0aW9uVGFibGUpOgogICAgICAgICAgICAgICAgIGRhdGFbJ3JlbGFjbCddID0gcGFyc2VfcHJp dl90b19kYihkYXRhWydyZWxhY2wnXSwgc2VsZi5hY2wpCiAKICAgICAgICAgICAgICMgUGFyc2Ug JiBmb3JtYXQgY29sdW1ucwotICAgICAgICAgICAgZGF0YSA9IHNlbGYuX3BhcnNlX2Zvcm1hdF9j b2x1bW5zKGRhdGEpCisgICAgICAgICAgICBkYXRhID0gY29sdW1uX3V0aWxzLnBhcnNlX2Zvcm1h dF9jb2x1bW5zKGRhdGEpCiAgICAgICAgICAgICBkYXRhID0gQmFzZVRhYmxlVmlldy5jaGVja19h bmRfY29udmVydF9uYW1lX3RvX3N0cmluZyhkYXRhKQogCiAgICAgICAgICAgICBpZiAnZm9yZWln bl9rZXknIGluIGRhdGE6CkBAIC0xNjU5LDI0ICsxNDI5LDYgQEAgY2xhc3MgQmFzZVRhYmxlVmll dyhQR0NoaWxkTm9kZVZpZXcsIEJhc2VQYXJ0aXRpb25UYWJsZSk6CiAKICAgICAgICAgcmV0dXJu IHNjaGVtYV9uYW1lLCB0YWJsZV9uYW1lCiAKLSAgICBAc3RhdGljbWV0aG9kCi0gICAgZGVmIGNv bnZlcnRfbGVuZ3RoX3ByZWNpc2lvbl90b19zdHJpbmcoZGF0YSk6Ci0gICAgICAgICIiIgotICAg ICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gY29udmVydCBsZW5ndGggJiBwcmVjaXNpb24g dG8gc3RyaW5nCi0gICAgICAgIHRvIGhhbmRsZSBjYXNlIGxpa2Ugd2hlbiB1c2VyIGdpdmVzIDAg YXMgbGVuZ3RoCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGRhdGE6IERhdGEgZnJvbSBj bGllbnQKLQotICAgICAgICBSZXR1cm5zOgotICAgICAgICAgICAgQ29udmVydGVkIGRhdGEKLSAg ICAgICAgIiIiCi0gICAgICAgIGlmICdhdHRsZW4nIGluIGRhdGEgYW5kIGRhdGFbJ2F0dGxlbidd IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgZGF0YVsnYXR0bGVuJ10gPSBzdHIoZGF0YVsnYXR0 bGVuJ10pCi0gICAgICAgIGlmICdhdHRwcmVjaXNpb24nIGluIGRhdGEgYW5kIGRhdGFbJ2F0dHBy ZWNpc2lvbiddIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgZGF0YVsnYXR0cHJlY2lzaW9uJ10g PSBzdHIoZGF0YVsnYXR0cHJlY2lzaW9uJ10pCi0gICAgICAgIHJldHVybiBkYXRhCi0KICAgICBk ZWYgdXBkYXRlX3ZhY3V1bV9zZXR0aW5ncyhzZWxmLCB2YWN1dW1fa2V5LCBvbGRfZGF0YSwgZGF0 YSk6CiAgICAgICAgICIiIgogICAgICAgICBUaGlzIGZ1bmN0aW9uIGl0ZXJhdGUgdGhlIHZhY3V1 bSBhbmQgdmFjdXVtIHRvYXN0IHRhYmxlIGFuZCBjcmVhdGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVz L3N0YXRpYy9qcy90eXBlLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvc3RhdGljL2pzL3R5cGUuanMKaW5kZXggYjM0 ZDg0NWY4Li4wYWM4YWQ3M2EgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3N0YXRpYy9qcy90eXBlLmpz CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3R5cGVzL3N0YXRpYy9qcy90eXBlLmpzCkBAIC0xMTEsNyArMTExLDcgQEAgZGVm aW5lKCdwZ2FkbWluLm5vZGUudHlwZScsIFsKICAgICAgIC8vIE5vdGU6IFRoZXJlIGFyZSBhbWJp Z3VpdGllcyBpbiB0aGUgUEcgY2F0YWxvZ3MgYW5kIGRvY3MgYmV0d2VlbgogICAgICAgLy8gcHJl Y2lzaW9uIGFuZCBzY2FsZS4gSW4gdGhlIFVJLCB3ZSB0cnkgdG8gZm9sbG93IHRoZSBkb2NzIGFz CiAgICAgICAvLyBjbG9zZWx5IGFzIHBvc3NpYmxlLCB0aGVyZWZvcmUgd2UgdXNlIExlbmd0aC9Q cmVjaXNpb24gYW5kIFNjYWxlCi0gICAgICBpZDogJ3RsZW5ndGgnLCBsYWJlbDogZ2V0dGV4dCgn TGVuZ3RoL3ByZWNpc2lvbicpLCBkZXBzOiBbJ3R5cGUnXSwgdHlwZTogJ3RleHQnLAorICAgICAg aWQ6ICd0bGVuZ3RoJywgbGFiZWw6IGdldHRleHQoJ0xlbmd0aC9QcmVjaXNpb24nKSwgZGVwczog Wyd0eXBlJ10sIHR5cGU6ICd0ZXh0JywKICAgICAgIGRpc2FibGVkOiBmYWxzZSwgY2VsbDogSW50 ZWdlckRlcENlbGwsCiAgICAgICBlZGl0YWJsZTogZnVuY3Rpb24obSkgewogICAgICAgICAvLyBX ZSB3aWxsIHN0b3JlIHR5cGUgZnJvbSBzZWxlY3RlZCBmcm9tIGNvbWJvYm94CkBAIC0yMTQsMTMg KzIxNCwxMyBAQCBkZWZpbmUoJ3BnYWRtaW4ubm9kZS50eXBlJywgWwogICAgICAgICB0aGlzLmVy cm9yTW9kZWwuc2V0KCd0eXBlJywgZXJybXNnKTsKICAgICAgICAgcmV0dXJuIGVycm1zZzsKICAg ICAgIH0KLSAgICAgIC8vIFZhbGlkYXRpb24gZm9yIExlbmd0aC9wcmVjaXNpb24gZmllbGQgKHNl ZSBjb21tZW50cyBhYm92ZSBpZiBjb25mdXNlZCBhYm91dCB0aGUgbmFtaW5nISkKKyAgICAgIC8v IFZhbGlkYXRpb24gZm9yIExlbmd0aC9QcmVjaXNpb24gZmllbGQgKHNlZSBjb21tZW50cyBhYm92 ZSBpZiBjb25mdXNlZCBhYm91dCB0aGUgbmFtaW5nISkKICAgICAgIGVsc2UgaWYgKHRoaXMuZ2V0 KCdpc190bGVuZ3RoJykKICAgICAgICAgJiYgIV8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ3RsZW5n dGgnKSkpIHsKICAgICAgICAgaWYgKHRoaXMuZ2V0KCd0bGVuZ3RoJykgPCB0aGlzLmdldCgnbWlu X3ZhbCcpKQotICAgICAgICAgIGVycm1zZyA9IGdldHRleHQoJ0xlbmd0aC9wcmVjaXNpb24gc2hv dWxkIG5vdCBiZSBsZXNzIHRoYW4gJXMnLCB0aGlzLmdldCgnbWluX3ZhbCcpKTsKKyAgICAgICAg ICBlcnJtc2cgPSBnZXR0ZXh0KCdMZW5ndGgvUHJlY2lzaW9uIHNob3VsZCBub3QgYmUgbGVzcyB0 aGFuICVzJywgdGhpcy5nZXQoJ21pbl92YWwnKSk7CiAgICAgICAgIGlmICh0aGlzLmdldCgndGxl bmd0aCcpID4gdGhpcy5nZXQoJ21heF92YWwnKSApCi0gICAgICAgICAgZXJybXNnID0gZ2V0dGV4 dCgnTGVuZ3RoL3ByZWNpc2lvbiBzaG91bGQgbm90IGJlIGdyZWF0ZXIgdGhhbiAlcycsIHRoaXMu Z2V0KCdtYXhfdmFsJykpOworICAgICAgICAgIGVycm1zZyA9IGdldHRleHQoJ0xlbmd0aC9QcmVj aXNpb24gc2hvdWxkIG5vdCBiZSBncmVhdGVyIHRoYW4gJXMnLCB0aGlzLmdldCgnbWF4X3ZhbCcp KTsKICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIGFueSBlcnJvciBzZXQgdGhlbiB0aHJvdyBpdCB0 byB1c2VyCiAgICAgICAgIGlmKGVycm1zZykgewogICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5z ZXQoJ3RsZW5ndGgnLCBlcnJtc2cpOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVtcGxhdGVzL3R5 cGVzL21hY3Jvcy9nZXRfZnVsbF90eXBlX3NxbF9mb3JtYXQubWFjcm9zIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVt cGxhdGVzL3R5cGVzL21hY3Jvcy9nZXRfZnVsbF90eXBlX3NxbF9mb3JtYXQubWFjcm9zCmluZGV4 IDY2ZTRlMmZiZS4uZjc3NDYwMDgwIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0ZXMvdHlw ZXMvbWFjcm9zL2dldF9mdWxsX3R5cGVfc3FsX2Zvcm1hdC5tYWNyb3MKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMv dGVtcGxhdGVzL3R5cGVzL21hY3Jvcy9nZXRfZnVsbF90eXBlX3NxbF9mb3JtYXQubWFjcm9zCkBA IC0yMiw2ICsyMiwyMSBAQCB0aW1lKHt7IHR5cGVfbGVuZ3RoIH19KSB3aXRoIHRpbWUgem9uZXsl IGVuZGlmICV9eyUgaWYgaXNfdHlwZV9hcnJheSAlfQogeyMjIyMjIEJFTE9XIE1BQ1JPIElTIFVT RUQgRk9SIENPTFVNTiBUWVBFIFVQREFURSAjIyMjI30KIHsjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyN9CiB7JSBtYWNybyBVUERBVEVfVFlQRV9T UUwoY29ubiwgZGF0YSwgb19kYXRhKSAlfQoreyUgaWYgZGF0YS5hdHRwcmVjaXNpb24gaXMgZGVm aW5lZCBhbmQgZGF0YS5hdHRwcmVjaXNpb24gaXMgbm9uZSAlfQoreyUgc2V0IG9sZF9wcmVjaXNp b24gPSBub25lICV9Cit7JSBlbGlmIGRhdGEuYXR0cHJlY2lzaW9uIGlzIGRlZmluZWQgYW5kIGRh dGEuYXR0cHJlY2lzaW9uIGlzIG5vdCBub25lICV9Cit7JSBzZXQgZGF0YV9wcmVjaXNpb24gPSBk YXRhLmF0dHByZWNpc2lvbiAlfQoreyUgc2V0IG9sZF9wcmVjaXNpb24gPSBvX2RhdGEuYXR0cHJl Y2lzaW9uICV9Cit7JSBlbHNlICV9Cit7JSBzZXQgb2xkX3ByZWNpc2lvbiA9IG9fZGF0YS5hdHRw cmVjaXNpb24gJX0KK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmF0dGxlbiBpcyBkZWZpbmVkIGFu ZCBkYXRhLmF0dGxlbiBpcyBub25lICV9Cit7JSBzZXQgb2xkX2xlbmd0aCA9IG5vbmUgJX0KK3sl IHNldCBvbGRfcHJlY2lzaW9uID0gbm9uZSAlfQoreyUgc2V0IGRhdGFfcHJlY2lzaW9uID0gbm9u ZSAlfQoreyUgZWxzZSAlfQoreyUgc2V0IG9sZF9sZW5ndGggPSBvX2RhdGEuYXR0bGVuICV9Cit7 JSBlbmRpZiAlfQogeyUgaWYgZGF0YS5jbHR5cGUgYW5kIGRhdGEuY2x0eXBlLnN0YXJ0c3dpdGgo J3RpbWUnKSBhbmQgZGF0YS5hdHRsZW4gJX0KIHsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjfQogeyMjIyMjIyBOZWVkIHRvIGNoZWNr IGFnYWluc3Qgc2VwYXJhdGUgdGltZSB0eXBlcyAtIFNUQVJUICMjIyMjI30KQEAgLTM0LDEyICs0 OSwxMiBAQCB0aW1lKHt7IGRhdGEuYXR0bGVuIH19KSB3aXRoIHRpbWUgem9uZSB7JSBlbmRpZiAl fXslIGlmIGRhdGEuaGFzU3FyQnJhY2tldCAlfVtdewogeyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyN9CiB7IyBpZiBvbmx5IHR5cGUg Y2hhbmdlcywgd2UgbmVlZCB0byBnaXZlIHByZXZpb3VzIGxlbmd0aCB0byBjdXJyZW50IHR5cGUj fQogeyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyN9Ci17JSBlbGlmIGRhdGEuY2x0eXBlIGFuZCBkYXRhLmNsdHlwZS5zdGFydHN3aXRo KCd0aW1lJykgYW5kIG9fZGF0YS5hdHRsZW4gIT0gJ05vbmUnICV9Cit7JSBlbGlmIGRhdGEuY2x0 eXBlIGFuZCBkYXRhLmNsdHlwZS5zdGFydHN3aXRoKCd0aW1lJykgJX0KIHslIGlmIGRhdGEuY2x0 eXBlID09ICJ0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUiICV9Ci10aW1lc3RhbXAoe3sgb19k YXRhLmF0dGxlbiB9fSkgd2l0aG91dCB0aW1lIHpvbmUgeyUgZWxpZiBkYXRhLmNsdHlwZSA9PSAi dGltZXN0YW1wIHdpdGggdGltZSB6b25lIiAlfQotdGltZXN0YW1wKHt7IG9fZGF0YS5hdHRsZW4g fX0pIHdpdGggdGltZSB6b25lIHslIGVsaWYgZGF0YS5jbHR5cGUgPT0gInRpbWUgd2l0aG91dCB0 aW1lIHpvbmUiICV9Ci10aW1lKHt7IG9fZGF0YS5hdHRsZW4gfX0pIHdpdGhvdXQgdGltZSB6b25l IHslIGVsaWYgZGF0YS5jbHR5cGUgPT0gInRpbWUgd2l0aCB0aW1lIHpvbmUiICV9Ci10aW1lKHt7 IG9fZGF0YS5hdHRsZW4gfX0pIHdpdGggdGltZSB6b25lIHslIGVuZGlmICV9eyUgaWYgZGF0YS5o YXNTcXJCcmFja2V0ICV9W117JSBlbmRpZiAlfQordGltZXN0YW1weyUgaWYgb19kYXRhLmF0dGxl biBpcyBub3Qgbm9uZSAlfSh7eyBvX2RhdGEuYXR0bGVuIH19KXslIGVuZGlmICV9IHdpdGhvdXQg dGltZSB6b25lIHslIGVsaWYgZGF0YS5jbHR5cGUgPT0gInRpbWVzdGFtcCB3aXRoIHRpbWUgem9u ZSIgJX0KK3RpbWVzdGFtcHslIGlmIG9fZGF0YS5hdHRsZW4gaXMgbm90IG5vbmUgJX0oe3sgb19k YXRhLmF0dGxlbiB9fSl7JSBlbmRpZiAlfSB3aXRoIHRpbWUgem9uZSB7JSBlbGlmIGRhdGEuY2x0 eXBlID09ICJ0aW1lIHdpdGhvdXQgdGltZSB6b25lIiAlfQordGltZXslIGlmIG9fZGF0YS5hdHRs ZW4gaXMgbm90IG5vbmUgJX0oe3sgb19kYXRhLmF0dGxlbiB9fSl7JSBlbmRpZiAlfSB3aXRob3V0 IHRpbWUgem9uZSB7JSBlbGlmIGRhdGEuY2x0eXBlID09ICJ0aW1lIHdpdGggdGltZSB6b25lIiAl fQordGltZXslIGlmIG9fZGF0YS5hdHRsZW4gaXMgbm90IG5vbmUgJX0oe3sgb19kYXRhLmF0dGxl biB9fSl7JSBlbmRpZiAlfSB3aXRoIHRpbWUgem9uZSB7JSBlbmRpZiAlfXslIGlmIGRhdGEuaGFz U3FyQnJhY2tldCAlfVtdeyUgZW5kaWYgJX0KIHsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjfQogeyMgaWYgb25seSBsZW5ndGggY2hh bmdlcywgd2UgbmVlZCB0byBnaXZlIHByZXZpb3VzIGxlbmd0aCB0byBjdXJyZW50IHR5cGUjfQog eyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyN9CkBAIC01NCwxMCArNjksMTAgQEAgdGltZSh7eyBkYXRhLmF0dGxlbiB9fSkgd2l0aCB0 aW1lIHpvbmUgeyUgZW5kaWYgJX17JSBpZiBvX2RhdGEuaGFzU3FyQnJhY2tldCAlfVsKIHsjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj fQogeyMjIyMjIyMjIyMgV2Ugd2lsbCBjcmVhdGUgU1FMIGZvciBvdGhlciB0eXBlcyBoZXJlICMj IyMjIyMjIyN9CiB7IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjI30KLXslIGlmIGRhdGEuY2x0eXBlICV9e3sgZGF0YS5jbHR5cGUgfX0g eyUgZWxpZiBvX2RhdGEudHlwbnNwbmFtZSAhPSAncGdfY2F0YWxvZycgJX17e2Nvbm58cXRUeXBl SWRlbnQob19kYXRhLnR5cG5zcG5hbWUsIG9fZGF0YS5jbHR5cGUpfX17JSBlbHNlICV9e3tjb25u fHF0VHlwZUlkZW50KG9fZGF0YS5jbHR5cGUpfX0geyUgZW5kaWYgJX17JSBpZiAoZGF0YS5hdHRs ZW4gYW5kIGRhdGEuYXR0bGVuICE9ICdOb25lJykgb3IgKGRhdGEuYXR0cHJlY2lzaW9uIGFuZCBk YXRhLmF0dHByZWNpc2lvbiAhPSAnTm9uZScpIG9yIChvX2RhdGEuYXR0bGVuIGFuZCBvX2RhdGEu YXR0bGVuICE9ICdOb25lJyBhbmQgb19kYXRhLmF0dGxlbnxpbnQgPjApIG9yIChvX2RhdGEuYXR0 cHJlY2lzaW9uIGFuZCBvX2RhdGEuYXR0cHJlY2lzaW9uICE9ICdOb25lJykgJX0KLXslIGlmIGRh dGEuYXR0bGVuIGFuZCBkYXRhLmF0dGxlbiAhPSAnTm9uZScgJX0KLSh7eyBkYXRhLmF0dGxlbiB9 fXslIGVsaWYgb19kYXRhLmF0dGxlbiBhbmQgb19kYXRhLmF0dGxlbiAhPSAnTm9uZScgJX0oe3sg b19kYXRhLmF0dGxlbiB9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5hdHRwcmVjaXNpb24gYW5kIGRh dGEuYXR0cHJlY2lzaW9uICE9ICdOb25lJyAlfQotLCB7eyBkYXRhLmF0dHByZWNpc2lvbiB9fSl7 JSBlbGlmIG9fZGF0YS5hdHRwcmVjaXNpb24gYW5kIG9fZGF0YS5hdHRwcmVjaXNpb24gIT0gJ05v bmUnICV9LCB7eyBvX2RhdGEuYXR0cHJlY2lzaW9uIH19KXslIGVsc2UgJX0peyUgZW5kaWYgJX0K K3slIGlmIGRhdGEuY2x0eXBlICV9e3sgZGF0YS5jbHR5cGUgfX17JSBlbGlmIG9fZGF0YS50eXBu c3BuYW1lICE9ICdwZ19jYXRhbG9nJyAlfXt7Y29ubnxxdFR5cGVJZGVudChvX2RhdGEudHlwbnNw bmFtZSwgb19kYXRhLmNsdHlwZSl9fXslIGVsc2UgJX17e2Nvbm58cXRUeXBlSWRlbnQob19kYXRh LmNsdHlwZSl9fXslIGVuZGlmICV9eyUgaWYgKGRhdGEuYXR0bGVuIGFuZCBkYXRhLmF0dGxlbiBp cyBub3Qgbm9uZSkgb3IgKGRhdGFfcHJlY2lzaW9uIGFuZCBkYXRhX3ByZWNpc2lvbiBpcyBub3Qg bm9uZSkgb3IgKG9sZF9sZW5ndGggYW5kIG9sZF9sZW5ndGggaXMgbm90IG5vbmUgYW5kIG9sZF9s ZW5ndGh8aW50ID4wKSBvciAob2xkX3ByZWNpc2lvbiBhbmQgb2xkX3ByZWNpc2lvbiBpcyBub3Qg bm9uZSkgJX0KK3slIGlmIGRhdGEuYXR0bGVuIGFuZCBkYXRhLmF0dGxlbiBpcyBub3Qgbm9uZSAl fQorKHt7IGRhdGEuYXR0bGVuIH19eyUgZWxpZiBvbGRfbGVuZ3RoIGFuZCBvbGRfbGVuZ3RoIGlz IG5vdCBub25lICV9KHt7IG9sZF9sZW5ndGggfX17JSBlbmRpZiAlfXslIGlmIGRhdGFfcHJlY2lz aW9uIGFuZCBkYXRhX3ByZWNpc2lvbiBpcyBub3Qgbm9uZSAlfQorLCB7eyBkYXRhX3ByZWNpc2lv biB9fSl7JSBlbGlmIG9sZF9wcmVjaXNpb24gYW5kIG9sZF9wcmVjaXNpb24gaXMgbm90IG5vbmUg JX0sIHt7IG9sZF9wcmVjaXNpb24gfX0peyUgZWxzZSAlfSl7JSBlbmRpZiAlfQogeyUgZW5kaWYg JX17JSBpZiBvX2RhdGEuaGFzU3FyQnJhY2tldCAlfVtdeyUgZW5kaWYgJX0KIHslIGVuZGlmICV9 CiB7JSBlbmRtYWNybyAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdXRpbHMucHkgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy91dGlscy5weQpp bmRleCAwNWNjOGYxNDIuLjEzZGE2NmUzNSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdXRpbHMucHkKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdXRpbHMucHkKQEAgLTE0NCw3ICsxNDQsMTIgQEAgY2xhc3MgRGF0YVR5cGVSZWFkZXI6CiAg ICAgICAgICAgICAgICAgICAgICAgICAjIE1heCBvZiBpbnRlZ2VyIHZhbHVlCiAgICAgICAgICAg ICAgICAgICAgICAgICBtYXhfdmFsID0gMjE0NzQ4MzY0NwogICAgICAgICAgICAgICAgICAgICBl bHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgbWF4X3ZhbCA9IDEwCisgICAgICAgICAgICAg ICAgICAgICAgICAjIE1heCB2YWx1ZSBpcyA2IGZvciBkYXRhIHR5cGUgbGlrZQorICAgICAgICAg ICAgICAgICAgICAgICAgIyBpbnRlcnZhbCwgdGltZXN0YW1wdHosIGV0Yy4uCisgICAgICAgICAg ICAgICAgICAgICAgICBpZiB0eXBldmFsID09ICdEJzoKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBtYXhfdmFsID0gNgorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBtYXhfdmFsID0gMTAKIAogICAgICAgICAgICAgICAgIHJlcy5h cHBlbmQoewogICAgICAgICAgICAgICAgICAgICAnbGFiZWwnOiByb3dbJ3R5cG5hbWUnXSwgJ3Zh bHVlJzogcm93Wyd0eXBuYW1lJ10sCkBAIC0yMDYsNyArMjExLDggQEAgY2xhc3MgRGF0YVR5cGVS ZWFkZXI6CiAKICAgICAgICAgcmV0dXJuIGxlbmd0aCwgcHJlY2lzaW9uLCB0eXBldmFsCiAKLSAg ICBkZWYgZ2V0X2Z1bGxfdHlwZShzZWxmLCBuc3AsIHR5cG5hbWUsIGlzRHVwLCBudW1kaW1zLCB0 eXBtb2QpOgorICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgZ2V0X2Z1bGxfdHlwZShuc3AsIHR5 cG5hbWUsIGlzRHVwLCBudW1kaW1zLCB0eXBtb2QpOgogICAgICAgICAiIiIKICAgICAgICAgUmV0 dXJucyBmdWxsIHR5cGUgbmFtZSB3aXRoIExlbmd0aCBhbmQgUHJlY2lzaW9uLgogCkBAIC0yNzMs NiArMjc5LDEwIEBAIGNsYXNzIERhdGFUeXBlUmVhZGVyOgogICAgICAgICAgICAgZWxpZiBuYW1l ID09ICdpbnRlcnZhbCc6CiAgICAgICAgICAgICAgICAgX3ByZWMgPSAwCiAgICAgICAgICAgICAg ICAgX2xlbiA9IHR5cG1vZCAmIDB4ZmZmZgorICAgICAgICAgICAgICAgICMgTWF4IGxlbmd0aCBm b3IgaW50ZXJ2YWwgZGF0YSB0eXBlIGlzIDYKKyAgICAgICAgICAgICAgICAjIElmIGxlbmd0aCBp cyBncmVhdGVyIHRoZW4gNiB0aGVuIHNldCBsZW5ndGggdG8gTm9uZQorICAgICAgICAgICAgICAg IGlmIF9sZW4gPiA2OgorICAgICAgICAgICAgICAgICAgICBfbGVuID0gJycKICAgICAgICAgICAg ICAgICBsZW5ndGggKz0gc3RyKF9sZW4pCiAgICAgICAgICAgICBlbGlmIG5hbWUgPT0gJ2RhdGUn OgogICAgICAgICAgICAgICAgICMgQ2xlYXIgbGVuZ3RoCkBAIC0zMzAsNiArMzQwLDEwIEBAIGNs YXNzIERhdGFUeXBlUmVhZGVyOgogICAgICAgICAgICAgICAgIGZyb20gcmUgaW1wb3J0IHN1YiBh cyBzdWJfc3RyCiAgICAgICAgICAgICAgICAgcGF0dGVybiA9IHInKFwoXGQrXCkpJwogICAgICAg ICAgICAgICAgIHR5cGVfbmFtZSA9IHN1Yl9zdHIocGF0dGVybiwgJycsIHR5cGVfbmFtZSkKKyAg ICAgICAgIyBXZSBuZWVkIHNwZWNpYWwgaGFuZGxpbmcgZm9yIGludGVydmFsIHR5cGVzIGxpa2UK KyAgICAgICAgIyBpbnRlcnZhbCBob3VycyB0byBtaW51dGUuCisgICAgICAgIGVsaWYgdHlwZV9u YW1lLnN0YXJ0c3dpdGgoImludGVydmFsIik6CisgICAgICAgICAgICB0eXBlX25hbWUgPSAnaW50 ZXJ2YWwnCiAKICAgICAgICAgaWYgaXNfYXJyYXk6CiAgICAgICAgICAgICB0eXBlX25hbWUgKz0g IltdIgo= --000000000000e1604505986717db--