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 1hZCHk-0003en-RW for pgadmin-hackers@arkaria.postgresql.org; Fri, 07 Jun 2019 10:39:49 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1hZCHj-00039A-IW for pgadmin-hackers@arkaria.postgresql.org; Fri, 07 Jun 2019 10:39:47 +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 1hZCHi-00030r-CG for pgadmin-hackers@lists.postgresql.org; Fri, 07 Jun 2019 10:39:47 +0000 Received: from mail-qt1-x836.google.com ([2607:f8b0:4864:20::836]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hZCHa-0005Xa-MM for pgadmin-hackers@postgresql.org; Fri, 07 Jun 2019 10:39:44 +0000 Received: by mail-qt1-x836.google.com with SMTP id d23so1636224qto.2 for ; Fri, 07 Jun 2019 03:39:38 -0700 (PDT) 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; bh=J1vFpVpvLgN8Uv476rW6Nq2+m7wQYg840mxrRPPIp10=; b=OmiXdjmJqN7uC8Gee1nF18koiN2C/7IXxfqr+T9kKJcFmltq+a9t3Hxtfn7dew4Bbh JHVnN1bQZljsYi0ERYmu7Vmn3kcgmZDKfbEVUiKWbG4FX+7Kpb6CjUSZFcemXfDTwNNA YipIrkTOV2iuFi1rkowpn91Fk+4IcpKE4KiygrvwLKInEg4eDnO/KVrM8mnJTClehmd1 EplU7sA+H7mH+pwktuwFi2pjmom3O71SooM1RHpk+9/c6Tc6bvrXoGyAfSvPKH26k8/+ t51tcAME4nDPigWXl/1kx7hH9PFnf686mHX+EBzL4W/dnxZZ2Mlc4J2y2dUqiXZVZf3c wlyg== 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; bh=J1vFpVpvLgN8Uv476rW6Nq2+m7wQYg840mxrRPPIp10=; b=NHAEiUezBkvNR+NJ8JnoxOtN4XbSQVO7Uc/chG8kBFDSYsveZn73oS8eVHUYplYcpS dbMHKkhUGgyEtE/Evu8aspZ+KBQiQHwV6XHt60gnl9tmeT0D/uUOKryFhO8Ce6+YpFIv QNqAxdQt9U1kDMwASra41/bQNFl///2Rli7T7eXphiAXZ0VfXIqTmFw4mZ4Pw42oPJHo XcApvdujqTdA2kilaxNXMoWhuCxFR7CsRFNj2Xr123EkuIoFNCG9XtVeJt+tAcMSKf8f T+Fj0Ep3TIftYC8gdnVXWlHoeQ3U9W7SpWRmICe3kavSNnMJ+Z3DYD5M6dSgjv9LjwdI MfmQ== X-Gm-Message-State: APjAAAXCHkKatj+FJuzi6vzQei5OhqA6QGLLObdrYOMAqwe726cWjtjL TuWccYVHIee9g3XO7XCCBfrRpHeim3qdO8QZNf7QjzlUAsFzdg== X-Google-Smtp-Source: APXvYqwjjo+YklcAMfiv85s7VB8WK5xsXs/HvptZIQ8tOrC/aXzMVBcCPqR3qrb9jRiTprpcjly/LQjFttj5NDgkhec= X-Received: by 2002:a0c:9233:: with SMTP id a48mr26400642qva.66.1559903976374; Fri, 07 Jun 2019 03:39:36 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Akshay Joshi Date: Fri, 7 Jun 2019 16:09:25 +0530 Message-ID: Subject: Re: [pgAdmin4][Patch]: Feature #4283 pgAdmin4 support for v12 To: pgadmin-hackers Content-Type: multipart/mixed; boundary="00000000000065758a058ab9722b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --00000000000065758a058ab9722b Content-Type: multipart/alternative; boundary="000000000000657586058ab97229" --000000000000657586058ab97229 Content-Type: text/plain; charset="UTF-8" Hi Hackers, Today I have read the https://www.postgresql.org/docs/release/12.0/ release note. I have created some new feature request and fixed one issue. Following are the issues that I have fixed: - Fixed existing issue to drop/delete partitions of the partition table. - Allow foreign keys to reference partitioned tables. Created following issues, not sure we need to consider it: 1. #4333 Add support for function selectivity. 2. #4334 Add support for generated columns. 3. #4335 Add EXPLAIN option SETTINGS and SUMMARY Attached is the complete patch, ignore the previous patch. Please review it. On Thu, Jun 6, 2019 at 3:31 PM Akshay Joshi wrote: > Hi Hackers, > > I have started adding support of PostgreSQL v12 in pgAdmin4. Attached is > the patch to fix the following issues: > > - RM #4290: "string indices must be integers" displayed for all objects > - RM #4288: View data issue. > - PG v12 removes the ability to create table using WITH OIDS, so I > have modified the code in GUI as well as on backend. > - PG v12 removes obsolete pg_attrdef.adsrc and pg_constraint.consrc > column, so fixed with appropriate functions calls. > - For partitioned tables, since no storage is required for the table > itself. PG v12 throws and error while specifying "TABLESPACE" in create > table syntax for partitioned table, so fix that too. > > This is the initial patch to fix the issues that has been raised or I have > found. Will continue to work on adding support for v12. Will check the > release notes. > > -- > *Thanks & Regards* > *Akshay Joshi* > > *Sr. Software Architect* > *EnterpriseDB Software India Private Limited* > *Mobile: +91 976-788-8246* > -- *Thanks & Regards* *Akshay Joshi* *Sr. Software Architect* *EnterpriseDB Software India Private Limited* *Mobile: +91 976-788-8246* --000000000000657586058ab97229 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

Today I have read the= =C2=A0https://www= .postgresql.org/docs/release/12.0/=C2=A0release note. I have created so= me new feature request and fixed one issue. Following are the issues that I= have fixed:
  • Fixed existing issue to drop/delete partitio= ns of the partition table.
  • Allow foreign keys to reference partitio= ned tables.
Created following issues, not sure we need to consider= it:
  1. #4333=C2=A0Add support for function selectivity.
  2. #4334=C2=A0Add support for = generated columns.
  3. #4335=C2=A0Add EXPLAIN option SETTINGS and SUMMARY

Attached is the complete patch, ignore the previous p= atch. Please review it.=C2=A0


On Thu, Jun 6, 2019 at 3:= 31 PM Akshay Joshi <aks= hay.joshi@enterprisedb.com> wrote:
Hi Hackers,

I= have started adding support of PostgreSQL v12 in pgAdmin4. Attached is the= patch to fix the following issues:
  • RM #4290:=C2=A0"= string indices must be integers" displayed for all objects
  • RM = #4288:=C2=A0View data issue.
  • PG v12=C2=A0 removes the ability to cr= eate table using WITH OIDS, so I have modified the code in GUI as well as o= n backend.
  • PG v12 removes obsolete pg_attrdef.adsrc and pg_constrai= nt.consrc column, so fixed with appropriate functions calls.
  • For pa= rtitioned tables, since no storage is required for the table itself. PG v12= throws and error while specifying "TABLESPACE" in create table s= yntax for partitioned table, so fix that too.=C2=A0
This is t= he initial patch to fix the issues that has been raised or I have found. Wi= ll continue to work on adding support for v12. Will check the release notes= .=C2=A0

--
Thanks & Regards
Sr. Software Architect
EnterpriseDB Software India Private Limited
Mobile: +91 976-788-8246


--
Thanks & Regards
=
Akshay Joshi
Sr. Software Architect
EnterpriseDB Software India Private Limited
=
Mobile: += 91 976-788-8246
--000000000000657586058ab97229-- --00000000000065758a058ab9722b Content-Type: application/octet-stream; name="RM_4283_v2.patch" Content-Disposition: attachment; filename="RM_4283_v2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jwlyirng0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9z cWwvMTJfcGx1cy9nZXRfY29uc3RyYWludHMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxh dGVzL2ZvcmVpZ25fdGFibGVzL3NxbC8xMl9wbHVzL2dldF9jb25zdHJhaW50cy5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLmI3MzhjNzg4Ci0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC8xMl9wbHVz L2dldF9jb25zdHJhaW50cy5zcWwKQEAgLTAsMCArMSw4IEBACitTRUxFQ1QKKyAgICBvaWQgYXMg Y29ub2lkLCBjb25uYW1lLCBjb250eXBlLCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQsIHRydWUp IGFzIGNvbnNyYywKKyAgICBjb25ub2luaGVyaXQsIGNvbnZhbGlkYXRlZCwgY29uaXNsb2NhbAor RlJPTQorICAgIHBnX2NvbnN0cmFpbnQKK1dIRVJFCisgICAgY29ucmVsaWQ9e3tmb2lkfX06Om9p ZAorT1JERVIgYnkgY29ubmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9wYXJ0aXRpb25zL19f aW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3BhcnRpdGlvbnMvX19pbml0X18ucHkKaW5kZXggNjFiNDEz YWUuLjQ5ZWM3YjRjIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcGFydGl0aW9ucy9fX2luaXRfXy5w eQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvcGFydGl0aW9ucy9fX2luaXRfXy5weQpAQCAtMTkwLDcgKzE5MCw3 IEBAIGNsYXNzIFBhcnRpdGlvbnNWaWV3KEJhc2VUYWJsZVZpZXcsIERhdGFUeXBlUmVhZGVyLCBW YWN1dW1TZXR0aW5ncyk6CiAgICAgICAgICAgICB7J2dldCc6ICdwcm9wZXJ0aWVzJywgJ2RlbGV0 ZSc6ICdkZWxldGUnLCAncHV0JzogJ3VwZGF0ZSd9LAogICAgICAgICAgICAgeydnZXQnOiAnbGlz dCcsICdwb3N0JzogJ2NyZWF0ZSd9CiAgICAgICAgIF0sCi0gICAgICAgICdkZWxldGUnOiBbeydk ZWxldGUnOiAnZGVsZXRlJ31dLAorICAgICAgICAnZGVsZXRlJzogW3snZGVsZXRlJzogJ2RlbGV0 ZSd9LCB7J2RlbGV0ZSc6ICdkZWxldGUnfV0sCiAgICAgICAgICdub2Rlcyc6IFt7J2dldCc6ICdu b2Rlcyd9LCB7J2dldCc6ICdub2Rlcyd9XSwKICAgICAgICAgJ2NoaWxkcmVuJzogW3snZ2V0Jzog J2NoaWxkcmVuJ31dLAogICAgICAgICAnc3FsJzogW3snZ2V0JzogJ3NxbCd9XSwKQEAgLTU5MSw3 ICs1OTEsNyBAQCBjbGFzcyBQYXJ0aXRpb25zVmlldyhCYXNlVGFibGVWaWV3LCBEYXRhVHlwZVJl YWRlciwgVmFjdXVtU2V0dGluZ3MpOgogICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCiAKICAgICBAQmFzZVRhYmxlVmlldy5jaGVja19wcmVj b25kaXRpb24KLSAgICBkZWYgZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwg cHRpZCk6CisgICAgZGVmIGRlbGV0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIHB0 aWQ9Tm9uZSk6CiAgICAgICAgICIiIgogICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRl IHRoZSB0YWJsZSBvYmplY3QKIApAQCAtNjAxLDMxICs2MDEsNDcgQEAgY2xhc3MgUGFydGl0aW9u c1ZpZXcoQmFzZVRhYmxlVmlldywgRGF0YVR5cGVSZWFkZXIsIFZhY3V1bVNldHRpbmdzKToKICAg ICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAogICAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQKICAg ICAgICAgICAgdGlkOiBUYWJsZSBJRAorICAgICAgICAgICBwdGlkOiBQYXJ0aXRpb24gVGFibGUg SUQKICAgICAgICAgIiIiCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgU1FMID0gcmVuZGVy X3RlbXBsYXRlKAotICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnBhcnRpdGlvbl90ZW1w bGF0ZV9wYXRoLCAncHJvcGVydGllcy5zcWwnXSksCi0gICAgICAgICAgICAgICAgZGlkPWRpZCwg c2NpZD1zY2lkLCB0aWQ9dGlkLCBwdGlkPXB0aWQsCi0gICAgICAgICAgICAgICAgZGF0bGFzdHN5 c29pZD1zZWxmLmRhdGxhc3RzeXNvaWQKKyAgICAgICAgaWYgcHRpZCBpcyBOb25lOgorICAgICAg ICAgICAgZGF0YSA9IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZvcm0gZWxzZSBqc29uLmxvYWRz KAorICAgICAgICAgICAgICAgIHJlcXVlc3QuZGF0YSwgZW5jb2Rpbmc9J3V0Zi04JwogICAgICAg ICAgICAgKQotICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0 KFNRTCkKLSAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6Ci0gICAgICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgIGVsc2U6CisgICAg ICAgICAgICBkYXRhID0geydpZHMnOiBbcHRpZF19CiAKLSAgICAgICAgICAgIGlmIG5vdCByZXNb J3Jvd3MnXToKLSAgICAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAotICAg ICAgICAgICAgICAgICAgICBzdWNjZXNzPTAsCi0gICAgICAgICAgICAgICAgICAgIGVycm9ybXNn PWdldHRleHQoCi0gICAgICAgICAgICAgICAgICAgICAgICAnRXJyb3I6IE9iamVjdCBub3QgZm91 bmQuJwotICAgICAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgICAgICBpbmZvPWdl dHRleHQoCi0gICAgICAgICAgICAgICAgICAgICAgICAnVGhlIHNwZWNpZmllZCBwYXJ0aXRpb24g Y291bGQgbm90IGJlIGZvdW5kLlxuJwotICAgICAgICAgICAgICAgICAgICApCisgICAgICAgIHRy eToKKyAgICAgICAgICAgIGZvciBwdGlkIGluIGRhdGFbJ2lkcyddOgorICAgICAgICAgICAgICAg IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgIi8iLmpvaW4oW3Nl bGYucGFydGl0aW9uX3RlbXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAg ICAgICAgICAgICAgZGlkPWRpZCwgc2NpZD1zY2lkLCB0aWQ9dGlkLCBwdGlkPXB0aWQsCisgICAg ICAgICAgICAgICAgICAgIGRhdGxhc3RzeXNvaWQ9c2VsZi5kYXRsYXN0c3lzb2lkCiAgICAgICAg ICAgICAgICAgKQorICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1 dGVfZGljdChTUUwpCisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAg ICAgICAgICAgICAgICBpZiBub3QgcmVzWydyb3dzJ106CisgICAgICAgICAgICAgICAgICAgIHJl dHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNz PTAsCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcm1zZz1nZXR0ZXh0KAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICdFcnJvcjogT2JqZWN0IG5vdCBmb3VuZC4nCisgICAgICAgICAg ICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICAgICAgaW5mbz1nZXR0ZXh0KAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUaGUgc3BlY2lmaWVkIHBhcnRpdGlvbiBjb3Vs ZCBub3QgYmUgZm91bmQuXG4nCisgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAg ICAgICAgICAgICkKKworICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc3VwZXIoUGFydGl0 aW9uc1ZpZXcsIHNlbGYpLmRlbGV0ZSgKKyAgICAgICAgICAgICAgICAgICAgZ2lkLCBzaWQsIGRp ZCwgc2NpZCwgdGlkLCByZXMpCisKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAg ICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJl cykKIAotICAgICAgICAgICAgcmV0dXJuIHN1cGVyKFBhcnRpdGlvbnNWaWV3LCBzZWxmKS5kZWxl dGUoCi0gICAgICAgICAgICAgICAgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCByZXMpCisgICAg ICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIHN1Y2Nl c3M9MSwKKyAgICAgICAgICAgICAgICBpbmZvPWdldHRleHQoIlBhcnRpdGlvbiBkcm9wcGVkIikK KyAgICAgICAgICAgICkKIAogICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9zdGF0aWMvanMvdGFibGUuanMgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvc3RhdGljL2pz L3RhYmxlLmpzCmluZGV4IDEwYzBjZmRhLi5kYTM3MzhhNyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L3N0YXRpYy9qcy90YWJsZS5qcworKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvc3RhdGljL2pzL3RhYmxlLmpzCkBA IC0zNDIsMTIgKzM0MiwzMiBAQCBkZWZpbmUoJ3BnYWRtaW4ubm9kZS50YWJsZScsIFsKICAgICAg ICAgICB9LCBjYWNoZV9ub2RlOiAnZGF0YWJhc2UnLCBjYWNoZV9sZXZlbDogJ2RhdGFiYXNlJywK ICAgICAgICAgfSx7CiAgICAgICAgICAgaWQ6ICdzcGNuYW1lJywgbGFiZWw6IGdldHRleHQoJ1Rh Ymxlc3BhY2UnKSwgbm9kZTogJ3RhYmxlc3BhY2UnLAotICAgICAgICAgIHR5cGU6ICd0ZXh0Jywg Y29udHJvbDogJ25vZGUtbGlzdC1ieS1uYW1lJywgZGlzYWJsZWQ6ICdpblNjaGVtYScsCisgICAg ICAgICAgdHlwZTogJ3RleHQnLCBjb250cm9sOiAnbm9kZS1saXN0LWJ5LW5hbWUnLAogICAgICAg ICAgIG1vZGU6IFsncHJvcGVydGllcycsICdjcmVhdGUnLCAnZWRpdCddLAogICAgICAgICAgIGZp bHRlcjogZnVuY3Rpb24oZCkgewogICAgICAgICAgICAgLy8gSWYgdGFibGVzcGFjZSBuYW1lIGlz IG5vdCAicGdfZ2xvYmFsIiB0aGVuIHdlIG5lZWQgdG8gZXhjbHVkZSB0aGVtCiAgICAgICAgICAg ICByZXR1cm4gKCEoZCAmJiBkLmxhYmVsLm1hdGNoKC9wZ19nbG9iYWwvKSkpOwogICAgICAgICAg IH0sCisgICAgICAgICAgZGVwczogWydpc19wYXJ0aXRpb25lZCddLAorICAgICAgICAgIGRpc2Fi bGVkOiBmdW5jdGlvbihtKSB7CisgICAgICAgICAgICBpZih0aGlzLm5vZGVfaW5mbyAmJiAgJ2Nh dGFsb2cnIGluIHRoaXMubm9kZV9pbmZvKSB7CisgICAgICAgICAgICAgIHJldHVybiB0cnVlOwor ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZighXy5pc1VuZGVmaW5lZChtLm5vZGVfaW5m bykgJiYgIV8uaXNVbmRlZmluZWQobS5ub2RlX2luZm8uc2VydmVyKQorICAgICAgICAgICAgICAm JiAhXy5pc1VuZGVmaW5lZChtLm5vZGVfaW5mby5zZXJ2ZXIudmVyc2lvbikgJiYKKyAgICAgICAg ICAgICAgICBtLm5vZGVfaW5mby5zZXJ2ZXIudmVyc2lvbiA+PSAxMjAwMDAgJiYKKyAgICAgICAg ICAgICAgICBtLmdldCgnaXNfcGFydGl0aW9uZWQnKSkgeworCisgICAgICAgICAgICAgIHNldFRp bWVvdXQoIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIG0uc2V0KCdzcGNuYW1lJywgdW5k ZWZpbmVkKTsKKyAgICAgICAgICAgICAgfSwgMTApOworCisgICAgICAgICAgICAgIHJldHVybiB0 cnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg ICAgfSwKICAgICAgICAgfSx7CiAgICAgICAgICAgaWQ6ICdwYXJ0aXRpb24nLCB0eXBlOiAnZ3Jv dXAnLCBsYWJlbDogZ2V0dGV4dCgnUGFydGl0aW9uJyksCiAgICAgICAgICAgbW9kZTogWydlZGl0 JywgJ2NyZWF0ZSddLCBtaW5fdmVyc2lvbjogMTAwMDAwLApAQCAtNzczLDcgKzc5MywxNSBAQCBk ZWZpbmUoJ3BnYWRtaW4ubm9kZS50YWJsZScsIFsKICAgICAgICAgfSx7CiAgICAgICAgICAgaWQ6 ICdyZWxoYXNvaWRzJywgbGFiZWw6IGdldHRleHQoJ0hhcyBPSURzPycpLCBjZWxsOiAnc3dpdGNo JywKICAgICAgICAgICB0eXBlOiAnc3dpdGNoJywgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2NyZWF0 ZScsICdlZGl0J10sCi0gICAgICAgICAgZGlzYWJsZWQ6ICdpblNjaGVtYScsIGdyb3VwOiBnZXR0 ZXh0KCdhZHZhbmNlZCcpLAorICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdhZHZhbmNlZCcpLAor ICAgICAgICAgIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7CisgICAgICAgICAgICBpZighXy5pc1Vu ZGVmaW5lZChtLm5vZGVfaW5mbykgJiYgIV8uaXNVbmRlZmluZWQobS5ub2RlX2luZm8uc2VydmVy KQorICAgICAgICAgICAgICAmJiAhXy5pc1VuZGVmaW5lZChtLm5vZGVfaW5mby5zZXJ2ZXIudmVy c2lvbikgJiYKKyAgICAgICAgICAgICAgICBtLm5vZGVfaW5mby5zZXJ2ZXIudmVyc2lvbiA+PSAx MjAwMDApCisgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgICAgICByZXR1cm4g bS5pblNjaGVtYSgpOworICAgICAgICAgIH0sCiAgICAgICAgIH0sewogICAgICAgICAgIGlkOiAn cmVscGVyc2lzdGVuY2UnLCBsYWJlbDogZ2V0dGV4dCgnVW5sb2dnZWQ/JyksIGNlbGw6ICdzd2l0 Y2gnLAogICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnY3Jl YXRlJywgJ2VkaXQnXSwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvcGFydGl0aW9u cy9zcWwvcGcvMTJfcGx1cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvcGFy dGl0aW9ucy9zcWwvcGcvMTJfcGx1cy9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMC4uMDk4MTJhM2IKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dGVtcGxhdGVzL3BhcnRpdGlvbnMvc3FsL3BnLzEyX3BsdXMvcHJvcGVydGllcy5zcWwKQEAgLTAs MCArMSw4MyBAQAorU0VMRUNUIHJlbC5vaWQsIHJlbC5yZWxuYW1lIEFTIG5hbWUsIHJlbC5yZWx0 YWJsZXNwYWNlIEFTIHNwY29pZCxyZWwucmVsYWNsIEFTIHJlbGFjbF9zdHIsCisgIChDQVNFIFdI RU4gbGVuZ3RoKHNwYy5zcGNuYW1lKSA+IDAgVEhFTiBzcGMuc3BjbmFtZSBFTFNFCisgICAgKFNF TEVDVCBzcC5zcGNuYW1lIEZST00gcGdfZGF0YWJhc2UgZHRiCisgICAgSk9JTiBwZ190YWJsZXNw YWNlIHNwIE9OIGR0Yi5kYXR0YWJsZXNwYWNlPXNwLm9pZAorICAgIFdIRVJFIGR0Yi5vaWQgPSB7 eyBkaWQgfX06Om9pZCkKKyAgRU5EKSBhcyBzcGNuYW1lLAorICAoc2VsZWN0IG5zcG5hbWUgRlJP TSBwZ19uYW1lc3BhY2UgV0hFUkUgb2lkID0ge3tzY2lkfX06Om9pZCApIGFzIHBhcmVudF9zY2hl bWEsCisgIG5zcC5uc3BuYW1lIGFzIHNjaGVtYSwKKyAgcGdfZ2V0X3VzZXJieWlkKHJlbC5yZWxv d25lcikgQVMgcmVsb3duZXIsIHJlbC5yZWxpc3BhcnRpdGlvbiwKKyAgcmVsLnJlbGhhc3N1YmNs YXNzLCByZWwucmVsdHVwbGVzOjpiaWdpbnQsIGRlcy5kZXNjcmlwdGlvbiwgY29uLmNvbm5hbWUs IGNvbi5jb25rZXksCisJRVhJU1RTKHNlbGVjdCAxIEZST00gcGdfdHJpZ2dlcgorCQkJSk9JTiBw Z19wcm9jIHB0IE9OIHB0Lm9pZD10Z2ZvaWQgQU5EIHB0LnByb25hbWU9J2xvZ3RyaWdnZXInCisJ CQlKT0lOIHBnX3Byb2MgcGMgT04gcGMucHJvbmFtZXNwYWNlPXB0LnByb25hbWVzcGFjZSBBTkQg cGMucHJvbmFtZT0nc2xvbnl2ZXJzaW9uJworCQkJV0hFUkUgdGdyZWxpZD1yZWwub2lkKSBBUyBp c3JlcGwsCisJKFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3RyaWdnZXIgV0hFUkUgdGdyZWxpZD1y ZWwub2lkIEFORCB0Z2lzaW50ZXJuYWwgPSBGQUxTRSkgQVMgdHJpZ2dlcmNvdW50LAorCShTRUxF Q1QgQVJSQVkoU0VMRUNUIENBU0UgV0hFTiAobnNwbmFtZSBOT1QgTElLRSAncGdcXyUnKSBUSEVO CisgICAgICAgICAgICBxdW90ZV9pZGVudChuc3BuYW1lKXx8Jy4nfHxxdW90ZV9pZGVudChjLnJl bG5hbWUpCisgICAgICAgICAgICBFTFNFIHF1b3RlX2lkZW50KGMucmVsbmFtZSkgRU5EIEFTIGlu aGVyaXRlZF90YWJsZXMKKyAgICBGUk9NIHBnX2luaGVyaXRzIGkKKyAgICBKT0lOIHBnX2NsYXNz IGMgT04gYy5vaWQgPSBpLmluaHBhcmVudAorICAgIEpPSU4gcGdfbmFtZXNwYWNlIG4gT04gbi5v aWQ9Yy5yZWxuYW1lc3BhY2UKKyAgICBXSEVSRSBpLmluaHJlbGlkID0gcmVsLm9pZCBPUkRFUiBC WSBpbmhzZXFubykpIEFTIGNvbGxfaW5oZXJpdHMsCisgIChTRUxFQ1QgY291bnQoKikKKwkJRlJP TSBwZ19pbmhlcml0cyBpCisgICAgICBKT0lOIHBnX2NsYXNzIGMgT04gYy5vaWQgPSBpLmluaHBh cmVudAorICAgICAgSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBuLm9pZD1jLnJlbG5hbWVzcGFjZQor CQlXSEVSRSBpLmluaHJlbGlkID0gcmVsLm9pZCkgQVMgaW5oZXJpdGVkX3RhYmxlc19jbnQsCisJ KENBU0UgV0hFTiByZWwucmVscGVyc2lzdGVuY2UgPSAndScgVEhFTiB0cnVlIEVMU0UgZmFsc2Ug RU5EKSBBUyByZWxwZXJzaXN0ZW5jZSwKKwlzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHJlbC5y ZWxvcHRpb25zLCAnLCcpIEZST00gJ2ZpbGxmYWN0b3I9KFswLTldKiknKSBBUyBmaWxsZmFjdG9y LAorCShDQVNFIFdIRU4gKHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcocmVsLnJlbG9wdGlvbnMs ICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9lbmFibGVkPShbYS16fDAtOV0qKScpID0gJ3RydWUnKQor CSAgVEhFTiB0cnVlIEVMU0UgZmFsc2UgRU5EKSBBUyBhdXRvdmFjdXVtX2VuYWJsZWQsCisJc3Vi c3RyaW5nKGFycmF5X3RvX3N0cmluZyhyZWwucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFj dXVtX3ZhY3V1bV90aHJlc2hvbGQ9KFswLTldKiknKSBBUyBhdXRvdmFjdXVtX3ZhY3V1bV90aHJl c2hvbGQsCisJc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhyZWwucmVsb3B0aW9ucywgJywnKSBG Uk9NICdhdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3I9KFswLTldKlsuXT9bMC05XSopJykg QVMgYXV0b3ZhY3V1bV92YWN1dW1fc2NhbGVfZmFjdG9yLAorCXN1YnN0cmluZyhhcnJheV90b19z dHJpbmcocmVsLnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9hbmFseXplX3RocmVz aG9sZD0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fYW5hbHl6ZV90aHJlc2hvbGQsCisJc3Vic3Ry aW5nKGFycmF5X3RvX3N0cmluZyhyZWwucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVt X2FuYWx5emVfc2NhbGVfZmFjdG9yPShbMC05XSpbLl0/WzAtOV0qKScpIEFTIGF1dG92YWN1dW1f YW5hbHl6ZV9zY2FsZV9mYWN0b3IsCisJc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhyZWwucmVs b3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2RlbGF5PShbMC05XSop JykgQVMgYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheSwKKwlzdWJzdHJpbmcoYXJyYXlfdG9f c3RyaW5nKHJlbC5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX2Nvc3Rf bGltaXQ9KFswLTldKiknKSBBUyBhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0LAorCXN1YnN0 cmluZyhhcnJheV90b19zdHJpbmcocmVsLnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1 bV9mcmVlemVfbWluX2FnZT0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fZnJlZXplX21pbl9hZ2Us CisJc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhyZWwucmVsb3B0aW9ucywgJywnKSBGUk9NICdh dXRvdmFjdXVtX2ZyZWV6ZV9tYXhfYWdlPShbMC05XSopJykgQVMgYXV0b3ZhY3V1bV9mcmVlemVf bWF4X2FnZSwKKwlzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHJlbC5yZWxvcHRpb25zLCAnLCcp IEZST00gJ2F1dG92YWN1dW1fZnJlZXplX3RhYmxlX2FnZT0oWzAtOV0qKScpIEFTIGF1dG92YWN1 dW1fZnJlZXplX3RhYmxlX2FnZSwKKwkoQ0FTRSBXSEVOIChzdWJzdHJpbmcoYXJyYXlfdG9fc3Ry aW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fZW5hYmxlZD0oW2Etenww LTldKiknKSA9ICAndHJ1ZScpCisJICBUSEVOIHRydWUgRUxTRSBmYWxzZSBFTkQpIEFTIHRvYXN0 X2F1dG92YWN1dW1fZW5hYmxlZCwKKwlzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxv cHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZD0oWzAtOV0qKScp IEFTIHRvYXN0X2F1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZCwKKwlzdWJzdHJpbmcoYXJyYXlf dG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX3Nj YWxlX2ZhY3Rvcj0oWzAtOV0qWy5dP1swLTldKiknKSBBUyB0b2FzdF9hdXRvdmFjdXVtX3ZhY3V1 bV9zY2FsZV9mYWN0b3IsCisJc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9u cywgJywnKSBGUk9NICdhdXRvdmFjdXVtX2FuYWx5emVfdGhyZXNob2xkPShbMC05XSopJykgQVMg dG9hc3RfYXV0b3ZhY3V1bV9hbmFseXplX3RocmVzaG9sZCwKKwlzdWJzdHJpbmcoYXJyYXlfdG9f c3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fYW5hbHl6ZV9zY2Fs ZV9mYWN0b3I9KFswLTldKlsuXT9bMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9hbmFseXpl X3NjYWxlX2ZhY3RvciwKKwlzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25z LCAnLCcpIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX2Nvc3RfZGVsYXk9KFswLTldKiknKSBBUyB0 b2FzdF9hdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2RlbGF5LAorCXN1YnN0cmluZyhhcnJheV90b19z dHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9s aW1pdD0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQsCisJ c3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRv dmFjdXVtX2ZyZWV6ZV9taW5fYWdlPShbMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9mcmVl emVfbWluX2FnZSwKKwlzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAn LCcpIEZST00gJ2F1dG92YWN1dW1fZnJlZXplX21heF9hZ2U9KFswLTldKiknKSBBUyB0b2FzdF9h dXRvdmFjdXVtX2ZyZWV6ZV9tYXhfYWdlLAorCXN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0 LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlPShbMC05 XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlLAorCWFycmF5X3RvX3N0 cmluZyhyZWwucmVsb3B0aW9ucywgJywnKSBBUyB0YWJsZV92YWN1dW1fc2V0dGluZ3Nfc3RyLAor CWFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKSBBUyB0b2FzdF90YWJsZV92YWN1 dW1fc2V0dGluZ3Nfc3RyLAorCXJlbC5yZWxvcHRpb25zIEFTIHJlbG9wdGlvbnMsIHRzdC5yZWxv cHRpb25zIEFTIHRvYXN0X3JlbG9wdGlvbnMsIHJlbC5yZWxvZnR5cGUsIHR5cC50eXBuYW1lLAor CXR5cC50eXByZWxpZCBBUyB0eXBvaWQsCisJKENBU0UgV0hFTiByZWwucmVsdG9hc3RyZWxpZCA9 IDAgVEhFTiBmYWxzZSBFTFNFIHRydWUgRU5EKSBBUyBoYXN0b2FzdHRhYmxlLAorICAgIC0tIEFk ZGVkIGZvciBwZ0FkbWluNAorCShDQVNFIFdIRU4gYXJyYXlfbGVuZ3RoKHJlbC5yZWxvcHRpb25z LCAxKSA+IDAgVEhFTiB0cnVlIEVMU0UgZmFsc2UgRU5EKSBBUyBhdXRvdmFjdXVtX2N1c3RvbSwK KwkoQ0FTRSBXSEVOIGFycmF5X2xlbmd0aCh0c3QucmVsb3B0aW9ucywgMSkgPiAwIEFORCByZWwu cmVsdG9hc3RyZWxpZCAhPSAwIFRIRU4gdHJ1ZSBFTFNFIGZhbHNlIEVORCkgQVMgdG9hc3RfYXV0 b3ZhY3V1bSwKKworCShTRUxFQ1QgYXJyYXlfYWdnKHByb3ZpZGVyIHx8ICc9JyB8fCBsYWJlbCkg RlJPTSBwZ19zZWNsYWJlbHMgc2wxIFdIRVJFIHNsMS5vYmpvaWQ9cmVsLm9pZCBBTkQgc2wxLm9i anN1YmlkPTApIEFTIHNlY2xhYmVscywKKwkoQ0FTRSBXSEVOIHJlbC5vaWQgPD0ge3sgZGF0bGFz dHN5c29pZH19OjpvaWQgVEhFTiB0cnVlIEVsU0UgZmFsc2UgRU5EKSBBUyBpc19zeXNfdGFibGUs CisJLS0gQWRkZWQgZm9yIHBhcnRpdGlvbiB0YWJsZQorCShDQVNFIFdIRU4gcmVsLnJlbGtpbmQg PSAncCcgVEhFTiB0cnVlIEVMU0UgZmFsc2UgRU5EKSBBUyBpc19wYXJ0aXRpb25lZCwKKwkoQ0FT RSBXSEVOIHJlbC5yZWxraW5kID0gJ3AnIFRIRU4gcGdfZ2V0X3BhcnRrZXlkZWYocmVsLm9pZDo6 b2lkKSBFTFNFICcnIEVORCkgQVMgcGFydGl0aW9uX3NjaGVtZSwKKwl7JSBpZiBwdGlkICV9CisJ ICAoQ0FTRSBXSEVOIHJlbC5yZWxpc3BhcnRpdGlvbiBUSEVOIHBnX2dldF9leHByKHJlbC5yZWxw YXJ0Ym91bmQsIHt7IHB0aWQgfX06Om9pZCkgRUxTRSAnJyBFTkQpIEFTIHBhcnRpdGlvbl92YWx1 ZSwKKwkgIChTRUxFQ1QgcmVsbmFtZSBGUk9NIHBnX2NsYXNzIFdIRVJFIG9pZCA9IHt7IHRpZCB9 fTo6b2lkKSBBUyBwYXJ0aXRpb25lZF90YWJsZV9uYW1lCisJeyUgZWxzZSAlfQorCSAgcGdfZ2V0 X2V4cHIocmVsLnJlbHBhcnRib3VuZCwgcmVsLm9pZCkgQVMgcGFydGl0aW9uX3ZhbHVlCisJeyUg ZW5kaWYgJX0KKworRlJPTSBwZ19jbGFzcyByZWwKKyAgTEVGVCBPVVRFUiBKT0lOIHBnX3RhYmxl c3BhY2Ugc3BjIG9uIHNwYy5vaWQ9cmVsLnJlbHRhYmxlc3BhY2UKKyAgTEVGVCBPVVRFUiBKT0lO IHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1yZWwub2lkIEFORCBkZXMub2Jqc3Vi aWQ9MCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19jbGFzcyc6OnJlZ2NsYXNzKQorICBMRUZUIE9VVEVS IEpPSU4gcGdfY29uc3RyYWludCBjb24gT04gY29uLmNvbnJlbGlkPXJlbC5vaWQgQU5EIGNvbi5j b250eXBlPSdwJworICBMRUZUIE9VVEVSIEpPSU4gcGdfY2xhc3MgdHN0IE9OIHRzdC5vaWQgPSBy ZWwucmVsdG9hc3RyZWxpZAorICBMRUZUIEpPSU4gcGdfdHlwZSB0eXAgT04gcmVsLnJlbG9mdHlw ZT10eXAub2lkCisgIExFRlQgSk9JTiBwZ19pbmhlcml0cyBpbmggT04gaW5oLmluaHJlbGlkID0g cmVsLm9pZAorICBMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5zcCBPTiByZWwucmVsbmFtZXNwYWNl ID0gbnNwLm9pZAorV0hFUkUgcmVsLnJlbGlzcGFydGl0aW9uIEFORCBpbmguaW5ocGFyZW50ID0g e3sgdGlkIH19OjpvaWQKK3slIGlmIHB0aWQgJX0gIEFORCByZWwub2lkID0ge3sgcHRpZCB9fTo6 b2lkIHslIGVuZGlmICV9CitPUkRFUiBCWSByZWwucmVsbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy90ZW1wbGF0ZXMvcGFydGl0aW9ucy9zcWwvcHBhcy8xMl9wbHVzL3Byb3BlcnRpZXMuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL3RlbXBsYXRlcy9wYXJ0aXRpb25zL3NxbC9wcGFzLzEyX3BsdXMvcHJvcGVy dGllcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjA5ODEyYTNiCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9wYXJ0aXRpb25zL3NxbC9wcGFz LzEyX3BsdXMvcHJvcGVydGllcy5zcWwKQEAgLTAsMCArMSw4MyBAQAorU0VMRUNUIHJlbC5vaWQs IHJlbC5yZWxuYW1lIEFTIG5hbWUsIHJlbC5yZWx0YWJsZXNwYWNlIEFTIHNwY29pZCxyZWwucmVs YWNsIEFTIHJlbGFjbF9zdHIsCisgIChDQVNFIFdIRU4gbGVuZ3RoKHNwYy5zcGNuYW1lKSA+IDAg VEhFTiBzcGMuc3BjbmFtZSBFTFNFCisgICAgKFNFTEVDVCBzcC5zcGNuYW1lIEZST00gcGdfZGF0 YWJhc2UgZHRiCisgICAgSk9JTiBwZ190YWJsZXNwYWNlIHNwIE9OIGR0Yi5kYXR0YWJsZXNwYWNl PXNwLm9pZAorICAgIFdIRVJFIGR0Yi5vaWQgPSB7eyBkaWQgfX06Om9pZCkKKyAgRU5EKSBhcyBz cGNuYW1lLAorICAoc2VsZWN0IG5zcG5hbWUgRlJPTSBwZ19uYW1lc3BhY2UgV0hFUkUgb2lkID0g e3tzY2lkfX06Om9pZCApIGFzIHBhcmVudF9zY2hlbWEsCisgIG5zcC5uc3BuYW1lIGFzIHNjaGVt YSwKKyAgcGdfZ2V0X3VzZXJieWlkKHJlbC5yZWxvd25lcikgQVMgcmVsb3duZXIsIHJlbC5yZWxp c3BhcnRpdGlvbiwKKyAgcmVsLnJlbGhhc3N1YmNsYXNzLCByZWwucmVsdHVwbGVzOjpiaWdpbnQs IGRlcy5kZXNjcmlwdGlvbiwgY29uLmNvbm5hbWUsIGNvbi5jb25rZXksCisJRVhJU1RTKHNlbGVj dCAxIEZST00gcGdfdHJpZ2dlcgorCQkJSk9JTiBwZ19wcm9jIHB0IE9OIHB0Lm9pZD10Z2ZvaWQg QU5EIHB0LnByb25hbWU9J2xvZ3RyaWdnZXInCisJCQlKT0lOIHBnX3Byb2MgcGMgT04gcGMucHJv bmFtZXNwYWNlPXB0LnByb25hbWVzcGFjZSBBTkQgcGMucHJvbmFtZT0nc2xvbnl2ZXJzaW9uJwor CQkJV0hFUkUgdGdyZWxpZD1yZWwub2lkKSBBUyBpc3JlcGwsCisJKFNFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX3RyaWdnZXIgV0hFUkUgdGdyZWxpZD1yZWwub2lkIEFORCB0Z2lzaW50ZXJuYWwgPSBG QUxTRSkgQVMgdHJpZ2dlcmNvdW50LAorCShTRUxFQ1QgQVJSQVkoU0VMRUNUIENBU0UgV0hFTiAo bnNwbmFtZSBOT1QgTElLRSAncGdcXyUnKSBUSEVOCisgICAgICAgICAgICBxdW90ZV9pZGVudChu c3BuYW1lKXx8Jy4nfHxxdW90ZV9pZGVudChjLnJlbG5hbWUpCisgICAgICAgICAgICBFTFNFIHF1 b3RlX2lkZW50KGMucmVsbmFtZSkgRU5EIEFTIGluaGVyaXRlZF90YWJsZXMKKyAgICBGUk9NIHBn X2luaGVyaXRzIGkKKyAgICBKT0lOIHBnX2NsYXNzIGMgT04gYy5vaWQgPSBpLmluaHBhcmVudAor ICAgIEpPSU4gcGdfbmFtZXNwYWNlIG4gT04gbi5vaWQ9Yy5yZWxuYW1lc3BhY2UKKyAgICBXSEVS RSBpLmluaHJlbGlkID0gcmVsLm9pZCBPUkRFUiBCWSBpbmhzZXFubykpIEFTIGNvbGxfaW5oZXJp dHMsCisgIChTRUxFQ1QgY291bnQoKikKKwkJRlJPTSBwZ19pbmhlcml0cyBpCisgICAgICBKT0lO IHBnX2NsYXNzIGMgT04gYy5vaWQgPSBpLmluaHBhcmVudAorICAgICAgSk9JTiBwZ19uYW1lc3Bh Y2UgbiBPTiBuLm9pZD1jLnJlbG5hbWVzcGFjZQorCQlXSEVSRSBpLmluaHJlbGlkID0gcmVsLm9p ZCkgQVMgaW5oZXJpdGVkX3RhYmxlc19jbnQsCisJKENBU0UgV0hFTiByZWwucmVscGVyc2lzdGVu Y2UgPSAndScgVEhFTiB0cnVlIEVMU0UgZmFsc2UgRU5EKSBBUyByZWxwZXJzaXN0ZW5jZSwKKwlz dWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHJlbC5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2ZpbGxm YWN0b3I9KFswLTldKiknKSBBUyBmaWxsZmFjdG9yLAorCShDQVNFIFdIRU4gKHN1YnN0cmluZyhh cnJheV90b19zdHJpbmcocmVsLnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9lbmFi bGVkPShbYS16fDAtOV0qKScpID0gJ3RydWUnKQorCSAgVEhFTiB0cnVlIEVMU0UgZmFsc2UgRU5E KSBBUyBhdXRvdmFjdXVtX2VuYWJsZWQsCisJc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhyZWwu cmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQ9KFswLTld KiknKSBBUyBhdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQsCisJc3Vic3RyaW5nKGFycmF5X3Rv X3N0cmluZyhyZWwucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1bV9zY2Fs ZV9mYWN0b3I9KFswLTldKlsuXT9bMC05XSopJykgQVMgYXV0b3ZhY3V1bV92YWN1dW1fc2NhbGVf ZmFjdG9yLAorCXN1YnN0cmluZyhhcnJheV90b19zdHJpbmcocmVsLnJlbG9wdGlvbnMsICcsJykg RlJPTSAnYXV0b3ZhY3V1bV9hbmFseXplX3RocmVzaG9sZD0oWzAtOV0qKScpIEFTIGF1dG92YWN1 dW1fYW5hbHl6ZV90aHJlc2hvbGQsCisJc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhyZWwucmVs b3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX2FuYWx5emVfc2NhbGVfZmFjdG9yPShbMC05 XSpbLl0/WzAtOV0qKScpIEFTIGF1dG92YWN1dW1fYW5hbHl6ZV9zY2FsZV9mYWN0b3IsCisJc3Vi c3RyaW5nKGFycmF5X3RvX3N0cmluZyhyZWwucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFj dXVtX3ZhY3V1bV9jb3N0X2RlbGF5PShbMC05XSopJykgQVMgYXV0b3ZhY3V1bV92YWN1dW1fY29z dF9kZWxheSwKKwlzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHJlbC5yZWxvcHRpb25zLCAnLCcp IEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQ9KFswLTldKiknKSBBUyBhdXRvdmFj dXVtX3ZhY3V1bV9jb3N0X2xpbWl0LAorCXN1YnN0cmluZyhhcnJheV90b19zdHJpbmcocmVsLnJl bG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9mcmVlemVfbWluX2FnZT0oWzAtOV0qKScp IEFTIGF1dG92YWN1dW1fZnJlZXplX21pbl9hZ2UsCisJc3Vic3RyaW5nKGFycmF5X3RvX3N0cmlu ZyhyZWwucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6ZV9tYXhfYWdlPShb MC05XSopJykgQVMgYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2FnZSwKKwlzdWJzdHJpbmcoYXJyYXlf dG9fc3RyaW5nKHJlbC5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fZnJlZXplX3Rh YmxlX2FnZT0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fZnJlZXplX3RhYmxlX2FnZSwKKwkoQ0FT RSBXSEVOIChzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpIEZS T00gJ2F1dG92YWN1dW1fZW5hYmxlZD0oW2EtenwwLTldKiknKSA9ICAndHJ1ZScpCisJICBUSEVO IHRydWUgRUxTRSBmYWxzZSBFTkQpIEFTIHRvYXN0X2F1dG92YWN1dW1fZW5hYmxlZCwKKwlzdWJz dHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1 dW1fdmFjdXVtX3RocmVzaG9sZD0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fdmFjdXVt X3RocmVzaG9sZCwKKwlzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAn LCcpIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX3NjYWxlX2ZhY3Rvcj0oWzAtOV0qWy5dP1swLTld KiknKSBBUyB0b2FzdF9hdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3IsCisJc3Vic3RyaW5n KGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX2Fu YWx5emVfdGhyZXNob2xkPShbMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9hbmFseXplX3Ro cmVzaG9sZCwKKwlzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcp IEZST00gJ2F1dG92YWN1dW1fYW5hbHl6ZV9zY2FsZV9mYWN0b3I9KFswLTldKlsuXT9bMC05XSop JykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9hbmFseXplX3NjYWxlX2ZhY3RvciwKKwlzdWJzdHJpbmco YXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fdmFj dXVtX2Nvc3RfZGVsYXk9KFswLTldKiknKSBBUyB0b2FzdF9hdXRvdmFjdXVtX3ZhY3V1bV9jb3N0 X2RlbGF5LAorCXN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykg RlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9saW1pdD0oWzAtOV0qKScpIEFTIHRvYXN0X2F1 dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQsCisJc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0 c3QucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6ZV9taW5fYWdlPShbMC05 XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9mcmVlemVfbWluX2FnZSwKKwlzdWJzdHJpbmcoYXJy YXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fZnJlZXpl X21heF9hZ2U9KFswLTldKiknKSBBUyB0b2FzdF9hdXRvdmFjdXVtX2ZyZWV6ZV9tYXhfYWdlLAor CXN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0 b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlPShbMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9m cmVlemVfdGFibGVfYWdlLAorCWFycmF5X3RvX3N0cmluZyhyZWwucmVsb3B0aW9ucywgJywnKSBB UyB0YWJsZV92YWN1dW1fc2V0dGluZ3Nfc3RyLAorCWFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0 aW9ucywgJywnKSBBUyB0b2FzdF90YWJsZV92YWN1dW1fc2V0dGluZ3Nfc3RyLAorCXJlbC5yZWxv cHRpb25zIEFTIHJlbG9wdGlvbnMsIHRzdC5yZWxvcHRpb25zIEFTIHRvYXN0X3JlbG9wdGlvbnMs IHJlbC5yZWxvZnR5cGUsIHR5cC50eXBuYW1lLAorCXR5cC50eXByZWxpZCBBUyB0eXBvaWQsCisJ KENBU0UgV0hFTiByZWwucmVsdG9hc3RyZWxpZCA9IDAgVEhFTiBmYWxzZSBFTFNFIHRydWUgRU5E KSBBUyBoYXN0b2FzdHRhYmxlLAorICAgIC0tIEFkZGVkIGZvciBwZ0FkbWluNAorCShDQVNFIFdI RU4gYXJyYXlfbGVuZ3RoKHJlbC5yZWxvcHRpb25zLCAxKSA+IDAgVEhFTiB0cnVlIEVMU0UgZmFs c2UgRU5EKSBBUyBhdXRvdmFjdXVtX2N1c3RvbSwKKwkoQ0FTRSBXSEVOIGFycmF5X2xlbmd0aCh0 c3QucmVsb3B0aW9ucywgMSkgPiAwIEFORCByZWwucmVsdG9hc3RyZWxpZCAhPSAwIFRIRU4gdHJ1 ZSBFTFNFIGZhbHNlIEVORCkgQVMgdG9hc3RfYXV0b3ZhY3V1bSwKKworCShTRUxFQ1QgYXJyYXlf YWdnKHByb3ZpZGVyIHx8ICc9JyB8fCBsYWJlbCkgRlJPTSBwZ19zZWNsYWJlbHMgc2wxIFdIRVJF IHNsMS5vYmpvaWQ9cmVsLm9pZCBBTkQgc2wxLm9ianN1YmlkPTApIEFTIHNlY2xhYmVscywKKwko Q0FTRSBXSEVOIHJlbC5vaWQgPD0ge3sgZGF0bGFzdHN5c29pZH19OjpvaWQgVEhFTiB0cnVlIEVs U0UgZmFsc2UgRU5EKSBBUyBpc19zeXNfdGFibGUsCisJLS0gQWRkZWQgZm9yIHBhcnRpdGlvbiB0 YWJsZQorCShDQVNFIFdIRU4gcmVsLnJlbGtpbmQgPSAncCcgVEhFTiB0cnVlIEVMU0UgZmFsc2Ug RU5EKSBBUyBpc19wYXJ0aXRpb25lZCwKKwkoQ0FTRSBXSEVOIHJlbC5yZWxraW5kID0gJ3AnIFRI RU4gcGdfZ2V0X3BhcnRrZXlkZWYocmVsLm9pZDo6b2lkKSBFTFNFICcnIEVORCkgQVMgcGFydGl0 aW9uX3NjaGVtZSwKKwl7JSBpZiBwdGlkICV9CisJICAoQ0FTRSBXSEVOIHJlbC5yZWxpc3BhcnRp dGlvbiBUSEVOIHBnX2dldF9leHByKHJlbC5yZWxwYXJ0Ym91bmQsIHt7IHB0aWQgfX06Om9pZCkg RUxTRSAnJyBFTkQpIEFTIHBhcnRpdGlvbl92YWx1ZSwKKwkgIChTRUxFQ1QgcmVsbmFtZSBGUk9N IHBnX2NsYXNzIFdIRVJFIG9pZCA9IHt7IHRpZCB9fTo6b2lkKSBBUyBwYXJ0aXRpb25lZF90YWJs ZV9uYW1lCisJeyUgZWxzZSAlfQorCSAgcGdfZ2V0X2V4cHIocmVsLnJlbHBhcnRib3VuZCwgcmVs Lm9pZCkgQVMgcGFydGl0aW9uX3ZhbHVlCisJeyUgZW5kaWYgJX0KKworRlJPTSBwZ19jbGFzcyBy ZWwKKyAgTEVGVCBPVVRFUiBKT0lOIHBnX3RhYmxlc3BhY2Ugc3BjIG9uIHNwYy5vaWQ9cmVsLnJl bHRhYmxlc3BhY2UKKyAgTEVGVCBPVVRFUiBKT0lOIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVz Lm9iam9pZD1yZWwub2lkIEFORCBkZXMub2Jqc3ViaWQ9MCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19j bGFzcyc6OnJlZ2NsYXNzKQorICBMRUZUIE9VVEVSIEpPSU4gcGdfY29uc3RyYWludCBjb24gT04g Y29uLmNvbnJlbGlkPXJlbC5vaWQgQU5EIGNvbi5jb250eXBlPSdwJworICBMRUZUIE9VVEVSIEpP SU4gcGdfY2xhc3MgdHN0IE9OIHRzdC5vaWQgPSByZWwucmVsdG9hc3RyZWxpZAorICBMRUZUIEpP SU4gcGdfdHlwZSB0eXAgT04gcmVsLnJlbG9mdHlwZT10eXAub2lkCisgIExFRlQgSk9JTiBwZ19p bmhlcml0cyBpbmggT04gaW5oLmluaHJlbGlkID0gcmVsLm9pZAorICBMRUZUIEpPSU4gcGdfbmFt ZXNwYWNlIG5zcCBPTiByZWwucmVsbmFtZXNwYWNlID0gbnNwLm9pZAorV0hFUkUgcmVsLnJlbGlz cGFydGl0aW9uIEFORCBpbmguaW5ocGFyZW50ID0ge3sgdGlkIH19OjpvaWQKK3slIGlmIHB0aWQg JX0gIEFORCByZWwub2lkID0ge3sgcHRpZCB9fTo6b2lkIHslIGVuZGlmICV9CitPUkRFUiBCWSBy ZWwucmVsbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGVzL3NxbC8x Ml9wbHVzL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlcy9zcWwvMTJfcGx1 cy9jcmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi5jYjQwMDU0 MgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGVzL3NxbC8xMl9w bHVzL2NyZWF0ZS5zcWwKQEAgLTAsMCArMSwxODIgQEAKK3slIGltcG9ydCAnbWFjcm9zL3NjaGVt YXMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJFTCAlfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2No ZW1hcy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9z L3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX0KK3slIGltcG9ydCAnY29sdW1ucy9tYWNy b3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBDT0xVTU5fU0VDTEFCRUwgJX0KK3slIGltcG9ydCAnY29s dW1ucy9tYWNyb3MvcHJpdmlsZWdlLm1hY3JvcycgYXMgQ09MVU1OX1BSSVZJTEVHRSAlfQoreyUg aW1wb3J0ICd0YWJsZXMvc3FsL21hY3Jvcy9jb25zdHJhaW50cy5tYWNybycgYXMgQ09OU1RSQUlO VFMgJX0KK3slIGltcG9ydCAndHlwZXMvbWFjcm9zL2dldF9mdWxsX3R5cGVfc3FsX2Zvcm1hdC5t YWNyb3MnIGFzIEdFVF9UWVBFICV9Cit7Iz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0jfQoreyM9PT09PT0gTUFJTiBUQUJMRSBURU1QTEFURSBTVEFSVFMgSEVSRSA9 PT09PT0jfQoreyM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09I30K K3sjCisgSWYgdXNlciBoYXMgbm90IHByb3ZpZGVkIGFueSBkZXRhaWxzIGJ1dCBvbmx5IG5hbWUg dGhlbgorIGFkZCBlbXB0eSBicmFja2V0IHdpdGggdGFibGUgbmFtZQorI30KK3slIHNldCBlbXB0 eV9icmFja2V0ID0gIiIlfQoreyUgaWYgZGF0YS5jb2xsX2luaGVyaXRzfGxlbmd0aCA9PSAwIGFu ZCAgZGF0YS5jb2x1bW5zfGxlbmd0aCA9PSAwIGFuZCBub3QgZGF0YS50eXBuYW1lIGFuZCBub3Qg ZGF0YS5saWtlX3JlbGF0aW9uIGFuZCBkYXRhLnByaW1hcnlfa2V5fGxlbmd0aCA9PSAwIGFuZCBk YXRhLnVuaXF1ZV9jb25zdHJhaW50fGxlbmd0aCA9PSAwIGFuZCBkYXRhLmZvcmVpZ25fa2V5fGxl bmd0aCA9PSAwIGFuZCBkYXRhLmNoZWNrX2NvbnN0cmFpbnR8bGVuZ3RoID09IDAgYW5kIGRhdGEu ZXhjbHVkZV9jb25zdHJhaW50fGxlbmd0aCA9PSAwICV9Cit7JSBzZXQgZW1wdHlfYnJhY2tldCA9 ICJcbihcbikiJX0KK3slIGVuZGlmICV9Cit7JSBzZXQgd2l0aF9jbGF1c2UgPSBmYWxzZSV9Cit7 JSBpZiBkYXRhLmZpbGxmYWN0b3Igb3IgZGF0YS5hdXRvdmFjdXVtX2N1c3RvbSBvciBkYXRhLmF1 dG92YWN1dW1fZW5hYmxlZCBvciBkYXRhLnRvYXN0X2F1dG92YWN1dW0gb3IgZGF0YS50b2FzdF9h dXRvdmFjdXVtX2VuYWJsZWQgb3IgKGRhdGEuYXV0b3ZhY3V1bV9lbmFibGVkIGFuZCBkYXRhLnZh Y3V1bV90YWJsZXxsZW5ndGggPiAwKSBvciAoZGF0YS50b2FzdF9hdXRvdmFjdXVtX2VuYWJsZWQg YW5kIGRhdGEudmFjdXVtX3RvYXN0fGxlbmd0aCA+IDApICV9Cit7JSBzZXQgd2l0aF9jbGF1c2Ug PSB0cnVlJX0KK3slIGVuZGlmICV9CitDUkVBVEUgeyUgaWYgZGF0YS5yZWxwZXJzaXN0ZW5jZSAl fVVOTE9HR0VEIHslIGVuZGlmICV9VEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRh dGEubmFtZSl9fXt7ZW1wdHlfYnJhY2tldH19Cit7JSBpZiBkYXRhLnR5cG5hbWUgJX0KKyAgICBP RiB7eyBkYXRhLnR5cG5hbWUgfX0KK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmxpa2VfcmVsYXRp b24gb3IgZGF0YS5jb2xsX2luaGVyaXRzIG9yIGRhdGEuY29sdW1uc3xsZW5ndGggPiAwIG9yIGRh dGEucHJpbWFyeV9rZXl8bGVuZ3RoID4gMCBvciBkYXRhLnVuaXF1ZV9jb25zdHJhaW50fGxlbmd0 aCA+IDAgb3IgZGF0YS5mb3JlaWduX2tleXxsZW5ndGggPiAwIG9yIGRhdGEuY2hlY2tfY29uc3Ry YWludHxsZW5ndGggPiAwIG9yIGRhdGEuZXhjbHVkZV9jb25zdHJhaW50fGxlbmd0aCA+IDAgJX0K KygKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmxpa2VfcmVsYXRpb24gJX0KKyAgICBMSUtFIHt7 IGRhdGEubGlrZV9yZWxhdGlvbiB9fXslIGlmIGRhdGEubGlrZV9kZWZhdWx0X3ZhbHVlICV9CisK KyAgICAgICAgSU5DTFVESU5HIERFRkFVTFRTeyUgZW5kaWYgJX17JSBpZiBkYXRhLmxpa2VfY29u c3RyYWludHMgJX0KKworICAgICAgICBJTkNMVURJTkcgQ09OU1RSQUlOVFN7JSBlbmRpZiAlfXsl IGlmIGRhdGEubGlrZV9pbmRleGVzICV9CisKKyAgICAgICAgSU5DTFVESU5HIElOREVYRVN7JSBl bmRpZiAlfXslIGlmIGRhdGEubGlrZV9zdG9yYWdlICV9CisKKyAgICAgICAgSU5DTFVESU5HIFNU T1JBR0V7JSBlbmRpZiAlfXslIGlmIGRhdGEubGlrZV9jb21tZW50cyAlfQorCisgICAgICAgIElO Q0xVRElORyBDT01NRU5UU3slIGVuZGlmICV9eyUgaWYgZGF0YS5jb2x1bW5zfGxlbmd0aCA+IDAg JX0sCit7JSBlbmRpZiAlfQorCit7JSBlbmRpZiAlfQoreyMjIyBBZGQgY29sdW1ucyAjIyN9Cit7 JSBpZiBkYXRhLmNvbHVtbnMgYW5kIGRhdGEuY29sdW1uc3xsZW5ndGggPiAwICV9Cit7JSBmb3Ig YyBpbiBkYXRhLmNvbHVtbnMgJX0KK3slIGlmIGMubmFtZSBhbmQgYy5jbHR5cGUgJX0KKyAgICB7 JSBpZiBjLmluaGVyaXRlZGZyb210YWJsZSAlfS0tIEluaGVyaXRlZCBmcm9tIHRhYmxlIHt7Yy5p bmhlcml0ZWRmcm9tdGFibGV9fTogeyUgZWxpZiBjLmluaGVyaXRlZGZyb210eXBlICV9LS0gSW5o ZXJpdGVkIGZyb20gdHlwZSB7e2MuaW5oZXJpdGVkZnJvbXR5cGV9fTogeyUgZW5kaWYgJX17e2Nv bm58cXRJZGVudChjLm5hbWUpfX0geyUgaWYgaXNfc3FsICV9e3tjLmRpc3BsYXl0eXBuYW1lfX17 JSBlbHNlICV9e3sgR0VUX1RZUEUuQ1JFQVRFX1RZUEVfU1FMKGNvbm4sIGMuY2x0eXBlLCBjLmF0 dGxlbiwgYy5hdHRwcmVjaXNpb24sIGMuaGFzU3FyQnJhY2tldCkgfX17JSBlbmRpZiAlfXslIGlm IGMuY29sbHNwY25hbWUgJX0gQ09MTEFURSB7e2MuY29sbHNwY25hbWV9fXslIGVuZGlmICV9eyUg aWYgYy5hdHRub3RudWxsICV9IE5PVCBOVUxMeyUgZW5kaWYgJX17JSBpZiBjLmRlZnZhbCAlfSBE RUZBVUxUIHt7Yy5kZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBjLmF0dGlkZW50aXR5IGFuZCBj LmF0dGlkZW50aXR5ICE9ICcnICV9Cit7JSBpZiBjLmF0dGlkZW50aXR5ID09ICdhJyAlfSBHRU5F UkFURUQgQUxXQVlTIEFTIElERU5USVRZeyUgZWxpZiBjLmF0dGlkZW50aXR5ID09ICdkJyAlfSBH RU5FUkFURUQgQlkgREVGQVVMVCBBUyBJREVOVElUWXslIGVuZGlmICV9Cit7JSBpZiBjLnNlcWlu Y3JlbWVudCBvciBjLnNlcWN5Y2xlIG9yIGMuc2VxaW5jcmVtZW50IG9yIGMuc2Vxc3RhcnQgb3Ig Yy5zZXFtaW4gb3IgYy5zZXFtYXggb3IgYy5zZXFjYWNoZSAlfSAoIHslIGVuZGlmICV9Cit7JSBp ZiBjLnNlcWluY3JlbWVudCBpcyBkZWZpbmVkIGFuZCBjLnNlcWN5Y2xlICV9CitDWUNMRSB7JSBl bmRpZiAlfXslIGlmIGMuc2VxaW5jcmVtZW50IGlzIGRlZmluZWQgYW5kIGMuc2VxaW5jcmVtZW50 fGludCgtMSkgPiAtMSAlfQorSU5DUkVNRU5UIHt7Yy5zZXFpbmNyZW1lbnR8aW50fX0geyUgZW5k aWYgJX17JSBpZiBjLnNlcXN0YXJ0IGlzIGRlZmluZWQgYW5kIGMuc2Vxc3RhcnR8aW50KC0xKSA+ IC0xJX0KK1NUQVJUIHt7Yy5zZXFzdGFydHxpbnR9fSB7JSBlbmRpZiAlfXslIGlmIGMuc2VxbWlu IGlzIGRlZmluZWQgYW5kIGMuc2VxbWlufGludCgtMSkgPiAtMSV9CitNSU5WQUxVRSB7e2Muc2Vx bWlufGludH19IHslIGVuZGlmICV9eyUgaWYgYy5zZXFtYXggaXMgZGVmaW5lZCBhbmQgYy5zZXFt YXh8aW50KC0xKSA+IC0xJX0KK01BWFZBTFVFIHt7Yy5zZXFtYXh8aW50fX0geyUgZW5kaWYgJX17 JSBpZiBjLnNlcWNhY2hlIGlzIGRlZmluZWQgYW5kIGMuc2VxY2FjaGV8aW50KC0xKSA+IC0xJX0K K0NBQ0hFIHt7Yy5zZXFjYWNoZXxpbnR9fSB7JSBlbmRpZiAlfQoreyUgaWYgYy5zZXFpbmNyZW1l bnQgb3IgYy5zZXFjeWNsZSBvciBjLnNlcWluY3JlbWVudCBvciBjLnNlcXN0YXJ0IG9yIGMuc2Vx bWluIG9yIGMuc2VxbWF4IG9yIGMuc2VxY2FjaGUgJX0peyUgZW5kaWYgJX0KK3slIGVuZGlmICV9 Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9LAoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7JSBl bmRmb3IgJX0KK3slIGVuZGlmICV9Cit7IyBNYWNybyB0byByZW5kZXIgZm9yIGNvbnN0cmFpbnRz ICN9Cit7JSBpZiBkYXRhLnByaW1hcnlfa2V5fGxlbmd0aCA+IDAgJX17JSBpZiBkYXRhLmNvbHVt bnN8bGVuZ3RoID4gMCAlfSx7JSBlbmRpZiAlfQore3tDT05TVFJBSU5UUy5QUklNQVJZX0tFWShj b25uLCBkYXRhLnByaW1hcnlfa2V5WzBdKX19eyUgZW5kaWYgJX17JSBpZiBkYXRhLnVuaXF1ZV9j b25zdHJhaW50fGxlbmd0aCA+IDAgJX17JSBpZiBkYXRhLmNvbHVtbnN8bGVuZ3RoID4gMCBvciBk YXRhLnByaW1hcnlfa2V5fGxlbmd0aCA+IDAgJX0seyUgZW5kaWYgJX0KK3t7Q09OU1RSQUlOVFMu VU5JUVVFKGNvbm4sIGRhdGEudW5pcXVlX2NvbnN0cmFpbnQpfX17JSBlbmRpZiAlfXslIGlmIGRh dGEuZm9yZWlnbl9rZXl8bGVuZ3RoID4gMCAlfXslIGlmIGRhdGEuY29sdW1uc3xsZW5ndGggPiAw IG9yIGRhdGEucHJpbWFyeV9rZXl8bGVuZ3RoID4gMCBvciBkYXRhLnVuaXF1ZV9jb25zdHJhaW50 fGxlbmd0aCA+IDAgJX0seyUgZW5kaWYgJX0KK3t7Q09OU1RSQUlOVFMuRk9SRUlHTl9LRVkoY29u biwgZGF0YS5mb3JlaWduX2tleSl9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5jaGVja19jb25zdHJh aW50fGxlbmd0aCA+IDAgJX17JSBpZiBkYXRhLmNvbHVtbnN8bGVuZ3RoID4gMCBvciBkYXRhLnBy aW1hcnlfa2V5fGxlbmd0aCA+IDAgb3IgZGF0YS51bmlxdWVfY29uc3RyYWludHxsZW5ndGggPiAw IG9yIGRhdGEuZm9yZWlnbl9rZXl8bGVuZ3RoID4gMCAlfSx7JSBlbmRpZiAlfQore3tDT05TVFJB SU5UUy5DSEVDSyhjb25uLCBkYXRhLmNoZWNrX2NvbnN0cmFpbnQpfX17JSBlbmRpZiAlfXslIGlm IGRhdGEuZXhjbHVkZV9jb25zdHJhaW50fGxlbmd0aCA+IDAgJX17JSBpZiBkYXRhLmNvbHVtbnN8 bGVuZ3RoID4gMCBvciBkYXRhLnByaW1hcnlfa2V5fGxlbmd0aCA+IDAgb3IgZGF0YS51bmlxdWVf Y29uc3RyYWludHxsZW5ndGggPiAwIG9yIGRhdGEuZm9yZWlnbl9rZXl8bGVuZ3RoID4gMCBvciBk YXRhLmNoZWNrX2NvbnN0cmFpbnR8bGVuZ3RoID4gMCAlfSx7JSBlbmRpZiAlfQore3tDT05TVFJB SU5UUy5FWENMVURFKGNvbm4sIGRhdGEuZXhjbHVkZV9jb25zdHJhaW50KX19eyUgZW5kaWYgJX0K K3slIGlmIGRhdGEubGlrZV9yZWxhdGlvbiBvciBkYXRhLmNvbGxfaW5oZXJpdHMgb3IgZGF0YS5j b2x1bW5zfGxlbmd0aCA+IDAgb3IgZGF0YS5wcmltYXJ5X2tleXxsZW5ndGggPiAwIG9yIGRhdGEu dW5pcXVlX2NvbnN0cmFpbnR8bGVuZ3RoID4gMCBvciBkYXRhLmZvcmVpZ25fa2V5fGxlbmd0aCA+ IDAgb3IgZGF0YS5jaGVja19jb25zdHJhaW50fGxlbmd0aCA+IDAgb3IgZGF0YS5leGNsdWRlX2Nv bnN0cmFpbnR8bGVuZ3RoID4gMCAlfQorCispeyUgZW5kaWYgJX17JSBpZiBkYXRhLnJlbGtpbmQg aXMgZGVmaW5lZCBhbmQgZGF0YS5yZWxraW5kID09ICdwJyAlfSBQQVJUSVRJT04gQlkge3sgZGF0 YS5wYXJ0aXRpb25fc2NoZW1lIH19IHslIGVuZGlmICV9Cit7JSBpZiBub3QgZGF0YS5jb2xsX2lu aGVyaXRzIGFuZCAobm90IGRhdGEuc3BjbmFtZSBvciAoZGF0YS5zcGNuYW1lIGFuZCBkYXRhLmlz X3BhcnRpdGlvbmVkKSkgYW5kIG5vdCB3aXRoX2NsYXVzZSAlfTt7JSBlbmRpZiAlfQorCit7IyMj IElmIHdlIGFyZSBpbmhlcml0aW5nIGl0IGZyb20gYW5vdGhlciB0YWJsZShzKSAjIyN9Cit7JSBp ZiBkYXRhLmNvbGxfaW5oZXJpdHMgJX0KKyAgICBJTkhFUklUUyAoeyUgZm9yIHZhbCBpbiBkYXRh LmNvbGxfaW5oZXJpdHMgJX17JSBpZiBsb29wLmluZGV4ICE9IDEgJX0sIHslIGVuZGlmICV9e3t2 YWx9fXslIGVuZGZvciAlfSl7JSBpZiBub3QgZGF0YS5zcGNuYW1lIGFuZCBub3Qgd2l0aF9jbGF1 c2UgJX07eyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CisKK3slIGlmIHdpdGhfY2xhdXNlICV9Cit7 JSBzZXQgYWRkX2NvbW1hID0gZmFsc2UlfQorV0lUSCAoCit7JSBpZiBkYXRhLmZpbGxmYWN0b3Ig JX17JSBzZXQgYWRkX2NvbW1hID0gdHJ1ZSV9CisgICAgRklMTEZBQ1RPUiA9IHt7IGRhdGEuZmls bGZhY3RvciB9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5hdXRvdmFjdXVtX2N1c3RvbSAlfQoreyUg aWYgYWRkX2NvbW1hICV9LAoreyUgZW5kaWYgJX0KKyAgICBhdXRvdmFjdXVtX2VuYWJsZWQgPSB7 JSBpZiBkYXRhLmF1dG92YWN1dW1fZW5hYmxlZCAlfVRSVUV7JSBlbHNlICV9RkFMU0V7JSBlbmRp ZiAlfXslIHNldCBhZGRfY29tbWEgPSB0cnVlJX17JSBlbmRpZiAlfXslIGlmIGRhdGEudG9hc3Rf YXV0b3ZhY3V1bSAlfQoreyUgaWYgYWRkX2NvbW1hICV9LAoreyUgZW5kaWYgJX0KKyAgICB0b2Fz dC5hdXRvdmFjdXVtX2VuYWJsZWQgPSB7JSBpZiBkYXRhLnRvYXN0X2F1dG92YWN1dW1fZW5hYmxl ZCAlfVRSVUV7JSBlbHNlICV9RkFMU0V7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX17JSBpZiBkYXRh LmF1dG92YWN1dW1fZW5hYmxlZCBhbmQgZGF0YS52YWN1dW1fdGFibGV8bGVuZ3RoID4gMCAlfQor eyUgZm9yIG9wdCBpbiBkYXRhLnZhY3V1bV90YWJsZSAlfXslIGlmIG9wdC5uYW1lIGFuZCBvcHQu dmFsdWUgJX0KKywKKyAgICB7e29wdC5uYW1lfX0gPSB7e29wdC52YWx1ZX19eyUgZW5kaWYgJX0K K3slIGVuZGZvciAlfXslIGVuZGlmICV9eyUgaWYgZGF0YS50b2FzdF9hdXRvdmFjdXVtX2VuYWJs ZWQgYW5kIGRhdGEudmFjdXVtX3RvYXN0fGxlbmd0aCA+IDAgJX0KK3slIGZvciBvcHQgaW4gZGF0 YS52YWN1dW1fdG9hc3QgJX17JSBpZiBvcHQubmFtZSBhbmQgb3B0LnZhbHVlICV9CissCisgICAg dG9hc3Que3tvcHQubmFtZX19ID0ge3tvcHQudmFsdWV9fXslIGVuZGlmICV9Cit7JSBlbmRmb3Ig JX17JSBlbmRpZiAlfQorCit7JSBpZiBkYXRhLnNwY25hbWUgYW5kIG5vdCBkYXRhLmlzX3BhcnRp dGlvbmVkICV9KXslIGVsc2UgJX0pO3slIGVuZGlmICV9CisKK3slIGVuZGlmICV9Cit7IyMjIFNR TCBmb3IgVGFibGVzcGFjZSAjIyN9Cit7JSBpZiBkYXRhLnNwY25hbWUgYW5kIG5vdCBkYXRhLmlz X3BhcnRpdGlvbmVkICV9CitUQUJMRVNQQUNFIHt7IGNvbm58cXRJZGVudChkYXRhLnNwY25hbWUp IH19OworeyUgZW5kaWYgJX0KK3sjIyMgQWx0ZXIgU1FMIGZvciBPd25lciAjIyN9Cit7JSBpZiBk YXRhLnJlbG93bmVyICV9CisKK0FMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1h LCBkYXRhLm5hbWUpfX0KKyAgICBPV05FUiB0byB7e2Nvbm58cXRJZGVudChkYXRhLnJlbG93bmVy KX19OworeyUgZW5kaWYgJX0KK3sjIyMgU2VjdXJpdHkgTGFiZWxzIG9uIFRhYmxlICMjI30KK3sl IGlmIGRhdGEuc2VjbGFiZWxzIGFuZCBkYXRhLnNlY2xhYmVsc3xsZW5ndGggPiAwICV9CisKK3sl IGZvciByIGluIGRhdGEuc2VjbGFiZWxzICV9Cit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ1RBQkxF JywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLmxhYmVsLCBkYXRhLnNjaGVtYSkgfX0KK3slIGVu ZGZvciAlfQoreyUgZW5kaWYgJX0KK3sjIyMgIEFDTCBvbiBUYWJsZSAjIyN9Cit7JSBpZiBkYXRh LnJlbGFjbCAlfQorCit7JSBmb3IgcHJpdiBpbiBkYXRhLnJlbGFjbCAlfQore3sgUFJJVklMRUdF LlNFVChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgcHJpdi53aXRob3V0 X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7 JSBlbmRpZiAlfQoreyMjIyBTUUwgZm9yIENPTU1FTlQgIyMjfQoreyUgaWYgZGF0YS5kZXNjcmlw dGlvbiAlfQorQ09NTUVOVCBPTiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0 YS5uYW1lKX19CisgICAgSVMge3tkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJhbH19OworeyUgZW5k aWYgJX0KK3sjPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSN9Cit7 Iz09PT09PSBNQUlOIFRBQkxFIFRFTVBMQVRFIEVORFMgSEVSRSA9PT09PT0jfQoreyM9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09I30KK3sjPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PSN9Cit7IyAgQ09MVU1OIFNQRUNJRklDIFRFTVBM QVRFUyBTVEFSVFMgSEVSRSAgICAjfQoreyM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09I30KK3slIGlmIGRhdGEuY29sdW1ucyBhbmQgZGF0YS5jb2x1bW5zfGxlbmd0 aCA+IDAgJX0KK3slIGZvciBjIGluIGRhdGEuY29sdW1ucyAlfQoreyUgaWYgYy5kZXNjcmlwdGlv biAlfQorCitDT01NRU5UIE9OIENPTFVNTiB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0 YS5uYW1lLCBjLm5hbWUpfX0KKyAgICBJUyB7e2MuZGVzY3JpcHRpb258cXRMaXRlcmFsfX07Cit7 JSBlbmRpZiAlfQoreyMjIyAgQWRkIHZhcmlhYmxlcyB0byBjb2x1bW4gIyMjfQoreyUgaWYgYy5h dHRvcHRpb25zIGFuZCBjLmF0dG9wdGlvbnN8bGVuZ3RoID4gMCAlfQorCitBTFRFUiBUQUJMRSB7 e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKX19CisgICAge3sgVkFSSUFCTEUu U0VUKGNvbm4sICdDT0xVTU4nLCBjLm5hbWUsIGMuYXR0b3B0aW9ucykgfX0KK3slIGVuZGlmICV9 Cit7IyMjICBBQ0wgIyMjfQoreyUgaWYgYy5hdHRhY2wgYW5kIGMuYXR0YWNsfGxlbmd0aCA+IDAg JX0KKworeyUgZm9yIHByaXYgaW4gYy5hdHRhY2wgJX0KKyAgICB7eyBDT0xVTU5fUFJJVklMRUdF LkFQUExZKGNvbm4sIGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUsIGMubmFtZSwgcHJpdi5ncmFudGVl LCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCkgfX0KK3slIGVuZGZvciAlfQor eyUgZW5kaWYgJX0KK3sjIyMgIFNlY3VyaXR5IExhYmxlcyAjIyN9Cit7JSBpZiBjLnNlY2xhYmVs cyBhbmQgYy5zZWNsYWJlbHN8bGVuZ3RoID4gMCAlfQorCit7JSBmb3IgciBpbiBjLnNlY2xhYmVs cyAlfQore3sgQ09MVU1OX1NFQ0xBQkVMLkFQUExZKGNvbm4sICdDT0xVTU4nLGRhdGEuc2NoZW1h LCBkYXRhLm5hbWUsIGMubmFtZSwgci5wcm92aWRlciwgci5sYWJlbCkgfX0KK3slIGVuZGZvciAl fQoreyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3sjPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSN9Cit7IyAgIENPTFVNTiBTUEVDSUZJQyBU RU1QTEFURVMgRU5EUyBIRVJFICAgICAjfQoreyM9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09I30KK3sjPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0jfQoreyMgICBDT05TVFJBSU5UUyBTUEVDSUZJQyBURU1QTEFURVMgICAgICN9Cit7Iz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09I30KK3t7Q09OU1RSQUlOVFMuQ09OU1RS QUlOVF9DT01NRU5UUyhjb25uLCBkYXRhLnNjaGVtYSwgZGF0YS5uYW1lLCBkYXRhLnByaW1hcnlf a2V5KX19Cit7e0NPTlNUUkFJTlRTLkNPTlNUUkFJTlRfQ09NTUVOVFMoY29ubiwgZGF0YS5zY2hl bWEsIGRhdGEubmFtZSwgZGF0YS51bmlxdWVfY29uc3RyYWludCl9fQore3tDT05TVFJBSU5UUy5D T05TVFJBSU5UX0NPTU1FTlRTKGNvbm4sIGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUsIGRhdGEuZm9y ZWlnbl9rZXkpfX0KK3t7Q09OU1RSQUlOVFMuQ09OU1RSQUlOVF9DT01NRU5UUyhjb25uLCBkYXRh LnNjaGVtYSwgZGF0YS5uYW1lLCBkYXRhLmNoZWNrX2NvbnN0cmFpbnQpfX0KK3t7Q09OU1RSQUlO VFMuQ09OU1RSQUlOVF9DT01NRU5UUyhjb25uLCBkYXRhLnNjaGVtYSwgZGF0YS5uYW1lLCBkYXRh LmV4Y2x1ZGVfY29uc3RyYWludCl9fQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90 YWJsZXMvc3FsLzEyX3BsdXMvZ2V0X3RhYmxlc19mb3JfY29uc3RyYWludHMuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3RlbXBsYXRlcy90YWJsZXMvc3FsLzEyX3BsdXMvZ2V0X3RhYmxlc19mb3JfY29uc3RyYWlu dHMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi45OTA4OWExMgotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGVzL3NxbC8xMl9wbHVzL2dl dF90YWJsZXNfZm9yX2NvbnN0cmFpbnRzLnNxbApAQCAtMCwwICsxLDggQEAKK1NFTEVDVCBjbC5v aWQgYXMgdmFsdWUsIHF1b3RlX2lkZW50KG5zcG5hbWUpfHwnLid8fHF1b3RlX2lkZW50KHJlbG5h bWUpIEFTIGxhYmVsCitGUk9NIHBnX25hbWVzcGFjZSBuc3AsIHBnX2NsYXNzIGNsCitXSEVSRSBy ZWxuYW1lc3BhY2U9bnNwLm9pZCBBTkQgcmVsa2luZCBpbiAoJ3InLCAncCcpCisgICBBTkQgbnNw Lm5zcG5hbWUgTk9UIExJS0UgRSdwZ1xfdGVtcFxfJScKKyAgIHslIGlmIG5vdCBzaG93X3N5c29i aiAlfQorICAgQU5EIChuc3AubnNwbmFtZSBOT1QgTElLRSAncGdcXyUnIEFORCBuc3AubnNwbmFt ZSBOT1QgaW4gKCdpbmZvcm1hdGlvbl9zY2hlbWEnKSkKKyAgIHslIGVuZGlmICV9CitPUkRFUiBC WSBuc3BuYW1lLCByZWxuYW1lCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxl cy9zcWwvMTJfcGx1cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGVz L3NxbC8xMl9wbHVzL3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwLi5iMGQ0OGM2MQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMv dGFibGVzL3NxbC8xMl9wbHVzL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEsNzUgQEAKK1NFTEVD VCByZWwub2lkLCByZWwucmVsbmFtZSBBUyBuYW1lLCByZWwucmVsdGFibGVzcGFjZSBBUyBzcGNv aWQscmVsLnJlbGFjbCBBUyByZWxhY2xfc3RyLAorICAoQ0FTRSBXSEVOIGxlbmd0aChzcGMuc3Bj bmFtZSkgPiAwIFRIRU4gc3BjLnNwY25hbWUgRUxTRQorICAgIChTRUxFQ1Qgc3Auc3BjbmFtZSBG Uk9NIHBnX2RhdGFiYXNlIGR0YgorICAgIEpPSU4gcGdfdGFibGVzcGFjZSBzcCBPTiBkdGIuZGF0 dGFibGVzcGFjZT1zcC5vaWQKKyAgICBXSEVSRSBkdGIub2lkID0ge3sgZGlkIH19OjpvaWQpCisg IEVORCkgYXMgc3BjbmFtZSwKKyAgKHNlbGVjdCBuc3BuYW1lIEZST00gcGdfbmFtZXNwYWNlIFdI RVJFIG9pZCA9IHt7c2NpZH19OjpvaWQgKSBhcyBzY2hlbWEsCisgIHBnX2dldF91c2VyYnlpZChy ZWwucmVsb3duZXIpIEFTIHJlbG93bmVyLCByZWwucmVsa2luZCwKKyAgKENBU0UgV0hFTiByZWwu cmVsa2luZCA9ICdwJyBUSEVOIHRydWUgRUxTRSBmYWxzZSBFTkQpIEFTIGlzX3BhcnRpdGlvbmVk LAorICByZWwucmVsaGFzc3ViY2xhc3MsIHJlbC5yZWx0dXBsZXM6OmJpZ2ludCwgZGVzLmRlc2Ny aXB0aW9uLCBjb24uY29ubmFtZSwgY29uLmNvbmtleSwKKwlFWElTVFMoc2VsZWN0IDEgRlJPTSBw Z190cmlnZ2VyCisJCQlKT0lOIHBnX3Byb2MgcHQgT04gcHQub2lkPXRnZm9pZCBBTkQgcHQucHJv bmFtZT0nbG9ndHJpZ2dlcicKKwkJCUpPSU4gcGdfcHJvYyBwYyBPTiBwYy5wcm9uYW1lc3BhY2U9 cHQucHJvbmFtZXNwYWNlIEFORCBwYy5wcm9uYW1lPSdzbG9ueXZlcnNpb24nCisJCQlXSEVSRSB0 Z3JlbGlkPXJlbC5vaWQpIEFTIGlzcmVwbCwKKwkoU0VMRUNUIGNvdW50KCopIEZST00gcGdfdHJp Z2dlciBXSEVSRSB0Z3JlbGlkPXJlbC5vaWQgQU5EIHRnaXNpbnRlcm5hbCA9IEZBTFNFKSBBUyB0 cmlnZ2VyY291bnQsCisJKFNFTEVDVCBBUlJBWShTRUxFQ1QgQ0FTRSBXSEVOIChuc3BuYW1lIE5P VCBMSUtFICdwZ1xfJScpIFRIRU4KKyAgICAgICAgICAgIHF1b3RlX2lkZW50KG5zcG5hbWUpfHwn Lid8fHF1b3RlX2lkZW50KGMucmVsbmFtZSkKKyAgICAgICAgICAgIEVMU0UgcXVvdGVfaWRlbnQo Yy5yZWxuYW1lKSBFTkQgQVMgaW5oZXJpdGVkX3RhYmxlcworICAgIEZST00gcGdfaW5oZXJpdHMg aQorICAgIEpPSU4gcGdfY2xhc3MgYyBPTiBjLm9pZCA9IGkuaW5ocGFyZW50CisgICAgSk9JTiBw Z19uYW1lc3BhY2UgbiBPTiBuLm9pZD1jLnJlbG5hbWVzcGFjZQorICAgIFdIRVJFIGkuaW5ocmVs aWQgPSByZWwub2lkIE9SREVSIEJZIGluaHNlcW5vKSkgQVMgY29sbF9pbmhlcml0cywKKyAgKFNF TEVDVCBjb3VudCgqKQorCQlGUk9NIHBnX2luaGVyaXRzIGkKKyAgICAgIEpPSU4gcGdfY2xhc3Mg YyBPTiBjLm9pZCA9IGkuaW5ocGFyZW50CisgICAgICBKT0lOIHBnX25hbWVzcGFjZSBuIE9OIG4u b2lkPWMucmVsbmFtZXNwYWNlCisJCVdIRVJFIGkuaW5ocmVsaWQgPSByZWwub2lkKSBBUyBpbmhl cml0ZWRfdGFibGVzX2NudCwKKwkoQ0FTRSBXSEVOIHJlbC5yZWxwZXJzaXN0ZW5jZSA9ICd1JyBU SEVOIHRydWUgRUxTRSBmYWxzZSBFTkQpIEFTIHJlbHBlcnNpc3RlbmNlLAorCXN1YnN0cmluZyhh cnJheV90b19zdHJpbmcocmVsLnJlbG9wdGlvbnMsICcsJykgRlJPTSAnZmlsbGZhY3Rvcj0oWzAt OV0qKScpIEFTIGZpbGxmYWN0b3IsCisJKENBU0UgV0hFTiAoc3Vic3RyaW5nKGFycmF5X3RvX3N0 cmluZyhyZWwucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX2VuYWJsZWQ9KFthLXp8 MC05XSopJykgPSAndHJ1ZScpCisJICBUSEVOIHRydWUgRUxTRSBmYWxzZSBFTkQpIEFTIGF1dG92 YWN1dW1fZW5hYmxlZCwKKwlzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHJlbC5yZWxvcHRpb25z LCAnLCcpIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZD0oWzAtOV0qKScpIEFTIGF1 dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZCwKKwlzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHJl bC5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX3NjYWxlX2ZhY3Rvcj0o WzAtOV0qWy5dP1swLTldKiknKSBBUyBhdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3IsCisJ c3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhyZWwucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRv dmFjdXVtX2FuYWx5emVfdGhyZXNob2xkPShbMC05XSopJykgQVMgYXV0b3ZhY3V1bV9hbmFseXpl X3RocmVzaG9sZCwKKwlzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHJlbC5yZWxvcHRpb25zLCAn LCcpIEZST00gJ2F1dG92YWN1dW1fYW5hbHl6ZV9zY2FsZV9mYWN0b3I9KFswLTldKlsuXT9bMC05 XSopJykgQVMgYXV0b3ZhY3V1bV9hbmFseXplX3NjYWxlX2ZhY3RvciwKKwlzdWJzdHJpbmcoYXJy YXlfdG9fc3RyaW5nKHJlbC5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fdmFjdXVt X2Nvc3RfZGVsYXk9KFswLTldKiknKSBBUyBhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2RlbGF5LAor CXN1YnN0cmluZyhhcnJheV90b19zdHJpbmcocmVsLnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0 b3ZhY3V1bV92YWN1dW1fY29zdF9saW1pdD0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fdmFjdXVt X2Nvc3RfbGltaXQsCisJc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhyZWwucmVsb3B0aW9ucywg JywnKSBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6ZV9taW5fYWdlPShbMC05XSopJykgQVMgYXV0b3Zh Y3V1bV9mcmVlemVfbWluX2FnZSwKKwlzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHJlbC5yZWxv cHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fZnJlZXplX21heF9hZ2U9KFswLTldKiknKSBB UyBhdXRvdmFjdXVtX2ZyZWV6ZV9tYXhfYWdlLAorCXN1YnN0cmluZyhhcnJheV90b19zdHJpbmco cmVsLnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlPShb MC05XSopJykgQVMgYXV0b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlLAorCShDQVNFIFdIRU4gKHN1 YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3Zh Y3V1bV9lbmFibGVkPShbYS16fDAtOV0qKScpID0gICd0cnVlJykKKwkgIFRIRU4gdHJ1ZSBFTFNF IGZhbHNlIEVORCkgQVMgdG9hc3RfYXV0b3ZhY3V1bV9lbmFibGVkLAorCXN1YnN0cmluZyhhcnJh eV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1f dGhyZXNob2xkPShbMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xk LAorCXN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAn YXV0b3ZhY3V1bV92YWN1dW1fc2NhbGVfZmFjdG9yPShbMC05XSpbLl0/WzAtOV0qKScpIEFTIHRv YXN0X2F1dG92YWN1dW1fdmFjdXVtX3NjYWxlX2ZhY3RvciwKKwlzdWJzdHJpbmcoYXJyYXlfdG9f c3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fYW5hbHl6ZV90aHJl c2hvbGQ9KFswLTldKiknKSBBUyB0b2FzdF9hdXRvdmFjdXVtX2FuYWx5emVfdGhyZXNob2xkLAor CXN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0 b3ZhY3V1bV9hbmFseXplX3NjYWxlX2ZhY3Rvcj0oWzAtOV0qWy5dP1swLTldKiknKSBBUyB0b2Fz dF9hdXRvdmFjdXVtX2FuYWx5emVfc2NhbGVfZmFjdG9yLAorCXN1YnN0cmluZyhhcnJheV90b19z dHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9k ZWxheT0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fdmFjdXVtX2Nvc3RfZGVsYXksCisJ c3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRv dmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0PShbMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV92 YWN1dW1fY29zdF9saW1pdCwKKwlzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRp b25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fZnJlZXplX21pbl9hZ2U9KFswLTldKiknKSBBUyB0 b2FzdF9hdXRvdmFjdXVtX2ZyZWV6ZV9taW5fYWdlLAorCXN1YnN0cmluZyhhcnJheV90b19zdHJp bmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2FnZT0o WzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fZnJlZXplX21heF9hZ2UsCisJc3Vic3RyaW5n KGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX2Zy ZWV6ZV90YWJsZV9hZ2U9KFswLTldKiknKSBBUyB0b2FzdF9hdXRvdmFjdXVtX2ZyZWV6ZV90YWJs ZV9hZ2UsCisJYXJyYXlfdG9fc3RyaW5nKHJlbC5yZWxvcHRpb25zLCAnLCcpIEFTIHRhYmxlX3Zh Y3V1bV9zZXR0aW5nc19zdHIsCisJYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcp IEFTIHRvYXN0X3RhYmxlX3ZhY3V1bV9zZXR0aW5nc19zdHIsCisJcmVsLnJlbG9wdGlvbnMgQVMg cmVsb3B0aW9ucywgdHN0LnJlbG9wdGlvbnMgQVMgdG9hc3RfcmVsb3B0aW9ucywgcmVsLnJlbG9m dHlwZSwKKwlDQVNFIFdIRU4gdHlwLnR5cG5hbWUgSVMgTk9UIE5VTEwgVEhFTiAoc2VsZWN0IHF1 b3RlX2lkZW50KG5zcG5hbWUpIEZST00gcGdfbmFtZXNwYWNlIFdIRVJFIG9pZCA9IHt7c2NpZH19 OjpvaWQgKXx8Jy4nfHxxdW90ZV9pZGVudCh0eXAudHlwbmFtZSkgRUxTRSB0eXAudHlwbmFtZSBF TkQgQVMgdHlwbmFtZSwKKwl0eXAudHlwcmVsaWQgQVMgdHlwb2lkLAorCShDQVNFIFdIRU4gcmVs LnJlbHRvYXN0cmVsaWQgPSAwIFRIRU4gZmFsc2UgRUxTRSB0cnVlIEVORCkgQVMgaGFzdG9hc3R0 YWJsZSwKKyAgICAtLSBBZGRlZCBmb3IgcGdBZG1pbjQKKwkoQ0FTRSBXSEVOIGFycmF5X2xlbmd0 aChyZWwucmVsb3B0aW9ucywgMSkgPiAwIFRIRU4gdHJ1ZSBFTFNFIGZhbHNlIEVORCkgQVMgYXV0 b3ZhY3V1bV9jdXN0b20sCisJKENBU0UgV0hFTiBhcnJheV9sZW5ndGgodHN0LnJlbG9wdGlvbnMs IDEpID4gMCBBTkQgcmVsLnJlbHRvYXN0cmVsaWQgIT0gMCBUSEVOIHRydWUgRUxTRSBmYWxzZSBF TkQpIEFTIHRvYXN0X2F1dG92YWN1dW0sCisKKwkoU0VMRUNUIGFycmF5X2FnZyhwcm92aWRlciB8 fCAnPScgfHwgbGFiZWwpIEZST00gcGdfc2VjbGFiZWxzIHNsMSBXSEVSRSBzbDEub2Jqb2lkPXJl bC5vaWQgQU5EIHNsMS5vYmpzdWJpZD0wKSBBUyBzZWNsYWJlbHMsCisJKENBU0UgV0hFTiByZWwu b2lkIDw9IHt7IGRhdGxhc3RzeXNvaWR9fTo6b2lkIFRIRU4gdHJ1ZSBFbFNFIGZhbHNlIEVORCkg QVMgaXNfc3lzX3RhYmxlCisJLS0gQWRkZWQgZm9yIHBhcnRpdGlvbiB0YWJsZQorICAgIHslIGlm IHRpZCAlfSwgKENBU0UgV0hFTiByZWwucmVsa2luZCA9ICdwJyBUSEVOIHBnX2dldF9wYXJ0a2V5 ZGVmKHt7IHRpZCB9fTo6b2lkKSBFTFNFICcnIEVORCkgQVMgcGFydGl0aW9uX3NjaGVtZSB7JSBl bmRpZiAlfQorRlJPTSBwZ19jbGFzcyByZWwKKyAgTEVGVCBPVVRFUiBKT0lOIHBnX3RhYmxlc3Bh Y2Ugc3BjIG9uIHNwYy5vaWQ9cmVsLnJlbHRhYmxlc3BhY2UKKyAgTEVGVCBPVVRFUiBKT0lOIHBn X2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1yZWwub2lkIEFORCBkZXMub2Jqc3ViaWQ9 MCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19jbGFzcyc6OnJlZ2NsYXNzKQorICBMRUZUIE9VVEVSIEpP SU4gcGdfY29uc3RyYWludCBjb24gT04gY29uLmNvbnJlbGlkPXJlbC5vaWQgQU5EIGNvbi5jb250 eXBlPSdwJworICBMRUZUIE9VVEVSIEpPSU4gcGdfY2xhc3MgdHN0IE9OIHRzdC5vaWQgPSByZWwu cmVsdG9hc3RyZWxpZAorICBMRUZUIEpPSU4gcGdfdHlwZSB0eXAgT04gcmVsLnJlbG9mdHlwZT10 eXAub2lkCitXSEVSRSByZWwucmVsa2luZCBJTiAoJ3InLCdzJywndCcsJ3AnKSBBTkQgcmVsLnJl bG5hbWVzcGFjZSA9IHt7IHNjaWQgfX06Om9pZAorQU5EIE5PVCByZWwucmVsaXNwYXJ0aXRpb24K K3slIGlmIHRpZCAlfSAgQU5EIHJlbC5vaWQgPSB7eyB0aWQgfX06Om9pZCB7JSBlbmRpZiAlfQor T1JERVIgQlkgcmVsLnJlbG5hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3Rh Ymxlcy9zcWwvMTJfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZXMv c3FsLzEyX3BsdXMvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MC4uZDEyYTgzODUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxl cy9zcWwvMTJfcGx1cy91cGRhdGUuc3FsCkBAIC0wLDAgKzEsMjExIEBACit7JSBpbXBvcnQgJ21h Y3Jvcy9zY2hlbWFzL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCRUwgJX0KK3slIGltcG9ydCAn bWFjcm9zL3NjaGVtYXMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7JSBpbXBv cnQgJ21hY3Jvcy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9Cit7IyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyN9Cit7IyMgUmVuYW1lIHRh YmxlICMjfQoreyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjfQoreyUgaWYgZGF0YS5uYW1lIGFuZCBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0K K0FMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIG9fZGF0YS5uYW1lKX19 CisgICAgUkVOQU1FIFRPIHt7Y29ubnxxdElkZW50KGRhdGEubmFtZSl9fTsKKworeyUgZW5kaWYg JX0KK3sjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj I30KK3sjIyBDaGFuZ2UgdGFibGUgc2NoZW1hICMjfQoreyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjfQoreyUgaWYgZGF0YS5zY2hlbWEgYW5kIGRh dGEuc2NoZW1hICE9IG9fZGF0YS5zY2hlbWEgJX0KK0FMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50 KG9fZGF0YS5zY2hlbWEsIGRhdGEubmFtZSl9fQorICBTRVQgU0NIRU1BIHt7Y29ubnxxdElkZW50 KGRhdGEuc2NoZW1hKX19OworCit7JSBlbmRpZiAlfQoreyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjfQoreyMjIENoYW5nZSB0YWJsZSBvd25lciAj I30KK3sjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj I30KK3slIGlmIGRhdGEucmVsb3duZXIgYW5kIGRhdGEucmVsb3duZXIgIT0gb19kYXRhLnJlbG93 bmVyICV9CitBTFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1l KX19CisgICAgT1dORVIgVE8ge3tjb25ufHF0SWRlbnQoZGF0YS5yZWxvd25lcil9fTsKKworeyUg ZW5kaWYgJX0KK3sjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjI30KK3sjIyBVcGRhdGUgSW5oZXJpdHMgdGFibGUgZGVmaW5pdGlvbiAjI30KK3sjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI30KK3slIGlm IGRhdGEuY29sbF9pbmhlcml0c19hZGRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgdmFsIGluIGRh dGEuY29sbF9pbmhlcml0c19hZGRlZCAlfQorQUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0 YS5zY2hlbWEsIGRhdGEubmFtZSl9fQorICAgIElOSEVSSVQge3t2YWx9fTsKKworeyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5jb2xsX2luaGVyaXRzX3JlbW92ZWR8bGVuZ3Ro ID4gMCAlfQoreyUgZm9yIHZhbCBpbiBkYXRhLmNvbGxfaW5oZXJpdHNfcmVtb3ZlZCAlfQorQUxU RVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSl9fQorICAgIE5P IElOSEVSSVQge3t2YWx9fTsKKworeyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjfQoreyMjIENoYW5n ZSB0YWJsZXNwYWNlICMjfQoreyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjfQoreyUgaWYgZGF0YS5zcGNuYW1lIGFuZCBkYXRhLnNwY25hbWUgIT0g b19kYXRhLnNwY25hbWUgJX0KK0FMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1h LCBkYXRhLm5hbWUpfX0KKyAgICBTRVQgVEFCTEVTUEFDRSB7e2Nvbm58cXRJZGVudChkYXRhLnNw Y25hbWUpfX07CisKK3slIGVuZGlmICV9Cit7IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyN9Cit7IyMgY2hhbmdlIGZpbGxmYWN0b3JlIHNldHRpbmdz ICMjfQoreyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjfQoreyUgaWYgZGF0YS5maWxsZmFjdG9yIGFuZCBkYXRhLmZpbGxmYWN0b3IgIT0gb19kYXRh LmZpbGxmYWN0b3IgJX0KK0FMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBk YXRhLm5hbWUpfX0KKyAgICBTRVQgKEZJTExGQUNUT1I9e3tkYXRhLmZpbGxmYWN0b3J9fSk7CisK K3slIGVuZGlmICV9Cit7IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI30KK3sjIyBUYWJs ZSBBdXRvVmFjdXVtIHNldHRpbmdzICMjfQoreyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyN9Cit7JSBpZiBkYXRhLnZhY3V1bV90YWJsZSBpcyBkZWZpbmVkIGFuZCBkYXRhLnZhY3V1bV90 YWJsZS5zZXRfdmFsdWVzfGxlbmd0aCA+IDAgJX0KK3slIHNldCBoYXNfdmFjdXVtX3NldCA9IHRy dWUgJX0KK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLnZhY3V1bV90YWJsZSBpcyBkZWZpbmVkIGFu ZCBkYXRhLnZhY3V1bV90YWJsZS5yZXNldF92YWx1ZXN8bGVuZ3RoID4gMCAlfQoreyUgc2V0IGhh c192YWN1dW1fcmVzZXQgPSB0cnVlICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgb19kYXRhLmF1dG92 YWN1dW1fY3VzdG9tIGFuZCBkYXRhLmF1dG92YWN1dW1fY3VzdG9tID09IGZhbHNlICV9CitBTFRF UiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKX19IFJFU0VUICgK KyAgICBhdXRvdmFjdXVtX2VuYWJsZWQsCisgICAgYXV0b3ZhY3V1bV9hbmFseXplX3NjYWxlX2Zh Y3RvciwKKyAgICBhdXRvdmFjdXVtX2FuYWx5emVfdGhyZXNob2xkLAorICAgIGF1dG92YWN1dW1f ZnJlZXplX21heF9hZ2UsCisgICAgYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheSwKKyAgICBh dXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0LAorICAgIGF1dG92YWN1dW1fdmFjdXVtX3NjYWxl X2ZhY3RvciwKKyAgICBhdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQsCisgICAgYXV0b3ZhY3V1 bV9mcmVlemVfbWluX2FnZSwKKyAgICBhdXRvdmFjdXVtX2ZyZWV6ZV90YWJsZV9hZ2UKKyk7Cit7 JSBlbHNlICV9Cit7JSBpZiBkYXRhLmF1dG92YWN1dW1fZW5hYmxlZCBpcyBkZWZpbmVkIG9yIGhh c192YWN1dW1fc2V0ICV9CitBTFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwg ZGF0YS5uYW1lKX19IFNFVCAoCit7JSBpZiBkYXRhLmF1dG92YWN1dW1fZW5hYmxlZCBpcyBkZWZp bmVkIGFuZCBkYXRhLmF1dG92YWN1dW1fZW5hYmxlZCAhPSBvX2RhdGEuYXV0b3ZhY3V1bV9lbmFi bGVkICV9CisgICAgYXV0b3ZhY3V1bV9lbmFibGVkID0geyUgaWYgZGF0YS5hdXRvdmFjdXVtX2Vu YWJsZWQgJX10cnVleyUgZWxzZSAlfWZhbHNleyUgZW5kaWYgJX17JSBpZiBoYXNfdmFjdXVtX3Nl dCAlfSwKK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgaGFzX3ZhY3V1bV9zZXQgJX0K K3slIGZvciBvcHQgaW4gZGF0YS52YWN1dW1fdGFibGUuc2V0X3ZhbHVlcyAlfXslIGlmIG9wdC5u YW1lIGFuZCBvcHQudmFsdWUgJX0KKyAgICB7e29wdC5uYW1lfX0gPSB7e29wdC52YWx1ZX19eyUg aWYgbm90IGxvb3AubGFzdCAlfSwKK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAlfQorCispOworeyUgZW5kaWYgJX0KK3slIGlmIGhhc192YWN1dW1fcmVz ZXQgJX0KK0FMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUp fX0gUkVTRVQgKAoreyUgZm9yIG9wdCBpbiBkYXRhLnZhY3V1bV90YWJsZS5yZXNldF92YWx1ZXMg JX17JSBpZiBvcHQubmFtZSAlfQorICAgIHt7b3B0Lm5hbWV9fXslIGlmIG5vdCBsb29wLmxhc3Qg JX0sCit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQorCispOworeyUgZW5k aWYgJX0KK3slIGVuZGlmICV9Cit7IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj I30KK3sjIyBUb2FzdCB0YWJsZSBBdXRvVmFjdXVtIHNldHRpbmdzICMjfQoreyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyN9Cit7JSBpZiBkYXRhLnZhY3V1bV90b2FzdCBpcyBk ZWZpbmVkIGFuZCBkYXRhLnZhY3V1bV90b2FzdC5zZXRfdmFsdWVzfGxlbmd0aCA+IDAgJX0KK3sl IHNldCBoYXNfdmFjdXVtX3RvYXN0X3NldCA9IHRydWUgJX0KK3slIGVuZGlmICV9Cit7JSBpZiBk YXRhLnZhY3V1bV90b2FzdCBpcyBkZWZpbmVkIGFuZCBkYXRhLnZhY3V1bV90b2FzdC5yZXNldF92 YWx1ZXN8bGVuZ3RoID4gMCAlfQoreyUgc2V0IGhhc192YWN1dW1fdG9hc3RfcmVzZXQgPSB0cnVl ICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgb19kYXRhLnRvYXN0X2F1dG92YWN1dW0gYW5kIGRhdGEu dG9hc3RfYXV0b3ZhY3V1bSA9PSBmYWxzZSAlfQorQUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQo ZGF0YS5zY2hlbWEsIGRhdGEubmFtZSl9fSBSRVNFVCAoCisgICAgdG9hc3QuYXV0b3ZhY3V1bV9l bmFibGVkLAorICAgIHRvYXN0LmF1dG92YWN1dW1fZnJlZXplX21heF9hZ2UsCisgICAgdG9hc3Qu YXV0b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheSwKKyAgICB0b2FzdC5hdXRvdmFjdXVtX3ZhY3V1 bV9jb3N0X2xpbWl0LAorICAgIHRvYXN0LmF1dG92YWN1dW1fdmFjdXVtX3NjYWxlX2ZhY3RvciwK KyAgICB0b2FzdC5hdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQsCisgICAgdG9hc3QuYXV0b3Zh Y3V1bV9mcmVlemVfbWluX2FnZSwKKyAgICB0b2FzdC5hdXRvdmFjdXVtX2ZyZWV6ZV90YWJsZV9h Z2UsCisgICAgdG9hc3QuYXV0b3ZhY3V1bV9hbmFseXplX3RocmVzaG9sZCwKKyAgICB0b2FzdC5h dXRvdmFjdXVtX2FuYWx5emVfc2NhbGVfZmFjdG9yCispOworeyUgZWxzZSAlfQoreyUgaWYgZGF0 YS50b2FzdF9hdXRvdmFjdXVtX2VuYWJsZWQgaXMgZGVmaW5lZCBvciBoYXNfdmFjdXVtX3RvYXN0 X3NldCAlfQorQUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFt ZSl9fSBTRVQgKAoreyUgaWYgZGF0YS50b2FzdF9hdXRvdmFjdXVtX2VuYWJsZWQgaXMgZGVmaW5l ZCBhbmQgZGF0YS50b2FzdF9hdXRvdmFjdXVtX2VuYWJsZWQgIT0gb19kYXRhLnRvYXN0X2F1dG92 YWN1dW1fZW5hYmxlZCAlfQorICAgIHRvYXN0LmF1dG92YWN1dW1fZW5hYmxlZCA9IHslIGlmIGRh dGEudG9hc3RfYXV0b3ZhY3V1bV9lbmFibGVkICV9dHJ1ZXslIGVsc2UgJX1mYWxzZXslIGVuZGlm ICV9eyUgaWYgaGFzX3ZhY3V1bV90b2FzdF9zZXQgJX0sCit7JSBlbmRpZiAlfQoreyUgZW5kaWYg JX0KK3slIGlmIGhhc192YWN1dW1fdG9hc3Rfc2V0ICV9Cit7JSBmb3Igb3B0IGluIGRhdGEudmFj dXVtX3RvYXN0LnNldF92YWx1ZXMgJX17JSBpZiBvcHQubmFtZSBhbmQgb3B0LnZhbHVlICV9Cisg ICAgdG9hc3Que3tvcHQubmFtZX19ID0ge3tvcHQudmFsdWV9fXslIGlmIG5vdCBsb29wLmxhc3Qg JX0sCit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0K KworKTsKK3slIGVuZGlmICV9Cit7JSBpZiBoYXNfdmFjdXVtX3RvYXN0X3Jlc2V0ICV9CitBTFRF UiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKX19IFJFU0VUICgK K3slIGZvciBvcHQgaW4gZGF0YS52YWN1dW1fdG9hc3QucmVzZXRfdmFsdWVzICV9eyUgaWYgb3B0 Lm5hbWUgJX0KKyAgICB0b2FzdC57e29wdC5uYW1lfX17JSBpZiBub3QgbG9vcC5sYXN0ICV9LAor eyUgZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KKworKTsKK3slIGVuZGlmICV9 Cit7JSBlbmRpZiAlfQoreyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjfQoreyMjIENoYW5nZSB0YWJsZSBjb21tZW50cyAjI30KK3sjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI30KK3slIGlmIGRhdGEu ZGVzY3JpcHRpb24gaXMgZGVmaW5lZCBhbmQgZGF0YS5kZXNjcmlwdGlvbiAhPSBvX2RhdGEuZGVz Y3JpcHRpb24gJX0KK0NPTU1FTlQgT04gVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEs IGRhdGEubmFtZSl9fQorICBJUyB7e2RhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFsfX07CisKK3sl IGVuZGlmICV9Cit7IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyN9Cit7IyMgVXBkYXRlIHRhYmxlIFByaXZpbGVnZXMgIyN9Cit7IyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyN9Cit7JSBpZiBkYXRhLnJl bGFjbCAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEucmVsYWNsICV9Cit7JSBmb3IgcHJpdiBp biBkYXRhLnJlbGFjbC5kZWxldGVkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ1RB QkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEucmVsYWNsICV9Cit7JSBm b3IgcHJpdiBpbiBkYXRhLnJlbGFjbC5jaGFuZ2VkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRBTEwo Y29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1hKSB9fQor e3sgUFJJVklMRUdFLlNFVChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwg cHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIGRhdGEuc2NoZW1hKSB9fQoreyUg ZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2FkZGVkJyBpbiBkYXRhLnJlbGFjbCAlfQor eyUgZm9yIHByaXYgaW4gZGF0YS5yZWxhY2wuYWRkZWQgJX0KK3t7IFBSSVZJTEVHRS5TRVQoY29u biwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIHByaXYud2l0aG91dF9ncmFudCwg cHJpdi53aXRoX2dyYW50LCBkYXRhLnNjaGVtYSkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYg JX0KK3slIGVuZGlmICV9Cit7IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyN9Cit7IyMgVXBkYXRlIHRhYmxlIFNlY3VyaXR5TGFiZWwgIyN9Cit7IyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyN9Cit7JSBp ZiBkYXRhLnNlY2xhYmVscyBhbmQgZGF0YS5zZWNsYWJlbHN8bGVuZ3RoID4gMCAlfQoreyUgc2V0 IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFi ZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNs YWJlbHMuZGVsZXRlZCAlfQore3sgU0VDTEFCRUwuVU5TRVQoY29ubiwgJ1RBQkxFJywgZGF0YS5u YW1lLCByLnByb3ZpZGVyLCBkYXRhLnNjaGVtYSkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYg JX0KK3slIGlmICdhZGRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3Ro ID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9Cit7eyBTRUNMQUJFTC5TRVQo Y29ubiwgJ1RBQkxFJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLmxhYmVsLCBkYXRhLnNjaGVt YSkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBzZWNs YWJlbHMgYW5kIHNlY2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNl Y2xhYmVscy5jaGFuZ2VkICV9Cit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ1RBQkxFJywgZGF0YS5u YW1lLCByLnByb3ZpZGVyLCByLmxhYmVsLCBkYXRhLnNjaGVtYSkgfX0KK3slIGVuZGZvciAlfQor eyUgZW5kaWYgJX0KKworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90 ZXN0X2NvbHVtbl9hY2xfc3FsLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfY29sdW1uX2FjbF9z cWwucHkKaW5kZXggZjU5OTg5MmIuLmVmYjE5ODZlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVz dHMvdGVzdF9jb2x1bW5fYWNsX3NxbC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF9jb2x1 bW5fYWNsX3NxbC5weQpAQCAtMzUsNyArMzUsMTAgQEAgY2xhc3MgVGVzdENvbHVtbkFjbFNxbChT UUxUZW1wbGF0ZVRlc3RCYXNlKToKICAgICAgICAgc2VsZi50YWJsZV9pZCwgc2VsZi5jb2x1bW5f aWQgPSBjdXJzb3IuZmV0Y2hvbmUoKQogCiAgICAgZGVmIGdlbmVyYXRlX3NxbChzZWxmLCB2ZXJz aW9uKToKLSAgICAgICAgdGVtcGxhdGVfZmlsZSA9IHNlbGYuZ2V0X3RlbXBsYXRlX2ZpbGUodmVy c2lvbiwgImFjbC5zcWwiKQorICAgICAgICBmaWxlX3BhdGggPSBvcy5wYXRoLmpvaW4ob3MucGF0 aC5kaXJuYW1lKF9fZmlsZV9fKSwgIi4uIiwgInRlbXBsYXRlcyIsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiY29sdW1ucyIsICJzcWwiKQorICAgICAgICB0ZW1wbGF0ZV9maWxl ID0gc2VsZi5nZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCBmaWxlX3BhdGgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhY2wuc3FsIikKICAgICAgICAg dGVtcGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRlKHRlbXBsYXRlX2ZpbGUpCiAgICAgICAgIHB1Ymxp Y19zY2hlbWFfaWQgPSAyMjAwCiAgICAgICAgIHNxbCA9IHRlbXBsYXRlLnJlbmRlcihzY2lkPXB1 YmxpY19zY2hlbWFfaWQsCkBAIC00NywxMCArNTAsMyBAQCBjbGFzcyBUZXN0Q29sdW1uQWNsU3Fs KFNRTFRlbXBsYXRlVGVzdEJhc2UpOgogCiAgICAgZGVmIGFzc2VydGlvbnMoc2VsZiwgZmV0Y2hf cmVzdWx0LCBkZXNjcmlwdGlvbnMpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihm ZXRjaF9yZXN1bHQpKQotCi0gICAgQHN0YXRpY21ldGhvZAotICAgIGRlZiBnZXRfdGVtcGxhdGVf ZmlsZSh2ZXJzaW9uLCBmaWxlbmFtZSk6Ci0gICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4oCi0g ICAgICAgICAgICBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4iLCAidGVtcGxhdGVzIiwg ImNvbHVtbnMiLCAic3FsIiwKLSAgICAgICAgICAgIHZlcnNpb24sIGZpbGVuYW1lCi0gICAgICAg ICkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X2NvbHVtbl9wcm9wZXJ0aWVzX3Nx bC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X2NvbHVtbl9wcm9wZXJ0aWVzX3NxbC5weQppbmRl eCBjMDk4NjA1ZS4uOGRhOGYxMmUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X2Nv bHVtbl9wcm9wZXJ0aWVzX3NxbC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF9jb2x1bW5f cHJvcGVydGllc19zcWwucHkKQEAgLTMwLDcgKzMwLDEwIEBAIGNsYXNzIFRlc3RDb2x1bW5Qcm9w ZXJ0aWVzU3FsKFNRTFRlbXBsYXRlVGVzdEJhc2UpOgogICAgICAgICBzZWxmLnRhYmxlX2lkID0g Y3Vyc29yLmZldGNob25lKClbMF0KIAogICAgIGRlZiBnZW5lcmF0ZV9zcWwoc2VsZiwgdmVyc2lv bik6Ci0gICAgICAgIHRlbXBsYXRlX2ZpbGUgPSBzZWxmLmdldF90ZW1wbGF0ZV9maWxlKHZlcnNp b24sICJwcm9wZXJ0aWVzLnNxbCIpCisgICAgICAgIGZpbGVfcGF0aCA9IG9zLnBhdGguam9pbihv cy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4iLCAidGVtcGxhdGVzIiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJjb2x1bW5zIiwgInNxbCIpCisgICAgICAgIHRlbXBsYXRl X2ZpbGUgPSBzZWxmLmdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24sIGZpbGVfcGF0aCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMuc3Fs IikKICAgICAgICAgdGVtcGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRlKHRlbXBsYXRlX2ZpbGUpCiAg ICAgICAgIHB1YmxpY19zY2hlbWFfaWQgPSAyMjAwCiAgICAgICAgIHNxbCA9IHRlbXBsYXRlLnJl bmRlcihzY2lkPXB1YmxpY19zY2hlbWFfaWQsCkBAIC00NywxMCArNTAsMyBAQCBjbGFzcyBUZXN0 Q29sdW1uUHJvcGVydGllc1NxbChTUUxUZW1wbGF0ZVRlc3RCYXNlKToKICAgICAgICAgc2VsZi5h c3NlcnRFcXVhbCgnc29tZV9jb2x1bW4nLCBmaXJzdF9yb3dbJ25hbWUnXSkKICAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbCgnY2hhcmFjdGVyIHZhcnlpbmcnLCBmaXJzdF9yb3dbJ2NsdHlwZSddKQog ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDMsIGxlbihmZXRjaF9yZXN1bHQpKQotCi0gICAgQHN0 YXRpY21ldGhvZAotICAgIGRlZiBnZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCBmaWxlbmFtZSk6 Ci0gICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICBvcy5wYXRoLmRpcm5h bWUoX19maWxlX18pLCAiLi4iLCAidGVtcGxhdGVzIiwgImNvbHVtbnMiLCAic3FsIiwKLSAgICAg ICAgICAgIHZlcnNpb24sIGZpbGVuYW1lCi0gICAgICAgICkKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy90ZXN0cy90ZXN0X3RhYmxlc19hY2xfc3FsLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFi bGVzX2FjbF9zcWwucHkKaW5kZXggNGI5OTVlOTMuLmYzNTIzNTkxIDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvdGVzdHMvdGVzdF90YWJsZXNfYWNsX3NxbC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMv dGVzdF90YWJsZXNfYWNsX3NxbC5weQpAQCAtMzAsNyArMzAsMTAgQEAgY2xhc3MgVGVzdFRhYmxl c0FjbFNxbChTUUxUZW1wbGF0ZVRlc3RCYXNlKToKICAgICAgICAgc2VsZi50YWJsZV9pZCA9IGN1 cnNvci5mZXRjaG9uZSgpWzBdCiAKICAgICBkZWYgZ2VuZXJhdGVfc3FsKHNlbGYsIHZlcnNpb24p OgotICAgICAgICB0ZW1wbGF0ZV9maWxlID0gc2VsZi5nZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9u LCAiYWNsLnNxbCIpCisgICAgICAgIGZpbGVfcGF0aCA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRp cm5hbWUoX19maWxlX18pLCAiLi4iLCAidGVtcGxhdGVzIiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJ0YWJsZXMiLCAic3FsIikKKyAgICAgICAgdGVtcGxhdGVfZmlsZSA9IHNl bGYuZ2V0X3RlbXBsYXRlX2ZpbGUodmVyc2lvbiwgZmlsZV9wYXRoLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWNsLnNxbCIpCiAgICAgICAgIHRlbXBs YXRlID0gZmlsZV9hc190ZW1wbGF0ZSh0ZW1wbGF0ZV9maWxlKQogICAgICAgICBwdWJsaWNfc2No ZW1hX2lkID0gMjIwMAogICAgICAgICBzcWwgPSB0ZW1wbGF0ZS5yZW5kZXIoc2NpZD1wdWJsaWNf c2NoZW1hX2lkLApAQCAtNTMsMTAgKzU2LDMgQEAgY2xhc3MgVGVzdFRhYmxlc0FjbFNxbChTUUxU ZW1wbGF0ZVRlc3RCYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ3InXSwgbmV3X2Fj bF9tYXBbJ3ByaXZpbGVnZXMnXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbRmFsc2VdLCBu ZXdfYWNsX21hcFsnZ3JhbnRhYmxlJ10pCiAgICAgICAgIHJldHVybiBwdWJsaWNfYWNscwotCi0g ICAgQHN0YXRpY21ldGhvZAotICAgIGRlZiBnZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCBmaWxl bmFtZSk6Ci0gICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICBvcy5wYXRo LmRpcm5hbWUoX19maWxlX18pLCAiLi4iLCAidGVtcGxhdGVzIiwgInRhYmxlcyIsICJzcWwiLAot ICAgICAgICAgICAgdmVyc2lvbiwgZmlsZW5hbWUKLSAgICAgICAgKQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVzX25vZGVfc3FsLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rl c3RfdGFibGVzX25vZGVfc3FsLnB5CmluZGV4IGUxNGRmMGQ2Li45ZWYwZTc2ZiAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVzX25vZGVfc3FsLnB5CisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy90ZXN0cy90ZXN0X3RhYmxlc19ub2RlX3NxbC5weQpAQCAtMjgsNyArMjgsMTAgQEAgY2xhc3Mg VGVzdFRhYmxlc05vZGVTcWwoU1FMVGVtcGxhdGVUZXN0QmFzZSk6CiAgICAgICAgIHBhc3MKIAog ICAgIGRlZiBnZW5lcmF0ZV9zcWwoc2VsZiwgdmVyc2lvbik6Ci0gICAgICAgIHRlbXBsYXRlX2Zp bGUgPSBzZWxmLmdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24sICJub2Rlcy5zcWwiKQorICAgICAg ICBmaWxlX3BhdGggPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgIi4u IiwgInRlbXBsYXRlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGFibGVz IiwgInNxbCIpCisgICAgICAgIHRlbXBsYXRlX2ZpbGUgPSBzZWxmLmdldF90ZW1wbGF0ZV9maWxl KHZlcnNpb24sIGZpbGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIm5vZGVzLnNxbCIpCiAgICAgICAgIHRlbXBsYXRlID0gZmlsZV9hc190ZW1w bGF0ZSh0ZW1wbGF0ZV9maWxlKQogICAgICAgICBwdWJsaWNfc2NoZW1hX2lkID0gMjIwMAogICAg ICAgICBzcWwgPSB0ZW1wbGF0ZS5yZW5kZXIoc2NpZD1wdWJsaWNfc2NoZW1hX2lkKQpAQCAtNTAs MTAgKzUzLDMgQEAgY2xhc3MgVGVzdFRhYmxlc05vZGVTcWwoU1FMVGVtcGxhdGVUZXN0QmFzZSk6 CiAgICAgICAgICMgdHJpZ2dlcmNvdW50IGlzIHNvbWV0aW1lcyByZXR1cm5lZCBhcyBhIHN0cmlu ZyBmb3Igc29tZSByZWFzb24KICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsb25nKHRyaWdn ZXJjb3VudCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKGxvbmcoaGFzX2VuYWJsZV90 cmlnZ2VycykpCi0KLSAgICBAc3RhdGljbWV0aG9kCi0gICAgZGVmIGdldF90ZW1wbGF0ZV9maWxl KHZlcnNpb24sIGZpbGVuYW1lKToKLSAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbigKLSAgICAg ICAgICAgIG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICIuLiIsICJ0ZW1wbGF0ZXMiLCAidGFi bGVzIiwgInNxbCIsCi0gICAgICAgICAgICB2ZXJzaW9uLCBmaWxlbmFtZQotICAgICAgICApCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZXNfcHJvcGVydGllc19zcWwucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZXNfcHJvcGVydGllc19zcWwucHkKaW5kZXggZjEz MjNhM2EuLmZjMzQ5YmQzIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZXNf cHJvcGVydGllc19zcWwucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVzX3Byb3Bl cnRpZXNfc3FsLnB5CkBAIC00NCw3ICs0NCwxMCBAQCBjbGFzcyBUZXN0VGFibGVzUHJvcGVydGll c1NxbChTUUxUZW1wbGF0ZVRlc3RCYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbXSwg Zmlyc3Rfcm93Wydjb2xsX2luaGVyaXRzJ10pCiAKICAgICBkZWYgZ2VuZXJhdGVfc3FsKHNlbGYs IHZlcnNpb24pOgotICAgICAgICB0ZW1wbGF0ZV9maWxlID0gc2VsZi5nZXRfdGVtcGxhdGVfZmls ZSh2ZXJzaW9uLCAicHJvcGVydGllcy5zcWwiKQorICAgICAgICBmaWxlX3BhdGggPSBvcy5wYXRo LmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgIi4uIiwgInRlbXBsYXRlcyIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGFibGVzIiwgInNxbCIpCisgICAgICAgIHRl bXBsYXRlX2ZpbGUgPSBzZWxmLmdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24sIGZpbGVfcGF0aCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb3BlcnRp ZXMuc3FsIikKICAgICAgICAgdGVtcGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRlKHRlbXBsYXRlX2Zp bGUpCiAgICAgICAgIHB1YmxpY19zY2hlbWFfaWQgPSAyMjAwCiAgICAgICAgIHNxbCA9IHRlbXBs YXRlLnJlbmRlcihzY2lkPXB1YmxpY19zY2hlbWFfaWQsCkBAIC02NiwxMCArNjksMyBAQCBjbGFz cyBUZXN0VGFibGVzUHJvcGVydGllc1NxbChTUUxUZW1wbGF0ZVRlc3RCYXNlKToKIAogICAgICAg ICBjdXJzb3IuZXhlY3V0ZSgiU0VMRUNUIG9pZCBGUk9NIHBnX2NsYXNzIHdoZXJlIHJlbG5hbWU9 J3Rlc3RfdGFibGUnIikKICAgICAgICAgc2VsZi50YWJsZV9pZCA9IGN1cnNvci5mZXRjaG9uZSgp WzBdCi0KLSAgICBAc3RhdGljbWV0aG9kCi0gICAgZGVmIGdldF90ZW1wbGF0ZV9maWxlKHZlcnNp b24sIGZpbGVuYW1lKToKLSAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbigKLSAgICAgICAgICAg IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICIuLiIsICJ0ZW1wbGF0ZXMiLCAidGFibGVzIiwg InNxbCIsCi0gICAgICAgICAgICB2ZXJzaW9uLCBmaWxlbmFtZQotICAgICAgICApCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90cmlnZ2VyX2dldF9vaWRfc3FsLnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9nZXRfb2lkX3NxbC5weQppbmRleCBiZWVmZTFiMC4uMWYy OWZhZDggMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RyaWdnZXJfZ2V0X29pZF9z cWwucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9nZXRfb2lkX3NxbC5weQpA QCAtMzUsNyArMzUsMTAgQEAgY2xhc3MgVGVzdFRyaWdnZXJHZXRPaWRTcWwoU1FMVGVtcGxhdGVU ZXN0QmFzZSk6CiAgICAgICAgIHNlbGYudGFibGVfaWQsIHNlbGYuY29sdW1uX2lkID0gY3Vyc29y LmZldGNob25lKCkKIAogICAgIGRlZiBnZW5lcmF0ZV9zcWwoc2VsZiwgdmVyc2lvbik6Ci0gICAg ICAgIHRlbXBsYXRlX2ZpbGUgPSBzZWxmLmdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24sICJnZXRf b2lkLnNxbCIpCisgICAgICAgIGZpbGVfcGF0aCA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5h bWUoX19maWxlX18pLCAiLi4iLCAidGVtcGxhdGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJ0cmlnZ2VycyIsICJzcWwiKQorICAgICAgICB0ZW1wbGF0ZV9maWxlID0gc2Vs Zi5nZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCBmaWxlX3BhdGgsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnZXRfb2lkLnNxbCIpCiAgICAgICAgIGpp bmphMi5maWx0ZXJzLkZJTFRFUlNbJ3F0TGl0ZXJhbCddID0gbGFtYmRhIHZhbHVlOiAiTlVMTCIK ICAgICAgICAgdGVtcGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRlKHRlbXBsYXRlX2ZpbGUpCiAKQEAg LTQ3LDEwICs1MCwzIEBAIGNsYXNzIFRlc3RUcmlnZ2VyR2V0T2lkU3FsKFNRTFRlbXBsYXRlVGVz dEJhc2UpOgogCiAgICAgZGVmIGFzc2VydGlvbnMoc2VsZiwgZmV0Y2hfcmVzdWx0LCBkZXNjcmlw dGlvbnMpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihmZXRjaF9yZXN1bHQpKQot Ci0gICAgQHN0YXRpY21ldGhvZAotICAgIGRlZiBnZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCBm aWxlbmFtZSk6Ci0gICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICBvcy5w YXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4iLCAidGVtcGxhdGVzIiwgInRyaWdnZXJzIiwgInNx bCIsCi0gICAgICAgICAgICB2ZXJzaW9uLCBmaWxlbmFtZQotICAgICAgICApCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90cmlnZ2VyX25vZGVzX3NxbC5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90 ZXN0cy90ZXN0X3RyaWdnZXJfbm9kZXNfc3FsLnB5CmluZGV4IDZjZTM1NDgxLi45MmU4MGRjOSAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9ub2Rlc19zcWwucHkKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9ub2Rlc19zcWwucHkKQEAgLTMwLDcgKzMw LDEwIEBAIGNsYXNzIFRlc3RUcmlnZ2VyTm9kZXNTcWwoU1FMVGVtcGxhdGVUZXN0QmFzZSk6CiAg ICAgICAgIHNlbGYudGFibGVfaWQgPSBjdXJzb3IuZmV0Y2hvbmUoKVswXQogCiAgICAgZGVmIGdl bmVyYXRlX3NxbChzZWxmLCB2ZXJzaW9uKToKLSAgICAgICAgdGVtcGxhdGVfZmlsZSA9IHNlbGYu Z2V0X3RlbXBsYXRlX2ZpbGUodmVyc2lvbiwgIm5vZGVzLnNxbCIpCisgICAgICAgIGZpbGVfcGF0 aCA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4iLCAidGVtcGxh dGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmlnZ2VycyIsICJzcWwi KQorICAgICAgICB0ZW1wbGF0ZV9maWxlID0gc2VsZi5nZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9u LCBmaWxlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJub2Rlcy5zcWwiKQogICAgICAgICB0ZW1wbGF0ZSA9IGZpbGVfYXNfdGVtcGxhdGUodGVt cGxhdGVfZmlsZSkKICAgICAgICAgc3FsID0gdGVtcGxhdGUucmVuZGVyKHRpZD1zZWxmLnRhYmxl X2lkKQogCkBAIC0zOCwxMCArNDEsMyBAQCBjbGFzcyBUZXN0VHJpZ2dlck5vZGVzU3FsKFNRTFRl bXBsYXRlVGVzdEJhc2UpOgogCiAgICAgZGVmIGFzc2VydGlvbnMoc2VsZiwgZmV0Y2hfcmVzdWx0 LCBkZXNjcmlwdGlvbnMpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihmZXRjaF9y ZXN1bHQpKQotCi0gICAgQHN0YXRpY21ldGhvZAotICAgIGRlZiBnZXRfdGVtcGxhdGVfZmlsZSh2 ZXJzaW9uLCBmaWxlbmFtZSk6Ci0gICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4oCi0gICAgICAg ICAgICBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4iLCAidGVtcGxhdGVzIiwgInRyaWdn ZXJzIiwgInNxbCIsCi0gICAgICAgICAgICB2ZXJzaW9uLCBmaWxlbmFtZQotICAgICAgICApCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90eXBlcy90ZXN0cy90ZXN0X3R5cGVzX2FkZC5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3Rl c3RzL3Rlc3RfdHlwZXNfYWRkLnB5CmluZGV4IDhiOTlhOTg2Li4zMjlhY2QzYSAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdHlwZXMvdGVzdHMvdGVzdF90eXBlc19hZGQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVzdHMv dGVzdF90eXBlc19hZGQucHkKQEAgLTUxLDcgKzUxLDcgQEAgY2xhc3MgVHlwZXNBZGRUZXN0Q2Fz ZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAgICAgInR5cHR5cGUiOiAiYyIsCiAg ICAgICAgICAgICAgICAgInR5cGVvd25lciI6IGRiX3VzZXIsCiAgICAgICAgICAgICAgICAgInNj aGVtYSI6IHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgImNvbXBvc2l0ZSI6IFt7 Im1lbWJlcl9uYW1lIjogIm9uZSIsICJ0eXBlIjogImFic3RpbWUiLAorICAgICAgICAgICAgICAg ICJjb21wb3NpdGUiOiBbeyJtZW1iZXJfbmFtZSI6ICJvbmUiLCAidHlwZSI6ICJiaWdpbnQiLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpc190bGVuZ3RoIjogRmFsc2UsICJpc19w cmVjaXNpb24iOiBGYWxzZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Im1lbWJl cl9uYW1lIjogInR3byIsICJ0eXBlIjogIlwiY2hhclwiW10iLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJpc190bGVuZ3RoIjogRmFsc2UsICJpc19wcmVjaXNpb24iOiBGYWxzZX1d LApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv dGVtcGxhdGVzL2RlcGVuZHMvc3FsLzEyX3BsdXMvZGVwZW5kZW5jaWVzLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RlbXBsYXRlcy9kZXBlbmRzL3NxbC8x Ml9wbHVzL2RlcGVuZGVuY2llcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAuLjBiNmY3MWY4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvdGVtcGxhdGVzL2RlcGVuZHMvc3FsLzEyX3BsdXMvZGVwZW5kZW5j aWVzLnNxbApAQCAtMCwwICsxLDQ1IEBACitTRUxFQ1QgRElTVElOQ1QgZGVwLmRlcHR5cGUsIGRl cC5yZWZjbGFzc2lkLCBjbC5yZWxraW5kLCBhZC5hZGJpbiwgcGdfZ2V0X2V4cHIoYWQuYWRiaW4s IGFkLmFkcmVsaWQpIGFzIGFkc3JjLAorICAgIENBU0UgV0hFTiBjbC5yZWxraW5kIElTIE5PVCBO VUxMIFRIRU4gY2wucmVsa2luZCB8fCBDT0FMRVNDRShkZXAucmVmb2Jqc3ViaWQ6OmNoYXJhY3Rl ciB2YXJ5aW5nLCAnJykKKyAgICAgICAgV0hFTiB0Zy5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnVCc6 OnRleHQKKyAgICAgICAgV0hFTiB0eS5vaWQgSVMgTk9UIE5VTEwgQU5EIHR5LnR5cGJhc2V0eXBl ID0gMCBUSEVOICd5Jzo6dGV4dAorICAgICAgICBXSEVOIHR5Lm9pZCBJUyBOT1QgTlVMTCBBTkQg dHkudHlwYmFzZXR5cGUgIT0gMCBUSEVOICdkJzo6dGV4dAorICAgICAgICBXSEVOIG5zLm9pZCBJ UyBOT1QgTlVMTCBUSEVOICduJzo6dGV4dAorICAgICAgICBXSEVOIHByLm9pZCBJUyBOT1QgTlVM TCBUSEVOICdwJzo6dGV4dAorICAgICAgICBXSEVOIGxhLm9pZCBJUyBOT1QgTlVMTCBUSEVOICds Jzo6dGV4dAorICAgICAgICBXSEVOIHJ3Lm9pZCBJUyBOT1QgTlVMTCBUSEVOICdSJzo6dGV4dAor ICAgICAgICBXSEVOIGNvLm9pZCBJUyBOT1QgTlVMTCBUSEVOICdDJzo6dGV4dCB8fCBjb250eXBl CisgICAgICAgIFdIRU4gYWQub2lkIElTIE5PVCBOVUxMIFRIRU4gJ0EnOjp0ZXh0CisgICAgICAg IFdIRU4gZnMub2lkIElTIE5PVCBOVUxMIFRIRU4gJ0YnOjp0ZXh0CisgICAgICAgIFdIRU4gZmR3 Lm9pZCBJUyBOT1QgTlVMTCBUSEVOICdmJzo6dGV4dAorICAgIEVMU0UgJycKKyAgICBFTkQgQVMg dHlwZSwKKyAgICBDT0FMRVNDRShjb2MucmVsbmFtZSwgY2xydy5yZWxuYW1lKSBBUyBvd25lcnRh YmxlLAorICAgIENBU0UgV0hFTiBjbC5yZWxuYW1lIElTIE5PVCBOVUxMIE9SIGF0dC5hdHRuYW1l IElTIE5PVCBOVUxMIFRIRU4gY2wucmVsbmFtZSB8fCAnLicgfHwgYXR0LmF0dG5hbWUKKyAgICBF TFNFIENPQUxFU0NFKGNsLnJlbG5hbWUsIGNvLmNvbm5hbWUsIHByLnByb25hbWUsIHRnLnRnbmFt ZSwgdHkudHlwbmFtZSwgbGEubGFubmFtZSwgcncucnVsZW5hbWUsIG5zLm5zcG5hbWUsIGZzLnNy dm5hbWUsIGZkdy5mZHduYW1lKQorICAgIEVORCBBUyByZWZuYW1lLAorICAgIENPQUxFU0NFKG5z Yy5uc3BuYW1lLCBuc28ubnNwbmFtZSwgbnNwLm5zcG5hbWUsIG5zdC5uc3BuYW1lLCBuc3J3Lm5z cG5hbWUpIEFTIG5zcG5hbWUKK0ZST00gcGdfZGVwZW5kIGRlcAorTEVGVCBKT0lOIHBnX2NsYXNz IGNsIE9OIGRlcC5yZWZvYmppZD1jbC5vaWQKK0xFRlQgSk9JTiBwZ19hdHRyaWJ1dGUgYXR0IE9O IGRlcC5yZWZvYmppZD1hdHQuYXR0cmVsaWQgQU5EIGRlcC5yZWZvYmpzdWJpZD1hdHQuYXR0bnVt CitMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5zYyBPTiBjbC5yZWxuYW1lc3BhY2U9bnNjLm9pZAor TEVGVCBKT0lOIHBnX3Byb2MgcHIgT04gZGVwLnJlZm9iamlkPXByLm9pZAorTEVGVCBKT0lOIHBn X25hbWVzcGFjZSBuc3AgT04gcHIucHJvbmFtZXNwYWNlPW5zcC5vaWQKK0xFRlQgSk9JTiBwZ190 cmlnZ2VyIHRnIE9OIGRlcC5yZWZvYmppZD10Zy5vaWQKK0xFRlQgSk9JTiBwZ190eXBlIHR5IE9O IGRlcC5yZWZvYmppZD10eS5vaWQKK0xFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbnN0IE9OIHR5LnR5 cG5hbWVzcGFjZT1uc3Qub2lkCitMRUZUIEpPSU4gcGdfY29uc3RyYWludCBjbyBPTiBkZXAucmVm b2JqaWQ9Y28ub2lkCitMRUZUIEpPSU4gcGdfY2xhc3MgY29jIE9OIGNvLmNvbnJlbGlkPWNvYy5v aWQKK0xFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbnNvIE9OIGNvLmNvbm5hbWVzcGFjZT1uc28ub2lk CitMRUZUIEpPSU4gcGdfcmV3cml0ZSBydyBPTiBkZXAucmVmb2JqaWQ9cncub2lkCitMRUZUIEpP SU4gcGdfY2xhc3MgY2xydyBPTiBjbHJ3Lm9pZD1ydy5ldl9jbGFzcworTEVGVCBKT0lOIHBnX25h bWVzcGFjZSBuc3J3IE9OIGNscncucmVsbmFtZXNwYWNlPW5zcncub2lkCitMRUZUIEpPSU4gcGdf bGFuZ3VhZ2UgbGEgT04gZGVwLnJlZm9iamlkPWxhLm9pZAorTEVGVCBKT0lOIHBnX25hbWVzcGFj ZSBucyBPTiBkZXAucmVmb2JqaWQ9bnMub2lkCitMRUZUIEpPSU4gcGdfYXR0cmRlZiBhZCBPTiBh ZC5hZHJlbGlkPWF0dC5hdHRyZWxpZCBBTkQgYWQuYWRudW09YXR0LmF0dG51bQorTEVGVCBKT0lO IHBnX2ZvcmVpZ25fc2VydmVyIGZzIE9OIGZzLm9pZD1kZXAucmVmb2JqaWQKK0xFRlQgSk9JTiBw Z19mb3JlaWduX2RhdGFfd3JhcHBlciBmZHcgT04gZmR3Lm9pZD1kZXAucmVmb2JqaWQKK3t7d2hl cmVfY2xhdXNlfX0gQU5ECityZWZjbGFzc2lkIElOICggU0VMRUNUIG9pZCBGUk9NIHBnX2NsYXNz IFdIRVJFIHJlbG5hbWUgSU4KKyAgICgncGdfY2xhc3MnLCAncGdfY29uc3RyYWludCcsICdwZ19j b252ZXJzaW9uJywgJ3BnX2xhbmd1YWdlJywgJ3BnX3Byb2MnLCAncGdfcmV3cml0ZScsICdwZ19u YW1lc3BhY2UnLAorICAgJ3BnX3RyaWdnZXInLCAncGdfdHlwZScsICdwZ19hdHRyZGVmJywgJ3Bn X2V2ZW50X3RyaWdnZXInLCAncGdfZm9yZWlnbl9zZXJ2ZXInLCAncGdfZm9yZWlnbl9kYXRhX3dy YXBwZXInKSkKK09SREVSIEJZIHJlZmNsYXNzaWQsIGNsLnJlbGtpbmQKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RlbXBsYXRlcy9kZXBlbmRz L3NxbC8xMl9wbHVzL2RlcGVuZGVudHMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvdGVtcGxhdGVzL2RlcGVuZHMvc3FsLzEyX3BsdXMvZGVwZW5kZW50cy5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLmM1Yzg3YjdmCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVt cGxhdGVzL2RlcGVuZHMvc3FsLzEyX3BsdXMvZGVwZW5kZW50cy5zcWwKQEAgLTAsMCArMSw0NCBA QAorU0VMRUNUIERJU1RJTkNUIGRlcC5kZXB0eXBlLCBkZXAuY2xhc3NpZCwgY2wucmVsa2luZCwg YWQuYWRiaW4sIHBnX2dldF9leHByKGFkLmFkYmluLCBhZC5hZHJlbGlkKSBhcyBhZHNyYywKKyAg ICBDQVNFIFdIRU4gY2wucmVsa2luZCBJUyBOT1QgTlVMTCBUSEVOIGNsLnJlbGtpbmQgfHwgQ09B TEVTQ0UoZGVwLm9ianN1YmlkOjp0ZXh0LCAnJykKKyAgICAgICAgV0hFTiB0Zy5vaWQgSVMgTk9U IE5VTEwgVEhFTiAnVCc6OnRleHQKKyAgICAgICAgV0hFTiB0eS5vaWQgSVMgTk9UIE5VTEwgVEhF TiAneSc6OnRleHQKKyAgICAgICAgV0hFTiBucy5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnbic6OnRl eHQKKyAgICAgICAgV0hFTiBwci5vaWQgSVMgTk9UIE5VTEwgVEhFTiAncCc6OnRleHQKKyAgICAg ICAgV0hFTiBsYS5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnbCc6OnRleHQKKyAgICAgICAgV0hFTiBy dy5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnUic6OnRleHQKKyAgICAgICAgV0hFTiBjby5vaWQgSVMg Tk9UIE5VTEwgVEhFTiAnQyc6OnRleHQgfHwgY29udHlwZQorICAgICAgICBXSEVOIGFkLm9pZCBJ UyBOT1QgTlVMTCBUSEVOICdBJzo6dGV4dAorICAgICAgICBXSEVOIGZzLm9pZCBJUyBOT1QgTlVM TCBUSEVOICdGJzo6dGV4dAorICAgICAgICBXSEVOIGZkdy5vaWQgSVMgTk9UIE5VTEwgVEhFTiAn Zic6OnRleHQKKyAgICAgICAgRUxTRSAnJworICAgIEVORCBBUyB0eXBlLAorICAgIENPQUxFU0NF KGNvYy5yZWxuYW1lLCBjbHJ3LnJlbG5hbWUpIEFTIG93bmVydGFibGUsCisgICAgQ0FTRSBXSEVO IGNsLnJlbG5hbWUgSVMgTk9UIE5VTEwgQU5EIGF0dC5hdHRuYW1lIElTIE5PVCBOVUxMIFRIRU4g Y2wucmVsbmFtZSB8fCAnLicgfHwgYXR0LmF0dG5hbWUKKyAgICBFTFNFIENPQUxFU0NFKGNsLnJl bG5hbWUsIGNvLmNvbm5hbWUsIHByLnByb25hbWUsIHRnLnRnbmFtZSwgdHkudHlwbmFtZSwgbGEu bGFubmFtZSwgcncucnVsZW5hbWUsIG5zLm5zcG5hbWUsIGZzLnNydm5hbWUsIGZkdy5mZHduYW1l KQorICAgIEVORCBBUyByZWZuYW1lLAorICAgIENPQUxFU0NFKG5zYy5uc3BuYW1lLCBuc28ubnNw bmFtZSwgbnNwLm5zcG5hbWUsIG5zdC5uc3BuYW1lLCBuc3J3Lm5zcG5hbWUpIEFTIG5zcG5hbWUK K0ZST00gcGdfZGVwZW5kIGRlcAorTEVGVCBKT0lOIHBnX2NsYXNzIGNsIE9OIGRlcC5vYmppZD1j bC5vaWQKK0xFRlQgSk9JTiBwZ19hdHRyaWJ1dGUgYXR0IE9OIGRlcC5vYmppZD1hdHQuYXR0cmVs aWQgQU5EIGRlcC5vYmpzdWJpZD1hdHQuYXR0bnVtCitMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5z YyBPTiBjbC5yZWxuYW1lc3BhY2U9bnNjLm9pZAorTEVGVCBKT0lOIHBnX3Byb2MgcHIgT04gZGVw Lm9iamlkPXByLm9pZAorTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuc3AgT04gcHIucHJvbmFtZXNw YWNlPW5zcC5vaWQKK0xFRlQgSk9JTiBwZ190cmlnZ2VyIHRnIE9OIGRlcC5vYmppZD10Zy5vaWQK K0xFRlQgSk9JTiBwZ190eXBlIHR5IE9OIGRlcC5vYmppZD10eS5vaWQKK0xFRlQgSk9JTiBwZ19u YW1lc3BhY2UgbnN0IE9OIHR5LnR5cG5hbWVzcGFjZT1uc3Qub2lkCitMRUZUIEpPSU4gcGdfY29u c3RyYWludCBjbyBPTiBkZXAub2JqaWQ9Y28ub2lkCitMRUZUIEpPSU4gcGdfY2xhc3MgY29jIE9O IGNvLmNvbnJlbGlkPWNvYy5vaWQKK0xFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbnNvIE9OIGNvLmNv bm5hbWVzcGFjZT1uc28ub2lkCitMRUZUIEpPSU4gcGdfcmV3cml0ZSBydyBPTiBkZXAub2JqaWQ9 cncub2lkCitMRUZUIEpPSU4gcGdfY2xhc3MgY2xydyBPTiBjbHJ3Lm9pZD1ydy5ldl9jbGFzcwor TEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuc3J3IE9OIGNscncucmVsbmFtZXNwYWNlPW5zcncub2lk CitMRUZUIEpPSU4gcGdfbGFuZ3VhZ2UgbGEgT04gZGVwLm9iamlkPWxhLm9pZAorTEVGVCBKT0lO IHBnX25hbWVzcGFjZSBucyBPTiBkZXAub2JqaWQ9bnMub2lkCitMRUZUIEpPSU4gcGdfYXR0cmRl ZiBhZCBPTiBhZC5vaWQ9ZGVwLm9iamlkCitMRUZUIEpPSU4gcGdfZm9yZWlnbl9zZXJ2ZXIgZnMg T04gZnMub2lkPWRlcC5vYmppZAorTEVGVCBKT0lOIHBnX2ZvcmVpZ25fZGF0YV93cmFwcGVyIGZk dyBPTiBmZHcub2lkPWRlcC5vYmppZAore3t3aGVyZV9jbGF1c2V9fSBBTkQKK2NsYXNzaWQgSU4g KCBTRUxFQ1Qgb2lkIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSBJTgorICAgKCdwZ19jbGFz cycsICdwZ19jb25zdHJhaW50JywgJ3BnX2NvbnZlcnNpb24nLCAncGdfbGFuZ3VhZ2UnLCAncGdf cHJvYycsICdwZ19yZXdyaXRlJywgJ3BnX25hbWVzcGFjZScsCisgICAncGdfdHJpZ2dlcicsICdw Z190eXBlJywgJ3BnX2F0dHJkZWYnLCAncGdfZXZlbnRfdHJpZ2dlcicsICdwZ19mb3JlaWduX3Nl cnZlcicsICdwZ19mb3JlaWduX2RhdGFfd3JhcHBlcicpKQorT1JERVIgQlkgY2xhc3NpZCwgY2wu cmVsa2luZApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGVzdHMvdGVzdF9kZXBlbmRlbmNpZXNfc3FsLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9kZXBlbmRlbmNpZXNfc3FsLnB5Cmlu ZGV4IDQ3NTkxMDFmLi5jZjQ5NDM3YSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9kZXBlbmRlbmNpZXNfc3FsLnB5CisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfZGVw ZW5kZW5jaWVzX3NxbC5weQpAQCAtMzEsNyArMzEsMTAgQEAgY2xhc3MgVGVzdERlcGVuZGVuY2ll c1NxbChTUUxUZW1wbGF0ZVRlc3RCYXNlKToKICAgICAgICAgc2VsZi50YWJsZV9pZCA9IGN1cnNv ci5mZXRjaG9uZSgpWzBdCiAKICAgICBkZWYgZ2VuZXJhdGVfc3FsKHNlbGYsIHZlcnNpb24pOgot ICAgICAgICB0ZW1wbGF0ZV9maWxlID0gc2VsZi5nZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCAi ZGVwZW5kZW5jaWVzLnNxbCIpCisgICAgICAgIGZpbGVfcGF0aCA9IG9zLnBhdGguam9pbihvcy5w YXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4iLCAidGVtcGxhdGVzIiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJkZXBlbmRzIiwgInNxbCIpCisgICAgICAgIHRlbXBsYXRlX2Zp bGUgPSBzZWxmLmdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24sIGZpbGVfcGF0aCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlcGVuZGVuY2llcy5zcWwi KQogICAgICAgICB0ZW1wbGF0ZSA9IGZpbGVfYXNfdGVtcGxhdGUodGVtcGxhdGVfZmlsZSkKICAg ICAgICAgc3FsID0gdGVtcGxhdGUucmVuZGVyKAogICAgICAgICAgICAgd2hlcmVfY2xhdXNlPSJX SEVSRSBkZXAub2JqaWQ9JXM6Om9pZCIgJSBzZWxmLnRhYmxlX2lkKQpAQCAtNDcsOCArNTAsMyBA QCBjbGFzcyBUZXN0RGVwZW5kZW5jaWVzU3FsKFNRTFRlbXBsYXRlVGVzdEJhc2UpOgogCiAgICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ24nLCBmaXJzdF9yb3dbImRlcHR5cGUiXSkKICAgICAgICAg c2VsZi5hc3NlcnRFcXVhbCgncHVibGljJywgZmlyc3Rfcm93WyJyZWZuYW1lIl0pCi0KLSAgICBA c3RhdGljbWV0aG9kCi0gICAgZGVmIGdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24sIGZpbGVuYW1l KToKLSAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18p LCAiLi4iLCAidGVtcGxhdGVzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVwZW5k cyIsICJzcWwiLCB2ZXJzaW9uLCBmaWxlbmFtZSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfZGVwZW5kZW50c19zcWwucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2Rl cGVuZGVudHNfc3FsLnB5CmluZGV4IGQ0YjU4YTQ2Li5mY2UyZTkxMCAxMDA2NDQKLS0tIGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9kZXBlbmRl bnRzX3NxbC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy90ZXN0cy90ZXN0X2RlcGVuZGVudHNfc3FsLnB5CkBAIC0zMSw3ICszMSwxMCBAQCBjbGFzcyBU ZXN0RGVwZW5kZW50c1NxbChTUUxUZW1wbGF0ZVRlc3RCYXNlKToKICAgICAgICAgc2VsZi50YWJs ZV9pZCA9IGN1cnNvci5mZXRjaG9uZSgpWzBdCiAKICAgICBkZWYgZ2VuZXJhdGVfc3FsKHNlbGYs IHZlcnNpb24pOgotICAgICAgICB0ZW1wbGF0ZV9maWxlID0gc2VsZi5nZXRfdGVtcGxhdGVfZmls ZSh2ZXJzaW9uLCAiZGVwZW5kZW50cy5zcWwiKQorICAgICAgICBmaWxlX3BhdGggPSBvcy5wYXRo LmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgIi4uIiwgInRlbXBsYXRlcyIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVwZW5kcyIsICJzcWwiKQorICAgICAgICB0 ZW1wbGF0ZV9maWxlID0gc2VsZi5nZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCBmaWxlX3BhdGgs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXBlbmRl bnRzLnNxbCIpCiAgICAgICAgIHRlbXBsYXRlID0gZmlsZV9hc190ZW1wbGF0ZSh0ZW1wbGF0ZV9m aWxlKQogICAgICAgICBzcWwgPSB0ZW1wbGF0ZS5yZW5kZXIoCiAgICAgICAgICAgICB3aGVyZV9j bGF1c2U9IldIRVJFIGRlcC5vYmppZD0lczo6b2lkIiAlIHNlbGYudGFibGVfaWQpCkBAIC00Nyw4 ICs1MCwzIEBAIGNsYXNzIFRlc3REZXBlbmRlbnRzU3FsKFNRTFRlbXBsYXRlVGVzdEJhc2UpOgog CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ24nLCBmaXJzdF9yb3dbImRlcHR5cGUiXSkKICAg ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgndGVzdF90YWJsZScsIGZpcnN0X3Jvd1sicmVmbmFtZSJd KQotCi0gICAgQHN0YXRpY21ldGhvZAotICAgIGRlZiBnZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9u LCBmaWxlbmFtZSk6Ci0gICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1l KF9fZmlsZV9fKSwgIi4uIiwgInRlbXBsYXRlcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgImRlcGVuZHMiLCAic3FsIiwgdmVyc2lvbiwgZmlsZW5hbWUpCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9taXNjL3RlbXBsYXRlcy9zcWxhdXRvY29tcGxldGUvc3FsL2RlZmF1bHQvY29sdW1u cy5zcWwgYi93ZWIvcGdhZG1pbi9taXNjL3RlbXBsYXRlcy9zcWxhdXRvY29tcGxldGUvc3FsL2Rl ZmF1bHQvY29sdW1ucy5zcWwKaW5kZXggNTgwYzM2MjIuLjJlZWY4MDNiIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9taXNjL3RlbXBsYXRlcy9zcWxhdXRvY29tcGxldGUvc3FsL2RlZmF1bHQvY29s dW1ucy5zcWwKKysrIGIvd2ViL3BnYWRtaW4vbWlzYy90ZW1wbGF0ZXMvc3FsYXV0b2NvbXBsZXRl L3NxbC9kZWZhdWx0L2NvbHVtbnMuc3FsCkBAIC01LDcgKzUsNyBAQCBTRUxFQ1QgIG5zcC5uc3Bu YW1lIHNjaGVtYV9uYW1lLAogICAgICAgICBhdHQuYXR0bmFtZSBjb2x1bW5fbmFtZSwKICAgICAg ICAgYXR0LmF0dHR5cGlkOjpyZWd0eXBlOjp0ZXh0IHR5cGVfbmFtZSwKICAgICAgICAgYXR0LmF0 dGhhc2RlZiBBUyBoYXNfZGVmYXVsdCwKLSAgICAgICAgZGVmLmFkc3JjIGFzIGRlZmF1bHQKKyAg ICAgICAgcGdfZ2V0X2V4cHIoZGVmLmFkYmluLCBkZWYuYWRyZWxpZCkgYXMgZGVmYXVsdAogRlJP TSAgICBwZ19jYXRhbG9nLnBnX2F0dHJpYnV0ZSBhdHQKICAgICAgICAgSU5ORVIgSk9JTiBwZ19j YXRhbG9nLnBnX2NsYXNzIGNscwogICAgICAgICAgICAgT04gYXR0LmF0dHJlbGlkID0gY2xzLm9p ZApAQCAtMjYsNyArMjYsNyBAQCBTRUxFQ1QgIG5zcC5uc3BuYW1lIHNjaGVtYV9uYW1lLAogICAg ICAgICBhdHQuYXR0bmFtZSBjb2x1bW5fbmFtZSwKICAgICAgICAgYXR0LmF0dHR5cGlkOjpyZWd0 eXBlOjp0ZXh0IHR5cGVfbmFtZSwKICAgICAgICAgYXR0LmF0dGhhc2RlZiBBUyBoYXNfZGVmYXVs dCwKLSAgICAgICAgZGVmLmFkc3JjIGFzIGRlZmF1bHQKKyAgICAgICAgcGdfZ2V0X2V4cHIoZGVm LmFkYmluLCBkZWYuYWRyZWxpZCkgYXMgZGVmYXVsdAogRlJPTSAgICBwZ19jYXRhbG9nLnBnX2F0 dHJpYnV0ZSBhdHQKICAgICAgICAgSU5ORVIgSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIGNscwog ICAgICAgICAgICAgT04gYXR0LmF0dHJlbGlkID0gY2xzLm9pZApkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vdG9vbHMvc3FsZWRpdG9yL2NvbW1hbmQucHkgYi93ZWIvcGdhZG1pbi90b29scy9zcWxl ZGl0b3IvY29tbWFuZC5weQppbmRleCBiM2I1NmNiMC4uZDRiMDcwMGYgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9jb21tYW5kLnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rv b2xzL3NxbGVkaXRvci9jb21tYW5kLnB5CkBAIC02MTUsOCArNjE1LDE0IEBAIGNsYXNzIFRhYmxl Q29tbWFuZChHcmlkQ29tbWFuZCk6CiAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2hlY2tzIHdoZXRo ZXIgdGhlIHRhYmxlIGhhcyBvaWRzIG9yIG5vdC4KICAgICAgICAgIiIiCiAgICAgICAgIGRyaXZl ciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklWRVIpCisgICAgICAgIG1hbmFnZXIgPSBkcml2 ZXIuY29ubmVjdGlvbl9tYW5hZ2VyKHNlbGYuc2lkKQorCisgICAgICAgICMgUmVtb3ZlIHRoZSBz cGVjaWFsIGJlaGF2aW9yIG9mIE9JRCBjb2x1bW5zIGZyb20KKyAgICAgICAgIyBQb3N0Z3JlU1FM IDEyIG9ud2FyZHMsIHNvIHJldHVybmluZyBGYWxzZS4KKyAgICAgICAgaWYgbWFuYWdlci5zdmVy c2lvbiA+PSAxMjAwMDA6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKwogICAgICAgICBpZiBk ZWZhdWx0X2Nvbm4gaXMgTm9uZToKLSAgICAgICAgICAgIG1hbmFnZXIgPSBkcml2ZXIuY29ubmVj dGlvbl9tYW5hZ2VyKHNlbGYuc2lkKQogICAgICAgICAgICAgY29ubiA9IG1hbmFnZXIuY29ubmVj dGlvbihkaWQ9c2VsZi5kaWQsIGNvbm5faWQ9c2VsZi5jb25uX2lkKQogICAgICAgICBlbHNlOgog ICAgICAgICAgICAgY29ubiA9IGRlZmF1bHRfY29ubgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v dXRpbHMvdmVyc2lvbmVkX3RlbXBsYXRlX2xvYWRlci5weSBiL3dlYi9wZ2FkbWluL3V0aWxzL3Zl cnNpb25lZF90ZW1wbGF0ZV9sb2FkZXIucHkKaW5kZXggYjZkMDA0NTguLjNiNDc3NTdkIDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi91dGlscy92ZXJzaW9uZWRfdGVtcGxhdGVfbG9hZGVyLnB5Cisr KyBiL3dlYi9wZ2FkbWluL3V0aWxzL3ZlcnNpb25lZF90ZW1wbGF0ZV9sb2FkZXIucHkKQEAgLTY4 LDYgKzY4LDE1IEBAIGRlZiBnZXRfdmVyc2lvbl9tYXBwaW5nKHRlbXBsYXRlKToKICAgICBpZiBs ZW4odGVtcGxhdGVfcGF0aF9wYXJ0cykgPT0gNDoKICAgICAgICAgXywgc2VydmVyX3R5cGUsIF8s IF8gPSB0ZW1wbGF0ZV9wYXRoX3BhcnRzCiAKKyAgICByZXR1cm4gZ2V0X3ZlcnNpb25fbWFwcGlu Z19kaXJlY3RvcmllcyhzZXJ2ZXJfdHlwZSkKKworCitkZWYgZ2V0X3ZlcnNpb25fbWFwcGluZ19k aXJlY3RvcmllcyhzZXJ2ZXJfdHlwZSk6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiB3aWxs IHJldHVybiBhbGwgdGhlIHZlcnNpb24gbWFwcGluZyBkaXJlY3RvcmllcworICAgIDpwYXJhbSBz ZXJ2ZXJfdHlwZToKKyAgICA6cmV0dXJuOgorICAgICIiIgogICAgIGlmIHNlcnZlcl90eXBlID09 ICdncGRiJzoKICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgIHsnbmFtZSc6ICJncGRiXzUu MF9wbHVzIiwgJ251bWJlcic6IDgwMzIzfSwKQEAgLTc1LDcgKzg0LDggQEAgZGVmIGdldF92ZXJz aW9uX21hcHBpbmcodGVtcGxhdGUpOgogICAgICAgICAgICAgeyduYW1lJzogImRlZmF1bHQiLCAn bnVtYmVyJzogMH0KICAgICAgICAgKQogCi0gICAgcmV0dXJuICh7J25hbWUnOiAiMTFfcGx1cyIs ICdudW1iZXInOiAxMTAwMDB9LAorICAgIHJldHVybiAoeyduYW1lJzogIjEyX3BsdXMiLCAnbnVt YmVyJzogMTIwMDAwfSwKKyAgICAgICAgICAgIHsnbmFtZSc6ICIxMV9wbHVzIiwgJ251bWJlcic6 IDExMDAwMH0sCiAgICAgICAgICAgICB7J25hbWUnOiAiMTBfcGx1cyIsICdudW1iZXInOiAxMDAw MDB9LAogICAgICAgICAgICAgeyduYW1lJzogIjkuNl9wbHVzIiwgJ251bWJlcic6IDkwNjAwfSwK ICAgICAgICAgICAgIHsnbmFtZSc6ICI5LjVfcGx1cyIsICdudW1iZXInOiA5MDUwMH0sCmRpZmYg LS1naXQgYS93ZWIvcmVncmVzc2lvbi9weXRob25fdGVzdF91dGlscy9zcWxfdGVtcGxhdGVfdGVz dF9iYXNlLnB5IGIvd2ViL3JlZ3Jlc3Npb24vcHl0aG9uX3Rlc3RfdXRpbHMvc3FsX3RlbXBsYXRl X3Rlc3RfYmFzZS5weQppbmRleCAzZGJkMWYxOC4uZmUwYjJhMmUgMTAwNjQ0Ci0tLSBhL3dlYi9y ZWdyZXNzaW9uL3B5dGhvbl90ZXN0X3V0aWxzL3NxbF90ZW1wbGF0ZV90ZXN0X2Jhc2UucHkKKysr IGIvd2ViL3JlZ3Jlc3Npb24vcHl0aG9uX3Rlc3RfdXRpbHMvc3FsX3RlbXBsYXRlX3Rlc3RfYmFz ZS5weQpAQCAtNyw5ICs3LDEzIEBACiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCitpbXBvcnQgb3MK KwogZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogZnJv bSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzCiBmcm9tIHBn YWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBEcml2ZXJSZWdpc3RyeQorZnJvbSBwZ2FkbWluLnV0 aWxzLnZlcnNpb25lZF90ZW1wbGF0ZV9sb2FkZXIgXAorICAgIGltcG9ydCBnZXRfdmVyc2lvbl9t YXBwaW5nX2RpcmVjdG9yaWVzCiAKIERyaXZlclJlZ2lzdHJ5LmxvYWRfZHJpdmVycygpCiAKQEAg LTIyLDcgKzI2LDYgQEAgY2xhc3MgU1FMVGVtcGxhdGVUZXN0QmFzZShCYXNlVGVzdEdlbmVyYXRv cik6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAgICAgICBzdXBlcihTUUxUZW1wbGF0ZVRl c3RCYXNlLCBzZWxmKS5fX2luaXRfXygpCiAgICAgICAgIHNlbGYuZGF0YWJhc2VfbmFtZSA9IC0x Ci0gICAgICAgIHNlbGYudmVyc2lvbnNfdG9fdGVzdCA9IC0xCiAKICAgICBkZWYgdGVzdF9zZXR1 cChzZWxmLCBjb25uZWN0aW9uLCBjdXJzb3IpOgogICAgICAgICBwYXNzCkBAIC00MSwxOSArNDQs MzcgQEAgY2xhc3MgU1FMVGVtcGxhdGVUZXN0QmFzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAg ICAgICAgICB0ZXN0X3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgZGF0YWJhc2VfbmFt ZSwgInRlc3RfdGFibGUiKQogICAgICAgICAgICAgc2VsZi5kYXRhYmFzZV9uYW1lID0gZGF0YWJh c2VfbmFtZQogCi0gICAgICAgICAgICBpZiBjb25uZWN0aW9uLnNlcnZlcl92ZXJzaW9uIDwgOTAx MDA6Ci0gICAgICAgICAgICAgICAgc2VsZi52ZXJzaW9uc190b190ZXN0ID0gWydkZWZhdWx0J10K LSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi52ZXJzaW9uc190b190ZXN0 ID0gWyc5LjFfcGx1cyddCi0KICAgICAgICAgICAgIGN1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29y KCkKICAgICAgICAgICAgIHNlbGYudGVzdF9zZXR1cChjb25uZWN0aW9uLCBjdXJzb3IpCiAKLSAg ICAgICAgICAgIGZvciB2ZXJzaW9uIGluIHNlbGYudmVyc2lvbnNfdG9fdGVzdDoKLSAgICAgICAg ICAgICAgICBzcWwgPSBzZWxmLmdlbmVyYXRlX3NxbCh2ZXJzaW9uKQorICAgICAgICAgICAgc3Fs ID0gc2VsZi5nZW5lcmF0ZV9zcWwoY29ubmVjdGlvbi5zZXJ2ZXJfdmVyc2lvbikKKworICAgICAg ICAgICAgY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQorICAgICAgICAgICAgY3Vyc29yLmV4 ZWN1dGUoc3FsKQorICAgICAgICAgICAgZmV0Y2hfcmVzdWx0ID0gY3Vyc29yLmZldGNoYWxsKCkK KworICAgICAgICAgICAgc2VsZi5hc3NlcnRpb25zKGZldGNoX3Jlc3VsdCwgY3Vyc29yLmRlc2Ny aXB0aW9uKQorCisgICAgZGVmIGdldF90ZW1wbGF0ZV9maWxlKHNlbGYsIHZlcnNpb24sIGZpbGVf cGF0aCwgZmlsZW5hbWUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBjaGVj ayB0aGUgc3BlY2lmaWVkIGZpbGUgaW4gdGhlIHNlcnZlciBtYXBwaW5nIGRpcmVjdG9yeQorICAg ICAgICBhbmQgaWYgZmlsZSBleGlzdHMgdGhlbiByZXR1cm4gdGhhdCBwYXRoLgorICAgICAgICA6 cGFyYW0gdmVyc2lvbjoKKyAgICAgICAgOnBhcmFtIGZpbGVfcGF0aDoKKyAgICAgICAgOnBhcmFt IGZpbGVuYW1lOgorICAgICAgICA6cmV0dXJuOgorICAgICAgICAiIiIKKyAgICAgICAgIyBJdGVy YXRlIGFsbCB0aGUgbWFwcGluZyBkaXJlY3RvcmllcyBhbmQgY2hlY2sgdGhlIGZpbGUgaXMgZXhp c3QKKyAgICAgICAgIyBpbiB0aGUgc3BlY2lmaWVkIGZvbGRlci4gSWYgaXQgZXhpc3RzIHRoZW4g cmV0dXJuIHRoZSBwYXRoLgorICAgICAgICBmb3IgZGlyZWN0b3J5IGluIGdldF92ZXJzaW9uX21h cHBpbmdfZGlyZWN0b3JpZXMoc2VsZi5zZXJ2ZXJbJ3R5cGUnXSk6CisgICAgICAgICAgICBpZiBk aXJlY3RvcnlbJ251bWJlciddID4gdmVyc2lvbjoKKyAgICAgICAgICAgICAgICBjb250aW51ZQog Ci0gICAgICAgICAgICAgICAgY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQotICAgICAgICAg ICAgICAgIGN1cnNvci5leGVjdXRlKHNxbCkKLSAgICAgICAgICAgICAgICBmZXRjaF9yZXN1bHQg PSBjdXJzb3IuZmV0Y2hhbGwoKQorICAgICAgICAgICAgdGVtcGxhdGVfcGF0aCA9ICcvJy5qb2lu KFsKKyAgICAgICAgICAgICAgICBmaWxlX3BhdGgsCisgICAgICAgICAgICAgICAgZGlyZWN0b3J5 WyduYW1lJ10sCisgICAgICAgICAgICAgICAgZmlsZW5hbWUKKyAgICAgICAgICAgIF0pCiAKLSAg ICAgICAgICAgICAgICBzZWxmLmFzc2VydGlvbnMoZmV0Y2hfcmVzdWx0LCBjdXJzb3IuZGVzY3Jp cHRpb24pCisgICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyh0ZW1wbGF0ZV9wYXRoKToKKyAg ICAgICAgICAgICAgICByZXR1cm4gdGVtcGxhdGVfcGF0aAo= --00000000000065758a058ab9722b--