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: Charalampos Stratakis To: git-commits@fedoraproject.org Subject: [rpms/pythran] f45: Update to 0.19.0 Date: Fri, 21 Aug 2026 13:34:16 GMT Message-ID: <178731925671.1.3495459413734116656.rpms-pythran-3ac8f2dc8ec8@fedoraproject.org> List-ID: X-Git-Repo: rpms/pythran X-Git-Branch: f45 X-Git-Rev: 3ac8f2dc8ec8698d609e383425a6c7c6ab773b46 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvcHl0aHJhbgogICAgICAgICAgICBCcmFuY2ggOiBmNDUKICAgICAgICAgICAg Q29tbWl0IDogM2FjOGYyZGM4ZWM4Njk4ZDYwOWUzODM0MjVhNmM3YzZhYjc3M2I0NgogICAgICAg ICAgICBBdXRob3IgOiBDaGFyYWxhbXBvcyBTdHJhdGFraXMgPGNzdHJhdGFrQHJlZGhhdC5jb20+ CiAgICAgICAgICAgIERhdGUgICA6IDIwMjYtMDgtMjBUMTM6MzA6MzIrMDI6MDAKICAgICAgICAg ICAgU3RhdHMgIDogKzMvLTEwODUgaW4gMTIgZmlsZShzKQogICAgICAgICAgICBVUkwgICAgOiBo dHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL3B5dGhyYW4vYy8zYWM4ZjJkYzhlYzg2 OThkNjA5ZTM4MzQyNWE2YzdjNmFiNzczYjQ2P2JyYW5jaD1mNDUKCiAgICAgICAgICAgIExvZzoK ICAgICAgICAgICAgVXBkYXRlIHRvIDAuMTkuMAoKLSBGaXhlczogcmhieiMyNTA0NjA4LCByaGJ6 IzI1MTc2NjMKCi0tLQpkaWZmIC0tZ2l0IGEvMjM3NS5wYXRjaCBiLzIzNzUucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyMDkyM2QuLjAwMDAwMDAKLS0tIGEvMjM3NS5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLUZyb20gNDQ0MWZiYTVjNjc3ZTQxZWVl OWU0OTQ4NWVmMGEzOGVhYTVmMGI5NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IHNl cmdlLXNhbnMtcGFpbGxlIDxzZXJnZS5ndWVsdG9uQHRlbGVjb20tYnJldGFnbmUuZXU+Ci1EYXRl OiBXZWQsIDE5IE5vdiAyMDI1IDEwOjE4OjA5ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIERvbid0 IHRlc3QgZmxvYXQxMjggd2hlbiBpdCBkb2VzIG5vdCBleGlzdCBpbiBudW1weQotCi0tLS0KLSBw eXRocmFuL3Rlc3RzL3Rlc3RfY29udmVyc2lvbi5weSB8IDYgKysrKy0tCi0gMSBmaWxlIGNoYW5n ZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3B5dGhy YW4vdGVzdHMvdGVzdF9jb252ZXJzaW9uLnB5IGIvcHl0aHJhbi90ZXN0cy90ZXN0X2NvbnZlcnNp b24ucHkKLWluZGV4IDZhYTBhODI5Yi4uNzZkYWU3YzRlIDEwMDY0NAotLS0tIGEvcHl0aHJhbi90 ZXN0cy90ZXN0X2NvbnZlcnNpb24ucHkKLSsrKyBiL3B5dGhyYW4vdGVzdHMvdGVzdF9jb252ZXJz aW9uLnB5Ci1AQCAtMjU3LDEyICsyNTcsMTQgQEAgZGVmIHRlc3RfYnVpbHRpbl90eXBlOShzZWxm KToKLSAKLSAgICAgZGVmIHRlc3Rfc2ltcGxlX21ldGFfdHlwZXMoc2VsZik6Ci0gICAgICAgICB0 eXBlcyA9IChjb21wbGV4LCBmbG9hdCwgaW50LCBib29sLCBzdHIsCi0tICAgICAgICAgICAgICAg ICBucC5mbG9hdDEyOCwgbnAuZmxvYXQ2NCwgbnAuZmxvYXQzMiwKLS0gICAgICAgICAgICAgICAg IG5wLmNvbXBsZXgyNTYsIG5wLmNvbXBsZXgxMjgsIG5wLmNvbXBsZXg2NCwKLSsgICAgICAgICAg ICAgICAgIG5wLmZsb2F0NjQsIG5wLmZsb2F0MzIsCi0rICAgICAgICAgICAgICAgICBucC5jb21w bGV4MTI4LCBucC5jb21wbGV4NjQsCi0gICAgICAgICAgICAgICAgICBucC51aW50NjQsIG5wLnVp bnQzMiwgbnAudWludDE2LCBucC51aW50OCwKLSAgICAgICAgICAgICAgICAgIG5wLmludDY0LCBu cC5pbnQzMiwgbnAuaW50MTYsIG5wLmludDgsCi0gICAgICAgICAgICAgICAgICBucC5pbnQ2NCwg bnAuaW50MzIsIG5wLmludDE2LCBucC5pbnQ4LAotICAgICAgICAgICAgICAgICAgKQotKyAgICAg ICAgaWYgaGFzX2Zsb2F0MTI4OgotKyAgICAgICAgICAgIHR5cGVzICs9IG5wLmZsb2F0MTI4LCBu cC5jb21wbGV4MjU2Ci0gICAgICAgICBmb3IgaSwgdHkgaW4gZW51bWVyYXRlKHR5cGVzKToKLSAg ICAgICAgICAgICBrd2FyZ3M9IHtmInNpbXBsZV9tZXRhX3R5cGVzX3tpfSI6IFtUeXBlW3R5XV19 Ci0gICAgICAgICAgICAgc2VsZi5ydW5fdGVzdChmImRlZiBzaW1wbGVfbWV0YV90eXBlc197aX0o b2JqKTogcmV0dXJuIG9iaigpIiwKCmRpZmYgLS1naXQgYS8yMzk4LnBhdGNoIGIvMjM5OC5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2JhY2UwNC4uMDAwMDAwMAotLS0gYS8y Mzk4LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotRnJvbSAzYjE5OWE2MDNi M2IxNzg1MzMyZjlmZTY2Mzc5YjVjZDA2NDIyNDg3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogRWxpIFNjaHdhcnR6IDxlc2Nod2FydHpAZ2VudG9vLm9yZz4KLURhdGU6IFN1biwgMTgg SmFuIDIwMjYgMjA6MDc6MDAgLTA1MDAKLVN1YmplY3Q6IFtQQVRDSF0gbWFyayBudW1weSBmbG9h dDEyOCB0ZXN0cyBhcyBza2lwcGFibGUgd2hlbiBudW1weSBsYWNrcwotIGZsb2F0MTI4IHN1cHBv cnQKLQotU2lnbmVkLW9mZi1ieTogRWxpIFNjaHdhcnR6IDxlc2Nod2FydHpAZ2VudG9vLm9yZz4K LS0tLQotIHB5dGhyYW4vdGVzdHMvdGVzdF9udW1weV9mdW5jMi5weSB8IDcgKysrKysrKwotIDEg ZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL3B5dGhyYW4vdGVz dHMvdGVzdF9udW1weV9mdW5jMi5weSBiL3B5dGhyYW4vdGVzdHMvdGVzdF9udW1weV9mdW5jMi5w eQotaW5kZXggMmIxZjMxYmVmLi5jZTI5YmI5MmQgMTAwNjQ0Ci0tLS0gYS9weXRocmFuL3Rlc3Rz L3Rlc3RfbnVtcHlfZnVuYzIucHkKLSsrKyBiL3B5dGhyYW4vdGVzdHMvdGVzdF9udW1weV9mdW5j Mi5weQotQEAgLTUsNiArNSwxMiBAQAotIAotIGZyb20gcHl0aHJhbi50eXBpbmcgaW1wb3J0IE5E QXJyYXksIExpc3QsIFR1cGxlCi0gCi0rdHJ5OgotKyAgICBudW1weS5mbG9hdDEyOAotKyAgICBo YXNfZmxvYXQxMjggPSBUcnVlCi0rZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotKyAgICBoYXNfZmxv YXQxMjggPSBGYWxzZQotKwotIAotIG5wX3ZlcnNpb24gPSB2ZXJzaW9uLnBhcnNlKG51bXB5LnZl cnNpb24udmVyc2lvbikKLSAKLUBAIC0yMDYsNiArMjEyLDcgQEAgZGVmIHRlc3RfY29udm9sdmVf MihzZWxmKToKLSAgICAgICAgICAgICAgICAgICBudW1weS5hcmFuZ2UoMTAsZHR5cGU9ZmxvYXQp LAotICAgICAgICAgICAgICAgICAgIG5wX2NvbnZvbHZlXzI9W05EQXJyYXlbZmxvYXQsOl0sTkRB cnJheVtmbG9hdCw6XV0pCi0gCi0rICAgIEB1bml0dGVzdC5za2lwSWYobm90IGhhc19mbG9hdDEy OCwgJ25vdCBmbG9hdDEyOCcpCi0gICAgIGRlZiB0ZXN0X2NvbnZvbHZlXzJiKHNlbGYpOgotICAg ICAgICAgc2VsZi5ydW5fdGVzdCgiZGVmIG5wX2NvbnZvbHZlXzJiKGEsYik6XG4gZnJvbSBudW1w eSBpbXBvcnQgY29udm9sdmVcbiByZXR1cm4gY29udm9sdmUoYSxiKSIsCi0gICAgICAgICAgICAg ICAgICAgbnVtcHkuYXJhbmdlKDEyLGR0eXBlPW51bXB5LmZsb2F0MTI4KSwKCmRpZmYgLS1naXQg YS8yNDAyLnBhdGNoIGIvMjQwMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg ZjQxZGUzNC4uMDAwMDAwMAotLS0gYS8yNDAyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzkg KzAsMCBAQAotRnJvbSBhNjYwZGE3NGE2MzAzOWYzMzQwMjE2MmRkODkwN2ZhZTliYTQ2MTdkIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogc2VyZ2Utc2Fucy1wYWlsbGUgPHNlcmdlLmd1 ZWx0b25AdGVsZWNvbS1icmV0YWduZS5ldT4KLURhdGU6IFdlZCwgMjggSmFuIDIwMjYgMTE6MzQ6 MTQgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gW3BseV0gTWFrZSBweXRocmFuIGNvbXBhdGlibGUg d2l0aCB0b3Atb2YtdHJlZSBQTFkgdmVyc2lvbgotCi1GaXggIzIzOTMKLS0tLQotIHB5dGhyYW4v c3BlYy5weSB8IDExICsrKysrKystLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygr KSwgNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3B5dGhyYW4vc3BlYy5weSBiL3B5dGhy YW4vc3BlYy5weQotaW5kZXggMTdlODQ0ZjBlLi4xMzk4YmI0ZDIgMTAwNjQ0Ci0tLS0gYS9weXRo cmFuL3NwZWMucHkKLSsrKyBiL3B5dGhyYW4vc3BlYy5weQotQEAgLTYsNiArNiw3IEBACi0gCi0g ZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3QKLSBmcm9tIGl0ZXJ0b29scyBpbXBv cnQgcHJvZHVjdCwgY2hhaW4KLStpbXBvcnQgaW5zcGVjdAotIGltcG9ydCByZQotIGltcG9ydCBw bHkubGV4IGFzIGxleAotIGltcG9ydCBwbHkueWFjYyBhcyB5YWNjCi1AQCAtNTIzLDEwICs1MjQs MTIgQEAgZGVmIHBfZXJyb3Ioc2VsZiwgcCk6Ci0gCi0gICAgIGRlZiBfX2luaXRfXyhzZWxmKToK LSAgICAgICAgIHNlbGYubGV4ZXIgPSBsZXgubGV4KG1vZHVsZT1zZWxmLCBkZWJ1Zz1GYWxzZSkK LS0gICAgICAgICMgRG8gbm90IHdyaXRlIHRoZSB0YWJsZSBmb3IgYmV0dGVyIGNvbXBhdGliaWxp dHkgYWNyb3NzIHBseSB2ZXJzaW9uCi0tICAgICAgICBzZWxmLnBhcnNlciA9IHlhY2MueWFjYyht b2R1bGU9c2VsZiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnPUZhbHNl LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVfdGFibGVzPUZhbHNlKQot KwotKyAgICAgICAgeWFjY19rd2FyZ3MgPSB7J21vZHVsZSc6IHNlbGYsICdkZWJ1Zyc6IEZhbHNl fQotKyAgICAgICAgIyBwbHkgcG9zdC0zLjExIHZlcnNpb24gcmVtb3ZlZCB0aGUgd3JpdGVfdGFi bGVzIHBhcmFtZXRlcgotKyAgICAgICAgaWYgJ3dyaXRlX3RhYmxlcycgaW4gaW5zcGVjdC5zaWdu YXR1cmUoeWFjYy55YWNjKS5wYXJhbWV0ZXJzOgotKyAgICAgICAgICAgIHlhY2Nfa3dhcmdzWyd3 cml0ZV90YWJsZXMnXSA9IEZhbHNlCi0rICAgICAgICBzZWxmLnBhcnNlciA9IHlhY2MueWFjYygq KnlhY2Nfa3dhcmdzKQotIAotICAgICBkZWYgX19jYWxsX18oc2VsZiwgdGV4dCwgaW5wdXRfZmls ZT1Ob25lKToKLSAgICAgICAgIHNlbGYuZXhwb3J0cyA9IGRlZmF1bHRkaWN0KHR1cGxlKQoKZGlm ZiAtLWdpdCBhLzI0MDMucGF0Y2ggYi8yNDAzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCA4ODVkYjM0Li4wMDAwMDAwCi0tLSBhLzI0MDMucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwyMyArMCwwIEBACi1Gcm9tIGNjMDFmN2UwMDYxYTBmMGE5OGQyNTg2YjY1MTI2NWMzNzQ2 Yjc4NWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBDaGFyYWxhbXBvcyBTdHJhdGFr aXMgPGNzdHJhdGFrQHJlZGhhdC5jb20+Ci1EYXRlOiBUdWUsIDMgRmViIDIwMjYgMDM6MDQ6NDEg KzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gUmVuYW1lIHRoZSBiZW5jaG1hcmsgZmlsZQotCi1UaGUg dGVzdF8gcHJlZml4IG9mIHRoZSBiZW5jaG1hcmsgZmlsZSB3YXMgbWFraW5nCi1weXRlc3QgY29s bGVjdCBpdCBhbmQgdXNlIHRoZSBiZW5jaG1hcmtzIGRpcmVjdG9yeSBhcwotcm9vdCwgaGF2aW5n IHRoZSB0ZXN0cyBmYWlsaW5nLgotCi1SZW5hbWUgdGhlIGZpbGUgc28gaXQncyBub3QgY29sbGVj dGVkIHZpYSB0aGUgdXN1YWwKLXB5dGVzdCBydW5zLgotLS0tCi0gcHl0aHJhbi9iZW5jaG1hcmtz L3t0ZXN0X2JlbmNobWFyay5weSA9PiBiZW5jaG1hcmtfcnVubmVyLnB5fSB8IDAKLSAxIGZpbGUg Y2hhbmdlZCwgMCBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQotIHJlbmFtZSBweXRocmFu L2JlbmNobWFya3Mve3Rlc3RfYmVuY2htYXJrLnB5ID0+IGJlbmNobWFya19ydW5uZXIucHl9ICgx MDAlKQotCi1kaWZmIC0tZ2l0IGEvcHl0aHJhbi9iZW5jaG1hcmtzL3Rlc3RfYmVuY2htYXJrLnB5 IGIvcHl0aHJhbi9iZW5jaG1hcmtzL2JlbmNobWFya19ydW5uZXIucHkKLXNpbWlsYXJpdHkgaW5k ZXggMTAwJQotcmVuYW1lIGZyb20gcHl0aHJhbi9iZW5jaG1hcmtzL3Rlc3RfYmVuY2htYXJrLnB5 Ci1yZW5hbWUgdG8gcHl0aHJhbi9iZW5jaG1hcmtzL2JlbmNobWFya19ydW5uZXIucHkKLS0tIAot Mi41Mi4wCi0KCmRpZmYgLS1naXQgYS8yNDA0LnBhdGNoIGIvMjQwNC5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggNzUxZTQzMC4uMDAwMDAwMAotLS0gYS8yNDA0LnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMTg2ICswLDAgQEAKLUZyb20gZTBhYjdhNmExYzVmODM4ZTk1ZTQ3 YTAzZTU5OWViZTUxYjNiMmQ2NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IENoYXJh bGFtcG9zIFN0cmF0YWtpcyA8Y3N0cmF0YWtAcmVkaGF0LmNvbT4KLURhdGU6IFR1ZSwgMTAgRmVi IDIwMjYgMjA6Mjk6MTEgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCAxLzJdIEFkZCBmcm9tX3B5dGhv bi90b19weXRob24gc3BlY2lhbGl6YXRpb25zIGZvciBsb25nbG9uZwotIGFuZCB1bG9uZ2xvbmcK LQotQ29tbWl0IDg1NDE5N2M2NyBhZGRlZCBQeXRob24gY29udmVyc2lvbiBzcGVjaWFsaXphdGlv bnMgZm9yIGFsbCBudW1weQotdHlwZSBoZWFkZXJzIGJ1dCBtaXNzZWQgbG9uZ2xvbmcgYW5kIHVs b25nbG9uZy4gT24geDg2XzY0IHRoaXMgaXMKLWhhcm1sZXNzIGJlY2F1c2UgaW50NjRfdCBpcyBs b25nLCBtYXBwZWQgdGhyb3VnaCB0aGUgaW50NjQgZnVuY3Rvci4KLQotT24gaTY4NiBpbnQ2NF90 IGlzIGxvbmcgbG9uZywgc28gbnAuaW50NjQvbnAudWludDY0IHJlc29sdmUgdG8gdGhlCi1sb25n bG9uZy91bG9uZ2xvbmcgZnVuY3RvcnMgd2hpY2ggbGFjayB0aGUgY29udmVyc2lvbiBjb2RlLCBj YXVzaW5nCi1pbmNvbXBsZXRlIHR5cGUgZXJyb3JzIGR1cmluZyBjb21waWxhdGlvbi4KLS0tLQot IHB5dGhyYW4vcHl0aG9uaWMvaW5jbHVkZS9udW1weS9sb25nbG9uZy5ocHAgIHwgMTkgKysrKysr KysrKysrKysKLSBweXRocmFuL3B5dGhvbmljL2luY2x1ZGUvbnVtcHkvdWxvbmdsb25nLmhwcCB8 IDE5ICsrKysrKysrKysrKysrCi0gcHl0aHJhbi9weXRob25pYy9udW1weS9sb25nbG9uZy5ocHAg ICAgICAgICAgfCAyNyArKysrKysrKysrKysrKysrKysrKwotIHB5dGhyYW4vcHl0aG9uaWMvbnVt cHkvdWxvbmdsb25nLmhwcCAgICAgICAgIHwgMjcgKysrKysrKysrKysrKysrKysrKysKLSA0IGZp bGVzIGNoYW5nZWQsIDkyIGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL3B5dGhyYW4vcHl0 aG9uaWMvaW5jbHVkZS9udW1weS9sb25nbG9uZy5ocHAgYi9weXRocmFuL3B5dGhvbmljL2luY2x1 ZGUvbnVtcHkvbG9uZ2xvbmcuaHBwCi1pbmRleCAzOTNhMDY1OGYuLjJlMzcyN2ZiOCAxMDA2NDQK LS0tLSBhL3B5dGhyYW4vcHl0aG9uaWMvaW5jbHVkZS9udW1weS9sb25nbG9uZy5ocHAKLSsrKyBi L3B5dGhyYW4vcHl0aG9uaWMvaW5jbHVkZS9udW1weS9sb25nbG9uZy5ocHAKLUBAIC0yNiw0ICsy NiwyMyBAQCBuYW1lc3BhY2UgbnVtcHkKLSB9IC8vIG5hbWVzcGFjZSBudW1weQotIFBZVEhPTklD X05TX0VORAotIAotKyNpZmRlZiBFTkFCTEVfUFlUSE9OX01PRFVMRQotKwotKyNpbmNsdWRlICJw eXRob25pYy9weXRob24vY29yZS5ocHAiCi0rCi0rUFlUSE9OSUNfTlNfQkVHSU4KLSsKLSt0ZW1w bGF0ZSA8PgotK3N0cnVjdCB0b19weXRob248bnVtcHk6OmZ1bmN0b3I6Omxvbmdsb25nPiB7Ci0r ICBzdGF0aWMgUHlPYmplY3QgKmNvbnZlcnQobnVtcHk6OmZ1bmN0b3I6Omxvbmdsb25nIGNvbnN0 ICZjKTsKLSt9OwotKwotK3RlbXBsYXRlIDw+Ci0rc3RydWN0IGZyb21fcHl0aG9uPG51bXB5Ojpm dW5jdG9yOjpsb25nbG9uZz4gewotKyAgc3RhdGljIGJvb2wgaXNfY29udmVydGlibGUoUHlPYmpl Y3QgKm9iaik7Ci0rICBzdGF0aWMgbnVtcHk6OmZ1bmN0b3I6Omxvbmdsb25nIGNvbnZlcnQoUHlP YmplY3QgKm9iaik7Ci0rfTsKLStQWVRIT05JQ19OU19FTkQKLSsjZW5kaWYKLSsKLSAjZW5kaWYK LWRpZmYgLS1naXQgYS9weXRocmFuL3B5dGhvbmljL2luY2x1ZGUvbnVtcHkvdWxvbmdsb25nLmhw cCBiL3B5dGhyYW4vcHl0aG9uaWMvaW5jbHVkZS9udW1weS91bG9uZ2xvbmcuaHBwCi1pbmRleCBi Nzg2MjJkOTUuLjIzOGRiMmRiYiAxMDA2NDQKLS0tLSBhL3B5dGhyYW4vcHl0aG9uaWMvaW5jbHVk ZS9udW1weS91bG9uZ2xvbmcuaHBwCi0rKysgYi9weXRocmFuL3B5dGhvbmljL2luY2x1ZGUvbnVt cHkvdWxvbmdsb25nLmhwcAotQEAgLTI2LDQgKzI2LDIzIEBAIG5hbWVzcGFjZSBudW1weQotIH0g Ly8gbmFtZXNwYWNlIG51bXB5Ci0gUFlUSE9OSUNfTlNfRU5ECi0gCi0rI2lmZGVmIEVOQUJMRV9Q WVRIT05fTU9EVUxFCi0rCi0rI2luY2x1ZGUgInB5dGhvbmljL3B5dGhvbi9jb3JlLmhwcCIKLSsK LStQWVRIT05JQ19OU19CRUdJTgotKwotK3RlbXBsYXRlIDw+Ci0rc3RydWN0IHRvX3B5dGhvbjxu dW1weTo6ZnVuY3Rvcjo6dWxvbmdsb25nPiB7Ci0rICBzdGF0aWMgUHlPYmplY3QgKmNvbnZlcnQo bnVtcHk6OmZ1bmN0b3I6OnVsb25nbG9uZyBjb25zdCAmYyk7Ci0rfTsKLSsKLSt0ZW1wbGF0ZSA8 PgotK3N0cnVjdCBmcm9tX3B5dGhvbjxudW1weTo6ZnVuY3Rvcjo6dWxvbmdsb25nPiB7Ci0rICBz dGF0aWMgYm9vbCBpc19jb252ZXJ0aWJsZShQeU9iamVjdCAqb2JqKTsKLSsgIHN0YXRpYyBudW1w eTo6ZnVuY3Rvcjo6dWxvbmdsb25nIGNvbnZlcnQoUHlPYmplY3QgKm9iaik7Ci0rfTsKLStQWVRI T05JQ19OU19FTkQKLSsjZW5kaWYKLSsKLSAjZW5kaWYKLWRpZmYgLS1naXQgYS9weXRocmFuL3B5 dGhvbmljL251bXB5L2xvbmdsb25nLmhwcCBiL3B5dGhyYW4vcHl0aG9uaWMvbnVtcHkvbG9uZ2xv bmcuaHBwCi1pbmRleCAxZmUyODY1ZTIuLjEwZGNkZGRhZSAxMDA2NDQKLS0tLSBhL3B5dGhyYW4v cHl0aG9uaWMvbnVtcHkvbG9uZ2xvbmcuaHBwCi0rKysgYi9weXRocmFuL3B5dGhvbmljL251bXB5 L2xvbmdsb25nLmhwcAotQEAgLTM0LDQgKzM0LDMxIEBAIG5hbWVzcGFjZSBudW1weQotIH0gLy8g bmFtZXNwYWNlIG51bXB5Ci0gUFlUSE9OSUNfTlNfRU5ECi0gCi0rI2lmZGVmIEVOQUJMRV9QWVRI T05fTU9EVUxFCi0rCi0rI2luY2x1ZGUgInB5dGhvbmljL3B5dGhvbi9jb3JlLmhwcCIKLSsjaW5j bHVkZSAibnVtcHkvYXJyYXlzY2FsYXJzLmgiCi0rCi0rUFlUSE9OSUNfTlNfQkVHSU4KLSsKLStp bmxpbmUgUHlPYmplY3QgKgotK3RvX3B5dGhvbjxudW1weTo6ZnVuY3Rvcjo6bG9uZ2xvbmc+Ojpj b252ZXJ0KG51bXB5OjpmdW5jdG9yOjpsb25nbG9uZyBjb25zdCAmYykKLSt7Ci0rICByZXR1cm4g KFB5T2JqZWN0KikmUHlMb25nTG9uZ0FyclR5cGVfVHlwZTsKLSt9Ci0rCi0raW5saW5lIGJvb2wg ZnJvbV9weXRob248bnVtcHk6OmZ1bmN0b3I6Omxvbmdsb25nPjo6aXNfY29udmVydGlibGUoUHlP YmplY3QgKm9iaikKLSt7Ci0rICByZXR1cm4gb2JqID09IChQeU9iamVjdCopJlB5TG9uZ0xvbmdB cnJUeXBlX1R5cGU7Ci0rfQotKwotK2lubGluZSBudW1weTo6ZnVuY3Rvcjo6bG9uZ2xvbmcKLStm cm9tX3B5dGhvbjxudW1weTo6ZnVuY3Rvcjo6bG9uZ2xvbmc+Ojpjb252ZXJ0KFB5T2JqZWN0ICpv YmopCi0rewotKyAgcmV0dXJuIHt9OwotK30KLSsKLStQWVRIT05JQ19OU19FTkQKLSsjZW5kaWYK LSsKLSAjZW5kaWYKLWRpZmYgLS1naXQgYS9weXRocmFuL3B5dGhvbmljL251bXB5L3Vsb25nbG9u Zy5ocHAgYi9weXRocmFuL3B5dGhvbmljL251bXB5L3Vsb25nbG9uZy5ocHAKLWluZGV4IDRlNTM2 ZDk3My4uMWFkMjg3NjQ4IDEwMDY0NAotLS0tIGEvcHl0aHJhbi9weXRob25pYy9udW1weS91bG9u Z2xvbmcuaHBwCi0rKysgYi9weXRocmFuL3B5dGhvbmljL251bXB5L3Vsb25nbG9uZy5ocHAKLUBA IC0zNCw0ICszNCwzMSBAQCBuYW1lc3BhY2UgbnVtcHkKLSB9IC8vIG5hbWVzcGFjZSBudW1weQot IFBZVEhPTklDX05TX0VORAotIAotKyNpZmRlZiBFTkFCTEVfUFlUSE9OX01PRFVMRQotKwotKyNp bmNsdWRlICJweXRob25pYy9weXRob24vY29yZS5ocHAiCi0rI2luY2x1ZGUgIm51bXB5L2FycmF5 c2NhbGFycy5oIgotKwotK1BZVEhPTklDX05TX0JFR0lOCi0rCi0raW5saW5lIFB5T2JqZWN0ICoK LSt0b19weXRob248bnVtcHk6OmZ1bmN0b3I6OnVsb25nbG9uZz46OmNvbnZlcnQobnVtcHk6OmZ1 bmN0b3I6OnVsb25nbG9uZyBjb25zdCAmYykKLSt7Ci0rICByZXR1cm4gKFB5T2JqZWN0KikmUHlV TG9uZ0xvbmdBcnJUeXBlX1R5cGU7Ci0rfQotKwotK2lubGluZSBib29sIGZyb21fcHl0aG9uPG51 bXB5OjpmdW5jdG9yOjp1bG9uZ2xvbmc+Ojppc19jb252ZXJ0aWJsZShQeU9iamVjdCAqb2JqKQot K3sKLSsgIHJldHVybiBvYmogPT0gKFB5T2JqZWN0KikmUHlVTG9uZ0xvbmdBcnJUeXBlX1R5cGU7 Ci0rfQotKwotK2lubGluZSBudW1weTo6ZnVuY3Rvcjo6dWxvbmdsb25nCi0rZnJvbV9weXRob248 bnVtcHk6OmZ1bmN0b3I6OnVsb25nbG9uZz46OmNvbnZlcnQoUHlPYmplY3QgKm9iaikKLSt7Ci0r ICByZXR1cm4ge307Ci0rfQotKwotK1BZVEhPTklDX05TX0VORAotKyNlbmRpZgotKwotICNlbmRp ZgotCi1Gcm9tIDYxN2QzYmY4MzUwMmQ4YzhmZmIxZjhlYjQ2Y2RlNzY3NjAzNzcxZTggTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBDaGFyYWxhbXBvcyBTdHJhdGFraXMgPGNzdHJhdGFr QHJlZGhhdC5jb20+Ci1EYXRlOiBXZWQsIDExIEZlYiAyMDI2IDE1OjE4OjU3ICswMTAwCi1TdWJq ZWN0OiBbUEFUQ0ggMi8yXSBGaXggdWludCBmdW5jdG9yIHVzaW5nIHdyb25nIG51bXB5IEMgQVBJ IHR5cGUgb2JqZWN0Ci0KLVRoZSBjb2RlIHdhcyB1c2luZyBQeVVJbnRBcnJUeXBlX1R5cGUgKHVu c2lnbmVkIGludCkgaW5zdGVhZCBvZgotUHlVTG9uZ0FyclR5cGVfVHlwZSAodW5zaWduZWQgbG9u ZykuIFdvcmtlZCBvbiA2NC1iaXQgYnkgYWNjaWRlbnQKLXRocm91Z2ggbWFjcm8gYWxpYXNpbmcg YnV0IGZhaWxzIG9uIDMyLWJpdCB3aXRoIHJ1bnRpbWUgVHlwZUVycm9ycy4KLS0tLQotIHB5dGhy YW4vcHl0aG9uaWMvbnVtcHkvdWludC5ocHAgfCAxMCArKy0tLS0tLS0tCi0gMSBmaWxlIGNoYW5n ZWQsIDIgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3B5dGhy YW4vcHl0aG9uaWMvbnVtcHkvdWludC5ocHAgYi9weXRocmFuL3B5dGhvbmljL251bXB5L3VpbnQu aHBwCi1pbmRleCAxZmNhMTk1YzYuLjBjNTA0YThhZiAxMDA2NDQKLS0tLSBhL3B5dGhyYW4vcHl0 aG9uaWMvbnVtcHkvdWludC5ocHAKLSsrKyBiL3B5dGhyYW4vcHl0aG9uaWMvbnVtcHkvdWludC5o cHAKLUBAIC00MywxOCArNDMsMTIgQEAgUFlUSE9OSUNfTlNfQkVHSU4KLSAKLSBpbmxpbmUgUHlP YmplY3QgKnRvX3B5dGhvbjxudW1weTo6ZnVuY3Rvcjo6dWludD46OmNvbnZlcnQobnVtcHk6OmZ1 bmN0b3I6OnVpbnQgY29uc3QgJmMpCi0gewotLSAgcmV0dXJuIChQeU9iamVjdCAqKSZQeVVJbnRB cnJUeXBlX1R5cGU7Ci0rICByZXR1cm4gKFB5T2JqZWN0ICopJlB5VUxvbmdBcnJUeXBlX1R5cGU7 Ci0gfQotIAotIGlubGluZSBib29sIGZyb21fcHl0aG9uPG51bXB5OjpmdW5jdG9yOjp1aW50Pjo6 aXNfY29udmVydGlibGUoUHlPYmplY3QgKm9iaikKLSB7Ci0tICByZXR1cm4gb2JqID09IChQeU9i amVjdCAqKSZQeVVJbnRBcnJUeXBlX1R5cGUgfHwKLS0jaWYgTlBZX1NJWkVPRl9JTlRQID09IE5Q WV9TSVpFT0ZfTE9ORwotLSAgICAgICAgIG9iaiA9PSAoUHlPYmplY3QgKikmUHlVSW50NjRBcnJU eXBlX1R5cGUKLS0jZWxzZQotLSAgICAgICAgIG9iaiA9PSAoUHlPYmplY3QgKikmUHlVSW50MzJB cnJUeXBlX1R5cGUKLS0jZW5kaWYKLS0gICAgICA7Ci0rICByZXR1cm4gb2JqID09IChQeU9iamVj dCAqKSZQeVVMb25nQXJyVHlwZV9UeXBlOwotIH0KLSAKLSBpbmxpbmUgbnVtcHk6OmZ1bmN0b3I6 OnVpbnQgZnJvbV9weXRob248bnVtcHk6OmZ1bmN0b3I6OnVpbnQ+Ojpjb252ZXJ0KFB5T2JqZWN0 ICpvYmopCgpkaWZmIC0tZ2l0IGEvMjQwNy5wYXRjaCBiLzI0MDcucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGE0ZTNkNjEuLjAwMDAwMDAKLS0tIGEvMjQwNy5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLUZyb20gMmQyNWEwYWU0ZjgxNTA0ODBlYzU4ODM2 ODMxY2NmMzUxOGRjMGNjYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IENoYXJhbGFt cG9zIFN0cmF0YWtpcyA8Y3N0cmF0YWtAcmVkaGF0LmNvbT4KLURhdGU6IFR1ZSwgMTcgRmViIDIw MjYgMTM6MTI6NTYgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gUmVkdWNlIHRlc3RfbnVtcHlfcmFu ZG9tX2J5dGVzMSBzYW1wbGUgc2l6ZSB0byBhdm9pZCAzMi1iaXQKLSBtZW1vcnkgZXhoYXVzdGlv bgotCi1UaGUgdGVzdCBhbGxvY2F0ZXMgMTAqKjggcmFuZG9tIGJ5dGVzIHRoZW4gY29udmVydHMg dG8gZmxvYXQ2NCwgcmVxdWlyaW5nCi1+OTAwIE1CIG9mIGNvbnRpZ3VvdXMgbWVtb3J5LiBPbiAz Mi1iaXQgc3lzdGVtcyB3aXRoIH4zIEdCIGFkZHJlc3Mgc3BhY2UKLXRoaXMgcmVsaWFibHkgZmFp bHMuIFJlZHVjZSB0byAxMCoqNyB3aGljaCBzdGlsbCB2YWxpZGF0ZXMgdGhlIHN0YXRpc3RpY2Fs Ci1wcm9wZXJ0eSB3ZWxsIHdpdGhpbiAwLjA1IHRvbGVyYW5jZS4KLS0tLQotIHB5dGhyYW4vdGVz dHMvdGVzdF9udW1weV9yYW5kb20ucHkgfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9weXRocmFuL3Rlc3RzL3Rlc3Rf bnVtcHlfcmFuZG9tLnB5IGIvcHl0aHJhbi90ZXN0cy90ZXN0X251bXB5X3JhbmRvbS5weQotaW5k ZXggNjU0N2EyZTkyLi40ODUwNzQ4ZTMgMTAwNjQ0Ci0tLS0gYS9weXRocmFuL3Rlc3RzL3Rlc3Rf bnVtcHlfcmFuZG9tLnB5Ci0rKysgYi9weXRocmFuL3Rlc3RzL3Rlc3RfbnVtcHlfcmFuZG9tLnB5 Ci1AQCAtNjQxLDcgKzY0MSw3IEBAIGRlZiBudW1weV9yYW5kb21fYnl0ZXMxKG4pOgotICAgICAg ICAgICAgICAgICBmcm9tIG51bXB5IGltcG9ydCBtZWFuLCBmcm9tYnVmZmVyLCB1aW50OCwgYXNh cnJheQotICAgICAgICAgICAgICAgICBhID0gYnl0ZXMobikKLSAgICAgICAgICAgICAgICAgcmV0 dXJuIChhYnMobWVhbihhc2FycmF5KGZyb21idWZmZXIoYSwgdWludDgpLCBkdHlwZT1mbG9hdCkp IC0gMTI3LjUpIDwgLjA1KSIiIiwKLS0gICAgICAgICAgICAgICAgICAgICAgMTAgKiogOCwgbnVt cHlfcmFuZG9tX2J5dGVzMT1baW50XSkKLSsgICAgICAgICAgICAgICAgICAgICAgMTAgKiogNywg bnVtcHlfcmFuZG9tX2J5dGVzMT1baW50XSkKLSAKLSAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0g ICAgICNUZXN0cyBmb3IgbnVtcHkucmFuZG9tLmV4cG9uZW50aWFsCgpkaWZmIC0tZ2l0IGEvMjQx My5wYXRjaCBiLzI0MTMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRkNTll YjcuLjAwMDAwMDAKLS0tIGEvMjQxMy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAg QEAKLUZyb20gZDk0Y2NhMDQ2YzdkNjQyMDhhMjYzZDYyOGEwZWRmOTc0ZjRlOGJjMiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IENoYXJhbGFtcG9zIFN0cmF0YWtpcyA8Y3N0cmF0YWtA cmVkaGF0LmNvbT4KLURhdGU6IFdlZCwgMjUgRmViIDIwMjYgMDI6MjE6NTYgKzAxMDAKLVN1Ympl Y3Q6IFtQQVRDSF0gUmVkdWNlIEMrKyBjb2RlIGdlbmVyYXRpb24gZHVyaW5nIHRlc3QgcnVucwot Ci1SZXVzZSB0aGUgQysrIG91dHB1dCBmcm9tIGdlbmVyYXRlX2N4eCBmb3IgYm90aCB0aGUgZGV0 ZXJtaW5pc20gY2hlY2sKLWFuZCBjb21waWxhdGlvbiwgcmVtb3ZpbmcgYSByZWR1bmRhbnQgcmVn ZW5lcmF0aW9uIHRocm91Z2gKLWNvbXBpbGVfcHl0aHJhbmNvZGUuIEZyZWUgdGhlIGludGVybWVk aWF0ZSBtb2R1bGUgb2JqZWN0IGFmdGVyCi1zdHJpbmdpZmljYXRpb24gdG8gcmVkdWNlIG1lbW9y eSB1c2FnZS4KLQotVGhlIGRldGVybWluaXNtIGNoZWNrIGNhbiBiZSBza2lwcGVkIGJ5IHNldHRp bmcKLVBZVEhSQU5fU0tJUF9ERVRFUk1JTklTTV9DSEVDSz0xIGZvciByZXNvdXJjZS1jb25zdHJh aW5lZCBlbnZpcm9ubWVudHMKLShlLmcuIDMyLWJpdCBzeXN0ZW1zKS4KLS0tLQotIHB5dGhyYW4v dGVzdHMvX19pbml0X18ucHkgfCAyOSArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQotIDEg ZmlsZSBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQotCi1kaWZmIC0t Z2l0IGEvcHl0aHJhbi90ZXN0cy9fX2luaXRfXy5weSBiL3B5dGhyYW4vdGVzdHMvX19pbml0X18u cHkKLWluZGV4IDUxNzM0N2FjYi4uZmJkYWU4NGE4IDEwMDY0NAotLS0tIGEvcHl0aHJhbi90ZXN0 cy9fX2luaXRfXy5weQotKysrIGIvcHl0aHJhbi90ZXN0cy9fX2luaXRfXy5weQotQEAgLTI2LDkg KzI2LDEwIEBACi0gCi0gZnJvbSBweXRocmFuIGltcG9ydCBjb21waWxlX3B5dGhyYW5jb2RlLCBz cGVjX3BhcnNlciwgbG9hZF9zcGVjZmlsZSwgZnJvbnRlbmQKLSBmcm9tIHB5dGhyYW4uYmFja2Vu ZCBpbXBvcnQgUHl0aG9uCi0rZnJvbSBweXRocmFuLmVycm9ycyBpbXBvcnQgUHl0aHJhbkNvbXBp bGVFcnJvcgotIGZyb20gcHl0aHJhbi5taWRkbGVuZCBpbXBvcnQgcmVmaW5lCi0gZnJvbSBweXRo cmFuLnBhc3NtYW5hZ2VyIGltcG9ydCBQYXNzTWFuYWdlcgotLWZyb20gcHl0aHJhbi50b29sY2hh aW4gaW1wb3J0IF9wYXJzZV9vcHRpbWl6YXRpb24sIGdlbmVyYXRlX2N4eAotK2Zyb20gcHl0aHJh bi50b29sY2hhaW4gaW1wb3J0IF9wYXJzZV9vcHRpbWl6YXRpb24sIGdlbmVyYXRlX2N4eCwgY29t cGlsZV9jeHhjb2RlCi0gZnJvbSBweXRocmFuLnNwZWMgaW1wb3J0IFNwZWMKLSAKLSBsb2dnZXIg PSBsb2dnaW5nLmdldExvZ2dlcigicHl0aHJhbiIpCi1AQCAtMzA2LDE0ICszMDcsMjYgQEAgZGVm IHJ1bl90ZXN0KHNlbGYsIGNvZGUsICpwYXJhbXMsICoqaW50ZXJmYWNlKToKLSAKLSAgICAgICAg IGNvZGUgPSBkZWRlbnQoY29kZSkKLSAKLS0gICAgICAgIGN4eDAsIF8gPSBnZW5lcmF0ZV9jeHgo bW9kbmFtZSwgY29kZSwgaW50ZXJmYWNlKQotLSAgICAgICAgY3h4MSwgXyA9IGdlbmVyYXRlX2N4 eChtb2RuYW1lLCBjb2RlLCBpbnRlcmZhY2UpCi0tICAgICAgICBzZWxmLm1heERpZmYsIG1heERp ZmYgPSBOb25lLCBzZWxmLm1heERpZmYKLS0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGN4 eDApLCBzdHIoY3h4MSkpCi0tICAgICAgICBzZWxmLm1heERpZmYgPSBtYXhEaWZmCi0rICAgICAg ICBtb2R1bGUsIGVycm9yX2NoZWNrZXIgPSBnZW5lcmF0ZV9jeHgobW9kbmFtZSwgY29kZSwgaW50 ZXJmYWNlKQotKyAgICAgICAgY3h4X2NvZGUgPSBzdHIobW9kdWxlKQotKyAgICAgICAgZGVsIG1v ZHVsZQotIAotLSAgICAgICAgY3h4X2NvbXBpbGVkID0gY29tcGlsZV9weXRocmFuY29kZSgKLS0g ICAgICAgICAgICBtb2RuYW1lLCBjb2RlLCBpbnRlcmZhY2UsIGV4dHJhX2NvbXBpbGVfYXJncz1z ZWxmLlBZVEhSQU5fQ1hYX0ZMQUdTKQotKyAgICAgICAgIyBWZXJpZnkgdGhhdCBjb2RlIGdlbmVy YXRpb24gaXMgZGV0ZXJtaW5pc3RpYyBieSBnZW5lcmF0aW5nIHR3aWNlCi0rICAgICAgICAjIGFu ZCBjb21wYXJpbmcuIFNldCBQWVRIUkFOX1NLSVBfREVURVJNSU5JU01fQ0hFQ0s9MSB0byBkaXNh YmxlCi0rICAgICAgICAjIHRoaXMgY2hlY2sgYW5kIHJlZHVjZSBtZW1vcnkgdXNhZ2UgKGUuZy4g Zm9yIDMyLWJpdCBzeXN0ZW1zKS4KLSsgICAgICAgIGlmIG5vdCBvcy5lbnZpcm9uLmdldCgnUFlU SFJBTl9TS0lQX0RFVEVSTUlOSVNNX0NIRUNLJyk6Ci0rICAgICAgICAgICAgY3h4MSwgXyA9IGdl bmVyYXRlX2N4eChtb2RuYW1lLCBjb2RlLCBpbnRlcmZhY2UpCi0rICAgICAgICAgICAgc2VsZi5t YXhEaWZmLCBtYXhEaWZmID0gTm9uZSwgc2VsZi5tYXhEaWZmCi0rICAgICAgICAgICAgc2VsZi5h c3NlcnRFcXVhbChjeHhfY29kZSwgc3RyKGN4eDEpKQotKyAgICAgICAgICAgIHNlbGYubWF4RGlm ZiA9IG1heERpZmYKLSsgICAgICAgICAgICBkZWwgY3h4MQotKwotKyAgICAgICAgdHJ5OgotKyAg ICAgICAgICAgIGN4eF9jb21waWxlZCA9IGNvbXBpbGVfY3h4Y29kZShtb2RuYW1lLCBjeHhfY29k ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFfY29t cGlsZV9hcmdzPXNlbGYuUFlUSFJBTl9DWFhfRkxBR1MpCi0rICAgICAgICBleGNlcHQgUHl0aHJh bkNvbXBpbGVFcnJvcjoKLSsgICAgICAgICAgICBlcnJvcl9jaGVja2VyKCkKLSsgICAgICAgICAg ICByYWlzZQotIAotICAgICAgICAgIyBGSVhNRSBDaGVjayBzaG91bGQgYmUgZG9uZSBvbiBpbnB1 dCBwYXJhbWV0ZXJzIGFmdGVyIGZ1bmN0aW9uIGNhbGwKLSAgICAgICAgIHB5dGhvbl9yZWYgPSBz ZWxmLnJ1bl9weXRob24oY29kZSwgKG5hbWUsIGNvcHkuZGVlcGNvcHkocGFyYW1zKSksCgpkaWZm IC0tZ2l0IGEvMjQxNC5wYXRjaCBiLzI0MTQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDUxMDBhZGEuLjAwMDAwMDAKLS0tIGEvMjQxNC5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDMxICswLDAgQEAKLUZyb20gZTVmYjVkOWI1OGQ4YWZjOGRkOGEwMDQ5NzBiZjcwMWE1MDFh MWJhMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IENoYXJhbGFtcG9zIFN0cmF0YWtp cyA8Y3N0cmF0YWtAcmVkaGF0LmNvbT4KLURhdGU6IFdlZCwgMjUgRmViIDIwMjYgMTc6MDM6MDQg KzAxMDAKLVN1YmplY3Q6IFtQQVRDSCAxLzJdIFdpZGVuIHRvbGVyYW5jZSBpbiB0ZXN0X251bXB5 X3JhbmRvbV9ieXRlczEKLQotVGhlIHByZXZpb3VzIHJlZHVjdGlvbiBmcm9tIDEwKio4IHRvIDEw Kio3IHNhbXBsZXMgKHRvIGF2b2lkIDMyLWJpdAotbWVtb3J5IGV4aGF1c3Rpb24pIGluY3JlYXNl ZCB0aGUgc3RhdGlzdGljYWwgdmFyaWFuY2UuIFdpdGggMTAqKjcKLXNhbXBsZXMgYW5kIDAuMDUg dG9sZXJhbmNlIHRoZXJlIGlzIHJvdWdobHkgYSAzJSBjaGFuY2Ugb2YKLXRoZSBtZWFuIGZhbGxp bmcgb3V0c2lkZSB0aGUgYm91bmQgb24gYW55IGdpdmVuIHJ1bi4gU2luY2UgZGlmZmVyZW50Ci1h cmNoaXRlY3R1cmVzIHVzZXMgZGlmZmVyZW50IHJhbmRvbSBzZWVkcywgdGhpcyBjYW4gY2F1c2Ug c3BvcmFkaWMKLWZhaWx1cmVzIChvYnNlcnZlZCBpbiBzMzkweCwgcHBjNjRsZSkuCi0KLVdpZGVu IHRvIDAuMSB3aGljaCBwcm92aWRlcyBzdWZmaWNpZW50IGhlYWRyb29tIHRvIG1ha2UgcmFuZG9t Ci1mYWlsdXJlcyBzdGF0aXN0aWNhbGx5IG5lZ2xpZ2libGUgd2hpbGUgc3RpbGwgZGV0ZWN0aW5n IGEgYnJva2VuIFJORy4KLS0tLQotIHB5dGhyYW4vdGVzdHMvdGVzdF9udW1weV9yYW5kb20ucHkg fCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0K LWRpZmYgLS1naXQgYS9weXRocmFuL3Rlc3RzL3Rlc3RfbnVtcHlfcmFuZG9tLnB5IGIvcHl0aHJh bi90ZXN0cy90ZXN0X251bXB5X3JhbmRvbS5weQotaW5kZXggNDg1MDc0OGUzLi4zZTg2ZDM3MjYg MTAwNjQ0Ci0tLS0gYS9weXRocmFuL3Rlc3RzL3Rlc3RfbnVtcHlfcmFuZG9tLnB5Ci0rKysgYi9w eXRocmFuL3Rlc3RzL3Rlc3RfbnVtcHlfcmFuZG9tLnB5Ci1AQCAtNjQwLDcgKzY0MCw3IEBAIGRl ZiBudW1weV9yYW5kb21fYnl0ZXMxKG4pOgotICAgICAgICAgICAgICAgICBmcm9tIG51bXB5LnJh bmRvbSBpbXBvcnQgYnl0ZXMKLSAgICAgICAgICAgICAgICAgZnJvbSBudW1weSBpbXBvcnQgbWVh biwgZnJvbWJ1ZmZlciwgdWludDgsIGFzYXJyYXkKLSAgICAgICAgICAgICAgICAgYSA9IGJ5dGVz KG4pCi0tICAgICAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYXNhcnJheShmcm9tYnVmZmVy KGEsIHVpbnQ4KSwgZHR5cGU9ZmxvYXQpKSAtIDEyNy41KSA8IC4wNSkiIiIsCi0rICAgICAgICAg ICAgICAgIHJldHVybiAoYWJzKG1lYW4oYXNhcnJheShmcm9tYnVmZmVyKGEsIHVpbnQ4KSwgZHR5 cGU9ZmxvYXQpKSAtIDEyNy41KSA8IC4xKSIiIiwKLSAgICAgICAgICAgICAgICAgICAgICAgMTAg KiogNywgbnVtcHlfcmFuZG9tX2J5dGVzMT1baW50XSkKLSAKLSAgICAgIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCgpkaWZmIC0tZ2l0IGEvMjQxNS5wYXRjaCBiLzI0MTUucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAzNTM3NjUuLjAwMDAwMDAKLS0tIGEvMjQxNS5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDU0MiArMCwwIEBACi1Gcm9tIGIwNmY3YTgyNzBkYjhlYzhkOThjOGY1YjU1 MjM0YzBmNTM0ODY4ZjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBDaGFyYWxhbXBv cyBTdHJhdGFraXMgPGNzdHJhdGFrQHJlZGhhdC5jb20+Ci1EYXRlOiBXZWQsIDI1IEZlYiAyMDI2 IDE4OjQyOjA4ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIFdpZGVuIHZhcmlhbmNlIHRvbGVyYW5j ZSBpbiByYW5kb20gZGlzdHJpYnV0aW9uIHRlc3RzCi0KLVRoZSB2YXJpYW5jZSBjaGVjayBpbiBz dGF0aXN0aWNhbCB0ZXN0cyB1c2VkIGEgdG9sZXJhbmNlIG9mIDAuMDUgd2hpY2gKLWlzIHRvbyB0 aWdodCBmb3IgdGhlIGdpdmVuIHNhbXBsZSBzaXplcy4gVGhpcyBjYW4gY2F1c2Ugc3BvcmFkaWMK LWZhaWx1cmVzIGFjcm9zcyBDSSBhcmNoaXRlY3R1cmVzIHNpbmNlIHRoZSBQeXRob24gYW5kIFB5 dGhyYW4gY29kZSB1c2UKLWluZGVwZW5kZW50IHJhbmRvbSBzZWVkcy4KLQotV2lkZW4gZnJvbSAw LjA1IHRvIDAuMSBhY3Jvc3MgYWxsIGFic29sdXRlIHZhcmlhbmNlIGNoZWNrcywgbWF0Y2hpbmcK LXRoZSB0b2xlcmFuY2UgYWxyZWFkeSB1c2VkIGJ5IHJlY2VudGx5IGFkZGVkIHRlc3RzLgotLS0t Ci0gcHl0aHJhbi90ZXN0cy90ZXN0X251bXB5X3JhbmRvbS5weSB8IDExNiArKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA1OCBpbnNlcnRpb25zKCspLCA1OCBk ZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3B5dGhyYW4vdGVzdHMvdGVzdF9udW1weV9yYW5k b20ucHkgYi9weXRocmFuL3Rlc3RzL3Rlc3RfbnVtcHlfcmFuZG9tLnB5Ci1pbmRleCA0ODUwNzQ4 ZTMuLmNkNTc4MmU2ZSAxMDA2NDQKLS0tLSBhL3B5dGhyYW4vdGVzdHMvdGVzdF9udW1weV9yYW5k b20ucHkKLSsrKyBiL3B5dGhyYW4vdGVzdHMvdGVzdF9udW1weV9yYW5kb20ucHkKLUBAIC0xODAs NyArMTgwLDcgQEAgZGVmIG51bXB5X2Jpbm9taWFsMChuLCBwLCBzaXplKToKLSAgICAgICAgICBm cm9tIG51bXB5LnJhbmRvbSBpbXBvcnQgYmlub21pYWwKLSAgICAgICAgICBmcm9tIG51bXB5IGlt cG9ydCB2YXIKLSAgICAgICAgICBhID0gW2Jpbm9taWFsKG4sIHApIGZvciB4IGluIHJhbmdlKHNp emUpXQotLSAgICAgICAgIHJldHVybiAoYWJzKGZsb2F0KHN1bShhKSkvc2l6ZSAtIG4gKiBwKSA8 IC4wNSBhbmQgYWJzKHZhcihhKSAtIG4qcCooMS1wKSkgPCAuMDUpCi0rICAgICAgICAgcmV0dXJu IChhYnMoZmxvYXQoc3VtKGEpKS9zaXplIC0gbiAqIHApIDwgLjA1IGFuZCBhYnModmFyKGEpIC0g bipwKigxLXApKSA8IC4xKQotICAgICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNv ZGUsIDEwLiwgLjIsIDEwKio1LCBudW1weV9iaW5vbWlhbDA9W2Zsb2F0LCBmbG9hdCwgaW50XSkK LSAKLUBAIC0xOTAsNyArMTkwLDcgQEAgZGVmIG51bXB5X2Jpbm9taWFsMShuLCBwLCBzaXplKToK LSAgICAgICAgICBmcm9tIG51bXB5LnJhbmRvbSBpbXBvcnQgYmlub21pYWwKLSAgICAgICAgICBm cm9tIG51bXB5IGltcG9ydCB2YXIKLSAgICAgICAgICBhPWJpbm9taWFsKG4sIHAsIHNpemUpCi0t ICAgICAgICAgcmV0dXJuIChhYnMoZmxvYXQoc3VtKGEpKS9zaXplIC0gbiAqIHApIDwgLjA1IGFu ZCBhYnModmFyKGEpIC0gbipwKigxLXApKSA8IC4wNSkKLSsgICAgICAgICByZXR1cm4gKGFicyhm bG9hdChzdW0oYSkpL3NpemUgLSBuICogcCkgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSBuKnAqKDEt cCkpIDwgLjEpCi0gICAgICAgICAiIiIKLSAgICAgICAgIHNlbGYucnVuX3Rlc3QoY29kZSwgNy4s IC4yLCAxMCoqNSwgbnVtcHlfYmlub21pYWwxPVtmbG9hdCwgZmxvYXQsIGludF0pCi0gCi1AQCAt MjAwLDcgKzIwMCw3IEBAIGRlZiBudW1weV9iaW5vbWlhbDIobiwgcCwgc2l6ZSk6Ci0gICAgICAg ICAgZnJvbSBudW1weS5yYW5kb20gaW1wb3J0IGJpbm9taWFsCi0gICAgICAgICAgZnJvbSBudW1w eSBpbXBvcnQgc3VtLCB2YXIKLSAgICAgICAgICBhPWJpbm9taWFsKG4sIHAsIChzaXplLCBzaXpl KSkKLS0gICAgICAgICByZXR1cm4gKGFicyhmbG9hdChzdW0oYSkpLyhzaXplKnNpemUpIC0gbiAq IHApIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gbipwKigxLXApKSA8IC4wNSkKLSsgICAgICAgICBy ZXR1cm4gKGFicyhmbG9hdChzdW0oYSkpLyhzaXplKnNpemUpIC0gbiAqIHApIDwgLjA1IGFuZCBh YnModmFyKGEpIC0gbipwKigxLXApKSA8IC4xKQotICAgICAgICAgIiIiCi0gICAgICAgICBzZWxm LnJ1bl90ZXN0KGNvZGUsIDkuLCAuMiwgMTAqKjMsIG51bXB5X2Jpbm9taWFsMj1bZmxvYXQsIGZs b2F0LCBpbnRdKQotIAotQEAgLTIzMSw3ICsyMzEsNyBAQCBkZWYgbnVtcHlfc3RhbmRhcmRfbm9y bWFsMChzaXplKToKLSAgICAgICAgICAgICBmcm9tIG51bXB5IGltcG9ydCB2YXIsIG1lYW4KLSAg ICAgICAgICAgICBhID0gW3N0YW5kYXJkX25vcm1hbCgpIGZvciB4IGluIHJhbmdlKHNpemUpXQot ICAgICAgICAgICAgIHByaW50KG1lYW4oYSkpCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVh bihhKSkgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSAxKSA8IC4wNSkKLSsgICAgICAgICAgICByZXR1 cm4gKGFicyhtZWFuKGEpKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIDEpIDwgLjEpCi0gICAgICAg ICAiIiIKLSAgICAgICAgIHNlbGYucnVuX3Rlc3QoY29kZSwgMTAgKiogNSwgbnVtcHlfc3RhbmRh cmRfbm9ybWFsMD1baW50XSkKLSAKLUBAIC0yNDMsNyArMjQzLDcgQEAgZGVmIG51bXB5X3N0YW5k YXJkX25vcm1hbDEoc2l6ZSk6Ci0gICAgICAgICAgICAgZnJvbSBudW1weSBpbXBvcnQgdmFyLCBt ZWFuCi0gICAgICAgICAgICAgYSA9IHN0YW5kYXJkX25vcm1hbChzaXplKQotICAgICAgICAgICAg IHByaW50KG1lYW4oYSkpCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSkgPCAuMDUg YW5kIGFicyh2YXIoYSkgLSAxKSA8IC4wNSkKLSsgICAgICAgICAgICByZXR1cm4gKGFicyhtZWFu KGEpKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIDEpIDwgLjEpCi0gICAgICAgICAiIiIKLSAgICAg ICAgIHNlbGYucnVuX3Rlc3QoY29kZSwgMTAgKiogNSwgbnVtcHlfc3RhbmRhcmRfbm9ybWFsMT1b aW50XSkKLSAKLUBAIC0yNTUsNyArMjU1LDcgQEAgZGVmIG51bXB5X3N0YW5kYXJkX25vcm1hbDIo c2l6ZSk6Ci0gICAgICAgICAgICAgZnJvbSBudW1weSBpbXBvcnQgbWVhbiwgdmFyCi0gICAgICAg ICAgICAgYSA9IHN0YW5kYXJkX25vcm1hbCgoc2l6ZSwgc2l6ZSkpCi0gICAgICAgICAgICAgcHJp bnQobWVhbihhKSkKLS0gICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpKSA8IC4wNSBhbmQg YWJzKHZhcihhKSAtIDEpIDwgLjA1KQotKyAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkp IDwgLjA1IGFuZCBhYnModmFyKGEpIC0gMSkgPCAuMSkKLSAgICAgICAgICIiIgotICAgICAgICAg c2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiAzLCBudW1weV9zdGFuZGFyZF9ub3JtYWwyPVtpbnRd KQotIAotQEAgLTI3MSw3ICsyNzEsNyBAQCBkZWYgbnVtcHlfbm9ybWFsMChzaXplKToKLSAgICAg ICAgICAgICBmcm9tIG51bXB5IGltcG9ydCB2YXIsIG1lYW4KLSAgICAgICAgICAgICBhID0gW25v cm1hbCgpIGZvciB4IGluIHJhbmdlKHNpemUpXQotICAgICAgICAgICAgIHByaW50KG1lYW4oYSkp Ci0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSkgPCAuMDUgYW5kIGFicyh2YXIoYSkg LSAxKSA8IC4wNSkKLSsgICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpKSA8IC4wNSBhbmQg YWJzKHZhcihhKSAtIDEpIDwgLjEpCi0gICAgICAgICAiIiIKLSAgICAgICAgIHNlbGYucnVuX3Rl c3QoY29kZSwgMTAgKiogNSwgbnVtcHlfbm9ybWFsMD1baW50XSkKLSAKLUBAIC0yODMsNyArMjgz LDcgQEAgZGVmIG51bXB5X25vcm1hbDBhKHNpemUpOgotICAgICAgICAgICAgIGZyb20gbnVtcHkg aW1wb3J0IHZhciwgbWVhbgotICAgICAgICAgICAgIGEgPSBbbm9ybWFsKDMuKSBmb3IgeCBpbiBy YW5nZShzaXplKV0KLSAgICAgICAgICAgICBwcmludChtZWFuKGEpKQotLSAgICAgICAgICAgIHJl dHVybiAoYWJzKG1lYW4oYSktMykgPCAwLjA1IGFuZCBhYnModmFyKGEpIC0gMSkgPCAuMDUpCi0r ICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKS0zKSA8IDAuMDUgYW5kIGFicyh2YXIoYSkg LSAxKSA8IC4xKQotICAgICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEw ICoqIDUsIG51bXB5X25vcm1hbDBhPVtpbnRdKQotIAotQEAgLTMxMCw3ICszMTAsNyBAQCBkZWYg bnVtcHlfbm9ybWFsMShzaXplKToKLSAgICAgICAgICAgICBmcm9tIG51bXB5IGltcG9ydCB2YXIs IG1lYW4KLSAgICAgICAgICAgICBhID0gbm9ybWFsKHNpemU9c2l6ZSkKLSAgICAgICAgICAgICBw cmludChtZWFuKGEpKQotLSAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkpIDwgLjA1IGFu ZCBhYnModmFyKGEpIC0gMSkgPCAuMDUpCi0rICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihh KSkgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSAxKSA8IC4xKQotICAgICAgICAgIiIiCi0gICAgICAg ICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoqIDUsIG51bXB5X25vcm1hbDE9W2ludF0pCi0gCi1A QCAtMzIyLDcgKzMyMiw3IEBAIGRlZiBudW1weV9ub3JtYWwyKHNpemUpOgotICAgICAgICAgICAg IGZyb20gbnVtcHkgaW1wb3J0IG1lYW4sIHZhcgotICAgICAgICAgICAgIGEgPSBub3JtYWwoc2l6 ZT0oc2l6ZSwgc2l6ZSkpCi0gICAgICAgICAgICAgcHJpbnQobWVhbihhKSkKLS0gICAgICAgICAg ICByZXR1cm4gKGFicyhtZWFuKGEpKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIDEpIDwgLjA1KQot KyAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkpIDwgLjA1IGFuZCBhYnModmFyKGEpIC0g MSkgPCAuMSkKLSAgICAgICAgICIiIgotICAgICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAq KiAzLCBudW1weV9ub3JtYWwyPVtpbnRdKQotIAotQEAgLTMzOCw3ICszMzgsNyBAQCBkZWYgbnVt cHlfcG9pc3NvbjAoc2l6ZSk6Ci0gICAgICAgICAgICAgZnJvbSBudW1weSBpbXBvcnQgdmFyLCBt ZWFuCi0gICAgICAgICAgICAgYSA9IFtwb2lzc29uKCkgZm9yIHggaW4gcmFuZ2Uoc2l6ZSldCi0g ICAgICAgICAgICAgcHJpbnQobWVhbihhKSkKLS0gICAgICAgICAgICByZXR1cm4gKGFicyhtZWFu KGEpLTEpIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gMSkgPCAuMDUpCi0rICAgICAgICAgICAgcmV0 dXJuIChhYnMobWVhbihhKS0xKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIDEpIDwgLjEpCi0gICAg ICAgICAiIiIKLSAgICAgICAgIHNlbGYucnVuX3Rlc3QoY29kZSwgMTAgKiogNSwgbnVtcHlfcG9p c3NvbjA9W2ludF0pCi0gCi1AQCAtMzUwLDcgKzM1MCw3IEBAIGRlZiBudW1weV9wb2lzc29uMGEo c2l6ZSk6Ci0gICAgICAgICAgICAgZnJvbSBudW1weSBpbXBvcnQgdmFyLCBtZWFuCi0gICAgICAg ICAgICAgYSA9IFtwb2lzc29uKDMuKSBmb3IgeCBpbiByYW5nZShzaXplKV0KLSAgICAgICAgICAg ICBwcmludChtZWFuKGEpKQotLSAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSktMykgPCAu MDUgYW5kIGFicyh2YXIoYSkgLSAzKSA8IC4wNSkKLSsgICAgICAgICAgICByZXR1cm4gKGFicyht ZWFuKGEpLTMpIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gMykgPCAuMSkKLSAgICAgICAgICIiIgot ICAgICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiA1LCBudW1weV9wb2lzc29uMGE9W2lu dF0pCi0gCi1AQCAtMzc3LDcgKzM3Nyw3IEBAIGRlZiBudW1weV9wb2lzc29uMShzaXplKToKLSAg ICAgICAgICAgICBmcm9tIG51bXB5IGltcG9ydCB2YXIsIG1lYW4KLSAgICAgICAgICAgICBhID0g cG9pc3NvbihzaXplPXNpemUpCi0gICAgICAgICAgICAgcHJpbnQobWVhbihhKSkKLS0gICAgICAg ICAgICByZXR1cm4gKGFicyhtZWFuKGEpLTEpIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gMSkgPCAu MDUpCi0rICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKS0xKSA8IC4wNSBhbmQgYWJzKHZh cihhKSAtIDEpIDwgLjEpCi0gICAgICAgICAiIiIKLSAgICAgICAgIHNlbGYucnVuX3Rlc3QoY29k ZSwgMTAgKiogNSwgbnVtcHlfcG9pc3NvbjE9W2ludF0pCi0gCi1AQCAtMzg5LDcgKzM4OSw3IEBA IGRlZiBudW1weV9wb2lzc29uMihzaXplKToKLSAgICAgICAgICAgICBmcm9tIG51bXB5IGltcG9y dCBtZWFuLCB2YXIKLSAgICAgICAgICAgICBhID0gcG9pc3NvbihzaXplPShzaXplLCBzaXplKSkK LSAgICAgICAgICAgICBwcmludChtZWFuKGEpKQotLSAgICAgICAgICAgIHJldHVybiAoYWJzKG1l YW4oYSktMSkgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSAxKSA8IC4wNSkKLSsgICAgICAgICAgICBy ZXR1cm4gKGFicyhtZWFuKGEpLTEpIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gMSkgPCAuMSkKLSAg ICAgICAgICIiIgotICAgICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiAzLCBudW1weV9w b2lzc29uMj1baW50XSkKLSAKLUBAIC00MDQsNyArNDA0LDcgQEAgZGVmIG51bXB5X3JhbmRuMChu KToKLSAgICAgICAgICAgICAgICAgZnJvbSBudW1weS5yYW5kb20gaW1wb3J0IHJhbmRuCi0gICAg ICAgICAgICAgICAgIGZyb20gbnVtcHkgaW1wb3J0IG1lYW4sIHZhcgotICAgICAgICAgICAgICAg ICBhID0gW3JhbmRuKCkgZm9yIHggaW4gcmFuZ2UobildCi0tICAgICAgICAgICAgICAgIHJldHVy biAoYWJzKG1lYW4oYSkpIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gMSkgPCAuMDUpIiIiLAotKyAg ICAgICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAt IDEpIDwgLjEpIiIiLAotICAgICAgICAgICAgICAgICAgICAgICAxMCAqKiA1LCBudW1weV9yYW5k bjA9W2ludF0pCi0gCi0gICAgIGRlZiB0ZXN0X251bXB5X3JhbmRuMShzZWxmKToKLUBAIC00MTQs NyArNDE0LDcgQEAgZGVmIG51bXB5X3JhbmRuMShuKToKLSAgICAgICAgICAgICAgICAgZnJvbSBu dW1weS5yYW5kb20gaW1wb3J0IHJhbmRuCi0gICAgICAgICAgICAgICAgIGZyb20gbnVtcHkgaW1w b3J0IG1lYW4sIHZhcgotICAgICAgICAgICAgICAgICBhID0gcmFuZG4obiwgbikKLS0gICAgICAg ICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSkgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSAxKSA8 IC4wNSkiIiIsCi0rICAgICAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkpIDwgLjA1IGFu ZCBhYnModmFyKGEpIC0gMSkgPCAuMSkiIiIsCi0gICAgICAgICAgICAgICAgICAgICAgIDEwICoq IDMsIG51bXB5X3JhbmRuMT1baW50XSkKLSAKLSAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1AQCAt NjU0LDcgKzY1NCw3IEBAIGRlZiBudW1weV9leHBvbmVudGlhbDAoc2l6ZSk6Ci0gICAgICAgICAg ICAgZnJvbSBudW1weS5yYW5kb20gaW1wb3J0IGV4cG9uZW50aWFsCi0gICAgICAgICAgICAgZnJv bSBudW1weSBpbXBvcnQgdmFyLCBtZWFuCi0gICAgICAgICAgICAgYSA9IFtleHBvbmVudGlhbCgp IGZvciB4IGluIHJhbmdlKHNpemUpXQotLSAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkg LTEpIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gMSkgPCAuMDUpCi0rICAgICAgICAgICAgcmV0dXJu IChhYnMobWVhbihhKSAtMSkgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSAxKSA8IC4xKQotICAgICAg ICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoqIDYsIG51bXB5X2V4cG9u ZW50aWFsMD1baW50XSkKLSAKLUBAIC02NjYsNyArNjY2LDcgQEAgZGVmIG51bXB5X2V4cG9uZW50 aWFsMGEoc2l6ZSk6Ci0gICAgICAgICAgICAgZnJvbSBudW1weSBpbXBvcnQgdmFyLCBtZWFuCi0g ICAgICAgICAgICAgc2NhbGUgPSAyLgotICAgICAgICAgICAgIGEgPSBbZXhwb25lbnRpYWwoc2Nh bGUpIGZvciB4IGluIHJhbmdlKHNpemUpXQotLSAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4o YSkgLSBzY2FsZSkgPCAwLjA1IGFuZCBhYnModmFyKGEpIC0gc2NhbGUqKjIpIDwgLjA1KQotKyAg ICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkgLSBzY2FsZSkgPCAwLjA1IGFuZCBhYnModmFy KGEpIC0gc2NhbGUqKjIpIDwgLjEpCi0gICAgICAgICAiIiIKLSAgICAgICAgIHNlbGYucnVuX3Rl c3QoY29kZSwgMTAgKiogNiwgbnVtcHlfZXhwb25lbnRpYWwwYT1baW50XSkKLSAKLUBAIC02ODks NyArNjg5LDcgQEAgZGVmIG51bXB5X2V4cG9uZW50aWFsMShzaXplKToKLSAgICAgICAgICAgICBm cm9tIG51bXB5LnJhbmRvbSBpbXBvcnQgZXhwb25lbnRpYWwKLSAgICAgICAgICAgICBmcm9tIG51 bXB5IGltcG9ydCB2YXIsIG1lYW4KLSAgICAgICAgICAgICBhID0gZXhwb25lbnRpYWwoc2l6ZT1z aXplKQotLSAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkgLTEgKTwgLjA1IGFuZCBhYnMo dmFyKGEpIC0gMSkgPCAuMDUpCi0rICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAtMSAp PCAuMDUgYW5kIGFicyh2YXIoYSkgLSAxKSA8IC4xKQotICAgICAgICAgIiIiCi0gICAgICAgICBz ZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoqIDYsIG51bXB5X2V4cG9uZW50aWFsMT1baW50XSkKLSAK LUBAIC03MDAsNyArNzAwLDcgQEAgZGVmIG51bXB5X2V4cG9uZW50aWFsMihzaXplKToKLSAgICAg ICAgICAgICBmcm9tIG51bXB5LnJhbmRvbSBpbXBvcnQgZXhwb25lbnRpYWwKLSAgICAgICAgICAg ICBmcm9tIG51bXB5IGltcG9ydCBtZWFuLCB2YXIKLSAgICAgICAgICAgICBhID0gZXhwb25lbnRp YWwoc2l6ZT0oc2l6ZSwgc2l6ZSkpCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSkg LTEgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSAxKSA8IC4wNSkKLSsgICAgICAgICAgICByZXR1cm4g KGFicyhtZWFuKGEpKSAtMSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIDEpIDwgLjEpCi0gICAgICAg ICAiIiIKLSAgICAgICAgIHNlbGYucnVuX3Rlc3QoY29kZSwgMTAgKiogMywgbnVtcHlfZXhwb25l bnRpYWwyPVtpbnRdKQotIAotQEAgLTcxNiw3ICs3MTYsNyBAQCBkZWYgbnVtcHlfY2hpc3F1YXJl MGEoc2l6ZSk6Ci0gICAgICAgICAgICAgZnJvbSBudW1weSBpbXBvcnQgdmFyLCBtZWFuCi0gICAg ICAgICAgICAgZGYgPSAzLgotICAgICAgICAgICAgIGEgPSBbY2hpc3F1YXJlKGRmKSBmb3IgeCBp biByYW5nZShzaXplKV0KLS0gICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpIC0gZGYpIDwg MC4wNSBhbmQgYWJzKHZhcihhKSAtIDIqZGYpIDwgLjA1KQotKyAgICAgICAgICAgIHJldHVybiAo YWJzKG1lYW4oYSkgLSBkZikgPCAwLjA1IGFuZCBhYnModmFyKGEpIC0gMipkZikgPCAuMSkKLSAg ICAgICAgICIiIgotICAgICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiA2LCBudW1weV9j aGlzcXVhcmUwYT1baW50XSkKLSAKLUBAIC03MjgsNyArNzI4LDcgQEAgZGVmIG51bXB5X2NoaXNx dWFyZTBiKHNpemUpOgotICAgICAgICAgICAgIGZyb20gbnVtcHkgaW1wb3J0IHZhciwgbWVhbiwg c3FydAotICAgICAgICAgICAgIGRmID0gMgotICAgICAgICAgICAgIGEgPSBjaGlzcXVhcmUoZGYs IHNpemUpCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAtIGRmKSA8IDAuMDUgYW5k IGFicyh2YXIoYSkgLSBkZioyICkgPCAuMDUpCi0rICAgICAgICAgICAgcmV0dXJuIChhYnMobWVh bihhKSAtIGRmKSA8IDAuMDUgYW5kIGFicyh2YXIoYSkgLSBkZioyICkgPCAuMSkKLSAgICAgICAg ICIiIgotICAgICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiA2LCBudW1weV9jaGlzcXVh cmUwYj1baW50XSkKLSAKLUBAIC03NDAsNyArNzQwLDcgQEAgZGVmIG51bXB5X2NoaXNxdWFyZTIo c2l6ZSk6Ci0gICAgICAgICAgICAgZnJvbSBudW1weSBpbXBvcnQgbWVhbiwgdmFyCi0gICAgICAg ICAgICAgZGYgPSAxCi0gICAgICAgICAgICAgYSA9IGNoaXNxdWFyZShkZiwgc2l6ZT0oc2l6ZSwg c2l6ZSkpCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSkgLSBkZiA8IC4wNSBhbmQg YWJzKHZhcihhKSAtIDIqZGYpIDwgLjA1KQotKyAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4o YSkpIC0gZGYgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSAyKmRmKSA8IC4xKQotICAgICAgICAgIiIi Ci0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoqIDMsIG51bXB5X2NoaXNxdWFyZTI9 W2ludF0pCi0gCi1AQCAtNzY4LDcgKzc2OCw3IEBAIGRlZiBudW1weV9nYW1tYTBiKHNpemUpOgot ICAgICAgICAgICAgIGZyb20gbnVtcHkgaW1wb3J0IHZhciwgbWVhbiwgc3FydAotICAgICAgICAg ICAgIHNoYXBlLCBzY2FsZSA9IDEsMgotICAgICAgICAgICAgIGEgPSBnYW1tYShzaGFwZSwgc2Nh bGUsIHNpemUpCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAtIHNoYXBlKnNjYWxl KSA8IDAuMDUgYW5kIGFicyh2YXIoYSkgLSBzaGFwZSpzY2FsZSoqMikgPCAuMDUpCi0rICAgICAg ICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAtIHNoYXBlKnNjYWxlKSA8IDAuMDUgYW5kIGFicyh2 YXIoYSkgLSBzaGFwZSpzY2FsZSoqMikgPCAuMSkKLSAgICAgICAgICIiIgotICAgICAgICAgc2Vs Zi5ydW5fdGVzdChjb2RlLCAxMCAqKiA2LCBudW1weV9nYW1tYTBiPVtpbnRdKQotIAotQEAgLTc4 MCw3ICs3ODAsNyBAQCBkZWYgbnVtcHlfZ2FtbWEyKHNpemUpOgotICAgICAgICAgICAgIGZyb20g bnVtcHkgaW1wb3J0IG1lYW4sIHZhcgotICAgICAgICAgICAgIHNoYXBlID0gMgotICAgICAgICAg ICAgIGEgPSBnYW1tYShzaGFwZSA9IHNoYXBlLCBzaXplPShzaXplLCBzaXplKSkKLS0gICAgICAg ICAgICByZXR1cm4gKGFicyhtZWFuKGEpIC0gc2hhcGUpIDwgLjA1IGFuZCBhYnModmFyKGEpIC0g c2hhcGUpIDwgLjA1KQotKyAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkgLSBzaGFwZSkg PCAuMDUgYW5kIGFicyh2YXIoYSkgLSBzaGFwZSkgPCAuMSkKLSAgICAgICAgICIiIgotICAgICAg ICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiAzLCBudW1weV9nYW1tYTI9W2ludF0pCi0gCi1A QCAtNzk2LDcgKzc5Niw3IEBAIGRlZiBudW1weV93ZWlidWxsMGEoc2l6ZSk6Ci0gICAgICAgICAg ICAgZnJvbSBudW1weSBpbXBvcnQgdmFyLCBtZWFuCi0gICAgICAgICAgICAgcGEgPSAzLgotICAg ICAgICAgICAgIGEgPSBbd2VpYnVsbChwYSkgZm9yIHggaW4gcmFuZ2Uoc2l6ZSldCi0tICAgICAg ICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAtIHBhKSA8IDAuMDUgYW5kIGFicyh2YXIoYSkgLSAy KnBhKSA8IC4wNSkKLSsgICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpIC0gcGEpIDwgMC4w NSBhbmQgYWJzKHZhcihhKSAtIDIqcGEpIDwgLjEpCi0gICAgICAgICAiIiIKLSAgICAgICAgIHNl bGYucnVuX3Rlc3QoY29kZSwgMTAgKiogNiwgbnVtcHlfd2VpYnVsbDBhPVtpbnRdKQotIAotQEAg LTgwOCw3ICs4MDgsNyBAQCBkZWYgbnVtcHlfd2VpYnVsbDBiKHNpemUpOgotICAgICAgICAgICAg IGZyb20gbnVtcHkgaW1wb3J0IHZhciwgbWVhbiwgc3FydAotICAgICAgICAgICAgIHBhID0gMgot ICAgICAgICAgICAgIGEgPSB3ZWlidWxsKHBhLCBzaXplKQotLSAgICAgICAgICAgIHJldHVybiAo YWJzKG1lYW4oYSkgLSBwYSkgPCAwLjA1IGFuZCBhYnModmFyKGEpIC0gcGEqMiApIDwgLjA1KQot KyAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkgLSBwYSkgPCAwLjA1IGFuZCBhYnModmFy KGEpIC0gcGEqMiApIDwgLjEpCi0gICAgICAgICAiIiIKLSAgICAgICAgIHNlbGYucnVuX3Rlc3Qo Y29kZSwgMTAgKiogNiwgbnVtcHlfd2VpYnVsbDBiPVtpbnRdKQotIAotQEAgLTgyMCw3ICs4MjAs NyBAQCBkZWYgbnVtcHlfd2VpYnVsbDIoc2l6ZSk6Ci0gICAgICAgICAgICAgZnJvbSBudW1weSBp bXBvcnQgbWVhbiwgdmFyCi0gICAgICAgICAgICAgcGEgPSAxCi0gICAgICAgICAgICAgYSA9IHdl aWJ1bGwocGEsIHNpemU9KHNpemUsIHNpemUpKQotLSAgICAgICAgICAgIHJldHVybiAoYWJzKG1l YW4oYSkpIC0gcGEgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSAyKnBhKSA8IC4wNSkKLSsgICAgICAg ICAgICByZXR1cm4gKGFicyhtZWFuKGEpKSAtIHBhIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gMipw YSkgPCAuMSkKLSAgICAgICAgICIiIgotICAgICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAq KiAzLCBudW1weV93ZWlidWxsMj1baW50XSkKLSAKLUBAIC05NTksNyArOTU5LDcgQEAgZGVmIG51 bXB5X3BhcmV0bzBhKHNpemUpOgotICAgICAgICAgICAgIGFscGhhID0gMTAKLSAgICAgICAgICAg ICBydmFyID0gYWxwaGEvKChhbHBoYS0xKSoqMiooYWxwaGEtMikpCi0gICAgICAgICAgICAgYSA9 IFtwYXJldG8oYWxwaGEpIGZvciB4IGluIHJhbmdlKHNpemUpXQotLSAgICAgICAgICAgIHJldHVy biAoYWJzKG1lYW4oYSktIDAuNSkgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSBydmFyKSA8IC4wNSkK LSsgICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpLSAwLjUpIDwgLjA1IGFuZCBhYnModmFy KGEpIC0gcnZhcikgPCAuMSkKLSAgICAgICAgICIiIgotICAgICAgICAgc2VsZi5ydW5fdGVzdChj b2RlLCAxMCAqKiA2LCBudW1weV9wYXJldG8wYT1baW50XSkKLSAKLUBAIC05NzIsNyArOTcyLDcg QEAgZGVmIG51bXB5X3BhcmV0bzBiKHNpemUpOgotICAgICAgICAgICAgIGFscGhhID0gNgotICAg ICAgICAgICAgIHJ2YXIgPSBhbHBoYS8oKGFscGhhLTEpKioyKihhbHBoYS0yKSkKLSAgICAgICAg ICAgICBhID0gcGFyZXRvKGFscGhhLCBzaXplKQotLSAgICAgICAgICAgIHJldHVybiAoYWJzKG1l YW4oYSktIDAuNSkgPCAwLjA1IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAuMDUpCi0rICAgICAg ICAgICAgcmV0dXJuIChhYnMobWVhbihhKS0gMC41KSA8IDAuMDUgYW5kIGFicyh2YXIoYSkgLSBy dmFyKSA8IC4xKQotICAgICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEw ICoqIDYsIG51bXB5X3BhcmV0bzBiPVtpbnRdKQotIAotQEAgLTk4NSw3ICs5ODUsNyBAQCBkZWYg bnVtcHlfcGFyZXRvMihzaXplKToKLSAgICAgICAgICAgICBhbHBoYSA9IDUKLSAgICAgICAgICAg ICBydmFyID0gYWxwaGEvKChhbHBoYS0xKSoqMiooYWxwaGEtMikpCi0gICAgICAgICAgICAgYSA9 IHBhcmV0byhhbHBoYSwgc2l6ZT0oc2l6ZSwgc2l6ZSkpCi0tICAgICAgICAgICAgcmV0dXJuIChh YnMobWVhbihhKS0gMC41KSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIHJ2YXIpIDwgLjA1KQotKyAg ICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSktIDAuNSkgPCAuMDUgYW5kIGFicyh2YXIoYSkg LSBydmFyKSA8IC4xKQotICAgICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUs IDEwICoqIDMsIG51bXB5X3BhcmV0bzI9W2ludF0pCi0gCi1AQCAtMTAwMyw3ICsxMDAzLDcgQEAg ZGVmIG51bXB5X3Bvd2VyMGEoc2l6ZSk6Ci0gICAgICAgICAgICAgcm1lYW4gPSBhbHBoYSAvIChh bHBoYSArIDEpCi0gICAgICAgICAgICAgcnZhciA9IGFscGhhLygoYWxwaGErMSkqKjIqKGFscGhh KzIpKQotICAgICAgICAgICAgIGEgPSBbcG93ZXIoYWxwaGEpIGZvciB4IGluIHJhbmdlKHNpemUp XQotLSAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSktIHJtZWFuKSA8IC4wNSBhbmQgYWJz KHZhcihhKSAtIHJ2YXIpIDwgLjA1KQotKyAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkt IHJtZWFuKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIHJ2YXIpIDwgLjEpCi0gICAgICAgICAiIiIK LSAgICAgICAgIHNlbGYucnVuX3Rlc3QoY29kZSwgMTAgKiogNiwgbnVtcHlfcG93ZXIwYT1baW50 XSkKLSAKLUBAIC0xMDE3LDcgKzEwMTcsNyBAQCBkZWYgbnVtcHlfcG93ZXIwYihzaXplKToKLSAg ICAgICAgICAgICBybWVhbiA9IGFscGhhIC8gKGFscGhhICsgMSkKLSAgICAgICAgICAgICBydmFy ID0gYWxwaGEvKChhbHBoYSsxKSoqMiooYWxwaGErMikpCi0gICAgICAgICAgICAgYSA9IHBvd2Vy KGFscGhhLCBzaXplKQotLSAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSktIHJtZWFuKSA8 IDAuMDUgYW5kIGFicyh2YXIoYSkgLSBydmFyKSA8IC4wNSkKLSsgICAgICAgICAgICByZXR1cm4g KGFicyhtZWFuKGEpLSBybWVhbikgPCAwLjA1IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAuMSkK LSAgICAgICAgICIiIgotICAgICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiA2LCBudW1w eV9wb3dlcjBiPVtpbnRdKQotIAotQEAgLTEwMzEsNyArMTAzMSw3IEBAIGRlZiBudW1weV9wb3dl cjIoc2l6ZSk6Ci0gICAgICAgICAgICAgcm1lYW4gPSBhbHBoYSAvIChhbHBoYSArIDEpCi0gICAg ICAgICAgICAgcnZhciA9IGFscGhhLygoYWxwaGErMSkqKjIqKGFscGhhKzIpKQotICAgICAgICAg ICAgIGEgPSBwb3dlcihhbHBoYSwgc2l6ZT0oc2l6ZSwgc2l6ZSkpCi0tICAgICAgICAgICAgcmV0 dXJuIChhYnMobWVhbihhKS0gcm1lYW4pIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAu MDUpCi0rICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKS0gcm1lYW4pIDwgLjA1IGFuZCBh YnModmFyKGEpIC0gcnZhcikgPCAuMSkKLSAgICAgICAgICIiIgotICAgICAgICAgc2VsZi5ydW5f dGVzdChjb2RlLCAxMCAqKiAzLCBudW1weV9wb3dlcjI9W2ludF0pCi0gCi1AQCAtMTA0OSw3ICsx MDQ5LDcgQEAgZGVmIG51bXB5X3JheWxlaWdoMChzaXplKToKLSAgICAgICAgICAgICBzID0gMgot ICAgICAgICAgICAgIHJtZWFuID0gcypzcXJ0KHBpLzIpCi0gICAgICAgICAgICAgcnZhciA9ICgo NC1waSkvMikqcyoqMgotLSAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSktcm1lYW4pIDwg LjA1IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAuMDUpCi0rICAgICAgICAgICAgcmV0dXJuIChh YnMobWVhbihhKS1ybWVhbikgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSBydmFyKSA8IC4xKQotICAg ICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoqIDUsIG51bXB5X3Jh eWxlaWdoMD1baW50XSkKLSAKLUBAIC0xMDYzLDcgKzEwNjMsNyBAQCBkZWYgbnVtcHlfcmF5bGVp Z2gwYShzaXplKToKLSAgICAgICAgICAgICBhID0gW3JheWxlaWdoKHMpIGZvciB4IGluIHJhbmdl KHNpemUpXQotICAgICAgICAgICAgIHJtZWFuID0gcypzcXJ0KHBpLzIpCi0gICAgICAgICAgICAg cnZhciA9ICgoNC1waSkvMikqcyoqMgotLSAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkt cm1lYW4pIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAuMDUpCi0rICAgICAgICAgICAg cmV0dXJuIChhYnMobWVhbihhKS1ybWVhbikgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSBydmFyKSA8 IC4xKQotICAgICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoqIDUs IG51bXB5X3JheWxlaWdoMGE9W2ludF0pCi0gCi1AQCAtMTA3Nyw3ICsxMDc3LDcgQEAgZGVmIG51 bXB5X3JheWxlaWdoMGIoc2l6ZSk6Ci0gICAgICAgICAgICAgYSA9IHJheWxlaWdoKHMsIHNpemUp Ci0gICAgICAgICAgICAgcm1lYW4gPSBzKnNxcnQocGkvMikKLSAgICAgICAgICAgICBydmFyID0g KCg0LXBpKS8yKSpzKioyCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKS1ybWVhbikg PCAuMDUgYW5kIGFicyh2YXIoYSkgLSBydmFyKSA8IC4wNSkKLSsgICAgICAgICAgICByZXR1cm4g KGFicyhtZWFuKGEpLXJtZWFuKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIHJ2YXIpIDwgLjEpCi0g ICAgICAgICAiIiIKLSAgICAgICAgIHNlbGYucnVuX3Rlc3QoY29kZSwgMTAgKiogNSwgbnVtcHlf cmF5bGVpZ2gwYj1baW50XSkKLSAKLUBAIC0xMDkxLDcgKzEwOTEsNyBAQCBkZWYgbnVtcHlfcmF5 bGVpZ2gxKHNpemUpOgotICAgICAgICAgICAgIHMgPSAyCi0gICAgICAgICAgICAgcm1lYW4gPSBz KnNxcnQocGkvMikKLSAgICAgICAgICAgICBydmFyID0gKCg0LXBpKS8yKSpzKioyCi0tICAgICAg ICAgICAgcmV0dXJuIChhYnMobWVhbihhKS1ybWVhbikgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSBy dmFyKSA8IC4wNSkKLSsgICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpLXJtZWFuKSA8IC4w NSBhbmQgYWJzKHZhcihhKSAtIHJ2YXIpIDwgLjEpCi0gICAgICAgICAiIiIKLSAgICAgICAgIHNl bGYucnVuX3Rlc3QoY29kZSwgMTAgKiogNSwgbnVtcHlfcmF5bGVpZ2gxPVtpbnRdKQotIAotQEAg LTExMDUsNyArMTEwNSw3IEBAIGRlZiBudW1weV9yYXlsZWlnaDIoc2l6ZSk6Ci0gICAgICAgICAg ICAgcyA9IDIKLSAgICAgICAgICAgICBybWVhbiA9IHMqc3FydChwaS8yKQotICAgICAgICAgICAg IHJ2YXIgPSAoKDQtcGkpLzIpKnMqKjIKLS0gICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEp LXJtZWFuKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIHJ2YXIpIDwgLjA1KQotKyAgICAgICAgICAg IHJldHVybiAoYWJzKG1lYW4oYSktcm1lYW4pIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gcnZhcikg PCAuMSkKLSAgICAgICAgICIiIgotICAgICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiAz LCBudW1weV9yYXlsZWlnaDI9W2ludF0pCi0gCi1AQCAtMTIxOSw3ICsxMjE5LDcgQEAgZGVmIG51 bXB5X3N0YW5kYXJkX2V4cG9uZW50aWFsMChzaXplKToKLSAgICAgICAgICAgICBmcm9tIG51bXB5 LnJhbmRvbSBpbXBvcnQgc3RhbmRhcmRfZXhwb25lbnRpYWwKLSAgICAgICAgICAgICBmcm9tIG51 bXB5IGltcG9ydCB2YXIsIG1lYW4KLSAgICAgICAgICAgICBhID0gW3N0YW5kYXJkX2V4cG9uZW50 aWFsKCkgZm9yIHggaW4gcmFuZ2Uoc2l6ZSldCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVh bihhKSAtIDEpIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gMSkgPCAuMDUpCi0rICAgICAgICAgICAg cmV0dXJuIChhYnMobWVhbihhKSAtIDEpIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gMSkgPCAuMSkK LSAgICAgICAgICIiIgotICAgICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiA1LCBudW1w eV9zdGFuZGFyZF9leHBvbmVudGlhbDA9W2ludF0pCi0gCi1AQCAtMTIzMCw3ICsxMjMwLDcgQEAg ZGVmIG51bXB5X3N0YW5kYXJkX2V4cG9uZW50aWFsMShzaXplKToKLSAgICAgICAgICAgICBmcm9t IG51bXB5LnJhbmRvbSBpbXBvcnQgc3RhbmRhcmRfZXhwb25lbnRpYWwKLSAgICAgICAgICAgICBm cm9tIG51bXB5IGltcG9ydCB2YXIsIG1lYW4KLSAgICAgICAgICAgICBhID0gc3RhbmRhcmRfZXhw b25lbnRpYWwoc2l6ZSkKLS0gICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpIC0gMSkgPCAu MDUgYW5kIGFicyh2YXIoYSkgLSAxKSA8IC4wNSkKLSsgICAgICAgICAgICByZXR1cm4gKGFicyht ZWFuKGEpIC0gMSkgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSAxKSA8IC4xKQotICAgICAgICAgIiIi Ci0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoqIDUsIG51bXB5X3N0YW5kYXJkX2V4 cG9uZW50aWFsMT1baW50XSkKLSAKLUBAIC0xMjQxLDcgKzEyNDEsNyBAQCBkZWYgbnVtcHlfc3Rh bmRhcmRfZXhwb25lbnRpYWwyKHNpemUpOgotICAgICAgICAgICAgIGZyb20gbnVtcHkucmFuZG9t IGltcG9ydCBzdGFuZGFyZF9leHBvbmVudGlhbAotICAgICAgICAgICAgIGZyb20gbnVtcHkgaW1w b3J0IG1lYW4sIHZhcgotICAgICAgICAgICAgIGEgPSBzdGFuZGFyZF9leHBvbmVudGlhbCgoc2l6 ZSwgc2l6ZSkpCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAtIDEpIDwgLjA1IGFu ZCBhYnModmFyKGEpIC0gMSkgPCAuMDUpCi0rICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihh KSAtIDEpIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gMSkgPCAuMSkKLSAgICAgICAgICIiIgotICAg ICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiAzLCBudW1weV9zdGFuZGFyZF9leHBvbmVu dGlhbDI9W2ludF0pCi0gCi1AQCAtMTI1Niw3ICsxMjU2LDcgQEAgZGVmIG51bXB5X3N0YW5kYXJk X2dhbW1hMChzaXplKToKLSAgICAgICAgICAgICBmcm9tIG51bXB5LnJhbmRvbSBpbXBvcnQgc3Rh bmRhcmRfZ2FtbWEKLSAgICAgICAgICAgICBmcm9tIG51bXB5IGltcG9ydCB2YXIsIG1lYW4KLSAg ICAgICAgICAgICBhID0gW3N0YW5kYXJkX2dhbW1hKDEpIGZvciB4IGluIHJhbmdlKHNpemUpXQot LSAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkgLSAxKSA8IC4wNSBhbmQgYWJzKHZhcihh KSAtIDEpIDwgLjA1KQotKyAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkgLSAxKSA8IC4w NSBhbmQgYWJzKHZhcihhKSAtIDEpIDwgLjEpCi0gICAgICAgICAiIiIKLSAgICAgICAgIHNlbGYu cnVuX3Rlc3QoY29kZSwgMTAgKiogNSwgbnVtcHlfc3RhbmRhcmRfZ2FtbWEwPVtpbnRdKQotIAot QEAgLTEyNjcsNyArMTI2Nyw3IEBAIGRlZiBudW1weV9zdGFuZGFyZF9nYW1tYTEoc2l6ZSk6Ci0g ICAgICAgICAgICAgZnJvbSBudW1weS5yYW5kb20gaW1wb3J0IHN0YW5kYXJkX2dhbW1hCi0gICAg ICAgICAgICAgZnJvbSBudW1weSBpbXBvcnQgdmFyLCBtZWFuCi0gICAgICAgICAgICAgYSA9IHN0 YW5kYXJkX2dhbW1hKDIsIHNpemUpCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAt IDIpIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gMikgPCAuMDUpCi0rICAgICAgICAgICAgcmV0dXJu IChhYnMobWVhbihhKSAtIDIpIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gMikgPCAuMSkKLSAgICAg ICAgICIiIgotICAgICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiA1LCBudW1weV9zdGFu ZGFyZF9nYW1tYTE9W2ludF0pCi0gCi1AQCAtMTI3OCw3ICsxMjc4LDcgQEAgZGVmIG51bXB5X3N0 YW5kYXJkX2dhbW1hMihzaXplKToKLSAgICAgICAgICAgICBmcm9tIG51bXB5LnJhbmRvbSBpbXBv cnQgc3RhbmRhcmRfZ2FtbWEKLSAgICAgICAgICAgICBmcm9tIG51bXB5IGltcG9ydCBtZWFuLCB2 YXIKLSAgICAgICAgICAgICBhID0gc3RhbmRhcmRfZ2FtbWEoMywgKHNpemUsIHNpemUpKQotLSAg ICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkgLSAzKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAt IDMpIDwgLjA1KQotKyAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkgLSAzKSA8IC4wNSBh bmQgYWJzKHZhcihhKSAtIDMpIDwgLjEpCi0gICAgICAgICAiIiIKLSAgICAgICAgIHNlbGYucnVu X3Rlc3QoY29kZSwgMTAgKiogMywgbnVtcHlfc3RhbmRhcmRfZ2FtbWEyPVtpbnRdKQotIAotQEAg LTEyOTYsNyArMTI5Niw3IEBAIGRlZiBudW1weV9ndW1iZWwwKHNpemUpOgotICAgICAgICAgICAg IHJtZWFuID0gdSArIDAuNTc3MjEKLSAgICAgICAgICAgICBydmFyID0gKHBpKioyLzYpCi0gICAg ICAgICAgICAgYSA9IFtndW1iZWwoKSBmb3IgeCBpbiByYW5nZShzaXplKV0KLS0gICAgICAgICAg ICByZXR1cm4gKGFicyhtZWFuKGEpIC0gcm1lYW4pIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gcnZh cikgPCAuMDUpCi0rICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAtIHJtZWFuKSA8IC4w NSBhbmQgYWJzKHZhcihhKSAtIHJ2YXIpIDwgLjEpCi0gICAgICAgICAiIiIKLSAgICAgICAgIHNl bGYucnVuX3Rlc3QoY29kZSwgMTAgKiogNiwgbnVtcHlfZ3VtYmVsMD1baW50XSkKLSAKLUBAIC0x MzEwLDcgKzEzMTAsNyBAQCBkZWYgbnVtcHlfZ3VtYmVsMGEoc2l6ZSk6Ci0gICAgICAgICAgICAg cm1lYW4gPSB1ICsgMC41NzcyMQotICAgICAgICAgICAgIHJ2YXIgPSAocGkqKjIvNikKLSAgICAg ICAgICAgICBhID0gW2d1bWJlbCh1KSBmb3IgeCBpbiByYW5nZShzaXplKV0KLS0gICAgICAgICAg ICByZXR1cm4gKGFicyhtZWFuKGEpIC0gcm1lYW4gKSA8IDAuMDUgYW5kIGFicyh2YXIoYSkgLSBy dmFyKSA8IC4wNSkKLSsgICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpIC0gcm1lYW4gKSA8 IDAuMDUgYW5kIGFicyh2YXIoYSkgLSBydmFyKSA8IC4xKQotICAgICAgICAgIiIiCi0gICAgICAg ICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoqIDYsIG51bXB5X2d1bWJlbDBhPVtpbnRdKQotIAot QEAgLTEzMjUsNyArMTMyNSw3IEBAIGRlZiBudW1weV9ndW1iZWwwYihzaXplKToKLSAgICAgICAg ICAgICBybWVhbiA9IHUgKyAwLjU3NzIxKnMKLSAgICAgICAgICAgICBydmFyID0gKHBpKioyLzYp KnMqKjIKLSAgICAgICAgICAgICBhID0gZ3VtYmVsKHUsIHMsIHNpemUpCi0tICAgICAgICAgICAg cmV0dXJuIChhYnMobWVhbihhKSAtIHJtZWFuKSA8IDAuMDUgYW5kIGFicyh2YXIoYSkgLSBydmFy KSA8IC4wNSkKLSsgICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpIC0gcm1lYW4pIDwgMC4w NSBhbmQgYWJzKHZhcihhKSAtIHJ2YXIpIDwgLjEpCi0gICAgICAgICAiIiIKLSAgICAgICAgIHNl bGYucnVuX3Rlc3QoY29kZSwgMTAgKiogNiwgbnVtcHlfZ3VtYmVsMGI9W2ludF0pCi0gCi1AQCAt MTM0MSw3ICsxMzQxLDcgQEAgZGVmIG51bXB5X2d1bWJlbDEoc2l6ZSk6Ci0gICAgICAgICAgICAg cm1lYW4gPSB1ICsgMC41NzcyMSpzCi0gICAgICAgICAgICAgcnZhciA9IChwaSoqMi82KSpzKioy Ci0gICAgICAgICAgICAgYSA9IGd1bWJlbChzaXplPXNpemUpCi0tICAgICAgICAgICAgcmV0dXJu IChhYnMobWVhbihhKSAtIHJtZWFuKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIHJ2YXIpIDwgLjA1 KQotKyAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkgLSBybWVhbikgPCAuMDUgYW5kIGFi cyh2YXIoYSkgLSBydmFyKSA8IC4xKQotICAgICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90 ZXN0KGNvZGUsIDEwICoqIDYsIG51bXB5X2d1bWJlbDE9W2ludF0pCi0gCi1AQCAtMTM1Nyw3ICsx MzU3LDcgQEAgZGVmIG51bXB5X2d1bWJlbDIoc2l6ZSk6Ci0gICAgICAgICAgICAgcm1lYW4gPSB1 ICsgMC41NzcyMSpzCi0gICAgICAgICAgICAgcnZhciA9IChwaSoqMi82KSpzKioyCi0gICAgICAg ICAgICAgYSA9IGd1bWJlbChzaXplPShzaXplLCBzaXplKSkKLS0gICAgICAgICAgICByZXR1cm4g KGFicyhtZWFuKGEpIC0gcm1lYW4pIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAuMDUp Ci0rICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAtIHJtZWFuKSA8IC4wNSBhbmQgYWJz KHZhcihhKSAtIHJ2YXIpIDwgLjEpCi0gICAgICAgICAiIiIKLSAgICAgICAgIHNlbGYucnVuX3Rl c3QoY29kZSwgMTAgKiogMywgbnVtcHlfZ3VtYmVsMj1baW50XSkKLSAKLUBAIC0xNDU1LDcgKzE0 NTUsNyBAQCBkZWYgbnVtcHlfbGFwbGFjZTAoc2l6ZSk6Ci0gICAgICAgICAgICAgcm1lYW4gPSB1 Ci0gICAgICAgICAgICAgcnZhciA9IDIqcyoqMgotICAgICAgICAgICAgIGEgPSBbbGFwbGFjZSgp IGZvciB4IGluIHJhbmdlKHNpemUpXQotLSAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkg LSBybWVhbikgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSBydmFyKSA8IC4wNSkKLSsgICAgICAgICAg ICByZXR1cm4gKGFicyhtZWFuKGEpIC0gcm1lYW4pIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gcnZh cikgPCAuMSkKLSAgICAgICAgICIiIgotICAgICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAq KiA2LCBudW1weV9sYXBsYWNlMD1baW50XSkKLSAKLUBAIC0xNDcwLDcgKzE0NzAsNyBAQCBkZWYg bnVtcHlfbGFwbGFjZTBhKHNpemUpOgotICAgICAgICAgICAgIHJtZWFuID0gdQotICAgICAgICAg ICAgIHJ2YXIgPSAyKnMqKjIKLSAgICAgICAgICAgICBhID0gW2xhcGxhY2UodSkgZm9yIHggaW4g cmFuZ2Uoc2l6ZSldCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAtIHJtZWFuICkg PCAwLjA1IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAuMDUpCi0rICAgICAgICAgICAgcmV0dXJu IChhYnMobWVhbihhKSAtIHJtZWFuICkgPCAwLjA1IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAu MSkKLSAgICAgICAgICIiIgotICAgICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiA2LCBu dW1weV9sYXBsYWNlMGE9W2ludF0pCi0gCi1AQCAtMTQ4NSw3ICsxNDg1LDcgQEAgZGVmIG51bXB5 X2xhcGxhY2UwYihzaXplKToKLSAgICAgICAgICAgICBybWVhbiA9IHUKLSAgICAgICAgICAgICBy dmFyID0gMipzKioyCi0gICAgICAgICAgICAgYSA9IGxhcGxhY2UodSwgcywgc2l6ZSkKLS0gICAg ICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpIC0gcm1lYW4pIDwgMC4wNSBhbmQgYWJzKHZhcihh KSAtIHJ2YXIpIDwgLjA1KQotKyAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkgLSBybWVh bikgPCAwLjA1IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAuMSkKLSAgICAgICAgICIiIgotICAg ICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiA2LCBudW1weV9sYXBsYWNlMGI9W2ludF0p Ci0gCi1AQCAtMTUwMSw3ICsxNTAxLDcgQEAgZGVmIG51bXB5X2xhcGxhY2UxKHNpemUpOgotICAg ICAgICAgICAgIHJtZWFuID0gdQotICAgICAgICAgICAgIHJ2YXIgPSAyKnMqKjIKLSAgICAgICAg ICAgICBhID0gbGFwbGFjZShzaXplPXNpemUpCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVh bihhKSAtIHJtZWFuKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIHJ2YXIpIDwgLjA1KQotKyAgICAg ICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkgLSBybWVhbikgPCAuMDUgYW5kIGFicyh2YXIoYSkg LSBydmFyKSA8IC4xKQotICAgICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUs IDEwICoqIDYsIG51bXB5X2xhcGxhY2UxPVtpbnRdKQotIAotQEAgLTE1MTcsNyArMTUxNyw3IEBA IGRlZiBudW1weV9sYXBsYWNlMihzaXplKToKLSAgICAgICAgICAgICBybWVhbiA9IHUKLSAgICAg ICAgICAgICBydmFyID0gMipzKioyCi0gICAgICAgICAgICAgYSA9IGxhcGxhY2Uoc2l6ZT0oc2l6 ZSwgc2l6ZSkpCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAtIHJtZWFuKSA8IC4w NSBhbmQgYWJzKHZhcihhKSAtIHJ2YXIpIDwgLjA1KQotKyAgICAgICAgICAgIHJldHVybiAoYWJz KG1lYW4oYSkgLSBybWVhbikgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSBydmFyKSA8IC4xKQotICAg ICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoqIDMsIG51bXB5X2xh cGxhY2UyPVtpbnRdKQotIAotQEAgLTE1MzUsNyArMTUzNSw3IEBAIGRlZiBudW1weV9sb2dzZXJp ZXMwKHNpemUpOgotICAgICAgICAgICAgIHJtZWFuID0gcyAvIChsb2coMSAtIHMpKihzIC0gMSkp Ci0gICAgICAgICAgICAgcnZhciA9IC0ocyoocytsb2coMS1zKSkpLygocyAtIDEpKioyKihsb2co MS1zKSkqKjIpICAgICAgCi0gICAgICAgICAgICAgYSA9IFtsb2dzZXJpZXMocykgZm9yIHggaW4g cmFuZ2Uoc2l6ZSldCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAtIHJtZWFuKSA8 IC4wNSBhbmQgYWJzKHZhcihhKSAtIHJ2YXIpIDwgLjA1KQotKyAgICAgICAgICAgIHJldHVybiAo YWJzKG1lYW4oYSkgLSBybWVhbikgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSBydmFyKSA8IC4xKQot ICAgICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoqIDUsIG51bXB5 X2xvZ3NlcmllczA9W2ludF0pCi0gCi1AQCAtMTU0OSw3ICsxNTQ5LDcgQEAgZGVmIG51bXB5X2xv Z3NlcmllczEoc2l6ZSk6Ci0gICAgICAgICAgICAgcm1lYW4gPSBzIC8gKGxvZygxIC0gcykqKHMg LSAxKSkKLSAgICAgICAgICAgICBydmFyID0gLShzKihzK2xvZygxLXMpKSkvKChzIC0gMSkqKjIq KGxvZygxLXMpKSoqMikgICAgICAgICAgICAgCi0gICAgICAgICAgICAgYSA9IGxvZ3Nlcmllcyhz LCBzaXplKQotLSAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkgLSBybWVhbikgPCAuMDUg YW5kIGFicyh2YXIoYSkgLSBydmFyKSA8IC4wNSkKLSsgICAgICAgICAgICByZXR1cm4gKGFicyht ZWFuKGEpIC0gcm1lYW4pIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAuMSkKLSAgICAg ICAgICIiIgotICAgICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiA1LCBudW1weV9sb2dz ZXJpZXMxPVtpbnRdKQotIAotQEAgLTE1NjMsNyArMTU2Myw3IEBAIGRlZiBudW1weV9sb2dzZXJp ZXMyKHNpemUpOgotICAgICAgICAgICAgIHJtZWFuID0gcyAvIChsb2coMSAtIHMpKihzIC0gMSkp Ci0gICAgICAgICAgICAgcnZhciA9IC0ocyoocytsb2coMS1zKSkpLygocyAtIDEpKioyKihsb2co MS1zKSkqKjIpICAgICAgICAgICAKLSAgICAgICAgICAgICBhID0gbG9nc2VyaWVzKHMsIChzaXpl LCBzaXplKSkKLS0gICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpIC0gcm1lYW4pIDwgLjA1 IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAuMDUpCi0rICAgICAgICAgICAgcmV0dXJuIChhYnMo bWVhbihhKSAtIHJtZWFuKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIHJ2YXIpIDwgLjEpCi0gICAg ICAgICAiIiIKLSAgICAgICAgIHNlbGYucnVuX3Rlc3QoY29kZSwgMTAgKiogMywgbnVtcHlfbG9n c2VyaWVzMj1baW50XSkKLSAKCmRpZmYgLS1naXQgYS8yNDMxLnBhdGNoIGIvMjQzMS5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjNiZTI1Yy4uMDAwMDAwMAotLS0gYS8yNDMx LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotRnJvbSBjODEyZDA1ZWU3OWZh OTU1NTZlNDRiMzBkMjkyYTYwYmFmNWFjMDRmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogPT9VVEYtOD9xP01pcm89MjBIcm9uPUM0PThEb2s/PSA8bWlyb0Bocm9uY29rLmN6PgotRGF0 ZTogVHVlLCAyNiBNYXkgMjAyNiAxNjo1Mzo0OCArMDIwMAotU3ViamVjdDogW1BBVENIXSBGaXgg dHlwaW5nIG9mIGFycmF5LnR5cGVjb2RlcyBmb3IgUHl0aG9uIDMuMTUKLQotUHl0aG9uIDMuMTUg Y2hhbmdlZCBhcnJheS50eXBlY29kZXMgZnJvbSBzdHIgdG8gdHVwbGUgdG8gc3VwcG9ydAotdHlw ZSBjb2RlcyBsb25nZXIgdGhhbiAxIGNoYXJhY3RlciAoWmYgYW5kIFpkKS4KLVNlZSBodHRwczov L2dpdGh1Yi5jb20vcHl0aG9uL2NweXRob24vaXNzdWVzLzE0ODY3NQotCi1QeXRocmFuJ3MgZmls bF9jb25zdGFudHNfdHlwZXMoKSB1c2VzIHR5cGUoKSBpbnRyb3NwZWN0aW9uIG9uIGxpdmUKLVB5 dGhvbiBjb25zdGFudHMgdG8gc2V0IHNpZ25hdHVyZXMsIHdoaWNoIG5vdyBwcm9kdWNlcyB0dXBs ZSBpbnN0ZWFkCi1vZiBzdHIuIE1lYW53aGlsZSwgdGhlIGV4cGxpY2l0IENvbnN0YW50SW50cihz aWduYXR1cmU9c3RyKSB3YXMKLXNpbGVudGx5IGlnbm9yZWQgYmVjYXVzZSBDb25zdGFudEludHIu X19pbml0X18gbmV2ZXIgc3RvcmVkIGl0LgotCi1GaXggQ29uc3RhbnRJbnRyIHRvIHByZXNlcnZl IGFuIGV4cGxpY2l0bHkgcHJvdmlkZWQgc2lnbmF0dXJlLCBhbmQKLXNraXAgaW50cm9zcGVjdGlv biBpbiBmaWxsX2NvbnN0YW50c190eXBlcyB3aGVuIG9uZSBpcyBhbHJlYWR5IHNldC4KLQotV2l0 aG91dCB0aGUgZml4LCBweXRlc3QgcHl0aHJhbi90ZXN0cy90ZXN0X2FycmF5LnB5IC1rIHRlc3Rf dHlwZWNvZGVzCi1mYWlscyB3aXRoOgotCi0gICAgICAgIGVsc2U6Ci0+ICAgICAgICAgICByYWlz ZSBOb3RJbXBsZW1lbnRlZEVycm9yKHQpCi1FICAgICAgICAgICBOb3RJbXBsZW1lbnRlZEVycm9y OiA8Y2xhc3MgJ3R1cGxlJz4KLQotcHl0aHJhbi90eXBlcy90b2cucHk6NDgwOiBOb3RJbXBsZW1l bnRlZEVycm9yCi0KLUFzc2lzdGVkLUJ5OiBDbGF1ZGUgT3B1cyA0LjYKLS0tLQotIHB5dGhyYW4v aW50cmluc2ljLnB5IHwgMiArKwotIHB5dGhyYW4vdGFibGVzLnB5ICAgIHwgNyArKysrLS0tCi0g MiBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCi0KLWRpZmYg LS1naXQgYS9weXRocmFuL2ludHJpbnNpYy5weSBiL3B5dGhyYW4vaW50cmluc2ljLnB5Ci1pbmRl eCBmNzU2NmU0ZGUuLmE1OTQ4YzE3MiAxMDA2NDQKLS0tLSBhL3B5dGhyYW4vaW50cmluc2ljLnB5 Ci0rKysgYi9weXRocmFuL2ludHJpbnNpYy5weQotQEAgLTI1NSw2ICsyNTUsOCBAQCBkZWYgX19p bml0X18oc2VsZiwgKiprd2FyZ3MpOgotICAgICAgICAgIiIiIEZvcndhcmQgYXJndW1lbnRzIGFu ZCByZW1vdmUgYXJndW1lbnRzIGVmZmVjdHMuICIiIgotICAgICAgICAga3dhcmdzWyJhcmd1bWVu dF9lZmZlY3RzIl0gPSAoKQotICAgICAgICAgc3VwZXIoQ29uc3RhbnRJbnRyLCBzZWxmKS5fX2lu aXRfXygqKmt3YXJncykKLSsgICAgICAgIGlmICdzaWduYXR1cmUnIGluIGt3YXJnczoKLSsgICAg ICAgICAgICBzZWxmLnNpZ25hdHVyZSA9IGt3YXJnc1snc2lnbmF0dXJlJ10KLSAKLSAgICAgZGVm IGlzbGl0ZXJhbChzZWxmKToKLSAgICAgICAgICIiIiBNYXJrIHRoaXMgaW50cmluc2ljIGFzIGEg bGl0ZXJhbC4gIiIiCi1kaWZmIC0tZ2l0IGEvcHl0aHJhbi90YWJsZXMucHkgYi9weXRocmFuL3Rh Ymxlcy5weQotaW5kZXggNjRjYTNkNWMyLi4xMjY2NTY4NjMgMTAwNjQ0Ci0tLS0gYS9weXRocmFu L3RhYmxlcy5weQotKysrIGIvcHl0aHJhbi90YWJsZXMucHkKLUBAIC00NzMxLDkgKzQ3MzEsMTAg QEAgZGVmIGZpbGxfY29uc3RhbnRzX3R5cGVzKG1vZHVsZV9uYW1lLCBlbGVtZW50cyk6Ci0gICAg ICAgICBpZiBpc2luc3RhbmNlKGludHJpbnNpYywgZGljdCk6ICAjIFN1Ym1vZHVsZSBjYXNlCi0g ICAgICAgICAgICAgZmlsbF9jb25zdGFudHNfdHlwZXMobW9kdWxlX25hbWUgKyAoZWxlbSwpLCBp bnRyaW5zaWMpCi0gICAgICAgICBlbGlmIGlzaW5zdGFuY2UoaW50cmluc2ljLCBDb25zdGFudElu dHIpOgotLSAgICAgICAgICAgICMgdXNlIGludHJvc3BlY3Rpb24gdG8gZ2V0IHRoZSBQeXRob24g Y29uc3RhbnRzIHR5cGVzCi0tICAgICAgICAgICAgY3N0ID0gZ2V0YXR0cihpbXBvcnRfbW9kdWxl KCIuIi5qb2luKG1vZHVsZV9uYW1lKSksIGVsZW0pCi0tICAgICAgICAgICAgaW50cmluc2ljLnNp Z25hdHVyZSA9IHR5cGUoY3N0KQotKyAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKGludHJpbnNp YywgJ3NpZ25hdHVyZScpOgotKyAgICAgICAgICAgICAgICAjIHVzZSBpbnRyb3NwZWN0aW9uIHRv IGdldCB0aGUgUHl0aG9uIGNvbnN0YW50cyB0eXBlcwotKyAgICAgICAgICAgICAgICBjc3QgPSBn ZXRhdHRyKGltcG9ydF9tb2R1bGUoIi4iLmpvaW4obW9kdWxlX25hbWUpKSwgZWxlbSkKLSsgICAg ICAgICAgICAgICAgaW50cmluc2ljLnNpZ25hdHVyZSA9IHR5cGUoY3N0KQotIAotIAotIGZpbGxf Y29uc3RhbnRzX3R5cGVzKCgpLCBNT0RVTEVTKQoKZGlmZiAtLWdpdCBhL3B5dGhyYW4uc3BlYyBi L3B5dGhyYW4uc3BlYwppbmRleCBhNmUzNmU5Li4xMmZiMTU5IDEwMDY0NAotLS0gYS9weXRocmFu LnNwZWMKKysrIGIvcHl0aHJhbi5zcGVjCkBAIC0xLDUgKzEsNSBAQAogTmFtZTogICAgICAgICAg IHB5dGhyYW4KLVZlcnNpb246ICAgICAgICAwLjE4LjEKK1ZlcnNpb246ICAgICAgICAwLjE5LjAK IFJlbGVhc2U6ICAgICAgICAlYXV0b3JlbGVhc2UKIFN1bW1hcnk6ICAgICAgICBBaGVhZCBvZiBU aW1lIFB5dGhvbiBjb21waWxlciBmb3IgbnVtZXJpYyBrZXJuZWxzCiAKQEAgLTIyLDQ1ICsyMiw2 IEBAIFByb3ZpZGVzOiAgICAgICBidW5kbGVkKHB5dGhvbjNkaXN0KG5ldHdvcmt4KSkgPSAyLjYu MQogVVJMOiAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9zZXJnZS1zYW5zLXBhaWxsZS9w eXRocmFuCiBTb3VyY2U6ICAgICAgICAgJXt1cmx9L2FyY2hpdmUvJXt2ZXJzaW9ufS8le25hbWV9 LSV7dmVyc2lvbn0udGFyLmd6CiAKLSMgQ29tcGF0aWJpbGl0eSB3aXRoIDMyIGJpdHMgbnVtcHkK LSMgUmVzb2x2ZWQgdXBzdHJlYW0KLVBhdGNoOiBodHRwczovL2dpdGh1Yi5jb20vc2VyZ2Utc2Fu cy1wYWlsbGUvcHl0aHJhbi9wdWxsLzIzNzUucGF0Y2gKLQotIyBTa2lwIG51bXB5IGZsb2F0MTI4 IHRlc3RzIHdoZW4gbnVtcHkgZG9lc24ndCBzdXBwb3J0IHRoZW0KLSMgUmVzb2x2ZWQgdXBzdHJl YW0KLVBhdGNoOiBodHRwczovL2dpdGh1Yi5jb20vc2VyZ2Utc2Fucy1wYWlsbGUvcHl0aHJhbi9w dWxsLzIzOTgucGF0Y2gKLQotIyBDb21wYXRpYmlsaXR5IHdpdGggcGx5IHBvc3QtMy4xMSB2ZXJz aW9uCi0jIFJlc29sdmVkIHVwc3RyZWFtCi1QYXRjaDogaHR0cHM6Ly9naXRodWIuY29tL3Nlcmdl LXNhbnMtcGFpbGxlL3B5dGhyYW4vcHVsbC8yNDAyLnBhdGNoCi0KLSMgRml4IGRpcmVjdG9yeSBz dHJ1Y3R1cmUgZm9yIHB5dGVzdCBkaXNjb3ZlcnkKLSMgU2VudCB1cHN0cmVhbQotUGF0Y2g6IGh0 dHBzOi8vZ2l0aHViLmNvbS9zZXJnZS1zYW5zLXBhaWxsZS9weXRocmFuL3B1bGwvMjQwMy5wYXRj aAotCi0jIEZpeCAzMiBiaXQgdHlwZSBjb252ZXJzaW9uIGZhaWx1cmVzCi0jIFJlc29sdmVkIHVw c3RyZWFtCi1QYXRjaDogaHR0cHM6Ly9naXRodWIuY29tL3NlcmdlLXNhbnMtcGFpbGxlL3B5dGhy YW4vcHVsbC8yNDA0LnBhdGNoCi0KLSMgUmVkdWNlIHRlc3RfbnVtcHlfcmFuZG9tX2J5dGVzMSBz YW1wbGUgc2l6ZQotIyBSZXNvbHZlZCB1cHN0cmVhbQotUGF0Y2g6IGh0dHBzOi8vZ2l0aHViLmNv bS9zZXJnZS1zYW5zLXBhaWxsZS9weXRocmFuL3B1bGwvMjQwNy5wYXRjaAotCi0jIFJlZHVjZSBD KysgY29kZSBnZW5lcmF0aW9uIGR1cmluZyB0ZXN0aW5nCi0jIFJlc29sdmVkIHVwc3RyZWFtCi1Q YXRjaDogaHR0cHM6Ly9naXRodWIuY29tL3NlcmdlLXNhbnMtcGFpbGxlL3B5dGhyYW4vcHVsbC8y NDEzLnBhdGNoCi0KLSMgV2lkZW4gdG9sZXJhbmNlIGluIHRlc3RfbnVtcHlfcmFuZG9tX2J5dGVz MQotIyBSZXNvbHZlZCB1cHN0cmVhbQotUGF0Y2g6IGh0dHBzOi8vZ2l0aHViLmNvbS9zZXJnZS1z YW5zLXBhaWxsZS9weXRocmFuL3B1bGwvMjQxNC5wYXRjaAotCi0jIFdpZGVuIHRvbGVyYW5jZSBp biByYW5kb20gZGlzdHJpYnV0aW9uIHRlc3RzCi0jIFJlc29sdmVkIHVwc3RyZWFtCi1QYXRjaDog aHR0cHM6Ly9naXRodWIuY29tL3NlcmdlLXNhbnMtcGFpbGxlL3B5dGhyYW4vcHVsbC8yNDE1LnBh dGNoCi0KLSMgRml4IHR5cGluZyBvZiBhcnJheS50eXBlY29kZXMgZm9yIFB5dGhvbiAzLjE1Ci1Q YXRjaDogaHR0cHM6Ly9naXRodWIuY29tL3NlcmdlLXNhbnMtcGFpbGxlL3B5dGhyYW4vcHVsbC8y NDMxLnBhdGNoCi0KICMgdGhlcmUgaXMgbm8gYWN0dWFsIGFyY2hlZCBjb250ZW50CiAjIHlldCB3 ZSB3YW50IHRvIHRlc3Qgb24gYWxsIGFyY2hpdGVjdHVyZXMKICMgYW5kIHdlIGFsc28gbWlnaHQg bmVlZCB0byBza2lwIHNvbWUKQEAgLTEyNiw2ICs4Nyw3IEBAIHNlZCAtaSAncy8sICJuYnZhbCIv LycgcHlwcm9qZWN0LnRvbWwKIHNlZCAtaSAtZSAncy8tTzAvLU8xL2cnIC1lICdzLy1XZXJyb3Iv LXcvZycgcHl0aHJhbi90ZXN0cy9fX2luaXRfXy5weQogCiAlcHlwcm9qZWN0X3BhdGNoX2RlcGVu ZGVuY3kgZ2FzdDpzZXRfdXBwZXI6MC44LjAKKyVweXByb2plY3RfcGF0Y2hfZGVwZW5kZW5jeSBi ZW5pZ2V0OmRyb3BfbG93ZXIKIAogCiAlZ2VuZXJhdGVfYnVpbGRyZXF1aXJlcwoKZGlmZiAtLWdp dCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IDkyYzM4ZTAuLjBhYmVmNDAgMTAwNjQ0Ci0tLSBh L3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSArMSBAQAotU0hBNTEyIChweXRocmFuLTAuMTgu MS50YXIuZ3opID0gMTU2NTA2MjdiOTM5NmI0OTQwMTA2N2MzYTdjMTYxZDE1NjlmODlmMjlhMDgy NDNhYTg1NjU5MDIzZTQyY2UwMjg2MzM5MTVjNTFjOGM1MTg4YTU1OTljMjAxZWIzMGFhMjcyMWQ2 NGJhNzY2YjJhMjUyMjAzNDY5YmM2ZTJhYjEKK1NIQTUxMiAocHl0aHJhbi0wLjE5LjAudGFyLmd6 KSA9IGU3MjM4Y2RiYTFlNmFiNjFmODI2OGY1MmJjNzIyNDYwMGVlNWRiOWU1NDkyOGQ3OGMzNzll YTYxZGE0ZTAwZjEyMWZjYjAzYTk2NjZjZTBkYjFmM2UzZDk3NTU2OTViNmE5ZGQ0ZjIyZjc3MGJi NTU0ZjVlNDM4ZjA0YjRmMzdjCg==