Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fYY0Z-00017j-Lb for pgadmin-hackers@arkaria.postgresql.org; Thu, 28 Jun 2018 14:34:52 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fYY0V-0003I0-Lh for pgadmin-hackers@arkaria.postgresql.org; Thu, 28 Jun 2018 14:34:47 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fYY0U-0003Hq-Of for pgadmin-hackers@lists.postgresql.org; Thu, 28 Jun 2018 14:34:47 +0000 Received: from mail-lj1-x22d.google.com ([2a00:1450:4864:20::22d]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1fYY0P-0007Mj-Vy for pgadmin-hackers@postgresql.org; Thu, 28 Jun 2018 14:34:45 +0000 Received: by mail-lj1-x22d.google.com with SMTP id v15-v6so4703546ljk.5 for ; Thu, 28 Jun 2018 07:34:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=g6coVQWteAM2/SsGd6CpB7/ELQIOH/KiIfJiXQ1EWkk=; b=kLHXGgkihalBJmOgayWGz4y7WU11wIYRLYTi5zYtU/F3GkDolkj8mxcjNwUdwICJF9 6qz8ZF1UKZKS5j1DAUXh5vdj9zjOMcAlFz4NkRKPPKBoRN8YD3Yi4ZKNQ/I7KLCTI2z/ OVDreHEL+f98ELXjb4owMHddGTb4dO2p3GtXlsRd4x75ULZmJKi7Bsl7vLBFsNXuvLVU fJO8bfp+8l62u0zJFJRlxuwAaz9z05DmPi8FWkLc0zNRta3eZiobBSi4ENtbjQOUcf5u 94g7+ainaTPUOaQjZLYSP+/3hbgtJn130pjuhynL3uNUKw2bfxD0kfn5jA/eb0Z4JiA9 kUcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=g6coVQWteAM2/SsGd6CpB7/ELQIOH/KiIfJiXQ1EWkk=; b=azcT2aOlTg/W71hNTqNqFOEIwiJbWMJIpj8fG4bcDol3xkeQfEPzGaoHDdMLkQFE1Z p9Yxhw1+9AYjByyjFsAH7mh7WBugaSEvaLQz2Zmy3QRSF7ES9ql5ahOqd0vQQ5sdO93Q uZ2Li9DK6HGvLoBz8PBWzDIDvQzZPsA5TNmxDs/VvPI21Lxvn4ezPieBcG3WRPb5wUEQ nCs4CgenJ4bLuFzMKpN8GglFkZLd0fpka3lbwGxgNoDKz0CZOf62b5eFWcrlIBOIODMF VQfYlfyJ/A1hnC9SqDjXLzEBh5d2TOIm18EgZTVLSfLQZr0StEb8YxiBf1HCzCTpEUTz NpqA== X-Gm-Message-State: APt69E1haHOW94Bz86FkhiDkNF07X4RJYHaXZco/S2YwIH5TrkIB7qiW rmy+K0BfBMjwYWTyJ6SPImMNc5eHv+421JNE6EhtbXMu X-Google-Smtp-Source: ADUXVKIvSTNlaqOZkSiFQHCWH8DQPCYaTZe3o0cHbvru9cw7LBD1QCrJ4f2DgT5BW2s19hP3RPlDa7KzMVPfGJEA1Fg= X-Received: by 2002:a2e:2ac3:: with SMTP id q186-v6mr7672509ljq.44.1530196478706; Thu, 28 Jun 2018 07:34:38 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a2e:850b:0:0:0:0:0 with HTTP; Thu, 28 Jun 2018 07:34:33 -0700 (PDT) From: Aditya Toshniwal Date: Thu, 28 Jun 2018 20:04:33 +0530 Message-ID: Subject: [pgAdmin4][RM3294] User need to reset the layout to see the changed preferences parameters To: pgadmin-hackers Content-Type: multipart/mixed; boundary="0000000000009cc310056fb4a1e2" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --0000000000009cc310056fb4a1e2 Content-Type: multipart/alternative; boundary="0000000000009cc30d056fb4a1e0" --0000000000009cc30d056fb4a1e0 Content-Type: text/plain; charset="UTF-8" Hi Hackers, Attached is the patch for making preferences realtime and applying without reseting the layout. Please note, the patch is only for one module - SQL Editor and is the first part for the RM. There are lot of changes to be done to cover all and hence sending in parts. This will not affect/break existing code. Further patches will cover other modules. Highlights of this patch include: - Changes will affect SQL Editors in Create dialog boxes, SQL tab of the main screen, Query tool, History entries in the query tool, Query tool opened in New Tab/Window - All the components of SQL editor will refer to single source of preferences which is cached in the Browser object. All other redundant ajax get preference calls are removed. - SQL editor will not refer template JS variables anymore, once all the references are removed the template variables will also be removed. - Code refactoring wherever possible. - Covered JS test cases wherever possible. Request you to kindly review. -- Thanks and Regards, Aditya Toshniwal Software Engineer | EnterpriseDB Software Solutions | Pune "Don't Complain about Heat, Plant a tree" --0000000000009cc30d056fb4a1e0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

Attached is the patch for making preferences r= ealtime and applying without reseting the layout. Please note, the patch is= only for one module - SQL Editor and is the first part for the RM. There a= re lot of changes to be done to cover all and hence sending in parts. This = will not affect/break existing code. Further patches will cover other modul= es.

Highlights of this patch include:
- Changes will affect SQL Editor= s in Create dialog boxes, SQL tab of the main screen, Query tool, History e= ntries in the query tool, Query tool opened in New Tab/Window
- All the com= ponents of SQL editor will refer to single source of preferences which is c= ached in the Browser object. All other redundant ajax get preference calls = are removed.
-=C2=A0SQL editor will not refer template JS variables anymo= re, once all the references are removed the template variables will also be= removed.
- Code refactoring wherever possible.
- Covered JS test ca= ses wherever possible.

Request you to kindly review.

--
Thanks and Regards,
Aditya Toshniwal
Software Engineer |=C2=A0EnterpriseDB S= oftware Solutions |=C2=A0Pune
"Don&= #39;t Complain about Heat, Plant a tree"
--0000000000009cc30d056fb4a1e0-- --0000000000009cc310056fb4a1e2 Content-Type: application/octet-stream; name="0001-RM3294.patch" Content-Disposition: attachment; filename="0001-RM3294.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jiynbup90 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvX19pbml0X18ucHkgYi93ZWIvcGdhZG1p bi9icm93c2VyL19faW5pdF9fLnB5CmluZGV4IDM3NDFkOWQzLi5mYjFlYjdkYiAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL19faW5pdF9fLnB5CkBAIC02ODAsMTcgKzY4MCw2IEBAIGRlZiBicm93c2VyX2NzcygpOgog ICAgICIiIlJlbmRlciBhbmQgcmV0dXJuIENTUyBzbmlwcGV0cyBmcm9tIHRoZSBub2RlcyBhbmQg bW9kdWxlcy4iIiIKICAgICBzbmlwcGV0cyA9IFtdCiAKLSAgICAjIEdldCBjb25maWd1cmFibGUg b3B0aW9ucwotICAgIHByZWZzID0gUHJlZmVyZW5jZXMubW9kdWxlKCdzcWxlZGl0b3InKQotCi0g ICAgc3FsX2ZvbnRfc2l6ZV9wcmVmID0gcHJlZnMucHJlZmVyZW5jZSgnc3FsX2ZvbnRfc2l6ZScp Ci0gICAgc3FsX2ZvbnRfc2l6ZSA9IHJvdW5kKGZsb2F0KHNxbF9mb250X3NpemVfcHJlZi5nZXQo KSksIDIpCi0KLSAgICBpZiBzcWxfZm9udF9zaXplICE9IDA6Ci0gICAgICAgIHNuaXBwZXRzLmFw cGVuZCgKLSAgICAgICAgICAgICcuQ29kZU1pcnJvciB7IGZvbnQtc2l6ZTogJXNlbTsgfScgJSBz dHIoc3FsX2ZvbnRfc2l6ZSkKLSAgICAgICAgKQotCiAgICAgZm9yIHN1Ym1vZHVsZSBpbiBibHVl cHJpbnQuc3VibW9kdWxlczoKICAgICAgICAgc25pcHBldHMuZXh0ZW5kKHN1Ym1vZHVsZS5jc3Nz bmlwcGV0cykKICAgICByZXR1cm4gbWFrZV9yZXNwb25zZSgKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc3RhdGljL2Nzcy9icm93c2VyLmNzcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c3RhdGljL2Nzcy9icm93c2VyLmNzcwppbmRleCAzYmEzMzBkMy4uMWIyZTA2ZTcgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2Nzcy9icm93c2VyLmNzcworKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3N0YXRpYy9jc3MvYnJvd3Nlci5jc3MKQEAgLTEsMyArMSw2IEBACis6 cm9vdCB7CisgIC0tY29kZW1pcnJvci1mb250LXNpemUgOiAxZW07Cit9CiAvKiBTdHlsZXMgZm9y IHRoZSBtYWluIGJyb3dzZXIgKi8KIC5icm93c2VyLXBhbmUtY29udGFpbmVyIHsKICAgICBwb3Np dGlvbjogYWJzb2x1dGU7CkBAIC02NiwzICs2OSw4IEBAIHNhbXAsCiAucGctbG9naW4taWNvbiB7 CiAgIGZvbnQtc2l6ZTogMTZweDsKIH0KKworLkNvZGVNaXJyb3IgeworICBmb250LXNpemU6IHZh cigtLWNvZGVtaXJyb3ItZm9udC1zaXplLCAnMWVtJyk7Cit9CisKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL2Jyb3dzZXIuanMgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3N0YXRpYy9qcy9icm93c2VyLmpzCmluZGV4IGIyNjczOGNmLi5jMzMwYTg3MSAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvYnJvd3Nlci5qcworKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3N0YXRpYy9qcy9icm93c2VyLmpzCkBAIC0yLDggKzIsOCBAQCBkZWZpbmUo J3BnYWRtaW4uYnJvd3NlcicsIFsKICAgJ3NvdXJjZXMvdHJlZS90cmVlJywKICAgJ3NvdXJjZXMv Z2V0dGV4dCcsICdzb3VyY2VzL3VybF9mb3InLCAncmVxdWlyZScsICdqcXVlcnknLCAndW5kZXJz Y29yZScsICd1bmRlcnNjb3JlLnN0cmluZycsCiAgICdib290c3RyYXAnLCAnc291cmNlcy9wZ2Fk bWluJywgJ3BnYWRtaW4uYWxlcnRpZnlqcycsICdidW5kbGVkX2NvZGVtaXJyb3InLAotICAnc291 cmNlcy9jaGVja19ub2RlX3Zpc2liaWxpdHknLCAnc291cmNlcy9tb2RpZnlfYW5pbWF0aW9uJywg J3BnYWRtaW4uYnJvd3Nlci51dGlscycsICd3Y2RvY2tlcicsCi0gICdqcXVlcnkuY29udGV4dG1l bnUnLCAnanF1ZXJ5LmFjaXBsdWdpbicsICdqcXVlcnkuYWNpdHJlZScsCisgICdzb3VyY2VzL2No ZWNrX25vZGVfdmlzaWJpbGl0eScsICdwZ2FkbWluLmJyb3dzZXIudXRpbHMnLCAnd2Nkb2NrZXIn LAorICAnanF1ZXJ5LmNvbnRleHRtZW51JywgJ2pxdWVyeS5hY2lwbHVnaW4nLCAnanF1ZXJ5LmFj aXRyZWUnLCAncGdhZG1pbi5icm93c2VyLnByZWZlcmVuY2VzJywKICAgJ3BnYWRtaW4uYnJvd3Nl ci5tZXNzYWdlcycsCiAgICdwZ2FkbWluLmJyb3dzZXIubWVudScsICdwZ2FkbWluLmJyb3dzZXIu cGFuZWwnLAogICAncGdhZG1pbi5icm93c2VyLmVycm9yJywgJ3BnYWRtaW4uYnJvd3Nlci5mcmFt ZScsCkBAIC0xMyw3ICsxMyw3IEBAIGRlZmluZSgncGdhZG1pbi5icm93c2VyJywgWwogXSwgZnVu Y3Rpb24oCiAgIHRyZWUsCiAgIGdldHRleHQsIHVybF9mb3IsIHJlcXVpcmUsICQsIF8sIFMsIEJv b3RzdHJhcCwgcGdBZG1pbiwgQWxlcnRpZnksCi0gIGNvZGVtaXJyb3IsIGNoZWNrTm9kZVZpc2li aWxpdHksIG1vZGlmeUFuaW1hdGlvbgorICBjb2RlbWlycm9yLCBjaGVja05vZGVWaXNpYmlsaXR5 CiApIHsKICAgd2luZG93LmpRdWVyeSA9IHdpbmRvdy4kID0gJDsKICAgLy8gU29tZSBzY3JpcHRz IGRvIGV4cG9ydCB0aGVpciBvYmplY3QgaW4gdGhlIHdpbmRvdyBvbmx5LgpAQCAtMzQyLDcgKzM0 Miw3IEBAIGRlZmluZSgncGdhZG1pbi5icm93c2VyJywgWwogCiAgICAgICAvLyBDYWNoZSBwcmVm ZXJlbmNlcwogICAgICAgb2JqLmNhY2hlX3ByZWZlcmVuY2VzKCk7Ci0gICAgICB0aGlzLmFkZF9w YW5lbHMoKTsKKyAgICAgIG9iai5hZGRfcGFuZWxzKCk7CiAgICAgICAvLyBJbml0aWFsaXplIHRo ZSBEb2NrZXIKICAgICAgIG9iai5kb2NrZXIgPSBuZXcgd2NEb2NrZXIoCiAgICAgICAgICcjZG9j a2VyQ29udGFpbmVyJywgewpAQCAtNDAwLDExICs0MDAsMjIgQEAgZGVmaW5lKCdwZ2FkbWluLmJy b3dzZXInLCBbCiAgICAgICAgICAgbW9kZTogJ3RleHQveC1wZ3NxbCcsCiAgICAgICAgICAgcmVh ZE9ubHk6IHRydWUsCiAgICAgICAgICAgZXh0cmFLZXlzOiBwZ0FkbWluLkJyb3dzZXIuZWRpdG9y X3Nob3J0Y3V0X2tleXMsCi0gICAgICAgICAgdGFiU2l6ZTogcGdBZG1pbi5Ccm93c2VyLmVkaXRv cl9vcHRpb25zLnRhYlNpemUsCi0gICAgICAgICAgbGluZVdyYXBwaW5nOiBwZ0FkbWluLkJyb3dz ZXIuZWRpdG9yX29wdGlvbnMud3JhcENvZGUsCi0gICAgICAgICAgYXV0b0Nsb3NlQnJhY2tldHM6 IHBnQWRtaW4uQnJvd3Nlci5lZGl0b3Jfb3B0aW9ucy5pbnNlcnRfcGFpcl9icmFja2V0cywKLSAg ICAgICAgICBtYXRjaEJyYWNrZXRzOiBwZ0FkbWluLkJyb3dzZXIuZWRpdG9yX29wdGlvbnMuYnJh Y2VfbWF0Y2hpbmcsCiAgICAgICAgIH0pOworICAgICAgLyogQ2FjaGUgbWF5IHRha2UgdGltZSB0 byBsb2FkIGZvciB0aGUgZmlyc3QgdGltZQorICAgICAgICogUmVmbGVjdCB0aGUgY2hhbmdlcyBv bmNlIGNhY2hlIGlzIGF2YWlsYWJsZQorICAgICAgICovCisgICAgICBsZXQgY2FjaGVJbnRlcnZh bElkID0gc2V0SW50ZXJ2YWwoKCk9PiB7CisgICAgICAgIGxldCBzcWxFZGl0UHJlZmVyZW5jZXMg PSBvYmouZ2V0X3ByZWZlcmVuY2VzX2Zvcl9tb2R1bGUoJ3NxbGVkaXRvcicpOworICAgICAgICBp ZihzcWxFZGl0UHJlZmVyZW5jZXMpIHsKKyAgICAgICAgICBjbGVhckludGVydmFsKGNhY2hlSW50 ZXJ2YWxJZCk7CisgICAgICAgICAgb2JqLnJlZmxlY3RQcmVmZXJlbmNlcygnc3FsZWRpdG9yJyk7 CisgICAgICAgIH0KKyAgICAgIH0sIDUwMCk7CisKKyAgICAgIC8qIENoZWNrIGZvciBzcWwgZWRp dG9yIHByZWZlcmVuY2UgY2hhbmdlcyAqLworICAgICAgb2JqLm9uUHJlZmVyZW5jZXNDaGFuZ2Uo J3NxbGVkaXRvcicsIGZ1bmN0aW9uKCkgeworICAgICAgICBvYmoucmVmbGVjdFByZWZlcmVuY2Vz KCdzcWxlZGl0b3InKTsKKyAgICAgIH0pOwogCiAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg ewogICAgICAgICBvYmouZWRpdG9yLnNldFZhbHVlKCctLSAnICsgc2VsZWN0X29iamVjdF9tc2cp OwpAQCAtNTE0LDEwICs1MjUsNiBAQCBkZWZpbmUoJ3BnYWRtaW4uYnJvd3NlcicsIFsKICAgICAg IH07CiAgICAgfSwKIAotICAgIC8vIFRoaXMgd2lsbCBob2xkIHByZWZlcmVuY2UgZGF0YSAoV29y a3MgYXMgYSBjYWNoZSBvYmplY3QpCi0gICAgLy8gSGVyZSBub2RlIHdpbGwgYmUgYSBrZXkgYW5k IGl0J3MgcHJlZmVyZW5jZSBkYXRhIHdpbGwgYmUgdmFsdWUKLSAgICBwcmVmZXJlbmNlc19jYWNo ZToge30sCi0KICAgICAvLyBBZGQgbWVudXMgb2YgbW9kdWxlL2V4dGVuc2lvbiBhdCBhcHByb3By aWF0ZSBtZW51CiAgICAgYWRkX21lbnVzOiBmdW5jdGlvbihtZW51cykgewogICAgICAgdmFyIHNl bGYgPSB0aGlzLApAQCAtNjYxLDQ2ICs2NjgsNiBAQCBkZWZpbmUoJ3BnYWRtaW4uYnJvd3Nlcics IFsKICAgICAgICAgfQogICAgICAgfQogICAgIH0sCi0KLSAgICAvLyBHZXQgcHJlZmVyZW5jZSB2 YWx1ZSBmcm9tIGNhY2hlCi0gICAgZ2V0X3ByZWZlcmVuY2U6IGZ1bmN0aW9uKG1vZHVsZSwgcHJl ZmVyZW5jZSkgewotICAgICAgdmFyIHNlbGYgPSB0aGlzOwotICAgICAgLy8gSWYgY2FjaGUgaXMg bm90IHlldCBsb2FkZWQgdGhlbiBrZWVwIGNoZWNraW5nCi0gICAgICBpZihfLnNpemUoc2VsZi5w cmVmZXJlbmNlc19jYWNoZSkgPT0gMCkgewotICAgICAgICB2YXIgY2hlY2tfcHJlZmVyZW5jZSA9 IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgaWYoXy5zaXplKHNlbGYucHJlZmVyZW5jZXNfY2Fj aGUpID4gMCkgewotICAgICAgICAgICAgICBjbGVhckludGVydmFsKHByZWZlcmVuY2VUaW1lb3V0 KTsKLSAgICAgICAgICAgICAgcmV0dXJuIF8uZmluZFdoZXJlKAotICAgICAgICAgICAgICBzZWxm LnByZWZlcmVuY2VzX2NhY2hlLCB7J21vZHVsZSc6IG1vZHVsZSwgJ25hbWUnOiBwcmVmZXJlbmNl fQotICAgICAgICAgICAgKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9LAotICAgICAgICAg IHByZWZlcmVuY2VUaW1lb3V0ID0gc2V0SW50ZXJ2YWwoY2hlY2tfcHJlZmVyZW5jZSwgMTAwMCk7 Ci0gICAgICB9Ci0gICAgICBlbHNlIHsKLSAgICAgICAgcmV0dXJuIF8uZmluZFdoZXJlKAotICAg ICAgICAgIHNlbGYucHJlZmVyZW5jZXNfY2FjaGUsIHsnbW9kdWxlJzogbW9kdWxlLCAnbmFtZSc6 IHByZWZlcmVuY2V9Ci0gICAgICAgICk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIC8vIEdldCBh bmQgY2FjaGUgdGhlIHByZWZlcmVuY2VzCi0gICAgY2FjaGVfcHJlZmVyZW5jZXM6IGZ1bmN0aW9u ICgpIHsKLSAgICAgIHZhciBzZWxmID0gdGhpczsKLSAgICAgICQuYWpheCh7Ci0gICAgICAgIHVy bDogdXJsX2ZvcigncHJlZmVyZW5jZXMuZ2V0X2FsbCcpLAotICAgICAgICBzdWNjZXNzOiBmdW5j dGlvbihyZXMpIHsKLSAgICAgICAgICBzZWxmLnByZWZlcmVuY2VzX2NhY2hlID0gcmVzOwotICAg ICAgICAgIHBnQnJvd3Nlci5rZXlib2FyZE5hdmlnYXRpb24uaW5pdCgpOwotICAgICAgICAgIG1v ZGlmeUFuaW1hdGlvbi5tb2RpZnlBY2l0cmVlQW5pbWF0aW9uKHNlbGYpOwotICAgICAgICAgIG1v ZGlmeUFuaW1hdGlvbi5tb2RpZnlBbGVydGlmeUFuaW1hdGlvbihzZWxmKTsKLSAgICAgICAgfSwK LSAgICAgICAgZXJyb3I6IGZ1bmN0aW9uKHhociwgc3RhdHVzLCBlcnJvcikgewotICAgICAgICAg IEFsZXJ0aWZ5LnBnUmVzcEVycm9yTm90aWZ5KHhociwgZXJyb3IpOwotICAgICAgICB9LAotICAg ICAgfSk7Ci0gICAgfSwKLQogICAgIF9maW5kVHJlZUNoaWxkTm9kZTogZnVuY3Rpb24oX2ksIF9k LCBfbykgewogICAgICAgdmFyIGxvYWRlZCA9IF9vLnQud2FzTG9hZChfaSksCiAgICAgICAgIG9u TG9hZCA9IGZ1bmN0aW9uKCkgewpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zdGF0 aWMvanMvcHJlZmVyZW5jZXMuanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9wcmVm ZXJlbmNlcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uNzNjYWExMGQK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9wcmVmZXJl bmNlcy5qcwpAQCAtMCwwICsxLDEyNiBAQAoraW1wb3J0IHBnQWRtaW4gZnJvbSAnc291cmNlcy9w Z2FkbWluJzsKK2ltcG9ydCB1cmxfZm9yIGZyb20gJ3NvdXJjZXMvdXJsX2Zvcic7CitpbXBvcnQg KiBhcyBtb2RpZnlBbmltYXRpb24gZnJvbSAnc291cmNlcy9tb2RpZnlfYW5pbWF0aW9uJzsKK2lt cG9ydCAkIGZyb20gJ2pxdWVyeSc7CitpbXBvcnQgKiBhcyBBbGVydGlmeSBmcm9tICdwZ2FkbWlu LmFsZXJ0aWZ5anMnOworaW1wb3J0ICogYXMgU3FsRWRpdG9yVXRpbHMgZnJvbSAnc291cmNlcy9z cWxlZGl0b3JfdXRpbHMnOworCitjb25zdCBwZ0Jyb3dzZXIgPSBwZ0FkbWluLkJyb3dzZXIgPSBw Z0FkbWluLkJyb3dzZXIgfHwge307CisKKy8qIEFkZCBjYWNoZSByZWxhdGVkIG1ldGhvZHMgYW5k IHByb3BlcnRpZXMgKi8KK18uZXh0ZW5kKHBnQnJvd3NlciwgeworICAvKiBUaGlzIHdpbGwgaG9s ZCBwcmVmZXJlbmNlIGRhdGEgKFdvcmtzIGFzIGEgY2FjaGUgb2JqZWN0KQorICAgKiBIZXJlIG5v ZGUgd2lsbCBiZSBhIGtleSBhbmQgaXQncyBwcmVmZXJlbmNlIGRhdGEgd2lsbCBiZSB2YWx1ZQor ICAgKi8KKyAgcHJlZmVyZW5jZXNfY2FjaGU6IFtdLAorCisgIC8qIFRoaXMgd2lsbCBiZSB1c2Vk IGJ5IHBvbGxlciBvZiBuZXcgdGFicy93aW5kb3dzIHRvIGNoZWNrCisgICAqIGlmIHByZWZlcmVu Y2UgY2FjaGUgaXMgdXBkYXRlZCBpbiBwYXJlbnQvd2luZG93Lm9wZW5lci4KKyAgICovCisgIHBy ZWZjYWNoZV92ZXJzaW9uOiAwLAorCisgIC8qIEdldCBjYWNoZWQgcHJlZmVyZW5jZSAqLworICBn ZXRfcHJlZmVyZW5jZTogZnVuY3Rpb24obW9kdWxlLCBwcmVmZXJlbmNlKXsKKyAgICBjb25zdCBz ZWxmID0gdGhpczsKKyAgICAvLyBJZiBjYWNoZSBpcyBub3QgeWV0IGxvYWRlZCB0aGVuIGtlZXAg Y2hlY2tpbmcKKyAgICBpZihfLnNpemUoc2VsZi5wcmVmZXJlbmNlc19jYWNoZSkgPT0gMCkgewor ICAgICAgdmFyIGNoZWNrX3ByZWZlcmVuY2UgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICBpZihz ZWxmLnByZWZlcmVuY2VzX2NhY2hlLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIGNsZWFySW50 ZXJ2YWwocHJlZmVyZW5jZVRpbWVvdXQpOworICAgICAgICAgICAgcmV0dXJuIF8uZmluZFdoZXJl KAorICAgICAgICAgICAgc2VsZi5wcmVmZXJlbmNlc19jYWNoZSwgeydtb2R1bGUnOiBtb2R1bGUs ICduYW1lJzogcHJlZmVyZW5jZX0KKyAgICAgICAgICApOworICAgICAgICAgIH0KKyAgICAgICAg fSwKKyAgICAgICAgcHJlZmVyZW5jZVRpbWVvdXQgPSBzZXRJbnRlcnZhbChjaGVja19wcmVmZXJl bmNlLCAxMDAwKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICByZXR1cm4gXy5maW5kV2hlcmUo CisgICAgICAgIHNlbGYucHJlZmVyZW5jZXNfY2FjaGUsIHsnbW9kdWxlJzogbW9kdWxlLCAnbmFt ZSc6IHByZWZlcmVuY2V9CisgICAgICApOworICAgIH0KKyAgfSwKKworICAvKiBHZXQgYWxsIHRo ZSBwcmVmZXJlbmNlcyBvZiBhIG1vZHVsZSAqLworICBnZXRfcHJlZmVyZW5jZXNfZm9yX21vZHVs ZTogZnVuY3Rpb24obW9kdWxlKSB7CisgICAgdmFyIHNlbGYgPSB0aGlzOworICAgIGxldCBwcmVm ZXJlbmNlcyA9IHt9OworICAgIF8uZWFjaCgKKyAgICAgIF8ud2hlcmUoc2VsZi5wcmVmZXJlbmNl c19jYWNoZSwgeydtb2R1bGUnOiBtb2R1bGV9KSwKKyAgICAgIChwcmVmZXJlbmNlKSA9PiB7Cisg ICAgICAgIHByZWZlcmVuY2VzW3ByZWZlcmVuY2UubmFtZV0gPSBwcmVmZXJlbmNlLnZhbHVlOwor ICAgICAgfQorICAgICk7CisgICAgcmV0dXJuIHByZWZlcmVuY2VzOworICB9LAorCisgIC8qIEdl dCBwcmVmZXJlbmNlIG9mIGFuIGlkLCBpZCBpcyBudW1lcmljICovCisgIGdldF9wcmVmZXJlbmNl X2Zvcl9pZCA6IGZ1bmN0aW9uKGlkKSB7CisgICAgdmFyIHNlbGYgPSB0aGlzOworICAgIHJldHVy biBfLmZpbmRXaGVyZShzZWxmLnByZWZlcmVuY2VzX2NhY2hlLCB7J2lkJzogaWR9KTsKKyAgfSwK KworICAvLyBHZXQgYW5kIGNhY2hlIHRoZSBwcmVmZXJlbmNlcworICBjYWNoZV9wcmVmZXJlbmNl czogZnVuY3Rpb24gKG1vZHVsZXNDaGFuZ2VkKSB7CisgICAgdmFyIHNlbGYgPSB0aGlzOworICAg IHJldHVybiAkLmFqYXgoeworICAgICAgdXJsOiB1cmxfZm9yKCdwcmVmZXJlbmNlcy5nZXRfYWxs JyksCisgICAgICBzdWNjZXNzOiBmdW5jdGlvbihyZXMpIHsKKyAgICAgICAgc2VsZi5wcmVmZXJl bmNlc19jYWNoZSA9IHJlczsKKyAgICAgICAgc2VsZi5wcmVmY2FjaGVfdmVyc2lvbiA9IChuZXcg RGF0ZSgpKS5nZXRUaW1lKCk7CisKKyAgICAgICAgcGdCcm93c2VyLmtleWJvYXJkTmF2aWdhdGlv bi5pbml0KCk7CisgICAgICAgIGlmKHBnQnJvd3Nlci50cmVlKSB7CisgICAgICAgICAgbW9kaWZ5 QW5pbWF0aW9uLm1vZGlmeUFjaXRyZWVBbmltYXRpb24oc2VsZik7CisgICAgICAgICAgbW9kaWZ5 QW5pbWF0aW9uLm1vZGlmeUFsZXJ0aWZ5QW5pbWF0aW9uKHNlbGYpOworICAgICAgICB9CisKKyAg ICAgICAgLyogT25jZSB0aGUgY2FjaGUgaXMgbG9hZGVkIGFmdGVyIGNoYW5naW5nIHRoZSBwcmVm ZXJlbmNlcywKKyAgICAgICAgICogbm90aWZ5IHRoZSBtb2R1bGVzIG9mIHRoZSBjaGFuZ2UKKyAg ICAgICAgICovCisgICAgICAgIGlmKG1vZHVsZXNDaGFuZ2VkKSB7CisgICAgICAgICAgXy5lYWNo KG1vZHVsZXNDaGFuZ2VkLCAodmFsLCBrZXkpPT4geworICAgICAgICAgICAgJC5ldmVudC50cmln Z2VyKCdwcmVmY2hhbmdlOicra2V5KTsKKyAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAg fSwKKyAgICAgIGVycm9yOiBmdW5jdGlvbih4aHIsIHN0YXR1cywgZXJyb3IpIHsKKyAgICAgICAg QWxlcnRpZnkucGdSZXNwRXJyb3JOb3RpZnkoeGhyLCBlcnJvcik7CisgICAgICB9LAorICAgIH0p OworICB9LAorCisgIHJlZmxlY3RQcmVmZXJlbmNlczogZnVuY3Rpb24obW9kdWxlKSB7CisgICAg bGV0IG9iaiA9IHRoaXM7CisKKyAgICBpZihtb2R1bGUgPT09ICdzcWxlZGl0b3InIHx8IG1vZHVs ZSA9PT0gbnVsbCB8fCB0eXBlb2YgbW9kdWxlID09PSAndW5kZWZpbmVkJykgeworICAgICAgbGV0 IHNxbEVkaXRQcmVmZXJlbmNlcyA9IG9iai5nZXRfcHJlZmVyZW5jZXNfZm9yX21vZHVsZSgnc3Fs ZWRpdG9yJyk7CisKKyAgICAgICQob2JqLmVkaXRvci5nZXRXcmFwcGVyRWxlbWVudCgpKS5jc3Mo CisgICAgICAgICdmb250LXNpemUnLFNxbEVkaXRvclV0aWxzLmNhbGNGb250U2l6ZShzcWxFZGl0 UHJlZmVyZW5jZXMuc3FsX2ZvbnRfc2l6ZSkKKyAgICAgICk7CisgICAgICBvYmouZWRpdG9yLnNl dE9wdGlvbigndGFiU2l6ZScsIHNxbEVkaXRQcmVmZXJlbmNlcy50YWJfc2l6ZSk7CisgICAgICBv YmouZWRpdG9yLnNldE9wdGlvbignbGluZVdyYXBwaW5nJywgc3FsRWRpdFByZWZlcmVuY2VzLndy YXBfY29kZSk7CisgICAgICBvYmouZWRpdG9yLnNldE9wdGlvbignYXV0b0Nsb3NlQnJhY2tldHMn LCBzcWxFZGl0UHJlZmVyZW5jZXMuaW5zZXJ0X3BhaXJfYnJhY2tldHMpOworICAgICAgb2JqLmVk aXRvci5zZXRPcHRpb24oJ21hdGNoQnJhY2tldHMnLCBzcWxFZGl0UHJlZmVyZW5jZXMuYnJhY2Vf bWF0Y2hpbmcpOworICAgICAgb2JqLmVkaXRvci5yZWZyZXNoKCk7CisgICAgfQorICB9LAorCisg IG9uUHJlZmVyZW5jZXNDaGFuZ2U6IGZ1bmN0aW9uKG1vZHVsZSwgZXZlbnRIYW5kbGVyKSB7Cisg ICAgd2luZG93LnBhcmVudC4kKHBhcmVudC5kb2N1bWVudCkub24oJ3ByZWZjaGFuZ2U6Jyttb2R1 bGUsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAvKiBJZiBhIHNxbGVkaXRvciBpcyBjbG9zZWQs IGV2ZW50IGhhbmRsZXIgd2lsbCBiZSBjYWxsZWQKKyAgICAgICAqIGJ1dCB0aGUgd2luZG93LnRv cCB3aWxsIGJlIG51bGwuIFVuYmluZCB0aGUgZXZlbnQgaGFuZGxlcgorICAgICAgICovCisgICAg ICBpZih3aW5kb3cudG9wID09PSBudWxsKSB7CisgICAgICAgIHdpbmRvdy4kKGRvY3VtZW50KS5v ZmYoZXZlbnQpOworICAgICAgfQorICAgICAgZWxzZSB7CisgICAgICAgIGV2ZW50SGFuZGxlcihl dmVudCk7CisgICAgICB9CisgICAgfSk7CisgIH0sCisKK30pOworCitleHBvcnQge3BnQnJvd3Nl cn07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9wcmVmZXJlbmNlcy9zdGF0aWMvanMvcHJlZmVy ZW5jZXMuanMgYi93ZWIvcGdhZG1pbi9wcmVmZXJlbmNlcy9zdGF0aWMvanMvcHJlZmVyZW5jZXMu anMKaW5kZXggY2RiZGEwY2QuLjdmMjFmODBjIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9wcmVm ZXJlbmNlcy9zdGF0aWMvanMvcHJlZmVyZW5jZXMuanMKKysrIGIvd2ViL3BnYWRtaW4vcHJlZmVy ZW5jZXMvc3RhdGljL2pzL3ByZWZlcmVuY2VzLmpzCkBAIC00MzksOCArNDM5LDIwIEBAIGRlZmlu ZSgncGdhZG1pbi5wcmVmZXJlbmNlcycsIFsKIAogICAgICAgICAgICAgaWYgKGUuYnV0dG9uLnRl eHQgPT0gZ2V0dGV4dCgnT0snKSkgewogICAgICAgICAgICAgICBwcmVmZXJlbmNlcy51cGRhdGVB bGwoKTsKKworICAgICAgICAgICAgICAvKiBGaW5kIHRoZSBtb2R1bGVzIGNoYW5nZWQgKi8KKyAg ICAgICAgICAgICAgbGV0IG1vZHVsZXNDaGFuZ2VkID0ge307CisgICAgICAgICAgICAgIF8uZWFj aChjaGFuZ2VkLCAodmFsLCBrZXkpPT4geworICAgICAgICAgICAgICAgIGxldCBwcmVmID0gcGdC cm93c2VyLmdldF9wcmVmZXJlbmNlX2Zvcl9pZChOdW1iZXIoa2V5KSk7CisgICAgICAgICAgICAg ICAgaWYoIW1vZHVsZXNDaGFuZ2VkW3ByZWYubW9kdWxlXSkgeworICAgICAgICAgICAgICAgICAg bW9kdWxlc0NoYW5nZWRbcHJlZi5tb2R1bGVdID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgIH0pOworCiAgICAgICAgICAgICAgIC8vIFJlZnJlc2ggcHJlZmVyZW5jZXMg Y2FjaGUKLSAgICAgICAgICAgICAgc2V0VGltZW91dChwZ0Jyb3dzZXIuY2FjaGVfcHJlZmVyZW5j ZXMoKSwgMjAwMCk7CisgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PiB7CisgICAgICAgICAg ICAgICAgcGdCcm93c2VyLmNhY2hlX3ByZWZlcmVuY2VzKG1vZHVsZXNDaGFuZ2VkKTsKKyAgICAg ICAgICAgICAgfSwgNTAwKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICB9LAogICAgICAgICAg IGJ1aWxkOiBmdW5jdGlvbigpIHsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9i YWNrZm9ybS5wZ2FkbWluLmpzIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2JhY2tmb3JtLnBnYWRt aW4uanMKaW5kZXggYzdiOTg0OTYuLjcwOTZlZTdiIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9z dGF0aWMvanMvYmFja2Zvcm0ucGdhZG1pbi5qcworKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMv YmFja2Zvcm0ucGdhZG1pbi5qcwpAQCAtMSwxMCArMSwxMSBAQAogZGVmaW5lKFsKICAgJ3NvdXJj ZXMvZ2V0dGV4dCcsICd1bmRlcnNjb3JlJywgJ3VuZGVyc2NvcmUuc3RyaW5nJywgJ2pxdWVyeScs Ci0gICdiYWNrYm9uZScsICdiYWNrZm9ybScsICdiYWNrZ3JpZCcsICdjb2RlbWlycm9yJywgJ3Nw ZWN0cnVtJywKLSAgJ3BnYWRtaW4uYmFja2dyaWQnLCAnc2VsZWN0MicsCi1dLCBmdW5jdGlvbihn ZXR0ZXh0LCBfLCBTLCAkLCBCYWNrYm9uZSwgQmFja2Zvcm0sIEJhY2tncmlkLCBDb2RlTWlycm9y KSB7CisgICdiYWNrYm9uZScsICdiYWNrZm9ybScsICdiYWNrZ3JpZCcsICdjb2RlbWlycm9yJywg J3NvdXJjZXMvc3FsZWRpdG9yX3V0aWxzJywKKyAgJ3NwZWN0cnVtJywgJ3BnYWRtaW4uYmFja2dy aWQnLCAnc2VsZWN0MicsCitdLCBmdW5jdGlvbihnZXR0ZXh0LCBfLCBTLCAkLCBCYWNrYm9uZSwg QmFja2Zvcm0sIEJhY2tncmlkLCBDb2RlTWlycm9yLCBTcWxFZGl0b3JVdGlscykgewogCi0gIHZh ciBwZ0FkbWluID0gKHdpbmRvdy5wZ0FkbWluID0gd2luZG93LnBnQWRtaW4gfHwge30pOworICB2 YXIgcGdBZG1pbiA9ICh3aW5kb3cucGdBZG1pbiA9IHdpbmRvdy5wZ0FkbWluIHx8IHt9KSwKKyAg ICBwZ0Jyb3dzZXIgPSBwZ0FkbWluLkJyb3dzZXI7CiAKICAgcGdBZG1pbi5lZGl0YWJsZUNlbGwg PSBmdW5jdGlvbigpIHsKICAgICBpZiAodGhpcy5hdHRyaWJ1dGVzICYmICFfLmlzVW5kZWZpbmVk KHRoaXMuYXR0cmlidXRlcy5kaXNhYmxlZCkgJiYKQEAgLTEyNTksOCArMTI2MCw3IEBAIGRlZmlu ZShbCiAgICAgICB2YXIgc3Vibm9kZSA9IGRhdGEuc3Vibm9kZS5zY2hlbWEgPyBkYXRhLnN1Ym5v ZGUgOiBkYXRhLnN1Ym5vZGUucHJvdG90eXBlLAogICAgICAgICBncmlkU2NoZW1hID0gQmFja2Zv cm0uZ2VuZXJhdGVHcmlkQ29sdW1uc0Zyb21Nb2RlbCgKICAgICAgICAgICBkYXRhLm5vZGVfaW5m bywgc3Vibm9kZSwgdGhpcy5maWVsZC5nZXQoJ21vZGUnKSwgZGF0YS5jb2x1bW5zLCBkYXRhLnNj aGVtYV9ub2RlCi0gICAgICAgICksCi0gICAgICAgIHBnQnJvd3NlciA9IHdpbmRvdy5wZ0FkbWlu LkJyb3dzZXI7CisgICAgICAgICk7CiAKICAgICAgIC8vIENsZWFuIHVwIGV4aXN0aW5nIGdyaWQg aWYgYW55IChpbiBjYXNlIG9mIHJlLXJlbmRlcikKICAgICAgIGlmIChzZWxmLmdyaWQpIHsKQEAg LTE0MjgsNiArMTQyOCwyMyBAQCBkZWZpbmUoWwogICAgIGdldFZhbHVlRnJvbURPTTogZnVuY3Rp b24oKSB7CiAgICAgICByZXR1cm4gdGhpcy5mb3JtYXR0ZXIudG9SYXcodGhpcy4kZWwuZmluZCgn dGV4dGFyZWEnKS52YWwoKSwgdGhpcy5tb2RlbCk7CiAgICAgfSwKKworICAgIHJlZmxlY3RQcmVm ZXJlbmNlczogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgc2VsZiA9IHRoaXM7CisgICAgICAvKiBz ZWxmLnNxbEN0cmwgaXMgbnVsbCB3aGVuIFNRTCB0YWIgaXMgbm90IGFjdGl2ZSAqLworICAgICAg aWYoc2VsZi5zcWxDdHJsKSB7CisgICAgICAgIGxldCBzcWxFZGl0UHJlZmVyZW5jZXMgPSBwZ0Fk bWluLkJyb3dzZXIuZ2V0X3ByZWZlcmVuY2VzX2Zvcl9tb2R1bGUoJ3NxbGVkaXRvcicpOworCisg ICAgICAgICQoc2VsZi5zcWxDdHJsLmdldFdyYXBwZXJFbGVtZW50KCkpLmNzcygKKyAgICAgICAg ICAnZm9udC1zaXplJyxTcWxFZGl0b3JVdGlscy5jYWxjRm9udFNpemUoc3FsRWRpdFByZWZlcmVu Y2VzLnNxbF9mb250X3NpemUpCisgICAgICAgICk7CisgICAgICAgIHNlbGYuc3FsQ3RybC5zZXRP cHRpb24oJ3RhYlNpemUnLCBzcWxFZGl0UHJlZmVyZW5jZXMudGFiX3NpemUpOworICAgICAgICBz ZWxmLnNxbEN0cmwuc2V0T3B0aW9uKCdsaW5lV3JhcHBpbmcnLCBzcWxFZGl0UHJlZmVyZW5jZXMu d3JhcF9jb2RlKTsKKyAgICAgICAgc2VsZi5zcWxDdHJsLnNldE9wdGlvbignYXV0b0Nsb3NlQnJh Y2tldHMnLCBzcWxFZGl0UHJlZmVyZW5jZXMuaW5zZXJ0X3BhaXJfYnJhY2tldHMpOworICAgICAg ICBzZWxmLnNxbEN0cmwuc2V0T3B0aW9uKCdtYXRjaEJyYWNrZXRzJywgc3FsRWRpdFByZWZlcmVu Y2VzLmJyYWNlX21hdGNoaW5nKTsKKyAgICAgICAgc2VsZi5zcWxDdHJsLnJlZnJlc2goKTsKKyAg ICAgIH0KKyAgICB9LAogICAgIHJlbmRlcjogZnVuY3Rpb24oKSB7CiAgICAgICBpZiAodGhpcy5z cWxDdHJsKSB7CiAgICAgICAgIHRoaXMuc3FsQ3RybC50b1RleHRBcmVhKCk7CkBAIC0xNDQ2LDEy ICsxNDYzLDE2IEBAIGRlZmluZShbCiAgICAgICAgICAgbW9kZTogJ3RleHQveC1wZ3NxbCcsCiAg ICAgICAgICAgcmVhZE9ubHk6IHRydWUsCiAgICAgICAgICAgZXh0cmFLZXlzOiBwZ0FkbWluLkJy b3dzZXIuZWRpdG9yX3Nob3J0Y3V0X2tleXMsCi0gICAgICAgICAgdGFiU2l6ZTogcGdBZG1pbi5C cm93c2VyLmVkaXRvcl9vcHRpb25zLnRhYlNpemUsCi0gICAgICAgICAgbGluZVdyYXBwaW5nOiBw Z0FkbWluLkJyb3dzZXIuZWRpdG9yX29wdGlvbnMud3JhcENvZGUsCi0gICAgICAgICAgYXV0b0Ns b3NlQnJhY2tldHM6IHBnQWRtaW4uQnJvd3Nlci5lZGl0b3Jfb3B0aW9ucy5pbnNlcnRfcGFpcl9i cmFja2V0cywKLSAgICAgICAgICBtYXRjaEJyYWNrZXRzOiBwZ0FkbWluLkJyb3dzZXIuZWRpdG9y X29wdGlvbnMuYnJhY2VfbWF0Y2hpbmcsCiAgICAgICAgIH0pOwogCisgICAgICB0aGlzLnJlZmxl Y3RQcmVmZXJlbmNlcygpOworCisgICAgICAvKiBDaGVjayBmb3Igc3FsIGVkaXRvciBwcmVmZXJl bmNlIGNoYW5nZXMgKi8KKyAgICAgIGxldCBzZWxmID0gdGhpczsKKyAgICAgIHBnQnJvd3Nlci5v blByZWZlcmVuY2VzQ2hhbmdlKCdzcWxlZGl0b3InLCBmdW5jdGlvbigpIHsKKyAgICAgICAgc2Vs Zi5yZWZsZWN0UHJlZmVyZW5jZXMoKTsKKyAgICAgIH0pOworCiAgICAgICAvKgogICAgICAgICog V2Ugd2lsbCBsaXN0ZW4gdG8gdGhlIHRhYiBjaGFuZ2UgZXZlbnQgdG8gY2hlY2ssIGlmIHRoZSBT UUwgdGFiIGhhcwogICAgICAgICogYmVlbiBjbGlja2VkIG9yLCBub3QuCkBAIC0xNTcxLDcgKzE1 OTIsNiBAQCBkZWZpbmUoWwogICApIHsKICAgICB2YXIgcHJvdG8gPSAoTW9kZWwgJiYgTW9kZWwu cHJvdG90eXBlKSB8fCBNb2RlbCwKICAgICAgIHNjaGVtYSA9IHN1YnNjaGVtYSB8fCAocHJvdG8g JiYgcHJvdG8uc2NoZW1hKSwKLSAgICAgIHBnQnJvd3NlciA9IHdpbmRvdy5wZ0FkbWluLkJyb3dz ZXIsCiAgICAgICBmaWVsZHMgPSBbXSwKICAgICAgIGdyb3VwSW5mbyA9IHt9OwogCkBAIC0yMDUx LDYgKzIwNzEsMjUgQEAgZGVmaW5lKFsKICAgICAgIHJldHVybiB0aGlzLnNxbEN0cmwuZ2V0VmFs dWUoKTsKICAgICB9LAogCisgICAgcmVmbGVjdFByZWZlcmVuY2VzOiBmdW5jdGlvbigpIHsKKyAg ICAgIHZhciBzZWxmID0gdGhpczsKKyAgICAgIC8qIHNlbGYuc3FsQ3RybCBpcyBudWxsIHdoZW4g RGVmaW5pdGlvbiB0YWIgaXMgbm90IGFjdGl2ZSAqLworICAgICAgaWYoc2VsZi5zcWxDdHJsKSB7 CisgICAgICAgIGxldCBzcWxFZGl0UHJlZmVyZW5jZXMgPSBwZ0FkbWluLkJyb3dzZXIuZ2V0X3By ZWZlcmVuY2VzX2Zvcl9tb2R1bGUoJ3NxbGVkaXRvcicpOworCisgICAgICAgICQoc2VsZi5zcWxD dHJsLmdldFdyYXBwZXJFbGVtZW50KCkpLmNzcygKKyAgICAgICAgICAnZm9udC1zaXplJyxTcWxF ZGl0b3JVdGlscy5jYWxjRm9udFNpemUoc3FsRWRpdFByZWZlcmVuY2VzLnNxbF9mb250X3NpemUp CisgICAgICAgICk7CisgICAgICAgIHNlbGYuc3FsQ3RybC5zZXRPcHRpb24oJ2luZGVudFdpdGhU YWJzJywgIXNxbEVkaXRQcmVmZXJlbmNlcy51c2Vfc3BhY2VzKTsKKyAgICAgICAgc2VsZi5zcWxD dHJsLnNldE9wdGlvbignaW5kZW50VW5pdCcsIHNxbEVkaXRQcmVmZXJlbmNlcy50YWJfc2l6ZSk7 CisgICAgICAgIHNlbGYuc3FsQ3RybC5zZXRPcHRpb24oJ3RhYlNpemUnLCBzcWxFZGl0UHJlZmVy ZW5jZXMudGFiX3NpemUpOworICAgICAgICBzZWxmLnNxbEN0cmwuc2V0T3B0aW9uKCdsaW5lV3Jh cHBpbmcnLCBzcWxFZGl0UHJlZmVyZW5jZXMud3JhcF9jb2RlKTsKKyAgICAgICAgc2VsZi5zcWxD dHJsLnNldE9wdGlvbignYXV0b0Nsb3NlQnJhY2tldHMnLCBzcWxFZGl0UHJlZmVyZW5jZXMuaW5z ZXJ0X3BhaXJfYnJhY2tldHMpOworICAgICAgICBzZWxmLnNxbEN0cmwuc2V0T3B0aW9uKCdtYXRj aEJyYWNrZXRzJywgc3FsRWRpdFByZWZlcmVuY2VzLmJyYWNlX21hdGNoaW5nKTsKKyAgICAgICAg c2VsZi5zcWxDdHJsLnJlZnJlc2goKTsKKyAgICAgIH0KKyAgICB9LAorCiAgICAgcmVuZGVyOiBm dW5jdGlvbigpIHsKICAgICAgIC8vIENsZWFuIHVwIHRoZSBleGlzdGluZyBzcWwgY29udHJvbAog ICAgICAgaWYgKHRoaXMuc3FsQ3RybCkgewpAQCAtMjA5MywxNCArMjEzMiwxNCBAQCBkZWZpbmUo WwogICAgICAgICAgIGxpbmVOdW1iZXJzOiB0cnVlLAogICAgICAgICAgIG1vZGU6ICd0ZXh0L3gt cGdzcWwnLAogICAgICAgICAgIGV4dHJhS2V5czogcGdBZG1pbi5Ccm93c2VyLmVkaXRvcl9zaG9y dGN1dF9rZXlzLAotICAgICAgICAgIGluZGVudFdpdGhUYWJzOiBwZ0FkbWluLkJyb3dzZXIuZWRp dG9yX29wdGlvbnMuaW5kZW50X3dpdGhfdGFicywKLSAgICAgICAgICBpbmRlbnRVbml0OiBwZ0Fk bWluLkJyb3dzZXIuZWRpdG9yX29wdGlvbnMudGFiU2l6ZSwKLSAgICAgICAgICB0YWJTaXplOiBw Z0FkbWluLkJyb3dzZXIuZWRpdG9yX29wdGlvbnMudGFiU2l6ZSwKLSAgICAgICAgICBsaW5lV3Jh cHBpbmc6IHBnQWRtaW4uQnJvd3Nlci5lZGl0b3Jfb3B0aW9ucy53cmFwQ29kZSwKLSAgICAgICAg ICBhdXRvQ2xvc2VCcmFja2V0czogcGdBZG1pbi5Ccm93c2VyLmVkaXRvcl9vcHRpb25zLmluc2Vy dF9wYWlyX2JyYWNrZXRzLAotICAgICAgICAgIG1hdGNoQnJhY2tldHM6IHBnQWRtaW4uQnJvd3Nl ci5lZGl0b3Jfb3B0aW9ucy5icmFjZV9tYXRjaGluZywKICAgICAgICAgfSk7CiAKKyAgICAgIHNl bGYucmVmbGVjdFByZWZlcmVuY2VzKCk7CisgICAgICAvKiBDaGVjayBmb3Igc3FsIGVkaXRvciBw cmVmZXJlbmNlIGNoYW5nZXMgKi8KKyAgICAgIHBnQnJvd3Nlci5vblByZWZlcmVuY2VzQ2hhbmdl KCdzcWxlZGl0b3InLCBmdW5jdGlvbigpIHsKKyAgICAgICAgc2VsZi5yZWZsZWN0UHJlZmVyZW5j ZXMoKTsKKyAgICAgIH0pOworCiAgICAgICAvLyBEaXNhYmxlIGVkaXRvcgogICAgICAgaWYgKGlz RGlzYWJsZWQpIHsKICAgICAgICAgLy8gc2V0IHJlYWQgb25seSBtb2RlIHRvIHRydWUgaW5zdGVh ZCBvZiAnbm9jdXJzb3InLCBhbmQgaGlkZSBjdXJzb3IgdXNpbmcgYSBjbGFzcyBzbyB0aGF0IGNv cHlpbmcgaXMgZW5hYmxlZApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2tleWJv YXJkX3Nob3J0Y3V0cy5qcyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9rZXlib2FyZF9zaG9ydGN1 dHMuanMKaW5kZXggMWZlMDdlOWIuLjU3ZDhhMzAzIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9z dGF0aWMvanMva2V5Ym9hcmRfc2hvcnRjdXRzLmpzCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy9rZXlib2FyZF9zaG9ydGN1dHMuanMKQEAgLTgsNiArOCw3IEBACiAvLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v LwogCiBpbXBvcnQgJCBmcm9tICdqcXVlcnknOworaW1wb3J0IGdldHRleHQgZnJvbSAnc291cmNl cy9nZXR0ZXh0JzsKIAogY29uc3QgUEVSSU9EX0tFWSA9IDE5MCwKICAgRldEX1NMQVNIX0tFWSA9 IDE5MSwKQEAgLTQ5LDYgKzUwLDUyIEBAIGZ1bmN0aW9uIGlzQ3RybEFsdEJvdGgoZXZlbnQpIHsK ICAgcmV0dXJuIGV2ZW50LmN0cmxLZXkgJiYgZXZlbnQuYWx0S2V5ICYmICFldmVudC5zaGlmdEtl eTsKIH0KIAorLyogUmV0dXJucyB0aGUga2V5IG9mIHNob3J0Y3V0ICovCitmdW5jdGlvbiBzaG9y dGN1dF9rZXkoc2hvcnRjdXQpIHsKKyAgbGV0IGtleSA9ICcnOworICBpZihzaG9ydGN1dFsna2V5 J10gJiYgc2hvcnRjdXRbJ2tleSddWydjaGFyJ10pIHsKKyAgICBrZXkgPSBzaG9ydGN1dFsna2V5 J11bJ2NoYXInXS50b1VwcGVyQ2FzZSgpOworICB9CisgIHJldHVybiBrZXk7Cit9CisKKy8qIENv bnZlcnRzIHNob3J0Y3V0IG9iamVjdCB0byB0aXRsZSByZXByZXNlbnRhdGlvbgorICogU2hvcnRj dXQgb2JqZWN0IGlzIGJyb3dzZXIuZ2V0X3ByZWZlcmVuY2UoKS52YWx1ZQorICovCitmdW5jdGlv biBzaG9ydGN1dF90aXRsZSh0aXRsZSwgc2hvcnRjdXQpIHsKKyAgbGV0IHRleHRfcmVwcmVzZW50 YXRpb24gPSAnJzsKKworICBpZiAodHlwZW9mIHNob3J0Y3V0ID09PSAndW5kZWZpbmVkJyB8fCBz aG9ydGN1dCA9PT0gbnVsbCkgeworICAgIHJldHVybiB0ZXh0X3JlcHJlc2VudGF0aW9uOworICB9 CisgIGlmKHNob3J0Y3V0WydhbHQnXSkgeworICAgIHRleHRfcmVwcmVzZW50YXRpb24gPSBnZXR0 ZXh0KCdBbHQnKSArICcrJzsKKyAgfQorICBpZihzaG9ydGN1dFsnc2hpZnQnXSkgeworICAgIHRl eHRfcmVwcmVzZW50YXRpb24gKz0gZ2V0dGV4dCgnU2hpZnQnKSArICcrJzsKKyAgfQorICBpZihz aG9ydGN1dFsnY29udHJvbCddKSB7CisgICAgdGV4dF9yZXByZXNlbnRhdGlvbiArPSBnZXR0ZXh0 KCdDdHJsJykgKyAnKyc7CisgIH0KKyAgdGV4dF9yZXByZXNlbnRhdGlvbiArPSBzaG9ydGN1dF9r ZXkoc2hvcnRjdXQpOworCisgIHJldHVybiBnZXR0ZXh0KCclKHRpdGxlKXMgKCUodGV4dF9yZXBy ZXNlbnRhdGlvbilzKScseworICAgICd0aXRsZSc6IHRpdGxlLAorICAgICd0ZXh0X3JlcHJlc2Vu dGF0aW9uJzogdGV4dF9yZXByZXNlbnRhdGlvbiwKKyAgfSk7Cit9CisKKy8qIFJldHVybnMgdGhl IGtleSBjaGFyIG9mIHNob3J0Y3V0CisgKiBzaG9ydGN1dCBvYmplY3QgaXMgYnJvd3Nlci5nZXRf cHJlZmVyZW5jZSgpLnZhbHVlCisgKi8KK2Z1bmN0aW9uIHNob3J0Y3V0X2FjY2Vzc2tleV90aXRs ZSh0aXRsZSwgc2hvcnRjdXQpIHsKKyAgcmV0dXJuIGdldHRleHQoJyUodGl0bGUpcyAoYWNjZXNz a2V5ICsgJShrZXkpcyknLHsKKyAgICAndGl0bGUnOiB0aXRsZSwKKyAgICAna2V5Jzogc2hvcnRj dXRfa2V5KHNob3J0Y3V0KSwKKyAgfSk7Cit9CisKKwogZnVuY3Rpb24gX3N0b3BFdmVudFByb3Bh Z2F0aW9uKGV2ZW50KSB7CiAgIGV2ZW50LmNhbmNlbEJ1YmJsZSA9IHRydWU7CiAgIGV2ZW50LnBy ZXZlbnREZWZhdWx0KCk7CkBAIC0xMjQsMTkgKzE3MSwxOSBAQCBmdW5jdGlvbiBnZXRJbm5lclBh bmVsKCRlbCwgZGlyZWN0aW9uKSB7CiAKIC8qIFF1ZXJ5IHRvb2w6IEtleWJvYXJkIFNob3J0Y3V0 cyBoYW5kbGluZyAqLwogZnVuY3Rpb24ga2V5Ym9hcmRTaG9ydGN1dHNRdWVyeVRvb2woCi0gIHNx bEVkaXRvckNvbnRyb2xsZXIsIGtleWJvYXJkU2hvcnRjdXRDb25maWcsIHF1ZXJ5VG9vbEFjdGlv bnMsIGV2ZW50CisgIHNxbEVkaXRvckNvbnRyb2xsZXIsIHF1ZXJ5VG9vbEFjdGlvbnMsIGV2ZW50 CiApIHsKICAgaWYgKHNxbEVkaXRvckNvbnRyb2xsZXIuaXNRdWVyeVJ1bm5pbmcoKSkgewogICAg IHJldHVybjsKICAgfQogICBsZXQga2V5Q29kZSA9IGV2ZW50LndoaWNoIHx8IGV2ZW50LmtleUNv ZGUsIHBhbmVsX2lkOwotICBsZXQgZXhlY3V0ZUtleXMgPSBrZXlib2FyZFNob3J0Y3V0Q29uZmln WydleGVjdXRlJ107Ci0gIGxldCBleHBsYWluS2V5cyA9IGtleWJvYXJkU2hvcnRjdXRDb25maWdb J2V4cGxhaW4nXTsKLSAgbGV0IGV4cGxhaW5BbmFseXplS2V5cyA9IGtleWJvYXJkU2hvcnRjdXRD b25maWdbJ2V4cGxhaW5fYW5hbHl6ZSddOwotICBsZXQgZG93bmxvYWRDc3ZLZXlzID0ga2V5Ym9h cmRTaG9ydGN1dENvbmZpZ1snZG93bmxvYWRfY3N2J107Ci0gIGxldCBuZXh0UGFuZWxLZXlzID0g a2V5Ym9hcmRTaG9ydGN1dENvbmZpZ1snbW92ZV9uZXh0J107Ci0gIGxldCBwcmV2aW91c1BhbmVs S2V5cyA9IGtleWJvYXJkU2hvcnRjdXRDb25maWdbJ21vdmVfcHJldmlvdXMnXTsKLSAgbGV0IHRv Z2dsZUNhc2VLZXlzID0ga2V5Ym9hcmRTaG9ydGN1dENvbmZpZ1sndG9nZ2xlX2Nhc2UnXTsKKyAg bGV0IGV4ZWN1dGVLZXlzID0gc3FsRWRpdG9yQ29udHJvbGxlci5wcmVmZXJlbmNlcy5leGVjdXRl X3F1ZXJ5OworICBsZXQgZXhwbGFpbktleXMgPSBzcWxFZGl0b3JDb250cm9sbGVyLnByZWZlcmVu Y2VzLmV4cGxhaW5fcXVlcnk7CisgIGxldCBleHBsYWluQW5hbHl6ZUtleXMgPSBzcWxFZGl0b3JD b250cm9sbGVyLnByZWZlcmVuY2VzLmV4cGxhaW5fYW5hbHl6ZV9xdWVyeTsKKyAgbGV0IGRvd25s b2FkQ3N2S2V5cyA9IHNxbEVkaXRvckNvbnRyb2xsZXIucHJlZmVyZW5jZXMuZG93bmxvYWRfY3N2 OworICBsZXQgbmV4dFBhbmVsS2V5cyA9IHNxbEVkaXRvckNvbnRyb2xsZXIucHJlZmVyZW5jZXMu bW92ZV9uZXh0OworICBsZXQgcHJldmlvdXNQYW5lbEtleXMgPSBzcWxFZGl0b3JDb250cm9sbGVy LnByZWZlcmVuY2VzLm1vdmVfcHJldmlvdXM7CisgIGxldCB0b2dnbGVDYXNlS2V5cyA9IHNxbEVk aXRvckNvbnRyb2xsZXIucHJlZmVyZW5jZXMudG9nZ2xlX2Nhc2U7CiAKICAgaWYgKHRoaXMudmFs aWRhdGVTaG9ydGN1dEtleXMoZXhlY3V0ZUtleXMsIGV2ZW50KSkgewogICAgIHRoaXMuX3N0b3BF dmVudFByb3BhZ2F0aW9uKGV2ZW50KTsKQEAgLTI0NSw0ICsyOTIsNyBAQCBtb2R1bGUuZXhwb3J0 cyA9IHsKICAgaXNBbHRTaGlmdEJvdGg6IGlzQWx0U2hpZnRCb3RoLAogICBpc0N0cmxTaGlmdEJv dGg6IGlzQ3RybFNoaWZ0Qm90aCwKICAgaXNDdHJsQWx0Qm90aDogaXNDdHJsQWx0Qm90aCwKKyAg c2hvcnRjdXRfa2V5IDogc2hvcnRjdXRfa2V5LAorICBzaG9ydGN1dF90aXRsZSA6IHNob3J0Y3V0 X3RpdGxlLAorICBzaG9ydGN1dF9hY2Nlc3NrZXlfdGl0bGUgOiBzaG9ydGN1dF9hY2Nlc3NrZXlf dGl0bGUsCiB9OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9x dWVyeV90b29sX2FjdGlvbnMuanMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL3F1 ZXJ5X3Rvb2xfYWN0aW9ucy5qcwppbmRleCA0MTFjNmVkNS4uNmNiYmNlMGYgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3IvcXVlcnlfdG9vbF9hY3Rpb25zLmpzCisr KyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3IvcXVlcnlfdG9vbF9hY3Rpb25zLmpz CkBAIC0xMTksNTggKzExOSw2IEBAIGxldCBxdWVyeVRvb2xBY3Rpb25zID0gewogICAgIHdpbmRv dy50b3AuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCk7CiAgIH0sCiAKLSAgZ2V0S2V5Ym9h cmRTaG9ydGN1dHM6IGZ1bmN0aW9uIChzcWxFZGl0b3JDb250cm9sbGVyKSB7Ci0gICAgbGV0IGV4 ZWN1dGVRdWVyeVByZWYgPSB3aW5kb3cudG9wLnBnQWRtaW4uQnJvd3Nlci5nZXRfcHJlZmVyZW5j ZSgKLSAgICAgICdzcWxlZGl0b3InLCAnZXhlY3V0ZV9xdWVyeScpOwotICAgIGxldCBleHBsYWlu UXVlcnlQcmVmID0gd2luZG93LnRvcC5wZ0FkbWluLkJyb3dzZXIuZ2V0X3ByZWZlcmVuY2UoCi0g ICAgICAnc3FsZWRpdG9yJywgJ2V4cGxhaW5fcXVlcnknKTsKLSAgICBsZXQgZXhwbGFpbkFuYWx5 emVRdWVyeVByZWYgPSB3aW5kb3cudG9wLnBnQWRtaW4uQnJvd3Nlci5nZXRfcHJlZmVyZW5jZSgK LSAgICAgICdzcWxlZGl0b3InLCAnZXhwbGFpbl9hbmFseXplX3F1ZXJ5Jyk7Ci0gICAgbGV0IGRv d25sb2FkQ3N2UHJlZiA9IHdpbmRvdy50b3AucGdBZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNl KAotICAgICAgJ3NxbGVkaXRvcicsICdkb3dubG9hZF9jc3YnKTsKLSAgICBsZXQgbmV4dFBhbmVs UGVyZiA9IHdpbmRvdy50b3AucGdBZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNlKAotICAgICAg J3NxbGVkaXRvcicsICdtb3ZlX25leHQnKTsKLSAgICBsZXQgcHJldmlvdXNQYW5lbFBlcmYgPSB3 aW5kb3cudG9wLnBnQWRtaW4uQnJvd3Nlci5nZXRfcHJlZmVyZW5jZSgKLSAgICAgICdzcWxlZGl0 b3InLCAnbW92ZV9wcmV2aW91cycpOwotICAgIGxldCB0b2dnbGVDYXNlUGVyZiA9IHdpbmRvdy50 b3AucGdBZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNlKAotICAgICAgJ3NxbGVkaXRvcicsICd0 b2dnbGVfY2FzZScpOwotCi0gICAgaWYoIWV4ZWN1dGVRdWVyeVByZWYgJiYgc3FsRWRpdG9yQ29u dHJvbGxlci5oYW5kbGVyLmlzX25ld19icm93c2VyX3RhYikgewotICAgICAgZXhlY3V0ZVF1ZXJ5 UHJlZiA9IHdpbmRvdy5vcGVuZXIucGdBZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNlKAotICAg ICAgICAnc3FsZWRpdG9yJywgJ2V4ZWN1dGVfcXVlcnknCi0gICAgICApLAotICAgICAgZXhwbGFp blF1ZXJ5UHJlZiA9IHdpbmRvdy5vcGVuZXIucGdBZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNl KAotICAgICAgICAnc3FsZWRpdG9yJywgJ2V4cGxhaW5fcXVlcnknCi0gICAgICApLAotICAgICAg ZXhwbGFpbkFuYWx5emVRdWVyeVByZWYgPSB3aW5kb3cub3BlbmVyLnBnQWRtaW4uQnJvd3Nlci5n ZXRfcHJlZmVyZW5jZSgKLSAgICAgICAgJ3NxbGVkaXRvcicsICdleHBsYWluX2FuYWx5emVfcXVl cnknCi0gICAgICApLAotICAgICAgZG93bmxvYWRDc3ZQcmVmID0gd2luZG93Lm9wZW5lci5wZ0Fk bWluLkJyb3dzZXIuZ2V0X3ByZWZlcmVuY2UoCi0gICAgICAgICdzcWxlZGl0b3InLCAnZG93bmxv YWRfY3N2JwotICAgICAgKSwKLSAgICAgIG5leHRQYW5lbFBlcmYgPSB3aW5kb3cub3BlbmVyLnBn QWRtaW4uQnJvd3Nlci5nZXRfcHJlZmVyZW5jZSgKLSAgICAgICAgJ3NxbGVkaXRvcicsICdtb3Zl X25leHQnCi0gICAgICApLAotICAgICAgcHJldmlvdXNQYW5lbFBlcmYgPSB3aW5kb3cub3BlbmVy LnBnQWRtaW4uQnJvd3Nlci5nZXRfcHJlZmVyZW5jZSgKLSAgICAgICAgJ3NxbGVkaXRvcicsICdt b3ZlX3ByZXZpb3VzJwotICAgICAgKSwKLSAgICAgIHRvZ2dsZUNhc2VQZXJmID0gd2luZG93Lm9w ZW5lci5wZ0FkbWluLkJyb3dzZXIuZ2V0X3ByZWZlcmVuY2UoCi0gICAgICAgICdzcWxlZGl0b3In LCAndG9nZ2xlX2Nhc2UnCi0gICAgICApOwotICAgIH0KLQotICAgIHJldHVybiB7Ci0gICAgICAn ZXhlY3V0ZSc6IGV4ZWN1dGVRdWVyeVByZWYudmFsdWUsCi0gICAgICAnZXhwbGFpbic6IGV4cGxh aW5RdWVyeVByZWYudmFsdWUsCi0gICAgICAnZXhwbGFpbl9hbmFseXplJzogZXhwbGFpbkFuYWx5 emVRdWVyeVByZWYudmFsdWUsCi0gICAgICAnZG93bmxvYWRfY3N2JzogZG93bmxvYWRDc3ZQcmVm LnZhbHVlLAotICAgICAgJ21vdmVfbmV4dCc6IG5leHRQYW5lbFBlcmYudmFsdWUsCi0gICAgICAn bW92ZV9wcmV2aW91cyc6IHByZXZpb3VzUGFuZWxQZXJmLnZhbHVlLAotICAgICAgJ3RvZ2dsZV9j YXNlJzogdG9nZ2xlQ2FzZVBlcmYudmFsdWUsCi0gICAgfTsKLQotICB9LAotCiAgIHRvZ2dsZUNh c2VPZlNlbGVjdGVkVGV4dDogZnVuY3Rpb24gKHNxbEVkaXRvckNvbnRyb2xsZXIpIHsKICAgICBs ZXQgY29kZU1pcnJvck9iaiA9IHNxbEVkaXRvckNvbnRyb2xsZXIuZ3JpZFZpZXcucXVlcnlfdG9v bF9vYmo7CiAgICAgbGV0IHNlbGVjdGVkVGV4dCA9IGNvZGVNaXJyb3JPYmouZ2V0U2VsZWN0aW9u KCk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL3F1ZXJ5X3Rv b2xfcHJlZmVyZW5jZXMuanMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL3F1ZXJ5 X3Rvb2xfcHJlZmVyZW5jZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAu LjNlZTJmMGJjCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVk aXRvci9xdWVyeV90b29sX3ByZWZlcmVuY2VzLmpzCkBAIC0wLDAgKzEsMTc5IEBACitpbXBvcnQg e3Nob3J0Y3V0X2tleSwgc2hvcnRjdXRfYWNjZXNza2V5X3RpdGxlLCBzaG9ydGN1dF90aXRsZX0K KyAgZnJvbSAnc291cmNlcy9rZXlib2FyZF9zaG9ydGN1dHMnOworaW1wb3J0ICogYXMgU3FsRWRp dG9yVXRpbHMgZnJvbSAnc291cmNlcy9zcWxlZGl0b3JfdXRpbHMnOworaW1wb3J0ICQgZnJvbSAn anF1ZXJ5JzsKKworZnVuY3Rpb24gcmVmbGVjdFByZWZlcmVuY2VzKHNxbEVkaXRvcikgeworICBs ZXQgJGVsID0gc3FsRWRpdG9yLiRlbCwKKyAgICBwcmVmZXJlbmNlcyA9IHNxbEVkaXRvci5wcmVm ZXJlbmNlczsKKworICBpZihzcWxFZGl0b3IuaGFuZGxlci5zbGlja2dyaWQpIHsKKyAgICBzcWxF ZGl0b3IuaGFuZGxlci5zbGlja2dyaWQuQ1NWT3B0aW9ucyA9IHsKKyAgICAgIHF1b3Rpbmc6IHNx bEVkaXRvci5wcmVmZXJlbmNlcy5yZXN1bHRzX2dyaWRfcXVvdGluZywKKyAgICAgIHF1b3RlX2No YXI6IHNxbEVkaXRvci5wcmVmZXJlbmNlcy5yZXN1bHRzX2dyaWRfcXVvdGVfY2hhciwKKyAgICAg IGZpZWxkX3NlcGFyYXRvcjogc3FsRWRpdG9yLnByZWZlcmVuY2VzLnJlc3VsdHNfZ3JpZF9maWVs ZF9zZXBhcmF0b3IsCisgICAgfTsKKyAgfQorCisgIC8qIEFjY2Vzc2VkIHVzaW5nIGFjY2Vzc2tl eSBkaXJlY3Qgdy9vIGN0cmwsYXRsLHNoaWZ0ICovCisgICRlbC5maW5kKCcjYnRuLWxvYWQtZmls ZScpCisgICAgLmF0dHIoJ3RpdGxlJywgc2hvcnRjdXRfYWNjZXNza2V5X3RpdGxlKCdPcGVuIEZp bGUnLHByZWZlcmVuY2VzLmJ0bl9vcGVuX2ZpbGUpKQorICAgIC5hdHRyKCdhY2Nlc3NrZXknLCBz aG9ydGN1dF9rZXkocHJlZmVyZW5jZXMuYnRuX29wZW5fZmlsZSkpOworCisgICRlbC5maW5kKCcj YnRuLXNhdmUnKQorICAgIC5hdHRyKCd0aXRsZScsIHNob3J0Y3V0X2FjY2Vzc2tleV90aXRsZSgn U2F2ZSBGaWxlJyxwcmVmZXJlbmNlcy5idG5fc2F2ZV9maWxlKSkKKyAgICAuYXR0cignYWNjZXNz a2V5Jywgc2hvcnRjdXRfa2V5KHByZWZlcmVuY2VzLmJ0bl9zYXZlX2ZpbGUpKTsKKworICAkZWwu ZmluZCgnI2J0bi1maW5kLW1lbnUtZHJvcGRvd24nKQorICAgIC5hdHRyKCd0aXRsZScsIHNob3J0 Y3V0X2FjY2Vzc2tleV90aXRsZSgnRmluZCcscHJlZmVyZW5jZXMuYnRuX2ZpbmRfb3B0aW9ucykp CisgICAgLmF0dHIoJ2FjY2Vzc2tleScsIHNob3J0Y3V0X2tleShwcmVmZXJlbmNlcy5idG5fZmlu ZF9vcHRpb25zKSk7CisKKyAgJGVsLmZpbmQoJyNidG4tY29weS1yb3cnKQorICAgIC5hdHRyKCd0 aXRsZScsIHNob3J0Y3V0X2FjY2Vzc2tleV90aXRsZSgnQ29weScscHJlZmVyZW5jZXMuYnRuX2Nv cHlfcm93KSkKKyAgICAuYXR0cignYWNjZXNza2V5Jywgc2hvcnRjdXRfa2V5KHByZWZlcmVuY2Vz LmJ0bl9jb3B5X3JvdykpOworCisgICRlbC5maW5kKCcjYnRuLXBhc3RlLXJvdycpCisgICAgLmF0 dHIoJ3RpdGxlJywgc2hvcnRjdXRfYWNjZXNza2V5X3RpdGxlKCdQYXN0ZScscHJlZmVyZW5jZXMu YnRuX3Bhc3RlX3JvdykpCisgICAgLmF0dHIoJ2FjY2Vzc2tleScsIHNob3J0Y3V0X2tleShwcmVm ZXJlbmNlcy5idG5fcGFzdGVfcm93KSk7CisKKyAgJGVsLmZpbmQoJyNidG4tZGVsZXRlLXJvdycp CisgICAgLmF0dHIoJ3RpdGxlJywgc2hvcnRjdXRfYWNjZXNza2V5X3RpdGxlKCdEZWxldGUnLHBy ZWZlcmVuY2VzLmJ0bl9kZWxldGVfcm93KSkKKyAgICAuYXR0cignYWNjZXNza2V5Jywgc2hvcnRj dXRfa2V5KHByZWZlcmVuY2VzLmJ0bl9kZWxldGVfcm93KSk7CisKKyAgJGVsLmZpbmQoJyNidG4t ZmlsdGVyJykKKyAgICAuYXR0cigndGl0bGUnLCBzaG9ydGN1dF9hY2Nlc3NrZXlfdGl0bGUoJ0Zp bHRlcicscHJlZmVyZW5jZXMuYnRuX2ZpbHRlcl9kaWFsb2cpKQorICAgIC5hdHRyKCdhY2Nlc3Nr ZXknLCBzaG9ydGN1dF9rZXkocHJlZmVyZW5jZXMuYnRuX2ZpbHRlcl9kaWFsb2cpKTsKKworICAk ZWwuZmluZCgnI2J0bi1maWx0ZXItZHJvcGRvd24nKQorICAgIC5hdHRyKCd0aXRsZScsIHNob3J0 Y3V0X2FjY2Vzc2tleV90aXRsZSgnRmlsdGVyIG9wdGlvbnMnLHByZWZlcmVuY2VzLmJ0bl9maWx0 ZXJfb3B0aW9ucykpCisgICAgLmF0dHIoJ2FjY2Vzc2tleScsIHNob3J0Y3V0X2tleShwcmVmZXJl bmNlcy5idG5fZmlsdGVyX29wdGlvbnMpKTsKKworICAkZWwuZmluZCgnI2J0bi1yb3dzLWxpbWl0 JykKKyAgICAuYXR0cigndGl0bGUnLCBzaG9ydGN1dF9hY2Nlc3NrZXlfdGl0bGUoJ1Jvd3MgbGlt aXQnLHByZWZlcmVuY2VzLmJ0bl9yb3dzX2xpbWl0KSkKKyAgICAuYXR0cignYWNjZXNza2V5Jywg c2hvcnRjdXRfa2V5KHByZWZlcmVuY2VzLmJ0bl9yb3dzX2xpbWl0KSk7CisKKyAgJGVsLmZpbmQo JyNidG4tcXVlcnktZHJvcGRvd24nKQorICAgIC5hdHRyKCd0aXRsZScsIHNob3J0Y3V0X2FjY2Vz c2tleV90aXRsZSgnRXhlY3V0ZSBvcHRpb25zJyxwcmVmZXJlbmNlcy5idG5fZXhlY3V0ZV9vcHRp b25zKSkKKyAgICAuYXR0cignYWNjZXNza2V5Jywgc2hvcnRjdXRfa2V5KHByZWZlcmVuY2VzLmJ0 bl9leGVjdXRlX29wdGlvbnMpKTsKKworICAkZWwuZmluZCgnI2J0bi1jYW5jZWwtcXVlcnknKQor ICAgIC5hdHRyKCd0aXRsZScsIHNob3J0Y3V0X2FjY2Vzc2tleV90aXRsZSgnQ2FuY2VsIHF1ZXJ5 JyxwcmVmZXJlbmNlcy5idG5fY2FuY2VsX3F1ZXJ5KSkKKyAgICAuYXR0cignYWNjZXNza2V5Jywg c2hvcnRjdXRfa2V5KHByZWZlcmVuY2VzLmJ0bl9jYW5jZWxfcXVlcnkpKTsKKworICAkZWwuZmlu ZCgnI2J0bi1jbGVhci1kcm9wZG93bicpCisgICAgLmF0dHIoJ3RpdGxlJywgc2hvcnRjdXRfYWNj ZXNza2V5X3RpdGxlKCdDbGVhcicscHJlZmVyZW5jZXMuYnRuX2NsZWFyX29wdGlvbnMpKQorICAg IC5hdHRyKCdhY2Nlc3NrZXknLCBzaG9ydGN1dF9rZXkocHJlZmVyZW5jZXMuYnRuX2NsZWFyX29w dGlvbnMpKTsKKworICAkZWwuZmluZCgnI2J0bi1jb25uLXN0YXR1cycpCisgICAgLmF0dHIoJ2Fj Y2Vzc2tleScsIHNob3J0Y3V0X2tleShwcmVmZXJlbmNlcy5idG5fY29ubl9zdGF0dXMpKQorICAg IC5maW5kKCdpJykKKyAgICAuYXR0cigndGl0bGUnLAorICAgICAgc2hvcnRjdXRfYWNjZXNza2V5 X3RpdGxlKCdDb25uZWN0aW9uIHN0YXR1cyAoY2xpY2sgZm9yIGRldGFpbHMpJywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwcmVmZXJlbmNlcy5idG5fY29ubl9zdGF0dXMpKTsKKworICAv KiBBY2Nlc3NlZCB1c2luZyBjdHJsLGF0bCxzaGlmdCBhbmQga2V5ICovCisgICRlbC5maW5kKCcj YnRuLWZsYXNoJykKKyAgICAuYXR0cigndGl0bGUnLAorICAgICAgc2hvcnRjdXRfdGl0bGUoJ0V4 ZWN1dGUvUmVmcmVzaCcscHJlZmVyZW5jZXMuZXhlY3V0ZV9xdWVyeSkpOworCisgICRlbC5maW5k KCcjYnRuLWZsYXNoLW1lbnUgc3BhbicpCisgICAgLnRleHQoc2hvcnRjdXRfdGl0bGUoJ0V4ZWN1 dGUvUmVmcmVzaCcscHJlZmVyZW5jZXMuZXhlY3V0ZV9xdWVyeSkpOworCisgICRlbC5maW5kKCcj YnRuLWV4cGxhaW4gc3BhbicpCisgICAgLnRleHQoc2hvcnRjdXRfdGl0bGUoJ0V4cGxhaW4nLHBy ZWZlcmVuY2VzLmV4cGxhaW5fcXVlcnkpKTsKKworICAkZWwuZmluZCgnI2J0bi1leHBsYWluLWFu YWx5emUgc3BhbicpCisgICAgLnRleHQoc2hvcnRjdXRfdGl0bGUoJ0V4cGxhaW4gQW5hbHl6ZScs cHJlZmVyZW5jZXMuZXhwbGFpbl9hbmFseXplX3F1ZXJ5KSk7CisKKyAgJGVsLmZpbmQoJyNidG4t ZG93bmxvYWQnKQorICAgIC5hdHRyKCd0aXRsZScsCisgICAgICBzaG9ydGN1dF90aXRsZSgnRG93 bmxvYWQgYXMgQ1NWJyxwcmVmZXJlbmNlcy5kb3dubG9hZF9jc3YpKTsKKworICAvKiBTZXQgQXV0 by1jb21taXQgYW5kIGF1dG8tcm9sbGJhY2sgb24gcXVlcnkgZWRpdG9yICovCisgIGlmIChwcmVm ZXJlbmNlcy5hdXRvX2NvbW1pdCkgeworICAgICRlbC5maW5kKCcuYXV0by1jb21taXQnKS5yZW1v dmVDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKKyAgfQorICBlbHNlIHsKKyAgICAkZWwuZmlu ZCgnLmF1dG8tY29tbWl0JykuYWRkQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7CisgIH0KKyAg aWYgKHByZWZlcmVuY2VzLmF1dG9fcm9sbGJhY2spIHsKKyAgICAkZWwuZmluZCgnLmF1dG8tcm9s bGJhY2snKS5yZW1vdmVDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKKyAgfQorICBlbHNlIHsK KyAgICAkZWwuZmluZCgnLmF1dG8tcm9sbGJhY2snKS5hZGRDbGFzcygndmlzaWJpbGl0eS1oaWRk ZW4nKTsKKyAgfQorCisgIC8qIFNldCBleHBsYWluIG9wdGlvbnMgb24gcXVlcnkgZWRpdG9yICov CisgIGlmIChwcmVmZXJlbmNlcy5leHBsYWluX3ZlcmJvc2UpeworICAgICRlbC5maW5kKCcuZXhw bGFpbi12ZXJib3NlJykucmVtb3ZlQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7CisgIH0KKyAg ZWxzZSB7CisgICAgJGVsLmZpbmQoJy5leHBsYWluLXZlcmJvc2UnKS5hZGRDbGFzcygndmlzaWJp bGl0eS1oaWRkZW4nKTsKKyAgfQorCisgIGlmIChwcmVmZXJlbmNlcy5leHBsYWluX2Nvc3RzKXsK KyAgICAkZWwuZmluZCgnLmV4cGxhaW4tY29zdHMnKS5yZW1vdmVDbGFzcygndmlzaWJpbGl0eS1o aWRkZW4nKTsKKyAgfQorICBlbHNlIHsKKyAgICAkZWwuZmluZCgnLmV4cGxhaW4tY29zdHMnKS5h ZGRDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKKyAgfQorCisgIGlmIChwcmVmZXJlbmNlcy5l eHBsYWluX2J1ZmZlcnMpeworICAgICRlbC5maW5kKCcuZXhwbGFpbi1idWZmZXJzJykucmVtb3Zl Q2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7CisgIH0KKyAgZWxzZSB7CisgICAgJGVsLmZpbmQo Jy5leHBsYWluLWJ1ZmZlcnMnKS5hZGRDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKKyAgfQor CisgIGlmIChwcmVmZXJlbmNlcy5leHBsYWluX3RpbWluZykgeworICAgICRlbC5maW5kKCcuZXhw bGFpbi10aW1pbmcnKS5yZW1vdmVDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKKyAgfQorICBl bHNlIHsKKyAgICAkZWwuZmluZCgnLmV4cGxhaW4tdGltaW5nJykuYWRkQ2xhc3MoJ3Zpc2liaWxp dHktaGlkZGVuJyk7CisgIH0KKworICAvKiBDb25uZWN0aW9uIHN0YXR1cyBjaGVjayAqLworICAv KiByZW1vdmUgdGhlIHN0YXR1cyBjaGVja2VyIGlmIHByZXNlbnQgKi8KKyAgaWYoc3FsRWRpdG9y LmNvbm5JbnRlcnZhbElkICE9IG51bGwpIHsKKyAgICBjbGVhckludGVydmFsKHNxbEVkaXRvci5j b25uSW50ZXJ2YWxJZCk7CisgICAgc3FsRWRpdG9yLmNvbm5JbnRlcnZhbElkID0gbnVsbDsKKyAg fQorICBpZiAocHJlZmVyZW5jZXMuY29ubmVjdGlvbl9zdGF0dXMpIHsKKyAgICBsZXQgJGNvbm5f c3RhdHVzID0gJGVsLmZpbmQoJyNidG4tY29ubi1zdGF0dXMnKSwKKyAgICAgICRzdGF0dXNfZWwg PSAkY29ubl9zdGF0dXMuZmluZCgnaScpOworICAgICRjb25uX3N0YXR1cy5wb3BvdmVyKCk7CisK KyAgICAkY29ubl9zdGF0dXMucmVtb3ZlQ2xhc3MoJ2Nvbm5lY3Rpb24tc3RhdHVzLWhpZGUnKTsK KyAgICAkZWwuZmluZCgnLmVkaXRvci10aXRsZScpLmFkZENsYXNzKCdlZGl0b3ItdGl0bGUtY29u bmVjdGlvbicpOworCisgICAgLy8gVG8gc2V0IGluaXRpYWwgY29ubmVjdGlvbgorICAgIFNxbEVk aXRvclV0aWxzLmZldGNoQ29ubmVjdGlvblN0YXR1cyhzcWxFZGl0b3IuaGFuZGxlciwgJGNvbm5f c3RhdHVzLCAkc3RhdHVzX2VsKTsKKworICAgIC8vIENhbGxpbmcgaXQgYWdhaW4gaW4gc3BlY2lm aWVkIGludGVydmFsCisgICAgc3FsRWRpdG9yLmNvbm5JbnRlcnZhbElkID0gIHNldEludGVydmFs KAorICAgICAgICBTcWxFZGl0b3JVdGlscy5mZXRjaENvbm5lY3Rpb25TdGF0dXMuYmluZChudWxs LCBzcWxFZGl0b3IuaGFuZGxlciwgJGNvbm5fc3RhdHVzLCAkc3RhdHVzX2VsKSwKKyAgICAgICAg cHJlZmVyZW5jZXMuY29ubmVjdGlvbl9zdGF0dXNfZmV0Y2hfdGltZSAqIDEwMDAKKyAgICApOwor ICB9CisgIGVsc2UgeworICAgICRlbC5maW5kKCcjYnRuLWNvbm4tc3RhdHVzJykuYWRkQ2xhc3Mo J2Nvbm5lY3Rpb24tc3RhdHVzLWhpZGUnKTsKKyAgICAkZWwuZmluZCgnLmVkaXRvci10aXRsZScp LnJlbW92ZUNsYXNzKCdlZGl0b3ItdGl0bGUtY29ubmVjdGlvbicpOworICB9CisKKyAgLyogQ29k ZSBNaXJyb3IgUHJlZmVyZW5jZXMgKi8KKyAgbGV0IHNxbF9mb250X3NpemUgPSBTcWxFZGl0b3JV dGlscy5jYWxjRm9udFNpemUocHJlZmVyZW5jZXMuc3FsX2ZvbnRfc2l6ZSk7CisgICQoc3FsRWRp dG9yLnF1ZXJ5X3Rvb2xfb2JqLmdldFdyYXBwZXJFbGVtZW50KCkpLmNzcygnZm9udC1zaXplJywg c3FsX2ZvbnRfc2l6ZSk7CisKKyAgc3FsRWRpdG9yLnF1ZXJ5X3Rvb2xfb2JqLnNldE9wdGlvbign aW5kZW50V2l0aFRhYnMnLCAhcHJlZmVyZW5jZXMudXNlX3NwYWNlcyk7CisgIHNxbEVkaXRvci5x dWVyeV90b29sX29iai5zZXRPcHRpb24oJ2luZGVudFVuaXQnLCBwcmVmZXJlbmNlcy50YWJfc2l6 ZSk7CisgIHNxbEVkaXRvci5xdWVyeV90b29sX29iai5zZXRPcHRpb24oJ3RhYlNpemUnLCBwcmVm ZXJlbmNlcy50YWJfc2l6ZSk7CisgIHNxbEVkaXRvci5xdWVyeV90b29sX29iai5zZXRPcHRpb24o J2xpbmVXcmFwcGluZycsIHByZWZlcmVuY2VzLndyYXBfY29kZSk7CisgIHNxbEVkaXRvci5xdWVy eV90b29sX29iai5zZXRPcHRpb24oJ2F1dG9DbG9zZUJyYWNrZXRzJywgcHJlZmVyZW5jZXMuaW5z ZXJ0X3BhaXJfYnJhY2tldHMpOworICBzcWxFZGl0b3IucXVlcnlfdG9vbF9vYmouc2V0T3B0aW9u KCdtYXRjaEJyYWNrZXRzJywgcHJlZmVyZW5jZXMuYnJhY2VfbWF0Y2hpbmcpOworICBzcWxFZGl0 b3IucXVlcnlfdG9vbF9vYmoucmVmcmVzaCgpOworCisgIC8qIFJlbmRlciBoaXN0b3J5IHRvIHJl ZmxlY3QgRm9udCBzaXplIGNoYW5nZSAqLworICBzcWxFZGl0b3IucmVuZGVyX2hpc3RvcnlfZ3Jp ZCgpOworfQorCitleHBvcnQge3JlZmxlY3RQcmVmZXJlbmNlc307CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yX3V0aWxzLmpzIGIvd2ViL3BnYWRtaW4vc3RhdGlj L2pzL3NxbGVkaXRvcl91dGlscy5qcwppbmRleCBiZTQxNTY2Zi4uMGZmZjFkOTUgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3JfdXRpbHMuanMKKysrIGIvd2ViL3Bn YWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvcl91dGlscy5qcwpAQCAtMTc4LDI0ICsxNzgsNiBAQCBk ZWZpbmUoWydqcXVlcnknLCAnc291cmNlcy9nZXR0ZXh0JywgJ3NvdXJjZXMvdXJsX2ZvciddLAog ICAgICAgICB9KTsKICAgICAgIH0sCiAKLSAgICAgIC8vIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRh dGUgdGhlIGNvbm5lY3Rpb24gc3RhdHVzCi0gICAgICB1cGRhdGVDb25uZWN0aW9uU3RhdHVzOiBm dW5jdGlvbih0YXJnZXQsIHBvbGxfdGltZSkgewotICAgICAgICB2YXIgJGVsID0gJCh0YXJnZXQu Z3JpZFZpZXcuJGVsLmZpbmQoJy5jb25uZWN0aW9uX3N0YXR1cycpKSwKLSAgICAgICAgICAkc3Rh dHVzX2VsID0gJCgkZWwuZmluZCgnLmZhLWN1c3RvbScpKTsKLQotICAgICAgICAvLyBBcHBseSBw b3BvdmVyIG9uIGVsZW1lbnQKLSAgICAgICAgJGVsLnBvcG92ZXIoKTsKLQotICAgICAgICAvLyBU byBzZXQgaW5pdGlhbCBjb25uZWN0aW9uIHN0YXR1c3NvdXJjZSRlbC5wb3BvdmVyKCkKLSAgICAg ICAgc3FsRWRpdG9yVXRpbHMuZmV0Y2hDb25uZWN0aW9uU3RhdHVzKHRhcmdldCwgJGVsLCAkc3Rh dHVzX2VsKTsKLQotICAgICAgICAvLyBDYWxsaW5nIGl0IGFnYWluIGluIHNwZWNpZmllZCBpbnRl cnZhbAotICAgICAgICBzZXRJbnRlcnZhbCgKLSAgICAgICAgICBzcWxFZGl0b3JVdGlscy5mZXRj aENvbm5lY3Rpb25TdGF0dXMuYmluZChudWxsLCB0YXJnZXQsICRlbCwgJHN0YXR1c19lbCksCi0g ICAgICAgICAgcG9sbF90aW1lICogMTAwMAotICAgICAgICApOwotICAgICAgfSwKLQogICAgICAg Ly8gVXBkYXRlcyB0aGUgZmxhZyBmb3IgY29ubmVjdGlvbiBzdGF0dXMgcG9sbAogICAgICAgdXBk YXRlQ29ubmVjdGlvblN0YXR1c0ZsYWc6IGZ1bmN0aW9uKHN0YXR1cykgewogICAgICAgICB2YXIg JGVsID0gJCgnLmNvbm5lY3Rpb25fc3RhdHVzJyk7CkBAIC0yMDMsNiArMTg1LDE1IEBAIGRlZmlu ZShbJ2pxdWVyeScsICdzb3VyY2VzL2dldHRleHQnLCAnc291cmNlcy91cmxfZm9yJ10sCiAgICAg ICAgICAgJGVsLmRhdGEoJ3BhbmVsLXZpc2libGUnLCBzdGF0dXMpOwogICAgICAgICB9CiAgICAg ICB9LAorCisgICAgICBjYWxjRm9udFNpemU6IGZ1bmN0aW9uKGZvbnRTaXplKSB7CisgICAgICAg IGlmKGZvbnRTaXplKSB7CisgICAgICAgICAgcmV0dXJuIE51bWJlcigoTWF0aC5yb3VuZChmb250 U2l6ZSArICdlKzInKSArICdlLTInKSkgKyAnZW0nOworICAgICAgICB9CisgICAgICAgIGVsc2Ug eworICAgICAgICAgIHJldHVybiAnMGVtJzsKKyAgICAgICAgfQorICAgICAgfSwKICAgICB9Owog ICAgIHJldHVybiBzcWxFZGl0b3JVdGlsczsKICAgfSk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9zdGF0aWMvanN4L2hpc3RvcnkvZGV0YWlsL2NvZGVfbWlycm9yLmpzeCBiL3dlYi9wZ2FkbWlu L3N0YXRpYy9qc3gvaGlzdG9yeS9kZXRhaWwvY29kZV9taXJyb3IuanN4CmluZGV4IDZlOTgyMTI4 Li4wMzhjYzIwMCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzeC9oaXN0b3J5L2Rl dGFpbC9jb2RlX21pcnJvci5qc3gKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzeC9oaXN0b3J5 L2RldGFpbC9jb2RlX21pcnJvci5qc3gKQEAgLTUwLDYgKzUwLDExIEBAIGV4cG9ydCBkZWZhdWx0 IGNsYXNzIENvZGVNaXJyb3IgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewogICAgIE9iamVjdC5r ZXlzKHByb3BzLm9wdGlvbnMgfHwge30pLmZvckVhY2goa2V5ID0+IHRoaXMuZWRpdG9yLnNldE9w dGlvbihrZXksIHByb3BzLm9wdGlvbnNba2V5XSkpOwogCiAgICAgdGhpcy5lZGl0b3Iuc2V0VmFs dWUocHJvcHMudmFsdWUgfHwgJycpOworCisgICAgaWYocHJvcHMuc3FsRm9udFNpemUpIHsKKyAg ICAgICQodGhpcy5lZGl0b3IuZ2V0V3JhcHBlckVsZW1lbnQoKSkuY3NzKCdmb250LXNpemUnLCBw cm9wcy5zcWxGb250U2l6ZSk7CisgICAgfQorCiAgICAgdGhpcy5lZGl0b3IucmVmcmVzaCgpOwog ICB9CiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qc3gvaGlzdG9yeS9kZXRhaWwv aGlzdG9yeV9kZXRhaWxfcXVlcnkuanN4IGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzeC9oaXN0b3J5 L2RldGFpbC9oaXN0b3J5X2RldGFpbF9xdWVyeS5qc3gKaW5kZXggZGNlMzQ2MDcuLmVhZTU1ZGVl IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvanN4L2hpc3RvcnkvZGV0YWlsL2hpc3Rv cnlfZGV0YWlsX3F1ZXJ5LmpzeAorKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanN4L2hpc3Rvcnkv ZGV0YWlsL2hpc3RvcnlfZGV0YWlsX3F1ZXJ5LmpzeApAQCAtNjQsNiArNjQsNyBAQCBleHBvcnQg ZGVmYXVsdCBjbGFzcyBIaXN0b3J5RGV0YWlsUXVlcnkgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQg ewogICAgICAgICAgICAgbW9kZTogJ3RleHQveC1wZ3NxbCcsCiAgICAgICAgICAgICByZWFkT25s eTogdHJ1ZSwKICAgICAgICAgICB9fQorICAgICAgICAgIHNxbEZvbnRTaXplPSB7dGhpcy5wcm9w cy5zcWxFZGl0b3JQcmVmLnNxbF9mb250X3NpemV9CiAgICAgICAgIC8+CiAgICAgICA8L2Rpdj4p OwogICB9CkBAIC03MSw0ICs3Miw1IEBAIGV4cG9ydCBkZWZhdWx0IGNsYXNzIEhpc3RvcnlEZXRh aWxRdWVyeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7CiAKIEhpc3RvcnlEZXRhaWxRdWVyeS5w cm9wVHlwZXMgPSB7CiAgIGhpc3RvcnlFbnRyeTogU2hhcGVzLmhpc3RvcnlEZXRhaWwsCisgIHNx bEVkaXRvclByZWY6IFNoYXBlcy5zcWxFZGl0b3JQcmVmT2JqLAogfTsKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL3N0YXRpYy9qc3gvaGlzdG9yeS9xdWVyeV9oaXN0b3J5LmpzeCBiL3dlYi9wZ2Fk bWluL3N0YXRpYy9qc3gvaGlzdG9yeS9xdWVyeV9oaXN0b3J5LmpzeAppbmRleCAzYzA3YjViZC4u OGI1ZmZkMmEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qc3gvaGlzdG9yeS9xdWVy eV9oaXN0b3J5LmpzeAorKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanN4L2hpc3RvcnkvcXVlcnlf aGlzdG9yeS5qc3gKQEAgLTk3LDEzICs5NywxNiBAQCBleHBvcnQgZGVmYXVsdCBjbGFzcyBRdWVy eUhpc3RvcnkgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewogICAgICAgICAgIHNlbGVjdGVkRW50 cnk9e3RoaXMuc3RhdGUuc2VsZWN0ZWRFbnRyeX0KICAgICAgICAgICBvblNlbGVjdEVudHJ5PXt0 aGlzLnNlbGVjdEhpc3RvcnlFbnRyeX0KICAgICAgICAgLz4KLSAgICAgICAgPFF1ZXJ5SGlzdG9y eURldGFpbCBoaXN0b3J5RW50cnk9e3RoaXMuc3RhdGUuY3VycmVudEhpc3RvcnlEZXRhaWx9Lz4K KyAgICAgICAgPFF1ZXJ5SGlzdG9yeURldGFpbCBoaXN0b3J5RW50cnk9e3RoaXMuc3RhdGUuY3Vy cmVudEhpc3RvcnlEZXRhaWx9CisgICAgICAgICAgICBzcWxFZGl0b3JQcmVmPXt0aGlzLnByb3Bz LnNxbEVkaXRvclByZWZ9CisgICAgICAgIC8+CiAgICAgICA8L1NwbGl0UGFuZT4pOwogICB9CiB9 CiAKIFF1ZXJ5SGlzdG9yeS5wcm9wVHlwZXMgPSB7CiAgIGhpc3RvcnlDb2xsZWN0aW9uOiBTaGFw ZXMuaGlzdG9yeUNvbGxlY3Rpb25DbGFzcy5pc1JlcXVpcmVkLAorICBzcWxFZGl0b3JQcmVmOiBT aGFwZXMuc3FsRWRpdG9yUHJlZk9iaiwKIH07CiAKIGV4cG9ydCB7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9zdGF0aWMvanN4L3JlYWN0X3NoYXBlcy5qc3ggYi93ZWIvcGdhZG1pbi9zdGF0aWMv anN4L3JlYWN0X3NoYXBlcy5qc3gKaW5kZXggNDU0YWI0NDYuLmY4OTQ4YjVmIDEwMDY0NAotLS0g YS93ZWIvcGdhZG1pbi9zdGF0aWMvanN4L3JlYWN0X3NoYXBlcy5qc3gKKysrIGIvd2ViL3BnYWRt aW4vc3RhdGljL2pzeC9yZWFjdF9zaGFwZXMuanN4CkBAIC0yNSw3ICsyNSwxMyBAQCBsZXQgaGlz dG9yeUNvbGxlY3Rpb25DbGFzcyA9CiAgICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVx dWlyZWQsCiAgIH0pOwogCitsZXQgc3FsRWRpdG9yUHJlZk9iaiA9CisgIFByb3BUeXBlcy5zaGFw ZSh7CisgICAgc3FsX2ZvbnRfc2l6ZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLAorICB9 KTsKKwogZXhwb3J0IGRlZmF1bHQgewogICBoaXN0b3J5RGV0YWlsLAogICBoaXN0b3J5Q29sbGVj dGlvbkNsYXNzLAorICBzcWxFZGl0b3JQcmVmT2JqLAogfTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL3Rvb2xzL2RhdGFncmlkL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdy aWQvX19pbml0X18ucHkKaW5kZXggZDNjM2JmOWMuLjA0ZTJhNjgzIDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi90b29scy9kYXRhZ3JpZC9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi90b29s cy9kYXRhZ3JpZC9fX2luaXRfXy5weQpAQCAtMjQsMTIgKzI0LDkgQEAgZnJvbSBwZ2FkbWluLnV0 aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25zZSwgYmFkX3JlcXVlc3QsIFwKICAgICBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IKIAogZnJvbSBjb25maWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJ VkVSCi1mcm9tIHBnYWRtaW4udXRpbHMucHJlZmVyZW5jZXMgaW1wb3J0IFByZWZlcmVuY2VzCiBm cm9tIHBnYWRtaW4ubW9kZWwgaW1wb3J0IFNlcnZlcgogZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZl ciBpbXBvcnQgZ2V0X2RyaXZlcgogZnJvbSBwZ2FkbWluLnV0aWxzLmV4Y2VwdGlvbiBpbXBvcnQg Q29ubmVjdGlvbkxvc3QsIFNTSFR1bm5lbENvbm5lY3Rpb25Mb3N0Ci1mcm9tIHBnYWRtaW4udG9v bHMuc3FsZWRpdG9yLnV0aWxzLnF1ZXJ5X3Rvb2xfcHJlZmVyZW5jZXMgaW1wb3J0IFwKLSAgICBn ZXRfcXVlcnlfdG9vbF9rZXlib2FyZF9zaG9ydGN1dHMsIGdldF90ZXh0X3JlcHJlc2VudGF0aW9u X29mX3Nob3J0Y3V0CiAKIAogY2xhc3MgRGF0YUdyaWRNb2R1bGUoUGdBZG1pbk1vZHVsZSk6CkBA IC0xODQsMTMgKzE4MSw5IEBAIGRlZiBpbml0aWFsaXplX2RhdGFncmlkKGNtZF90eXBlLCBvYmpf dHlwZSwgc2dpZCwgc2lkLCBkaWQsIG9ial9pZCk6CiAgICAgIyBTdG9yZSB0aGUgZ3JpZCBkaWN0 aW9uYXJ5IGludG8gdGhlIHNlc3Npb24gdmFyaWFibGUKICAgICBzZXNzaW9uWydncmlkRGF0YSdd ID0gc3FsX2dyaWRfZGF0YQogCi0gICAgcHJlZiA9IFByZWZlcmVuY2VzLm1vZHVsZSgnc3FsZWRp dG9yJykKLSAgICBuZXdfYnJvd3Nlcl90YWIgPSBwcmVmLnByZWZlcmVuY2UoJ25ld19icm93c2Vy X3RhYicpLmdldCgpCi0KICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAogICAgICAgICBk YXRhPXsKLSAgICAgICAgICAgICdncmlkVHJhbnNJZCc6IHRyYW5zX2lkLAotICAgICAgICAgICAg J25ld0Jyb3dzZXJUYWInOiBuZXdfYnJvd3Nlcl90YWIKKyAgICAgICAgICAgICdncmlkVHJhbnNJ ZCc6IHRyYW5zX2lkCiAgICAgICAgIH0KICAgICApCiAKQEAgLTI0NiwxMiArMjM5LDYgQEAgZGVm IHBhbmVsKHRyYW5zX2lkLCBpc19xdWVyeV90b29sLCBlZGl0b3JfdGl0bGUpOgogICAgIGlmICJs aW51eCIgaW4gX3BsYXRmb3JtOgogICAgICAgICBpc19saW51eF9wbGF0Zm9ybSA9IFRydWUKIAot ICAgIHByZWYgPSBQcmVmZXJlbmNlcy5tb2R1bGUoJ3NxbGVkaXRvcicpCi0gICAgaWYgcHJlZi5w cmVmZXJlbmNlKCduZXdfYnJvd3Nlcl90YWInKS5nZXQoKToKLSAgICAgICAgbmV3X2Jyb3dzZXJf dGFiID0gJ3RydWUnCi0gICAgZWxzZToKLSAgICAgICAgbmV3X2Jyb3dzZXJfdGFiID0gJ2ZhbHNl JwotCiAgICAgIyBGZXRjaCB0aGUgc2VydmVyIGRldGFpbHMKICAgICBiZ2NvbG9yID0gTm9uZQog ICAgIGZnY29sb3IgPSBOb25lCkBAIC0yNzEsMTYgKzI1OCwxMCBAQCBkZWYgcGFuZWwodHJhbnNf aWQsIGlzX3F1ZXJ5X3Rvb2wsIGVkaXRvcl90aXRsZSk6CiAKICAgICB1cmxfcGFyYW1zID0gZGlj dCgpCiAgICAgaWYgaXNfcXVlcnlfdG9vbCA9PSAndHJ1ZSc6Ci0gICAgICAgIHByb21wdF9zYXZl X2NoYW5nZXMgPSBwcmVmLnByZWZlcmVuY2UoCi0gICAgICAgICAgICAncHJvbXB0X3NhdmVfcXVl cnlfY2hhbmdlcycKLSAgICAgICAgKS5nZXQoKQogICAgICAgICB1cmxfcGFyYW1zWydzZ2lkJ10g PSB0cmFuc19vYmouc2dpZAogICAgICAgICB1cmxfcGFyYW1zWydzaWQnXSA9IHRyYW5zX29iai5z aWQKICAgICAgICAgdXJsX3BhcmFtc1snZGlkJ10gPSB0cmFuc19vYmouZGlkCiAgICAgZWxzZToK LSAgICAgICAgcHJvbXB0X3NhdmVfY2hhbmdlcyA9IHByZWYucHJlZmVyZW5jZSgKLSAgICAgICAg ICAgICdwcm9tcHRfc2F2ZV9kYXRhX2NoYW5nZXMnCi0gICAgICAgICkuZ2V0KCkKICAgICAgICAg dXJsX3BhcmFtc1snY21kX3R5cGUnXSA9IHRyYW5zX29iai5jbWRfdHlwZQogICAgICAgICB1cmxf cGFyYW1zWydvYmpfdHlwZSddID0gdHJhbnNfb2JqLm9iamVjdF90eXBlCiAgICAgICAgIHVybF9w YXJhbXNbJ3NnaWQnXSA9IHRyYW5zX29iai5zZ2lkCkBAIC0yODgsOSArMjY5LDYgQEAgZGVmIHBh bmVsKHRyYW5zX2lkLCBpc19xdWVyeV90b29sLCBlZGl0b3JfdGl0bGUpOgogICAgICAgICB1cmxf cGFyYW1zWydkaWQnXSA9IHRyYW5zX29iai5kaWQKICAgICAgICAgdXJsX3BhcmFtc1snb2JqX2lk J10gPSB0cmFuc19vYmoub2JqX2lkCiAKLSAgICBkaXNwbGF5X2Nvbm5lY3Rpb25fc3RhdHVzID0g cHJlZi5wcmVmZXJlbmNlKCdjb25uZWN0aW9uX3N0YXR1cycpLmdldCgpCi0gICAgcXVlcnlUb29s U2hvcnRjdXRzID0gZ2V0X3F1ZXJ5X3Rvb2xfa2V5Ym9hcmRfc2hvcnRjdXRzKCkKLQogICAgIHJl dHVybiByZW5kZXJfdGVtcGxhdGUoCiAgICAgICAgICJkYXRhZ3JpZC9pbmRleC5odG1sIiwKICAg ICAgICAgXz1nZXR0ZXh0LApAQCAtMzAwLDE5ICsyNzgsMTEgQEAgZGVmIHBhbmVsKHRyYW5zX2lk LCBpc19xdWVyeV90b29sLCBlZGl0b3JfdGl0bGUpOgogICAgICAgICBzY3JpcHRfdHlwZV91cmw9 c1VSTCwKICAgICAgICAgaXNfZGVza3RvcF9tb2RlPWFwcC5QR0FETUlOX1JVTlRJTUUsCiAgICAg ICAgIGlzX2xpbnV4PWlzX2xpbnV4X3BsYXRmb3JtLAotICAgICAgICBpc19uZXdfYnJvd3Nlcl90 YWI9bmV3X2Jyb3dzZXJfdGFiLAogICAgICAgICBzZXJ2ZXJfdHlwZT1zZXJ2ZXJfdHlwZSwKICAg ICAgICAgY2xpZW50X3BsYXRmb3JtPXVzZXJfYWdlbnQucGxhdGZvcm0sCiAgICAgICAgIGJnY29s b3I9Ymdjb2xvciwKICAgICAgICAgZmdjb2xvcj1mZ2NvbG9yLAotICAgICAgICAjIGNvbnZlcnQg cHl0aG9uIGJvb2xlYW4gdmFsdWUgdG8gZXF1aXZhbGVudCBqcyBib29sZWFuIGxpdGVyYWwKLSAg ICAgICAgIyBiZWZvcmUgcGFzc2luZyBpdCB0byBodG1sIHRlbXBsYXRlLgotICAgICAgICBwcm9t cHRfc2F2ZV9jaGFuZ2VzPSd0cnVlJyBpZiBwcm9tcHRfc2F2ZV9jaGFuZ2VzIGVsc2UgJ2ZhbHNl JywKLSAgICAgICAgZGlzcGxheV9jb25uZWN0aW9uX3N0YXR1cz1kaXNwbGF5X2Nvbm5lY3Rpb25f c3RhdHVzLAotICAgICAgICB1cmxfcGFyYW1zPWpzb24uZHVtcHModXJsX3BhcmFtcyksCi0gICAg ICAgIGtleT1xdWVyeVRvb2xTaG9ydGN1dHMuZ2V0KCdrZXlzJyksCi0gICAgICAgIHNob3J0Y3V0 cz1xdWVyeVRvb2xTaG9ydGN1dHMuZ2V0KCdzaG9ydGN1dHMnKSwKLSAgICAgICAgZ2V0X3Nob3J0 Y3V0X3RleHQ9Z2V0X3RleHRfcmVwcmVzZW50YXRpb25fb2Zfc2hvcnRjdXQKKyAgICAgICAgdXJs X3BhcmFtcz1qc29uLmR1bXBzKHVybF9wYXJhbXMpCiAgICAgKQogCiAKQEAgLTM4NywxMyArMzU3 LDkgQEAgZGVmIGluaXRpYWxpemVfcXVlcnlfdG9vbChzZ2lkLCBzaWQsIGRpZD1Ob25lKToKICAg ICAjIFN0b3JlIHRoZSBncmlkIGRpY3Rpb25hcnkgaW50byB0aGUgc2Vzc2lvbiB2YXJpYWJsZQog ICAgIHNlc3Npb25bJ2dyaWREYXRhJ10gPSBzcWxfZ3JpZF9kYXRhCiAKLSAgICBwcmVmID0gUHJl ZmVyZW5jZXMubW9kdWxlKCdzcWxlZGl0b3InKQotICAgIG5ld19icm93c2VyX3RhYiA9IHByZWYu cHJlZmVyZW5jZSgnbmV3X2Jyb3dzZXJfdGFiJykuZ2V0KCkKLQogICAgIHJldHVybiBtYWtlX2pz b25fcmVzcG9uc2UoCiAgICAgICAgIGRhdGE9ewotICAgICAgICAgICAgJ2dyaWRUcmFuc0lkJzog dHJhbnNfaWQsCi0gICAgICAgICAgICAnbmV3QnJvd3NlclRhYic6IG5ld19icm93c2VyX3RhYgor ICAgICAgICAgICAgJ2dyaWRUcmFuc0lkJzogdHJhbnNfaWQKICAgICAgICAgfQogICAgICkKIApk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvc3RhdGljL2pzL2RhdGFncmlk LmpzIGIvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvc3RhdGljL2pzL2RhdGFncmlkLmpzCmlu ZGV4IGM3MzBiMTgwLi5iYzY2YmE2ZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0 YWdyaWQvc3RhdGljL2pzL2RhdGFncmlkLmpzCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFn cmlkL3N0YXRpYy9qcy9kYXRhZ3JpZC5qcwpAQCAtMjksNiArMjksMjMgQEAgZGVmaW5lKCdwZ2Fk bWluLmRhdGFncmlkJywgWwogICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTsKICAgICAg ICAgdGhpcy50aXRsZV9pbmRleCA9IDE7CiAKKyAgICAgICAgLyogQ2FjaGUgbWF5IHRha2UgdGlt ZSB0byBsb2FkIGZvciB0aGUgZmlyc3QgdGltZQorICAgICAgICAgKiBLZWVwIHRyeWluZyB0aWxs IGF2YWlsYWJsZQorICAgICAgICAgKi8KKyAgICAgICAgbGV0IGNhY2hlSW50ZXJ2YWxJZCA9IHNl dEludGVydmFsKCgpPT4geworICAgICAgICAgIHRoaXMucHJlZmVyZW5jZXMgPSBwZ0Jyb3dzZXIu Z2V0X3ByZWZlcmVuY2VzX2Zvcl9tb2R1bGUoJ3NxbGVkaXRvcicpOworICAgICAgICAgIGlmKHRo aXMucHJlZmVyZW5jZXMpIHsKKyAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoY2FjaGVJbnRlcnZh bElkKTsKKyAgICAgICAgICB9CisgICAgICAgIH0pOworCisKKyAgICAgICAgbGV0IHNlbGYgPSB0 aGlzOworICAgICAgICBwZ0Jyb3dzZXIub25QcmVmZXJlbmNlc0NoYW5nZSgnc3FsZWRpdG9yJywg ZnVuY3Rpb24oKSB7CisgICAgICAgICAgc2VsZi5wcmVmZXJlbmNlcyA9IHBnQnJvd3Nlci5nZXRf cHJlZmVyZW5jZXNfZm9yX21vZHVsZSgnc3FsZWRpdG9yJyk7CisgICAgICAgIH0pOworCisKICAg ICAgICAgdGhpcy5zcGlubmVyX2VsID0gJzxkaXYgY2xhc3M9IndjTG9hZGluZ0NvbnRhaW5lciI+ JysKICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9IndjTG9hZGluZ0JhY2tncm91bmQiPjwvZGl2 PicrCiAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9IndjTG9hZGluZ0ljb25Db250YWluZXIi PicrCkBAIC0yNzksMTIgKzI5NiwxMiBAQCBkZWZpbmUoJ3BnYWRtaW4uZGF0YWdyaWQnLCBbCiAg ICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyczogdHJ1ZSwKICAgICAgICAgICAgICAgICAgIG1v ZGU6ICd0ZXh0L3gtcGdzcWwnLAogICAgICAgICAgICAgICAgICAgZXh0cmFLZXlzOiBwZ0Jyb3dz ZXIuZWRpdG9yX3Nob3J0Y3V0X2tleXMsCi0gICAgICAgICAgICAgICAgICBpbmRlbnRXaXRoVGFi czogcGdBZG1pbi5Ccm93c2VyLmVkaXRvcl9vcHRpb25zLmluZGVudF93aXRoX3RhYnMsCi0gICAg ICAgICAgICAgICAgICBpbmRlbnRVbml0OiBwZ0FkbWluLkJyb3dzZXIuZWRpdG9yX29wdGlvbnMu dGFiU2l6ZSwKLSAgICAgICAgICAgICAgICAgIHRhYlNpemU6IHBnQnJvd3Nlci5lZGl0b3Jfb3B0 aW9ucy50YWJTaXplLAotICAgICAgICAgICAgICAgICAgbGluZVdyYXBwaW5nOiBwZ0FkbWluLkJy b3dzZXIuZWRpdG9yX29wdGlvbnMud3JhcENvZGUsCi0gICAgICAgICAgICAgICAgICBhdXRvQ2xv c2VCcmFja2V0czogcGdBZG1pbi5Ccm93c2VyLmVkaXRvcl9vcHRpb25zLmluc2VydF9wYWlyX2Jy YWNrZXRzLAotICAgICAgICAgICAgICAgICAgbWF0Y2hCcmFja2V0czogcGdBZG1pbi5Ccm93c2Vy LmVkaXRvcl9vcHRpb25zLmJyYWNlX21hdGNoaW5nLAorICAgICAgICAgICAgICAgICAgaW5kZW50 V2l0aFRhYnM6ICF0aGlzLnByZWZlcmVuY2VzLnVzZV9zcGFjZXMsCisgICAgICAgICAgICAgICAg ICBpbmRlbnRVbml0OiB0aGlzLnByZWZlcmVuY2VzLnRhYl9zaXplLAorICAgICAgICAgICAgICAg ICAgdGFiU2l6ZTogdGhpcy5wcmVmZXJlbmNlcy50YWJfc2l6ZSwKKyAgICAgICAgICAgICAgICAg IGxpbmVXcmFwcGluZzogdGhpcy5wcmVmZXJlbmNlcy53cmFwX2NvZGUsCisgICAgICAgICAgICAg ICAgICBhdXRvQ2xvc2VCcmFja2V0czogdGhpcy5wcmVmZXJlbmNlcy5pbnNlcnRfcGFpcl9icmFj a2V0cywKKyAgICAgICAgICAgICAgICAgIG1hdGNoQnJhY2tldHM6IHRoaXMucHJlZmVyZW5jZXMu YnJhY2VfbWF0Y2hpbmcsCiAgICAgICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAgICAgICBz ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewpAQCAtNDE1LDEzICs0MzIsMjAgQEAgZGVmaW5lKCdwZ2Fk bWluLmRhdGFncmlkJywgWwogICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGlmICh0 cmFuc19vYmoubmV3QnJvd3NlclRhYikgeworICAgICAgICBpZiAodGhpcy5wcmVmZXJlbmNlcy5u ZXdfYnJvd3Nlcl90YWIpIHsKICAgICAgICAgICB2YXIgbmV3V2luID0gd2luZG93Lm9wZW4oYmFz ZVVybCwgJ19ibGFuaycpOwogCiAgICAgICAgICAgLy8gYWRkIGEgbG9hZCBsaXN0ZW5lciB0byB0 aGUgd2luZG93IHNvIHRoYXQgdGhlIHRpdGxlIGdldHMgY2hhbmdlZCBvbiBwYWdlIGxvYWQKICAg ICAgICAgICBuZXdXaW4uYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uKCkgewogICAg ICAgICAgICAgbmV3V2luLmRvY3VtZW50LnRpdGxlID0gcGFuZWxfdGl0bGU7CisKKyAgICAgICAg ICAgIC8qIFNldCB0aGUgaW5pdGlhbCB2ZXJzaW9uIG9mIHByZWYgY2FjaGUgdGhlIG5ldyB3aW5k b3cgaXMgaGF2aW5nCisgICAgICAgICAgICAgKiBUaGlzIHdpbGwgYmUgdXNlZCBieSB0aGUgcG9s bGVyIHRvIGNvbXBhcmUgd2l0aCB3aW5kb3cgb3BlbmVycworICAgICAgICAgICAgICogcHJlZiBj YWNoZSB2ZXJzaW9uCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG5ld1dpbi5wZ0FkbWlu LkJyb3dzZXIucHJlZmNhY2hlX3ZlcnNpb24gPSBwZ0Jyb3dzZXIucHJlZmNhY2hlX3ZlcnNpb247 CiAgICAgICAgICAgfSk7CisKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAvKiBPbiBzdWNj ZXNzZnVsbHkgaW5pdGlhbGl6YXRpb24gZmluZCB0aGUgZGFzaGJvYXJkIHBhbmVsLAogICAgICAg ICAgICAqIGNyZWF0ZSBuZXcgcGFuZWwgYW5kIGFkZCBpdCB0byB0aGUgZGFzaGJvYXJkIHBhbmVs LgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVtcGxhdGVzL2RhdGFn cmlkL2luZGV4Lmh0bWwgYi93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90ZW1wbGF0ZXMvZGF0 YWdyaWQvaW5kZXguaHRtbAppbmRleCBhZDA5MDI2Mi4uMzcxODdlNDUgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3RlbXBsYXRlcy9kYXRhZ3JpZC9pbmRleC5odG1sCisr KyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3RlbXBsYXRlcy9kYXRhZ3JpZC9pbmRleC5o dG1sCkBAIC0xMCwxMyArMTAsNiBAQAogICAgIC5hbGVydGlmeSAuYWpzLWRpYWxvZy5hanMtc2hh a2V7LXdlYmtpdC1hbmltYXRpb24tbmFtZTogbm9uZTt9CiAgICAgLnNxbC1lZGl0b3ItYnVzeS1p Y29uLmZhLXB1bHNley13ZWJraXQtYW5pbWF0aW9uOiBub25lO30KICAgICB7JSBlbmRpZiAlfQot Ci0gICAgeyMgTm90ZTogSWYgd2Ugd2lsbCBkaXNwbGF5IGNvbm5lY3Rpb24gc3RhdHVzIHRoZW4g d2UgaGF2ZSB0byBwcm92aWRlIHNvbWUKLSAgICBzcGFjZSB0byBkaXNwbGF5IHN0YXR1cyBpY29u IGVsc2Ugd2UgY2FuIHVzZSBhbGwgdGhlIHNwYWNlIGF2YWlsYWJsZSAjfQotICAgIC5lZGl0b3It dGl0bGUgewotICAgICAgd2lkdGg6eyUgaWYgZGlzcGxheV9jb25uZWN0aW9uX3N0YXR1cyAtJX0g Y2FsYygxMDAlIC0gNDNweCkKLSAgICB7JSBlbHNlICV9IDEwMCUgeyUtIGVuZGlmICV9OwotICAg IH0KIDwvc3R5bGU+CiA8ZGl2IGlkPSJtYWluLWVkaXRvcl9wYW5lbCI+CiAgICAgPGRpdiBpZD0i ZmV0Y2hpbmdfZGF0YSIgY2xhc3M9IndjTG9hZGluZ0ljb25Db250YWluZXIgc3FsLWVkaXRvci1i dXN5LWZldGNoaW5nIGhpZGUiPgpAQCAtMjgsMTQgKzIxLDE0IEBACiAgICAgICAgIDxkaXYgaWQ9 ImJ0bi10b29sYmFyIiBjbGFzcz0icGctcHJvcC1idG4tZ3JvdXAgYmctZ3JheS0yIGJvcmRlci1n cmF5LTMiIHJvbGU9InRvb2xiYXIiIGFyaWEtbGFiZWw9IiI+CiAgICAgICAgICAgICA8ZGl2IGNs YXNzPSJidG4tZ3JvdXAiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSIiPgogICAgICAgICAgICAg ICAgIDxidXR0b24gaWQ9ImJ0bi1sb2FkLWZpbGUiIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBi dG4tZGVmYXVsdCBidG4tbG9hZC1maWxlIgotICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9 Int7IF8oJ09wZW4gRmlsZScpIH19e3sgXygnIChhY2Nlc3NrZXkrezB9KScuZm9ybWF0KGtleS5v cGVuX2ZpbGUudXBwZXIoKSkpIH19IgotICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5 PSJ7e2tleS5vcGVuX2ZpbGV9fSIKKyAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSIiCisg ICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NrZXk9IiIKICAgICAgICAgICAgICAgICAgICAg ICAgIHRhYmluZGV4PSIwIj4KICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWZv bGRlci1vcGVuLW8iIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+CiAgICAgICAgICAgICAgICAgPC9i dXR0b24+CiAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXNhdmUiIHR5cGU9ImJ1dHRv biIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIKLSAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxl PSJ7eyBfKCdTYXZlJykgfX17eyBfKCcgKGFjY2Vzc2tleSt7MH0pJy5mb3JtYXQoa2V5LnNhdmVf ZmlsZS51cHBlcigpKSkgfX0iCi0gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NrZXk9Int7 a2V5LnNhdmVfZmlsZX19IgorICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IiIKKyAgICAg ICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0iIgogICAgICAgICAgICAgICAgICAgICAgICAg ZGlzYWJsZWQ+CiAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1mbG9wcHktbyIg YXJpYS1oaWRkZW49InRydWUiIHRhYmluZGV4PSIwIj48L2k+CiAgICAgICAgICAgICAgICAgPC9i dXR0b24+CkBAIC02Myw4ICs1Niw4IEBACiAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAg ICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWZpbmQtbWVudS1kcm9wZG93biIgdHlwZT0iYnV0 dG9uIiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IGRyb3Bkb3duLXRvZ2dsZSIKICAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPSJkcm9wZG93biIgYXJpYS1oYXNwb3B1cD0idHJ1ZSIg YXJpYS1leHBhbmRlZD0iZmFsc2UiCi0gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0ie3sg XygnRmluZCBvcHRpb25zJykgfX17eyBfKCcgKGFjY2Vzc2tleSt7MH0pJy5mb3JtYXQoa2V5LmZp bmRfb3B0aW9ucy51cHBlcigpKSkgfX0iCi0gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3Nr ZXk9Int7a2V5LmZpbmRfb3B0aW9uc319IgorICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9 IiIKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0iIgogICAgICAgICAgICAgICAg ICAgICAgICAgdGFiaW5kZXg9IjAiPgogICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0i Y2FyZXQiPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InNyLW9ubHkiPlRvZ2dsZSBEcm9wZG93bjwvc3Bh bj4KICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KQEAgLTEyMiwyMiArMTE1LDIyIEBACiAgICAg ICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0bi1ncm91cCIgcm9sZT0i Z3JvdXAiIGFyaWEtbGFiZWw9IiI+CiAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWNv cHktcm93IiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiCi0gICAgICAgICAg ICAgICAgICAgICAgICB0aXRsZT0ie3sgXygnQ29weScpIH19e3sgXygnIChhY2Nlc3NrZXkrezB9 KScuZm9ybWF0KGtleS5jb3B5X3Jvdy51cHBlcigpKSkgfX0iCi0gICAgICAgICAgICAgICAgICAg ICAgICBhY2Nlc3NrZXk9Int7a2V5LmNvcHlfcm93fX0iCisgICAgICAgICAgICAgICAgICAgICAg ICB0aXRsZT0iIgorICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSIiCiAgICAgICAg ICAgICAgICAgICAgICAgICB0YWJpbmRleD0iMCIgZGlzYWJsZWQ+CiAgICAgICAgICAgICAgICAg ICAgIDxpIGNsYXNzPSJmYSBmYS1maWxlcy1vIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPgogICAg ICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1w YXN0ZS1yb3ciIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIKLSAgICAgICAg ICAgICAgICAgICAgICAgIHRpdGxlPSJ7eyBfKCdQYXN0ZScpIH19e3sgXygnIChhY2Nlc3NrZXkr ezB9KScuZm9ybWF0KGtleS5wYXN0ZV9yb3cudXBwZXIoKSkpIH19IgotICAgICAgICAgICAgICAg ICAgICAgICAgYWNjZXNza2V5PSJ7e2tleS5wYXN0ZV9yb3d9fSIKKyAgICAgICAgICAgICAgICAg ICAgICAgIHRpdGxlPSIiCisgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NrZXk9IiIKICAg ICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSIwIiBkaXNhYmxlZD4KICAgICAgICAgICAg ICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWNsaXBib2FyZCIgYXJpYS1oaWRkZW49InRydWUiPjwv aT4KICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgIDwvZGl2PgogICAgICAg ICAgICAgPGRpdiBjbGFzcz0iYnRuLWdyb3VwIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iIj4K ICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZGVsZXRlLXJvdyIgdHlwZT0iYnV0dG9u IiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IgotICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9 Int7IF8oJ0RlbGV0ZScpIH19e3sgXygnIChhY2Nlc3NrZXkrezB9KScuZm9ybWF0KGtleS5kZWxl dGVfcm93LnVwcGVyKCkpKSB9fSIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0i e3trZXkuZGVsZXRlX3Jvd319IgorICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IiIKKyAg ICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0iIgogICAgICAgICAgICAgICAgICAgICAg ICAgdGFiaW5kZXg9IjAiIGRpc2FibGVkPgogICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0i ZmEgZmEtdHJhc2giIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+CiAgICAgICAgICAgICAgICAgPC9i dXR0b24+CkBAIC0xODgsMTUgKzE4MSwxNSBAQAogICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg ICAgICA8ZGl2IGNsYXNzPSJidG4tZ3JvdXAiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSIiPgog ICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1maWx0ZXIiIHR5cGU9ImJ1dHRvbiIgY2xh c3M9ImJ0biBidG4tZGVmYXVsdCIKLSAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSJ7eyBf KCdGaWx0ZXInKSB9fXt7IF8oJyAoYWNjZXNza2V5K3swfSknLmZvcm1hdChrZXkuZmlsdGVyX2Rp YWxvZy51cHBlcigpKSkgfX0iCi0gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NrZXk9Int7 a2V5LmZpbHRlcl9kaWFsb2d9fSIKKyAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSIiCisg ICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NrZXk9IiIKICAgICAgICAgICAgICAgICAgICAg ICAgIHRhYmluZGV4PSIwIiBkaXNhYmxlZD4KICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9 ImZhIGZhLWZpbHRlciIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4KICAgICAgICAgICAgICAgICA8 L2J1dHRvbj4KICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZmlsdGVyLWRyb3Bkb3du IiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgZHJvcGRvd24tdG9nZ2xlIgog ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10b2dnbGU9ImRyb3Bkb3duIiBhcmlhLWhhc3Bv cHVwPSJ0cnVlIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIKLSAgICAgICAgICAgICAgICAgICAgICAg IHRpdGxlPSJ7eyBfKCdGaWx0ZXIgb3B0aW9ucycpIH19e3sgXygnIChhY2Nlc3NrZXkrezB9KScu Zm9ybWF0KGtleS5maWx0ZXJfb3B0aW9ucy51cHBlcigpKSkgfX0iCi0gICAgICAgICAgICAgICAg ICAgICAgICBhY2Nlc3NrZXk9Int7a2V5LmZpbHRlcl9vcHRpb25zfX0iCisgICAgICAgICAgICAg ICAgICAgICAgICB0aXRsZT0iIgorICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSIi CiAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZCB0YWJpbmRleD0iMCI+CiAgICAgICAg ICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJldCI+PC9zcGFuPiA8c3BhbiBjbGFzcz0ic3It b25seSI+e3sgXygnVG9nZ2xlIERyb3Bkb3duJykgfX08L3NwYW4+CiAgICAgICAgICAgICAgICAg PC9idXR0b24+CkBAIC0yMTAsOSArMjAzLDkgQEAKICAgICAgICAgICAgICAgICA8L3VsPgogICAg ICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidG4tZ3JvdXAiIHJvbGU9 Imdyb3VwIiBhcmlhLWxhYmVsPSIiPgotICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9Imxp bWl0IiBzdHlsZT0iaGVpZ2h0OiAzMHB4OyB3aWR0aDogOTBweDsiIGRpc2FibGVkCi0gICAgICAg ICAgICAgICAgICAgICAgICB0aXRsZT0ie3sgXygnUm93cyBsaW1pdCcpIH19e3sgXygnIChhY2Nl c3NrZXkrezB9KScuZm9ybWF0KGtleS5yb3dzX2xpbWl0LnVwcGVyKCkpKSB9fSIKLSAgICAgICAg ICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0ie3trZXkucm93c19saW1pdH19IgorICAgICAgICAg ICAgICAgIDxzZWxlY3QgaWQ9ImJ0bi1yb3dzLWxpbWl0IiBjbGFzcz0ibGltaXQiIHN0eWxlPSJo ZWlnaHQ6IDMwcHg7IHdpZHRoOiA5MHB4OyIgZGlzYWJsZWQKKyAgICAgICAgICAgICAgICAgICAg ICAgIHRpdGxlPSIiCisgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NrZXk9IiIKICAgICAg ICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSIwIj4KICAgICAgICAgICAgICAgICAgICAgPG9w dGlvbiB2YWx1ZT0iLTEiPnt7IF8oJ05vIGxpbWl0JykgfX08L29wdGlvbj4KICAgICAgICAgICAg ICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMTAwMCI+e3sgXygnMTAwMCByb3dzJykgfX08L29wdGlv bj4KQEAgLTIyMywzMSArMjE2LDMxIEBACiAKICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0bi1n cm91cCIgcm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWw9IiI+CiAgICAgICAgICAgICAgICAgPGJ1dHRv biBpZD0iYnRuLWZsYXNoIiBkYXRhLXRlc3Qtc2VsZWN0b3I9ImV4ZWN1dGUtcmVmcmVzaC1idXR0 b24iIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgc3R5bGU9IndpZHRoOiA0 MHB4OyIKLSAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSJ7eyBfKCdFeGVjdXRlL1JlZnJl c2gnKSB9fXt7IF8oJyAoezB9KScuZm9ybWF0KGdldF9zaG9ydGN1dF90ZXh0KHNob3J0Y3V0cy5l eGVjdXRlX3F1ZXJ5KSkpIH19IgorICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IiIKICAg ICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSIwIj4KICAgICAgICAgICAgICAgICAgICAg PGkgY2xhc3M9ImZhIGZhLWJvbHQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+CiAgICAgICAgICAg ICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXF1ZXJ5LWRy b3Bkb3duIiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgZHJvcGRvd24tdG9n Z2xlIgogICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10b2dnbGU9ImRyb3Bkb3duIiBhcmlh LWhhc3BvcHVwPSJ0cnVlIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIKLSAgICAgICAgICAgICAgICAg ICAgICAgIGFjY2Vzc2tleT0ie3trZXkuZXhlY3V0ZV9vcHRpb25zfX0iCi0gICAgICAgICAgICAg ICAgICAgICAgICB0aXRsZT0ie3sgXygnRXhlY3V0ZSBvcHRpb25zJykgfX17eyBfKCcgKGFjY2Vz c2tleSt7MH0pJy5mb3JtYXQoa2V5LmV4ZWN1dGVfb3B0aW9ucy51cHBlcigpKSkgfX0iCisgICAg ICAgICAgICAgICAgICAgICAgICBhY2Nlc3NrZXk9IiIKKyAgICAgICAgICAgICAgICAgICAgICAg IHRpdGxlPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD0iMCI+CiAgICAgICAg ICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJldCI+PC9zcGFuPiA8c3BhbiBjbGFzcz0ic3It b25seSI+e3sgXygnVG9nZ2xlIERyb3Bkb3duJykgfX08L3NwYW4+CiAgICAgICAgICAgICAgICAg PC9idXR0b24+CiAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51IiByb2xl PSJtZW51Ij4KICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAg ICAgPGEgaWQ9ImJ0bi1mbGFzaC1tZW51IiBocmVmPSIjIiB0YWJpbmRleD0iMCI+Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgXygnRXhlY3V0ZS9SZWZyZXNoJykgfX17eyBf KCcgKHswfSknLmZvcm1hdChnZXRfc2hvcnRjdXRfdGV4dChzaG9ydGN1dHMuZXhlY3V0ZV9xdWVy eSkpKSB9fTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+ CiAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgIDwvbGk+ CiAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGlk PSJidG4tZXhwbGFpbiIgaHJlZj0iIyIgdGFiaW5kZXg9IjAiPgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDxzcGFuPnt7IF8oJ0V4cGxhaW4nKSB9fXt7IF8oJyAoezB9KScuZm9ybWF0KGdl dF9zaG9ydGN1dF90ZXh0KHNob3J0Y3V0cy5leHBsYWluX3F1ZXJ5KSkpIH19PC9zcGFuPgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAg ICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAg ICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgPGEgaWQ9ImJ0bi1leHBsYWluLWFuYWx5 emUiIGhyZWY9IiMiIHRhYmluZGV4PSIwIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 c3Bhbj57eyBfKCdFeHBsYWluIEFuYWx5emUnKSB9fXt7IF8oJyAoezB9KScuZm9ybWF0KGdldF9z aG9ydGN1dF90ZXh0KHNob3J0Y3V0cy5leHBsYWluX2FuYWx5emVfcXVlcnkpKSkgfX08L3NwYW4+ CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPgogICAgICAgICAgICAg ICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAg ICAgICAgICA8bGkgY2xhc3M9ImRpdmlkZXIiPjwvbGk+CkBAIC0yOTUsOCArMjg4LDggQEAKICAg ICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAg ICAgICAgIDxidXR0b24gaWQ9ImJ0bi1jYW5jZWwtcXVlcnkiIHR5cGU9ImJ1dHRvbiIgY2xhc3M9 ImJ0biBidG4tZGVmYXVsdCIKLSAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSJ7eyBfKCdD YW5jZWwgcXVlcnknKSB9fXt7IF8oJyAoYWNjZXNza2V5K3swfSknLmZvcm1hdChrZXkuY2FuY2Vs X3F1ZXJ5LnVwcGVyKCkpKSB9fSIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0i e3trZXkuY2FuY2VsX3F1ZXJ5fX0iCisgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0iIgor ICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSIiCiAgICAgICAgICAgICAgICAgICAg ICAgICB0YWJpbmRleD0iMCIgZGlzYWJsZWQgPgogICAgICAgICAgICAgICAgICAgICA8aSBjbGFz cz0iZmEgZmEtc3RvcCIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4KICAgICAgICAgICAgICAgICA8 L2J1dHRvbj4KQEAgLTMwNCw4ICsyOTcsOCBAQAogICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRu LWdyb3VwIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iIj4KICAgICAgICAgICAgICAgICA8YnV0 dG9uIGlkPSJidG4tY2xlYXItZHJvcGRvd24iIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4t ZGVmYXVsdCBkcm9wZG93bi10b2dnbGUiCiAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRv Z2dsZT0iZHJvcGRvd24iIGFyaWEtaGFzcG9wdXA9InRydWUiIGFyaWEtZXhwYW5kZWQ9ImZhbHNl IgotICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9Int7IF8oJ0NsZWFyJykgfX17eyBfKCcg KGFjY2Vzc2tleSt7MH0pJy5mb3JtYXQoa2V5LmNsZWFyX29wdGlvbnMudXBwZXIoKSkpIH19Igot ICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSJ7e2tleS5jbGVhcl9vcHRpb25zfX0i CisgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0iIgorICAgICAgICAgICAgICAgICAgICAg ICAgYWNjZXNza2V5PSIiCiAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD0iMCI+CiAg ICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1lcmFzZXIiIGFyaWEtaGlkZGVuPSJ0 cnVlIj48L2k+CiAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJldCI+PC9zcGFu PiA8c3BhbiBjbGFzcz0ic3Itb25seSI+e3sgXygnVG9nZ2xlIERyb3Bkb3duJykgfX08L3NwYW4+ CkBAIC0zMjUsNyArMzE4LDcgQEAKICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgPGRp diBjbGFzcz0iYnRuLWdyb3VwIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iIj4KICAgICAgICAg ICAgICAgICA8YnV0dG9uIGlkPSJidG4tZG93bmxvYWQiIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0 biBidG4tZGVmYXVsdCIKLSAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSJ7eyBfKCdEb3du bG9hZCBhcyBDU1YnKSB9fXt7IF8oJyAoezB9KScuZm9ybWF0KGdldF9zaG9ydGN1dF90ZXh0KHNo b3J0Y3V0cy5kb3dubG9hZF9jc3YpKSkgfX0iCisgICAgICAgICAgICAgICAgICAgICAgICB0aXRs ZT0iIgogICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9IjAiPgogICAgICAgICAgICAg ICAgICAgICA8aSBjbGFzcz0iZmEgZmEtZG93bmxvYWQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+ CiAgICAgICAgICAgICAgICAgPC9idXR0b24+CkBAIC0zMzMsMjEgKzMyNiwxNyBAQAogICAgICAg ICA8L2Rpdj4KIAogICAgICAgICA8ZGl2IGNsYXNzPSJjb25uZWN0aW9uX3N0YXR1c193cmFwcGVy Ij4KLSAgICAgICAgICAgIHslIGlmIGRpc3BsYXlfY29ubmVjdGlvbl9zdGF0dXMgJX0KLSAgICAg ICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsiCi0gICAgICAgICAgICAg ICAgIHRpdGxlPSJ7eyBfKCdDb25uZWN0aW9uIHN0YXR1cyAoY2xpY2sgZm9yIGRldGFpbHMpIChh Y2Nlc3NrZXkrezB9KScuZm9ybWF0KGtleS5jb25uX3N0YXR1cy51cHBlcigpKSkgfX0iPgotICAg ICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbm5lY3Rpb25fc3RhdHVzIiBkYXRhLWNvbnRhaW5l cj0iYm9keSIKLSAgICAgICAgICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPSJwb3BvdmVyIiBkYXRh LXBsYWNlbWVudD0iYm90dG9tIgotICAgICAgICAgICAgICAgICAgICAgZGF0YS1jb250ZW50PSIi Ci0gICAgICAgICAgICAgICAgICAgICBkYXRhLXBhbmVsLXZpc2libGU9InZpc2libGUiCi0gICAg ICAgICAgICAgICAgICAgICBhY2Nlc3NrZXk9Int7a2V5LmNvbm5fc3RhdHVzfX0iCi0gICAgICAg ICAgICAgICAgICAgICB0YWJpbmRleD0iMCI+Ci0gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNz PSJmYS1jdXN0b20gZmEtcXVlcnktdG9vbC1kaXNjb25uZWN0ZWQiIGFyaWEtaGlkZGVuPSJ0cnVl IgotICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9Int7IF8oJ0Nvbm5lY3Rpb24gc3RhdHVz IChjbGljayBmb3IgZGV0YWlscykgKGFjY2Vzc2tleSt7MH0pJy5mb3JtYXQoa2V5LmNvbm5fc3Rh dHVzLnVwcGVyKCkpKSB9fSI+Ci0gICAgICAgICAgICAgICAgICAgIDwvaT4KLSAgICAgICAgICAg ICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgaWQ9ImJ0bi1jb25uLXN0YXR1cyIKKyAgICAg ICAgICAgICAgICAgY2xhc3M9ImNvbm5lY3Rpb25fc3RhdHVzIGNvbm5lY3Rpb24tc3RhdHVzLXNo b3ciIGRhdGEtY29udGFpbmVyPSJib2R5IgorICAgICAgICAgICAgICAgICBkYXRhLXRvZ2dsZT0i cG9wb3ZlciIgZGF0YS1wbGFjZW1lbnQ9ImJvdHRvbSIKKyAgICAgICAgICAgICAgICAgZGF0YS1j b250ZW50PSIiCisgICAgICAgICAgICAgICAgIGRhdGEtcGFuZWwtdmlzaWJsZT0idmlzaWJsZSIK KyAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSIiCisgICAgICAgICAgICAgICAgIHRhYmluZGV4 PSIwIj4KKyAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEtY3VzdG9tIGZhLXF1ZXJ5LXRvb2wt ZGlzY29ubmVjdGVkIiBhcmlhLWhpZGRlbj0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgdGl0 bGU9IiI+CisgICAgICAgICAgICAgICAgPC9pPgogICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAg ICAgICB7JSBlbmRpZiAlfQogICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLXRpdGxlIgog ICAgICAgICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogeyUgaWYgZmdjb2xvciAl fXt7IGJnY29sb3Igb3IgJyNGRkZGRkYnIH19eyUgZWxzZSAlfXt7IGJnY29sb3Igb3IgJyMyQzc2 QjQnIH19eyUgZW5kaWYgJX07IGNvbG9yOiB7eyBmZ2NvbG9yIG9yICd3aGl0ZScgfX07Ij48L2Rp dj4KICAgICAgICAgPC9kaXY+CkBAIC0zOTgsOSArMzg3LDcgQEAKICAgICAgICAge3sgaXNfcXVl cnlfdG9vbCB9fSwKICAgICAgICAgInt7IGVkaXRvcl90aXRsZSB9fSIsCiAgICAgICAgIHNjcmlw dF90eXBlX3VybCwKLSAgICAgICAge3sgaXNfbmV3X2Jyb3dzZXJfdGFiIH19LAogICAgICAgICAi e3sgc2VydmVyX3R5cGUgfX0iLAotICAgICAgICB7eyBwcm9tcHRfc2F2ZV9jaGFuZ2VzIH19LAog ICAgICAgICB7eyB1cmxfcGFyYW1zfHNhZmV9fQogICAgICk7CiB9KTsKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvY3NzL3NxbGVkaXRvci5jc3MgYi93ZWIv cGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2Nzcy9zcWxlZGl0b3IuY3NzCmluZGV4IGM1 NDU5MGQzLi5iZDliMzA5MSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9y L3N0YXRpYy9jc3Mvc3FsZWRpdG9yLmNzcworKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0 b3Ivc3RhdGljL2Nzcy9zcWxlZGl0b3IuY3NzCkBAIC02MjUsMyArNjI1LDIwIEBAIGlucHV0LmVk aXRvci1jaGVja2JveDpmb2N1cyB7CiAuZGF0YV9zb3J0aW5nX2RpYWxvZyAuZGF0YV9zb3J0aW5n IHsKICAgcGFkZGluZzogMTBweCAwcHg7CiB9CisKKy5lZGl0b3ItdGl0bGUgeworICB3aWR0aDox MDAlOworfQorCisuZWRpdG9yLXRpdGxlLWNvbm5lY3Rpb24geworICB3aWR0aDpjYWxjKDEwMCUg LSA0M3B4KTsKK30KKworLmNvbm5lY3Rpb24tc3RhdHVzLXNob3cgeworICBkaXNwbGF5OiBpbmxp bmUtYmxvY2s7Cit9CisKKy5jb25uZWN0aW9uLXN0YXR1cy1oaWRlIHsKKyAgZGlzcGxheTogbm9u ZTsKK30KKwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9q cy9zcWxlZGl0b3IuanMgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL3Nx bGVkaXRvci5qcwppbmRleCBjZTM5NzY5Mi4uNjA3NWRlOGIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvc3FsZWRpdG9yLmpzCisrKyBiL3dlYi9wZ2Fk bWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvc3FsZWRpdG9yLmpzCkBAIC0xNiw3ICsxNiw3 IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAnc291cmNlcy9zcWxlZGl0b3IvcXVl cnlfdG9vbF9odHRwX2Vycm9yX2hhbmRsZXInLAogICAnc291cmNlcy9zcWxlZGl0b3IvZmlsdGVy X2RpYWxvZycsCiAgICdzb3VyY2VzL2hpc3RvcnkvaW5kZXguanMnLAotICAnc291cmNlcy8uLi9q c3gvaGlzdG9yeS9xdWVyeV9oaXN0b3J5JywKKyAgJ3NvdXJjZXNqc3gvaGlzdG9yeS9xdWVyeV9o aXN0b3J5JywKICAgJ3JlYWN0JywgJ3JlYWN0LWRvbScsCiAgICdzb3VyY2VzL2tleWJvYXJkX3No b3J0Y3V0cycsCiAgICdzb3VyY2VzL3NxbGVkaXRvci9xdWVyeV90b29sX2FjdGlvbnMnLApAQCAt MjUsNiArMjUsNyBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgJ3NvdXJjZXMvbW9k aWZ5X2FuaW1hdGlvbicsCiAgICdzb3VyY2VzL3NxbGVkaXRvci9jYWxjdWxhdGVfcXVlcnlfcnVu X3RpbWUnLAogICAnc291cmNlcy9zcWxlZGl0b3IvY2FsbF9yZW5kZXJfYWZ0ZXJfcG9sbCcsCisg ICdzb3VyY2VzL3NxbGVkaXRvci9xdWVyeV90b29sX3ByZWZlcmVuY2VzJywKICAgJ3NvdXJjZXMv Li4vYnVuZGxlL3NsaWNrZ3JpZCcsCiAgICdwZ2FkbWluLmZpbGVfbWFuYWdlcicsCiAgICdiYWNr Z3JpZC5zaXplYWJsZS5jb2x1bW5zJywKQEAgLTM4LDcgKzM5LDcgQEAgZGVmaW5lKCd0b29scy5x dWVyeXRvb2wnLCBbCiAgIFhDZWxsU2VsZWN0aW9uTW9kZWwsIHNldFN0YWdlZFJvd3MsIFNxbEVk aXRvclV0aWxzLCBFeGVjdXRlUXVlcnksIGh0dHBFcnJvckhhbmRsZXIsIEZpbHRlckhhbmRsZXIs CiAgIEhpc3RvcnlCdW5kbGUsIHF1ZXJ5SGlzdG9yeSwgUmVhY3QsIFJlYWN0RE9NLAogICBrZXli b2FyZFNob3J0Y3V0cywgcXVlcnlUb29sQWN0aW9ucywgcXVlcnlUb29sTm90aWZpY2F0aW9ucywg RGF0YWdyaWQsCi0gIG1vZGlmeUFuaW1hdGlvbiwgY2FsY3VsYXRlUXVlcnlSdW5UaW1lLCBjYWxs UmVuZGVyQWZ0ZXJQb2xsKSB7CisgIG1vZGlmeUFuaW1hdGlvbiwgY2FsY3VsYXRlUXVlcnlSdW5U aW1lLCBjYWxsUmVuZGVyQWZ0ZXJQb2xsLCBxdWVyeVRvb2xQcmVmKSB7CiAgIC8qIFJldHVybiBi YWNrLCB0aGlzIGhhcyBiZWVuIGNhbGxlZCBtb3JlIHRoYW4gb25jZSAqLwogICBpZiAocGdBZG1p bi5TcWxFZGl0b3IpCiAgICAgcmV0dXJuIHBnQWRtaW4uU3FsRWRpdG9yOwpAQCAtNTgsNiArNTks MTEgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICAgICB0aGlzLiRlbCA9IG9wdHMu ZWw7CiAgICAgICB0aGlzLmhhbmRsZXIgPSBvcHRzLmhhbmRsZXI7CiAgICAgICB0aGlzLmhhbmRs ZXJbJ2NvbF9zaXplJ10gPSB7fTsKKyAgICAgIGxldCBicm93c2VyID0gd2luZG93Lm9wZW5lciA/ CisgICAgICAgICAgICAgIHdpbmRvdy5vcGVuZXIucGdBZG1pbi5Ccm93c2VyIDogd2luZG93LnRv cC5wZ0FkbWluLkJyb3dzZXI7CisgICAgICB0aGlzLnByZWZlcmVuY2VzID0gYnJvd3Nlci5nZXRf cHJlZmVyZW5jZXNfZm9yX21vZHVsZSgnc3FsZWRpdG9yJyk7CisgICAgICB0aGlzLmhhbmRsZXIu cHJlZmVyZW5jZXMgPSB0aGlzLnByZWZlcmVuY2VzOworICAgICAgdGhpcy5jb25uSW50ZXJ2YWxJ ZCA9IG51bGw7CiAgICAgfSwKIAogICAgIC8vIEJpbmQgYWxsIHRoZSBldmVudHMKQEAgLTExNywx MCArMTIzLDYgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICAgICB2YXIgc2VsZiA9 IHRoaXM7CiAKICAgICAgICQoJy5lZGl0b3ItdGl0bGUnKS50ZXh0KF8udW5lc2NhcGUoc2VsZi5l ZGl0b3JfdGl0bGUpKTsKLSAgICAgIHNlbGYuY2hlY2tDb25uZWN0aW9uU3RhdHVzKCk7Ci0KLSAg ICAgIC8vIEZldGNoIGFuZCBhc3NpZ24gdGhlIHNob3J0Y3V0cyB0byBjdXJyZW50IGluc3RhbmNl Ci0gICAgICBzZWxmLmtleWJvYXJkU2hvcnRjdXRDb25maWcgPSBxdWVyeVRvb2xBY3Rpb25zLmdl dEtleWJvYXJkU2hvcnRjdXRzKHNlbGYpOwogCiAgICAgICAvLyBVcGRhdGVzIGNvbm5lY3Rpb24g c3RhdHVzIGZsYWcKICAgICAgIHNlbGYuZ2Fpbl9mb2N1cyA9IGZ1bmN0aW9uKCkgewpAQCAtMTgz LDEzICsxODUsNyBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgICAgfSwKICAg ICAgICAgZ3V0dGVyczogWydDb2RlTWlycm9yLWxpbmVudW1iZXJzJywgJ0NvZGVNaXJyb3ItZm9s ZGd1dHRlciddLAogICAgICAgICBleHRyYUtleXM6IHBnQnJvd3Nlci5lZGl0b3Jfc2hvcnRjdXRf a2V5cywKLSAgICAgICAgaW5kZW50V2l0aFRhYnM6IHBnQWRtaW4uQnJvd3Nlci5lZGl0b3Jfb3B0 aW9ucy5pbmRlbnRfd2l0aF90YWJzLAotICAgICAgICBpbmRlbnRVbml0OiBwZ0FkbWluLkJyb3dz ZXIuZWRpdG9yX29wdGlvbnMudGFiU2l6ZSwKLSAgICAgICAgdGFiU2l6ZTogcGdBZG1pbi5Ccm93 c2VyLmVkaXRvcl9vcHRpb25zLnRhYlNpemUsCi0gICAgICAgIGxpbmVXcmFwcGluZzogcGdBZG1p bi5Ccm93c2VyLmVkaXRvcl9vcHRpb25zLndyYXBDb2RlLAogICAgICAgICBzY3JvbGxiYXJTdHls ZTogJ3NpbXBsZScsCi0gICAgICAgIGF1dG9DbG9zZUJyYWNrZXRzOiBwZ0FkbWluLkJyb3dzZXIu ZWRpdG9yX29wdGlvbnMuaW5zZXJ0X3BhaXJfYnJhY2tldHMsCi0gICAgICAgIG1hdGNoQnJhY2tl dHM6IHBnQWRtaW4uQnJvd3Nlci5lZGl0b3Jfb3B0aW9ucy5icmFjZV9tYXRjaGluZywKICAgICAg IH0pOwogCiAgICAgICAvLyBSZWZyZXNoIENvZGUgbWlycm9yIG9uIFNRTCBwYW5lbCByZXNpemUg dG8KQEAgLTI3MCwzMiArMjY2LDMyIEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAg ICAgc2VsZi5yZW5kZXJfaGlzdG9yeV9ncmlkKCk7CiAgICAgICBxdWVyeVRvb2xOb3RpZmljYXRp b25zLnJlbmRlck5vdGlmaWNhdGlvbnNHcmlkKHNlbGYubm90aWZpY2F0aW9uc19wYW5lbCk7CiAK LSAgICAgIGlmICghc2VsZi5oYW5kbGVyLmlzX25ld19icm93c2VyX3RhYikgeworICAgICAgaWYg KCFzZWxmLnByZWZlcmVuY2VzLm5ld19icm93c2VyX3RhYikgewogICAgICAgICAvLyBMaXN0ZW4g b24gdGhlIHBhbmVsIGNsb3NlZCBldmVudCBhbmQgbm90aWZ5IHVzZXIgdG8gc2F2ZSBtb2RpZmlj YXRpb25zLgogICAgICAgICBfLmVhY2god2luZG93LnRvcC5wZ0FkbWluLkJyb3dzZXIuZG9ja2Vy LmZpbmRQYW5lbHMoJ2ZybV9kYXRhZ3JpZCcpLCBmdW5jdGlvbihwKSB7CiAgICAgICAgICAgaWYg KHAuaXNWaXNpYmxlKCkpIHsKLSAgICAgICAgICAgIGlmIChzZWxmLmhhbmRsZXIucHJvbXB0X3Nh dmVfY2hhbmdlcykgewotICAgICAgICAgICAgICBwLm9uKHdjRG9ja2VyLkVWRU5ULkNMT1NJTkcs IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIC8vIE9ubHkgaWYgd2UgY2FuIGVkaXQgZGF0 YSB0aGVuIHBlcmZvcm0gdGhpcyBjaGVjawotICAgICAgICAgICAgICAgIHZhciBub3RpZnkgPSBm YWxzZSwKLSAgICAgICAgICAgICAgICAgIG1zZzsKLSAgICAgICAgICAgICAgICBpZiAoc2VsZi5o YW5kbGVyLmNhbl9lZGl0KSB7Ci0gICAgICAgICAgICAgICAgICB2YXIgZGF0YV9zdG9yZSA9IHNl bGYuaGFuZGxlci5kYXRhX3N0b3JlOwotICAgICAgICAgICAgICAgICAgaWYgKGRhdGFfc3RvcmUg JiYgKF8uc2l6ZShkYXRhX3N0b3JlLmFkZGVkKSB8fAotICAgICAgICAgICAgICAgICAgICAgIF8u c2l6ZShkYXRhX3N0b3JlLnVwZGF0ZWQpKSkgewotICAgICAgICAgICAgICAgICAgICBtc2cgPSBn ZXR0ZXh0KCdUaGUgZGF0YSBoYXMgY2hhbmdlZC4gRG8geW91IHdhbnQgdG8gc2F2ZSBjaGFuZ2Vz PycpOwotICAgICAgICAgICAgICAgICAgICBub3RpZnkgPSB0cnVlOwotICAgICAgICAgICAgICAg ICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc2VsZi5oYW5kbGVyLmlzX3F1ZXJ5X3Rv b2wgJiYgc2VsZi5oYW5kbGVyLmlzX3F1ZXJ5X2NoYW5nZWQpIHsKLSAgICAgICAgICAgICAgICAg IG1zZyA9IGdldHRleHQoJ1RoZSB0ZXh0IGhhcyBjaGFuZ2VkLiBEbyB5b3Ugd2FudCB0byBzYXZl IGNoYW5nZXM/Jyk7CisgICAgICAgICAgICBwLm9uKHdjRG9ja2VyLkVWRU5ULkNMT1NJTkcsIGZ1 bmN0aW9uKCkgeworICAgICAgICAgICAgICAvLyBPbmx5IGlmIHdlIGNhbiBlZGl0IGRhdGEgdGhl biBwZXJmb3JtIHRoaXMgY2hlY2sKKyAgICAgICAgICAgICAgdmFyIG5vdGlmeSA9IGZhbHNlLAor ICAgICAgICAgICAgICAgIG1zZzsKKyAgICAgICAgICAgICAgaWYgKHNlbGYuaGFuZGxlci5jYW5f ZWRpdAorICAgICAgICAgICAgICAgICAgJiYgc2VsZi5wcmVmZXJlbmNlcy5wcm9tcHRfc2F2ZV9k YXRhX2NoYW5nZXMpIHsKKyAgICAgICAgICAgICAgICB2YXIgZGF0YV9zdG9yZSA9IHNlbGYuaGFu ZGxlci5kYXRhX3N0b3JlOworICAgICAgICAgICAgICAgIGlmIChkYXRhX3N0b3JlICYmIChfLnNp emUoZGF0YV9zdG9yZS5hZGRlZCkgfHwKKyAgICAgICAgICAgICAgICAgICAgXy5zaXplKGRhdGFf c3RvcmUudXBkYXRlZCkpKSB7CisgICAgICAgICAgICAgICAgICBtc2cgPSBnZXR0ZXh0KCdUaGUg ZGF0YSBoYXMgY2hhbmdlZC4gRG8geW91IHdhbnQgdG8gc2F2ZSBjaGFuZ2VzPycpOwogICAgICAg ICAgICAgICAgICAgbm90aWZ5ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg ICAgICAgaWYgKG5vdGlmeSkgewotICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYudXNlcl9j b25maXJtYXRpb24ocCwgbXNnKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg cmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfQorICAgICAgICAg ICAgICB9IGVsc2UgaWYgKHNlbGYuaGFuZGxlci5pc19xdWVyeV90b29sICYmIHNlbGYuaGFuZGxl ci5pc19xdWVyeV9jaGFuZ2VkCisgICAgICAgICAgICAgICAgICAgICAgICAgJiYgc2VsZi5wcmVm ZXJlbmNlcy5wcm9tcHRfc2F2ZV9xdWVyeV9jaGFuZ2VzKSB7CisgICAgICAgICAgICAgICAgbXNn ID0gZ2V0dGV4dCgnVGhlIHRleHQgaGFzIGNoYW5nZWQuIERvIHlvdSB3YW50IHRvIHNhdmUgY2hh bmdlcz8nKTsKKyAgICAgICAgICAgICAgICBub3RpZnkgPSB0cnVlOworICAgICAgICAgICAgICB9 CisgICAgICAgICAgICAgIGlmIChub3RpZnkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc2Vs Zi51c2VyX2NvbmZpcm1hdGlvbihwLCBtc2cpOworICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAgIC8vIFNldCBm b2N1cyBvbiBxdWVyeSB0b29sIG9mIGFjdGl2ZSBwYW5lbAogICAgICAgICAgICAgcC5vbih3Y0Rv Y2tlci5FVkVOVC5HQUlOX0ZPQ1VTLCBmdW5jdGlvbigpIHsKQEAgLTQ4MywzMyArNDc5LDM1IEBA IGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgICAgICAgIH0uYmluZChjdHgpLAogICAg ICAgICB9OwogICAgICAgfSk7Ci0gICAgfSwKIAotICAgIC8vIFRoaXMgZnVuY3Rpb24gd2lsbCBj aGVjayB0aGUgY29ubmVjdGlvbiBzdGF0dXMgYXQgc3BlY2lmaWMKLSAgICAvLyBpbnRlcnZhbCBk ZWZpbmVkIGJ5IHRoZSB1c2VyIGluIHByZWZlcmVuY2UKLSAgICBjaGVja0Nvbm5lY3Rpb25TdGF0 dXM6IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHNlbGYgPSB0aGlzLAotICAgICAgICBwcmVmZXJl bmNlID0gd2luZG93LnRvcC5wZ0FkbWluLkJyb3dzZXIuZ2V0X3ByZWZlcmVuY2UoCi0gICAgICAg ICAgJ3NxbGVkaXRvcicsICdjb25uZWN0aW9uX3N0YXR1c19mZXRjaF90aW1lJwotICAgICAgICAp LAotICAgICAgICBkaXNwbGF5X3N0YXR1cyA9IHdpbmRvdy50b3AucGdBZG1pbi5Ccm93c2VyLmdl dF9wcmVmZXJlbmNlKAotICAgICAgICAgICdzcWxlZGl0b3InLCAnY29ubmVjdGlvbl9zdGF0dXMn Ci0gICAgICAgICk7Ci0gICAgICBpZighcHJlZmVyZW5jZSAmJiBzZWxmLmhhbmRsZXIuaXNfbmV3 X2Jyb3dzZXJfdGFiKSB7Ci0gICAgICAgIHByZWZlcmVuY2UgPSB3aW5kb3cub3BlbmVyLnBnQWRt aW4uQnJvd3Nlci5nZXRfcHJlZmVyZW5jZSgKLSAgICAgICAgICAnc3FsZWRpdG9yJywgJ2Nvbm5l Y3Rpb25fc3RhdHVzX2ZldGNoX3RpbWUnCi0gICAgICAgICk7Ci0gICAgICAgIGRpc3BsYXlfc3Rh dHVzID0gd2luZG93Lm9wZW5lci5wZ0FkbWluLkJyb3dzZXIuZ2V0X3ByZWZlcmVuY2UoCi0gICAg ICAgICAgJ3NxbGVkaXRvcicsICdjb25uZWN0aW9uX3N0YXR1cycKLSAgICAgICAgKTsKLSAgICAg IH0KIAotICAgICAgLy8gT25seSBlbmFibGUgcG9vbGluZyBpZiBpdCBpcyBlbmFibGVkCi0gICAg ICBpZiAoZGlzcGxheV9zdGF0dXMgJiYgZGlzcGxheV9zdGF0dXMudmFsdWUpIHsKLSAgICAgICAg U3FsRWRpdG9yVXRpbHMudXBkYXRlQ29ubmVjdGlvblN0YXR1cygKLSAgICAgICAgICBzZWxmLmhh bmRsZXIsCi0gICAgICAgICAgcHJlZmVyZW5jZS52YWx1ZQotICAgICAgICApOworICAgICAgcXVl cnlUb29sUHJlZi5yZWZsZWN0UHJlZmVyZW5jZXMoc2VsZik7CisgICAgICAvKiBSZWdpc3RlciBm b3IgcHJlZmVyZW5jZSBjaGFuZ2VkIGV2ZW50IGJyb2FkY2FzdGVkIGluIHBhcmVudAorICAgICAg ICogdG8gcmVsb2FkIHRoZSBzaG9yY3V0cy4gQXMgc3FsZWRpdG9yIGlzIGluIGlGcmFtZSBvZiB3 Y0RvY2tlcgorICAgICAgICogd2luZG93IHBhcmVudCBpcyByZWZlcnJlZAorICAgICAgICovCisg ICAgICBwZ0Jyb3dzZXIub25QcmVmZXJlbmNlc0NoYW5nZSgnc3FsZWRpdG9yJywgZnVuY3Rpb24o KSB7CisgICAgICAgIGxldCBicm93c2VyID0gd2luZG93Lm9wZW5lciA/CisgICAgICAgICAgICAg ICAgd2luZG93Lm9wZW5lci5wZ0FkbWluLkJyb3dzZXIgOiB3aW5kb3cudG9wLnBnQWRtaW4uQnJv d3NlcjsKKyAgICAgICAgc2VsZi5wcmVmZXJlbmNlcyA9IGJyb3dzZXIuZ2V0X3ByZWZlcmVuY2Vz X2Zvcl9tb2R1bGUoJ3NxbGVkaXRvcicpOworICAgICAgICBzZWxmLmhhbmRsZXIucHJlZmVyZW5j ZXMgPSBzZWxmLnByZWZlcmVuY2VzOworICAgICAgICBxdWVyeVRvb2xQcmVmLnJlZmxlY3RQcmVm ZXJlbmNlcyhzZWxmKTsKKyAgICAgIH0pOworCisgICAgICAvKiBJZiBzcWwgZWRpdG9yIGlzIGlu IGEgbmV3IHRhYiwgZXZlbnQgZmlyZWQgaXMgbm90IGF2YWlsYWJsZQorICAgICAgICogaW5zdGVh ZCwgYSBwb2xsZXIgaXMgc2V0IHVwIHdobyB3aWxsIGNoZWNrIGlmIHRoZSB3aW5kb3cub3BlbmVy CisgICAgICAgKiBwcmVmY2FjaGVfdmVyc2lvbiBpcyB1cGRhdGVkLiBJZiB1cGRhdGVkLCB0aGUg bmV3IHRhYiB3aWxsIHVwZGF0ZSBpdHMKKyAgICAgICAqIHByZWZlcmVuY2VzIGFuZCByZWZsZWN0 IGl0CisgICAgICAgKi8KKyAgICAgIGlmKHNlbGYucHJlZmVyZW5jZXMubmV3X2Jyb3dzZXJfdGFi KSB7CisgICAgICAgIHNldEludGVydmFsKCgpPT57CisgICAgICAgICAgaWYod2luZG93Lm9wZW5l ci5wZ0FkbWluICYmCisgICAgICAgICAgICAgcGdCcm93c2VyLnByZWZjYWNoZV92ZXJzaW9uIDwg d2luZG93Lm9wZW5lci5wZ0FkbWluLkJyb3dzZXIucHJlZmNhY2hlX3ZlcnNpb24pCisgICAgICAg ICAgeworICAgICAgICAgICAgcGdCcm93c2VyLnByZWZjYWNoZV92ZXJzaW9uID0gd2luZG93Lm9w ZW5lci5wZ0FkbWluLkJyb3dzZXIucHJlZmNhY2hlX3ZlcnNpb247CisgICAgICAgICAgICBzZWxm LnJlZmxlY3RQcmVmZXJlbmNlcygpOworICAgICAgICAgIH0KKyAgICAgICAgfSwgMTAwMCk7CiAg ICAgICB9CiAgICAgfSwKIApAQCAtODA1LDYgKzgwMywxMSBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5 dG9vbCcsIFsKICAgICAgIH07CiAKICAgICAgIHNlbGYuaGFuZGxlci5zbGlja2dyaWQgPSBncmlk OworICAgICAgc2VsZi5oYW5kbGVyLnNsaWNrZ3JpZC5DU1ZPcHRpb25zID0geworICAgICAgICBx dW90aW5nOiBzZWxmLnByZWZlcmVuY2VzLnJlc3VsdHNfZ3JpZF9xdW90aW5nLAorICAgICAgICBx dW90ZV9jaGFyOiBzZWxmLnByZWZlcmVuY2VzLnJlc3VsdHNfZ3JpZF9xdW90ZV9jaGFyLAorICAg ICAgICBmaWVsZF9zZXBhcmF0b3I6IHNlbGYucHJlZmVyZW5jZXMucmVzdWx0c19ncmlkX2ZpZWxk X3NlcGFyYXRvciwKKyAgICAgIH07CiAKICAgICAgIC8vIExpc3RlbmVyIGZ1bmN0aW9uIHRvIHdh dGNoIHNlbGVjdGVkIHJvd3MgZnJvbSBncmlkCiAgICAgICBpZiAoZWRpdG9yX2RhdGEuc2VsZWN0 aW9uKSB7CkBAIC05MDMsMjkgKzkwNiw2IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwog ICAgICAgICAgICAgaGFuZGxlUXVlcnlPdXRwdXRLZXlib2FyZEV2ZW50KGV2ZW50LCBhcmdzKTsK ICAgICAgICAgICB9KTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB2YXIgcHJlZl9jYWNo ZSA9IHVuZGVmaW5lZDsKLSAgICAgICAgICBhcmdzLmdyaWQuQ1NWT3B0aW9ucyA9IHt9OwotCi0g ICAgICAgICAgaWYgKHNlbGYuaGFuZGxlci5pc19uZXdfYnJvd3Nlcl90YWIpIHsKLSAgICAgICAg ICAgIHByZWZfY2FjaGUgPSB3aW5kb3cub3BlbmVyLnBnQWRtaW4uQnJvd3Nlci5wcmVmZXJlbmNl c19jYWNoZTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHJlZl9jYWNoZSA9IHdp bmRvdy50b3AucGdBZG1pbi5Ccm93c2VyLnByZWZlcmVuY2VzX2NhY2hlOwotICAgICAgICAgIH0K LQotICAgICAgICAgIC8vIEdldCBDU1Ygb3B0aW9ucyBmcm9tIHByZWZlcmVuY2VzIGNhY2hlCi0g ICAgICAgICAgYXJncy5ncmlkLkNTVk9wdGlvbnMucXVvdGluZyA9IF8uZmluZFdoZXJlKHByZWZf Y2FjaGUsIHsKLSAgICAgICAgICAgICdtb2R1bGUnOiAnc3FsZWRpdG9yJywKLSAgICAgICAgICAg ICduYW1lJzogJ3Jlc3VsdHNfZ3JpZF9xdW90aW5nJywKLSAgICAgICAgICB9KS52YWx1ZTsKLSAg ICAgICAgICBhcmdzLmdyaWQuQ1NWT3B0aW9ucy5xdW90ZV9jaGFyID0gXy5maW5kV2hlcmUocHJl Zl9jYWNoZSwgewotICAgICAgICAgICAgJ21vZHVsZSc6ICdzcWxlZGl0b3InLAotICAgICAgICAg ICAgJ25hbWUnOiAncmVzdWx0c19ncmlkX3F1b3RlX2NoYXInLAotICAgICAgICAgIH0pLnZhbHVl OwotICAgICAgICAgIGFyZ3MuZ3JpZC5DU1ZPcHRpb25zLmZpZWxkX3NlcGFyYXRvciA9IF8uZmlu ZFdoZXJlKHByZWZfY2FjaGUsIHsKLSAgICAgICAgICAgICdtb2R1bGUnOiAnc3FsZWRpdG9yJywK LSAgICAgICAgICAgICduYW1lJzogJ3Jlc3VsdHNfZ3JpZF9maWVsZF9zZXBhcmF0b3InLAotICAg ICAgICAgIH0pLnZhbHVlOwotCiAgICAgICAgICAgaGFuZGxlUXVlcnlPdXRwdXRLZXlib2FyZEV2 ZW50KGV2ZW50LCBhcmdzKTsKICAgICAgICAgfQogICAgICAgfSk7CkBAIC0xMTk2LDcgKzExNzYs MTAgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICAgcmVuZGVyX2hpc3RvcnlfZ3Jp ZDogZnVuY3Rpb24oKSB7CiAgICAgICB2YXIgc2VsZiA9IHRoaXM7CiAKLSAgICAgIHNlbGYuaGlz dG9yeV9jb2xsZWN0aW9uID0gbmV3IEhpc3RvcnlCdW5kbGUuSGlzdG9yeUNvbGxlY3Rpb24oW10p OworICAgICAgLyogU2hvdWxkIG5vdCByZXNldCBpZiBmdW5jdGlvbiBjYWxsZWQgYWdhaW4gKi8K KyAgICAgIGlmKCFzZWxmLmhpc3RvcnlfY29sbGVjdGlvbikgeworICAgICAgICBzZWxmLmhpc3Rv cnlfY29sbGVjdGlvbiA9IG5ldyBIaXN0b3J5QnVuZGxlLkhpc3RvcnlDb2xsZWN0aW9uKFtdKTsK KyAgICAgIH0KIAogICAgICAgdmFyIGhpc3RvcnlDb21wb25lbnQ7CiAgICAgICB2YXIgaGlzdG9y eUNvbGxlY3Rpb25SZWFjdEVsZW1lbnQgPSBSZWFjdC5jcmVhdGVFbGVtZW50KApAQCAtMTIwNSw5 ICsxMTg4LDEzIEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgICAgICAgIHJlZjog ZnVuY3Rpb24oY29tcG9uZW50KSB7CiAgICAgICAgICAgICBoaXN0b3J5Q29tcG9uZW50ID0gY29t cG9uZW50OwogICAgICAgICAgIH0sCisgICAgICAgICAgc3FsRWRpdG9yUHJlZjogeworICAgICAg ICAgICAgc3FsX2ZvbnRfc2l6ZTogU3FsRWRpdG9yVXRpbHMuY2FsY0ZvbnRTaXplKHRoaXMucHJl ZmVyZW5jZXMuc3FsX2ZvbnRfc2l6ZSksCisgICAgICAgICAgfSwKICAgICAgICAgfSk7CiAgICAg ICBSZWFjdERPTS5yZW5kZXIoaGlzdG9yeUNvbGxlY3Rpb25SZWFjdEVsZW1lbnQsICQoJyNoaXN0 b3J5X2dyaWQnKVswXSk7CiAKKyAgICAgIHNlbGYuaGlzdG9yeV9wYW5lbC5vZmYod2NEb2NrZXIu RVZFTlQuVklTSUJJTElUWV9DSEFOR0VEKTsKICAgICAgIHNlbGYuaGlzdG9yeV9wYW5lbC5vbih3 Y0RvY2tlci5FVkVOVC5WSVNJQklMSVRZX0NIQU5HRUQsIGZ1bmN0aW9uKCkgewogICAgICAgICBo aXN0b3J5Q29tcG9uZW50LnJlZm9jdXMoKTsKICAgICAgIH0pOwpAQCAtMTQxNiwyOSArMTQwMyw3 IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogCiAgICAgLy8gQ2FsbGJhY2sgZnVuY3Rp b24gZm9yIGNvcHkgYnV0dG9uIGNsaWNrLgogICAgIG9uX2NvcHlfcm93OiBmdW5jdGlvbigpIHsK LSAgICAgIHZhciBzZWxmID0gdGhpcywKLSAgICAgICAgcHJlZl9jYWNoZSA9IHVuZGVmaW5lZDsK LSAgICAgIHNlbGYuZ3JpZC5DU1ZPcHRpb25zID0ge307Ci0KLSAgICAgIGlmIChzZWxmLmhhbmRs ZXIuaXNfbmV3X2Jyb3dzZXJfdGFiKSB7Ci0gICAgICAgIHByZWZfY2FjaGUgPSB3aW5kb3cub3Bl bmVyLnBnQWRtaW4uQnJvd3Nlci5wcmVmZXJlbmNlc19jYWNoZTsKLSAgICAgIH0gZWxzZSB7Ci0g ICAgICAgIHByZWZfY2FjaGUgPSB3aW5kb3cudG9wLnBnQWRtaW4uQnJvd3Nlci5wcmVmZXJlbmNl c19jYWNoZTsKLSAgICAgIH0KLQotICAgICAgLy8gR2V0IENTViBvcHRpb25zIGZyb20gcHJlZmVy ZW5jZXMgY2FjaGUKLSAgICAgIHNlbGYuZ3JpZC5DU1ZPcHRpb25zLnF1b3RpbmcgPSBfLmZpbmRX aGVyZShwcmVmX2NhY2hlLCB7Ci0gICAgICAgICdtb2R1bGUnOiAnc3FsZWRpdG9yJywKLSAgICAg ICAgJ25hbWUnOiAncmVzdWx0c19ncmlkX3F1b3RpbmcnLAotICAgICAgfSkudmFsdWU7Ci0gICAg ICBzZWxmLmdyaWQuQ1NWT3B0aW9ucy5xdW90ZV9jaGFyID0gXy5maW5kV2hlcmUocHJlZl9jYWNo ZSwgewotICAgICAgICAnbW9kdWxlJzogJ3NxbGVkaXRvcicsCi0gICAgICAgICduYW1lJzogJ3Jl c3VsdHNfZ3JpZF9xdW90ZV9jaGFyJywKLSAgICAgIH0pLnZhbHVlOwotICAgICAgc2VsZi5ncmlk LkNTVk9wdGlvbnMuZmllbGRfc2VwYXJhdG9yID0gXy5maW5kV2hlcmUocHJlZl9jYWNoZSwgewot ICAgICAgICAnbW9kdWxlJzogJ3NxbGVkaXRvcicsCi0gICAgICAgICduYW1lJzogJ3Jlc3VsdHNf Z3JpZF9maWVsZF9zZXBhcmF0b3InLAotICAgICAgfSkudmFsdWU7CisgICAgICB2YXIgc2VsZiA9 IHRoaXM7CiAKICAgICAgIC8vIFRyaWdnZXIgdGhlIGNvcHkgc2lnbmFsIHRvIHRoZSBTcWxFZGl0 b3JDb250cm9sbGVyIGNsYXNzCiAgICAgICBzZWxmLmhhbmRsZXIudHJpZ2dlcigKQEAgLTE3MDgs NyArMTY3Myw3IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgIGtleUFjdGlvbjog ZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgIHZhciBwYW5lbF9pZCwgc2VsZiA9IHRoaXM7CiAgICAg ICBwYW5lbF9pZCA9IGtleWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAg ICAgICAgdGhpcy5oYW5kbGVyLCB0aGlzLmtleWJvYXJkU2hvcnRjdXRDb25maWcsIHF1ZXJ5VG9v bEFjdGlvbnMsIGV2ZW50CisgICAgICAgIHRoaXMuaGFuZGxlciwgcXVlcnlUb29sQWN0aW9ucywg ZXZlbnQKICAgICAgICk7CiAKICAgICAgIC8vIElmIGl0IHJldHVybiBwYW5lbCBpZCB0aGVuIGZv Y3VzIGl0CkBAIC0xOTMzLDIzICsxODk4LDE3IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywg WwogICAgICAgICogaGVhZGVyIGFuZCBsb2FkaW5nIGljb24gYW5kIHN0YXJ0IGV4ZWN1dGlvbiBv ZiB0aGUgc3FsIHF1ZXJ5LgogICAgICAgICovCiAgICAgICBzdGFydDogZnVuY3Rpb24odHJhbnNJ ZCwgaXNfcXVlcnlfdG9vbCwgZWRpdG9yX3RpdGxlLCBzY3JpcHRfdHlwZV91cmwsCi0gICAgICAg ICAgaXNfbmV3X2Jyb3dzZXJfdGFiLCBzZXJ2ZXJfdHlwZSwgcHJvbXB0X3NhdmVfY2hhbmdlcywg dXJsX3BhcmFtcworICAgICAgICBzZXJ2ZXJfdHlwZSwgdXJsX3BhcmFtcwogICAgICAgKSB7CiAg ICAgICAgIHZhciBzZWxmID0gdGhpczsKIAogICAgICAgICBzZWxmLmlzX3F1ZXJ5X3Rvb2wgPSBp c19xdWVyeV90b29sOwogICAgICAgICBzZWxmLnJvd3NfYWZmZWN0ZWQgPSAwOwogICAgICAgICBz ZWxmLm1hcmtlZF9saW5lX25vID0gMDsKLSAgICAgICAgc2VsZi5leHBsYWluX3ZlcmJvc2UgPSBm YWxzZTsKLSAgICAgICAgc2VsZi5leHBsYWluX2Nvc3RzID0gZmFsc2U7Ci0gICAgICAgIHNlbGYu ZXhwbGFpbl9idWZmZXJzID0gZmFsc2U7Ci0gICAgICAgIHNlbGYuZXhwbGFpbl90aW1pbmcgPSBm YWxzZTsKLSAgICAgICAgc2VsZi5pc19uZXdfYnJvd3Nlcl90YWIgPSBpc19uZXdfYnJvd3Nlcl90 YWI7CiAgICAgICAgIHNlbGYuaGFzX21vcmVfcm93cyA9IGZhbHNlOwogICAgICAgICBzZWxmLmZl dGNoaW5nX3Jvd3MgPSBmYWxzZTsKICAgICAgICAgc2VsZi5jbG9zZV9vbl9zYXZlID0gZmFsc2U7 CiAgICAgICAgIHNlbGYuc2VydmVyX3R5cGUgPSBzZXJ2ZXJfdHlwZTsKLSAgICAgICAgc2VsZi5w cm9tcHRfc2F2ZV9jaGFuZ2VzID0gcHJvbXB0X3NhdmVfY2hhbmdlczsKICAgICAgICAgc2VsZi51 cmxfcGFyYW1zID0gdXJsX3BhcmFtczsKICAgICAgICAgc2VsZi5zY3JpcHRfdHlwZV91cmwgPSBz Y3JpcHRfdHlwZV91cmw7CiAKQEAgLTIwMjIsNyArMTk4MSw2IEBAIGRlZmluZSgndG9vbHMucXVl cnl0b29sJywgWwogICAgICAgICAvLyBMaXN0ZW4gdG8gdGhlIGNvZGVtaXJyb3Igb24gdGV4dCBj aGFuZ2UgZXZlbnQKICAgICAgICAgLy8gb25seSBpbiBxdWVyeSBlZGl0b3IgdG9vbAogICAgICAg ICBpZiAoc2VsZi5pc19xdWVyeV90b29sKSB7Ci0gICAgICAgICAgc2VsZi5nZXRfcHJlZmVyZW5j ZXMoKTsKICAgICAgICAgICBzZWxmLmdyaWRWaWV3LnF1ZXJ5X3Rvb2xfb2JqLm9uKCdjaGFuZ2Un LCBzZWxmLl9vbl9xdWVyeV9jaGFuZ2UuYmluZChzZWxmKSk7CiAgICAgICAgIH0KIApAQCAtMjgz MCw3ICsyNzg4LDcgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICAgICBzZXRUaXRs ZTogZnVuY3Rpb24odGl0bGUsIHVuc2FmZSkgewogICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CiAK LSAgICAgICAgaWYgKHNlbGYuaXNfbmV3X2Jyb3dzZXJfdGFiKSB7CisgICAgICAgIGlmIChzZWxm LnByZWZlcmVuY2VzLm5ld19icm93c2VyX3RhYikgewogICAgICAgICAgIHdpbmRvdy5kb2N1bWVu dC50aXRsZSA9IHRpdGxlOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgIF8uZWFjaCh3aW5k b3cudG9wLnBnQWRtaW4uQnJvd3Nlci5kb2NrZXIuZmluZFBhbmVscygnZnJtX2RhdGFncmlkJyks IGZ1bmN0aW9uKHApIHsKQEAgLTI5OTIsNyArMjk1MCw3IEBAIGRlZmluZSgndG9vbHMucXVlcnl0 b29sJywgWwogICAgICAgICAgICAgdmFyIHRpdGxlID0gc2VsZi5ncmlkVmlldy5jdXJyZW50X2Zp bGUucmVwbGFjZSgvXi4qW1xcXC9dL2csICcnKSArICcgKic7CiAgICAgICAgICAgICBzZWxmLnNl dFRpdGxlKHRpdGxlLCB0cnVlKTsKICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYg KHNlbGYuaXNfbmV3X2Jyb3dzZXJfdGFiKSB7CisgICAgICAgICAgICBpZiAoc2VsZi5wcmVmZXJl bmNlcy5uZXdfYnJvd3Nlcl90YWIpIHsKICAgICAgICAgICAgICAgdGl0bGUgPSB3aW5kb3cuZG9j dW1lbnQudGl0bGUgKyAnIConOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAg Ly8gRmluZCB0aGUgdGl0bGUgb2YgdGhlIHZpc2libGUgcGFuZWwKQEAgLTM1NzAsMjIgKzM1Mjgs OCBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgICAgfSk7CiAgICAgICB9LAog Ci0gICAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgdG9nZ2xlICJ2ZXJib3NlIiBvcHRpb24gaW4g ZXhwbGFpbgotICAgICAgX2V4cGxhaW5fdmVyYm9zZTogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZh ciBzZWxmID0gdGhpczsKLSAgICAgICAgaWYgKCQoJy5leHBsYWluLXZlcmJvc2UnKS5oYXNDbGFz cygndmlzaWJpbGl0eS1oaWRkZW4nKSA9PT0gdHJ1ZSkgewotICAgICAgICAgICQoJy5leHBsYWlu LXZlcmJvc2UnKS5yZW1vdmVDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgICAgICAgICBz ZWxmLmV4cGxhaW5fdmVyYm9zZSA9IHRydWU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg JCgnLmV4cGxhaW4tdmVyYm9zZScpLmFkZENsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwotICAg ICAgICAgIHNlbGYuZXhwbGFpbl92ZXJib3NlID0gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAg ICAvLyBTZXQgdGhpcyBvcHRpb24gaW4gcHJlZmVyZW5jZXMKLSAgICAgICAgdmFyIGRhdGEgPSB7 Ci0gICAgICAgICAgJ2V4cGxhaW5fdmVyYm9zZSc6IHNlbGYuZXhwbGFpbl92ZXJib3NlLAotICAg ICAgICB9OwotCisgICAgICBleHBsYWluUHJlZmVyZW5jZVVwZGF0ZTogIGZ1bmN0aW9uKHN1Ykl0 ZW0sIGRhdGEsIGNhbGxlcikgeworICAgICAgICBsZXQgc2VsZiA9IHRoaXM7CiAgICAgICAgICQu YWpheCh7CiAgICAgICAgICAgdXJsOiB1cmxfZm9yKCdzcWxlZGl0b3IucXVlcnlfdG9vbF9wcmVm ZXJlbmNlcycsIHsKICAgICAgICAgICAgICd0cmFuc19pZCc6IHNlbGYudHJhbnNJZCwKQEAgLTM1 OTYsMTMzICszNTQwLDk0IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgICAgICAg IHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykgewogICAgICAgICAgICAgaWYgKHJlcy5zdWNjZXNzID09 IHVuZGVmaW5lZCB8fCAhcmVzLnN1Y2Nlc3MpIHsKICAgICAgICAgICAgICAgYWxlcnRpZnkuYWxl cnQoZ2V0dGV4dCgnRXhwbGFpbiBvcHRpb25zIGVycm9yJyksCi0gICAgICAgICAgICAgICAgZ2V0 dGV4dCgnRXJyb3Igb2NjdXJyZWQgd2hpbGUgc2V0dGluZyB2ZXJib3NlIG9wdGlvbiBpbiBleHBs YWluLicpCisgICAgICAgICAgICAgICAgZ2V0dGV4dCgnRXJyb3Igb2NjdXJyZWQgd2hpbGUgc2V0 dGluZyAlKHN1Ykl0ZW0pcyBvcHRpb24gaW4gZXhwbGFpbi4nLAorICAgICAgICAgICAgICAgICAg ICAgICAge3N1Ykl0ZW0gOiBzdWJJdGVtfSkKICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAg IH0KICAgICAgICAgICB9LAogICAgICAgICAgIGVycm9yOiBmdW5jdGlvbihlKSB7CiAgICAgICAg ICAgICBsZXQgbXNnID0gaHR0cEVycm9ySGFuZGxlci5oYW5kbGVRdWVyeVRvb2xBamF4RXJyb3Io Ci0gICAgICAgICAgICAgIHBnQWRtaW4sIHNlbGYsIGUsICdfZXhwbGFpbl92ZXJib3NlJywgW10s IHRydWUKKyAgICAgICAgICAgICAgcGdBZG1pbiwgc2VsZiwgZSwgY2FsbGVyLCBbXSwgdHJ1ZQog ICAgICAgICAgICAgKTsKICAgICAgICAgICAgIGFsZXJ0aWZ5LmFsZXJ0KGdldHRleHQoJ0V4cGxh aW4gb3B0aW9ucyBlcnJvcicpLCBtc2cpOwogICAgICAgICAgIH0sCiAgICAgICAgIH0pOwogICAg ICAgfSwKIAorICAgICAgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIHRvZ2dsZSAidmVyYm9zZSIgb3B0 aW9uIGluIGV4cGxhaW4KKyAgICAgIF9leHBsYWluX3ZlcmJvc2U6IGZ1bmN0aW9uKCkgeworICAg ICAgICB2YXIgc2VsZiA9IHRoaXM7CisgICAgICAgIGxldCBleHBsYWluX3ZlcmJvc2UgPSBmYWxz ZTsKKyAgICAgICAgaWYgKCQoJy5leHBsYWluLXZlcmJvc2UnKS5oYXNDbGFzcygndmlzaWJpbGl0 eS1oaWRkZW4nKSA9PT0gdHJ1ZSkgeworICAgICAgICAgICQoJy5leHBsYWluLXZlcmJvc2UnKS5y ZW1vdmVDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKKyAgICAgICAgICBleHBsYWluX3ZlcmJv c2UgPSB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICQoJy5leHBsYWluLXZlcmJv c2UnKS5hZGRDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKKyAgICAgICAgICBleHBsYWluX3Zl cmJvc2UgPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHNlbGYuZXhwbGFpblByZWZlcmVu Y2VVcGRhdGUoCisgICAgICAgICAgJ3ZlcmJvc2UnLCB7CisgICAgICAgICAgICAnZXhwbGFpbl92 ZXJib3NlJzogZXhwbGFpbl92ZXJib3NlLAorICAgICAgICAgIH0sICdfZXhwbGFpbl92ZXJib3Nl JworICAgICAgICApOworICAgICAgfSwKKwogICAgICAgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIHRv Z2dsZSAiY29zdHMiIG9wdGlvbiBpbiBleHBsYWluCiAgICAgICBfZXhwbGFpbl9jb3N0czogZnVu Y3Rpb24oKSB7CiAgICAgICAgIHZhciBzZWxmID0gdGhpczsKKyAgICAgICAgbGV0IGV4cGxhaW5f Y29zdHMgPSBmYWxzZTsKICAgICAgICAgaWYgKCQoJy5leHBsYWluLWNvc3RzJykuaGFzQ2xhc3Mo J3Zpc2liaWxpdHktaGlkZGVuJykgPT09IHRydWUpIHsKICAgICAgICAgICAkKCcuZXhwbGFpbi1j b3N0cycpLnJlbW92ZUNsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwotICAgICAgICAgIHNlbGYu ZXhwbGFpbl9jb3N0cyA9IHRydWU7CisgICAgICAgICAgZXhwbGFpbl9jb3N0cyA9IHRydWU7CiAg ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgJCgnLmV4cGxhaW4tY29zdHMnKS5hZGRDbGFzcygn dmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgICAgICAgICBzZWxmLmV4cGxhaW5fY29zdHMgPSBmYWxz ZTsKKyAgICAgICAgICBleHBsYWluX2Nvc3RzID0gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAg ICAvLyBTZXQgdGhpcyBvcHRpb24gaW4gcHJlZmVyZW5jZXMKLSAgICAgICAgdmFyIGRhdGEgPSB7 Ci0gICAgICAgICAgJ2V4cGxhaW5fY29zdHMnOiBzZWxmLmV4cGxhaW5fY29zdHMsCi0gICAgICAg IH07Ci0KLSAgICAgICAgJC5hamF4KHsKLSAgICAgICAgICB1cmw6IHVybF9mb3IoJ3NxbGVkaXRv ci5xdWVyeV90b29sX3ByZWZlcmVuY2VzJywgewotICAgICAgICAgICAgJ3RyYW5zX2lkJzogc2Vs Zi50cmFuc0lkLAotICAgICAgICAgIH0pLAotICAgICAgICAgIG1ldGhvZDogJ1BVVCcsCi0gICAg ICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJywKLSAgICAgICAgICBkYXRhOiBK U09OLnN0cmluZ2lmeShkYXRhKSwKLSAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihyZXMpIHsK LSAgICAgICAgICAgIGlmIChyZXMuc3VjY2VzcyA9PSB1bmRlZmluZWQgfHwgIXJlcy5zdWNjZXNz KSB7Ci0gICAgICAgICAgICAgIGFsZXJ0aWZ5LmFsZXJ0KGdldHRleHQoJ0V4cGxhaW4gb3B0aW9u cyBlcnJvcicpLAotICAgICAgICAgICAgICAgIGdldHRleHQoJ0Vycm9yIG9jY3VycmVkIHdoaWxl IHNldHRpbmcgY29zdHMgb3B0aW9uIGluIGV4cGxhaW4uJykKLSAgICAgICAgICAgICAgKTsKLSAg ICAgICAgICAgIH0KLSAgICAgICAgICB9LAotICAgICAgICAgIGVycm9yOiBmdW5jdGlvbihlKSB7 Ci0gICAgICAgICAgICBsZXQgbXNnID0gaHR0cEVycm9ySGFuZGxlci5oYW5kbGVRdWVyeVRvb2xB amF4RXJyb3IoCi0gICAgICAgICAgICAgIHBnQWRtaW4sIHNlbGYsIGUsICdfZXhwbGFpbl9jb3N0 cycsIFtdLCB0cnVlCi0gICAgICAgICAgICApOwotICAgICAgICAgICAgYWxlcnRpZnkuYWxlcnQo Z2V0dGV4dCgnRXhwbGFpbiBvcHRpb25zIGVycm9yJyksIG1zZyk7Ci0gICAgICAgICAgfSwKLSAg ICAgICAgfSk7CisgICAgICAgIHNlbGYuZXhwbGFpblByZWZlcmVuY2VVcGRhdGUoCisgICAgICAg ICAgJ2Nvc3RzJywgeworICAgICAgICAgICAgJ2V4cGxhaW5fY29zdHMnOiBleHBsYWluX2Nvc3Rz LAorICAgICAgICAgIH0sICdfZXhwbGFpbl9jb3N0cycKKyAgICAgICAgKTsKICAgICAgIH0sCiAK ICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gd2lsbCB0b2dnbGUgImJ1ZmZlcnMiIG9wdGlvbiBpbiBl eHBsYWluCiAgICAgICBfZXhwbGFpbl9idWZmZXJzOiBmdW5jdGlvbigpIHsKICAgICAgICAgdmFy IHNlbGYgPSB0aGlzOworICAgICAgICBsZXQgZXhwbGFpbl9idWZmZXJzID0gZmFsc2U7CiAgICAg ICAgIGlmICgkKCcuZXhwbGFpbi1idWZmZXJzJykuaGFzQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVu JykgPT09IHRydWUpIHsKICAgICAgICAgICAkKCcuZXhwbGFpbi1idWZmZXJzJykucmVtb3ZlQ2xh c3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7Ci0gICAgICAgICAgc2VsZi5leHBsYWluX2J1ZmZlcnMg PSB0cnVlOworICAgICAgICAgIGV4cGxhaW5fYnVmZmVycyA9IHRydWU7CiAgICAgICAgIH0gZWxz ZSB7CiAgICAgICAgICAgJCgnLmV4cGxhaW4tYnVmZmVycycpLmFkZENsYXNzKCd2aXNpYmlsaXR5 LWhpZGRlbicpOwotICAgICAgICAgIHNlbGYuZXhwbGFpbl9idWZmZXJzID0gZmFsc2U7CisgICAg ICAgICAgZXhwbGFpbl9idWZmZXJzID0gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBT ZXQgdGhpcyBvcHRpb24gaW4gcHJlZmVyZW5jZXMKLSAgICAgICAgdmFyIGRhdGEgPSB7Ci0gICAg ICAgICAgJ2V4cGxhaW5fYnVmZmVycyc6IHNlbGYuZXhwbGFpbl9idWZmZXJzLAotICAgICAgICB9 OwotCi0gICAgICAgICQuYWpheCh7Ci0gICAgICAgICAgdXJsOiB1cmxfZm9yKCdzcWxlZGl0b3Iu cXVlcnlfdG9vbF9wcmVmZXJlbmNlcycsIHsKLSAgICAgICAgICAgICd0cmFuc19pZCc6IHNlbGYu dHJhbnNJZCwKLSAgICAgICAgICB9KSwKLSAgICAgICAgICBtZXRob2Q6ICdQVVQnLAotICAgICAg ICAgIGNvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNvbicsCi0gICAgICAgICAgZGF0YTogSlNP Ti5zdHJpbmdpZnkoZGF0YSksCi0gICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24ocmVzKSB7Ci0g ICAgICAgICAgICBpZiAocmVzLnN1Y2Nlc3MgPT0gdW5kZWZpbmVkIHx8ICFyZXMuc3VjY2Vzcykg ewotICAgICAgICAgICAgICBhbGVydGlmeS5hbGVydChnZXR0ZXh0KCdFeHBsYWluIG9wdGlvbnMg ZXJyb3InKSwKLSAgICAgICAgICAgICAgICBnZXR0ZXh0KCdFcnJvciBvY2N1cnJlZCB3aGlsZSBz ZXR0aW5nIGJ1ZmZlcnMgb3B0aW9uIGluIGV4cGxhaW4uJykKLSAgICAgICAgICAgICAgKTsKLSAg ICAgICAgICAgIH0KLSAgICAgICAgICB9LAotICAgICAgICAgIGVycm9yOiBmdW5jdGlvbihlKSB7 Ci0gICAgICAgICAgICBsZXQgbXNnID0gaHR0cEVycm9ySGFuZGxlci5oYW5kbGVRdWVyeVRvb2xB amF4RXJyb3IoCi0gICAgICAgICAgICAgIHBnQWRtaW4sIHNlbGYsIGUsICdfZXhwbGFpbl9idWZm ZXJzJywgW10sIHRydWUKLSAgICAgICAgICAgICk7Ci0gICAgICAgICAgICBhbGVydGlmeS5hbGVy dChnZXR0ZXh0KCdFeHBsYWluIG9wdGlvbnMgZXJyb3InKSwgbXNnKTsKLSAgICAgICAgICB9LAot ICAgICAgICB9KTsKKyAgICAgICAgc2VsZi5leHBsYWluUHJlZmVyZW5jZVVwZGF0ZSgKKyAgICAg ICAgICAnYnVmZmVycycsIHsKKyAgICAgICAgICAgICdleHBsYWluX2J1ZmZlcnMnOiBleHBsYWlu X2J1ZmZlcnMsCisgICAgICAgICAgfSwgJ19leHBsYWluX2J1ZmZlcnMnCisgICAgICAgICk7CiAg ICAgICB9LAogCiAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgdG9nZ2xlICJ0aW1pbmciIG9w dGlvbiBpbiBleHBsYWluCiAgICAgICBfZXhwbGFpbl90aW1pbmc6IGZ1bmN0aW9uKCkgewogICAg ICAgICB2YXIgc2VsZiA9IHRoaXM7CisgICAgICAgIGxldCBleHBsYWluX3RpbWluZyA9IGZhbHNl OwogICAgICAgICBpZiAoJCgnLmV4cGxhaW4tdGltaW5nJykuaGFzQ2xhc3MoJ3Zpc2liaWxpdHkt aGlkZGVuJykgPT09IHRydWUpIHsKICAgICAgICAgICAkKCcuZXhwbGFpbi10aW1pbmcnKS5yZW1v dmVDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgICAgICAgICBzZWxmLmV4cGxhaW5fdGlt aW5nID0gdHJ1ZTsKKyAgICAgICAgICBleHBsYWluX3RpbWluZyA9IHRydWU7CiAgICAgICAgIH0g ZWxzZSB7CiAgICAgICAgICAgJCgnLmV4cGxhaW4tdGltaW5nJykuYWRkQ2xhc3MoJ3Zpc2liaWxp dHktaGlkZGVuJyk7Ci0gICAgICAgICAgc2VsZi5leHBsYWluX3RpbWluZyA9IGZhbHNlOworICAg ICAgICAgIGV4cGxhaW5fdGltaW5nID0gZmFsc2U7CiAgICAgICAgIH0KLSAgICAgICAgLy8gU2V0 IHRoaXMgb3B0aW9uIGluIHByZWZlcmVuY2VzCi0gICAgICAgIHZhciBkYXRhID0gewotICAgICAg ICAgICdleHBsYWluX3RpbWluZyc6IHNlbGYuZXhwbGFpbl90aW1pbmcsCi0gICAgICAgIH07CiAK LSAgICAgICAgJC5hamF4KHsKLSAgICAgICAgICB1cmw6IHVybF9mb3IoJ3NxbGVkaXRvci5xdWVy eV90b29sX3ByZWZlcmVuY2VzJywgewotICAgICAgICAgICAgJ3RyYW5zX2lkJzogc2VsZi50cmFu c0lkLAotICAgICAgICAgIH0pLAotICAgICAgICAgIG1ldGhvZDogJ1BVVCcsCi0gICAgICAgICAg Y29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJywKLSAgICAgICAgICBkYXRhOiBKU09OLnN0 cmluZ2lmeShkYXRhKSwKLSAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihyZXMpIHsKLSAgICAg ICAgICAgIGlmIChyZXMuc3VjY2VzcyA9PSB1bmRlZmluZWQgfHwgIXJlcy5zdWNjZXNzKSB7Ci0g ICAgICAgICAgICAgIGFsZXJ0aWZ5LmFsZXJ0KGdldHRleHQoJ0V4cGxhaW4gb3B0aW9ucyBlcnJv cicpLAotICAgICAgICAgICAgICAgIGdldHRleHQoJ0Vycm9yIG9jY3VycmVkIHdoaWxlIHNldHRp bmcgdGltaW5nIG9wdGlvbiBpbiBleHBsYWluLicpCi0gICAgICAgICAgICAgICk7Ci0gICAgICAg ICAgICB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgICBlcnJvcjogZnVuY3Rpb24oZSkgewotICAg ICAgICAgICAgbGV0IG1zZyA9IGh0dHBFcnJvckhhbmRsZXIuaGFuZGxlUXVlcnlUb29sQWpheEVy cm9yKAotICAgICAgICAgICAgICBwZ0FkbWluLCBzZWxmLCBlLCAnX2V4cGxhaW5fdGltaW5nJywg W10sIHRydWUKLSAgICAgICAgICAgICk7Ci0gICAgICAgICAgICBhbGVydGlmeS5hbGVydChnZXR0 ZXh0KCdFeHBsYWluIG9wdGlvbnMgZXJyb3InKSwgbXNnKTsKLSAgICAgICAgICB9LAotICAgICAg ICB9KTsKKyAgICAgICAgc2VsZi5leHBsYWluUHJlZmVyZW5jZVVwZGF0ZSgKKyAgICAgICAgICAn dGltaW5nJywgeworICAgICAgICAgICAgJ2V4cGxhaW5fdGltaW5nJzogZXhwbGFpbl90aW1pbmcs CisgICAgICAgICAgfSwgJ19leHBsYWluX3RpbWluZycKKyAgICAgICAgKTsKICAgICAgIH0sCiAK ICAgICAgIC8qCkBAIC0zNzUxLDg1ICszNjU2LDYgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wn LCBbCiAgICAgICAgIGlzX3F1ZXJ5X3J1bm5pbmcgPSB2YWx1ZTsKICAgICAgIH0sCiAKLSAgICAg IC8qCi0gICAgICAgKiBUaGlzIGZ1bmN0aW9uIGdldCBleHBsYWluIG9wdGlvbnMgYW5kIGF1dG8g cm9sbGJhY2svYXV0byBjb21taXQKLSAgICAgICAqIHZhbHVlcyBmcm9tIHByZWZlcmVuY2VzCi0g ICAgICAgKi8KLSAgICAgIGdldF9wcmVmZXJlbmNlczogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZh ciBzZWxmID0gdGhpcywKLSAgICAgICAgICBleHBsYWluX3ZlcmJvc2UgPSBmYWxzZSwKLSAgICAg ICAgICBleHBsYWluX2Nvc3RzID0gZmFsc2UsCi0gICAgICAgICAgZXhwbGFpbl9idWZmZXJzID0g ZmFsc2UsCi0gICAgICAgICAgZXhwbGFpbl90aW1pbmcgPSBmYWxzZSwKLSAgICAgICAgICBhdXRv X2NvbW1pdCA9IHRydWUsCi0gICAgICAgICAgYXV0b19yb2xsYmFjayA9IGZhbHNlLAotICAgICAg ICAgIHVwZGF0ZVVJID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAvLyBTZXQgQXV0by1jb21t aXQgYW5kIGF1dG8tcm9sbGJhY2sgb24gcXVlcnkgZWRpdG9yCi0gICAgICAgICAgICBpZiAoYXV0 b19jb21taXQgJiYKLSAgICAgICAgICAgICAgJCgnLmF1dG8tY29tbWl0JykuaGFzQ2xhc3MoJ3Zp c2liaWxpdHktaGlkZGVuJykgPT09IHRydWUpCi0gICAgICAgICAgICAgICQoJy5hdXRvLWNvbW1p dCcpLnJlbW92ZUNsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwotICAgICAgICAgICAgZWxzZSB7 Ci0gICAgICAgICAgICAgICQoJy5hdXRvLWNvbW1pdCcpLmFkZENsYXNzKCd2aXNpYmlsaXR5LWhp ZGRlbicpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGF1dG9fcm9sbGJhY2sgJiYK LSAgICAgICAgICAgICAgJCgnLmF1dG8tcm9sbGJhY2snKS5oYXNDbGFzcygndmlzaWJpbGl0eS1o aWRkZW4nKSA9PT0gdHJ1ZSkKLSAgICAgICAgICAgICAgJCgnLmF1dG8tcm9sbGJhY2snKS5yZW1v dmVDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAg ICAgICAgICAkKCcuYXV0by1yb2xsYmFjaycpLmFkZENsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicp OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBTZXQgZXhwbGFpbiBvcHRpb25zIG9u IHF1ZXJ5IGVkaXRvcgotICAgICAgICAgICAgaWYgKGV4cGxhaW5fdmVyYm9zZSAmJgotICAgICAg ICAgICAgICAkKCcuZXhwbGFpbi12ZXJib3NlJykuaGFzQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVu JykgPT09IHRydWUpCi0gICAgICAgICAgICAgICQoJy5leHBsYWluLXZlcmJvc2UnKS5yZW1vdmVD bGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAg ICAgICAkKCcuZXhwbGFpbi12ZXJib3NlJykuYWRkQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7 Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoZXhwbGFpbl9jb3N0cyAmJgotICAgICAg ICAgICAgICAkKCcuZXhwbGFpbi1jb3N0cycpLmhhc0NsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicp ID09PSB0cnVlKQotICAgICAgICAgICAgICAkKCcuZXhwbGFpbi1jb3N0cycpLnJlbW92ZUNsYXNz KCd2aXNpYmlsaXR5LWhpZGRlbicpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAg ICQoJy5leHBsYWluLWNvc3RzJykuYWRkQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7Ci0gICAg ICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoZXhwbGFpbl9idWZmZXJzICYmCi0gICAgICAgICAg ICAgICQoJy5leHBsYWluLWJ1ZmZlcnMnKS5oYXNDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKSA9 PT0gdHJ1ZSkKLSAgICAgICAgICAgICAgJCgnLmV4cGxhaW4tYnVmZmVycycpLnJlbW92ZUNsYXNz KCd2aXNpYmlsaXR5LWhpZGRlbicpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAg ICQoJy5leHBsYWluLWJ1ZmZlcnMnKS5hZGRDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAg ICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChleHBsYWluX3RpbWluZyAmJgotICAgICAgICAg ICAgICAkKCcuZXhwbGFpbi10aW1pbmcnKS5oYXNDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKSA9 PT0gdHJ1ZSkKLSAgICAgICAgICAgICAgJCgnLmV4cGxhaW4tdGltaW5nJykucmVtb3ZlQ2xhc3Mo J3Zpc2liaWxpdHktaGlkZGVuJyk7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAg JCgnLmV4cGxhaW4tdGltaW5nJykuYWRkQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7Ci0gICAg ICAgICAgICB9Ci0gICAgICAgICAgfTsKLQotICAgICAgICAkLmFqYXgoewotICAgICAgICAgIHVy bDogdXJsX2Zvcignc3FsZWRpdG9yLnF1ZXJ5X3Rvb2xfcHJlZmVyZW5jZXMnLCB7Ci0gICAgICAg ICAgICAndHJhbnNfaWQnOiBzZWxmLnRyYW5zSWQsCi0gICAgICAgICAgfSksCi0gICAgICAgICAg bWV0aG9kOiAnR0VUJywKLSAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihyZXMpIHsKLSAgICAg ICAgICAgIGlmIChyZXMuZGF0YSkgewotICAgICAgICAgICAgICBleHBsYWluX3ZlcmJvc2UgPSBy ZXMuZGF0YS5leHBsYWluX3ZlcmJvc2U7Ci0gICAgICAgICAgICAgIGV4cGxhaW5fY29zdHMgPSBy ZXMuZGF0YS5leHBsYWluX2Nvc3RzOwotICAgICAgICAgICAgICBleHBsYWluX2J1ZmZlcnMgPSBy ZXMuZGF0YS5leHBsYWluX2J1ZmZlcnM7Ci0gICAgICAgICAgICAgIGV4cGxhaW5fdGltaW5nID0g cmVzLmRhdGEuZXhwbGFpbl90aW1pbmc7Ci0gICAgICAgICAgICAgIGF1dG9fY29tbWl0ID0gcmVz LmRhdGEuYXV0b19jb21taXQ7Ci0gICAgICAgICAgICAgIGF1dG9fcm9sbGJhY2sgPSByZXMuZGF0 YS5hdXRvX3JvbGxiYWNrOwotICAgICAgICAgICAgICB1cGRhdGVVSSgpOwotICAgICAgICAgICAg fQotICAgICAgICAgIH0sCi0gICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg ICAgIGxldCBtc2cgPSBodHRwRXJyb3JIYW5kbGVyLmhhbmRsZVF1ZXJ5VG9vbEFqYXhFcnJvcigK LSAgICAgICAgICAgICAgcGdBZG1pbiwgc2VsZiwgZSwgJ2dldF9wcmVmZXJlbmNlcycsIFtdLCB0 cnVlCi0gICAgICAgICAgICApOwotICAgICAgICAgICAgdXBkYXRlVUkoKTsKLSAgICAgICAgICAg IGFsZXJ0aWZ5LmFsZXJ0KGdldHRleHQoJ0dldCBQcmVmZXJlbmNlcyBlcnJvcicpLCBtc2cpOwot ICAgICAgICAgIH0sCi0gICAgICAgIH0pOwotICAgICAgfSwKICAgICAgIGNsb3NlOiBmdW5jdGlv bigpIHsKICAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwogCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9wcmVmX3V0aWxpdGllcy5weSBiL3dlYi9wZ2Fk bWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90ZXN0X3ByZWZfdXRpbGl0aWVzLnB5CmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYmQxNDFiMC4uMDAwMDAwMDAKLS0tIGEvd2ViL3BnYWRt aW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3RfcHJlZl91dGlsaXRpZXMucHkKKysrIC9kZXYv bnVsbApAQCAtMSwxMDAgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgcGdBZG1pbiA0 IC0gUG9zdGdyZVNRTCBUb29scwotIwotIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE4LCBUaGUg cGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCi0jIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5k ZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLWZyb20gcGdh ZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcGdhZG1pbi50 b29scy5zcWxlZGl0b3IudXRpbHMucXVlcnlfdG9vbF9wcmVmZXJlbmNlcyBpbXBvcnQgXAotICAg IGdldF90ZXh0X3JlcHJlc2VudGF0aW9uX29mX3Nob3J0Y3V0Ci0KLQotY2xhc3MgVGVzdFF1ZXJ5 VG9vbFByZWZlcmVuY2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIgotICAgIEVuc3VyZXMg dGhhdCB3ZSBhcmUgYWJsZSB0byBmZXRjaCBwcmVmZXJlbmNlcyBwcm9wZXJseQotICAgICIiIgot ICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdDaGVjayB0ZXh0IHJlcHJlc2VudGF0aW9uIG9m IGEgdmFsaWQgc2hvcnRjdXRzJywgZGljdCgKLSAgICAgICAgICAgIGZldGNoX3ByZWY9VHJ1ZSwK LSAgICAgICAgICAgIHNhbXBsZV9zaG9ydGN1dD1kaWN0KAotICAgICAgICAgICAgICAgIGFsdD1G YWxzZSwKLSAgICAgICAgICAgICAgICBzaGlmdD1GYWxzZSwKLSAgICAgICAgICAgICAgICBjb250 cm9sPUZhbHNlLAotICAgICAgICAgICAgICAgIGtleT1kaWN0KAotICAgICAgICAgICAgICAgICAg ICBjaGFyPSdhJywKLSAgICAgICAgICAgICAgICAgICAga2V5Q29kZT02NQotICAgICAgICAgICAg ICAgICkKLSAgICAgICAgICAgICksCi0gICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9J2EnCi0g ICAgICAgICkpLAotCi0gICAgICAgICgnQ2hlY2sgdGV4dCByZXByZXNlbnRhdGlvbiBvZiBhIHZh bGlkIHNob3J0Y3V0cycsIGRpY3QoCi0gICAgICAgICAgICBmZXRjaF9wcmVmPVRydWUsCi0gICAg ICAgICAgICBzYW1wbGVfc2hvcnRjdXQ9ZGljdCgKLSAgICAgICAgICAgICAgICBhbHQ9VHJ1ZSwK LSAgICAgICAgICAgICAgICBzaGlmdD1GYWxzZSwKLSAgICAgICAgICAgICAgICBjb250cm9sPUZh bHNlLAotICAgICAgICAgICAgICAgIGtleT1kaWN0KAotICAgICAgICAgICAgICAgICAgICBjaGFy PSdhJywKLSAgICAgICAgICAgICAgICAgICAga2V5Q29kZT02NQotICAgICAgICAgICAgICAgICkK LSAgICAgICAgICAgICksCi0gICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9J0FsdCthJwotICAg ICAgICApKSwKLQotICAgICAgICAoJ0NoZWNrIHRleHQgcmVwcmVzZW50YXRpb24gb2YgYSB2YWxp ZCBzaG9ydGN1dHMnLCBkaWN0KAotICAgICAgICAgICAgZmV0Y2hfcHJlZj1UcnVlLAotICAgICAg ICAgICAgc2FtcGxlX3Nob3J0Y3V0PWRpY3QoCi0gICAgICAgICAgICAgICAgYWx0PVRydWUsCi0g ICAgICAgICAgICAgICAgc2hpZnQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICBjb250cm9sPVRydWUs Ci0gICAgICAgICAgICAgICAga2V5PWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIGNoYXI9J2En LAotICAgICAgICAgICAgICAgICAgICBrZXlDb2RlPTY1Ci0gICAgICAgICAgICAgICAgKQotICAg ICAgICAgICAgKSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0nQWx0K1NoaWZ0K0N0cmwr YScKLSAgICAgICAgKSksCi0KLSAgICAgICAgKCdDaGVjayB0ZXh0IHJlcHJlc2VudGF0aW9uIG9m IGEgdmFsaWQgc2hvcnRjdXRzJywgZGljdCgKLSAgICAgICAgICAgIGZldGNoX3ByZWY9VHJ1ZSwK LSAgICAgICAgICAgIHNhbXBsZV9zaG9ydGN1dD1kaWN0KAotICAgICAgICAgICAgICAgIGFsdD1G YWxzZSwKLSAgICAgICAgICAgICAgICBzaGlmdD1UcnVlLAotICAgICAgICAgICAgICAgIGNvbnRy b2w9RmFsc2UsCi0gICAgICAgICAgICAgICAga2V5PWRpY3QoCi0gICAgICAgICAgICAgICAgICAg IGNoYXI9J2EnLAotICAgICAgICAgICAgICAgICAgICBrZXlDb2RlPTY1Ci0gICAgICAgICAgICAg ICAgKQotICAgICAgICAgICAgKSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0nU2hpZnQr YScKLSAgICAgICAgKSksCi0KLSAgICAgICAgKCdDaGVjayB0ZXh0IHJlcHJlc2VudGF0aW9uIG9m IGEgdmFsaWQgc2hvcnRjdXRzJywgZGljdCgKLSAgICAgICAgICAgIGZldGNoX3ByZWY9VHJ1ZSwK LSAgICAgICAgICAgIHNhbXBsZV9zaG9ydGN1dD1kaWN0KAotICAgICAgICAgICAgICAgIGFsdD1U cnVlLAotICAgICAgICAgICAgICAgIHNoaWZ0PVRydWUsCi0gICAgICAgICAgICAgICAgY29udHJv bD1GYWxzZSwKLSAgICAgICAgICAgICAgICBrZXk9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAg Y2hhcj0nYScsCi0gICAgICAgICAgICAgICAgICAgIGtleUNvZGU9NjUKLSAgICAgICAgICAgICAg ICApCi0gICAgICAgICAgICApLAotICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PSdBbHQrU2hp ZnQrYScKLSAgICAgICAgKSksCi0KLSAgICAgICAgKCdDaGVjayB0ZXh0IHJlcHJlc2VudGF0aW9u IG9mIGEgaW52YWxpZCBzaG9ydGN1dHMnLCBkaWN0KAotICAgICAgICAgICAgZmV0Y2hfcHJlZj1U cnVlLAotICAgICAgICAgICAgc2FtcGxlX3Nob3J0Y3V0PU5vbmUsCi0gICAgICAgICAgICBleHBl Y3RlZF9yZXN1bHQ9JycKLSAgICAgICAgKSkKLQotICAgIF0KLQotICAgIGRlZiBydW5UZXN0KHNl bGYpOgotICAgICAgICAiIiJDaGVjayBjb3JyZWN0IGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBoYW5k bGUgdG8gcnVuIHF1ZXJ5LiIiIgotICAgICAgICByZXN1bHQgPSBnZXRfdGV4dF9yZXByZXNlbnRh dGlvbl9vZl9zaG9ydGN1dChzZWxmLnNhbXBsZV9zaG9ydGN1dCkKLSAgICAgICAgc2VsZi5hc3Nl cnRFcXVhbHMocmVzdWx0LCBzZWxmLmV4cGVjdGVkX3Jlc3VsdCkKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy9xdWVyeV90b29sX3ByZWZlcmVuY2VzLnB5IGIv d2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3V0aWxzL3F1ZXJ5X3Rvb2xfcHJlZmVyZW5jZXMu cHkKaW5kZXggYTVhN2JjYjguLjVlMmE4ZWYxIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29s cy9zcWxlZGl0b3IvdXRpbHMvcXVlcnlfdG9vbF9wcmVmZXJlbmNlcy5weQorKysgYi93ZWIvcGdh ZG1pbi90b29scy9zcWxlZGl0b3IvdXRpbHMvcXVlcnlfdG9vbF9wcmVmZXJlbmNlcy5weQpAQCAt NTYwLDEyMyArNTYwLDMgQEAgZGVmIFJlZ2lzdGVyUXVlcnlUb29sUHJlZmVyZW5jZXMoc2VsZik6 CiAgICAgICAgIGhlbHBfc3RyPWdldHRleHQoJ0lmIHNldCB0byBUcnVlLCBLZXl3b3JkcyB3aWxs IGJlIGRpc3BsYXllZCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luIHVwcGVyIGNhc2Ug Zm9yIGF1dG8gY29tcGxldGlvbi4nKQogICAgICkKLQotCi1kZWYgZ2V0X3F1ZXJ5X3Rvb2xfa2V5 Ym9hcmRfc2hvcnRjdXRzKCk6Ci0KLSAgICAiIiIKLSAgICBGZXRjaCBhbGwgdGhlIHF1ZXJ5IHRv b2wgc2hvcnRjdXQgcHJlZmVyZW5jZXMKLQotICAgIFJldHVybnM6Ci0gICAgICAgIExpc3Qgb2Yg cXVlcnkgdG9vbCBzaG9ydGN1dCBwcmVmZXJlbmNlcwotICAgICIiIgotICAgIHF0X3BlcmYgPSBQ cmVmZXJlbmNlcy5tb2R1bGUoJ3NxbGVkaXRvcicpCi0gICAgY29ubl9zdGF0dXMgPSBxdF9wZXJm LnByZWZlcmVuY2UoJ2J0bl9jb25uX3N0YXR1cycpLmdldCgpCi0gICAgY2xlYXJfb3B0aW9ucyA9 IHF0X3BlcmYucHJlZmVyZW5jZSgnYnRuX2NsZWFyX29wdGlvbnMnKS5nZXQoKQotICAgIGNhbmNl bF9xdWVyeSA9IHF0X3BlcmYucHJlZmVyZW5jZSgnYnRuX2NhbmNlbF9xdWVyeScpLmdldCgpCi0g ICAgZXhlY3V0ZV9vcHRpb25zID0gcXRfcGVyZi5wcmVmZXJlbmNlKCdidG5fZXhlY3V0ZV9vcHRp b25zJykuZ2V0KCkKLSAgICBmaWx0ZXJfb3B0aW9ucyA9IHF0X3BlcmYucHJlZmVyZW5jZSgnYnRu X2ZpbHRlcl9vcHRpb25zJykuZ2V0KCkKLSAgICByb3dzX2xpbWl0ID0gcXRfcGVyZi5wcmVmZXJl bmNlKCdidG5fcm93c19saW1pdCcpLmdldCgpCi0gICAgZmlsdGVyX2RpYWxvZyA9IHF0X3BlcmYu cHJlZmVyZW5jZSgnYnRuX2ZpbHRlcl9kaWFsb2cnKS5nZXQoKQotICAgIGRlbGV0ZV9yb3cgPSBx dF9wZXJmLnByZWZlcmVuY2UoJ2J0bl9kZWxldGVfcm93JykuZ2V0KCkKLSAgICBwYXN0ZV9yb3cg PSBxdF9wZXJmLnByZWZlcmVuY2UoJ2J0bl9wYXN0ZV9yb3cnKS5nZXQoKQotICAgIGNvcHlfcm93 ID0gcXRfcGVyZi5wcmVmZXJlbmNlKCdidG5fY29weV9yb3cnKS5nZXQoKQotICAgIHNhdmVfZmls ZSA9IHF0X3BlcmYucHJlZmVyZW5jZSgnYnRuX3NhdmVfZmlsZScpLmdldCgpCi0gICAgb3Blbl9m aWxlID0gcXRfcGVyZi5wcmVmZXJlbmNlKCdidG5fb3Blbl9maWxlJykuZ2V0KCkKLSAgICBtb3Zl X25leHQgPSBxdF9wZXJmLnByZWZlcmVuY2UoJ21vdmVfbmV4dCcpLmdldCgpCi0gICAgbW92ZV9w cmV2aW91cyA9IHF0X3BlcmYucHJlZmVyZW5jZSgnbW92ZV9wcmV2aW91cycpLmdldCgpCi0gICAg ZG93bmxvYWRfY3N2ID0gcXRfcGVyZi5wcmVmZXJlbmNlKCdkb3dubG9hZF9jc3YnKS5nZXQoKQot ICAgIGV4ZWN1dGVfcXVlcnkgPSBxdF9wZXJmLnByZWZlcmVuY2UoJ2V4ZWN1dGVfcXVlcnknKS5n ZXQoKQotICAgIGV4cGxhaW5fcXVlcnkgPSBxdF9wZXJmLnByZWZlcmVuY2UoJ2V4cGxhaW5fcXVl cnknKS5nZXQoKQotICAgIGV4cGxhaW5fYW5hbHl6ZV9xdWVyeSA9IHF0X3BlcmYucHJlZmVyZW5j ZSgnZXhwbGFpbl9hbmFseXplX3F1ZXJ5JykuZ2V0KCkKLSAgICBmaW5kX29wdGlvbnMgPSBxdF9w ZXJmLnByZWZlcmVuY2UoJ2J0bl9maW5kX29wdGlvbnMnKS5nZXQoKQotICAgIHRvZ2dsZV9jYXNl ID0gcXRfcGVyZi5wcmVmZXJlbmNlKCd0b2dnbGVfY2FzZScpLmdldCgpCi0KLSAgICByZXR1cm4g ewotICAgICAgICAna2V5cyc6IHsKLSAgICAgICAgICAgICdjb25uX3N0YXR1cyc6IGNvbm5fc3Rh dHVzLmdldCgna2V5JykuZ2V0KCdjaGFyJyksCi0gICAgICAgICAgICAnY2xlYXJfb3B0aW9ucyc6 IGNsZWFyX29wdGlvbnMuZ2V0KCdrZXknKS5nZXQoJ2NoYXInKSwKLSAgICAgICAgICAgICdjYW5j ZWxfcXVlcnknOiBjYW5jZWxfcXVlcnkuZ2V0KCdrZXknKS5nZXQoJ2NoYXInKSwKLSAgICAgICAg ICAgICdleGVjdXRlX29wdGlvbnMnOiBleGVjdXRlX29wdGlvbnMuZ2V0KCdrZXknKS5nZXQoJ2No YXInKSwKLSAgICAgICAgICAgICdmaWx0ZXJfb3B0aW9ucyc6IGZpbHRlcl9vcHRpb25zLmdldCgn a2V5JykuZ2V0KCdjaGFyJyksCi0gICAgICAgICAgICAncm93c19saW1pdCc6IHJvd3NfbGltaXQu Z2V0KCdrZXknKS5nZXQoJ2NoYXInKSwKLSAgICAgICAgICAgICdmaWx0ZXJfZGlhbG9nJzogZmls dGVyX2RpYWxvZy5nZXQoJ2tleScpLmdldCgnY2hhcicpLAotICAgICAgICAgICAgJ2RlbGV0ZV9y b3cnOiBkZWxldGVfcm93LmdldCgna2V5JykuZ2V0KCdjaGFyJyksCi0gICAgICAgICAgICAncGFz dGVfcm93JzogcGFzdGVfcm93LmdldCgna2V5JykuZ2V0KCdjaGFyJyksCi0gICAgICAgICAgICAn Y29weV9yb3cnOiBjb3B5X3Jvdy5nZXQoJ2tleScpLmdldCgnY2hhcicpLAotICAgICAgICAgICAg J3NhdmVfZmlsZSc6IHNhdmVfZmlsZS5nZXQoJ2tleScpLmdldCgnY2hhcicpLAotICAgICAgICAg ICAgJ29wZW5fZmlsZSc6IG9wZW5fZmlsZS5nZXQoJ2tleScpLmdldCgnY2hhcicpLAotICAgICAg ICAgICAgJ21vdmVfbmV4dCc6IG1vdmVfbmV4dC5nZXQoJ2tleScpLmdldCgnY2hhcicpLAotICAg ICAgICAgICAgJ21vdmVfcHJldmlvdXMnOiBtb3ZlX3ByZXZpb3VzLmdldCgna2V5JykuZ2V0KCdj aGFyJyksCi0gICAgICAgICAgICAnZG93bmxvYWRfY3N2JzogZG93bmxvYWRfY3N2LmdldCgna2V5 JykuZ2V0KCdjaGFyJyksCi0gICAgICAgICAgICAnZXhlY3V0ZV9xdWVyeSc6IGV4ZWN1dGVfcXVl cnkuZ2V0KCdrZXknKS5nZXQoJ2NoYXInKSwKLSAgICAgICAgICAgICdleHBsYWluX3F1ZXJ5Jzog ZXhwbGFpbl9xdWVyeS5nZXQoJ2tleScpLmdldCgnY2hhcicpLAotICAgICAgICAgICAgJ2V4cGxh aW5fYW5hbHl6ZV9xdWVyeSc6IGV4cGxhaW5fYW5hbHl6ZV9xdWVyeS5nZXQoJ2tleScpLmdldCgK LSAgICAgICAgICAgICAgICAnY2hhcicKLSAgICAgICAgICAgICksCi0gICAgICAgICAgICAnZmlu ZF9vcHRpb25zJzogZmluZF9vcHRpb25zLmdldCgna2V5JykuZ2V0KCdjaGFyJyksCi0gICAgICAg ICAgICAndG9nZ2xlX2Nhc2UnOiB0b2dnbGVfY2FzZS5nZXQoJ2tleScpLmdldCgnY2hhcicpCi0g ICAgICAgIH0sCi0gICAgICAgICdzaG9ydGN1dHMnOiB7Ci0gICAgICAgICAgICAnY29ubl9zdGF0 dXMnOiBjb25uX3N0YXR1cywKLSAgICAgICAgICAgICdjbGVhcl9vcHRpb25zJzogY2xlYXJfb3B0 aW9ucywKLSAgICAgICAgICAgICdjYW5jZWxfcXVlcnknOiBjYW5jZWxfcXVlcnksCi0gICAgICAg ICAgICAnZXhlY3V0ZV9vcHRpb25zJzogZXhlY3V0ZV9vcHRpb25zLAotICAgICAgICAgICAgJ2Zp bHRlcl9vcHRpb25zJzogZmlsdGVyX29wdGlvbnMsCi0gICAgICAgICAgICAncm93c19saW1pdCc6 IHJvd3NfbGltaXQsCi0gICAgICAgICAgICAnZmlsdGVyX2RpYWxvZyc6IGZpbHRlcl9kaWFsb2cs Ci0gICAgICAgICAgICAnZGVsZXRlX3Jvdyc6IGRlbGV0ZV9yb3csCi0gICAgICAgICAgICAncGFz dGVfcm93JzogcGFzdGVfcm93LAotICAgICAgICAgICAgJ2NvcHlfcm93JzogY29weV9yb3csCi0g ICAgICAgICAgICAnc2F2ZV9maWxlJzogc2F2ZV9maWxlLAotICAgICAgICAgICAgJ29wZW5fZmls ZSc6IG9wZW5fZmlsZSwKLSAgICAgICAgICAgICdtb3ZlX25leHQnOiBtb3ZlX25leHQsCi0gICAg ICAgICAgICAnbW92ZV9wcmV2aW91cyc6IG1vdmVfcHJldmlvdXMsCi0gICAgICAgICAgICAnZG93 bmxvYWRfY3N2JzogZG93bmxvYWRfY3N2LAotICAgICAgICAgICAgJ2V4ZWN1dGVfcXVlcnknOiBl eGVjdXRlX3F1ZXJ5LAotICAgICAgICAgICAgJ2V4cGxhaW5fcXVlcnknOiBleHBsYWluX3F1ZXJ5 LAotICAgICAgICAgICAgJ2V4cGxhaW5fYW5hbHl6ZV9xdWVyeSc6IGV4cGxhaW5fYW5hbHl6ZV9x dWVyeSwKLSAgICAgICAgICAgICdmaW5kX29wdGlvbnMnOiBmaW5kX29wdGlvbnMsCi0gICAgICAg ICAgICAndG9nZ2xlX2Nhc2UnOiB0b2dnbGVfY2FzZQotICAgICAgICB9LAotICAgIH0KLQotCi1k ZWYgZ2V0X3RleHRfcmVwcmVzZW50YXRpb25fb2Zfc2hvcnRjdXQoc2hvcnRjdXQpOgotICAgICIi IgotICAgIENvdmVydHMgc2hvcnRjdXQgb2JqZWN0IHRvIHRleHQgcmVwcmVzZW50YXRpb24KLQot ICAgIEFyZ3M6Ci0gICAgICAgIHNob3J0Y3V0OiBTaG9ydGN1dCBvYmplY3QKLQotICAgIFJldHVy bnM6Ci0gICAgICAgIFRleHQgcmVwcmVzZW50YXRpb24gb2YgZ2l2ZW4gc2hvcnRjdXQKLSAgICAi IiIKLSAgICB0ZXh0X3JlcHJlc2VudGF0aW9uID0gJycKLSAgICBpc19wbHVzX3JlcXVpcmVkID0g RmFsc2UKLQotICAgIGlmIG5vdCBzaG9ydGN1dDoKLSAgICAgICAgcmV0dXJuIHRleHRfcmVwcmVz ZW50YXRpb24KLQotICAgIGlmIHNob3J0Y3V0WydhbHQnXToKLSAgICAgICAgdGV4dF9yZXByZXNl bnRhdGlvbiA9IGdldHRleHQoJ0FsdCcpCi0gICAgICAgIGlzX3BsdXNfcmVxdWlyZWQgPSBUcnVl Ci0KLSAgICBpZiBzaG9ydGN1dFsnc2hpZnQnXToKLSAgICAgICAgaWYgaXNfcGx1c19yZXF1aXJl ZDoKLSAgICAgICAgICAgIHRleHRfcmVwcmVzZW50YXRpb24gKz0gJysnCi0gICAgICAgIHRleHRf cmVwcmVzZW50YXRpb24gKz0gZ2V0dGV4dCgnU2hpZnQnKQotICAgICAgICBpc19wbHVzX3JlcXVp cmVkID0gVHJ1ZQotCi0gICAgaWYgc2hvcnRjdXRbJ2NvbnRyb2wnXToKLSAgICAgICAgaWYgaXNf cGx1c19yZXF1aXJlZDoKLSAgICAgICAgICAgIHRleHRfcmVwcmVzZW50YXRpb24gKz0gJysnCi0g ICAgICAgIHRleHRfcmVwcmVzZW50YXRpb24gKz0gZ2V0dGV4dCgnQ3RybCcpCi0gICAgICAgIGlz X3BsdXNfcmVxdWlyZWQgPSBUcnVlCi0KLSAgICBpZiBzaG9ydGN1dFsna2V5J10gYW5kIHNob3J0 Y3V0WydrZXknXVsnY2hhciddOgotICAgICAgICBpZiBpc19wbHVzX3JlcXVpcmVkOgotICAgICAg ICAgICAgdGV4dF9yZXByZXNlbnRhdGlvbiArPSAnKycKLSAgICAgICAgdGV4dF9yZXByZXNlbnRh dGlvbiArPSAnezB9Jy5mb3JtYXQoc2hvcnRjdXRbJ2tleSddWydjaGFyJ10pCi0KLSAgICByZXR1 cm4gdGV4dF9yZXByZXNlbnRhdGlvbgpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNj cmlwdC9icm93c2VyL3ByZWZlcmVuY2VzX3NwZWMuanMgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2Ny aXB0L2Jyb3dzZXIvcHJlZmVyZW5jZXNfc3BlYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMC4uOTU2YjJjMzYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcmVncmVzc2lvbi9q YXZhc2NyaXB0L2Jyb3dzZXIvcHJlZmVyZW5jZXNfc3BlYy5qcwpAQCAtMCwwICsxLDE0MCBAQAor aW1wb3J0IHtwZ0Jyb3dzZXJ9IGZyb20gJ3BnYWRtaW4uYnJvd3Nlci5wcmVmZXJlbmNlcyc7Citp bXBvcnQgJCBmcm9tICdqcXVlcnknOworCit2YXIgZHVtbXlfY2FjaGUgPSBbCisgIHsKKyAgICBp ZDogMSwKKyAgICBtaWQ6IDEsCisgICAgbW9kdWxlOidtb2R1bGUxJywKKyAgICBuYW1lOidwcmVm MScsCisgICAgdmFsdWU6eworICAgICAgYWx0OiBmYWxzZSwKKyAgICAgIHNoaWZ0OiBmYWxzZSwK KyAgICAgIGNvbnRyb2w6IGZhbHNlLAorICAgICAga2V5OiB7CisgICAgICAgIGNoYXI6ICdhJywK KyAgICAgICAga2V5X2NvZGU6IDY1LAorICAgICAgfSwKKyAgICB9LAorICB9LHsKKyAgICBpZDog MiwKKyAgICBtaWQ6IDEsCisgICAgbW9kdWxlOidtb2R1bGUxJywKKyAgICBuYW1lOidwcmVmMics CisgICAgdmFsdWU6IDEyMywKKyAgfSx7CisgICAgaWQ6IDMsCisgICAgbWlkOiAyLAorICAgIG1v ZHVsZTonbW9kdWxlMicsCisgICAgbmFtZToncHJlZjInLAorICAgIHZhbHVlOiB0cnVlLAorICB9 LAorXTsKKworZGVzY3JpYmUoJ3ByZWZlcmVuY2VzIHJlbGF0ZWQgZnVuY3Rpb25zIHRlc3QnLCBm dW5jdGlvbigpIHsKKyAgZGVzY3JpYmUoJ2dldCBwcmVmZXJlbmNlIGRhdGEgcmVsYXRlZCBmdW5j dGlvbnMnLCBmdW5jdGlvbigpeworICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKXsKKyAgICAgIHBn QnJvd3Nlci5wcmVmZXJlbmNlc19jYWNoZSA9IGR1bW15X2NhY2hlOworICAgIH0pOworCisgICAg aXQoJ2dldF9wcmVmZXJlbmNlJywgZnVuY3Rpb24oKXsKKyAgICAgIGV4cGVjdChwZ0Jyb3dzZXIu Z2V0X3ByZWZlcmVuY2UoJ21vZHVsZTEnLCdwcmVmMScpKS50b0VxdWFsKHsKKyAgICAgICAgaWQ6 IDEsCisgICAgICAgIG1pZDogMSwKKyAgICAgICAgbW9kdWxlOidtb2R1bGUxJywKKyAgICAgICAg bmFtZToncHJlZjEnLAorICAgICAgICB2YWx1ZTp7CisgICAgICAgICAgYWx0OiBmYWxzZSwKKyAg ICAgICAgICBzaGlmdDogZmFsc2UsCisgICAgICAgICAgY29udHJvbDogZmFsc2UsCisgICAgICAg ICAga2V5OiB7CisgICAgICAgICAgICBjaGFyOiAnYScsCisgICAgICAgICAgICBrZXlfY29kZTog NjUsCisgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAgICAgIH0pOworICAgIH0pOworCisgICAg aXQoJ2dldF9wcmVmZXJlbmNlc19mb3JfbW9kdWxlJywgZnVuY3Rpb24oKSB7CisgICAgICBleHBl Y3QocGdCcm93c2VyLmdldF9wcmVmZXJlbmNlc19mb3JfbW9kdWxlKCdtb2R1bGUxJykpLnRvRXF1 YWwoeworICAgICAgICAncHJlZjEnOnsKKyAgICAgICAgICBhbHQ6IGZhbHNlLAorICAgICAgICAg IHNoaWZ0OiBmYWxzZSwKKyAgICAgICAgICBjb250cm9sOiBmYWxzZSwKKyAgICAgICAgICBrZXk6 IHsKKyAgICAgICAgICAgIGNoYXI6ICdhJywKKyAgICAgICAgICAgIGtleV9jb2RlOiA2NSwKKyAg ICAgICAgICB9LAorICAgICAgICB9LAorICAgICAgICAncHJlZjInOiAxMjMsCisgICAgICB9KTsK KyAgICB9KTsKKworICAgIGl0KCdnZXRfcHJlZmVyZW5jZV9mb3JfaWQnLCBmdW5jdGlvbigpIHsK KyAgICAgIGV4cGVjdChwZ0Jyb3dzZXIuZ2V0X3ByZWZlcmVuY2VfZm9yX2lkKDMpKS50b0VxdWFs KHsKKyAgICAgICAgaWQ6IDMsCisgICAgICAgIG1pZDogMiwKKyAgICAgICAgbW9kdWxlOidtb2R1 bGUyJywKKyAgICAgICAgbmFtZToncHJlZjInLAorICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAg IH0pOworICAgIH0pOworCisgICAgaXQoJ3JlZmxlY3RQcmVmZXJlbmNlcycsIGZ1bmN0aW9uKCkg eworCisgICAgICBsZXQgZWRpdG9yT3B0aW9ucyA9IHsKKyAgICAgICAgJ3RhYlNpemUnOjIsCisg ICAgICAgICdsaW5lV3JhcHBpbmcnOmZhbHNlLAorICAgICAgICAnYXV0b0Nsb3NlQnJhY2tldHMn OnRydWUsCisgICAgICAgICdtYXRjaEJyYWNrZXRzJzp0cnVlLAorICAgICAgfTsKKyAgICAgIHBn QnJvd3Nlci5wcmVmZXJlbmNlc19jYWNoZS5wdXNoKHsKKyAgICAgICAgaWQ6IDQsIG1pZDogMywg bW9kdWxlOidzcWxlZGl0b3InLCBuYW1lOidzcWxfZm9udF9zaXplJywgdmFsdWU6IDEuNDU2LAor ICAgICAgfSk7CisgICAgICBwZ0Jyb3dzZXIucHJlZmVyZW5jZXNfY2FjaGUucHVzaCh7CisgICAg ICAgIGlkOiA0LCBtaWQ6IDMsIG1vZHVsZTonc3FsZWRpdG9yJywgbmFtZTondGFiX3NpemUnLCB2 YWx1ZTogZWRpdG9yT3B0aW9ucy50YWJTaXplLAorICAgICAgfSk7CisgICAgICBwZ0Jyb3dzZXIu cHJlZmVyZW5jZXNfY2FjaGUucHVzaCh7CisgICAgICAgIGlkOiA0LCBtaWQ6IDMsIG1vZHVsZTon c3FsZWRpdG9yJywgbmFtZTond3JhcF9jb2RlJywgdmFsdWU6IGVkaXRvck9wdGlvbnMubGluZVdy YXBwaW5nLAorICAgICAgfSk7CisgICAgICBwZ0Jyb3dzZXIucHJlZmVyZW5jZXNfY2FjaGUucHVz aCh7CisgICAgICAgIGlkOiA0LCBtaWQ6IDMsIG1vZHVsZTonc3FsZWRpdG9yJywgbmFtZTonaW5z ZXJ0X3BhaXJfYnJhY2tldHMnLCB2YWx1ZTogZWRpdG9yT3B0aW9ucy5hdXRvQ2xvc2VCcmFja2V0 cywKKyAgICAgIH0pOworICAgICAgcGdCcm93c2VyLnByZWZlcmVuY2VzX2NhY2hlLnB1c2goewor ICAgICAgICBpZDogNCwgbWlkOiAzLCBtb2R1bGU6J3NxbGVkaXRvcicsIG5hbWU6J2JyYWNlX21h dGNoaW5nJywgdmFsdWU6IGVkaXRvck9wdGlvbnMubWF0Y2hCcmFja2V0cywKKyAgICAgIH0pOwor CisgICAgICAvKiBTcGllcyAqLworICAgICAgcGdCcm93c2VyLmVkaXRvciA9IGphc21pbmUuY3Jl YXRlU3B5T2JqKAorICAgICAgICAnQ29kZU1pcnJvcicsIFsnc2V0T3B0aW9uJywncmVmcmVzaCcs J2dldFdyYXBwZXJFbGVtZW50J10KKyAgICAgICk7CisgICAgICBzcHlPbigkLmZuLCAnY3NzJyk7 CisKKyAgICAgIC8qIENhbGwgKi8KKyAgICAgIHBnQnJvd3Nlci5yZWZsZWN0UHJlZmVyZW5jZXMo KTsKKworICAgICAgLyogVGVzdHMgKi8KKyAgICAgIGV4cGVjdChwZ0Jyb3dzZXIuZWRpdG9yLmdl dFdyYXBwZXJFbGVtZW50KS50b0hhdmVCZWVuQ2FsbGVkKCk7CisgICAgICBleHBlY3QoJC5mbi5j c3MpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdmb250LXNpemUnLCAnMS40NmVtJyk7CisKKyAgICAg IGxldCBzZXRPcHRpb25DYWxscyA9IHBnQnJvd3Nlci5lZGl0b3Iuc2V0T3B0aW9uLmNhbGxzOwor ICAgICAgZXhwZWN0KHNldE9wdGlvbkNhbGxzLmNvdW50KCkpLnRvQmUoT2JqZWN0LmtleXMoZWRp dG9yT3B0aW9ucykubGVuZ3RoKTsKKworICAgICAgZm9yKGxldCBpID0gMDsgaSA8IE9iamVjdC5r ZXlzKGVkaXRvck9wdGlvbnMpLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGxldCBvcHRpb24gPSBP YmplY3Qua2V5cyhlZGl0b3JPcHRpb25zKVtpXTsKKyAgICAgICAgZXhwZWN0KHNldE9wdGlvbkNh bGxzLmFyZ3NGb3IoaSkpLnRvRXF1YWwoW29wdGlvbiwgZWRpdG9yT3B0aW9uc1tvcHRpb25dXSk7 CisgICAgICB9CisgICAgICBleHBlY3QocGdCcm93c2VyLmVkaXRvci5yZWZyZXNoKS50b0hhdmVC ZWVuQ2FsbGVkKCk7CisgICAgfSk7CisKKyAgICBpdCgnb25QcmVmZXJlbmNlc0NoYW5nZScsIGZ1 bmN0aW9uKCkgeworCisgICAgICB3aW5kb3cucGFyZW50LiQgPSAkOworICAgICAgc3B5T24oJC5m biwgJ29uJyk7CisKKyAgICAgIHZhciBldmVudEhhbmRsZXIgPSBqYXNtaW5lLmNyZWF0ZVNweSgn ZXZlbnRIYW5kbGVyJyk7CisgICAgICBwZ0Jyb3dzZXIub25QcmVmZXJlbmNlc0NoYW5nZSgnc29t ZW1vZHVsZScsIGV2ZW50SGFuZGxlcik7CisgICAgICBleHBlY3QoJC5mbi5vbi5jYWxscy5tb3N0 UmVjZW50KCkuYXJnc1swXSkudG9FcXVhbCgncHJlZmNoYW5nZTpzb21lbW9kdWxlJyk7CisgICAg fSk7CisgIH0pOworfSk7CmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L2hp c3RvcnkvcXVlcnlfaGlzdG9yeV9zcGVjLmpzeCBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQv aGlzdG9yeS9xdWVyeV9oaXN0b3J5X3NwZWMuanN4CmluZGV4IGM0OWIxOWYwLi5iOTBkMmEzMCAx MDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9oaXN0b3J5L3F1ZXJ5X2hpc3Rv cnlfc3BlYy5qc3gKKysrIGIvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9oaXN0b3J5L3F1ZXJ5 X2hpc3Rvcnlfc3BlYy5qc3gKQEAgLTI5LDcgKzI5LDcgQEAgaW1wb3J0ICcuLi9oZWxwZXIvZW56 eW1lLmhlbHBlcic7CiBkZXNjcmliZSgnUXVlcnlIaXN0b3J5JywgKCkgPT4gewogICBsZXQgaGlz dG9yeUNvbGxlY3Rpb247CiAgIGxldCBoaXN0b3J5V3JhcHBlcjsKLQorICBsZXQgc3FsRWRpdG9y UHJlZiA9IHtzcWxfZm9udF9zaXplOiAnMWVtJ307CiAgIGJlZm9yZUVhY2goKCkgPT4gewogICAg IGphc21pbmVFbnp5bWUoKTsKICAgfSk7CkBAIC0zNyw3ICszNyw5IEBAIGRlc2NyaWJlKCdRdWVy eUhpc3RvcnknLCAoKSA9PiB7CiAgIGRlc2NyaWJlKCd3aGVuIHRoZXJlIGlzIG5vIGhpc3Rvcnkn LCAoKSA9PiB7CiAgICAgYmVmb3JlRWFjaCgoKSA9PiB7CiAgICAgICBoaXN0b3J5Q29sbGVjdGlv biA9IG5ldyBIaXN0b3J5Q29sbGVjdGlvbihbXSk7Ci0gICAgICBoaXN0b3J5V3JhcHBlciA9IG1v dW50KDxRdWVyeUhpc3RvcnkgaGlzdG9yeUNvbGxlY3Rpb249e2hpc3RvcnlDb2xsZWN0aW9ufS8+ KTsKKyAgICAgIGhpc3RvcnlXcmFwcGVyID0gbW91bnQoPFF1ZXJ5SGlzdG9yeSBoaXN0b3J5Q29s bGVjdGlvbj17aGlzdG9yeUNvbGxlY3Rpb259CisgICAgICAgIHNxbEVkaXRvclByZWY9e3NxbEVk aXRvclByZWZ9CisgICAgICAvPik7CiAgICAgfSk7CiAKICAgICBkZXNjcmliZSgnd2hlbiB3ZSBz d2l0Y2ggdG8gdGhlIHF1ZXJ5IGhpc3RvcnkgdGFiJywgKCkgPT4gewpAQCAtODksOCArOTEsOSBA QCBkZXNjcmliZSgnUXVlcnlIaXN0b3J5JywgKCkgPT4gewogICAgICAgICAgIG1lc3NhZ2U6ICdz b21ldGhpbmcgaW1wb3J0YW50IEVSUk9SOiAgbWVzc2FnZSBmcm9tIHNlY29uZCBzcWwgcXVlcnkn LAogICAgICAgICB9XTsKICAgICAgICAgaGlzdG9yeUNvbGxlY3Rpb24gPSBuZXcgSGlzdG9yeUNv bGxlY3Rpb24oaGlzdG9yeU9iamVjdHMpOwotCi0gICAgICAgIGhpc3RvcnlXcmFwcGVyID0gbW91 bnQoPFF1ZXJ5SGlzdG9yeSBoaXN0b3J5Q29sbGVjdGlvbj17aGlzdG9yeUNvbGxlY3Rpb259Lz4p OworICAgICAgICBoaXN0b3J5V3JhcHBlciA9IG1vdW50KDxRdWVyeUhpc3RvcnkgaGlzdG9yeUNv bGxlY3Rpb249e2hpc3RvcnlDb2xsZWN0aW9ufQorICAgICAgICAgICAgc3FsRWRpdG9yUHJlZj17 c3FsRWRpdG9yUHJlZn0KKyAgICAgICAgLz4pOwogCiAgICAgICAgIHF1ZXJ5SGlzdG9yeUVudHJp ZXNDb21wb25lbnQgPSBoaXN0b3J5V3JhcHBlci5maW5kKFF1ZXJ5SGlzdG9yeUVudHJpZXMpOwog ICAgICAgICBpc0ludmlzaWJsZVNweSA9IHNweU9uKHF1ZXJ5SGlzdG9yeUVudHJpZXNDb21wb25l bnQuaW5zdGFuY2UoKSwgJ2lzSW52aXNpYmxlJykKQEAgLTQ3OSw3ICs0ODIsOSBAQCBkZXNjcmli ZSgnUXVlcnlIaXN0b3J5JywgKCkgPT4gewogICAgICAgICB9XTsKICAgICAgICAgaGlzdG9yeUNv bGxlY3Rpb24gPSBuZXcgSGlzdG9yeUNvbGxlY3Rpb24oaGlzdG9yeU9iamVjdHMpOwogCi0gICAg ICAgIGhpc3RvcnlXcmFwcGVyID0gbW91bnQoPFF1ZXJ5SGlzdG9yeSBoaXN0b3J5Q29sbGVjdGlv bj17aGlzdG9yeUNvbGxlY3Rpb259Lz4pOworICAgICAgICBoaXN0b3J5V3JhcHBlciA9IG1vdW50 KDxRdWVyeUhpc3RvcnkgaGlzdG9yeUNvbGxlY3Rpb249e2hpc3RvcnlDb2xsZWN0aW9ufQorICAg ICAgICAgICAgc3FsRWRpdG9yUHJlZj17c3FsRWRpdG9yUHJlZn0KKyAgICAgICAgLz4pOwogCiAg ICAgICAgIGNvbnN0IHF1ZXJ5SGlzdG9yeUVudHJpZXNDb21wb25lbnQgPSBoaXN0b3J5V3JhcHBl ci5maW5kKFF1ZXJ5SGlzdG9yeUVudHJpZXMpOwogICAgICAgICBpc0ludmlzaWJsZVNweSA9IHNw eU9uKHF1ZXJ5SGlzdG9yeUVudHJpZXNDb21wb25lbnQuaW5zdGFuY2UoKSwgJ2lzSW52aXNpYmxl JykKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvc3FsZWRpdG9yL2tleWJv YXJkX3Nob3J0Y3V0c19zcGVjLmpzIGIvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zcWxlZGl0 b3Iva2V5Ym9hcmRfc2hvcnRjdXRzX3NwZWMuanMKaW5kZXggMDY1ODZkMzQuLjBlNzc0ODE0IDEw MDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3NxbGVkaXRvci9rZXlib2FyZF9z aG9ydGN1dHNfc3BlYy5qcworKysgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3NxbGVkaXRv ci9rZXlib2FyZF9zaG9ydGN1dHNfc3BlYy5qcwpAQCAtOSw2ICs5LDcgQEAKIAogaW1wb3J0IGtl eWJvYXJkU2hvcnRjdXRzIGZyb20gJ3NvdXJjZXMva2V5Ym9hcmRfc2hvcnRjdXRzJzsKIGltcG9y dCB7cXVlcnlUb29sQWN0aW9uc30gZnJvbSAnc291cmNlcy9zcWxlZGl0b3IvcXVlcnlfdG9vbF9h Y3Rpb25zJzsKK2ltcG9ydCBnZXR0ZXh0IGZyb20gJ3NvdXJjZXMvZ2V0dGV4dCc7CiAKIGRlc2Ny aWJlKCd0aGUga2V5Ym9hcmQgc2hvcnRjdXRzJywgKCkgPT4gewogICBjb25zdCBGMV9LRVkgPSAx MTIsCkBAIC0xOCw3ICsxOSw3IEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQgc2hvcnRjdXRzJywg KCkgPT4gewogICAgIFBFUklPRF9LRVkgPSAxOTAsCiAgICAgRldEX1NMQVNIX0tFWSA9IDE5MTsK IAotICBsZXQgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgZXZlbnQsIHF1ZXJ5VG9vbEFjdGlvbnNT cHksIHF1ZXJ5VG9vbGtleWJvYXJkU2hvcnRjdXRzQ29uZmlnOworICBsZXQgc3FsRWRpdG9yQ29u dHJvbGxlclNweSwgZXZlbnQsIHF1ZXJ5VG9vbEFjdGlvbnNTcHk7CiAgIGJlZm9yZUVhY2goKCkg PT4gewogICAgIGV2ZW50ID0gewogICAgICAgc2hpZnQ6IGZhbHNlLApAQCAtMjksOCArMzAsMjIg QEAgZGVzY3JpYmUoJ3RoZSBrZXlib2FyZCBzaG9ydGN1dHMnLCAoKSA9PiB7CiAgICAgICBzdG9w SW1tZWRpYXRlUHJvcGFnYXRpb246IGphc21pbmUuY3JlYXRlU3B5KCdzdG9wSW1tZWRpYXRlUHJv cGFnYXRpb24nKSwKICAgICB9OwogCi0gICAgcXVlcnlUb29sa2V5Ym9hcmRTaG9ydGN1dHNDb25m aWcgPSB7Ci0gICAgICBleGVjdXRlOiB7CisgICAgbGV0IGdyaWRWaWV3ID0geworICAgICAgcXVl cnlfdG9vbF9vYmo6IHsKKyAgICAgICAgZ2V0U2VsZWN0aW9uOiBqYXNtaW5lLmNyZWF0ZVNweSgn Z2V0U2VsZWN0aW9uJyksCisgICAgICAgIGdldFZhbHVlOiBqYXNtaW5lLmNyZWF0ZVNweSgnZ2V0 VmFsdWUnKSwKKyAgICAgIH0sCisgICAgfTsKKworICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHkg PSBqYXNtaW5lLmNyZWF0ZVNweU9iaignU3FsRWRpdG9yQ29udHJvbGxlcicsIFsKKyAgICAgICdp c1F1ZXJ5UnVubmluZycsCisgICAgICAnZXhlY3V0ZScsCisgICAgXSk7CisKKyAgICBzcWxFZGl0 b3JDb250cm9sbGVyU3B5LmdyaWRWaWV3ID0gZ3JpZFZpZXc7CisKKyAgICBzcWxFZGl0b3JDb250 cm9sbGVyU3B5LnByZWZlcmVuY2VzID0geworICAgICAgZXhlY3V0ZV9xdWVyeTogewogICAgICAg ICBhbHQ6IGZhbHNlLAogICAgICAgICBzaGlmdDogZmFsc2UsCiAgICAgICAgIGNvbnRyb2w6IGZh bHNlLApAQCAtMzgsNyArNTMsNyBAQCBkZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0Y3V0cycs ICgpID0+IHsKICAgICAgICAgICBrZXlfY29kZTogRjVfS0VZLAogICAgICAgICB9LAogICAgICAg fSwKLSAgICAgIGV4cGxhaW46IHsKKyAgICAgIGV4cGxhaW5fcXVlcnk6IHsKICAgICAgICAgYWx0 OiBmYWxzZSwKICAgICAgICAgc2hpZnQ6IGZhbHNlLAogICAgICAgICBjb250cm9sOiBmYWxzZSwK QEAgLTQ2LDcgKzYxLDcgQEAgZGVzY3JpYmUoJ3RoZSBrZXlib2FyZCBzaG9ydGN1dHMnLCAoKSA9 PiB7CiAgICAgICAgICAga2V5X2NvZGU6IEY3X0tFWSwKICAgICAgICAgfSwKICAgICAgIH0sCi0g ICAgICBleHBsYWluX2FuYWx5emU6IHsKKyAgICAgIGV4cGxhaW5fYW5hbHl6ZV9xdWVyeTogewog ICAgICAgICBhbHQ6IGZhbHNlLAogICAgICAgICBzaGlmdDogdHJ1ZSwKICAgICAgICAgY29udHJv bDogZmFsc2UsCkBAIC04MCwyMCArOTUsNiBAQCBkZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0 Y3V0cycsICgpID0+IHsKICAgICAgIH0sCiAgICAgfTsKIAotICAgIGxldCBncmlkVmlldyA9IHsK LSAgICAgIHF1ZXJ5X3Rvb2xfb2JqOiB7Ci0gICAgICAgIGdldFNlbGVjdGlvbjogamFzbWluZS5j cmVhdGVTcHkoJ2dldFNlbGVjdGlvbicpLAotICAgICAgICBnZXRWYWx1ZTogamFzbWluZS5jcmVh dGVTcHkoJ2dldFZhbHVlJyksCi0gICAgICB9LAotICAgIH07Ci0KLSAgICBzcWxFZGl0b3JDb250 cm9sbGVyU3B5ID0gamFzbWluZS5jcmVhdGVTcHlPYmooJ1NxbEVkaXRvckNvbnRyb2xsZXInLCBb Ci0gICAgICAnaXNRdWVyeVJ1bm5pbmcnLAotICAgICAgJ2V4ZWN1dGUnLAotICAgIF0pOwotCi0g ICAgc3FsRWRpdG9yQ29udHJvbGxlclNweS5ncmlkVmlldyA9IGdyaWRWaWV3OwotCiAgICAgcXVl cnlUb29sQWN0aW9uc1NweSA9IGphc21pbmUuY3JlYXRlU3B5T2JqKHF1ZXJ5VG9vbEFjdGlvbnMs IFsKICAgICAgICdleHBsYWluQW5hbHl6ZScsCiAgICAgICAnZXhwbGFpbicsCkBAIC0xMTAsOCAr MTExLDcgQEAgZGVzY3JpYmUoJ3RoZSBrZXlib2FyZCBzaG9ydGN1dHMnLCAoKSA9PiB7CiAgICAg YmVmb3JlRWFjaCgoKSA9PiB7CiAgICAgICBldmVudC53aGljaCA9IEYxX0tFWTsKICAgICAgIGtl eWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgc3FsRWRpdG9y Q29udHJvbGxlclNweSwgcXVlcnlUb29sa2V5Ym9hcmRTaG9ydGN1dHNDb25maWcsCi0gICAgICAg IHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CisgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJT cHksIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CiAgICAgICApOwogICAgIH0pOwogCkBAIC0x MjgsOCArMTI4LDcgQEAgZGVzY3JpYmUoJ3RoZSBrZXlib2FyZCBzaG9ydGN1dHMnLCAoKSA9PiB7 CiAgICAgICAgIGV2ZW50LnNoaWZ0S2V5ID0gZmFsc2U7CiAgICAgICAgIGV2ZW50LmN0cmxLZXkg PSBmYWxzZTsKICAgICAgICAga2V5Ym9hcmRTaG9ydGN1dHMucHJvY2Vzc0V2ZW50UXVlcnlUb29s KAotICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbGtleWJvYXJkU2hv cnRjdXRzQ29uZmlnLAotICAgICAgICAgIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CisgICAg ICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQK ICAgICAgICAgKTsKICAgICAgIH0pOwogCkBAIC0xNTEsOCArMTUwLDcgQEAgZGVzY3JpYmUoJ3Ro ZSBrZXlib2FyZCBzaG9ydGN1dHMnLCAoKSA9PiB7CiAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xs ZXJTcHkuaXNRdWVyeVJ1bm5pbmcuYW5kLnJldHVyblZhbHVlKHRydWUpOwogCiAgICAgICAgIGtl eWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgICBzcWxFZGl0 b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xrZXlib2FyZFNob3J0Y3V0c0NvbmZpZywKLSAgICAg ICAgICBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAorICAgICAgICAgIHNxbEVkaXRvckNvbnRy b2xsZXJTcHksIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CiAgICAgICAgICk7CiAKICAgICAg ICAgZXhwZWN0KHF1ZXJ5VG9vbEFjdGlvbnNTcHkuZXhlY3V0ZVF1ZXJ5KS5ub3QudG9IYXZlQmVl bkNhbGxlZCgpOwpAQCAtMTY4LDggKzE2Niw3IEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQgc2hv cnRjdXRzJywgKCkgPT4gewogICAgICAgICBldmVudC5zaGlmdEtleSA9IGZhbHNlOwogICAgICAg ICBldmVudC5jdHJsS2V5ID0gZmFsc2U7CiAgICAgICAgIGtleWJvYXJkU2hvcnRjdXRzLnByb2Nl c3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVy eVRvb2xrZXlib2FyZFNob3J0Y3V0c0NvbmZpZywKLSAgICAgICAgICBxdWVyeVRvb2xBY3Rpb25z U3B5LCBldmVudAorICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbEFj dGlvbnNTcHksIGV2ZW50CiAgICAgICAgICk7CiAgICAgICB9KTsKIApAQCAtMTg5LDggKzE4Niw3 IEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQgc2hvcnRjdXRzJywgKCkgPT4gewogICAgICAgICBz cWxFZGl0b3JDb250cm9sbGVyU3B5LmlzUXVlcnlSdW5uaW5nLmFuZC5yZXR1cm5WYWx1ZSh0cnVl KTsKIAogICAgICAgICBrZXlib2FyZFNob3J0Y3V0cy5wcm9jZXNzRXZlbnRRdWVyeVRvb2woCi0g ICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sa2V5Ym9hcmRTaG9ydGN1 dHNDb25maWcsCi0gICAgICAgICAgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKKyAgICAgICAg ICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAogICAg ICAgICApOwogCiAgICAgICAgIGV4cGVjdChxdWVyeVRvb2xBY3Rpb25zU3B5LmV4cGxhaW4pLm5v dC50b0hhdmVCZWVuQ2FsbGVkKCk7CkBAIC0yMDYsOCArMjAyLDcgQEAgZGVzY3JpYmUoJ3RoZSBr ZXlib2FyZCBzaG9ydGN1dHMnLCAoKSA9PiB7CiAgICAgICAgIGV2ZW50LmFsdEtleSA9IGZhbHNl OwogICAgICAgICBldmVudC5jdHJsS2V5ID0gZmFsc2U7CiAgICAgICAgIGtleWJvYXJkU2hvcnRj dXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVy U3B5LCBxdWVyeVRvb2xrZXlib2FyZFNob3J0Y3V0c0NvbmZpZywKLSAgICAgICAgICBxdWVyeVRv b2xBY3Rpb25zU3B5LCBldmVudAorICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1 ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CiAgICAgICAgICk7CiAgICAgICB9KTsKIApAQCAtMjI4 LDggKzIyMyw3IEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQgc2hvcnRjdXRzJywgKCkgPT4gewog ICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LmlzUXVlcnlSdW5uaW5nLmFuZC5yZXR1cm5W YWx1ZSh0cnVlKTsKIAogICAgICAgICBrZXlib2FyZFNob3J0Y3V0cy5wcm9jZXNzRXZlbnRRdWVy eVRvb2woCi0gICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sa2V5Ym9h cmRTaG9ydGN1dHNDb25maWcsCi0gICAgICAgICAgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQK KyAgICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xBY3Rpb25zU3B5LCBl dmVudAogICAgICAgICApOwogCiAgICAgICAgIGV4cGVjdChxdWVyeVRvb2xBY3Rpb25zU3B5LmV4 cGxhaW5BbmFseXplKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpOwpAQCAtMjQ2LDggKzI0MCw3IEBA IGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQgc2hvcnRjdXRzJywgKCkgPT4gewogICAgICAgICBldmVu dC5jdHJsS2V5ID0gZmFsc2U7CiAKICAgICAgICAga2V5Ym9hcmRTaG9ydGN1dHMucHJvY2Vzc0V2 ZW50UXVlcnlUb29sKAotICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9v bGtleWJvYXJkU2hvcnRjdXRzQ29uZmlnLAotICAgICAgICAgIHF1ZXJ5VG9vbEFjdGlvbnNTcHks IGV2ZW50CisgICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sQWN0aW9u c1NweSwgZXZlbnQKICAgICAgICAgKTsKICAgICAgIH0pOwogCkBAIC0yNzAsOCArMjYzLDcgQEAg ZGVzY3JpYmUoJ3RoZSBrZXlib2FyZCBzaG9ydGN1dHMnLCAoKSA9PiB7CiAgICAgICAgIHNxbEVk aXRvckNvbnRyb2xsZXJTcHkuaXNRdWVyeVJ1bm5pbmcuYW5kLnJldHVyblZhbHVlKHRydWUpOwog CiAgICAgICAgIGtleWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAg ICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xrZXlib2FyZFNob3J0Y3V0c0Nv bmZpZywKLSAgICAgICAgICBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAorICAgICAgICAgIHNx bEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CiAgICAgICAg ICk7CiAKICAgICAgICAgZXhwZWN0KHF1ZXJ5VG9vbEFjdGlvbnNTcHkuZG93bmxvYWQpLm5vdC50 b0hhdmVCZWVuQ2FsbGVkKCk7CkBAIC0yODYsOCArMjc4LDcgQEAgZGVzY3JpYmUoJ3RoZSBrZXli b2FyZCBzaG9ydGN1dHMnLCAoKSA9PiB7CiAgICAgICAgICAgbWFjS2V5c1NldHVwKCk7CiAgICAg ICAgICAgZXZlbnQud2hpY2ggPSBGV0RfU0xBU0hfS0VZOwogICAgICAgICAgIGtleWJvYXJkU2hv cnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgICAgIHNxbEVkaXRvckNvbnRy b2xsZXJTcHksIHF1ZXJ5VG9vbGtleWJvYXJkU2hvcnRjdXRzQ29uZmlnLAotICAgICAgICAgICAg cXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKKyAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xs ZXJTcHksIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CiAgICAgICAgICAgKTsKICAgICAgICAg fSk7CiAKQEAgLTMwMyw4ICsyOTQsNyBAQCBkZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0Y3V0 cycsICgpID0+IHsKICAgICAgICAgICB3aW5kb3dzS2V5c1NldHVwKCk7CiAgICAgICAgICAgZXZl bnQud2hpY2ggPSBGV0RfU0xBU0hfS0VZOwogICAgICAgICAgIGtleWJvYXJkU2hvcnRjdXRzLnBy b2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHks IHF1ZXJ5VG9vbGtleWJvYXJkU2hvcnRjdXRzQ29uZmlnLAotICAgICAgICAgICAgcXVlcnlUb29s QWN0aW9uc1NweSwgZXZlbnQKKyAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1 ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CiAgICAgICAgICAgKTsKICAgICAgICAgfSk7CiAKQEAg LTMyOCw4ICszMTgsNyBAQCBkZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0Y3V0cycsICgpID0+ IHsKIAogICAgICAgICBpdCgnZG9lcyBub3RoaW5nJywgKCkgPT4gewogICAgICAgICAgIGtleWJv YXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgICAgIHNxbEVkaXRv ckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbGtleWJvYXJkU2hvcnRjdXRzQ29uZmlnLAotICAgICAg ICAgICAgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKKyAgICAgICAgICAgIHNxbEVkaXRvckNv bnRyb2xsZXJTcHksIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CiAgICAgICAgICAgKTsKIAog ICAgICAgICAgIGV4cGVjdChxdWVyeVRvb2xBY3Rpb25zU3B5LmNvbW1lbnRMaW5lQ29kZSkubm90 LnRvSGF2ZUJlZW5DYWxsZWQoKTsKQEAgLTM0NCw4ICszMzMsNyBAQCBkZXNjcmliZSgndGhlIGtl eWJvYXJkIHNob3J0Y3V0cycsICgpID0+IHsKIAogICAgICAgICBpdCgnZG9lcyBub3RoaW5nJywg KCkgPT4gewogICAgICAgICAgIGtleWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9v bCgKLSAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbGtleWJvYXJk U2hvcnRjdXRzQ29uZmlnLAotICAgICAgICAgICAgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQK KyAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbEFjdGlvbnNTcHks IGV2ZW50CiAgICAgICAgICAgKTsKIAogICAgICAgICAgIGV4cGVjdChxdWVyeVRvb2xBY3Rpb25z U3B5LmNvbW1lbnRMaW5lQ29kZSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTsKQEAgLTM2MSw4ICsz NDksNyBAQCBkZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0Y3V0cycsICgpID0+IHsKICAgICAg ICAgICBtYWNLZXlzU2V0dXAoKTsKICAgICAgICAgICBldmVudC53aGljaCA9IFBFUklPRF9LRVk7 CiAgICAgICAgICAga2V5Ym9hcmRTaG9ydGN1dHMucHJvY2Vzc0V2ZW50UXVlcnlUb29sKAotICAg ICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sa2V5Ym9hcmRTaG9ydGN1 dHNDb25maWcsCi0gICAgICAgICAgICBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAorICAgICAg ICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQK ICAgICAgICAgICApOwogICAgICAgICB9KTsKIApAQCAtMzc3LDggKzM2NCw3IEBAIGRlc2NyaWJl KCd0aGUga2V5Ym9hcmQgc2hvcnRjdXRzJywgKCkgPT4gewogICAgICAgICAgIHdpbmRvd3NLZXlz U2V0dXAoKTsKICAgICAgICAgICBldmVudC53aGljaCA9IFBFUklPRF9LRVk7CiAgICAgICAgICAg a2V5Ym9hcmRTaG9ydGN1dHMucHJvY2Vzc0V2ZW50UXVlcnlUb29sKAotICAgICAgICAgICAgc3Fs RWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sa2V5Ym9hcmRTaG9ydGN1dHNDb25maWcsCi0g ICAgICAgICAgICBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAorICAgICAgICAgICAgc3FsRWRp dG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKICAgICAgICAgICAp OwogICAgICAgICB9KTsKIApAQCAtNDAyLDggKzM4OCw3IEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9h cmQgc2hvcnRjdXRzJywgKCkgPT4gewogCiAgICAgICAgIGl0KCdkb2VzIG5vdGhpbmcnLCAoKSA9 PiB7CiAgICAgICAgICAga2V5Ym9hcmRTaG9ydGN1dHMucHJvY2Vzc0V2ZW50UXVlcnlUb29sKAot ICAgICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sa2V5Ym9hcmRTaG9y dGN1dHNDb25maWcsCi0gICAgICAgICAgICBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAorICAg ICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZl bnQKICAgICAgICAgICApOwogICAgICAgICAgIGV4cGVjdChxdWVyeVRvb2xBY3Rpb25zU3B5LnVu Y29tbWVudExpbmVDb2RlKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpOwogICAgICAgICB9KTsKQEAg LTQxNiw4ICs0MDEsNyBAQCBkZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0Y3V0cycsICgpID0+ IHsKIAogICAgICAgICBpdCgnZG9lcyBub3RoaW5nJywgKCkgPT4gewogICAgICAgICAgIGtleWJv YXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgICAgIHNxbEVkaXRv ckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbGtleWJvYXJkU2hvcnRjdXRzQ29uZmlnLAotICAgICAg ICAgICAgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKKyAgICAgICAgICAgIHNxbEVkaXRvckNv bnRyb2xsZXJTcHksIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CiAgICAgICAgICAgKTsKIAog ICAgICAgICAgIGV4cGVjdChxdWVyeVRvb2xBY3Rpb25zU3B5LnVuY29tbWVudExpbmVDb2RlKS5u b3QudG9IYXZlQmVlbkNhbGxlZCgpOwpAQCAtNDM0LDggKzQxOCw3IEBAIGRlc2NyaWJlKCd0aGUg a2V5Ym9hcmQgc2hvcnRjdXRzJywgKCkgPT4gewogICAgICAgICAgIGV2ZW50LndoaWNoID0gRldE X1NMQVNIX0tFWTsKICAgICAgICAgICBldmVudC5zaGlmdEtleSA9IHRydWU7CiAgICAgICAgICAg a2V5Ym9hcmRTaG9ydGN1dHMucHJvY2Vzc0V2ZW50UXVlcnlUb29sKAotICAgICAgICAgICAgc3Fs RWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sa2V5Ym9hcmRTaG9ydGN1dHNDb25maWcsCi0g ICAgICAgICAgICBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAorICAgICAgICAgICAgc3FsRWRp dG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKICAgICAgICAgICAp OwogICAgICAgICB9KTsKIApAQCAtNDU0LDggKzQzNyw3IEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9h cmQgc2hvcnRjdXRzJywgKCkgPT4gewogICAgICAgICAgIGV2ZW50LndoaWNoID0gRldEX1NMQVNI X0tFWTsKICAgICAgICAgICBldmVudC5zaGlmdEtleSA9IHRydWU7CiAgICAgICAgICAga2V5Ym9h cmRTaG9ydGN1dHMucHJvY2Vzc0V2ZW50UXVlcnlUb29sKAotICAgICAgICAgICAgc3FsRWRpdG9y Q29udHJvbGxlclNweSwgcXVlcnlUb29sa2V5Ym9hcmRTaG9ydGN1dHNDb25maWcsCi0gICAgICAg ICAgICBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAorICAgICAgICAgICAgc3FsRWRpdG9yQ29u dHJvbGxlclNweSwgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKICAgICAgICAgICApOwogICAg ICAgICB9KTsKIApAQCAtNDc3LDggKzQ1OSw3IEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQgc2hv cnRjdXRzJywgKCkgPT4gewogICAgICAgICAgIGV2ZW50LndoaWNoID0gRldEX1NMQVNIX0tFWTsK ICAgICAgICAgICBldmVudC5zaGlmdEtleSA9IHRydWU7CiAgICAgICAgICAga2V5Ym9hcmRTaG9y dGN1dHMucHJvY2Vzc0V2ZW50UXVlcnlUb29sKAotICAgICAgICAgICAgc3FsRWRpdG9yQ29udHJv bGxlclNweSwgcXVlcnlUb29sa2V5Ym9hcmRTaG9ydGN1dHNDb25maWcsCi0gICAgICAgICAgICBx dWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAorICAgICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxl clNweSwgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKICAgICAgICAgICApOwogICAgICAgICB9 KTsKICAgICAgICAgaXQoJ2RvZXMgbm90aGluZycsICgpID0+IHsKQEAgLTQ5MSw4ICs0NzIsNyBA QCBkZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0Y3V0cycsICgpID0+IHsKICAgICAgICAgICBl dmVudC53aGljaCA9IEZXRF9TTEFTSF9LRVk7CiAgICAgICAgICAgZXZlbnQuc2hpZnRLZXkgPSB0 cnVlOwogICAgICAgICAgIGtleWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgK LSAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbGtleWJvYXJkU2hv cnRjdXRzQ29uZmlnLAotICAgICAgICAgICAgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKKyAg ICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2 ZW50CiAgICAgICAgICAgKTsKICAgICAgICAgfSk7CiAgICAgICAgIGl0KCdkb2VzIG5vdGhpbmcn LCAoKSA9PiB7CkBAIC01MDIsNiArNDgyLDQ1IEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQgc2hv cnRjdXRzJywgKCkgPT4gewogICAgIH0pOwogICB9KTsKIAorICBkZXNjcmliZSgnc2hvcnRjdXQg dG8gdGV4dCBjb252ZXJ0ZXJzJywgKCk9PiB7CisgICAgdmFyIHNob3J0Y3V0ID0geworICAgICAg YWx0OiBmYWxzZSwKKyAgICAgIHNoaWZ0OiBmYWxzZSwKKyAgICAgIGNvbnRyb2w6IGZhbHNlLAor ICAgICAga2V5OiB7CisgICAgICAgIGNoYXI6ICdhJywKKyAgICAgICAga2V5X2NvZGU6IDY1LAor ICAgICAgfSwKKyAgICB9OworCisgICAgaXQoJ3Nob3J0Y3V0X2tleScsKCk9PnsKKyAgICAgIGV4 cGVjdChrZXlib2FyZFNob3J0Y3V0cy5zaG9ydGN1dF9rZXkoc2hvcnRjdXQpKS50b0JlKCdBJyk7 CisgICAgfSk7CisKKyAgICBpdCgnc2hvcnRjdXRfYWNjZXNza2V5X3RpdGxlJywoKT0+eworICAg ICAgZXhwZWN0KGtleWJvYXJkU2hvcnRjdXRzLnNob3J0Y3V0X2FjY2Vzc2tleV90aXRsZSgKKyAg ICAgICAgJ1RpdGxlJywgc2hvcnRjdXQpKS50b0JlKGdldHRleHQoJ1RpdGxlIChhY2Nlc3NrZXkg KyBBKScpKTsKKyAgICB9KTsKKworICAgIGl0KCdzaG9ydGN1dF90aXRsZScsKCk9PnsKKyAgICAg IHNob3J0Y3V0LmFsdCA9IHRydWUsIHNob3J0Y3V0LnNoaWZ0ID0gZmFsc2UsIHNob3J0Y3V0LmNv bnRyb2wgPSBmYWxzZTsKKyAgICAgIGV4cGVjdChrZXlib2FyZFNob3J0Y3V0cy5zaG9ydGN1dF90 aXRsZSgKKyAgICAgICAgJ1RpdGxlJywgc2hvcnRjdXQpKS50b0JlKGdldHRleHQoJ1RpdGxlIChB bHQrQSknKSk7CisKKyAgICAgIHNob3J0Y3V0LmFsdCA9IGZhbHNlLCBzaG9ydGN1dC5zaGlmdCA9 IHRydWUsIHNob3J0Y3V0LmNvbnRyb2wgPSBmYWxzZTsKKyAgICAgIGV4cGVjdChrZXlib2FyZFNo b3J0Y3V0cy5zaG9ydGN1dF90aXRsZSgKKyAgICAgICAgJ1RpdGxlJywgc2hvcnRjdXQpKS50b0Jl KGdldHRleHQoJ1RpdGxlIChTaGlmdCtBKScpKTsKKworICAgICAgc2hvcnRjdXQuYWx0ID0gZmFs c2UsIHNob3J0Y3V0LnNoaWZ0ID0gZmFsc2UsIHNob3J0Y3V0LmNvbnRyb2wgPSB0cnVlOworICAg ICAgZXhwZWN0KGtleWJvYXJkU2hvcnRjdXRzLnNob3J0Y3V0X3RpdGxlKAorICAgICAgICAnVGl0 bGUnLCBzaG9ydGN1dCkpLnRvQmUoZ2V0dGV4dCgnVGl0bGUgKEN0cmwrQSknKSk7CisKKyAgICAg IHNob3J0Y3V0LmFsdCA9IHRydWUsIHNob3J0Y3V0LnNoaWZ0ID0gdHJ1ZSwgc2hvcnRjdXQuY29u dHJvbCA9IHRydWU7CisgICAgICBleHBlY3Qoa2V5Ym9hcmRTaG9ydGN1dHMuc2hvcnRjdXRfdGl0 bGUoCisgICAgICAgICdUaXRsZScsIHNob3J0Y3V0KSkudG9CZShnZXR0ZXh0KCdUaXRsZSAoQWx0 K1NoaWZ0K0N0cmwrQSknKSk7CisgICAgfSk7CisgIH0pOworCiAgIGZ1bmN0aW9uIGV4cGVjdEV2 ZW50UHJvcGFnYXRpb25Ub1N0b3AoKSB7CiAgICAgZGVzY3JpYmUoJ3N0b3BzIGFsbCBldmVudCBw cm9wb2dhdGlvbicsICgpID0+IHsKIApkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNj cmlwdC9zcWxlZGl0b3JfdXRpbHNfc3BlYy5qcyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQv c3FsZWRpdG9yX3V0aWxzX3NwZWMuanMKaW5kZXggYzczOGY4MmEuLjc1YzM0YWZjIDEwMDY0NAot LS0gYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3NxbGVkaXRvcl91dGlsc19zcGVjLmpzCisr KyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvc3FsZWRpdG9yX3V0aWxzX3NwZWMuanMKQEAg LTI4LDUgKzI4LDEzIEBAIGZ1bmN0aW9uIChTcWxFZGl0b3JVdGlscykgewogICAgICAgICBleHBl Y3QoU3FsRWRpdG9yVXRpbHMuY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKCdjcmVhdGUgc2NyaXB0Jykp LnRvRXF1YWwoJ0NyZWF0ZSBzY3JpcHQnKTsKICAgICAgIH0pOwogICAgIH0pOworCisgICAgZGVz Y3JpYmUoJ0NhbGN1bGF0ZSBmb250IHNpemUgb2YgaW5wdXQgbnVtYmVyIHBhc3NlZCcsIGZ1bmN0 aW9uICgpIHsKKyAgICAgIGl0KCdjYWxjRm9udFNpemUnLCBmdW5jdGlvbiAoKSB7CisgICAgICAg IGV4cGVjdChTcWxFZGl0b3JVdGlscy5jYWxjRm9udFNpemUoMS40NTYpKS50b0VxdWFsKCcxLjQ2 ZW0nKTsKKyAgICAgICAgZXhwZWN0KFNxbEVkaXRvclV0aWxzLmNhbGNGb250U2l6ZSgpKS50b0Vx dWFsKCcwZW0nKTsKKyAgICAgICAgZXhwZWN0KFNxbEVkaXRvclV0aWxzLmNhbGNGb250U2l6ZSgy KSkudG9FcXVhbCgnMmVtJyk7CisgICAgICB9KTsKKyAgICB9KTsKICAgfSk7CiB9KTsKZGlmZiAt LWdpdCBhL3dlYi93ZWJwYWNrLnNoaW0uanMgYi93ZWIvd2VicGFjay5zaGltLmpzCmluZGV4IGMx MmU3ZjNiLi40MWJmMTAzMyAxMDA2NDQKLS0tIGEvd2ViL3dlYnBhY2suc2hpbS5qcworKysgYi93 ZWIvd2VicGFjay5zaGltLmpzCkBAIC0xMjQsNiArMTI0LDcgQEAgdmFyIHdlYnBhY2tTaGltQ29u ZmlnID0gewogICAgICdidW5kbGVkX2NvZGVtaXJyb3InOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAn Li9wZ2FkbWluL3N0YXRpYy9idW5kbGUvY29kZW1pcnJvcicpLAogICAgICdidW5kbGVkX2Jyb3dz ZXInOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL3N0YXRpYy9idW5kbGUvYnJvd3Nl cicpLAogICAgICdzb3VyY2VzJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1pbi9zdGF0 aWMvanMnKSwKKyAgICAnc291cmNlc2pzeCc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3BnYWRt aW4vc3RhdGljL2pzeCcpLAogICAgICdwZ2FkbWluJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4v cGdhZG1pbi9zdGF0aWMvanMvcGdhZG1pbicpLAogICAgICd0cmFuc2xhdGlvbnMnOiBwYXRoLmpv aW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL3Rvb2xzL3RlbXBsYXRlcy9qcy90cmFuc2xhdGlvbnMn KSwKICAgICAnc291cmNlcy9nZXR0ZXh0JzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1p bi9zdGF0aWMvanMvZ2V0dGV4dCcpLApAQCAtMTc5LDYgKzE4MCw3IEBAIHZhciB3ZWJwYWNrU2hp bUNvbmZpZyA9IHsKICAgICAncGdhZG1pbi5icm93c2VyLmVycm9yJzogcGF0aC5qb2luKF9fZGly bmFtZSwgJy4vcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9lcnJvcicpLAogICAgICdwZ2FkbWlu LmJyb3dzZXIuZnJhbWUnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL2Jyb3dzZXIv c3RhdGljL2pzL2ZyYW1lJyksCiAgICAgJ3BnYWRtaW4uYnJvd3Nlci5rZXlib2FyZCc6IHBhdGgu am9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMva2V5Ym9hcmQnKSwK KyAgICAncGdhZG1pbi5icm93c2VyLnByZWZlcmVuY2VzJzogcGF0aC5qb2luKF9fZGlybmFtZSwg Jy4vcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9wcmVmZXJlbmNlcycpLAogICAgICdwZ2FkbWlu LmJyb3dzZXIubWVudSc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vYnJvd3Nlci9z dGF0aWMvanMvbWVudScpLAogICAgICdwZ2FkbWluLmJyb3dzZXIubWVzc2FnZXMnOiAnL2Jyb3dz ZXIvanMvbWVzc2FnZXMnLAogICAgICdwZ2FkbWluLmJyb3dzZXIubm9kZSc6IHBhdGguam9pbihf X2Rpcm5hbWUsICcuL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvbm9kZScpLApkaWZmIC0tZ2l0 IGEvd2ViL3dlYnBhY2sudGVzdC5jb25maWcuanMgYi93ZWIvd2VicGFjay50ZXN0LmNvbmZpZy5q cwppbmRleCBlZjg5M2UwYi4uNzU3MTA3Y2EgMTAwNjQ0Ci0tLSBhL3dlYi93ZWJwYWNrLnRlc3Qu Y29uZmlnLmpzCisrKyBiL3dlYi93ZWJwYWNrLnRlc3QuY29uZmlnLmpzCkBAIC04Myw2ICs4Myw3 IEBAIG1vZHVsZS5leHBvcnRzID0gewogICAgICAgJ3BnYWRtaW4uYmFja2Zvcm0nOiBzb3VyY2Vz RGlyICsgJy9qcy9iYWNrZm9ybS5wZ2FkbWluJywKICAgICAgICdwZ2Jyb3dzZXInOiBwYXRoLnJl c29sdmUoX19kaXJuYW1lLCAncmVncmVzc2lvbi9qYXZhc2NyaXB0L2Zha2VfYnJvd3NlcicpLAog ICAgICAgJ3BnYWRtaW4uc2NoZW1hLmRpcic6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICdwZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3N0YXRp Yy9qcycpLAorICAgICAgJ3BnYWRtaW4uYnJvd3Nlci5wcmVmZXJlbmNlcyc6IHBhdGguam9pbihf X2Rpcm5hbWUsICcuL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvcHJlZmVyZW5jZXMnKSwKICAg ICB9LAogICB9LAogfTsK --0000000000009cc310056fb4a1e2--