From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Martin Stransky To: git-commits@fedoraproject.org Subject: [rpms/firefox] f45: Merge branch 'main' into f45 Date: Wed, 23 Sep 2026 08:01:00 GMT Message-ID: <179015046091.1.884429483336069704.rpms-firefox-e5e8d1236caa@fedoraproject.org> List-ID: X-Git-Repo: rpms/firefox X-Git-Branch: f45 X-Git-Rev: e5e8d1236caaac3250aac7557e11aefb6f7e0d79 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZmlyZWZveApCcmFu Y2ggOiBmNDUKQ29tbWl0IDogZTVlOGQxMjM2Y2FhYWMzMjUwYWFjNzU1N2UxMWFlZmI2ZjdlMGQ3 OQpBdXRob3IgOiBNYXJ0aW4gU3RyYW5za3kgPHN0cmFuc2t5QHJlZGhhdC5jb20+CkRhdGUgICA6 IDIwMjYtMDktMjNUMTA6MDA6NDYrMDI6MDAKU3RhdHMgIDogKzkzNi8tMTA4IGluIDYgZmlsZShz KQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2ZpcmVmb3gvYy9l NWU4ZDEyMzZjYWFhYzMyNTBhYWM3NTU3ZTExYWVmYjZmN2UwZDc5P2JyYW5jaD1mNDUKCkxvZzoK TWVyZ2UgYnJhbmNoICdtYWluJyBpbnRvIGY0NQoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdub3Jl IGIvLmdpdGlnbm9yZQppbmRleCBhYmFlZjIzLi41ZDAyZjg3IDEwMDY0NAotLS0gYS8uZ2l0aWdu b3JlCisrKyBiLy5naXRpZ25vcmUKQEAgLTc5OSwzICs3OTksNSBAQCBmaXJlZm94LTMuNi40LnNv dXJjZS50YXIuYnoyCiAvZmlyZWZveC0xNTUuMC4xLnNvdXJjZS50YXIueHoKIC9maXJlZm94LTE1 Ni4wLnNvdXJjZS50YXIueHoKIC9maXJlZm94LWxhbmdwYWNrcy0xNTYuMC0yMDI2MDkxMC50YXIu eHoKKy9maXJlZm94LTE1Ni4wLjEuc291cmNlLnRhci54egorL2ZpcmVmb3gtbGFuZ3BhY2tzLTE1 Ni4wLjEtMjAyNjA5MjMudGFyLnh6CgpkaWZmIC0tZ2l0IGEvRDMyNjg0MC4xNzg5NzMyNzAzLmRp ZmYgYi9EMzI2ODQwLjE3ODk3MzI3MDMuZGlmZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggNDk5YzI1ZC4uMDAwMDAwMAotLS0gYS9EMzI2ODQwLjE3ODk3MzI3MDMuZGlmZgorKysgL2Rl di9udWxsCkBAIC0xLDEwMCArMCwwIEBACi1kaWZmIC0tZ2l0IGEvd2lkZ2V0L2d0ay9uc1dpbmRv dy5oIGIvd2lkZ2V0L2d0ay9uc1dpbmRvdy5oCi0tLS0gYS93aWRnZXQvZ3RrL25zV2luZG93LmgK LSsrKyBiL3dpZGdldC9ndGsvbnNXaW5kb3cuaAotQEAgLTE5OSwxMiArMTk5LDEwIEBACi0gICBi b29sIElzRW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRlOwotIAotICAgbnNTaXplTW9kZSBHZXRTaXpl TW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1TaXplTW9kZTsgfQotICAgbnNTaXplTW9kZSBTaXplTW9k ZSgpIG92ZXJyaWRlIHsgcmV0dXJuIG1TaXplTW9kZTsgfQotICAgdm9pZCBTZXRTaXplTW9kZShu c1NpemVNb2RlIGFNb2RlKSBvdmVycmlkZTsKLS0gIHZvaWQgR2V0V29ya3NwYWNlSUQobnNBU3Ry aW5nJiB3b3Jrc3BhY2VJRCkgb3ZlcnJpZGU7Ci0tICB2b2lkIE1vdmVUb1dvcmtzcGFjZShjb25z dCBuc0FTdHJpbmcmIHdvcmtzcGFjZUlEKSBvdmVycmlkZTsKLSAgIHZvaWQgRW5hYmxlKGJvb2wg YVN0YXRlKSBvdmVycmlkZTsKLSAgIHZvaWQgU2V0Rm9jdXMoUmFpc2UsIG1vemlsbGE6OmRvbTo6 Q2FsbGVyVHlwZSBhQ2FsbGVyVHlwZSkgb3ZlcnJpZGU7Ci0gICBMYXlvdXREZXZpY2VJbnRSZWN0 IEdldEJvdW5kcygpIG92ZXJyaWRlOwotICAgTGF5b3V0RGV2aWNlSW50UmVjdCBHZXRTY3JlZW5C b3VuZHMoKSBvdmVycmlkZTsKLSAgIERlc2t0b3BJbnRSZWN0IEdldFNjcmVlbkJvdW5kc1Vuc2Nh bGVkKCk7Ci1kaWZmIC0tZ2l0IGEvd2lkZ2V0L2d0ay9uc1dpbmRvdy5jcHAgYi93aWRnZXQvZ3Rr L25zV2luZG93LmNwcAotLS0tIGEvd2lkZ2V0L2d0ay9uc1dpbmRvdy5jcHAKLSsrKyBiL3dpZGdl dC9ndGsvbnNXaW5kb3cuY3BwCi1AQCAtMTIwMiwxOCArMTIwMiwxMCBAQAotIAotICAgY29uc3Qg YXV0byYgZGVza3RvcCA9IEdldERlc2t0b3BFbnZpcm9ubWVudElkZW50aWZpZXIoKTsKLSAgIHJl dHVybiBkZXNrdG9wLkVxdWFsc0xpdGVyYWwoImJzcHdtIikgfHwgZGVza3RvcC5FcXVhbHNMaXRl cmFsKCJpMyIpOwotIH0KLSAKLS12b2lkIG5zV2luZG93OjpHZXRXb3Jrc3BhY2VJRChuc0FTdHJp bmcmIHdvcmtzcGFjZUlEKSB7Ci0tICB3b3Jrc3BhY2VJRC5UcnVuY2F0ZSgpOwotLX0KLS0KLS12 b2lkIG5zV2luZG93OjpNb3ZlVG9Xb3Jrc3BhY2UoY29uc3QgbnNBU3RyaW5nJiB3b3Jrc3BhY2VJ RFN0cikgewotLSAgTE9HKCIgIE1vdmVUb1dvcmtzcGFjZSBkaXNhYmxlZCwgcXVpdCIpOwotLX0K LS0KLSB2b2lkIG5zV2luZG93OjpTZXRVc2VyVGltZUFuZFN0YXJ0dXBUb2tlbkZvckFjdGl2YXRl ZFdpbmRvdygpIHsKLSAgIG5zR1RLVG9vbGtpdCogdG9vbGtpdCA9IG5zR1RLVG9vbGtpdDo6R2V0 VG9vbGtpdCgpOwotICAgaWYgKCF0b29sa2l0KSB7Ci0gICAgIHJldHVybjsKLSAgIH0KLWRpZmYg LS1naXQgYS93aWRnZXQvZ3RrL25zV2luZG93V2F5bGFuZC5oIGIvd2lkZ2V0L2d0ay9uc1dpbmRv d1dheWxhbmQuaAotLS0tIGEvd2lkZ2V0L2d0ay9uc1dpbmRvd1dheWxhbmQuaAotKysrIGIvd2lk Z2V0L2d0ay9uc1dpbmRvd1dheWxhbmQuaAotQEAgLTE0LDEyICsxNCwxMiBAQAotICAgbnNXaW5k b3dXYXlsYW5kKCk7Ci0gCi0gICBuc1dpbmRvd1dheWxhbmQqIEFzV2F5bGFuZCgpIG92ZXJyaWRl IHsgcmV0dXJuIHRoaXM7IH0KLSAgIG5zV2luZG93KiBHZXRFZmZlY3RpdmVQYXJlbnQoKSBjb25z dDsKLSAKLS0gIHZvaWQgR2V0V29ya3NwYWNlSUQobnNBU3RyaW5nJiB3b3Jrc3BhY2VJRCkgb3Zl cnJpZGU7Ci0tICB2b2lkIE1vdmVUb1dvcmtzcGFjZShjb25zdCBuc0FTdHJpbmcmIHdvcmtzcGFj ZUlEU3RyKSBvdmVycmlkZTsKLSsgIHZvaWQgR2V0V29ya3NwYWNlSUQobnNBU3RyaW5nJiBhV29y a3NwYWNlSUQpIG92ZXJyaWRlOwotKyAgdm9pZCBNb3ZlVG9Xb3Jrc3BhY2UoY29uc3QgbnNBU3Ry aW5nJiBhV29ya3NwYWNlSURTdHIpIG92ZXJyaWRlOwotICAgdm9pZCBSZXN0b3JlWGRnVG9wbGV2 ZWwoKTsKLSAKLSAgIC8vIFVzZSB4ZGctYWN0aXZhdGlvbiBwcm90b2NvbCB0byB0cmFuc2ZlciBm b2N1cyBmcm9tIGdGb2N1c1dpbmRvdy4KLSAgIHZvaWQgVHJhbnNmZXJGb2N1c1RvKCk7Ci0gICB2 b2lkIEZvY3VzV2F5bGFuZFdpbmRvdyhjb25zdCBjaGFyKiBhVG9rZW5JRCk7Ci1kaWZmIC0tZ2l0 IGEvd2lkZ2V0L2d0ay9uc1dpbmRvd1dheWxhbmQuY3BwIGIvd2lkZ2V0L2d0ay9uc1dpbmRvd1dh eWxhbmQuY3BwCi0tLS0gYS93aWRnZXQvZ3RrL25zV2luZG93V2F5bGFuZC5jcHAKLSsrKyBiL3dp ZGdldC9ndGsvbnNXaW5kb3dXYXlsYW5kLmNwcAotQEAgLTExNiwxNSArMTE2LDE5IEBACi0gICBM T0coIm5zV2luZG93V2F5bGFuZDo6Q3JlYXRlUmVzdG9yZVNlc3Npb24oKSBJRCAlcyByZXN0b3Jl ICVkIHRva2VuICVwIiwKLSAgICAgICBtV29ya3NwYWNlSUQuZ2V0KCksIGFSZXN0b3JlV2luZG93 LCBtU2Vzc2lvblJlc3RvcmVUb2tlbik7Ci0gICByZXR1cm4gISFtU2Vzc2lvblJlc3RvcmVUb2tl bjsKLSB9Ci0gCi0tdm9pZCBuc1dpbmRvd1dheWxhbmQ6OkdldFdvcmtzcGFjZUlEKG5zQVN0cmlu ZyYgd29ya3NwYWNlSUQpIHsKLSt2b2lkIG5zV2luZG93V2F5bGFuZDo6R2V0V29ya3NwYWNlSUQo bnNBU3RyaW5nJiBhV29ya3NwYWNlSUQpIHsKLSsgIGlmICghbnNBcHBTaGVsbDo6SXNTZXNzaW9u UmVzdG9yZVN1cHBvcnRlZCgpKSB7Ci0rICAgIGFXb3Jrc3BhY2VJRC5UcnVuY2F0ZSgpOwotKyAg ICByZXR1cm47Ci0rICB9Ci0gICBpZiAobVdvcmtzcGFjZUlELklzRW1wdHkoKSkgewotICAgICBt V29ya3NwYWNlSUQgPSBHZW5lcmF0ZVdvcmtzcGFjZUlEKCk7Ci0gICB9Ci0tICB3b3Jrc3BhY2VJ RCA9IE5TX0NvbnZlcnRVVEY4dG9VVEYxNihtV29ya3NwYWNlSUQpOwotKyAgYVdvcmtzcGFjZUlE ID0gTlNfQ29udmVydFVURjh0b1VURjE2KG1Xb3Jrc3BhY2VJRCk7Ci0gCi0gICBMT0coIm5zV2lu ZG93V2F5bGFuZDo6R2V0V29ya3NwYWNlSUQoKSBJRCAlcyB0b2tlbiAlcCIsIG1Xb3Jrc3BhY2VJ RC5nZXQoKSwKLSAgICAgICBtU2Vzc2lvblJlc3RvcmVUb2tlbik7Ci0gCi0gICBpZiAobVNlc3Np b25SZXN0b3JlVG9rZW4pIHsKLUBAIC0xNTYsMTIgKzE2MCwxNSBAQAotICAgICB9Ci0gI2VuZGlm Ci0gICB9Ci0gfQotIAotLXZvaWQgbnNXaW5kb3dXYXlsYW5kOjpNb3ZlVG9Xb3Jrc3BhY2UoY29u c3QgbnNBU3RyaW5nJiB3b3Jrc3BhY2VJRFN0cikgewotLSAgbVdvcmtzcGFjZUlEID0gTlNfQ29u dmVydFVURjE2dG9VVEY4KHdvcmtzcGFjZUlEU3RyKTsKLSt2b2lkIG5zV2luZG93V2F5bGFuZDo6 TW92ZVRvV29ya3NwYWNlKGNvbnN0IG5zQVN0cmluZyYgYVdvcmtzcGFjZUlEU3RyKSB7Ci0rICBp ZiAoIW5zQXBwU2hlbGw6OklzU2Vzc2lvblJlc3RvcmVTdXBwb3J0ZWQoKSkgewotKyAgICByZXR1 cm47Ci0rICB9Ci0rICBtV29ya3NwYWNlSUQgPSBOU19Db252ZXJ0VVRGMTZ0b1VURjgoYVdvcmtz cGFjZUlEU3RyKTsKLSAgIExPRygibnNXaW5kb3dXYXlsYW5kOjpNb3ZlVG9Xb3Jrc3BhY2UoKSBz ZXNzaW9uIElEICVzICIKLSAgICAgICAibVdhaXRpbmdUb1Nlc3Npb25SZXN0b3JlICVkIG1OZWVk c1Nob3cgJWQiLAotICAgICAgIG1Xb3Jrc3BhY2VJRC5nZXQoKSwgbVdhaXRpbmdUb1Nlc3Npb25S ZXN0b3JlLCBtTmVlZHNTaG93KTsKLSAgIGlmICghbVdhaXRpbmdUb1Nlc3Npb25SZXN0b3JlKSB7 Ci0gICAgIHJldHVybjsKLQoKZGlmZiAtLWdpdCBhL2ZpcmVmb3gtdXBkYXRlLnNoIGIvZmlyZWZv eC11cGRhdGUuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGUxYzQzNwot LS0gL2Rldi9udWxsCisrKyBiL2ZpcmVmb3gtdXBkYXRlLnNoCkBAIC0wLDAgKzEsOTI1IEBACisj IS9iaW4vYmFzaAorIworIyBmaXJlZm94LXVwZGF0ZS5zaCAtIFVwZGF0ZSB0aGUgRmlyZWZveCBw YWNrYWdlIGluIEZlZG9yYSByYXdoaWRlIHRvIGEgbmV3CisjICAgICAgICAgICAgICAgICAgICAg dXBzdHJlYW0gdmVyc2lvbi4KKyMKKyMgVGhpcyBpcyBhIHNoZWxsIGltcGxlbWVudGF0aW9uIG9m IHRoZSAiZmlyZWZveC11cGRhdGUiIHNraWxsCisjIChzZWUgVXBkYXRlLVNLSUxMLm1kKS4gSXQg cGVyZm9ybXMgdGhlIG1lY2hhbmljYWwgc3RlcHMgb2YgdGhlIHVwZGF0ZTsKKyMgc3RlcHMgd2hp Y2ggbmVlZCBodW1hbiBqdWRnZW1lbnQgKHBhdGNoIHJlYmFzaW5nLCBidWlsZCBmYWlsdXJlIGFu YWx5c2lzKQorIyBzdG9wIHRoZSBzY3JpcHQgd2l0aCBhIGRlc2NyaXB0aW9uIG9mIHdoYXQgaGFz IHRvIGJlIGRvbmUgbWFudWFsbHkuCisjCisjIFVzYWdlOiAuL2ZpcmVmb3gtdXBkYXRlLnNoIDx2 ZXJzaW9uPiBbb3B0aW9uc10KKyMKK3NldCAtbyBwaXBlZmFpbAorCisjLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyMgQ29uZmlndXJhdGlvbiAvIGRlZmF1bHRzCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KworRkVET1JBX0JBU0VfRElSPSIke0ZFRE9SQV9CQVNFX0RJUjotJFBXRH0iCitDSEFOR0VMT0df QVVUSE9SPSIke0NIQU5HRUxPR19BVVRIT1I6LX0iCitBUkNISVZFX1VSTD0iaHR0cHM6Ly9hcmNo aXZlLm1vemlsbGEub3JnL3B1Yi9maXJlZm94L2NhbmRpZGF0ZXMiCisKK05FV19WRVJTSU9OPSIi CitPTERfVkVSU0lPTj0iIgorQlVJTERfVkVSU0lPTj0iIgorUEFDS0FHRV9ESVI9IiIKK0xBTkdQ QUNLX0ZJTEU9IiIKK05FV19UQVJCQUxMPSIiCitOU1NfVkVSU0lPTj0iIgorTlNQUl9WRVJTSU9O PSIiCitPTERfTlNTX1ZFUlNJT049IiIKK09MRF9OU1BSX1ZFUlNJT049IiIKKworUkVTVU1FX0ZS T009MQorQVNTVU1FX1lFUz0wCitEUk9QX1BBVENIRVM9KCkKK0RST1BQRURfUEFUQ0hFUz0oKQor RE9fTE9DQUxfQlVJTEQ9MAorRE9fUFVTSD0wCitET19ST0xMQkFDSz0wCitTUEVDX05PVEVTPSgp CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBPdXRwdXQgaGVscGVycworIy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisKK2lmIFsgLXQgMSBdOyB0aGVuCisgICAgQ19CT0xEPSQnXGVbMW0nOyBDX1JF RD0kJ1xlWzMxbSc7IENfR1JFRU49JCdcZVszMm0nCisgICAgQ19ZRUxMT1c9JCdcZVszM20nOyBD X0JMVUU9JCdcZVszNG0nOyBDX09GRj0kJ1xlWzBtJworZWxzZQorICAgIENfQk9MRD0iIjsgQ19S RUQ9IiI7IENfR1JFRU49IiI7IENfWUVMTE9XPSIiOyBDX0JMVUU9IiI7IENfT0ZGPSIiCitmaQor CitDVVJSRU5UX1NURVA9MAorCitzdGVwKCkgeworICAgIENVUlJFTlRfU1RFUD0iJDEiOyBzaGlm dAorICAgIHByaW50ZiAnXG4lcz09PiBTdGVwICVzOiAlcy4uLiVzXG4nICIkQ19CT0xEJENfQkxV RSIgIiRDVVJSRU5UX1NURVAiICIkKiIgIiRDX09GRiIKK30KKworb2soKSAgIHsgcHJpbnRmICcl c+KchSAlcyVzXG4nICIkQ19HUkVFTiIgIiQqIiAiJENfT0ZGIjsgfQoraW5mbygpIHsgcHJpbnRm ICcgICAlc1xuJyAiJCoiOyB9Cit3YXJuKCkgeyBwcmludGYgJyVz4pqg77iPICAlcyVzXG4nICIk Q19ZRUxMT1ciICIkKiIgIiRDX09GRiIgPiYyOyB9CisKK2RpZSgpIHsKKyAgICBwcmludGYgJ1xu JXPinYwgRVJST1I6ICVzJXNcbicgIiRDX1JFRCIgIiQqIiAiJENfT0ZGIiA+JjIKKyAgICBpZiBb ICIkQ1VSUkVOVF9TVEVQIiAtZ3QgMCBdOyB0aGVuCisgICAgICAgIHByaW50ZiAnJXNGaXggdGhl IHByb2JsZW0gYW5kIHJlc3VtZSB3aXRoOiAlcyAlcyAtLXJlc3VtZSAlcyVzXG4nIFwKKyAgICAg ICAgICAgICIkQ19ZRUxMT1ciICIkMCIgIiRORVdfVkVSU0lPTiIgIiRDVVJSRU5UX1NURVAiICIk Q19PRkYiID4mMgorICAgIGZpCisgICAgZXhpdCAxCit9CisKK3J1bigpIHsKKyAgICBwcmludGYg JyVzJCAlcyVzXG4nICIkQ19CT0xEIiAiJCoiICIkQ19PRkYiCisgICAgIiRAIgorfQorCisjIGNv bmZpcm0gInF1ZXN0aW9uIiBbZGVmYXVsdF95ZXNdCitjb25maXJtKCkgeworICAgIGxvY2FsIHF1 ZXN0aW9uPSIkMSIgZGVmYXVsdD0iJHsyOi1ufSIgYW5zd2VyCisgICAgaWYgWyAiJEFTU1VNRV9Z RVMiIC1lcSAxIF07IHRoZW4KKyAgICAgICAgaW5mbyAiJHF1ZXN0aW9uIC0+IHllcyAoLS15ZXMp IgorICAgICAgICByZXR1cm4gMAorICAgIGZpCisgICAgaWYgWyAhIC10IDAgXTsgdGhlbgorICAg ICAgICBpbmZvICIkcXVlc3Rpb24gLT4gJGRlZmF1bHQgKG5vdCBhIHRlcm1pbmFsKSIKKyAgICAg ICAgWyAiJGRlZmF1bHQiID0gInkiIF0KKyAgICAgICAgcmV0dXJuCisgICAgZmkKKyAgICB3aGls ZSB0cnVlOyBkbworICAgICAgICBpZiBbICIkZGVmYXVsdCIgPSAieSIgXTsgdGhlbgorICAgICAg ICAgICAgcmVhZCAtciAtcCAiJENfQk9MRCRxdWVzdGlvbiBbWS9uXSAkQ19PRkYiIGFuc3dlcgor ICAgICAgICAgICAgYW5zd2VyPSIke2Fuc3dlcjoteX0iCisgICAgICAgIGVsc2UKKyAgICAgICAg ICAgIHJlYWQgLXIgLXAgIiRDX0JPTEQkcXVlc3Rpb24gW3kvTl0gJENfT0ZGIiBhbnN3ZXIKKyAg ICAgICAgICAgIGFuc3dlcj0iJHthbnN3ZXI6LW59IgorICAgICAgICBmaQorICAgICAgICBjYXNl ICIke2Fuc3dlciwsfSIgaW4KKyAgICAgICAgICAgIHl8eWVzKSByZXR1cm4gMCA7OworICAgICAg ICAgICAgbnxubykgIHJldHVybiAxIDs7CisgICAgICAgICAgICAqKSAgICAgZWNobyAiUGxlYXNl IGFuc3dlciB5ZXMgb3Igbm8uIiA7OworICAgICAgICBlc2FjCisgICAgZG9uZQorfQorCithc2so KSB7CisgICAgbG9jYWwgcXVlc3Rpb249IiQxIiBhbnN3ZXIKKyAgICBbIC10IDAgXSB8fCBkaWUg Ik5lZWQgYW4gYW5zd2VyIGZvcjogJHF1ZXN0aW9uIChydW4gaW50ZXJhY3RpdmVseSBvciBwYXNz IGl0IGFzIGFuIG9wdGlvbikiCisgICAgcmVhZCAtciAtcCAiJENfQk9MRCRxdWVzdGlvbiAkQ19P RkYiIGFuc3dlcgorICAgIHByaW50ZiAnJXMnICIkYW5zd2VyIgorfQorCisjIFN0ZXBzIGJlbG93 IFJFU1VNRV9GUk9NIGFyZSBza2lwcGVkLgorc2tpcF9zdGVwKCkgeworICAgIFsgIiQxIiAtbHQg IiRSRVNVTUVfRlJPTSIgXQorfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVXNhZ2UKKyMt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorCit1c2FnZSgpIHsKKyAgICBjYXQgPDxFT0YKK1VzYWdlOiAk KGJhc2VuYW1lICIkMCIpIDx2ZXJzaW9uPiBbb3B0aW9uc10KKworVXBkYXRlcyB0aGUgRmlyZWZv eCBwYWNrYWdlIGluIEZlZG9yYSByYXdoaWRlIHRvIDx2ZXJzaW9uPiAoZS5nLiAxNTcuMCkuCisK K09wdGlvbnM6CisgIC0tcmVzdW1lIE4gICAgICAgICAgU2tpcCB0byBzdGVwIE4gKDEtMTQpLCBy ZWFkaW5nIGN1cnJlbnQgb24tZGlzayBzdGF0ZQorICAtLWJ1aWxkIGJ1aWxkTiAgICAgIFVzZSB0 aGlzIE1vemlsbGEgY2FuZGlkYXRlIGJ1aWxkIGluc3RlYWQgb2YgdGhlIGxhdGVzdAorICAtLWRp ciBQQVRIICAgICAgICAgIFBhY2thZ2UgZGlyZWN0b3J5IChkZWZhdWx0OiBcJFBXRCBpZiBpdCBo b2xkcyBmaXJlZm94LnNwZWMsCisgICAgICAgICAgICAgICAgICAgICAgb3RoZXJ3aXNlIFwkRkVE T1JBX0JBU0VfRElSL2ZpcmVmb3gpCisgIC1kLCAtLWRyb3AtcGF0Y2ggUCAgRHJvcCBhIHBhdGNo IHRoYXQgaXMgbm8gbG9uZ2VyIG5lZWRlZDogcmVtb3ZlcyBpdHMKKyAgICAgICAgICAgICAgICAg ICAgICBQYXRjaE5OTjogYW5kICVwYXRjaCAtUE5OTiBsaW5lcyBmcm9tIGZpcmVmb3guc3BlYyBh bmQKKyAgICAgICAgICAgICAgICAgICAgICBkZWxldGVzIHRoZSBmaWxlIGZyb20gZ2l0LiBQIGlz IHRoZSBwYXRjaCBmaWxlIG5hbWUgb3IKKyAgICAgICAgICAgICAgICAgICAgICBpdHMgbnVtYmVy LiBNYXkgYmUgZ2l2ZW4gbW9yZSB0aGFuIG9uY2UuCisgIC0tbG9jYWwgICAgICAgICAgICAgUnVu ICdmZWRwa2cgbG9jYWwnIChzdGVwIDEyKTsgdGFrZXMgMS0yIGhvdXJzCisgIC0tcHVzaCAgICAg ICAgICAgICAgUHVzaCB0byBGZWRvcmEgZGlzdC1naXQgd2hlbiBmaW5pc2hlZCAoc3RlcCAxNCkK KyAgLS15ZXMgICAgICAgICAgICAgICBBbnN3ZXIgeWVzIHRvIGFsbCBxdWVzdGlvbnMgKG5vbi1p bnRlcmFjdGl2ZSkKKyAgLS1yb2xsYmFjayAgICAgICAgICBEaXNjYXJkIHRoZSBpbi1wcm9ncmVz cyB1cGRhdGUgYW5kIGNsZWFuIHVwLCB0aGVuIGV4aXQKKyAgLWgsIC0taGVscCAgICAgICAgICBT aG93IHRoaXMgaGVscAorCitFbnZpcm9ubWVudDoKKyAgRkVET1JBX0JBU0VfRElSICAgICBCYXNl IGRpcmVjdG9yeSBob2xkaW5nIHRoZSBkaXN0LWdpdCBjbG9uZXMKKyAgQ0hBTkdFTE9HX0FVVEhP UiAgICAiTmFtZSA8ZW1haWw+IiB1c2VkIGZvciB0aGUgJWNoYW5nZWxvZyBlbnRyeQorCitTdGVw czoKKyAgIDEgR2V0IHZlcnNpb24gaW5mbyAgICAgICAgICA4IFVwbG9hZCBuZXcgc291cmNlcwor ICAgMiBTZXQgdXAgcGFja2FnZSBkaXJlY3RvcnkgIDkgQ2hlY2sgYW5kIHJlYmFzZSBwYXRjaGVz IChtYW51YWwpCisgICAzIFB1bGwgbGF0ZXN0IHJhd2hpZGUgICAgICAxMCBWZXJpZnkgcGF0Y2hl cyB3aXRoIGZlZHBrZyBwcmVwCisgICA0IEJ1bXAgdmVyc2lvbiBpbiBzcGVjICAgICAxMSBEZXRl Y3QgTlNTL05TUFIgdmVyc2lvbnMgZnJvbSB0aGUgdGFyYmFsbAorICAgNSBHZXQgTW96aWxsYSBi dWlsZCBudW1iZXIgMTIgTG9jYWwgYnVpbGQgKG9wdGlvbmFsKQorICAgNiBEb3dubG9hZCBzb3Vy Y2UgdGFyYmFsbCAgMTMgQ29tbWl0IHRoZSB1cGRhdGUKKyAgIDcgRG93bmxvYWQgbGFuZ3BhY2tz ICAgICAgIDE0IFN1bW1hcnkgYW5kIHB1c2gKKworVGhlIE5TUyBhbmQgTlNQUiByZXF1aXJlbWVu dHMgYXJlIGFsd2F5cyB0YWtlbiBmcm9tIHRoZSBGaXJlZm94IHNvdXJjZXMgaW4KK3N0ZXAgMTEg YW5kIHdyaXR0ZW4gdG8gZmlyZWZveC5zcGVjIC0gdGhlIHNjcmlwdCBuZXZlciBhc2tzIGZvciB0 aGVtLgorRU9GCit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBBcmd1bWVudCBwYXJzaW5n CisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKword2hpbGUgWyAkIyAtZ3QgMCBdOyBkbworICAgIGNh c2UgIiQxIiBpbgorICAgICAgICAtLXJlc3VtZSkgICBSRVNVTUVfRlJPTT0iJDIiOyBzaGlmdCAy IDs7CisgICAgICAgIC0tcmVzdW1lPSopIFJFU1VNRV9GUk9NPSIkezEjKj19Ijsgc2hpZnQgOzsK KyAgICAgICAgLS1idWlsZCkgICAgQlVJTERfVkVSU0lPTj0iJDIiOyBzaGlmdCAyIDs7CisgICAg ICAgIC0tYnVpbGQ9KikgIEJVSUxEX1ZFUlNJT049IiR7MSMqPX0iOyBzaGlmdCA7OworICAgICAg ICAtLWRpcikgICAgICBQQUNLQUdFX0RJUj0iJDIiOyBzaGlmdCAyIDs7CisgICAgICAgIC0tZGly PSopICAgIFBBQ0tBR0VfRElSPSIkezEjKj19Ijsgc2hpZnQgOzsKKyAgICAgICAgLWR8LS1kcm9w LXBhdGNoKSBEUk9QX1BBVENIRVMrPSgiJDIiKTsgc2hpZnQgMiA7OworICAgICAgICAtZD0qKSAg ICAgICAgICAgIERST1BfUEFUQ0hFUys9KCIkezEjKj19Iik7IHNoaWZ0IDs7CisgICAgICAgIC0t ZHJvcC1wYXRjaD0qKSAgRFJPUF9QQVRDSEVTKz0oIiR7MSMqPX0iKTsgc2hpZnQgOzsKKyAgICAg ICAgLS1sb2NhbCkgICAgRE9fTE9DQUxfQlVJTEQ9MTsgc2hpZnQgOzsKKyAgICAgICAgLS1wdXNo KSAgICAgRE9fUFVTSD0xOyBzaGlmdCA7OworICAgICAgICAtLXllc3wteSkgICBBU1NVTUVfWUVT PTE7IHNoaWZ0IDs7CisgICAgICAgIC0tcm9sbGJhY2spIERPX1JPTExCQUNLPTE7IHNoaWZ0IDs7 CisgICAgICAgIC1ofC0taGVscCkgIHVzYWdlOyBleGl0IDAgOzsKKyAgICAgICAgLSopICAgICAg ICAgdXNhZ2UgPiYyOyBkaWUgIlVua25vd24gb3B0aW9uOiAkMSIgOzsKKyAgICAgICAgKikKKyAg ICAgICAgICAgIFsgLXogIiRORVdfVkVSU0lPTiIgXSB8fCBkaWUgIlVuZXhwZWN0ZWQgYXJndW1l bnQ6ICQxIgorICAgICAgICAgICAgTkVXX1ZFUlNJT049IiQxIjsgc2hpZnQgOzsKKyAgICBlc2Fj Citkb25lCisKK2Nhc2UgIiRSRVNVTUVfRlJPTSIgaW4KKyAgICAnJ3wqWyEwLTldKikgZGllICIt LXJlc3VtZSBuZWVkcyBhIHN0ZXAgbnVtYmVyICgxLTE0KSIgOzsKK2VzYWMKK1sgIiRSRVNVTUVf RlJPTSIgLWdlIDEgXSAmJiBbICIkUkVTVU1FX0ZST00iIC1sZSAxNCBdIHx8IGRpZSAiLS1yZXN1 bWUgbXVzdCBiZSAxLTE0IgorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgUHJlZmxpZ2h0Cisj LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZm9yIHRvb2wgaW4gZmVkcGtnIHJwbWRldi1idW1wc3Bl YyBnaXQgd2dldCBjdXJsIHB5dGhvbjMgcnBtc3BlYzsgZG8KKyAgICBjb21tYW5kIC12ICIkdG9v bCIgPi9kZXYvbnVsbCAyPiYxIHx8IGRpZSAiUmVxdWlyZWQgdG9vbCBub3QgZm91bmQ6ICR0b29s IgorZG9uZQorCisjIEVuc3VyZSBhIHVzYWJsZSBGZWRvcmEgS2VyYmVyb3MgdGlja2V0LCBvdGhl cndpc2UgZmVkcGtnIGNhbGxzIGZhaWwgbGF0ZXIgb24uCitjaGVja19rZXJiZXJvcygpIHsKKyAg ICBsb2NhbCBwcmluY2lwYWwKKyAgICBwcmluY2lwYWw9JChrbGlzdCAtbCAyPi9kZXYvbnVsbCB8 IGF3ayAnL0ZFRE9SQVBST0pFQ1RcLk9SRy8ge3ByaW50ICQxOyBleGl0fScpCisgICAgaWYgWyAt biAiJHByaW5jaXBhbCIgXSAmJiBrbGlzdCAtcyAyPi9kZXYvbnVsbDsgdGhlbgorICAgICAgICBp bmZvICJLZXJiZXJvcyBwcmluY2lwYWw6ICRwcmluY2lwYWwiCisgICAgICAgIHJldHVybiAwCisg ICAgZmkKKyAgICBpZiBbIC1uICIkcHJpbmNpcGFsIiBdOyB0aGVuCisgICAgICAgIGRpZSAiS2Vy YmVyb3MgdGlja2V0IGZvciAkcHJpbmNpcGFsIGlzIG1pc3Npbmcgb3IgZXhwaXJlZC4gUnVuOiBr aW5pdCAkcHJpbmNpcGFsIgorICAgIGZpCisgICAgZGllICJObyBGRURPUkFQUk9KRUNULk9SRyBL ZXJiZXJvcyB0aWNrZXQgZm91bmQuIFJ1bjoga2luaXQgPHVzZXJuYW1lPkBGRURPUkFQUk9KRUNU Lk9SRyIKK30KKworc3BlY19nZXQoKSB7ICAjIHNwZWNfZ2V0IDx0YWctb3ItbWFjcm8tcmVnZXhw PiAtLSBmaXJzdCBjYXB0dXJlIG9mIHRoZSB2YWx1ZQorICAgIGdyZXAgLW0xIC1vUCAiJDEiIGZp cmVmb3guc3BlYyAyPi9kZXYvbnVsbAorfQorCisjIGRyb3BfcGF0Y2ggPHBhdGNoLWZpbGUtbmFt ZSB8IHBhdGNoLW51bWJlcj4KKyMgUmVtb3ZlcyB0aGUgUGF0Y2hOTk46IGRlY2xhcmF0aW9uIGFu ZCB0aGUgbWF0Y2hpbmcgJyVwYXRjaCAtUE5OTicgbGluZSBmcm9tCisjIGZpcmVmb3guc3BlYywg dGhlbiBkZWxldGVzIHRoZSBwYXRjaCBmaWxlIGZyb20gZ2l0LgorZHJvcF9wYXRjaCgpIHsKKyAg ICBsb2NhbCB3YW50PSIkMSIgbnVtIGZpbGUKKyAgICBpZiBbWyAiJHdhbnQiID1+IF5bMC05XSsk IF1dOyB0aGVuCisgICAgICAgIG51bT0iJHdhbnQiCisgICAgICAgIGZpbGU9JChncmVwIC1tMSAt b1AgIl5QYXRjaCR7bnVtfTpbWzpzcGFjZTpdXSpcS1xTKyIgZmlyZWZveC5zcGVjKQorICAgICAg ICBbIC1uICIkZmlsZSIgXSB8fCBkaWUgIk5vICdQYXRjaCR7bnVtfTonIGxpbmUgaW4gZmlyZWZv eC5zcGVjIgorICAgIGVsc2UKKyAgICAgICAgZmlsZT0iJHdhbnQiCisgICAgICAgIG51bT0kKGF3 ayAtdiBmPSIkZmlsZSIgXAorICAgICAgICAgICAgJyQxIH4gL15QYXRjaFswLTldKjokLyAmJiAk MiA9PSBmIHsgc3ViKC9eUGF0Y2gvLCIiLCQxKTsgc3ViKC86JC8sIiIsJDEpOyBwcmludCAkMTsg ZXhpdCB9JyBcCisgICAgICAgICAgICBmaXJlZm94LnNwZWMpCisgICAgICAgIFsgLW4gIiRudW0i IF0gfHwgZGllICJQYXRjaCAnJGZpbGUnIGlzIG5vdCByZWZlcmVuY2VkIGJ5IGZpcmVmb3guc3Bl YyIKKyAgICBmaQorCisgICAgaW5mbyAiRHJvcHBpbmcgUGF0Y2gke251bX06ICRmaWxlIgorCisg ICAgc2VkIC1pIC1FICIvXlBhdGNoJHtudW19OltbOnNwYWNlOl1dL2QiIGZpcmVmb3guc3BlYyBc CisgICAgICAgIHx8IGRpZSAiQ2Fubm90IHJlbW92ZSB0aGUgUGF0Y2gke251bX06IGxpbmUiCisg ICAgZ3JlcCAtcUUgIl5QYXRjaCR7bnVtfTpbWzpzcGFjZTpdXSIgZmlyZWZveC5zcGVjIFwKKyAg ICAgICAgJiYgZGllICJQYXRjaCR7bnVtfTogaXMgc3RpbGwgaW4gZmlyZWZveC5zcGVjIgorCisg ICAgIyAnLVA0NCcgbXVzdCBub3QgbWF0Y2ggJy1QNDQwJywgaGVuY2UgdGhlIHRyYWlsaW5nIGJv dW5kYXJ5LgorICAgIGlmIGdyZXAgLXFFICJeJXBhdGNoW1s6c3BhY2U6XV0rLVAke251bX0oW1s6 c3BhY2U6XV18JCkiIGZpcmVmb3guc3BlYzsgdGhlbgorICAgICAgICBzZWQgLWkgLUUgIi9eJXBh dGNoW1s6c3BhY2U6XV0rLVAke251bX0oW1s6c3BhY2U6XV18JCkvZCIgZmlyZWZveC5zcGVjIFwK KyAgICAgICAgICAgIHx8IGRpZSAiQ2Fubm90IHJlbW92ZSB0aGUgJyVwYXRjaCAtUCR7bnVtfScg bGluZSIKKyAgICAgICAgZ3JlcCAtcUUgIl4lcGF0Y2hbWzpzcGFjZTpdXSstUCR7bnVtfShbWzpz cGFjZTpdXXwkKSIgZmlyZWZveC5zcGVjIFwKKyAgICAgICAgICAgICYmIGRpZSAiJyVwYXRjaCAt UCR7bnVtfScgaXMgc3RpbGwgaW4gZmlyZWZveC5zcGVjIgorICAgIGVsc2UKKyAgICAgICAgd2Fy biAiTm8gJyVwYXRjaCAtUCR7bnVtfScgbGluZSBmb3VuZCAtIG9ubHkgdGhlIGRlY2xhcmF0aW9u IHdhcyByZW1vdmVkLiIKKyAgICBmaQorCisgICAgaWYgZ2l0IGxzLWZpbGVzIC0tZXJyb3ItdW5t YXRjaCAiJGZpbGUiID4vZGV2L251bGwgMj4mMTsgdGhlbgorICAgICAgICBydW4gZ2l0IHJtIC1m IC0tICIkZmlsZSIgfHwgZGllICJnaXQgcm0gb2YgJGZpbGUgZmFpbGVkIgorICAgIGVsaWYgWyAt ZiAiJGZpbGUiIF07IHRoZW4KKyAgICAgICAgaW5mbyAiJGZpbGUgaXMgbm90IHRyYWNrZWQgYnkg Z2l0LCByZW1vdmluZyBpdCBmcm9tIGRpc2siCisgICAgICAgIHJtIC1mIC0tICIkZmlsZSIKKyAg ICBlbHNlCisgICAgICAgIHdhcm4gIiRmaWxlIGRvZXMgbm90IGV4aXN0IG9uIGRpc2sgLSBvbmx5 IGZpcmVmb3guc3BlYyB3YXMgY2hhbmdlZC4iCisgICAgZmkKKworICAgIERST1BQRURfUEFUQ0hF Uys9KCIkZmlsZSAoUGF0Y2gke251bX0pIikKKyAgICBTUEVDX05PVEVTKz0oIkRyb3BwZWQgUGF0 Y2gke251bX06ICRmaWxlIikKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFN0ZXAgMTog R2V0IHZlcnNpb24gaW5mbworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgLS1kcm9wLXBhdGNo IHdpdGhvdXQgYSB2ZXJzaW9uIG9ubHkgZWRpdHMgdGhlIHNwZWMgYW5kIGdpdCAtIG5vIHVwZGF0 ZSBpcworIyBzdGFydGVkLCBzbyBubyB2ZXJzaW9uIGlzIG5lZWRlZCBvciBhc2tlZCBmb3IuCitE Uk9QX09OTFk9MAoraWYgWyAteiAiJE5FV19WRVJTSU9OIiBdICYmIFsgIiR7I0RST1BfUEFUQ0hF U1tAXX0iIC1ndCAwIF07IHRoZW4KKyAgICBEUk9QX09OTFk9MQorZmkKKworaWYgWyAteiAiJE5F V19WRVJTSU9OIiBdICYmIFsgIiREUk9QX09OTFkiIC1lcSAwIF07IHRoZW4KKyAgICBORVdfVkVS U0lPTj0kKGFzayAiV2hhdCBGaXJlZm94IHZlcnNpb24gd291bGQgeW91IGxpa2UgdG8gdXBkYXRl IHRvPyAoZS5nLiAxNTcuMCkiKQorICAgIFsgLW4gIiRORVdfVkVSU0lPTiIgXSB8fCBkaWUgIk5v IHZlcnNpb24gZ2l2ZW4iCitmaQorCitpZiBbIC16ICIkUEFDS0FHRV9ESVIiIF07IHRoZW4KKyAg ICBpZiBbIC1mICIkUFdEL2ZpcmVmb3guc3BlYyIgXTsgdGhlbgorICAgICAgICBQQUNLQUdFX0RJ Uj0iJFBXRCIKKyAgICBlbHNlCisgICAgICAgIFBBQ0tBR0VfRElSPSIkRkVET1JBX0JBU0VfRElS L2ZpcmVmb3giCisgICAgZmkKK2ZpCisKK2lmIFsgIiREUk9QX09OTFkiIC1lcSAwIF07IHRoZW4K KyAgICBzdGVwIDEgIlByZXBhcmluZyB1cGRhdGUgdG8gRmlyZWZveCAkTkVXX1ZFUlNJT04iCisg ICAgaW5mbyAiUGFja2FnZSBkaXJlY3Rvcnk6ICRQQUNLQUdFX0RJUiIKKyAgICBvayAiVGFyZ2V0 IHZlcnNpb246ICRORVdfVkVSU0lPTiIKK2ZpCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBT dGVwIDI6IFNldCB1cCB0aGUgcGFja2FnZSBkaXJlY3RvcnkKKyMtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorCitpZiBbICEgLWQgIiRQQUNLQUdFX0RJUiIgXTsgdGhlbgorICAgIHN0ZXAgMiAiQ2xvbmlu ZyB0aGUgZmlyZWZveCBwYWNrYWdlIgorICAgIGNoZWNrX2tlcmJlcm9zCisgICAgY2QgIiRGRURP UkFfQkFTRV9ESVIiIHx8IGRpZSAiQ2Fubm90IGVudGVyICRGRURPUkFfQkFTRV9ESVIiCisgICAg cnVuIGZlZHBrZyBjbG9uZSBmaXJlZm94IHx8IGRpZSAiZmVkcGtnIGNsb25lIGZpcmVmb3ggZmFp bGVkIgorICAgIG9rICJDbG9uZWQgZmlyZWZveCBpbnRvICRQQUNLQUdFX0RJUiIKK2ZpCisKK2Nk ICIkUEFDS0FHRV9ESVIiIHx8IGRpZSAiQ2Fubm90IGVudGVyICRQQUNLQUdFX0RJUiIKK1sgLWYg ZmlyZWZveC5zcGVjIF0gfHwgZGllICIkUEFDS0FHRV9ESVIgZG9lcyBub3QgY29udGFpbiBmaXJl Zm94LnNwZWMiCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBEcm9wLW9ubHkgbW9kZTogLWQv LS1kcm9wLXBhdGNoIGdpdmVuIHdpdGhvdXQgYSB2ZXJzaW9uCisjLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKworaWYgWyAiJERST1BfT05MWSIgLWVxIDEgXTsgdGhlbgorICAgIHByaW50ZiAnXG4lcz09 PiBEcm9wcGluZyAlZCBwYXRjaChlcykgZnJvbSBmaXJlZm94LnNwZWMgaW4gJXMlc1xuJyBcCisg ICAgICAgICIkQ19CT0xEJENfQkxVRSIgIiR7I0RST1BfUEFUQ0hFU1tAXX0iICIkUEFDS0FHRV9E SVIiICIkQ19PRkYiCisgICAgZm9yIHAgaW4gIiR7RFJPUF9QQVRDSEVTW0BdfSI7IGRvCisgICAg ICAgIGRyb3BfcGF0Y2ggIiRwIgorICAgIGRvbmUKKyAgICBwcmludGYgJ1xuICBEcm9wcGVkIHBh dGNoZXM6XG4nCisgICAgcHJpbnRmICcgICAgLSAlc1xuJyAiJHtEUk9QUEVEX1BBVENIRVNbQF19 IgorICAgIHByaW50ZiAnXG4nCisgICAgb2sgImZpcmVmb3guc3BlYyB1cGRhdGVkIGFuZCB0aGUg cGF0Y2ggZmlsZXMgcmVtb3ZlZCBmcm9tIGdpdC4iCisgICAgaW5mbyAiUmV2aWV3IHdpdGggJ2dp dCBkaWZmJyBhbmQgY29tbWl0IHdoZW4geW91IGFyZSByZWFkeS4iCisgICAgZXhpdCAwCitmaQor CisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgUmVwb3J0IHRoZSBzdGF0ZSBvZiB0aGUgd29ya2lu ZyB0cmVlIGJlZm9yZSB0b3VjaGluZyBhbnl0aGluZworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK KyMgUHJpbnRzIHRoZSBsb2NhbCBjaGFuZ2VzIGFzIGEgZGlmZjsgcmV0dXJucyAwIHdoZW4gdGhl cmUgYXJlIGFueS4KKyMgVW50cmFja2VkIGZpbGVzIGFyZSBpZ25vcmVkIG9uIHB1cnBvc2UgLSBh IG5vcm1hbCBydW4gbGVhdmVzIGRvd25sb2FkZWQKKyMgdGFyYmFsbHMgbHlpbmcgYXJvdW5kIGFu ZCB0aG9zZSBhcmUgbm90IGludGVyZXN0aW5nIGhlcmUuCitzaG93X2xvY2FsX2NoYW5nZXMoKSB7 CisgICAgZ2l0IGRpZmYgLS1xdWlldCBIRUFEIDI+L2Rldi9udWxsICYmIHJldHVybiAxCisgICAg cHJpbnRmICclc0xvY2FsIGNoYW5nZXMgaW4gJXMgKGJyYW5jaCAlcyk6JXNcblxuJyBcCisgICAg ICAgICIkQ19CT0xEJENfWUVMTE9XIiAiJFBBQ0tBR0VfRElSIiAiJChnaXQgYnJhbmNoIC0tc2hv dy1jdXJyZW50KSIgIiRDX09GRiIKKyAgICBnaXQgLS1uby1wYWdlciBkaWZmIEhFQUQKKyAgICBw cmludGYgJ1xuJworICAgIGdpdCAtLW5vLXBhZ2VyIGRpZmYgLS1zdGF0IEhFQUQgfCB0YWlsIC0x CisgICAgcmV0dXJuIDAKK30KKworIyBEZXN0cnVjdGl2ZSBwcm9tcHRzIGFyZSBuZXZlciBhdXRv LWFuc3dlcmVkIGJ5IC0teWVzOyB0aGV5IGFsd2F5cyBuZWVkIGEKKyMgZGVsaWJlcmF0ZSBrZXlz dHJva2UuIEFuc3dlcmluZyAncScgYWJvcnRzIHRoZSB3aG9sZSB1cGRhdGUuCitjb25maXJtX2Rl c3RydWN0aXZlKCkgeworICAgIGxvY2FsIHF1ZXN0aW9uPSIkMSIgYW5zd2VyCisgICAgaWYgWyAh IC10IDAgXTsgdGhlbgorICAgICAgICBpbmZvICIkcXVlc3Rpb24gLT4gbm8gKG5vdCBhIHRlcm1p bmFsKSIKKyAgICAgICAgcmV0dXJuIDEKKyAgICBmaQorICAgIHdoaWxlIHRydWU7IGRvCisgICAg ICAgIHJlYWQgLXIgLXAgIiRDX0JPTEQkQ19SRUQkcXVlc3Rpb24gW3ldZXMgLyBbTl1vIC8gW3Fd dWl0ICRDX09GRiIgYW5zd2VyCisgICAgICAgIGNhc2UgIiR7YW5zd2VyLCx9IiBpbgorICAgICAg ICAgICAgeXx5ZXMpICByZXR1cm4gMCA7OworICAgICAgICAgICAgbnxub3wiIikgcmV0dXJuIDEg OzsKKyAgICAgICAgICAgIHF8cXVpdCkKKyAgICAgICAgICAgICAgICBwcmludGYgJyVzQWJvcnRl ZCAtIHRoZSB3b3JraW5nIHRyZWUgaXMgbGVmdCB1bnRvdWNoZWQuJXNcbicgXAorICAgICAgICAg ICAgICAgICAgICAiJENfWUVMTE9XIiAiJENfT0ZGIgorICAgICAgICAgICAgICAgIGV4aXQgMCA7 OworICAgICAgICAgICAgKikgZWNobyAiUGxlYXNlIGFuc3dlciB5LCBuIG9yIHEuIiA7OworICAg ICAgICBlc2FjCisgICAgZG9uZQorfQorCisjIE9mZmVyIHRvIHRocm93IHRoZSBsb2NhbCBjaGFu Z2VzIGF3YXkgYmVmb3JlIHN0YXJ0aW5nIHRoZSB1cGRhdGUuCitvZmZlcl9yZXNldF9sb2NhbF9j aGFuZ2VzKCkgeworICAgIGlmIFsgIiRSRVNVTUVfRlJPTSIgLWd0IDEgXTsgdGhlbgorICAgICAg ICB3YXJuICJSZXN1bWluZyBhdCBzdGVwICRSRVNVTUVfRlJPTSAtIHRoZSBjaGFuZ2VzIGFib3Zl IGFyZSBwcm9iYWJseSB5b3VyIgorICAgICAgICB3YXJuICJpbi1wcm9ncmVzcyB1cGRhdGUuIERp c2NhcmRpbmcgdGhlbSByZXN0YXJ0cyB0aGUgdXBkYXRlIGZyb20gc2NyYXRjaC4iCisgICAgZmkK KworICAgIHByaW50ZiAnXG4nCisgICAgaWYgY29uZmlybV9kZXN0cnVjdGl2ZSAiRGlzY2FyZCB0 aGUgbG9jYWwgY2hhbmdlcyB3aXRoICdnaXQgcmVzZXQgLS1oYXJkIEhFQUQnPyI7IHRoZW4KKyAg ICAgICAgcnVuIGdpdCByZXNldCAtLWhhcmQgSEVBRCB8fCBkaWUgImdpdCByZXNldCAtLWhhcmQg ZmFpbGVkIgorICAgICAgICBvayAiTG9jYWwgY2hhbmdlcyBkaXNjYXJkZWQuIgorICAgIGVsc2UK KyAgICAgICAgaW5mbyAiS2VlcGluZyB0aGUgbG9jYWwgY2hhbmdlcy4iCisgICAgZmkKK30KKwor cHJpbnRmICdcbicKK2lmIHNob3dfbG9jYWxfY2hhbmdlczsgdGhlbgorICAgIEhBVkVfTE9DQUxf Q0hBTkdFUz0xCisgICAgWyAiJERPX1JPTExCQUNLIiAtZXEgMSBdIHx8IG9mZmVyX3Jlc2V0X2xv Y2FsX2NoYW5nZXMKKyAgICAjIFJlLWNoZWNrOiB0aGUgb2ZmZXIgYWJvdmUgbWF5IGhhdmUgcmVz ZXQgdGhlIHRyZWUuCisgICAgZ2l0IGRpZmYgLS1xdWlldCBIRUFEIDI+L2Rldi9udWxsICYmIEhB VkVfTE9DQUxfQ0hBTkdFUz0wCitlbHNlCisgICAgSEFWRV9MT0NBTF9DSEFOR0VTPTAKKyAgICBv ayAiV29ya2luZyB0cmVlIGlzIGNsZWFuLiIKK2ZpCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IyBSb2xsYmFjayBtb2RlCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworaWYgWyAiJERPX1JPTExC QUNLIiAtZXEgMSBdOyB0aGVuCisgICAgcHJpbnRmICdcbiVzUm9sbGJhY2s6IGRpc2NhcmRpbmcg dGhlIGluLXByb2dyZXNzIHVwZGF0ZSBsaXN0ZWQgYWJvdmUlc1xuJyBcCisgICAgICAgICIkQ19C T0xEJENfWUVMTE9XIiAiJENfT0ZGIgorICAgIGNvbmZpcm0gIlJlc2V0IHRoZSB3b3JraW5nIHRy ZWUgdG8gb3JpZ2luL3Jhd2hpZGUgYW5kIHJlbW92ZSBkb3dubG9hZGVkIHRhcmJhbGxzPyIgXAor ICAgICAgICB8fCBkaWUgIlJvbGxiYWNrIGNhbmNlbGxlZCIKKyAgICBydW4gZ2l0IGNoZWNrb3V0 IHJhd2hpZGUgfHwgZGllICJnaXQgY2hlY2tvdXQgcmF3aGlkZSBmYWlsZWQiCisgICAgcnVuIGdp dCByZXNldCAtLWhhcmQgb3JpZ2luL3Jhd2hpZGUgfHwgZGllICJnaXQgcmVzZXQgZmFpbGVkIgor ICAgIHJtIC1yZiAiZmlyZWZveC0kTkVXX1ZFUlNJT04vIgorICAgIHJtIC1mICAiZmlyZWZveC0k TkVXX1ZFUlNJT04uc291cmNlLnRhci54eiIKKyAgICBybSAtZiAgZmlyZWZveC1sYW5ncGFja3Mt IiRORVdfVkVSU0lPTiItKi50YXIueHoKKyAgICBvayAiUm9sbGJhY2sgY29tcGxldGUgLSB0aGUg d29ya2luZyB0cmVlIGlzIGNsZWFuLiIKKyAgICBleGl0IDAKK2ZpCisKKyMtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIyBTdGVwIDM6IFB1bGwgbGF0ZXN0IHJhd2hpZGUKKyMtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorCitpZiAhIHNraXBfc3RlcCAzOyB0aGVuCisgICAgc3RlcCAzICJQdWxsaW5nIGxhdGVz dCByYXdoaWRlIgorICAgIGlmIFsgIiRIQVZFX0xPQ0FMX0NIQU5HRVMiIC1lcSAxIF07IHRoZW4K KyAgICAgICAgd2FybiAiVGhlIHdvcmtpbmcgdHJlZSBoYXMgdW5jb21taXR0ZWQgY2hhbmdlcyAo c2hvd24gYWJvdmUpIgorICAgICAgICBjb25maXJtICJDb250aW51ZSBhbnl3YXk/IiB8fCBkaWUg IkFib3J0ZWQgLSBjbGVhbiB0aGUgd29ya2luZyB0cmVlIGZpcnN0IgorICAgIGZpCisgICAgaWYg Z2l0IHNob3ctcmVmIC0tdmVyaWZ5IC0tcXVpZXQgcmVmcy9oZWFkcy9yYXdoaWRlOyB0aGVuCisg ICAgICAgIHJ1biBnaXQgY2hlY2tvdXQgcmF3aGlkZSB8fCBkaWUgImdpdCBjaGVja291dCByYXdo aWRlIGZhaWxlZCIKKyAgICBlbHNlCisgICAgICAgIHJ1biBnaXQgY2hlY2tvdXQgLWIgcmF3aGlk ZSBvcmlnaW4vcmF3aGlkZSB8fCBkaWUgIkNhbm5vdCBjcmVhdGUgdGhlIHJhd2hpZGUgYnJhbmNo IgorICAgIGZpCisgICAgcnVuIGdpdCBwdWxsIHx8IGRpZSAiZ2l0IHB1bGwgZmFpbGVkIgorICAg IG9rICJXb3JraW5nIHRyZWUgaXMgdXAgdG8gZGF0ZSBvbiByYXdoaWRlLiIKK2ZpCisKKyMtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIyBTdGVwIDQ6IEJ1bXAgdGhlIHZlcnNpb24gaW4gdGhlIFNQRUMg ZmlsZQorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK09MRF9OU1NfVkVSU0lPTj0kKHNwZWNfZ2V0 ICdeJWdsb2JhbFxzK25zc192ZXJzaW9uXHMrXEtcUysnKQorT0xEX05TUFJfVkVSU0lPTj0kKHNw ZWNfZ2V0ICdeJWdsb2JhbFxzK25zcHJfdmVyc2lvblxzK1xLXFMrJykKKworaWYgISBza2lwX3N0 ZXAgNDsgdGhlbgorICAgIHN0ZXAgNCAiQnVtcGluZyB0aGUgdmVyc2lvbiBpbiBmaXJlZm94LnNw ZWMiCisgICAgT0xEX1ZFUlNJT049JChzcGVjX2dldCAnXlZlcnNpb246XHMqXEtcUysnKQorICAg IFsgLW4gIiRPTERfVkVSU0lPTiIgXSB8fCBkaWUgIkNhbm5vdCByZWFkIFZlcnNpb246IGZyb20g ZmlyZWZveC5zcGVjIgorICAgIGluZm8gIkN1cnJlbnQgdmVyc2lvbjogJE9MRF9WRVJTSU9OIgor CisgICAgRE9fQlVNUD0xCisgICAgaWYgWyAiJE9MRF9WRVJTSU9OIiA9ICIkTkVXX1ZFUlNJT04i IF07IHRoZW4KKyAgICAgICAgd2FybiAiZmlyZWZveC5zcGVjIGlzIGFscmVhZHkgYXQgJE5FV19W RVJTSU9OIgorICAgICAgICBpZiBjb25maXJtICJCdW1wIGl0IGFnYWluIChhZGRzIGFub3RoZXIg Y2hhbmdlbG9nIGVudHJ5KT8iOyB0aGVuCisgICAgICAgICAgICBET19CVU1QPTEKKyAgICAgICAg ZWxzZQorICAgICAgICAgICAgRE9fQlVNUD0wCisgICAgICAgICAgICBpbmZvICJLZWVwaW5nIHRo ZSBzcGVjIHZlcnNpb24gYXMgaXMuIgorICAgICAgICBmaQorICAgIGZpCisKKyAgICBpZiBbICIk RE9fQlVNUCIgLWVxIDEgXTsgdGhlbgorICAgICAgICBidW1wc3BlY19hcmdzPSgtLW5ldyAiJE5F V19WRVJTSU9OIiAtLWNvbW1lbnQgIlVwZGF0ZSB0byBsYXRlc3QgdXBzdHJlYW0gKCRORVdfVkVS U0lPTikiKQorICAgICAgICBbIC1uICIkQ0hBTkdFTE9HX0FVVEhPUiIgXSAmJiBidW1wc3BlY19h cmdzKz0oLS11c2Vyc3RyaW5nICIkQ0hBTkdFTE9HX0FVVEhPUiIpCisgICAgICAgIHJ1biBycG1k ZXYtYnVtcHNwZWMgIiR7YnVtcHNwZWNfYXJnc1tAXX0iIGZpcmVmb3guc3BlYyBcCisgICAgICAg ICAgICB8fCBkaWUgInJwbWRldi1idW1wc3BlYyBmYWlsZWQiCisgICAgZmkKKworICAgIGdvdF92 ZXJzaW9uPSQoc3BlY19nZXQgJ15WZXJzaW9uOlxzKlxLXFMrJykKKyAgICBbICIkZ290X3ZlcnNp b24iID0gIiRORVdfVkVSU0lPTiIgXSBcCisgICAgICAgIHx8IGRpZSAiVmVyc2lvbjogaXMgJGdv dF92ZXJzaW9uLCBleHBlY3RlZCAkTkVXX1ZFUlNJT04gLSBmaXggZmlyZWZveC5zcGVjIG1hbnVh bGx5IgorCisgICAgZ290X3JlbGVhc2U9JChzcGVjX2dldCAnXlJlbGVhc2U6XHMqXEtcUysnKQor ICAgIGlmIFtbICIkZ290X3JlbGVhc2UiICE9IDEqIF1dOyB0aGVuCisgICAgICAgIGluZm8gIlJl bGVhc2UgaXMgJyRnb3RfcmVsZWFzZScsIHJlc2V0dGluZyB0byAxJXs/cHJlX3RhZ30lez9kaXN0 fSIKKyAgICAgICAgc2VkIC1pIC1FICdzfF5SZWxlYXNlOihbWzpzcGFjZTpdXSopLip8UmVsZWFz ZTpcMTElez9wcmVfdGFnfSV7P2Rpc3R9fCcgZmlyZWZveC5zcGVjIFwKKyAgICAgICAgICAgIHx8 IGRpZSAiQ2Fubm90IHJlc2V0IFJlbGVhc2U6IgorICAgIGZpCisgICAgb2sgImZpcmVmb3guc3Bl YyBpcyBhdCAkTkVXX1ZFUlNJT04sIHJlbGVhc2UgJChzcGVjX2dldCAnXlJlbGVhc2U6XHMqXEtc UysnKS4iCitmaQorCisjIFJlY292ZXIgT0xEX1ZFUlNJT04gd2hlbiByZXN1bWluZyBwYXN0IHN0 ZXAgNC4KK2lmIFsgLXogIiRPTERfVkVSU0lPTiIgXTsgdGhlbgorICAgIE9MRF9WRVJTSU9OPSQo Z2l0IHNob3cgSEVBRDpmaXJlZm94LnNwZWMgMj4vZGV2L251bGwgfCBncmVwIC1tMSAtb1AgJ15W ZXJzaW9uOlxzKlxLXFMrJykKKyAgICBPTERfVkVSU0lPTj0iJHtPTERfVkVSU0lPTjotdW5rbm93 bn0iCitmaQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgU3RlcCA1OiBHZXQgdGhlIE1vemls bGEgYnVpbGQgdmVyc2lvbgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0NBTkRJREFURVNfVVJM PSIkQVJDSElWRV9VUkwvJE5FV19WRVJTSU9OLWNhbmRpZGF0ZXMiCisKK2lmIFsgLXogIiRCVUlM RF9WRVJTSU9OIiBdOyB0aGVuCisgICAgc3RlcCA1ICJMb29raW5nIHVwIHRoZSBsYXRlc3QgTW96 aWxsYSBjYW5kaWRhdGUgYnVpbGQiCisgICAgbGlzdGluZz0kKGN1cmwgLWZzU0wgIiRDQU5ESURB VEVTX1VSTC8iKSBcCisgICAgICAgIHx8IGRpZSAiQ2Fubm90IGxpc3QgJENBTkRJREFURVNfVVJM LyAtIGlzICRORVdfVkVSU0lPTiByZWxlYXNlZCB5ZXQ/IgorICAgIEJVSUxEX1ZFUlNJT049JChn cmVwIC1vRSAnYnVpbGRbMC05XSsvJyA8PDwiJGxpc3RpbmciIHwgdHIgLWQgJy8nIHwgc29ydCAt dSAtViB8IHRhaWwgLTEpCisgICAgWyAtbiAiJEJVSUxEX1ZFUlNJT04iIF0gfHwgZGllICJObyBi dWlsZE4gZGlyZWN0b3J5IGZvdW5kIGluICRDQU5ESURBVEVTX1VSTC8iCisgICAgb2sgIkxhdGVz dCBjYW5kaWRhdGUgYnVpbGQ6ICRCVUlMRF9WRVJTSU9OIgorZWxzZQorICAgIGluZm8gIlVzaW5n IGNhbmRpZGF0ZSBidWlsZDogJEJVSUxEX1ZFUlNJT04gKGZyb20gLS1idWlsZCkiCitmaQorCitC VUlMRF9VUkw9IiRDQU5ESURBVEVTX1VSTC8kQlVJTERfVkVSU0lPTiIKKyMgVGhlIHNvdXJjZSB0 YXJiYWxsIGFuZCBpdHMgLmFzYyBsaXZlIGluIHRoZSBzb3VyY2UvIHN1YmRpcmVjdG9yeSwgdGhl CisjIGxhbmdwYWNrIFhQSXMgZG8gbm90LgorU09VUkNFX1VSTD0iJEJVSUxEX1VSTC9zb3VyY2Ui CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTdGVwIDY6IERvd25sb2FkIHRoZSBGaXJlZm94 IHNvdXJjZSB0YXJiYWxsCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworTkVXX1RBUkJBTEw9ImZp cmVmb3gtJE5FV19WRVJTSU9OLnNvdXJjZS50YXIueHoiCisKKyMgQ2hlY2tzICRORVdfVEFSQkFM TCBhZ2FpbnN0IHRoZSBkZXRhY2hlZCBzaWduYXR1cmUgJE5FV19UQVJCQUxMLmFzYy4KKyMgICAw ID0gZ29vZCBzaWduYXR1cmUsIDEgPSBiYWQgc2lnbmF0dXJlLCAyID0gY2Fubm90IHRlbGwgKG5v IGdwZyAvIG5vIGtleSkKK3ZlcmlmeV90YXJiYWxsX3NpZ25hdHVyZSgpIHsKKyAgICBjb21tYW5k IC12IGdwZyA+L2Rldi9udWxsIDI+JjEgfHwgcmV0dXJuIDIKKyAgICBbIC1zICIkTkVXX1RBUkJB TEwuYXNjIiBdIHx8IHJldHVybiAyCisgICAgbG9jYWwgb3V0IGtleQorICAgIG91dD0kKGdwZyAt LXZlcmlmeSAiJE5FV19UQVJCQUxMLmFzYyIgIiRORVdfVEFSQkFMTCIgMj4mMSkKKyAgICBpZiBn cmVwIC1xICdeZ3BnOiBHb29kIHNpZ25hdHVyZScgPDw8IiRvdXQiOyB0aGVuCisgICAgICAgIHJl dHVybiAwCisgICAgZmkKKyAgICBpZiBncmVwIC1xRSAiTm8gcHVibGljIGtleXxDYW4ndCBjaGVj ayBzaWduYXR1cmUiIDw8PCIkb3V0IjsgdGhlbgorICAgICAgICAjIE1vemlsbGEgcm90YXRlcyBp dHMgc2lnbmluZyBrZXksIHNvIHRha2UgdGhlIGtleSBpZCBmcm9tIGdwZyBpdHNlbGYuCisgICAg ICAgIGtleT0kKGdyZXAgLW9QICd1c2luZyBcUysga2V5IFxLWzAtOUEtRl0rJyA8PDwiJG91dCIg fCBoZWFkIC0xKQorICAgICAgICB3YXJuICJNb3ppbGxhIHNpZ25pbmcga2V5ICR7a2V5Oi0odW5r bm93bil9IGlzIG5vdCBpbiB0aGUga2V5cmluZy4iCisgICAgICAgIHdhcm4gIkltcG9ydCBpdCB3 aXRoOiBncGcgLS1yZWN2LWtleXMgJHtrZXk6LTxrZXktaWQ+fSIKKyAgICAgICAgcmV0dXJuIDIK KyAgICBmaQorICAgIHJldHVybiAxCit9CisKKyMgRmFsbGJhY2sgd2hlbiB0aGUgc2lnbmF0dXJl IGNhbm5vdCBiZSBjaGVja2VkOiBjb21wYXJlIHRoZSBsb2NhbCBzaXplIHdpdGgKKyMgdGhlIENv bnRlbnQtTGVuZ3RoIHRoZSBhcmNoaXZlIHJlcG9ydHMuCittYXRjaGVzX3JlbW90ZV9zaXplKCkg eworICAgIGxvY2FsIHJlbW90ZSBsb2NhbF9zaXplCisgICAgcmVtb3RlPSQoY3VybCAtc2ZJTCAi JFNPVVJDRV9VUkwvJE5FV19UQVJCQUxMIiBcCisgICAgICAgIHwgZ3JlcCAtaSAnXmNvbnRlbnQt bGVuZ3RoOicgfCB0YWlsIC0xIHwgdHIgLWRjICcwLTknKQorICAgIFsgLW4gIiRyZW1vdGUiIF0g fHwgcmV0dXJuIDIKKyAgICBsb2NhbF9zaXplPSQoc3RhdCAtYyVzICIkTkVXX1RBUkJBTEwiIDI+ L2Rldi9udWxsKQorICAgIFsgIiRyZW1vdGUiID0gIiRsb2NhbF9zaXplIiBdCit9CisKK2lmICEg c2tpcF9zdGVwIDY7IHRoZW4KKyAgICBzdGVwIDYgIkRvd25sb2FkaW5nICRORVdfVEFSQkFMTCIK KworICAgICMgVGhlIGRldGFjaGVkIHNpZ25hdHVyZSBpcyB0aW55IC0gZmV0Y2ggaXQgZmlyc3Qg c28gYW4gYWxyZWFkeSBwcmVzZW50CisgICAgIyB0YXJiYWxsIGNhbiBiZSBjaGVja2VkIHdpdGhv dXQgZG93bmxvYWRpbmcgdGhlIH42MDAgTUIgZmlsZSBhZ2Fpbi4KKyAgICBybSAtZiAiJE5FV19U QVJCQUxMLmFzYyIKKyAgICB3Z2V0IC1xIC1PICIkTkVXX1RBUkJBTEwuYXNjIiAiJFNPVVJDRV9V UkwvJE5FV19UQVJCQUxMLmFzYyIgXAorICAgICAgICB8fCB3YXJuICJObyBkZXRhY2hlZCBzaWdu YXR1cmUgYXQgJFNPVVJDRV9VUkwvJE5FV19UQVJCQUxMLmFzYyIKKworICAgIE5FRURfRE9XTkxP QUQ9MQorICAgIGlmIFsgLWYgIiRORVdfVEFSQkFMTCIgXTsgdGhlbgorICAgICAgICBpbmZvICIk TkVXX1RBUkJBTEwgaXMgYWxyZWFkeSBoZXJlLCBjaGVja2luZyBpdCBhZ2FpbnN0ICRORVdfVEFS QkFMTC5hc2MiCisgICAgICAgIHZlcmlmeV90YXJiYWxsX3NpZ25hdHVyZQorICAgICAgICBjYXNl ICQ/IGluCisgICAgICAgICAgICAwKSAgb2sgIlNpZ25hdHVyZSBpcyBnb29kIC0gcmV1c2luZyB0 aGUgbG9jYWwgJE5FV19UQVJCQUxMLiIKKyAgICAgICAgICAgICAgICBORUVEX0RPV05MT0FEPTAg OzsKKyAgICAgICAgICAgIDEpICB3YXJuICJTaWduYXR1cmUgZG9lcyBOT1QgbWF0Y2ggLSB0aGUg bG9jYWwgdGFyYmFsbCBpcyBzdGFsZSBvciBjb3JydXB0LiIKKyAgICAgICAgICAgICAgICBybSAt ZiAiJE5FV19UQVJCQUxMIiA7OworICAgICAgICAgICAgMikgIGlmIG1hdGNoZXNfcmVtb3RlX3Np emU7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgd2FybiAiRmFsbGluZyBiYWNrIHRvIGEgc2l6 ZSBjaGVjazogbG9jYWwgc2l6ZSBtYXRjaGVzIHRoZSBhcmNoaXZlLiIKKyAgICAgICAgICAgICAg ICAgICAgb2sgIlJldXNpbmcgdGhlIGxvY2FsICRORVdfVEFSQkFMTC4iCisgICAgICAgICAgICAg ICAgICAgIE5FRURfRE9XTkxPQUQ9MAorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg ICAgICAgICAgaW5mbyAiU2l6ZSBkaWZmZXJzIGZyb20gdGhlIGFyY2hpdmUgKG9yIGlzIHVua25v d24pIC0gZG93bmxvYWRpbmcgYWdhaW4uIgorICAgICAgICAgICAgICAgICAgICBybSAtZiAiJE5F V19UQVJCQUxMIgorICAgICAgICAgICAgICAgIGZpIDs7CisgICAgICAgIGVzYWMKKyAgICAgICAg aWYgWyAiJE5FRURfRE9XTkxPQUQiIC1lcSAxIF0gJiYgWyAtZiBzb3VyY2VzIF0gXAorICAgICAg ICAgICAmJiBncmVwIC1xICIoJE5FV19UQVJCQUxMKSIgc291cmNlczsgdGhlbgorICAgICAgICAg ICAgaW5mbyAiUmVtb3ZpbmcgdGhlIHN0YWxlICRORVdfVEFSQkFMTCBlbnRyeSBmcm9tIHNvdXJj ZXMiCisgICAgICAgICAgICBzZWQgLWkgIlx8KCRORVdfVEFSQkFMTCl8ZCIgc291cmNlcworICAg ICAgICBmaQorICAgIGZpCisKKyAgICBpZiBbICIkTkVFRF9ET1dOTE9BRCIgLWVxIDEgXTsgdGhl bgorICAgICAgICBydW4gd2dldCAtLXByb2dyZXNzPWRvdDpnaWdhIC1PICIkTkVXX1RBUkJBTEwi ICIkU09VUkNFX1VSTC8kTkVXX1RBUkJBTEwiIFwKKyAgICAgICAgICAgIHx8IHsgcm0gLWYgIiRO RVdfVEFSQkFMTCI7IGRpZSAiRG93bmxvYWQgb2YgJFNPVVJDRV9VUkwvJE5FV19UQVJCQUxMIGZh aWxlZCI7IH0KKyAgICAgICAgb2sgIkRvd25sb2FkZWQgJE5FV19UQVJCQUxMICgkKGR1IC1oICIk TkVXX1RBUkJBTEwiIHwgY3V0IC1mMSkpLiIKKyAgICAgICAgdmVyaWZ5X3RhcmJhbGxfc2lnbmF0 dXJlCisgICAgICAgIGNhc2UgJD8gaW4KKyAgICAgICAgICAgIDApIG9rICJQR1Agc2lnbmF0dXJl IHZlcmlmaWVkLiIgOzsKKyAgICAgICAgICAgIDEpIHJtIC1mICIkTkVXX1RBUkJBTEwiICIkTkVX X1RBUkJBTEwuYXNjIgorICAgICAgICAgICAgICAgZGllICJEb3dubG9hZGVkICRORVdfVEFSQkFM TCBkb2VzIG5vdCBtYXRjaCBpdHMgUEdQIHNpZ25hdHVyZSIgOzsKKyAgICAgICAgZXNhYworICAg IGZpCisKKyAgICBybSAtZiAiJE5FV19UQVJCQUxMLmFzYyIKK2ZpCisKK1sgLWYgIiRORVdfVEFS QkFMTCIgXSB8fCBkaWUgIiRORVdfVEFSQkFMTCBpcyBtaXNzaW5nIC0gcmUtcnVuIGZyb20gc3Rl cCA2IgorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgU3RlcCA3OiBEb3dubG9hZCBsYW5ncGFj a3MKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitpZiAhIHNraXBfc3RlcCA3OyB0aGVuCisgICAg c3RlcCA3ICJEb3dubG9hZGluZyBsYW5ncGFja3MiCisKKyAgICAjIFRoZSBsYW5ncGFjayB0YXJi YWxsIGlzIG5hbWVkIGZpcmVmb3gtbGFuZ3BhY2tzLTx2ZXJzaW9uPi08WVlZWU1NREQ+LnRhci54 ei4KKyAgICAjIElmIG9uZSBmb3IgdGhpcyB2ZXJzaW9uIGlzIGFscmVhZHkgaGVyZSwgcmV1c2Ug aXQgaW5zdGVhZCBvZiBkb3dubG9hZGluZworICAgICMgZXZlcnkgWFBJIGFnYWluOyB0aGUgbmV3 ZXN0IGdlbmVyYXRpb24gZGF0ZSB3aW5zLgorICAgIExBTkdQQUNLX0ZJTEU9JChscyAtMSBmaXJl Zm94LWxhbmdwYWNrcy0iJE5FV19WRVJTSU9OIi0qLnRhci54eiAyPi9kZXYvbnVsbCBcCisgICAg ICAgIHwgc29ydCAtViB8IHRhaWwgLTEpCisKKyAgICBpZiBbIC1uICIkTEFOR1BBQ0tfRklMRSIg XTsgdGhlbgorICAgICAgICBsYW5ncGFja19kYXRlPSIke0xBTkdQQUNLX0ZJTEUjIyotfSI7IGxh bmdwYWNrX2RhdGU9IiR7bGFuZ3BhY2tfZGF0ZSUudGFyLnh6fSIKKyAgICAgICAgaW5mbyAiTGFu Z3BhY2sgdGFyYmFsbCBmb3IgJE5FV19WRVJTSU9OIGFscmVhZHkgcHJlc2VudCwgZ2VuZXJhdGVk ICRsYW5ncGFja19kYXRlIgorICAgICAgICBpbmZvICJSZXVzaW5nICRMQU5HUEFDS19GSUxFIC0g ZGVsZXRlIGl0IHRvIGZvcmNlIGEgZnJlc2ggZG93bmxvYWQuIgorICAgIGVsc2UKKyAgICAgICAg WyAteCAuL21vei1ncmFiLWxhbmdwYWNrcyBdIHx8IGRpZSAiLi9tb3otZ3JhYi1sYW5ncGFja3Mg bm90IGZvdW5kIG9yIG5vdCBleGVjdXRhYmxlIgorICAgICAgICBydW4gLi9tb3otZ3JhYi1sYW5n cGFja3MgLWEgZmlyZWZveCAiJE5FV19WRVJTSU9OIiBcCisgICAgICAgICAgICAtdSAiJEJVSUxE X1VSTC9saW51eC14ODZfNjQveHBpLyIgXAorICAgICAgICAgICAgfHwgZGllICJtb3otZ3JhYi1s YW5ncGFja3MgZmFpbGVkIgorCisgICAgICAgIExBTkdQQUNLX0ZJTEU9JChscyAtMSBmaXJlZm94 LWxhbmdwYWNrcy0iJE5FV19WRVJTSU9OIi0qLnRhci54eiAyPi9kZXYvbnVsbCBcCisgICAgICAg ICAgICB8IHNvcnQgLVYgfCB0YWlsIC0xKQorICAgICAgICBbIC1uICIkTEFOR1BBQ0tfRklMRSIg XSB8fCBkaWUgIk5vIGZpcmVmb3gtbGFuZ3BhY2tzLSRORVdfVkVSU0lPTi0qLnRhci54eiB3YXMg Y3JlYXRlZCIKKyAgICAgICAgaW5mbyAiTGFuZ3BhY2sgdGFyYmFsbDogJExBTkdQQUNLX0ZJTEUi CisgICAgZmkKKworICAgICMgU291cmNlMSBrZWVwcyB0aGUgJXt2ZXJzaW9ufSV7P3ByZV92ZXJz aW9ufSBtYWNyb3MsIG9ubHkgdGhlIGRhdGUgY2hhbmdlcy4KKyAgICBvbGRfc291cmNlMT0kKHNw ZWNfZ2V0ICdeU291cmNlMTpccypcS1xTKycpCisgICAgbGFuZ3BhY2tfZGF0ZT0iJHtMQU5HUEFD S19GSUxFIyMqLX0iOyBsYW5ncGFja19kYXRlPSIke2xhbmdwYWNrX2RhdGUlLnRhci54en0iCisg ICAgbmV3X3NvdXJjZTE9ImZpcmVmb3gtbGFuZ3BhY2tzLSV7dmVyc2lvbn0lez9wcmVfdmVyc2lv bn0tJGxhbmdwYWNrX2RhdGUudGFyLnh6IgorICAgIGlmIFsgIiRvbGRfc291cmNlMSIgIT0gIiRu ZXdfc291cmNlMSIgXTsgdGhlbgorICAgICAgICBzZWQgLWkgLUUgInN8XlNvdXJjZTE6KFtbOnNw YWNlOl1dKikuKnxTb3VyY2UxOlwxJG5ld19zb3VyY2UxfCIgZmlyZWZveC5zcGVjIFwKKyAgICAg ICAgICAgIHx8IGRpZSAiQ2Fubm90IHVwZGF0ZSBTb3VyY2UxIGluIGZpcmVmb3guc3BlYyIKKyAg ICAgICAgaW5mbyAiU291cmNlMTogJG9sZF9zb3VyY2UxIC0+ICRuZXdfc291cmNlMSIKKyAgICBm aQorICAgIG9rICJVc2luZyAkTEFOR1BBQ0tfRklMRTsgU291cmNlMSBpcyB1cCB0byBkYXRlLiIK K2ZpCisKK2lmIFsgLXogIiRMQU5HUEFDS19GSUxFIiBdOyB0aGVuCisgICAgTEFOR1BBQ0tfRklM RT0kKGxzIC0xIGZpcmVmb3gtbGFuZ3BhY2tzLSIkTkVXX1ZFUlNJT04iLSoudGFyLnh6IDI+L2Rl di9udWxsIFwKKyAgICAgICAgfCBzb3J0IC1WIHwgdGFpbCAtMSkKK2ZpCitbIC1uICIkTEFOR1BB Q0tfRklMRSIgXSB8fCBkaWUgIk5vIGxhbmdwYWNrIHRhcmJhbGwgZm9yICRORVdfVkVSU0lPTiAt IHJlLXJ1biBmcm9tIHN0ZXAgNyIKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFN0ZXAgODog VXBsb2FkIG5ldyBzb3VyY2VzCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworaWYgISBza2lwX3N0 ZXAgODsgdGhlbgorICAgIHN0ZXAgOCAiVXBsb2FkaW5nIG5ldyBzb3VyY2VzIHRvIHRoZSBsb29r YXNpZGUgY2FjaGUiCisgICAgY2hlY2tfa2VyYmVyb3MKKyAgICBbIC1mIHNvdXJjZXMgXSB8fCBk aWUgIk5vIHNvdXJjZXMgZmlsZSBpbiAkUEFDS0FHRV9ESVIiCisKKyAgICAjIEV2ZXJ5dGhpbmcg ZXhjZXB0IHRoZSBGaXJlZm94IHNvdXJjZS9sYW5ncGFjayB0YXJiYWxscyBpcyBrZXB0IGFzIGlz LgorICAgIG1hcGZpbGUgLXQgS0VQVF9TT1VSQ0VTIDwgPCgKKyAgICAgICAgc2VkIC1uRSAnc3xe W0EtWmEtejAtOV0rIFwoKFteKV0rKVwpLip8XDF8cCcgc291cmNlcyBcCisgICAgICAgICAgICB8 IGdyZXAgLXZFICdeZmlyZWZveC0uKlwuc291cmNlXC50YXJcLnh6JCcgXAorICAgICAgICAgICAg fCBncmVwIC12RSAnXmZpcmVmb3gtbGFuZ3BhY2tzLS4qXC50YXJcLnh6JCcKKyAgICApCisgICAg aW5mbyAiS2VwdCBzb3VyY2VzOiAgICAke0tFUFRfU09VUkNFU1sqXTotKG5vbmUpfSIKKyAgICBp bmZvICJVcGxvYWRlZCBhbmV3OiAgICRORVdfVEFSQkFMTCAkTEFOR1BBQ0tfRklMRSIKKworICAg ICMgVHJpbSB0aGUgc291cmNlcyBmaWxlIGZpcnN0IHNvIHRoYXQgJ2ZlZHBrZyBzb3VyY2VzJyBk b2VzIG5vdCByZS1kb3dubG9hZAorICAgICMgdGhlIHByZXZpb3VzIChodWdlKSBGaXJlZm94IHRh cmJhbGwsIHRoZW4gZmV0Y2ggd2hhdGV2ZXIgaXMgc3RpbGwgbWlzc2luZy4KKyAgICBjcCBzb3Vy Y2VzIHNvdXJjZXMuYmFrIHx8IGRpZSAiQ2Fubm90IGJhY2sgdXAgdGhlIHNvdXJjZXMgZmlsZSIK KyAgICB0cmFwICdpZiBbIC1mICIkUEFDS0FHRV9ESVIvc291cmNlcy5iYWsiIF07IHRoZW4gbXYg LWYgIiRQQUNLQUdFX0RJUi9zb3VyY2VzLmJhayIgIiRQQUNLQUdFX0RJUi9zb3VyY2VzIjsgZmkn IEVYSVQKKyAgICBncmVwIC12RSAnXChmaXJlZm94LS4qXC5zb3VyY2VcLnRhclwueHpcKXxcKGZp cmVmb3gtbGFuZ3BhY2tzLS4qXC50YXJcLnh6XCknIFwKKyAgICAgICAgc291cmNlcy5iYWsgPiBz b3VyY2VzCisgICAgcnVuIGZlZHBrZyBzb3VyY2VzIHx8IGRpZSAiZmVkcGtnIHNvdXJjZXMgZmFp bGVkIChLZXJiZXJvcyB0aWNrZXQgZXhwaXJlZD8pIgorCisgICAgZm9yIGYgaW4gIiR7S0VQVF9T T1VSQ0VTW0BdfSI7IGRvCisgICAgICAgIFsgLWYgIiRmIiBdIHx8IGRpZSAiS2VwdCBzb3VyY2Ug JGYgaXMgbWlzc2luZyBsb2NhbGx5IC0gY2Fubm90IHJlLXVwbG9hZCBpdCIKKyAgICBkb25lCisK KyAgICBydW4gZmVkcGtnIG5ldy1zb3VyY2VzICIkTkVXX1RBUkJBTEwiICIkTEFOR1BBQ0tfRklM RSIgIiR7S0VQVF9TT1VSQ0VTW0BdfSIgXAorICAgICAgICB8fCBkaWUgImZlZHBrZyBuZXctc291 cmNlcyBmYWlsZWQiCisKKyAgICB0cmFwIC0gRVhJVAorICAgIHJtIC1mIHNvdXJjZXMuYmFrCisg ICAgb2sgIlVwbG9hZGVkICRORVdfVEFSQkFMTCBhbmQgJExBTkdQQUNLX0ZJTEU7IHNvdXJjZXMg ZmlsZSByZWZyZXNoZWQuIgorZmkKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFN0ZXAgOTog Q2hlY2sgYW5kIHJlYmFzZSBwYXRjaGVzCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworaWYgWyAi JHsjRFJPUF9QQVRDSEVTW0BdfSIgLWd0IDAgXSAmJiBza2lwX3N0ZXAgOTsgdGhlbgorICAgIHdh cm4gIi0tZHJvcC1wYXRjaCBpZ25vcmVkOiByZXN1bWluZyBhdCBzdGVwICRSRVNVTUVfRlJPTSwg cGFzdCB0aGUgcGF0Y2ggc3RlcC4iCitmaQorCitpZiAhIHNraXBfc3RlcCA5OyB0aGVuCisgICAg c3RlcCA5ICJDaGVja2luZyBwYXRjaGVzIGFnYWluc3QgdGhlIG5ldyBzb3VyY2VzIgorCisgICAg Zm9yIHAgaW4gIiR7RFJPUF9QQVRDSEVTW0BdfSI7IGRvCisgICAgICAgIGRyb3BfcGF0Y2ggIiRw IgorICAgIGRvbmUKKyAgICBbICIkeyNEUk9QUEVEX1BBVENIRVNbQF19IiAtZ3QgMCBdIFwKKyAg ICAgICAgJiYgb2sgIkRyb3BwZWQgJHsjRFJPUFBFRF9QQVRDSEVTW0BdfSBwYXRjaChlcykuIgor CisgICAgbWFwZmlsZSAtdCBTUEVDX1BBVENIRVMgPCA8KGdyZXAgLW9QICdeUGF0Y2hbMC05XSo6 XHMqXEtcUysnIGZpcmVmb3guc3BlYykKKyAgICBpbmZvICIkeyNTUEVDX1BBVENIRVNbQF19IHBh dGNoZXMgcmVmZXJlbmNlZCBieSBmaXJlZm94LnNwZWMiCisgICAgZm9yIHAgaW4gIiR7U1BFQ19Q QVRDSEVTW0BdfSI7IGRvCisgICAgICAgIGNhc2UgIiRwIiBpbgorICAgICAgICAgICAgaHR0cCp8 JSopIGNvbnRpbnVlIDs7CisgICAgICAgIGVzYWMKKyAgICAgICAgWyAtZiAiJHAiIF0gfHwgd2Fy biAiUGF0Y2ggZmlsZSByZWZlcmVuY2VkIGJ1dCBtaXNzaW5nOiAkcCIKKyAgICBkb25lCisgICAg aW5mbyAiUGF0Y2ggYXBwbGljYXRpb24gaXRzZWxmIGlzIHZlcmlmaWVkIGJ5ICdmZWRwa2cgcHJl cCcgaW4gdGhlIG5leHQgc3RlcC4iCisgICAgb2sgIlBhdGNoIGxpc3QgY2hlY2tlZC4iCitmaQor CisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgU3RlcCAxMDogVmVyaWZ5IHBhdGNoZXMgYXBwbHkg d2l0aCBmZWRwa2cgcHJlcAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2lmICEgc2tpcF9zdGVw IDEwOyB0aGVuCisgICAgc3RlcCAxMCAiVmVyaWZ5aW5nIHBhdGNoZXMgd2l0aCBmZWRwa2cgcHJl cCIKKyAgICBQUkVQX0xPRz0kKG1rdGVtcCAtdCBmaXJlZm94LXByZXAtWFhYWFhYLmxvZykKKyAg ICBpZiBydW4gZmVkcGtnIHByZXAgMj4mMSB8IHRlZSAiJFBSRVBfTE9HIjsgdGhlbgorICAgICAg ICBQUkVQX09LPTEKKyAgICBlbHNlCisgICAgICAgIFBSRVBfT0s9MAorICAgIGZpCisgICAgaWYg WyAiJFBSRVBfT0siIC1lcSAwIF07IHRoZW4KKyAgICAgICAgcHJpbnRmICdcbiVzZmVkcGtnIHBy ZXAgZmFpbGVkLiBGYWlsaW5nIHBhdGNoKGVzKTolc1xuJyAiJENfUkVEIiAiJENfT0ZGIiA+JjIK KyAgICAgICAgZ3JlcCAtaUUgJ3BhdGNoIC4qKEZBSUxFRHxkb2VzIG5vdCBhcHBseSl8SHVuayAj LiogRkFJTEVEfGVycm9yOicgIiRQUkVQX0xPRyIgXAorICAgICAgICAgICAgfCB0YWlsIC0yMCA+ JjIKKyAgICAgICAgcHJpbnRmICclc0Z1bGwgbG9nOiAlcyVzXG4nICIkQ19ZRUxMT1ciICIkUFJF UF9MT0ciICIkQ19PRkYiID4mMgorICAgICAgICBkaWUgIlJlYmFzZSBvciBkcm9wIHRoZSBmYWls aW5nIHBhdGNoLCB0aGVuIHJlLXJ1bjogJDAgJE5FV19WRVJTSU9OIC0tcmVzdW1lIDEwIgorICAg IGZpCisgICAgcm0gLWYgIiRQUkVQX0xPRyIKKyAgICAjIFRoZSB1bnBhY2tlZCB0cmVlIGlzIGtl cHQgZm9yIHN0ZXAgMTEgKE5TUy9OU1BSIHZlcnNpb24gZGV0ZWN0aW9uKS4KKyAgICBvayAiQWxs IHBhdGNoZXMgYXBwbHkgY2xlYW5seS4iCisgICAgQlVJTERfU1RBVFVTPSJQQVNTRUQgKGZlZHBr ZyBwcmVwKSIKK2ZpCitCVUlMRF9TVEFUVVM9IiR7QlVJTERfU1RBVFVTOi1Ob3QgdGVzdGVkfSIK KworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFN0ZXAgMTE6IERldGVjdCB0aGUgTlNTL05TUFIg dmVyc2lvbnMgc2hpcHBlZCBpbiB0aGUgdGFyYmFsbAorIworIyBGaXJlZm94IGJ1bmRsZXMgYm90 aCBzb3VyY2VzOyB0aGUgdmVyc2lvbnMgYXJlIGFsd2F5cyB0YWtlbiBmcm9tIHRoZXJlIGFuZAor IyB3cml0dGVuIHRvIHRoZSBzcGVjLCBuZXZlciBhc2tlZCBmb3I6CisjICAgc2VjdXJpdHkvbnNz L2xpYi9uc3MvbnNzLmggICAgI2RlZmluZSBOU1NfVkVSU0lPTiAiMy4xMjciIF9OU1NfQ1VTVE9N SVpFRAorIyAgIG5zcHJwdWIvcHIvaW5jbHVkZS9wcmluaXQuaCAgICNkZWZpbmUgUFJfVkVSU0lP TiAgIjQuNDAiCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworREVURUNURURfTlNTX1ZFUlNJT049 IiIKK0RFVEVDVEVEX05TUFJfVkVSU0lPTj0iIgorCisjIHJlYWRfYnVuZGxlZF92ZXJzaW9uIDxy ZWxhdGl2ZS1oZWFkZXI+IDxkZWZpbmUtbmFtZT4KKyMgUmVhZHMgZnJvbSB0aGUgdW5wYWNrZWQg dHJlZSwgZmFsbGluZyBiYWNrIHRvIHRoZSB0YXJiYWxsIHdoZW4gcmVzdW1pbmcuCityZWFkX2J1 bmRsZWRfdmVyc2lvbigpIHsKKyAgICBsb2NhbCBoZWFkZXI9IiQxIiBkZWZpbmU9IiQyIiBwYXRo PSJmaXJlZm94LSRORVdfVkVSU0lPTi8kMSIKKyAgICBpZiBbIC1mICIkcGF0aCIgXTsgdGhlbgor ICAgICAgICBncmVwIC1tMSAtb1AgIl4jZGVmaW5lXHMrJGRlZmluZVxzK1wiXEtbXlwiXSsiICIk cGF0aCIKKyAgICBlbHNlCisgICAgICAgIHRhciAteGYgIiRORVdfVEFSQkFMTCIgLS13aWxkY2Fy ZHMgLU8gIiovJGhlYWRlciIgMj4vZGV2L251bGwgXAorICAgICAgICAgICAgfCBncmVwIC1tMSAt b1AgIl4jZGVmaW5lXHMrJGRlZmluZVxzK1wiXEtbXlwiXSsiCisgICAgZmkKK30KKworIyB3cml0 ZV9zcGVjX3ZlcnNpb24gPG1hY3JvPiA8b2xkPiA8bmV3PiA8bGFiZWw+Cit3cml0ZV9zcGVjX3Zl cnNpb24oKSB7CisgICAgbG9jYWwgbWFjcm89IiQxIiBvbGQ9IiQyIiBuZXc9IiQzIiBsYWJlbD0i JDQiCisgICAgaWYgWyAiJG9sZCIgPSAiJG5ldyIgXTsgdGhlbgorICAgICAgICBpbmZvICIkbWFj cm86ICRuZXcgKHVuY2hhbmdlZCkiCisgICAgICAgIHJldHVybiAwCisgICAgZmkKKyAgICBzZWQg LWkgLUUgInN8XiVnbG9iYWwoW1s6c3BhY2U6XV0rKSRtYWNyb1tbOnNwYWNlOl1dKy4qfCVnbG9i YWxcMSRtYWNybyAkbmV3fCIgXAorICAgICAgICBmaXJlZm94LnNwZWMgfHwgZGllICJDYW5ub3Qg dXBkYXRlICRtYWNybyBpbiBmaXJlZm94LnNwZWMiCisgICAgZ3JlcCAtcUUgIl4lZ2xvYmFsW1s6 c3BhY2U6XV0rJG1hY3JvW1s6c3BhY2U6XV0rJChzZWQgJ3MvWy5bXCpeJF0vXFwmL2cnIDw8PCIk bmV3IilcJCIgXAorICAgICAgICBmaXJlZm94LnNwZWMgfHwgZGllICIkbWFjcm8gd2FzIG5vdCB1 cGRhdGVkIGluIGZpcmVmb3guc3BlYyIKKyAgICBTUEVDX05PVEVTKz0oIiRsYWJlbCByZXF1aXJl bWVudCAkb2xkIC0+ICRuZXcgKGRldGVjdGVkIGluIHRoZSB0YXJiYWxsKSIpCisgICAgaW5mbyAi JG1hY3JvOiAkb2xkIC0+ICRuZXciCit9CisKK2lmICEgc2tpcF9zdGVwIDExOyB0aGVuCisgICAg c3RlcCAxMSAiRGV0ZWN0aW5nIHRoZSBOU1MvTlNQUiB2ZXJzaW9ucyBmcm9tIHRoZSBGaXJlZm94 IHNvdXJjZXMiCisKKyAgICBpZiBbICEgLWQgImZpcmVmb3gtJE5FV19WRVJTSU9OIiBdOyB0aGVu CisgICAgICAgIGluZm8gIk5vIHVucGFja2VkIHRyZWUgLSByZWFkaW5nIHRoZSBoZWFkZXJzIGZy b20gJE5FV19UQVJCQUxMICh0aGlzIHRha2VzIGEgd2hpbGUpIgorICAgIGZpCisKKyAgICBERVRF Q1RFRF9OU1NfVkVSU0lPTj0kKHJlYWRfYnVuZGxlZF92ZXJzaW9uIFwKKyAgICAgICAgInNlY3Vy aXR5L25zcy9saWIvbnNzL25zcy5oIiAiTlNTX1ZFUlNJT04iKQorICAgIFsgLW4gIiRERVRFQ1RF RF9OU1NfVkVSU0lPTiIgXSBcCisgICAgICAgIHx8IGRpZSAiQ2Fubm90IHJlYWQgTlNTX1ZFUlNJ T04gZnJvbSBzZWN1cml0eS9uc3MvbGliL25zcy9uc3MuaCIKKworICAgIERFVEVDVEVEX05TUFJf VkVSU0lPTj0kKHJlYWRfYnVuZGxlZF92ZXJzaW9uIFwKKyAgICAgICAgIm5zcHJwdWIvcHIvaW5j bHVkZS9wcmluaXQuaCIgIlBSX1ZFUlNJT04iKQorICAgIFsgLW4gIiRERVRFQ1RFRF9OU1BSX1ZF UlNJT04iIF0gXAorICAgICAgICB8fCBkaWUgIkNhbm5vdCByZWFkIFBSX1ZFUlNJT04gZnJvbSBu c3BycHViL3ByL2luY2x1ZGUvcHJpbml0LmgiCisKKyAgICAjIFBSX1ZFUlNJT04gbWF5IGNhcnJ5 IGEgc3VmZml4LCBlLmcuICI0LjQwIEJldGEiIC0ga2VlcCB0aGUgbnVtYmVyIG9ubHkuCisgICAg REVURUNURURfTlNQUl9WRVJTSU9OPSIke0RFVEVDVEVEX05TUFJfVkVSU0lPTiUlICp9IgorCisg ICAgcHJpbnRmICdcbiVzICAgRmlyZWZveCAlcyBidW5kbGVzIE5TUyAlcyBhbmQgTlNQUiAlcyVz XG5cbicgXAorICAgICAgICAiJENfQk9MRCIgIiRORVdfVkVSU0lPTiIgIiRERVRFQ1RFRF9OU1Nf VkVSU0lPTiIgIiRERVRFQ1RFRF9OU1BSX1ZFUlNJT04iICIkQ19PRkYiCisKKyAgICB3cml0ZV9z cGVjX3ZlcnNpb24gbnNzX3ZlcnNpb24gICIkT0xEX05TU19WRVJTSU9OIiAgIiRERVRFQ1RFRF9O U1NfVkVSU0lPTiIgIE5TUworICAgIHdyaXRlX3NwZWNfdmVyc2lvbiBuc3ByX3ZlcnNpb24gIiRP TERfTlNQUl9WRVJTSU9OIiAiJERFVEVDVEVEX05TUFJfVkVSU0lPTiIgTlNQUgorICAgIE5TU19W RVJTSU9OPSIkREVURUNURURfTlNTX1ZFUlNJT04iCisgICAgTlNQUl9WRVJTSU9OPSIkREVURUNU RURfTlNQUl9WRVJTSU9OIgorCisgICAgaW5mbyAiQ2xlYW5pbmcgdXAgdGhlIHVucGFja2VkIHRy ZWUiCisgICAgcm0gLXJmICJmaXJlZm94LSRORVdfVkVSU0lPTi8iCisgICAgb2sgIk5TUy9OU1BS IHZlcnNpb25zIHdyaXR0ZW4gdG8gZmlyZWZveC5zcGVjLiIKK2Vsc2UKKyAgICBybSAtcmYgImZp cmVmb3gtJE5FV19WRVJTSU9OLyIKK2ZpCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTdGVw IDEyOiBMb2NhbCBidWlsZCAob3B0aW9uYWwpCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworaWYg ISBza2lwX3N0ZXAgMTI7IHRoZW4KKyAgICBpZiBbICIkRE9fTE9DQUxfQlVJTEQiIC1lcSAwIF0g JiYgWyAiJEFTU1VNRV9ZRVMiIC1lcSAwIF07IHRoZW4KKyAgICAgICAgcHJpbnRmICdcbicKKyAg ICAgICAgY29uZmlybSAiUnVuIGEgbG9jYWwgYnVpbGQgd2l0aCAnZmVkcGtnIGxvY2FsJz8gSXQg dHlwaWNhbGx5IHRha2VzIDEtMiBob3Vycy4iIFwKKyAgICAgICAgICAgICYmIERPX0xPQ0FMX0JV SUxEPTEKKyAgICBmaQorICAgIGlmIFsgIiRET19MT0NBTF9CVUlMRCIgLWVxIDEgXTsgdGhlbgor ICAgICAgICBzdGVwIDEyICJSdW5uaW5nIGEgbG9jYWwgYnVpbGQiCisgICAgICAgIExPQ0FMX0xP Rz0kKG1rdGVtcCAtdCBmaXJlZm94LWxvY2FsLVhYWFhYWC5sb2cpCisgICAgICAgIGlmIHJ1biBm ZWRwa2cgbG9jYWwgMj4mMSB8IHRlZSAiJExPQ0FMX0xPRyI7IHRoZW4KKyAgICAgICAgICAgIG9r ICJMb2NhbCBidWlsZCBzdWNjZWVkZWQuIgorICAgICAgICAgICAgQlVJTERfU1RBVFVTPSJQQVNT RUQgKGZlZHBrZyBsb2NhbCkiCisgICAgICAgICAgICBybSAtZiAiJExPQ0FMX0xPRyIKKyAgICAg ICAgZWxzZQorICAgICAgICAgICAgcHJpbnRmICdcbiVzTG9jYWwgYnVpbGQgZmFpbGVkLiBSZWxl dmFudCBvdXRwdXQ6JXNcbicgIiRDX1JFRCIgIiRDX09GRiIgPiYyCisgICAgICAgICAgICBncmVw IC1pRSAnZXJyb3I6fE5vIHBhY2thZ2UgLiogZm91bmR8bm90IGZvdW5kfEluc3RhbGxlZCBcKGJ1 dCB1bnBhY2thZ2VkXCknIFwKKyAgICAgICAgICAgICAgICAiJExPQ0FMX0xPRyIgfCB0YWlsIC0z MCA+JjIKKyAgICAgICAgICAgIHByaW50ZiAnJXNGdWxsIGxvZzogJXMlc1xuJyAiJENfWUVMTE9X IiAiJExPQ0FMX0xPRyIgIiRDX09GRiIgPiYyCisgICAgICAgICAgICBjYXQgPiYyIDw8J0VPRicK KworVHlwaWNhbCBjYXVzZXM6CisgICogTWlzc2luZyBCdWlsZFJlcXVpcmVzICAtIGFkZCAiQnVp bGRSZXF1aXJlczogPHBrZz4tZGV2ZWwiIHRvIGZpcmVmb3guc3BlYworICAqIENvbXBpbGUvbGlu a2VyIGVycm9yICAgLSB0aGUgc291cmNlIG5lZWRzIGEgcGF0Y2ggZm9yIHRoZSBuZXcgdXBzdHJl YW0gQVBJCisgICogVW5wYWNrYWdlZCBmaWxlcyAgICAgICAtIGFkanVzdCB0aGUgJWZpbGVzIHNl Y3Rpb24gb2YgZmlyZWZveC5zcGVjCisKK0VPRgorICAgICAgICAgICAgZGllICJGaXggdGhlIGJ1 aWxkLCB0aGVuIHJlLXJ1bjogJDAgJE5FV19WRVJTSU9OIC0tcmVzdW1lIDEyIgorICAgICAgICBm aQorICAgIGVsc2UKKyAgICAgICAgaW5mbyAiU2tpcHBpbmcgdGhlIGxvY2FsIGJ1aWxkLiIKKyAg ICBmaQorZmkKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFN0ZXAgMTM6IENvbW1pdCB0aGUg dXBkYXRlCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworaWYgISBza2lwX3N0ZXAgMTM7IHRoZW4K KyAgICBzdGVwIDEzICJDb21taXR0aW5nIHRoZSB1cGRhdGUiCisgICAgcnVuIGdpdCBhZGQgZmly ZWZveC5zcGVjIHNvdXJjZXMgfHwgZGllICJnaXQgYWRkIGZhaWxlZCIKKworICAgICMgUGF0Y2gg ZmlsZXMgdG91Y2hlZCBieSBoYW5kIChyZWJhc2VkL2Ryb3BwZWQpIGFyZSBzdGFnZWQgdG9vLCBi dXQgbmV2ZXIKKyAgICAjIGJ1aWxkIGFydGlmYWN0cy4KKyAgICBtYXBmaWxlIC10IENIQU5HRURf UEFUQ0hFUyA8IDwoZ2l0IHN0YXR1cyAtLXBvcmNlbGFpbiAtLSAnKi5wYXRjaCcgJyouZGlmZicg XAorICAgICAgICB8IGF3ayAne3ByaW50ICRORn0nKQorICAgIGlmIFsgIiR7I0NIQU5HRURfUEFU Q0hFU1tAXX0iIC1ndCAwIF07IHRoZW4KKyAgICAgICAgaW5mbyAiTW9kaWZpZWQgcGF0Y2ggZmls ZXM6ICR7Q0hBTkdFRF9QQVRDSEVTWypdfSIKKyAgICAgICAgaWYgY29uZmlybSAiU3RhZ2UgdGhl c2UgcGF0Y2ggZmlsZXMgYXMgcGFydCBvZiB0aGUgdXBkYXRlPyIgeTsgdGhlbgorICAgICAgICAg ICAgcnVuIGdpdCBhZGQgLUEgLS0gIiR7Q0hBTkdFRF9QQVRDSEVTW0BdfSIgfHwgZGllICJnaXQg YWRkIG9mIHBhdGNoZXMgZmFpbGVkIgorICAgICAgICBmaQorICAgIGZpCisKKyAgICBwcmludGYg J1xuJXNTdGFnZWQgY2hhbmdlczolc1xuJyAiJENfQk9MRCIgIiRDX09GRiIKKyAgICBnaXQgc3Rh dHVzIC0tc2hvcnQgLS11bnRyYWNrZWQtZmlsZXM9bm8KKworICAgIHJ1biBmZWRwa2cgY29tbWl0 IC1jIHx8IGRpZSAiZmVkcGtnIGNvbW1pdCBmYWlsZWQiCisgICAgb2sgIkNvbW1pdHRlZDogJChn aXQgbG9nIC0xIC0tcHJldHR5PSVzKSIKK2ZpCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBT dGVwIDE0OiBQcmVzZW50IHN1bW1hcnkgYW5kIHB1c2gKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor CitzdGVwIDE0ICJVcGRhdGUgc3VtbWFyeSIKKworY2F0IDw8RU9GCisKKyR7Q19CT0xEfUZpcmVm b3ggVXBkYXRlIFN1bW1hcnk6ICRPTERfVkVSU0lPTiAtPiAkTkVXX1ZFUlNJT04ke0NfT0ZGfQor CisgIFZlcnNpb246ICAgICAgICRPTERfVkVSU0lPTiAtPiAkTkVXX1ZFUlNJT04KKyAgQnJhbmNo OiAgICAgICAgcmF3aGlkZQorICBNb3ppbGxhIGJ1aWxkOiAkQlVJTERfVkVSU0lPTgorICBCdWls ZCBzdGF0dXM6ICAkQlVJTERfU1RBVFVTCisKKyAgU291cmNlczoKKyAgICAtICRORVdfVEFSQkFM TAorICAgIC0gJExBTkdQQUNLX0ZJTEUKK0VPRgorCitpZiBbIC1uICIkREVURUNURURfTlNTX1ZF UlNJT04kREVURUNURURfTlNQUl9WRVJTSU9OIiBdOyB0aGVuCisgICAgZWNobworICAgIGVjaG8g IiAgTlNTL05TUFIgKGRldGVjdGVkIGluIHRoZSBGaXJlZm94IHNvdXJjZXMpOiIKKyAgICBlY2hv ICIgICAgLSBOU1M6ICAkT0xEX05TU19WRVJTSU9OIC0+ICRERVRFQ1RFRF9OU1NfVkVSU0lPTiIK KyAgICBlY2hvICIgICAgLSBOU1BSOiAkT0xEX05TUFJfVkVSU0lPTiAtPiAkREVURUNURURfTlNQ Ul9WRVJTSU9OIgorZmkKKworaWYgWyAiJHsjRFJPUFBFRF9QQVRDSEVTW0BdfSIgLWd0IDAgXTsg dGhlbgorICAgIGVjaG8KKyAgICBlY2hvICIgIERyb3BwZWQgcGF0Y2hlczoiCisgICAgcHJpbnRm ICcgICAgLSAlc1xuJyAiJHtEUk9QUEVEX1BBVENIRVNbQF19IgorZmkKKworaWYgWyAiJHsjU1BF Q19OT1RFU1tAXX0iIC1ndCAwIF07IHRoZW4KKyAgICBlY2hvCisgICAgZWNobyAiICBTUEVDIGNo YW5nZXM6IgorICAgIHByaW50ZiAnICAgIC0gJXNcbicgIiR7U1BFQ19OT1RFU1tAXX0iCitmaQor CitlY2hvCitlY2hvICIgIENvbW1pdDoiCitnaXQgbG9nIC0xIC0tcHJldHR5PScgICAgJWggJXMn CitlY2hvCisKK2lmIFsgIiRET19QVVNIIiAtZXEgMCBdICYmIFsgIiRBU1NVTUVfWUVTIiAtZXEg MCBdOyB0aGVuCisgICAgY29uZmlybSAiUHVzaCB0aGUgY29tbWl0IHRvIHJhd2hpZGUgb24gRmVk b3JhIGRpc3QtZ2l0PyIgJiYgRE9fUFVTSD0xCitmaQorCitpZiBbICIkRE9fUFVTSCIgLWVxIDEg XTsgdGhlbgorICAgIGNoZWNrX2tlcmJlcm9zCisgICAgcnVuIGZlZHBrZyBwdXNoIHx8IGRpZSAi ZmVkcGtnIHB1c2ggZmFpbGVkIgorICAgIG9rICJQdXNoZWQgdG8gRmVkb3JhIGRpc3QtZ2l0IChy YXdoaWRlKS4iCisgICAgaW5mbyAiU3RhcnQgYSBidWlsZCB3aXRoOiBmZWRwa2cgYnVpbGQiCitl bHNlCisgICAgb2sgIlVwZGF0ZSBwcmVwYXJlZCBidXQgbm90IHB1c2hlZC4gUHVzaCBsYXRlciB3 aXRoOiBmZWRwa2cgcHVzaCIKK2ZpCgpkaWZmIC0tZ2l0IGEvZmlyZWZveC5zcGVjIGIvZmlyZWZv eC5zcGVjCmluZGV4IDg3YjAwYTIuLjRhZjI4YzIgMTAwNjQ0Ci0tLSBhL2ZpcmVmb3guc3BlYwor KysgYi9maXJlZm94LnNwZWMKQEAgLTE4OSwxNCArMTg5LDE0IEBAIEV4Y2x1ZGVBcmNoOiBpNjg2 CiAKIFN1bW1hcnk6ICAgICAgICBNb3ppbGxhIEZpcmVmb3ggV2ViIGJyb3dzZXIKIE5hbWU6ICAg ICAgICAgICBmaXJlZm94Ci1WZXJzaW9uOiAgICAgICAgMTU2LjAKLVJlbGVhc2U6ICAgICAgICAy JXs/cHJlX3RhZ30lez9kaXN0fQorVmVyc2lvbjogICAgICAgIDE1Ni4wLjEKK1JlbGVhc2U6ICAg ICAgICAxJXs/ZGlzdH0KIFVSTDogICAgICAgICAgICBodHRwczovL3d3dy5tb3ppbGxhLm9yZy9m aXJlZm94LwogIyBBdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCBmcm9tIG9sZCBmb3JtYXQ6IE1QTHYx LjEgb3IgR1BMdjIrIG9yIExHUEx2MisgLSByZXZpZXcgaXMgaGlnaGx5IHJlY29tbWVuZGVkLgog TGljZW5zZTogICAgICAgIExpY2Vuc2VSZWYtQ2FsbGF3YXktTVBMdjEuMSBPUiBHUEwtMi4wLW9y LWxhdGVyIE9SIExpY2Vuc2VSZWYtQ2FsbGF3YXktTEdQTHYyKwogU291cmNlMDogICAgICAgIGh0 dHBzOi8vYXJjaGl2ZS5tb3ppbGxhLm9yZy9wdWIvZmlyZWZveC9yZWxlYXNlcy8le3ZlcnNpb259 JXs/cHJlX3ZlcnNpb259L3NvdXJjZS9maXJlZm94LSV7dmVyc2lvbn0lez9wcmVfdmVyc2lvbn0u c291cmNlLnRhci54egogJWlmICV7d2l0aCBsYW5ncGFja3N9Ci1Tb3VyY2UxOiAgICAgICAgZmly ZWZveC1sYW5ncGFja3MtJXt2ZXJzaW9ufSV7P3ByZV92ZXJzaW9ufS0yMDI2MDkxMC50YXIueHoK K1NvdXJjZTE6ICAgICAgICBmaXJlZm94LWxhbmdwYWNrcy0le3ZlcnNpb259JXs/cHJlX3ZlcnNp b259LTIwMjYwOTIzLnRhci54egogJWVuZGlmCiBTb3VyY2UyOiAgICAgICAgY2JpbmRnZW4tdmVu ZG9yLnRhci54egogU291cmNlMzogICAgICAgIGR1bXBfc3ltcy12ZW5kb3IudGFyLnh6CkBAIC0y NjMsNyArMjYzLDYgQEAgUGF0Y2g0MDI6ICAgICAgICBEMzI0ODcwLjE3ODkxMTY5NjMuZGlmZgog UGF0Y2g0MDM6ICAgICAgICBEMzI0ODcxLjE3ODkxMTY5NzIuZGlmZgogUGF0Y2g0MDQ6ICAgICAg ICBEMzI0ODc2LjE3ODkxMTY4OTkuZGlmZgogUGF0Y2g0MDU6ICAgICAgICBEMzI0ODc3LjE3ODkx MTcwMDAuZGlmZgotUGF0Y2g0MDY6ICAgICAgICBEMzI2ODQwLjE3ODk3MzI3MDMuZGlmZgogCiAj IFBHTy9MVE8gcGF0Y2hlcwogUGF0Y2g2MDA6ICAgICAgICBwZ28ucGF0Y2gKQEAgLTU1Miw3ICs1 NTEsNiBAQCBjYXQgJXtTT1VSQ0U0OX0gfCBzZWQgLWUgInN8TElCQ0xBTkdfUlRfUExBQ0VIT0xE RVJ8YHB3ZGAvd2FzaS1zZGstMzAvYnVpbGQvc3lzcgogJXBhdGNoIC1QNDAzIC1wMSAtYiAuRDMy NDg3MQogJXBhdGNoIC1QNDA0IC1wMSAtYiAuRDMyNDg3NgogJXBhdGNoIC1QNDA1IC1wMSAtYiAu RDMyNDg3NwotJXBhdGNoIC1QNDA2IC1wMSAtYiAuRDMyNjg0MAogCiAjIFBHTyBwYXRjaGVzCiAl aWYgJXtidWlsZF93aXRoX3Bnb30KQEAgLTEyMDgsNiArMTIwNiw5IEBAIGZpCiAjLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAKICVjaGFuZ2Vsb2cKKyogV2VkIFNlcCAyMyAyMDI2IE1hcnRpbiBTdHJhbnNreSA8c3Ry YW5za3lAcmVkaGF0LmNvbT4gLSAxNTYuMC4xLTEKKy0gVXBkYXRlIHRvIGxhdGVzdCB1cHN0cmVh bSAoMTU2LjAuMSkKKwogKiBUaHUgU2VwIDE3IDIwMjYgTWFydGluIFN0cmFuc2t5IDxzdHJhbnNr eUByZWRoYXQuY29tPiAtIDE1Ni4wLTIKIC0gRGlzYWJsZWQgc2Vzc2lvbiByZXN0b3JlIG9uIEdu b21lLgogCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggZTQ1MzkyMy4uZjE2 YWVkZiAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xLDggKzEsOCBAQAor U0hBNTEyIChmaXJlZm94LTE1Ni4wLjEuc291cmNlLnRhci54eikgPSA4MGEzMmE3OTI2OGI2NzIy MDZmNTQ3N2NhNmJmZGU2MjBjYjc0MTliMjdhYWMwOTBlMDFmMDZkZjA2OTkwZWUwYmJkODFiYjVj NGFhNzhhYzFkMGVkYjI2YjEzM2IxYzZmYTExY2I2NTIyNDQ1ZWNjZDcwYzgyZTcxOWEyNGQ1Ygor U0hBNTEyIChmaXJlZm94LWxhbmdwYWNrcy0xNTYuMC4xLTIwMjYwOTIzLnRhci54eikgPSAyMWY0 OWQ0MjAzMzU1NGFlZTU0MGY4MzY2MWI4ODEzZjIwYjI4NjNlZWU1MGNkYjhhMTg1YTI1YzIxNTZj ODk1NGRmNTNmYjRhNjhhZTEwYjA5MDY3NDYyYWIzMjNiZGMwYjY3NDdhNGIwY2U0ZDYxMjZhYTBl NzkyZDY2NmIzOAogU0hBNTEyIChtb2NoaXRlc3QtcHl0aG9uLnRhci5neikgPSAwODliMTU5MzA2 OGI3NmY0NTcyYWYwMDg2ZWFjY2Y1MmE2YTEyOTliZmZmYjU4NTkzMjA2ZDE5YmYwMjFhZTM4MWYy MzgwYmJmZWI0MzcxNTg2Y2Q1MzcwNmZmNmRkZTNkMjQwMjM4YjJjYWYxOWI5NmM1N2RmYzJmNDUy NGUzNgogU0hBNTEyIChkdW1wX3N5bXMtdmVuZG9yLnRhci54eikgPSBlZTBlYTUyYWFjNzgxYjhk ZDQ4OTM2YTNkMTNiMTQwYmQ3MjVhNDhjYzQ4OGQyMzY5M2I2OGVkYmUzYmNmYmE1NzIzMDIyZGJh M2MzODQ5ZDBkYTFiYWNmMGUzN2RkZDMwN2NmYzU2MzA0MTU5ZjkxYjcxNDk1Y2U4YTA4YjU0YQog U0hBNTEyICh3YXNpLXNkay0zMC50YXIuZ3opID0gYzA4YjJkZGI1ZDVjZjViNDhjNWJhYmE4MGM2 NWM0ODVhMzA0OWI0NzNkMmYyZGQyYmFiYjQwMjI0M2E3NzA5NjMzYzY5NWRmZWU1ZjljYmJhNTJm YTI1YWQ4MzJmMDJmM2I3M2Q5YmExMTQxYzRkNDRkYzMwZGI3MDI5MmEwNGQKIFNIQTUxMiAod2Fz bS1jb21wb25lbnQtbGQtdmVuZG9yLnRhci54eikgPSAzNTZkYzA5NTAyMDUyMTk4ZTk5NzQ1MTk5 YjhlMTBkODAzZGE5NDkyY2UzNGU0MWM2YWUwMmNiODY3NGZjYzY0MGNkNWVhZmU2OGEwM2U0ZTYx Yzk4NGY3ZjZjN2M4ZTVjZGMzNTUxMjUxNTU2ZmIzYWU0NjMxYTM0MDM1OGZjMAogU0hBNTEyICh3 YXNtLXRvb2xzLXZlbmRvci50YXIueHopID0gNTAyYmUwMDIwZDE4MjhiNzUxMjhlNjEyN2ViN2Jk Nzc4MzVjY2ViZTRlNWMxNzlhYmMzOGQ4ODFiYjFkMWY4ZTE1ZDIyODQ3OTZjZDgzNTc0NTM2Yzdj OTE5YTNlODIwZTA5NTJkMzIzZThhMzk3N2U5NGJkZWY4OWNkODI2NmEKIFNIQTUxMiAoY2JpbmRn ZW4tdmVuZG9yLnRhci54eikgPSBkZmVmYzNlYzRjN2I3ZDlmZTFiMDI0Mjg5ODY2YzVhOTE5NDc1 YjhiNzMzZTA5ZWYxNzUwZDhkMjk1YmE3ODk2OWJhMTg3MDg5ZGJjMTUxZDkxNzc5YmY1NmEyZDc4 OTg3OTdjM2QxOWRiNmUyZDFjYjg0OTI5NzUwZTg2NjE3ZAotU0hBNTEyIChmaXJlZm94LTE1Ni4w LnNvdXJjZS50YXIueHopID0gMDQ2MzMwNGEwODk4NjcwZDI0ODExNGY2NmY3YzIzNTE2NmFlMjM5 N2MzOTg5YTdjODc4Yzk2ZjBjNTg5ZmJiYmExZjFjODc0MzJkYWEyMjYzM2I5ZmFkZDk0Mzk0YWRm MWRjMzdmMGU2N2QyMmIwNjZjNzVlZmU1ZWVhZDc1Y2UKLVNIQTUxMiAoZmlyZWZveC1sYW5ncGFj a3MtMTU2LjAtMjAyNjA5MTAudGFyLnh6KSA9IDYwMTIzYjk1YzBhOTBhZmQ1NzI0OWZhZWRiZmI1 OGJjNjg3ZDE2MmI3Mzg5NzBhYThkYjRkMjk4NTM1NWFjOTE3N2RlM2Y4N2UzN2MxZjYzNTI4MjQ5 YmIxNDkwMzcwNjBjZjEzMTNiM2M1NTI4ZWEwMjE5MTk5ZjhmOGEyYzYyCgpkaWZmIC0tZ2l0IGEv d2FzaS5wYXRjaCBiL3dhc2kucGF0Y2gKaW5kZXggMTU4NmUzYi4uYzJhOTU1ZSAxMDA2NDQKLS0t IGEvd2FzaS5wYXRjaAorKysgYi93YXNpLnBhdGNoCkBAIC02LDcgKzYsNyBAQCBkaWZmIC11cCBm aXJlZm94LTEzNC4wLjEvdG9vbGtpdC9tb3ouY29uZmlndXJlLndhc2kgZmlyZWZveC0xMzQuMC4x L3Rvb2xraXQvbW96LgogICAgICAgICAgaWYgd2FzaV9zeXNyb290OgogICAgICAgICAgICAgIGxv Zy5pbmZvKCJVc2luZyB3YXNpIHN5c3Jvb3QgaW4gJXMiLCB3YXNpX3N5c3Jvb3QpCiAtICAgICAg ICAgICAgcmV0dXJuIFsiLS1zeXNyb290PSVzIiAlIHdhc2lfc3lzcm9vdF0KLSsgICAgICAgICAg ICByZXR1cm4gWyItLXN5c3Jvb3Q9JXMiICUgd2FzaV9zeXNyb290LCAiLW5vZGVmYXVsdGxpYnMi LCAgIi1sYyIsICItbHdhc2ktZW11bGF0ZWQtcHJvY2Vzcy1jbG9ja3MiLCAiLWxjKysiLCAiLWxj KythYmkiLCAiL2hvbWUva29tYXQvQ1ZTL2ZpcmVmb3gvZmlyZWZveC0xNTYuMC1idWlsZC9maXJl Zm94LTE1Ni4wL3dhc2ktc2RrLTMwL2J1aWxkL3N5c3Jvb3QvaW5zdGFsbC93YXNpLXJlc291cmNl LWRpci9saWIvd2FzbTMyLXVua25vd24td2FzaXAxL2xpYmNsYW5nX3J0LmJ1aWx0aW5zLmEiXQor KyAgICAgICAgICAgIHJldHVybiBbIi0tc3lzcm9vdD0lcyIgJSB3YXNpX3N5c3Jvb3QsICItbm9k ZWZhdWx0bGlicyIsICAiLWxjIiwgIi1sd2FzaS1lbXVsYXRlZC1wcm9jZXNzLWNsb2NrcyIsICIt bGMrKyIsICItbGMrK2FiaSIsICIvcmFpZC9DVlMvZmlyZWZveC9maXJlZm94LTE1Ni4wLjEtYnVp bGQvZmlyZWZveC0xNTYuMC4xL3dhc2ktc2RrLTMwL2J1aWxkL3N5c3Jvb3QvaW5zdGFsbC93YXNp LXJlc291cmNlLWRpci9saWIvd2FzbTMyLXVua25vd24td2FzaXAxL2xpYmNsYW5nX3J0LmJ1aWx0 aW5zLmEiXQogICAgICAgICAgcmV0dXJuIFtdCiAgCiAgICAgIHNldF9jb25maWcoIldBU0lfU1lT Uk9PVCIsIHdhc2lfc3lzcm9vdCkK