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: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: Implement MiniDebugInfo F-18 Feature consumer (Alexander Larsson, BZ 834068). Date: Thu, 23 Jul 2026 18:30:33 GMT Message-ID: <178483143320.1.14414344019298257123.rpms-gdb-c501c4bdb1f4@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: c501c4bdb1f4b298f507ad9a7f1c5bf0596089f8 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGZpeC1kdXAtcGF0Y2gKQ29tbWl0IDogYzUwMWM0YmRiMWY0YjI5OGY1MDdhZDlhN2YxYzViZjA1 OTYwODlmOApBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KRGF0ZSAgIDogMjAxMi0wNy0wNVQyMzoxODoyNCswMjowMApTdGF0cyAgOiArMTA0OS8tMSBp biAyIGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9n ZGIvYy9jNTAxYzRiZGIxZjRiMjk4ZjUwN2FkOWE3ZjFjNWJmMDU5NjA4OWY4P2JyYW5jaD1maXgt ZHVwLXBhdGNoCgpMb2c6CkltcGxlbWVudCBNaW5pRGVidWdJbmZvIEYtMTggRmVhdHVyZSBjb25z dW1lciAoQWxleGFuZGVyIExhcnNzb24sIEJaIDgzNDA2OCkuCgotLS0KZGlmZiAtLWdpdCBhL2dk Yi1taW5pZGVidWdpbmZvLnBhdGNoIGIvZ2RiLW1pbmlkZWJ1Z2luZm8ucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDYwYTY2YgotLS0gL2Rldi9udWxsCisrKyBiL2dk Yi1taW5pZGVidWdpbmZvLnBhdGNoCkBAIC0wLDAgKzEsMTA0MCBAQAoraHR0cDovL2ZlZG9yYXBy b2plY3Qub3JnL3dpa2kvRmVhdHVyZXMvTWluaURlYnVnSW5mbworaHR0cHM6Ly9idWd6aWxsYS5y ZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD04MzQwNjgKKworUGF0Y2ggYnkgQWxleGFuZGVyIExh cnNzb24uCitSZXZpZXcvbW9kaWZpY2F0aW9ucyBhbmQgdGVzdGZpbGUgYnkgSmFuIEtyYXRvY2h2 aWwuCisKK0luZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9NYWtlZmlsZS5pbgorPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0tIGdkYi03LjQuNTAuMjAxMjA3MDMub3JpZy9nZGIvTWFrZWZpbGUuaW4JMjAxMi0w Ny0wNSAyMjo0NzozOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy40LjUwLjIwMTIwNzAzL2dk Yi9NYWtlZmlsZS5pbgkyMDEyLTA3LTA1IDIyOjQ3OjQ1LjQ3NTUwOTM3MiArMDIwMAorQEAgLTE1 MSw2ICsxNTEsOSBAQCBSRUFETElORV9DRkxBR1MgPSBAUkVBRExJTkVfQ0ZMQUdTQAorICMgV2hl cmUgaXMgZXhwYXQ/ICBUaGlzIHdpbGwgYmUgZW1wdHkgaWYgZXhwYXQgd2FzIG5vdCBhdmFpbGFi bGUuCisgTElCRVhQQVQgPSBATElCRVhQQVRACisgCisrIyBXaGVyZSBpcyBsem1hPyAgVGhpcyB3 aWxsIGJlIGVtcHR5IGlmIGx6bWEgd2FzIG5vdCBhdmFpbGFibGUuCisrTElCTFpNQSA9IEBMSUJM Wk1BQAorKworIFdBUk5fQ0ZMQUdTID0gQFdBUk5fQ0ZMQUdTQAorIFdFUlJPUl9DRkxBR1MgPSBA V0VSUk9SX0NGTEFHU0AKKyBHREJfV0FSTl9DRkxBR1MgPSAkKFdBUk5fQ0ZMQUdTKQorQEAgLTQ2 Nyw3ICs0NzAsNyBAQCBJTlRFUk5BTF9MREZMQUdTID0gJChDRkxBR1MpICQoR0xPQkFMX0NGCisg IyBMSUJJQkVSVFkgYXBwZWFycyB0d2ljZSBvbiBwdXJwb3NlLgorIENMSUJTID0gJChTSU0pICQo UkVBRExJTkUpICQoT1BDT0RFUykgJChCRkQpICQoSU5UTCkgJChMSUJJQkVSVFkpICQoTElCREVD TlVNQkVSKSBcCisgCSQoWE1fQ0xJQlMpICQoTkFUX0NMSUJTKSAkKEdEQlRLTElCUykgQExJQlNA IEBQWVRIT05fTElCU0AgXAorLQkkKExJQkVYUEFUKSBcCisrCSQoTElCRVhQQVQpICQoTElCTFpN QSkgXAorIAkkKExJQklCRVJUWSkgJChXSU4zMkxJQlMpICQoTElCR05VKQorIENERVBTID0gJChY TV9DREVQUykgJChOQVRfQ0RFUFMpICQoU0lNKSAkKEJGRCkgJChSRUFETElORV9ERVBTKSBcCisg CSQoT1BDT0RFUykgJChJTlRMX0RFUFMpICQoTElCSUJFUlRZKSAkKENPTkZJR19ERVBTKSAkKExJ QkdOVSkKK0luZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9jb25maWcuaW4KKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSBnZGItNy40LjUwLjIwMTIwNzAzLm9yaWcvZ2RiL2NvbmZpZy5pbgkyMDEyLTA3LTA1 IDIyOjQ3OjQwLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2Nv bmZpZy5pbgkyMDEyLTA3LTA1IDIyOjQ3OjQ1LjQ3NjUwOTM3MSArMDIwMAorQEAgLTE5OCw2ICsx OTgsOSBAQAorIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbGliaWNvbnZsaXN0JyBm dW5jdGlvbi4gKi8KKyAjdW5kZWYgSEFWRV9MSUJJQ09OVkxJU1QKKyAKKysvKiBEZWZpbmUgaWYg eW91IGhhdmUgdGhlIGx6bWEgbGlicmFyeS4gKi8KKysjdW5kZWYgSEFWRV9MSUJMWk1BCisrCisg LyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBtJyBsaWJyYXJ5ICgtbG0pLiAqLworICN1 bmRlZiBIQVZFX0xJQk0KKyAKK0luZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9jb25maWd1 cmUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSBnZGItNy40LjUwLjIwMTIwNzAzLm9yaWcvZ2RiL2NvbmZpZ3Vy ZQkyMDEyLTA3LTA1IDIyOjQ3OjQwLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjQuNTAuMjAx MjA3MDMvZ2RiL2NvbmZpZ3VyZQkyMDEyLTA3LTA1IDIyOjQ3OjQ1LjQ4NTUwOTM2MyArMDIwMAor QEAgLTY0MSw2ICs2NDEsOSBAQCBUQ0xfVkVSU0lPTgorIFdJTjMyTERBUFAKKyBHVUlfQ0ZMQUdT X1gKKyBMSUJHVUkKKytMVExJQkxaTUEKKytMSUJMWk1BCisrSEFWRV9MSUJMWk1BCisgV0lOMzJM SUJTCisgU0VSX0hBUkRXSVJFCisgV0VSUk9SX0NGTEFHUworQEAgLTgxMyw2ICs4MTYsOCBAQCB3 aXRoX3N5c3RlbV9nZGJpbml0CisgZW5hYmxlX3dlcnJvcgorIGVuYWJsZV9idWlsZF93YXJuaW5n cworIGVuYWJsZV9nZGJfYnVpbGRfd2FybmluZ3MKKyt3aXRoX2x6bWEKKyt3aXRoX2xpYmx6bWFf cHJlZml4Cisgd2l0aF90Y2wKKyB3aXRoX3RrCisgd2l0aF94CitAQCAtMTUzMiw2ICsxNTM3LDkg QEAgT3B0aW9uYWwgUGFja2FnZXM6CisgICAtLXdpdGgtc3lzcm9vdFs9RElSXSAgICBzZWFyY2gg Zm9yIHVzci9saWIgZXQgYWwgd2l0aGluIERJUgorICAgLS13aXRoLXN5c3RlbS1nZGJpbml0PVBB VEgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9tYXRpY2FsbHkgbG9hZCBhIHN5c3Rl bS13aWRlIGdkYmluaXQgZmlsZQorKyAgLS13aXRoLWx6bWEgICAgICAgICAgICAgc3VwcG9ydCBs em1hIGNvbXByZXNzaW9uIChhdXRvL3llcy9ubykKKysgIC0td2l0aC1saWJsem1hLXByZWZpeFs9 RElSXSAgc2VhcmNoIGZvciBsaWJsem1hIGluIERJUi9pbmNsdWRlIGFuZCBESVIvbGliCisrICAt LXdpdGhvdXQtbGlibHptYS1wcmVmaXggICAgIGRvbid0IHNlYXJjaCBmb3IgbGlibHptYSBpbiBp bmNsdWRlZGlyIGFuZCBsaWJkaXIKKyAgIC0td2l0aC10Y2wgICAgICAgICAgICAgIGRpcmVjdG9y eSBjb250YWluaW5nIHRjbCBjb25maWd1cmF0aW9uICh0Y2xDb25maWcuc2gpCisgICAtLXdpdGgt dGsgICAgICAgICAgICAgICBkaXJlY3RvcnkgY29udGFpbmluZyB0ayBjb25maWd1cmF0aW9uICh0 a0NvbmZpZy5zaCkKKyAgIC0td2l0aC14ICAgICAgICAgICAgICAgIHVzZSB0aGUgWCBXaW5kb3cg U3lzdGVtCitAQCAtMTMxNTEsNiArMTMxNTksNDkyIEBAIExJQlM9JE9MRF9MSUJTCisgIyBBZGQg YW55IGhvc3Qtc3BlY2lmaWMgb2JqZWN0cyB0byBHREIuCisgQ09ORklHX09CUz0iJHtDT05GSUdf T0JTfSAke2dkYl9ob3N0X29ic30iCisgCisrIyBJZiBidWlsZGluZyBvbiBFTEYsIGxvb2sgZm9y IGx6bWEgc3VwcG9ydCBmb3IgZW1iZWRkZWQgY29tcHJlc3NlZCBkZWJ1ZyBpbmZvLgorK2lmIHRl c3QgJGdkYl9jdl92YXJfZWxmID0geWVzOyB0aGVuCisrCisrIyBDaGVjayB3aGV0aGVyIC0td2l0 aC1sem1hIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfbHptYStzZXR9IiA9IHNldDsgdGhl biA6CisrICB3aXRodmFsPSR3aXRoX2x6bWE7CisrZWxzZQorKyAgd2l0aF9sem1hPWF1dG8KKytm aQorKworKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu ZyB3aGV0aGVyIHRvIHVzZSBsem1hIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVy IHRvIHVzZSBsem1hLi4uICIgPiY2OyB9CisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IHJlc3VsdDogJHdpdGhfbHptYSIgPiY1CisrJGFzX2VjaG8gIiR3aXRoX2x6 bWEiID4mNjsgfQorKworKyAgaWYgdGVzdCAiJHt3aXRoX2x6bWF9IiAhPSBubzsgdGhlbgorKwor KworKworKworKworKworKworKworKyAgICB1c2VfYWRkaXRpb25hbD15ZXMKKysKKysgIGFjbF9z YXZlX3ByZWZpeD0iJHByZWZpeCIKKysgIHByZWZpeD0iJGFjbF9maW5hbF9wcmVmaXgiCisrICBh Y2xfc2F2ZV9leGVjX3ByZWZpeD0iJGV4ZWNfcHJlZml4IgorKyAgZXhlY19wcmVmaXg9IiRhY2xf ZmluYWxfZXhlY19wcmVmaXgiCisrCisrICAgIGV2YWwgYWRkaXRpb25hbF9pbmNsdWRlZGlyPVwi JGluY2x1ZGVkaXJcIgorKyAgICBldmFsIGFkZGl0aW9uYWxfbGliZGlyPVwiJGxpYmRpclwiCisr CisrICBleGVjX3ByZWZpeD0iJGFjbF9zYXZlX2V4ZWNfcHJlZml4IgorKyAgcHJlZml4PSIkYWNs X3NhdmVfcHJlZml4IgorKworKworKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtbGlibHptYS1wcmVm aXggd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7d2l0aF9saWJsem1hX3ByZWZpeCtzZXR9IiA9IHNl dDsgdGhlbiA6CisrICB3aXRodmFsPSR3aXRoX2xpYmx6bWFfcHJlZml4OworKyAgICBpZiB0ZXN0 ICJYJHdpdGh2YWwiID0gIlhubyI7IHRoZW4KKysgICAgICB1c2VfYWRkaXRpb25hbD1ubworKyAg ICBlbHNlCisrICAgICAgaWYgdGVzdCAiWCR3aXRodmFsIiA9ICJYIjsgdGhlbgorKworKyAgYWNs X3NhdmVfcHJlZml4PSIkcHJlZml4IgorKyAgcHJlZml4PSIkYWNsX2ZpbmFsX3ByZWZpeCIKKysg IGFjbF9zYXZlX2V4ZWNfcHJlZml4PSIkZXhlY19wcmVmaXgiCisrICBleGVjX3ByZWZpeD0iJGFj bF9maW5hbF9leGVjX3ByZWZpeCIKKysKKysgICAgICAgICAgZXZhbCBhZGRpdGlvbmFsX2luY2x1 ZGVkaXI9XCIkaW5jbHVkZWRpclwiCisrICAgICAgICAgIGV2YWwgYWRkaXRpb25hbF9saWJkaXI9 XCIkbGliZGlyXCIKKysKKysgIGV4ZWNfcHJlZml4PSIkYWNsX3NhdmVfZXhlY19wcmVmaXgiCisr ICBwcmVmaXg9IiRhY2xfc2F2ZV9wcmVmaXgiCisrCisrICAgICAgZWxzZQorKyAgICAgICAgYWRk aXRpb25hbF9pbmNsdWRlZGlyPSIkd2l0aHZhbC9pbmNsdWRlIgorKyAgICAgICAgYWRkaXRpb25h bF9saWJkaXI9IiR3aXRodmFsL2xpYiIKKysgICAgICBmaQorKyAgICBmaQorKworK2ZpCisrCisr ICAgICAgTElCTFpNQT0KKysgIExUTElCTFpNQT0KKysgIElOQ0xaTUE9CisrICBycGF0aGRpcnM9 CisrICBsdHJwYXRoZGlycz0KKysgIG5hbWVzX2FscmVhZHlfaGFuZGxlZD0KKysgIG5hbWVzX25l eHRfcm91bmQ9J2x6bWEgJworKyAgd2hpbGUgdGVzdCAtbiAiJG5hbWVzX25leHRfcm91bmQiOyBk bworKyAgICBuYW1lc190aGlzX3JvdW5kPSIkbmFtZXNfbmV4dF9yb3VuZCIKKysgICAgbmFtZXNf bmV4dF9yb3VuZD0KKysgICAgZm9yIG5hbWUgaW4gJG5hbWVzX3RoaXNfcm91bmQ7IGRvCisrICAg ICAgYWxyZWFkeV9oYW5kbGVkPQorKyAgICAgIGZvciBuIGluICRuYW1lc19hbHJlYWR5X2hhbmRs ZWQ7IGRvCisrICAgICAgICBpZiB0ZXN0ICIkbiIgPSAiJG5hbWUiOyB0aGVuCisrICAgICAgICAg IGFscmVhZHlfaGFuZGxlZD15ZXMKKysgICAgICAgICAgYnJlYWsKKysgICAgICAgIGZpCisrICAg ICAgZG9uZQorKyAgICAgIGlmIHRlc3QgLXogIiRhbHJlYWR5X2hhbmRsZWQiOyB0aGVuCisrICAg ICAgICBuYW1lc19hbHJlYWR5X2hhbmRsZWQ9IiRuYW1lc19hbHJlYWR5X2hhbmRsZWQgJG5hbWUi CisrICAgICAgICAgICAgICAgICAgICAgICAgdXBwZXJuYW1lPWBlY2hvICIkbmFtZSIgfCBzZWQg LWUgJ3l8YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXouLy18QUJDREVGR0hJSktMTU5PUFFSU1RV VldYWVpfX198J2AKKysgICAgICAgIGV2YWwgdmFsdWU9XCJcJEhBVkVfTElCJHVwcGVybmFtZVwi CisrICAgICAgICBpZiB0ZXN0IC1uICIkdmFsdWUiOyB0aGVuCisrICAgICAgICAgIGlmIHRlc3Qg IiR2YWx1ZSIgPSB5ZXM7IHRoZW4KKysgICAgICAgICAgICBldmFsIHZhbHVlPVwiXCRMSUIkdXBw ZXJuYW1lXCIKKysgICAgICAgICAgICB0ZXN0IC16ICIkdmFsdWUiIHx8IExJQkxaTUE9IiR7TElC TFpNQX0ke0xJQkxaTUE6KyB9JHZhbHVlIgorKyAgICAgICAgICAgIGV2YWwgdmFsdWU9XCJcJExU TElCJHVwcGVybmFtZVwiCisrICAgICAgICAgICAgdGVzdCAteiAiJHZhbHVlIiB8fCBMVExJQkxa TUE9IiR7TFRMSUJMWk1BfSR7TFRMSUJMWk1BOisgfSR2YWx1ZSIKKysgICAgICAgICAgZWxzZQor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoKKysgICAgICAgICAgZmkKKysg ICAgICAgIGVsc2UKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZF9kaXI9Cisr ICAgICAgICAgIGZvdW5kX2xhPQorKyAgICAgICAgICBmb3VuZF9zbz0KKysgICAgICAgICAgZm91 bmRfYT0KKysgICAgICAgICAgaWYgdGVzdCAkdXNlX2FkZGl0aW9uYWwgPSB5ZXM7IHRoZW4KKysg ICAgICAgICAgICBpZiB0ZXN0IC1uICIkc2hsaWJleHQiICYmIHRlc3QgLWYgIiRhZGRpdGlvbmFs X2xpYmRpci9saWIkbmFtZS4kc2hsaWJleHQiOyB0aGVuCisrICAgICAgICAgICAgICBmb3VuZF9k aXI9IiRhZGRpdGlvbmFsX2xpYmRpciIKKysgICAgICAgICAgICAgIGZvdW5kX3NvPSIkYWRkaXRp b25hbF9saWJkaXIvbGliJG5hbWUuJHNobGliZXh0IgorKyAgICAgICAgICAgICAgaWYgdGVzdCAt ZiAiJGFkZGl0aW9uYWxfbGliZGlyL2xpYiRuYW1lLmxhIjsgdGhlbgorKyAgICAgICAgICAgICAg ICBmb3VuZF9sYT0iJGFkZGl0aW9uYWxfbGliZGlyL2xpYiRuYW1lLmxhIgorKyAgICAgICAgICAg ICAgZmkKKysgICAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgICBpZiB0ZXN0IC1mICIkYWRk aXRpb25hbF9saWJkaXIvbGliJG5hbWUuJGxpYmV4dCI7IHRoZW4KKysgICAgICAgICAgICAgICAg Zm91bmRfZGlyPSIkYWRkaXRpb25hbF9saWJkaXIiCisrICAgICAgICAgICAgICAgIGZvdW5kX2E9 IiRhZGRpdGlvbmFsX2xpYmRpci9saWIkbmFtZS4kbGliZXh0IgorKyAgICAgICAgICAgICAgICBp ZiB0ZXN0IC1mICIkYWRkaXRpb25hbF9saWJkaXIvbGliJG5hbWUubGEiOyB0aGVuCisrICAgICAg ICAgICAgICAgICAgZm91bmRfbGE9IiRhZGRpdGlvbmFsX2xpYmRpci9saWIkbmFtZS5sYSIKKysg ICAgICAgICAgICAgICAgZmkKKysgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgZmkKKysg ICAgICAgICAgZmkKKysgICAgICAgICAgaWYgdGVzdCAiWCRmb3VuZF9kaXIiID0gIlgiOyB0aGVu CisrICAgICAgICAgICAgZm9yIHggaW4gJExERkxBR1MgJExUTElCTFpNQTsgZG8KKysKKysgIGFj bF9zYXZlX3ByZWZpeD0iJHByZWZpeCIKKysgIHByZWZpeD0iJGFjbF9maW5hbF9wcmVmaXgiCisr ICBhY2xfc2F2ZV9leGVjX3ByZWZpeD0iJGV4ZWNfcHJlZml4IgorKyAgZXhlY19wcmVmaXg9IiRh Y2xfZmluYWxfZXhlY19wcmVmaXgiCisrICBldmFsIHg9XCIkeFwiCisrICBleGVjX3ByZWZpeD0i JGFjbF9zYXZlX2V4ZWNfcHJlZml4IgorKyAgcHJlZml4PSIkYWNsX3NhdmVfcHJlZml4IgorKwor KyAgICAgICAgICAgICAgY2FzZSAiJHgiIGluCisrICAgICAgICAgICAgICAgIC1MKikKKysgICAg ICAgICAgICAgICAgICBkaXI9YGVjaG8gIlgkeCIgfCBzZWQgLWUgJ3MvXlgtTC8vJ2AKKysgICAg ICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkc2hsaWJleHQiICYmIHRlc3QgLWYgIiRkaXIvbGli JG5hbWUuJHNobGliZXh0IjsgdGhlbgorKyAgICAgICAgICAgICAgICAgICAgZm91bmRfZGlyPSIk ZGlyIgorKyAgICAgICAgICAgICAgICAgICAgZm91bmRfc289IiRkaXIvbGliJG5hbWUuJHNobGli ZXh0IgorKyAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAtZiAiJGRpci9saWIkbmFtZS5sYSI7 IHRoZW4KKysgICAgICAgICAgICAgICAgICAgICAgZm91bmRfbGE9IiRkaXIvbGliJG5hbWUubGEi CisrICAgICAgICAgICAgICAgICAgICBmaQorKyAgICAgICAgICAgICAgICAgIGVsc2UKKysgICAg ICAgICAgICAgICAgICAgIGlmIHRlc3QgLWYgIiRkaXIvbGliJG5hbWUuJGxpYmV4dCI7IHRoZW4K KysgICAgICAgICAgICAgICAgICAgICAgZm91bmRfZGlyPSIkZGlyIgorKyAgICAgICAgICAgICAg ICAgICAgICBmb3VuZF9hPSIkZGlyL2xpYiRuYW1lLiRsaWJleHQiCisrICAgICAgICAgICAgICAg ICAgICAgIGlmIHRlc3QgLWYgIiRkaXIvbGliJG5hbWUubGEiOyB0aGVuCisrICAgICAgICAgICAg ICAgICAgICAgICAgZm91bmRfbGE9IiRkaXIvbGliJG5hbWUubGEiCisrICAgICAgICAgICAgICAg ICAgICAgIGZpCisrICAgICAgICAgICAgICAgICAgICBmaQorKyAgICAgICAgICAgICAgICAgIGZp CisrICAgICAgICAgICAgICAgICAgOzsKKysgICAgICAgICAgICAgIGVzYWMKKysgICAgICAgICAg ICAgIGlmIHRlc3QgIlgkZm91bmRfZGlyIiAhPSAiWCI7IHRoZW4KKysgICAgICAgICAgICAgICAg YnJlYWsKKysgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgZG9uZQorKyAgICAgICAgICBm aQorKyAgICAgICAgICBpZiB0ZXN0ICJYJGZvdW5kX2RpciIgIT0gIlgiOyB0aGVuCisrICAgICAg ICAgICAgICAgICAgICAgICAgTFRMSUJMWk1BPSIke0xUTElCTFpNQX0ke0xUTElCTFpNQTorIH0t TCRmb3VuZF9kaXIgLWwkbmFtZSIKKysgICAgICAgICAgICBpZiB0ZXN0ICJYJGZvdW5kX3NvIiAh PSAiWCI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIHRlc3QgIiRlbmFibGVfcnBhdGgiID0gbm8gfHwgdGVzdCAiWCRmb3Vu ZF9kaXIiID0gIlgvdXNyL2xpYiI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExJQkxaTUE9IiR7TElCTFpNQX0ke0xJQkxaTUE6KyB9JGZvdW5kX3NvIgorKyAgICAgICAg ICAgICAgZWxzZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PQorKyAgICAgICAgICAg ICAgICBmb3IgeCBpbiAkbHRycGF0aGRpcnM7IGRvCisrICAgICAgICAgICAgICAgICAgaWYgdGVz dCAiWCR4IiA9ICJYJGZvdW5kX2RpciI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAgIGhhdmVp dD15ZXMKKysgICAgICAgICAgICAgICAgICAgIGJyZWFrCisrICAgICAgICAgICAgICAgICAgZmkK KysgICAgICAgICAgICAgICAgZG9uZQorKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2 ZWl0IjsgdGhlbgorKyAgICAgICAgICAgICAgICAgIGx0cnBhdGhkaXJzPSIkbHRycGF0aGRpcnMg JGZvdW5kX2RpciIKKysgICAgICAgICAgICAgICAgZmkKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiID0geWVzOyB0aGVuCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCTFpNQT0i JHtMSUJMWk1BfSR7TElCTFpNQTorIH0kZm91bmRfc28iCisrICAgICAgICAgICAgICAgIGVsc2UK KysgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl YyIgJiYgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiID0gbm87IHRoZW4KKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJMWk1BPSIk e0xJQkxaTUF9JHtMSUJMWk1BOisgfSRmb3VuZF9zbyIKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9CisrICAgICAgICAg ICAgICAgICAgICBmb3IgeCBpbiAkcnBhdGhkaXJzOyBkbworKyAgICAgICAgICAgICAgICAgICAg ICBpZiB0ZXN0ICJYJHgiID0gIlgkZm91bmRfZGlyIjsgdGhlbgorKyAgICAgICAgICAgICAgICAg ICAgICAgIGhhdmVpdD15ZXMKKysgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworKyAgICAg ICAgICAgICAgICAgICAgICBmaQorKyAgICAgICAgICAgICAgICAgICAgZG9uZQorKyAgICAgICAg ICAgICAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KKysgICAgICAgICAgICAgICAg ICAgICAgcnBhdGhkaXJzPSIkcnBhdGhkaXJzICRmb3VuZF9kaXIiCisrICAgICAgICAgICAgICAg ICAgICBmaQorKyAgICAgICAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGhhdmVpdD0KKysgICAgICAgICAgICAgICAgICAgIGZvciB4IGluICRMREZMQUdTICRMSUJMWk1B OyBkbworKworKyAgYWNsX3NhdmVfcHJlZml4PSIkcHJlZml4IgorKyAgcHJlZml4PSIkYWNsX2Zp bmFsX3ByZWZpeCIKKysgIGFjbF9zYXZlX2V4ZWNfcHJlZml4PSIkZXhlY19wcmVmaXgiCisrICBl eGVjX3ByZWZpeD0iJGFjbF9maW5hbF9leGVjX3ByZWZpeCIKKysgIGV2YWwgeD1cIiR4XCIKKysg IGV4ZWNfcHJlZml4PSIkYWNsX3NhdmVfZXhlY19wcmVmaXgiCisrICBwcmVmaXg9IiRhY2xfc2F2 ZV9wcmVmaXgiCisrCisrICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIlgkeCIgPSAiWC1M JGZvdW5kX2RpciI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9eWVzCisr ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKysgICAgICAgICAgICAgICAgICAgICAgZmkK KysgICAgICAgICAgICAgICAgICAgIGRvbmUKKysgICAgICAgICAgICAgICAgICAgIGlmIHRlc3Qg LXogIiRoYXZlaXQiOyB0aGVuCisrICAgICAgICAgICAgICAgICAgICAgIExJQkxaTUE9IiR7TElC TFpNQX0ke0xJQkxaTUE6KyB9LUwkZm91bmRfZGlyIgorKyAgICAgICAgICAgICAgICAgICAgZmkK KysgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiAhPSBubzsg dGhlbgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJMWk1BPSIke0xJQkxaTUF9 JHtMSUJMWk1BOisgfSRmb3VuZF9zbyIKKysgICAgICAgICAgICAgICAgICAgIGVsc2UKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExJQkxaTUE9IiR7TElCTFpNQX0ke0xJQkxaTUE6KyB9LWwkbmFtZSIKKysgICAgICAgICAgICAg ICAgICAgIGZpCisrICAgICAgICAgICAgICAgICAgZmkKKysgICAgICAgICAgICAgICAgZmkKKysg ICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgaWYgdGVz dCAiWCRmb3VuZF9hIiAhPSAiWCI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExJQkxaTUE9IiR7TElCTFpNQX0ke0xJQkxaTUE6KyB9JGZvdW5kX2EiCisrICAgICAgICAg ICAgICBlbHNlCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTElCTFpNQT0iJHtMSUJMWk1BfSR7TElCTFpNQTorIH0tTCRmb3VuZF9kaXIgLWwkbmFtZSIK KysgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgZmkKKysgICAgICAgICAgICAgICAgICAg ICAgICBhZGRpdGlvbmFsX2luY2x1ZGVkaXI9CisrICAgICAgICAgICAgY2FzZSAiJGZvdW5kX2Rp ciIgaW4KKysgICAgICAgICAgICAgICovbGliIHwgKi9saWIvKQorKyAgICAgICAgICAgICAgICBi YXNlZGlyPWBlY2hvICJYJGZvdW5kX2RpciIgfCBzZWQgLWUgJ3MsXlgsLCcgLWUgJ3MsL2xpYi8q JCwsJ2AKKysgICAgICAgICAgICAgICAgYWRkaXRpb25hbF9pbmNsdWRlZGlyPSIkYmFzZWRpci9p bmNsdWRlIgorKyAgICAgICAgICAgICAgICA7OworKyAgICAgICAgICAgIGVzYWMKKysgICAgICAg ICAgICBpZiB0ZXN0ICJYJGFkZGl0aW9uYWxfaW5jbHVkZWRpciIgIT0gIlgiOyB0aGVuCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRl c3QgIlgkYWRkaXRpb25hbF9pbmNsdWRlZGlyIiAhPSAiWC91c3IvaW5jbHVkZSI7IHRoZW4KKysg ICAgICAgICAgICAgICAgaGF2ZWl0PQorKyAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJGFkZGl0 aW9uYWxfaW5jbHVkZWRpciIgPSAiWC91c3IvbG9jYWwvaW5jbHVkZSI7IHRoZW4KKysgICAgICAg ICAgICAgICAgICBpZiB0ZXN0IC1uICIkR0NDIjsgdGhlbgorKyAgICAgICAgICAgICAgICAgICAg Y2FzZSAkaG9zdF9vcyBpbgorKyAgICAgICAgICAgICAgICAgICAgICBsaW51eCopIGhhdmVpdD15 ZXM7OworKyAgICAgICAgICAgICAgICAgICAgZXNhYworKyAgICAgICAgICAgICAgICAgIGZpCisr ICAgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgICAgIGlmIHRlc3QgLXogIiRoYXZlaXQi OyB0aGVuCisrICAgICAgICAgICAgICAgICAgZm9yIHggaW4gJENQUEZMQUdTICRJTkNMWk1BOyBk bworKworKyAgYWNsX3NhdmVfcHJlZml4PSIkcHJlZml4IgorKyAgcHJlZml4PSIkYWNsX2ZpbmFs X3ByZWZpeCIKKysgIGFjbF9zYXZlX2V4ZWNfcHJlZml4PSIkZXhlY19wcmVmaXgiCisrICBleGVj X3ByZWZpeD0iJGFjbF9maW5hbF9leGVjX3ByZWZpeCIKKysgIGV2YWwgeD1cIiR4XCIKKysgIGV4 ZWNfcHJlZml4PSIkYWNsX3NhdmVfZXhlY19wcmVmaXgiCisrICBwcmVmaXg9IiRhY2xfc2F2ZV9w cmVmaXgiCisrCisrICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJHgiID0gIlgtSSRhZGRp dGlvbmFsX2luY2x1ZGVkaXIiOyB0aGVuCisrICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD15 ZXMKKysgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKysgICAgICAgICAgICAgICAgICAgIGZp CisrICAgICAgICAgICAgICAgICAgZG9uZQorKyAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLXog IiRoYXZlaXQiOyB0aGVuCisrICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1kICIkYWRkaXRp b25hbF9pbmNsdWRlZGlyIjsgdGhlbgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSU5DTFpNQT0iJHtJTkNMWk1BfSR7SU5DTFpNQTorIH0tSSRhZGRpdGlvbmFs X2luY2x1ZGVkaXIiCisrICAgICAgICAgICAgICAgICAgICBmaQorKyAgICAgICAgICAgICAgICAg IGZpCisrICAgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgICBmaQorKyAgICAgICAgICAg IGZpCisrICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAtbiAiJGZvdW5kX2xhIjsgdGhl bgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2F2ZV9saWJkaXI9IiRsaWJkaXIiCisrICAgICAgICAgICAgICBjYXNlICIkZm91bmRfbGEi IGluCisrICAgICAgICAgICAgICAgICovKiB8ICpcXCopIC4gIiRmb3VuZF9sYSIgOzsKKysgICAg ICAgICAgICAgICAgKikgLiAiLi8kZm91bmRfbGEiIDs7CisrICAgICAgICAgICAgICBlc2FjCisr ICAgICAgICAgICAgICBsaWJkaXI9IiRzYXZlX2xpYmRpciIKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZm9yIGRlcCBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbworKyAgICAgICAgICAgICAg ICBjYXNlICIkZGVwIiBpbgorKyAgICAgICAgICAgICAgICAgIC1MKikKKysgICAgICAgICAgICAg ICAgICAgIGFkZGl0aW9uYWxfbGliZGlyPWBlY2hvICJYJGRlcCIgfCBzZWQgLWUgJ3MvXlgtTC8v J2AKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVz dCAiWCRhZGRpdGlvbmFsX2xpYmRpciIgIT0gIlgvdXNyL2xpYiI7IHRoZW4KKysgICAgICAgICAg ICAgICAgICAgICAgaGF2ZWl0PQorKyAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJGFk ZGl0aW9uYWxfbGliZGlyIiA9ICJYL3Vzci9sb2NhbC9saWIiOyB0aGVuCisrICAgICAgICAgICAg ICAgICAgICAgICAgaWYgdGVzdCAtbiAiJEdDQyI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAg ICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlu dXgqKSBoYXZlaXQ9eWVzOzsKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGVzYWMKKysgICAg ICAgICAgICAgICAgICAgICAgICBmaQorKyAgICAgICAgICAgICAgICAgICAgICBmaQorKyAgICAg ICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgorKyAgICAgICAgICAg ICAgICAgICAgICAgIGhhdmVpdD0KKysgICAgICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiAk TERGTEFHUyAkTElCTFpNQTsgZG8KKysKKysgIGFjbF9zYXZlX3ByZWZpeD0iJHByZWZpeCIKKysg IHByZWZpeD0iJGFjbF9maW5hbF9wcmVmaXgiCisrICBhY2xfc2F2ZV9leGVjX3ByZWZpeD0iJGV4 ZWNfcHJlZml4IgorKyAgZXhlY19wcmVmaXg9IiRhY2xfZmluYWxfZXhlY19wcmVmaXgiCisrICBl dmFsIHg9XCIkeFwiCisrICBleGVjX3ByZWZpeD0iJGFjbF9zYXZlX2V4ZWNfcHJlZml4IgorKyAg cHJlZml4PSIkYWNsX3NhdmVfcHJlZml4IgorKworKyAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgdGVzdCAiWCR4IiA9ICJYLUwkYWRkaXRpb25hbF9saWJkaXIiOyB0aGVuCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGhhdmVpdD15ZXMKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYnJlYWsKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgICAg ICAgICAgICAgZG9uZQorKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLXogIiRoYXZl aXQiOyB0aGVuCisrICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1kICIkYWRkaXRp b25hbF9saWJkaXIiOyB0aGVuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMSUJMWk1BPSIke0xJQkxaTUF9JHtMSUJMWk1BOisgfS1MJGFk ZGl0aW9uYWxfbGliZGlyIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgZmkKKysgICAgICAg ICAgICAgICAgICAgICAgICBmaQorKyAgICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD0KKysg ICAgICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiAkTERGTEFHUyAkTFRMSUJMWk1BOyBkbwor KworKyAgYWNsX3NhdmVfcHJlZml4PSIkcHJlZml4IgorKyAgcHJlZml4PSIkYWNsX2ZpbmFsX3By ZWZpeCIKKysgIGFjbF9zYXZlX2V4ZWNfcHJlZml4PSIkZXhlY19wcmVmaXgiCisrICBleGVjX3By ZWZpeD0iJGFjbF9maW5hbF9leGVjX3ByZWZpeCIKKysgIGV2YWwgeD1cIiR4XCIKKysgIGV4ZWNf cHJlZml4PSIkYWNsX3NhdmVfZXhlY19wcmVmaXgiCisrICBwcmVmaXg9IiRhY2xfc2F2ZV9wcmVm aXgiCisrCisrICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJHgiID0gIlgtTCRh ZGRpdGlvbmFsX2xpYmRpciI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2 ZWl0PXllcworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworKyAgICAgICAgICAg ICAgICAgICAgICAgICAgZmkKKysgICAgICAgICAgICAgICAgICAgICAgICBkb25lCisrICAgICAg ICAgICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KKysgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRhZGRpdGlvbmFsX2xpYmRpciI7IHRoZW4KKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExU TElCTFpNQT0iJHtMVExJQkxaTUF9JHtMVExJQkxaTUE6KyB9LUwkYWRkaXRpb25hbF9saWJkaXIi CisrICAgICAgICAgICAgICAgICAgICAgICAgICBmaQorKyAgICAgICAgICAgICAgICAgICAgICAg IGZpCisrICAgICAgICAgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgICAgICAgICBmaQor KyAgICAgICAgICAgICAgICAgICAgOzsKKysgICAgICAgICAgICAgICAgICAtUiopCisrICAgICAg ICAgICAgICAgICAgICBkaXI9YGVjaG8gIlgkZGVwIiB8IHNlZCAtZSAncy9eWC1SLy8nYAorKyAg ICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiJGVuYWJsZV9ycGF0aCIgIT0gbm87IHRoZW4KKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBoYXZlaXQ9CisrICAgICAgICAgICAgICAgICAgICAgIGZvciB4IGluICRycGF0aGRp cnM7IGRvCisrICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiWCR4IiA9ICJYJGRpciI7 IHRoZW4KKysgICAgICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD15ZXMKKysgICAgICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrCisrICAgICAgICAgICAgICAgICAgICAgICAgZmkKKysgICAg ICAgICAgICAgICAgICAgICAgZG9uZQorKyAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16 ICIkaGF2ZWl0IjsgdGhlbgorKyAgICAgICAgICAgICAgICAgICAgICAgIHJwYXRoZGlycz0iJHJw YXRoZGlycyAkZGlyIgorKyAgICAgICAgICAgICAgICAgICAgICBmaQorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhdmVp dD0KKysgICAgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gJGx0cnBhdGhkaXJzOyBkbworKyAg ICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIlgkeCIgPSAiWCRkaXIiOyB0aGVuCisrICAg ICAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9eWVzCisrICAgICAgICAgICAgICAgICAgICAg ICAgICBicmVhaworKyAgICAgICAgICAgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgICAg ICAgICAgIGRvbmUKKysgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7 IHRoZW4KKysgICAgICAgICAgICAgICAgICAgICAgICBsdHJwYXRoZGlycz0iJGx0cnBhdGhkaXJz ICRkaXIiCisrICAgICAgICAgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgICAgICAgICBm aQorKyAgICAgICAgICAgICAgICAgICAgOzsKKysgICAgICAgICAgICAgICAgICAtbCopCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzX25leHRfcm91bmQ9IiRu YW1lc19uZXh0X3JvdW5kICJgZWNobyAiWCRkZXAiIHwgc2VkIC1lICdzL15YLWwvLydgCisrICAg ICAgICAgICAgICAgICAgICA7OworKyAgICAgICAgICAgICAgICAgICoubGEpCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBuYW1lc19uZXh0X3JvdW5kPSIkbmFtZXNfbmV4dF9yb3VuZCAiYGVjaG8g IlgkZGVwIiB8IHNlZCAtZSAncyxeWC4qLywsJyAtZSAncyxebGliLCwnIC1lICdzLFwubGEkLCwn YAorKyAgICAgICAgICAgICAgICAgICAgOzsKKysgICAgICAgICAgICAgICAgICAqKQorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJMWk1BPSIke0xJQkxaTUF9JHtM SUJMWk1BOisgfSRkZXAiCisrICAgICAgICAgICAgICAgICAgICBMVExJQkxaTUE9IiR7TFRMSUJM Wk1BfSR7TFRMSUJMWk1BOisgfSRkZXAiCisrICAgICAgICAgICAgICAgICAgICA7OworKyAgICAg ICAgICAgICAgICBlc2FjCisrICAgICAgICAgICAgICBkb25lCisrICAgICAgICAgICAgZmkKKysg ICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExJQkxaTUE9IiR7TElCTFpNQX0ke0xJQkxaTUE6KyB9LWwkbmFt ZSIKKysgICAgICAgICAgICBMVExJQkxaTUE9IiR7TFRMSUJMWk1BfSR7TFRMSUJMWk1BOisgfS1s JG5hbWUiCisrICAgICAgICAgIGZpCisrICAgICAgICBmaQorKyAgICAgIGZpCisrICAgIGRvbmUK KysgIGRvbmUKKysgIGlmIHRlc3QgIlgkcnBhdGhkaXJzIiAhPSAiWCI7IHRoZW4KKysgICAgaWYg dGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCisrICAgICAgICAgICAg ICAgICAgICAgICAgYWxsZGlycz0KKysgICAgICBmb3IgZm91bmRfZGlyIGluICRycGF0aGRpcnM7 IGRvCisrICAgICAgICBhbGxkaXJzPSIke2FsbGRpcnN9JHthbGxkaXJzOiskaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvcn0kZm91bmRfZGlyIgorKyAgICAgIGRvbmUKKysgICAgICAgICAgICBhY2xf c2F2ZV9saWJkaXI9IiRsaWJkaXIiCisrICAgICAgbGliZGlyPSIkYWxsZGlycyIKKysgICAgICBl dmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisrICAgICAgbGliZGlyPSIk YWNsX3NhdmVfbGliZGlyIgorKyAgICAgIExJQkxaTUE9IiR7TElCTFpNQX0ke0xJQkxaTUE6KyB9 JGZsYWciCisrICAgIGVsc2UKKysgICAgICAgICAgICBmb3IgZm91bmRfZGlyIGluICRycGF0aGRp cnM7IGRvCisrICAgICAgICBhY2xfc2F2ZV9saWJkaXI9IiRsaWJkaXIiCisrICAgICAgICBsaWJk aXI9IiRmb3VuZF9kaXIiCisrICAgICAgICBldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlY1wiCisrICAgICAgICBsaWJkaXI9IiRhY2xfc2F2ZV9saWJkaXIiCisrICAgICAgICBM SUJMWk1BPSIke0xJQkxaTUF9JHtMSUJMWk1BOisgfSRmbGFnIgorKyAgICAgIGRvbmUKKysgICAg ZmkKKysgIGZpCisrICBpZiB0ZXN0ICJYJGx0cnBhdGhkaXJzIiAhPSAiWCI7IHRoZW4KKysgICAg ICAgICAgICBmb3IgZm91bmRfZGlyIGluICRsdHJwYXRoZGlyczsgZG8KKysgICAgICBMVExJQkxa TUE9IiR7TFRMSUJMWk1BfSR7TFRMSUJMWk1BOisgfS1SJGZvdW5kX2RpciIKKysgICAgZG9uZQor KyAgZmkKKysKKysKKysgICAgICAgIGFjX3NhdmVfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKKysKKysg IGZvciBlbGVtZW50IGluICRJTkNMWk1BOyBkbworKyAgICBoYXZlaXQ9CisrICAgIGZvciB4IGlu ICRDUFBGTEFHUzsgZG8KKysKKysgIGFjbF9zYXZlX3ByZWZpeD0iJHByZWZpeCIKKysgIHByZWZp eD0iJGFjbF9maW5hbF9wcmVmaXgiCisrICBhY2xfc2F2ZV9leGVjX3ByZWZpeD0iJGV4ZWNfcHJl Zml4IgorKyAgZXhlY19wcmVmaXg9IiRhY2xfZmluYWxfZXhlY19wcmVmaXgiCisrICBldmFsIHg9 XCIkeFwiCisrICBleGVjX3ByZWZpeD0iJGFjbF9zYXZlX2V4ZWNfcHJlZml4IgorKyAgcHJlZml4 PSIkYWNsX3NhdmVfcHJlZml4IgorKworKyAgICAgIGlmIHRlc3QgIlgkeCIgPSAiWCRlbGVtZW50 IjsgdGhlbgorKyAgICAgICAgaGF2ZWl0PXllcworKyAgICAgICAgYnJlYWsKKysgICAgICBmaQor KyAgICBkb25lCisrICAgIGlmIHRlc3QgLXogIiRoYXZlaXQiOyB0aGVuCisrICAgICAgQ1BQRkxB R1M9IiR7Q1BQRkxBR1N9JHtDUFBGTEFHUzorIH0kZWxlbWVudCIKKysgICAgZmkKKysgIGRvbmUK KysKKysKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp bmcgZm9yIGxpYmx6bWEiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBsaWJsem1hLi4u ICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9saWJsem1hK3NldH0iID0gc2V0OyB0aGVuIDoK KysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKworKyAgICBhY19zYXZlX0xJ QlM9IiRMSUJTIgorKyAgICBMSUJTPSIkTElCUyAkTElCTFpNQSIKKysgICAgY2F0IGNvbmZkZWZz LmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K KysjaW5jbHVkZSAibHptYS5oIgorK2ludAorK21haW4gKCkKKyt7CisrbHptYV9tZl9pc19zdXBw b3J0ZWQgKExaTUFfTUZfSEMzKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytp ZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6CisrICBhY19jdl9saWJsem1hPXll cworK2Vsc2UKKysgIGFjX2N2X2xpYmx6bWE9bm8KKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRl c3QuJGFjX2V4dAorKyAgICBMSUJTPSIkYWNfc2F2ZV9MSUJTIgorKworK2ZpCisreyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9saWJsem1hIiA+ JjUKKyskYXNfZWNobyAiJGFjX2N2X2xpYmx6bWEiID4mNjsgfQorKyAgaWYgdGVzdCAiJGFjX2N2 X2xpYmx6bWEiID0geWVzOyB0aGVuCisrICAgIEhBVkVfTElCTFpNQT15ZXMKKysKKyskYXNfZWNo byAiI2RlZmluZSBIQVZFX0xJQkxaTUEgMSIgPj5jb25mZGVmcy5oCisrCisrICAgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaG93IHRvIGxpbmsgd2l0 aCBsaWJsem1hIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBob3cgdG8gbGluayB3aXRoIGxp Ymx6bWEuLi4gIiA+JjY7IH0KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6ICRMSUJMWk1BIiA+JjUKKyskYXNfZWNobyAiJExJQkxaTUEiID4mNjsg fQorKyAgZWxzZQorKyAgICBIQVZFX0xJQkxaTUE9bm8KKysgICAgICAgICAgICBDUFBGTEFHUz0i JGFjX3NhdmVfQ1BQRkxBR1MiCisrICAgIExJQkxaTUE9CisrICAgIExUTElCTFpNQT0KKysgIGZp CisrCisrCisrCisrCisrCisrCisrICAgIGlmIHRlc3QgIiRIQVZFX0xJQkxaTUEiICE9IHllczsg dGhlbgorKyAgICAgIGlmIHRlc3QgIiR3aXRoX2x6bWEiID0geWVzOyB0aGVuCisrICAgICAgICBh c19mbl9lcnJvciAibWlzc2luZyBsaWJsem1hIGZvciAtLXdpdGgtbHptYSIgIiRMSU5FTk8iIDUK KysgICAgICBmaQorKyAgICBmaQorKyAgZmkKKytmaQorKworIExJQkdVST0iLi4vbGliZ3VpL3Ny Yy9saWJndWkuYSIKKyBHVUlfQ0ZMQUdTX1g9Ii1JJHtzcmNkaXJ9Ly4uL2xpYmd1aS9zcmMiCisg CitJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvY29uZmlndXJlLmFjCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gZ2RiLTcuNC41MC4yMDEyMDcwMy5vcmlnL2dkYi9jb25maWd1cmUuYWMJMjAxMi0wNy0w NSAyMjo0Nzo0MC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9j b25maWd1cmUuYWMJMjAxMi0wNy0wNSAyMjo0Nzo0NS40ODc1MDkzNjEgKzAyMDAKK0BAIC0yMTk2 LDYgKzIxOTYsMjUgQEAgTElCUz0kT0xEX0xJQlMKKyAjIEFkZCBhbnkgaG9zdC1zcGVjaWZpYyBv YmplY3RzIHRvIEdEQi4KKyBDT05GSUdfT0JTPSIke0NPTkZJR19PQlN9ICR7Z2RiX2hvc3Rfb2Jz fSIKKyAKKysjIElmIGJ1aWxkaW5nIG9uIEVMRiwgbG9vayBmb3IgbHptYSBzdXBwb3J0IGZvciBl bWJlZGRlZCBjb21wcmVzc2VkIGRlYnVnIGluZm8uCisraWYgdGVzdCAkZ2RiX2N2X3Zhcl9lbGYg PSB5ZXM7IHRoZW4KKysgIEFDX0FSR19XSVRIKGx6bWEsCisrICAgIEFTX0hFTFBfU1RSSU5HKFst LXdpdGgtbHptYV0sIFtzdXBwb3J0IGx6bWEgY29tcHJlc3Npb24gKGF1dG8veWVzL25vKV0pLAor KyAgICBbXSwgW3dpdGhfbHptYT1hdXRvXSkKKysgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0 byB1c2UgbHptYV0pCisrICBBQ19NU0dfUkVTVUxUKFskd2l0aF9sem1hXSkKKysKKysgIGlmIHRl c3QgIiR7d2l0aF9sem1hfSIgIT0gbm87IHRoZW4KKysgICAgQUNfTElCX0hBVkVfTElOS0ZMQUdT KFtsem1hXSwgW10sIFsjaW5jbHVkZSAibHptYS5oIl0sCisrCQkJICBbbHptYV9tZl9pc19zdXBw b3J0ZWQgKExaTUFfTUZfSEMzKTtdKQorKyAgICBpZiB0ZXN0ICIkSEFWRV9MSUJMWk1BIiAhPSB5 ZXM7IHRoZW4KKysgICAgICBpZiB0ZXN0ICIkd2l0aF9sem1hIiA9IHllczsgdGhlbgorKyAgICAg ICAgQUNfTVNHX0VSUk9SKFttaXNzaW5nIGxpYmx6bWEgZm9yIC0td2l0aC1sem1hXSkKKysgICAg ICBmaQorKyAgICBmaQorKyAgZmkKKytmaQorKworIExJQkdVST0iLi4vbGliZ3VpL3NyYy9saWJn dWkuYSIKKyBHVUlfQ0ZMQUdTX1g9Ii1JJHtzcmNkaXJ9Ly4uL2xpYmd1aS9zcmMiCisgQUNfU1VC U1QoTElCR1VJKQorSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2VsZnJlYWQuYworPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIGdkYi03LjQuNTAuMjAxMjA3MDMub3JpZy9nZGIvZWxmcmVhZC5jCTIwMTIt MDctMDUgMjI6NDc6MzkuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNC41MC4yMDEyMDcwMy9n ZGIvZWxmcmVhZC5jCTIwMTItMDctMDUgMjI6NDk6MTMuMjAwNDI3MDM4ICswMjAwCitAQCAtNTEs NiArNTEsMTAgQEAKKyAjaW5jbHVkZSAib2JzZXJ2ZXIuaCIKKyAjaW5jbHVkZSAiZWxmL2V4dGVy bmFsLmgiCisgI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisrI2luY2x1ZGUgImdkYmNvcmUuaCIKKysj aWZkZWYgSEFWRV9MSUJMWk1BCisrIyBpbmNsdWRlIDxsem1hLmg+CisrI2VuZGlmCisgCisgZXh0 ZXJuIHZvaWQgX2luaXRpYWxpemVfZWxmcmVhZCAodm9pZCk7CisgCitAQCAtMjIxMCw2ICsyMjE0 LDI2MiBAQCBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRpZCAoc3RyCisgICByZXR1 cm4gTlVMTDsKKyB9CisgCisrI2lmZGVmIEhBVkVfTElCTFpNQQorKworKy8qIEN1c3RvbSBsem1h X2FsbG9jYXRvci5hbGxvYyBzbyB0aGV5IHVzZSB0aGUgZ2RiIG9uZXMuICAqLworKworK3N0YXRp YyB2b2lkICoKKythbGxvY19sem1hICh2b2lkICpvcGFxdWUsIHNpemVfdCBubWVtYiwgc2l6ZV90 IHNpemUpCisreworKyAgcmV0dXJuIHhtYWxsb2MgKG5tZW1iICogc2l6ZSk7CisrfQorKworKy8q IEN1c3RvbSBsem1hX2FsbG9jYXRvci5mcmVlIHNvIHRoZXkgdXNlIHRoZSBnZGIgb25lcy4gICov CisrCisrc3RhdGljIHZvaWQKKytmcmVlX2x6bWEgKHZvaWQgKm9wYXF1ZSwgdm9pZCAqcHRyKQor K3sKKysgIHhmcmVlIChwdHIpOworK30KKysKKysvKiBJdCBjYW5ub3QgYmUgY29uc3QgZHVlIHRv IHRoZSBsem1hIGxpYnJhcnkgZnVuY3Rpb24gcHJvdG90eXBlcy4gICovCisrCisrc3RhdGljIGx6 bWFfYWxsb2NhdG9yIGdkYl9sem1hX2FsbG9jYXRvciA9IHsgYWxsb2NfbHptYSwgZnJlZV9sem1h LCBOVUxMfTsKKysKKysvKiBDdXN0b20gYmZkX29wZW5yX2lvdmVjIGltcGxlbWVudGF0aW9uIHRv IHJlYWQgY29tcHJlc3NlZCBkYXRhIGZyb20gYQorKyAgIHNlY3Rpb24uIFRoaXMga2VlcHMgb25s eSB0aGUgbGFzdCBkZWNvbXByZXNzZWQgYmxvY2sgaW4gbWVtb3J5IHRvCisrICAgYWxsb3cgbGFy Z2VyIGRhdGEgd2l0aG91dCB1c2luZyB0byBtdWNoIG1lbW9yeS4gICovCisrCisrc3RydWN0IGx6 bWFfc3RyZWFtCisreworKyAgLyogU2VjdGlvbiBvZiBpbnB1dCBCRkQgd2UgYXJlIGRlY29kaW5n IGRhdGEgZnJvbS4gICovCisrICBhc2VjdGlvbiAqc2VjdGlvbjsKKysKKysgIC8qIGx6bWEgbGli cmFyeSBkZWNvbXByZXNzaW9uIHN0YXRlLiAgKi8KKysgIGx6bWFfaW5kZXggKmluZGV4OworKwor KyAgLyogQ3VycmVudGx5IGRlY29kZWQgYmxvY2suICAqLworKyAgYmZkX3NpemVfdHlwZSBkYXRh X3N0YXJ0OworKyAgYmZkX3NpemVfdHlwZSBkYXRhX2VuZDsKKysgIGdkYl9ieXRlICpkYXRhOwor K307CisrCisrLyogYmZkX29wZW5yX2lvdmVjIE9QRU5fUCBpbXBsZW1lbnRhdGlvbiBmb3IKKysg ICBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfaW5fc2VjdGlvbi4gIE9QRU5fQ0xPU1VSRSBpcyAn YXNlY3Rpb24gKicgb2YgdGhlCisrICAgc2VjdGlvbiB0byBkZWNvbXByZXNzLgorKworKyAgIFJl dHVybiAnc3RydWN0IGx6bWFfc3RyZWFtIConIG11c3QgYmUgZnJlZWQgYnkgY2FsbGVyIGJ5IHhm cmVlLCB0b2dldGhlcgorKyAgIHdpdGggaXRzIElOREVYIGx6bWEgZGF0YS4gICovCisrCisrc3Rh dGljIHZvaWQgKgorK2x6bWFfb3BlbiAoc3RydWN0IGJmZCAqbmJmZCwgdm9pZCAqb3Blbl9jbG9z dXJlKQorK3sKKysgIGFzZWN0aW9uICpzZWN0aW9uID0gb3Blbl9jbG9zdXJlOworKyAgYmZkX3Np emVfdHlwZSBzaXplLCBvZmZzZXQ7CisrICBsem1hX3N0cmVhbV9mbGFncyBvcHRpb25zOworKyAg Z2RiX2J5dGUgZm9vdGVyW0xaTUFfU1RSRUFNX0hFQURFUl9TSVpFXTsKKysgIGdkYl9ieXRlICpp bmRleGRhdGE7CisrICBsem1hX2luZGV4ICppbmRleDsKKysgIGludCByZXQ7CisrICB1aW50NjRf dCBtZW1saW1pdCA9IFVJTlQ2NF9NQVg7CisrICBzdHJ1Y3QgbHptYV9zdHJlYW0gKmxzdHJlYW07 CisrICBzaXplX3QgcG9zOworKworKyAgc2l6ZSA9IGJmZF9nZXRfc2VjdGlvbl9zaXplIChzZWN0 aW9uKTsKKysgIG9mZnNldCA9IHNlY3Rpb24tPmZpbGVwb3MgKyBzaXplIC0gTFpNQV9TVFJFQU1f SEVBREVSX1NJWkU7CisrICBpZiAoc2l6ZSA8IExaTUFfU1RSRUFNX0hFQURFUl9TSVpFCisrICAg ICAgfHwgYmZkX3NlZWsgKHNlY3Rpb24tPm93bmVyLCBvZmZzZXQsIFNFRUtfU0VUKSAhPSAwCisr ICAgICAgfHwgYmZkX2JyZWFkIChmb290ZXIsIExaTUFfU1RSRUFNX0hFQURFUl9TSVpFLCBzZWN0 aW9uLT5vd25lcikKKysgICAgICAgICAhPSBMWk1BX1NUUkVBTV9IRUFERVJfU0laRQorKyAgICAg IHx8IGx6bWFfc3RyZWFtX2Zvb3Rlcl9kZWNvZGUgKCZvcHRpb25zLCBmb290ZXIpICE9IExaTUFf T0sKKysgICAgICB8fCBvZmZzZXQgPCBvcHRpb25zLmJhY2t3YXJkX3NpemUpCisrICAgIHsKKysg ICAgICBiZmRfc2V0X2Vycm9yIChiZmRfZXJyb3Jfd3JvbmdfZm9ybWF0KTsKKysgICAgICByZXR1 cm4gTlVMTDsKKysgICAgfQorKworKyAgb2Zmc2V0IC09IG9wdGlvbnMuYmFja3dhcmRfc2l6ZTsK KysgIGluZGV4ZGF0YSA9IHhtYWxsb2MgKG9wdGlvbnMuYmFja3dhcmRfc2l6ZSk7CisrICBpbmRl eCA9IE5VTEw7CisrICBwb3MgPSAwOworKyAgaWYgKGJmZF9zZWVrIChzZWN0aW9uLT5vd25lciwg b2Zmc2V0LCBTRUVLX1NFVCkgIT0gMAorKyAgICAgIHx8IGJmZF9icmVhZCAoaW5kZXhkYXRhLCBv cHRpb25zLmJhY2t3YXJkX3NpemUsIHNlY3Rpb24tPm93bmVyKQorKyAgICAgICAgICE9IG9wdGlv bnMuYmFja3dhcmRfc2l6ZQorKyAgICAgIHx8IGx6bWFfaW5kZXhfYnVmZmVyX2RlY29kZSAoJmlu ZGV4LCAmbWVtbGltaXQsICZnZGJfbHptYV9hbGxvY2F0b3IsCisrCQkJCSAgIGluZGV4ZGF0YSwg JnBvcywgb3B0aW9ucy5iYWNrd2FyZF9zaXplKQorKyAgICAgICAgICE9IExaTUFfT0sKKysgICAg ICB8fCBsem1hX2luZGV4X3NpemUgKGluZGV4KSAhPSBvcHRpb25zLmJhY2t3YXJkX3NpemUpCisr ICAgIHsKKysgICAgICB4ZnJlZSAoaW5kZXhkYXRhKTsKKysgICAgICBiZmRfc2V0X2Vycm9yIChi ZmRfZXJyb3Jfd3JvbmdfZm9ybWF0KTsKKysgICAgICByZXR1cm4gTlVMTDsKKysgICAgfQorKyAg eGZyZWUgKGluZGV4ZGF0YSk7CisrCisrICBsc3RyZWFtID0geHphbGxvYyAoc2l6ZW9mIChzdHJ1 Y3QgbHptYV9zdHJlYW0pKTsKKysgIGxzdHJlYW0tPnNlY3Rpb24gPSBzZWN0aW9uOworKyAgbHN0 cmVhbS0+aW5kZXggPSBpbmRleDsKKysKKysgIHJldHVybiBsc3RyZWFtOworK30KKysKKysvKiBi ZmRfb3BlbnJfaW92ZWMgUFJFQURfUCBpbXBsZW1lbnRhdGlvbiBmb3IKKysgICBmaW5kX3NlcGFy YXRlX2RlYnVnX2ZpbGVfaW5fc2VjdGlvbi4gIFBhc3NlZCBTVFJFQU0KKysgICBpcyAnc3RydWN0 IGx6bWFfc3RyZWFtIConLiAgKi8KKysKKytzdGF0aWMgZmlsZV9wdHIKKytsem1hX3ByZWFkIChz dHJ1Y3QgYmZkICpuYmZkLCB2b2lkICpzdHJlYW0sIHZvaWQgKmJ1ZiwgZmlsZV9wdHIgbmJ5dGVz LAorKwkgICAgZmlsZV9wdHIgb2Zmc2V0KQorK3sKKysgIHN0cnVjdCBsem1hX3N0cmVhbSAqbHN0 cmVhbSA9IHN0cmVhbTsKKysgIGJmZF9zaXplX3R5cGUgY2h1bmtfc2l6ZTsKKysgIGx6bWFfaW5k ZXhfaXRlciBpdGVyOworKyAgZ2RiX2J5dGUgKmNvbXByZXNzZWQsICp1bmNvbXByZXNzZWQ7Cisr ICBmaWxlX3B0ciBibG9ja19vZmZzZXQ7CisrICBsem1hX2ZpbHRlciBmaWx0ZXJzW0xaTUFfRklM VEVSU19NQVggKyAxXTsKKysgIGx6bWFfYmxvY2sgYmxvY2s7CisrICBzaXplX3QgY29tcHJlc3Nl ZF9wb3MsIHVuY29tcHJlc3NlZF9wb3M7CisrICBmaWxlX3B0ciByZXM7CisrCisrICByZXMgPSAw OworKyAgd2hpbGUgKG5ieXRlcyA+IDApCisrICAgIHsKKysgICAgICBpZiAobHN0cmVhbS0+ZGF0 YSA9PSBOVUxMCisrCSAgfHwgbHN0cmVhbS0+ZGF0YV9zdGFydCA+IG9mZnNldCB8fCBvZmZzZXQg Pj0gbHN0cmVhbS0+ZGF0YV9lbmQpCisrCXsKKysJICBhc2VjdGlvbiAqc2VjdGlvbiA9IGxzdHJl YW0tPnNlY3Rpb247CisrCisrCSAgbHptYV9pbmRleF9pdGVyX2luaXQgKCZpdGVyLCBsc3RyZWFt LT5pbmRleCk7CisrCSAgaWYgKGx6bWFfaW5kZXhfaXRlcl9sb2NhdGUgKCZpdGVyLCBvZmZzZXQp KQorKwkgICAgYnJlYWs7CisrCisrCSAgY29tcHJlc3NlZCA9IHhtYWxsb2MgKGl0ZXIuYmxvY2su dG90YWxfc2l6ZSk7CisrCSAgYmxvY2tfb2Zmc2V0ID0gc2VjdGlvbi0+ZmlsZXBvcyArIGl0ZXIu YmxvY2suY29tcHJlc3NlZF9maWxlX29mZnNldDsKKysJICBpZiAoYmZkX3NlZWsgKHNlY3Rpb24t Pm93bmVyLCBibG9ja19vZmZzZXQsIFNFRUtfU0VUKSAhPSAwCisrCSAgICAgIHx8IGJmZF9icmVh ZCAoY29tcHJlc3NlZCwgaXRlci5ibG9jay50b3RhbF9zaXplLCBzZWN0aW9uLT5vd25lcikKKysJ CSAhPSBpdGVyLmJsb2NrLnRvdGFsX3NpemUpCisrCSAgICB7CisrCSAgICAgIHhmcmVlIChjb21w cmVzc2VkKTsKKysJICAgICAgYnJlYWs7CisrCSAgICB9CisrCisrCSAgdW5jb21wcmVzc2VkID0g eG1hbGxvYyAoaXRlci5ibG9jay51bmNvbXByZXNzZWRfc2l6ZSk7CisrCisrCSAgbWVtc2V0ICgm YmxvY2ssIDAsIHNpemVvZiAoYmxvY2spKTsKKysJICBibG9jay5maWx0ZXJzID0gZmlsdGVyczsK KysJICBibG9jay5oZWFkZXJfc2l6ZSA9IGx6bWFfYmxvY2tfaGVhZGVyX3NpemVfZGVjb2RlIChj b21wcmVzc2VkWzBdKTsKKysJICBpZiAobHptYV9ibG9ja19oZWFkZXJfZGVjb2RlICgmYmxvY2ss ICZnZGJfbHptYV9hbGxvY2F0b3IsIGNvbXByZXNzZWQpCisrCSAgICAgICE9IExaTUFfT0spCisr CSAgICB7CisrCSAgICAgIHhmcmVlIChjb21wcmVzc2VkKTsKKysJICAgICAgeGZyZWUgKHVuY29t cHJlc3NlZCk7CisrCSAgICAgIGJyZWFrOworKwkgICAgfQorKworKwkgIGNvbXByZXNzZWRfcG9z ID0gYmxvY2suaGVhZGVyX3NpemU7CisrCSAgdW5jb21wcmVzc2VkX3BvcyA9IDA7CisrCSAgaWYg KGx6bWFfYmxvY2tfYnVmZmVyX2RlY29kZSAoJmJsb2NrLCAmZ2RiX2x6bWFfYWxsb2NhdG9yLAor KwkJCQkJY29tcHJlc3NlZCwgJmNvbXByZXNzZWRfcG9zLAorKwkJCQkJaXRlci5ibG9jay50b3Rh bF9zaXplLAorKwkJCQkJdW5jb21wcmVzc2VkLCAmdW5jb21wcmVzc2VkX3BvcywKKysJCQkJCWl0 ZXIuYmxvY2sudW5jb21wcmVzc2VkX3NpemUpCisrCSAgICAgICE9IExaTUFfT0spCisrCSAgICB7 CisrCSAgICAgIHhmcmVlIChjb21wcmVzc2VkKTsKKysJICAgICAgeGZyZWUgKHVuY29tcHJlc3Nl ZCk7CisrCSAgICAgIGJyZWFrOworKwkgICAgfQorKworKwkgIHhmcmVlIChjb21wcmVzc2VkKTsK KysKKysJICB4ZnJlZSAobHN0cmVhbS0+ZGF0YSk7CisrCSAgbHN0cmVhbS0+ZGF0YSA9IHVuY29t cHJlc3NlZDsKKysJICBsc3RyZWFtLT5kYXRhX3N0YXJ0ID0gaXRlci5ibG9jay51bmNvbXByZXNz ZWRfZmlsZV9vZmZzZXQ7CisrCSAgbHN0cmVhbS0+ZGF0YV9lbmQgPSAoaXRlci5ibG9jay51bmNv bXByZXNzZWRfZmlsZV9vZmZzZXQKKysJCQkgICAgICAgKyBpdGVyLmJsb2NrLnVuY29tcHJlc3Nl ZF9zaXplKTsKKysJfQorKworKyAgICAgIGNodW5rX3NpemUgPSBtaW4gKG5ieXRlcywgbHN0cmVh bS0+ZGF0YV9lbmQgLSBvZmZzZXQpOworKyAgICAgIG1lbWNweSAoYnVmLCBsc3RyZWFtLT5kYXRh ICsgb2Zmc2V0IC0gbHN0cmVhbS0+ZGF0YV9zdGFydCwgY2h1bmtfc2l6ZSk7CisrICAgICAgYnVm ID0gKGdkYl9ieXRlICopIGJ1ZiArIGNodW5rX3NpemU7CisrICAgICAgb2Zmc2V0ICs9IGNodW5r X3NpemU7CisrICAgICAgbmJ5dGVzIC09IGNodW5rX3NpemU7CisrICAgICAgcmVzICs9IGNodW5r X3NpemU7CisrICAgIH0KKysKKysgIHJldHVybiByZXM7CisrfQorKworKy8qIGJmZF9vcGVucl9p b3ZlYyBDTE9TRV9QIGltcGxlbWVudGF0aW9uIGZvcgorKyAgIGZpbmRfc2VwYXJhdGVfZGVidWdf ZmlsZV9pbl9zZWN0aW9uLiAgUGFzc2VkIFNUUkVBTQorKyAgIGlzICdzdHJ1Y3QgbHptYV9zdHJl YW0gKicuICAqLworKworK3N0YXRpYyBpbnQKKytsem1hX2Nsb3NlIChzdHJ1Y3QgYmZkICpuYmZk LAorKwkgICAgdm9pZCAqc3RyZWFtKQorK3sKKysgIHN0cnVjdCBsem1hX3N0cmVhbSAqbHN0cmVh bSA9IHN0cmVhbTsKKysKKysgIGx6bWFfaW5kZXhfZW5kIChsc3RyZWFtLT5pbmRleCwgJmdkYl9s em1hX2FsbG9jYXRvcik7CisrICB4ZnJlZSAobHN0cmVhbS0+ZGF0YSk7CisrICB4ZnJlZSAobHN0 cmVhbSk7CisrICByZXR1cm4gMDsKKyt9CisrCisrLyogYmZkX29wZW5yX2lvdmVjIFNUQVRfUCBp bXBsZW1lbnRhdGlvbiBmb3IKKysgICBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfaW5fc2VjdGlv bi4gIFBhc3NlZCBTVFJFQU0KKysgICBpcyAnc3RydWN0IGx6bWFfc3RyZWFtIConLiAgKi8KKysK KytzdGF0aWMgaW50CisrbHptYV9zdGF0IChzdHJ1Y3QgYmZkICphYmZkLAorKwkgICB2b2lkICpz dHJlYW0sCisrCSAgIHN0cnVjdCBzdGF0ICpzYikKKyt7CisrICBzdHJ1Y3QgbHptYV9zdHJlYW0g KmxzdHJlYW0gPSBzdHJlYW07CisrCisrICBzYi0+c3Rfc2l6ZSA9IGx6bWFfaW5kZXhfdW5jb21w cmVzc2VkX3NpemUgKGxzdHJlYW0tPmluZGV4KTsKKysgIHJldHVybiAwOworK30KKysKKysvKiBU aGlzIGxvb2tzIGZvciBhIHh6IGNvbXByZXNzZWQgc2VwYXJhdGUgZGVidWcgaW5mbyBvYmplY3Qg ZmlsZSBlbWJlZGRlZAorKyAgIGluIGEgc2VjdGlvbiBjYWxsZWQgLmdudV9kZWJ1Z2RhdGEuIElm IHdlIGZpbmQgb25lIHdlIGNyZWF0ZSBhIGlvdmVjCisrICAgYmFzZWQgYmZkIHRoYXQgZGVjb21w cmVzc2VzIHRoZSBvYmplY3QgZGF0YSBvbiBkZW1hbmQuICAqLworKworK3N0YXRpYyBiZmQgKgor K2ZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZV9pbl9zZWN0aW9uIChzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZSkKKyt7CisrICBhc2VjdGlvbiAqc2VjdGlvbjsKKysgIGJmZCAqYWJmZDsKKysKKysgIHNl Y3Rpb24gPSBiZmRfZ2V0X3NlY3Rpb25fYnlfbmFtZSAob2JqZmlsZS0+b2JmZCwgIi5nbnVfZGVi dWdkYXRhIik7CisrICBpZiAoc2VjdGlvbiA9PSBOVUxMKQorKyAgICByZXR1cm4gTlVMTDsKKysK KysgIC8qIG9iamZpbGUtPk5BTUUgbGlmZXRpbWUgaXMgbG9uZ2VyIHRoYW4gdGhlIEFCRkQncyBs aWZldGltZS4gICovCisrICBhYmZkID0gYmZkX29wZW5yX2lvdmVjIChvYmpmaWxlLT5uYW1lLCBn bnV0YXJnZXQsIGx6bWFfb3Blbiwgc2VjdGlvbiwKKysJCQkgIGx6bWFfcHJlYWQsIGx6bWFfY2xv c2UsIGx6bWFfc3RhdCk7CisrICBpZiAoYWJmZCA9PSBOVUxMKQorKyAgICByZXR1cm4gTlVMTDsK KysKKysgIGlmICghYmZkX2NoZWNrX2Zvcm1hdCAoYWJmZCwgYmZkX29iamVjdCkpCisrICAgIHsK KysgICAgICBiZmRfY2xvc2UgKGFiZmQpOworKyAgICAgIHJldHVybiBOVUxMOworKyAgICB9Cisr CisrICByZXR1cm4gYWJmZDsKKyt9CisrCisrI2Vsc2UgLyogIUhBVkVfTElCTFpNQSAqLworKwor K3N0YXRpYyBiZmQgKgorK2ZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZV9pbl9zZWN0aW9uIChzdHJ1 Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKKyt7CisrICByZXR1cm4gTlVMTDsKKyt9CisrCisrI2VuZGlm IC8qICFIQVZFX0xJQkxaTUEgKi8KKysKKyAvKiBTY2FuIGFuZCBidWlsZCBwYXJ0aWFsIHN5bWJv bHMgZm9yIGEgc3ltYm9sIGZpbGUuCisgICAgV2UgaGF2ZSBiZWVuIGluaXRpYWxpemVkIGJ5IGEg Y2FsbCB0byBlbGZfc3ltZmlsZV9pbml0LCB3aGljaAorICAgIGN1cnJlbnRseSBkb2VzIG5vdGhp bmcuCitAQCAtMjQzMyw2ICsyNjkzLDcgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3RydWN0IG9iamZp bGUgKm9iamZpbAorICAgZWxzZSBpZiAoIW9iamZpbGVfaGFzX3BhcnRpYWxfc3ltYm9scyAob2Jq ZmlsZSkpCisgICAgIHsKKyAgICAgICBjaGFyICpkZWJ1Z2ZpbGUsICpidWlsZF9pZF9maWxlbmFt ZTsKKysgICAgICBiZmQgKmFiZmQgPSBOVUxMOworIAorICAgICAgIGRlYnVnZmlsZSA9IGZpbmRf c2VwYXJhdGVfZGVidWdfZmlsZV9ieV9idWlsZGlkIChvYmpmaWxlLAorIAkJCQkJCSAgICAgICAm YnVpbGRfaWRfZmlsZW5hbWUpOworQEAgLTI0NDIsOSArMjcwMyw3IEBAIGVsZl9zeW1maWxlX3Jl YWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWwKKyAKKyAgICAgICBpZiAoZGVidWdmaWxlKQorIAl7 CistCSAgYmZkICphYmZkID0gc3ltZmlsZV9iZmRfb3BlbiAoZGVidWdmaWxlKTsKKy0KKy0JICBz eW1ib2xfZmlsZV9hZGRfc2VwYXJhdGUgKGFiZmQsIHN5bWZpbGVfZmxhZ3MsIG9iamZpbGUpOwor KwkgIGFiZmQgPSBzeW1maWxlX2JmZF9vcGVuIChkZWJ1Z2ZpbGUpOworIAkgIHhmcmVlIChkZWJ1 Z2ZpbGUpOworIAl9CisgICAgICAgLyogQ2hlY2sgaWYgYW55IHNlcGFyYXRlIGRlYnVnIGluZm8g aGFzIGJlZW4gZXh0cmFjdGVkIG91dC4gICovCitAQCAtMjQ1Myw2ICsyNzEyLDEyIEBAIGVsZl9z eW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWwKKyAJZGVidWdfcHJpbnRfbWlzc2lu ZyAob2JqZmlsZS0+bmFtZSwgYnVpbGRfaWRfZmlsZW5hbWUpOworIAorICAgICAgIHhmcmVlIChi dWlsZF9pZF9maWxlbmFtZSk7CisrCisrICAgICAgaWYgKGFiZmQgPT0gTlVMTCkKKysJYWJmZCA9 IGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZV9pbl9zZWN0aW9uIChvYmpmaWxlKTsKKysKKysgICAg ICBpZiAoYWJmZCAhPSBOVUxMKQorKwlzeW1ib2xfZmlsZV9hZGRfc2VwYXJhdGUgKGFiZmQsIHN5 bWZpbGVfZmxhZ3MsIG9iamZpbGUpOworICAgICB9CisgCisgICBpZiAoc3ltdGFiX2NyZWF0ZV9k ZWJ1ZykKK0luZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJm Mi9kdzItZ251LWRlYnVnZGF0YS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIv dGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWdudS1kZWJ1Z2RhdGEuYwkyMDEyLTA3LTA1IDIyOjQ3 OjQ1LjQ4ODUwOTM2MCArMDIwMAorQEAgLTAsMCArMSwzMCBAQAorKy8qIFRoaXMgdGVzdGNhc2Ug aXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisrCisrICAgQ29weXJpZ2h0IDIwMTIg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgICBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgICBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisr ICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpbmNsdWRlIDxzaWduYWwuaD4KKysKKytzdGF0aWMg aW50CisrZGVidWdkYXRhX2Z1bmN0aW9uICh2b2lkKQorK3sKKysgIHJldHVybiByYWlzZSAoU0lH U0VHVikgKyAxOworK30KKysKKytpbnQKKyttYWluICh2b2lkKQorK3sKKysgIHJldHVybiBkZWJ1 Z2RhdGFfZnVuY3Rpb24gKCkgKyAxOworK30KK0luZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItZ251LWRlYnVnZGF0YS5leHAKKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBn ZGItNy40LjUwLjIwMTIwNzAzL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItZ251LWRlYnVn ZGF0YS5leHAJMjAxMi0wNy0wNSAyMjo1MDozNi42MjIzNDg5MDAgKzAyMDAKK0BAIC0wLDAgKzEs OTEgQEAKKysjIENvcHlyaWdodCAyMDEyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgor KyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor KyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K KysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNl ZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrc3RhbmRhcmRfdGVzdGZpbGUK KysKKytsb2FkX2xpYiBkd2FyZi5leHAKKytpZiAhW2R3YXJmMl9zdXBwb3J0XSB7CisrICAgIHJl dHVybiAwCisrfQorKworK2lmIFtidWlsZF9leGVjdXRhYmxlICR7dGVzdGZpbGV9LmV4cCAkdGVz dGZpbGVdIHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK3Byb2MgcnVuIHsgdGVzdCBjbWRsaW5l IH0geworKyAgICB2ZXJib3NlICJjbWRsaW5lIGlzICRjbWRsaW5lIgorKyAgICBzZXQgcmVzdWx0 IFtjYXRjaCAiZXhlYyAkY21kbGluZSIgb3V0cHV0XQorKyAgICB2ZXJib3NlICJyZXN1bHQgaXMg JHJlc3VsdCIKKysgICAgdmVyYm9zZSAib3V0cHV0IGlzICRvdXRwdXQiCisrICAgIGlmIHskcmVz dWx0ID09IDB9IHsKKysJcGFzcyAkdGVzdAorKwlyZXR1cm4gMAorKyAgICB9IGVsc2UgeworKwlm YWlsICR0ZXN0CisrCXJldHVybiAtMQorKyAgICB9CisrfQorKworK3NldCBzdHJpcF9wcm9ncmFt IFt0cmFuc2Zvcm0gc3RyaXBdCisrc2V0IG5tX3Byb2dyYW0gW3RyYW5zZm9ybSBubV0KKysKKysj IEV4dHJhY3QgdGhlIGR5bmFtaWMgc3ltYm9scyBmcm9tIHRoZSBtYWluIGJpbmFyeSwgdGhlcmUg aXMgbm8gbmVlZCB0byBhbHNvIGhhdmUgdGhlc2UKKysjIGluIHRoZSBub3JtYWwgc3ltYm9sIHRh YmxlCisrZmlsZSBkZWxldGUgLS0gJHtiaW5maWxlfS5keW5zeW1zCisraWYgW3J1biAibm0gLUQi ICJbdHJhbnNmb3JtIG5tXSAtRCAke2JpbmZpbGV9IC0tZm9ybWF0PXBvc2l4IC0tZGVmaW5lZC1v bmx5IHwgYXdrIFxce3ByaW50XFwgXFxcJDFcXH0gfCBzb3J0ID4gJHtiaW5maWxlfS5keW5zeW1z Il0geworKyAgICByZXR1cm4gLTEKKyt9CisrCisrIyBFeHRyYWN0IGFsbCB0aGUgdGV4dCAoaS5l LiBmdW5jdGlvbikgc3ltYm9scyBmcm9tIHRoZSBkZWJ1Z2luZm8KKytmaWxlIGRlbGV0ZSAtLSAk e2JpbmZpbGV9LmZ1bmNzeW1zCisraWYgW3J1biAibm0iICJbdHJhbnNmb3JtIG5tXSAke2JpbmZp bGV9IC0tZm9ybWF0PXBvc2l4IC0tZGVmaW5lZC1vbmx5IHwgYXdrIFxce2lmKFxcXCQyPT1cIlRc Inx8XFxcJDI9PVwidFwiKXByaW50XFwgXFxcJDFcXH0gfCBzb3J0ID4gJHtiaW5maWxlfS5mdW5j c3ltcyJdIHsKKysgICAgcmV0dXJuIC0xCisrfQorKworKyMgS2VlcCBhbGwgdGhlIGZ1bmN0aW9u IHN5bWJvbHMgbm90IGFscmVhZHkgaW4gdGhlIGR5bmFtaWMgc3ltYm9sIHRhYmxlCisrZmlsZSBk ZWxldGUgLS0gJHtiaW5maWxlfS5rZWVwX3N5bWJvbHMKKytpZiBbcnVuICJjb21tIiAiY29tbSAt MTMgJHtiaW5maWxlfS5keW5zeW1zICR7YmluZmlsZX0uZnVuY3N5bXMgPiAke2JpbmZpbGV9Lmtl ZXBfc3ltYm9scyJdIHsKKysgICAgcmV0dXJuIC0xCisrfQorKworKyMgQ29weSB0aGUgZnVsbCBk ZWJ1Z2luZm8sIGtlZXBpbmcgb25seSBhIG1pbnVtYWwgc2V0IG9mIHN5bWJvbHMgYW5kIHJlbW92 aW5nIHNvbWUgdW5uZWNlc3Nhcnkgc2VjdGlvbnMKKytmaWxlIGRlbGV0ZSAtLSAke2JpbmZpbGV9 Lm1pbmlfZGVidWdpbmZvCisraWYgW3J1biAib2JqY29weSAxIiAiW3RyYW5zZm9ybSBvYmpjb3B5 XSAtUyAtLXJlbW92ZS1zZWN0aW9uIC5nZGJfaW5kZXggLS1yZW1vdmUtc2VjdGlvbiAuY29tbWVu dCAtLWtlZXAtc3ltYm9scz0ke2JpbmZpbGV9LmtlZXBfc3ltYm9scyAke2JpbmZpbGV9ICR7Ymlu ZmlsZX0ubWluaV9kZWJ1Z2luZm8iXSB7CisrICAgIHJldHVybiAtMQorK30KKysKKysjIEdEQiBz cGVjaWZpYyAtIHdlIGRvIG5vdCBoYXZlIHNwbGl0IGV4ZWN1dGFibGUgaW4gYWR2YW5jZS4KKytm aWxlIGRlbGV0ZSAtLSAke2JpbmZpbGV9LnN0cmlwCisraWYgW3J1biAic3RyaXAiICJbdHJhbnNm b3JtIHN0cmlwXSAtLXN0cmlwLWFsbCAtbyAke2JpbmZpbGV9LnN0cmlwICR7YmluZmlsZX0iXSB7 CisrICAgIHJldHVybiAtMQorK30KKysKKysjIEluamVjdCB0aGUgY29tcHJlc3NlZCBkYXRhIGlu dG8gdGhlIC5nbnVfZGVidWdkYXRhIHNlY3Rpb24gb2YgdGhlIG9yaWdpbmFsIGJpbmFyeQorK2Zp bGUgZGVsZXRlIC0tICR7YmluZmlsZX0ubWluaV9kZWJ1Z2luZm8ueHoKKytpZiBbcnVuICJ4eiIg Inh6ICR7YmluZmlsZX0ubWluaV9kZWJ1Z2luZm8iXSB7CisrICAgIHJldHVybiAtMQorK30KKytm aWxlIGRlbGV0ZSAtLSAke2JpbmZpbGV9LnRlc3QKKytpZiBbcnVuICJvYmpjb3B5IDIiICJbdHJh bnNmb3JtIG9iamNvcHldIC0tYWRkLXNlY3Rpb24gLmdudV9kZWJ1Z2RhdGE9JHtiaW5maWxlfS5t aW5pX2RlYnVnaW5mby54eiAke2JpbmZpbGV9LnN0cmlwICR7YmluZmlsZX0udGVzdCJdIHsKKysg ICAgcmV0dXJuIC0xCisrfQorKworK2NsZWFuX3Jlc3RhcnQgIiR0ZXN0ZmlsZS5zdHJpcCIKKysK KytnZGJfdGVzdCAicCBkZWJ1Z2RhdGFfZnVuY3Rpb24iIHtObyBzeW1ib2wgdGFibGUgaXMgbG9h ZGVkXC4gIFVzZSB0aGUgImZpbGUiIGNvbW1hbmRcLn0gIm5vIHN5bXRhYiIKKysKKytjbGVhbl9y ZXN0YXJ0ICIkdGVzdGZpbGUudGVzdCIKKysKKytnZGJfdGVzdCAicCBkZWJ1Z2RhdGFfZnVuY3Rp b24iIHsgPSB7PHRleHQgdmFyaWFibGUsIG5vIGRlYnVnIGluZm8+fSAweFswLTlhLWZdKyA8ZGVi dWdkYXRhX2Z1bmN0aW9uPn0gImhhdmUgc3ltdGFiIgoKZGlmZiAtLWdpdCBhL2dkYi5zcGVjIGIv Z2RiLnNwZWMKaW5kZXggMTMzYmEyMi4uZWM4NzdjMSAxMDA2NDQKLS0tIGEvZ2RiLnNwZWMKKysr IGIvZ2RiLnNwZWMKQEAgLTM1LDcgKzM1LDcgQEAgVmVyc2lvbjogNy40LjUwLiV7c25hcH0KIAog IyBUaGUgcmVsZWFzZSBhbHdheXMgY29udGFpbnMgYSBsZWFkaW5nIHJlc2VydmVkIG51bWJlciwg c3RhcnQgaXQgYXQgMS4KICMgYHVwc3RyZWFtJyBpcyBub3QgYSBwYXJ0IG9mIGBuYW1lJyB0byBz dGF5IGZ1bGx5IHJwbSBkZXBlbmRlbmNpZXMgY29tcGF0aWJsZSBmb3IgdGhlIHRlc3RpbmcuCi1S ZWxlYXNlOiA4JXs/ZGlzdH0KK1JlbGVhc2U6IDklez9kaXN0fQogCiBMaWNlbnNlOiBHUEx2Mysg YW5kIEdQTHYzKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTHYyKyBhbmQgR1BMdjIrIHdpdGggZXhj ZXB0aW9ucyBhbmQgR1BMKyBhbmQgTEdQTHYyKyBhbmQgQlNEIGFuZCBQdWJsaWMgRG9tYWluCiBH cm91cDogRGV2ZWxvcG1lbnQvRGVidWdnZXJzCkBAIC01NjksNiArNTY5LDEwIEBAIFBhdGNoNzAz OiBnZGItcmhiei04MTgzNDMtc2V0LXNvbGliLWFic29sdXRlLXByZWZpeC10ZXN0Y2FzZS5wYXRj aAogIz1wdXNoCiBQYXRjaDcxNTogZ2RiLWVycm5vLWZ1bmMtZGF0YXR5cGUtcmV2ZXJ0LnBhdGNo CiAKKyMgSW1wbGVtZW50IE1pbmlEZWJ1Z0luZm8gRi0xOCBGZWF0dXJlIGNvbnN1bWVyIChBbGV4 YW5kZXIgTGFyc3NvbiwgQlogODM0MDY4KS4KKyM9ZmVkb3JhCitQYXRjaDcxNjogZ2RiLW1pbmlk ZWJ1Z2luZm8ucGF0Y2gKKwogJWlmIDAleyE/cmhlbDoxfSB8fCAwJXs/cmhlbH0gPiA2CiAjIFJM X1NUQVRFX0ZFRE9SQV9HREIgd291bGQgbm90IGJlIGZvdW5kIGZvcjoKICMgUGF0Y2g2NDI6IGdk Yi1yZWFkbGluZTYyLWFzay1tb3JlLXJoLnBhdGNoCkBAIC04NTgsNiArODYyLDcgQEAgcm0gLWYg Z2RiL2p2LWV4cC5jIGdkYi9tMi1leHAuYyBnZGIvb2JqYy1leHAuYyBnZGIvcC1leHAuYwogJXBh dGNoNjk1IC1wMQogJXBhdGNoNjk4IC1wMQogJXBhdGNoNzAzIC1wMQorJXBhdGNoNzE2IC1wMQog CiAlcGF0Y2gzOTMgLXAxCiAlaWYgMCV7IT9lbDU6MX0gfHwgMCV7P3NjbDoxfQpAQCAtMTM0Nyw2 ICsxMzUyLDkgQEAgZmkKICVlbmRpZiAjIDAleyE/ZWw1OjF9IHx8ICIle190YXJnZXRfY3B1fSIg PT0gIm5vYXJjaCIKIAogJWNoYW5nZWxvZworKiBUaHUgSnVsICA1IDIwMTIgSmFuIEtyYXRvY2h2 aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy40LjUwLjIwMTIwNzAzLTkuZmMxOAor LSBJbXBsZW1lbnQgTWluaURlYnVnSW5mbyBGLTE4IEZlYXR1cmUgY29uc3VtZXIgKEFsZXhhbmRl ciBMYXJzc29uLCBCWiA4MzQwNjgpLgorCiAqIFR1ZSBKdWwgIDMgMjAxMiBKYW4gS3JhdG9jaHZp bCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjQuNTAuMjAxMjA3MDMtOC5mYzE4CiAt IFJlYmFzZSB0byBGU0YgR0RCIDcuNC41MC4yMDEyMDcwMy4KIC0gW2FyY2hlci10cm9tZXktZHd6 LW11bHRpZmlsZS1yZWJhc2VdIE1lcmdlIG5ldyBicmFuY2ggKFRvbSBUcm9tZXkpLgo=