Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kyvVk-0003Y0-TM for pgadmin-hackers@arkaria.postgresql.org; Mon, 11 Jan 2021 11:37:25 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kyvVi-0007ZB-GR for pgadmin-hackers@arkaria.postgresql.org; Mon, 11 Jan 2021 11:37:22 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kyvVh-0007Z2-Jv for pgadmin-hackers@lists.postgresql.org; Mon, 11 Jan 2021 11:37:22 +0000 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1kyvVe-0004qB-54 for pgadmin-hackers@postgresql.org; Mon, 11 Jan 2021 11:37:20 +0000 Received: by mail-pl1-x630.google.com with SMTP id s15so9351024plr.9 for ; Mon, 11 Jan 2021 03:37:17 -0800 (PST) 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=hXt3gAK08qQCsRyYRmFqX6L5MVJ3fJkxgndhgA5fDds=; b=NWh4VSMgrZDbl1pNFU6/LE2KM0sWHKKBX/H/5vmzRd7bZPxbuIb7duwbClzq9yKtXM npwy7uk50+z4uzol/yzUgHSIFxEcZfZPFTZUFF1z88k6UwB4lXK5uzD49fywglXLnN2d XDUHBye9C3wnsPcdBLRuhiGxV9ziqQNltx+zFP3smksgLBg3FVvmbmcgDW0N9w9xCh2z G2paEP8EIgPW9AIOFprSKOiEkSJPYdJ+/dxMx+fHdHKPfMIWNCI2aSrg4Jb4EiaIOU/k ya9kue5At7wRyCcct3Uk9x7FpT+oeFWyWnx0qapEr9DPX2wnxm4E4vKT5Z8sjM3WHg1F FSPw== 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=hXt3gAK08qQCsRyYRmFqX6L5MVJ3fJkxgndhgA5fDds=; b=aU64sUexpNMlWvLJRXHUgCvUVk2A0G+9rxk/PfddX50+itn4lGIcTRchW6WhGq+DDd Rt/4JJHraqtF1tjZkPYZVObSSlDqzBJO+Gcl5c0EJDABiQVNF7R0i+d5XVIL447lq1lp /xSBK7PNmu2UCyEQeJ2TzkjauQi2Kj9pDLUg935YaacQKqRSBtFVfCETSYaEU7Gq8duM mNfPRboGp8tGBxv00ilYuA6slhlD+LqD2LanvOGIYv1wDYUPaffZxFu/wrNOo3ejfp/M O/afZ2W4RpNnF9xynUuC+PDi/p4BqNdcTh5MutyxXoRuG1RbzA/24fzsKP2t+E3IJRBo Oczw== X-Gm-Message-State: AOAM530vJ2iZnKkUnOyk9yziEpCzn64zNuyGVWUh+akuCRichtj1J/wI hbs4drt27mTs1/6pjpFImgMjDvp8+ojBKhFkhmQcUFDQTkinoxGAarUWR9zSiBx9sw1wZFZYt1P z0CR6dM+/xeRAJiGyC0oD3Akw7q6ybpfKDKr5Rl0jGmDhMUhg7KgJI5/qc1r/lScItGQfcZoQOV agI8eHLnh+XgPVVlG2rFdh5sav4d3B/ebhuAsK3ewc+bTFsGRuQCJbN32ctSzEPKLFcw== X-Google-Smtp-Source: ABdhPJwzlEbKR7k4vpB/UtM0h0EYcX9ycDPL+vcMvfC/lQO61YsNeu+I9WKhGVwHBObtjHjFp7dGNNftAhyQG5+N5MQ= X-Received: by 2002:a17:90a:ea02:: with SMTP id w2mr17494818pjy.99.1610365036363; Mon, 11 Jan 2021 03:37:16 -0800 (PST) MIME-Version: 1.0 From: Pradip Parkale Date: Mon, 11 Jan 2021 17:07:05 +0530 Message-ID: Subject: [pgAdmin][RM5912]: Added support for Logical Replication. To: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000f3bc9805b89e53fa" X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000f3bc9805b89e53fa Content-Type: multipart/alternative; boundary="000000000000f3bc9605b89e53f8" --000000000000f3bc9605b89e53f8 Content-Type: text/plain; charset="UTF-8" Hi Hackers, Please find the attached patch for logical replication support. -- Thanks & Regards, Pradip Parkale Software Engineer | EnterpriseDB Corporation --000000000000f3bc9605b89e53f8 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

Please find the attached pa= tch for logical replication support.

--
Thanks & Regards,<= br>
Pradip Parkale
Software Enginee= r | EnterpriseDB Corporation
--000000000000f3bc9605b89e53f8-- --000000000000f3bc9805b89e53fa Content-Type: application/octet-stream; name="RM5912.patch" Content-Disposition: attachment; filename="RM5912.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kjshproe0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9wdWJsaWNhdGlvbnMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL19faW5pdF9fLnB5Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uY2RjMGVhN2QxCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3B1YmxpY2F0aW9ucy9fX2luaXRfXy5weQpAQCAtMCwwICsxLDc5MCBAQAorIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmln aHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMg c29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKworIiIiSW1wbGVtZW50cyBQdWJsaWNhdGlvbiBOb2RlIiIiCitpbXBv cnQgc2ltcGxlanNvbiBhcyBqc29uCitmcm9tIGZ1bmN0b29scyBpbXBvcnQgd3JhcHMKKworaW1w b3J0IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzIGFzIGRh dGFiYXNlcworZnJvbSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlLCByZXF1ZXN0LCBqc29u aWZ5Citmcm9tIGZsYXNrX2JhYmVsZXggaW1wb3J0IGdldHRleHQKK2Zyb20gcGdhZG1pbi5icm93 c2VyLmNvbGxlY3Rpb24gaW1wb3J0IENvbGxlY3Rpb25Ob2RlTW9kdWxlCitmcm9tIHBnYWRtaW4u YnJvd3Nlci51dGlscyBpbXBvcnQgUEdDaGlsZE5vZGVWaWV3Citmcm9tIHBnYWRtaW4udXRpbHMu YWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IsIFwK KyAgICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UsIGdvbmUKK2Zyb20gcGdhZG1pbi51 dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20gY29uZmlnIGltcG9ydCBQR19ERUZB VUxUX0RSSVZFUgorZnJvbSBwZ2FkbWluLnRvb2xzLnNjaGVtYV9kaWZmLmNvbXBhcmUgaW1wb3J0 IFNjaGVtYURpZmZPYmplY3RDb21wYXJlCisKKworY2xhc3MgUHVibGljYXRpb25Nb2R1bGUoQ29s bGVjdGlvbk5vZGVNb2R1bGUpOgorICAgICIiIgorICAgIGNsYXNzIFB1YmxpY2F0aW9uTW9kdWxl KENvbGxlY3Rpb25Ob2RlTW9kdWxlKQorCisgICAgICAgIEEgbW9kdWxlIGNsYXNzIGZvciBQdWJs aWNhdGlvbiBub2RlIGRlcml2ZWQgZnJvbSBDb2xsZWN0aW9uTm9kZU1vZHVsZS4KKworICAgIE1l dGhvZHM6CisgICAgLS0tLS0tLQorICAgICogX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAg ICAgLSBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZSBQdWJsaWNhdGlvbk1vZHVsZSBh bmQgaXQncworICAgICAgYmFzZSBtb2R1bGUuCisKKyAgICAqIGdldF9ub2RlcyhnaWQsIHNpZCwg ZGlkKQorICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgYnJvd3NlciBjb2xs ZWN0aW9uIG5vZGUuCisKKyAgICAqIG5vZGVfaW5vZGUoKQorICAgICAgLSBNZXRob2QgaXMgb3Zl cnJpZGRlbiBmcm9tIGl0cyBiYXNlIGNsYXNzIHRvIG1ha2UgdGhlIG5vZGUgYXMgbGVhZiBub2Rl LgorCisgICAgKiBzY3JpcHRfbG9hZCgpCisgICAgICAtIExvYWQgdGhlIG1vZHVsZSBzY3JpcHQg Zm9yIHB1YmxpY2F0aW9uLCB3aGVuIGFueSBvZiB0aGUgZGF0YWJhc2Ugbm9kZQorICAgICAgaXMg aW5pdGlhbGl6ZWQuCisgICAgIiIiCisKKyAgICBfTk9ERV9UWVBFID0gJ3B1YmxpY2F0aW9uJwor ICAgIF9DT0xMRUNUSU9OX0xBQkVMID0gZ2V0dGV4dCgiUHVibGljYXRpb25zIikKKworICAgIGRl ZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAgICAg TWV0aG9kIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgUHVibGljYXRpb25Nb2R1bGUgYW5kIGl0 J3MKKyAgICAgICAgYmFzZSBtb2R1bGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgICph cmdzOgorICAgICAgICAgICAgKiprd2FyZ3M6CisgICAgICAgICIiIgorICAgICAgICBzdXBlcihQ dWJsaWNhdGlvbk1vZHVsZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAgICAg ICBzZWxmLm1pbl92ZXIgPSAxMDAwMDAKKyAgICAgICAgc2VsZi5tYXhfdmVyID0gTm9uZQorCisg ICAgZGVmIGdldF9ub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlkKToKKyAgICAgICAgIiIiCisgICAg ICAgIE1ldGhvZCBpcyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBicm93c2VyIGNvbGxlY3Rpb24gbm9k ZQorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAg ICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAg ICAgICAgIiIiCisgICAgICAgIHlpZWxkIHNlbGYuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9u X25vZGUoZGlkKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG5vZGVfaW5vZGUoc2VsZik6Cisg ICAgICAgICIiIgorICAgICAgICBPdmVycmlkZSB0aGlzIHByb3BlcnR5IHRvIG1ha2UgdGhlIG5v ZGUgYSBsZWFmIG5vZGUuCisKKyAgICAgICAgUmV0dXJuczogRmFsc2UgYXMgdGhpcyBpcyB0aGUg bGVhZiBub2RlCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIEBwcm9w ZXJ0eQorICAgIGRlZiBzY3JpcHRfbG9hZChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIExv YWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9yIHB1YmxpY2F0aW9uLCB3aGVuIGFueSBvZiB0aGUgZGF0 YWJhc2Ugbm9kZXMKKyAgICAgICAgYXJlIGluaXRpYWxpemVkLgorCisgICAgICAgIFJldHVybnM6 IG5vZGUgdHlwZSBvZiB0aGUgc2VydmVyIG1vZHVsZS4KKyAgICAgICAgIiIiCisgICAgICAgIHJl dHVybiBkYXRhYmFzZXMuRGF0YWJhc2VNb2R1bGUubm9kZV90eXBlCisKKyAgICBAcHJvcGVydHkK KyAgICBkZWYgbW9kdWxlX3VzZV90ZW1wbGF0ZV9qYXZhc2NyaXB0KHNlbGYpOgorICAgICAgICAi IiIKKyAgICAgICAgUmV0dXJucyB3aGV0aGVyIEppbmphMiB0ZW1wbGF0ZSBpcyB1c2VkIGZvciBn ZW5lcmF0aW5nIHRoZSBqYXZhc2NyaXB0CisgICAgICAgIG1vZHVsZS4KKyAgICAgICAgIiIiCisg ICAgICAgIHJldHVybiBGYWxzZQorCisKK2JsdWVwcmludCA9IFB1YmxpY2F0aW9uTW9kdWxlKF9f bmFtZV9fKQorCisKK2NsYXNzIFB1YmxpY2F0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcsIFNjaGVt YURpZmZPYmplY3RDb21wYXJlKToKKyAgICAiIiIKKyAgICBjbGFzcyBQdWJsaWNhdGlvblZpZXco UEdDaGlsZE5vZGVWaWV3KQorCisgICAgICAgIEEgdmlldyBjbGFzcyBmb3IgUHVibGljYXRpb24g bm9kZSBkZXJpdmVkIGZyb20gUEdDaGlsZE5vZGVWaWV3LgorICAgICAgICBUaGlzIGNsYXNzIGlz IHJlc3BvbnNpYmxlIGZvciBhbGwgdGhlIHN0dWZmIHJlbGF0ZWQgdG8gdmlldyBsaWtlCisgICAg ICAgIHVwZGF0aW5nIHB1YmxpY2F0aW9uIG5vZGUsIHNob3dpbmcgcHJvcGVydGllcywgc2hvd2lu ZyBzcWwgaW4gc3FsIHBhbmUuCisKKyAgICBNZXRob2RzOgorICAgIC0tLS0tLS0KKyAgICAqIF9f aW5pdF9fKCoqa3dhcmdzKQorICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRo ZSBQdWJsaWNhdGlvblZpZXcgYW5kIGl0J3MgYmFzZSB2aWV3LgorCisgICAgKiBjaGVja19wcmVj b25kaXRpb24oKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgYmVoYXZlIGFzIGEgZGVjb3Jh dG9yIHdoaWNoIHdpbGwgY2hlY2tzCisgICAgICAgIGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVmb3Jl IHJ1bm5pbmcgdmlldywgaXQgd2lsbCBhbHNvIGF0dGFjaGVzCisgICAgICAgIG1hbmFnZXIsY29u biAmIHRlbXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxmCisKKyAgICAqIGxpc3QoKQorICAg ICAgLSBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gbGlzdCBhbGwgdGhlIHB1YmxpY2F0aW9uIG5v ZGVzIHdpdGhpbiB0aGF0CisgICAgICBjb2xsZWN0aW9uLgorCisgICAgKiBub2RlcygpCisgICAg ICAtIFRoaXMgZnVuY3Rpb24gd2lsbCB1c2VkIHRvIGNyZWF0ZSBhbGwgdGhlIGNoaWxkIG5vZGUg d2l0aGluIHRoYXQKKyAgICAgIGNvbGxlY3Rpb24uIEhlcmUgaXQgd2lsbCBjcmVhdGUgYWxsIHRo ZSBwdWJsaWNhdGlvbiBub2RlLgorCisgICAgKiBwcm9wZXJ0aWVzKGdpZCwgc2lkLCBkaWQsIHBi aWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBzaG93IHRoZSBwcm9wZXJ0aWVzIG9mIHRo ZSBzZWxlY3RlZCBwdWJsaWNhdGlvbiBub2RlCisKKyAgICAqIHVwZGF0ZShnaWQsIHNpZCwgZGlk LCBwYmlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHRoZSBkYXRhIGZvciB0 aGUgc2VsZWN0ZWQgcHVibGljYXRpb24gbm9kZQorCisgICAgKiBjcmVhdGUoZ2lkLCBzaWQsIGRp ZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZSB0aGUgbmV3IHB1YmxpY2F0aW9u IG5vZGUKKworICAgICogZGVsZXRlKGdpZCwgc2lkLCBkaWQsIHBiaWQpCisgICAgICAtIFRoaXMg ZnVuY3Rpb24gd2lsbCBkZWxldGUgdGhlIHNlbGVjdGVkIHB1YmxpY2F0aW9uIG5vZGUKKworICAg ICogbXNxbChnaWQsIHNpZCwgZGlkLCBwYmlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIGlzIHVz ZWQgdG8gcmV0dXJuIG1vZGlmaWVkIFNRTCBmb3IgdGhlIHNlbGVjdGVkCisgICAgICBwdWJsaWNh dGlvbiBub2RlCisKKyAgICAqIGdldF9zcWwoZGF0YSwgcGJpZCkKKyAgICAgIC0gVGhpcyBmdW5j dGlvbiB3aWxsIGdlbmVyYXRlIHNxbCBmcm9tIG1vZGVsIGRhdGEKKworICAgICogZ2V0X3RhYmxl cyhnaWQsIHNpZCwgZGlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGhhbmRs ZXIgYW5kIGlubGluZSBmdW5jdGlvbnMgZm9yIHRoZQorICAgICAgc2VsZWN0ZWQgcHVibGljYXRp b24gbm9kZQorCisgICAgKiBnZXRfdGVtcGxhdGVzKGdpZCwgc2lkLCBkaWQpCisgICAgICAtIFRo aXMgZnVuY3Rpb24gcmV0dXJucyBwdWJsaWNhdGlvbiB0ZW1wbGF0ZXMuCisKKyAgICAqIHNxbChn aWQsIHNpZCwgZGlkLCBwYmlkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRl IHNxbCB0byBzaG93IGl0IGluIHNxbCBwYW5lIGZvciB0aGUKKyAgICAgIHNlbGVjdGVkIHB1Ymxp Y2F0aW9uIG5vZGUuCisKKyAgICAqIGRlcGVuZGVudHMoZ2lkLCBzaWQsIGRpZCwgcGJpZCk6Cisg ICAgICAtIFRoaXMgZnVuY3Rpb24gZ2V0IHRoZSBkZXBlbmRlbnRzIGFuZCByZXR1cm4gYWpheCBy ZXNwb25zZSBmb3IgdGhlCisgICAgICBwdWJsaWNhdGlvbiBub2RlLgorCisgICAgKiBkZXBlbmRl bmNpZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgcGJpZCk6CisgICAgICAtIFRoaXMgZnVuY3Rpb24g Z2V0IHRoZSBkZXBlbmRlbmNpZXMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNlIGZvciB0aGUKKyAg ICAgIHB1YmxpY2F0aW9uIG5vZGUuCisgICAgIiIiCisKKyAgICBfTk9UX0ZPVU5EX1BVQl9JTkZP Uk1BVElPTiA9IFwKKyAgICAgICAgZ2V0dGV4dCgiQ291bGQgbm90IGZpbmQgdGhlIHB1YmxpY2F0 aW9uIGluZm9ybWF0aW9uLiIpCisgICAgbm9kZV90eXBlID0gYmx1ZXByaW50Lm5vZGVfdHlwZQor CisgICAgcGFyZW50X2lkcyA9IFsKKyAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdnaWQn fSwKKyAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdzaWQnfSwKKyAgICAgICAgeyd0eXBl JzogJ2ludCcsICdpZCc6ICdkaWQnfQorICAgIF0KKyAgICBpZHMgPSBbCisgICAgICAgIHsndHlw ZSc6ICdpbnQnLCAnaWQnOiAncGJpZCd9CisgICAgXQorCisgICAgb3BlcmF0aW9ucyA9IGRpY3Qo eworICAgICAgICAnb2JqJzogWworICAgICAgICAgICAgeydnZXQnOiAncHJvcGVydGllcycsICdk ZWxldGUnOiAnZGVsZXRlJywgJ3B1dCc6ICd1cGRhdGUnfSwKKyAgICAgICAgICAgIHsnZ2V0Jzog J2xpc3QnLCAncG9zdCc6ICdjcmVhdGUnLCAnZGVsZXRlJzogJ2RlbGV0ZSd9CisgICAgICAgIF0s CisgICAgICAgICdub2Rlcyc6IFt7J2dldCc6ICdub2RlJ30sIHsnZ2V0JzogJ25vZGVzJ31dLAor ICAgICAgICAnc3FsJzogW3snZ2V0JzogJ3NxbCd9XSwKKyAgICAgICAgJ21zcWwnOiBbeydnZXQn OiAnbXNxbCd9LCB7J2dldCc6ICdtc3FsJ31dLAorICAgICAgICAnc3RhdHMnOiBbeydnZXQnOiAn c3RhdGlzdGljcyd9XSwKKyAgICAgICAgJ2RlcGVuZGVuY3knOiBbeydnZXQnOiAnZGVwZW5kZW5j aWVzJ31dLAorICAgICAgICAnZGVwZW5kZW50JzogW3snZ2V0JzogJ2RlcGVuZGVudHMnfV0sCisg ICAgICAgICdnZXRfdGFibGVzJzogW3t9LCB7J2dldCc6ICdnZXRfdGFibGVzJ31dLAorICAgICAg ICAnZ2V0X3RlbXBsYXRlcyc6IFt7fSwgeydnZXQnOiAnZ2V0X3RlbXBsYXRlcyd9XSwKKyAgICAg ICAgJ2RlbGV0ZSc6IFt7J2RlbGV0ZSc6ICdkZWxldGUnfSwgeydkZWxldGUnOiAnZGVsZXRlJ31d CisgICAgfSkKKworICAgIGRlZiBfaW5pdF8oc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICAiIiIK KyAgICAgICAgTWV0aG9kIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgUHVibGljYXRpb25WaWV3 IGFuZCBpdHMgYmFzZSB2aWV3LgorICAgICAgICBJbml0aWFsaXplIGFsbCB0aGUgdmFyaWFibGVz IGNyZWF0ZS91c2VkIGR5bmFtaWNhbGx5IGxpa2UgY29ubiwKKyAgICAgICAgdGVtcGxhdGVfcGF0 aC4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgKiprd2FyZ3M6CisgICAgICAgICIiIgor ICAgICAgICBzZWxmLmNvbm4gPSBOb25lCisgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9IE5v bmUKKyAgICAgICAgc2VsZi5tYW5hZ2VyID0gTm9uZQorCisgICAgICAgIHN1cGVyKFB1YmxpY2F0 aW9uVmlldywgc2VsZikuX19pbml0X18oKiprd2FyZ3MpCisKKyAgICBkZWYgY2hlY2tfcHJlY29u ZGl0aW9uKGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGJlaGF2 ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNoZWNrIHRoZQorICAgICAgICBkYXRhYmFzZSBj b25uZWN0aW9uIGJlZm9yZSBydW5uaW5nIHRoZSB2aWV3LiBJdCBhbHNvIGF0dGFjaGVzCisgICAg ICAgIG1hbmFnZXIsIGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8gc2VsZgorICAg ICAgICAiIiIKKworICAgICAgICBAd3JhcHMoZikKKyAgICAgICAgZGVmIHdyYXAoKmFyZ3MsICoq a3dhcmdzKToKKyAgICAgICAgICAgICMgSGVyZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYga3dh cmdzIHdpbGwgaG9sZCBnaWQsc2lkLGRpZAorICAgICAgICAgICAgc2VsZiA9IGFyZ3NbMF0KKyAg ICAgICAgICAgIHNlbGYuZHJpdmVyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikKKyAg ICAgICAgICAgIHNlbGYubWFuYWdlciA9IHNlbGYuZHJpdmVyLmNvbm5lY3Rpb25fbWFuYWdlcihr d2FyZ3NbJ3NpZCddKQorICAgICAgICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5l Y3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAgICAgICAgICBzZWxmLmRhdGxhc3RzeXNvaWQg PSBzZWxmLm1hbmFnZXIuZGJfaW5mb1trd2FyZ3NbJ2RpZCddXVsKKyAgICAgICAgICAgICAgICAn ZGF0bGFzdHN5c29pZCddIGlmIHNlbGYubWFuYWdlci5kYl9pbmZvIGlzIG5vdCBOb25lIFwKKyAg ICAgICAgICAgICAgICBhbmQga3dhcmdzWydkaWQnXSBpbiBzZWxmLm1hbmFnZXIuZGJfaW5mbyBl bHNlIDAKKworICAgICAgICAgICAgIyBTZXQgdGhlIHRlbXBsYXRlIHBhdGggZm9yIHRoZSBTUUwg c2NyaXB0cworICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gKAorICAgICAgICAgICAg ICAgICJwdWJsaWNhdGlvbnMvc3FsLyNncGRiI3swfSMiLmZvcm1hdChzZWxmLm1hbmFnZXIudmVy c2lvbikgaWYKKyAgICAgICAgICAgICAgICBzZWxmLm1hbmFnZXIuc2VydmVyX3R5cGUgPT0gJ2dw ZGInIGVsc2UKKyAgICAgICAgICAgICAgICAicHVibGljYXRpb25zL3NxbC8jezB9IyIuZm9ybWF0 KHNlbGYubWFuYWdlci52ZXJzaW9uKQorICAgICAgICAgICAgKQorCisgICAgICAgICAgICByZXR1 cm4gZigqYXJncywgKiprd2FyZ3MpCisKKyAgICAgICAgcmV0dXJuIHdyYXAKKworICAgIEBzdGF0 aWNtZXRob2QKKyAgICBkZWYgX3BhcnNlcl9kYXRhX2lucHV0X2Zyb21fY2xpZW50KGRhdGEpOgor ICAgICAgICAiIiIKKworICAgICAgICA6cGFyYW0gZGF0YToKKyAgICAgICAgOnJldHVybjogZGF0 YQorICAgICAgICAiIiIKKworICAgICAgICBpZiAncHVidGFibGUnIGluIGRhdGEgYW5kIGRhdGFb J3B1YnRhYmxlJ10gIT0gJyc6CisgICAgICAgICAgICBkYXRhWydwdWJ0YWJsZSddID0ganNvbi5s b2FkcygKKyAgICAgICAgICAgICAgICBkYXRhWydwdWJ0YWJsZSddLCBlbmNvZGluZz0ndXRmLTgn CisgICAgICAgICAgICApCisgICAgICAgIHJldHVybiBkYXRhCisKKyAgICBAY2hlY2tfcHJlY29u ZGl0aW9uCisgICAgZGVmIGxpc3Qoc2VsZiwgZ2lkLCBzaWQsIGRpZCk6CisgICAgICAgICIiIgor ICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gbGlzdCBhbGwgdGhlIHB1YmxpY2F0aW9u IG5vZGVzIHdpdGhpbiB0aGF0CisgICAgICAgIGNvbGxlY3Rpb24uCisKKyAgICAgICAgQXJnczoK KyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZl ciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAiIiIKKyAgICAgICAg c3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fUFJPUEVSVElFU19TUUxd KSkKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKwor ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAg ICAgICAgICAgcmVzcG9uc2U9cmVzWydyb3dzJ10sCisgICAgICAgICAgICBzdGF0dXM9MjAwCisg ICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbm9kZXMoc2VsZiwg Z2lkLCBzaWQsIGRpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVz ZWQgdG8gY3JlYXRlIGFsbCB0aGUgY2hpbGQgbm9kZXMgd2l0aGluIHRoZQorICAgICAgICBjb2xs ZWN0aW9uLiBIZXJlIGl0IHdpbGwgY3JlYXRlIGFsbCB0aGUgcHVibGljYXRpb24gbm9kZXMuCisK KyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAg ICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAg ICAiIiIKKyAgICAgICAgcmVzID0gW10KKyAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIv Ii5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ25vZGVzLnNxbCddKSkKKyAgICAgICAgc3RhdHVzLCByZXN1bHQgPSBzZWxm LmNvbm4uZXhlY3V0ZV8yZGFycmF5KHNxbCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzdWx0KQorCisg ICAgICAgIGZvciByb3cgaW4gcmVzdWx0Wydyb3dzJ106CisgICAgICAgICAgICByZXMuYXBwZW5k KAorICAgICAgICAgICAgICAgIHNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgK KyAgICAgICAgICAgICAgICAgICAgcm93WydvaWQnXSwKKyAgICAgICAgICAgICAgICAgICAgZGlk LAorICAgICAgICAgICAgICAgICAgICByb3dbJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAg aWNvbj0iaWNvbi1wdWJsaWNhdGlvbiIKKyAgICAgICAgICAgICAgICApKQorCisgICAgICAgIHJl dHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICBkYXRhPXJlcywKKyAgICAgICAg ICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAg IGRlZiBub2RlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHBiaWQpOgorICAgICAgICAiIiIKKyAgICAg ICAgVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIHByb3BlcnRpZXMgb2YgdGhlIHB1YmxpY2F0aW9u IG5vZGVzLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJ RAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2Ug SUQKKyAgICAgICAgICAgIHBiaWQ6IFB1YmxpY2F0aW9uIElECisgICAgICAgICIiIgorICAgICAg ICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9QUk9QRVJUSUVTX1NR TF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGJpZD1wYmlkKQorICAgICAgICBz dGF0dXMsIHJlc3VsdCA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoc3FsKQorICAgICAgICBp ZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1yZXN1bHQpCisKKyAgICAgICAgZm9yIHJvdyBpbiByZXN1bHRbJ3Jvd3MnXToKKyAg ICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgZGF0 YT1zZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAgICAg ICAgIHJvd1snb2lkJ10sCisgICAgICAgICAgICAgICAgICAgIGRpZCwKKyAgICAgICAgICAgICAg ICAgICAgcm93WyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgIGljb249Imljb24tcHVibGlj YXRpb24iCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisg ICAgICAgICAgICApCisKKyAgICAgICAgcmV0dXJuIGdvbmUoZ2V0dGV4dCgiQ291bGQgbm90IGZp bmQgdGhlIHNwZWNpZmllZCBwdWJsaWNhdGlvbi4iKSkKKworICAgIEBjaGVja19wcmVjb25kaXRp b24KKyAgICBkZWYgcHJvcGVydGllcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBwYmlkKToKKyAgICAg ICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBzaG93IHRoZSBwcm9wZXJ0aWVzIG9m IHRoZQorICAgICAgICBzZWxlY3RlZCBwdWJsaWNhdGlvbiBub2RlLgorCisgICAgICAgIEFyZ3M6 CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2 ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAgIHBiaWQ6IFB1 YmxpY2F0aW9uIElECisgICAgICAgICIiIgorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuX2Zl dGNoX3Byb3BlcnRpZXMoZGlkLCBwYmlkKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAg ICAgICAgICByZXR1cm4gcmVzCisKKyAgICAgICAgaWYgJ2FsbF90YWJsZScgaW4gcmVzIGFuZCBy ZXNbJ2FsbF90YWJsZSddOgorICAgICAgICAgICAgcmVzWydwdWJ0YWJsZSddID0gJycKKworICAg ICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPXJlcywKKyAg ICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgZGVmIF9mZXRjaF9wcm9wZXJ0 aWVzKHNlbGYsIGRpZCwgcGJpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9u IGZldGNoIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBleHRlbnNpb24uCisgICAgICAgIDpwYXJhbSBk aWQ6CisgICAgICAgIDpwYXJhbSBwYmlkOgorICAgICAgICA6cmV0dXJuOgorICAgICAgICAiIiIK KyAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgIi8iLmpvaW4oW3Nl bGYudGVtcGxhdGVfcGF0aCwgc2VsZi5fUFJPUEVSVElFU19TUUxdKSwKKyAgICAgICAgICAgIHBi aWQ9cGJpZAorICAgICAgICApCisKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhl Y3V0ZV9kaWN0KHNxbCkKKworICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0 dXJuIEZhbHNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAg IGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZSwgZ29u ZShzZWxmLl9OT1RfRk9VTkRfUFVCX0lORk9STUFUSU9OKQorCisgICAgICAgIGdldF9uYW1lX3Nx bCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRl X3BhdGgsIHNlbGYuX0RFTEVURV9TUUxdKSwKKyAgICAgICAgICAgIHBiaWQ9cGJpZCwgY29ubj1z ZWxmLmNvbm4KKyAgICAgICAgKQorICAgICAgICBzdGF0dXMsIHBuYW1lID0gc2VsZi5jb25uLmV4 ZWN1dGVfc2NhbGFyKGdldF9uYW1lX3NxbCkKKyAgICAgICAgdGFibGVfc3FsID0gcmVuZGVyX3Rl bXBsYXRlKAorICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2dldF90 YWJsZXMuc3FsJ10pLAorICAgICAgICAgICAgcG5hbWU9cG5hbWUKKyAgICAgICAgKQorCisgICAg ICAgIHB1Yl90YWJsZSA9IFtdCisgICAgICAgIHN0YXR1cywgdGFibGVfcmVzID0gc2VsZi5jb25u LmV4ZWN1dGVfZGljdCh0YWJsZV9zcWwpCisKKyAgICAgICAgZm9yIHRhYmxlIGluIHRhYmxlX3Jl c1sncm93cyddOgorICAgICAgICAgICAgcHViX3RhYmxlLmFwcGVuZCh0YWJsZVsncHVidGFibGUn XSkKKworICAgICAgICByZXNbJ3Jvd3MnXVswXVsncHVidGFibGUnXSA9IHB1Yl90YWJsZQorCisg ICAgICAgIHJldHVybiBUcnVlLCByZXNbJ3Jvd3MnXVswXQorCisgICAgQGNoZWNrX3ByZWNvbmRp dGlvbgorICAgIGRlZiB1cGRhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgcGJpZCk6CisgICAgICAg ICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHRoZSBkYXRhIGZvciB0aGUg c2VsZWN0ZWQgcHVibGljYXRpb24gbm9kZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAg Z2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAg ICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAgICBwYmlkOiBQdWJsaWNhdGlvbiBJRAor ICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZvcm0g ZWxzZSBqc29uLmxvYWRzKAorICAgICAgICAgICAgcmVxdWVzdC5kYXRhLCBlbmNvZGluZz0ndXRm LTgnCisgICAgICAgICkKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBkYXRhID0gc2VsZi5f cGFyc2VyX2RhdGFfaW5wdXRfZnJvbV9jbGllbnQoZGF0YSkKKworICAgICAgICAgICAgc3FsLCBu YW1lID0gc2VsZi5nZXRfc3FsKGRhdGEsIHBiaWQpCisKKyAgICAgICAgICAgICMgTW9zdCBwcm9i YWJseSB0aGlzIGlzIGR1ZSB0byBlcnJvcgorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uo c3FsLCBzdHIpOgorICAgICAgICAgICAgICAgIHJldHVybiBzcWwKKyAgICAgICAgICAgIHNxbCA9 IHNxbC5zdHJpcCgnXG4nKS5zdHJpcCgnICcpCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNl bGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykK KworICAgICAgICAgICAgcmV0dXJuIGpzb25pZnkoCisgICAgICAgICAgICAgICAgbm9kZT1zZWxm LmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAgICAgICAgIHBi aWQsCisgICAgICAgICAgICAgICAgICAgIGRpZCwKKyAgICAgICAgICAgICAgICAgICAgbmFtZSwK KyAgICAgICAgICAgICAgICAgICAgaWNvbj0iaWNvbi0lcyIgJSBzZWxmLm5vZGVfdHlwZQorICAg ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh cyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1z dHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGNyZWF0ZShzZWxmLCBn aWQsIHNpZCwgZGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBj cmVhdGUgdGhlIHB1YmxpY2F0aW9uIG9iamVjdAorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAg ICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAg ICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVpcmVkX2Fy Z3MgPSBbCisgICAgICAgICAgICAnbmFtZScKKyAgICAgICAgXQorCisgICAgICAgIGRhdGEgPSBy ZXF1ZXN0LmZvcm0gaWYgcmVxdWVzdC5mb3JtIGVsc2UganNvbi5sb2FkcygKKyAgICAgICAgICAg IHJlcXVlc3QuZGF0YSwgZW5jb2Rpbmc9J3V0Zi04JworICAgICAgICApCisgICAgICAgIGZvciBh cmcgaW4gcmVxdWlyZWRfYXJnczoKKyAgICAgICAgICAgIGlmIGFyZyBub3QgaW4gZGF0YToKKyAg ICAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAg ICAgICBzdGF0dXM9NDEwLAorICAgICAgICAgICAgICAgICAgICBzdWNjZXNzPTAsCisgICAgICAg ICAgICAgICAgICAgIGVycm9ybXNnPWdldHRleHQoCisgICAgICAgICAgICAgICAgICAgICAgICAi Q291bGQgbm90IGZpbmQgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAoe30pLiIKKyAgICAgICAgICAg ICAgICAgICAgKS5mb3JtYXQoYXJnKQorICAgICAgICAgICAgICAgICkKKworICAgICAgICB0cnk6 CisgICAgICAgICAgICBkYXRhID0gc2VsZi5fcGFyc2VyX2RhdGFfaW5wdXRfZnJvbV9jbGllbnQo ZGF0YSkKKworICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxm LnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuX0NSRUFURV9TUUxdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkYXRhPWRhdGEsIGNvbm49c2VsZi5jb25uKQorCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9 IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoK KyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJl cykKKworICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAg ICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdnZXRfbm9kZXMuc3FsJ10pLAorICAgICAg ICAgICAgICAgIGNvbm49c2VsZi5jb25uCisgICAgICAgICAgICApCisKKyAgICAgICAgICAgIHN0 YXR1cywgcl9zZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKyAgICAgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1yX3NldCkKKworICAgICAgICAgICAgZm9yIHJvdyBpbiByX3NldFsncm93cydd OgorICAgICAgICAgICAgICAgIHJldHVybiBqc29uaWZ5KAorICAgICAgICAgICAgICAgICAgICBu b2RlPXNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgKKyAgICAgICAgICAgICAg ICAgICAgICAgIHJvd1snb2lkJ10sCisgICAgICAgICAgICAgICAgICAgICAgICBkaWQsCisgICAg ICAgICAgICAgICAgICAgICAgICByb3dbJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAg IGljb249J2ljb24tcHVibGljYXRpb24nCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgICAgICApCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAg cmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hl Y2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGRlbGV0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBwYmlk PU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGRyb3AgdGhl IHB1YmxpY2F0aW9uIG9iamVjdAorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNl cnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRp ZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAgIHBiaWQ6IFB1YmxpY2F0aW9uIElECisgICAgICAg ICIiIgorICAgICAgICBpZiBwYmlkIGlzIE5vbmU6CisgICAgICAgICAgICBkYXRhID0gcmVxdWVz dC5mb3JtIGlmIHJlcXVlc3QuZm9ybSBlbHNlIGpzb24ubG9hZHMoCisgICAgICAgICAgICAgICAg cmVxdWVzdC5kYXRhLCBlbmNvZGluZz0ndXRmLTgnCisgICAgICAgICAgICApCisgICAgICAgIGVs c2U6CisgICAgICAgICAgICBkYXRhID0geydpZHMnOiBbcGJpZF19CisKKyAgICAgICAgY2FzY2Fk ZSA9IHNlbGYuX2NoZWNrX2Nhc2NhZGVfb3BlcmF0aW9uKCkKKworICAgICAgICB0cnk6CisgICAg ICAgICAgICBmb3IgcGJpZCBpbiBkYXRhWydpZHMnXToKKyAgICAgICAgICAgICAgICAjIEdldCBu YW1lIGZvciBwdWJsaWNhdGlvbiBmcm9tIHBiaWQKKyAgICAgICAgICAgICAgICBzcWwgPSByZW5k ZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRl X3BhdGgsIHNlbGYuX0RFTEVURV9TUUxdKSwKKyAgICAgICAgICAgICAgICAgICAgcGJpZD1wYmlk LCBjb25uPXNlbGYuY29ubgorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICBzdGF0 dXMsIHBuYW1lID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKHNxbCkKKworICAgICAgICAgICAg ICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9z ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cG5hbWUpCisKKyAgICAgICAgICAgICAgICAjIGRyb3AgcHVi bGljYXRpb24KKyAgICAgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAg ICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsIHNlbGYuX0RFTEVURV9T UUxdKSwKKyAgICAgICAgICAgICAgICAgICAgcG5hbWU9cG5hbWUsIGNhc2NhZGU9Y2FzY2FkZSwg Y29ubj1zZWxmLmNvbm4KKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgICAgICAgICBzdGF0 dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihzcWwpCisgICAgICAgICAgICAgICAg aWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVz cG9uc2UoCisgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAgIGluZm89 Z2V0dGV4dCgiUHVibGljYXRpb24gZHJvcHBlZCIpCisgICAgICAgICAgICApCisKKyAgICAgICAg ZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAg ZGVmIG1zcWwoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgcGJpZD1Ob25lKToKKyAgICAgICAgIiIiCisg ICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byByZXR1cm4gbW9kaWZpZWQgU1FMIGZvciB0 aGUgc2VsZWN0ZWQKKyAgICAgICAgcHVibGljYXRpb24gbm9kZS4KKworICAgICAgICBBcmdzOgor ICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVy IElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAgICBwYmlkOiBQdWJs aWNhdGlvbiBJRAorICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9IHt9CisgICAgICAgIGZvciBr LCB2IGluIHJlcXVlc3QuYXJncy5pdGVtcygpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAg ICAgICAgICMgY29tbWVudHMgc2hvdWxkIGJlIHRha2VuIGFzIGlzIGJlY2F1c2UgaWYgdXNlciBl bnRlcnMgYQorICAgICAgICAgICAgICAgICMganNvbiBjb21tZW50IGl0IGlzIHBhcnNlZCBieSBs b2FkcyB3aGljaCBzaG91bGQgbm90IGhhcHBlbgorICAgICAgICAgICAgICAgIGlmIGsgaW4gKCdk ZXNjcmlwdGlvbicsKToKKyAgICAgICAgICAgICAgICAgICAgZGF0YVtrXSA9IHYKKyAgICAgICAg ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBkYXRhW2tdID0ganNvbi5sb2Fkcyh2 LCBlbmNvZGluZz0ndXRmLTgnKQorICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAg ICAgICAgICAgICAgZGF0YVtrXSA9IHYKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc3FsLCBu YW1lID0gc2VsZi5nZXRfc3FsKGRhdGEsIHBiaWQpCisgICAgICAgICAgICAjIE1vc3QgcHJvYmFi bHkgdGhpcyBpcyBkdWUgdG8gZXJyb3IKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHNx bCwgc3RyKToKKyAgICAgICAgICAgICAgICByZXR1cm4gc3FsCisgICAgICAgICAgICBpZiBzcWwg PT0gJyc6CisgICAgICAgICAgICAgICAgc3FsID0gIi0tbW9kaWZpZWQgU1FMIgorCisgICAgICAg ICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIGRhdGE9c3Fs LAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICkKKyAgICAgICAgZXhj ZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l cnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIF9nZXRf b3B0aW9uX2RldGFpbHMob2xkX2RhdGEsIGRhdGEpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0 dXJuIHRoZSBvcHRpb24gZGV0YWlscworICAgICAgICA6cGFyYW0gb2xkX2RhdGE6CisgICAgICAg IDpwYXJhbSBkYXRhOgorICAgICAgICA6cmV0dXJuOiBkYXRhCisgICAgICAgICIiIgorICAgICAg ICBpZiAnZXZudF9pbnNlcnQnIGluIGRhdGEgb3IgJ2V2bnRfZGVsZXRlJyBpbiBkYXRhIG9yIFwK KyAgICAgICAgICAgICAgICAnZXZudF91cGRhdGUnIGluIGRhdGEgb3IgJ2V2bnRfdHJ1bmNhdGUn IGluIGRhdGE6CisKKyAgICAgICAgICAgIGlmICdldm50X2luc2VydCcgbm90IGluIGRhdGE6Cisg ICAgICAgICAgICAgICAgZGF0YVsnZXZudF9pbnNlcnQnXSA9IG9sZF9kYXRhWydldm50X2luc2Vy dCddCisKKyAgICAgICAgICAgIGlmICdldm50X2RlbGV0ZScgbm90IGluIGRhdGE6CisgICAgICAg ICAgICAgICAgZGF0YVsnZXZudF9kZWxldGUnXSA9IG9sZF9kYXRhWydldm50X2RlbGV0ZSddCisK KyAgICAgICAgICAgIGlmICdldm50X3VwZGF0ZScgbm90IGluIGRhdGE6CisgICAgICAgICAgICAg ICAgZGF0YVsnZXZudF91cGRhdGUnXSA9IG9sZF9kYXRhWydldm50X3VwZGF0ZSddCisKKyAgICAg ICAgICAgIGlmICdldm50X3RydW5jYXRlJyBub3QgaW4gZGF0YSBhbmQgJ2V2bnRfdHJ1bmNhdGUn IGluIG9sZF9kYXRhOgorICAgICAgICAgICAgICAgIGRhdGFbJ2V2bnRfdHJ1bmNhdGUnXSA9IG9s ZF9kYXRhWydldm50X3RydW5jYXRlJ10KKworICAgICAgICByZXR1cm4gZGF0YQorCisgICAgZGVm IGdldF9zcWwoc2VsZiwgZGF0YSwgcGJpZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFRo aXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBzcWwgZnJvbSBtb2RlbCBkYXRhLgorCisgICAgICAg IEFyZ3M6CisgICAgICAgICAgICBkYXRhOiBDb250YWlucyB0aGUgZGF0YSBvZiB0aGUgc2VsZWN0 ZWQgcHVibGljYXRpb24gbm9kZS4KKyAgICAgICAgICAgIHBiaWQ6IFB1YmxpY2F0aW9uIElECisg ICAgICAgICIiIgorICAgICAgICByZXF1aXJlZF9hcmdzID0gWworICAgICAgICAgICAgJ25hbWUn CisgICAgICAgIF0KKworICAgICAgICBpZiBwYmlkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg c3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRl bXBsYXRlX3BhdGgsIHNlbGYuX1BST1BFUlRJRVNfU1FMXSksIHBiaWQ9cGJpZAorICAgICAgICAg ICAgKQorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNx bCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIGlmIGxlbihy ZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgICAgICByZXR1cm4gZ29uZShzZWxmLl9OT1Rf Rk9VTkRfUFVCX0lORk9STUFUSU9OKQorCisgICAgICAgICAgICBvbGRfZGF0YSA9IHJlc1sncm93 cyddWzBdCisgICAgICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICAg ICAgICAgaWYgYXJnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgICAgICBkYXRhW2FyZ10g PSBvbGRfZGF0YVthcmddCisKKyAgICAgICAgICAgICMgQWRkIG9sZCBldmVudCBzZXR0aW5nIGZv ciBmdXR1cmUgcmVmZXJlbmNlCisgICAgICAgICAgICBkYXRhID0gc2VsZi5fZ2V0X29wdGlvbl9k ZXRhaWxzKG9sZF9kYXRhLCBkYXRhKQorCisgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxh dGUoCisgICAgICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgc2VsZi5f VVBEQVRFX1NRTF0pLAorICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgb19kYXRhPW9sZF9kYXRh LCBjb25uPXNlbGYuY29ubgorICAgICAgICAgICAgKQorICAgICAgICAgICAgcmV0dXJuIHNxbC5z dHJpcCgnXG4nKSwgZGF0YVsnbmFtZSddIGlmICduYW1lJyBpbiBkYXRhIFwKKyAgICAgICAgICAg ICAgICBlbHNlIG9sZF9kYXRhWyduYW1lJ10KKyAgICAgICAgZWxzZToKKworICAgICAgICAgICAg c3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX0NSRUFURV9TUUxd KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWRhdGEsIGNvbm49c2Vs Zi5jb25uKQorICAgICAgICAgICAgcmV0dXJuIHNxbC5zdHJpcCgnXG4nKSwgZGF0YVsnbmFtZSdd CisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGdldF90YWJsZXMoc2VsZiwgZ2lk LCBzaWQsIGRpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMg dGhlIHRhYmxlcyBsaXN0LgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZl ciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDog RGF0YWJhc2UgSUQKKyAgICAgICAgIiIiCisgICAgICAgIHJlcyA9IFt7J2xhYmVsJzogJycsICd2 YWx1ZSc6ICcnfV0KKworICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3Nl bGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLl9GVU5DVElPTlNfU1FMXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz aG93X3N5c19vYmplY3RzPXNlbGYuYmx1ZXByaW50LgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2hvd19zeXN0ZW1fb2JqZWN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlcnZlcl90eXBlPXNlbGYubWFuYWdlci5zZXJ2ZXJfdHlwZQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKQorICAgICAgICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8y ZGFycmF5KHNxbCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICBmb3Igcm93IGluIHJz ZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgIHJlcy5hcHBlbmQoCisgICAgICAgICAgICAgICAgewor ICAgICAgICAgICAgICAgICAgICAnbGFiZWwnOiByb3dbJ3RhYmxlJ10sCisgICAgICAgICAgICAg ICAgICAgICd2YWx1ZSc6IHJvd1sndGFibGUnXQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICkKKyAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgIGRh dGE9cmVzLAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBAY2hlY2tf cHJlY29uZGl0aW9uCisgICAgZGVmIHNxbChzZWxmLCBnaWQsIHNpZCwgZGlkLCBwYmlkLCBqc29u X3Jlc3A9VHJ1ZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2Vu ZXJhdGUgc3FsIHRvIHNob3cgaW4gdGhlIHNxbCBwYW5lbCBmb3IgdGhlCisgICAgICAgIHNlbGVj dGVkIHB1YmxpY2F0aW9uIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDog U2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAg ZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgICAgcGJpZDogUHVibGljYXRpb24gSUQKKyAgICAg ICAgICAgIGpzb25fcmVzcDoKKyAgICAgICAgIiIiCisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1w bGF0ZSgKKyAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsIHNlbGYuX1BS T1BFUlRJRVNfU1FMXSksCisgICAgICAgICAgICBwYmlkPXBiaWQKKyAgICAgICAgKQorICAgICAg ICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorICAgICAgICBpZiBu b3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJv cm1zZz1yZXMpCisKKyAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgorICAgICAgICAg ICAgcmV0dXJuIGdvbmUoc2VsZi5fTk9UX0ZPVU5EX1BVQl9JTkZPUk1BVElPTikKKworICAgICAg ICAjIE1ha2luZyBjb3B5IG9mIG91dHB1dCBmb3IgZnV0dXJlIHVzZQorICAgICAgICBvbGRfZGF0 YSA9IGRpY3QocmVzWydyb3dzJ11bMF0pCisKKyAgICAgICAgaWYgJ2FsbF90YWJsZScgaW4gb2xk X2RhdGEgYW5kIG9sZF9kYXRhWydhbGxfdGFibGUnXToKKyAgICAgICAgICAgIG9sZF9kYXRhWydw dWJ0YWJsZSddID0gJycKKworICAgICAgICBvbGRfZGF0YSA9IHNlbGYuX3BhcnNlcl9kYXRhX2lu cHV0X2Zyb21fY2xpZW50KG9sZF9kYXRhKQorCisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0 ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuX0NSRUFURV9TUUxdKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRhdGE9b2xkX2RhdGEsIGNvbm49c2VsZi5jb25uKQorICAgICAgICBzcWwgKz0g IlxuXG4iCisKKyAgICAgICAgc3FsX2hlYWRlciA9ICItLSBQdWJsaWNhdGlvbiA6IHt9OyIuZm9y bWF0KG9sZF9kYXRhWyduYW1lJ10pCisgICAgICAgIHNxbF9oZWFkZXIgKz0gIlxuIgorCisgICAg ICAgIHNxbF9oZWFkZXIgKz0gIi0tICIKKworICAgICAgICBzcWxfaGVhZGVyICs9IHJlbmRlcl90 ZW1wbGF0ZSgKKyAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsIHNlbGYu X0RFTEVURV9TUUxdKSwKKyAgICAgICAgICAgIHBuYW1lPW9sZF9kYXRhWyduYW1lJ10sICkKKwor ICAgICAgICBzcWxfaGVhZGVyICs9ICJcbiIKKworICAgICAgICBzcWwgPSBzcWxfaGVhZGVyICsg c3FsCisKKyAgICAgICAgaWYgbm90IGpzb25fcmVzcDoKKyAgICAgICAgICAgIHJldHVybiBzcWwK KworICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZShyZXNwb25zZT1zcWwpCisKKyAgICBAY2hl Y2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGRlcGVuZGVudHMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwg cGJpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdldHMgdGhlIGRlcGVu ZGVudHMgYW5kIHJldHVybnMgYW4gYWpheCByZXNwb25zZQorICAgICAgICBmb3IgdGhlIHB1Ymxp Y2F0aW9uIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdy b3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRh YmFzZSBJRAorICAgICAgICAgICAgcGJpZDogUHVibGljYXRpb24gSUQKKyAgICAgICAgIiIiCisg ICAgICAgIGRlcGVuZGVudHNfcmVzdWx0ID0gc2VsZi5nZXRfZGVwZW5kZW50cyhzZWxmLmNvbm4s IHBiaWQpCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgcmVzcG9u c2U9ZGVwZW5kZW50c19yZXN1bHQsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkK KworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVwZW5kZW5jaWVzKHNlbGYsIGdp ZCwgc2lkLCBkaWQsIHBiaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBn ZXRzIHRoZSBkZXBlbmRlbmNpZXMgYW5kIHJldHVybnMgYW4gYWpheCByZXNwb25zZQorICAgICAg ICBmb3IgdGhlIHB1YmxpY2F0aW9uIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAg IGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAg ICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgICAgcGJpZDogUHVibGljYXRpb24gSUQK KyAgICAgICAgIiIiCisgICAgICAgIGRlcGVuZGVuY2llc19yZXN1bHQgPSBzZWxmLmdldF9kZXBl bmRlbmNpZXMoc2VsZi5jb25uLCBwYmlkKQorICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgK KyAgICAgICAgICAgIHJlc3BvbnNlPWRlcGVuZGVuY2llc19yZXN1bHQsCisgICAgICAgICAgICBz dGF0dXM9MjAwCisgICAgICAgICkKKworCitQdWJsaWNhdGlvblZpZXcucmVnaXN0ZXJfbm9kZV92 aWV3KGJsdWVwcmludCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvc3RhdGljL2ltZy9jb2xsLXB1Ymxp Y2F0aW9uLnN2ZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9wdWJsaWNhdGlvbnMvc3RhdGljL2ltZy9jb2xsLXB1YmxpY2F0aW9uLnN2ZwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmNjOTQ2OTE5YgotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9wdWJsaWNhdGlvbnMvc3RhdGljL2ltZy9jb2xsLXB1YmxpY2F0aW9uLnN2ZwpAQCAtMCwwICsx LDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBHZW5l cmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI0LjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZH IFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXll cl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRw Oi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKKwkgdmlld0JveD0iMCAw IDE2IDE2IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxNiAxNjsiIHhtbDpzcGFj ZT0icHJlc2VydmUiPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKwkuc3Qwe2ZpbGw6I0RERTFG MDtzdHJva2U6IzRCNUZBRDtzdHJva2Utd2lkdGg6MC42NTtzdHJva2UtbGluZWNhcDpyb3VuZDtz dHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQorCS5zdDF7ZmlsbDoj NEI1RkFEO30KKwkuc3Qye2ZpbGw6bm9uZTtzdHJva2U6IzRCNUZBRDtzdHJva2Utd2lkdGg6MC42 NTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVy bGltaXQ6MTA7fQorPC9zdHlsZT4KKzxnPgorCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMCwxM2Mt MiwyLTUuMSwyLTcuMSwwcy0yLTUuMSwwLTcuMUM0LjUsNy41LDguNSwxMS41LDEwLDEzeiIvPgor PC9nPgorPGc+CisJPHBhdGggY2xhc3M9InN0MCIgZD0iTTExLjgsMTEuM2MtMiwyLTUuMSwyLTcu MSwwcy0yLTUuMSwwLTcuMUM2LjIsNS43LDEwLjIsOS44LDExLjgsMTEuM3oiLz4KKzwvZz4KKzxw YXRoIGNsYXNzPSJzdDEiIGQ9Ik04LjcsNy44bDAuOC0wLjdjMC4xLDAuMSwwLjMsMC4xLDAuNCww LjFjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFzLTEsMC40LTEsMWMwLDAuMSwwLDAuMywwLjEs MC40TDguMiw3LjMKKwlMOC43LDcuOHoiLz4KKzxnPgorCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0x MC41LDEuNmMyLjIsMCw0LDEuOCw0LDQiLz4KKwk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTAuNiwz LjZjMS4xLDAsMiwwLjksMiwyIi8+Cis8L2c+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMv c3RhdGljL2ltZy9jb2xsLXN1YnNjcmlwdGlvbi5zdmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3N0YXRpYy9pbWcvY29s bC1zdWJzY3JpcHRpb24uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4u ZDE0YWRmZDM5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy9zdGF0aWMvaW1nL2NvbGwtc3Vi c2NyaXB0aW9uLnN2ZwpAQCAtMCwwICsxLDMwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29k aW5nPSJ1dGYtOCI/PgorPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI0LjAuMSwg U1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgorPHN2 ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAw MC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgi IHk9IjBweCIKKwkgdmlld0JveD0iMCAwIDE2IDE2IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6 bmV3IDAgMCAxNiAxNjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgorPHN0eWxlIHR5cGU9InRleHQv Y3NzIj4KKwkuc3Qwe2ZpbGw6I0ZCRUVERjtzdHJva2U6I0U1OEUyNjtzdHJva2Utd2lkdGg6MC42 NTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVy bGltaXQ6MTA7fQorCS5zdDF7ZmlsbDojRTU4RTI2O30KKwkuc3Qye2ZpbGw6bm9uZTtzdHJva2U6 I0U1OEUyNjtzdHJva2Utd2lkdGg6MC42NTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGlu ZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQorPC9zdHlsZT4KKzxnPgorCTxnPgor CQk8Zz4KKwkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMi45LDUuN2MyLDIsMiw1LjEsMCw3LjFz LTUuMSwyLTcuMSwwQzcuMywxMS4zLDExLjQsNy4yLDEyLjksNS43eiIvPgorCQk8L2c+CisJPC9n PgorCTxnPgorCQk8Zz4KKwkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMS40LDQuMmMyLDIsMiw1 LjEsMCw3LjFzLTUuMSwyLTcuMSwwQzUuOCw5LjgsOS45LDUuNywxMS40LDQuMnoiLz4KKwkJPC9n PgorCQk8Zz4KKwkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik03LjgsNy4zTDcuMSw2LjZjMC4xLTAu MSwwLjEtMC4zLDAuMS0wLjRjMC0wLjYtMC40LTEtMS0xcy0xLDAuNC0xLDFzMC40LDEsMSwxYzAu MSwwLDAuMywwLDAuNC0wLjEKKwkJCQlsMC43LDAuNyIvPgorCQkJPGc+CisJCQkJPHBhdGggY2xh c3M9InN0MiIgZD0iTTUuNiwxLjdjMCwyLjItMS44LDQtNCw0Ii8+CisJCQkJPHBhdGggY2xhc3M9 InN0MiIgZD0iTTMuNywxLjhjMCwxLjEtMC45LDItMiwyIi8+CisJCQk8L2c+CisJCTwvZz4KKwk8 L2c+Cis8L2c+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvc3RhdGljL2ltZy9wdWJsaWNh dGlvbi5zdmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvcHVibGljYXRpb25zL3N0YXRpYy9pbWcvcHVibGljYXRpb24uc3ZnCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uM2I1ODJjZjUxCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1Ymxp Y2F0aW9ucy9zdGF0aWMvaW1nL3B1YmxpY2F0aW9uLnN2ZwpAQCAtMCwwICsxLDIyIEBACis8P3ht bCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBHZW5lcmF0b3I6IEFkb2Jl IElsbHVzdHJhdG9yIDIzLjAuNiwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYu MDAgQnVpbGQgMCkgIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0i aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9y Zy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKKwkgdmlld0JveD0iMCAwIDE2IDE2IiBzdHls ZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxNiAxNjsiIHhtbDpzcGFjZT0icHJlc2VydmUi PgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKwkuc3Qwe2ZpbGw6I0RERTFGMDtzdHJva2U6IzRC NUZBRDtzdHJva2Utd2lkdGg6MC42NTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpv aW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQorCS5zdDF7ZmlsbDojNEI1RkFEO30KKwku c3Qye2ZpbGw6bm9uZTtzdHJva2U6IzRCNUZBRDtzdHJva2Utd2lkdGg6MC42NTtzdHJva2UtbGlu ZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQor PC9zdHlsZT4KKzxnPgorCTxnPgorCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTEsMTJjLTIsMi01 LjEsMi03LjEsMHMtMi01LjEsMC03LjFDNS40LDYuNCw5LjUsMTAuNSwxMSwxMnoiLz4KKwk8L2c+ CisJPGc+CisJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik03LjksOC42bDAuNy0wLjdDOC43LDgsOC45 LDgsOSw4YzAuNiwwLDEtMC40LDEtMVM5LjYsNiw5LDZTOCw2LjQsOCw3YzAsMC4xLDAsMC4zLDAu MSwwLjRMNy40LDguMSIvPgorCQk8Zz4KKwkJCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik05LjYsMi41 YzIuMiwwLDQsMS44LDQsNCIvPgorCQkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTkuNyw0LjRjMS4x LDAsMiwwLjksMiwyIi8+CisJCTwvZz4KKwk8L2c+Cis8L2c+Cis8L3N2Zz4KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJs aWNhdGlvbnMvc3RhdGljL2ltZy9zdWJzY3JpcHRpb24uc3ZnIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy9zdGF0aWMvaW1n L3N1YnNjcmlwdGlvbi5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi42 M2ExNTNjNmQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3N0YXRpYy9pbWcvc3Vic2NyaXB0 aW9uLnN2ZwpAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1 dGYtOCI/PgorPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIzLjAuNiwgU1ZHIEV4 cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgorPHN2ZyB2ZXJz aW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmci IHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBw eCIKKwkgdmlld0JveD0iMCAwIDE2IDE2IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAg MCAxNiAxNjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4K Kwkuc3Qwe2ZpbGw6I0ZCRUVERjtzdHJva2U6I0U1OEUyNjtzdHJva2Utd2lkdGg6MC42NTtzdHJv a2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6 MTA7fQorCS5zdDF7ZmlsbDojRTU4RTI2O30KKwkuc3Qye2ZpbGw6bm9uZTtzdHJva2U6I0U1OEUy NjtzdHJva2Utd2lkdGg6MC42NTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46 cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQorPC9zdHlsZT4KKzxnPgorCTxnPgorCQk8cGF0 aCBjbGFzcz0ic3QwIiBkPSJNMTIuMiw1YzIsMiwyLDUuMSwwLDcuMXMtNS4xLDItNy4xLDBDNi42 LDEwLjYsMTAuNyw2LjUsMTIuMiw1eiIvPgorCTwvZz4KKwk8Zz4KKwkJPHBhdGggY2xhc3M9InN0 MSIgZD0iTTguNiw4LjFMNy45LDcuNEM4LDcuMyw4LDcuMSw4LDdjMC0wLjYtMC40LTEtMS0xUzYs Ni40LDYsN3MwLjQsMSwxLDFjMC4xLDAsMC4zLDAsMC40LTAuMWwwLjcsMC43Ii8+CisJCTxnPgor CQkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTYuNCwyLjVjMCwyLjItMS44LDQtNCw0Ii8+CisJCQk8 cGF0aCBjbGFzcz0ic3QyIiBkPSJNNC41LDIuNmMwLDEuMS0wLjksMi0yLDIiLz4KKwkJPC9nPgor CTwvZz4KKzwvZz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy9zdGF0aWMvanMvcHVibGlj YXRpb24uanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvcHVibGljYXRpb25zL3N0YXRpYy9qcy9wdWJsaWNhdGlvbi5qcwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjc1Y2Q4MjFlZQotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNh dGlvbnMvc3RhdGljL2pzL3B1YmxpY2F0aW9uLmpzCkBAIC0wLDAgKzEsMjE5IEBACisvLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisv LworLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworLy8KKy8vIENvcHlyaWdodCAoQykg MjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKy8vIFRoaXMgc29mdHdh cmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorLy8KKy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisK K2RlZmluZSgncGdhZG1pbi5ub2RlLnB1YmxpY2F0aW9uJywgWworICAnc291cmNlcy9nZXR0ZXh0 JywgJ3NvdXJjZXMvdXJsX2ZvcicsICdqcXVlcnknLCAndW5kZXJzY29yZScsCisgICdzb3VyY2Vz L3BnYWRtaW4nLCAncGdhZG1pbi5icm93c2VyJywgJ3BnYWRtaW4uYmFja2Zvcm0nLAorICAncGdh ZG1pbi5icm93c2VyLmNvbGxlY3Rpb24nLCAncGdhZG1pbi5icm93c2VyLnNlcnZlci5wcml2aWxl Z2UnLAorXSwgZnVuY3Rpb24oZ2V0dGV4dCwgdXJsX2ZvciwgJCwgXywgcGdBZG1pbiwgcGdCcm93 c2VyLCBCYWNrZm9ybSkgeworCisgIC8vIEV4dGVuZCB0aGUgYnJvd3NlcidzIGNvbGxlY3Rpb24g Y2xhc3MgZm9yIHB1YmxpY2F0aW9ucyBjb2xsZWN0aW9uCisgIGlmICghcGdCcm93c2VyLk5vZGVz Wydjb2xsLXB1YmxpY2F0aW9uJ10pIHsKKyAgICBwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwtcHVibGlj YXRpb24nXSA9CisgICAgICBwZ0Jyb3dzZXIuQ29sbGVjdGlvbi5leHRlbmQoeworICAgICAgICBu b2RlOiAncHVibGljYXRpb24nLAorICAgICAgICBsYWJlbDogZ2V0dGV4dCgnUHVibGljYXRpb25z JyksCisgICAgICAgIHR5cGU6ICdjb2xsLXB1YmxpY2F0aW9uJywKKyAgICAgICAgY29sdW1uczog WyduYW1lJywgJ3B1Ym93bmVyJywgJ2FsbF90YWJsZSddLAorICAgICAgfSk7CisgIH0KKworICAv LyBFeHRlbmQgdGhlIGJyb3dzZXIncyBub2RlIGNsYXNzIGZvciBwdWJsaWNhdGlvbiBub2RlCisg IGlmICghcGdCcm93c2VyLk5vZGVzWydwdWJsaWNhdGlvbiddKSB7CisgICAgcGdCcm93c2VyLk5v ZGVzWydwdWJsaWNhdGlvbiddID0gcGdCcm93c2VyLk5vZGUuZXh0ZW5kKHsKKyAgICAgIHBhcmVu dF90eXBlOiAnZGF0YWJhc2UnLAorICAgICAgdHlwZTogJ3B1YmxpY2F0aW9uJywKKyAgICAgIHNx bEFsdGVySGVscDogJ3NxbC1hbHRlcnB1YmxpY2F0aW9uLmh0bWwnLAorICAgICAgc3FsQ3JlYXRl SGVscDogJ3NxbC1jcmVhdGVwdWJsaWNhdGlvbi5odG1sJywKKyAgICAgIGRpYWxvZ0hlbHA6IHVy bF9mb3IoJ2hlbHAuc3RhdGljJywgeydmaWxlbmFtZSc6ICdwdWJsaWNhdGlvbl9kaWFsb2cuaHRt bCd9KSwKKyAgICAgIGxhYmVsOiBnZXR0ZXh0KCdQdWJsaWNhdGlvbicpLAorICAgICAgaGFzU1FM OiAgdHJ1ZSwKKyAgICAgIGNhbkRyb3A6IHRydWUsCisgICAgICBjYW5Ecm9wQ2FzY2FkZTogdHJ1 ZSwKKyAgICAgIGhhc0RlcGVuZHM6IHRydWUsCisgICAgICBJbml0OiBmdW5jdGlvbigpIHsKKwor ICAgICAgICAvLyBBdm9pZCBtdWx0aXBsZSByZWdpc3RyYXRpb24gb2YgbWVudXMKKyAgICAgICAg aWYgKHRoaXMuaW5pdGlhbGl6ZWQpCisgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMu aW5pdGlhbGl6ZWQgPSB0cnVlOworCisKKyAgICAgICAgLy8gQWRkIGNvbnRleHQgbWVudXMgZm9y IHB1YmxpY2F0aW9uCisgICAgICAgIHBnQnJvd3Nlci5hZGRfbWVudXMoW3sKKyAgICAgICAgICBu YW1lOiAnY3JlYXRlX3B1YmxpY2F0aW9uX29uX2RhdGFiYXNlJywgbm9kZTogJ2RhdGFiYXNlJywg bW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwg Y2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2Ny ZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJlbDogZ2V0dGV4dCgnUHVibGljYXRpb24uLi4nKSwKKyAg ICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tcHVibGljYXRpb24nLCBkYXRhOiB7YWN0aW9u OiAnY3JlYXRlJ30sCisgICAgICAgICAgZW5hYmxlOiBwZ0Jyb3dzZXIuTm9kZXNbJ2RhdGFiYXNl J10uY2FuQ3JlYXRlLAorICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAnY3JlYXRlX3B1Ymxp Y2F0aW9uX29uX2NvbGwnLCBub2RlOiAnY29sbC1wdWJsaWNhdGlvbicsIG1vZHVsZTogdGhpcywK KyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hv d19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0 eTogNCwgbGFiZWw6IGdldHRleHQoJ1B1YmxpY2F0aW9uLi4uJyksCisgICAgICAgICAgaWNvbjog J3djVGFiSWNvbiBpY29uLXB1YmxpY2F0aW9uJywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZSd9LAor ICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAnY3JlYXRlX3B1YmxpY2F0aW9uJywgbm9kZTog J3B1YmxpY2F0aW9uJywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0 JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAgICAg ICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJlbDogZ2V0dGV4dCgnUHVibGlj YXRpb24uLi4nKSwKKyAgICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tcHVibGljYXRpb24n LCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJ30sCisgICAgICAgIH1dKTsKKyAgICAgIH0sCisgICAg ICAvLyBEZWZpbmUgdGhlIG1vZGVsIGZvciBwdWJsaWNhdGlvbiBub2RlCisgICAgICBtb2RlbDog cGdCcm93c2VyLk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICAgICAgaWRBdHRyaWJ1dGU6ICdvaWQn LAorICAgICAgICBkZWZhdWx0czogeworICAgICAgICAgIG5hbWU6IHVuZGVmaW5lZCwKKyAgICAg ICAgICBwdWJvd25lcjogdW5kZWZpbmVkLAorICAgICAgICAgIHB1YnRhYmxlOiB1bmRlZmluZWQs CisgICAgICAgICAgYWxsX3RhYmxlOiB1bmRlZmluZWQsCisgICAgICAgICAgZXZudF9pbnNlcnQ6 dW5kZWZpbmVkLAorICAgICAgICAgIGV2bnRfZGVsZXRlOnVuZGVmaW5lZCwKKyAgICAgICAgICBl dm50X3VwZGF0ZTp1bmRlZmluZWQsCisgICAgICAgICAgZXZudF90cnVuY2F0ZTp1bmRlZmluZWQs CisgICAgICAgICAgb25seV90YWJsZTogdW5kZWZpbmVkLAorICAgICAgICB9LAorCisgICAgICAg IC8vIERlZmF1bHQgdmFsdWVzIQorICAgICAgICBpbml0aWFsaXplOiBmdW5jdGlvbihhdHRycywg YXJncykgeworICAgICAgICAgIHZhciBpc05ldyA9IChfLnNpemUoYXR0cnMpID09PSAwKTsKKyAg ICAgICAgICBpZiAoaXNOZXcpIHsKKyAgICAgICAgICAgIHZhciB1c2VySW5mbyA9IHBnQnJvd3Nl ci5zZXJ2ZXJJbmZvW2FyZ3Mubm9kZV9pbmZvLnNlcnZlci5faWRdLnVzZXI7CisKKyAgICAgICAg ICAgIHRoaXMuc2V0KHsncHVib3duZXInOiB1c2VySW5mby5uYW1lfSwge3NpbGVudDogdHJ1ZX0p OworICAgICAgICAgIH0KKyAgICAgICAgICBwZ0Jyb3dzZXIuTm9kZS5Nb2RlbC5wcm90b3R5cGUu aW5pdGlhbGl6ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworICAgICAgICB9LAorCisgICAgICAg IC8vIERlZmluZSB0aGUgc2NoZW1hIGZvciB0aGUgcHVibGljYXRpb24gbm9kZQorICAgICAgICBz Y2hlbWE6IFt7CisgICAgICAgICAgaWQ6ICduYW1lJywgbGFiZWw6IGdldHRleHQoJ05hbWUnKSwg dHlwZTogJ3RleHQnLAorICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcycsICdjcmVhdGUnLCAn ZWRpdCddLAorICAgICAgICAgIHZpc2libGU6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYo IV8uaXNVbmRlZmluZWQodGhpcy5ub2RlX2luZm8pICYmICFfLmlzVW5kZWZpbmVkKHRoaXMubm9k ZV9pbmZvLnNlcnZlcikKKyAgICAgICAgICAgICAgJiYgIV8uaXNVbmRlZmluZWQodGhpcy5ub2Rl X2luZm8uc2VydmVyLnZlcnNpb24pICYmCisgICAgICAgICAgICAgICAgdGhpcy5ub2RlX2luZm8u c2VydmVyLnZlcnNpb24gPj0gMTAwMDAwKSB7CisgICAgICAgICAgICAgIHJldHVybiB0cnVlOwor ICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgIH0sCisg ICAgICAgIH0seworICAgICAgICAgIGlkOiAnb2lkJywgbGFiZWw6IGdldHRleHQoJ09JRCcpLCBj ZWxsOiAnc3RyaW5nJywgbW9kZTogWydwcm9wZXJ0aWVzJ10sCisgICAgICAgICAgdHlwZTogJ3Rl eHQnLAorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3B1Ym93bmVyJywgbGFiZWw6IGdldHRl eHQoJ093bmVyJyksIHR5cGU6ICd0ZXh0JywKKyAgICAgICAgICBjb250cm9sOiBCYWNrZm9ybS5O b2RlTGlzdEJ5TmFtZUNvbnRyb2wsIG5vZGU6ICdyb2xlJywKKyAgICAgICAgICBtb2RlOiBbJ2Vk aXQnLCAncHJvcGVydGllcycsICdjcmVhdGUnXSwgc2VsZWN0MjogeyBhbGxvd0NsZWFyOiBmYWxz ZX0sCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnYWxsX3RhYmxlJywgbGFiZWw6IGdldHRl eHQoJ0FsbCB0YWJsZT8nKSwgdHlwZTogJ3N3aXRjaCcsCisgICAgICAgICAgZ3JvdXA6IGdldHRl eHQoJ0RlZmluaXRpb24nKSwgbW9kZTogWydlZGl0JywgJ3Byb3BlcnRpZXMnLCAnY3JlYXRlJ10s IGRlcHM6IFsnbmFtZSddLAorICAgICAgICAgIHJlYWRvbmx5OiBmdW5jdGlvbihtKSB7cmV0dXJu ICFtLmlzTmV3KCk7fSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnb25s eV90YWJsZScsIGxhYmVsOiBnZXR0ZXh0KCdPbmx5IHRhYmxlJyksIHR5cGU6ICdzd2l0Y2gnLAor ICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdEZWZpbml0aW9uJyksIG1vZGU6IFsnZWRpdCcsICdw cm9wZXJ0aWVzJywgJ2NyZWF0ZSddLAorICAgICAgICAgIGRlcHM6IFsnbmFtZSwgYWxsX3RhYmxl J10sIGRpc2FibGVkOiBmdW5jdGlvbihtKXsKKyAgICAgICAgICAgIGlmKG0uZ2V0KCdhbGxfdGFi bGUnKSkKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgfSwKKyAgICAgICAg fSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAncHVidGFibGUnLCBsYWJlbDogZ2V0dGV4dCgn VGFibGUnKSwgdHlwZTogJ2FycmF5JyxzZWxlY3QyOiB7IGFsbG93Q2xlYXI6IHRydWUsIG11bHRp cGxlOiB0cnVlIH0sCisgICAgICAgICAgY29udHJvbDogJ25vZGUtYWpheC1vcHRpb25zJywgdXJs OidnZXRfdGFibGVzJywKKyAgICAgICAgICBncm91cDogZ2V0dGV4dCgnRGVmaW5pdGlvbicpLCBt b2RlOiBbJ2VkaXQnLCAncHJvcGVydGllcycsICdjcmVhdGUnXSwKKyAgICAgICAgICBkZXBzOiBb J2FsbF90YWJsZSddLCBkaXNhYmxlZDogJ2lzQWxsVGFibGUnLAorICAgICAgICB9LAorICAgICAg ICB7CisgICAgICAgICAgdHlwZTogJ25lc3RlZCcsIGNvbnRyb2w6ICdmaWVsZHNldCcsIG1vZGU6 IFsnY3JlYXRlJywnZWRpdCcsICdwcm9wZXJ0aWVzJ10sCisgICAgICAgICAgbGFiZWw6IGdldHRl eHQoJ1dpdGgnKSwgZ3JvdXA6IGdldHRleHQoJ0RlZmluaXRpb24nKSwgY29udGVudENsYXNzOiAn cm93JywKKyAgICAgICAgICBzY2hlbWE6W3sKKyAgICAgICAgICAgIGlkOiAnZXZudF9pbnNlcnQn LCBsYWJlbDogZ2V0dGV4dCgnSU5TRVJUJyksCisgICAgICAgICAgICB0eXBlOiAnc3dpdGNoJywg bW9kZTogWydjcmVhdGUnLCdlZGl0JywgJ3Byb3BlcnRpZXMnXSwKKyAgICAgICAgICAgIGdyb3Vw OiBnZXR0ZXh0KCdXaXRoJyksCisgICAgICAgICAgICBleHRyYVRvZ2dsZUNsYXNzZXM6ICdwZy1l bC1zbS02JywKKyAgICAgICAgICAgIGNvbnRyb2xMYWJlbENsYXNzTmFtZTogJ2NvbnRyb2wtbGFi ZWwgcGctZWwtc20tNSBwZy1lbC0xMicsCisgICAgICAgICAgICBjb250cm9sc0NsYXNzTmFtZTog J3BnYWRtaW4tY29udHJvbHMgcGctZWwtc20tNyBwZy1lbC0xMicsCisgICAgICAgICAgfSx7Cisg ICAgICAgICAgICBpZDogJ2V2bnRfdXBkYXRlJywgbGFiZWw6IGdldHRleHQoJ1VQREFURScpLAor ICAgICAgICAgICAgdHlwZTogJ3N3aXRjaCcsIG1vZGU6IFsnY3JlYXRlJywnZWRpdCcsICdwcm9w ZXJ0aWVzJ10sCisgICAgICAgICAgICBncm91cDogZ2V0dGV4dCgnV2l0aCcpLAorICAgICAgICAg ICAgZXh0cmFUb2dnbGVDbGFzc2VzOiAncGctZWwtc20tNicsCisgICAgICAgICAgICBjb250cm9s TGFiZWxDbGFzc05hbWU6ICdjb250cm9sLWxhYmVsIHBnLWVsLXNtLTUgcGctZWwtMTInLAorICAg ICAgICAgICAgY29udHJvbHNDbGFzc05hbWU6ICdwZ2FkbWluLWNvbnRyb2xzIHBnLWVsLXNtLTcg cGctZWwtMTInLAorICAgICAgICAgIH0seworICAgICAgICAgICAgaWQ6ICdldm50X2RlbGV0ZScs IGxhYmVsOiBnZXR0ZXh0KCdERUxFVEUnKSwKKyAgICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBt b2RlOiBbJ2NyZWF0ZScsJ2VkaXQnLCAncHJvcGVydGllcyddLAorICAgICAgICAgICAgZ3JvdXA6 IGdldHRleHQoJ1dpdGgnKSwKKyAgICAgICAgICAgIGV4dHJhVG9nZ2xlQ2xhc3NlczogJ3BnLWVs LXNtLTYnLAorICAgICAgICAgICAgY29udHJvbExhYmVsQ2xhc3NOYW1lOiAnY29udHJvbC1sYWJl bCBwZy1lbC1zbS01IHBnLWVsLTEyJywKKyAgICAgICAgICAgIGNvbnRyb2xzQ2xhc3NOYW1lOiAn cGdhZG1pbi1jb250cm9scyBwZy1lbC1zbS03IHBnLWVsLTEyJywKKyAgICAgICAgICB9LHsKKyAg ICAgICAgICAgIGlkOiAnZXZudF90cnVuY2F0ZScsIGxhYmVsOiBnZXR0ZXh0KCdUUlVOQ0FURScp LAorICAgICAgICAgICAgdHlwZTogJ3N3aXRjaCcsIGdyb3VwOiBnZXR0ZXh0KCdXaXRoJyksCisg ICAgICAgICAgICBleHRyYVRvZ2dsZUNsYXNzZXM6ICdwZy1lbC1zbS02JywKKyAgICAgICAgICAg IGNvbnRyb2xMYWJlbENsYXNzTmFtZTogJ2NvbnRyb2wtbGFiZWwgcGctZWwtc20tNSBwZy1lbC0x MicsCisgICAgICAgICAgICBjb250cm9sc0NsYXNzTmFtZTogJ3BnYWRtaW4tY29udHJvbHMgcGct ZWwtc20tNyBwZy1lbC0xMicsCisgICAgICAgICAgICB2aXNpYmxlOiBmdW5jdGlvbihtKSB7Cisg ICAgICAgICAgICAgIGlmKCFfLmlzVW5kZWZpbmVkKG0ubm9kZV9pbmZvKSAmJiAhXy5pc1VuZGVm aW5lZChtLm5vZGVfaW5mby5zZXJ2ZXIpCisgICAgICAgICAgICAgICYmICFfLmlzVW5kZWZpbmVk KG0ubm9kZV9pbmZvLnNlcnZlci52ZXJzaW9uKSAmJgorICAgICAgICAgICAgICAgIG0ubm9kZV9p bmZvLnNlcnZlci52ZXJzaW9uID49IDExMDAwMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1 ZTsKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfSwKKworICAgICAg ICAgIH1dLAorICAgICAgICB9LAorICAgICAgICBdLAorCisgICAgICAgIGlzQWxsVGFibGU6ICBm dW5jdGlvbihtKXsKKyAgICAgICAgICB2YXIgYWxsX3RhYmxlID0gbS5nZXQoJ2FsbF90YWJsZScp OworICAgICAgICAgIGlmKGFsbF90YWJsZSl7CisgICAgICAgICAgICBzZXRUaW1lb3V0KCBmdW5j dGlvbigpIHsKKyAgICAgICAgICAgICAgbS5zZXQoJ3B1YnRhYmxlJywgJycpOworICAgICAgICAg ICAgfSwgMTApOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgfQorICAgICAg ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSwKKyAgICAgICAgLyogdmFsaWRhdGUgZnVuY3Rp b24gaXMgdXNlZCB0byB2YWxpZGF0ZSB0aGUgaW5wdXQgZ2l2ZW4gYnkKKyAgICAgICAgICogdGhl IHVzZXIuIEluIGNhc2Ugb2YgZXJyb3IsIG1lc3NhZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQgb24KKyAg ICAgICAgICogdGhlIEdVSSBmb3IgdGhlIHJlc3BlY3RpdmUgY29udHJvbC4KKyAgICAgICAgICov CisgICAgICAgIHZhbGlkYXRlOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgbmFtZSA9IHRo aXMuZ2V0KCduYW1lJyksCisgICAgICAgICAgICBtc2c7CisKKyAgICAgICAgICBpZiAoXy5pc1Vu ZGVmaW5lZChuYW1lKSB8fCBfLmlzTnVsbChuYW1lKSB8fAorICAgICAgICAgICAgU3RyaW5nKG5h bWUpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAgIG1zZyA9 IGdldHRleHQoJ05hbWUgY2Fubm90IGJlIGVtcHR5LicpOworICAgICAgICAgICAgdGhpcy5lcnJv ck1vZGVsLnNldCgnbmFtZScsIG1zZyk7CisgICAgICAgICAgICByZXR1cm4gbXNnOworICAgICAg ICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwudW5zZXQoJ25hbWUnKTsK KyAgICAgICAgICB9CisgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0sCisgICAgICAg IGNhbkNyZWF0ZTogZnVuY3Rpb24oaXRlbURhdGEsIGl0ZW0pIHsKKworICAgICAgICAgIHZhciB0 cmVlRGF0YSA9IHRoaXMuZ2V0VHJlZU5vZGVIaWVyYXJjaHkoaXRlbSksCisgICAgICAgICAgICBz ZXJ2ZXIgPSB0cmVlRGF0YVsnc2VydmVyJ107CisKKyAgICAgICAgICAvLyBJZiBzZXJ2ZXIgaXMg bGVzcyB0aGFuIDEwIHRoZW4gZG8gbm90IGFsbG93ICdjcmVhdGUnIG1lbnUKKyAgICAgICAgICBp ZiAoc2VydmVyICYmIHNlcnZlci52ZXJzaW9uIDwgMTAwMDAwKQorICAgICAgICAgICAgcmV0dXJu IGZhbHNlOworCisgICAgICAgICAgLy8gYnkgZGVmYXVsdCB3ZSB3YW50IHRvIGFsbG93IGNyZWF0 ZSBtZW51CisgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0sCisKKyAgICAgIH0pLAor ICAgIH0pOworICB9CisgIHJldHVybiBwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwtcHVibGljYXRpb24n XTsKK30pOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC8x MV9wbHVzL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25zL3Nx bC8xMV9wbHVzL3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMC4uNDJmNTM3MjM4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVi bGljYXRpb25zL3NxbC8xMV9wbHVzL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEsOCBAQAorc2Vs ZWN0IGMub2lkIGFzIG9pZCwgYy5wdWJuYW1lIGFzIG5hbWUsCitwdWJpbnNlcnQgYXMgZXZudF9p bnNlcnQsIHB1YnVwZGF0ZSBhcyBldm50X3VwZGF0ZSwgcHViZGVsZXRlIGFzIGV2bnRfZGVsZXRl LCBwdWJ0cnVuY2F0ZSBhcyBldm50X3RydW5jYXRlLAorcHViYWxsdGFibGVzIGFzIGFsbF90YWJs ZSwKK3BnYS5yb2xuYW1lIGFzIHB1Ym93bmVyIGZyb20gcGdfcHVibGljYXRpb24gYworam9pbiBw Z19hdXRoaWQgcGdhIG9uIGMucHVib3duZXI9IHBnYS5vaWQKK3slICBpZiBwYmlkICV9CisgICAg d2hlcmUgYy5vaWQgPSB7eyBwYmlkIH19Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9u cy90ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZhdWx0L2NyZWF0ZS5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25z L3RlbXBsYXRlcy9wdWJsaWNhdGlvbnMvc3FsL2RlZmF1bHQvY3JlYXRlLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmM2ZDBjZDg5NgotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJs aWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9zcWwvZGVmYXVsdC9jcmVhdGUuc3FsCkBA IC0wLDAgKzEsMjAgQEAKK3slIGlmIGRhdGEuZXZudF9kZWxldGUgb3IgZGF0YS5ldm50X3VwZGF0 ZSBvciBkYXRhLmV2bnRfdHJ1bmNhdGUgJX0KK3slIHNldCBhZGRfY29tbWFfYWZ0ZXJfaW5zZXJ0 ID0gJ2luc2VydCcgJX0KK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmV2bnRfdHJ1bmNhdGUgJX0K K3slIHNldCBhZGRfY29tbWFfYWZ0ZXJfZGVsZXRlID0gJ2RlbGV0ZScgJX0KK3slIGVuZGlmICV9 Cit7JSBpZiBkYXRhLmV2bnRfZGVsZXRlIG9yIGRhdGEuZXZudF90cnVuY2F0ZSV9Cit7JSBzZXQg YWRkX2NvbW1hX2FmdGVyX3VwZGF0ZSA9ICd1cGRhdGUnICV9Cit7JSBlbmRpZiAlfQorCitDUkVB VEUgUFVCTElDQVRJT04ge3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX0KK3slIGlmIGRhdGEu YWxsX3RhYmxlICV9CisgICAgRk9SIEFMTCBUQUJMRVMKK3slIGVsaWYgZGF0YS5wdWJ0YWJsZSAl fQorICAgIEZPUiBUQUJMRSB7JSBpZiBkYXRhLm9ubHlfdGFibGUlfU9OTFkgeyUgZW5kaWYgJX0g eyUgZm9yIHRhYmxlIGluIGRhdGEucHVidGFibGUgJX17JSBpZiBsb29wLmluZGV4ICE9IDEgJX0s eyUgZW5kaWYgJX17eyB0YWJsZSB9fXslIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KKworeyUgaWYg ZGF0YS5ldm50X2luc2VydCBvciBkYXRhLmV2bnRfdXBkYXRlIG9yIGRhdGEuZXZudF9kZWxldGUg b3IgZGF0YS5ldm50X3RydW5jYXRlICV9Cit3aXRoIChwdWJsaXNoID0gJ3slIGlmIGRhdGEuZXZu dF9pbnNlcnQgJX1pbnNlcnR7JSBpZiBhZGRfY29tbWFfYWZ0ZXJfaW5zZXJ0ID09ICdpbnNlcnQn ICV9LHslIGVuZGlmICV9eyUgZW5kaWYgJX17JSBpZiBkYXRhLmV2bnRfdXBkYXRlICV9dXBkYXRl eyUgaWYgYWRkX2NvbW1hX2FmdGVyX3VwZGF0ZSA9PSAndXBkYXRlJyAlfSx7JSBlbmRpZiAlfXsl IGVuZGlmICV9eyUgaWYgZGF0YS5ldm50X2RlbGV0ZSAlfWRlbGV0ZXslIGlmIGFkZF9jb21tYV9h ZnRlcl9kZWxldGUgPT0gJ2RlbGV0ZScgJX0seyUgZW5kaWYgJX17JSBlbmRpZiAlfXslIGlmIGRh dGEuZXZudF90cnVuY2F0ZSAlfXRydW5jYXRlIHslIGVuZGlmICV9Jyk7Cit7JSBlbmRpZiAlfQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZhdWx0L2Rl bGV0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvcHVibGljYXRpb25zL3RlbXBsYXRlcy9wdWJsaWNhdGlvbnMvc3FsL2RlZmF1bHQvZGVs ZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjk4Y2I1ZDBkMQot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9zcWwvZGVm YXVsdC9kZWxldGUuc3FsCkBAIC0wLDAgKzEsOCBAQAoreyMgPT09PT09PT09PT09PSBHZXQgdGhl IHB1YmxpY2F0aW9uIG5hbWUgdXNpbmcgb2lkID09PT09PT09PT09PT0gI30KK3slIGlmIHBiaWQg JX0KKyAgICBTRUxFQ1QgcHVibmFtZSBGUk9NIHBnX3B1YmxpY2F0aW9uIFdIRVJFIG9pZCA9IHt7 cGJpZH19OjpvaWQ7Cit7JSBlbmRpZiAlfQoreyMgPT09PT09PT09PT09PSBEcm9wIHRoZSBwdWJs aWNhdGlvbiA9PT09PT09PT09PT09ICN9Cit7JSBpZiBwbmFtZSAlfQorRFJPUCBQVUJMSUNBVElP TiB7eyBjb25ufHF0SWRlbnQocG5hbWUpIH19eyUgaWYgY2FzY2FkZSAlfSBDQVNDQURFeyUgZW5k aWYlfTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3RlbXBsYXRlcy9wdWJsaWNh dGlvbnMvc3FsL2RlZmF1bHQvZnVuY3Rpb25zLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1Ymxp Y2F0aW9ucy9zcWwvZGVmYXVsdC9mdW5jdGlvbnMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMC4uYjQ5M2FiYzdiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1w bGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZhdWx0L2Z1bmN0aW9ucy5zcWwKQEAgLTAsMCArMSw2 IEBACitTRUxFQ1QgcXVvdGVfaWRlbnQoYy50YWJsZV9zY2hlbWEpfHwnLid8fHF1b3RlX2lkZW50 KGMudGFibGVfbmFtZSkgQVMgdGFibGUKK2Zyb20gaW5mb3JtYXRpb25fc2NoZW1hLnRhYmxlcyBj Cit3aGVyZSBjLnRhYmxlX3R5cGUgPSAnQkFTRSBUQUJMRScKKyAgICAgIEFORCBjLnRhYmxlX3Nj aGVtYSBOT1QgTElLRSAncGdcXyUnCisgICAgICBBTkQgYy50YWJsZV9zY2hlbWEgTk9UIExJS0Ug J3BnYWdlbnQnCisgICAgICBBTkQgYy50YWJsZV9zY2hlbWEgTk9UIElOICgnaW5mb3JtYXRpb25f c2NoZW1hJykgT1JERVIgQlkgMTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1Ymxp Y2F0aW9ucy9zcWwvZGVmYXVsdC9nZXRfbm9kZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVi bGljYXRpb25zL3NxbC9kZWZhdWx0L2dldF9ub2Rlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwLi44YjIzMjFiMmQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rl bXBsYXRlcy9wdWJsaWNhdGlvbnMvc3FsL2RlZmF1bHQvZ2V0X25vZGVzLnNxbApAQCAtMCwwICsx IEBACitzZWxlY3Qgb2lkLCBwdWJuYW1lIGFzIG5hbWUgZnJvbSBwZ19wdWJsaWNhdGlvbjsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9zcWwvZGVmYXVsdC9nZXRf dGFibGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9zcWwvZGVmYXVsdC9n ZXRfdGFibGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjdmNTFj NzJkMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9z cWwvZGVmYXVsdC9nZXRfdGFibGVzLnNxbApAQCAtMCwwICsxIEBACitzZWxlY3QgcXVvdGVfaWRl bnQocGdiX3RhYmxlLnNjaGVtYW5hbWUpfHwnLid8fHF1b3RlX2lkZW50KHBnYl90YWJsZS50YWJs ZW5hbWUpICBhcyBwdWJ0YWJsZSAgZnJvbSBwZ19wdWJsaWNhdGlvbl90YWJsZXMgcGdiX3RhYmxl IHdoZXJlIHB1Ym5hbWUgPSAne3sgcG5hbWUgfX0nIGFuZCBwZ2JfdGFibGUuc2NoZW1hbmFtZSBO T1QgTElLRSAncGdhZ2VudCc7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3RlbXBsYXRlcy9wdWJsaWNh dGlvbnMvc3FsL2RlZmF1bHQvbm9kZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRp b25zL3NxbC9kZWZhdWx0L25vZGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAuLmM4MTU3ZjE4MAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1 YmxpY2F0aW9ucy9zcWwvZGVmYXVsdC9ub2Rlcy5zcWwKQEAgLTAsMCArMSBAQAorc2VsZWN0IG9p ZCAsIHB1Ym5hbWUgYXMgbmFtZSBmcm9tIHBnX3B1YmxpY2F0aW9uOwpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0 aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZhdWx0L3Byb3BlcnRpZXMuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1Ymxp Y2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZhdWx0L3Byb3BlcnRpZXMuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNzViYTA3NWU0Ci0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZhdWx0L3By b3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEsOCBAQAorc2VsZWN0IGMub2lkIGFzIG9pZCwgYy5wdWJu YW1lIGFzIG5hbWUsCitwdWJpbnNlcnQgYXMgZXZudF9pbnNlcnQsIHB1YnVwZGF0ZSBhcyBldm50 X3VwZGF0ZSwgcHViZGVsZXRlIGFzIGV2bnRfZGVsZXRlLAorcHViYWxsdGFibGVzIGFzIGFsbF90 YWJsZSwKK3BnYS5yb2xuYW1lIGFzIHB1Ym93bmVyIGZyb20gcGdfcHVibGljYXRpb24gYworam9p biBwZ19hdXRoaWQgcGdhIG9uIGMucHVib3duZXI9IHBnYS5vaWQKK3slICBpZiBwYmlkICV9Cisg ICAgd2hlcmUgYy5vaWQgPSB7eyBwYmlkIH19Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0 aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZhdWx0L3VwZGF0ZS5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRp b25zL3RlbXBsYXRlcy9wdWJsaWNhdGlvbnMvc3FsL2RlZmF1bHQvdXBkYXRlLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmRkMzQ4YzA0MgotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9w dWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9zcWwvZGVmYXVsdC91cGRhdGUuc3Fs CkBAIC0wLDAgKzEsMzkgQEAKK3slIGlmIGRhdGEuZXZudF9kZWxldGUgb3IgZGF0YS5ldm50X3Vw ZGF0ZSBvciBkYXRhLmV2bnRfdHJ1bmNhdGUgJX0KK3slIHNldCBhZGRfY29tbWFfYWZ0ZXJfaW5z ZXJ0ID0gJ2luc2VydCcgJX0KK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmV2bnRfdHJ1bmNhdGUg JX0KK3slIHNldCBhZGRfY29tbWFfYWZ0ZXJfZGVsZXRlID0gJ2RlbGV0ZScgJX0KK3slIGVuZGlm ICV9Cit7JSBpZiBkYXRhLmV2bnRfZGVsZXRlIG9yIGRhdGEuZXZudF90cnVuY2F0ZSV9Cit7JSBz ZXQgYWRkX2NvbW1hX2FmdGVyX3VwZGF0ZSA9ICd1cGRhdGUnICV9Cit7JSBlbmRpZiAlfQorCit7 JSBpZiBkYXRhLnB1Ym93bmVyICV9CitBTFRFUiBQVUJMSUNBVElPTiB7eyBjb25ufHF0SWRlbnQo b19kYXRhLm5hbWUpIH19IE9XTkVSIFRPIHt7IGRhdGEucHVib3duZXIgfX07Cit7JSBlbmRpZiAl fQorCit7JSBpZiBkYXRhLmV2bnRfaW5zZXJ0IG9yIGRhdGEuZXZudF91cGRhdGUgb3IgZGF0YS5l dm50X2RlbGV0ZSAlfQorQUxURVIgUFVCTElDQVRJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5u YW1lKSB9fSBTRVQKKyhwdWJsaXNoID0gJ3slIGlmIGRhdGEuZXZudF9pbnNlcnQgJX1pbnNlcnR7 JSBpZiBhZGRfY29tbWFfYWZ0ZXJfaW5zZXJ0ID09ICdpbnNlcnQnICV9LHslIGVuZGlmICV9eyUg ZW5kaWYgJX17JSBpZiBkYXRhLmV2bnRfdXBkYXRlICV9dXBkYXRleyUgaWYgYWRkX2NvbW1hX2Fm dGVyX3VwZGF0ZSA9PSAndXBkYXRlJyAlfSx7JSBlbmRpZiAlfXslIGVuZGlmICV9eyUgaWYgZGF0 YS5ldm50X2RlbGV0ZSAlfWRlbGV0ZXslIGlmIGFkZF9jb21tYV9hZnRlcl9kZWxldGUgPT0gJ2Rl bGV0ZScgJX0seyUgZW5kaWYgJX17JSBlbmRpZiAlfXslIGlmIGRhdGEuZXZudF90cnVuY2F0ZSAl fXRydW5jYXRlIHslIGVuZGlmICV9Jyk7Cit7JSBlbmRpZiAlfQorCit7JSBpZiBkYXRhLnB1YnRh YmxlICV9CitBTFRFUiBQVUJMSUNBVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLm5hbWUpIH19 IFNFVCBUQUJMRSB7JSBpZiBkYXRhLm9ubHlfdGFibGUlfU9OTFkgeyUgZW5kaWYgJX17JSBmb3Ig dGFibGUgaW4gZGF0YS5wdWJ0YWJsZSAlfXslIGlmIGxvb3AuaW5kZXggIT0gMSAlfSx7JSBlbmRp ZiAlfXt7IHRhYmxlIH19eyUgZW5kZm9yICV9OworeyUgZW5kaWYgJX0KKworeyUgaWYgZGF0YS5w dWJ0YWJsZSBhbmQgZGF0YS5zb21ldGFibGUlfQoreyUgaWYgZGF0YS5wdWJ0YWJsZSBhbmQgb19k YXRhLnB1YnRhYmxlIG5vdCBpbiBkYXRhLnB1YnRhYmxlICV9CitBTFRFUiBQVUJMSUNBVElPTiBj b25ufHF0SWRlbnQob19kYXRhLm5hbWUpIFNFVCBUQUJMRSB7JSBmb3IgdGFibGUgaW4gZGF0YS5w dWJ0YWJsZSAlfSB7JSBpZiBsb29wLmluZGV4ICE9IDEgJX0sIHslIGVuZGlmICV9IHt7IHRhYmxl IH19IHslIGVuZGZvciAlfQoreyUgZWxpZiBkYXRhLnB1YnRhYmxlIGFuZCBkYXRhLnB1YnRhYmxl IG5vdCBpbiBvX2RhdGEucHVidGFibGUgJX0KK0FMVEVSIFBVQkxJQ0FUSU9OIHt7IGNvbm58cXRJ ZGVudChvX2RhdGEubmFtZSkgfX0gQUREIFRBQkxFIHslIGZvciB0YWJsZSBpbiBkYXRhLnB1YnRh YmxlICV9IHslIGlmIGxvb3AuaW5kZXggIT0gMSAlfSwgeyUgZW5kaWYgJX0ge3sgdGFibGUgfX0g eyUgZW5kZm9yICV9Cit7eyBkYXRhLnB1YnRhYmxlIH19Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYg JX0KKworeyUgaWYgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBQVUJMSUNBVElP TiB7eyBjb25ufHF0SWRlbnQob19kYXRhLm5hbWUpIH19IFJFTkFNRSBUTyB7eyBjb25ufHF0SWRl bnQoZGF0YS5uYW1lKSB9fTsKK3slIGVuZGlmICV9CisKKworCisKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlv bnMvdGVzdHMvMTBfcGx1cy9hbHRlcl9wdWJsaWNhdGlvbi5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzLzEw X3BsdXMvYWx0ZXJfcHVibGljYXRpb24uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMC4uZjYyOThmMmFlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9w bHVzL2FsdGVyX3B1YmxpY2F0aW9uLnNxbApAQCAtMCwwICsxLDggQEAKKy0tIFB1YmxpY2F0aW9u IDogYWx0ZXJkX3B1YmxpY2F0aW9uOworLS0gRFJPUCBQVUJMSUNBVElPTiBhbHRlcmRfcHVibGlj YXRpb247CisKKworQ1JFQVRFIFBVQkxJQ0FUSU9OIGFsdGVyZF9wdWJsaWNhdGlvbgorICAgIEZP UiBBTEwgVEFCTEVTCisKK3dpdGggKHB1Ymxpc2ggPSAnaW5zZXJ0LHVwZGF0ZScpOwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVzL2FsdGVyX3B1YmxpY2F0aW9uX2V2ZW50LnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJs aWNhdGlvbnMvdGVzdHMvMTBfcGx1cy9hbHRlcl9wdWJsaWNhdGlvbl9ldmVudC5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5mNjI5OGYyYWUKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv cHVibGljYXRpb25zL3Rlc3RzLzEwX3BsdXMvYWx0ZXJfcHVibGljYXRpb25fZXZlbnQuc3FsCkBA IC0wLDAgKzEsOCBAQAorLS0gUHVibGljYXRpb24gOiBhbHRlcmRfcHVibGljYXRpb247CistLSBE Uk9QIFBVQkxJQ0FUSU9OIGFsdGVyZF9wdWJsaWNhdGlvbjsKKworCitDUkVBVEUgUFVCTElDQVRJ T04gYWx0ZXJkX3B1YmxpY2F0aW9uCisgICAgRk9SIEFMTCBUQUJMRVMKKword2l0aCAocHVibGlz aCA9ICdpbnNlcnQsdXBkYXRlJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzLzEwX3BsdXMv YWx0ZXJfcHVibGljYXRpb25fZXZlbnRfbXNxbC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzLzEwX3BsdXMv YWx0ZXJfcHVibGljYXRpb25fZXZlbnRfbXNxbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwLi5lMmE5NDQyM2UKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3Rz LzEwX3BsdXMvYWx0ZXJfcHVibGljYXRpb25fZXZlbnRfbXNxbC5zcWwKQEAgLTAsMCArMSwyIEBA CitBTFRFUiBQVUJMSUNBVElPTiBhbHRlcmRfcHVibGljYXRpb25fZXZlbnQgU0VUCisocHVibGlz aCA9ICdpbnNlcnQsdXBkYXRlJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzLzEwX3BsdXMv YWx0ZXJfcHVibGljYXRpb25fbXNxbC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzLzEwX3BsdXMvYWx0ZXJf cHVibGljYXRpb25fbXNxbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw Li4zMDg2OWQyYTgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzLzEwX3BsdXMvYWx0 ZXJfcHVibGljYXRpb25fbXNxbC5zcWwKQEAgLTAsMCArMSBAQAorQUxURVIgUFVCTElDQVRJT04g dGVzdF9wdWJsaWNhdGlvbl90b19hbHRlciBSRU5BTUUgVE8gYWx0ZXJkX3B1YmxpY2F0aW9uOwpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVzL2NyZWF0ZV9wdWJsaWNhdGlvbi5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVi bGljYXRpb25zL3Rlc3RzLzEwX3BsdXMvY3JlYXRlX3B1YmxpY2F0aW9uLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmFhMGNiMTU5MAotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJs aWNhdGlvbnMvdGVzdHMvMTBfcGx1cy9jcmVhdGVfcHVibGljYXRpb24uc3FsCkBAIC0wLDAgKzEs OCBAQAorLS0gUHVibGljYXRpb24gOiB0ZXN0X3B1YmxpY2F0aW9uX2NyZWF0ZTsKKy0tIERST1Ag UFVCTElDQVRJT04gdGVzdF9wdWJsaWNhdGlvbl9jcmVhdGU7CisKKworQ1JFQVRFIFBVQkxJQ0FU SU9OIHRlc3RfcHVibGljYXRpb25fY3JlYXRlCisgICAgRk9SIEFMTCBUQUJMRVMKKword2l0aCAo cHVibGlzaCA9ICdpbnNlcnQsdXBkYXRlJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzLzEw X3BsdXMvY3JlYXRlX3B1YmxpY2F0aW9uX21zcWwuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVz L2NyZWF0ZV9wdWJsaWNhdGlvbl9tc3FsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAuLmQwNzFlYmE1NAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvMTBf cGx1cy9jcmVhdGVfcHVibGljYXRpb25fbXNxbC5zcWwKQEAgLTAsMCArMSw0IEBACitDUkVBVEUg UFVCTElDQVRJT04gdGVzdF9wdWJsaWNhdGlvbl9jcmVhdGUKKyAgICBGT1IgQUxMIFRBQkxFUwor Cit3aXRoIChwdWJsaXNoID0gJ2luc2VydCx1cGRhdGUnKTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMv dGVzdHMvMTBfcGx1cy9jcmVhdGVfcHVibGljYXRpb25fdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVz dHMvMTBfcGx1cy9jcmVhdGVfcHVibGljYXRpb25fdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAuLmU0YWU3OGZmOAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlv bnMvdGVzdHMvMTBfcGx1cy9jcmVhdGVfcHVibGljYXRpb25fdXBkYXRlLnNxbApAQCAtMCwwICsx LDggQEAKKy0tIFB1YmxpY2F0aW9uIDogdGVzdF9wdWJsaWNhdGlvbl93aXRoX3VwZGF0ZTsKKy0t IERST1AgUFVCTElDQVRJT04gdGVzdF9wdWJsaWNhdGlvbl93aXRoX3VwZGF0ZTsKKworCitDUkVB VEUgUFVCTElDQVRJT04gdGVzdF9wdWJsaWNhdGlvbl93aXRoX3VwZGF0ZQorICAgIEZPUiBBTEwg VEFCTEVTCisKK3dpdGggKHB1Ymxpc2ggPSAndXBkYXRlJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25z L3Rlc3RzLzEwX3BsdXMvY3JlYXRlX3B1YmxpY2F0aW9uX3VwZGF0ZV9tc3FsLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlv bnMvdGVzdHMvMTBfcGx1cy9jcmVhdGVfcHVibGljYXRpb25fdXBkYXRlX21zcWwuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMzNhYmY5NDU3Ci0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVzL2NyZWF0ZV9wdWJsaWNhdGlvbl91cGRhdGVfbXNx bC5zcWwKQEAgLTAsMCArMSw0IEBACitDUkVBVEUgUFVCTElDQVRJT04gdGVzdF9wdWJsaWNhdGlv bl93aXRoX3VwZGF0ZQorICAgIEZPUiBBTEwgVEFCTEVTCisKK3dpdGggKHB1Ymxpc2ggPSAndXBk YXRlJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzLzEwX3BsdXMvdGVzdC5qc29uIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0 aW9ucy90ZXN0cy8xMF9wbHVzL3Rlc3QuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAuLjk5ZDYwNTc4MwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvMTBf cGx1cy90ZXN0Lmpzb24KQEAgLTAsMCArMSw3OSBAQAoreworICAic2NlbmFyaW9zIjogWworICAg IHsKKyAgICAgICJ0eXBlIjogImNyZWF0ZSIsCisgICAgICAibmFtZSI6ICJDcmVhdGUgVGFibGUg Rm9yIHB1YmxpY2F0aW9uIiwKKyAgICAgICJlbmRwb2ludCI6ICJOT0RFLXRhYmxlLm9iaiIsCisg ICAgICAic3FsX2VuZHBvaW50IjogIk5PREUtdGFibGUuc3FsX2lkIiwKKyAgICAgICJkYXRhIjog eworICAgICAgICAibmFtZSI6ICJ0ZXN0X3B1YmxpY2F0aW9uIiwKKyAgICAgICAgImNvbHVtbnMi OiBbCisgICAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZW1wX2lkIiwKKyAgICAgICAg ICAgICJjbHR5cGUiOiAiaW50ZWdlciIsCisgICAgICAgICAgICAiaXNfcHJpbWFyeV9rZXkiOiB0 cnVlCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJuYW1l IiwKKyAgICAgICAgICAgICJjbHR5cGUiOiAidGV4dCIKKyAgICAgICAgICB9LAorICAgICAgICAg IHsKKyAgICAgICAgICAgICJuYW1lIjogInNhbGFyeSIsCisgICAgICAgICAgICAiY2x0eXBlIjog ImJpZ2ludCIKKyAgICAgICAgICB9CisgICAgICAgIF0sCisgICAgICAgICJpc19wYXJ0aXRpb25l ZCI6IGZhbHNlLAorICAgICAgICAic2NoZW1hIjogInB1YmxpYyIsCisgICAgICAgICJzcGNuYW1l IjogInBnX2RlZmF1bHQiCisgICAgICB9LAorICAgICAgInN0b3JlX29iamVjdF9pZCI6IHRydWUK KyAgICB9LAorICAgIHsKKyAgICAgICJ0eXBlIjogImNyZWF0ZSIsCisgICAgICAibmFtZSI6ICJD cmVhdGUgIFB1YmxpY2F0aW9uIiwKKyAgICAgICJlbmRwb2ludCI6ICJOT0RFLXB1YmxpY2F0aW9u Lm9iaiIsCisgICAgICAic3FsX2VuZHBvaW50IjogIk5PREUtcHVibGljYXRpb24uc3FsX2lkIiwK KyAgICAgICJtc3FsX2VuZHBvaW50IjogIk5PREUtcHVibGljYXRpb24ubXNxbCIsCisgICAgICAi ZGF0YSI6IHsKKyAgICAgICAgIm5hbWUiOiAidGVzdF9wdWJsaWNhdGlvbl9jcmVhdGUiLAorICAg ICAgICAiZXZudF9pbnNlcnQiOiB0cnVlLAorICAgICAgICAiZXZudF91cGRhdGUiOiB0cnVlLAor ICAgICAgICAiZXZudF9kZWxldGUiOiBmYWxzZSwKKyAgICAgICAgImV2bnRfdHJ1bmNhdGUiOiBm YWxzZSwKKyAgICAgICAgInB1Ym93bmVyIjogInBvc3RncmVzIiwKKyAgICAgICAgImFsbF90YWJs ZSI6IHRydWUsCisgICAgICAgICJwdWJ0YWJsZSI6ICIiCisgICAgICB9LAorICAgICAgImV4cGVj dGVkX3NxbF9maWxlIjogImNyZWF0ZV9wdWJsaWNhdGlvbi5zcWwiLAorICAgICAgImV4cGVjdGVk X21zcWxfZmlsZSI6ICJjcmVhdGVfcHVibGljYXRpb25fbXNxbC5zcWwiCisgICAgfSwKKyAgICB7 CisgICAgICAidHlwZSI6ICJhbHRlciIsCisgICAgICAibmFtZSI6ICJBbHRlciAgUHVibGljYXRp b24gbmFtZSIsCisgICAgICAiZW5kcG9pbnQiOiAiTk9ERS1wdWJsaWNhdGlvbi5vYmpfaWQiLAor ICAgICAgInNxbF9lbmRwb2ludCI6ICJOT0RFLXB1YmxpY2F0aW9uLnNxbF9pZCIsCisgICAgICAi ZGF0YSI6IHsKKyAgICAgICAgIm5hbWUiOiAiYWx0ZXJkX3B1YmxpY2F0aW9uIgorICAgICAgfSwK KyAgICAgICJleHBlY3RlZF9zcWxfZmlsZSI6ICJhbHRlcl9wdWJsaWNhdGlvbi5zcWwiCisgICAg fSwKKyAgICB7CisgICAgICAidHlwZSI6ICJhbHRlciIsCisgICAgICAibmFtZSI6ICJBbHRlciAg UHVibGljYXRpb24gZXZlbnQiLAorICAgICAgImVuZHBvaW50IjogIk5PREUtcHVibGljYXRpb24u b2JqX2lkIiwKKyAgICAgICJzcWxfZW5kcG9pbnQiOiAiTk9ERS1wdWJsaWNhdGlvbi5zcWxfaWQi LAorICAgICAgImRhdGEiOiB7CisgICAgICAgICJldm50X2luc2VydCI6IHRydWUKKyAgICAgIH0s CisgICAgICAiZXhwZWN0ZWRfc3FsX2ZpbGUiOiAiYWx0ZXJfcHVibGljYXRpb25fZXZlbnQuc3Fs IgorICAgIH0sCisgICAgeworICAgICAgInR5cGUiOiAiZGVsZXRlIiwKKyAgICAgICJuYW1lIjog IkRyb3AgcHVibGljYXRpb24iLAorICAgICAgImVuZHBvaW50IjogIk5PREUtcHVibGljYXRpb24u ZGVsZXRlX2lkIiwKKyAgICAgICJkYXRhIjogeworICAgICAgICAibmFtZSI6ICJhbHRlcmRfcHVi bGljYXRpb25fZXZlbnQiCisgICAgICB9CisgICAgfQorICBdCit9CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRp b25zL3Rlc3RzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy9fX2luaXRfXy5weQpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjI3Y2Q4OTA2NwotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9w dWJsaWNhdGlvbnMvdGVzdHMvX19pbml0X18ucHkKQEAgLTAsMCArMSwxNiBAQAorIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmln aHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMg c29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVz dEdlbmVyYXRvcgorCisKK2NsYXNzIFJ1bGVzVGVzdEdlbmVyYXRvcihCYXNlVGVzdEdlbmVyYXRv cik6CisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgcmV0dXJuIFtdCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv cHVibGljYXRpb25zL3Rlc3RzL3B1YmxpY2F0aW9uX3Rlc3RfZGF0YS5qc29uIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90 ZXN0cy9wdWJsaWNhdGlvbl90ZXN0X2RhdGEuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAuLmRhMDg0MDhkYgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMv cHVibGljYXRpb25fdGVzdF9kYXRhLmpzb24KQEAgLTAsMCArMSwzOTcgQEAKK3sKKyAgImFkZF9w dWJsaWNhdGlvbiI6IFsKKyAgICB7CisgICAgICAibmFtZSI6ICJDcmVhdGUgcHVibGljYXRpb24g d2l0aCBpbnNlcnQgYW5kIHVwZGF0ZSIsCisgICAgICAidXJsIjogIi9icm93c2VyL3B1YmxpY2F0 aW9uL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgInRlc3Rf ZGF0YSI6IHsKKyAgICAgICAgIm5hbWUiOiAiUExBQ0VIT0xERVIiLAorICAgICAgICAiZXZudF9p bnNlcnQiOiB0cnVlLAorICAgICAgICAiZXZudF91cGRhdGUiOiB0cnVlLAorICAgICAgICAiZXZu dF9kZWxldGUiOiBmYWxzZSwKKyAgICAgICAgImV2bnRfdHJ1bmNhdGUiOiBmYWxzZSwKKyAgICAg ICAgInB1Ym93bmVyIjogInBvc3RncmVzIiwKKyAgICAgICAgImFsbF90YWJsZSI6IHRydWUsCisg ICAgICAgICJwdWJ0YWJsZSI6ICIiCisgICAgICB9LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQi OiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjog eworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAg ICAgICJuYW1lIjogIkNyZWF0ZSBwdWJsaWNhdGlvbiBmb3IgZmV3IHRhYmxlcyIsCisgICAgICAi dXJsIjogIi9icm93c2VyL3B1YmxpY2F0aW9uL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rl c3QiOiB0cnVlLAorICAgICAgImZld190YWJsZXMiOiB0cnVlLAorICAgICAgInRlc3RfZGF0YSI6 IHsKKyAgICAgICAgIm5hbWUiOiAiUExBQ0VIT0xERVIiLAorICAgICAgICAiZXZudF9pbnNlcnQi OiB0cnVlLAorICAgICAgICAiZXZudF91cGRhdGUiOiB0cnVlLAorICAgICAgICAiZXZudF9kZWxl dGUiOiBmYWxzZSwKKyAgICAgICAgImV2bnRfdHJ1bmNhdGUiOiBmYWxzZSwKKyAgICAgICAgInB1 Ym93bmVyIjogInBvc3RncmVzIiwKKyAgICAgICAgImFsbF90YWJsZSI6IGZhbHNlLAorICAgICAg ICAicHVidGFibGUiOiAiUExBQ0VfSE9MREVSIgorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3Jl cXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRf ZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAg ICB7CisgICAgICAibmFtZSI6ICJDcmVhdGUgYSBwdWJsaWNhdGlvbiB3aXRob3V0IG5hbWUiLAor ICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3Np dGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAid2l0aG91dF9uYW1lIjogdHJ1ZSwKKyAgICAgICJ0 ZXN0X2RhdGEiOiB7CisgICAgICAgICJuYW1lIjogIlBMQUNFSE9MREVSIiwKKyAgICAgICAgImV2 bnRfaW5zZXJ0IjogdHJ1ZSwKKyAgICAgICAgImV2bnRfdXBkYXRlIjogdHJ1ZSwKKyAgICAgICAg ImV2bnRfZGVsZXRlIjogZmFsc2UsCisgICAgICAgICJldm50X3RydW5jYXRlIjogZmFsc2UsCisg ICAgICAgICJwdWJvd25lciI6ICJwb3N0Z3JlcyIsCisgICAgICAgICJhbGxfdGFibGUiOiB0cnVl LAorICAgICAgICAicHVidGFibGUiOiAiIgorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVp cmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0 YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNDEwCisgICAgICB9CisgICAgfSwKKyAgICB7 CisgICAgICAibmFtZSI6ICJFcnJvciB3aGlsZSBhZGRpbmcgYSBwdWJsaWNhdGlvbiIsCisgICAg ICAidXJsIjogIi9icm93c2VyL3B1YmxpY2F0aW9uL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZl X3Rlc3QiOiBmYWxzZSwKKyAgICAgICJlcnJvcl9jcmVhdGluZ19wdWJsaWNhdGlvbiI6IHRydWUs CisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAibmFtZSI6ICJQTEFDRUhPTERFUiIsCisg ICAgICAgICJldm50X2luc2VydCI6IHRydWUsCisgICAgICAgICJldm50X3VwZGF0ZSI6IHRydWUs CisgICAgICAgICJldm50X2RlbGV0ZSI6IGZhbHNlLAorICAgICAgICAiZXZudF90cnVuY2F0ZSI6 IGZhbHNlLAorICAgICAgICAicHVib3duZXIiOiAicG9zdGdyZXMiLAorICAgICAgICAiYWxsX3Rh YmxlIjogdHJ1ZSwKKyAgICAgICAgInB1YnRhYmxlIjogIiIKKyAgICAgIH0sCisgICAgICAibW9j a2luZ19yZXF1aXJlZCI6IHRydWUsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAgICAiZnVu Y3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi5jb25uZWN0aW9uLkNv bm5lY3Rpb24uZXhlY3V0ZV9kaWN0IiwKKyAgICAgICAgInJldHVybl92YWx1ZSI6ICIoRmFsc2Us ICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyIEVycm9yICcpIgorICAgICAgfSwKKyAgICAgICJleHBl Y3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgIH0KKyAgICB9 LAorICAgIHsKKyAgICAgICJuYW1lIjogIkV4Y2VwdGlvbiB3aGlsZSBhZGRpbmcgYSBwdWJsaWNh dGlvbiIsCisgICAgICAidXJsIjogIi9icm93c2VyL3B1YmxpY2F0aW9uL29iai8iLAorICAgICAg ImlzX3Bvc2l0aXZlX3Rlc3QiOiBmYWxzZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAg ICJuYW1lIjogIlBMQUNFSE9MREVSIiwKKyAgICAgICAgImV2bnRfaW5zZXJ0IjogdHJ1ZSwKKyAg ICAgICAgImV2bnRfdXBkYXRlIjogdHJ1ZSwKKyAgICAgICAgImV2bnRfZGVsZXRlIjogZmFsc2Us CisgICAgICAgICJldm50X3RydW5jYXRlIjogZmFsc2UsCisgICAgICAgICJwdWJvd25lciI6ICJw b3N0Z3JlcyIsCisgICAgICAgICJhbGxfdGFibGUiOiB0cnVlLAorICAgICAgICAicHVidGFibGUi OiAiIgorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogdHJ1ZSwKKyAgICAgICJt b2NrX2RhdGEiOiB7CisgICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRpbHMuZHJp dmVyLnBzeWNvcGcyLmNvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlX2RpY3QiLAorICAgICAg ICAicmV0dXJuX3ZhbHVlIjogIihUcnVlLCBUcnVlKShGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBT ZXJ2ZXIgRXJyb3IgJykiCisgICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAg ICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAgfQorICAgIH0KKyAgXSwKKyAgImdldF9wdWJs aWNhdGlvbiI6IFsKKyAgICB7CisgICAgICAibmFtZSI6ICJHZXQgYSBwdWJsaWNhdGlvbiBVUkwi LAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19w b3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisg ICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAg InN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6 ICJFcnJvciB3aGlsZSBmZXRjaGluZyBhIHB1YmxpY2F0aW9uIHByb3BlcnRpZXMiLAorICAgICAg InVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90 ZXN0IjogZmFsc2UsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IHRydWUsCisgICAgICAibW9j a19kYXRhIjogeworICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZl ci5wc3ljb3BnMi5jb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV9kaWN0IiwKKyAgICAgICAg InJldHVybl92YWx1ZSI6ICIoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyIEVycm9yJyki CisgICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29k ZSI6IDUwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiR2V0IGEgcHVi bGljYXRpb24gcHJvcGVydGllcyB1bmRlciBkYXRhYmFzZSBub2RlcyIsCisgICAgICAidXJsIjog Ii9icm93c2VyL3B1YmxpY2F0aW9uL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0 cnVlLAorICAgICAgImRhdGFiYXNlX25vZGVzIjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVp cmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0 YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7 CisgICAgICAibmFtZSI6ICJFcnJvciB3aGlsZSBmZXRjaGluZyBhIHB1YmxpY2F0aW9uIHByb3Bl cnRpZXMgdW5kZXIgZGF0YWJhc2Ugbm9kZXMiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJs aWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAi ZGF0YWJhc2Vfbm9kZXMiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiB0cnVlLAor ICAgICAgIm1vY2tfZGF0YSI6IHsKKyAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAicGdhZG1pbi51 dGlscy5kcml2ZXIucHN5Y29wZzIuY29ubmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfZGljdCIs CisgICAgICAgICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZl ciBFcnJvcicpIgorICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAi c3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjog IkdldCBhIHB1YmxpY2F0aW9uIE5vZGUiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNh dGlvbi9ub2Rlcy8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1v Y2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJl eHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAg ICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkdldCBhIHB1YmxpY2F0aW9uIE5vZGUgZGVwZW5k YW50cyIsCisgICAgICAidXJsIjogIi9icm93c2VyL3B1YmxpY2F0aW9uL2RlcGVuZGVudC8iLAor ICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQi OiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjog eworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAg ICAgICJuYW1lIjogIkdldCBhIHB1YmxpY2F0aW9uIE5vZGUgZGVwZW5kZW5jeSIsCisgICAgICAi dXJsIjogIi9icm93c2VyL3B1YmxpY2F0aW9uL2RlcGVuZGVuY3kvIiwKKyAgICAgICJpc19wb3Np dGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAg ICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0 YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJF cnJvciB3aGlsZSBmZXRjaGluZyB0aGUgcHVibGljYXRpb24gdW5kZXIgdGhlIGRhdGFiYXNlIG5v ZGVzIHVzaW5nIHdyb25nIGRhdGFiYXNlIGlkIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvcHVi bGljYXRpb24vbm9kZXMvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAg ICAibW9ja2luZ19yZXF1aXJlZCI6IHRydWUsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAg ICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi5jb25uZWN0 aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV8yZGFycmF5IiwKKyAgICAgICAgInJldHVybl92YWx1ZSI6 ICIoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyIEVycm9yJykiCisgICAgICB9LAorICAg ICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAg fQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiR2V0IGFsbCB0aGUgcHVibGljYXRpb24g dW5kZXIgdGhlIGRhdGFiYXNlIG5vZGVzIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvcHVibGlj YXRpb24vbm9kZXMvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJt b2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAiZGF0YWJhc2Vfbm9kZXMiOiB0cnVlLAor ICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAg ICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUi OiAiR2V0IGFsbCB0aGUgcHVibGljYXRpb24gdW5kZXIgdGhlIGRhdGFiYXNlIG5vZGVzIHVzaW5n IHdyb25nIGRhdGFiYXNlIGlkIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvcHVibGljYXRpb24v bm9kZXMvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJpbmNvcnJl Y3RfZGF0YWJhc2VfaWQiOiB0cnVlLAorICAgICAgImRhdGFiYXNlX25vZGVzIjogdHJ1ZSwKKyAg ICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisg ICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAg ICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJFcnJvciB3aGlsZSBmZXRjaGluZyBh bGwgdGhlIHB1YmxpY2F0aW9uIHVuZGVyIHRoZSBkYXRhYmFzZSBub2RlcyB1c2luZyB3cm9uZyBk YXRhYmFzZSBpZCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3B1YmxpY2F0aW9uL25vZGVzLyIs CisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAorICAgICAgImRhdGFiYXNlX25vZGVz IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogdHJ1ZSwKKyAgICAgICJtb2NrX2Rh dGEiOiB7CisgICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRpbHMuZHJpdmVyLnBz eWNvcGcyLmNvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlXzJkYXJyYXkiLAorICAgICAgICAi cmV0dXJuX3ZhbHVlIjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InKSIK KyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2Rl IjogNTAwCisgICAgICB9CisgICAgfQorICBdLAorICAiZGVsZXRlX3B1YmxpY2F0aW9uIjogWwor ICAgIHsKKyAgICAgICJuYW1lIjogIkRlbGV0ZSBhIHB1YmxpY2F0aW9uIFVSTCIsCisgICAgICAi dXJsIjogIi9icm93c2VyL3B1YmxpY2F0aW9uL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rl c3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2Nr X2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2Nv ZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkVycm9yIHdo aWxlIGRlbGV0aW5nIHRoZSBwdWJsaWNhdGlvbiIsCisgICAgICAidXJsIjogIi9icm93c2VyL3B1 YmxpY2F0aW9uL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiBmYWxzZSwKKyAgICAg ICJtb2NraW5nX3JlcXVpcmVkIjogdHJ1ZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7CisgICAgICAg ICJmdW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRpbHMuZHJpdmVyLnBzeWNvcGcyLmNvbm5lY3Rp b24uQ29ubmVjdGlvbi5leGVjdXRlX3NjYWxhciIsCisgICAgICAgICJyZXR1cm5fdmFsdWUiOiAi KEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJvcicpIgorICAgICAgfSwKKyAgICAg ICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgIH0K KyAgICB9CisgIF0sCisgICJ1cGRhdGVfcHVibGljYXRpb24iOiBbCisgICAgeworICAgICAgIm5h bWUiOiAidXBkYXRlIGEgcHVibGljYXRpb24gbmFtZSIsCisgICAgICAidXJsIjogIi9icm93c2Vy L3B1YmxpY2F0aW9uL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAg ICAgInVwZGF0ZV9uYW1lIjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJu YW1lIjogIlBMQUNFX0hPTERFUiIsCisgICAgICAgICJpZCI6ICJQTEFDRV9IT0xERVIiCisgICAg ICB9LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEi OiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAy MDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogInVwZGF0ZSBhIHB1Ymxp Y2F0aW9uIGV2ZW50IGluc2VydCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3B1YmxpY2F0aW9u L29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm93bmVyX3B1 YmxpY2F0aW9uIjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJpZCI6ICJQ TEFDRV9IT0xERVIiLAorICAgICAgICAiZXZudF9pbnNlcnQiOiAiUExBQ0VIT0xERVIiCisgICAg ICB9LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEi OiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAy MDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogInVwZGF0ZSBhIHB1Ymxp Y2F0aW9uIGV2ZW50IGRlbGV0ZSIsCisgICAgICAidXJsIjogIi9icm93c2VyL3B1YmxpY2F0aW9u L29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm93bmVyX3B1 YmxpY2F0aW9uIjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJpZCI6ICJQ TEFDRV9IT0xERVIiLAorICAgICAgICAiZXZudF9kZWxldGUiOiAiUExBQ0VIT0xERVIiCisgICAg ICB9LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEi OiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAy MDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkVycm9yIHdoaWxlIGZl dGNoaW5nIGEgcHVibGljYXRpb24gdG8gdXBkYXRlIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIv cHVibGljYXRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAorICAg ICAgIm1vY2tpbmdfcmVxdWlyZWQiOiB0cnVlLAorICAgICAgInRlc3RfZGF0YSI6IHsKKyAgICAg ICAgIm5hbWUiOiAiUExBQ0VfSE9MREVSIiwKKyAgICAgICAgImlkIjogIlBMQUNFX0hPTERFUiIK KyAgICAgIH0sCisgICAgICAibW9ja19kYXRhIjogeworICAgICAgICAiZnVuY3Rpb25fbmFtZSI6 ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi5jb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhl Y3V0ZV9kaWN0IiwKKyAgICAgICAgInJldHVybl92YWx1ZSI6ICIoRmFsc2UsICdNb2NrZWQgSW50 ZXJuYWwgU2VydmVyIEVycm9yJykiCisgICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7 CisgICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAg ICAgIm5hbWUiOiAiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgYSBwdWJsaWNhdGlvbiB0byB1cGRhdGUg dXNpbmcgd3JvbmcgcHVibGljYXRpb24gaWQiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJs aWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJ3 cm9uZ19wdWJsaWNhdGlvbl9pZCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZh bHNlLAorICAgICAgInRlc3RfZGF0YSI6IHsKKyAgICAgICAgImlkIjogIlBMQUNFX0hPTERFUiIK KyAgICAgIH0sCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6 IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICB9CisgICAgfQorICBdLAorICAi ZGVsZXRlX211bHRpcGxlX3B1YmxpY2F0aW9uIjogWworICAgIHsKKyAgICAgICJuYW1lIjogIkRl bGV0ZSBtdWx0aXBsZSBwdWJsaWNhdGlvbiIsCisgICAgICAidXJsIjogIi9icm93c2VyL3B1Ymxp Y2F0aW9uL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1v Y2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJl eHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAg ICB9CisgIF0sCisgICJzcWxfcHVibGljYXRpb24iOiBbCisgICAgeworICAgICAgIm5hbWUiOiAi RmV0Y2ggdGhlIHB1YmxpY2F0aW9uIFNRTCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3B1Ymxp Y2F0aW9uL3NxbC8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1v Y2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7CisgICAgICB9LAor ICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAg ICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiRXJyb3Igd2hpbGUgZmV0Y2hpbmcg YSBwdWJsaWNhdGlvbiBTUUwiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9z cWwvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAibW9ja2luZ19y ZXF1aXJlZCI6IHRydWUsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAgICAiZnVuY3Rpb25f bmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi5jb25uZWN0aW9uLkNvbm5lY3Rp b24uZXhlY3V0ZV9kaWN0IiwKKyAgICAgICAgInJldHVybl92YWx1ZSI6ICIoRmFsc2UsICdNb2Nr ZWQgSW50ZXJuYWwgU2VydmVyIEVycm9yJykiCisgICAgICB9LAorICAgICAgImV4cGVjdGVkX2Rh dGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAgfQorICAgIH0sCisgICAg eworICAgICAgIm5hbWUiOiAiRmV0Y2hpbmcgYSBwdWJsaWNhdGlvbiBtU1FMIiwKKyAgICAgICJ1 cmwiOiAiL2Jyb3dzZXIvcHVibGljYXRpb24vbXNxbC8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rl c3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2Nr X2RhdGEiOiB7CisgICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRpbHMuZHJpdmVy LnBzeWNvcGcyLmNvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlX2RpY3QiLAorICAgICAgICAi cmV0dXJuX3ZhbHVlIjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InKSIK KyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2Rl IjogMjAwCisgICAgICB9CisgICAgfQorICBdCit9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3Rz L3Rlc3RfcHVibGljYXRpb25fY3JlYXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy90ZXN0X3B1YmxpY2F0 aW9uX2NyZWF0ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmFhZDNi MzNkMgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvdGVzdF9wdWJsaWNhdGlvbl9j cmVhdGUucHkKQEAgLTAsMCArMSw5NSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1p biA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBU aGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQg dW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1w b3J0IGpzb24KK2ltcG9ydCB1dWlkCitmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCisK K2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2No ZW1hcy50YWJsZXMudGVzdHMgXAorICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKK2Zy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMg aW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLnV0aWxz LnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCBw YXJlbnRfbm9kZV9kaWN0Citmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0 IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgcHVibGljYXRpb25f dXRpbHMKKworCitjbGFzcyBQdWJsaWNhdGlvbnNBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRv cik6CisgICAgIiIiVGhpcyBjbGFzcyB3aWxsIGFkZCBuZXcgcHVibGljYXRpb24iIiIKKyAgICBz Y2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2VuYXJpb3MoJ2FkZF9wdWJsaWNhdGlvbicsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY2F0aW9uX3V0aWxz LnRlc3RfY2FzZXMpCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGJfbmFt ZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KKyAgICAgICAg c2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KKyAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9p ZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hl bWFfaW5mb1sic2NoZW1hX25hbWUiXQorCisgICAgICAgIHNlbGYuc2VydmVyX3ZlcnNpb24gPSBz Y2hlbWFfaW5mb1sic2VydmVyX3ZlcnNpb24iXQorICAgICAgICBpZiBzZWxmLnNlcnZlcl92ZXJz aW9uIDwgOTk5OTk6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KAorICAgICAgICAgICAgICAg ICJMb2dpY2FsIHJlcGxpY2F0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgIgorICAgICAgICAgICAgICAg ICJmb3Igc2VydmVyIHZlcnNpb24gbGVzcyB0aGFuIDEwIgorCisgICAgICAgICAgICApCisKKyAg ICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGls cy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9j b25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisg ICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBhIHB1 YmxpY2F0aW9uLiIpCisKKyAgICAgICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90ZXN0IGFuZCBoYXNh dHRyKHNlbGYsICdmZXdfdGFibGVzJyk6CisgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAi dGFibGVfY29sdW1uXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICAgICAg c2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy4gXAorICAgICAgICAgICAgICAgIGNyZWF0ZV90 YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUpCisKKyAgICAgICAgICAgIHNl bGYudGVzdF9kYXRhWydwdWJ0YWJsZSddID0gcHVibGljYXRpb25fdXRpbHMuZ2V0X3RhYmxlcyhz ZWxmKQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24g d2lsbCBwdWJsaWNhdGlvbi4iIiIKKyAgICAgICAgc2VsZi50ZXN0X2RhdGFbJ25hbWUnXSA9IFwK KyAgICAgICAgICAgICJ0ZXN0X3B1YmxpY2F0aW9uX2FkZF8lcyIgJSAoc3RyKHV1aWQudXVpZDQo KSlbMTo4XSkKKworICAgICAgICBkYXRhID0gc2VsZi50ZXN0X2RhdGEKKyAgICAgICAgaWYgc2Vs Zi5pc19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmNyZWF0ZV9w dWJsaWNhdGlvbigpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYs ICd3aXRob3V0X25hbWUnKToKKyAgICAgICAgICAgICAgICBkZWwgZGF0YVsibmFtZSJdCisgICAg ICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmNyZWF0ZV9wdWJsaWNhdGlvbigpCisgICAgICAg ICAgICBlbGlmIGhhc2F0dHIoc2VsZiwgJ2Vycm9yX2NyZWF0aW5nX3B1YmxpY2F0aW9uJyk6Cisg ICAgICAgICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJd LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPWV2YWwoc2VsZi5tb2Nr X2RhdGFbInJldHVybl92YWx1ZSJdKSk6CisgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0g c2VsZi5jcmVhdGVfcHVibGljYXRpb24oKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICAgICB3aXRoIHBhdGNoKHNlbGYubW9ja19kYXRhWyJmdW5jdGlvbl9uYW1lIl0sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICBzaWRlX2VmZmVjdD1zZWxmLm1vY2tfZGF0YVsicmV0dXJuX3Zh bHVlIl0pOgorICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuY3JlYXRlX3B1Ymxp Y2F0aW9uKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVkX2RhdGFbInN0YXR1c19jb2Rl Il0pCisKKyAgICBkZWYgY3JlYXRlX3B1YmxpY2F0aW9uKHNlbGYpOgorICAgICAgICByZXR1cm4g c2VsZi50ZXN0ZXIucG9zdCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZF Ul9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyAr IHN0cigKKyAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKSArICcvJywKKyAgICAgICAgICAgIGRh dGE9anNvbi5kdW1wcyhzZWxmLnRlc3RfZGF0YSksCisgICAgICAgICAgICBjb250ZW50X3R5cGU9 J2h0bWwvanNvbicpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIGlmIG5vdCBo YXNhdHRyKHNlbGYsICd3aXRob3V0X25hbWUnKToKKyAgICAgICAgICAgIHB1YmxpY2F0aW9uX3V0 aWxzLmRlbGV0ZV9wdWJsaWNhdGlvbihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdF9kYXRh WyduYW1lJ10pCisKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAgICAgICBk YXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBz ZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy90ZXN0X3B1YmxpY2F0aW9uX2Rl bGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvdGVzdF9wdWJsaWNhdGlvbl9kZWxldGUucHkKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi44ODM5YmQyM2YKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv cHVibGljYXRpb25zL3Rlc3RzL3Rlc3RfcHVibGljYXRpb25fZGVsZXRlLnB5CkBAIC0wLDAgKzEs OTQgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9v bHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1l bnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FM IExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCB1dWlkCitmcm9tIHVuaXR0 ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBz Y2hlbWFfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJv bSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdy ZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rl c3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMg YXMgcHVibGljYXRpb25fdXRpbHMKKworCitjbGFzcyBQdWJsaWNhdGlvbkRlbGV0ZVRlc3RDYXNl KEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiJUaGlzIGNsYXNzIHdpbGwgZGVsZXRlIHB1Ymxp Y2F0aW9uLiIiIgorICAgIHNjZW5hcmlvcyA9IHV0aWxzLmdlbmVyYXRlX3NjZW5hcmlvcygnZGVs ZXRlX3B1YmxpY2F0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcHVibGljYXRpb25fdXRpbHMudGVzdF9jYXNlcykKKworICAgIGRlZiBzZXRVcChzZWxmKToK KyAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1b ImRiX25hbWUiXQorICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVt YSJdWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQi XQorICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KKyAgICAgICAgc2Vs Zi5zZXJ2ZXJfdmVyc2lvbiA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfdmVyc2lvbiJdCisgICAgICAg IGlmIHNlbGYuc2VydmVyX3ZlcnNpb24gPCA5OTk5OToKKyAgICAgICAgICAgIHNlbGYuc2tpcFRl c3QoCisgICAgICAgICAgICAgICAgIkxvZ2ljYWwgcmVwbGljYXRpb24gaXMgbm90IHN1cHBvcnRl ZCAiCisgICAgICAgICAgICAgICAgImZvciBzZXJ2ZXIgdmVyc2lvbiBsZXNzIHRoYW4gMTAiCisK KyAgICAgICAgICAgICkKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9k YXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisg ICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRh dGFiYXNlIHRvIGRlbGV0ZSBwdWJsaWNhdGlvbi4iKQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9 IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2No ZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKworICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hl bWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVt YV9uYW1lKQorICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFp c2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGRlbGV0ZSBwdWJsaWNh dGlvbi4iKQorICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX25hbWUgPSAidGVzdF9wdWJsaWNhdGlv bl9kZWxldGVfJXMiICUgKAorICAgICAgICAgICAgc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKwor ICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX2lkID0gXAorICAgICAgICAgICAgcHVibGljYXRpb25f dXRpbHMuY3JlYXRlX3B1YmxpY2F0aW9uKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX25h bWUpCisKKyAgICBkZWYgZGVsZXRlX3B1YmxpY2F0aW9uKHNlbGYpOgorICAgICAgICByZXR1cm4g c2VsZi50ZXN0ZXIuZGVsZXRlKAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VS VkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8n ICsgc3RyKHNlbGYuZGJfaWQpICsKKyAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnB1YmxpY2F0 aW9uX2lkKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKworICAgIGRlZiBy dW5UZXN0KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHB1Ymxp Y2F0aW9uIiIiCisgICAgICAgIHB1YmxpY2F0aW9uX3Jlc3BvbnNlID0gcHVibGljYXRpb25fdXRp bHMuIFwKKyAgICAgICAgICAgIHZlcmlmeV9wdWJsaWNhdGlvbihzZWxmLnNlcnZlciwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1lKQorICAgICAgICBpZiBub3QgcHVi bGljYXRpb25fcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5v dCBmaW5kIHRoZSBwdWJsaWNhdGlvbiB0byBkZWxldGUuIikKKworICAgICAgICBpZiBzZWxmLmlz X3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJpbnZhbGlkX3B1 YmxpY2F0aW9uX2lkIik6CisgICAgICAgICAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9pZCA9IDk5 OTkKKyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5kZWxldGVfcHVibGljYXRpb24oKQorICAg ICAgICBlbHNlOgorICAgICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rp b25fbmFtZSJdLAorICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9ZXZhbChzZWxm Lm1vY2tfZGF0YVsicmV0dXJuX3ZhbHVlIl0pKToKKyAgICAgICAgICAgICAgICByZXNwb25zZSA9 IHNlbGYuZGVsZXRlX3B1YmxpY2F0aW9uKCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJl c3BvbnNlLnN0YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0 ZWRfZGF0YVsic3RhdHVzX2NvZGUiXSkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAg ICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAgICAgICBpZiBub3Qgc2VsZi5pc19wb3Np dGl2ZV90ZXN0IG9yIGhhc2F0dHIoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICdpbnZhbGlkX3B1YmxpY2F0aW9uX2lkJyk6CisgICAgICAgICAg ICBwdWJsaWNhdGlvbl91dGlscy5kZWxldGVfcHVibGljYXRpb24oc2VsZi5zZXJ2ZXIsIHNlbGYu ZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnB1YmxpY2F0aW9uX25hbWUpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5l Y3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVi bGljYXRpb25zL3Rlc3RzL3Rlc3RfcHVibGljYXRpb25fZGVsZXRlX211bHRpcGxlLnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0 aW9ucy90ZXN0cy90ZXN0X3B1YmxpY2F0aW9uX2RlbGV0ZV9tdWx0aXBsZS5weQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmE5NjgxMmIyNAotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJs aWNhdGlvbnMvdGVzdHMvdGVzdF9wdWJsaWNhdGlvbl9kZWxldGVfbXVsdGlwbGUucHkKQEAgLTAs MCArMSwxMDMgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVT UUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2 ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0 Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCB1dWlkCitpbXBv cnQganNvbgorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0 YWJhc2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwKKyAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVz X3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJh c2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKK2Zy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMg aW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLnV0aWxz LnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCBw YXJlbnRfbm9kZV9kaWN0Citmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0 IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgcHVibGljYXRpb25f dXRpbHMKKworCitjbGFzcyBQdWJsaWNhdGlvbkRlbGV0ZVRlc3RDYXNlcyhCYXNlVGVzdEdlbmVy YXRvcik6CisgICAgIiIiVGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSBwdWJsaWNhdGlvbi4iIiIKKwor ICAgIHNjZW5hcmlvcyA9IHV0aWxzLmdlbmVyYXRlX3NjZW5hcmlvcygnZGVsZXRlX211bHRpcGxl X3B1YmxpY2F0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cHVibGljYXRpb25fdXRpbHMudGVzdF9jYXNlcykKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAg ICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRi X25hbWUiXQorICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJd Wy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQor ICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KKyAgICAgICAgZGJfY29u ID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JP VVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsi Y29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAg ICAgIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGRlbGV0ZSBwdWJsaWNhdGlvbi4i KQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAg ICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICAg ICAgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfdmVyc2lvbiJdCisg ICAgICAgIGlmIHNlbGYuc2VydmVyX3ZlcnNpb24gPCA5OTk5OToKKyAgICAgICAgICAgIHNlbGYu c2tpcFRlc3QoCisgICAgICAgICAgICAgICAgIkxvZ2ljYWwgcmVwbGljYXRpb24gaXMgbm90IHN1 cHBvcnRlZCAiCisgICAgICAgICAgICAgICAgImZvciBzZXJ2ZXIgdmVyc2lvbiBsZXNzIHRoYW4g MTAiCisKKyAgICAgICAgICAgICkKKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0 aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFt ZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBkZWxldGUgcHVibGljYXRpb24u IikKKyAgICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRhYmxlX2NvbHVtbl8lcyIgJSAoc3RyKHV1 aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5j cmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9u YW1lKQorICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX25hbWUgPSAidGVzdF9wdWJsaWNhdGlvbl9k ZWxldGVfJXMiICUgKAorICAgICAgICAgICAgc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAg ICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1lXzEgPSAidGVzdF9wdWJsaWNhdGlvbl9kZWxldGVfJXMi ICUgKAorICAgICAgICAgICAgc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgc2VsZi5w dWJsaWNhdGlvbl9pZHMgPSBbCisgICAgICAgICAgICBwdWJsaWNhdGlvbl91dGlscy5jcmVhdGVf cHVibGljYXRpb24oc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX25hbWUpLAor ICAgICAgICAgICAgcHVibGljYXRpb25fdXRpbHMuY3JlYXRlX3B1YmxpY2F0aW9uKHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1lXzEpLAorICAgICAgICBdCisKKyAgICBk ZWYgZGVsZXRlX211bHRpcGxlX3B1YmxpY2F0aW9uKHNlbGYsIGRhdGEpOgorICAgICAgICByZXR1 cm4gc2VsZi50ZXN0ZXIuZGVsZXRlKAorICAgICAgICAgICAgInswfXsxfS97Mn0vezN9LyIuZm9y bWF0KHNlbGYudXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1U cnVlLAorICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAgICAgY29u dGVudF90eXBlPSdodG1sL2pzb24nCisgICAgICAgICkKKworICAgIGRlZiBydW5UZXN0KHNlbGYp OgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHB1YmxpY2F0aW9uLiIiIgor ICAgICAgICBydWxlX3Jlc3BvbnNlID0gcHVibGljYXRpb25fdXRpbHMuIFwKKyAgICAgICAgICAg IHZlcmlmeV9wdWJsaWNhdGlvbihzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5wdWJsaWNhdGlvbl9uYW1lKQorICAgICAgICBpZiBub3QgcnVsZV9yZXNwb25zZToKKyAgICAg ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHB1YmxpY2F0aW9uIHRv IGRlbGV0ZS4iKQorCisgICAgICAgIHJ1bGVfcmVzcG9uc2UgPSBwdWJsaWNhdGlvbl91dGlscy4g XAorICAgICAgICAgICAgdmVyaWZ5X3B1YmxpY2F0aW9uKHNlbGYuc2VydmVyLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX25hbWVfMSkKKyAgICAgICAgaWYgbm90IHJ1bGVf cmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRo ZSBwdWJsaWNhdGlvbiB0byBkZWxldGUuIikKKworICAgICAgICBkYXRhID0geydpZHMnOiBzZWxm LnB1YmxpY2F0aW9uX2lkc30KKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmRlbGV0ZV9tdWx0aXBs ZV9wdWJsaWNhdGlvbihkYXRhKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0 YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfZGF0YVsi c3RhdHVzX2NvZGUiXSkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIyBEaXNj b25uZWN0IHRoZSBkYXRhYmFzZQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2Rh dGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0 aW9ucy90ZXN0cy90ZXN0X3B1YmxpY2F0aW9uX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvdGVzdF9w dWJsaWNhdGlvbl9nZXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5j YmE4Nzk0Y2YKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzL3Rlc3RfcHVibGljYXRp b25fZ2V0LnB5CkBAIC0wLDAgKzEsMTAwIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0Fk bWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAs IFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNl ZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitp bXBvcnQgdXVpZAorZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAorCitmcm9tIHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVz LnRlc3RzIFwKKyAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCitmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1w b3J0IFwKKyAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAg ICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVz dEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9t IHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMK K2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgcHVibGljYXRpb25fdXRpbHMKKworCitjbGFzcyBQdWJs aWNhdGlvbkdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiJUaGlzIGNsYXNz IHdpbGwgZmV0Y2ggdGhlIHB1YmxpY2F0aW9uIHVuZGVyIHRhYmxlIG5vZGUuIiIiCisgICAgc2Nl bmFyaW9zID0gdXRpbHMuZ2VuZXJhdGVfc2NlbmFyaW9zKCdnZXRfcHVibGljYXRpb24nLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWNhdGlvbl91dGlscy50 ZXN0X2Nhc2VzKQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmRiX25hbWUg PSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCisgICAgICAgIHNj aGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCisgICAgICAgIHNlbGYu c2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCisgICAgICAgIHNlbGYuZGJfaWQg PSBzY2hlbWFfaW5mb1siZGJfaWQiXQorICAgICAgICBzZWxmLnNlcnZlcl92ZXJzaW9uID0gc2No ZW1hX2luZm9bInNlcnZlcl92ZXJzaW9uIl0KKyAgICAgICAgaWYgc2VsZi5zZXJ2ZXJfdmVyc2lv biA8IDk5OTk5OgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgKKyAgICAgICAgICAgICAgICAi TG9naWNhbCByZXBsaWNhdGlvbiBpcyBub3Qgc3VwcG9ydGVkICIKKyAgICAgICAgICAgICAgICAi Zm9yIHNlcnZlciB2ZXJzaW9uIGxlc3MgdGhhbiAxMCIKKworICAgICAgICAgICAgKQorICAgICAg ICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNF UlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2Nvblsn ZGF0YSddWyJjb25uZWN0ZWQiXToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAg ICAgICAgICAgICAiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gZGVsZXRlIHB1Ymxp Y2F0aW9uLiIpCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9p ZCJdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUi XQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMo c2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorCisgICAgICAgIGlmIG5v dCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5v dCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVsZXRlIHB1YmxpY2F0aW9uLiIpCisgICAgICAgIHNlbGYu dGFibGVfbmFtZSA9ICJ0YWJsZV9jb2x1bW5fJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0p CisgICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYu c2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkKKyAgICAgICAgc2Vs Zi5wdWJsaWNhdGlvbl9uYW1lID0gInRlc3RfcHVibGljYXRpb25fZ2V0XyVzIiAlICgKKyAgICAg ICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHNlbGYucHVibGljYXRpb25f aWQgPSBwdWJsaWNhdGlvbl91dGlscy4gXAorICAgICAgICAgICAgY3JlYXRlX3B1YmxpY2F0aW9u KHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFt ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX25hbWUp CisKKyAgICBkZWYgZ2V0X3B1YmxpY2F0aW9uKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi50 ZXN0ZXIuZ2V0KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQ KSArICcvJyArIHN0cigKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCkgKyAnLycgKwor ICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsgc3RyKHNlbGYucHVibGljYXRpb25f aWQpLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAgZGVmIHJ1 blRlc3Qoc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCB0aGUgcHVi bGljYXRpb24uIiIiCisKKyAgICAgICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90ZXN0OgorICAgICAg ICAgICAgaWYgaGFzYXR0cihzZWxmLCAiZGF0YWJhc2Vfbm9kZXMiKToKKyAgICAgICAgICAgICAg ICBzZWxmLnB1YmxpY2F0aW9uX2lkID0gJycKKyAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNl bGYuZ2V0X3B1YmxpY2F0aW9uKCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg cmVzcG9uc2UgPSBzZWxmLmdldF9wdWJsaWNhdGlvbigpCisgICAgICAgIGVsc2U6CisgICAgICAg ICAgICBpZiBoYXNhdHRyKHNlbGYsICJkYXRhYmFzZV9ub2RlcyIpOgorICAgICAgICAgICAgICAg IHNlbGYucHVibGljYXRpb25faWQgPSAnJworICAgICAgICAgICAgICAgIHdpdGggcGF0Y2goc2Vs Zi5tb2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybl92YWx1ZT1ldmFsKHNlbGYubW9ja19kYXRhWyJyZXR1cm5fdmFsdWUiXSkpOgorICAg ICAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X3B1YmxpY2F0aW9uKCkKKyAgICAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsi ZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVl PWV2YWwoc2VsZi5tb2NrX2RhdGFbInJldHVybl92YWx1ZSJdKSk6CisgICAgICAgICAgICAgICAg ICAgIHJlc3BvbnNlID0gc2VsZi5nZXRfcHVibGljYXRpb24oKQorCisgICAgICAgIHNlbGYuYXNz ZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2NvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5leHBlY3RlZF9kYXRhWyJzdGF0dXNfY29kZSJdKQorCisgICAgZGVmIHRlYXJEb3duKHNl bGYpOgorICAgICAgICBwdWJsaWNhdGlvbl91dGlscy5kZWxldGVfcHVibGljYXRpb24oc2VsZi5z ZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYucHVibGljYXRpb25fbmFtZSkKKyAgICAgICAgIyBEaXNjb25uZWN0IHRo ZSBkYXRhYmFzZQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNl bGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0 cy90ZXN0X3B1YmxpY2F0aW9uX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvdGVzdF9wdWJsaWNhdGlv bl9wdXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5iYzMxNjAyYWIK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzL3Rlc3RfcHVibGljYXRpb25fcHV0LnB5 CkBAIC0wLDAgKzEsMTI3IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0Fk bWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0 aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQganNv bgoraW1wb3J0IHV1aWQKK2Zyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgcGF0Y2gKKworZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRh Ymxlcy50ZXN0cyBcCisgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscworZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3Rz IGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nl ci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBc CisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFz ZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAor ZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0 aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHB1YmxpY2F0aW9uX3V0aWxzCisKKworY2xhc3Mg UHVibGljYXRpb25VcGRhdGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhp cyBjbGFzcyB3aWxsIHVwZGF0ZSB0aGUgcHVibGljYXRpb24uIiIiCisgICAgc2NlbmFyaW9zID0g dXRpbHMuZ2VuZXJhdGVfc2NlbmFyaW9zKCd1cGRhdGVfcHVibGljYXRpb24nLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWNhdGlvbl91dGlscy50ZXN0X2Nh c2VzKQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJl bnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCisgICAgICAgIHNjaGVtYV9p bmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCisgICAgICAgIHNlbGYuc2VydmVy X2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCisgICAgICAgIHNlbGYuZGJfaWQgPSBzY2hl bWFfaW5mb1siZGJfaWQiXQorICAgICAgICBzZWxmLnNlcnZlcl92ZXJzaW9uID0gc2NoZW1hX2lu Zm9bInNlcnZlcl92ZXJzaW9uIl0KKyAgICAgICAgaWYgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA8IDk5 OTk5OgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgKKyAgICAgICAgICAgICAgICAiTG9naWNh bCByZXBsaWNhdGlvbiBpcyBub3Qgc3VwcG9ydGVkICIKKyAgICAgICAgICAgICAgICAiZm9yIHNl cnZlciB2ZXJzaW9uIGxlc3MgdGhhbiAxMCIKKworICAgICAgICAgICAgKQorICAgICAgICBkYl9j b24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9H Uk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSdd WyJjb25uZWN0ZWQiXToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAg ICAgICAiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gZGVsZXRlIHB1YmxpY2F0aW9u LiIpCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCisg ICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQorICAg ICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5z ZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBpZiBub3Qgc2NoZW1h X3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0 aGUgc2NoZW1hIHRvIGRlbGV0ZSBwdWJsaWNhdGlvbi4iKQorICAgICAgICBzZWxmLnRhYmxlX25h bWUgPSAidGFibGVfY29sdW1uXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorCisgICAg ICAgIHNlbGYuc2VydmVyX3ZlcnNpb24gPSBzY2hlbWFfaW5mb1sic2VydmVyX3ZlcnNpb24iXQor ICAgICAgICBpZiBzZWxmLnNlcnZlcl92ZXJzaW9uIDwgOTk5OTk6CisgICAgICAgICAgICBzZWxm LnNraXBUZXN0KAorICAgICAgICAgICAgICAgICJMb2dpY2FsIHJlcGxpY2F0aW9uIGlzIG5vdCBz dXBwb3J0ZWQgIgorICAgICAgICAgICAgICAgICJmb3Igc2VydmVyIHZlcnNpb24gbGVzcyB0aGFu IDEwIgorCisgICAgICAgICAgICApCisgICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRp bHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFi bGVfbmFtZSkKKyAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1lID0gInRlc3RfcHVibGljYXRp b25fdXBkYXRlXyVzIiAlICgKKyAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisg ICAgICAgIHNlbGYucHVibGljYXRpb25faWQgPSBcCisgICAgICAgICAgICBwdWJsaWNhdGlvbl91 dGlscy5jcmVhdGVfcHVibGljYXRpb24oc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnB1YmxpY2F0 aW9uX25hbWUpCisKKyAgICBkZWYgdXBkYXRlX3B1YmxpY2F0aW9uKHNlbGYsIGRhdGEpOgorICAg ICAgICByZXR1cm4gc2VsZi50ZXN0ZXIucHV0KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIo dXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJf aWQpICsgJy8nICsgc3RyKAorICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpICsKKyAgICAgICAg ICAgICcvJyArIHN0cihzZWxmLnB1YmxpY2F0aW9uX2lkKSwKKyAgICAgICAgICAgIGRhdGE9anNv bi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKworICAg IGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRl IHRoZSBwdWJsaWNhdGlvbi4iIiIKKworICAgICAgICBwdWJsaWNhdGlvbl9uYW1lID0gcHVibGlj YXRpb25fdXRpbHMuIFwKKyAgICAgICAgICAgIHZlcmlmeV9wdWJsaWNhdGlvbihzZWxmLnNlcnZl ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1lKQorICAgICAgICBp ZiBoYXNhdHRyKHNlbGYsICJ1cGRhdGVfbmFtZSIpOgorICAgICAgICAgICAgc2VsZi50ZXN0X2Rh dGFbJ25hbWUnXSA9ICJ0ZXN0X3B1YmxpY2F0aW9uX3VwZGF0ZV8lcyIgJSAoCisgICAgICAgICAg ICAgICAgc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg IHNlbGYudGVzdF9kYXRhWyduYW1lJ10gPSBzZWxmLnB1YmxpY2F0aW9uX25hbWUKKyAgICAgICAg c2VsZi50ZXN0X2RhdGFbJ2lkJ10gPSBzZWxmLnB1YmxpY2F0aW9uX2lkCisKKyAgICAgICAgaWYg bm90IHB1YmxpY2F0aW9uX25hbWU6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxk IG5vdCBmaW5kIHRoZSBwdWJsaWNhdGlvbiB0byB1cGRhdGUuIikKKworICAgICAgICBpZiBzZWxm LmlzX3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJ3cm9uZ19w dWJsaWNhdGlvbl9pZCIpOgorICAgICAgICAgICAgICAgIHNlbGYucHVibGljYXRpb25faWQgPSA5 OTk5CisgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJwbGlkX25vbmUiKToKKyAgICAgICAg ICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX2lkID0gJycKKyAgICAgICAgICAgIHJlc3BvbnNlID0g c2VsZi51cGRhdGVfcHVibGljYXRpb24oc2VsZi50ZXN0X2RhdGEpCisgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICB3aXRoIHBhdGNoKHNlbGYubW9ja19kYXRhWyJmdW5jdGlvbl9uYW1lIl0sCisg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybl92YWx1ZT1ldmFsKHNlbGYubW9ja19kYXRhWyJy ZXR1cm5fdmFsdWUiXSkpOgorICAgICAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgIndyb25n X3B1YmxpY2F0aW9uX2lkIik6CisgICAgICAgICAgICAgICAgICAgIHNlbGYucHVibGljYXRpb25f aWQgPSA5OTk5CisgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnVwZGF0ZV9wdWJsaWNh dGlvbihzZWxmLnRlc3RfZGF0YSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNl LnN0YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfZGF0 YVsic3RhdHVzX2NvZGUiXSkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgY29u bmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0aW9uKHNlbGYuc2VydmVyWydkYiddLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3Vz ZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydob3N0J10sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsncG9ydCddLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3NzbG1vZGUn XSkKKworICAgICAgICBwdWJsaWNhdGlvbl91dGlscy5kZWxldGVfcHVibGljYXRpb24oc2VsZi5z ZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYudGVzdF9kYXRhWyduYW1lJ10pCisKKyAgICAgICAgIyBEaXNjb25uZWN0 IHRoZSBkYXRhYmFzZQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNl KHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90 ZXN0cy90ZXN0X3B1YmxpY2F0aW9uX3NxbC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvdGVzdF9wdWJsaWNh dGlvbl9zcWwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5iMWFjYjc4 NzQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzL3Rlc3RfcHVibGljYXRpb25fc3Fs LnB5CkBAIC0wLDAgKzEsODggQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAt IFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBn QWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVy IHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCB1 dWlkCitmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCitpbXBvcnQganNvbgorZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRh Ymxlcy50ZXN0cyBcCisgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscworZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3Rz IGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nl ci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBc CisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFz ZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAor ZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0 aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHB1YmxpY2F0aW9uX3V0aWxzCisKKworY2xhc3Mg UHVibGljYXRpb25HZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBj bGFzcyB3aWxsIGZldGNoIHRoZSBwdWJsaWNhdGlvbiB1bmRlciB0YWJsZSBub2RlLiIiIgorICAg IHNjZW5hcmlvcyA9IHV0aWxzLmdlbmVyYXRlX3NjZW5hcmlvcygnc3FsX3B1YmxpY2F0aW9uJywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljYXRpb25fdXRp bHMudGVzdF9jYXNlcykKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5kYl9u YW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgICAg ICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQorICAgICAgICBz ZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQorICAgICAgICBzZWxmLmRi X2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA9 IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfdmVyc2lvbiJdCisgICAgICAgIGlmIHNlbGYuc2VydmVyX3Zl cnNpb24gPCA5OTk5OToKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoCisgICAgICAgICAgICAg ICAgIkxvZ2ljYWwgcmVwbGljYXRpb24gaXMgbm90IHN1cHBvcnRlZCAiCisgICAgICAgICAgICAg ICAgImZvciBzZXJ2ZXIgdmVyc2lvbiBsZXNzIHRoYW4gMTAiCisKKyAgICAgICAgICAgICkKKyAg ICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGls cy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9j b25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisg ICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGRlbGV0ZSBw dWJsaWNhdGlvbi4iKQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hl bWFfaWQiXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9u YW1lIl0KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hl bWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgaWYg bm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQg bm90IGZpbmQgdGhlIHNjaGVtYSB0byBkZWxldGUgcHVibGljYXRpb24uIikKKyAgICAgICAgc2Vs Zi50YWJsZV9uYW1lID0gInRhYmxlX2NvbHVtbl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4 XSkKKyAgICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2Vs Zi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQorICAgICAgICBz ZWxmLnB1YmxpY2F0aW9uX25hbWUgPSAidGVzdF9wdWJsaWNhdGlvbl9kZWxldGVfJXMiICUgKAor ICAgICAgICAgICAgc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgc2VsZi5wdWJsaWNh dGlvbl9pZCA9IFwKKyAgICAgICAgICAgIHB1YmxpY2F0aW9uX3V0aWxzLmNyZWF0ZV9wdWJsaWNh dGlvbihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHVibGljYXRpb25fbmFtZSkKKworICAgIGRl ZiBnZXRfc3FsKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi50ZXN0ZXIuZ2V0KAorICAgICAg ICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0cigKKyAg ICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNl bGYuZGJfaWQpICsgJy8nICsgc3RyKHNlbGYucHVibGljYXRpb25faWQpLAorICAgICAgICAgICAg Y29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAg ICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCB0aGUgcHVibGljYXRpb24gdW5kZXIgdGFi bGUgbm9kZS4iIiIKKworICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAg ICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X3NxbCgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAg ICB3aXRoIHBhdGNoKHNlbGYubW9ja19kYXRhWyJmdW5jdGlvbl9uYW1lIl0sCisgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybl92YWx1ZT1ldmFsKHNlbGYubW9ja19kYXRhWyJyZXR1cm5fdmFs dWUiXSkpOgorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5nZXRfc3FsKCkKKworICAg ICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1c19jb2RlLAorICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfZGF0YVsic3RhdHVzX2NvZGUiXSkKKworICAgIGRl ZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgcHVibGljYXRpb25fdXRpbHMuZGVsZXRlX3B1Ymxp Y2F0aW9uKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX25hbWUpCisgICAgICAgICMg RGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVj dF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJs aWNhdGlvbnMvdGVzdHMvdXRpbHMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzL3V0aWxzLnB5Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYmUzOTlhNGM2Ci0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1 YmxpY2F0aW9ucy90ZXN0cy91dGlscy5weQpAQCAtMCwwICsxLDE1MiBAQAorIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQg KEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29m dHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKKworCitpbXBvcnQgc3lzCitpbXBvcnQgb3MKK2ltcG9ydCBqc29uCitpbXBv cnQgdHJhY2ViYWNrCisKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQg dGVzdF91dGlscyBhcyB1dGlscworCitDVVJSRU5UX1BBVEggPSBvcy5wYXRoLmRpcm5hbWUob3Mu cGF0aC5yZWFscGF0aChfX2ZpbGVfXykpCit3aXRoIG9wZW4oQ1VSUkVOVF9QQVRIICsgIi9wdWJs aWNhdGlvbl90ZXN0X2RhdGEuanNvbiIpIGFzIGRhdGFfZmlsZToKKyAgICB0ZXN0X2Nhc2VzID0g anNvbi5sb2FkKGRhdGFfZmlsZSkKKworCitkZWYgZ2V0X3RhYmxlcyhzZWxmKToKKyAgICB0YWJs ZXMgPSBzZWxmLnRlc3Rlci5nZXQoCisgICAgICAgICcvYnJvd3Nlci9wdWJsaWNhdGlvbi9nZXRf dGFibGVzLycgKyBzdHIoCisgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsg c3RyKAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgc3RyKHNl bGYuZGJfaWQpICsgJy8nLAorICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisgICAg cmV0dXJuIGpzb24uZHVtcHMoW3RhYmxlcy5qc29uWydkYXRhJ11bMV1bJ3ZhbHVlJ11dKQorCisK K2RlZiBjcmVhdGVfcHVibGljYXRpb25fYXBpKHNlbGYpOgorICAgIHJldHVybiBzZWxmLnRlc3Rl ci5wb3N0KAorICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8n ICsKKyAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cigKKyAgICAgICAgICAg IHNlbGYuZGJfaWQpICsgJy8nLAorICAgICAgICBkYXRhPWpzb24uZHVtcHMoc2VsZi50ZXN0X2Rh dGEpLAorICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKworZGVmIGNyZWF0ZV9w dWJsaWNhdGlvbihzZXJ2ZXIsIGRiX25hbWUsIHB1YmxpY2F0aW9uX25hbWUpOgorICAgICIiIgor ICAgIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIHB1YmxpY2F0aW9uIHVuZGVyIHByb3ZpZGVkIHRh YmxlLgorICAgIDpwYXJhbSBzZXJ2ZXI6IHNlcnZlciBkZXRhaWxzCisgICAgOnR5cGUgc2VydmVy OiBkaWN0CisgICAgOnBhcmFtIGRiX25hbWU6IGRhdGFiYXNlIG5hbWUKKyAgICA6dHlwZSBkYl9u YW1lOiBzdHIKKyAgICA6cGFyYW0gcHVibGljYXRpb25fbmFtZTogcHVibGljYXRpb24gbmFtZQor ICAgIDp0eXBlIHB1YmxpY2F0aW9uX25hbWU6IHN0cgorICAgIDpyZXR1cm4gcHVibGljYXRpb25f aWQ6IHB1YmxpY2F0aW9uIGlkCisgICAgOnJ0eXBlOiBpbnQKKyAgICAiIiIKKyAgICB0cnk6Cisg ICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihkYl9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWyd1c2VybmFt ZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVy WydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyWydob3N0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZXJ2ZXJbJ3BvcnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlcnZlclsnc3NsbW9kZSddKQorICAgICAgICBvbGRfaXNvbGF0aW9u X2xldmVsID0gY29ubmVjdGlvbi5pc29sYXRpb25fbGV2ZWwKKyAgICAgICAgY29ubmVjdGlvbi5z ZXRfaXNvbGF0aW9uX2xldmVsKDApCisgICAgICAgIHBnX2N1cnNvciA9IGNvbm5lY3Rpb24uY3Vy c29yKCkKKyAgICAgICAgcXVlcnkgPSAiQ1JFQVRFIHB1YmxpY2F0aW9uICVzIEZPUiBBTEwgVEFC TEVTIiAlIFwKKyAgICAgICAgICAgICAgICAocHVibGljYXRpb25fbmFtZSkKKyAgICAgICAgcGdf Y3Vyc29yLmV4ZWN1dGUocXVlcnkpCisgICAgICAgIGNvbm5lY3Rpb24uc2V0X2lzb2xhdGlvbl9s ZXZlbChvbGRfaXNvbGF0aW9uX2xldmVsKQorICAgICAgICBjb25uZWN0aW9uLmNvbW1pdCgpCisg ICAgICAgICMgR2V0IHJvbGUgb2lkIG9mIG5ld2x5IGFkZGVkIHB1YmxpY2F0aW9uCisgICAgICAg IHBnX2N1cnNvci5leGVjdXRlKCJzZWxlY3Qgb2lkIGZyb20gcGdfcHVibGljYXRpb24gcHViIHdo ZXJlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInB1Yi5wdWJuYW1lPSclcyciICUKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljYXRpb25fbmFtZSkKKyAgICAgICAgcHVibGlj YXRpb24gPSBwZ19jdXJzb3IuZmV0Y2hvbmUoKQorICAgICAgICBwdWJsaWNhdGlvbl9pZCA9ICcn CisgICAgICAgIGlmIHB1YmxpY2F0aW9uOgorICAgICAgICAgICAgcHVibGljYXRpb25faWQgPSBw dWJsaWNhdGlvblswXQorICAgICAgICBjb25uZWN0aW9uLmNsb3NlKCkKKyAgICAgICAgcmV0dXJu IHB1YmxpY2F0aW9uX2lkCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdHJhY2ViYWNr LnByaW50X2V4YyhmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgIHJhaXNlCisKKworZGVmIHZlcmlm eV9wdWJsaWNhdGlvbihzZXJ2ZXIsIGRiX25hbWUsIHB1YmxpY2F0aW9uX25hbWUpOgorICAgICIi IgorICAgIFRoaXMgZnVuY3Rpb24gdmVyaWZpZXMgcHVibGljYXRpb24gZXhpc3QgaW4gZGF0YWJh c2Ugb3Igbm90LgorICAgIDpwYXJhbSBzZXJ2ZXI6IHNlcnZlciBkZXRhaWxzCisgICAgOnR5cGUg c2VydmVyOiBkaWN0CisgICAgOnBhcmFtIGRiX25hbWU6IGRhdGFiYXNlIG5hbWUKKyAgICA6dHlw ZSBkYl9uYW1lOiBzdHIKKyAgICA6cGFyYW0gcHVibGljYXRpb25fbmFtZTogcHVibGljYXRpb24g bmFtZQorICAgIDp0eXBlIHB1YmxpY2F0aW9uX25hbWU6IHN0cgorICAgIDpyZXR1cm4gcHVibGlj YXRpb246IHB1YmxpY2F0aW9uIHJlY29yZCBmcm9tIGRhdGFiYXNlCisgICAgOnJ0eXBlOiB0dXBs ZQorICAgICIiIgorICAgIHRyeToKKyAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9j b25uZWN0aW9uKGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZXJ2ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2hvc3QnXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsncG9ydCddLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydzc2xtb2RlJ10p CisgICAgICAgIHBnX2N1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICAgICAgcGdfY3Vy c29yLmV4ZWN1dGUoInNlbGVjdCAqIGZyb20gcGdfcHVibGljYXRpb24gcHViICIKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIndoZXJlIHB1Yi5wdWJuYW1lPSclcyciICUKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgcHVibGljYXRpb25fbmFtZSkKKyAgICAgICAgcHVibGljYXRpb24gPSBw Z19jdXJzb3IuZmV0Y2hvbmUoKQorICAgICAgICBjb25uZWN0aW9uLmNsb3NlKCkKKyAgICAgICAg cmV0dXJuIHB1YmxpY2F0aW9uCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdHJhY2Vi YWNrLnByaW50X2V4YyhmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgIHJhaXNlCisKKworZGVmIGRl bGV0ZV9wdWJsaWNhdGlvbihzZXJ2ZXIsIGRiX25hbWUsIHB1YmxpY2F0aW9uX25hbWUpOgorICAg ICIiIgorICAgIFRoaXMgZnVuY3Rpb24gdXNlIHRvIGRlbGV0ZSB0aGUgZXhpc3Rpbmcgcm9sZXMg aW4gdGhlIHNlcnZlcnMKKworICAgIDpwYXJhbSBkYl9uYW1lOiAgZGJfbmFtZQorICAgIDp0eXBl IGRiX25hbWU6IGRiX25hbWUgb2JqZWN0CisgICAgOnBhcmFtIHNlcnZlcjogc2VydmVyCisgICAg OnR5cGUgc2VydmVyOiBzZXJ2ZXIgb2JqZWN0CisgICAgOnBhcmFtIHB1YmxpY2F0aW9uX25hbWU6 IHB1YmxpY2F0aW9uIG5hbWUKKyAgICA6dHlwZSBwdWJsaWNhdGlvbl9uYW1lOiBzdHIKKyAgICA6 cmV0dXJuOiBOb25lCisgICAgIiIiCisKKyAgICB0cnk6CisgICAgICAgIGNvbm5lY3Rpb24gPSB1 dGlscy5nZXRfZGJfY29ubmVjdGlvbihkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VydmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydkYl9wYXNzd29yZCddLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydob3N0J10s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3Bv cnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZl clsnc3NsbW9kZSddKQorICAgICAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisK KyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoInNlbGVjdCAqIGZyb20gcGdfcHVibGljYXRpb24g cHViIHdoZXJlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInB1Yi5wdWJuYW1lPSclcyci ICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljYXRpb25fbmFtZSkKKyAgICAgICAg cHVibGljYXRpb25fY291bnQgPSBwZ19jdXJzb3IuZmV0Y2hvbmUoKQorICAgICAgICBpZiBwdWJs aWNhdGlvbl9jb3VudDoKKyAgICAgICAgICAgIG9sZF9pc29sYXRpb25fbGV2ZWwgPSBjb25uZWN0 aW9uLmlzb2xhdGlvbl9sZXZlbAorICAgICAgICAgICAgY29ubmVjdGlvbi5zZXRfaXNvbGF0aW9u X2xldmVsKDApCisgICAgICAgICAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisg ICAgICAgICAgICBxdWVyeSA9ICJEUk9QIHB1YmxpY2F0aW9uICVzIiAlIHB1YmxpY2F0aW9uX25h bWUKKyAgICAgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKHF1ZXJ5KQorICAgICAgICAgICAgY29u bmVjdGlvbi5zZXRfaXNvbGF0aW9uX2xldmVsKG9sZF9pc29sYXRpb25fbGV2ZWwpCisgICAgICAg ICAgICBjb25uZWN0aW9uLmNvbW1pdCgpCisgICAgICAgIGNvbm5lY3Rpb24uY2xvc2UoKQorICAg IGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1zeXMu c3RkZXJyKQorICAgICAgICByYWlzZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N0YXRpYy9qcy9kYXRhYmFzZS5qcyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdGF0aWMv anMvZGF0YWJhc2UuanMKaW5kZXggNmE5N2RkNWJhLi43NmIxYTA5ZDggMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdGF0aWMv anMvZGF0YWJhc2UuanMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3N0YXRpYy9qcy9kYXRhYmFzZS5qcwpAQCAtOTUsNiArOTUsMTggQEAg ZGVmaW5lKCdwZ2FkbWluLm5vZGUuZGF0YWJhc2UnLCBbCiAKICAgICAgICAgcmV0dXJuIHNlcnZl ci5jb25uZWN0ZWQgJiYgc2VydmVyLnVzZXIuY2FuX2NyZWF0ZV9kYjsKICAgICAgIH0sCisgICAg ICBjYW5DcmVhdGU6IGZ1bmN0aW9uKGl0ZW1EYXRhLCBpdGVtKSB7CisgICAgICAgIHZhciB0cmVl RGF0YSA9IHRoaXMuZ2V0VHJlZU5vZGVIaWVyYXJjaHkoaXRlbSksCisgICAgICAgICAgc2VydmVy ID0gdHJlZURhdGFbJ3NlcnZlciddOworCisgICAgICAgIC8vIElmIHNlcnZlciBpcyBsZXNzIHRo YW4gMTAgdGhlbiBkbyBub3QgYWxsb3cgJ2NyZWF0ZScgbWVudQorICAgICAgICBpZiAoc2VydmVy ICYmIHNlcnZlci52ZXJzaW9uIDwgMTAwMDAwKQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKwor ICAgICAgICAvLyBieSBkZWZhdWx0IHdlIHdhbnQgdG8gYWxsb3cgY3JlYXRlIG1lbnUKKyAgICAg ICAgcmV0dXJuIHRydWU7CisgICAgICB9LAorCiAgICAgICBpc19ub3RfY29ubmVjdGVkOiBmdW5j dGlvbihub2RlKSB7CiAgICAgICAgIHJldHVybiAobm9kZSAmJiBub2RlLmNvbm5lY3RlZCAhPSB0 cnVlICYmIG5vZGUuYWxsb3dDb25uID09IHRydWUpOwogICAgICAgfSwKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3Jp cHRpb25zL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwLi4yZTc1YTE1NTEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0 aW9ucy9fX2luaXRfXy5weQpAQCAtMCwwICsxLDc5MiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMK KyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMg LSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMg cmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKworIiIiSW1wbGVtZW50cyBTdWJzY3JpcHRpb24gTm9kZSIiIgorCitpbXBvcnQgc2ltcGxl anNvbiBhcyBqc29uCitmcm9tIGZ1bmN0b29scyBpbXBvcnQgd3JhcHMKKworaW1wb3J0IHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzIGFzIGRhdGFiYXNlcwor ZnJvbSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlLCByZXF1ZXN0LCBqc29uaWZ5Citmcm9t IGZsYXNrX2JhYmVsZXggaW1wb3J0IGdldHRleHQKK2Zyb20gcGdhZG1pbi5icm93c2VyLmNvbGxl Y3Rpb24gaW1wb3J0IENvbGxlY3Rpb25Ob2RlTW9kdWxlCitmcm9tIHBnYWRtaW4uYnJvd3Nlci51 dGlscyBpbXBvcnQgUEdDaGlsZE5vZGVWaWV3Citmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBv cnQgbWFrZV9qc29uX3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IsIFwKKyAgICBtYWtl X3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UsIGdvbmUKK2Zyb20gcGdhZG1pbi51dGlscy5kcml2 ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZF UgorZnJvbSBwZ2FkbWluLnRvb2xzLnNjaGVtYV9kaWZmLm5vZGVfcmVnaXN0cnkgaW1wb3J0IFNj aGVtYURpZmZSZWdpc3RyeQorZnJvbSBwZ2FkbWluLnRvb2xzLnNjaGVtYV9kaWZmLmNvbXBhcmUg aW1wb3J0IFNjaGVtYURpZmZPYmplY3RDb21wYXJlCitpbXBvcnQgcHN5Y29wZzIKK2Zyb20gcGdh ZG1pbi51dGlscyBpbXBvcnQgZ2V0X2NvbXBsZXRlX2ZpbGVfcGF0aAorCisKK2NsYXNzIFN1YnNj cmlwdGlvbk1vZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVsZSk6CisgICAgIiIiCisgICAgY2xhc3Mg U3Vic2NyaXB0aW9uTW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxlKQorCisgICAgICAgIEEgbW9k dWxlIGNsYXNzIGZvciBTdWJzY3JpcHRpb24gbm9kZSBkZXJpdmVkIGZyb20gQ29sbGVjdGlvbk5v ZGVNb2R1bGUuCisKKyAgICBNZXRob2RzOgorICAgIC0tLS0tLS0KKyAgICAqIF9faW5pdF9fKCph cmdzLCAqKmt3YXJncykKKyAgICAgIC0gTWV0aG9kIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUg U3Vic2NyaXB0aW9uTW9kdWxlIGFuZCBpdCdzCisgICAgICBiYXNlIG1vZHVsZS4KKworICAgICog Z2V0X25vZGVzKGdpZCwgc2lkLCBkaWQpCisgICAgICAtIE1ldGhvZCBpcyB1c2VkIHRvIGdlbmVy YXRlIHRoZSBicm93c2VyIGNvbGxlY3Rpb24gbm9kZS4KKworICAgICogbm9kZV9pbm9kZSgpCisg ICAgICAtIE1ldGhvZCBpcyBvdmVycmlkZGVuIGZyb20gaXRzIGJhc2UgY2xhc3MgdG8gbWFrZSB0 aGUgbm9kZSBhcyBsZWFmIG5vZGUuCisKKyAgICAqIHNjcmlwdF9sb2FkKCkKKyAgICAgIC0gTG9h ZCB0aGUgbW9kdWxlIHNjcmlwdCBmb3Igc3Vic2NyaXB0aW9uLCB3aGVuIGFueSBvZiB0aGUgZGF0 YWJhc2Ugbm9kZQorICAgICAgaXMgaW5pdGlhbGl6ZWQuCisgICAgIiIiCisKKyAgICBfTk9ERV9U WVBFID0gJ3N1YnNjcmlwdGlvbicKKyAgICBfQ09MTEVDVElPTl9MQUJFTCA9IGdldHRleHQoIlN1 YnNjcmlwdGlvbnMiKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6 CisgICAgICAgICIiIgorICAgICAgICBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZSBT dWJzY3JpcHRpb25Nb2R1bGUgYW5kIGl0J3MKKyAgICAgICAgYmFzZSBtb2R1bGUuCisKKyAgICAg ICAgQXJnczoKKyAgICAgICAgICAgICphcmdzOgorICAgICAgICAgICAgKiprd2FyZ3M6CisgICAg ICAgICIiIgorICAgICAgICBzdXBlcihTdWJzY3JpcHRpb25Nb2R1bGUsIHNlbGYpLl9faW5pdF9f KCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5taW5fdmVyID0gMTAwMDAwCisgICAgICAg IHNlbGYubWF4X3ZlciA9IE5vbmUKKworICAgIGRlZiBnZXRfbm9kZXMoc2VsZiwgZ2lkLCBzaWQs IGRpZCk6CisgICAgICAgICIiIgorICAgICAgICBNZXRob2QgaXMgdXNlZCB0byBnZW5lcmF0ZSB0 aGUgYnJvd3NlciBjb2xsZWN0aW9uIG5vZGUKKworICAgICAgICBBcmdzOgorICAgICAgICAgICAg Z2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAg ICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgICIiIgorICAgICAgICB5aWVsZCBzZWxmLmdl bmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlKGRpZCkKKworICAgIEBwcm9wZXJ0eQorICAg IGRlZiBub2RlX2lub2RlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgT3ZlcnJpZGUgdGhp cyBwcm9wZXJ0eSB0byBtYWtlIHRoZSBub2RlIGEgbGVhZiBub2RlLgorCisgICAgICAgIFJldHVy bnM6IEZhbHNlIGFzIHRoaXMgaXMgdGhlIGxlYWYgbm9kZQorICAgICAgICAiIiIKKyAgICAgICAg cmV0dXJuIEZhbHNlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc2NyaXB0X2xvYWQoc2VsZik6 CisgICAgICAgICIiIgorICAgICAgICBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBzdWJzY3Jp cHRpb24sIHdoZW4gYW55IG9mIHRoZSBkYXRhYmFzZSBub2RlcworICAgICAgICBhcmUgaW5pdGlh bGl6ZWQuCisKKyAgICAgICAgUmV0dXJuczogbm9kZSB0eXBlIG9mIHRoZSBzZXJ2ZXIgbW9kdWxl LgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIGRhdGFiYXNlcy5EYXRhYmFzZU1vZHVsZS5u b2RlX3R5cGUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBtb2R1bGVfdXNlX3RlbXBsYXRlX2ph dmFzY3JpcHQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIHdoZXRoZXIgSmlu amEyIHRlbXBsYXRlIGlzIHVzZWQgZm9yIGdlbmVyYXRpbmcgdGhlIGphdmFzY3JpcHQKKyAgICAg ICAgbW9kdWxlLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKworYmx1ZXBy aW50ID0gU3Vic2NyaXB0aW9uTW9kdWxlKF9fbmFtZV9fKQorCisKK2NsYXNzIFN1YnNjcmlwdGlv blZpZXcoUEdDaGlsZE5vZGVWaWV3LCBTY2hlbWFEaWZmT2JqZWN0Q29tcGFyZSk6CisgICAgIiIi CisgICAgY2xhc3MgU3Vic2NyaXB0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcpCisKKyAgICAgICAg QSB2aWV3IGNsYXNzIGZvciBTdWJzY3JpcHRpb24gbm9kZSBkZXJpdmVkIGZyb20gUEdDaGlsZE5v ZGVWaWV3LgorICAgICAgICBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciBhbGwgdGhlIHN0 dWZmIHJlbGF0ZWQgdG8gdmlldyBsaWtlCisgICAgICAgIHVwZGF0aW5nIHN1YnNjcmlwdGlvbiBu b2RlLCBzaG93aW5nIHByb3BlcnRpZXMsIHNob3dpbmcgc3FsCisgICAgICAgIGluIHNxbCBwYW5l LgorCisgICAgTWV0aG9kczoKKyAgICAtLS0tLS0tCisgICAgKiBfX2luaXRfXygqKmt3YXJncykK KyAgICAgIC0gTWV0aG9kIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgU3Vic2NyaXB0aW9uVmll dyBhbmQgaXQncyBiYXNlIHZpZXcuCisKKyAgICAqIGNoZWNrX3ByZWNvbmRpdGlvbigpCisgICAg ICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBj aGVja3MKKyAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUgcnVubmluZyB2aWV3LCBp dCB3aWxsIGFsc28gYXR0YWNoZXMKKyAgICAgICAgbWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0 aCBwcm9wZXJ0aWVzIHRvIHNlbGYKKworICAgICogbGlzdCgpCisgICAgICAtIFRoaXMgZnVuY3Rp b24gaXMgdXNlZCB0byBsaXN0IGFsbCB0aGUgc3Vic2NyaXB0aW9uIG5vZGVzIHdpdGhpbiB0aGF0 CisgICAgICBjb2xsZWN0aW9uLgorCisgICAgKiBub2RlcygpCisgICAgICAtIFRoaXMgZnVuY3Rp b24gd2lsbCB1c2VkIHRvIGNyZWF0ZSBhbGwgdGhlIGNoaWxkIG5vZGUgd2l0aGluIHRoYXQKKyAg ICAgIGNvbGxlY3Rpb24uIEhlcmUgaXQgd2lsbCBjcmVhdGUgYWxsIHRoZSBzdWJzY3JpcHRpb24g bm9kZS4KKworICAgICogcHJvcGVydGllcyhnaWQsIHNpZCwgZGlkLCBzdWJpZCkKKyAgICAgIC0g VGhpcyBmdW5jdGlvbiB3aWxsIHNob3cgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNlbGVjdGVkCisg ICAgICBzdWJzY3JpcHRpb24gbm9kZQorCisgICAgKiB1cGRhdGUoZ2lkLCBzaWQsIGRpZCwgc3Vi aWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgdGhlIGRhdGEgZm9yIHRoZSBz ZWxlY3RlZCBzdWJzY3JpcHRpb24gbm9kZQorCisgICAgKiBjcmVhdGUoZ2lkLCBzaWQsIGRpZCkK KyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZSB0aGUgbmV3IHN1YnNjcmlwdGlvbiBu b2RlCisKKyAgICAqIGRlbGV0ZShnaWQsIHNpZCwgZGlkLCBzdWJpZCkKKyAgICAgIC0gVGhpcyBm dW5jdGlvbiB3aWxsIGRlbGV0ZSB0aGUgc2VsZWN0ZWQgc3Vic2NyaXB0aW9uIG5vZGUKKworICAg ICogbXNxbChnaWQsIHNpZCwgZGlkLCBzdWJpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiBpcyB1 c2VkIHRvIHJldHVybiBtb2RpZmllZCBTUUwgZm9yIHRoZSBzZWxlY3RlZAorICAgICAgc3Vic2Ny aXB0aW9uIG5vZGUKKworICAgICogZ2V0X3NxbChkYXRhLCBzdWJpZCkKKyAgICAgIC0gVGhpcyBm dW5jdGlvbiB3aWxsIGdlbmVyYXRlIHNxbCBmcm9tIG1vZGVsIGRhdGEKKworICAgICogZ2V0X3B1 YmxpY2F0aW9ucyhnaWQsIHNpZCwgZGlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHJldHVybnMg dGhlIHB1YmxpY2F0aW9ucyBsaXN0CisKKyAgICAqIGdldF90ZW1wbGF0ZXMoZ2lkLCBzaWQsIGRp ZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiByZXR1cm5zIHN1YnNjcmlwdGlvbiB0ZW1wbGF0ZXMu CisKKyAgICAqIHNxbChnaWQsIHNpZCwgZGlkLCBzdWJpZCk6CisgICAgICAtIFRoaXMgZnVuY3Rp b24gd2lsbCBnZW5lcmF0ZSBzcWwgdG8gc2hvdyBpdCBpbiBzcWwgcGFuZSBmb3IgdGhlCisgICAg ICBzZWxlY3RlZCBzdWJzY3JpcHRpb24gbm9kZS4KKworICAgICogZGVwZW5kZW50cyhnaWQsIHNp ZCwgZGlkLCBzdWJpZCk6CisgICAgICAtIFRoaXMgZnVuY3Rpb24gZ2V0IHRoZSBkZXBlbmRlbnRz IGFuZCByZXR1cm4gYWpheCByZXNwb25zZSBmb3IgdGhlCisgICAgICBzdWJzY3JpcHRpb24gbm9k ZS4KKworICAgICogZGVwZW5kZW5jaWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHN1YmlkKToKKyAg ICAgIC0gVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRlcGVuZGVuY2llcyBhbmQgcmV0dXJuIGFqYXgg cmVzcG9uc2UgZm9yIHRoZQorICAgICAgc3Vic2NyaXB0aW9uIG5vZGUuCisgICAgIiIiCisKKyAg ICBfTk9UX0ZPVU5EX1BVQl9JTkZPUk1BVElPTiA9IFwKKyAgICAgICAgZ2V0dGV4dCgiQ291bGQg bm90IGZpbmQgdGhlIHN1YnNjcmlwdGlvbiBpbmZvcm1hdGlvbi4iKQorICAgIG5vZGVfdHlwZSA9 IGJsdWVwcmludC5ub2RlX3R5cGUKKworICAgIHBhcmVudF9pZHMgPSBbCisgICAgICAgIHsndHlw ZSc6ICdpbnQnLCAnaWQnOiAnZ2lkJ30sCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAn c2lkJ30sCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZGlkJ30KKyAgICBdCisgICAg aWRzID0gWworICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3N1YmlkJ30KKyAgICBdCisK KyAgICBvcGVyYXRpb25zID0gZGljdCh7CisgICAgICAgICdvYmonOiBbCisgICAgICAgICAgICB7 J2dldCc6ICdwcm9wZXJ0aWVzJywgJ2RlbGV0ZSc6ICdkZWxldGUnLCAncHV0JzogJ3VwZGF0ZSd9 LAorICAgICAgICAgICAgeydnZXQnOiAnbGlzdCcsICdwb3N0JzogJ2NyZWF0ZScsICdkZWxldGUn OiAnZGVsZXRlJ30KKyAgICAgICAgXSwKKyAgICAgICAgJ25vZGVzJzogW3snZ2V0JzogJ25vZGUn fSwgeydnZXQnOiAnbm9kZXMnfV0sCisgICAgICAgICdzcWwnOiBbeydnZXQnOiAnc3FsJ31dLAor ICAgICAgICAnbXNxbCc6IFt7J2dldCc6ICdtc3FsJ30sIHsnZ2V0JzogJ21zcWwnfV0sCisgICAg ICAgICdzdGF0cyc6IFt7J2dldCc6ICdzdGF0aXN0aWNzJ31dLAorICAgICAgICAnZGVwZW5kZW5j eSc6IFt7J2dldCc6ICdkZXBlbmRlbmNpZXMnfV0sCisgICAgICAgICdkZXBlbmRlbnQnOiBbeydn ZXQnOiAnZGVwZW5kZW50cyd9XSwKKyAgICAgICAgJ2dldF9wdWJsaWNhdGlvbnMnOiBbe30sIHsn Z2V0JzogJ2dldF9wdWJsaWNhdGlvbnMnfV0sCisgICAgICAgICdnZXRfdGVtcGxhdGVzJzogW3t9 LCB7J2dldCc6ICdnZXRfdGVtcGxhdGVzJ31dLAorICAgICAgICAnZGVsZXRlJzogW3snZGVsZXRl JzogJ2RlbGV0ZSd9LCB7J2RlbGV0ZSc6ICdkZWxldGUnfV0KKyAgICB9KQorCisgICAgZGVmIF9p bml0XyhzZWxmLCAqKmt3YXJncyk6CisgICAgICAgICIiIgorICAgICAgICBNZXRob2QgaXMgdXNl ZCB0byBpbml0aWFsaXplIHRoZSBTdWJzY3JpcHRpb25WaWV3IGFuZCBpdHMgYmFzZSB2aWV3Lgor ICAgICAgICBJbml0aWFsaXplIGFsbCB0aGUgdmFyaWFibGVzIGNyZWF0ZS91c2VkIGR5bmFtaWNh bGx5IGxpa2UgY29ubiwKKyAgICAgICAgdGVtcGxhdGVfcGF0aC4KKworICAgICAgICBBcmdzOgor ICAgICAgICAgICAgKiprd2FyZ3M6CisgICAgICAgICIiIgorICAgICAgICBzZWxmLmNvbm4gPSBO b25lCisgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9IE5vbmUKKyAgICAgICAgc2VsZi5tYW5h Z2VyID0gTm9uZQorCisgICAgICAgIHN1cGVyKFN1YnNjcmlwdGlvblZpZXcsIHNlbGYpLl9faW5p dF9fKCoqa3dhcmdzKQorCisgICAgZGVmIGNoZWNrX3ByZWNvbmRpdGlvbihmKToKKyAgICAgICAg IiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hp Y2ggd2lsbCBjaGVjayB0aGUKKyAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUgcnVu bmluZyB0aGUgdmlldy4gSXQgYWxzbyBhdHRhY2hlcworICAgICAgICBtYW5hZ2VyLCBjb25uICYg dGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYKKyAgICAgICAgIiIiCisKKyAgICAgICAg QHdyYXBzKGYpCisgICAgICAgIGRlZiB3cmFwKCphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAg ICAjIEhlcmUgYXJnc1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJncyB3aWxsIGhvbGQgZ2lkLHNp ZCxkaWQKKyAgICAgICAgICAgIHNlbGYgPSBhcmdzWzBdCisgICAgICAgICAgICBzZWxmLmRyaXZl ciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklWRVIpCisgICAgICAgICAgICBzZWxmLm1hbmFn ZXIgPSBzZWxmLmRyaXZlci5jb25uZWN0aW9uX21hbmFnZXIoa3dhcmdzWydzaWQnXSkKKyAgICAg ICAgICAgIHNlbGYuY29ubiA9IHNlbGYubWFuYWdlci5jb25uZWN0aW9uKGRpZD1rd2FyZ3NbJ2Rp ZCddKQorICAgICAgICAgICAgc2VsZi5kYXRsYXN0c3lzb2lkID0gc2VsZi5tYW5hZ2VyLmRiX2lu Zm9ba3dhcmdzWydkaWQnXV1bCisgICAgICAgICAgICAgICAgJ2RhdGxhc3RzeXNvaWQnXSBpZiBz ZWxmLm1hbmFnZXIuZGJfaW5mbyBpcyBub3QgTm9uZSBcCisgICAgICAgICAgICAgICAgYW5kIGt3 YXJnc1snZGlkJ10gaW4gc2VsZi5tYW5hZ2VyLmRiX2luZm8gZWxzZSAwCisKKyAgICAgICAgICAg ICMgU2V0IHRoZSB0ZW1wbGF0ZSBwYXRoIGZvciB0aGUgU1FMIHNjcmlwdHMKKyAgICAgICAgICAg IHNlbGYudGVtcGxhdGVfcGF0aCA9ICgKKyAgICAgICAgICAgICAgICAic3Vic2NyaXB0aW9ucy9z cWwvI2dwZGIjezB9IyIuZm9ybWF0KHNlbGYubWFuYWdlci52ZXJzaW9uKSBpZgorICAgICAgICAg ICAgICAgIHNlbGYubWFuYWdlci5zZXJ2ZXJfdHlwZSA9PSAnZ3BkYicgZWxzZQorICAgICAgICAg ICAgICAgICJzdWJzY3JpcHRpb25zL3NxbC8jezB9IyIuZm9ybWF0KHNlbGYubWFuYWdlci52ZXJz aW9uKQorICAgICAgICAgICAgKQorCisgICAgICAgICAgICByZXR1cm4gZigqYXJncywgKiprd2Fy Z3MpCisKKyAgICAgICAgcmV0dXJuIHdyYXAKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAg ICBkZWYgbGlzdChzZWxmLCBnaWQsIHNpZCwgZGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRo aXMgZnVuY3Rpb24gaXMgdXNlZCB0byBsaXN0IGFsbCB0aGUgc3Vic2NyaXB0aW9uIG5vZGVzIHdp dGhpbiB0aGF0CisgICAgICAgIGNvbGxlY3Rpb24uCisKKyAgICAgICAgQXJnczoKKyAgICAgICAg ICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAg ICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAiIiIKKyAgICAgICAgc3FsID0gcmVu ZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fUFJPUEVSVElFU19TUUxdKSwgZGlkPWRp ZCkKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKwor ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAg ICAgICAgICAgcmVzcG9uc2U9cmVzWydyb3dzJ10sCisgICAgICAgICAgICBzdGF0dXM9MjAwCisg ICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbm9kZXMoc2VsZiwg Z2lkLCBzaWQsIGRpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVz ZWQgdG8gY3JlYXRlIGFsbCB0aGUgY2hpbGQgbm9kZXMgd2l0aGluIHRoZQorICAgICAgICBjb2xs ZWN0aW9uLiBIZXJlIGl0IHdpbGwgY3JlYXRlIGFsbCB0aGUgc3Vic2NyaXB0aW9uIG5vZGVzLgor CisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAg ICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAg ICAgIiIiCisgICAgICAgIHJlcyA9IFtdCisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgi LyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICdub2Rlcy5zcWwnXSksIGRpZD1kaWQpCisgICAgICAgIHN0YXR1cywgcmVz dWx0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShzcWwpCisgICAgICAgIGlmIG5vdCBzdGF0 dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJl c3VsdCkKKworICAgICAgICBmb3Igcm93IGluIHJlc3VsdFsncm93cyddOgorICAgICAgICAgICAg cmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICBzZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93 c2VyX25vZGUoCisgICAgICAgICAgICAgICAgICAgIHJvd1snb2lkJ10sCisgICAgICAgICAgICAg ICAgICAgIGRpZCwKKyAgICAgICAgICAgICAgICAgICAgcm93WyduYW1lJ10sCisgICAgICAgICAg ICAgICAgICAgIGljb249Imljb24tc3Vic2NyaXB0aW9uIgorICAgICAgICAgICAgICAgICkpCisK KyAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgIGRhdGE9cmVz LAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29u ZGl0aW9uCisgICAgZGVmIG5vZGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc3ViaWQpOgorICAgICAg ICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIHByb3BlcnRpZXMgb2YgdGhl IHN1YnNjcmlwdGlvbiBub2Rlcy4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBT ZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBk aWQ6IERhdGFiYXNlIElECisgICAgICAgICAgICBzdWJpZDogU3Vic2NyaXB0aW9uIElECisgICAg ICAgICIiIgorICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVt cGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm Ll9QUk9QRVJUSUVTX1NRTF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViaWQ9 c3ViaWQpCisgICAgICAgIHN0YXR1cywgcmVzdWx0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJh eShzcWwpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlc3VsdCkKKworICAgICAgICBmb3Igcm93IGluIHJl c3VsdFsncm93cyddOgorICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAg ICAgICAgICAgICAgICBkYXRhPXNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgK KyAgICAgICAgICAgICAgICAgICAgcm93WydvaWQnXSwKKyAgICAgICAgICAgICAgICAgICAgZGlk LAorICAgICAgICAgICAgICAgICAgICByb3dbJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAg aWNvbj0iaWNvbi1zdWJzY3JpcHRpb24iCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAg ICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICApCisKKyAgICAgICAgcmV0dXJuIGdvbmUoZ2V0 dGV4dCgiQ291bGQgbm90IGZpbmQgdGhlIHNwZWNpZmllZCBzdWJzY3JpcHRpb24uIikpCisKKyAg ICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHByb3BlcnRpZXMoc2VsZiwgZ2lkLCBzaWQs IGRpZCwgc3ViaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIHNo b3cgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNlbGVjdGVkIHN1YnNjcmlwdGlvbgorICAgICAgICBu b2RlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAor ICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQK KyAgICAgICAgICAgIHN1YmlkOiBTdWJzY3JpcHRpb24gSUQKKyAgICAgICAgIiIiCisgICAgICAg IHN0YXR1cywgcmVzID0gc2VsZi5fZmV0Y2hfcHJvcGVydGllcyhkaWQsIHN1YmlkKQorCisgICAg ICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gcmVzCisKKyAgICAgICAgcmV0 dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25zZT1yZXMsCisgICAgICAgICAg ICBzdGF0dXM9MjAwCisgICAgICAgICkKKworICAgIGRlZiBfZmV0Y2hfcHJvcGVydGllcyhzZWxm LCBkaWQsIHN1YmlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gZmV0Y2gg dGhlIHByb3BlcnRpZXMgb2YgdGhlIGV4dGVuc2lvbi4KKyAgICAgICAgOnBhcmFtIGRpZDoKKyAg ICAgICAgOnBhcmFtIHN1YmlkOgorICAgICAgICA6cmV0dXJuOgorICAgICAgICAiIiIKKyAgICAg ICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVt cGxhdGVfcGF0aCwgc2VsZi5fUFJPUEVSVElFU19TUUxdKSwKKyAgICAgICAgICAgIHN1YmlkPXN1 YmlkLCBkaWQ9ZGlkLAorICAgICAgICApCisgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25u LmV4ZWN1dGVfZGljdChzcWwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAg IHJldHVybiBGYWxzZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAg ICAgICBpZiBsZW4ocmVzWydyb3dzJ10pID09IDA6CisgICAgICAgICAgICByZXR1cm4gRmFsc2Us IGdvbmUoc2VsZi5fTk9UX0ZPVU5EX1BVQl9JTkZPUk1BVElPTikKKworICAgICAgICByZXR1cm4g VHJ1ZSwgcmVzWydyb3dzJ11bMF0KKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYg dXBkYXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHN1YmlkKToKKyAgICAgICAgIiIiCisgICAgICAg IFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgdGhlIGRhdGEgZm9yIHRoZSBzZWxlY3RlZCBzdWJz Y3JpcHRpb24gbm9kZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIg R3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERh dGFiYXNlIElECisgICAgICAgICAgICBzdWJpZDogU3Vic2NyaXB0aW9uIElECisgICAgICAgICIi IgorICAgICAgICBkYXRhID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVlc3QuZm9ybSBlbHNlIGpzb24u bG9hZHMoCisgICAgICAgICAgICByZXF1ZXN0LmRhdGEsIGVuY29kaW5nPSd1dGYtOCcKKyAgICAg ICAgKQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmICdwdWInIGluIGRhdGE6CisgICAg ICAgICAgICAgICAgZGF0YVsncHViJ10gPSBqc29uLmxvYWRzKAorICAgICAgICAgICAgICAgICAg ICBkYXRhWydwdWInXSwgZW5jb2Rpbmc9J3V0Zi04JworICAgICAgICAgICAgICAgICkKKyAgICAg ICAgICAgIHNxbCwgbmFtZSA9IHNlbGYuZ2V0X3NxbChkYXRhLCBzdWJpZCkKKyAgICAgICAgICAg ICMgTW9zdCBwcm9iYWJseSB0aGlzIGlzIGR1ZSB0byBlcnJvcgorICAgICAgICAgICAgaWYgbm90 IGlzaW5zdGFuY2Uoc3FsLCBzdHIpOgorICAgICAgICAgICAgICAgIHJldHVybiBzcWwKKyAgICAg ICAgICAgIHNxbCA9IHNxbC5zdHJpcCgnXG4nKS5zdHJpcCgnICcpCisgICAgICAgICAgICBzdGF0 dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorICAgICAgICAgICAgaWYgbm90 IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXJlcykKKworICAgICAgICAgICAgcmV0dXJuIGpzb25pZnkoCisgICAgICAgICAgICAg ICAgbm9kZT1zZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAg ICAgICAgICAgIHN1YmlkLAorICAgICAgICAgICAgICAgICAgICBkaWQsCisgICAgICAgICAgICAg ICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgICAgIGljb249Imljb24tJXMiICUgc2VsZi5u b2RlX3R5cGUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgIGV4Y2Vw dCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBj cmVhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1 bmN0aW9uIHdpbGwgY3JlYXRlIHRoZSBzdWJzY3JpcHRpb24gb2JqZWN0CisKKyAgICAgICAgQXJn czoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNl cnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAiIiIKKyAgICAg ICAgcmVxdWlyZWRfYXJncyA9IFsKKyAgICAgICAgICAgICduYW1lJworICAgICAgICBdCisKKyAg ICAgICAgZGF0YSA9IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZvcm0gZWxzZSBqc29uLmxvYWRz KAorICAgICAgICAgICAgcmVxdWVzdC5kYXRhLCBlbmNvZGluZz0ndXRmLTgnCisgICAgICAgICkK KyAgICAgICAgZm9yIGFyZyBpbiByZXF1aXJlZF9hcmdzOgorICAgICAgICAgICAgaWYgYXJnIG5v dCBpbiBkYXRhOgorICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisg ICAgICAgICAgICAgICAgICAgIHN0YXR1cz00MTAsCisgICAgICAgICAgICAgICAgICAgIHN1Y2Nl c3M9MCwKKyAgICAgICAgICAgICAgICAgICAgZXJyb3Jtc2c9Z2V0dGV4dCgKKyAgICAgICAgICAg ICAgICAgICAgICAgICJDb3VsZCBub3QgZmluZCB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICh7fSku IgorICAgICAgICAgICAgICAgICAgICApLmZvcm1hdChhcmcpCisgICAgICAgICAgICAgICAgKQor CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGRhdGFbJ3B1YiddID0ganNvbi5sb2FkcygKKyAg ICAgICAgICAgICAgICBkYXRhWydwdWInXSwgZW5jb2Rpbmc9J3V0Zi04JworICAgICAgICAgICAg KQorCisgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVt cGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5fQ1JFQVRFX1NRTF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh dGE9ZGF0YSwgY29ubj1zZWxmLmNvbm4pCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYu Y29ubi5leGVjdXRlX2RpY3Qoc3FsKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKwor ICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICIvIi5q b2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsIHNlbGYuX1BST1BFUlRJRVNfU1FMXSksCisgICAgICAg ICAgICAgICAgY29ubj1zZWxmLmNvbm4sCisgICAgICAgICAgICAgICAgZGlkPWRpZAorICAgICAg ICAgICAgKQorCisgICAgICAgICAgICBzdGF0dXMsIHJfc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVf ZGljdChzcWwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJl dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cl9zZXQpCisKKyAgICAgICAgICAg IGZvciByb3cgaW4gcl9zZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgICAgICByZXR1cm4ganNvbmlm eSgKKyAgICAgICAgICAgICAgICAgICAgbm9kZT1zZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93 c2VyX25vZGUoCisgICAgICAgICAgICAgICAgICAgICAgICByb3dbJ29pZCddLAorICAgICAgICAg ICAgICAgICAgICAgICAgZGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgcm93WyduYW1lJ10s CisgICAgICAgICAgICAgICAgICAgICAgICBpY29uPSdpY29uLXN1YnNjcmlwdGlvbicKKyAgICAg ICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhj ZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVsZXRl KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHN1YmlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAg VGhpcyBmdW5jdGlvbiB3aWxsIGRyb3AgdGhlIHN1YnNjcmlwdGlvbiBvYmplY3QKKworICAgICAg ICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNp ZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAgICBz dWJpZDogU3Vic2NyaXB0aW9uIElECisgICAgICAgICAgICBvbmx5X3NxbDoKKyAgICAgICAgIiIi CisgICAgICAgIGlmIHN1YmlkIGlzIE5vbmU6CisgICAgICAgICAgICBkYXRhID0gcmVxdWVzdC5m b3JtIGlmIHJlcXVlc3QuZm9ybSBlbHNlIGpzb24ubG9hZHMoCisgICAgICAgICAgICAgICAgcmVx dWVzdC5kYXRhLCBlbmNvZGluZz0ndXRmLTgnCisgICAgICAgICAgICApCisgICAgICAgIGVsc2U6 CisgICAgICAgICAgICBkYXRhID0geydpZHMnOiBbc3ViaWRdfQorCisgICAgICAgIGNhc2NhZGUg PSBzZWxmLl9jaGVja19jYXNjYWRlX29wZXJhdGlvbigpCisKKyAgICAgICAgdHJ5OgorICAgICAg ICAgICAgZm9yIHN1YmlkIGluIGRhdGFbJ2lkcyddOgorICAgICAgICAgICAgICAgICMgR2V0IG5h bWUgZm9yIHN1YnNjcmlwdGlvbiBmcm9tIHN1YmlkCisgICAgICAgICAgICAgICAgc3FsID0gcmVu ZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLCBzZWxmLl9ERUxFVEVfU1FMXSksCisgICAgICAgICAgICAgICAgICAgIHN1YmlkPXN1 YmlkLCBjb25uPXNlbGYuY29ubgorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICBz dGF0dXMsIHN1Ym5hbWUgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQorCisgICAgICAg ICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVy bmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdWJuYW1lKQorCisgICAgICAgICAgICAgICAgIyBk cm9wIHN1YnNjcmlwdGlvbgorICAgICAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgK KyAgICAgICAgICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgc2VsZi5f REVMRVRFX1NRTF0pLAorICAgICAgICAgICAgICAgICAgICBzdWJuYW1lPXN1Ym5hbWUsIGNhc2Nh ZGU9Y2FzY2FkZSwgY29ubj1zZWxmLmNvbm4KKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAg ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihzcWwpCisgICAg ICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIHJldHVybiBt YWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAgICAgICAg ICAgICAgIGluZm89Z2V0dGV4dCgiU3Vic2NyaXB0aW9uIGRyb3BwZWQiKQorICAgICAgICAgICAg KQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNv bmRpdGlvbgorICAgIGRlZiBtc3FsKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHN1YmlkPU5vbmUpOgor ICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHJldHVybiBtb2Rp ZmllZCBTUUwgZm9yIHRoZSBzZWxlY3RlZAorICAgICAgICBzdWJzY3JpcHRpb24gbm9kZS4KKwor ICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAg ICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAg ICAgICBzdWJpZDogU3Vic2NyaXB0aW9uIElECisgICAgICAgICIiIgorICAgICAgICBkYXRhID0g e30KKyAgICAgICAgZm9yIGssIHYgaW4gcmVxdWVzdC5hcmdzLml0ZW1zKCk6CisgICAgICAgICAg ICB0cnk6CisgICAgICAgICAgICAgICAgIyBjb21tZW50cyBzaG91bGQgYmUgdGFrZW4gYXMgaXMg YmVjYXVzZSBpZiB1c2VyIGVudGVycyBhCisgICAgICAgICAgICAgICAgIyBqc29uIGNvbW1lbnQg aXQgaXMgcGFyc2VkIGJ5IGxvYWRzIHdoaWNoIHNob3VsZCBub3QgaGFwcGVuCisgICAgICAgICAg ICAgICAgaWYgayBpbiAoJ2Rlc2NyaXB0aW9uJywpOgorICAgICAgICAgICAgICAgICAgICBkYXRh W2tdID0gdgorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGRhdGFb a10gPSBqc29uLmxvYWRzKHYsIGVuY29kaW5nPSd1dGYtOCcpCisgICAgICAgICAgICBleGNlcHQg VmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICBkYXRhW2tdID0gdgorICAgICAgICB0cnk6Cisg ICAgICAgICAgICBzcWwsIG5hbWUgPSBzZWxmLmdldF9zcWwoZGF0YSwgc3ViaWQpCisgICAgICAg ICAgICAjIE1vc3QgcHJvYmFibHkgdGhpcyBpcyBkdWUgdG8gZXJyb3IKKyAgICAgICAgICAgIGlm IG5vdCBpc2luc3RhbmNlKHNxbCwgc3RyKToKKyAgICAgICAgICAgICAgICByZXR1cm4gc3FsCisg ICAgICAgICAgICBpZiBzcWwgPT0gJyc6CisgICAgICAgICAgICAgICAgc3FsID0gIi0tbW9kaWZp ZWQgU1FMIgorCisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAg ICAgICAgICAgIGRhdGE9c3FsLAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAg ICAgICkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBkZWYgZ2V0X2Rl dGFpbHMoc2VsZiwgZGF0YSwgb2xkX2RhdGEpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBm dW5jdGlvbiByZXR1cm5zIHRoZSByZXF1aXJlZCBkYXRhIHRvIGNyZWF0ZSBzdWJzY3JpcHRpb24K KyAgICAgICAgOnBhcmFtIGRhdGE6CisgICAgICAgIDpyZXR1cm46CisKKyAgICAgICAgIiIiCisg ICAgICAgIHJlcXVpcmVkX2FyZ3MgPSBbJ25hbWUnXQorCisgICAgICAgIHJlcXVpcmVkX2Nvbm5l Y3Rpb25fYXJncyA9IFsnaG9zdCcsICdwb3J0JywgJ3VzZXJuYW1lJywgJ2RiJywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzZXJ2aWNlJywgJ3Bhc3NmaWxlJ10KKyAgICAg ICAgZm9yIGFyZyBpbiByZXF1aXJlZF9hcmdzOgorICAgICAgICAgICAgaWYgYXJnIG5vdCBpbiBk YXRhIGFuZCBhcmcgaW4gb2xkX2RhdGE6CisgICAgICAgICAgICAgICAgZGF0YVthcmddID0gb2xk X2RhdGFbYXJnXQorCisgICAgICAgIGZvciBhcmcgaW4gcmVxdWlyZWRfY29ubmVjdGlvbl9hcmdz OgorICAgICAgICAgICAgaWYgYXJnIG5vdCBpbiBkYXRhIGFuZCBhcmcgaW4gb2xkX2RhdGE6Cisg ICAgICAgICAgICAgICAgZGF0YVthcmddID0gb2xkX2RhdGFbYXJnXQorCisgICAgICAgIHJldHVy biBkYXRhCisKKyAgICBkZWYgZ2V0X3NxbChzZWxmLCBkYXRhLCBzdWJpZD1Ob25lKToKKyAgICAg ICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBzcWwgZnJvbSBtb2Rl bCBkYXRhLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBkYXRhOiBDb250YWlucyB0aGUg ZGF0YSBvZiB0aGUgc2VsZWN0ZWQgc3Vic2NyaXB0aW9uIG5vZGUuCisgICAgICAgICAgICBzdWJp ZDogU3Vic2NyaXB0aW9uIElECisgICAgICAgICIiIgorCisgICAgICAgIHJlcXVpcmVkX2FyZ3Mg PSBbJ25hbWUnXQorCisgICAgICAgIHJlcXVpcmVkX2Nvbm5lY3Rpb25fYXJncyA9IFsnaG9zdCcs ICdwb3J0JywgJ3VzZXJuYW1lJywgJ2RiJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICdzZXJ2aWNlJywgJ3Bhc3NmaWxlJ10KKworICAgICAgICBpZiBzdWJpZCBpcyBub3Qg Tm9uZToKKyAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAg ICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCBzZWxmLl9QUk9QRVJUSUVTX1NRTF0pLAor ICAgICAgICAgICAgICAgIHN1YmlkPXN1YmlkCisgICAgICAgICAgICApCisgICAgICAgICAgICBz dGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorICAgICAgICAgICAgaWYg bm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgor ICAgICAgICAgICAgICAgIHJldHVybiBnb25lKHNlbGYuX05PVF9GT1VORF9QVUJfSU5GT1JNQVRJ T04pCisKKyAgICAgICAgICAgIG9sZF9kYXRhID0gcmVzWydyb3dzJ11bMF0KKyAgICAgICAgICAg IGZvciBhcmcgaW4gcmVxdWlyZWRfYXJnczoKKyAgICAgICAgICAgICAgICBpZiBhcmcgbm90IGlu IGRhdGE6CisgICAgICAgICAgICAgICAgICAgIGRhdGFbYXJnXSA9IG9sZF9kYXRhW2FyZ10KKwor ICAgICAgICAgICAgZm9yIGFyZyBpbiByZXF1aXJlZF9jb25uZWN0aW9uX2FyZ3M6CisgICAgICAg ICAgICAgICAgaWYgYXJnIGluIGRhdGE6CisgICAgICAgICAgICAgICAgICAgIG9sZF9kYXRhW2Fy Z10gPSBkYXRhW2FyZ10KKworICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAg ICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsIHNlbGYuX1VQREFURV9T UUxdKSwKKyAgICAgICAgICAgICAgICBkYXRhPWRhdGEsIG9fZGF0YT1vbGRfZGF0YSwgY29ubj1z ZWxmLmNvbm4KKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHJldHVybiBzcWwuc3RyaXAoJ1xu JyksIGRhdGFbJ25hbWUnXSBpZiAnbmFtZScgaW4gZGF0YSBcCisgICAgICAgICAgICAgICAgZWxz ZSBvbGRfZGF0YVsnbmFtZSddCisgICAgICAgIGVsc2U6CisKKyAgICAgICAgICAgIHNxbCA9IHJl bmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9DUkVBVEVfU1FMXSksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1kYXRhLCBjb25uPXNlbGYuY29ubikK KyAgICAgICAgICAgIHJldHVybiBzcWwuc3RyaXAoJ1xuJyksIGRhdGFbJ25hbWUnXQorCisgICAg ZGVmIGdldF9jb25uZWN0aW9uKHNlbGYsIGNvbm5lY3Rpb25fZGV0YWlscyk6CisKKyAgICAgICAg cGFzc2ZpbGUgPSBcCisgICAgICAgICAgICBjb25uZWN0aW9uX2RldGFpbHNbJ3Bhc3NmaWxlJ10g aWYgJ3Bhc3NmaWxlJyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW4gY29ubmVjdGlvbl9kZXRhaWxzIGFuZCBcCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbl9kZXRhaWxzWworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFzc2ZpbGUnXSAhPSAnJyBl bHNlIE5vbmUKKworICAgICAgICBzZXJ2aWNlID0gXAorICAgICAgICAgICAgY29ubmVjdGlvbl9k ZXRhaWxzWydzZXJ2aWNlJ10gaWYgJ3NlcnZpY2UnIGluIGNvbm5lY3Rpb25fZGV0YWlscyBcCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgY29ubmVjdGlv bl9kZXRhaWxzWydzZXJ2aWNlJ11cCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAhPSAnJyBlbHNlIE5vbmUKKyAgICAgICAgY29ubiA9IHBzeWNvcGcyLmNvbm5l Y3QoCisgICAgICAgICAgICBob3N0PWNvbm5lY3Rpb25fZGV0YWlsc1snaG9zdCddLAorICAgICAg ICAgICAgZGF0YWJhc2U9Y29ubmVjdGlvbl9kZXRhaWxzWydkYiddLAorICAgICAgICAgICAgdXNl cj1jb25uZWN0aW9uX2RldGFpbHNbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICBwYXNzd29yZD1j b25uZWN0aW9uX2RldGFpbHNbJ3Bhc3N3b3JkJ10sCisgICAgICAgICAgICBwb3J0PWNvbm5lY3Rp b25fZGV0YWlsc1sncG9ydCddLAorICAgICAgICAgICAgcGFzc2ZpbGU9Z2V0X2NvbXBsZXRlX2Zp bGVfcGF0aChwYXNzZmlsZSksCisgICAgICAgICAgICBzZXJ2aWNlPXNlcnZpY2UKKyAgICAgICAg KQorICAgICAgICAjIGNyZWF0ZSBhIGN1cnNvcgorICAgICAgICBjdXIgPSBjb25uLmN1cnNvcigp CisgICAgICAgIGN1ci5leGVjdXRlKCdTRUxFQ1QgcHVibmFtZSBmcm9tIHBnX3B1YmxpY2F0aW9u JykKKworICAgICAgICBwdWJsaWNhdGlvbnMgPSBjdXIuZmV0Y2hhbGwoKQorICAgICAgICAjIENs b3NlIHRoZSBjb25uZWN0aW9uCisgICAgICAgIGNvbm4uY2xvc2UoKQorCisgICAgICAgIHJldHVy biBwdWJsaWNhdGlvbnMKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZ2V0X3B1 YmxpY2F0aW9ucyhzZWxmLCBnaWQsIHNpZCwgZGlkLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAg ICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBwdWJsaWNhdGlvbiBsaXN0 CisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAg ICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAg ICAgICAiIiIKKworICAgICAgICB1cmxfcGFyYW1zID0gTm9uZQorICAgICAgICBpZiByZXF1ZXN0 LmFyZ3M6CisgICAgICAgICAgICB1cmxfcGFyYW1zID0ge2s6IHYgZm9yIGssIHYgaW4gcmVxdWVz dC5hcmdzLml0ZW1zKCl9CisKKyAgICAgICAgaWYgJ29pZCcgaW4gdXJsX3BhcmFtczoKKyAgICAg ICAgICAgIHN0YXR1cywgcGFyYW1zID0gc2VsZi5fZmV0Y2hfcHJvcGVydGllcyhkaWQsIHVybF9w YXJhbXNbJ29pZCddKQorICAgICAgICAgICAgcGFyYW1zWydwYXNzd29yZCddID0gdXJsX3BhcmFt c1sncGFzc3dvcmQnXQorICAgICAgICAgICAgdXJsX3BhcmFtcyA9IHBhcmFtcworCisgICAgICAg IHJlcyA9IHNlbGYuZ2V0X2Nvbm5lY3Rpb24odXJsX3BhcmFtcykKKworICAgICAgICByZXN1bHQg PSBbXQorICAgICAgICBmb3IgcHViIGluIHJlczoKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQo eworICAgICAgICAgICAgICAgICJ2YWx1ZSI6IHB1YlswXSwKKyAgICAgICAgICAgICAgICAibGFi ZWwiOiBwdWJbMF0KKyAgICAgICAgICAgIH0pCisKKyAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9y ZXNwb25zZSgKKyAgICAgICAgICAgIGRhdGE9cmVzdWx0LAorICAgICAgICAgICAgc3RhdHVzPTIw MAorICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHNxbChzZWxm LCBnaWQsIHNpZCwgZGlkLCBzdWJpZCwganNvbl9yZXNwPVRydWUpOgorICAgICAgICAiIiIKKyAg ICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlIHNxbCB0byBzaG93IGluIHRoZSBzcWwg cGFuZSBmb3IgdGhlCisgICAgICAgIHNlbGVjdGVkIHB1YmxpY2F0aW9uIG5vZGUuCisKKyAgICAg ICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBz aWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgICAg c3ViaWQ6IFB1YmxpY2F0aW9uIElECisgICAgICAgICAgICBqc29uX3Jlc3A6CisgICAgICAgICIi IgorICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLCBzZWxmLl9QUk9QRVJUSUVTX1NRTF0pLAorICAgICAgICAgICAg c3ViaWQ9c3ViaWQKKyAgICAgICAgKQorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5l eGVjdXRlX2RpY3Qoc3FsKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgaWYgbGVu KHJlc1sncm93cyddKSA9PSAwOgorICAgICAgICAgICAgcmV0dXJuIGdvbmUoc2VsZi5fTk9UX0ZP VU5EX1BVQl9JTkZPUk1BVElPTikKKworICAgICAgICAjIE1ha2luZyBjb3B5IG9mIG91dHB1dCBm b3IgZnV0dXJlIHVzZQorICAgICAgICBvbGRfZGF0YSA9IGRpY3QocmVzWydyb3dzJ11bMF0pCisg ICAgICAgIGlmIG9sZF9kYXRhWydzbG90X25hbWUnXSBpcyBOb25lIGFuZCAnY3JlYXRlX3Nsb3Qn IG5vdCBpbiBvbGRfZGF0YToKKyAgICAgICAgICAgIG9sZF9kYXRhWydjcmVhdGVfc2xvdCddID0g RmFsc2UKKworICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVt cGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm Ll9DUkVBVEVfU1FMXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPW9sZF9k YXRhLCBjb25uPXNlbGYuY29ubikKKyAgICAgICAgc3FsICs9ICJcblxuIgorCisgICAgICAgIHNx bF9oZWFkZXIgPSAiLS0gU3Vic2NyaXB0aW9uIDoge307Ii5mb3JtYXQob2xkX2RhdGFbJ25hbWUn XSkKKyAgICAgICAgc3FsX2hlYWRlciArPSAiXG4iCisKKyAgICAgICAgc3FsX2hlYWRlciArPSAi LS0gRFJPUCBTVUJTQ1JJUFRJT04ge307Ii5mb3JtYXQob2xkX2RhdGFbJ25hbWUnXSkKKworICAg ICAgICBzcWxfaGVhZGVyICs9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICIvIi5qb2lu KFtzZWxmLnRlbXBsYXRlX3BhdGgsIHNlbGYuX0RFTEVURV9TUUxdKSwKKyAgICAgICAgICAgIHNu YW1lPW9sZF9kYXRhWyduYW1lJ10sICkKKworICAgICAgICBzcWxfaGVhZGVyICs9ICJcbiIKKwor ICAgICAgICBzcWwgPSBzcWxfaGVhZGVyICsgc3FsCisKKyAgICAgICAgaWYgbm90IGpzb25fcmVz cDoKKyAgICAgICAgICAgIHJldHVybiBzcWwKKworICAgICAgICByZXR1cm4gYWpheF9yZXNwb25z ZShyZXNwb25zZT1zcWwpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGRlcGVu ZGVudHMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc3ViaWQpOgorICAgICAgICAiIiIKKyAgICAgICAg VGhpcyBmdW5jdGlvbiBnZXRzIHRoZSBkZXBlbmRlbnRzIGFuZCByZXR1cm5zIGFuIGFqYXggcmVz cG9uc2UKKyAgICAgICAgZm9yIHRoZSBzdWJzY3JpcHRpb24gbm9kZS4KKworICAgICAgICBBcmdz OgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2Vy dmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAgICBzdWJpZDog U3Vic2NyaXB0aW9uIElECisgICAgICAgICIiIgorICAgICAgICBkZXBlbmRlbnRzX3Jlc3VsdCA9 IHNlbGYuZ2V0X2RlcGVuZGVudHMoc2VsZi5jb25uLCBzdWJpZCkKKyAgICAgICAgcmV0dXJuIGFq YXhfcmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25zZT1kZXBlbmRlbnRzX3Jlc3VsdCwKKyAg ICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlv bgorICAgIGRlZiBkZXBlbmRlbmNpZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc3ViaWQpOgorICAg ICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBnZXRzIHRoZSBkZXBlbmRlbmNpZXMgYW5k IHJldHVybnMgYW4gYWpheCByZXNwb25zZQorICAgICAgICBmb3IgdGhlIHN1YnNjcmlwdGlvbiBu b2RlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAor ICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQK KyAgICAgICAgICAgIHN1YmlkOiBTdWJzY3JpcHRpb24gSUQKKyAgICAgICAgIiIiCisgICAgICAg IGRlcGVuZGVuY2llc19yZXN1bHQgPSBzZWxmLmdldF9kZXBlbmRlbmNpZXMoc2VsZi5jb25uLCBz dWJpZCkKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25z ZT1kZXBlbmRlbmNpZXNfcmVzdWx0LAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAp CisKKworU3Vic2NyaXB0aW9uVmlldy5yZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50KQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3N1YnNjcmlwdGlvbnMvc3RhdGljL2ltZy9jb2xsLXB1YmxpY2F0aW9uLnN2ZyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRp b25zL3N0YXRpYy9pbWcvY29sbC1wdWJsaWNhdGlvbi5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwLi5jYzk0NjkxOWIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy9z dGF0aWMvaW1nL2NvbGwtcHVibGljYXRpb24uc3ZnCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZl cnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxs dXN0cmF0b3IgMjQuMC4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBC dWlsZCAwKSAgLS0+Cis8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRw Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5 OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgorCSB2aWV3Qm94PSIwIDAgMTYgMTYiIHN0eWxlPSJl bmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDE2IDE2OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+Cis8 c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCS5zdDB7ZmlsbDojRERFMUYwO3N0cm9rZTojNEI1RkFE O3N0cm9rZS13aWR0aDowLjY1O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpy b3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9CisJLnN0MXtmaWxsOiM0QjVGQUQ7fQorCS5zdDJ7 ZmlsbDpub25lO3N0cm9rZTojNEI1RkFEO3N0cm9rZS13aWR0aDowLjY1O3N0cm9rZS1saW5lY2Fw OnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9Cis8L3N0 eWxlPgorPGc+CisJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEwLDEzYy0yLDItNS4xLDItNy4xLDBz LTItNS4xLDAtNy4xQzQuNSw3LjUsOC41LDExLjUsMTAsMTN6Ii8+Cis8L2c+Cis8Zz4KKwk8cGF0 aCBjbGFzcz0ic3QwIiBkPSJNMTEuOCwxMS4zYy0yLDItNS4xLDItNy4xLDBzLTItNS4xLDAtNy4x QzYuMiw1LjcsMTAuMiw5LjgsMTEuOCwxMS4zeiIvPgorPC9nPgorPHBhdGggY2xhc3M9InN0MSIg ZD0iTTguNyw3LjhsMC44LTAuN2MwLjEsMC4xLDAuMywwLjEsMC40LDAuMWMwLjYsMCwxLTAuNCwx LTFzLTAuNC0xLTEtMXMtMSwwLjQtMSwxYzAsMC4xLDAsMC4zLDAuMSwwLjRMOC4yLDcuMworCUw4 LjcsNy44eiIvPgorPGc+CisJPHBhdGggY2xhc3M9InN0MiIgZD0iTTEwLjUsMS42YzIuMiwwLDQs MS44LDQsNCIvPgorCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0xMC42LDMuNmMxLjEsMCwyLDAuOSwy LDIiLz4KKzwvZz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvc3RhdGljL2ltZy9jb2xs LXN1YnNjcmlwdGlvbi5zdmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy9zdGF0aWMvaW1nL2NvbGwtc3Vic2NyaXB0aW9u LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmQxNGFkZmQzOQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3N0YXRpYy9pbWcvY29sbC1zdWJzY3JpcHRpb24uc3Zn CkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+ Cis8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjQuMC4xLCBTVkcgRXhwb3J0IFBs dWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+Cis8c3ZnIHZlcnNpb249IjEu MSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6 eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgorCSB2 aWV3Qm94PSIwIDAgMTYgMTYiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDE2IDE2 OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCS5zdDB7 ZmlsbDojRkJFRURGO3N0cm9rZTojRTU4RTI2O3N0cm9rZS13aWR0aDowLjY1O3N0cm9rZS1saW5l Y2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9CisJ LnN0MXtmaWxsOiNFNThFMjY7fQorCS5zdDJ7ZmlsbDpub25lO3N0cm9rZTojRTU4RTI2O3N0cm9r ZS13aWR0aDowLjY1O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtz dHJva2UtbWl0ZXJsaW1pdDoxMDt9Cis8L3N0eWxlPgorPGc+CisJPGc+CisJCTxnPgorCQkJPHBh dGggY2xhc3M9InN0MCIgZD0iTTEyLjksNS43YzIsMiwyLDUuMSwwLDcuMXMtNS4xLDItNy4xLDBD Ny4zLDExLjMsMTEuNCw3LjIsMTIuOSw1Ljd6Ii8+CisJCTwvZz4KKwk8L2c+CisJPGc+CisJCTxn PgorCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTExLjQsNC4yYzIsMiwyLDUuMSwwLDcuMXMtNS4x LDItNy4xLDBDNS44LDkuOCw5LjksNS43LDExLjQsNC4yeiIvPgorCQk8L2c+CisJCTxnPgorCQkJ PHBhdGggY2xhc3M9InN0MSIgZD0iTTcuOCw3LjNMNy4xLDYuNmMwLjEtMC4xLDAuMS0wLjMsMC4x LTAuNGMwLTAuNi0wLjQtMS0xLTFzLTEsMC40LTEsMXMwLjQsMSwxLDFjMC4xLDAsMC4zLDAsMC40 LTAuMQorCQkJCWwwLjcsMC43Ii8+CisJCQk8Zz4KKwkJCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJN NS42LDEuN2MwLDIuMi0xLjgsNC00LDQiLz4KKwkJCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMy43 LDEuOGMwLDEuMS0wLjksMi0yLDIiLz4KKwkJCTwvZz4KKwkJPC9nPgorCTwvZz4KKzwvZz4KKzwv c3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvc3RhdGljL2ltZy9wdWJsaWNhdGlvbi5zdmcgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2Ny aXB0aW9ucy9zdGF0aWMvaW1nL3B1YmxpY2F0aW9uLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAuLjNiNTgyY2Y1MQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3N0 YXRpYy9pbWcvcHVibGljYXRpb24uc3ZnCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249 IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0 b3IgMjMuMC42LCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAw KSAgLS0+Cis8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3 LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxp bmsiIHg9IjBweCIgeT0iMHB4IgorCSB2aWV3Qm94PSIwIDAgMTYgMTYiIHN0eWxlPSJlbmFibGUt YmFja2dyb3VuZDpuZXcgMCAwIDE2IDE2OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+Cis8c3R5bGUg dHlwZT0idGV4dC9jc3MiPgorCS5zdDB7ZmlsbDojRERFMUYwO3N0cm9rZTojNEI1RkFEO3N0cm9r ZS13aWR0aDowLjY1O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtz dHJva2UtbWl0ZXJsaW1pdDoxMDt9CisJLnN0MXtmaWxsOiM0QjVGQUQ7fQorCS5zdDJ7ZmlsbDpu b25lO3N0cm9rZTojNEI1RkFEO3N0cm9rZS13aWR0aDowLjY1O3N0cm9rZS1saW5lY2FwOnJvdW5k O3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9Cis8L3N0eWxlPgor PGc+CisJPGc+CisJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMSwxMmMtMiwyLTUuMSwyLTcuMSww cy0yLTUuMSwwLTcuMUM1LjQsNi40LDkuNSwxMC41LDExLDEyeiIvPgorCTwvZz4KKwk8Zz4KKwkJ PHBhdGggY2xhc3M9InN0MSIgZD0iTTcuOSw4LjZsMC43LTAuN0M4LjcsOCw4LjksOCw5LDhjMC42 LDAsMS0wLjQsMS0xUzkuNiw2LDksNlM4LDYuNCw4LDdjMCwwLjEsMCwwLjMsMC4xLDAuNEw3LjQs OC4xIi8+CisJCTxnPgorCQkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTkuNiwyLjVjMi4yLDAsNCwx LjgsNCw0Ii8+CisJCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNOS43LDQuNGMxLjEsMCwyLDAuOSwy LDIiLz4KKwkJPC9nPgorCTwvZz4KKzwvZz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMv c3RhdGljL2ltZy9zdWJzY3JpcHRpb24uc3ZnIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvc3RhdGljL2ltZy9zdWJzY3Jp cHRpb24uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNjNhMTUzYzZk Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvc3RhdGljL2ltZy9zdWJzY3JpcHRpb24uc3Zn CkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+ Cis8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjMuMC42LCBTVkcgRXhwb3J0IFBs dWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+Cis8c3ZnIHZlcnNpb249IjEu MSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6 eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgorCSB2 aWV3Qm94PSIwIDAgMTYgMTYiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDE2IDE2 OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCS5zdDB7 ZmlsbDojRkJFRURGO3N0cm9rZTojRTU4RTI2O3N0cm9rZS13aWR0aDowLjY1O3N0cm9rZS1saW5l Y2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9CisJ LnN0MXtmaWxsOiNFNThFMjY7fQorCS5zdDJ7ZmlsbDpub25lO3N0cm9rZTojRTU4RTI2O3N0cm9r ZS13aWR0aDowLjY1O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtz dHJva2UtbWl0ZXJsaW1pdDoxMDt9Cis8L3N0eWxlPgorPGc+CisJPGc+CisJCTxwYXRoIGNsYXNz PSJzdDAiIGQ9Ik0xMi4yLDVjMiwyLDIsNS4xLDAsNy4xcy01LjEsMi03LjEsMEM2LjYsMTAuNiwx MC43LDYuNSwxMi4yLDV6Ii8+CisJPC9nPgorCTxnPgorCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJN OC42LDguMUw3LjksNy40QzgsNy4zLDgsNy4xLDgsN2MwLTAuNi0wLjQtMS0xLTFTNiw2LjQsNiw3 czAuNCwxLDEsMWMwLjEsMCwwLjMsMCwwLjQtMC4xbDAuNywwLjciLz4KKwkJPGc+CisJCQk8cGF0 aCBjbGFzcz0ic3QyIiBkPSJNNi40LDIuNWMwLDIuMi0xLjgsNC00LDQiLz4KKwkJCTxwYXRoIGNs YXNzPSJzdDIiIGQ9Ik00LjUsMi42YzAsMS4xLTAuOSwyLTIsMiIvPgorCQk8L2c+CisJPC9nPgor PC9nPgorPC9zdmc+CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy9zdGF0aWMvanMvc3Vic2NyaXB0aW9u LmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3N1YnNjcmlwdGlvbnMvc3RhdGljL2pzL3N1YnNjcmlwdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAuLjRjNDdkMjE4NgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRp b25zL3N0YXRpYy9qcy9zdWJzY3JpcHRpb24uanMKQEAgLTAsMCArMSwzOTggQEAKKy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8v CisvLyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisvLworLy8gQ29weXJpZ2h0IChDKSAy MDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorLy8gVGhpcyBzb2Z0d2Fy ZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisvLworLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKwor ZGVmaW5lKCdwZ2FkbWluLm5vZGUuc3Vic2NyaXB0aW9uJywgWworICAnc291cmNlcy9nZXR0ZXh0 JywgJ3NvdXJjZXMvdXJsX2ZvcicsICdqcXVlcnknLCAndW5kZXJzY29yZScsCisgICdzb3VyY2Vz L3BnYWRtaW4nLCAncGdhZG1pbi5icm93c2VyJywgJ3BnYWRtaW4uYmFja2Zvcm0nLAorICAnc291 cmNlcy9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9tb2RlbF92YWxpZGF0aW9uJywgJ3Bn YWRtaW4uYWxlcnRpZnlqcycsICdwZ2FkbWluLmJyb3dzZXIuY29sbGVjdGlvbicsCitdLCBmdW5j dGlvbihnZXR0ZXh0LCB1cmxfZm9yLCAkLCBfLCBwZ0FkbWluLCBwZ0Jyb3dzZXIsIEJhY2tmb3Jt LCBtb2RlbFZhbGlkYXRpb24sIEFsZXJ0aWZ5KSB7CisKKyAgLy8gRXh0ZW5kIHRoZSBicm93c2Vy J3MgY29sbGVjdGlvbiBjbGFzcyBmb3Igc3Vic2NyaXB0aW9ucyBjb2xsZWN0aW9uCisgIGlmICgh cGdCcm93c2VyLk5vZGVzWydjb2xsLXN1YnNjcmlwdGlvbiddKSB7CisgICAgcGdCcm93c2VyLk5v ZGVzWydjb2xsLXN1YnNjcmlwdGlvbiddID0KKyAgICAgIHBnQnJvd3Nlci5Db2xsZWN0aW9uLmV4 dGVuZCh7CisgICAgICAgIG5vZGU6ICdzdWJzY3JpcHRpb24nLAorICAgICAgICBsYWJlbDogZ2V0 dGV4dCgnU3Vic2NyaXB0aW9ucycpLAorICAgICAgICB0eXBlOiAnY29sbC1zdWJzY3JpcHRpb24n LAorICAgICAgICBjb2x1bW5zOiBbJ25hbWUnLCAnc3Vib3duZXInLCAncHViJywgJ2VuYWJsZWQn XSwKKyAgICAgIH0pOworICB9CisKKyAgLy8gRXh0ZW5kIHRoZSBicm93c2VyJ3Mgbm9kZSBjbGFz cyBmb3Igc3Vic2NyaXB0aW9uIG5vZGUKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ3N1YnNjcmlw dGlvbiddKSB7CisgICAgcGdCcm93c2VyLk5vZGVzWydzdWJzY3JpcHRpb24nXSA9IHBnQnJvd3Nl ci5Ob2RlLmV4dGVuZCh7CisgICAgICBwYXJlbnRfdHlwZTogJ2RhdGFiYXNlJywKKyAgICAgIHR5 cGU6ICdzdWJzY3JpcHRpb24nLAorICAgICAgc3FsQWx0ZXJIZWxwOiAnc3FsLWFsdGVyc3Vic2Ny aXB0aW9uLmh0bWwnLAorICAgICAgc3FsQ3JlYXRlSGVscDogJ3NxbC1jcmVhdGVzdWJzY3JpcHRp b24uaHRtbCcsCisgICAgICBkaWFsb2dIZWxwOiB1cmxfZm9yKCdoZWxwLnN0YXRpYycsIHsnZmls ZW5hbWUnOiAnc3Vic2NyaXB0aW9uX2RpYWxvZy5odG1sJ30pLAorICAgICAgbGFiZWw6IGdldHRl eHQoJ1N1YnNjcmlwdGlvbicpLAorICAgICAgaGFzU1FMOiAgdHJ1ZSwKKyAgICAgIGNhbkRyb3A6 IHRydWUsCisgICAgICBjYW5Ecm9wQ2FzY2FkZTogdHJ1ZSwKKyAgICAgIGhhc0RlcGVuZHM6IHRy dWUsCisgICAgICB3aWR0aDogJzUxMHB4JywKKyAgICAgIEluaXQ6IGZ1bmN0aW9uKCkgeworCisg ICAgICAgIC8vIEF2b2lkIG11bHRpcGxlIHJlZ2lzdHJhdGlvbiBvZiBtZW51cworICAgICAgICBp ZiAodGhpcy5pbml0aWFsaXplZCkKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5p bml0aWFsaXplZCA9IHRydWU7CisKKworICAgICAgICAvLyBBZGQgY29udGV4dCBtZW51cyBmb3Ig c3Vic2NyaXB0aW9uCisgICAgICAgIHBnQnJvd3Nlci5hZGRfbWVudXMoW3sKKyAgICAgICAgICBu YW1lOiAnY3JlYXRlX3N1YnNjcmlwdGlvbl9vbl9kYXRhYmFzZScsIG5vZGU6ICdkYXRhYmFzZScs IG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10s IGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdj cmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6IGdldHRleHQoJ1N1YnNjcmlwdGlvbi4uLicpLAor ICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1zdWJzY3JpcHRpb24nLCBkYXRhOiB7YWN0 aW9uOiAnY3JlYXRlJ30sCisgICAgICAgICAgZW5hYmxlOiBwZ0Jyb3dzZXIuTm9kZXNbJ2RhdGFi YXNlJ10uY2FuQ3JlYXRlLAorICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAnY3JlYXRlX3N1 YnNjcmlwdGlvbl9vbl9jb2xsJywgbm9kZTogJ2NvbGwtc3Vic2NyaXB0aW9uJywgbW9kdWxlOiB0 aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6 ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHBy aW9yaXR5OiA0LCBsYWJlbDogZ2V0dGV4dCgnU3Vic2NyaXB0aW9uLi4uJyksCisgICAgICAgICAg aWNvbjogJ3djVGFiSWNvbiBpY29uLXN1YnNjcmlwdGlvbicsIGRhdGE6IHthY3Rpb246ICdjcmVh dGUnfSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUnLAorICAgICAgICB9LHsKKyAgICAg ICAgICBuYW1lOiAnY3JlYXRlX3N1YnNjcmlwdGlvbicsIG5vZGU6ICdzdWJzY3JpcHRpb24nLCBt b2R1bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBj YWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3Jl YXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiBnZXR0ZXh0KCdTdWJzY3JpcHRpb24uLi4nKSwKKyAg ICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tc3Vic2NyaXB0aW9uJywgZGF0YToge2FjdGlv bjogJ2NyZWF0ZSd9LAorICAgICAgICAgIGVuYWJsZTogJ2NhbkNyZWF0ZScsCisgICAgICAgIH1d KTsKKyAgICAgIH0sCisgICAgICAvLyBEZWZpbmUgdGhlIG1vZGVsIGZvciBzdWJzY3JpcHRpb24g bm9kZQorICAgICAgbW9kZWw6IHBnQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7CisgICAgICAg IGlkQXR0cmlidXRlOiAnb2lkJywKKyAgICAgICAgZGVmYXVsdHM6IHsKKyAgICAgICAgICBuYW1l OiB1bmRlZmluZWQsCisgICAgICAgICAgc3Vib3duZXI6IHVuZGVmaW5lZCwKKyAgICAgICAgICBw dWJ0YWJsZTogdW5kZWZpbmVkLAorICAgICAgICAgIHB1YjpbXSwKKyAgICAgICAgICBlbmFibGVk OnRydWUsCisgICAgICAgICAgY3JlYXRlX3Nsb3Q6IHRydWUsCisgICAgICAgICAgY29weV9kYXRh OnVuZGVmaW5lZCwKKyAgICAgICAgICBjb25uZWN0OnRydWUsCisgICAgICAgICAgc3luYzonb2Zm JywKKyAgICAgICAgfSwKKworICAgICAgICAvLyBEZWZhdWx0IHZhbHVlcyEKKyAgICAgICAgaW5p dGlhbGl6ZTogZnVuY3Rpb24oYXR0cnMsIGFyZ3MpIHsKKyAgICAgICAgICB2YXIgaXNOZXcgPSAo Xy5zaXplKGF0dHJzKSA9PT0gMCk7CisgICAgICAgICAgaWYgKGlzTmV3KSB7CisgICAgICAgICAg ICB2YXIgdXNlckluZm8gPSBwZ0Jyb3dzZXIuc2VydmVySW5mb1thcmdzLm5vZGVfaW5mby5zZXJ2 ZXIuX2lkXS51c2VyOworCisgICAgICAgICAgICB0aGlzLnNldCh7J3N1Ym93bmVyJzogdXNlcklu Zm8ubmFtZX0sIHtzaWxlbnQ6IHRydWV9KTsKKyAgICAgICAgICB9CisgICAgICAgICAgcGdCcm93 c2VyLk5vZGUuTW9kZWwucHJvdG90eXBlLmluaXRpYWxpemUuYXBwbHkodGhpcywgYXJndW1lbnRz KTsKKyAgICAgICAgfSwKKworICAgICAgICAvLyBEZWZpbmUgdGhlIHNjaGVtYSBmb3IgdGhlIHN1 YnNjcmlwdGlvbiBub2RlCisgICAgICAgIHNjaGVtYTogW3sKKyAgICAgICAgICBpZDogJ25hbWUn LCBsYWJlbDogZ2V0dGV4dCgnTmFtZScpLCB0eXBlOiAndGV4dCcsCisgICAgICAgICAgbW9kZTog Wydwcm9wZXJ0aWVzJywgJ2NyZWF0ZScsICdlZGl0J10sCisgICAgICAgICAgdmlzaWJsZTogZnVu Y3Rpb24oKSB7CisgICAgICAgICAgICBpZighXy5pc1VuZGVmaW5lZCh0aGlzLm5vZGVfaW5mbykg JiYgIV8uaXNVbmRlZmluZWQodGhpcy5ub2RlX2luZm8uc2VydmVyKQorICAgICAgICAgICAgICAm JiAhXy5pc1VuZGVmaW5lZCh0aGlzLm5vZGVfaW5mby5zZXJ2ZXIudmVyc2lvbikgJiYKKyAgICAg ICAgICAgICAgICB0aGlzLm5vZGVfaW5mby5zZXJ2ZXIudmVyc2lvbiA+PSAxMDAwMDApIHsKKyAg ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1 cm4gZmFsc2U7CisgICAgICAgICAgfSwKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdvaWQn LCBsYWJlbDogZ2V0dGV4dCgnT0lEJyksIGNlbGw6ICdzdHJpbmcnLCBtb2RlOiBbJ3Byb3BlcnRp ZXMnXSwKKyAgICAgICAgICB0eXBlOiAndGV4dCcsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAg ICAgICAgICBpZDogJ3N1Ym93bmVyJywgbGFiZWw6IGdldHRleHQoJ093bmVyJyksIHR5cGU6ICd0 ZXh0JywKKyAgICAgICAgICBjb250cm9sOiBCYWNrZm9ybS5Ob2RlTGlzdEJ5TmFtZUNvbnRyb2ws IG5vZGU6ICdyb2xlJywKKyAgICAgICAgICBtb2RlOiBbJ2VkaXQnLCAncHJvcGVydGllcycsICdj cmVhdGUnXSwgc2VsZWN0MjogeyBhbGxvd0NsZWFyOiBmYWxzZX0sCisgICAgICAgIH0sCisgICAg ICAgIHsKKyAgICAgICAgICBpZDogJ2hvc3QnLCBsYWJlbDogZ2V0dGV4dCgnSG9zdCBuYW1lL2Fk ZHJlc3MnKSwgdHlwZTogJ3RleHQnLCBncm91cDogZ2V0dGV4dCgnQ29ubmVjdGlvbicpLAorICAg ICAgICAgIG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0JywgJ2NyZWF0ZSddLGRpc2FibGVkOiAn aXNTaGFyZWQnLAorICAgICAgICAgIGNvbnRyb2w6IEJhY2tmb3JtLklucHV0Q29udHJvbC5leHRl bmQoeworICAgICAgICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICBC YWNrZm9ybS5JbnB1dENvbnRyb2wucHJvdG90eXBlLm9uQ2hhbmdlLmFwcGx5KHRoaXMsIGFyZ3Vt ZW50cyk7CisgICAgICAgICAgICAgIGlmICghdGhpcy5tb2RlbCB8fCAhdGhpcy5tb2RlbC5jaGFu Z2VkKSB7CisgICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5pbmZvcm1fdGV4dCA9IHVuZGVmaW5l ZDsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg IH0sCisgICAgICAgICAgfSksCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAncG9ydCcsIGxh YmVsOiBnZXR0ZXh0KCdQb3J0JyksIHR5cGU6ICdpbnQnLCBncm91cDogZ2V0dGV4dCgnQ29ubmVj dGlvbicpLAorICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0JywgJ2NyZWF0ZSdd LCBtaW46IDEsIG1heDogNjU1MzUsIGRpc2FibGVkOiAnaXNTaGFyZWQnLAorICAgICAgICAgIGNv bnRyb2w6IEJhY2tmb3JtLklucHV0Q29udHJvbC5leHRlbmQoeworICAgICAgICAgICAgb25DaGFu Z2U6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICBCYWNrZm9ybS5JbnB1dENvbnRyb2wucHJv dG90eXBlLm9uQ2hhbmdlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CisgICAgICAgICAgICAgIGlm ICghdGhpcy5tb2RlbCB8fCAhdGhpcy5tb2RlbC5jaGFuZ2VkKSB7CisgICAgICAgICAgICAgICAg dGhpcy5tb2RlbC5pbmZvcm1fdGV4dCA9IHVuZGVmaW5lZDsKKyAgICAgICAgICAgICAgICByZXR1 cm47CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgfSksCisgICAg ICAgIH0seworICAgICAgICAgIGlkOiAndXNlcm5hbWUnLCBsYWJlbDogZ2V0dGV4dCgnVXNlcm5h bWUnKSwgdHlwZTogJ3RleHQnLCBncm91cDogZ2V0dGV4dCgnQ29ubmVjdGlvbicpLAorICAgICAg ICAgIG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICAgIGNv bnRyb2w6IEJhY2tmb3JtLklucHV0Q29udHJvbC5leHRlbmQoeworICAgICAgICAgICAgb25DaGFu Z2U6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICBCYWNrZm9ybS5JbnB1dENvbnRyb2wucHJv dG90eXBlLm9uQ2hhbmdlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CisgICAgICAgICAgICAgIGlm ICghdGhpcy5tb2RlbCB8fCAhdGhpcy5tb2RlbC5jaGFuZ2VkKSB7CisgICAgICAgICAgICAgICAg dGhpcy5tb2RlbC5pbmZvcm1fdGV4dCA9IHVuZGVmaW5lZDsKKyAgICAgICAgICAgICAgICByZXR1 cm47CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgfSksCisgICAg ICAgIH0seworICAgICAgICAgIGlkOiAncGFzc3dvcmQnLCBsYWJlbDogZ2V0dGV4dCgnUGFzc3dv cmQnKSwgdHlwZTogJ3Bhc3N3b3JkJywgbWF4bGVuZ3RoOiBudWxsLAorICAgICAgICAgIGdyb3Vw OiBnZXR0ZXh0KCdDb25uZWN0aW9uJyksIGNvbnRyb2w6ICdpbnB1dCcsIG1vZGU6IFsnY3JlYXRl JywgJ2VkaXQnXSwgZGVwczogWydjb25uZWN0X25vdyddLAorICAgICAgICB9LHsKKyAgICAgICAg ICBpZDogJ2RiJywgbGFiZWw6IGdldHRleHQoJ01haW50ZW5hbmNlIGRhdGFiYXNlJyksIHR5cGU6 ICd0ZXh0JywgZ3JvdXA6IGdldHRleHQoJ0Nvbm5lY3Rpb24nKSwKKyAgICAgICAgICBtb2RlOiBb J3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwKKyAgICAgICAgfSx7CisgICAgICAgICAg aWQ6ICdzZXJ2aWNlJywgbGFiZWw6IGdldHRleHQoJ1NlcnZpY2UnKSwgdHlwZTogJ3RleHQnLAor ICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0JywgJ2NyZWF0ZSddLAorICAgICAg ICAgIGdyb3VwOiBnZXR0ZXh0KCdDb25uZWN0aW9uJyksCisgICAgICAgIH0sCisgICAgICAgIHsK KyAgICAgICAgICBpZDogJ3Bhc3NmaWxlJywgbGFiZWw6IGdldHRleHQoJ1Bhc3NmaWxlJyksIHR5 cGU6ICd0ZXh0JywgZ3JvdXA6IGdldHRleHQoJ0Nvbm5lY3Rpb24nKSwKKyAgICAgICAgICBtb2Rl OiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwKKyAgICAgICAgfSwKKyAgICAgICAg eworICAgICAgICAgIGlkOiAncHViJywgbGFiZWw6IGdldHRleHQoJ1B1YmxpY2F0aW9uJyksIHR5 cGU6ICd0ZXh0JywgZ3JvdXA6IGdldHRleHQoJ0Nvbm5lY3Rpb24nKSwKKyAgICAgICAgICBtb2Rl OiBbJ3Byb3BlcnRpZXMnXSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAn Y3VyX3B1YicsIGxhYmVsOiBnZXR0ZXh0KCdDdXJyZW50IHB1YmxpY2F0aW9uJyksIHR5cGU6ICd0 ZXh0JywgZ3JvdXA6IGdldHRleHQoJ0Nvbm5lY3Rpb24nKSwKKyAgICAgICAgICBtb2RlOiBbJ2Vk aXQnXSwgZGlzYWJsZWQ6dHJ1ZSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlk OiAncHViJywgbGFiZWw6IGdldHRleHQoJ1B1YmxpY2F0aW9uJyksIHR5cGU6ICdhcnJheScsIHNl bGVjdDI6IHsgYWxsb3dDbGVhcjogdHJ1ZSwgbXVsdGlwbGU6IHRydWUsIHdpZHRoOiAnOTElJ30s CisgICAgICAgICAgZ3JvdXA6IGdldHRleHQoJ0Nvbm5lY3Rpb24nKSwgbW9kZTogWydjcmVhdGUn LCAnZWRpdCddLGNvbnRyb2xzQ2xhc3NOYW1lOiAncGdhZG1pbi1jb250cm9scyBwZy1lbC1zbS0x MSBwZy1lbC0xMicsCisgICAgICAgICAgZGVwczogWydhbGxfdGFibGUnXSwKKyAgICAgICAgICBo ZWxwTWVzc2FnZTogZ2V0dGV4dCgnQ2xpY2tzIG9uIHRoZSBidXR0b24gdG8gZ2V0IFB1YmxpY2F0 aW9uJyksCisgICAgICAgICAgY29udHJvbDogQmFja2Zvcm0uU2VsZWN0MkNvbnRyb2wuZXh0ZW5k KHsKKyAgICAgICAgICAgIGRlZmF1bHRzOiBfLmV4dGVuZChCYWNrZm9ybS5TZWxlY3QyQ29udHJv bC5wcm90b3R5cGUuZGVmYXVsdHMsIHsKKyAgICAgICAgICAgICAgc2VsZWN0MjogeworICAgICAg ICAgICAgICAgIGFsbG93Q2xlYXI6IHRydWUsCisgICAgICAgICAgICAgICAgc2VsZWN0T25CbHVy OiB0cnVlLAorICAgICAgICAgICAgICAgIHRhZ3M6IHRydWUsCisgICAgICAgICAgICAgICAgcGxh Y2Vob2xkZXI6IGdldHRleHQoJ1NlbGVjdCBhbiBpdGVtLi4uJyksCisgICAgICAgICAgICAgICAg d2lkdGg6ICdzdHlsZScsCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9KSwKKyAgICAg ICAgICAgIHRlbXBsYXRlOiBfLnRlbXBsYXRlKFsKKyAgICAgICAgICAgICAgJzxsYWJlbCBjbGFz cz0iPCU9QmFja2Zvcm0uY29udHJvbExhYmVsQ2xhc3NOYW1lJT4iIGZvcj0iPCU9Y0lkJT4iPjwl PWxhYmVsJT48L2xhYmVsPicsCisgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSI8JT1CYWNrZm9y bS5jb250cm9sc0NsYXNzTmFtZSU+Ij4nLAorICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iaW5w dXQtZ3JvdXAiPicsCisgICAgICAgICAgICAgICcgPHNlbGVjdCB0aXRsZT0iPCU9bmFtZSU+IiBp ZD0iPCU9Y0lkJT4iIGNsYXNzPSI8JT1CYWNrZm9ybS5jb250cm9sQ2xhc3NOYW1lJT4gPCU9ZXh0 cmFDbGFzc2VzLmpvaW4oXCcgXCcpJT4iJywKKyAgICAgICAgICAgICAgJyAgbmFtZT0iPCU9bmFt ZSU+IiB2YWx1ZT0iPCUtdmFsdWUlPiIgPCU9ZGlzYWJsZWQgPyAiZGlzYWJsZWQiIDogIiIlPiA8 JT1yZWFkb25seSA/ICJkaXNhYmxlZCIgOiAiIiU+JywKKyAgICAgICAgICAgICAgJyAgPCU9cmVx dWlyZWQgPyAicmVxdWlyZWQiIDogIiIlPjwlPSBzZWxlY3QyLm11bHRpcGxlID8gIiBtdWx0aXBs ZT4iIDogIj4iICU+JywKKyAgICAgICAgICAgICAgJyAgPCU9c2VsZWN0Mi5maXJzdF9lbXB0eSA/ ICIgPG9wdGlvbj48L29wdGlvbj4iIDogIiIlPicsCisgICAgICAgICAgICAgICcgIDwlIGZvciAo dmFyIGk9MDsgaSA8IG9wdGlvbnMubGVuZ3RoOyBpKyspIHslPicsCisgICAgICAgICAgICAgICcg ICA8JSB2YXIgb3B0aW9uID0gb3B0aW9uc1tpXTsgJT4nLAorICAgICAgICAgICAgICAnICAgPG9w dGlvbiAnLAorICAgICAgICAgICAgICAnICAgIDwlIGlmIChvcHRpb24uaW1hZ2UpIHsgJT4gZGF0 YS1pbWFnZT08JT1vcHRpb24uaW1hZ2UlPiA8JX0lPicsCisgICAgICAgICAgICAgICcgICAgdmFs dWU9PCUtIGZvcm1hdHRlci5mcm9tUmF3KG9wdGlvbi52YWx1ZSkgJT4nLAorICAgICAgICAgICAg ICAnICAgIDwlIGlmIChvcHRpb24uc2VsZWN0ZWQpIHslPnNlbGVjdGVkPSJzZWxlY3RlZCI8JX0g ZWxzZSB7JT4nLAorICAgICAgICAgICAgICAnICAgIDwlIGlmICghc2VsZWN0Mi5tdWx0aXBsZSAm JiBvcHRpb24udmFsdWUgPT09IHJhd1ZhbHVlKSB7JT5zZWxlY3RlZD0ic2VsZWN0ZWQiPCV9JT4n LAorICAgICAgICAgICAgICAnICAgIDwlIGlmIChzZWxlY3QyLm11bHRpcGxlICYmIHJhd1ZhbHVl ICYmIHJhd1ZhbHVlLmluZGV4T2Yob3B0aW9uLnZhbHVlKSAhPSAtMSl7JT5zZWxlY3RlZD0ic2Vs ZWN0ZWQiIGRhdGEtaW5kZXg9InJhd1ZhbHVlLmluZGV4T2Yob3B0aW9uLnZhbHVlKSI8JX0lPics CisgICAgICAgICAgICAgICcgICAgPCV9JT4nLAorICAgICAgICAgICAgICAnICAgIDwlPSBkaXNh YmxlZCA/ICJkaXNhYmxlZCIgOiAiIiU+IDwlPXJlYWRvbmx5ID8gImRpc2FibGVkIiA6ICIiJT4+ PCUtb3B0aW9uLmxhYmVsJT48L29wdGlvbj4nLAorICAgICAgICAgICAgICAnICA8JX0lPicsCisg ICAgICAgICAgICAgICcgPC9zZWxlY3Q+JywKKyAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9Imlu cHV0LWdyb3VwLWFwcGVuZCI+JywKKyAgICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0biBi dG4tcHJpbWFyeS1pY29uIGZhIGZhLXN5bmMgZ2V0X3B1YmxpY2F0aW9uIiA8JT1kaXNhYmxlZCA/ ICJkaXNhYmxlZCIgOiAiIiU+IDwlPXJlYWRvbmx5ID8gImRpc2FibGVkIiA6ICIiJT4gYXJpYS1o aWRkZW49InRydWUiIGFyaWEtbGFiZWw9IicgKyBnZXR0ZXh0KCdHZXQgUHVibGljYXRpb24nKSAr ICciIHRpdGxlPSInICsgZ2V0dGV4dCgnR2V0IFB1YmxpY2F0aW9uJykgKyAnIj48L2J1dHRvbj4n LAorICAgICAgICAgICAgICAnPC9kaXY+JywKKyAgICAgICAgICAgICAgJzwvZGl2PicsCisgICAg ICAgICAgICAgICc8JSBpZiAoaGVscE1lc3NhZ2UgJiYgaGVscE1lc3NhZ2UubGVuZ3RoKSB7ICU+ JywKKyAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSI8JT1CYWNrZm9ybS5oZWxwTWVzc2FnZUNs YXNzTmFtZSU+Ij48JT1oZWxwTWVzc2FnZSU+PC9zcGFuPicsCisgICAgICAgICAgICAgICc8JSB9 ICU+JywKKyAgICAgICAgICAgICAgJzwvZGl2PicsCisgICAgICAgICAgICBdLmpvaW4oJ1xuJykp LAorCisgICAgICAgICAgICBldmVudHM6ICBfLmV4dGVuZCh7fSwgQmFja2Zvcm0uU2VsZWN0MkNv bnRyb2wucHJvdG90eXBlLmV2ZW50cygpLCB7CisgICAgICAgICAgICAgICdjbGljayAuZ2V0X3B1 YmxpY2F0aW9uJzogJ2dldFB1YmxpY2F0aW9uJywKKyAgICAgICAgICAgIH0pLAorCisgICAgICAg ICAgICByZW5kZXI6IGZ1bmN0aW9uKCl7CisgICAgICAgICAgICAgIHJldHVybiBCYWNrZm9ybS5T ZWxlY3QyQ29udHJvbC5wcm90b3R5cGUucmVuZGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7Cisg ICAgICAgICAgICB9LAorCisgICAgICAgICAgICBnZXRQdWJsaWNhdGlvbjogZnVuY3Rpb24oKSB7 CisgICAgICAgICAgICAgIHZhciBzZWxmID0gdGhpczsKKyAgICAgICAgICAgICAgdmFyIHB1Ymxp Y2F0aW9uX3VybCA9IHBnQnJvd3Nlci5Ob2Rlc1snZGF0YWJhc2UnXS5nZW5lcmF0ZV91cmwuYXBw bHkoCisgICAgICAgICAgICAgICAgcGdCcm93c2VyLk5vZGVzWydzdWJzY3JpcHRpb24nXSwgWwor ICAgICAgICAgICAgICAgICAgbnVsbCwgJ2dldF9wdWJsaWNhdGlvbnMnLCB0aGlzLmZpZWxkLmdl dCgnbm9kZV9kYXRhJyksIG51bGwsCisgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmdldCgn bm9kZV9pbmZvJyksIHBnQnJvd3Nlci5Ob2Rlc1snZGF0YWJhc2UnXS51cmxfanVtcF9hZnRlcl9u b2RlLAorICAgICAgICAgICAgICAgIF0pOworICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gJyc7 CisKKyAgICAgICAgICAgICAgJC5hamF4KHsKKyAgICAgICAgICAgICAgICB1cmw6IHB1YmxpY2F0 aW9uX3VybCwKKyAgICAgICAgICAgICAgICB0eXBlOiAnR0VUJywKKyAgICAgICAgICAgICAgICBk YXRhOiBzZWxmLm1vZGVsLnRvSlNPTih0cnVlLCAnR0VUJyksCisgICAgICAgICAgICAgICAgZGF0 YVR5cGU6ICdqc29uJywKKyAgICAgICAgICAgICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9u L2pzb24nLAorICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgIC5kb25lKGZ1bmN0aW9u KHJlcykgeworICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzLmRhdGE7CisgICAgICAgICAg ICAgICAgICBzZWxmLmZpZWxkLnNldCgnb3B0aW9ucycsIHJlc3VsdCk7CisgICAgICAgICAgICAg ICAgICBCYWNrZm9ybS5TZWxlY3QyQ29udHJvbC5wcm90b3R5cGUucmVuZGVyLmFwcGx5KHNlbGYs IGFyZ3VtZW50cyk7CisKKyAgICAgICAgICAgICAgICAgIHZhciB0cmFuc2Zvcm0gPSBzZWxmLmZp ZWxkLmdldCgndHJhbnNmb3JtJykgfHwgc2VsZi5kZWZhdWx0cy50cmFuc2Zvcm07CisgICAgICAg ICAgICAgICAgICBpZiAodHJhbnNmb3JtICYmIF8uaXNGdW5jdGlvbih0cmFuc2Zvcm0pKSB7Cisg ICAgICAgICAgICAgICAgICAgIHNlbGYuZmllbGQuc2V0KCdvcHRpb25zJywgdHJhbnNmb3JtLmJp bmQoc2VsZiwgcmVzdWx0KSk7CisgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg ICAgICAgICAgICBzZWxmLmZpZWxkLnNldCgnb3B0aW9ucycsIHJlc3VsdCk7CisgICAgICAgICAg ICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgIC5mYWlsKGZ1 bmN0aW9uKHJlcykgeworICAgICAgICAgICAgICAgICAgQWxlcnRpZnkuYWxlcnQoCisgICAgICAg ICAgICAgICAgICAgIGdldHRleHQoJ0NoZWNrIGNvbm5lY3Rpb24/JyksCisgICAgICAgICAgICAg ICAgICAgIGdldHRleHQocmVzLnJlc3BvbnNlSlNPTi5lcnJvcm1zZykKKyAgICAgICAgICAgICAg ICAgICk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9LAorICAgICAgICAgIH0p LAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdjb3B5X2RhdGEnLCBsYWJl bDogZ2V0dGV4dCgnQ29weSBkYXRhJyksCisgICAgICAgICAgdHlwZTogJ3N3aXRjaCcsIG1vZGU6 IFsnY3JlYXRlJywnZWRpdCddLAorICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdXaXRoJyksCisg ICAgICAgICAgZXh0cmFUb2dnbGVDbGFzc2VzOiAncGctZWwtc20tNicsCisgICAgICAgICAgY29u dHJvbExhYmVsQ2xhc3NOYW1lOiAnY29udHJvbC1sYWJlbCBwZy1lbC1zbS01IHBnLWVsLTEyJywK KyAgICAgICAgICBjb250cm9sc0NsYXNzTmFtZTogJ3BnYWRtaW4tY29udHJvbHMgcGctZWwtc20t NyBwZy1lbC0xMicsCisgICAgICAgICAgcmVhZG9ubHk6ICdpc0Nvbm5lY3QnLCBkZXBzIDpbJ2Nv bm5lY3QnXSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnY3JlYXRlX3Ns b3QnLCBsYWJlbDogZ2V0dGV4dCgnQ3JlYXRlIHNsb3QnKSwKKyAgICAgICAgICB0eXBlOiAnc3dp dGNoJywgbW9kZTogWydjcmVhdGUnXSwKKyAgICAgICAgICBncm91cDogZ2V0dGV4dCgnV2l0aCcp LAorICAgICAgICAgIGV4dHJhVG9nZ2xlQ2xhc3NlczogJ3BnLWVsLXNtLTYnLAorICAgICAgICAg IGNvbnRyb2xMYWJlbENsYXNzTmFtZTogJ2NvbnRyb2wtbGFiZWwgcGctZWwtc20tNSBwZy1lbC0x MicsCisgICAgICAgICAgY29udHJvbHNDbGFzc05hbWU6ICdwZ2FkbWluLWNvbnRyb2xzIHBnLWVs LXNtLTcgcGctZWwtMTInLAorICAgICAgICAgIGRpc2FibGVkOiAnaXNEaXNhYmxlJywKKyAgICAg ICAgICByZWFkb25seTogJ2lzQ29ubmVjdCcsIGRlcHMgOlsnY29ubmVjdCddLAorCisgICAgICAg IH0sCisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ2VuYWJsZWQnLCBsYWJlbDogZ2V0dGV4dCgn RW5hYmxlZCcpLAorICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBtb2RlOiBbJ2NyZWF0ZScsJ2Vk aXQnLCAncHJvcGVydGllcyddLAorICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdXaXRoJyksCisg ICAgICAgICAgZXh0cmFUb2dnbGVDbGFzc2VzOiAncGctZWwtc20tNicsCisgICAgICAgICAgY29u dHJvbExhYmVsQ2xhc3NOYW1lOiAnY29udHJvbC1sYWJlbCBwZy1lbC1zbS01IHBnLWVsLTEyJywK KyAgICAgICAgICBjb250cm9sc0NsYXNzTmFtZTogJ3BnYWRtaW4tY29udHJvbHMgcGctZWwtc20t NyBwZy1lbC0xMicsCisgICAgICAgICAgcmVhZG9ubHk6ICdpc0Nvbm5lY3QnLCBkZXBzIDpbJ2Nv bm5lY3QnXSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAncmVmcmVzaF9w dWInLCBsYWJlbDogZ2V0dGV4dCgnUmVmcmVzaCBwdWJsaWNhdGlvbicpLAorICAgICAgICAgIHR5 cGU6ICdzd2l0Y2gnLCBtb2RlOiBbJ2VkaXQnXSwKKyAgICAgICAgICBncm91cDogZ2V0dGV4dCgn V2l0aCcpLAorICAgICAgICAgIGV4dHJhVG9nZ2xlQ2xhc3NlczogJ3BnLWVsLXNtLTYnLAorICAg ICAgICAgIGNvbnRyb2xMYWJlbENsYXNzTmFtZTogJ2NvbnRyb2wtbGFiZWwgcGctZWwtc20tNSBw Zy1lbC0xMicsCisgICAgICAgICAgY29udHJvbHNDbGFzc05hbWU6ICdwZ2FkbWluLWNvbnRyb2xz IHBnLWVsLXNtLTcgcGctZWwtMTInLAorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2Nvbm5l Y3QnLCBsYWJlbDogZ2V0dGV4dCgnQ29ubmVjdCcpLAorICAgICAgICAgIHR5cGU6ICdzd2l0Y2gn LCBtb2RlOiBbJ2NyZWF0ZSddLAorICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdXaXRoJyksCisg ICAgICAgICAgZXh0cmFUb2dnbGVDbGFzc2VzOiAncGctZWwtc20tNicsCisgICAgICAgICAgY29u dHJvbExhYmVsQ2xhc3NOYW1lOiAnY29udHJvbC1sYWJlbCBwZy1lbC1zbS01IHBnLWVsLTEyJywK KyAgICAgICAgICBjb250cm9sc0NsYXNzTmFtZTogJ3BnYWRtaW4tY29udHJvbHMgcGctZWwtc20t NyBwZy1lbC0xMicsCisgICAgICAgICAgZGlzYWJsZWQ6ICdpc0Rpc2FibGUnLCBkZXBzOlsnZW5h YmxlZCcsICdjcmVhdGVfc2xvdCcsICdjb3B5X2RhdGEnXSwKKyAgICAgICAgfSwKKyAgICAgICAg eworICAgICAgICAgIGlkOiAnc2xvdF9uYW1lJywgbGFiZWw6IGdldHRleHQoJ1Nsb3QgbmFtZScp LAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgbW9kZTogWydjcmVhdGUnLCdlZGl0JywgJ3Byb3Bl cnRpZXMnXSwKKyAgICAgICAgICBncm91cDogZ2V0dGV4dCgnV2l0aCcpLAorICAgICAgICB9LAor ICAgICAgICB7CisgICAgICAgICAgaWQ6ICdzeW5jJywgbGFiZWw6IGdldHRleHQoJ1N5bmNocm9u b3VzIGNvbW1pdCcpLCBjb250cm9sOiAnc2VsZWN0MicsIGRlcHM6WydldmVudCddLAorICAgICAg ICAgIGdyb3VwOiBnZXR0ZXh0KCdXaXRoJyksIHR5cGU6ICd0ZXh0JywKKyAgICAgICAgICBzZWxl Y3QyOiB7CisgICAgICAgICAgICB3aWR0aDogJzEwMCUnLAorICAgICAgICAgICAgYWxsb3dDbGVh cjogZmFsc2UsCisgICAgICAgICAgfSwKKyAgICAgICAgICBvcHRpb25zOlsKKyAgICAgICAgICAg IHtsYWJlbDogJ2xvY2FsJywgdmFsdWU6ICdsb2NhbCd9LAorICAgICAgICAgICAge2xhYmVsOiAn cmVtb3RlX3dyaXRlJywgdmFsdWU6ICdyZW1vdGVfd3JpdGUnfSwKKyAgICAgICAgICAgIHtsYWJl bDogJ3JlbW90ZV9hcHBseScsIHZhbHVlOiAncmVtb3RlX2FwcGx5J30sCisgICAgICAgICAgICB7 bGFiZWw6ICdvbicsIHZhbHVlOiAnb24nfSwKKyAgICAgICAgICAgIHtsYWJlbDogJ29mZicsIHZh bHVlOiAnb2ZmJ30sCisgICAgICAgICAgXSwKKyAgICAgICAgfSwKKyAgICAgICAgXSwKKyAgICAg ICAgaXNTaGFyZWQ6IGZ1bmN0aW9uKCl7CisgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg ICB9LAorICAgICAgICBpc0Rpc2FibGU6ZnVuY3Rpb24obSl7CisgICAgICAgICAgaWYgKG0uaXNO ZXcoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsK KyAgICAgICAgfSwKKworICAgICAgICBpc0Nvbm5lY3Q6IGZ1bmN0aW9uKG0peworICAgICAgICAg IGlmKCFtLmdldCgnY29ubmVjdCcpKXsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoIGZ1bmN0aW9u KCkgeworICAgICAgICAgICAgICBtLnNldCgnY29weV9kYXRhJywgZmFsc2UpOworICAgICAgICAg ICAgICBtLnNldCgnY3JlYXRlX3Nsb3QnLCBmYWxzZSk7CisgICAgICAgICAgICAgIG0uc2V0KCdl bmFibGVkJywgZmFsc2UpOworICAgICAgICAgICAgfSwgMTApOworICAgICAgICAgICAgcmV0dXJu IHRydWU7CisgICAgICAgICAgfQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSwK KworCisgICAgICAgIC8qIHZhbGlkYXRlIGZ1bmN0aW9uIGlzIHVzZWQgdG8gdmFsaWRhdGUgdGhl IGlucHV0IGdpdmVuIGJ5CisgICAgICAgICAqIHRoZSB1c2VyLiBJbiBjYXNlIG9mIGVycm9yLCBt ZXNzYWdlIHdpbGwgYmUgZGlzcGxheWVkIG9uCisgICAgICAgICAqIHRoZSBHVUkgZm9yIHRoZSBy ZXNwZWN0aXZlIGNvbnRyb2wuCisgICAgICAgICAqLworICAgICAgICB2YWxpZGF0ZTogZnVuY3Rp b24oKSB7CisgICAgICAgICAgdmFyIG1zZzsKKyAgICAgICAgICB0aGlzLmVycm9yTW9kZWwuY2xl YXIoKTsKKyAgICAgICAgICB2YXIgbmFtZSA9IHRoaXMuZ2V0KCduYW1lJyk7CisgICAgICAgICAg dmFyIHB1YiA9IHRoaXMuZ2V0KCdwdWInKTsKKworICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVk KG5hbWUpIHx8IF8uaXNOdWxsKG5hbWUpIHx8CisgICAgICAgICAgICBTdHJpbmcobmFtZSkucmVw bGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgbXNnID0gZ2V0dGV4 dCgnTmFtZSBjYW5ub3QgYmUgZW1wdHkuJyk7CisgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwu c2V0KCduYW1lJywgbXNnKTsKKyAgICAgICAgICAgIHJldHVybiBtc2c7CisgICAgICAgICAgfQor ICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKHB1YikgfHwgXy5pc051bGwocHViKSB8fAorICAg ICAgICAgICAgU3RyaW5nKHB1YikucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgewor ICAgICAgICAgICAgbXNnID0gZ2V0dGV4dCgnUHVibGljYXRpb24gY2Fubm90IGJlIGVtcHR5Licp OworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNldCgncHViJywgbXNnKTsKKyAgICAgICAg ICAgIHJldHVybiBtc2c7CisgICAgICAgICAgfQorCisgICAgICAgICAgY29uc3QgdmFsaWRhdGVN b2RlbCA9IG5ldyBtb2RlbFZhbGlkYXRpb24uTW9kZWxWYWxpZGF0aW9uKHRoaXMpOworICAgICAg ICAgIHJldHVybiB2YWxpZGF0ZU1vZGVsLnZhbGlkYXRlKCk7CisgICAgICAgIH0sCisgICAgICAg IGNhbkNyZWF0ZTogZnVuY3Rpb24oaXRlbURhdGEsIGl0ZW0pIHsKKyAgICAgICAgICB2YXIgdHJl ZURhdGEgPSB0aGlzLmdldFRyZWVOb2RlSGllcmFyY2h5KGl0ZW0pLAorICAgICAgICAgICAgc2Vy dmVyID0gdHJlZURhdGFbJ3NlcnZlciddOworCisgICAgICAgICAgLy8gSWYgc2VydmVyIGlzIGxl c3MgdGhhbiAxMCB0aGVuIGRvIG5vdCBhbGxvdyAnY3JlYXRlJyBtZW51CisgICAgICAgICAgaWYg KHNlcnZlciAmJiBzZXJ2ZXIudmVyc2lvbiA8IDEwMDAwMCkKKyAgICAgICAgICAgIHJldHVybiBm YWxzZTsKKworICAgICAgICAgIC8vIGJ5IGRlZmF1bHQgd2Ugd2FudCB0byBhbGxvdyBjcmVhdGUg bWVudQorICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9LAorCisgICAgICB9KSwKKyAg ICB9KTsKKyAgfQorICByZXR1cm4gcGdCcm93c2VyLk5vZGVzWydjb2xsLXN1YnNjcmlwdGlvbidd OworfSk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZW1wbGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwv ZGVmYXVsdC9hY2wuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVtcGxhdGVzL3N1YnNjcmlwdGlvbnMvc3FsL2Rl ZmF1bHQvYWNsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjkwNTRi YWE0NQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3RlbXBsYXRlcy9zdWJzY3JpcHRpb25z L3NxbC9kZWZhdWx0L2FjbC5zcWwKQEAgLTAsMCArMSwyNCBAQAorU0VMRUNUICdsYW5hY2wnIGFz IGRlZnR5cGUsIENPQUxFU0NFKGd0LnJvbG5hbWUsICdQVUJMSUMnKSBncmFudGVlLCBnLnJvbG5h bWUgZ3JhbnRvciwKKyAgICBhcnJheV9hZ2cocHJpdmlsZWdlX3R5cGUpIGFzIHByaXZpbGVnZXMs IGFycmF5X2FnZyhpc19ncmFudGFibGUpIGFzIGdyYW50YWJsZQorRlJPTQorICAgIChTRUxFQ1QK KyAgICAgICAgZC5ncmFudGVlLCBkLmdyYW50b3IsIGQuaXNfZ3JhbnRhYmxlLAorICAgICAgICBD QVNFIGQucHJpdmlsZWdlX3R5cGUKKyAgICAgICAgV0hFTiAnVVNBR0UnIFRIRU4gJ1UnCisgICAg ICAgIEVMU0UgJ1VOS05PV04nCisgICAgICAgIEVORCBBUyBwcml2aWxlZ2VfdHlwZQorICAgIEZS T00KKyAgICAgICAgKFNFTEVDVCBsYW5hY2wgRlJPTSBwZ19sYW5ndWFnZSBsYW4KKyAgICAgICAg ICAgIExFRlQgT1VURVIgSk9JTiBwZ19zaGRlc2NyaXB0aW9uIGRlc2NyIE9OIChsYW4ub2lkPWRl c2NyLm9iam9pZCBBTkQgZGVzY3IuY2xhc3NvaWQ9J3BnX2xhbmd1YWdlJzo6cmVnY2xhc3MpCisg ICAgICAgIFdIRVJFIGxhbi5vaWQgPSB7eyBsaWR8cXRMaXRlcmFsIH19OjpPSUQKKyAgICAgICAg KSBhY2wsCisgICAgICAgIChTRUxFQ1QgKGQpLmdyYW50ZWUgQVMgZ3JhbnRlZSwgKGQpLmdyYW50 b3IgQVMgZ3JhbnRvciwgKGQpLmlzX2dyYW50YWJsZSBBUyBpc19ncmFudGFibGUsCisgICAgICAg ICAgICAoZCkucHJpdmlsZWdlX3R5cGUgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICAgICAgRlJPTSAo U0VMRUNUIGFjbGV4cGxvZGUobGFuYWNsKSBhcyBkIEZST00gcGdfbGFuZ3VhZ2UgbGFuMQorICAg ICAgICAgICAgV0hFUkUgbGFuMS5vaWQgPSB7eyBsaWR8cXRMaXRlcmFsIH19OjpPSUQgKSBhCisg ICAgICAgICkgZAorICAgICkgZAorTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZyBPTiAo ZC5ncmFudG9yID0gZy5vaWQpCitMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBndCBPTiAo ZC5ncmFudGVlID0gZ3Qub2lkKQorR1JPVVAgQlkgZy5yb2xuYW1lLCBndC5yb2xuYW1lCitPUkRF UiBCWSBncmFudGVlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZW1wbGF0ZXMvc3Vic2NyaXB0aW9u cy9zcWwvZGVmYXVsdC9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVtcGxhdGVzL3N1YnNjcmlwdGlv bnMvc3FsL2RlZmF1bHQvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAuLjg2M2Y2NjMxYwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3RlbXBsYXRlcy9z dWJzY3JpcHRpb25zL3NxbC9kZWZhdWx0L2NyZWF0ZS5zcWwKQEAgLTAsMCArMSwyNCBAQAoreyUg aWYgZGF0YS5jb3B5X2RhdGEgaXMgZGVmaW5lZCBvciBkYXRhLmNyZWF0ZV9zbG90IGlzIGRlZmlu ZWQgb3IgZGF0YS5zbG90X25hbWUgaXMgZGVmaW5lZCBvciBkYXRhLnN5bmMgaXMgZGVmaW5lZCAl fQoreyUgc2V0IGFkZF9zZW1pY29sb25fYWZ0ZXJfZW5hYmxlZCA9ICdlbmFibGVkJyAlfQoreyUg ZW5kaWYgJX0KK3slIGlmIGRhdGEuY3JlYXRlX3Nsb3QgaXMgZGVmaW5lZCBvciBkYXRhLnNsb3Rf bmFtZSBpcyBkZWZpbmVkICV9Cit7JSBzZXQgYWRkX3NlbWljb2xvbl9hZnRlcl9jb3B5X2RhdGEg PSAnY29weV9kYXRhJyAlfQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuc2xvdF9uYW1lIGlzIGRl ZmluZWQgb3IgZGF0YS5zeW5jIGlzIGRlZmluZWQgJX0KK3slIHNldCBhZGRfc2VtaWNvbG9uX2Fm dGVyX2NyZWF0ZV9zbG90ID0gJ2NyZWF0ZV9zbG90JyAlfQoreyUgZW5kaWYgJX0KK3slIGlmIGRh dGEuc3luYyBpcyBkZWZpbmVkICV9Cit7JSBzZXQgYWRkX3NlbWljb2xvbl9hZnRlcl9zbG90X25h bWUgPSAnc2xvdF9uYW1lJyAlfQoreyUgZW5kaWYgJX0KKworQ1JFQVRFIFNVQlNDUklQVElPTiB7 eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fQoreyUgaWYgZGF0YS5ob3N0IG9yIGRhdGEucG9y dCBvciBkYXRhLnVzZXJuYW1lIG9yIGRhdGEucGFzc3dvcmQgIG9yIGRhdGEuZGIgJX0KK0NPTk5F Q1RJT04gJ3slIGlmIGRhdGEuaG9zdCAlfWhvc3Q9e3sgZGF0YS5ob3N0fX17JSBlbmRpZiAlfXsl IGlmIGRhdGEucG9ydCAlfSBwb3J0PXt7IGRhdGEucG9ydCB9fXslIGVuZGlmICV9eyUgaWYgZGF0 YS51c2VybmFtZSAlfSB1c2VyPXt7IGRhdGEudXNlcm5hbWUgfX17JSBlbmRpZiAlfXslIGlmIGRh dGEuZGIgJX0gZGJuYW1lPXt7IGRhdGEuZGIgfX17JSBlbmRpZiAlfXslIGlmIGRhdGEuc2Vydmlj ZSAlfSBzZXJ2aWNlPXt7IGRhdGEuc2VydmljZSB9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5wYXNz ZmlsZSAlfSBwYXNzZmlsZT17eyBkYXRhLnBhc3NmaWxlIH19eyUgZW5kaWYgJX17JSBpZiBkYXRh LnBhc3N3b3JkICV9IHBhc3N3b3JkPXt7IGRhdGEucGFzc3dvcmR9fXslIGVuZGlmICV9JworeyUg ZW5kaWYgJX0KK3slIGlmIGRhdGEucHViICV9CitQVUJMSUNBVElPTiB7JSBmb3IgcHViIGluIGRh dGEucHViICV9eyUgaWYgbG9vcC5pbmRleCAhPSAxICV9LHslIGVuZGlmICV9e3sgY29ubnxxdElk ZW50KHB1YikgfX17JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9CisKK3dpdGggKHslIGlmIGRhdGEu Y29ubmVjdCBpcyBkZWZpbmVkICV9Y29ubmVjdCA9IHt7IGRhdGEuY29ubmVjdH19LCB7JSBlbmRp ZiAlfWVuYWJsZWQgPSB7eyBkYXRhLmVuYWJsZWR9fSx7JSBpZiBkYXRhLmNvcHlfZGF0YSAlfWNv cHlfZGF0YSA9IHt7IGRhdGEuY29weV9kYXRhfX17JSBpZiBhZGRfc2VtaWNvbG9uX2FmdGVyX2Nv cHlfZGF0YSA9PSAnY29weV9kYXRhJyAlfSx7JSBlbmRpZiAlfXslIGVuZGlmICV9Cit7JSBpZiBk YXRhLmNyZWF0ZV9zbG90IGlzIGRlZmluZWQgJX0gY3JlYXRlX3Nsb3QgPSB7eyBkYXRhLmNyZWF0 ZV9zbG90IH19eyUgaWYgYWRkX3NlbWljb2xvbl9hZnRlcl9jcmVhdGVfc2xvdCA9PSAnY3JlYXRl X3Nsb3QnICV9LHslIGVuZGlmICV9eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuc2xvdF9uYW1lIGlz IGRlZmluZWQgIGFuZCBkYXRhLnNsb3RfbmFtZSAhPSAnJyV9IHNsb3RfbmFtZSA9IHt7IGRhdGEu c2xvdF9uYW1lIH19eyUgaWYgYWRkX3NlbWljb2xvbl9hZnRlcl9zbG90X25hbWUgPT0gJ3Nsb3Rf bmFtZScgJX0seyUgZW5kaWYgJX17JSBlbmRpZiAlfXslIGlmIGRhdGEuc3luYyAlfSBzeW5jaHJv bm91c19jb21taXQgPSAne3sgZGF0YS5zeW5jIH19J3slIGVuZGlmICV9KTsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJz Y3JpcHRpb25zL3RlbXBsYXRlcy9zdWJzY3JpcHRpb25zL3NxbC9kZWZhdWx0L2RlbGV0ZS5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vi c2NyaXB0aW9ucy90ZW1wbGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVsdC9kZWxldGUuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMzM5NDJmYTk5Ci0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVtcGxhdGVzL3N1YnNjcmlwdGlvbnMvc3FsL2RlZmF1bHQv ZGVsZXRlLnNxbApAQCAtMCwwICsxLDggQEAKK3sjID09PT09PT09PT09PT0gR2V0IHRoZSBzdWJz Y3JpcHRpb24gbmFtZSB1c2luZyBvaWQgPT09PT09PT09PT09PSAjfQoreyUgaWYgc3ViaWQgJX0K KyAgICBTRUxFQ1Qgc3VibmFtZSBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBvaWQgPSB7e3N1 YmlkfX06Om9pZDsKK3slIGVuZGlmICV9Cit7IyA9PT09PT09PT09PT09IERyb3AgdGhlIGxhbmd1 YWdlID09PT09PT09PT09PT0gI30KK3slIGlmIHN1Ym5hbWUgJX0KK0RST1AgU1VCU0NSSVBUSU9O IHt7IGNvbm58cXRJZGVudChzdWJuYW1lKSB9fXslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FERXslIGVu ZGlmJX07Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVtcGxhdGVzL3N1YnNj cmlwdGlvbnMvc3FsL2RlZmF1bHQvZnVuY3Rpb25zLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3RlbXBsYXRlcy9z dWJzY3JpcHRpb25zL3NxbC9kZWZhdWx0L2Z1bmN0aW9ucy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwLi5iNDkzYWJjN2IKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9u cy90ZW1wbGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVsdC9mdW5jdGlvbnMuc3FsCkBAIC0w LDAgKzEsNiBAQAorU0VMRUNUIHF1b3RlX2lkZW50KGMudGFibGVfc2NoZW1hKXx8Jy4nfHxxdW90 ZV9pZGVudChjLnRhYmxlX25hbWUpIEFTIHRhYmxlCitmcm9tIGluZm9ybWF0aW9uX3NjaGVtYS50 YWJsZXMgYword2hlcmUgYy50YWJsZV90eXBlID0gJ0JBU0UgVEFCTEUnCisgICAgICBBTkQgYy50 YWJsZV9zY2hlbWEgTk9UIExJS0UgJ3BnXF8lJworICAgICAgQU5EIGMudGFibGVfc2NoZW1hIE5P VCBMSUtFICdwZ2FnZW50JworICAgICAgQU5EIGMudGFibGVfc2NoZW1hIE5PVCBJTiAoJ2luZm9y bWF0aW9uX3NjaGVtYScpIE9SREVSIEJZIDE7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZW1wbGF0 ZXMvc3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVsdC9ub2Rlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZW1wbGF0 ZXMvc3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVsdC9ub2Rlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwLi4xMGY4NDE3NDMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9u cy90ZW1wbGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVsdC9ub2Rlcy5zcWwKQEAgLTAsMCAr MSw3IEBACitzZWxlY3Qgb2lkLCBzdWIuc3VibmFtZSBhcyBuYW1lIGZyb20gcGdfc3Vic2NyaXB0 aW9uIHN1YgorV0hFUkUKK3slIGlmIHN1YmlkICV9CisgICAgc3ViLm9pZCA9IHt7IHN1YmlkIH19 OworeyUgZWxzZSAlfQorICAgIHN1Yi5zdWJkYmlkID0ge3sgZGlkIH19OworeyUgZW5kaWYgJX07 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZW1wbGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVs dC9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3RlbXBsYXRlcy9zdWJzY3JpcHRpb25zL3NxbC9k ZWZhdWx0L3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MC4uN2RkMThiNTE3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVtcGxhdGVzL3N1YnNj cmlwdGlvbnMvc3FsL2RlZmF1bHQvcHJvcGVydGllcy5zcWwKQEAgLTAsMCArMSwyMSBAQAorU0VM RUNUICBzdWIub2lkIGFzIG9pZCwKKyAgICAgICAgc3VibmFtZSBhcyBuYW1lLAorICAgICAgICBz dWJwdWJsaWNhdGlvbnMgYXMgcHViLAorICAgICAgICBzdWIuc3Vic3luY2NvbW1pdCBhcyBzeW5j LAorICAgICAgICBzdWJwdWJsaWNhdGlvbnMgYXMgY3VyX3B1YiwKKyAgICAgICAgcGdhLnJvbG5h bWUgYXMgc3Vib3duZXIsCisgICAgICAgIHN1YnNsb3RuYW1lIGFzIHNsb3RfbmFtZSwKKyAgICAg ICAgc3ViZW5hYmxlZCBhcyBlbmFibGVkLAorCQlTUExJVF9QQVJUKFNQTElUX1BBUlQoc3ViY29u bmluZm8sJ3BvcnQnLDEpLCAnPScsMikgYXMgaG9zdCwKKwkJU1BMSVRfUEFSVChTUExJVF9QQVJU KHN1YmNvbm5pbmZvLCdwb3J0PScsMiksICcgJywxKSBhcyBwb3J0LAorCQlTUExJVF9QQVJUKFNQ TElUX1BBUlQoc3ViY29ubmluZm8sJ3VzZXI9JywyKSwgJyAnLDEpIGFzIHVzZXJuYW1lLAorCQlT UExJVF9QQVJUKFNQTElUX1BBUlQoc3ViY29ubmluZm8sJ2RibmFtZT0nLDIpLCAnICcsMSkgYXMg ZGIsCisJCVNQTElUX1BBUlQoU1BMSVRfUEFSVChzdWJjb25uaW5mbywnc2VydmljZT0nLDIpLCAn ICcsMSkgYXMgc2VydmljZSwKKwkJU1BMSVRfUEFSVChTUExJVF9QQVJUKHN1YmNvbm5pbmZvLCdw YXNzZmlsZT0nLDIpLCAnICcsMSkgYXMgcGFzc2ZpbGUKK0ZST00gcGdfc3Vic2NyaXB0aW9uIHN1 YiBqb2luIHBnX2F1dGhpZCBwZ2Egb24gc3ViLnN1Ym93bmVyPSBwZ2Eub2lkCitXSEVSRQoreyUg aWYgc3ViaWQgJX0KKyAgICBzdWIub2lkID0ge3sgc3ViaWQgfX07Cit7JSBlbHNlICV9CisgICAg c3ViLnN1YmRiaWQgPSB7eyBkaWQgfX07Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlv bnMvdGVtcGxhdGVzL3N1YnNjcmlwdGlvbnMvc3FsL2RlZmF1bHQvc3FscGFuZS5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0 aW9ucy90ZW1wbGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVsdC9zcWxwYW5lLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmU1YWMxNGE3NQotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zdWJzY3JpcHRpb25zL3RlbXBsYXRlcy9zdWJzY3JpcHRpb25zL3NxbC9kZWZhdWx0L3NxbHBh bmUuc3FsCkBAIC0wLDAgKzEsNDIgQEAKK3slIGltcG9ydCAnbWFjcm9zL3ByaXZpbGVnZS5tYWNy b3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBh cyBTRUNMQUJFTCAlfQorLS0gTGFuZ3VhZ2U6IHt7ZGF0YS5uYW1lfX0KKworLS0gRFJPUCBMQU5H VUFHRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fQorCit7IyA9PT09PT09PT09PT09IENS RUFURSBMQU5HVUFHRSBRdWVyeSA9PT09PT09PT09PT09ICN9CitDUkVBVEV7JSBpZiBkYXRhLnRy dXN0ZWQgJX0gVFJVU1RFRHslIGVuZGlmICV9IFBST0NFRFVSQUwgTEFOR1VBR0Uge3sgY29ubnxx dElkZW50KGRhdGEubmFtZSkgfX0KK3slIGlmIGRhdGEubGFucHJvYyAlfQorICAgIEhBTkRMRVIg e3sgY29ubnxxdElkZW50KGRhdGEubGFucHJvYykgfX0KK3slIGVuZGlmICV9Cit7JSBpZiBkYXRh LmxhbmlubCAlfQorICAgIElOTElORSB7eyBjb25ufHF0SWRlbnQoZGF0YS5sYW5pbmwpIH19Cit7 JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5sYW52YWwgJX0KKyAgICBWQUxJREFUT1Ige3sgY29ubnxx dElkZW50KGRhdGEubGFudmFsKSB9fXslIGVuZGlmICV9OworeyMgPT09PT09PT09PT09PSBBTFRF UiBMQU5HVUFHRSBRdWVyeSA9PT09PT09PT09PT09ICN9Cit7JSBpZiBkYXRhLmxhbm93bmVyICV9 CisKK0FMVEVSIExBTkdVQUdFIHt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19CisgICAgT1dO RVIgVE8ge3sgY29ubnxxdElkZW50KGRhdGEubGFub3duZXIpIH19OworeyUgZW5kaWYgJX0KK3sj ID09PT09PT09PT09PT0gQ29tbWVudCBvbiBMQU5HVUFHRSBRdWVyeSA9PT09PT09PT09PT09ICN9 Cit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9CisKK0NPTU1FTlQgT04gTEFOR1VBR0Uge3sgY29u bnxxdElkZW50KGRhdGEubmFtZSkgfX0KKyAgICBJUyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0TGl0 ZXJhbCB9fTsKK3slIGVuZGlmICV9Cit7IyA9PT09PT09PT09PT09IFBSSVZJTEVHRVMgb24gTEFO R1VBR0UgPT09PT09PT09PT09PSAjfQoreyUgaWYgZGF0YS5sYW5hY2wgYW5kIGRhdGEubGFuYWNs fGxlbmd0aCA+IDAgJX0KKworeyUgZm9yIHByaXYgaW4gZGF0YS5sYW5hY2wgJX0KK3t7IFBSSVZJ TEVHRS5BUFBMWShjb25uLCAnTEFOR1VBR0UnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgcHJp di53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmICV9Cit7IyA9PT09PT09PT09PT09IFBSSVZJTEVHRVMgb24gTEFOR1VBR0UgPT09PT09PT09 PT09PSAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgYW5kIGRhdGEuc2VjbGFiZWxzfGxlbmd0aCA+ IDAgJX0KKworeyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0KK3t7IFNFQ0xBQkVMLkFQUExZ KGNvbm4sICdQUk9DRURVUkFMIExBTkdVQUdFJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLmxh YmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMv dGVtcGxhdGVzL3N1YnNjcmlwdGlvbnMvc3FsL2RlZmF1bHQvdGVtcGxhdGVzLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRp b25zL3RlbXBsYXRlcy9zdWJzY3JpcHRpb25zL3NxbC9kZWZhdWx0L3RlbXBsYXRlcy5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5mNjcxODRhZjUKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc3Vic2NyaXB0aW9ucy90ZW1wbGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVsdC90ZW1w bGF0ZXMuc3FsCkBAIC0wLDAgKzEsNyBAQAoreyMgPT09PT09PT09PT09PSBTRUxFQ1QgTGFuZ3Vh Z2UgdGVtcGxhdGVzID09PT09PT09PT09PT0gI30KK1NFTEVDVAorICAgIHRtcGxuYW1lCitGUk9N IHBnX3BsdGVtcGxhdGUKK0xFRlQgSk9JTiBwZ19sYW5ndWFnZSBPTiB0bXBsbmFtZT1sYW5uYW1l CitXSEVSRSBsYW5uYW1lIElTIE5VTEwKK09SREVSIEJZIHRtcGxuYW1lOwpcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3RlbXBsYXRlcy9zdWJzY3JpcHRp b25zL3NxbC9kZWZhdWx0L3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZW1wbGF0ZXMvc3Vic2NyaXB0 aW9ucy9zcWwvZGVmYXVsdC91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMC4uYWQ4YWQ5MWY3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVtcGxhdGVz L3N1YnNjcmlwdGlvbnMvc3FsL2RlZmF1bHQvdXBkYXRlLnNxbApAQCAtMCwwICsxLDUyIEBACit7 JSBpZiBkYXRhLnN5bmMgaXMgZGVmaW5lZCAlfQoreyUgc2V0IGFkZF9zZW1pY29sb25fYWZ0ZXJf c2xvdF9uYW1lID0gJ3Nsb3RfbmFtZScgJX0KK3slIGVuZGlmICV9CisKK3sjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI30KK3sjIyBDaGFuZ2Ugb3du ZXIgb2Ygc3Vic2NyaXB0aW9uICMjfQoreyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjfQoreyUgaWYgZGF0YS5zdWJvd25lciBhbmQgZGF0YS5zdWJv d25lciAhPSBvX2RhdGEuc3Vib3duZXIgJX0KK0FMVEVSIFNVQlNDUklQVElPTiB7eyBjb25ufHF0 SWRlbnQob19kYXRhLm5hbWUpIH19IE9XTkVSIFRPIHt7IGRhdGEuc3Vib3duZXIgfX07Cit7JSBl bmRpZiAlfQorCit7JSBpZiBkYXRhLm5hbWUgYW5kIGRhdGEubmFtZSAhPSBvX2RhdGEubmFtZSAl fQorQUxURVIgU1VCU0NSSVBUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEubmFtZSkgfX0gUkVO QU1FIFRPIHt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19OworeyUgZW5kaWYgJX0KKworeyUg aWYgZGF0YS5lbmFibGVkIGlzIGRlZmluZWQgYW5kIGRhdGEuZW5hYmxlZCAhPSBvX2RhdGEuZW5h YmxlZCAlfQoreyUgaWYgbm90IGRhdGEuZW5hYmxlZCAlfQorQUxURVIgU1VCU0NSSVBUSU9OIHt7 IGNvbm58cXRJZGVudChvX2RhdGEubmFtZSkgfX0gRElTQUJMRTsKK3slIGVuZGlmICV9Cit7JSBl bmRpZiAlfQorCit7JSBpZiBkYXRhLnNsb3RfbmFtZSBvciBkYXRhLnN5bmMgJX0KK0FMVEVSIFNV QlNDUklQVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLm5hbWUpIH19IFNFVCAoeyUgaWYgZGF0 YS5zbG90X25hbWUgJX1zbG90X25hbWUgPSB7eyBkYXRhLnNsb3RfbmFtZSB9fXslIGlmIGFkZF9z ZW1pY29sb25fYWZ0ZXJfc2xvdF9uYW1lID09ICdzbG90X25hbWUnICV9LHslIGVuZGlmICV9eyUg ZW5kaWYgJX17JSBpZiBkYXRhLnN5bmMgJX0gc3luY2hyb25vdXNfY29tbWl0ID0gJ3t7IGRhdGEu c3luYyB9fSd7JSBlbmRpZiAlfSk7Cit7JSBlbmRpZiAlfQorCit7JSBpZiBkYXRhLmVuYWJsZWQg aXMgZGVmaW5lZCBhbmQgZGF0YS5lbmFibGVkICE9IG9fZGF0YS5lbmFibGVkICV9Cit7JSBpZiBk YXRhLmVuYWJsZWQgJX0KK0FMVEVSIFNVQlNDUklQVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRh Lm5hbWUpIH19IEVOQUJMRTsKK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQorCit7JSBpZiBkYXRh LnJlZnJlc2hfcHViICV9CitBTFRFUiBTVUJTQ1JJUFRJT04ge3sgY29ubnxxdElkZW50KG9fZGF0 YS5uYW1lKSB9fSBSRUZSRVNIIFBVQkxJQ0FUSU9OeyUgaWYgbm90IGRhdGEuY29weV9kYXRhICV9 IFdJVEggKGNvcHlfZGF0YSA9IEZhbHNlKXslIGVsc2UgJX0gV0lUSCAoY29weV9kYXRhID0gVHJ1 ZSl7JSBlbmRpZiAlfTsKK3slIGVuZGlmICV9CisKK3slIGlmIGRhdGEucHViJX0KK3slIGlmIGRh dGEucHViIGFuZCBub3QgZGF0YS5yZWZyZXNoX3B1YiBhbmQgbm90IGRhdGEuZW5hYmxlZCAlfQor QUxURVIgU1VCU0NSSVBUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEubmFtZSkgfX0gU0VUIFBV QkxJQ0FUSU9OIHslIGZvciBwdWIgaW4gZGF0YS5wdWIgJX17JSBpZiBsb29wLmluZGV4ICE9IDEg JX0seyUgZW5kaWYgJX17eyBjb25ufHF0SWRlbnQocHViKSB9fXslIGVuZGZvciAlfSBXSVRIIChy ZWZyZXNoID0gZmFsc2UpOworeyUgZWxzZSAlfQorQUxURVIgU1VCU0NSSVBUSU9OIHt7IGNvbm58 cXRJZGVudChvX2RhdGEubmFtZSkgfX0gU0VUIFBVQkxJQ0FUSU9OIHslIGZvciBwdWIgaW4gZGF0 YS5wdWIgJX17JSBpZiBsb29wLmluZGV4ICE9IDEgJX0seyUgZW5kaWYgJX17eyBjb25ufHF0SWRl bnQocHViKSB9fXslIGVuZGZvciAlfTsKK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQorCit7JSBp ZiBkYXRhLmhvc3Qgb3IgZGF0YS5wb3J0IG9yIGRhdGEudXNlcm5hbWUgb3IgZGF0YS5wYXNzd29y ZCAgb3IgZGF0YS5kYiBvciAgZGF0YS5zZXJ2aWNlIG9yIGRhdGEucGFzc2ZpbGUgJX0KK0FMVEVS IFNVQlNDUklQVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLm5hbWUpIH19IENPTk5FQ1RJT04g J2hvc3Q9e3sgb19kYXRhLmhvc3R9fSBwb3J0PXt7IG9fZGF0YS5wb3J0IH19IHVzZXI9e3sgb19k YXRhLnVzZXJuYW1lIH19IGRibmFtZT17eyBvX2RhdGEuZGIgfX17JSBpZiBkYXRhLnNlcnZpY2Ug JX0gc2VydmljZT17eyBvX2RhdGEuc2VydmljZSB9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5wYXNz ZmlsZSAlfSBwYXNzZmlsZT17eyBvX2RhdGEucGFzc2ZpbGUgfX17JSBlbmRpZiAlfXslIGlmIGRh dGEucGFzc3dvcmQgJX0gcGFzc3dvcmQ9e3sgZGF0YS5wYXNzd29yZH19eyUgZW5kaWYgJX0nOwor eyUgZW5kaWYgJX0KKworCisKKworCisKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzLzEwX3Bs dXMvYWx0ZXJfcHVibGljYXRpb25fZXZlbnQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvMTBfcGx1cy9h bHRlcl9wdWJsaWNhdGlvbl9ldmVudC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwLi5mNjI5OGYyYWUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy8xMF9w bHVzL2FsdGVyX3B1YmxpY2F0aW9uX2V2ZW50LnNxbApAQCAtMCwwICsxLDggQEAKKy0tIFB1Ymxp Y2F0aW9uIDogYWx0ZXJkX3B1YmxpY2F0aW9uOworLS0gRFJPUCBQVUJMSUNBVElPTiBhbHRlcmRf cHVibGljYXRpb247CisKKworQ1JFQVRFIFBVQkxJQ0FUSU9OIGFsdGVyZF9wdWJsaWNhdGlvbgor ICAgIEZPUiBBTEwgVEFCTEVTCisKK3dpdGggKHB1Ymxpc2ggPSAnaW5zZXJ0LHVwZGF0ZScpOwpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvMTBfcGx1cy9hbHRlcl9zdWJzY3JpcHRpb24uc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1 YnNjcmlwdGlvbnMvdGVzdHMvMTBfcGx1cy9hbHRlcl9zdWJzY3JpcHRpb24uc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNDA1ODQ0NWQzCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1 YnNjcmlwdGlvbnMvdGVzdHMvMTBfcGx1cy9hbHRlcl9zdWJzY3JpcHRpb24uc3FsCkBAIC0wLDAg KzEsNyBAQAorLS0gU3Vic2NyaXB0aW9uIDogdGVzdF9hbHRlcl9zdWJzY3JpcHRpb247CistLSBE Uk9QIFNVQlNDUklQVElPTiB0ZXN0X2FsdGVyX3N1YnNjcmlwdGlvbjsKKworQ1JFQVRFIFNVQlND UklQVElPTiB0ZXN0X2FsdGVyX3N1YnNjcmlwdGlvbgorQ09OTkVDVElPTiAnaG9zdD1sb2NhbGhv c3QgIHBvcnQ9NTQzMiB1c2VyPXBvc3RncmVzIGRibmFtZT1wb3N0Z3JlcycKK1BVQkxJQ0FUSU9O IHNhbXBsZV9fMQord2l0aCAoZW5hYmxlZCA9IEZhbHNlLCBjcmVhdGVfc2xvdCA9IEZhbHNlLCBz bG90X25hbWUgPSBOb25lLCBzeW5jaHJvbm91c19jb21taXQgPSAnb2ZmJyk7CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vi c2NyaXB0aW9ucy90ZXN0cy8xMF9wbHVzL2NyZWF0ZV9wdWJsaWNhdGlvbl91cGRhdGUuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNj cmlwdGlvbnMvdGVzdHMvMTBfcGx1cy9jcmVhdGVfcHVibGljYXRpb25fdXBkYXRlLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmU0YWU3OGZmOAotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zdWJzY3JpcHRpb25zL3Rlc3RzLzEwX3BsdXMvY3JlYXRlX3B1YmxpY2F0aW9uX3VwZGF0ZS5z cWwKQEAgLTAsMCArMSw4IEBACistLSBQdWJsaWNhdGlvbiA6IHRlc3RfcHVibGljYXRpb25fd2l0 aF91cGRhdGU7CistLSBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RfcHVibGljYXRpb25fd2l0aF91cGRh dGU7CisKKworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RfcHVibGljYXRpb25fd2l0aF91cGRhdGUK KyAgICBGT1IgQUxMIFRBQkxFUworCit3aXRoIChwdWJsaXNoID0gJ3VwZGF0ZScpOwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3N1YnNjcmlwdGlvbnMvdGVzdHMvMTBfcGx1cy9jcmVhdGVfcHVibGljYXRpb25fdXBkYXRlX21z cWwuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvMTBfcGx1cy9jcmVhdGVfcHVibGljYXRpb25fdXBkYXRl X21zcWwuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMzNhYmY5NDU3 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvMTBfcGx1cy9jcmVhdGVfcHVibGlj YXRpb25fdXBkYXRlX21zcWwuc3FsCkBAIC0wLDAgKzEsNCBAQAorQ1JFQVRFIFBVQkxJQ0FUSU9O IHRlc3RfcHVibGljYXRpb25fd2l0aF91cGRhdGUKKyAgICBGT1IgQUxMIFRBQkxFUworCit3aXRo IChwdWJsaXNoID0gJ3VwZGF0ZScpOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvMTBfcGx1 cy9jcmVhdGVfc3Vic2NyaXB0aW9uLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzLzEwX3BsdXMvY3JlYXRl X3N1YnNjcmlwdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4y M2Y0MWNlYWUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy8xMF9wbHVzL2NyZWF0 ZV9zdWJzY3JpcHRpb24uc3FsCkBAIC0wLDAgKzEsNyBAQAorLS0gU3Vic2NyaXB0aW9uIDogdGVz dF9jcmVhdGVfc3Vic2NyaXB0aW9uOworLS0gRFJPUCBTVUJTQ1JJUFRJT04gdGVzdF9jcmVhdGVf c3Vic2NyaXB0aW9uOworCitDUkVBVEUgU1VCU0NSSVBUSU9OIHRlc3RfY3JlYXRlX3N1YnNjcmlw dGlvbgorQ09OTkVDVElPTiAnaG9zdD1sb2NhbGhvc3QgIHBvcnQ9NTQzMiB1c2VyPXBvc3RncmVz IGRibmFtZT1wb3N0Z3JlcycKK1BVQkxJQ0FUSU9OIHNhbXBsZV9fMQord2l0aCAoZW5hYmxlZCA9 IEZhbHNlLCBjcmVhdGVfc2xvdCA9IEZhbHNlLCBzbG90X25hbWUgPSBOb25lLCBzeW5jaHJvbm91 c19jb21taXQgPSAnb2ZmJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy8xMF9wbHVzL2Ny ZWF0ZV9zdWJzY3JpcHRpb25fbXNxbC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy8xMF9wbHVzL2NyZWF0 ZV9zdWJzY3JpcHRpb25fbXNxbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwLi5lMWNkODNhMDUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy8xMF9wbHVz L2NyZWF0ZV9zdWJzY3JpcHRpb25fbXNxbC5zcWwKQEAgLTAsMCArMSw0IEBACitDUkVBVEUgU1VC U0NSSVBUSU9OIHRlc3RfY3JlYXRlX3N1YnNjcmlwdGlvbgorQ09OTkVDVElPTiAnaG9zdD1sb2Nh bGhvc3QgcG9ydD01NDMyIHVzZXI9cG9zdGdyZXMgZGJuYW1lPXBvc3RncmVzIHBhc3N3b3JkPWVk YicKK1BVQkxJQ0FUSU9OIHNhbXBsZV9fMQord2l0aCAoY29ubmVjdCA9IEZhbHNlLCBlbmFibGVk ID0gRmFsc2UsIGNyZWF0ZV9zbG90ID0gRmFsc2UsIHNsb3RfbmFtZSA9IE5vbmUsIHN5bmNocm9u b3VzX2NvbW1pdCA9ICdvZmYnKTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzLzEwX3BsdXMv dGVzdC5qc29uIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvMTBfcGx1cy90ZXN0Lmpzb24KbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi43ZjE0MDY3MzgKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2Ny aXB0aW9ucy90ZXN0cy8xMF9wbHVzL3Rlc3QuanNvbgpAQCAtMCwwICsxLDQ5IEBACit7CisgICJz Y2VuYXJpb3MiOiBbCisgICAgeworICAgICAgInR5cGUiOiAiY3JlYXRlIiwKKyAgICAgICJuYW1l IjogIkNyZWF0ZSAgU3Vic2NyaXB0aW9uIiwKKyAgICAgICJlbmRwb2ludCI6ICJOT0RFLXN1YnNj cmlwdGlvbi5vYmoiLAorICAgICAgInNxbF9lbmRwb2ludCI6ICJOT0RFLXN1YnNjcmlwdGlvbi5z cWxfaWQiLAorICAgICAgIm1zcWxfZW5kcG9pbnQiOiAiTk9ERS1zdWJzY3JpcHRpb24ubXNxbCIs CisgICAgICAiZGF0YSI6IHsKKyAgICAgICAgICAidXNlcm5hbWUiOiAicG9zdGdyZXMiLAorICAg ICAgICAgICJuYW1lIjogInRlc3RfY3JlYXRlX3N1YnNjcmlwdGlvbiIsCisgICAgICAgICAgImNv bm5lY3QiOiBmYWxzZSwKKyAgICAgICAgICAiY29weV9kYXRhIjogZmFsc2UsCisgICAgICAgICAg ImNyZWF0ZV9zbG90IjogZmFsc2UsCisgICAgICAgICAgImRiIjogInBvc3RncmVzIiwKKyAgICAg ICAgICAic3Vib3duZXIiOiAicG9zdGdyZXMiLAorICAgICAgICAgICJlbmFibGVkIjogZmFsc2Us CisgICAgICAgICAgImhvc3QiOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAic2xvdF9uYW1lIjog Ik5vbmUiLAorICAgICAgICAgICJzZXJ2aWNlIjogIiIsCisgICAgICAgICAgInBvcnQiOiA1NDMy LAorICAgICAgICAgICJwYXNzd29yZCI6ICJlZGIiLAorICAgICAgICAgICJzeW5jIjogIm9mZiIs CisgICAgICAgICAgInB1YiI6ICJbXCJzYW1wbGVfXzFcIl0iCisgICAgICB9LAorICAgICAgImV4 cGVjdGVkX3NxbF9maWxlIjogImNyZWF0ZV9zdWJzY3JpcHRpb24uc3FsIiwKKyAgICAgICJleHBl Y3RlZF9tc3FsX2ZpbGUiOiAiY3JlYXRlX3N1YnNjcmlwdGlvbl9tc3FsLnNxbCIKKyAgICB9LAor ICAgIHsKKyAgICAgICJ0eXBlIjogImFsdGVyIiwKKyAgICAgICJuYW1lIjogIkFsdGVyICBTdWJz Y3JpcHRpb24iLAorICAgICAgImVuZHBvaW50IjogIk5PREUtc3Vic2NyaXB0aW9uLm9ial9pZCIs CisgICAgICAic3FsX2VuZHBvaW50IjogIk5PREUtc3Vic2NyaXB0aW9uLnNxbF9pZCIsCisgICAg ICAiZGF0YSI6IHsKKyAgICAgICAgICAibmFtZSI6ICJ0ZXN0X2FsdGVyX3N1YnNjcmlwdGlvbiIK KyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfc3FsX2ZpbGUiOiAiYWx0ZXJfc3Vic2NyaXB0aW9u LnNxbCIKKyAgICB9LAorCisgICAgeworICAgICAgInR5cGUiOiAiZGVsZXRlIiwKKyAgICAgICJu YW1lIjogIkRyb3Agc3Vic2NyaXB0aW9uIiwKKyAgICAgICJlbmRwb2ludCI6ICJOT0RFLXN1YnNj cmlwdGlvbi5kZWxldGVfaWQiLAorICAgICAgImRhdGEiOiB7CisgICAgICAgICJuYW1lIjogInRl c3RfYWx0ZXJfc3Vic2NyaXB0aW9uIgorICAgICAgfQorICAgIH0KKyAgXQorfQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1 YnNjcmlwdGlvbnMvdGVzdHMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy9fX2luaXRfXy5w eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjI3Y2Q4OTA2NwotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTYgQEAK KyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMK KyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVh bQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2Vu Y2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBv cnQgQmFzZVRlc3RHZW5lcmF0b3IKKworCitjbGFzcyBSdWxlc1Rlc3RHZW5lcmF0b3IoQmFzZVRl c3RHZW5lcmF0b3IpOgorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgIHJldHVybiBb XQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvc3Vic2NyaXB0aW9uX3Rlc3RfZGF0YS5qc29u IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1 YnNjcmlwdGlvbnMvdGVzdHMvc3Vic2NyaXB0aW9uX3Rlc3RfZGF0YS5qc29uCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNmY4YWNkMjcwCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNj cmlwdGlvbnMvdGVzdHMvc3Vic2NyaXB0aW9uX3Rlc3RfZGF0YS5qc29uCkBAIC0wLDAgKzEsNDMy IEBACit7CisgICJhZGRfc3Vic2NyaXB0aW9uIjogWworICAgIHsKKyAgICAgICJuYW1lIjogIkNy ZWF0ZSBzdWJzY3JpcHRpb24gd2l0aCBpbnNlcnQgYW5kIHVwZGF0ZSIsCisgICAgICAidXJsIjog Ii9icm93c2VyL3N1YnNjcmlwdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0Ijog dHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICAgInVzZXJuYW1lIjogInBvc3Rn cmVzIiwKKyAgICAgICAgICAibmFtZSI6ICJQTEFDRUhPTERFUiIsCisgICAgICAgICAgImNvbm5l Y3QiOiBmYWxzZSwKKyAgICAgICAgICAiY29weV9kYXRhIjogZmFsc2UsCisgICAgICAgICAgImNy ZWF0ZV9zbG90IjogZmFsc2UsCisgICAgICAgICAgImRiIjogInBvc3RncmVzIiwKKyAgICAgICAg ICAic3Vib3duZXIiOiAicG9zdGdyZXMiLAorICAgICAgICAgICJlbmFibGVkIjogZmFsc2UsCisg ICAgICAgICAgImhvc3QiOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAic2xvdF9uYW1lIjogIk5P TkUiLAorICAgICAgICAgICJzZXJ2aWNlIjogIiIsCisgICAgICAgICAgInBvcnQiOiA1NDMyLAor ICAgICAgICAgICJwYXNzd29yZCI6ICIiLAorICAgICAgICAgICJzeW5jIjogIm9mZiIsCisgICAg ICAgICAgInB1YiI6ICJQTEFDRV9IT0xERVIiCisgICAgICB9LAorICAgICAgIm1vY2tpbmdfcmVx dWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9k YXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAg IHsKKyAgICAgICJuYW1lIjogIkNyZWF0ZSBzdWJzY3JpcHRpb24gZm9yIGZldyB0YWJsZXMiLAor ICAgICAgInVybCI6ICIvYnJvd3Nlci9zdWJzY3JpcHRpb24vb2JqLyIsCisgICAgICAiaXNfcG9z aXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAiZ2V0X3B1YmxpY2F0aW9uIjogdHJ1ZSwKKyAgICAg ICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICAgInVzZXJuYW1lIjogInBvc3RncmVzIiwKKyAgICAg ICAgICAibmFtZSI6ICJQTEFDRUhPTERFUiIsCisgICAgICAgICAgImNvbm5lY3QiOiBmYWxzZSwK KyAgICAgICAgICAiY29weV9kYXRhIjogZmFsc2UsCisgICAgICAgICAgImNyZWF0ZV9zbG90Ijog ZmFsc2UsCisgICAgICAgICAgImRiIjogInBvc3RncmVzIiwKKyAgICAgICAgICAic3Vib3duZXIi OiAicG9zdGdyZXMiLAorICAgICAgICAgICJlbmFibGVkIjogZmFsc2UsCisgICAgICAgICAgImhv c3QiOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAic2xvdF9uYW1lIjogIk5PTkUiLAorICAgICAg ICAgICJzZXJ2aWNlIjogIiIsCisgICAgICAgICAgInBvcnQiOiA1NDMyLAorICAgICAgICAgICJw YXNzd29yZCI6ICIiLAorICAgICAgICAgICJzeW5jIjogIm9mZiIsCisgICAgICAgICAgInB1YiI6 ICJQTEFDRV9IT0xERVIiCisgICAgICB9LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxz ZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAg ICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJu YW1lIjogIkNyZWF0ZSBhIHN1YnNjcmlwdGlvbiB3aXRob3V0IG5hbWUiLAorICAgICAgInVybCI6 ICIvYnJvd3Nlci9zdWJzY3JpcHRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6 IGZhbHNlLAorICAgICAgIndpdGhvdXRfbmFtZSI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjog eworICAgICAgICAgICJ1c2VybmFtZSI6ICJwb3N0Z3JlcyIsCisgICAgICAgICAgIm5hbWUiOiAi UExBQ0VIT0xERVIiLAorICAgICAgICAgICJjb25uZWN0IjogZmFsc2UsCisgICAgICAgICAgImNv cHlfZGF0YSI6IGZhbHNlLAorICAgICAgICAgICJjcmVhdGVfc2xvdCI6IGZhbHNlLAorICAgICAg ICAgICJkYiI6ICJwb3N0Z3JlcyIsCisgICAgICAgICAgInN1Ym93bmVyIjogInBvc3RncmVzIiwK KyAgICAgICAgICAiZW5hYmxlZCI6IGZhbHNlLAorICAgICAgICAgICJob3N0IjogImxvY2FsaG9z dCIsCisgICAgICAgICAgInNsb3RfbmFtZSI6ICJOT05FIiwKKyAgICAgICAgICAic2VydmljZSI6 ICIiLAorICAgICAgICAgICJwb3J0IjogNTQzMiwKKyAgICAgICAgICAicGFzc3dvcmQiOiAiIiwK KyAgICAgICAgICAic3luYyI6ICJvZmYiLAorICAgICAgICAgICJwdWIiOiAiUExBQ0VfSE9MREVS IgorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9j a19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19j b2RlIjogNDEwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJFcnJvciB3 aGlsZSBhZGRpbmcgYSBzdWJzY3JpcHRpb24iLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zdWJz Y3JpcHRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAorICAgICAg ImVycm9yX2NyZWF0aW5nX3N1YnNjcmlwdGlvbiI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjog eworICAgICAgICAgICJ1c2VybmFtZSI6ICJwb3N0Z3JlcyIsCisgICAgICAgICAgIm5hbWUiOiAi UExBQ0VIT0xERVIiLAorICAgICAgICAgICJjb25uZWN0IjogZmFsc2UsCisgICAgICAgICAgImNv cHlfZGF0YSI6IGZhbHNlLAorICAgICAgICAgICJjcmVhdGVfc2xvdCI6IGZhbHNlLAorICAgICAg ICAgICJkYiI6ICJwb3N0Z3JlcyIsCisgICAgICAgICAgInN1Ym93bmVyIjogInBvc3RncmVzIiwK KyAgICAgICAgICAiZW5hYmxlZCI6IGZhbHNlLAorICAgICAgICAgICJob3N0IjogImxvY2FsaG9z dCIsCisgICAgICAgICAgInNsb3RfbmFtZSI6ICJOT05FIiwKKyAgICAgICAgICAic2VydmljZSI6 ICIiLAorICAgICAgICAgICJwb3J0IjogNTQzMiwKKyAgICAgICAgICAicGFzc3dvcmQiOiAiIiwK KyAgICAgICAgICAic3luYyI6ICJvZmYiLAorICAgICAgICAgICJwdWIiOiAiUExBQ0VfSE9MREVS IgorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogdHJ1ZSwKKyAgICAgICJtb2Nr X2RhdGEiOiB7CisgICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRpbHMuZHJpdmVy LnBzeWNvcGcyLmNvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlX2RpY3QiLAorICAgICAgICAi cmV0dXJuX3ZhbHVlIjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3IgJyki CisgICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29k ZSI6IDUwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiRXhjZXB0aW9u IHdoaWxlIGFkZGluZyBhIHN1YnNjcmlwdGlvbiIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1 YnNjcmlwdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAg ICAidGVzdF9kYXRhIjogeworICAgICAgICAgICJ1c2VybmFtZSI6ICJwb3N0Z3JlcyIsCisgICAg ICAgICAgIm5hbWUiOiAiUExBQ0VIT0xERVIiLAorICAgICAgICAgICJjb25uZWN0IjogZmFsc2Us CisgICAgICAgICAgImNvcHlfZGF0YSI6IGZhbHNlLAorICAgICAgICAgICJjcmVhdGVfc2xvdCI6 IGZhbHNlLAorICAgICAgICAgICJkYiI6ICJwb3N0Z3JlcyIsCisgICAgICAgICAgInN1Ym93bmVy IjogInBvc3RncmVzIiwKKyAgICAgICAgICAiZW5hYmxlZCI6IGZhbHNlLAorICAgICAgICAgICJo b3N0IjogImxvY2FsaG9zdCIsCisgICAgICAgICAgInNsb3RfbmFtZSI6ICJOT05FIiwKKyAgICAg ICAgICAic2VydmljZSI6ICIiLAorICAgICAgICAgICJwb3J0IjogNTQzMiwKKyAgICAgICAgICAi cGFzc3dvcmQiOiAiIiwKKyAgICAgICAgICAic3luYyI6ICJvZmYiLAorICAgICAgICAgICJwdWIi OiAiUExBQ0VfSE9MREVSIgorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogdHJ1 ZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7CisgICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRt aW4udXRpbHMuZHJpdmVyLnBzeWNvcGcyLmNvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlX2Rp Y3QiLAorICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihUcnVlLCBUcnVlKShGYWxzZSwgJ01vY2tl ZCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3IgJykiCisgICAgICB9LAorICAgICAgImV4cGVjdGVkX2Rh dGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAgfQorICAgIH0KKyAgXSwK KyAgImdldF9zdWJzY3JpcHRpb24iOiBbCisgICAgeworICAgICAgIm5hbWUiOiAiR2V0IGEgc3Vi c2NyaXB0aW9uIFVSTCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlvbi9vYmov IiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVp cmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0 YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7 CisgICAgICAibmFtZSI6ICJFcnJvciB3aGlsZSBmZXRjaGluZyBhIHN1YnNjcmlwdGlvbiBwcm9w ZXJ0aWVzIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL29iai8iLAorICAg ICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiBmYWxzZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjog dHJ1ZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7CisgICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBn YWRtaW4udXRpbHMuZHJpdmVyLnBzeWNvcGcyLmNvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRl X2RpY3QiLAorICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5h bCBTZXJ2ZXIgRXJyb3InKSIKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAg ICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAi bmFtZSI6ICJHZXQgYSBzdWJzY3JpcHRpb24gcHJvcGVydGllcyB1bmRlciBkYXRhYmFzZSBub2Rl cyIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlvbi9vYmovIiwKKyAgICAgICJp c19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJkYXRhYmFzZV9ub2RlcyI6IHRydWUsCisg ICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAor ICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAg ICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiRXJyb3Igd2hpbGUgZmV0Y2hpbmcg YSBzdWJzY3JpcHRpb24gcHJvcGVydGllcyB1bmRlciBkYXRhYmFzZSBub2RlcyIsCisgICAgICAi dXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90 ZXN0IjogZmFsc2UsCisgICAgICAiZGF0YWJhc2Vfbm9kZXMiOiB0cnVlLAorICAgICAgIm1vY2tp bmdfcmVxdWlyZWQiOiB0cnVlLAorICAgICAgIm1vY2tfZGF0YSI6IHsKKyAgICAgICAgImZ1bmN0 aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuY29ubmVjdGlvbi5Db25u ZWN0aW9uLmV4ZWN1dGVfZGljdCIsCisgICAgICAgICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAn TW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJvcicpIgorICAgICAgfSwKKyAgICAgICJleHBlY3Rl ZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgIH0KKyAgICB9LAor ICAgIHsKKyAgICAgICJuYW1lIjogIkdldCBhIHN1YnNjcmlwdGlvbiBOb2RlIiwKKyAgICAgICJ1 cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL25vZGVzLyIsCisgICAgICAiaXNfcG9zaXRpdmVf dGVzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1v Y2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNf Y29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiR2V0IGEg c3Vic2NyaXB0aW9uIE5vZGUgZGVwZW5kYW50cyIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1 YnNjcmlwdGlvbi9kZXBlbmRlbnQvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwK KyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30s CisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisg ICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJHZXQgYSBzdWJzY3JpcHRpb24g Tm9kZSBkZXBlbmRlbmN5IiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL2Rl cGVuZGVuY3kvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2Nr aW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhw ZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAg fSwKKyAgICB7CisgICAgICAibmFtZSI6ICJFcnJvciB3aGlsZSBmZXRjaGluZyB0aGUgc3Vic2Ny aXB0aW9uIHVuZGVyIHRoZSBkYXRhYmFzZSBub2RlcyB1c2luZyB3cm9uZyBkYXRhYmFzZSBpZCIs CisgICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlvbi9ub2Rlcy8iLAorICAgICAgImlz X3Bvc2l0aXZlX3Rlc3QiOiBmYWxzZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogdHJ1ZSwK KyAgICAgICJtb2NrX2RhdGEiOiB7CisgICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRtaW4u dXRpbHMuZHJpdmVyLnBzeWNvcGcyLmNvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlXzJkYXJy YXkiLAorICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBT ZXJ2ZXIgRXJyb3InKSIKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAg ICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFt ZSI6ICJHZXQgYWxsIHRoZSBzdWJzY3JpcHRpb24gdW5kZXIgdGhlIGRhdGFiYXNlIG5vZGVzIiwK KyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL25vZGVzLyIsCisgICAgICAiaXNf cG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAor ICAgICAgImRhdGFiYXNlX25vZGVzIjogdHJ1ZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAg ICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAg IH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkdldCBhbGwgdGhlIHN1YnNjcmlwdGlv biB1bmRlciB0aGUgZGF0YWJhc2Ugbm9kZXMgdXNpbmcgd3JvbmcgZGF0YWJhc2UgaWQiLAorICAg ICAgInVybCI6ICIvYnJvd3Nlci9zdWJzY3JpcHRpb24vbm9kZXMvIiwKKyAgICAgICJpc19wb3Np dGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJpbmNvcnJlY3RfZGF0YWJhc2VfaWQiOiB0cnVlLAor ICAgICAgImRhdGFiYXNlX25vZGVzIjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjog ZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsK KyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAg ICAibmFtZSI6ICJFcnJvciB3aGlsZSBmZXRjaGluZyBhbGwgdGhlIHN1YnNjcmlwdGlvbiB1bmRl ciB0aGUgZGF0YWJhc2Ugbm9kZXMgdXNpbmcgd3JvbmcgZGF0YWJhc2UgaWQiLAorICAgICAgInVy bCI6ICIvYnJvd3Nlci9zdWJzY3JpcHRpb24vbm9kZXMvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90 ZXN0IjogZmFsc2UsCisgICAgICAiZGF0YWJhc2Vfbm9kZXMiOiB0cnVlLAorICAgICAgIm1vY2tp bmdfcmVxdWlyZWQiOiB0cnVlLAorICAgICAgIm1vY2tfZGF0YSI6IHsKKyAgICAgICAgImZ1bmN0 aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuY29ubmVjdGlvbi5Db25u ZWN0aW9uLmV4ZWN1dGVfMmRhcnJheSIsCisgICAgICAgICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNl LCAnTW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJvcicpIgorICAgICAgfSwKKyAgICAgICJleHBl Y3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgIH0KKyAgICB9 CisgIF0sCisgICJkZWxldGVfc3Vic2NyaXB0aW9uIjogWworICAgIHsKKyAgICAgICJuYW1lIjog IkRlbGV0ZSBhIHN1YnNjcmlwdGlvbiBVUkwiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zdWJz Y3JpcHRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAi bW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAg ImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQor ICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiRXJyb3Igd2hpbGUgZGVsZXRpbmcgdGhlIHN1 YnNjcmlwdGlvbiIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlvbi9vYmovIiwK KyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAibW9ja2luZ19yZXF1aXJl ZCI6IHRydWUsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAgICAiZnVuY3Rpb25fbmFtZSI6 ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi5jb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhl Y3V0ZV9zY2FsYXIiLAorICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihGYWxzZSwgJ01vY2tlZCBJ bnRlcm5hbCBTZXJ2ZXIgRXJyb3InKSIKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6 IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICB9CisgICAgfQorICBdLAorICAi dXBkYXRlX3N1YnNjcmlwdGlvbiI6IFsKKyAgICB7CisgICAgICAibmFtZSI6ICJ1cGRhdGUgYSBz dWJzY3JpcHRpb24gbmFtZSIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlvbi9v YmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJ1cGRhdGVfbmFt ZSI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAibmFtZSI6ICJQTEFDRV9I T0xERVIiLAorICAgICAgICAiaWQiOiAiUExBQ0VfSE9MREVSIgorICAgICAgfSwKKyAgICAgICJt b2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAi ZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9Cisg ICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJ1cGRhdGUgYSBzdWJzY3JpcHRpb24gZXZlbnQg aW5zZXJ0IiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL29iai8iLAorICAg ICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm93bmVyX3N1YnNjcmlwdGlvbiI6 IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAiaWQiOiAiUExBQ0VfSE9MREVS IiwKKyAgICAgICAgInBvcnQiOiAiNTQ0NCIKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1 aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2Rh dGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAg eworICAgICAgIm5hbWUiOiAidXBkYXRlIGEgc3Vic2NyaXB0aW9uIGV2ZW50IGRlbGV0ZSIsCisg ICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3Np dGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJvd25lcl9zdWJzY3JpcHRpb24iOiB0cnVlLAorICAg ICAgInRlc3RfZGF0YSI6IHsKKyAgICAgICAgImlkIjogIlBMQUNFX0hPTERFUiIsCisgICAgICAg ICJwb3J0IjogIjQ0NDQiCisgICAgICB9LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxz ZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAg ICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJu YW1lIjogIkVycm9yIHdoaWxlIGZldGNoaW5nIGEgc3Vic2NyaXB0aW9uIHRvIHVwZGF0ZSIsCisg ICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3Np dGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IHRydWUsCisgICAg ICAidGVzdF9kYXRhIjogeworICAgICAgICAibmFtZSI6ICJQTEFDRV9IT0xERVIiLAorICAgICAg ICAiaWQiOiAiUExBQ0VfSE9MREVSIgorICAgICAgfSwKKyAgICAgICJtb2NrX2RhdGEiOiB7Cisg ICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRpbHMuZHJpdmVyLnBzeWNvcGcyLmNv bm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlX2RpY3QiLAorICAgICAgICAicmV0dXJuX3ZhbHVl IjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InKSIKKyAgICAgIH0sCisg ICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAg ICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJFcnJvciB3aGlsZSBmZXRjaGluZyBh IHN1YnNjcmlwdGlvbiB0byB1cGRhdGUgdXNpbmcgd3Jvbmcgc3Vic2NyaXB0aW9uIGlkIiwKKyAg ICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL29iai8iLAorICAgICAgImlzX3Bvc2l0 aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIndyb25nX3N1YnNjcmlwdGlvbl9pZCI6IHRydWUsCisg ICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgInRlc3RfZGF0YSI6IHsKKyAg ICAgICAgImlkIjogIlBMQUNFX0hPTERFUiIKKyAgICAgIH0sCisgICAgICAibW9ja19kYXRhIjog e30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNTAw CisgICAgICB9CisgICAgfQorICBdLAorICAiZGVsZXRlX211bHRpcGxlX3N1YnNjcmlwdGlvbiI6 IFsKKyAgICB7CisgICAgICAibmFtZSI6ICJEZWxldGUgbXVsdGlwbGUgc3Vic2NyaXB0aW9uIiwK KyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL29iai8iLAorICAgICAgImlzX3Bv c2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAg ICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAi c3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9CisgIF0sCisgICJzcWxfc3Vic2NyaXB0 aW9uIjogWworICAgIHsKKyAgICAgICJuYW1lIjogIkZldGNoIHRoZSBzdWJzY3JpcHRpb24gU1FM IiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL3NxbC8iLAorICAgICAgImlz X3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwK KyAgICAgICJtb2NrX2RhdGEiOiB7CisgICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7 CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAg ICAgIm5hbWUiOiAiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgYSBzdWJzY3JpcHRpb24gU1FMIiwKKyAg ICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL3NxbC8iLAorICAgICAgImlzX3Bvc2l0 aXZlX3Rlc3QiOiBmYWxzZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogdHJ1ZSwKKyAgICAg ICJtb2NrX2RhdGEiOiB7CisgICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRpbHMu ZHJpdmVyLnBzeWNvcGcyLmNvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlX2RpY3QiLAorICAg ICAgICAicmV0dXJuX3ZhbHVlIjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIgRXJy b3InKSIKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1 c19jb2RlIjogNTAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJGZXRj aGluZyBhIHN1YnNjcmlwdGlvbiBtU1FMIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2Ny aXB0aW9uL21zcWwvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJt b2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAgICAi ZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi5jb25uZWN0aW9u LkNvbm5lY3Rpb24uZXhlY3V0ZV9kaWN0IiwKKyAgICAgICAgInJldHVybl92YWx1ZSI6ICIoRmFs c2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyIEVycm9yJykiCisgICAgICB9LAorICAgICAgImV4 cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAg IH0KKyAgXQorfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvdGVzdF9zdWJzY3JpcHRpb25f Y3JlYXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvdGVzdF9zdWJzY3JpcHRpb25fY3JlYXRlLnB5Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNzNiZDM1M2I4Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvdGVzdF9zdWJzY3JpcHRpb25fY3JlYXRlLnB5CkBAIC0w LDAgKzEsOTcgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVT UUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2 ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0 Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCBqc29uCitpbXBv cnQgdXVpZAorZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAorCitmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRl c3RzIFwKKyAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBh cyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQg QmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGlj dAorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFz IHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHN1YnNjcmlwdGlvbl91dGlscworCisKK2Ns YXNzIFB1YmxpY2F0aW9uc0FkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiJU aGlzIGNsYXNzIHdpbGwgYWRkIG5ldyBzdWJzY3JpcHRpb24iIiIKKyAgICBzY2VuYXJpb3MgPSB1 dGlscy5nZW5lcmF0ZV9zY2VuYXJpb3MoJ2FkZF9zdWJzY3JpcHRpb24nLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25fdXRpbHMudGVzdF9jYXNl cykKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50 X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgICAgICBzY2hlbWFfaW5m byA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9p ZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQorICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1h X2luZm9bImRiX2lkIl0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJz Y2hlbWFfbmFtZSJdCisgICAgICAgIHNlbGYuc2VydmVyX3ZlcnNpb24gPSBzY2hlbWFfaW5mb1si c2VydmVyX3ZlcnNpb24iXQorICAgICAgICBpZiBzZWxmLnNlcnZlcl92ZXJzaW9uIDwgOTk5OTk6 CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KAorICAgICAgICAgICAgICAgICJMb2dpY2FsIHJl cGxpY2F0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgIgorICAgICAgICAgICAgICAgICJmb3Igc2VydmVy IHZlcnNpb24gbGVzcyB0aGFuIDEwIgorCisgICAgICAgICAgICApCisKKyAgICAgICAgZGJfY29u ID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JP VVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsi Y29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAg ICAgIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBhIHN1YnNjcmlwdGlvbi4i KQorCisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdCBhbmQgaGFzYXR0cihzZWxmLCAn ZmV3X3RhYmxlc18xMScpOgorICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRhYmxlX2Nv bHVtbl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgICAgIHNlbGYudGFi bGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkKKworICAgICAgICAgICAgc2VsZi50ZXN0 X2RhdGFbJ3B1YnRhYmxlJ10gPSBzdWJzY3JpcHRpb25fdXRpbHMuZ2V0X3RhYmxlcyhzZWxmKQor CisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBz dWJzY3JpcHRpb24uIiIiCisgICAgICAgIHNlbGYudGVzdF9kYXRhWyduYW1lJ10gPSBcCisgICAg ICAgICAgICAidGVzdF9zdWJzY3JpcHRpb25fYWRkXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsx OjhdKQorCisgICAgICAgIHNlbGYudGVzdF9kYXRhWydwdWInXSA9ICIiIlsic2FtcGxlX18xIl0i IiIKKworICAgICAgICBkYXRhID0gc2VsZi50ZXN0X2RhdGEKKyAgICAgICAgaWYgc2VsZi5pc19w b3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmNyZWF0ZV9zdWJzY3Jp cHRpb24oKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnd2l0 aG91dF9uYW1lJyk6CisgICAgICAgICAgICAgICAgZGVsIGRhdGFbIm5hbWUiXQorICAgICAgICAg ICAgICAgIHJlc3BvbnNlID0gc2VsZi5jcmVhdGVfc3Vic2NyaXB0aW9uKCkKKyAgICAgICAgICAg IGVsaWYgaGFzYXR0cihzZWxmLCAnZXJyb3JfY3JlYXRpbmdfc3Vic2NyaXB0aW9uJyk6CisgICAg ICAgICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPWV2YWwoc2VsZi5tb2NrX2Rh dGFbInJldHVybl92YWx1ZSJdKSk6CisgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2Vs Zi5jcmVhdGVfc3Vic2NyaXB0aW9uKCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg ICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2lkZV9lZmZlY3Q9c2VsZi5tb2NrX2RhdGFbInJldHVybl92YWx1 ZSJdKToKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmNyZWF0ZV9zdWJzY3Jp cHRpb24oKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1c19jb2RlLAor ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfZGF0YVsic3RhdHVzX2NvZGUi XSkKKworICAgIGRlZiBjcmVhdGVfc3Vic2NyaXB0aW9uKHNlbGYpOgorICAgICAgICByZXR1cm4g c2VsZi50ZXN0ZXIucG9zdCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZF Ul9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyAr IHN0cigKKyAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKSArICcvJywKKyAgICAgICAgICAgIGRh dGE9anNvbi5kdW1wcyhzZWxmLnRlc3RfZGF0YSksCisgICAgICAgICAgICBjb250ZW50X3R5cGU9 J2h0bWwvanNvbicpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIGlmIHNlbGYu aXNfcG9zaXRpdmVfdGVzdDoKKyAgICAgICAgICAgIHN1YnNjcmlwdGlvbl91dGlscy5kZWxldGVf c3Vic2NyaXB0aW9uKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRlc3RfZGF0YVsnbmFtZSdd KQorCisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2Vf dXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9p ZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL3Rlc3Rfc3Vic2NyaXB0aW9uX2RlbGV0ZS5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z dWJzY3JpcHRpb25zL3Rlc3RzL3Rlc3Rfc3Vic2NyaXB0aW9uX2RlbGV0ZS5weQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjdjZDJhYWZjZQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJz Y3JpcHRpb25zL3Rlc3RzL3Rlc3Rfc3Vic2NyaXB0aW9uX2RlbGV0ZS5weQpAQCAtMCwwICsxLDkz IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xz CisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50 IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBM aWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQgdXVpZAorZnJvbSB1bml0dGVz dC5tb2NrIGltcG9ydCBwYXRjaAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBz Y2hlbWFfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJv bSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdy ZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rl c3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMg YXMgc3Vic2NyaXB0aW9uX3V0aWxzCisKKworY2xhc3MgUHVibGljYXRpb25EZWxldGVUZXN0Q2Fz ZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSBzdWJz Y3JpcHRpb24uIiIiCisgICAgc2NlbmFyaW9zID0gdXRpbHMuZ2VuZXJhdGVfc2NlbmFyaW9zKCdk ZWxldGVfc3Vic2NyaXB0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3Vic2NyaXB0aW9uX3V0aWxzLnRlc3RfY2FzZXMpCisKKyAgICBkZWYgc2V0VXAoc2Vs Zik6CisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1b LTFdWyJkYl9uYW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJz Y2hlbWEiXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVy X2lkIl0KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAg IHNlbGYuc2VydmVyX3ZlcnNpb24gPSBzY2hlbWFfaW5mb1sic2VydmVyX3ZlcnNpb24iXQorICAg ICAgICBpZiBzZWxmLnNlcnZlcl92ZXJzaW9uIDwgOTk5OTk6CisgICAgICAgICAgICBzZWxmLnNr aXBUZXN0KAorICAgICAgICAgICAgICAgICJMb2dpY2FsIHJlcGxpY2F0aW9uIGlzIG5vdCBzdXBw b3J0ZWQgIgorICAgICAgICAgICAgICAgICJmb3Igc2VydmVyIHZlcnNpb24gbGVzcyB0aGFuIDEw IgorCisgICAgICAgICAgICApCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5l Y3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lk KQorICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJDb3VsZCBub3QgY29ubmVjdCB0 byBkYXRhYmFzZSB0byBkZWxldGUgc3Vic2NyaXB0aW9uLiIpCisgICAgICAgIHNlbGYuc2NoZW1h X2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUg PSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBz Y2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNj aGVtYV9uYW1lKQorICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgorICAgICAgICAgICAg cmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGRlbGV0ZSAiCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnNjcmlwdGlvbi4iKQorICAgICAgICBzZWxm LnN1YnNjcmlwdGlvbl9uYW1lID0gInRlc3Rfc3Vic2NyaXB0aW9uX2RlbGV0ZV8lcyIgJSAoCisg ICAgICAgICAgICBzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorCisgICAgICAgIHNlbGYuc3Vic2Ny aXB0aW9uX2lkID0gc3Vic2NyaXB0aW9uX3V0aWxzLmNyZWF0ZV9zdWJzY3JpcHRpb24oCisgICAg ICAgICAgICBzZWxmLnNlcnZlciwKKyAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAg ICAgIHNlbGYuc3Vic2NyaXB0aW9uX25hbWUpCisKKyAgICBkZWYgZGVsZXRlX3N1YnNjcmlwdGlv bihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYudGVzdGVyLmRlbGV0ZSgKKyAgICAgICAgICAg IHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAg c3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArCisgICAgICAgICAg ICAnLycgKyBzdHIoc2VsZi5zdWJzY3JpcHRpb25faWQpLAorICAgICAgICAgICAgZm9sbG93X3Jl ZGlyZWN0cz1UcnVlKQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIlRoaXMg ZnVuY3Rpb24gd2lsbCBkZWxldGUgc3Vic2NyaXB0aW9uIiIiCisgICAgICAgIHN1YnNjcmlwdGlv bl9yZXNwb25zZSA9IHN1YnNjcmlwdGlvbl91dGlscy52ZXJpZnlfc3Vic2NyaXB0aW9uKAorICAg ICAgICAgICAgc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAg ICAgICBzZWxmLnN1YnNjcmlwdGlvbl9uYW1lKQorICAgICAgICBpZiBub3Qgc3Vic2NyaXB0aW9u X3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0 aGUgc3Vic2NyaXB0aW9uIHRvIGRlbGV0ZS4iKQorCisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRp dmVfdGVzdDoKKyAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgImludmFsaWRfc3Vic2NyaXB0 aW9uX2lkIik6CisgICAgICAgICAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25faWQgPSA5OTk5Cisg ICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZGVsZXRlX3N1YnNjcmlwdGlvbigpCisgICAgICAg IGVsc2U6CisgICAgICAgICAgICB3aXRoIHBhdGNoKHNlbGYubW9ja19kYXRhWyJmdW5jdGlvbl9u YW1lIl0sCisgICAgICAgICAgICAgICAgICAgICAgIHJldHVybl92YWx1ZT1ldmFsKHNlbGYubW9j a19kYXRhWyJyZXR1cm5fdmFsdWUiXSkpOgorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2Vs Zi5kZWxldGVfc3Vic2NyaXB0aW9uKCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3Bv bnNlLnN0YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRf ZGF0YVsic3RhdHVzX2NvZGUiXSkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAg IyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAgICAgICBzdWJzY3JpcHRpb25fdXRpbHMuZGVs ZXRlX3N1YnNjcmlwdGlvbihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9uYW1l KQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYu c2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvdGVzdF9z dWJzY3JpcHRpb25fZGVsZXRlX211bHRpcGxlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvdGVzdF9zdWJz Y3JpcHRpb25fZGVsZXRlX211bHRpcGxlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMC4uZWE5M2MwNmYyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvdGVz dF9zdWJzY3JpcHRpb25fZGVsZXRlX211bHRpcGxlLnB5CkBAIC0wLDAgKzEsMTA2IEBACisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENv cHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMg VGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisj CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQgdXVpZAoraW1wb3J0IGpzb24KKworZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRh Ymxlcy50ZXN0cyBcCisgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscworZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3Rz IGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nl ci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBc CisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFz ZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAor ZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0 aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHN1YnNjcmlwdGlvbl91dGlscworCisKK2NsYXNz IFB1YmxpY2F0aW9uRGVsZXRlVGVzdENhc2VzKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiJU aGlzIGNsYXNzIHdpbGwgZGVsZXRlIHN1YnNjcmlwdGlvbi4iIiIKKworICAgIHNjZW5hcmlvcyA9 IHV0aWxzLmdlbmVyYXRlX3NjZW5hcmlvcygnZGVsZXRlX211bHRpcGxlX3N1YnNjcmlwdGlvbics CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbl91 dGlscy50ZXN0X2Nhc2VzKQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmRi X25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCisgICAg ICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCisgICAgICAg IHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCisgICAgICAgIHNlbGYu ZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQorICAgICAgICBzZWxmLnNlcnZlcl92ZXJzaW9u ID0gc2NoZW1hX2luZm9bInNlcnZlcl92ZXJzaW9uIl0KKyAgICAgICAgaWYgc2VsZi5zZXJ2ZXJf dmVyc2lvbiA8IDk5OTk5OgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgKKyAgICAgICAgICAg ICAgICAiTG9naWNhbCByZXBsaWNhdGlvbiBpcyBub3Qgc3VwcG9ydGVkICIKKyAgICAgICAgICAg ICAgICAiZm9yIHNlcnZlciB2ZXJzaW9uIGxlc3MgdGhhbiAxMCIKKworICAgICAgICAgICAgKQor ICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0 aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRi X2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigK KyAgICAgICAgICAgICAgICAiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gZGVsZXRl IHN1YnNjcmlwdGlvbi4iKQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJz Y2hlbWFfaWQiXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVt YV9uYW1lIl0KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9z Y2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAg aWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291 bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ImRlbGV0ZSBzdWJzY3JpcHRpb24uIikKKyAgICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRhYmxl X2NvbHVtbl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgc2VsZi50YWJs ZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFt ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQorICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9uYW1l ID0gInRlc3Rfc3Vic2NyaXB0aW9uX2RlbGV0ZV8lcyIgJSAoCisgICAgICAgICAgICBzdHIodXVp ZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9uYW1lXzEgPSAidGVz dF9zdWJzY3JpcHRpb25fZGVsZXRlXyVzIiAlICgKKyAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0 KCkpWzE6OF0pCisgICAgICAgIHNlbGYuc3Vic2NyaXB0aW9uX2lkcyA9IFsKKyAgICAgICAgICAg IHN1YnNjcmlwdGlvbl91dGlscy5jcmVhdGVfc3Vic2NyaXB0aW9uKHNlbGYuc2VydmVyLCBzZWxm LmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnN1YnNjcmlwdGlvbl9uYW1lKSwKKyAgICAgICAgICAgIHN1YnNjcmlwdGlvbl91 dGlscy5jcmVhdGVfc3Vic2NyaXB0aW9uKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN1YnNj cmlwdGlvbl9uYW1lXzEpLAorICAgICAgICBdCisKKyAgICBkZWYgZGVsZXRlX211bHRpcGxlX3N1 YnNjcmlwdGlvbihzZWxmLCBkYXRhKToKKyAgICAgICAgcmV0dXJuIHNlbGYudGVzdGVyLmRlbGV0 ZSgKKyAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS8iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMu U0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2VydmVyX2lkLCBzZWxmLmRiX2lkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSwKKyAgICAgICAgICAgIGRh dGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29u JworICAgICAgICApCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiVGhpcyBm dW5jdGlvbiB3aWxsIGRlbGV0ZSBzdWJzY3JpcHRpb24uIiIiCisgICAgICAgIHN1YnNjcmlwdGlv bl9yZXNwb25zZSA9IHN1YnNjcmlwdGlvbl91dGlscy52ZXJpZnlfc3Vic2NyaXB0aW9uKAorICAg ICAgICAgICAgc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAg ICAgICBzZWxmLnN1YnNjcmlwdGlvbl9uYW1lKQorICAgICAgICBpZiBub3Qgc3Vic2NyaXB0aW9u X3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0 aGUgc3Vic2NyaXB0aW9uIHRvIGRlbGV0ZS4iKQorCisgICAgICAgIHN1YnNjcmlwdGlvbl9yZXNw b25zZSA9IHN1YnNjcmlwdGlvbl91dGlscy52ZXJpZnlfc3Vic2NyaXB0aW9uKAorICAgICAgICAg ICAgc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICBz ZWxmLnN1YnNjcmlwdGlvbl9uYW1lXzEpCisgICAgICAgIGlmIG5vdCBzdWJzY3JpcHRpb25fcmVz cG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBz dWJzY3JpcHRpb24gdG8gZGVsZXRlLiIpCisKKyAgICAgICAgZGF0YSA9IHsnaWRzJzogc2VsZi5z dWJzY3JpcHRpb25faWRzfQorICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6CisgICAg ICAgICAgICByZXNwb25zZSA9IHNlbGYuZGVsZXRlX211bHRpcGxlX3N1YnNjcmlwdGlvbihkYXRh KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1c19jb2RlLAorICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfZGF0YVsic3RhdHVzX2NvZGUiXSkKKwor ICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFz ZQorCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2Vs Zi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy90ZXN0 X3N1YnNjcmlwdGlvbl9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy90ZXN0X3N1YnNjcmlwdGlvbl9n ZXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5iNjA3YzMzOTkKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy90ZXN0X3N1YnNjcmlwdGlvbl9nZXQucHkK QEAgLTAsMCArMSw5OSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9z dGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1p biBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhl IFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IHV1aWQK K2Zyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgcGF0Y2gKKworZnJvbSBwZ2FkbWluLmJyb3dzZXIu c2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCisg ICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAg dXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2Vf dXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IK K2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9u LnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1w b3J0IHV0aWxzIGFzIHN1YnNjcmlwdGlvbl91dGlscworCisKK2NsYXNzIFB1YmxpY2F0aW9uR2V0 VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBmZXRj aCB0aGUgc3Vic2NyaXB0aW9uIHVuZGVyIHRhYmxlIG5vZGUuIiIiCisgICAgc2NlbmFyaW9zID0g dXRpbHMuZ2VuZXJhdGVfc2NlbmFyaW9zKCdnZXRfc3Vic2NyaXB0aW9uJywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uX3V0aWxzLnRlc3RfY2Fz ZXMpCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVu dF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KKyAgICAgICAgc2NoZW1hX2lu Zm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJf aWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVt YV9pbmZvWyJkYl9pZCJdCisgICAgICAgIHNlbGYuc2VydmVyX3ZlcnNpb24gPSBzY2hlbWFfaW5m b1sic2VydmVyX3ZlcnNpb24iXQorICAgICAgICBpZiBzZWxmLnNlcnZlcl92ZXJzaW9uIDwgOTk5 OTk6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KAorICAgICAgICAgICAgICAgICJMb2dpY2Fs IHJlcGxpY2F0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgIgorICAgICAgICAgICAgICAgICJmb3Igc2Vy dmVyIHZlcnNpb24gbGVzcyB0aGFuIDEwIgorCisgICAgICAgICAgICApCisgICAgICAgIGRiX2Nv biA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dS T1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11b ImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29u bmVjdCB0byBkYXRhYmFzZSB0byAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlbGV0 ZSBzdWJzY3JpcHRpb24uIikKKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1si c2NoZW1hX2lkIl0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hl bWFfbmFtZSJdCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlf c2NoZW1hcyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAg IGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNv dWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVsZXRlICIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAic3Vic2NyaXB0aW9uLiIpCisgICAgICAgIHNlbGYudGFibGVfbmFtZSA9ICJ0YWJs ZV9jb2x1bW5fJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHNlbGYudGFi bGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkKKyAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25fbmFt ZSA9ICJ0ZXN0X3N1YnNjcmlwdGlvbl9kZWxldGVfJXMiICUgKAorICAgICAgICAgICAgc3RyKHV1 aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25faWQgPSBzdWJzY3Jp cHRpb25fdXRpbHMuY3JlYXRlX3N1YnNjcmlwdGlvbigKKyAgICAgICAgICAgIHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9uYW1lKQorCisg ICAgZGVmIGdldF9zdWJzY3JpcHRpb24oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnRlc3Rl ci5nZXQoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsg Jy8nICsgc3RyKAorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkKSArICcvJyArCisgICAg ICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKyBzdHIoc2VsZi5zdWJzY3JpcHRpb25faWQp LAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAgZGVmIHJ1blRl c3Qoc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCB0aGUgc3Vic2Ny aXB0aW9uLiIiIgorCisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoKKyAgICAgICAg ICAgIGlmIGhhc2F0dHIoc2VsZiwgImRhdGFiYXNlX25vZGVzIik6CisgICAgICAgICAgICAgICAg c2VsZi5zdWJzY3JpcHRpb25faWQgPSAnJworICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2Vs Zi5nZXRfc3Vic2NyaXB0aW9uKCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg cmVzcG9uc2UgPSBzZWxmLmdldF9zdWJzY3JpcHRpb24oKQorICAgICAgICBlbHNlOgorICAgICAg ICAgICAgaWYgaGFzYXR0cihzZWxmLCAiZGF0YWJhc2Vfbm9kZXMiKToKKyAgICAgICAgICAgICAg ICBzZWxmLnN1YnNjcmlwdGlvbl9pZCA9ICcnCisgICAgICAgICAgICAgICAgd2l0aCBwYXRjaChz ZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuX3ZhbHVlPWV2YWwoc2VsZi5tb2NrX2RhdGFbInJldHVybl92YWx1ZSJdKSk6Cisg ICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5nZXRfc3Vic2NyaXB0aW9uKCkKKyAg ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0 YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3Zh bHVlPWV2YWwoc2VsZi5tb2NrX2RhdGFbInJldHVybl92YWx1ZSJdKSk6CisgICAgICAgICAgICAg ICAgICAgIHJlc3BvbnNlID0gc2VsZi5nZXRfc3Vic2NyaXB0aW9uKCkKKworICAgICAgICBzZWxm LmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuZXhwZWN0ZWRfZGF0YVsic3RhdHVzX2NvZGUiXSkKKworICAgIGRlZiB0ZWFyRG93 bihzZWxmKToKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAgICAgICBzdWJz Y3JpcHRpb25fdXRpbHMuZGVsZXRlX3N1YnNjcmlwdGlvbihzZWxmLnNlcnZlciwgc2VsZi5kYl9u YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnN1YnNjcmlwdGlvbl9uYW1lKQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2Rh dGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlw dGlvbnMvdGVzdHMvdGVzdF9zdWJzY3JpcHRpb25fcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvdGVz dF9zdWJzY3JpcHRpb25fcHV0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MC4uMmQ0NzliMWEzCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvdGVzdF9zdWJz Y3JpcHRpb25fcHV0LnB5CkBAIC0wLDAgKzEsMTEyIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIwor IyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAt IDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyBy ZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworCitpbXBvcnQganNvbgoraW1wb3J0IHV1aWQKK2Zyb20gdW5pdHRlc3QubW9jayBpbXBvcnQg cGF0Y2gKKworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCisgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191 dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGlt cG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5y b3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFy ZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0 ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHN1YnNjcmlwdGlvbl91 dGlscworCisKK2NsYXNzIFB1YmxpY2F0aW9uVXBkYXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0 b3IpOgorICAgICIiIlRoaXMgY2xhc3Mgd2lsbCB1cGRhdGUgdGhlIHN1YnNjcmlwdGlvbi4iIiIK KyAgICBzY2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2VuYXJpb3MoJ3VwZGF0ZV9zdWJzY3Jp cHRpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3Jp cHRpb25fdXRpbHMudGVzdF9jYXNlcykKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAg c2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUi XQorICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQor ICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQorICAgICAg ICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KKyAgICAgICAgc2VsZi5zZXJ2ZXJf dmVyc2lvbiA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfdmVyc2lvbiJdCisgICAgICAgIGlmIHNlbGYu c2VydmVyX3ZlcnNpb24gPCA5OTk5OToKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoCisgICAg ICAgICAgICAgICAgIkxvZ2ljYWwgcmVwbGljYXRpb24gaXMgbm90IHN1cHBvcnRlZCAiCisgICAg ICAgICAgICAgICAgImZvciBzZXJ2ZXIgdmVyc2lvbiBsZXNzIHRoYW4gMTAiCisKKyAgICAgICAg ICAgICkKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShz ZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGlm IG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oCisgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRv IGRlbGV0ZSBzdWJzY3JpcHRpb24uIikKKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFf aW5mb1sic2NoZW1hX2lkIl0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZv WyJzY2hlbWFfbmFtZSJdCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52 ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisg ICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRp b24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVsZXRlICIKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAic3Vic2NyaXB0aW9uLiIpCisgICAgICAgIHNlbGYudGFibGVfbmFtZSA9 ICJ0YWJsZV9jb2x1bW5fJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHNl bGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxm LmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkKKyAgICAgICAgc2VsZi5zdWJzY3JpcHRp b25fbmFtZSA9ICJ0ZXN0X3N1YnNjcmlwdGlvbl91cGRhdGVfJXMiICUgKAorICAgICAgICAgICAg c3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25faWQgPSBc CisgICAgICAgICAgICBzdWJzY3JpcHRpb25fdXRpbHMuY3JlYXRlX3N1YnNjcmlwdGlvbihzZWxm LnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25fbmFtZSkKKworICAgIGRlZiB1cGRh dGVfc3Vic2NyaXB0aW9uKHNlbGYsIGRhdGEpOgorICAgICAgICByZXR1cm4gc2VsZi50ZXN0ZXIu cHV0KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcv JyArCisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKAorICAgICAg ICAgICAgICAgIHNlbGYuZGJfaWQpICsKKyAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnN1YnNj cmlwdGlvbl9pZCksCisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCisgICAgICAg ICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAg ICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0aGUgc3Vic2NyaXB0aW9uLiIiIgor ICAgICAgICBzdWJzY3JpcHRpb25fbmFtZSA9IFwKKyAgICAgICAgICAgIHN1YnNjcmlwdGlvbl91 dGlscy52ZXJpZnlfc3Vic2NyaXB0aW9uKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN1YnNj cmlwdGlvbl9uYW1lKQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJ1cGRhdGVfbmFtZSIpOgor ICAgICAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25fbmFtZSA9ICJ0ZXN0X3N1YnNjcmlwdGlvbl91 cGRhdGVfMl8lcyIgJSAoCisgICAgICAgICAgICAgICAgc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkK KyAgICAgICAgICAgIHNlbGYudGVzdF9kYXRhWyduYW1lJ10gPSBzZWxmLnN1YnNjcmlwdGlvbl9u YW1lCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnRlc3RfZGF0YVsnbmFtZSddID0g c2VsZi5zdWJzY3JpcHRpb25fbmFtZQorICAgICAgICBzZWxmLnRlc3RfZGF0YVsnaWQnXSA9IHNl bGYuc3Vic2NyaXB0aW9uX2lkCisKKyAgICAgICAgaWYgbm90IHN1YnNjcmlwdGlvbl9uYW1lOgor ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc3Vic2NyaXB0 aW9uIHRvIHVwZGF0ZS4iKQorCisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoKKyAg ICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgIndyb25nX3N1YnNjcmlwdGlvbl9pZCIpOgorICAg ICAgICAgICAgICAgIHNlbGYuc3Vic2NyaXB0aW9uX2lkID0gOTk5OQorICAgICAgICAgICAgaWYg aGFzYXR0cihzZWxmLCAicGxpZF9ub25lIik6CisgICAgICAgICAgICAgICAgc2VsZi5zdWJzY3Jp cHRpb25faWQgPSAnJworICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnVwZGF0ZV9zdWJzY3Jp cHRpb24oc2VsZi50ZXN0X2RhdGEpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB3aXRoIHBh dGNoKHNlbGYubW9ja19kYXRhWyJmdW5jdGlvbl9uYW1lIl0sCisgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybl92YWx1ZT1ldmFsKHNlbGYubW9ja19kYXRhWyJyZXR1cm5fdmFsdWUiXSkpOgor ICAgICAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgIndyb25nX3N1YnNjcmlwdGlvbl9pZCIp OgorICAgICAgICAgICAgICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9pZCA9IDk5OTkKKyAgICAg ICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudXBkYXRlX3N1YnNjcmlwdGlvbihzZWxmLnRlc3Rf ZGF0YSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1c19jb2RlLAor ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfZGF0YVsic3RhdHVzX2NvZGUi XSkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKworICAgICAgICAjIERpc2Nvbm5lY3QgdGhl IGRhdGFiYXNlCisgICAgICAgIHN1YnNjcmlwdGlvbl91dGlscy5kZWxldGVfc3Vic2NyaXB0aW9u KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc3Vic2NyaXB0aW9uX25hbWUpCisgICAgICAgIGRhdGFi YXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYu ZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy90ZXN0X3N1YnNjcmlwdGlvbl9zcWwu cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c3Vic2NyaXB0aW9ucy90ZXN0cy90ZXN0X3N1YnNjcmlwdGlvbl9zcWwucHkKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi43OTdkZjMzMjMKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2Ny aXB0aW9ucy90ZXN0cy90ZXN0X3N1YnNjcmlwdGlvbl9zcWwucHkKQEAgLTAsMCArMSw4OCBAQAor IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIwor IyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFt CisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5j ZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IHV1aWQKK2Zyb20gdW5pdHRlc3QubW9j ayBpbXBvcnQgcGF0Y2gKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy cy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAorICAgIGltcG9ydCB1dGlscyBhcyB0 YWJsZXNfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAorICAgIHV0aWxzIGFzIHNjaGVtYV91dGls cworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50 ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4u dXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1w b3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBp bXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBzdWJzY3Jp cHRpb25fdXRpbHMKKworCitjbGFzcyBQdWJsaWNhdGlvbkdldFRlc3RDYXNlKEJhc2VUZXN0R2Vu ZXJhdG9yKToKKyAgICAiIiJUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggdGhlIHN1YnNjcmlwdGlvbiB1 bmRlciB0YWJsZSBub2RlLiIiIgorICAgIHNjZW5hcmlvcyA9IHV0aWxzLmdlbmVyYXRlX3NjZW5h cmlvcygnc3FsX3N1YnNjcmlwdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN1YnNjcmlwdGlvbl91dGlscy50ZXN0X2Nhc2VzKQorCisgICAgZGVmIHNldFVw KHNlbGYpOgorICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFz ZSJdWy0xXVsiZGJfbmFtZSJdCisgICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGlj dFsic2NoZW1hIl1bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNl cnZlcl9pZCJdCisgICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQorICAg ICAgICBzZWxmLnNlcnZlcl92ZXJzaW9uID0gc2NoZW1hX2luZm9bInNlcnZlcl92ZXJzaW9uIl0K KyAgICAgICAgaWYgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA8IDk5OTk5OgorICAgICAgICAgICAgc2Vs Zi5za2lwVGVzdCgKKyAgICAgICAgICAgICAgICAiTG9naWNhbCByZXBsaWNhdGlvbiBpcyBub3Qg c3VwcG9ydGVkICIKKyAgICAgICAgICAgICAgICAiZm9yIHNlcnZlciB2ZXJzaW9uIGxlc3MgdGhh biAxMCIKKworICAgICAgICAgICAgKQorICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5j b25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5k Yl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKyAgICAg ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiQ291bGQgbm90IGNvbm5l Y3QgdG8gZGF0YWJhc2UgdG8gZGVsZXRlIHN1YnNjcmlwdGlvbi4iKQorICAgICAgICBzZWxmLnNj aGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAgICAgICBzZWxmLnNjaGVtYV9u YW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNl ID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBkZWxldGUg IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJzY3JpcHRpb24uIikKKyAgICAgICAg c2VsZi50YWJsZV9uYW1lID0gInRhYmxlX2NvbHVtbl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlb MTo4XSkKKyAgICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUo c2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQorICAgICAg ICBzZWxmLnN1YnNjcmlwdGlvbl9uYW1lID0gInRlc3Rfc3Vic2NyaXB0aW9uX2RlbGV0ZV8lcyIg JSAoCisgICAgICAgICAgICBzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBzZWxmLnN1 YnNjcmlwdGlvbl9pZCA9IFwKKyAgICAgICAgICAgIHN1YnNjcmlwdGlvbl91dGlscy5jcmVhdGVf c3Vic2NyaXB0aW9uKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9uYW1l KQorCisgICAgZGVmIGdldF9zcWwoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnRlc3Rlci5n ZXQoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8n ICsgc3RyKAorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAg ICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKyBzdHIoc2VsZi5zdWJzY3JpcHRpb25faWQpLAor ICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAgZGVmIHJ1blRlc3Qo c2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCB0aGUgc3Vic2NyaXB0 aW9uIHVuZGVyIHRhYmxlIG5vZGUuIiIiCisKKyAgICAgICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90 ZXN0OgorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmdldF9zcWwoKQorICAgICAgICBlbHNl OgorICAgICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJd LAorICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9ZXZhbChzZWxmLm1vY2tfZGF0 YVsicmV0dXJuX3ZhbHVlIl0pKToKKyAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0 X3NxbCgpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVkX2RhdGFbInN0YXR1c19jb2Rl Il0pCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIHN1YnNjcmlwdGlvbl91dGls cy5kZWxldGVfc3Vic2NyaXB0aW9uKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3Vic2NyaXB0aW9u X25hbWUpCisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJh c2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5k Yl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVz dHMvdXRpbHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4zODVkN2M3 M2UKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy91dGlscy5weQpAQCAtMCwwICsx LDE1NyBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBU b29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9w bWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVT UUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworCitpbXBvcnQgc3lzCitpbXBvcnQg b3MKK2ltcG9ydCBqc29uCitpbXBvcnQgdHJhY2ViYWNrCisKK2Zyb20gcmVncmVzc2lvbi5weXRo b25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworCitDVVJSRU5UX1BBVEgg PSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5yZWFscGF0aChfX2ZpbGVfXykpCit3aXRoIG9wZW4o Q1VSUkVOVF9QQVRIICsgIi9zdWJzY3JpcHRpb25fdGVzdF9kYXRhLmpzb24iKSBhcyBkYXRhX2Zp bGU6CisgICAgdGVzdF9jYXNlcyA9IGpzb24ubG9hZChkYXRhX2ZpbGUpCisKKworZGVmIGdldF90 YWJsZXMoc2VsZik6CisgICAgdGFibGVzID0gc2VsZi50ZXN0ZXIuZ2V0KAorICAgICAgICAnL2Jy b3dzZXIvc3Vic2NyaXB0aW9uL2dldF90YWJsZXMvJyArIHN0cigKKyAgICAgICAgICAgIHV0aWxz LlNFUlZFUl9HUk9VUCkgKyAnLycgKyBzdHIoCisgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCkg KyAnLycgKworICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycsCisgICAgICAgIGNvbnRlbnRf dHlwZT0naHRtbC9qc29uJykKKyAgICByZXR1cm4ganNvbi5kdW1wcyhbdGFibGVzLmpzb25bJ2Rh dGEnXVsxXVsndmFsdWUnXV0pCisKKworZGVmIGNyZWF0ZV9zdWJzY3JpcHRpb25fYXBpKHNlbGYp OgorICAgIHJldHVybiBzZWxmLnRlc3Rlci5wb3N0KAorICAgICAgICBzZWxmLnVybCArIHN0cih1 dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSAr ICcvJyArIHN0cigKKyAgICAgICAgICAgIHNlbGYuZGJfaWQpICsgJy8nLAorICAgICAgICBkYXRh PWpzb24uZHVtcHMoc2VsZi50ZXN0X2RhdGEpLAorICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwv anNvbicpCisKKworZGVmIGNyZWF0ZV9zdWJzY3JpcHRpb24oc2VydmVyLCBkYl9uYW1lLCBzdWJz Y3JpcHRpb25fbmFtZSk6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiBjcmVhdGVzIGEgc3Vi c2NyaXB0aW9uLgorICAgIDpwYXJhbSBzZXJ2ZXI6IHNlcnZlciBkZXRhaWxzCisgICAgOnR5cGUg c2VydmVyOiBkaWN0CisgICAgOnBhcmFtIGRiX25hbWU6IGRhdGFiYXNlIG5hbWUKKyAgICA6dHlw ZSBkYl9uYW1lOiBzdHIKKyAgICA6cGFyYW0gc3Vic2NyaXB0aW9uX25hbWU6IHN1YnNjcmlwdGlv biBuYW1lCisgICAgOnR5cGUgc3Vic2NyaXB0aW9uX25hbWU6IHN0cgorICAgIDpyZXR1cm4gc3Vi c2NyaXB0aW9uX2lkOiBzdWJzY3JpcHRpb24gaWQKKyAgICA6cnR5cGU6IGludAorICAgICIiIgor ICAgIHRyeToKKyAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0aW9uKGRi X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2 ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2hvc3QnXSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsncG9ydCddLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydzc2xtb2RlJ10pCisgICAgICAgIG9s ZF9pc29sYXRpb25fbGV2ZWwgPSBjb25uZWN0aW9uLmlzb2xhdGlvbl9sZXZlbAorICAgICAgICBj b25uZWN0aW9uLnNldF9pc29sYXRpb25fbGV2ZWwoMCkKKyAgICAgICAgcGdfY3Vyc29yID0gY29u bmVjdGlvbi5jdXJzb3IoKQorICAgICAgICBxdWVyeSA9ICIiIkNSRUFURSBTVUJTQ1JJUFRJT04g IiVzIiAiIiIgXAorICAgICAgICAgICAgICAgICIiIkNPTk5FQ1RJT04gJ2hvc3Q9MTkyLjE2OC4x LjUwIHBvcnQ9NTQzMiB1c2VyPWZvbyAiIiIgXAorICAgICAgICAgICAgICAgICIiImRibmFtZT1m b29kYicgIiIiIFwKKyAgICAgICAgICAgICAgICAiIiJQVUJMSUNBVElPTiBpbnNlcnRfb25seSBX SVRIIChjcmVhdGVfc2xvdCA9IGZhbHNlLCAiIiIgXAorICAgICAgICAgICAgICAgICIiImVuYWJs ZWQgPSBmYWxzZSwgc2xvdF9uYW1lPU5PTkUsIGNvbm5lY3Q9ZmFsc2UpOyIiIiAlICgKKyAgICAg ICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uX25hbWUpCisgICAgICAgIHBnX2N1cnNvci5leGVj dXRlKHF1ZXJ5KQorICAgICAgICBjb25uZWN0aW9uLnNldF9pc29sYXRpb25fbGV2ZWwob2xkX2lz b2xhdGlvbl9sZXZlbCkKKyAgICAgICAgY29ubmVjdGlvbi5jb21taXQoKQorICAgICAgICAjIEdl dCByb2xlIG9pZCBvZiBuZXdseSBhZGRlZCBzdWJzY3JpcHRpb24KKyAgICAgICAgcGdfY3Vyc29y LmV4ZWN1dGUoInNlbGVjdCBvaWQgZnJvbSBwZ19zdWJzY3JpcHRpb24gc3ViIHdoZXJlICIKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgInN1Yi5zdWJuYW1lPSclcyciICUKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uX25hbWUpCisgICAgICAgIHN1YnNjcmlwdGlvbiA9 IHBnX2N1cnNvci5mZXRjaG9uZSgpCisgICAgICAgIHN1YnNjcmlwdGlvbl9pZCA9ICcnCisgICAg ICAgIGlmIHN1YnNjcmlwdGlvbjoKKyAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9pZCA9IHN1YnNj cmlwdGlvblswXQorICAgICAgICBjb25uZWN0aW9uLmNsb3NlKCkKKyAgICAgICAgcmV0dXJuIHN1 YnNjcmlwdGlvbl9pZAorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIHRyYWNlYmFjay5w cmludF9leGMoZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICByYWlzZQorCisKK2RlZiB2ZXJpZnlf c3Vic2NyaXB0aW9uKHNlcnZlciwgZGJfbmFtZSwgc3Vic2NyaXB0aW9uX25hbWUpOgorICAgICIi IgorICAgIFRoaXMgZnVuY3Rpb24gdmVyaWZpZXMgc3Vic2NyaXB0aW9uIGV4aXN0IGluIGRhdGFi YXNlIG9yIG5vdC4KKyAgICA6cGFyYW0gc2VydmVyOiBzZXJ2ZXIgZGV0YWlscworICAgIDp0eXBl IHNlcnZlcjogZGljdAorICAgIDpwYXJhbSBkYl9uYW1lOiBkYXRhYmFzZSBuYW1lCisgICAgOnR5 cGUgZGJfbmFtZTogc3RyCisgICAgOnBhcmFtIHN1YnNjcmlwdGlvbl9uYW1lOiBzdWJzY3JpcHRp b24gbmFtZQorICAgIDp0eXBlIHN1YnNjcmlwdGlvbl9uYW1lOiBzdHIKKyAgICA6cmV0dXJuIHN1 YnNjcmlwdGlvbjogc3Vic2NyaXB0aW9uIHJlY29yZCBmcm9tIGRhdGFiYXNlCisgICAgOnJ0eXBl OiB0dXBsZQorICAgICIiIgorICAgIHRyeToKKyAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdl dF9kYl9jb25uZWN0aW9uKGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZXJ2ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2hvc3QnXSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsncG9ydCddLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydzc2xt b2RlJ10pCisgICAgICAgIHBnX2N1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICAgICAg cGdfY3Vyc29yLmV4ZWN1dGUoInNlbGVjdCAqIGZyb20gcGdfc3Vic2NyaXB0aW9uIHN1YiAiCisg ICAgICAgICAgICAgICAgICAgICAgICAgICJ3aGVyZSBzdWIuc3VibmFtZT0nJXMnIiAlCisgICAg ICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9uYW1lKQorICAgICAgICBzdWJzY3Jp cHRpb24gPSBwZ19jdXJzb3IuZmV0Y2hvbmUoKQorICAgICAgICBjb25uZWN0aW9uLmNsb3NlKCkK KyAgICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvbgorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAg ICAgIHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICByYWlzZQor CisKK2RlZiBkZWxldGVfc3Vic2NyaXB0aW9uKHNlcnZlciwgZGJfbmFtZSwgc3Vic2NyaXB0aW9u X25hbWUpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gdXNlIHRvIGRlbGV0ZSB0aGUgZXhp c3Rpbmcgc3Vic2NyaXB0aW9uCisKKyAgICA6cGFyYW0gZGJfbmFtZTogIGRiX25hbWUKKyAgICA6 dHlwZSBkYl9uYW1lOiBkYl9uYW1lIG9iamVjdAorICAgIDpwYXJhbSBzZXJ2ZXI6IHNlcnZlcgor ICAgIDp0eXBlIHNlcnZlcjogc2VydmVyIG9iamVjdAorICAgIDpwYXJhbSBzdWJzY3JpcHRpb25f bmFtZTogc3Vic2NyaXB0aW9uIG5hbWUKKyAgICA6dHlwZSBzdWJzY3JpcHRpb25fbmFtZTogc3Ry CisgICAgOnJldHVybjogTm9uZQorICAgICIiIgorCisgICAgdHJ5OgorICAgICAgICBjb25uZWN0 aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnZGJfcGFzc3dvcmQn XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsn aG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vy dmVyWydwb3J0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZXJ2ZXJbJ3NzbG1vZGUnXSkKKyAgICAgICAgcGdfY3Vyc29yID0gY29ubmVjdGlvbi5jdXJz b3IoKQorCisgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKCJzZWxlY3QgKiBmcm9tIHBnX3N1YnNj cmlwdGlvbiBzdWIgd2hlcmUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAic3ViLnN1Ym5h bWU9JyVzJyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25fbmFtZSkK KyAgICAgICAgc3Vic2NyaXB0aW9uX2NvdW50ID0gcGdfY3Vyc29yLmZldGNob25lKCkKKyAgICAg ICAgaWYgc3Vic2NyaXB0aW9uX2NvdW50OgorICAgICAgICAgICAgb2xkX2lzb2xhdGlvbl9sZXZl bCA9IGNvbm5lY3Rpb24uaXNvbGF0aW9uX2xldmVsCisgICAgICAgICAgICBjb25uZWN0aW9uLnNl dF9pc29sYXRpb25fbGV2ZWwoMCkKKyAgICAgICAgICAgIHBnX2N1cnNvciA9IGNvbm5lY3Rpb24u Y3Vyc29yKCkKKyAgICAgICAgICAgIHF1ZXJ5ID0gIkRST1Agc3Vic2NyaXB0aW9uICVzIiAlIFwK KyAgICAgICAgICAgICAgICAgICAgKHN1YnNjcmlwdGlvbl9uYW1lKQorICAgICAgICAgICAgcGdf Y3Vyc29yLmV4ZWN1dGUocXVlcnkpCisgICAgICAgICAgICBjb25uZWN0aW9uLnNldF9pc29sYXRp b25fbGV2ZWwob2xkX2lzb2xhdGlvbl9sZXZlbCkKKyAgICAgICAgICAgIGNvbm5lY3Rpb24uY29t bWl0KCkKKyAgICAgICAgY29ubmVjdGlvbi5jbG9zZSgpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoK KyAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YyhmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgIHJh aXNlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zZWFyY2hfb2JqZWN0cy90ZW1wbGF0 ZXMvc2VhcmNoX29iamVjdHMvc3FsL3BnLzEwX3BsdXMvc2VhcmNoLnNxbCBiL3dlYi9wZ2FkbWlu L3Rvb2xzL3NlYXJjaF9vYmplY3RzL3RlbXBsYXRlcy9zZWFyY2hfb2JqZWN0cy9zcWwvcGcvMTBf cGx1cy9zZWFyY2guc3FsCmluZGV4IGFjMjE1ZWVmZC4uMzgyOGQ5MDY4IDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi90b29scy9zZWFyY2hfb2JqZWN0cy90ZW1wbGF0ZXMvc2VhcmNoX29iamVjdHMv c3FsL3BnLzEwX3BsdXMvc2VhcmNoLnNxbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9zZWFyY2hf b2JqZWN0cy90ZW1wbGF0ZXMvc2VhcmNoX29iamVjdHMvc3FsL3BnLzEwX3BsdXMvc2VhcmNoLnNx bApAQCAtMzIwLDYgKzMyMCwyNCBAQCBGUk9NICgKIHslIGlmIGFsbF9vYmogJX0KICAgICBVTklP TgogeyUgZW5kaWYgJX0KKworeyUgaWYgYWxsX29iaiBvciBvYmpfdHlwZSBpbiBbJ3B1YmxpY2F0 aW9uJ10gJX0KKyAgICBTRUxFQ1QgJ3B1YmxpY2F0aW9uJzo6dGV4dCBBUyBvYmpfdHlwZSwgcHVi bmFtZSBBUyBvYmpfbmFtZSwgJzpwdWJsaWNhdGlvbi4nfHxwdWIub2lkfHwnOi8nIHx8IHB1Ym5h bWUgQVMgb2JqX3BhdGgsICcnOjp0ZXh0IEFTIHNjaGVtYV9uYW1lLAorICAgIHt7IHNob3dfbm9k ZV9wcmVmc1sncHVibGljYXRpb24nXSB9fSBBUyBzaG93X25vZGUsIE5VTEwgQVMgb3RoZXJfaW5m bworICAgIEZST00gcGdfcHVibGljYXRpb24gcHViCit7JSBlbmRpZiAlfQoreyUgaWYgYWxsX29i aiAlfQorICAgIFVOSU9OCit7JSBlbmRpZiAlfQorCit7JSBpZiBhbGxfb2JqIG9yIG9ial90eXBl IGluIFsnc3Vic2NyaXB0aW9uJ10gJX0KKyAgICBTRUxFQ1QgJ3N1YnNjcmlwdGlvbic6OnRleHQg QVMgb2JqX3R5cGUsIHN1Ym5hbWUgQVMgb2JqX25hbWUsICc6c3Vic2NyaXB0aW9uLid8fHB1Yi5v aWR8fCc6LycgfHwgc3VibmFtZSBBUyBvYmpfcGF0aCwgJyc6OnRleHQgQVMgc2NoZW1hX25hbWUs CisgICAge3sgc2hvd19ub2RlX3ByZWZzWydzdWJzY3JpcHRpb24nXSB9fSBBUyBzaG93X25vZGUs IE5VTEwgQVMgb3RoZXJfaW5mbworICAgIEZST00gcGdfc3Vic2NyaXB0aW9uIHB1YgoreyUgZW5k aWYgJX0KK3slIGlmIGFsbF9vYmogJX0KKyAgICBVTklPTgoreyUgZW5kaWYgJX0KIHslIGlmIGFs bF9vYmogb3Igb2JqX3R5cGUgaW4gWydsYW5ndWFnZSddICV9CiAgICAgU0VMRUNUICdsYW5ndWFn ZSc6OnRleHQgQVMgb2JqX3R5cGUsIGxhbm5hbWUgQVMgb2JqX25hbWUsICc6bGFuZ3VhZ2UuJ3x8 bGFuLm9pZHx8JzovJyB8fCBsYW5uYW1lIEFTIG9ial9wYXRoLCAnJzo6dGV4dCBBUyBzY2hlbWFf bmFtZSwKICAgICB7eyBzaG93X25vZGVfcHJlZnNbJ2xhbmd1YWdlJ10gfX0gQVMgc2hvd19ub2Rl LCBOVUxMIEFTIG90aGVyX2luZm8KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NlYXJj aF9vYmplY3RzL3RlbXBsYXRlcy9zZWFyY2hfb2JqZWN0cy9zcWwvcGcvMTFfcGx1cy9zZWFyY2gu c3FsIGIvd2ViL3BnYWRtaW4vdG9vbHMvc2VhcmNoX29iamVjdHMvdGVtcGxhdGVzL3NlYXJjaF9v YmplY3RzL3NxbC9wZy8xMV9wbHVzL3NlYXJjaC5zcWwKaW5kZXggNGUwN2ZmMDc5Li5lODYzMWYx MzYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NlYXJjaF9vYmplY3RzL3RlbXBsYXRl cy9zZWFyY2hfb2JqZWN0cy9zcWwvcGcvMTFfcGx1cy9zZWFyY2guc3FsCisrKyBiL3dlYi9wZ2Fk bWluL3Rvb2xzL3NlYXJjaF9vYmplY3RzL3RlbXBsYXRlcy9zZWFyY2hfb2JqZWN0cy9zcWwvcGcv MTFfcGx1cy9zZWFyY2guc3FsCkBAIC0zMzcsNiArMzM3LDI0IEBAIEZST00gKAogeyUgaWYgYWxs X29iaiAlfQogICAgIFVOSU9OCiB7JSBlbmRpZiAlfQorCit7JSBpZiBhbGxfb2JqIG9yIG9ial90 eXBlIGluIFsncHVibGljYXRpb24nXSAlfQorICAgIFNFTEVDVCAncHVibGljYXRpb24nOjp0ZXh0 IEFTIG9ial90eXBlLCBwdWJuYW1lIEFTIG9ial9uYW1lLCAnOnB1YmxpY2F0aW9uLid8fHB1Yi5v aWR8fCc6LycgfHwgcHVibmFtZSBBUyBvYmpfcGF0aCwgJyc6OnRleHQgQVMgc2NoZW1hX25hbWUs CisgICAge3sgc2hvd19ub2RlX3ByZWZzWydwdWJsaWNhdGlvbiddIH19IEFTIHNob3dfbm9kZSwg TlVMTCBBUyBvdGhlcl9pbmZvCisgICAgRlJPTSBwZ19wdWJsaWNhdGlvbiBwdWIKK3slIGVuZGlm ICV9Cit7JSBpZiBhbGxfb2JqICV9CisgICAgVU5JT04KK3slIGVuZGlmICV9CisKK3slIGlmIGFs bF9vYmogb3Igb2JqX3R5cGUgaW4gWydzdWJzY3JpcHRpb24nXSAlfQorICAgIFNFTEVDVCAnc3Vi c2NyaXB0aW9uJzo6dGV4dCBBUyBvYmpfdHlwZSwgc3VibmFtZSBBUyBvYmpfbmFtZSwgJzpzdWJz Y3JpcHRpb24uJ3x8cHViLm9pZHx8JzovJyB8fCBzdWJuYW1lIEFTIG9ial9wYXRoLCAnJzo6dGV4 dCBBUyBzY2hlbWFfbmFtZSwKKyAgICB7eyBzaG93X25vZGVfcHJlZnNbJ3N1YnNjcmlwdGlvbidd IH19IEFTIHNob3dfbm9kZSwgTlVMTCBBUyBvdGhlcl9pbmZvCisgICAgRlJPTSBwZ19zdWJzY3Jp cHRpb24gcHViCit7JSBlbmRpZiAlfQoreyUgaWYgYWxsX29iaiAlfQorICAgIFVOSU9OCit7JSBl bmRpZiAlfQogeyUgaWYgYWxsX29iaiBvciBvYmpfdHlwZSBpbiBbJ2xhbmd1YWdlJ10gJX0KICAg ICBTRUxFQ1QgJ2xhbmd1YWdlJzo6dGV4dCBBUyBvYmpfdHlwZSwgbGFubmFtZSBBUyBvYmpfbmFt ZSwgJzpsYW5ndWFnZS4nfHxsYW4ub2lkfHwnOi8nIHx8IGxhbm5hbWUgQVMgb2JqX3BhdGgsICcn Ojp0ZXh0IEFTIHNjaGVtYV9uYW1lLAogICAgIHt7IHNob3dfbm9kZV9wcmVmc1snbGFuZ3VhZ2Un XSB9fSBBUyBzaG93X25vZGUsIE5VTEwgQVMgb3RoZXJfaW5mbwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vdG9vbHMvc2VhcmNoX29iamVjdHMvdGVtcGxhdGVzL3NlYXJjaF9vYmplY3RzL3NxbC9w cGFzLzEwX3BsdXMvc2VhcmNoLnNxbCBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NlYXJjaF9vYmplY3Rz L3RlbXBsYXRlcy9zZWFyY2hfb2JqZWN0cy9zcWwvcHBhcy8xMF9wbHVzL3NlYXJjaC5zcWwKaW5k ZXggYTQxYTM3NWViLi40ZWQ3MTU0NjMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3Nl YXJjaF9vYmplY3RzL3RlbXBsYXRlcy9zZWFyY2hfb2JqZWN0cy9zcWwvcHBhcy8xMF9wbHVzL3Nl YXJjaC5zcWwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc2VhcmNoX29iamVjdHMvdGVtcGxhdGVz L3NlYXJjaF9vYmplY3RzL3NxbC9wcGFzLzEwX3BsdXMvc2VhcmNoLnNxbApAQCAtMzYxLDYgKzM2 MSwyNSBAQCBGUk9NICgKIHslIGlmIGFsbF9vYmogJX0KICAgICBVTklPTgogeyUgZW5kaWYgJX0K KworeyUgaWYgYWxsX29iaiBvciBvYmpfdHlwZSBpbiBbJ3B1YmxpY2F0aW9uJ10gJX0KKyAgICBT RUxFQ1QgJ3B1YmxpY2F0aW9uJzo6dGV4dCBBUyBvYmpfdHlwZSwgcHVibmFtZSBBUyBvYmpfbmFt ZSwgJzpwdWJsaWNhdGlvbi4nfHxwdWIub2lkfHwnOi8nIHx8IHB1Ym5hbWUgQVMgb2JqX3BhdGgs ICcnOjp0ZXh0IEFTIHNjaGVtYV9uYW1lLAorICAgIHt7IHNob3dfbm9kZV9wcmVmc1sncHVibGlj YXRpb24nXSB9fSBBUyBzaG93X25vZGUsIE5VTEwgQVMgb3RoZXJfaW5mbworICAgIEZST00gcGdf cHVibGljYXRpb24gcHViCit7JSBlbmRpZiAlfQoreyUgaWYgYWxsX29iaiAlfQorICAgIFVOSU9O Cit7JSBlbmRpZiAlfQorCit7JSBpZiBhbGxfb2JqIG9yIG9ial90eXBlIGluIFsnc3Vic2NyaXB0 aW9uJ10gJX0KKyAgICBTRUxFQ1QgJ3N1YnNjcmlwdGlvbic6OnRleHQgQVMgb2JqX3R5cGUsIHN1 Ym5hbWUgQVMgb2JqX25hbWUsICc6c3Vic2NyaXB0aW9uLid8fHB1Yi5vaWR8fCc6LycgfHwgc3Vi bmFtZSBBUyBvYmpfcGF0aCwgJyc6OnRleHQgQVMgc2NoZW1hX25hbWUsCisgICAge3sgc2hvd19u b2RlX3ByZWZzWydzdWJzY3JpcHRpb24nXSB9fSBBUyBzaG93X25vZGUsIE5VTEwgQVMgb3RoZXJf aW5mbworICAgIEZST00gcGdfc3Vic2NyaXB0aW9uIHB1YgoreyUgZW5kaWYgJX0KK3slIGlmIGFs bF9vYmogJX0KKyAgICBVTklPTgoreyUgZW5kaWYgJX0KKwogeyUgaWYgYWxsX29iaiBvciBvYmpf dHlwZSBpbiBbJ2xhbmd1YWdlJ10gJX0KICAgICBTRUxFQ1QgJ2xhbmd1YWdlJzo6dGV4dCBBUyBv YmpfdHlwZSwgbGFubmFtZSBBUyBvYmpfbmFtZSwgJzpsYW5ndWFnZS4nfHxsYW4ub2lkfHwnOi8n IHx8IGxhbm5hbWUgQVMgb2JqX3BhdGgsICcnOjp0ZXh0IEFTIHNjaGVtYV9uYW1lLAogICAgIHt7 IHNob3dfbm9kZV9wcmVmc1snbGFuZ3VhZ2UnXSB9fSBBUyBzaG93X25vZGUsIE5VTEwgQVMgb3Ro ZXJfaW5mbwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc2VhcmNoX29iamVjdHMvdGVt cGxhdGVzL3NlYXJjaF9vYmplY3RzL3NxbC9wcGFzLzEyX3BsdXMvc2VhcmNoLnNxbCBiL3dlYi9w Z2FkbWluL3Rvb2xzL3NlYXJjaF9vYmplY3RzL3RlbXBsYXRlcy9zZWFyY2hfb2JqZWN0cy9zcWwv cHBhcy8xMl9wbHVzL3NlYXJjaC5zcWwKaW5kZXggNzk2ZmMzMGI4Li4zNjMzOTc0ZWMgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NlYXJjaF9vYmplY3RzL3RlbXBsYXRlcy9zZWFyY2hf b2JqZWN0cy9zcWwvcHBhcy8xMl9wbHVzL3NlYXJjaC5zcWwKKysrIGIvd2ViL3BnYWRtaW4vdG9v bHMvc2VhcmNoX29iamVjdHMvdGVtcGxhdGVzL3NlYXJjaF9vYmplY3RzL3NxbC9wcGFzLzEyX3Bs dXMvc2VhcmNoLnNxbApAQCAtMzY4LDYgKzM2OCwyNSBAQCBGUk9NICgKIHslIGlmIGFsbF9vYmog JX0KICAgICBVTklPTgogeyUgZW5kaWYgJX0KKworeyUgaWYgYWxsX29iaiBvciBvYmpfdHlwZSBp biBbJ3B1YmxpY2F0aW9uJ10gJX0KKyAgICBTRUxFQ1QgJ3B1YmxpY2F0aW9uJzo6dGV4dCBBUyBv YmpfdHlwZSwgcHVibmFtZSBBUyBvYmpfbmFtZSwgJzpwdWJsaWNhdGlvbi4nfHxwdWIub2lkfHwn Oi8nIHx8IHB1Ym5hbWUgQVMgb2JqX3BhdGgsICcnOjp0ZXh0IEFTIHNjaGVtYV9uYW1lLAorICAg IHt7IHNob3dfbm9kZV9wcmVmc1sncHVibGljYXRpb24nXSB9fSBBUyBzaG93X25vZGUsIE5VTEwg QVMgb3RoZXJfaW5mbworICAgIEZST00gcGdfcHVibGljYXRpb24gcHViCit7JSBlbmRpZiAlfQor eyUgaWYgYWxsX29iaiAlfQorICAgIFVOSU9OCit7JSBlbmRpZiAlfQorCit7JSBpZiBhbGxfb2Jq IG9yIG9ial90eXBlIGluIFsnc3Vic2NyaXB0aW9uJ10gJX0KKyAgICBTRUxFQ1QgJ3N1YnNjcmlw dGlvbic6OnRleHQgQVMgb2JqX3R5cGUsIHN1Ym5hbWUgQVMgb2JqX25hbWUsICc6c3Vic2NyaXB0 aW9uLid8fHB1Yi5vaWR8fCc6LycgfHwgc3VibmFtZSBBUyBvYmpfcGF0aCwgJyc6OnRleHQgQVMg c2NoZW1hX25hbWUsCisgICAge3sgc2hvd19ub2RlX3ByZWZzWydzdWJzY3JpcHRpb24nXSB9fSBB UyBzaG93X25vZGUsIE5VTEwgQVMgb3RoZXJfaW5mbworICAgIEZST00gcGdfc3Vic2NyaXB0aW9u IHB1YgoreyUgZW5kaWYgJX0KK3slIGlmIGFsbF9vYmogJX0KKyAgICBVTklPTgoreyUgZW5kaWYg JX0KKwogeyUgaWYgYWxsX29iaiBvciBvYmpfdHlwZSBpbiBbJ2xhbmd1YWdlJ10gJX0KICAgICBT RUxFQ1QgJ2xhbmd1YWdlJzo6dGV4dCBBUyBvYmpfdHlwZSwgbGFubmFtZSBBUyBvYmpfbmFtZSwg JzpsYW5ndWFnZS4nfHxsYW4ub2lkfHwnOi8nIHx8IGxhbm5hbWUgQVMgb2JqX3BhdGgsICcnOjp0 ZXh0IEFTIHNjaGVtYV9uYW1lLAogICAgIHt7IHNob3dfbm9kZV9wcmVmc1snbGFuZ3VhZ2UnXSB9 fSBBUyBzaG93X25vZGUsIE5VTEwgQVMgb3RoZXJfaW5mbwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vdG9vbHMvc2VhcmNoX29iamVjdHMvdXRpbHMucHkgYi93ZWIvcGdhZG1pbi90b29scy9zZWFy Y2hfb2JqZWN0cy91dGlscy5weQppbmRleCBjZTVlY2UyOGQuLmE3ZDU1Njg1MyAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vdG9vbHMvc2VhcmNoX29iamVjdHMvdXRpbHMucHkKKysrIGIvd2ViL3Bn YWRtaW4vdG9vbHMvc2VhcmNoX29iamVjdHMvdXRpbHMucHkKQEAgLTQzLDcgKzQzLDggQEAgY2xh c3MgU2VhcmNoT2JqZWN0c0hlbHBlcjoKICAgICAgICAgICAgICd0cmlnZ2VyX2Z1bmN0aW9uJywg J2Z0c190ZW1wbGF0ZScsICdjb2xsYXRpb24nLCAndmlldycsICdtdmlldycsCiAgICAgICAgICAg ICAnZnRzX2NvbmZpZ3VyYXRpb24nLCAnZXh0ZW5zaW9uJywgJ2xhbmd1YWdlJywKICAgICAgICAg ICAgICdldmVudF90cmlnZ2VyJywgJ2ZvcmVpZ25fc2VydmVyJywgJ3VzZXJfbWFwcGluZycsCi0g ICAgICAgICAgICAnZm9yZWlnbl9kYXRhX3dyYXBwZXInLCAncm93X3NlY3VyaXR5X3BvbGljeScK KyAgICAgICAgICAgICdmb3JlaWduX2RhdGFfd3JhcHBlcicsICdyb3dfc2VjdXJpdHlfcG9saWN5 JywKKyAgICAgICAgICAgICdwdWJsaWNhdGlvbicsICdzdWJzY3JpcHRpb24nCiAgICAgICAgIF0g aWYgbm9kZV90eXBlcyBpcyBOb25lIGVsc2Ugbm9kZV90eXBlcwogCiAgICAgQHByb3BlcnR5CmRp ZmYgLS1naXQgYS93ZWIvd2VicGFjay5jb25maWcuanMgYi93ZWIvd2VicGFjay5jb25maWcuanMK aW5kZXggOTZlZjcwOGFiLi43ZjIxMDk1NWUgMTAwNjQ0Ci0tLSBhL3dlYi93ZWJwYWNrLmNvbmZp Zy5qcworKysgYi93ZWIvd2VicGFjay5jb25maWcuanMKQEAgLTQzMiw2ICs0MzIsOCBAQCBtb2R1 bGUuZXhwb3J0cyA9IFt7CiAgICAgICAgICcscGdhZG1pbi5ub2RlLmRhdGFiYXNlJyArCiAgICAg ICAgICcscGdhZG1pbi5ub2RlLnJvbGUnICsKICAgICAgICAgJyxwZ2FkbWluLm5vZGUuY2FzdCcg KworICAgICAgICAnLHBnYWRtaW4ubm9kZS5wdWJsaWNhdGlvbicgKworICAgICAgICAnLHBnYWRt aW4ubm9kZS5zdWJzY3JpcHRpb24nICsKICAgICAgICAgJyxwZ2FkbWluLm5vZGUudGFibGVzcGFj ZScgKwogICAgICAgICAnLHBnYWRtaW4ubm9kZS5yZXNvdXJjZV9ncm91cCcgKwogICAgICAgICAn LHBnYWRtaW4ubm9kZS5ldmVudF90cmlnZ2VyJyArCmRpZmYgLS1naXQgYS93ZWIvd2VicGFjay5z aGltLmpzIGIvd2ViL3dlYnBhY2suc2hpbS5qcwppbmRleCA2ZmMyNjAyMWUuLjI1OTM0ODUzMyAx MDA2NDQKLS0tIGEvd2ViL3dlYnBhY2suc2hpbS5qcworKysgYi93ZWIvd2VicGFjay5zaGltLmpz CkBAIC0yMDIsNiArMjAyLDggQEAgdmFyIHdlYnBhY2tTaGltQ29uZmlnID0gewogICAgICdwZ2Fk bWluLmhlbHAnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL2hlbHAvc3RhdGljL2pz L2hlbHAnKSwKICAgICAncGdhZG1pbi5taXNjLmV4cGxhaW4nOiBwYXRoLmpvaW4oX19kaXJuYW1l LCAnLi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vanMvZXhwbGFpbicpLAogICAgICdwZ2Fk bWluLm5vZGUuY2FzdCc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3N0YXRpYy9qcy9jYXN0JyksCisg ICAgJ3BnYWRtaW4ubm9kZS5wdWJsaWNhdGlvbic6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9u cy9zdGF0aWMvanMvcHVibGljYXRpb24nKSwKKyAgICAncGdhZG1pbi5ub2RlLnN1YnNjcmlwdGlv bic6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvc3RhdGljL2pzL3N1YnNjcmlwdGlvbicp LAogICAgICdwZ2FkbWluLm5vZGUuY2F0YWxvZyc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvc3Rh dGljL2pzL2NhdGFsb2cnKSwKICAgICAncGdhZG1pbi5ub2RlLmNhdGFsb2dfb2JqZWN0JzogcGF0 aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9jYXRhbG9nX29iamVjdHMvc3RhdGljL2pzL2NhdGFsb2dfb2Jq ZWN0JyksCiAgICAgJ3BnYWRtaW4ubm9kZS5jYXRhbG9nX29iamVjdF9jb2x1bW4nOiBwYXRoLmpv aW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2NhdGFsb2dfb2JqZWN0cy9jb2x1bW5zL3N0YXRpYy9qcy9jYXRhbG9n X29iamVjdF9jb2x1bW4nKSwK --000000000000f3bc9805b89e53fa--