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] rawhide: Update to 165.0.1 Date: Wed, 23 Sep 2026 08:00:25 GMT Message-ID: <179015042521.1.11689600616551798368.rpms-firefox-c7b1463f3d18@fedoraproject.org> List-ID: X-Git-Repo: rpms/firefox X-Git-Branch: rawhide X-Git-Rev: c7b1463f3d18be488b2c3a55f828ed8e65265046 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZmlyZWZveApCcmFu Y2ggOiByYXdoaWRlCkNvbW1pdCA6IGM3YjE0NjNmM2QxOGJlNDg4YjJjM2E1NWY4MjhlZDhlNjUy NjUwNDYKQXV0aG9yIDogTWFydGluIFN0cmFuc2t5IDxzdHJhbnNreUByZWRoYXQuY29tPgpEYXRl ICAgOiAyMDI2LTA5LTIzVDEwOjAwOjE3KzAyOjAwClN0YXRzICA6ICs5MzYvLTEwOCBpbiA2IGZp bGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9maXJlZm94 L2MvYzdiMTQ2M2YzZDE4YmU0ODhiMmMzYTU1ZjgyOGVkOGU2NTI2NTA0Nj9icmFuY2g9cmF3aGlk ZQoKTG9nOgpVcGRhdGUgdG8gMTY1LjAuMQoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIv LmdpdGlnbm9yZQppbmRleCBhYmFlZjIzLi41ZDAyZjg3IDEwMDY0NAotLS0gYS8uZ2l0aWdub3Jl CisrKyBiLy5naXRpZ25vcmUKQEAgLTc5OSwzICs3OTksNSBAQCBmaXJlZm94LTMuNi40LnNvdXJj ZS50YXIuYnoyCiAvZmlyZWZveC0xNTUuMC4xLnNvdXJjZS50YXIueHoKIC9maXJlZm94LTE1Ni4w LnNvdXJjZS50YXIueHoKIC9maXJlZm94LWxhbmdwYWNrcy0xNTYuMC0yMDI2MDkxMC50YXIueHoK Ky9maXJlZm94LTE1Ni4wLjEuc291cmNlLnRhci54egorL2ZpcmVmb3gtbGFuZ3BhY2tzLTE1Ni4w LjEtMjAyNjA5MjMudGFyLnh6CgpkaWZmIC0tZ2l0IGEvRDMyNjg0MC4xNzg5NzMyNzAzLmRpZmYg Yi9EMzI2ODQwLjE3ODk3MzI3MDMuZGlmZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg NDk5YzI1ZC4uMDAwMDAwMAotLS0gYS9EMzI2ODQwLjE3ODk3MzI3MDMuZGlmZgorKysgL2Rldi9u dWxsCkBAIC0xLDEwMCArMCwwIEBACi1kaWZmIC0tZ2l0IGEvd2lkZ2V0L2d0ay9uc1dpbmRvdy5o IGIvd2lkZ2V0L2d0ay9uc1dpbmRvdy5oCi0tLS0gYS93aWRnZXQvZ3RrL25zV2luZG93LmgKLSsr KyBiL3dpZGdldC9ndGsvbnNXaW5kb3cuaAotQEAgLTE5OSwxMiArMTk5LDEwIEBACi0gICBib29s IElzRW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRlOwotIAotICAgbnNTaXplTW9kZSBHZXRTaXplTW9k ZSgpIGNvbnN0IHsgcmV0dXJuIG1TaXplTW9kZTsgfQotICAgbnNTaXplTW9kZSBTaXplTW9kZSgp IG92ZXJyaWRlIHsgcmV0dXJuIG1TaXplTW9kZTsgfQotICAgdm9pZCBTZXRTaXplTW9kZShuc1Np emVNb2RlIGFNb2RlKSBvdmVycmlkZTsKLS0gIHZvaWQgR2V0V29ya3NwYWNlSUQobnNBU3RyaW5n JiB3b3Jrc3BhY2VJRCkgb3ZlcnJpZGU7Ci0tICB2b2lkIE1vdmVUb1dvcmtzcGFjZShjb25zdCBu c0FTdHJpbmcmIHdvcmtzcGFjZUlEKSBvdmVycmlkZTsKLSAgIHZvaWQgRW5hYmxlKGJvb2wgYVN0 YXRlKSBvdmVycmlkZTsKLSAgIHZvaWQgU2V0Rm9jdXMoUmFpc2UsIG1vemlsbGE6OmRvbTo6Q2Fs bGVyVHlwZSBhQ2FsbGVyVHlwZSkgb3ZlcnJpZGU7Ci0gICBMYXlvdXREZXZpY2VJbnRSZWN0IEdl dEJvdW5kcygpIG92ZXJyaWRlOwotICAgTGF5b3V0RGV2aWNlSW50UmVjdCBHZXRTY3JlZW5Cb3Vu ZHMoKSBvdmVycmlkZTsKLSAgIERlc2t0b3BJbnRSZWN0IEdldFNjcmVlbkJvdW5kc1Vuc2NhbGVk KCk7Ci1kaWZmIC0tZ2l0IGEvd2lkZ2V0L2d0ay9uc1dpbmRvdy5jcHAgYi93aWRnZXQvZ3RrL25z V2luZG93LmNwcAotLS0tIGEvd2lkZ2V0L2d0ay9uc1dpbmRvdy5jcHAKLSsrKyBiL3dpZGdldC9n dGsvbnNXaW5kb3cuY3BwCi1AQCAtMTIwMiwxOCArMTIwMiwxMCBAQAotIAotICAgY29uc3QgYXV0 byYgZGVza3RvcCA9IEdldERlc2t0b3BFbnZpcm9ubWVudElkZW50aWZpZXIoKTsKLSAgIHJldHVy biBkZXNrdG9wLkVxdWFsc0xpdGVyYWwoImJzcHdtIikgfHwgZGVza3RvcC5FcXVhbHNMaXRlcmFs KCJpMyIpOwotIH0KLSAKLS12b2lkIG5zV2luZG93OjpHZXRXb3Jrc3BhY2VJRChuc0FTdHJpbmcm IHdvcmtzcGFjZUlEKSB7Ci0tICB3b3Jrc3BhY2VJRC5UcnVuY2F0ZSgpOwotLX0KLS0KLS12b2lk IG5zV2luZG93OjpNb3ZlVG9Xb3Jrc3BhY2UoY29uc3QgbnNBU3RyaW5nJiB3b3Jrc3BhY2VJRFN0 cikgewotLSAgTE9HKCIgIE1vdmVUb1dvcmtzcGFjZSBkaXNhYmxlZCwgcXVpdCIpOwotLX0KLS0K LSB2b2lkIG5zV2luZG93OjpTZXRVc2VyVGltZUFuZFN0YXJ0dXBUb2tlbkZvckFjdGl2YXRlZFdp bmRvdygpIHsKLSAgIG5zR1RLVG9vbGtpdCogdG9vbGtpdCA9IG5zR1RLVG9vbGtpdDo6R2V0VG9v bGtpdCgpOwotICAgaWYgKCF0b29sa2l0KSB7Ci0gICAgIHJldHVybjsKLSAgIH0KLWRpZmYgLS1n aXQgYS93aWRnZXQvZ3RrL25zV2luZG93V2F5bGFuZC5oIGIvd2lkZ2V0L2d0ay9uc1dpbmRvd1dh eWxhbmQuaAotLS0tIGEvd2lkZ2V0L2d0ay9uc1dpbmRvd1dheWxhbmQuaAotKysrIGIvd2lkZ2V0 L2d0ay9uc1dpbmRvd1dheWxhbmQuaAotQEAgLTE0LDEyICsxNCwxMiBAQAotICAgbnNXaW5kb3dX YXlsYW5kKCk7Ci0gCi0gICBuc1dpbmRvd1dheWxhbmQqIEFzV2F5bGFuZCgpIG92ZXJyaWRlIHsg cmV0dXJuIHRoaXM7IH0KLSAgIG5zV2luZG93KiBHZXRFZmZlY3RpdmVQYXJlbnQoKSBjb25zdDsK LSAKLS0gIHZvaWQgR2V0V29ya3NwYWNlSUQobnNBU3RyaW5nJiB3b3Jrc3BhY2VJRCkgb3ZlcnJp ZGU7Ci0tICB2b2lkIE1vdmVUb1dvcmtzcGFjZShjb25zdCBuc0FTdHJpbmcmIHdvcmtzcGFjZUlE U3RyKSBvdmVycmlkZTsKLSsgIHZvaWQgR2V0V29ya3NwYWNlSUQobnNBU3RyaW5nJiBhV29ya3Nw YWNlSUQpIG92ZXJyaWRlOwotKyAgdm9pZCBNb3ZlVG9Xb3Jrc3BhY2UoY29uc3QgbnNBU3RyaW5n JiBhV29ya3NwYWNlSURTdHIpIG92ZXJyaWRlOwotICAgdm9pZCBSZXN0b3JlWGRnVG9wbGV2ZWwo KTsKLSAKLSAgIC8vIFVzZSB4ZGctYWN0aXZhdGlvbiBwcm90b2NvbCB0byB0cmFuc2ZlciBmb2N1 cyBmcm9tIGdGb2N1c1dpbmRvdy4KLSAgIHZvaWQgVHJhbnNmZXJGb2N1c1RvKCk7Ci0gICB2b2lk IEZvY3VzV2F5bGFuZFdpbmRvdyhjb25zdCBjaGFyKiBhVG9rZW5JRCk7Ci1kaWZmIC0tZ2l0IGEv d2lkZ2V0L2d0ay9uc1dpbmRvd1dheWxhbmQuY3BwIGIvd2lkZ2V0L2d0ay9uc1dpbmRvd1dheWxh bmQuY3BwCi0tLS0gYS93aWRnZXQvZ3RrL25zV2luZG93V2F5bGFuZC5jcHAKLSsrKyBiL3dpZGdl dC9ndGsvbnNXaW5kb3dXYXlsYW5kLmNwcAotQEAgLTExNiwxNSArMTE2LDE5IEBACi0gICBMT0co Im5zV2luZG93V2F5bGFuZDo6Q3JlYXRlUmVzdG9yZVNlc3Npb24oKSBJRCAlcyByZXN0b3JlICVk IHRva2VuICVwIiwKLSAgICAgICBtV29ya3NwYWNlSUQuZ2V0KCksIGFSZXN0b3JlV2luZG93LCBt U2Vzc2lvblJlc3RvcmVUb2tlbik7Ci0gICByZXR1cm4gISFtU2Vzc2lvblJlc3RvcmVUb2tlbjsK LSB9Ci0gCi0tdm9pZCBuc1dpbmRvd1dheWxhbmQ6OkdldFdvcmtzcGFjZUlEKG5zQVN0cmluZyYg d29ya3NwYWNlSUQpIHsKLSt2b2lkIG5zV2luZG93V2F5bGFuZDo6R2V0V29ya3NwYWNlSUQobnNB U3RyaW5nJiBhV29ya3NwYWNlSUQpIHsKLSsgIGlmICghbnNBcHBTaGVsbDo6SXNTZXNzaW9uUmVz dG9yZVN1cHBvcnRlZCgpKSB7Ci0rICAgIGFXb3Jrc3BhY2VJRC5UcnVuY2F0ZSgpOwotKyAgICBy ZXR1cm47Ci0rICB9Ci0gICBpZiAobVdvcmtzcGFjZUlELklzRW1wdHkoKSkgewotICAgICBtV29y a3NwYWNlSUQgPSBHZW5lcmF0ZVdvcmtzcGFjZUlEKCk7Ci0gICB9Ci0tICB3b3Jrc3BhY2VJRCA9 IE5TX0NvbnZlcnRVVEY4dG9VVEYxNihtV29ya3NwYWNlSUQpOwotKyAgYVdvcmtzcGFjZUlEID0g TlNfQ29udmVydFVURjh0b1VURjE2KG1Xb3Jrc3BhY2VJRCk7Ci0gCi0gICBMT0coIm5zV2luZG93 V2F5bGFuZDo6R2V0V29ya3NwYWNlSUQoKSBJRCAlcyB0b2tlbiAlcCIsIG1Xb3Jrc3BhY2VJRC5n ZXQoKSwKLSAgICAgICBtU2Vzc2lvblJlc3RvcmVUb2tlbik7Ci0gCi0gICBpZiAobVNlc3Npb25S ZXN0b3JlVG9rZW4pIHsKLUBAIC0xNTYsMTIgKzE2MCwxNSBAQAotICAgICB9Ci0gI2VuZGlmCi0g ICB9Ci0gfQotIAotLXZvaWQgbnNXaW5kb3dXYXlsYW5kOjpNb3ZlVG9Xb3Jrc3BhY2UoY29uc3Qg bnNBU3RyaW5nJiB3b3Jrc3BhY2VJRFN0cikgewotLSAgbVdvcmtzcGFjZUlEID0gTlNfQ29udmVy dFVURjE2dG9VVEY4KHdvcmtzcGFjZUlEU3RyKTsKLSt2b2lkIG5zV2luZG93V2F5bGFuZDo6TW92 ZVRvV29ya3NwYWNlKGNvbnN0IG5zQVN0cmluZyYgYVdvcmtzcGFjZUlEU3RyKSB7Ci0rICBpZiAo IW5zQXBwU2hlbGw6OklzU2Vzc2lvblJlc3RvcmVTdXBwb3J0ZWQoKSkgewotKyAgICByZXR1cm47 Ci0rICB9Ci0rICBtV29ya3NwYWNlSUQgPSBOU19Db252ZXJ0VVRGMTZ0b1VURjgoYVdvcmtzcGFj ZUlEU3RyKTsKLSAgIExPRygibnNXaW5kb3dXYXlsYW5kOjpNb3ZlVG9Xb3Jrc3BhY2UoKSBzZXNz aW9uIElEICVzICIKLSAgICAgICAibVdhaXRpbmdUb1Nlc3Npb25SZXN0b3JlICVkIG1OZWVkc1No b3cgJWQiLAotICAgICAgIG1Xb3Jrc3BhY2VJRC5nZXQoKSwgbVdhaXRpbmdUb1Nlc3Npb25SZXN0 b3JlLCBtTmVlZHNTaG93KTsKLSAgIGlmICghbVdhaXRpbmdUb1Nlc3Npb25SZXN0b3JlKSB7Ci0g ICAgIHJldHVybjsKLQoKZGlmZiAtLWdpdCBhL2ZpcmVmb3gtdXBkYXRlLnNoIGIvZmlyZWZveC11 cGRhdGUuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGUxYzQzNwotLS0g L2Rldi9udWxsCisrKyBiL2ZpcmVmb3gtdXBkYXRlLnNoCkBAIC0wLDAgKzEsOTI1IEBACisjIS9i aW4vYmFzaAorIworIyBmaXJlZm94LXVwZGF0ZS5zaCAtIFVwZGF0ZSB0aGUgRmlyZWZveCBwYWNr YWdlIGluIEZlZG9yYSByYXdoaWRlIHRvIGEgbmV3CisjICAgICAgICAgICAgICAgICAgICAgdXBz dHJlYW0gdmVyc2lvbi4KKyMKKyMgVGhpcyBpcyBhIHNoZWxsIGltcGxlbWVudGF0aW9uIG9mIHRo ZSAiZmlyZWZveC11cGRhdGUiIHNraWxsCisjIChzZWUgVXBkYXRlLVNLSUxMLm1kKS4gSXQgcGVy Zm9ybXMgdGhlIG1lY2hhbmljYWwgc3RlcHMgb2YgdGhlIHVwZGF0ZTsKKyMgc3RlcHMgd2hpY2gg bmVlZCBodW1hbiBqdWRnZW1lbnQgKHBhdGNoIHJlYmFzaW5nLCBidWlsZCBmYWlsdXJlIGFuYWx5 c2lzKQorIyBzdG9wIHRoZSBzY3JpcHQgd2l0aCBhIGRlc2NyaXB0aW9uIG9mIHdoYXQgaGFzIHRv IGJlIGRvbmUgbWFudWFsbHkuCisjCisjIFVzYWdlOiAuL2ZpcmVmb3gtdXBkYXRlLnNoIDx2ZXJz aW9uPiBbb3B0aW9uc10KKyMKK3NldCAtbyBwaXBlZmFpbAorCisjLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyMgQ29uZmlndXJhdGlvbiAvIGRlZmF1bHRzCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor RkVET1JBX0JBU0VfRElSPSIke0ZFRE9SQV9CQVNFX0RJUjotJFBXRH0iCitDSEFOR0VMT0dfQVVU SE9SPSIke0NIQU5HRUxPR19BVVRIT1I6LX0iCitBUkNISVZFX1VSTD0iaHR0cHM6Ly9hcmNoaXZl Lm1vemlsbGEub3JnL3B1Yi9maXJlZm94L2NhbmRpZGF0ZXMiCisKK05FV19WRVJTSU9OPSIiCitP TERfVkVSU0lPTj0iIgorQlVJTERfVkVSU0lPTj0iIgorUEFDS0FHRV9ESVI9IiIKK0xBTkdQQUNL X0ZJTEU9IiIKK05FV19UQVJCQUxMPSIiCitOU1NfVkVSU0lPTj0iIgorTlNQUl9WRVJTSU9OPSIi CitPTERfTlNTX1ZFUlNJT049IiIKK09MRF9OU1BSX1ZFUlNJT049IiIKKworUkVTVU1FX0ZST009 MQorQVNTVU1FX1lFUz0wCitEUk9QX1BBVENIRVM9KCkKK0RST1BQRURfUEFUQ0hFUz0oKQorRE9f TE9DQUxfQlVJTEQ9MAorRE9fUFVTSD0wCitET19ST0xMQkFDSz0wCitTUEVDX05PVEVTPSgpCisK KyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBPdXRwdXQgaGVscGVycworIy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisKK2lmIFsgLXQgMSBdOyB0aGVuCisgICAgQ19CT0xEPSQnXGVbMW0nOyBDX1JFRD0k J1xlWzMxbSc7IENfR1JFRU49JCdcZVszMm0nCisgICAgQ19ZRUxMT1c9JCdcZVszM20nOyBDX0JM VUU9JCdcZVszNG0nOyBDX09GRj0kJ1xlWzBtJworZWxzZQorICAgIENfQk9MRD0iIjsgQ19SRUQ9 IiI7IENfR1JFRU49IiI7IENfWUVMTE9XPSIiOyBDX0JMVUU9IiI7IENfT0ZGPSIiCitmaQorCitD VVJSRU5UX1NURVA9MAorCitzdGVwKCkgeworICAgIENVUlJFTlRfU1RFUD0iJDEiOyBzaGlmdAor ICAgIHByaW50ZiAnXG4lcz09PiBTdGVwICVzOiAlcy4uLiVzXG4nICIkQ19CT0xEJENfQkxVRSIg IiRDVVJSRU5UX1NURVAiICIkKiIgIiRDX09GRiIKK30KKworb2soKSAgIHsgcHJpbnRmICclc+Kc hSAlcyVzXG4nICIkQ19HUkVFTiIgIiQqIiAiJENfT0ZGIjsgfQoraW5mbygpIHsgcHJpbnRmICcg ICAlc1xuJyAiJCoiOyB9Cit3YXJuKCkgeyBwcmludGYgJyVz4pqg77iPICAlcyVzXG4nICIkQ19Z RUxMT1ciICIkKiIgIiRDX09GRiIgPiYyOyB9CisKK2RpZSgpIHsKKyAgICBwcmludGYgJ1xuJXPi nYwgRVJST1I6ICVzJXNcbicgIiRDX1JFRCIgIiQqIiAiJENfT0ZGIiA+JjIKKyAgICBpZiBbICIk Q1VSUkVOVF9TVEVQIiAtZ3QgMCBdOyB0aGVuCisgICAgICAgIHByaW50ZiAnJXNGaXggdGhlIHBy b2JsZW0gYW5kIHJlc3VtZSB3aXRoOiAlcyAlcyAtLXJlc3VtZSAlcyVzXG4nIFwKKyAgICAgICAg ICAgICIkQ19ZRUxMT1ciICIkMCIgIiRORVdfVkVSU0lPTiIgIiRDVVJSRU5UX1NURVAiICIkQ19P RkYiID4mMgorICAgIGZpCisgICAgZXhpdCAxCit9CisKK3J1bigpIHsKKyAgICBwcmludGYgJyVz JCAlcyVzXG4nICIkQ19CT0xEIiAiJCoiICIkQ19PRkYiCisgICAgIiRAIgorfQorCisjIGNvbmZp cm0gInF1ZXN0aW9uIiBbZGVmYXVsdF95ZXNdCitjb25maXJtKCkgeworICAgIGxvY2FsIHF1ZXN0 aW9uPSIkMSIgZGVmYXVsdD0iJHsyOi1ufSIgYW5zd2VyCisgICAgaWYgWyAiJEFTU1VNRV9ZRVMi IC1lcSAxIF07IHRoZW4KKyAgICAgICAgaW5mbyAiJHF1ZXN0aW9uIC0+IHllcyAoLS15ZXMpIgor ICAgICAgICByZXR1cm4gMAorICAgIGZpCisgICAgaWYgWyAhIC10IDAgXTsgdGhlbgorICAgICAg ICBpbmZvICIkcXVlc3Rpb24gLT4gJGRlZmF1bHQgKG5vdCBhIHRlcm1pbmFsKSIKKyAgICAgICAg WyAiJGRlZmF1bHQiID0gInkiIF0KKyAgICAgICAgcmV0dXJuCisgICAgZmkKKyAgICB3aGlsZSB0 cnVlOyBkbworICAgICAgICBpZiBbICIkZGVmYXVsdCIgPSAieSIgXTsgdGhlbgorICAgICAgICAg ICAgcmVhZCAtciAtcCAiJENfQk9MRCRxdWVzdGlvbiBbWS9uXSAkQ19PRkYiIGFuc3dlcgorICAg ICAgICAgICAgYW5zd2VyPSIke2Fuc3dlcjoteX0iCisgICAgICAgIGVsc2UKKyAgICAgICAgICAg IHJlYWQgLXIgLXAgIiRDX0JPTEQkcXVlc3Rpb24gW3kvTl0gJENfT0ZGIiBhbnN3ZXIKKyAgICAg ICAgICAgIGFuc3dlcj0iJHthbnN3ZXI6LW59IgorICAgICAgICBmaQorICAgICAgICBjYXNlICIk e2Fuc3dlciwsfSIgaW4KKyAgICAgICAgICAgIHl8eWVzKSByZXR1cm4gMCA7OworICAgICAgICAg ICAgbnxubykgIHJldHVybiAxIDs7CisgICAgICAgICAgICAqKSAgICAgZWNobyAiUGxlYXNlIGFu c3dlciB5ZXMgb3Igbm8uIiA7OworICAgICAgICBlc2FjCisgICAgZG9uZQorfQorCithc2soKSB7 CisgICAgbG9jYWwgcXVlc3Rpb249IiQxIiBhbnN3ZXIKKyAgICBbIC10IDAgXSB8fCBkaWUgIk5l ZWQgYW4gYW5zd2VyIGZvcjogJHF1ZXN0aW9uIChydW4gaW50ZXJhY3RpdmVseSBvciBwYXNzIGl0 IGFzIGFuIG9wdGlvbikiCisgICAgcmVhZCAtciAtcCAiJENfQk9MRCRxdWVzdGlvbiAkQ19PRkYi IGFuc3dlcgorICAgIHByaW50ZiAnJXMnICIkYW5zd2VyIgorfQorCisjIFN0ZXBzIGJlbG93IFJF U1VNRV9GUk9NIGFyZSBza2lwcGVkLgorc2tpcF9zdGVwKCkgeworICAgIFsgIiQxIiAtbHQgIiRS RVNVTUVfRlJPTSIgXQorfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVXNhZ2UKKyMtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorCit1c2FnZSgpIHsKKyAgICBjYXQgPDxFT0YKK1VzYWdlOiAkKGJh c2VuYW1lICIkMCIpIDx2ZXJzaW9uPiBbb3B0aW9uc10KKworVXBkYXRlcyB0aGUgRmlyZWZveCBw YWNrYWdlIGluIEZlZG9yYSByYXdoaWRlIHRvIDx2ZXJzaW9uPiAoZS5nLiAxNTcuMCkuCisKK09w dGlvbnM6CisgIC0tcmVzdW1lIE4gICAgICAgICAgU2tpcCB0byBzdGVwIE4gKDEtMTQpLCByZWFk aW5nIGN1cnJlbnQgb24tZGlzayBzdGF0ZQorICAtLWJ1aWxkIGJ1aWxkTiAgICAgIFVzZSB0aGlz IE1vemlsbGEgY2FuZGlkYXRlIGJ1aWxkIGluc3RlYWQgb2YgdGhlIGxhdGVzdAorICAtLWRpciBQ QVRIICAgICAgICAgIFBhY2thZ2UgZGlyZWN0b3J5IChkZWZhdWx0OiBcJFBXRCBpZiBpdCBob2xk cyBmaXJlZm94LnNwZWMsCisgICAgICAgICAgICAgICAgICAgICAgb3RoZXJ3aXNlIFwkRkVET1JB X0JBU0VfRElSL2ZpcmVmb3gpCisgIC1kLCAtLWRyb3AtcGF0Y2ggUCAgRHJvcCBhIHBhdGNoIHRo YXQgaXMgbm8gbG9uZ2VyIG5lZWRlZDogcmVtb3ZlcyBpdHMKKyAgICAgICAgICAgICAgICAgICAg ICBQYXRjaE5OTjogYW5kICVwYXRjaCAtUE5OTiBsaW5lcyBmcm9tIGZpcmVmb3guc3BlYyBhbmQK KyAgICAgICAgICAgICAgICAgICAgICBkZWxldGVzIHRoZSBmaWxlIGZyb20gZ2l0LiBQIGlzIHRo ZSBwYXRjaCBmaWxlIG5hbWUgb3IKKyAgICAgICAgICAgICAgICAgICAgICBpdHMgbnVtYmVyLiBN YXkgYmUgZ2l2ZW4gbW9yZSB0aGFuIG9uY2UuCisgIC0tbG9jYWwgICAgICAgICAgICAgUnVuICdm ZWRwa2cgbG9jYWwnIChzdGVwIDEyKTsgdGFrZXMgMS0yIGhvdXJzCisgIC0tcHVzaCAgICAgICAg ICAgICAgUHVzaCB0byBGZWRvcmEgZGlzdC1naXQgd2hlbiBmaW5pc2hlZCAoc3RlcCAxNCkKKyAg LS15ZXMgICAgICAgICAgICAgICBBbnN3ZXIgeWVzIHRvIGFsbCBxdWVzdGlvbnMgKG5vbi1pbnRl cmFjdGl2ZSkKKyAgLS1yb2xsYmFjayAgICAgICAgICBEaXNjYXJkIHRoZSBpbi1wcm9ncmVzcyB1 cGRhdGUgYW5kIGNsZWFuIHVwLCB0aGVuIGV4aXQKKyAgLWgsIC0taGVscCAgICAgICAgICBTaG93 IHRoaXMgaGVscAorCitFbnZpcm9ubWVudDoKKyAgRkVET1JBX0JBU0VfRElSICAgICBCYXNlIGRp cmVjdG9yeSBob2xkaW5nIHRoZSBkaXN0LWdpdCBjbG9uZXMKKyAgQ0hBTkdFTE9HX0FVVEhPUiAg ICAiTmFtZSA8ZW1haWw+IiB1c2VkIGZvciB0aGUgJWNoYW5nZWxvZyBlbnRyeQorCitTdGVwczoK KyAgIDEgR2V0IHZlcnNpb24gaW5mbyAgICAgICAgICA4IFVwbG9hZCBuZXcgc291cmNlcworICAg MiBTZXQgdXAgcGFja2FnZSBkaXJlY3RvcnkgIDkgQ2hlY2sgYW5kIHJlYmFzZSBwYXRjaGVzICht YW51YWwpCisgICAzIFB1bGwgbGF0ZXN0IHJhd2hpZGUgICAgICAxMCBWZXJpZnkgcGF0Y2hlcyB3 aXRoIGZlZHBrZyBwcmVwCisgICA0IEJ1bXAgdmVyc2lvbiBpbiBzcGVjICAgICAxMSBEZXRlY3Qg TlNTL05TUFIgdmVyc2lvbnMgZnJvbSB0aGUgdGFyYmFsbAorICAgNSBHZXQgTW96aWxsYSBidWls ZCBudW1iZXIgMTIgTG9jYWwgYnVpbGQgKG9wdGlvbmFsKQorICAgNiBEb3dubG9hZCBzb3VyY2Ug dGFyYmFsbCAgMTMgQ29tbWl0IHRoZSB1cGRhdGUKKyAgIDcgRG93bmxvYWQgbGFuZ3BhY2tzICAg ICAgIDE0IFN1bW1hcnkgYW5kIHB1c2gKKworVGhlIE5TUyBhbmQgTlNQUiByZXF1aXJlbWVudHMg YXJlIGFsd2F5cyB0YWtlbiBmcm9tIHRoZSBGaXJlZm94IHNvdXJjZXMgaW4KK3N0ZXAgMTEgYW5k IHdyaXR0ZW4gdG8gZmlyZWZveC5zcGVjIC0gdGhlIHNjcmlwdCBuZXZlciBhc2tzIGZvciB0aGVt LgorRU9GCit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBBcmd1bWVudCBwYXJzaW5nCisj LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKword2hpbGUgWyAkIyAtZ3QgMCBdOyBkbworICAgIGNhc2Ug IiQxIiBpbgorICAgICAgICAtLXJlc3VtZSkgICBSRVNVTUVfRlJPTT0iJDIiOyBzaGlmdCAyIDs7 CisgICAgICAgIC0tcmVzdW1lPSopIFJFU1VNRV9GUk9NPSIkezEjKj19Ijsgc2hpZnQgOzsKKyAg ICAgICAgLS1idWlsZCkgICAgQlVJTERfVkVSU0lPTj0iJDIiOyBzaGlmdCAyIDs7CisgICAgICAg IC0tYnVpbGQ9KikgIEJVSUxEX1ZFUlNJT049IiR7MSMqPX0iOyBzaGlmdCA7OworICAgICAgICAt LWRpcikgICAgICBQQUNLQUdFX0RJUj0iJDIiOyBzaGlmdCAyIDs7CisgICAgICAgIC0tZGlyPSop ICAgIFBBQ0tBR0VfRElSPSIkezEjKj19Ijsgc2hpZnQgOzsKKyAgICAgICAgLWR8LS1kcm9wLXBh dGNoKSBEUk9QX1BBVENIRVMrPSgiJDIiKTsgc2hpZnQgMiA7OworICAgICAgICAtZD0qKSAgICAg ICAgICAgIERST1BfUEFUQ0hFUys9KCIkezEjKj19Iik7IHNoaWZ0IDs7CisgICAgICAgIC0tZHJv cC1wYXRjaD0qKSAgRFJPUF9QQVRDSEVTKz0oIiR7MSMqPX0iKTsgc2hpZnQgOzsKKyAgICAgICAg LS1sb2NhbCkgICAgRE9fTE9DQUxfQlVJTEQ9MTsgc2hpZnQgOzsKKyAgICAgICAgLS1wdXNoKSAg ICAgRE9fUFVTSD0xOyBzaGlmdCA7OworICAgICAgICAtLXllc3wteSkgICBBU1NVTUVfWUVTPTE7 IHNoaWZ0IDs7CisgICAgICAgIC0tcm9sbGJhY2spIERPX1JPTExCQUNLPTE7IHNoaWZ0IDs7Cisg ICAgICAgIC1ofC0taGVscCkgIHVzYWdlOyBleGl0IDAgOzsKKyAgICAgICAgLSopICAgICAgICAg dXNhZ2UgPiYyOyBkaWUgIlVua25vd24gb3B0aW9uOiAkMSIgOzsKKyAgICAgICAgKikKKyAgICAg ICAgICAgIFsgLXogIiRORVdfVkVSU0lPTiIgXSB8fCBkaWUgIlVuZXhwZWN0ZWQgYXJndW1lbnQ6 ICQxIgorICAgICAgICAgICAgTkVXX1ZFUlNJT049IiQxIjsgc2hpZnQgOzsKKyAgICBlc2FjCitk b25lCisKK2Nhc2UgIiRSRVNVTUVfRlJPTSIgaW4KKyAgICAnJ3wqWyEwLTldKikgZGllICItLXJl c3VtZSBuZWVkcyBhIHN0ZXAgbnVtYmVyICgxLTE0KSIgOzsKK2VzYWMKK1sgIiRSRVNVTUVfRlJP TSIgLWdlIDEgXSAmJiBbICIkUkVTVU1FX0ZST00iIC1sZSAxNCBdIHx8IGRpZSAiLS1yZXN1bWUg bXVzdCBiZSAxLTE0IgorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgUHJlZmxpZ2h0CisjLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKworZm9yIHRvb2wgaW4gZmVkcGtnIHJwbWRldi1idW1wc3BlYyBn aXQgd2dldCBjdXJsIHB5dGhvbjMgcnBtc3BlYzsgZG8KKyAgICBjb21tYW5kIC12ICIkdG9vbCIg Pi9kZXYvbnVsbCAyPiYxIHx8IGRpZSAiUmVxdWlyZWQgdG9vbCBub3QgZm91bmQ6ICR0b29sIgor ZG9uZQorCisjIEVuc3VyZSBhIHVzYWJsZSBGZWRvcmEgS2VyYmVyb3MgdGlja2V0LCBvdGhlcndp c2UgZmVkcGtnIGNhbGxzIGZhaWwgbGF0ZXIgb24uCitjaGVja19rZXJiZXJvcygpIHsKKyAgICBs b2NhbCBwcmluY2lwYWwKKyAgICBwcmluY2lwYWw9JChrbGlzdCAtbCAyPi9kZXYvbnVsbCB8IGF3 ayAnL0ZFRE9SQVBST0pFQ1RcLk9SRy8ge3ByaW50ICQxOyBleGl0fScpCisgICAgaWYgWyAtbiAi JHByaW5jaXBhbCIgXSAmJiBrbGlzdCAtcyAyPi9kZXYvbnVsbDsgdGhlbgorICAgICAgICBpbmZv ICJLZXJiZXJvcyBwcmluY2lwYWw6ICRwcmluY2lwYWwiCisgICAgICAgIHJldHVybiAwCisgICAg ZmkKKyAgICBpZiBbIC1uICIkcHJpbmNpcGFsIiBdOyB0aGVuCisgICAgICAgIGRpZSAiS2VyYmVy b3MgdGlja2V0IGZvciAkcHJpbmNpcGFsIGlzIG1pc3Npbmcgb3IgZXhwaXJlZC4gUnVuOiBraW5p dCAkcHJpbmNpcGFsIgorICAgIGZpCisgICAgZGllICJObyBGRURPUkFQUk9KRUNULk9SRyBLZXJi ZXJvcyB0aWNrZXQgZm91bmQuIFJ1bjoga2luaXQgPHVzZXJuYW1lPkBGRURPUkFQUk9KRUNULk9S RyIKK30KKworc3BlY19nZXQoKSB7ICAjIHNwZWNfZ2V0IDx0YWctb3ItbWFjcm8tcmVnZXhwPiAt LSBmaXJzdCBjYXB0dXJlIG9mIHRoZSB2YWx1ZQorICAgIGdyZXAgLW0xIC1vUCAiJDEiIGZpcmVm b3guc3BlYyAyPi9kZXYvbnVsbAorfQorCisjIGRyb3BfcGF0Y2ggPHBhdGNoLWZpbGUtbmFtZSB8 IHBhdGNoLW51bWJlcj4KKyMgUmVtb3ZlcyB0aGUgUGF0Y2hOTk46IGRlY2xhcmF0aW9uIGFuZCB0 aGUgbWF0Y2hpbmcgJyVwYXRjaCAtUE5OTicgbGluZSBmcm9tCisjIGZpcmVmb3guc3BlYywgdGhl biBkZWxldGVzIHRoZSBwYXRjaCBmaWxlIGZyb20gZ2l0LgorZHJvcF9wYXRjaCgpIHsKKyAgICBs b2NhbCB3YW50PSIkMSIgbnVtIGZpbGUKKyAgICBpZiBbWyAiJHdhbnQiID1+IF5bMC05XSskIF1d OyB0aGVuCisgICAgICAgIG51bT0iJHdhbnQiCisgICAgICAgIGZpbGU9JChncmVwIC1tMSAtb1Ag Il5QYXRjaCR7bnVtfTpbWzpzcGFjZTpdXSpcS1xTKyIgZmlyZWZveC5zcGVjKQorICAgICAgICBb IC1uICIkZmlsZSIgXSB8fCBkaWUgIk5vICdQYXRjaCR7bnVtfTonIGxpbmUgaW4gZmlyZWZveC5z cGVjIgorICAgIGVsc2UKKyAgICAgICAgZmlsZT0iJHdhbnQiCisgICAgICAgIG51bT0kKGF3ayAt diBmPSIkZmlsZSIgXAorICAgICAgICAgICAgJyQxIH4gL15QYXRjaFswLTldKjokLyAmJiAkMiA9 PSBmIHsgc3ViKC9eUGF0Y2gvLCIiLCQxKTsgc3ViKC86JC8sIiIsJDEpOyBwcmludCAkMTsgZXhp dCB9JyBcCisgICAgICAgICAgICBmaXJlZm94LnNwZWMpCisgICAgICAgIFsgLW4gIiRudW0iIF0g fHwgZGllICJQYXRjaCAnJGZpbGUnIGlzIG5vdCByZWZlcmVuY2VkIGJ5IGZpcmVmb3guc3BlYyIK KyAgICBmaQorCisgICAgaW5mbyAiRHJvcHBpbmcgUGF0Y2gke251bX06ICRmaWxlIgorCisgICAg c2VkIC1pIC1FICIvXlBhdGNoJHtudW19OltbOnNwYWNlOl1dL2QiIGZpcmVmb3guc3BlYyBcCisg ICAgICAgIHx8IGRpZSAiQ2Fubm90IHJlbW92ZSB0aGUgUGF0Y2gke251bX06IGxpbmUiCisgICAg Z3JlcCAtcUUgIl5QYXRjaCR7bnVtfTpbWzpzcGFjZTpdXSIgZmlyZWZveC5zcGVjIFwKKyAgICAg ICAgJiYgZGllICJQYXRjaCR7bnVtfTogaXMgc3RpbGwgaW4gZmlyZWZveC5zcGVjIgorCisgICAg IyAnLVA0NCcgbXVzdCBub3QgbWF0Y2ggJy1QNDQwJywgaGVuY2UgdGhlIHRyYWlsaW5nIGJvdW5k YXJ5LgorICAgIGlmIGdyZXAgLXFFICJeJXBhdGNoW1s6c3BhY2U6XV0rLVAke251bX0oW1s6c3Bh Y2U6XV18JCkiIGZpcmVmb3guc3BlYzsgdGhlbgorICAgICAgICBzZWQgLWkgLUUgIi9eJXBhdGNo W1s6c3BhY2U6XV0rLVAke251bX0oW1s6c3BhY2U6XV18JCkvZCIgZmlyZWZveC5zcGVjIFwKKyAg ICAgICAgICAgIHx8IGRpZSAiQ2Fubm90IHJlbW92ZSB0aGUgJyVwYXRjaCAtUCR7bnVtfScgbGlu ZSIKKyAgICAgICAgZ3JlcCAtcUUgIl4lcGF0Y2hbWzpzcGFjZTpdXSstUCR7bnVtfShbWzpzcGFj ZTpdXXwkKSIgZmlyZWZveC5zcGVjIFwKKyAgICAgICAgICAgICYmIGRpZSAiJyVwYXRjaCAtUCR7 bnVtfScgaXMgc3RpbGwgaW4gZmlyZWZveC5zcGVjIgorICAgIGVsc2UKKyAgICAgICAgd2FybiAi Tm8gJyVwYXRjaCAtUCR7bnVtfScgbGluZSBmb3VuZCAtIG9ubHkgdGhlIGRlY2xhcmF0aW9uIHdh cyByZW1vdmVkLiIKKyAgICBmaQorCisgICAgaWYgZ2l0IGxzLWZpbGVzIC0tZXJyb3ItdW5tYXRj aCAiJGZpbGUiID4vZGV2L251bGwgMj4mMTsgdGhlbgorICAgICAgICBydW4gZ2l0IHJtIC1mIC0t ICIkZmlsZSIgfHwgZGllICJnaXQgcm0gb2YgJGZpbGUgZmFpbGVkIgorICAgIGVsaWYgWyAtZiAi JGZpbGUiIF07IHRoZW4KKyAgICAgICAgaW5mbyAiJGZpbGUgaXMgbm90IHRyYWNrZWQgYnkgZ2l0 LCByZW1vdmluZyBpdCBmcm9tIGRpc2siCisgICAgICAgIHJtIC1mIC0tICIkZmlsZSIKKyAgICBl bHNlCisgICAgICAgIHdhcm4gIiRmaWxlIGRvZXMgbm90IGV4aXN0IG9uIGRpc2sgLSBvbmx5IGZp cmVmb3guc3BlYyB3YXMgY2hhbmdlZC4iCisgICAgZmkKKworICAgIERST1BQRURfUEFUQ0hFUys9 KCIkZmlsZSAoUGF0Y2gke251bX0pIikKKyAgICBTUEVDX05PVEVTKz0oIkRyb3BwZWQgUGF0Y2gk e251bX06ICRmaWxlIikKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFN0ZXAgMTogR2V0 IHZlcnNpb24gaW5mbworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgLS1kcm9wLXBhdGNoIHdp dGhvdXQgYSB2ZXJzaW9uIG9ubHkgZWRpdHMgdGhlIHNwZWMgYW5kIGdpdCAtIG5vIHVwZGF0ZSBp cworIyBzdGFydGVkLCBzbyBubyB2ZXJzaW9uIGlzIG5lZWRlZCBvciBhc2tlZCBmb3IuCitEUk9Q X09OTFk9MAoraWYgWyAteiAiJE5FV19WRVJTSU9OIiBdICYmIFsgIiR7I0RST1BfUEFUQ0hFU1tA XX0iIC1ndCAwIF07IHRoZW4KKyAgICBEUk9QX09OTFk9MQorZmkKKworaWYgWyAteiAiJE5FV19W RVJTSU9OIiBdICYmIFsgIiREUk9QX09OTFkiIC1lcSAwIF07IHRoZW4KKyAgICBORVdfVkVSU0lP Tj0kKGFzayAiV2hhdCBGaXJlZm94IHZlcnNpb24gd291bGQgeW91IGxpa2UgdG8gdXBkYXRlIHRv PyAoZS5nLiAxNTcuMCkiKQorICAgIFsgLW4gIiRORVdfVkVSU0lPTiIgXSB8fCBkaWUgIk5vIHZl cnNpb24gZ2l2ZW4iCitmaQorCitpZiBbIC16ICIkUEFDS0FHRV9ESVIiIF07IHRoZW4KKyAgICBp ZiBbIC1mICIkUFdEL2ZpcmVmb3guc3BlYyIgXTsgdGhlbgorICAgICAgICBQQUNLQUdFX0RJUj0i JFBXRCIKKyAgICBlbHNlCisgICAgICAgIFBBQ0tBR0VfRElSPSIkRkVET1JBX0JBU0VfRElSL2Zp cmVmb3giCisgICAgZmkKK2ZpCisKK2lmIFsgIiREUk9QX09OTFkiIC1lcSAwIF07IHRoZW4KKyAg ICBzdGVwIDEgIlByZXBhcmluZyB1cGRhdGUgdG8gRmlyZWZveCAkTkVXX1ZFUlNJT04iCisgICAg aW5mbyAiUGFja2FnZSBkaXJlY3Rvcnk6ICRQQUNLQUdFX0RJUiIKKyAgICBvayAiVGFyZ2V0IHZl cnNpb246ICRORVdfVkVSU0lPTiIKK2ZpCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTdGVw IDI6IFNldCB1cCB0aGUgcGFja2FnZSBkaXJlY3RvcnkKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor CitpZiBbICEgLWQgIiRQQUNLQUdFX0RJUiIgXTsgdGhlbgorICAgIHN0ZXAgMiAiQ2xvbmluZyB0 aGUgZmlyZWZveCBwYWNrYWdlIgorICAgIGNoZWNrX2tlcmJlcm9zCisgICAgY2QgIiRGRURPUkFf QkFTRV9ESVIiIHx8IGRpZSAiQ2Fubm90IGVudGVyICRGRURPUkFfQkFTRV9ESVIiCisgICAgcnVu IGZlZHBrZyBjbG9uZSBmaXJlZm94IHx8IGRpZSAiZmVkcGtnIGNsb25lIGZpcmVmb3ggZmFpbGVk IgorICAgIG9rICJDbG9uZWQgZmlyZWZveCBpbnRvICRQQUNLQUdFX0RJUiIKK2ZpCisKK2NkICIk UEFDS0FHRV9ESVIiIHx8IGRpZSAiQ2Fubm90IGVudGVyICRQQUNLQUdFX0RJUiIKK1sgLWYgZmly ZWZveC5zcGVjIF0gfHwgZGllICIkUEFDS0FHRV9ESVIgZG9lcyBub3QgY29udGFpbiBmaXJlZm94 LnNwZWMiCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBEcm9wLW9ubHkgbW9kZTogLWQvLS1k cm9wLXBhdGNoIGdpdmVuIHdpdGhvdXQgYSB2ZXJzaW9uCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KworaWYgWyAiJERST1BfT05MWSIgLWVxIDEgXTsgdGhlbgorICAgIHByaW50ZiAnXG4lcz09PiBE cm9wcGluZyAlZCBwYXRjaChlcykgZnJvbSBmaXJlZm94LnNwZWMgaW4gJXMlc1xuJyBcCisgICAg ICAgICIkQ19CT0xEJENfQkxVRSIgIiR7I0RST1BfUEFUQ0hFU1tAXX0iICIkUEFDS0FHRV9ESVIi ICIkQ19PRkYiCisgICAgZm9yIHAgaW4gIiR7RFJPUF9QQVRDSEVTW0BdfSI7IGRvCisgICAgICAg IGRyb3BfcGF0Y2ggIiRwIgorICAgIGRvbmUKKyAgICBwcmludGYgJ1xuICBEcm9wcGVkIHBhdGNo ZXM6XG4nCisgICAgcHJpbnRmICcgICAgLSAlc1xuJyAiJHtEUk9QUEVEX1BBVENIRVNbQF19Igor ICAgIHByaW50ZiAnXG4nCisgICAgb2sgImZpcmVmb3guc3BlYyB1cGRhdGVkIGFuZCB0aGUgcGF0 Y2ggZmlsZXMgcmVtb3ZlZCBmcm9tIGdpdC4iCisgICAgaW5mbyAiUmV2aWV3IHdpdGggJ2dpdCBk aWZmJyBhbmQgY29tbWl0IHdoZW4geW91IGFyZSByZWFkeS4iCisgICAgZXhpdCAwCitmaQorCisj LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgUmVwb3J0IHRoZSBzdGF0ZSBvZiB0aGUgd29ya2luZyB0 cmVlIGJlZm9yZSB0b3VjaGluZyBhbnl0aGluZworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMg UHJpbnRzIHRoZSBsb2NhbCBjaGFuZ2VzIGFzIGEgZGlmZjsgcmV0dXJucyAwIHdoZW4gdGhlcmUg YXJlIGFueS4KKyMgVW50cmFja2VkIGZpbGVzIGFyZSBpZ25vcmVkIG9uIHB1cnBvc2UgLSBhIG5v cm1hbCBydW4gbGVhdmVzIGRvd25sb2FkZWQKKyMgdGFyYmFsbHMgbHlpbmcgYXJvdW5kIGFuZCB0 aG9zZSBhcmUgbm90IGludGVyZXN0aW5nIGhlcmUuCitzaG93X2xvY2FsX2NoYW5nZXMoKSB7Cisg ICAgZ2l0IGRpZmYgLS1xdWlldCBIRUFEIDI+L2Rldi9udWxsICYmIHJldHVybiAxCisgICAgcHJp bnRmICclc0xvY2FsIGNoYW5nZXMgaW4gJXMgKGJyYW5jaCAlcyk6JXNcblxuJyBcCisgICAgICAg ICIkQ19CT0xEJENfWUVMTE9XIiAiJFBBQ0tBR0VfRElSIiAiJChnaXQgYnJhbmNoIC0tc2hvdy1j dXJyZW50KSIgIiRDX09GRiIKKyAgICBnaXQgLS1uby1wYWdlciBkaWZmIEhFQUQKKyAgICBwcmlu dGYgJ1xuJworICAgIGdpdCAtLW5vLXBhZ2VyIGRpZmYgLS1zdGF0IEhFQUQgfCB0YWlsIC0xCisg ICAgcmV0dXJuIDAKK30KKworIyBEZXN0cnVjdGl2ZSBwcm9tcHRzIGFyZSBuZXZlciBhdXRvLWFu c3dlcmVkIGJ5IC0teWVzOyB0aGV5IGFsd2F5cyBuZWVkIGEKKyMgZGVsaWJlcmF0ZSBrZXlzdHJv a2UuIEFuc3dlcmluZyAncScgYWJvcnRzIHRoZSB3aG9sZSB1cGRhdGUuCitjb25maXJtX2Rlc3Ry dWN0aXZlKCkgeworICAgIGxvY2FsIHF1ZXN0aW9uPSIkMSIgYW5zd2VyCisgICAgaWYgWyAhIC10 IDAgXTsgdGhlbgorICAgICAgICBpbmZvICIkcXVlc3Rpb24gLT4gbm8gKG5vdCBhIHRlcm1pbmFs KSIKKyAgICAgICAgcmV0dXJuIDEKKyAgICBmaQorICAgIHdoaWxlIHRydWU7IGRvCisgICAgICAg IHJlYWQgLXIgLXAgIiRDX0JPTEQkQ19SRUQkcXVlc3Rpb24gW3ldZXMgLyBbTl1vIC8gW3FddWl0 ICRDX09GRiIgYW5zd2VyCisgICAgICAgIGNhc2UgIiR7YW5zd2VyLCx9IiBpbgorICAgICAgICAg ICAgeXx5ZXMpICByZXR1cm4gMCA7OworICAgICAgICAgICAgbnxub3wiIikgcmV0dXJuIDEgOzsK KyAgICAgICAgICAgIHF8cXVpdCkKKyAgICAgICAgICAgICAgICBwcmludGYgJyVzQWJvcnRlZCAt IHRoZSB3b3JraW5nIHRyZWUgaXMgbGVmdCB1bnRvdWNoZWQuJXNcbicgXAorICAgICAgICAgICAg ICAgICAgICAiJENfWUVMTE9XIiAiJENfT0ZGIgorICAgICAgICAgICAgICAgIGV4aXQgMCA7Owor ICAgICAgICAgICAgKikgZWNobyAiUGxlYXNlIGFuc3dlciB5LCBuIG9yIHEuIiA7OworICAgICAg ICBlc2FjCisgICAgZG9uZQorfQorCisjIE9mZmVyIHRvIHRocm93IHRoZSBsb2NhbCBjaGFuZ2Vz IGF3YXkgYmVmb3JlIHN0YXJ0aW5nIHRoZSB1cGRhdGUuCitvZmZlcl9yZXNldF9sb2NhbF9jaGFu Z2VzKCkgeworICAgIGlmIFsgIiRSRVNVTUVfRlJPTSIgLWd0IDEgXTsgdGhlbgorICAgICAgICB3 YXJuICJSZXN1bWluZyBhdCBzdGVwICRSRVNVTUVfRlJPTSAtIHRoZSBjaGFuZ2VzIGFib3ZlIGFy ZSBwcm9iYWJseSB5b3VyIgorICAgICAgICB3YXJuICJpbi1wcm9ncmVzcyB1cGRhdGUuIERpc2Nh cmRpbmcgdGhlbSByZXN0YXJ0cyB0aGUgdXBkYXRlIGZyb20gc2NyYXRjaC4iCisgICAgZmkKKwor ICAgIHByaW50ZiAnXG4nCisgICAgaWYgY29uZmlybV9kZXN0cnVjdGl2ZSAiRGlzY2FyZCB0aGUg bG9jYWwgY2hhbmdlcyB3aXRoICdnaXQgcmVzZXQgLS1oYXJkIEhFQUQnPyI7IHRoZW4KKyAgICAg ICAgcnVuIGdpdCByZXNldCAtLWhhcmQgSEVBRCB8fCBkaWUgImdpdCByZXNldCAtLWhhcmQgZmFp bGVkIgorICAgICAgICBvayAiTG9jYWwgY2hhbmdlcyBkaXNjYXJkZWQuIgorICAgIGVsc2UKKyAg ICAgICAgaW5mbyAiS2VlcGluZyB0aGUgbG9jYWwgY2hhbmdlcy4iCisgICAgZmkKK30KKworcHJp bnRmICdcbicKK2lmIHNob3dfbG9jYWxfY2hhbmdlczsgdGhlbgorICAgIEhBVkVfTE9DQUxfQ0hB TkdFUz0xCisgICAgWyAiJERPX1JPTExCQUNLIiAtZXEgMSBdIHx8IG9mZmVyX3Jlc2V0X2xvY2Fs X2NoYW5nZXMKKyAgICAjIFJlLWNoZWNrOiB0aGUgb2ZmZXIgYWJvdmUgbWF5IGhhdmUgcmVzZXQg dGhlIHRyZWUuCisgICAgZ2l0IGRpZmYgLS1xdWlldCBIRUFEIDI+L2Rldi9udWxsICYmIEhBVkVf TE9DQUxfQ0hBTkdFUz0wCitlbHNlCisgICAgSEFWRV9MT0NBTF9DSEFOR0VTPTAKKyAgICBvayAi V29ya2luZyB0cmVlIGlzIGNsZWFuLiIKK2ZpCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBS b2xsYmFjayBtb2RlCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworaWYgWyAiJERPX1JPTExCQUNL IiAtZXEgMSBdOyB0aGVuCisgICAgcHJpbnRmICdcbiVzUm9sbGJhY2s6IGRpc2NhcmRpbmcgdGhl IGluLXByb2dyZXNzIHVwZGF0ZSBsaXN0ZWQgYWJvdmUlc1xuJyBcCisgICAgICAgICIkQ19CT0xE JENfWUVMTE9XIiAiJENfT0ZGIgorICAgIGNvbmZpcm0gIlJlc2V0IHRoZSB3b3JraW5nIHRyZWUg dG8gb3JpZ2luL3Jhd2hpZGUgYW5kIHJlbW92ZSBkb3dubG9hZGVkIHRhcmJhbGxzPyIgXAorICAg ICAgICB8fCBkaWUgIlJvbGxiYWNrIGNhbmNlbGxlZCIKKyAgICBydW4gZ2l0IGNoZWNrb3V0IHJh d2hpZGUgfHwgZGllICJnaXQgY2hlY2tvdXQgcmF3aGlkZSBmYWlsZWQiCisgICAgcnVuIGdpdCBy ZXNldCAtLWhhcmQgb3JpZ2luL3Jhd2hpZGUgfHwgZGllICJnaXQgcmVzZXQgZmFpbGVkIgorICAg IHJtIC1yZiAiZmlyZWZveC0kTkVXX1ZFUlNJT04vIgorICAgIHJtIC1mICAiZmlyZWZveC0kTkVX X1ZFUlNJT04uc291cmNlLnRhci54eiIKKyAgICBybSAtZiAgZmlyZWZveC1sYW5ncGFja3MtIiRO RVdfVkVSU0lPTiItKi50YXIueHoKKyAgICBvayAiUm9sbGJhY2sgY29tcGxldGUgLSB0aGUgd29y a2luZyB0cmVlIGlzIGNsZWFuLiIKKyAgICBleGl0IDAKK2ZpCisKKyMtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIyBTdGVwIDM6IFB1bGwgbGF0ZXN0IHJhd2hpZGUKKyMtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorCitpZiAhIHNraXBfc3RlcCAzOyB0aGVuCisgICAgc3RlcCAzICJQdWxsaW5nIGxhdGVzdCBy YXdoaWRlIgorICAgIGlmIFsgIiRIQVZFX0xPQ0FMX0NIQU5HRVMiIC1lcSAxIF07IHRoZW4KKyAg ICAgICAgd2FybiAiVGhlIHdvcmtpbmcgdHJlZSBoYXMgdW5jb21taXR0ZWQgY2hhbmdlcyAoc2hv d24gYWJvdmUpIgorICAgICAgICBjb25maXJtICJDb250aW51ZSBhbnl3YXk/IiB8fCBkaWUgIkFi b3J0ZWQgLSBjbGVhbiB0aGUgd29ya2luZyB0cmVlIGZpcnN0IgorICAgIGZpCisgICAgaWYgZ2l0 IHNob3ctcmVmIC0tdmVyaWZ5IC0tcXVpZXQgcmVmcy9oZWFkcy9yYXdoaWRlOyB0aGVuCisgICAg ICAgIHJ1biBnaXQgY2hlY2tvdXQgcmF3aGlkZSB8fCBkaWUgImdpdCBjaGVja291dCByYXdoaWRl IGZhaWxlZCIKKyAgICBlbHNlCisgICAgICAgIHJ1biBnaXQgY2hlY2tvdXQgLWIgcmF3aGlkZSBv cmlnaW4vcmF3aGlkZSB8fCBkaWUgIkNhbm5vdCBjcmVhdGUgdGhlIHJhd2hpZGUgYnJhbmNoIgor ICAgIGZpCisgICAgcnVuIGdpdCBwdWxsIHx8IGRpZSAiZ2l0IHB1bGwgZmFpbGVkIgorICAgIG9r ICJXb3JraW5nIHRyZWUgaXMgdXAgdG8gZGF0ZSBvbiByYXdoaWRlLiIKK2ZpCisKKyMtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIyBTdGVwIDQ6IEJ1bXAgdGhlIHZlcnNpb24gaW4gdGhlIFNQRUMgZmls ZQorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK09MRF9OU1NfVkVSU0lPTj0kKHNwZWNfZ2V0ICde JWdsb2JhbFxzK25zc192ZXJzaW9uXHMrXEtcUysnKQorT0xEX05TUFJfVkVSU0lPTj0kKHNwZWNf Z2V0ICdeJWdsb2JhbFxzK25zcHJfdmVyc2lvblxzK1xLXFMrJykKKworaWYgISBza2lwX3N0ZXAg NDsgdGhlbgorICAgIHN0ZXAgNCAiQnVtcGluZyB0aGUgdmVyc2lvbiBpbiBmaXJlZm94LnNwZWMi CisgICAgT0xEX1ZFUlNJT049JChzcGVjX2dldCAnXlZlcnNpb246XHMqXEtcUysnKQorICAgIFsg LW4gIiRPTERfVkVSU0lPTiIgXSB8fCBkaWUgIkNhbm5vdCByZWFkIFZlcnNpb246IGZyb20gZmly ZWZveC5zcGVjIgorICAgIGluZm8gIkN1cnJlbnQgdmVyc2lvbjogJE9MRF9WRVJTSU9OIgorCisg ICAgRE9fQlVNUD0xCisgICAgaWYgWyAiJE9MRF9WRVJTSU9OIiA9ICIkTkVXX1ZFUlNJT04iIF07 IHRoZW4KKyAgICAgICAgd2FybiAiZmlyZWZveC5zcGVjIGlzIGFscmVhZHkgYXQgJE5FV19WRVJT SU9OIgorICAgICAgICBpZiBjb25maXJtICJCdW1wIGl0IGFnYWluIChhZGRzIGFub3RoZXIgY2hh bmdlbG9nIGVudHJ5KT8iOyB0aGVuCisgICAgICAgICAgICBET19CVU1QPTEKKyAgICAgICAgZWxz ZQorICAgICAgICAgICAgRE9fQlVNUD0wCisgICAgICAgICAgICBpbmZvICJLZWVwaW5nIHRoZSBz cGVjIHZlcnNpb24gYXMgaXMuIgorICAgICAgICBmaQorICAgIGZpCisKKyAgICBpZiBbICIkRE9f QlVNUCIgLWVxIDEgXTsgdGhlbgorICAgICAgICBidW1wc3BlY19hcmdzPSgtLW5ldyAiJE5FV19W RVJTSU9OIiAtLWNvbW1lbnQgIlVwZGF0ZSB0byBsYXRlc3QgdXBzdHJlYW0gKCRORVdfVkVSU0lP TikiKQorICAgICAgICBbIC1uICIkQ0hBTkdFTE9HX0FVVEhPUiIgXSAmJiBidW1wc3BlY19hcmdz Kz0oLS11c2Vyc3RyaW5nICIkQ0hBTkdFTE9HX0FVVEhPUiIpCisgICAgICAgIHJ1biBycG1kZXYt YnVtcHNwZWMgIiR7YnVtcHNwZWNfYXJnc1tAXX0iIGZpcmVmb3guc3BlYyBcCisgICAgICAgICAg ICB8fCBkaWUgInJwbWRldi1idW1wc3BlYyBmYWlsZWQiCisgICAgZmkKKworICAgIGdvdF92ZXJz aW9uPSQoc3BlY19nZXQgJ15WZXJzaW9uOlxzKlxLXFMrJykKKyAgICBbICIkZ290X3ZlcnNpb24i ID0gIiRORVdfVkVSU0lPTiIgXSBcCisgICAgICAgIHx8IGRpZSAiVmVyc2lvbjogaXMgJGdvdF92 ZXJzaW9uLCBleHBlY3RlZCAkTkVXX1ZFUlNJT04gLSBmaXggZmlyZWZveC5zcGVjIG1hbnVhbGx5 IgorCisgICAgZ290X3JlbGVhc2U9JChzcGVjX2dldCAnXlJlbGVhc2U6XHMqXEtcUysnKQorICAg IGlmIFtbICIkZ290X3JlbGVhc2UiICE9IDEqIF1dOyB0aGVuCisgICAgICAgIGluZm8gIlJlbGVh c2UgaXMgJyRnb3RfcmVsZWFzZScsIHJlc2V0dGluZyB0byAxJXs/cHJlX3RhZ30lez9kaXN0fSIK KyAgICAgICAgc2VkIC1pIC1FICdzfF5SZWxlYXNlOihbWzpzcGFjZTpdXSopLip8UmVsZWFzZTpc MTElez9wcmVfdGFnfSV7P2Rpc3R9fCcgZmlyZWZveC5zcGVjIFwKKyAgICAgICAgICAgIHx8IGRp ZSAiQ2Fubm90IHJlc2V0IFJlbGVhc2U6IgorICAgIGZpCisgICAgb2sgImZpcmVmb3guc3BlYyBp cyBhdCAkTkVXX1ZFUlNJT04sIHJlbGVhc2UgJChzcGVjX2dldCAnXlJlbGVhc2U6XHMqXEtcUysn KS4iCitmaQorCisjIFJlY292ZXIgT0xEX1ZFUlNJT04gd2hlbiByZXN1bWluZyBwYXN0IHN0ZXAg NC4KK2lmIFsgLXogIiRPTERfVkVSU0lPTiIgXTsgdGhlbgorICAgIE9MRF9WRVJTSU9OPSQoZ2l0 IHNob3cgSEVBRDpmaXJlZm94LnNwZWMgMj4vZGV2L251bGwgfCBncmVwIC1tMSAtb1AgJ15WZXJz aW9uOlxzKlxLXFMrJykKKyAgICBPTERfVkVSU0lPTj0iJHtPTERfVkVSU0lPTjotdW5rbm93bn0i CitmaQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgU3RlcCA1OiBHZXQgdGhlIE1vemlsbGEg YnVpbGQgdmVyc2lvbgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0NBTkRJREFURVNfVVJMPSIk QVJDSElWRV9VUkwvJE5FV19WRVJTSU9OLWNhbmRpZGF0ZXMiCisKK2lmIFsgLXogIiRCVUlMRF9W RVJTSU9OIiBdOyB0aGVuCisgICAgc3RlcCA1ICJMb29raW5nIHVwIHRoZSBsYXRlc3QgTW96aWxs YSBjYW5kaWRhdGUgYnVpbGQiCisgICAgbGlzdGluZz0kKGN1cmwgLWZzU0wgIiRDQU5ESURBVEVT X1VSTC8iKSBcCisgICAgICAgIHx8IGRpZSAiQ2Fubm90IGxpc3QgJENBTkRJREFURVNfVVJMLyAt IGlzICRORVdfVkVSU0lPTiByZWxlYXNlZCB5ZXQ/IgorICAgIEJVSUxEX1ZFUlNJT049JChncmVw IC1vRSAnYnVpbGRbMC05XSsvJyA8PDwiJGxpc3RpbmciIHwgdHIgLWQgJy8nIHwgc29ydCAtdSAt ViB8IHRhaWwgLTEpCisgICAgWyAtbiAiJEJVSUxEX1ZFUlNJT04iIF0gfHwgZGllICJObyBidWls ZE4gZGlyZWN0b3J5IGZvdW5kIGluICRDQU5ESURBVEVTX1VSTC8iCisgICAgb2sgIkxhdGVzdCBj YW5kaWRhdGUgYnVpbGQ6ICRCVUlMRF9WRVJTSU9OIgorZWxzZQorICAgIGluZm8gIlVzaW5nIGNh bmRpZGF0ZSBidWlsZDogJEJVSUxEX1ZFUlNJT04gKGZyb20gLS1idWlsZCkiCitmaQorCitCVUlM RF9VUkw9IiRDQU5ESURBVEVTX1VSTC8kQlVJTERfVkVSU0lPTiIKKyMgVGhlIHNvdXJjZSB0YXJi YWxsIGFuZCBpdHMgLmFzYyBsaXZlIGluIHRoZSBzb3VyY2UvIHN1YmRpcmVjdG9yeSwgdGhlCisj IGxhbmdwYWNrIFhQSXMgZG8gbm90LgorU09VUkNFX1VSTD0iJEJVSUxEX1VSTC9zb3VyY2UiCisK KyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTdGVwIDY6IERvd25sb2FkIHRoZSBGaXJlZm94IHNv dXJjZSB0YXJiYWxsCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworTkVXX1RBUkJBTEw9ImZpcmVm b3gtJE5FV19WRVJTSU9OLnNvdXJjZS50YXIueHoiCisKKyMgQ2hlY2tzICRORVdfVEFSQkFMTCBh Z2FpbnN0IHRoZSBkZXRhY2hlZCBzaWduYXR1cmUgJE5FV19UQVJCQUxMLmFzYy4KKyMgICAwID0g Z29vZCBzaWduYXR1cmUsIDEgPSBiYWQgc2lnbmF0dXJlLCAyID0gY2Fubm90IHRlbGwgKG5vIGdw ZyAvIG5vIGtleSkKK3ZlcmlmeV90YXJiYWxsX3NpZ25hdHVyZSgpIHsKKyAgICBjb21tYW5kIC12 IGdwZyA+L2Rldi9udWxsIDI+JjEgfHwgcmV0dXJuIDIKKyAgICBbIC1zICIkTkVXX1RBUkJBTEwu YXNjIiBdIHx8IHJldHVybiAyCisgICAgbG9jYWwgb3V0IGtleQorICAgIG91dD0kKGdwZyAtLXZl cmlmeSAiJE5FV19UQVJCQUxMLmFzYyIgIiRORVdfVEFSQkFMTCIgMj4mMSkKKyAgICBpZiBncmVw IC1xICdeZ3BnOiBHb29kIHNpZ25hdHVyZScgPDw8IiRvdXQiOyB0aGVuCisgICAgICAgIHJldHVy biAwCisgICAgZmkKKyAgICBpZiBncmVwIC1xRSAiTm8gcHVibGljIGtleXxDYW4ndCBjaGVjayBz aWduYXR1cmUiIDw8PCIkb3V0IjsgdGhlbgorICAgICAgICAjIE1vemlsbGEgcm90YXRlcyBpdHMg c2lnbmluZyBrZXksIHNvIHRha2UgdGhlIGtleSBpZCBmcm9tIGdwZyBpdHNlbGYuCisgICAgICAg IGtleT0kKGdyZXAgLW9QICd1c2luZyBcUysga2V5IFxLWzAtOUEtRl0rJyA8PDwiJG91dCIgfCBo ZWFkIC0xKQorICAgICAgICB3YXJuICJNb3ppbGxhIHNpZ25pbmcga2V5ICR7a2V5Oi0odW5rbm93 bil9IGlzIG5vdCBpbiB0aGUga2V5cmluZy4iCisgICAgICAgIHdhcm4gIkltcG9ydCBpdCB3aXRo OiBncGcgLS1yZWN2LWtleXMgJHtrZXk6LTxrZXktaWQ+fSIKKyAgICAgICAgcmV0dXJuIDIKKyAg ICBmaQorICAgIHJldHVybiAxCit9CisKKyMgRmFsbGJhY2sgd2hlbiB0aGUgc2lnbmF0dXJlIGNh bm5vdCBiZSBjaGVja2VkOiBjb21wYXJlIHRoZSBsb2NhbCBzaXplIHdpdGgKKyMgdGhlIENvbnRl bnQtTGVuZ3RoIHRoZSBhcmNoaXZlIHJlcG9ydHMuCittYXRjaGVzX3JlbW90ZV9zaXplKCkgewor ICAgIGxvY2FsIHJlbW90ZSBsb2NhbF9zaXplCisgICAgcmVtb3RlPSQoY3VybCAtc2ZJTCAiJFNP VVJDRV9VUkwvJE5FV19UQVJCQUxMIiBcCisgICAgICAgIHwgZ3JlcCAtaSAnXmNvbnRlbnQtbGVu Z3RoOicgfCB0YWlsIC0xIHwgdHIgLWRjICcwLTknKQorICAgIFsgLW4gIiRyZW1vdGUiIF0gfHwg cmV0dXJuIDIKKyAgICBsb2NhbF9zaXplPSQoc3RhdCAtYyVzICIkTkVXX1RBUkJBTEwiIDI+L2Rl di9udWxsKQorICAgIFsgIiRyZW1vdGUiID0gIiRsb2NhbF9zaXplIiBdCit9CisKK2lmICEgc2tp cF9zdGVwIDY7IHRoZW4KKyAgICBzdGVwIDYgIkRvd25sb2FkaW5nICRORVdfVEFSQkFMTCIKKwor ICAgICMgVGhlIGRldGFjaGVkIHNpZ25hdHVyZSBpcyB0aW55IC0gZmV0Y2ggaXQgZmlyc3Qgc28g YW4gYWxyZWFkeSBwcmVzZW50CisgICAgIyB0YXJiYWxsIGNhbiBiZSBjaGVja2VkIHdpdGhvdXQg ZG93bmxvYWRpbmcgdGhlIH42MDAgTUIgZmlsZSBhZ2Fpbi4KKyAgICBybSAtZiAiJE5FV19UQVJC QUxMLmFzYyIKKyAgICB3Z2V0IC1xIC1PICIkTkVXX1RBUkJBTEwuYXNjIiAiJFNPVVJDRV9VUkwv JE5FV19UQVJCQUxMLmFzYyIgXAorICAgICAgICB8fCB3YXJuICJObyBkZXRhY2hlZCBzaWduYXR1 cmUgYXQgJFNPVVJDRV9VUkwvJE5FV19UQVJCQUxMLmFzYyIKKworICAgIE5FRURfRE9XTkxPQUQ9 MQorICAgIGlmIFsgLWYgIiRORVdfVEFSQkFMTCIgXTsgdGhlbgorICAgICAgICBpbmZvICIkTkVX X1RBUkJBTEwgaXMgYWxyZWFkeSBoZXJlLCBjaGVja2luZyBpdCBhZ2FpbnN0ICRORVdfVEFSQkFM TC5hc2MiCisgICAgICAgIHZlcmlmeV90YXJiYWxsX3NpZ25hdHVyZQorICAgICAgICBjYXNlICQ/ IGluCisgICAgICAgICAgICAwKSAgb2sgIlNpZ25hdHVyZSBpcyBnb29kIC0gcmV1c2luZyB0aGUg bG9jYWwgJE5FV19UQVJCQUxMLiIKKyAgICAgICAgICAgICAgICBORUVEX0RPV05MT0FEPTAgOzsK KyAgICAgICAgICAgIDEpICB3YXJuICJTaWduYXR1cmUgZG9lcyBOT1QgbWF0Y2ggLSB0aGUgbG9j YWwgdGFyYmFsbCBpcyBzdGFsZSBvciBjb3JydXB0LiIKKyAgICAgICAgICAgICAgICBybSAtZiAi JE5FV19UQVJCQUxMIiA7OworICAgICAgICAgICAgMikgIGlmIG1hdGNoZXNfcmVtb3RlX3NpemU7 IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgd2FybiAiRmFsbGluZyBiYWNrIHRvIGEgc2l6ZSBj aGVjazogbG9jYWwgc2l6ZSBtYXRjaGVzIHRoZSBhcmNoaXZlLiIKKyAgICAgICAgICAgICAgICAg ICAgb2sgIlJldXNpbmcgdGhlIGxvY2FsICRORVdfVEFSQkFMTC4iCisgICAgICAgICAgICAgICAg ICAgIE5FRURfRE9XTkxPQUQ9MAorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg ICAgICAgaW5mbyAiU2l6ZSBkaWZmZXJzIGZyb20gdGhlIGFyY2hpdmUgKG9yIGlzIHVua25vd24p IC0gZG93bmxvYWRpbmcgYWdhaW4uIgorICAgICAgICAgICAgICAgICAgICBybSAtZiAiJE5FV19U QVJCQUxMIgorICAgICAgICAgICAgICAgIGZpIDs7CisgICAgICAgIGVzYWMKKyAgICAgICAgaWYg WyAiJE5FRURfRE9XTkxPQUQiIC1lcSAxIF0gJiYgWyAtZiBzb3VyY2VzIF0gXAorICAgICAgICAg ICAmJiBncmVwIC1xICIoJE5FV19UQVJCQUxMKSIgc291cmNlczsgdGhlbgorICAgICAgICAgICAg aW5mbyAiUmVtb3ZpbmcgdGhlIHN0YWxlICRORVdfVEFSQkFMTCBlbnRyeSBmcm9tIHNvdXJjZXMi CisgICAgICAgICAgICBzZWQgLWkgIlx8KCRORVdfVEFSQkFMTCl8ZCIgc291cmNlcworICAgICAg ICBmaQorICAgIGZpCisKKyAgICBpZiBbICIkTkVFRF9ET1dOTE9BRCIgLWVxIDEgXTsgdGhlbgor ICAgICAgICBydW4gd2dldCAtLXByb2dyZXNzPWRvdDpnaWdhIC1PICIkTkVXX1RBUkJBTEwiICIk U09VUkNFX1VSTC8kTkVXX1RBUkJBTEwiIFwKKyAgICAgICAgICAgIHx8IHsgcm0gLWYgIiRORVdf VEFSQkFMTCI7IGRpZSAiRG93bmxvYWQgb2YgJFNPVVJDRV9VUkwvJE5FV19UQVJCQUxMIGZhaWxl ZCI7IH0KKyAgICAgICAgb2sgIkRvd25sb2FkZWQgJE5FV19UQVJCQUxMICgkKGR1IC1oICIkTkVX X1RBUkJBTEwiIHwgY3V0IC1mMSkpLiIKKyAgICAgICAgdmVyaWZ5X3RhcmJhbGxfc2lnbmF0dXJl CisgICAgICAgIGNhc2UgJD8gaW4KKyAgICAgICAgICAgIDApIG9rICJQR1Agc2lnbmF0dXJlIHZl cmlmaWVkLiIgOzsKKyAgICAgICAgICAgIDEpIHJtIC1mICIkTkVXX1RBUkJBTEwiICIkTkVXX1RB UkJBTEwuYXNjIgorICAgICAgICAgICAgICAgZGllICJEb3dubG9hZGVkICRORVdfVEFSQkFMTCBk b2VzIG5vdCBtYXRjaCBpdHMgUEdQIHNpZ25hdHVyZSIgOzsKKyAgICAgICAgZXNhYworICAgIGZp CisKKyAgICBybSAtZiAiJE5FV19UQVJCQUxMLmFzYyIKK2ZpCisKK1sgLWYgIiRORVdfVEFSQkFM TCIgXSB8fCBkaWUgIiRORVdfVEFSQkFMTCBpcyBtaXNzaW5nIC0gcmUtcnVuIGZyb20gc3RlcCA2 IgorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgU3RlcCA3OiBEb3dubG9hZCBsYW5ncGFja3MK KyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitpZiAhIHNraXBfc3RlcCA3OyB0aGVuCisgICAgc3Rl cCA3ICJEb3dubG9hZGluZyBsYW5ncGFja3MiCisKKyAgICAjIFRoZSBsYW5ncGFjayB0YXJiYWxs IGlzIG5hbWVkIGZpcmVmb3gtbGFuZ3BhY2tzLTx2ZXJzaW9uPi08WVlZWU1NREQ+LnRhci54ei4K KyAgICAjIElmIG9uZSBmb3IgdGhpcyB2ZXJzaW9uIGlzIGFscmVhZHkgaGVyZSwgcmV1c2UgaXQg aW5zdGVhZCBvZiBkb3dubG9hZGluZworICAgICMgZXZlcnkgWFBJIGFnYWluOyB0aGUgbmV3ZXN0 IGdlbmVyYXRpb24gZGF0ZSB3aW5zLgorICAgIExBTkdQQUNLX0ZJTEU9JChscyAtMSBmaXJlZm94 LWxhbmdwYWNrcy0iJE5FV19WRVJTSU9OIi0qLnRhci54eiAyPi9kZXYvbnVsbCBcCisgICAgICAg IHwgc29ydCAtViB8IHRhaWwgLTEpCisKKyAgICBpZiBbIC1uICIkTEFOR1BBQ0tfRklMRSIgXTsg dGhlbgorICAgICAgICBsYW5ncGFja19kYXRlPSIke0xBTkdQQUNLX0ZJTEUjIyotfSI7IGxhbmdw YWNrX2RhdGU9IiR7bGFuZ3BhY2tfZGF0ZSUudGFyLnh6fSIKKyAgICAgICAgaW5mbyAiTGFuZ3Bh Y2sgdGFyYmFsbCBmb3IgJE5FV19WRVJTSU9OIGFscmVhZHkgcHJlc2VudCwgZ2VuZXJhdGVkICRs YW5ncGFja19kYXRlIgorICAgICAgICBpbmZvICJSZXVzaW5nICRMQU5HUEFDS19GSUxFIC0gZGVs ZXRlIGl0IHRvIGZvcmNlIGEgZnJlc2ggZG93bmxvYWQuIgorICAgIGVsc2UKKyAgICAgICAgWyAt eCAuL21vei1ncmFiLWxhbmdwYWNrcyBdIHx8IGRpZSAiLi9tb3otZ3JhYi1sYW5ncGFja3Mgbm90 IGZvdW5kIG9yIG5vdCBleGVjdXRhYmxlIgorICAgICAgICBydW4gLi9tb3otZ3JhYi1sYW5ncGFj a3MgLWEgZmlyZWZveCAiJE5FV19WRVJTSU9OIiBcCisgICAgICAgICAgICAtdSAiJEJVSUxEX1VS TC9saW51eC14ODZfNjQveHBpLyIgXAorICAgICAgICAgICAgfHwgZGllICJtb3otZ3JhYi1sYW5n cGFja3MgZmFpbGVkIgorCisgICAgICAgIExBTkdQQUNLX0ZJTEU9JChscyAtMSBmaXJlZm94LWxh bmdwYWNrcy0iJE5FV19WRVJTSU9OIi0qLnRhci54eiAyPi9kZXYvbnVsbCBcCisgICAgICAgICAg ICB8IHNvcnQgLVYgfCB0YWlsIC0xKQorICAgICAgICBbIC1uICIkTEFOR1BBQ0tfRklMRSIgXSB8 fCBkaWUgIk5vIGZpcmVmb3gtbGFuZ3BhY2tzLSRORVdfVkVSU0lPTi0qLnRhci54eiB3YXMgY3Jl YXRlZCIKKyAgICAgICAgaW5mbyAiTGFuZ3BhY2sgdGFyYmFsbDogJExBTkdQQUNLX0ZJTEUiCisg ICAgZmkKKworICAgICMgU291cmNlMSBrZWVwcyB0aGUgJXt2ZXJzaW9ufSV7P3ByZV92ZXJzaW9u fSBtYWNyb3MsIG9ubHkgdGhlIGRhdGUgY2hhbmdlcy4KKyAgICBvbGRfc291cmNlMT0kKHNwZWNf Z2V0ICdeU291cmNlMTpccypcS1xTKycpCisgICAgbGFuZ3BhY2tfZGF0ZT0iJHtMQU5HUEFDS19G SUxFIyMqLX0iOyBsYW5ncGFja19kYXRlPSIke2xhbmdwYWNrX2RhdGUlLnRhci54en0iCisgICAg bmV3X3NvdXJjZTE9ImZpcmVmb3gtbGFuZ3BhY2tzLSV7dmVyc2lvbn0lez9wcmVfdmVyc2lvbn0t JGxhbmdwYWNrX2RhdGUudGFyLnh6IgorICAgIGlmIFsgIiRvbGRfc291cmNlMSIgIT0gIiRuZXdf c291cmNlMSIgXTsgdGhlbgorICAgICAgICBzZWQgLWkgLUUgInN8XlNvdXJjZTE6KFtbOnNwYWNl Ol1dKikuKnxTb3VyY2UxOlwxJG5ld19zb3VyY2UxfCIgZmlyZWZveC5zcGVjIFwKKyAgICAgICAg ICAgIHx8IGRpZSAiQ2Fubm90IHVwZGF0ZSBTb3VyY2UxIGluIGZpcmVmb3guc3BlYyIKKyAgICAg ICAgaW5mbyAiU291cmNlMTogJG9sZF9zb3VyY2UxIC0+ICRuZXdfc291cmNlMSIKKyAgICBmaQor ICAgIG9rICJVc2luZyAkTEFOR1BBQ0tfRklMRTsgU291cmNlMSBpcyB1cCB0byBkYXRlLiIKK2Zp CisKK2lmIFsgLXogIiRMQU5HUEFDS19GSUxFIiBdOyB0aGVuCisgICAgTEFOR1BBQ0tfRklMRT0k KGxzIC0xIGZpcmVmb3gtbGFuZ3BhY2tzLSIkTkVXX1ZFUlNJT04iLSoudGFyLnh6IDI+L2Rldi9u dWxsIFwKKyAgICAgICAgfCBzb3J0IC1WIHwgdGFpbCAtMSkKK2ZpCitbIC1uICIkTEFOR1BBQ0tf RklMRSIgXSB8fCBkaWUgIk5vIGxhbmdwYWNrIHRhcmJhbGwgZm9yICRORVdfVkVSU0lPTiAtIHJl LXJ1biBmcm9tIHN0ZXAgNyIKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFN0ZXAgODogVXBs b2FkIG5ldyBzb3VyY2VzCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworaWYgISBza2lwX3N0ZXAg ODsgdGhlbgorICAgIHN0ZXAgOCAiVXBsb2FkaW5nIG5ldyBzb3VyY2VzIHRvIHRoZSBsb29rYXNp ZGUgY2FjaGUiCisgICAgY2hlY2tfa2VyYmVyb3MKKyAgICBbIC1mIHNvdXJjZXMgXSB8fCBkaWUg Ik5vIHNvdXJjZXMgZmlsZSBpbiAkUEFDS0FHRV9ESVIiCisKKyAgICAjIEV2ZXJ5dGhpbmcgZXhj ZXB0IHRoZSBGaXJlZm94IHNvdXJjZS9sYW5ncGFjayB0YXJiYWxscyBpcyBrZXB0IGFzIGlzLgor ICAgIG1hcGZpbGUgLXQgS0VQVF9TT1VSQ0VTIDwgPCgKKyAgICAgICAgc2VkIC1uRSAnc3xeW0Et WmEtejAtOV0rIFwoKFteKV0rKVwpLip8XDF8cCcgc291cmNlcyBcCisgICAgICAgICAgICB8IGdy ZXAgLXZFICdeZmlyZWZveC0uKlwuc291cmNlXC50YXJcLnh6JCcgXAorICAgICAgICAgICAgfCBn cmVwIC12RSAnXmZpcmVmb3gtbGFuZ3BhY2tzLS4qXC50YXJcLnh6JCcKKyAgICApCisgICAgaW5m byAiS2VwdCBzb3VyY2VzOiAgICAke0tFUFRfU09VUkNFU1sqXTotKG5vbmUpfSIKKyAgICBpbmZv ICJVcGxvYWRlZCBhbmV3OiAgICRORVdfVEFSQkFMTCAkTEFOR1BBQ0tfRklMRSIKKworICAgICMg VHJpbSB0aGUgc291cmNlcyBmaWxlIGZpcnN0IHNvIHRoYXQgJ2ZlZHBrZyBzb3VyY2VzJyBkb2Vz IG5vdCByZS1kb3dubG9hZAorICAgICMgdGhlIHByZXZpb3VzIChodWdlKSBGaXJlZm94IHRhcmJh bGwsIHRoZW4gZmV0Y2ggd2hhdGV2ZXIgaXMgc3RpbGwgbWlzc2luZy4KKyAgICBjcCBzb3VyY2Vz IHNvdXJjZXMuYmFrIHx8IGRpZSAiQ2Fubm90IGJhY2sgdXAgdGhlIHNvdXJjZXMgZmlsZSIKKyAg ICB0cmFwICdpZiBbIC1mICIkUEFDS0FHRV9ESVIvc291cmNlcy5iYWsiIF07IHRoZW4gbXYgLWYg IiRQQUNLQUdFX0RJUi9zb3VyY2VzLmJhayIgIiRQQUNLQUdFX0RJUi9zb3VyY2VzIjsgZmknIEVY SVQKKyAgICBncmVwIC12RSAnXChmaXJlZm94LS4qXC5zb3VyY2VcLnRhclwueHpcKXxcKGZpcmVm b3gtbGFuZ3BhY2tzLS4qXC50YXJcLnh6XCknIFwKKyAgICAgICAgc291cmNlcy5iYWsgPiBzb3Vy Y2VzCisgICAgcnVuIGZlZHBrZyBzb3VyY2VzIHx8IGRpZSAiZmVkcGtnIHNvdXJjZXMgZmFpbGVk IChLZXJiZXJvcyB0aWNrZXQgZXhwaXJlZD8pIgorCisgICAgZm9yIGYgaW4gIiR7S0VQVF9TT1VS Q0VTW0BdfSI7IGRvCisgICAgICAgIFsgLWYgIiRmIiBdIHx8IGRpZSAiS2VwdCBzb3VyY2UgJGYg aXMgbWlzc2luZyBsb2NhbGx5IC0gY2Fubm90IHJlLXVwbG9hZCBpdCIKKyAgICBkb25lCisKKyAg ICBydW4gZmVkcGtnIG5ldy1zb3VyY2VzICIkTkVXX1RBUkJBTEwiICIkTEFOR1BBQ0tfRklMRSIg IiR7S0VQVF9TT1VSQ0VTW0BdfSIgXAorICAgICAgICB8fCBkaWUgImZlZHBrZyBuZXctc291cmNl cyBmYWlsZWQiCisKKyAgICB0cmFwIC0gRVhJVAorICAgIHJtIC1mIHNvdXJjZXMuYmFrCisgICAg b2sgIlVwbG9hZGVkICRORVdfVEFSQkFMTCBhbmQgJExBTkdQQUNLX0ZJTEU7IHNvdXJjZXMgZmls ZSByZWZyZXNoZWQuIgorZmkKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFN0ZXAgOTogQ2hl Y2sgYW5kIHJlYmFzZSBwYXRjaGVzCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworaWYgWyAiJHsj RFJPUF9QQVRDSEVTW0BdfSIgLWd0IDAgXSAmJiBza2lwX3N0ZXAgOTsgdGhlbgorICAgIHdhcm4g Ii0tZHJvcC1wYXRjaCBpZ25vcmVkOiByZXN1bWluZyBhdCBzdGVwICRSRVNVTUVfRlJPTSwgcGFz dCB0aGUgcGF0Y2ggc3RlcC4iCitmaQorCitpZiAhIHNraXBfc3RlcCA5OyB0aGVuCisgICAgc3Rl cCA5ICJDaGVja2luZyBwYXRjaGVzIGFnYWluc3QgdGhlIG5ldyBzb3VyY2VzIgorCisgICAgZm9y IHAgaW4gIiR7RFJPUF9QQVRDSEVTW0BdfSI7IGRvCisgICAgICAgIGRyb3BfcGF0Y2ggIiRwIgor ICAgIGRvbmUKKyAgICBbICIkeyNEUk9QUEVEX1BBVENIRVNbQF19IiAtZ3QgMCBdIFwKKyAgICAg ICAgJiYgb2sgIkRyb3BwZWQgJHsjRFJPUFBFRF9QQVRDSEVTW0BdfSBwYXRjaChlcykuIgorCisg ICAgbWFwZmlsZSAtdCBTUEVDX1BBVENIRVMgPCA8KGdyZXAgLW9QICdeUGF0Y2hbMC05XSo6XHMq XEtcUysnIGZpcmVmb3guc3BlYykKKyAgICBpbmZvICIkeyNTUEVDX1BBVENIRVNbQF19IHBhdGNo ZXMgcmVmZXJlbmNlZCBieSBmaXJlZm94LnNwZWMiCisgICAgZm9yIHAgaW4gIiR7U1BFQ19QQVRD SEVTW0BdfSI7IGRvCisgICAgICAgIGNhc2UgIiRwIiBpbgorICAgICAgICAgICAgaHR0cCp8JSop IGNvbnRpbnVlIDs7CisgICAgICAgIGVzYWMKKyAgICAgICAgWyAtZiAiJHAiIF0gfHwgd2FybiAi UGF0Y2ggZmlsZSByZWZlcmVuY2VkIGJ1dCBtaXNzaW5nOiAkcCIKKyAgICBkb25lCisgICAgaW5m byAiUGF0Y2ggYXBwbGljYXRpb24gaXRzZWxmIGlzIHZlcmlmaWVkIGJ5ICdmZWRwa2cgcHJlcCcg aW4gdGhlIG5leHQgc3RlcC4iCisgICAgb2sgIlBhdGNoIGxpc3QgY2hlY2tlZC4iCitmaQorCisj LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgU3RlcCAxMDogVmVyaWZ5IHBhdGNoZXMgYXBwbHkgd2l0 aCBmZWRwa2cgcHJlcAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2lmICEgc2tpcF9zdGVwIDEw OyB0aGVuCisgICAgc3RlcCAxMCAiVmVyaWZ5aW5nIHBhdGNoZXMgd2l0aCBmZWRwa2cgcHJlcCIK KyAgICBQUkVQX0xPRz0kKG1rdGVtcCAtdCBmaXJlZm94LXByZXAtWFhYWFhYLmxvZykKKyAgICBp ZiBydW4gZmVkcGtnIHByZXAgMj4mMSB8IHRlZSAiJFBSRVBfTE9HIjsgdGhlbgorICAgICAgICBQ UkVQX09LPTEKKyAgICBlbHNlCisgICAgICAgIFBSRVBfT0s9MAorICAgIGZpCisgICAgaWYgWyAi JFBSRVBfT0siIC1lcSAwIF07IHRoZW4KKyAgICAgICAgcHJpbnRmICdcbiVzZmVkcGtnIHByZXAg ZmFpbGVkLiBGYWlsaW5nIHBhdGNoKGVzKTolc1xuJyAiJENfUkVEIiAiJENfT0ZGIiA+JjIKKyAg ICAgICAgZ3JlcCAtaUUgJ3BhdGNoIC4qKEZBSUxFRHxkb2VzIG5vdCBhcHBseSl8SHVuayAjLiog RkFJTEVEfGVycm9yOicgIiRQUkVQX0xPRyIgXAorICAgICAgICAgICAgfCB0YWlsIC0yMCA+JjIK KyAgICAgICAgcHJpbnRmICclc0Z1bGwgbG9nOiAlcyVzXG4nICIkQ19ZRUxMT1ciICIkUFJFUF9M T0ciICIkQ19PRkYiID4mMgorICAgICAgICBkaWUgIlJlYmFzZSBvciBkcm9wIHRoZSBmYWlsaW5n IHBhdGNoLCB0aGVuIHJlLXJ1bjogJDAgJE5FV19WRVJTSU9OIC0tcmVzdW1lIDEwIgorICAgIGZp CisgICAgcm0gLWYgIiRQUkVQX0xPRyIKKyAgICAjIFRoZSB1bnBhY2tlZCB0cmVlIGlzIGtlcHQg Zm9yIHN0ZXAgMTEgKE5TUy9OU1BSIHZlcnNpb24gZGV0ZWN0aW9uKS4KKyAgICBvayAiQWxsIHBh dGNoZXMgYXBwbHkgY2xlYW5seS4iCisgICAgQlVJTERfU1RBVFVTPSJQQVNTRUQgKGZlZHBrZyBw cmVwKSIKK2ZpCitCVUlMRF9TVEFUVVM9IiR7QlVJTERfU1RBVFVTOi1Ob3QgdGVzdGVkfSIKKwor Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFN0ZXAgMTE6IERldGVjdCB0aGUgTlNTL05TUFIgdmVy c2lvbnMgc2hpcHBlZCBpbiB0aGUgdGFyYmFsbAorIworIyBGaXJlZm94IGJ1bmRsZXMgYm90aCBz b3VyY2VzOyB0aGUgdmVyc2lvbnMgYXJlIGFsd2F5cyB0YWtlbiBmcm9tIHRoZXJlIGFuZAorIyB3 cml0dGVuIHRvIHRoZSBzcGVjLCBuZXZlciBhc2tlZCBmb3I6CisjICAgc2VjdXJpdHkvbnNzL2xp Yi9uc3MvbnNzLmggICAgI2RlZmluZSBOU1NfVkVSU0lPTiAiMy4xMjciIF9OU1NfQ1VTVE9NSVpF RAorIyAgIG5zcHJwdWIvcHIvaW5jbHVkZS9wcmluaXQuaCAgICNkZWZpbmUgUFJfVkVSU0lPTiAg IjQuNDAiCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworREVURUNURURfTlNTX1ZFUlNJT049IiIK K0RFVEVDVEVEX05TUFJfVkVSU0lPTj0iIgorCisjIHJlYWRfYnVuZGxlZF92ZXJzaW9uIDxyZWxh dGl2ZS1oZWFkZXI+IDxkZWZpbmUtbmFtZT4KKyMgUmVhZHMgZnJvbSB0aGUgdW5wYWNrZWQgdHJl ZSwgZmFsbGluZyBiYWNrIHRvIHRoZSB0YXJiYWxsIHdoZW4gcmVzdW1pbmcuCityZWFkX2J1bmRs ZWRfdmVyc2lvbigpIHsKKyAgICBsb2NhbCBoZWFkZXI9IiQxIiBkZWZpbmU9IiQyIiBwYXRoPSJm aXJlZm94LSRORVdfVkVSU0lPTi8kMSIKKyAgICBpZiBbIC1mICIkcGF0aCIgXTsgdGhlbgorICAg ICAgICBncmVwIC1tMSAtb1AgIl4jZGVmaW5lXHMrJGRlZmluZVxzK1wiXEtbXlwiXSsiICIkcGF0 aCIKKyAgICBlbHNlCisgICAgICAgIHRhciAteGYgIiRORVdfVEFSQkFMTCIgLS13aWxkY2FyZHMg LU8gIiovJGhlYWRlciIgMj4vZGV2L251bGwgXAorICAgICAgICAgICAgfCBncmVwIC1tMSAtb1Ag Il4jZGVmaW5lXHMrJGRlZmluZVxzK1wiXEtbXlwiXSsiCisgICAgZmkKK30KKworIyB3cml0ZV9z cGVjX3ZlcnNpb24gPG1hY3JvPiA8b2xkPiA8bmV3PiA8bGFiZWw+Cit3cml0ZV9zcGVjX3ZlcnNp b24oKSB7CisgICAgbG9jYWwgbWFjcm89IiQxIiBvbGQ9IiQyIiBuZXc9IiQzIiBsYWJlbD0iJDQi CisgICAgaWYgWyAiJG9sZCIgPSAiJG5ldyIgXTsgdGhlbgorICAgICAgICBpbmZvICIkbWFjcm86 ICRuZXcgKHVuY2hhbmdlZCkiCisgICAgICAgIHJldHVybiAwCisgICAgZmkKKyAgICBzZWQgLWkg LUUgInN8XiVnbG9iYWwoW1s6c3BhY2U6XV0rKSRtYWNyb1tbOnNwYWNlOl1dKy4qfCVnbG9iYWxc MSRtYWNybyAkbmV3fCIgXAorICAgICAgICBmaXJlZm94LnNwZWMgfHwgZGllICJDYW5ub3QgdXBk YXRlICRtYWNybyBpbiBmaXJlZm94LnNwZWMiCisgICAgZ3JlcCAtcUUgIl4lZ2xvYmFsW1s6c3Bh Y2U6XV0rJG1hY3JvW1s6c3BhY2U6XV0rJChzZWQgJ3MvWy5bXCpeJF0vXFwmL2cnIDw8PCIkbmV3 IilcJCIgXAorICAgICAgICBmaXJlZm94LnNwZWMgfHwgZGllICIkbWFjcm8gd2FzIG5vdCB1cGRh dGVkIGluIGZpcmVmb3guc3BlYyIKKyAgICBTUEVDX05PVEVTKz0oIiRsYWJlbCByZXF1aXJlbWVu dCAkb2xkIC0+ICRuZXcgKGRldGVjdGVkIGluIHRoZSB0YXJiYWxsKSIpCisgICAgaW5mbyAiJG1h Y3JvOiAkb2xkIC0+ICRuZXciCit9CisKK2lmICEgc2tpcF9zdGVwIDExOyB0aGVuCisgICAgc3Rl cCAxMSAiRGV0ZWN0aW5nIHRoZSBOU1MvTlNQUiB2ZXJzaW9ucyBmcm9tIHRoZSBGaXJlZm94IHNv dXJjZXMiCisKKyAgICBpZiBbICEgLWQgImZpcmVmb3gtJE5FV19WRVJTSU9OIiBdOyB0aGVuCisg ICAgICAgIGluZm8gIk5vIHVucGFja2VkIHRyZWUgLSByZWFkaW5nIHRoZSBoZWFkZXJzIGZyb20g JE5FV19UQVJCQUxMICh0aGlzIHRha2VzIGEgd2hpbGUpIgorICAgIGZpCisKKyAgICBERVRFQ1RF RF9OU1NfVkVSU0lPTj0kKHJlYWRfYnVuZGxlZF92ZXJzaW9uIFwKKyAgICAgICAgInNlY3VyaXR5 L25zcy9saWIvbnNzL25zcy5oIiAiTlNTX1ZFUlNJT04iKQorICAgIFsgLW4gIiRERVRFQ1RFRF9O U1NfVkVSU0lPTiIgXSBcCisgICAgICAgIHx8IGRpZSAiQ2Fubm90IHJlYWQgTlNTX1ZFUlNJT04g ZnJvbSBzZWN1cml0eS9uc3MvbGliL25zcy9uc3MuaCIKKworICAgIERFVEVDVEVEX05TUFJfVkVS U0lPTj0kKHJlYWRfYnVuZGxlZF92ZXJzaW9uIFwKKyAgICAgICAgIm5zcHJwdWIvcHIvaW5jbHVk ZS9wcmluaXQuaCIgIlBSX1ZFUlNJT04iKQorICAgIFsgLW4gIiRERVRFQ1RFRF9OU1BSX1ZFUlNJ T04iIF0gXAorICAgICAgICB8fCBkaWUgIkNhbm5vdCByZWFkIFBSX1ZFUlNJT04gZnJvbSBuc3By cHViL3ByL2luY2x1ZGUvcHJpbml0LmgiCisKKyAgICAjIFBSX1ZFUlNJT04gbWF5IGNhcnJ5IGEg c3VmZml4LCBlLmcuICI0LjQwIEJldGEiIC0ga2VlcCB0aGUgbnVtYmVyIG9ubHkuCisgICAgREVU RUNURURfTlNQUl9WRVJTSU9OPSIke0RFVEVDVEVEX05TUFJfVkVSU0lPTiUlICp9IgorCisgICAg cHJpbnRmICdcbiVzICAgRmlyZWZveCAlcyBidW5kbGVzIE5TUyAlcyBhbmQgTlNQUiAlcyVzXG5c bicgXAorICAgICAgICAiJENfQk9MRCIgIiRORVdfVkVSU0lPTiIgIiRERVRFQ1RFRF9OU1NfVkVS U0lPTiIgIiRERVRFQ1RFRF9OU1BSX1ZFUlNJT04iICIkQ19PRkYiCisKKyAgICB3cml0ZV9zcGVj X3ZlcnNpb24gbnNzX3ZlcnNpb24gICIkT0xEX05TU19WRVJTSU9OIiAgIiRERVRFQ1RFRF9OU1Nf VkVSU0lPTiIgIE5TUworICAgIHdyaXRlX3NwZWNfdmVyc2lvbiBuc3ByX3ZlcnNpb24gIiRPTERf TlNQUl9WRVJTSU9OIiAiJERFVEVDVEVEX05TUFJfVkVSU0lPTiIgTlNQUgorICAgIE5TU19WRVJT SU9OPSIkREVURUNURURfTlNTX1ZFUlNJT04iCisgICAgTlNQUl9WRVJTSU9OPSIkREVURUNURURf TlNQUl9WRVJTSU9OIgorCisgICAgaW5mbyAiQ2xlYW5pbmcgdXAgdGhlIHVucGFja2VkIHRyZWUi CisgICAgcm0gLXJmICJmaXJlZm94LSRORVdfVkVSU0lPTi8iCisgICAgb2sgIk5TUy9OU1BSIHZl cnNpb25zIHdyaXR0ZW4gdG8gZmlyZWZveC5zcGVjLiIKK2Vsc2UKKyAgICBybSAtcmYgImZpcmVm b3gtJE5FV19WRVJTSU9OLyIKK2ZpCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTdGVwIDEy OiBMb2NhbCBidWlsZCAob3B0aW9uYWwpCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworaWYgISBz a2lwX3N0ZXAgMTI7IHRoZW4KKyAgICBpZiBbICIkRE9fTE9DQUxfQlVJTEQiIC1lcSAwIF0gJiYg WyAiJEFTU1VNRV9ZRVMiIC1lcSAwIF07IHRoZW4KKyAgICAgICAgcHJpbnRmICdcbicKKyAgICAg ICAgY29uZmlybSAiUnVuIGEgbG9jYWwgYnVpbGQgd2l0aCAnZmVkcGtnIGxvY2FsJz8gSXQgdHlw aWNhbGx5IHRha2VzIDEtMiBob3Vycy4iIFwKKyAgICAgICAgICAgICYmIERPX0xPQ0FMX0JVSUxE PTEKKyAgICBmaQorICAgIGlmIFsgIiRET19MT0NBTF9CVUlMRCIgLWVxIDEgXTsgdGhlbgorICAg ICAgICBzdGVwIDEyICJSdW5uaW5nIGEgbG9jYWwgYnVpbGQiCisgICAgICAgIExPQ0FMX0xPRz0k KG1rdGVtcCAtdCBmaXJlZm94LWxvY2FsLVhYWFhYWC5sb2cpCisgICAgICAgIGlmIHJ1biBmZWRw a2cgbG9jYWwgMj4mMSB8IHRlZSAiJExPQ0FMX0xPRyI7IHRoZW4KKyAgICAgICAgICAgIG9rICJM b2NhbCBidWlsZCBzdWNjZWVkZWQuIgorICAgICAgICAgICAgQlVJTERfU1RBVFVTPSJQQVNTRUQg KGZlZHBrZyBsb2NhbCkiCisgICAgICAgICAgICBybSAtZiAiJExPQ0FMX0xPRyIKKyAgICAgICAg ZWxzZQorICAgICAgICAgICAgcHJpbnRmICdcbiVzTG9jYWwgYnVpbGQgZmFpbGVkLiBSZWxldmFu dCBvdXRwdXQ6JXNcbicgIiRDX1JFRCIgIiRDX09GRiIgPiYyCisgICAgICAgICAgICBncmVwIC1p RSAnZXJyb3I6fE5vIHBhY2thZ2UgLiogZm91bmR8bm90IGZvdW5kfEluc3RhbGxlZCBcKGJ1dCB1 bnBhY2thZ2VkXCknIFwKKyAgICAgICAgICAgICAgICAiJExPQ0FMX0xPRyIgfCB0YWlsIC0zMCA+ JjIKKyAgICAgICAgICAgIHByaW50ZiAnJXNGdWxsIGxvZzogJXMlc1xuJyAiJENfWUVMTE9XIiAi JExPQ0FMX0xPRyIgIiRDX09GRiIgPiYyCisgICAgICAgICAgICBjYXQgPiYyIDw8J0VPRicKKwor VHlwaWNhbCBjYXVzZXM6CisgICogTWlzc2luZyBCdWlsZFJlcXVpcmVzICAtIGFkZCAiQnVpbGRS ZXF1aXJlczogPHBrZz4tZGV2ZWwiIHRvIGZpcmVmb3guc3BlYworICAqIENvbXBpbGUvbGlua2Vy IGVycm9yICAgLSB0aGUgc291cmNlIG5lZWRzIGEgcGF0Y2ggZm9yIHRoZSBuZXcgdXBzdHJlYW0g QVBJCisgICogVW5wYWNrYWdlZCBmaWxlcyAgICAgICAtIGFkanVzdCB0aGUgJWZpbGVzIHNlY3Rp b24gb2YgZmlyZWZveC5zcGVjCisKK0VPRgorICAgICAgICAgICAgZGllICJGaXggdGhlIGJ1aWxk LCB0aGVuIHJlLXJ1bjogJDAgJE5FV19WRVJTSU9OIC0tcmVzdW1lIDEyIgorICAgICAgICBmaQor ICAgIGVsc2UKKyAgICAgICAgaW5mbyAiU2tpcHBpbmcgdGhlIGxvY2FsIGJ1aWxkLiIKKyAgICBm aQorZmkKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFN0ZXAgMTM6IENvbW1pdCB0aGUgdXBk YXRlCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworaWYgISBza2lwX3N0ZXAgMTM7IHRoZW4KKyAg ICBzdGVwIDEzICJDb21taXR0aW5nIHRoZSB1cGRhdGUiCisgICAgcnVuIGdpdCBhZGQgZmlyZWZv eC5zcGVjIHNvdXJjZXMgfHwgZGllICJnaXQgYWRkIGZhaWxlZCIKKworICAgICMgUGF0Y2ggZmls ZXMgdG91Y2hlZCBieSBoYW5kIChyZWJhc2VkL2Ryb3BwZWQpIGFyZSBzdGFnZWQgdG9vLCBidXQg bmV2ZXIKKyAgICAjIGJ1aWxkIGFydGlmYWN0cy4KKyAgICBtYXBmaWxlIC10IENIQU5HRURfUEFU Q0hFUyA8IDwoZ2l0IHN0YXR1cyAtLXBvcmNlbGFpbiAtLSAnKi5wYXRjaCcgJyouZGlmZicgXAor ICAgICAgICB8IGF3ayAne3ByaW50ICRORn0nKQorICAgIGlmIFsgIiR7I0NIQU5HRURfUEFUQ0hF U1tAXX0iIC1ndCAwIF07IHRoZW4KKyAgICAgICAgaW5mbyAiTW9kaWZpZWQgcGF0Y2ggZmlsZXM6 ICR7Q0hBTkdFRF9QQVRDSEVTWypdfSIKKyAgICAgICAgaWYgY29uZmlybSAiU3RhZ2UgdGhlc2Ug cGF0Y2ggZmlsZXMgYXMgcGFydCBvZiB0aGUgdXBkYXRlPyIgeTsgdGhlbgorICAgICAgICAgICAg cnVuIGdpdCBhZGQgLUEgLS0gIiR7Q0hBTkdFRF9QQVRDSEVTW0BdfSIgfHwgZGllICJnaXQgYWRk IG9mIHBhdGNoZXMgZmFpbGVkIgorICAgICAgICBmaQorICAgIGZpCisKKyAgICBwcmludGYgJ1xu JXNTdGFnZWQgY2hhbmdlczolc1xuJyAiJENfQk9MRCIgIiRDX09GRiIKKyAgICBnaXQgc3RhdHVz IC0tc2hvcnQgLS11bnRyYWNrZWQtZmlsZXM9bm8KKworICAgIHJ1biBmZWRwa2cgY29tbWl0IC1j IHx8IGRpZSAiZmVkcGtnIGNvbW1pdCBmYWlsZWQiCisgICAgb2sgIkNvbW1pdHRlZDogJChnaXQg bG9nIC0xIC0tcHJldHR5PSVzKSIKK2ZpCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTdGVw IDE0OiBQcmVzZW50IHN1bW1hcnkgYW5kIHB1c2gKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitz dGVwIDE0ICJVcGRhdGUgc3VtbWFyeSIKKworY2F0IDw8RU9GCisKKyR7Q19CT0xEfUZpcmVmb3gg VXBkYXRlIFN1bW1hcnk6ICRPTERfVkVSU0lPTiAtPiAkTkVXX1ZFUlNJT04ke0NfT0ZGfQorCisg IFZlcnNpb246ICAgICAgICRPTERfVkVSU0lPTiAtPiAkTkVXX1ZFUlNJT04KKyAgQnJhbmNoOiAg ICAgICAgcmF3aGlkZQorICBNb3ppbGxhIGJ1aWxkOiAkQlVJTERfVkVSU0lPTgorICBCdWlsZCBz dGF0dXM6ICAkQlVJTERfU1RBVFVTCisKKyAgU291cmNlczoKKyAgICAtICRORVdfVEFSQkFMTAor ICAgIC0gJExBTkdQQUNLX0ZJTEUKK0VPRgorCitpZiBbIC1uICIkREVURUNURURfTlNTX1ZFUlNJ T04kREVURUNURURfTlNQUl9WRVJTSU9OIiBdOyB0aGVuCisgICAgZWNobworICAgIGVjaG8gIiAg TlNTL05TUFIgKGRldGVjdGVkIGluIHRoZSBGaXJlZm94IHNvdXJjZXMpOiIKKyAgICBlY2hvICIg ICAgLSBOU1M6ICAkT0xEX05TU19WRVJTSU9OIC0+ICRERVRFQ1RFRF9OU1NfVkVSU0lPTiIKKyAg ICBlY2hvICIgICAgLSBOU1BSOiAkT0xEX05TUFJfVkVSU0lPTiAtPiAkREVURUNURURfTlNQUl9W RVJTSU9OIgorZmkKKworaWYgWyAiJHsjRFJPUFBFRF9QQVRDSEVTW0BdfSIgLWd0IDAgXTsgdGhl bgorICAgIGVjaG8KKyAgICBlY2hvICIgIERyb3BwZWQgcGF0Y2hlczoiCisgICAgcHJpbnRmICcg ICAgLSAlc1xuJyAiJHtEUk9QUEVEX1BBVENIRVNbQF19IgorZmkKKworaWYgWyAiJHsjU1BFQ19O T1RFU1tAXX0iIC1ndCAwIF07IHRoZW4KKyAgICBlY2hvCisgICAgZWNobyAiICBTUEVDIGNoYW5n ZXM6IgorICAgIHByaW50ZiAnICAgIC0gJXNcbicgIiR7U1BFQ19OT1RFU1tAXX0iCitmaQorCitl Y2hvCitlY2hvICIgIENvbW1pdDoiCitnaXQgbG9nIC0xIC0tcHJldHR5PScgICAgJWggJXMnCitl Y2hvCisKK2lmIFsgIiRET19QVVNIIiAtZXEgMCBdICYmIFsgIiRBU1NVTUVfWUVTIiAtZXEgMCBd OyB0aGVuCisgICAgY29uZmlybSAiUHVzaCB0aGUgY29tbWl0IHRvIHJhd2hpZGUgb24gRmVkb3Jh IGRpc3QtZ2l0PyIgJiYgRE9fUFVTSD0xCitmaQorCitpZiBbICIkRE9fUFVTSCIgLWVxIDEgXTsg dGhlbgorICAgIGNoZWNrX2tlcmJlcm9zCisgICAgcnVuIGZlZHBrZyBwdXNoIHx8IGRpZSAiZmVk cGtnIHB1c2ggZmFpbGVkIgorICAgIG9rICJQdXNoZWQgdG8gRmVkb3JhIGRpc3QtZ2l0IChyYXdo aWRlKS4iCisgICAgaW5mbyAiU3RhcnQgYSBidWlsZCB3aXRoOiBmZWRwa2cgYnVpbGQiCitlbHNl CisgICAgb2sgIlVwZGF0ZSBwcmVwYXJlZCBidXQgbm90IHB1c2hlZC4gUHVzaCBsYXRlciB3aXRo OiBmZWRwa2cgcHVzaCIKK2ZpCgpkaWZmIC0tZ2l0IGEvZmlyZWZveC5zcGVjIGIvZmlyZWZveC5z cGVjCmluZGV4IDg3YjAwYTIuLjRhZjI4YzIgMTAwNjQ0Ci0tLSBhL2ZpcmVmb3guc3BlYworKysg Yi9maXJlZm94LnNwZWMKQEAgLTE4OSwxNCArMTg5LDE0IEBAIEV4Y2x1ZGVBcmNoOiBpNjg2CiAK IFN1bW1hcnk6ICAgICAgICBNb3ppbGxhIEZpcmVmb3ggV2ViIGJyb3dzZXIKIE5hbWU6ICAgICAg ICAgICBmaXJlZm94Ci1WZXJzaW9uOiAgICAgICAgMTU2LjAKLVJlbGVhc2U6ICAgICAgICAyJXs/ cHJlX3RhZ30lez9kaXN0fQorVmVyc2lvbjogICAgICAgIDE1Ni4wLjEKK1JlbGVhc2U6ICAgICAg ICAxJXs/ZGlzdH0KIFVSTDogICAgICAgICAgICBodHRwczovL3d3dy5tb3ppbGxhLm9yZy9maXJl Zm94LwogIyBBdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCBmcm9tIG9sZCBmb3JtYXQ6IE1QTHYxLjEg b3IgR1BMdjIrIG9yIExHUEx2MisgLSByZXZpZXcgaXMgaGlnaGx5IHJlY29tbWVuZGVkLgogTGlj ZW5zZTogICAgICAgIExpY2Vuc2VSZWYtQ2FsbGF3YXktTVBMdjEuMSBPUiBHUEwtMi4wLW9yLWxh dGVyIE9SIExpY2Vuc2VSZWYtQ2FsbGF3YXktTEdQTHYyKwogU291cmNlMDogICAgICAgIGh0dHBz Oi8vYXJjaGl2ZS5tb3ppbGxhLm9yZy9wdWIvZmlyZWZveC9yZWxlYXNlcy8le3ZlcnNpb259JXs/ cHJlX3ZlcnNpb259L3NvdXJjZS9maXJlZm94LSV7dmVyc2lvbn0lez9wcmVfdmVyc2lvbn0uc291 cmNlLnRhci54egogJWlmICV7d2l0aCBsYW5ncGFja3N9Ci1Tb3VyY2UxOiAgICAgICAgZmlyZWZv eC1sYW5ncGFja3MtJXt2ZXJzaW9ufSV7P3ByZV92ZXJzaW9ufS0yMDI2MDkxMC50YXIueHoKK1Nv dXJjZTE6ICAgICAgICBmaXJlZm94LWxhbmdwYWNrcy0le3ZlcnNpb259JXs/cHJlX3ZlcnNpb259 LTIwMjYwOTIzLnRhci54egogJWVuZGlmCiBTb3VyY2UyOiAgICAgICAgY2JpbmRnZW4tdmVuZG9y LnRhci54egogU291cmNlMzogICAgICAgIGR1bXBfc3ltcy12ZW5kb3IudGFyLnh6CkBAIC0yNjMs NyArMjYzLDYgQEAgUGF0Y2g0MDI6ICAgICAgICBEMzI0ODcwLjE3ODkxMTY5NjMuZGlmZgogUGF0 Y2g0MDM6ICAgICAgICBEMzI0ODcxLjE3ODkxMTY5NzIuZGlmZgogUGF0Y2g0MDQ6ICAgICAgICBE MzI0ODc2LjE3ODkxMTY4OTkuZGlmZgogUGF0Y2g0MDU6ICAgICAgICBEMzI0ODc3LjE3ODkxMTcw MDAuZGlmZgotUGF0Y2g0MDY6ICAgICAgICBEMzI2ODQwLjE3ODk3MzI3MDMuZGlmZgogCiAjIFBH Ty9MVE8gcGF0Y2hlcwogUGF0Y2g2MDA6ICAgICAgICBwZ28ucGF0Y2gKQEAgLTU1Miw3ICs1NTEs NiBAQCBjYXQgJXtTT1VSQ0U0OX0gfCBzZWQgLWUgInN8TElCQ0xBTkdfUlRfUExBQ0VIT0xERVJ8 YHB3ZGAvd2FzaS1zZGstMzAvYnVpbGQvc3lzcgogJXBhdGNoIC1QNDAzIC1wMSAtYiAuRDMyNDg3 MQogJXBhdGNoIC1QNDA0IC1wMSAtYiAuRDMyNDg3NgogJXBhdGNoIC1QNDA1IC1wMSAtYiAuRDMy NDg3NwotJXBhdGNoIC1QNDA2IC1wMSAtYiAuRDMyNjg0MAogCiAjIFBHTyBwYXRjaGVzCiAlaWYg JXtidWlsZF93aXRoX3Bnb30KQEAgLTEyMDgsNiArMTIwNiw5IEBAIGZpCiAjLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAKICVjaGFuZ2Vsb2cKKyogV2VkIFNlcCAyMyAyMDI2IE1hcnRpbiBTdHJhbnNreSA8c3RyYW5z a3lAcmVkaGF0LmNvbT4gLSAxNTYuMC4xLTEKKy0gVXBkYXRlIHRvIGxhdGVzdCB1cHN0cmVhbSAo MTU2LjAuMSkKKwogKiBUaHUgU2VwIDE3IDIwMjYgTWFydGluIFN0cmFuc2t5IDxzdHJhbnNreUBy ZWRoYXQuY29tPiAtIDE1Ni4wLTIKIC0gRGlzYWJsZWQgc2Vzc2lvbiByZXN0b3JlIG9uIEdub21l LgogCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggZTQ1MzkyMy4uZjE2YWVk ZiAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xLDggKzEsOCBAQAorU0hB NTEyIChmaXJlZm94LTE1Ni4wLjEuc291cmNlLnRhci54eikgPSA4MGEzMmE3OTI2OGI2NzIyMDZm NTQ3N2NhNmJmZGU2MjBjYjc0MTliMjdhYWMwOTBlMDFmMDZkZjA2OTkwZWUwYmJkODFiYjVjNGFh NzhhYzFkMGVkYjI2YjEzM2IxYzZmYTExY2I2NTIyNDQ1ZWNjZDcwYzgyZTcxOWEyNGQ1YgorU0hB NTEyIChmaXJlZm94LWxhbmdwYWNrcy0xNTYuMC4xLTIwMjYwOTIzLnRhci54eikgPSAyMWY0OWQ0 MjAzMzU1NGFlZTU0MGY4MzY2MWI4ODEzZjIwYjI4NjNlZWU1MGNkYjhhMTg1YTI1YzIxNTZjODk1 NGRmNTNmYjRhNjhhZTEwYjA5MDY3NDYyYWIzMjNiZGMwYjY3NDdhNGIwY2U0ZDYxMjZhYTBlNzky ZDY2NmIzOAogU0hBNTEyIChtb2NoaXRlc3QtcHl0aG9uLnRhci5neikgPSAwODliMTU5MzA2OGI3 NmY0NTcyYWYwMDg2ZWFjY2Y1MmE2YTEyOTliZmZmYjU4NTkzMjA2ZDE5YmYwMjFhZTM4MWYyMzgw YmJmZWI0MzcxNTg2Y2Q1MzcwNmZmNmRkZTNkMjQwMjM4YjJjYWYxOWI5NmM1N2RmYzJmNDUyNGUz NgogU0hBNTEyIChkdW1wX3N5bXMtdmVuZG9yLnRhci54eikgPSBlZTBlYTUyYWFjNzgxYjhkZDQ4 OTM2YTNkMTNiMTQwYmQ3MjVhNDhjYzQ4OGQyMzY5M2I2OGVkYmUzYmNmYmE1NzIzMDIyZGJhM2Mz ODQ5ZDBkYTFiYWNmMGUzN2RkZDMwN2NmYzU2MzA0MTU5ZjkxYjcxNDk1Y2U4YTA4YjU0YQogU0hB NTEyICh3YXNpLXNkay0zMC50YXIuZ3opID0gYzA4YjJkZGI1ZDVjZjViNDhjNWJhYmE4MGM2NWM0 ODVhMzA0OWI0NzNkMmYyZGQyYmFiYjQwMjI0M2E3NzA5NjMzYzY5NWRmZWU1ZjljYmJhNTJmYTI1 YWQ4MzJmMDJmM2I3M2Q5YmExMTQxYzRkNDRkYzMwZGI3MDI5MmEwNGQKIFNIQTUxMiAod2FzbS1j b21wb25lbnQtbGQtdmVuZG9yLnRhci54eikgPSAzNTZkYzA5NTAyMDUyMTk4ZTk5NzQ1MTk5Yjhl MTBkODAzZGE5NDkyY2UzNGU0MWM2YWUwMmNiODY3NGZjYzY0MGNkNWVhZmU2OGEwM2U0ZTYxYzk4 NGY3ZjZjN2M4ZTVjZGMzNTUxMjUxNTU2ZmIzYWU0NjMxYTM0MDM1OGZjMAogU0hBNTEyICh3YXNt LXRvb2xzLXZlbmRvci50YXIueHopID0gNTAyYmUwMDIwZDE4MjhiNzUxMjhlNjEyN2ViN2JkNzc4 MzVjY2ViZTRlNWMxNzlhYmMzOGQ4ODFiYjFkMWY4ZTE1ZDIyODQ3OTZjZDgzNTc0NTM2YzdjOTE5 YTNlODIwZTA5NTJkMzIzZThhMzk3N2U5NGJkZWY4OWNkODI2NmEKIFNIQTUxMiAoY2JpbmRnZW4t dmVuZG9yLnRhci54eikgPSBkZmVmYzNlYzRjN2I3ZDlmZTFiMDI0Mjg5ODY2YzVhOTE5NDc1Yjhi NzMzZTA5ZWYxNzUwZDhkMjk1YmE3ODk2OWJhMTg3MDg5ZGJjMTUxZDkxNzc5YmY1NmEyZDc4OTg3 OTdjM2QxOWRiNmUyZDFjYjg0OTI5NzUwZTg2NjE3ZAotU0hBNTEyIChmaXJlZm94LTE1Ni4wLnNv dXJjZS50YXIueHopID0gMDQ2MzMwNGEwODk4NjcwZDI0ODExNGY2NmY3YzIzNTE2NmFlMjM5N2Mz OTg5YTdjODc4Yzk2ZjBjNTg5ZmJiYmExZjFjODc0MzJkYWEyMjYzM2I5ZmFkZDk0Mzk0YWRmMWRj MzdmMGU2N2QyMmIwNjZjNzVlZmU1ZWVhZDc1Y2UKLVNIQTUxMiAoZmlyZWZveC1sYW5ncGFja3Mt MTU2LjAtMjAyNjA5MTAudGFyLnh6KSA9IDYwMTIzYjk1YzBhOTBhZmQ1NzI0OWZhZWRiZmI1OGJj Njg3ZDE2MmI3Mzg5NzBhYThkYjRkMjk4NTM1NWFjOTE3N2RlM2Y4N2UzN2MxZjYzNTI4MjQ5YmIx NDkwMzcwNjBjZjEzMTNiM2M1NTI4ZWEwMjE5MTk5ZjhmOGEyYzYyCgpkaWZmIC0tZ2l0IGEvd2Fz aS5wYXRjaCBiL3dhc2kucGF0Y2gKaW5kZXggMTU4NmUzYi4uYzJhOTU1ZSAxMDA2NDQKLS0tIGEv d2FzaS5wYXRjaAorKysgYi93YXNpLnBhdGNoCkBAIC02LDcgKzYsNyBAQCBkaWZmIC11cCBmaXJl Zm94LTEzNC4wLjEvdG9vbGtpdC9tb3ouY29uZmlndXJlLndhc2kgZmlyZWZveC0xMzQuMC4xL3Rv b2xraXQvbW96LgogICAgICAgICAgaWYgd2FzaV9zeXNyb290OgogICAgICAgICAgICAgIGxvZy5p bmZvKCJVc2luZyB3YXNpIHN5c3Jvb3QgaW4gJXMiLCB3YXNpX3N5c3Jvb3QpCiAtICAgICAgICAg ICAgcmV0dXJuIFsiLS1zeXNyb290PSVzIiAlIHdhc2lfc3lzcm9vdF0KLSsgICAgICAgICAgICBy ZXR1cm4gWyItLXN5c3Jvb3Q9JXMiICUgd2FzaV9zeXNyb290LCAiLW5vZGVmYXVsdGxpYnMiLCAg Ii1sYyIsICItbHdhc2ktZW11bGF0ZWQtcHJvY2Vzcy1jbG9ja3MiLCAiLWxjKysiLCAiLWxjKyth YmkiLCAiL2hvbWUva29tYXQvQ1ZTL2ZpcmVmb3gvZmlyZWZveC0xNTYuMC1idWlsZC9maXJlZm94 LTE1Ni4wL3dhc2ktc2RrLTMwL2J1aWxkL3N5c3Jvb3QvaW5zdGFsbC93YXNpLXJlc291cmNlLWRp ci9saWIvd2FzbTMyLXVua25vd24td2FzaXAxL2xpYmNsYW5nX3J0LmJ1aWx0aW5zLmEiXQorKyAg ICAgICAgICAgIHJldHVybiBbIi0tc3lzcm9vdD0lcyIgJSB3YXNpX3N5c3Jvb3QsICItbm9kZWZh dWx0bGlicyIsICAiLWxjIiwgIi1sd2FzaS1lbXVsYXRlZC1wcm9jZXNzLWNsb2NrcyIsICItbGMr KyIsICItbGMrK2FiaSIsICIvcmFpZC9DVlMvZmlyZWZveC9maXJlZm94LTE1Ni4wLjEtYnVpbGQv ZmlyZWZveC0xNTYuMC4xL3dhc2ktc2RrLTMwL2J1aWxkL3N5c3Jvb3QvaW5zdGFsbC93YXNpLXJl c291cmNlLWRpci9saWIvd2FzbTMyLXVua25vd24td2FzaXAxL2xpYmNsYW5nX3J0LmJ1aWx0aW5z LmEiXQogICAgICAgICAgcmV0dXJuIFtdCiAgCiAgICAgIHNldF9jb25maWcoIldBU0lfU1lTUk9P VCIsIHdhc2lfc3lzcm9vdCkK