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: Mamoru TASAKA To: git-commits@fedoraproject.org Subject: [rpms/ruby] f44: Backport ruby/openssl 4.0.2 from ruby 4.0 branch to support openssl 4.0 Date: Wed, 15 Jul 2026 11:33:27 GMT Message-ID: <178411520720.1.9066040413973906017.rpms-ruby-e8748e1daf35@fedoraproject.org> List-ID: X-Git-Repo: rpms/ruby X-Git-Branch: f44 X-Git-Rev: e8748e1daf35b1afa71ecd16a85365e850024e46 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvcnVieQpCcmFuY2gg OiBmNDQKQ29tbWl0IDogZTg3NDhlMWRhZjM1YjFhZmE3MWVjZDE2YTg1MzY1ZTg1MDAyNGU0NgpB dXRob3IgOiBNYW1vcnUgVEFTQUtBIDxtdGFzYWthQGZlZG9yYXByb2plY3Qub3JnPgpEYXRlICAg OiAyMDI2LTA2LTE0VDIyOjM5OjUxKzA5OjAwClN0YXRzICA6ICsxNzU3Ly0yIGluIDIgZmlsZShz KQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL3J1YnkvYy9lODc0 OGUxZGFmMzViMWFmYTcxZWNkMTZhODUzNjVlODUwMDI0ZTQ2P2JyYW5jaD1mNDQKCkxvZzoKQmFj a3BvcnQgcnVieS9vcGVuc3NsIDQuMC4yIGZyb20gcnVieSA0LjAgYnJhbmNoIHRvIHN1cHBvcnQg b3BlbnNzbCA0LjAKCi0tLQpkaWZmIC0tZ2l0IGEvcnVieS1wcjE2OTQ3LW9wZW5zc2wtNF8wXzIt ZnJvbS1ydWJ5XzRfMC5wYXRjaCBiL3J1YnktcHIxNjk0Ny1vcGVuc3NsLTRfMF8yLWZyb20tcnVi eV80XzAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzRlZjFjMQot LS0gL2Rldi9udWxsCisrKyBiL3J1YnktcHIxNjk0Ny1vcGVuc3NsLTRfMF8yLWZyb20tcnVieV80 XzAucGF0Y2gKQEAgLTAsMCArMSwxNzQ3IEBACitGcm9tIDA1NzY0NTIwMzBkNDQ0NTUyNTBjZTY3 ZWNkNGNhNTEyYjIxYzdkYmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLYXp1a2kg WWFtYWd1Y2hpIDxrQHJoZS5qcD4KK0RhdGU6IFRodSwgMTQgTWF5IDIwMjYgMDA6NDY6NTQgKzA5 MDAKK1N1YmplY3Q6IFtQQVRDSCAxLzJdIE1lcmdlIG9wZW5zc2wtNC4wLjEKKworVGhlIGNoYW5n ZXMgY2FuIGJlIGZvdW5kIGF0OgorCisgICAgaHR0cHM6Ly9naXRodWIuY29tL3J1Ynkvb3BlbnNz bC9jb21wYXJlL3Y0LjAuMC4uLnY0LjAuMQorLS0tCisgZXh0L29wZW5zc2wvSGlzdG9yeS5tZCAg ICAgICAgICAgICB8IDIwICsrKysrKysKKyBleHQvb3BlbnNzbC9saWIvb3BlbnNzbC92ZXJzaW9u LnJiIHwgIDIgKy0KKyBleHQvb3BlbnNzbC9vcGVuc3NsLmdlbXNwZWMgICAgICAgIHwgIDIgKy0K KyBleHQvb3BlbnNzbC9vc3NsX2NpcGhlci5jICAgICAgICAgIHwgMTMgKystLS0KKyBleHQvb3Bl bnNzbC9vc3NsX29jc3AuYyAgICAgICAgICAgIHwgIDQgKy0KKyBleHQvb3BlbnNzbC9vc3NsX3Br Y3M3LmMgICAgICAgICAgIHwgIDIgKy0KKyBleHQvb3BlbnNzbC9vc3NsX3BrZXlfZWMuYyAgICAg ICAgIHwgIDIgKy0KKyBleHQvb3BlbnNzbC9vc3NsX3NzbC5jICAgICAgICAgICAgIHwgODggKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCisgdGVzdC9vcGVuc3NsL3Rlc3RfY2lwaGVyLnJi ICAgICAgICB8IDY3ICsrKysrKysrKysrKystLS0tLS0tLS0tCisgdGVzdC9vcGVuc3NsL3Rlc3Rf ZGlnZXN0LnJiICAgICAgICB8IDI4ICsrKysrKy0tLS0KKyB0ZXN0L29wZW5zc2wvdGVzdF9maXBz LnJiICAgICAgICAgIHwgIDIgKy0KKyB0ZXN0L29wZW5zc2wvdGVzdF9vY3NwLnJiICAgICAgICAg IHwgMjkgKysrKysrKysrKworIHRlc3Qvb3BlbnNzbC90ZXN0X3BrY3MxMi5yYiAgICAgICAgfCAz OCArKysrKysrKysrKy0tCisgdGVzdC9vcGVuc3NsL3Rlc3RfcGtleV9lYy5yYiAgICAgICB8ICA5 ICsrKworIHRlc3Qvb3BlbnNzbC90ZXN0X3NzbC5yYiAgICAgICAgICAgfCA2NiArKysrKysrKysr KysrKystLS0tLS0tCisgMTUgZmlsZXMgY2hhbmdlZCwgMjYzIGluc2VydGlvbnMoKyksIDEwOSBk ZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2V4dC9vcGVuc3NsL0hpc3RvcnkubWQgYi9leHQv b3BlbnNzbC9IaXN0b3J5Lm1kCitpbmRleCA0MTkyMzdmZjE2N2Y5YS4uYzc4YzdlNDYzMzRkZGIg MTAwNjQ0CistLS0gYS9leHQvb3BlbnNzbC9IaXN0b3J5Lm1kCisrKysgYi9leHQvb3BlbnNzbC9I aXN0b3J5Lm1kCitAQCAtMSwzICsxLDIzIEBACisrVmVyc2lvbiA0LjAuMQorKz09PT09PT09PT09 PT0KKysKKytOb3RhYmxlIGNoYW5nZXMKKystLS0tLS0tLS0tLS0tLS0KKysKKysqIEFkZCBgc3lu Y19jbG9zZWAga2V5d29yZCBhcmd1bWVudCB0byBgT3BlblNTTDo6U1NMOjpTU0xTb2NrZXQubmV3 YCBhcyBhCisrICBzaG9ydC1oYW5kIGZvciBzZXR0aW5nIGBzeW5jX2Nsb3NlYCBhdHRyaWJ1dGUg b24gdGhlIGNyZWF0ZWQgYFNTTFNvY2tldGAKKysgIGluc3RhbmNlLgorKyAgW1tHaXRIdWIgIzk1 NV1dKGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L29wZW5zc2wvaXNzdWVzLzk1NSkKKysgIFtbR2l0 SHViICM5OTZdXShodHRwczovL2dpdGh1Yi5jb20vcnVieS9vcGVuc3NsL3B1bGwvOTk2KQorKwor KworK0J1ZyBmaXhlcworKy0tLS0tLS0tLQorKworKyogRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFi bGVzIGluIGBPcGVuU1NMOjpPQ1NQOjpCYXNpY1Jlc3BvbnNlI3N0YXR1c2AuCisrICBbW0dpdEh1 YiAjMTAwNF1dKGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L29wZW5zc2wvcHVsbC8xMDA0KQorKwor KworIFZlcnNpb24gNC4wLjAKKyA9PT09PT09PT09PT09CisgCitkaWZmIC0tZ2l0IGEvZXh0L29w ZW5zc2wvbGliL29wZW5zc2wvdmVyc2lvbi5yYiBiL2V4dC9vcGVuc3NsL2xpYi9vcGVuc3NsL3Zl cnNpb24ucmIKK2luZGV4IDg4NTcwNTYyZTI1NWMzLi40NWMxNTBiZTExMDViYSAxMDA2NDQKKy0t LSBhL2V4dC9vcGVuc3NsL2xpYi9vcGVuc3NsL3ZlcnNpb24ucmIKKysrKyBiL2V4dC9vcGVuc3Ns L2xpYi9vcGVuc3NsL3ZlcnNpb24ucmIKK0BAIC0yLDUgKzIsNSBAQAorIAorIG1vZHVsZSBPcGVu U1NMCisgICAjIFRoZSB2ZXJzaW9uIHN0cmluZyBvZiBSdWJ5L09wZW5TU0wuCistICBWRVJTSU9O ID0gIjQuMC4wIgorKyAgVkVSU0lPTiA9ICI0LjAuMSIKKyBlbmQKK2RpZmYgLS1naXQgYS9leHQv b3BlbnNzbC9vcGVuc3NsLmdlbXNwZWMgYi9leHQvb3BlbnNzbC9vcGVuc3NsLmdlbXNwZWMKK2lu ZGV4IDcwNzJkNTk5ZDg2ZDY5Li5jNTk0YzZmMTc3NjUzOCAxMDA2NDQKKy0tLSBhL2V4dC9vcGVu c3NsL29wZW5zc2wuZ2Vtc3BlYworKysrIGIvZXh0L29wZW5zc2wvb3BlbnNzbC5nZW1zcGVjCitA QCAtMSw2ICsxLDYgQEAKKyBHZW06OlNwZWNpZmljYXRpb24ubmV3IGRvIHxzcGVjfAorICAgc3Bl Yy5uYW1lICAgICAgICAgID0gIm9wZW5zc2wiCistICBzcGVjLnZlcnNpb24gICAgICAgPSAiNC4w LjAiCisrICBzcGVjLnZlcnNpb24gICAgICAgPSAiNC4wLjEiCisgICBzcGVjLmF1dGhvcnMgICAg ICAgPSBbIk1hcnRpbiBCb3NzbGV0IiwgIlNISUJBVEEgSGlyb3NoaSIsICJaYWNoYXJ5IFNjb3R0 IiwgIkthenVraSBZYW1hZ3VjaGkiXQorICAgc3BlYy5lbWFpbCAgICAgICAgID0gWyJydWJ5LWNv cmVAcnVieS1sYW5nLm9yZyJdCisgICBzcGVjLnN1bW1hcnkgICAgICAgPSAlcXtTU0wvVExTIGFu ZCBnZW5lcmFsLXB1cnBvc2UgY3J5cHRvZ3JhcGh5IGZvciBSdWJ5fQorZGlmZiAtLWdpdCBhL2V4 dC9vcGVuc3NsL29zc2xfY2lwaGVyLmMgYi9leHQvb3BlbnNzbC9vc3NsX2NpcGhlci5jCitpbmRl eCBkYjY1ZTk5ODg4ZDNiZi4uZjNjZDI0N2M4ZmRmYmMgMTAwNjQ0CistLS0gYS9leHQvb3BlbnNz bC9vc3NsX2NpcGhlci5jCisrKysgYi9leHQvb3BlbnNzbC9vc3NsX2NpcGhlci5jCitAQCAtNDAx LDkgKzQwMSw5IEBAIG9zc2xfY2lwaGVyX3VwZGF0ZShpbnQgYXJnYywgVkFMVUUgKmFyZ3YsIFZB TFVFIHNlbGYpCisgICAgIH0KKyAgICAgb3V0X2xlbiA9IGluX2xlbiArIEVWUF9NQVhfQkxPQ0tf TEVOR1RIOworIAorLSAgICBpZiAoTklMX1Aoc3RyKSkgeworLSAgICAgICAgc3RyID0gcmJfc3Ry X25ldygwLCBvdXRfbGVuKTsKKy0gICAgfSBlbHNlIHsKKysgICAgaWYgKE5JTF9QKHN0cikpCisr ICAgICAgICBzdHIgPSByYl9zdHJfYnVmX25ldyhvdXRfbGVuKTsKKysgICAgZWxzZSB7CisgICAg ICAgICBTdHJpbmdWYWx1ZShzdHIpOworICAgICAgICAgaWYgKChsb25nKXJiX3N0cl9jYXBhY2l0 eShzdHIpID49IG91dF9sZW4pCisgICAgICAgICAgICAgcmJfc3RyX21vZGlmeShzdHIpOworQEAg LTQxMSw5ICs0MTEsOSBAQCBvc3NsX2NpcGhlcl91cGRhdGUoaW50IGFyZ2MsIFZBTFVFICphcmd2 LCBWQUxVRSBzZWxmKQorICAgICAgICAgICAgIHJiX3N0cl9tb2RpZnlfZXhwYW5kKHN0ciwgb3V0 X2xlbiAtIFJTVFJJTkdfTEVOKHN0cikpOworICAgICB9CisgCistICAgIGlmICghb3NzbF9jaXBo ZXJfdXBkYXRlX2xvbmcoY3R4LCAodW5zaWduZWQgY2hhciAqKVJTVFJJTkdfUFRSKHN0ciksICZv dXRfbGVuLCBpbiwgaW5fbGVuKSkKKy0gICAgICAgIG9zc2xfcmFpc2UoZUNpcGhlckVycm9yLCBO VUxMKTsKKy0gICAgYXNzZXJ0KG91dF9sZW4gPD0gUlNUUklOR19MRU4oc3RyKSk7CisrICAgIGlm ICghb3NzbF9jaXBoZXJfdXBkYXRlX2xvbmcoY3R4LCAodW5zaWduZWQgY2hhciAqKVJTVFJJTkdf UFRSKHN0ciksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dF9sZW4sIGlu LCBpbl9sZW4pKQorKyAgICAgICAgb3NzbF9yYWlzZShlQ2lwaGVyRXJyb3IsICJFVlBfQ2lwaGVy VXBkYXRlIik7CisgICAgIHJiX3N0cl9zZXRfbGVuKHN0ciwgb3V0X2xlbik7CisgCisgICAgIHJl dHVybiBzdHI7CitAQCAtNDU2LDcgKzQ1Niw2IEBAIG9zc2xfY2lwaGVyX2ZpbmFsKFZBTFVFIHNl bGYpCisgICAgICAgICAgICAgb3NzbF9yYWlzZShlQ2lwaGVyRXJyb3IsICJjaXBoZXIgZmluYWwg ZmFpbGVkIik7CisgICAgICAgICB9CisgICAgIH0KKy0gICAgYXNzZXJ0KG91dF9sZW4gPD0gUlNU UklOR19MRU4oc3RyKSk7CisgICAgIHJiX3N0cl9zZXRfbGVuKHN0ciwgb3V0X2xlbik7CisgCisg ICAgIHJldHVybiBzdHI7CitkaWZmIC0tZ2l0IGEvZXh0L29wZW5zc2wvb3NzbF9vY3NwLmMgYi9l eHQvb3BlbnNzbC9vc3NsX29jc3AuYworaW5kZXggOTNkOGJjODU2NzFlYWMuLmRkYjY3ZmNmMDdh N2NlIDEwMDY0NAorLS0tIGEvZXh0L29wZW5zc2wvb3NzbF9vY3NwLmMKKysrKyBiL2V4dC9vcGVu c3NsL29zc2xfb2NzcC5jCitAQCAtOTA1LDggKzkwNSw4IEBAIG9zc2xfb2NzcGJyZXNfZ2V0X3N0 YXR1cyhWQUxVRSBzZWxmKQorICAgICBpbnQgY291bnQgPSBPQ1NQX3Jlc3BfY291bnQoYnMpOwor ICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgIE9DU1BfU0lO R0xFUkVTUCAqc2luZ2xlID0gT0NTUF9yZXNwX2dldDAoYnMsIGkpOworLSAgICAgICAgQVNOMV9U SU1FICpyZXZ0aW1lLCAqdGhpc3VwZCwgKm5leHR1cGQ7CistICAgICAgICBpbnQgcmVhc29uOwor KyAgICAgICAgQVNOMV9USU1FICpyZXZ0aW1lID0gTlVMTCwgKnRoaXN1cGQgPSBOVUxMLCAqbmV4 dHVwZCA9IE5VTEw7CisrICAgICAgICBpbnQgcmVhc29uID0gLTE7CisgCisgICAgICAgICBpbnQg c3RhdHVzID0gT0NTUF9zaW5nbGVfZ2V0MF9zdGF0dXMoc2luZ2xlLCAmcmVhc29uLCAmcmV2dGlt ZSwgJnRoaXN1cGQsICZuZXh0dXBkKTsKKyAgICAgICAgIGlmIChzdGF0dXMgPCAwKQorZGlmZiAt LWdpdCBhL2V4dC9vcGVuc3NsL29zc2xfcGtjczcuYyBiL2V4dC9vcGVuc3NsL29zc2xfcGtjczcu YworaW5kZXggNmU1MWZkNDJiOTBmYWMuLmFlMGQzNWI3MjM1OTIzIDEwMDY0NAorLS0tIGEvZXh0 L29wZW5zc2wvb3NzbF9wa2NzNy5jCisrKysgYi9leHQvb3BlbnNzbC9vc3NsX3BrY3M3LmMKK0BA IC0xMDEwLDcgKzEwMTAsNyBAQCBzdGF0aWMgVkFMVUUKKyBvc3NsX3BrY3M3c2lfZ2V0X3NpZ25l ZF90aW1lKFZBTFVFIHNlbGYpCisgeworICAgICBQS0NTN19TSUdORVJfSU5GTyAqcDdzaTsKKy0g ICAgQVNOMV9UWVBFICphc24xb2JqOworKyAgICBjb25zdCBBU04xX1RZUEUgKmFzbjFvYmo7Cisg CisgICAgIEdldFBLQ1M3c2koc2VsZiwgcDdzaSk7CisgCitkaWZmIC0tZ2l0IGEvZXh0L29wZW5z c2wvb3NzbF9wa2V5X2VjLmMgYi9leHQvb3BlbnNzbC9vc3NsX3BrZXlfZWMuYworaW5kZXggYmIx OTUzM2VkZjQ3NDQuLjM1ZjAzMTgxOWRjNmViIDEwMDY0NAorLS0tIGEvZXh0L29wZW5zc2wvb3Nz bF9wa2V5X2VjLmMKKysrKyBiL2V4dC9vcGVuc3NsL29zc2xfcGtleV9lYy5jCitAQCAtNzAyLDcg KzcwMiw3IEBAIHN0YXRpYyBWQUxVRSBvc3NsX2VjX2dyb3VwX2luaXRpYWxpemUoaW50IGFyZ2Ms IFZBTFVFICphcmd2LCBWQUxVRSBzZWxmKQorIAorICAgICAgICAgYnJlYWs7CisgICAgICAgZGVm YXVsdDoKKy0gICAgICAgIG9zc2xfcmFpc2UocmJfZUFyZ0Vycm9yLCAid3JvbmcgbnVtYmVyIG9m IGFyZ3VtZW50cyIpOworKyAgICAgICAgb3NzbF9yYWlzZShyYl9lQXJnRXJyb3IsICJ3cm9uZyBu dW1iZXIgb2YgYXJndW1lbnRzIChnaXZlbiAlZCwgZXhwZWN0ZWQgMSBvciA0KSIsIGFyZ2MpOwor ICAgICB9CisgCisgICAgIEFTU1VNRShncm91cCk7CitkaWZmIC0tZ2l0IGEvZXh0L29wZW5zc2wv b3NzbF9zc2wuYyBiL2V4dC9vcGVuc3NsL29zc2xfc3NsLmMKK2luZGV4IDYzMGQ0NmU0M2YyNTZl Li5jNmRlYzMyYTllNWU4MiAxMDA2NDQKKy0tLSBhL2V4dC9vcGVuc3NsL29zc2xfc3NsLmMKKysr KyBiL2V4dC9vcGVuc3NsL29zc2xfc3NsLmMKK0BAIC00Nyw3ICs0Nyw3IEBAIHN0YXRpYyBJRCBp ZF9pX2NlcnRfc3RvcmUsIGlkX2lfY2FfZmlsZSwgaWRfaV9jYV9wYXRoLCBpZF9pX3ZlcmlmeV9t b2RlLAorICAgICAgICAgICBpZF9pX3Nlc3Npb25fcmVtb3ZlX2NiLCBpZF9pX25wbl9zZWxlY3Rf Y2IsIGlkX2lfbnBuX3Byb3RvY29scywKKyAgICAgICAgICAgaWRfaV9hbHBuX3NlbGVjdF9jYiwg aWRfaV9hbHBuX3Byb3RvY29scywgaWRfaV9zZXJ2ZXJuYW1lX2NiLAorICAgICAgICAgICBpZF9p X3ZlcmlmeV9ob3N0bmFtZSwgaWRfaV9rZXlsb2dfY2IsIGlkX2lfdG1wX2RoX2NhbGxiYWNrOwor LXN0YXRpYyBJRCBpZF9pX2lvLCBpZF9pX2NvbnRleHQsIGlkX2lfaG9zdG5hbWU7Cisrc3RhdGlj IElEIGlkX2lfaW8sIGlkX2lfY29udGV4dCwgaWRfaV9ob3N0bmFtZSwgaWRfaV9zeW5jX2Nsb3Nl OworIAorIHN0YXRpYyBpbnQgb3NzbF9zc2xfZXhfcHRyX2lkeDsKKyBzdGF0aWMgaW50IG9zc2xf c3NsY3R4X2V4X3B0cl9pZHg7CitAQCAtMTU5MCwzMiArMTU5MCwzMSBAQCBvc3NsX3NzbF9zX2Fs bG9jKFZBTFVFIGtsYXNzKQorIH0KKyAKKyBzdGF0aWMgVkFMVUUKKy1wZWVyX2lwX2FkZHJlc3Mo VkFMVUUgc2VsZikKKytwZWVyX2lwX2FkZHJlc3MoVkFMVUUgaW8pCisgeworLSAgICBWQUxVRSBy ZW1vdGVfYWRkcmVzcyA9IHJiX2Z1bmNhbGwocmJfYXR0cl9nZXQoc2VsZiwgaWRfaV9pbyksIHJi X2ludGVybigicmVtb3RlX2FkZHJlc3MiKSwgMCk7CisrICAgIFZBTFVFIHJlbW90ZV9hZGRyZXNz ID0gcmJfZnVuY2FsbChpbywgcmJfaW50ZXJuKCJyZW1vdGVfYWRkcmVzcyIpLCAwKTsKKyAKKyAg ICAgcmV0dXJuIHJiX2Z1bmNhbGwocmVtb3RlX2FkZHJlc3MsIHJiX2ludGVybigiaW5zcGVjdF9z b2NrYWRkciIpLCAwKTsKKyB9CisgCisgc3RhdGljIFZBTFVFCistZmFsbGJhY2tfcGVlcl9pcF9h ZGRyZXNzKFZBTFVFIHNlbGYsIFZBTFVFIGFyZ3MpCisrZmFsbGJhY2tfcGVlcl9pcF9hZGRyZXNz KFZBTFVFIHNlbGYsIFZBTFVFIGV4YykKKyB7CisgICAgIHJldHVybiByYl9zdHJfbmV3X2NzdHIo IihudWxsKSIpOworIH0KKyAKKyBzdGF0aWMgVkFMVUUKKy1wZWVyYWRkcl9pcF9zdHIoVkFMVUUg c2VsZikKKytwZWVyYWRkcl9pcF9zdHIoVkFMVUUgaW8pCisgeworLSAgICBWQUxVRSByYl9tRXJy bm8gPSByYl9jb25zdF9nZXQocmJfY09iamVjdCwgcmJfaW50ZXJuKCJFcnJubyIpKTsKKy0gICAg VkFMVUUgcmJfZVN5c3RlbUNhbGxFcnJvciA9IHJiX2NvbnN0X2dldChyYl9tRXJybm8sIHJiX2lu dGVybigiU3lzdGVtQ2FsbEVycm9yIikpOworLQorLSAgICByZXR1cm4gcmJfcmVzY3VlMihwZWVy X2lwX2FkZHJlc3MsIHNlbGYsIGZhbGxiYWNrX3BlZXJfaXBfYWRkcmVzcywgKFZBTFVFKTAsIHJi X2VTeXN0ZW1DYWxsRXJyb3IsIE5VTEwpOworKyAgICByZXR1cm4gcmJfcmVzY3VlMihwZWVyX2lw X2FkZHJlc3MsIGlvLCBmYWxsYmFja19wZWVyX2lwX2FkZHJlc3MsIFFuaWwsCisrICAgICAgICAg ICAgICAgICAgICAgIHJiX2VTeXN0ZW1DYWxsRXJyb3IsIChWQUxVRSkwKTsKKyB9CisgCisgLyoK KyAgKiBjYWxsLXNlcToKKyAgKiAgICBTU0xTb2NrZXQubmV3KGlvKSA9PiBhU1NMU29ja2V0Cisg ICogICAgU1NMU29ja2V0Lm5ldyhpbywgY3R4KSA9PiBhU1NMU29ja2V0CisrICogICAgU1NMU29j a2V0Lm5ldyhpbywgY3R4LCBzeW5jX2Nsb3NlOikgPT4gYVNTTFNvY2tldAorICAqCisgICogQ3Jl YXRlcyBhIG5ldyBTU0wgc29ja2V0IGZyb20gX2lvXyB3aGljaCBtdXN0IGJlIGEgcmVhbCBJTyBv YmplY3QgKG5vdCBhbgorICAqIElPLWxpa2Ugb2JqZWN0IHRoYXQgcmVzcG9uZHMgdG8gcmVhZC93 cml0ZSkuCitAQCAtMTYyMyw2ICsxNjIyLDEwIEBAIHBlZXJhZGRyX2lwX3N0cihWQUxVRSBzZWxm KQorICAqIElmIF9jdHhfIGlzIHByb3ZpZGVkIHRoZSBTU0wgU29ja2V0cyBpbml0aWFsIHBhcmFt cyB3aWxsIGJlIHRha2VuIGZyb20KKyAgKiB0aGUgY29udGV4dC4KKyAgKgorKyAqIFRoZSBvcHRp b25hbCBfc3luY19jbG9zZV8ga2V5d29yZCBwYXJhbWV0ZXIgc2V0cyB0aGUgX3N5bmNfY2xvc2Vf IGluc3RhbmNlCisrICogdmFyaWFibGUuIFNldHRpbmcgdGhpcyB0byArdHJ1ZSsgd2lsbCBjYXVz ZSB0aGUgdW5kZXJseWluZyBzb2NrZXQgdG8gYmUKKysgKiBjbG9zZWQgd2hlbiB0aGUgU1NML1RM UyBjb25uZWN0aW9uIGlzIHNodXQgZG93bi4KKysgKgorICAqIFRoZSBPcGVuU1NMOjpCdWZmZXJp bmcgbW9kdWxlIHByb3ZpZGVzIGFkZGl0aW9uYWwgSU8gbWV0aG9kcy4KKyAgKgorICAqIFRoaXMg bWV0aG9kIHdpbGwgZnJlZXplIHRoZSBTU0xDb250ZXh0IGlmIG9uZSBpcyBwcm92aWRlZDsKK0BA IC0xNjMxLDYgKzE2MzQsMTAgQEAgcGVlcmFkZHJfaXBfc3RyKFZBTFVFIHNlbGYpCisgc3RhdGlj IFZBTFVFCisgb3NzbF9zc2xfaW5pdGlhbGl6ZShpbnQgYXJnYywgVkFMVUUgKmFyZ3YsIFZBTFVF IHNlbGYpCisgeworKyAgICBzdGF0aWMgSUQga3dfaWRzWzFdOworKyAgICBWQUxVRSBrd19hcmdz WzFdOworKyAgICBWQUxVRSBvcHRzOworKworICAgICBWQUxVRSBpbywgdl9jdHg7CisgICAgIFNT TCAqc3NsOworICAgICBTU0xfQ1RYICpjdHg7CitAQCAtMTYzOSw5ICsxNjQ2LDE4IEBAIG9zc2xf c3NsX2luaXRpYWxpemUoaW50IGFyZ2MsIFZBTFVFICphcmd2LCBWQUxVRSBzZWxmKQorICAgICBp ZiAoc3NsKQorICAgICAgICAgb3NzbF9yYWlzZShlU1NMRXJyb3IsICJTU0wgYWxyZWFkeSBpbml0 aWFsaXplZCIpOworIAorLSAgICBpZiAocmJfc2Nhbl9hcmdzKGFyZ2MsIGFyZ3YsICIxMSIsICZp bywgJnZfY3R4KSA9PSAxKQorKyAgICBpZiAocmJfc2Nhbl9hcmdzKGFyZ2MsIGFyZ3YsICIxMToi LCAmaW8sICZ2X2N0eCwgJm9wdHMpID09IDEpCisgICAgICAgICB2X2N0eCA9IHJiX2Z1bmNhbGwo Y1NTTENvbnRleHQsIHJiX2ludGVybigibmV3IiksIDApOworIAorKyAgICBpZiAoIWt3X2lkc1sw XSkgeworKyAgICAgICAga3dfaWRzWzBdID0gcmJfaW50ZXJuX2NvbnN0KCJzeW5jX2Nsb3NlIik7 CisrICAgIH0KKysKKysgICAgcmJfZ2V0X2t3YXJncyhvcHRzLCBrd19pZHMsIDAsIDEsIGt3X2Fy Z3MpOworKyAgICBpZiAoa3dfYXJnc1swXSAhPSBRdW5kZWYpIHsKKysgICAgICAgIHJiX2l2YXJf c2V0KHNlbGYsIGlkX2lfc3luY19jbG9zZSwga3dfYXJnc1swXSk7CisrICAgIH0KKysKKyAgICAg R2V0U1NMQ1RYKHZfY3R4LCBjdHgpOworICAgICByYl9pdmFyX3NldChzZWxmLCBpZF9pX2NvbnRl eHQsIHZfY3R4KTsKKyAgICAgb3NzbF9zc2xjdHhfc2V0dXAodl9jdHgpOworQEAgLTE2OTYsMTEg KzE3MTIsMTUgQEAgb3NzbF9zc2xfc2V0dXAoVkFMVUUgc2VsZikKKyAgICAgcmV0dXJuIFF0cnVl OworIH0KKyAKKytzdGF0aWMgaW50CisrZXJybm9fbWFwcGVkKHZvaWQpCisreworICNpZmRlZiBf V0lOMzIKKy0jZGVmaW5lIHNzbF9nZXRfZXJyb3Ioc3NsLCByZXQpIChlcnJubyA9IHJiX3czMl9t YXBfZXJybm8oV1NBR2V0TGFzdEVycm9yKCkpLCBTU0xfZ2V0X2Vycm9yKChzc2wpLCAocmV0KSkp CisrICAgIHJldHVybiByYl93MzJfbWFwX2Vycm5vKFdTQUdldExhc3RFcnJvcigpKTsKKyAjZWxz ZQorLSNkZWZpbmUgc3NsX2dldF9lcnJvcihzc2wsIHJldCkgU1NMX2dldF9lcnJvcigoc3NsKSwg KHJldCkpCisrICAgIHJldHVybiBlcnJubzsKKyAjZW5kaWYKKyt9CisgCisgc3RhdGljIHZvaWQK KyB3cml0ZV93b3VsZF9ibG9jayhpbnQgbm9uYmxvY2spCitAQCAtMTc0MSwxMyArMTc2MSwxMyBA QCBzdGF0aWMgdm9pZAorIGlvX3dhaXRfd3JpdGFibGUoVkFMVUUgaW8pCisgeworICNpZmRlZiBI QVZFX1JCX0lPX01BWUJFX1dBSVQKKy0gICAgaWYgKCFyYl9pb19tYXliZV93YWl0X3dyaXRhYmxl KGVycm5vLCBpbywgUlVCWV9JT19USU1FT1VUX0RFRkFVTFQpKSB7CisrICAgIGlmICghcmJfaW9f d2FpdChpbywgSU5UMk5VTShSVUJZX0lPX1dSSVRBQkxFKSwgUlVCWV9JT19USU1FT1VUX0RFRkFV TFQpKSB7CisgICAgICAgICByYl9yYWlzZShJT19USU1FT1VUX0VSUk9SLCAiVGltZWQgb3V0IHdo aWxlIHdhaXRpbmcgdG8gYmVjb21lIHdyaXRhYmxlISIpOworICAgICB9CisgI2Vsc2UKKyAgICAg cmJfaW9fdCAqZnB0cjsKKyAgICAgR2V0T3BlbkZpbGUoaW8sIGZwdHIpOworLSAgICByYl9pb193 YWl0X3dyaXRhYmxlKGZwdHItPmZkKTsKKysgICAgcmJfdGhyZWFkX2ZkX3dyaXRhYmxlKGZwdHIt PmZkKTsKKyAjZW5kaWYKKyB9CisgCitAQCAtMTc1NSwxMyArMTc3NSwxMyBAQCBzdGF0aWMgdm9p ZAorIGlvX3dhaXRfcmVhZGFibGUoVkFMVUUgaW8pCisgeworICNpZmRlZiBIQVZFX1JCX0lPX01B WUJFX1dBSVQKKy0gICAgaWYgKCFyYl9pb19tYXliZV93YWl0X3JlYWRhYmxlKGVycm5vLCBpbywg UlVCWV9JT19USU1FT1VUX0RFRkFVTFQpKSB7CisrICAgIGlmICghcmJfaW9fd2FpdChpbywgSU5U Mk5VTShSVUJZX0lPX1JFQURBQkxFKSwgUlVCWV9JT19USU1FT1VUX0RFRkFVTFQpKSB7CisgICAg ICAgICByYl9yYWlzZShJT19USU1FT1VUX0VSUk9SLCAiVGltZWQgb3V0IHdoaWxlIHdhaXRpbmcg dG8gYmVjb21lIHJlYWRhYmxlISIpOworICAgICB9CisgI2Vsc2UKKyAgICAgcmJfaW9fdCAqZnB0 cjsKKyAgICAgR2V0T3BlbkZpbGUoaW8sIGZwdHIpOworLSAgICByYl9pb193YWl0X3JlYWRhYmxl KGZwdHItPmZkKTsKKysgICAgcmJfdGhyZWFkX3dhaXRfZmQoZnB0ci0+ZmQpOworICNlbmRpZgor IH0KKyAKK0BAIC0xNzY5LDcgKzE3ODksNiBAQCBzdGF0aWMgVkFMVUUKKyBvc3NsX3N0YXJ0X3Nz bChWQUxVRSBzZWxmLCBpbnQgKCpmdW5jKShTU0wgKiksIGNvbnN0IGNoYXIgKmZ1bmNuYW1lLCBW QUxVRSBvcHRzKQorIHsKKyAgICAgU1NMICpzc2w7CistICAgIGludCByZXQsIHJldDI7CisgICAg IFZBTFVFIGNiX3N0YXRlOworICAgICBpbnQgbm9uYmxvY2sgPSBvcHRzICE9IFFmYWxzZTsKKyAK K0BAIC0xNzc5LDcgKzE3OTgsOCBAQCBvc3NsX3N0YXJ0X3NzbChWQUxVRSBzZWxmLCBpbnQgKCpm dW5jKShTU0wgKiksIGNvbnN0IGNoYXIgKmZ1bmNuYW1lLCBWQUxVRSBvcHRzKQorIAorICAgICBW QUxVRSBpbyA9IHJiX2F0dHJfZ2V0KHNlbGYsIGlkX2lfaW8pOworICAgICBmb3IgKDs7KSB7Cist ICAgICAgICByZXQgPSBmdW5jKHNzbCk7CisrICAgICAgICBpbnQgcmV0ID0gZnVuYyhzc2wpOwor KyAgICAgICAgaW50IHNhdmVkX2Vycm5vID0gZXJybm9fbWFwcGVkKCk7CisgCisgICAgICAgICBj Yl9zdGF0ZSA9IHJiX2F0dHJfZ2V0KHNlbGYsIElEX2NhbGxiYWNrX3N0YXRlKTsKKyAgICAgICAg IGlmICghTklMX1AoY2Jfc3RhdGUpKSB7CitAQCAtMTc5MSw3ICsxODExLDggQEAgb3NzbF9zdGFy dF9zc2woVkFMVUUgc2VsZiwgaW50ICgqZnVuYykoU1NMICopLCBjb25zdCBjaGFyICpmdW5jbmFt ZSwgVkFMVUUgb3B0cykKKyAgICAgICAgIGlmIChyZXQgPiAwKQorICAgICAgICAgICAgIGJyZWFr OworIAorLSAgICAgICAgc3dpdGNoICgocmV0MiA9IHNzbF9nZXRfZXJyb3Ioc3NsLCByZXQpKSkg eworKyAgICAgICAgaW50IGNvZGUgPSBTU0xfZ2V0X2Vycm9yKHNzbCwgcmV0KTsKKysgICAgICAg IHN3aXRjaCAoY29kZSkgeworICAgICAgICAgICBjYXNlIFNTTF9FUlJPUl9XQU5UX1dSSVRFOgor ICAgICAgICAgICAgIGlmIChub19leGNlcHRpb25fcChvcHRzKSkgeyByZXR1cm4gc3ltX3dhaXRf d3JpdGFibGU7IH0KKyAgICAgICAgICAgICB3cml0ZV93b3VsZF9ibG9jayhub25ibG9jayk7CitA QCAtMTgwNSwxMCArMTgyNiwxMSBAQCBvc3NsX3N0YXJ0X3NzbChWQUxVRSBzZWxmLCBpbnQgKCpm dW5jKShTU0wgKiksIGNvbnN0IGNoYXIgKmZ1bmNuYW1lLCBWQUxVRSBvcHRzKQorICAgICAgICAg ICBjYXNlIFNTTF9FUlJPUl9TWVNDQUxMOgorICNpZmRlZiBfX0FQUExFX18KKyAgICAgICAgICAg ICAvKiBTZWUgb3NzbF9zc2xfd3JpdGVfaW50ZXJuYWwoKSAqLworLSAgICAgICAgICAgIGlmIChl cnJubyA9PSBFUFJPVE9UWVBFKQorKyAgICAgICAgICAgIGlmIChzYXZlZF9lcnJubyA9PSBFUFJP VE9UWVBFKQorICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAjZW5kaWYKKy0gICAgICAgICAg ICBpZiAoZXJybm8pIHJiX3N5c19mYWlsKGZ1bmNuYW1lKTsKKysgICAgICAgICAgICBpZiAoc2F2 ZWRfZXJybm8pCisrICAgICAgICAgICAgICAgIHJiX2V4Y19yYWlzZShyYl9zeXNlcnJfbmV3KHNh dmVkX2Vycm5vLCBmdW5jbmFtZSkpOworICAgICAgICAgICAgIC8qIGZhbGx0aHJvdWdoICovCisg ICAgICAgICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgICAgICAgIFZBTFVFIGVycm9yX2FwcGVuZCA9 IFFuaWw7CitAQCAtMTgyOSwxMCArMTg1MSwxMCBAQCBvc3NsX3N0YXJ0X3NzbChWQUxVRSBzZWxm LCBpbnQgKCpmdW5jKShTU0wgKiksIGNvbnN0IGNoYXIgKmZ1bmNuYW1lLCBWQUxVRSBvcHRzKQor ICAgICAgICAgICAgICAgb3NzbF9yYWlzZShlU1NMRXJyb3IsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICIlcyVzIHJldHVybmVkPSVkIGVycm5vPSVkIHBlZXJhZGRyPSUiUFJJc1ZBTFVFIiBz dGF0ZT0lcyUiUFJJc1ZBTFVFLAorICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jbmFtZSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgcmV0MiA9PSBTU0xfRVJST1JfU1lTQ0FMTCA/ICIg U1lTQ0FMTCIgOiAiIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgcmV0MiwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgZXJybm8sCistICAgICAgICAgICAgICAgICAgICAgICAgIHBlZXJh ZGRyX2lwX3N0cihzZWxmKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgY29kZSA9PSBTU0xf RVJST1JfU1lTQ0FMTCA/ICIgU1lTQ0FMTCIgOiAiIiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgY29kZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgc2F2ZWRfZXJybm8sCisrICAgICAg ICAgICAgICAgICAgICAgICAgIHBlZXJhZGRyX2lwX3N0cihpbyksCisgICAgICAgICAgICAgICAg ICAgICAgICAgIFNTTF9zdGF0ZV9zdHJpbmdfbG9uZyhzc2wpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICBlcnJvcl9hcHBlbmQpOworICAgICAgICAgICB9CitAQCAtMTk3NCw2ICsxOTk2LDcg QEAgb3NzbF9zc2xfcmVhZF9pbnRlcm5hbChpbnQgYXJnYywgVkFMVUUgKmFyZ3YsIFZBTFVFIHNl bGYsIGludCBub25ibG9jaykKKyAgICAgZm9yICg7OykgeworICAgICAgICAgcmJfc3RyX2xvY2t0 bXAoc3RyKTsKKyAgICAgICAgIGludCBucmVhZCA9IFNTTF9yZWFkKHNzbCwgUlNUUklOR19QVFIo c3RyKSwgaWxlbik7CisrICAgICAgICBpbnQgc2F2ZWRfZXJybm8gPSBlcnJub19tYXBwZWQoKTsK KyAgICAgICAgIHJiX3N0cl91bmxvY2t0bXAoc3RyKTsKKyAKKyAgICAgICAgIGNiX3N0YXRlID0g cmJfYXR0cl9nZXQoc2VsZiwgSURfY2FsbGJhY2tfc3RhdGUpOworQEAgLTE5ODMsNyArMjAwNiw3 IEBAIG9zc2xfc3NsX3JlYWRfaW50ZXJuYWwoaW50IGFyZ2MsIFZBTFVFICphcmd2LCBWQUxVRSBz ZWxmLCBpbnQgbm9uYmxvY2spCisgICAgICAgICAgICAgcmJfanVtcF90YWcoTlVNMklOVChjYl9z dGF0ZSkpOworICAgICAgICAgfQorIAorLSAgICAgICAgc3dpdGNoIChzc2xfZ2V0X2Vycm9yKHNz bCwgbnJlYWQpKSB7CisrICAgICAgICBzd2l0Y2ggKFNTTF9nZXRfZXJyb3Ioc3NsLCBucmVhZCkp IHsKKyAgICAgICAgICAgY2FzZSBTU0xfRVJST1JfTk9ORToKKyAgICAgICAgICAgICByYl9zdHJf c2V0X2xlbihzdHIsIG5yZWFkKTsKKyAgICAgICAgICAgICByZXR1cm4gc3RyOworQEAgLTIwMDYs OCArMjAyOSw4IEBAIG9zc2xfc3NsX3JlYWRfaW50ZXJuYWwoaW50IGFyZ2MsIFZBTFVFICphcmd2 LCBWQUxVRSBzZWxmLCBpbnQgbm9uYmxvY2spCisgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg ICAgIGNhc2UgU1NMX0VSUk9SX1NZU0NBTEw6CisgICAgICAgICAgICAgaWYgKCFFUlJfcGVla19l cnJvcigpKSB7CistICAgICAgICAgICAgICAgIGlmIChlcnJubykKKy0gICAgICAgICAgICAgICAg ICAgIHJiX3N5c19mYWlsKDApOworKyAgICAgICAgICAgICAgICBpZiAoc2F2ZWRfZXJybm8pCisr ICAgICAgICAgICAgICAgICAgICByYl9leGNfcmFpc2UocmJfc3lzZXJyX25ldyhzYXZlZF9lcnJu bywgIlNTTF9yZWFkIikpOworICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAg ICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgKiBUaGUgdW5kZXJseWluZyBCSU8gcmV0 dXJuZWQgMC4gVGhpcyBpcyBhY3R1YWxseSBhCitAQCAtMjA5Miw2ICsyMTE1LDcgQEAgb3NzbF9z c2xfd3JpdGVfaW50ZXJuYWxfc2FmZShWQUxVRSBfYXJncykKKyAKKyAgICAgZm9yICg7Oykgewor ICAgICAgICAgaW50IG53cml0dGVuID0gU1NMX3dyaXRlKHNzbCwgUlNUUklOR19QVFIoc3RyKSwg bnVtKTsKKysgICAgICAgIGludCBzYXZlZF9lcnJubyA9IGVycm5vX21hcHBlZCgpOworIAorICAg ICAgICAgY2Jfc3RhdGUgPSByYl9hdHRyX2dldChzZWxmLCBJRF9jYWxsYmFja19zdGF0ZSk7Cisg ICAgICAgICBpZiAoIU5JTF9QKGNiX3N0YXRlKSkgeworQEAgLTIxMDAsNyArMjEyNCw3IEBAIG9z c2xfc3NsX3dyaXRlX2ludGVybmFsX3NhZmUoVkFMVUUgX2FyZ3MpCisgICAgICAgICAgICAgcmJf anVtcF90YWcoTlVNMklOVChjYl9zdGF0ZSkpOworICAgICAgICAgfQorIAorLSAgICAgICAgc3dp dGNoIChzc2xfZ2V0X2Vycm9yKHNzbCwgbndyaXR0ZW4pKSB7CisrICAgICAgICBzd2l0Y2ggKFNT TF9nZXRfZXJyb3Ioc3NsLCBud3JpdHRlbikpIHsKKyAgICAgICAgICAgY2FzZSBTU0xfRVJST1Jf Tk9ORToKKyAgICAgICAgICAgICByZXR1cm4gSU5UMk5VTShud3JpdHRlbik7CisgICAgICAgICAg IGNhc2UgU1NMX0VSUk9SX1dBTlRfV1JJVEU6CitAQCAtMjEyMSwxMCArMjE0NSwxMSBAQCBvc3Ns X3NzbF93cml0ZV9pbnRlcm5hbF9zYWZlKFZBTFVFIF9hcmdzKQorICAgICAgICAgICAgICAqIG1h a2UgdGhlIGVycm9yIGhhbmRsaW5nIGluIGxpbmUgd2l0aCB0aGUgc29ja2V0IGxpYnJhcnkuCisg ICAgICAgICAgICAgICogW0J1ZyAjMTQ3MTNdIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lz c3Vlcy8xNDcxMworICAgICAgICAgICAgICAqLworLSAgICAgICAgICAgIGlmIChlcnJubyA9PSBF UFJPVE9UWVBFKQorKyAgICAgICAgICAgIGlmIChzYXZlZF9lcnJubyA9PSBFUFJPVE9UWVBFKQor ICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAjZW5kaWYKKy0gICAgICAgICAgICBpZiAoZXJy bm8pIHJiX3N5c19mYWlsKDApOworKyAgICAgICAgICAgIGlmIChzYXZlZF9lcnJubykKKysgICAg ICAgICAgICAgICAgcmJfZXhjX3JhaXNlKHJiX3N5c2Vycl9uZXcoc2F2ZWRfZXJybm8sICJTU0xf d3JpdGUiKSk7CisgICAgICAgICAgICAgLyogZmFsbHRocm91Z2ggKi8KKyAgICAgICAgICAgZGVm YXVsdDoKKyAgICAgICAgICAgICBvc3NsX3JhaXNlKGVTU0xFcnJvciwgIlNTTF93cml0ZSIpOwor QEAgLTMzMDAsNSArMzMyNSw2IEBAIEluaXRfb3NzbF9zc2wodm9pZCkKKyAgICAgRGVmSVZhcklE KGlvKTsKKyAgICAgRGVmSVZhcklEKGNvbnRleHQpOworICAgICBEZWZJVmFySUQoaG9zdG5hbWUp OworKyAgICBEZWZJVmFySUQoc3luY19jbG9zZSk7CisgI2VuZGlmIC8qICFkZWZpbmVkKE9QRU5T U0xfTk9fU09DSykgKi8KKyB9CitkaWZmIC0tZ2l0IGEvdGVzdC9vcGVuc3NsL3Rlc3RfY2lwaGVy LnJiIGIvdGVzdC9vcGVuc3NsL3Rlc3RfY2lwaGVyLnJiCitpbmRleCA5Mzc2NmNmYzg4Y2UxNy4u NmE0MDVkYTBhOTc2M2YgMTAwNjQ0CistLS0gYS90ZXN0L29wZW5zc2wvdGVzdF9jaXBoZXIucmIK KysrKyBiL3Rlc3Qvb3BlbnNzbC90ZXN0X2NpcGhlci5yYgorQEAgLTMyLDI4ICszMiwyOCBAQCBk ZWYgdGVzdF9wa2NzNV9rZXlpdmdlbgorICAgICBzYWx0ID0gIlx4MDEiICogOAorICAgICBudW0g PSAyMDQ4CisgICAgIHB0ID0gImRhdGEgdG8gYmUgZW5jcnlwdGVkIgorLSAgICBjaXBoZXIgPSBP cGVuU1NMOjpDaXBoZXIubmV3KCJERVMtRURFMy1DQkMiKS5lbmNyeXB0CistICAgIGNpcGhlci5w a2NzNV9rZXlpdmdlbihwYXNzLCBzYWx0LCBudW0sICJNRDUiKQorKyAgICBjaXBoZXIgPSBPcGVu U1NMOjpDaXBoZXIubmV3KCJBRVMtMjU2LUNCQyIpLmVuY3J5cHQKKysgICAgY2lwaGVyLnBrY3M1 X2tleWl2Z2VuKHBhc3MsIHNhbHQsIG51bSwgIlNIQTI1NiIpCisgICAgIHMxID0gY2lwaGVyLnVw ZGF0ZShwdCkgPDwgY2lwaGVyLmZpbmFsCisgCistICAgIGQxID0gbnVtLnRpbWVzLmluamVjdChw YXNzICsgc2FsdCkge3xvdXQsIF98IE9wZW5TU0w6OkRpZ2VzdC5kaWdlc3QoJ01ENScsIG91dCkg fQorLSAgICBkMiA9IG51bS50aW1lcy5pbmplY3QoZDEgKyBwYXNzICsgc2FsdCkge3xvdXQsIF98 IE9wZW5TU0w6OkRpZ2VzdC5kaWdlc3QoJ01ENScsIG91dCkgfQorLSAgICBrZXkgPSAoZDEgKyBk MilbMCwgMjRdCistICAgIGl2ID0gKGQxICsgZDIpWzI0LCA4XQorLSAgICBjaXBoZXIgPSBuZXdf ZW5jcnlwdG9yKCJERVMtRURFMy1DQkMiLCBrZXk6IGtleSwgaXY6IGl2KQorKyAgICBkMSA9IG51 bS50aW1lcy5pbmplY3QocGFzcyArIHNhbHQpIHt8b3V0LCBffCBPcGVuU1NMOjpEaWdlc3QuZGln ZXN0KCdTSEEyNTYnLCBvdXQpIH0KKysgICAgZDIgPSBudW0udGltZXMuaW5qZWN0KGQxICsgcGFz cyArIHNhbHQpIHt8b3V0LCBffCBPcGVuU1NMOjpEaWdlc3QuZGlnZXN0KCdTSEEyNTYnLCBvdXQp IH0KKysgICAga2V5ID0gKGQxICsgZDIpWzAsIDMyXQorKyAgICBpdiA9IChkMSArIGQyKVszMiwg MTZdCisrICAgIGNpcGhlciA9IG5ld19lbmNyeXB0b3IoIkFFUy0yNTYtQ0JDIiwga2V5OiBrZXks IGl2OiBpdikKKyAgICAgczIgPSBjaXBoZXIudXBkYXRlKHB0KSA8PCBjaXBoZXIuZmluYWwKKyAK KyAgICAgYXNzZXJ0X2VxdWFsIHMxLCBzMgorIAorLSAgICBjaXBoZXIyID0gT3BlblNTTDo6Q2lw aGVyLm5ldygiREVTLUVERTMtQ0JDIikuZW5jcnlwdAorLSAgICBhc3NlcnRfcmFpc2UoQXJndW1l bnRFcnJvcikgeyBjaXBoZXIyLnBrY3M1X2tleWl2Z2VuKHBhc3MsIHNhbHQsIC0xLCAiTUQ1Iikg fQorKyAgICBjaXBoZXIyID0gT3BlblNTTDo6Q2lwaGVyLm5ldygiQUVTLTI1Ni1DQkMiKS5lbmNy eXB0CisrICAgIGFzc2VydF9yYWlzZShBcmd1bWVudEVycm9yKSB7IGNpcGhlcjIucGtjczVfa2V5 aXZnZW4ocGFzcywgc2FsdCwgLTEsICJTSEEyNTYiKSB9CisgICBlbmQKKyAKKyAgIGRlZiB0ZXN0 X2luZm8KKy0gICAgY2lwaGVyID0gT3BlblNTTDo6Q2lwaGVyLm5ldygiREVTLUVERTMtQ0JDIiku ZW5jcnlwdAorLSAgICBhc3NlcnRfZXF1YWwgIkRFUy1FREUzLUNCQyIsIGNpcGhlci5uYW1lCist ICAgIGFzc2VydF9lcXVhbCAyNCwgY2lwaGVyLmtleV9sZW4KKy0gICAgYXNzZXJ0X2VxdWFsIDgs IGNpcGhlci5pdl9sZW4KKysgICAgY2lwaGVyID0gT3BlblNTTDo6Q2lwaGVyLm5ldygiQUVTLTI1 Ni1DQkMiKS5lbmNyeXB0CisrICAgIGFzc2VydF9lcXVhbCAiQUVTLTI1Ni1DQkMiLCBjaXBoZXIu bmFtZQorKyAgICBhc3NlcnRfZXF1YWwgMzIsIGNpcGhlci5rZXlfbGVuCisrICAgIGFzc2VydF9l cXVhbCAxNiwgY2lwaGVyLml2X2xlbgorICAgZW5kCisgCisgICBkZWYgdGVzdF9kdXAKK0BAIC04 MCwxMyArODAsMTMgQEAgZGVmIHRlc3RfcmVzZXQKKyAgIGVuZAorIAorICAgZGVmIHRlc3Rfa2V5 X2l2X3NldAorLSAgICBjaXBoZXIgPSBPcGVuU1NMOjpDaXBoZXIubmV3KCJERVMtRURFMy1DQkMi KS5lbmNyeXB0CistICAgIGFzc2VydF9yYWlzZShBcmd1bWVudEVycm9yKSB7IGNpcGhlci5rZXkg PSAiXHgwMSIgKiAyMyB9CistICAgIGFzc2VydF9ub3RoaW5nX3JhaXNlZCB7IGNpcGhlci5rZXkg PSAiXHgwMSIgKiAyNCB9CistICAgIGFzc2VydF9yYWlzZShBcmd1bWVudEVycm9yKSB7IGNpcGhl ci5rZXkgPSAiXHgwMSIgKiAyNSB9CistICAgIGFzc2VydF9yYWlzZShBcmd1bWVudEVycm9yKSB7 IGNpcGhlci5pdiA9ICJceDAxIiAqIDcgfQorLSAgICBhc3NlcnRfbm90aGluZ19yYWlzZWQgeyBj aXBoZXIuaXYgPSAiXHgwMSIgKiA4IH0KKy0gICAgYXNzZXJ0X3JhaXNlKEFyZ3VtZW50RXJyb3Ip IHsgY2lwaGVyLml2ID0gIlx4MDEiICogOSB9CisrICAgIGNpcGhlciA9IE9wZW5TU0w6OkNpcGhl ci5uZXcoIkFFUy0yNTYtQ0JDIikuZW5jcnlwdAorKyAgICBhc3NlcnRfcmFpc2UoQXJndW1lbnRF cnJvcikgeyBjaXBoZXIua2V5ID0gIlx4MDEiICogMzEgfQorKyAgICBhc3NlcnRfbm90aGluZ19y YWlzZWQgeyBjaXBoZXIua2V5ID0gIlx4MDEiICogMzIgfQorKyAgICBhc3NlcnRfcmFpc2UoQXJn dW1lbnRFcnJvcikgeyBjaXBoZXIua2V5ID0gIlx4MDEiICogMzMgfQorKyAgICBhc3NlcnRfcmFp c2UoQXJndW1lbnRFcnJvcikgeyBjaXBoZXIuaXYgPSAiXHgwMSIgKiAxNSB9CisrICAgIGFzc2Vy dF9ub3RoaW5nX3JhaXNlZCB7IGNpcGhlci5pdiA9ICJceDAxIiAqIDE2IH0KKysgICAgYXNzZXJ0 X3JhaXNlKEFyZ3VtZW50RXJyb3IpIHsgY2lwaGVyLml2ID0gIlx4MDEiICogMTcgfQorICAgZW5k CisgCisgICBkZWYgdGVzdF9yYW5kb21fa2V5X2l2CitAQCAtMTA5LDggKzEwOSw4IEBAIGRlZiB0 ZXN0X3JhbmRvbV9rZXlfaXYKKyAgIGVuZAorIAorICAgZGVmIHRlc3RfaW5pdGlhbGl6ZQorLSAg ICBjaXBoZXIgPSBPcGVuU1NMOjpDaXBoZXIubmV3KCJERVMtRURFMy1DQkMiKQorLSAgICBhc3Nl cnRfcmFpc2UoUnVudGltZUVycm9yKSB7IGNpcGhlci5fX3NlbmRfXyg6aW5pdGlhbGl6ZSwgIkRF Uy1FREUzLUNCQyIpIH0KKysgICAgY2lwaGVyID0gT3BlblNTTDo6Q2lwaGVyLm5ldygiQUVTLTI1 Ni1DQkMiKQorKyAgICBhc3NlcnRfcmFpc2UoUnVudGltZUVycm9yKSB7IGNpcGhlci5fX3NlbmRf Xyg6aW5pdGlhbGl6ZSwgIkFFUy0yNTYtQ0JDIikgfQorICAgICBhc3NlcnRfcmFpc2UoUnVudGlt ZUVycm9yKSB7IE9wZW5TU0w6OkNpcGhlci5hbGxvY2F0ZS5maW5hbCB9CisgICAgIGFzc2VydF9y YWlzZShPcGVuU1NMOjpDaXBoZXI6OkNpcGhlckVycm9yKSB7CisgICAgICAgT3BlblNTTDo6Q2lw aGVyLm5ldygibm8gc3VjaCBhbGdvcml0aG0iKQorQEAgLTEzNCwxMyArMTM0LDE0IEBAIGRlZiB0 ZXN0X2N0cl9pZl9leGlzdHMKKyAgIGRlZiB0ZXN0X3VwZGF0ZV93aXRoX2J1ZmZlcgorICAgICBj aXBoZXIgPSBPcGVuU1NMOjpDaXBoZXIubmV3KCJhZXMtMTI4LWVjYiIpLmVuY3J5cHQKKyAgICAg Y2lwaGVyLnJhbmRvbV9rZXkKKy0gICAgZXhwZWN0ZWQgPSBjaXBoZXIudXBkYXRlKCJkYXRhIikg PDwgY2lwaGVyLmZpbmFsCistICAgIGFzc2VydF9lcXVhbCAxNiwgZXhwZWN0ZWQuYnl0ZXNpemUK KysgICAgZXhwZWN0ZWQgPSBjaXBoZXIudXBkYXRlKCJkYXRhIiAqIDEwKSA8PCBjaXBoZXIuZmlu YWwKKysgICAgYXNzZXJ0X2VxdWFsIDQ4LCBleHBlY3RlZC5ieXRlc2l6ZQorIAorICAgICAjIEJ1 ZmZlciBpcyBzdXBwbGllZAorICAgICBjaXBoZXIucmVzZXQKKyAgICAgYnVmID0gU3RyaW5nLm5l dworLSAgICBhc3NlcnRfc2FtZSBidWYsIGNpcGhlci51cGRhdGUoImRhdGEiLCBidWYpCisrICAg IGFzc2VydF9zYW1lIGJ1ZiwgY2lwaGVyLnVwZGF0ZSgiZGF0YSIgKiAxMCwgYnVmKQorKyAgICBh c3NlcnRfZXF1YWwgMzIsIGJ1Zi5ieXRlc2l6ZQorICAgICBhc3NlcnRfZXF1YWwgZXhwZWN0ZWQs IGJ1ZiArIGNpcGhlci5maW5hbAorIAorICAgICAjIEJ1ZmZlciBpcyBmcm96ZW4KK0BAIC0xNDks OSArMTUwLDkgQEAgZGVmIHRlc3RfdXBkYXRlX3dpdGhfYnVmZmVyCisgCisgICAgICMgQnVmZmVy IGlzIGEgc2hhcmVkIHN0cmluZyBbcnVieS1jb3JlOjEyMDE0MV0gW0J1ZyAjMjA5MzddCisgICAg IGNpcGhlci5yZXNldAorLSAgICBidWYgPSAieCIgKiAxMDI0CistICAgIHNoYXJlZCA9IGJ1Zlst KCJkYXRhIi5ieXRlc2l6ZSArIDMyKS4uLTFdCistICAgIGFzc2VydF9zYW1lIHNoYXJlZCwgY2lw aGVyLnVwZGF0ZSgiZGF0YSIsIHNoYXJlZCkKKysgICAgYnVmID0gIngiLmIgKiAxMDI0CisrICAg IHNoYXJlZCA9IGJ1ZlstKCJkYXRhIi5ieXRlc2l6ZSAqIDEwICsgMzIpLi4tMV0KKysgICAgYXNz ZXJ0X3NhbWUgc2hhcmVkLCBjaXBoZXIudXBkYXRlKCJkYXRhIiAqIDEwLCBzaGFyZWQpCisgICAg IGFzc2VydF9lcXVhbCBleHBlY3RlZCwgc2hhcmVkICsgY2lwaGVyLmZpbmFsCisgICBlbmQKKyAK K0BAIC0xNjgsMTIgKzE2OSwxMiBAQCBkZWYgdGVzdF9BRVMKKyAgICAgJXcoZWNiIGNiYyBjZmIg b2ZiKS5lYWNoe3xtb2RlfAorICAgICAgIGMxID0gT3BlblNTTDo6Q2lwaGVyLm5ldygiYWVzLTI1 Ni0je21vZGV9IikKKyAgICAgICBjMS5lbmNyeXB0CistICAgICAgYzEucGtjczVfa2V5aXZnZW4o InBhc3N3ZCIpCisrICAgICAgYzEucGtjczVfa2V5aXZnZW4oInBhc3N3ZCIsICIxMjM0NTY3OCIs IDEwMDAwLCAiU0hBMjU2IikKKyAgICAgICBjdCA9IGMxLnVwZGF0ZShwdCkgKyBjMS5maW5hbAor IAorICAgICAgIGMyID0gT3BlblNTTDo6Q2lwaGVyLm5ldygiYWVzLTI1Ni0je21vZGV9IikKKyAg ICAgICBjMi5kZWNyeXB0CistICAgICAgYzIucGtjczVfa2V5aXZnZW4oInBhc3N3ZCIpCisrICAg ICAgYzIucGtjczVfa2V5aXZnZW4oInBhc3N3ZCIsICIxMjM0NTY3OCIsIDEwMDAwLCAiU0hBMjU2 IikKKyAgICAgICBhc3NlcnRfZXF1YWwocHQsIGMyLnVwZGF0ZShjdCkgKyBjMi5maW5hbCkKKyAg ICAgfQorICAgZW5kCitAQCAtMzEyLDYgKzMxMyw5IEBAIGRlZiB0ZXN0X2Flc19nY21fdmFyaWFi bGVfaXZfbGVuCisgICBlbmQKKyAKKyAgIGRlZiB0ZXN0X2Flc19vY2JfdGFnX2xlbgorKyAgICAj IEFFUy0xMjgtT0NCIGlzIG5vdCBGSVBTLWFwcHJvdmVkLgorKyAgICBvbWl0X29uX2ZpcHMKKysK KyAgICAgIyBSRkMgNzI1MyBBcHBlbmRpeCBBOyB0aGUgc2Vjb25kIHNhbXBsZQorICAgICBrZXkg PSBbIjAwMDEwMjAzMDQwNTA2MDcwODA5MEEwQjBDMEQwRTBGIl0ucGFjaygiSCoiKQorICAgICBp diAgPSBbIkJCQUE5OTg4Nzc2NjU1NDQzMzIyMTEwMSJdLnBhY2soIkgqIikKK0BAIC0zNDYsNiAr MzUwLDkgQEAgZGVmIHRlc3RfYWVzX29jYl90YWdfbGVuCisgICBlbmQgaWYgaGFzX2NpcGhlcj8o ImFlcy0xMjgtb2NiIikKKyAKKyAgIGRlZiB0ZXN0X2Flc19nY21fc2l2CisrICAgICMgQUVTLTEy OC1HQ00tU0lWIGlzIG5vdCBGSVBTLWFwcHJvdmVkLgorKyAgICBvbWl0X29uX2ZpcHMKKysKKyAg ICAgIyBSRkMgODQ1MiBBcHBlbmRpeCBDLjEuLCA4dGggZXhhbXBsZQorICAgICBrZXkgPSBbIjAx MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0ucGFjaygiSCoiKQorICAgICBpdiAgPSBb IjAzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLnBhY2soIkgqIikKK2RpZmYgLS1naXQgYS90ZXN0 L29wZW5zc2wvdGVzdF9kaWdlc3QucmIgYi90ZXN0L29wZW5zc2wvdGVzdF9kaWdlc3QucmIKK2lu ZGV4IDJlZjg0Y2ZhNGM3ZDJhLi45MWVkMjQ3NDE0MmM1ZSAxMDA2NDQKKy0tLSBhL3Rlc3Qvb3Bl bnNzbC90ZXN0X2RpZ2VzdC5yYgorKysrIGIvdGVzdC9vcGVuc3NsL3Rlc3RfZGlnZXN0LnJiCitA QCAtNiw4ICs2LDggQEAKKyBjbGFzcyBPcGVuU1NMOjpUZXN0RGlnZXN0IDwgT3BlblNTTDo6VGVz dENhc2UKKyAgIGRlZiBzZXR1cAorICAgICBzdXBlcgorLSAgICBAZDEgPSBPcGVuU1NMOjpEaWdl c3QubmV3KCJNRDUiKQorLSAgICBAZDIgPSBPcGVuU1NMOjpEaWdlc3Q6Ok1ENS5uZXcKKysgICAg QGQxID0gT3BlblNTTDo6RGlnZXN0Lm5ldygiU0hBMjU2IikKKysgICAgQGQyID0gT3BlblNTTDo6 RGlnZXN0OjpTSEEyNTYubmV3CisgICBlbmQKKyAKKyAgIGRlZiB0ZXN0X2luaXRpYWxpemUKK0BA IC0xNywxOCArMTcsMjAgQEAgZGVmIHRlc3RfaW5pdGlhbGl6ZQorICAgZW5kCisgCisgICBkZWYg dGVzdF9kaWdlc3QKKy0gICAgbnVsbF9oZXggPSAiZDQxZDhjZDk4ZjAwYjIwNGU5ODAwOTk4ZWNm ODQyN2UiCisrICAgICMgU0hBMjU2IG51bGwgdmFsdWUgY2FsY3VsYXRlZCBieSBgZWNobyAtbiAi IiB8IHNoYTI1NnN1bWAKKysgICAgbnVsbF9oZXggPSAiZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4 OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NSIKKyAgICAgbnVsbF9iaW4g PSBbbnVsbF9oZXhdLnBhY2soIkgqIikKKyAgICAgZGF0YSA9ICJEQVRBIgorLSAgICBoZXggPSAi ZTQ0ZjllMzQ4ZTQxY2IyNzJlZmE4NzM4NzcyODU3MWIiCisrICAgICMgU0hBMjU2IERBVEEgdmFs dWUgY2FsY3VsYXRlZCBieSBgZWNobyAtbiAiREFUQSIgfCBzaGEyNTZzdW1gCisrICAgIGhleCA9 ICJjOTdjMjljN2E3MWIzOTJiNDM3ZWUwM2ZkMTdmMDliYjEwYjc1ZTg3OTQ2NmZjMGViNzU3YjJj NGE3OGFjOTM4IgorICAgICBiaW4gPSBbaGV4XS5wYWNrKCJIKiIpCisgICAgIGFzc2VydF9lcXVh bChudWxsX2JpbiwgQGQxLmRpZ2VzdCkKKyAgICAgYXNzZXJ0X2VxdWFsKG51bGxfaGV4LCBAZDEu aGV4ZGlnZXN0KQorICAgICBAZDEgPDwgZGF0YQorICAgICBhc3NlcnRfZXF1YWwoYmluLCBAZDEu ZGlnZXN0KQorICAgICBhc3NlcnRfZXF1YWwoaGV4LCBAZDEuaGV4ZGlnZXN0KQorLSAgICBhc3Nl cnRfZXF1YWwoYmluLCBPcGVuU1NMOjpEaWdlc3QuZGlnZXN0KCdNRDUnLCBkYXRhKSkKKy0gICAg YXNzZXJ0X2VxdWFsKGhleCwgT3BlblNTTDo6RGlnZXN0LmhleGRpZ2VzdCgnTUQ1JywgZGF0YSkp CisrICAgIGFzc2VydF9lcXVhbChiaW4sIE9wZW5TU0w6OkRpZ2VzdC5kaWdlc3QoJ1NIQTI1Nics IGRhdGEpKQorKyAgICBhc3NlcnRfZXF1YWwoaGV4LCBPcGVuU1NMOjpEaWdlc3QuaGV4ZGlnZXN0 KCdTSEEyNTYnLCBkYXRhKSkKKyAgIGVuZAorIAorICAgZGVmIHRlc3RfZXFsCitAQCAtMzgsOSAr NDAsOSBAQCBkZWYgdGVzdF9lcWwKKyAgIGVuZAorIAorICAgZGVmIHRlc3RfaW5mbworLSAgICBh c3NlcnRfZXF1YWwoIk1ENSIsIEBkMS5uYW1lLCAibmFtZSIpCistICAgIGFzc2VydF9lcXVhbCgi TUQ1IiwgQGQyLm5hbWUsICJuYW1lIikKKy0gICAgYXNzZXJ0X2VxdWFsKDE2LCBAZDEuc2l6ZSwg InNpemUiKQorKyAgICBhc3NlcnRfZXF1YWwoIlNIQTI1NiIsIEBkMS5uYW1lLCAibmFtZSIpCisr ICAgIGFzc2VydF9lcXVhbCgiU0hBMjU2IiwgQGQyLm5hbWUsICJuYW1lIikKKysgICAgYXNzZXJ0 X2VxdWFsKDMyLCBAZDEuc2l6ZSwgInNpemUiKQorICAgZW5kCisgCisgICBkZWYgdGVzdF9kdXAK K0BAIC02MCw3ICs2MiwxMCBAQCBkZWYgdGVzdF9yZXNldAorICAgZW5kCisgCisgICBkZWYgdGVz dF9kaWdlc3RfY29uc3RhbnRzCistICAgICV3e01ENSBTSEExIFNIQTIyNCBTSEEyNTYgU0hBMzg0 IFNIQTUxMn0uZWFjaCBkbyB8bmFtZXwKKysgICAgbm9uX2ZpcHNfbmFtZXMgPSAld3tNRDV9Cisr ICAgIG5hbWVzID0gJXd7U0hBMSBTSEEyMjQgU0hBMjU2IFNIQTM4NCBTSEE1MTJ9CisrICAgIG5h bWVzID0gbm9uX2ZpcHNfbmFtZXMgKyBuYW1lcyB1bmxlc3MgT3BlblNTTC5maXBzX21vZGUKKysg ICAgbmFtZXMuZWFjaCBkbyB8bmFtZXwKKyAgICAgICBhc3NlcnRfbm90X25pbChPcGVuU1NMOjpE aWdlc3QubmV3KG5hbWUpKQorICAgICAgIGtsYXNzID0gT3BlblNTTDo6RGlnZXN0LmNvbnN0X2dl dChuYW1lLnRyKCctJywgJ18nKSkKKyAgICAgICBhc3NlcnRfbm90X25pbChrbGFzcy5uZXcpCitA QCAtMTI1LDYgKzEzMCw5IEBAIGRlZiB0ZXN0X3NoYTMKKyAgIGVuZAorIAorICAgZGVmIHRlc3Rf ZmV0Y2hlZF9ldnBfbWQKKysgICAgIyBLRUNDQUstMjU2IGlzIG5vdCBGSVBTLWFwcHJvdmVkLgor KyAgICBvbWl0X29uX2ZpcHMKKysKKyAgICAgIyBQcmUtTklTVCBLZWNjYWsgaXMgYW4gZXhhbXBs ZSBvZiBhIGRpZ2VzdCBhbGdvcml0aG0gdGhhdCBkb2Vzbid0IGhhdmUgYW4KKyAgICAgIyBOSUQg YW5kIHJlcXVpcmVzIGR5bmFtaWMgYWxsb2NhdGlvbiBvZiBFVlBfTUQKKyAgICAgaGV4ID0gImM1 ZDI0NjAxODZmNzIzM2M5MjdlN2RiMmRjYzcwM2MwZTUwMGI2NTNjYTgyMjczYjdiZmFkODA0NWQ4 NWE0NzAiCitkaWZmIC0tZ2l0IGEvdGVzdC9vcGVuc3NsL3Rlc3RfZmlwcy5yYiBiL3Rlc3Qvb3Bl bnNzbC90ZXN0X2ZpcHMucmIKK2luZGV4IGVmYzI2NTVlMjViZjU0Li42ODNlMDAxMWU4ZDdmYyAx MDA2NDQKKy0tLSBhL3Rlc3Qvb3BlbnNzbC90ZXN0X2ZpcHMucmIKKysrKyBiL3Rlc3Qvb3BlbnNz bC90ZXN0X2ZpcHMucmIKK0BAIC0zMCw3ICszMCw3IEBAIGRlZiB0ZXN0X2ZpcHNfbW9kZV9nZXRf aXNfZmFsc2Vfb25fZmlwc19tb2RlX2Rpc2FibGVkCisgICBkZWYgdGVzdF9maXBzX21vZGVfaXNf cmVlbnRyYW50CisgICAgIHJldHVybiBpZiBhd3NfbGM/ICMgQVdTLUxDJ3MgRklQUyBtb2RlIGlz IGRlY2lkZWQgYXQgY29tcGlsZSB0aW1lLgorIAorLSAgICBhc3NlcnRfc2VwYXJhdGVseShbIi1y b3BlbnNzbCJdLCA8PH4iZW5kOyIpCisrICAgIGFzc2VydF9ydWJ5X3N0YXR1cyhbIi1yb3BlbnNz bCJdLCA8PH4iZW5kOyIpCisgICAgICAgT3BlblNTTC5maXBzX21vZGUgPSBmYWxzZQorICAgICAg IE9wZW5TU0wuZmlwc19tb2RlID0gZmFsc2UKKyAgICAgZW5kOworZGlmZiAtLWdpdCBhL3Rlc3Qv b3BlbnNzbC90ZXN0X29jc3AucmIgYi90ZXN0L29wZW5zc2wvdGVzdF9vY3NwLnJiCitpbmRleCBi OWI2NmFkMzdhZDA4OC4uYzQzZmY1Y2I1NTFmNDEgMTAwNjQ0CistLS0gYS90ZXN0L29wZW5zc2wv dGVzdF9vY3NwLnJiCisrKysgYi90ZXN0L29wZW5zc2wvdGVzdF9vY3NwLnJiCitAQCAtMjE1LDYg KzIxNSwzNSBAQCBkZWYgdGVzdF9iYXNpY19yZXNwb25zZV9kdXAKKyAgICAgYXNzZXJ0X2VxdWFs IGJyZXMudG9fZGVyLCBicmVzLmR1cC50b19kZXIKKyAgIGVuZAorIAorKyAgZGVmIHRlc3RfYmFz aWNfcmVzcG9uc2Vfc3RhdHVzX2dvb2QKKysgICAgYnJlcyA9IE9wZW5TU0w6Ok9DU1A6OkJhc2lj UmVzcG9uc2UubmV3CisrICAgIGNpZCA9IE9wZW5TU0w6Ok9DU1A6OkNlcnRpZmljYXRlSWQubmV3 KEBjZXJ0LCBAY2FfY2VydCwgT3BlblNTTDo6RGlnZXN0Lm5ldygnU0hBMScpKQorKyAgICBicmVz LmFkZF9zdGF0dXMoY2lkLCBPcGVuU1NMOjpPQ1NQOjpWX0NFUlRTVEFUVVNfR09PRCwgMCwgbmls LCAtMzAwLCA1MDAsIG5pbCkKKysgICAgYnJlcy5zaWduKEBvY3NwX2NlcnQsIEBvY3NwX2tleSwg W0BjYV9jZXJ0XSkKKysKKysgICAgc3RhdHVzZXMgPSBicmVzLnN0YXR1cworKyAgICBhc3NlcnRf ZXF1YWwgMSwgc3RhdHVzZXMuc2l6ZQorKyAgICBzdGF0dXMgPSBzdGF0dXNlc1swXQorKyAgICBh c3NlcnRfZXF1YWwgY2lkLnRvX2Rlciwgc3RhdHVzWzBdLnRvX2RlcgorKyAgICBhc3NlcnRfZXF1 YWwgT3BlblNTTDo6T0NTUDo6Vl9DRVJUU1RBVFVTX0dPT0QsIHN0YXR1c1sxXQorKyAgICBhc3Nl cnRfbmlsIHN0YXR1c1szXSAjIHJldnRpbWUgc2hvdWxkIGJlIG5pbCBmb3IgR09PRCBzdGF0dXMK KysgIGVuZAorKworKyAgZGVmIHRlc3RfYmFzaWNfcmVzcG9uc2Vfc3RhdHVzX3Jldm9rZWQKKysg ICAgYnJlcyA9IE9wZW5TU0w6Ok9DU1A6OkJhc2ljUmVzcG9uc2UubmV3CisrICAgIG5vdyA9IFRp bWUuYXQoVGltZS5ub3cudG9faSkKKysgICAgY2lkID0gT3BlblNTTDo6T0NTUDo6Q2VydGlmaWNh dGVJZC5uZXcoQGNlcnQsIEBjYV9jZXJ0LCBPcGVuU1NMOjpEaWdlc3QubmV3KCdTSEExJykpCisr ICAgIGJyZXMuYWRkX3N0YXR1cyhjaWQsIE9wZW5TU0w6Ok9DU1A6OlZfQ0VSVFNUQVRVU19SRVZP S0VELAorKyAgICAgICAgICAgICAgICAgICAgT3BlblNTTDo6T0NTUDo6UkVWT0tFRF9TVEFUVVNf VU5TUEVDSUZJRUQsIG5vdyAtIDQwMCwgLTMwMCwgbmlsLCBuaWwpCisrICAgIGJyZXMuc2lnbihA b2NzcF9jZXJ0LCBAb2NzcF9rZXksIFtAY2FfY2VydF0pCisrCisrICAgIHN0YXR1c2VzID0gYnJl cy5zdGF0dXMKKysgICAgYXNzZXJ0X2VxdWFsIDEsIHN0YXR1c2VzLnNpemUKKysgICAgc3RhdHVz ID0gc3RhdHVzZXNbMF0KKysgICAgYXNzZXJ0X2VxdWFsIE9wZW5TU0w6Ok9DU1A6OlZfQ0VSVFNU QVRVU19SRVZPS0VELCBzdGF0dXNbMV0KKysgICAgYXNzZXJ0X2VxdWFsIG5vdyAtIDQwMCwgc3Rh dHVzWzNdICMgcmV2dGltZSBzaG91bGQgYmUgdGhlIHJldm9jYXRpb24gdGltZQorKyAgZW5kCisr CisgICBkZWYgdGVzdF9iYXNpY19yZXNwb25zZV9yZXNwb25zZV9vcGVyYXRpb25zCisgICAgIGJy ZXMgPSBPcGVuU1NMOjpPQ1NQOjpCYXNpY1Jlc3BvbnNlLm5ldworICAgICBub3cgPSBUaW1lLmF0 KFRpbWUubm93LnRvX2kpCitkaWZmIC0tZ2l0IGEvdGVzdC9vcGVuc3NsL3Rlc3RfcGtjczEyLnJi IGIvdGVzdC9vcGVuc3NsL3Rlc3RfcGtjczEyLnJiCitpbmRleCAxYjUzMjg3NzRlNGYyYS4uNjE3 YzE1NmNiZDc1MjUgMTAwNjQ0CistLS0gYS90ZXN0L29wZW5zc2wvdGVzdF9wa2NzMTIucmIKKysr KyBiL3Rlc3Qvb3BlbnNzbC90ZXN0X3BrY3MxMi5yYgorQEAgLTMsNiArMywyOSBAQAorIAorIGlm IGRlZmluZWQ/KE9wZW5TU0wpCisgCisrIyBPcGVuU1NMOjpQS0NTMTIuY3JlYXRlIGNhbGxpbmcg dGhlIFBLQ1MxMl9jcmVhdGUoKSBoYXMgdGhlIGFyZ3VtZW50IG1hY19pdGVyCisrIyB3aGljaCB1 c2VzIGEgTUFDIGtleSB1c2luZyBQS0NTMTJLREYgd2hpY2ggaXMgbm90IEZJUFMtYXBwcm92ZWQu CisrIyBPcGVuU1NMOjpQS0NTMTIubmV3IHdpdGggYmFzZTY0LWVuY29kZWQgZXhhbXBsZSBjYWxs aW5nIFBLQ1MxMl9wYXJzZSgpCisrIyB2ZXJpZmllcyB0aGUgTUFDIGtleSB1c2luZyBQS0NTMTJL REYgd2hpY2ggaXMgbm90IEZJUFMtYXBwcm92ZWQuCisrIworKyMgUEJFLVNIQTEtM0RFUyB1c2Vz IFBLQ1MxMktERiB3aGljaCBpcyBub3QgRklQUy1hcHByb3ZlZCBhY2NvcmRpbmcgdG8gdGhlIFJG QworKyMgNzI5MiBQS0NTIzEyLgorKyMgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2Mv aHRtbC9yZmM3MjkyI2FwcGVuZGl4LUMKKysjID4gVGhlIFBCRVMxIGVuY3J5cHRpb24gc2NoZW1l IGRlZmluZWQgaW4gUEtDUyAjNSBwcm92aWRlcyBhIG51bWJlciBvZgorKyMgPiBhbGdvcml0aG0g aWRlbnRpZmllcnMgZm9yIGRlcml2aW5nIGtleXMgYW5kIElWczsgaGVyZSwgd2Ugc3BlY2lmeSBh CisrIyA+IGZldyBtb3JlLCBhbGwgb2Ygd2hpY2ggdXNlIHRoZSBwcm9jZWR1cmUgZGV0YWlsZWQg aW4gQXBwZW5kaWNlcyBCLjIKKysjID4gYW5kIEIuMyB0byBjb25zdHJ1Y3Qga2V5cyAoYW5kIElW cywgd2hlcmUgbmVlZGVkKS4gIEFzIGlzIGltcGxpZWQgYnkKKysjID4gdGhlaXIgbmFtZXMsIGFs bCBvZiB0aGUgb2JqZWN0IGlkZW50aWZpZXJzIGJlbG93IHVzZSB0aGUgaGFzaAorKyMgPiBmdW5j dGlvbiBTSEEtMS4KKysjID4gLi4uCisrIyA+IHBiZVdpdGhTSEFBbmQzLUtleVRyaXBsZURFUy1D QkMgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7cGtjcy0xMlBiZUlkcyAzfQorKyMKKysjIE5vdGUg dGhhdCB0aGUgcGJlV2l0aFNIQUFuZDMtS2V5VHJpcGxlREVTLUNCQyAocGtjczEyLXBiZWlkcyAz KSBpbiB0aGUgUkZDCisrIyA3MjkyIFBLQ1MjMTIgbWVhbnMgUEJFLVNIQTEtM0RFUyBpbiBPcGVu U1NMLiBQS0NTMTJLREYgaXMgdXNlZCBpbiBQS0NTIzEyLgorKyMgaHR0cHM6Ly9vaWRyZWYuY29t LzEuMi44NDAuMTEzNTQ5LjEuMTIuMS4zCisrIyBodHRwczovL2dpdGh1Yi5jb20vb3BlbnNzbC9v cGVuc3NsL2Jsb2IvZWQ1N2QxZTA2ZGNhMjg2ODkxOTBlMDBkOTg5M2UwZmQ3ZWNjNjdjMS9jcnlw dG8vb2JqZWN0cy9vYmplY3RzLnR4dCNMMzg1CisrcmV0dXJuIGlmIE9wZW5TU0wuZmlwc19tb2Rl CisrCisgbW9kdWxlIE9wZW5TU0wKKyAgIGNsYXNzIFRlc3RQS0NTMTIgPCBPcGVuU1NMOjpUZXN0 Q2FzZQorICAgICBERUZBVUxUX1BCRV9QS0VZUyA9ICJQQkUtU0hBMS0zREVTIgorQEAgLTIxMCw4 ICsyMzMsMTMgQEAgZGVmIHRlc3RfY3JlYXRlX3dpdGhfa2V5dHlwZQorICAgICBlbmQKKyAKKyAg ICAgZGVmIHRlc3RfbmV3X3dpdGhfbm9fa2V5cworLSAgICAgICMgZ2VuZXJhdGVkIHdpdGg6Cist ICAgICAgIyAgIG9wZW5zc2wgcGtjczEyIC1jZXJ0cGJlIFBCRS1TSEExLTNERVMgLWluIDxAbXlj ZXJ0PiAtbm9rZXlzIC1leHBvcnQKKysgICAgICAjIEdlbmVyYXRlZCB3aXRoIHRoZSBmb2xsb3dp bmcgc3RlcHM6CisrICAgICAgIyAgIFByaW50IHRoZSB2YWx1ZSBvZiB0aGUgQG15Y2VydCBzdWNo IGFzIGJ5IGBwdXRzIEBteWNlcnQudG9fc2AgYW5kCisrICAgICAgIyAgIHNhdmUgdGhlIHZhbHVl IGFzIHRoZSBmaWxlIGBteWNlcnQucGVtYC4KKysgICAgICAjICAgUnVuIHRoZSBmb2xsb3dpbmcg Y29tbWFuZHM6CisrICAgICAgIyAgIG9wZW5zc2wgcGtjczEyIC1jZXJ0cGJlIFBCRS1TSEExLTNE RVMgLWluIDwoY2F0IG15Y2VydC5wZW0pIFwKKysgICAgICAjICAgICAtbm9rZXlzIC1leHBvcnQg LXBhc3NvdXQgcGFzczphYmMxMjMgLW91dCAvdG1wL3AxMi5vdXQKKysgICAgICAjICAgYmFzZTY0 IC13IDYwIC90bXAvcDEyLm91dAorICAgICAgIHN0ciA9IDw8fkVPRi51bnBhY2sxKCJtIikKKyBN SUlHSkFJQkF6Q0NCZW9HQ1NxR1NJYjNEUUVIQWFDQ0Jkc0VnZ1hYTUlJRjB6Q0NCYzhHQ1NxR1NJ YjMKKyBEUUVIQnFDQ0JjQXdnZ1c4QWdFQU1JSUZ0UVlKS29aSWh2Y05BUWNCTUJ3R0NpcUdTSWIz RFFFTUFRTXcKK0BAIC0yNTksOCArMjg3LDEwIEBAIGRlZiB0ZXN0X25ld193aXRoX25vX2tleXMK KyAgICAgZW5kCisgCisgICAgIGRlZiB0ZXN0X25ld193aXRoX25vX2NlcnRzCistICAgICAgIyBn ZW5lcmF0ZWQgd2l0aDoKKy0gICAgICAjICAgb3BlbnNzbCBwa2NzMTIgLWlua2V5IGZpeHR1cmVz L29wZW5zc2wvcGtleS9yc2EtMS5wZW0gLW5vY2VydHMgLWV4cG9ydAorKyAgICAgICMgR2VuZXJh dGVkIHdpdGggdGhlIGZvbG93aW5nIHN0ZXBzOgorKyAgICAgICMgICBvcGVuc3NsIHBrY3MxMiAt aW5rZXkgdGVzdC9vcGVuc3NsL2ZpeHR1cmVzL3BrZXkvcnNhLTEucGVtIFwKKysgICAgICAjICAg ICAtbm9jZXJ0cyAtZXhwb3J0IC1wYXNzb3V0IHBhc3M6YWJjMTIzIC1vdXQgL3RtcC9wMTIub3V0 CisrICAgICAgIyAgIGJhc2U2NCAtdyA2MCAvdG1wL3AxMi5vdXQKKyAgICAgICBzdHIgPSA8PH5F T0YudW5wYWNrMSgibSIpCisgTUlJSjd3SUJBekNDQ2JVR0NTcUdTSWIzRFFFSEFhQ0NDYVlFZ2dt aU1JSUpuakNDQ1pvR0NTcUdTSWIzCisgRFFFSEFhQ0NDWXNFZ2dtSE1JSUpnekNDQ1g4R0N5cUdT SWIzRFFFTUNnRUNvSUlKYmpDQ0NXb3dIQVlLCitkaWZmIC0tZ2l0IGEvdGVzdC9vcGVuc3NsL3Rl c3RfcGtleV9lYy5yYiBiL3Rlc3Qvb3BlbnNzbC90ZXN0X3BrZXlfZWMucmIKK2luZGV4IDg4MDg1 YmM2OGM3ZWY1Li5lYzk3YTc0N2EzM2I4YiAxMDA2NDQKKy0tLSBhL3Rlc3Qvb3BlbnNzbC90ZXN0 X3BrZXlfZWMucmIKKysrKyBiL3Rlc3Qvb3BlbnNzbC90ZXN0X3BrZXlfZWMucmIKK0BAIC0zNDUs NiArMzQ1LDE1IEBAIGRlZiB0ZXN0X2VjX2dyb3VwCisgICAgIGFzc2VydF9lcXVhbCBncm91cDEu ZGVncmVlLCBncm91cDQuZGVncmVlCisgICBlbmQKKyAKKysgIGRlZiB0ZXN0X2VjX2dyb3VwX2lu aXRpYWxpemVfZXJyb3JfbWVzc2FnZQorKyAgICAjIFRlc3QgdGhhdCBwYXNzaW5nIDIgYXJndW1l bnRzIHJhaXNlcyB0aGUgaGVscGZ1bCBlcnJvcgorKyAgICBlID0gYXNzZXJ0X3JhaXNlKEFyZ3Vt ZW50RXJyb3IpIGRvCisrICAgICAgT3BlblNTTDo6UEtleTo6RUM6Okdyb3VwLm5ldyg6R0ZwLCAx MjMpCisrICAgIGVuZAorKworKyAgICBhc3NlcnRfZXF1YWwoIndyb25nIG51bWJlciBvZiBhcmd1 bWVudHMgKGdpdmVuIDIsIGV4cGVjdGVkIDEgb3IgNCkiLCBlLm1lc3NhZ2UpCisrICBlbmQKKysK KyAgIGRlZiB0ZXN0X2VjX3BvaW50CisgICAgIGdyb3VwID0gT3BlblNTTDo6UEtleTo6RUM6Okdy b3VwLm5ldygicHJpbWUyNTZ2MSIpCisgICAgIGtleSA9IE9wZW5TU0w6OlBLZXk6OkVDLmdlbmVy YXRlKGdyb3VwKQorZGlmZiAtLWdpdCBhL3Rlc3Qvb3BlbnNzbC90ZXN0X3NzbC5yYiBiL3Rlc3Qv b3BlbnNzbC90ZXN0X3NzbC5yYgoraW5kZXggNWQyMGNjZDFmNGIyZTQuLmNlMWIyYzFlOTY2ZmQw IDEwMDY0NAorLS0tIGEvdGVzdC9vcGVuc3NsL3Rlc3Rfc3NsLnJiCisrKysgYi90ZXN0L29wZW5z c2wvdGVzdF9zc2wucmIKK0BAIC0zNTUsNiArMzU1LDIyIEBAIGRlZiB0ZXN0X3N5bmNfY2xvc2UK KyAgICAgZW5kCisgICBlbmQKKyAKKysgIGRlZiB0ZXN0X3N5bmNfY2xvc2VfaW5pdGlhbGl6ZV9v cHQKKysgICAgc3RhcnRfc2VydmVyIGRvIHxwb3J0fAorKyAgICAgIGJlZ2luCisrICAgICAgICBz b2NrID0gVENQU29ja2V0Lm5ldygiMTI3LjAuMC4xIiwgcG9ydCkKKysgICAgICAgIHNzbCA9IE9w ZW5TU0w6OlNTTDo6U1NMU29ja2V0Lm5ldyhzb2NrLCBzeW5jX2Nsb3NlOiB0cnVlKQorKyAgICAg ICAgYXNzZXJ0X2VxdWFsIHRydWUsIHNzbC5zeW5jX2Nsb3NlCisrICAgICAgICBzc2wuY29ubmVj dAorKyAgICAgICAgc3NsLnB1dHMgImFiYyI7IGFzc2VydF9lcXVhbCAiYWJjXG4iLCBzc2wuZ2V0 cworKyAgICAgICAgc3NsLmNsb3NlCisrICAgICAgICBhc3NlcnRfcHJlZGljYXRlIHNvY2ssIDpj bG9zZWQ/CisrICAgICAgZW5zdXJlCisrICAgICAgICBzb2NrJi5jbG9zZQorKyAgICAgIGVuZAor KyAgICBlbmQKKysgIGVuZAorKworICAgZGVmIHRlc3RfY29weV9zdHJlYW0KKyAgICAgc3RhcnRf c2VydmVyIGRvIHxwb3J0fAorICAgICAgIHNlcnZlcl9jb25uZWN0KHBvcnQpIGRvIHxzc2x8CitA QCAtMTA2NCwzNiArMTA4MCw0NiBAQCBkZWYgdGVzdF90bHNleHRfaG9zdG5hbWUKKyAgICAgZW5k CisgICBlbmQKKyAKKy0gIGRlZiB0ZXN0X3NlcnZlcm5hbWVfY2JfcmFpc2VzX2FuX2V4Y2VwdGlv bl9vbl91bmtub3duX29iamVjdHMKKy0gICAgaG9zdG5hbWUgPSAnZXhhbXBsZS5vcmcnCistCist ICAgIGN0eDIgPSBPcGVuU1NMOjpTU0w6OlNTTENvbnRleHQubmV3CistICAgIGN0eDIuY2VydCA9 IEBzdnJfY2VydAorLSAgICBjdHgyLmtleSA9IEBzdnJfa2V5CistICAgIGN0eDIuc2VydmVybmFt ZV9jYiA9IGxhbWJkYSB7IHxhcmdzfCBPYmplY3QubmV3IH0KKy0KKysgIGRlZiB0ZXN0X3NlcnZl cm5hbWVfY2JfZXhjZXB0aW9uCisgICAgIHNvY2sxLCBzb2NrMiA9IHNvY2tldHBhaXIKKyAKKysg ICAgdCA9IFRocmVhZC5uZXcgeworKyAgICAgIHMxID0gT3BlblNTTDo6U1NMOjpTU0xTb2NrZXQu bmV3KHNvY2sxKQorKyAgICAgIHMxLmhvc3RuYW1lID0gImxvY2FsaG9zdCIKKysgICAgICBhc3Nl cnRfcmFpc2Vfd2l0aF9tZXNzYWdlKE9wZW5TU0w6OlNTTDo6U1NMRXJyb3IsIC91bnJlY29nbml6 ZWQubmFtZS9pKSB7CisrICAgICAgICBzMS5jb25uZWN0CisrICAgICAgfQorKyAgICB9CisrCisr ICAgIGN0eDIgPSBPcGVuU1NMOjpTU0w6OlNTTENvbnRleHQubmV3CisrICAgIGN0eDIuc2VydmVy bmFtZV9jYiA9IGxhbWJkYSB7IHxhcmdzfCByYWlzZSBSdW50aW1lRXJyb3IsICJmb28iIH0KKyAg ICAgczIgPSBPcGVuU1NMOjpTU0w6OlNTTFNvY2tldC5uZXcoc29jazIsIGN0eDIpCisrICAgIGFz c2VydF9yYWlzZV93aXRoX21lc3NhZ2UoUnVudGltZUVycm9yLCAiZm9vIikgeyBzMi5hY2NlcHQg fQorKyAgICBhc3NlcnQgdC5qb2luCisrICBlbnN1cmUKKysgICAgc29jazEuY2xvc2UKKysgICAg c29jazIuY2xvc2UKKysgICAgdC5raWxsLmpvaW4KKysgIGVuZAorIAorLSAgICBjdHgxID0gT3Bl blNTTDo6U1NMOjpTU0xDb250ZXh0Lm5ldworKyAgZGVmIHRlc3Rfc2VydmVybmFtZV9jYl9yYWlz ZXNfYW5fZXhjZXB0aW9uX29uX3Vua25vd25fb2JqZWN0cworKyAgICBzb2NrMSwgc29jazIgPSBz b2NrZXRwYWlyCisgCistICAgIHMxID0gT3BlblNTTDo6U1NMOjpTU0xTb2NrZXQubmV3KHNvY2sx LCBjdHgxKQorLSAgICBzMS5ob3N0bmFtZSA9IGhvc3RuYW1lCisgICAgIHQgPSBUaHJlYWQubmV3 IHsKKy0gICAgICBhc3NlcnRfcmFpc2UoT3BlblNTTDo6U1NMOjpTU0xFcnJvcikgZG8KKy0gICAg ICAgIHMxLmNvbm5lY3QKKy0gICAgICBlbmQKKysgICAgICBzMSA9IE9wZW5TU0w6OlNTTDo6U1NM U29ja2V0Lm5ldyhzb2NrMSkKKysgICAgICBzMS5ob3N0bmFtZSA9ICJsb2NhbGhvc3QiCisrICAg ICAgYXNzZXJ0X3JhaXNlKE9wZW5TU0w6OlNTTDo6U1NMRXJyb3IpIHsgczEuY29ubmVjdCB9Cisg ICAgIH0KKyAKKy0gICAgYXNzZXJ0X3JhaXNlKEFyZ3VtZW50RXJyb3IpIGRvCistICAgICAgczIu YWNjZXB0CistICAgIGVuZAorLQorKyAgICBjdHgyID0gT3BlblNTTDo6U1NMOjpTU0xDb250ZXh0 Lm5ldworKyAgICBjdHgyLnNlcnZlcm5hbWVfY2IgPSBsYW1iZGEgeyB8YXJnc3wgT2JqZWN0Lm5l dyB9CisrICAgIHMyID0gT3BlblNTTDo6U1NMOjpTU0xTb2NrZXQubmV3KHNvY2syLCBjdHgyKQor KyAgICBhc3NlcnRfcmFpc2UoQXJndW1lbnRFcnJvcikgeyBzMi5hY2NlcHQgfQorICAgICBhc3Nl cnQgdC5qb2luCisgICBlbnN1cmUKKy0gICAgc29jazEuY2xvc2UgaWYgc29jazEKKy0gICAgc29j azIuY2xvc2UgaWYgc29jazIKKysgICAgc29jazEuY2xvc2UKKysgICAgc29jazIuY2xvc2UKKysg ICAgdC5raWxsLmpvaW4KKyAgIGVuZAorIAorICAgZGVmIHRlc3RfYWNjZXB0X2Vycm9yc19pbmNs dWRlX3BlZXJhZGRyCisKK0Zyb20gNzJlMzM4MTNhZDVmYTg2NmJmMzQzMTI3NzA0OTgxOTMzZDI2 MTkxZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEthenVraSBZYW1hZ3VjaGkgPGtA cmhlLmpwPgorRGF0ZTogVGh1LCAxNCBNYXkgMjAyNiAwMDo0NzoxNSArMDkwMAorU3ViamVjdDog W1BBVENIIDIvMl0gTWVyZ2Ugb3BlbnNzbC00LjAuMgorCitUaGUgY2hhbmdlcyBjYW4gYmUgZm91 bmQgYXQ6CisKKyAgICBodHRwczovL2dpdGh1Yi5jb20vcnVieS9vcGVuc3NsL2NvbXBhcmUvdjQu MC4xLi4udjQuMC4yCistLS0KKyBleHQvb3BlbnNzbC9IaXN0b3J5Lm1kICAgICAgICAgICAgIHwg MjIgKysrKysrKysrCisgZXh0L29wZW5zc2wvZXh0Y29uZi5yYiAgICAgICAgICAgICB8ICAzICsr CisgZXh0L29wZW5zc2wvbGliL29wZW5zc2wvdmVyc2lvbi5yYiB8ICAyICstCisgZXh0L29wZW5z c2wvb3BlbnNzbC5nZW1zcGVjICAgICAgICB8ICAyICstCisgZXh0L29wZW5zc2wvb3BlbnNzbF9t aXNzaW5nLmggICAgICB8IDIzICsrKysrKysrKysKKyBleHQvb3BlbnNzbC9vc3NsLmMgICAgICAg ICAgICAgICAgIHwgMjIgKysrKysrKy0tCisgZXh0L29wZW5zc2wvb3NzbF9hc24xLmMgICAgICAg ICAgICB8IDQ3ICsrKysrKysrKystLS0tLS0tLS0KKyBleHQvb3BlbnNzbC9vc3NsX2Jpby5jICAg ICAgICAgICAgIHwgIDYgKystCisgZXh0L29wZW5zc2wvb3NzbF9vY3NwLmMgICAgICAgICAgICB8 ICA1ICstCisgZXh0L29wZW5zc2wvb3NzbF9wa2V5LmggICAgICAgICAgICB8ICAxIC0KKyBleHQv b3BlbnNzbC9vc3NsX3RzLmMgICAgICAgICAgICAgIHwgIDIgKy0KKyBleHQvb3BlbnNzbC9vc3Ns X3g1MDkuaCAgICAgICAgICAgIHwgMTIgKystLS0KKyBleHQvb3BlbnNzbC9vc3NsX3g1MDlhdHRy LmMgICAgICAgIHwgIDkgKystLQorIGV4dC9vcGVuc3NsL29zc2xfeDUwOWNlcnQuYyAgICAgICAg fCAxMiArKy0tLQorIGV4dC9vcGVuc3NsL29zc2xfeDUwOWNybC5jICAgICAgICAgfCAxMCArKy0t CisgZXh0L29wZW5zc2wvb3NzbF94NTA5ZXh0LmMgICAgICAgICB8IDE5ICsrKysrKy0tCisgZXh0 L29wZW5zc2wvb3NzbF94NTA5bmFtZS5jICAgICAgICB8ICA1ICstCisgZXh0L29wZW5zc2wvb3Nz bF94NTA5cmVxLmMgICAgICAgICB8ICA0ICstCisgZXh0L29wZW5zc2wvb3NzbF94NTA5cmV2b2tl ZC5jICAgICB8ICA3ICstLQorIGV4dC9vcGVuc3NsL29zc2xfeDUwOXN0b3JlLmMgICAgICAgfCAx MCArKy0tCisgdGVzdC9vcGVuc3NsL3Rlc3Rfb3NzbC5yYiAgICAgICAgICB8IDEwICsrKysKKyB0 ZXN0L29wZW5zc2wvdGVzdF9wa2V5X3JzYS5yYiAgICAgIHwgNzQgKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tCisgdGVzdC9vcGVuc3NsL3Rlc3Rfc3NsLnJiICAgICAgICAgICB8ICA4ICsr Ky0KKyAyMyBmaWxlcyBjaGFuZ2VkLCAyMDMgaW5zZXJ0aW9ucygrKSwgMTEyIGRlbGV0aW9ucygt KQorCitkaWZmIC0tZ2l0IGEvZXh0L29wZW5zc2wvSGlzdG9yeS5tZCBiL2V4dC9vcGVuc3NsL0hp c3RvcnkubWQKK2luZGV4IGM3OGM3ZTQ2MzM0ZGRiLi5jZTAxYjNlMGYyMTU4OSAxMDA2NDQKKy0t LSBhL2V4dC9vcGVuc3NsL0hpc3RvcnkubWQKKysrKyBiL2V4dC9vcGVuc3NsL0hpc3RvcnkubWQK K0BAIC0xLDMgKzEsOSBAQAorK1ZlcnNpb24gNC4wLjIKKys9PT09PT09PT09PT09CisrCisrTWVy Z2VkIGNoYW5nZXMgaW4gMy4yLjQgYW5kIDMuMy4zLgorKworKworIFZlcnNpb24gNC4wLjEKKyA9 PT09PT09PT09PT09CisgCitAQCAtMTAzLDYgKzEwOSwxMiBAQCBOb3RhYmxlIGNoYW5nZXMKKyAg IFtbR2l0SHViICM5ODNdXShodHRwczovL2dpdGh1Yi5jb20vcnVieS9vcGVuc3NsL3B1bGwvOTgz KQorIAorIAorK1ZlcnNpb24gMy4zLjMKKys9PT09PT09PT09PT09CisrCisrTWVyZ2VkIGNoYW5n ZXMgaW4gMy4yLjQuCisrCisrCisgVmVyc2lvbiAzLjMuMgorID09PT09PT09PT09PT0KKyAKK0BA IC0xOTEsNiArMjAzLDE2IEBAIEFuZCB2YXJpb3VzIG5vbi11c2VyLXZpc2libGUgY2hhbmdlcyBh bmQgYnVnIGZpeGVzLiBQbGVhc2Ugc2VlIHRoZSBjb21taXQKKyBoaXN0b3J5IGZvciBtb3JlIGRl dGFpbHMuCisgCisgCisrVmVyc2lvbiAzLjIuNAorKz09PT09PT09PT09PT0KKysKKytOb3RhYmxl IGNoYW5nZXMKKystLS0tLS0tLS0tLS0tLS0KKysKKysqIEFkZCBzdXBwb3J0IGZvciBPcGVuU1NM IDQuMC4KKysgIFtbR2l0SHViICMxMDUxXV0oaHR0cHM6Ly9naXRodWIuY29tL3J1Ynkvb3BlbnNz bC9wdWxsLzEwNTEpCisrCisrCisgVmVyc2lvbiAzLjIuMworID09PT09PT09PT09PT0KKyAKK2Rp ZmYgLS1naXQgYS9leHQvb3BlbnNzbC9leHRjb25mLnJiIGIvZXh0L29wZW5zc2wvZXh0Y29uZi5y YgoraW5kZXggYTg5N2M4NmI2NTdlOWMuLjA2ZWQ0ZjZhYzMzNGRkIDEwMDY0NAorLS0tIGEvZXh0 L29wZW5zc2wvZXh0Y29uZi5yYgorKysrIGIvZXh0L29wZW5zc2wvZXh0Y29uZi5yYgorQEAgLTE2 OSw2ICsxNjksOSBAQCBkZWYgZmluZF9vcGVuc3NsX2xpYnJhcnkKKyAjIGFkZGVkIGluIDMuNS4w CisgaGF2ZV9mdW5jKCJTU0xfZ2V0MF9wZWVyX3NpZ25hdHVyZV9uYW1lKE5VTEwsIE5VTEwpIiwg c3NsX2gpCisgCisrIyBhZGRlZCBpbiA0LjAuMAorK2hhdmVfZnVuYygiQVNOMV9CSVRfU1RSSU5H X3NldDEoTlVMTCwgTlVMTCwgMCwgMCkiLCAib3BlbnNzbC9hc24xLmgiKQorKworIExvZ2dpbmc6 Om1lc3NhZ2UgIj09PSBDaGVja2luZyBkb25lLiA9PT1cbiIKKyAKKyAjIEFwcGVuZCBmbGFncyBm cm9tIGVudmlyb25tZW50IHZhcmlhYmxlcy4KK2RpZmYgLS1naXQgYS9leHQvb3BlbnNzbC9saWIv b3BlbnNzbC92ZXJzaW9uLnJiIGIvZXh0L29wZW5zc2wvbGliL29wZW5zc2wvdmVyc2lvbi5yYgor aW5kZXggNDVjMTUwYmUxMTA1YmEuLjM5NWE3MjBhMzEzMzcyIDEwMDY0NAorLS0tIGEvZXh0L29w ZW5zc2wvbGliL29wZW5zc2wvdmVyc2lvbi5yYgorKysrIGIvZXh0L29wZW5zc2wvbGliL29wZW5z c2wvdmVyc2lvbi5yYgorQEAgLTIsNSArMiw1IEBACisgCisgbW9kdWxlIE9wZW5TU0wKKyAgICMg VGhlIHZlcnNpb24gc3RyaW5nIG9mIFJ1YnkvT3BlblNTTC4KKy0gIFZFUlNJT04gPSAiNC4wLjEi CisrICBWRVJTSU9OID0gIjQuMC4yIgorIGVuZAorZGlmZiAtLWdpdCBhL2V4dC9vcGVuc3NsL29w ZW5zc2wuZ2Vtc3BlYyBiL2V4dC9vcGVuc3NsL29wZW5zc2wuZ2Vtc3BlYworaW5kZXggYzU5NGM2 ZjE3NzY1MzguLmFmMTc3NWUzYjA3YjcxIDEwMDY0NAorLS0tIGEvZXh0L29wZW5zc2wvb3BlbnNz bC5nZW1zcGVjCisrKysgYi9leHQvb3BlbnNzbC9vcGVuc3NsLmdlbXNwZWMKK0BAIC0xLDYgKzEs NiBAQAorIEdlbTo6U3BlY2lmaWNhdGlvbi5uZXcgZG8gfHNwZWN8CisgICBzcGVjLm5hbWUgICAg ICAgICAgPSAib3BlbnNzbCIKKy0gIHNwZWMudmVyc2lvbiAgICAgICA9ICI0LjAuMSIKKysgIHNw ZWMudmVyc2lvbiAgICAgICA9ICI0LjAuMiIKKyAgIHNwZWMuYXV0aG9ycyAgICAgICA9IFsiTWFy dGluIEJvc3NsZXQiLCAiU0hJQkFUQSBIaXJvc2hpIiwgIlphY2hhcnkgU2NvdHQiLCAiS2F6dWtp IFlhbWFndWNoaSJdCisgICBzcGVjLmVtYWlsICAgICAgICAgPSBbInJ1YnktY29yZUBydWJ5LWxh bmcub3JnIl0KKyAgIHNwZWMuc3VtbWFyeSAgICAgICA9ICVxe1NTTC9UTFMgYW5kIGdlbmVyYWwt cHVycG9zZSBjcnlwdG9ncmFwaHkgZm9yIFJ1Ynl9CitkaWZmIC0tZ2l0IGEvZXh0L29wZW5zc2wv b3BlbnNzbF9taXNzaW5nLmggYi9leHQvb3BlbnNzbC9vcGVuc3NsX21pc3NpbmcuaAoraW5kZXgg NjU5MmY5Y2NlYWY3MTQuLmVkM2I1YjdjMGY1NjExIDEwMDY0NAorLS0tIGEvZXh0L29wZW5zc2wv b3BlbnNzbF9taXNzaW5nLmgKKysrKyBiL2V4dC9vcGVuc3NsL29wZW5zc2xfbWlzc2luZy5oCitA QCAtMjksNCArMjksMjcgQEAKKyAjICBkZWZpbmUgRVZQX1BLRVlfZXEoYSwgYikgRVZQX1BLRVlf Y21wKGEsIGIpCisgI2VuZGlmCisgCisrLyogYWRkZWQgaW4gNC4wLjAgKi8KKysjaWZuZGVmIEhB VkVfQVNOMV9CSVRfU1RSSU5HX1NFVDEKKytzdGF0aWMgaW5saW5lIGludAorK0FTTjFfQklUX1NU UklOR19zZXQxKEFTTjFfQklUX1NUUklORyAqYml0c3RyLCBjb25zdCB1aW50OF90ICpkYXRhLAor KyAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsIGludCB1bnVzZWRfYml0cykKKyt7 CisrICAgIGlmIChsZW5ndGggPiBJTlRfTUFYIHx8ICFBU04xX1NUUklOR19zZXQoYml0c3RyLCBk YXRhLCAoaW50KWxlbmd0aCkpCisrICAgICAgICByZXR1cm4gMDsKKysgICAgYml0c3RyLT5mbGFn cyAmPSB+KEFTTjFfU1RSSU5HX0ZMQUdfQklUU19MRUZUIHwgMHgwNyk7CisrICAgIGJpdHN0ci0+ ZmxhZ3MgfD0gQVNOMV9TVFJJTkdfRkxBR19CSVRTX0xFRlQgfCB1bnVzZWRfYml0czsKKysgICAg cmV0dXJuIDE7CisrfQorKworK3N0YXRpYyBpbmxpbmUgaW50CisrQVNOMV9CSVRfU1RSSU5HX2dl dF9sZW5ndGgoY29uc3QgQVNOMV9CSVRfU1RSSU5HICpiaXRzdHIsIHNpemVfdCAqbGVuZ3RoLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqdW51c2VkX2JpdHMpCisreworKyAgICAq bGVuZ3RoID0gYml0c3RyLT5sZW5ndGg7CisrICAgICp1bnVzZWRfYml0cyA9IGJpdHN0ci0+Zmxh Z3MgJiAweDA3OworKyAgICByZXR1cm4gMTsKKyt9CisrI2VuZGlmCisrCisgI2VuZGlmIC8qIF9P U1NMX09QRU5TU0xfTUlTU0lOR19IXyAqLworZGlmZiAtLWdpdCBhL2V4dC9vcGVuc3NsL29zc2wu YyBiL2V4dC9vcGVuc3NsL29zc2wuYworaW5kZXggOTgxMjdmY2JhMDIzMTQuLjU3MTZlNmYxMDAy ODIwIDEwMDY0NAorLS0tIGEvZXh0L29wZW5zc2wvb3NzbC5jCisrKysgYi9leHQvb3BlbnNzbC9v c3NsLmMKK0BAIC0zNCw3ICszNCwxMSBAQCBvc3NsXyMjbmFtZSMjX2FyeTJzazAoVkFMVUUgYXJ5 KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAg ICAgIiBvZiBjbGFzcyAjI3R5cGUjIyIpOyAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICB9 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyAgICAgICAgIHggPSBkdXAodmFsKTsgLyogTkVFRCBUTyBEVVAgKi8gICAgICAgICAgICAgICAg ICAgICAgICAgXAorLSAgICAgICAgc2tfIyN0eXBlIyNfcHVzaChzaywgeCk7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisrICAgICAgICBpZiAoIXNrXyMjdHlwZSMjX3B1c2goc2ss IHgpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgICAgICB0eXBlIyNfZnJl ZSh4KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICAgICAg IHNrXyMjdHlwZSMjX3BvcF9mcmVlKHNrLCB0eXBlIyNfZnJlZSk7ICAgICAgICAgICAgICBcCisr ICAgICAgICAgICAgb3NzbF9yYWlzZShlT1NTTEVycm9yLCBOVUxMKTsgICAgICAgICAgICAgICAg ICAgICAgIFwKKysgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgIHJldHVybiAoVkFMVUUpc2s7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyB9ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorQEAg LTUyMywxMCArNTI3LDE4IEBAIG9zc2xfZmlwc19tb2RlX3NldChWQUxVRSBzZWxmLCBWQUxVRSBl bmFibGVkKQorIHN0YXRpYyBWQUxVRQorIG9zc2xfY3J5cHRvX2ZpeGVkX2xlbmd0aF9zZWN1cmVf Y29tcGFyZShWQUxVRSBkdW1teSwgVkFMVUUgc3RyMSwgVkFMVUUgc3RyMikKKyB7CistICAgIGNv bnN0IHVuc2lnbmVkIGNoYXIgKnAxID0gKGNvbnN0IHVuc2lnbmVkIGNoYXIgKilTdHJpbmdWYWx1 ZVB0cihzdHIxKTsKKy0gICAgY29uc3QgdW5zaWduZWQgY2hhciAqcDIgPSAoY29uc3QgdW5zaWdu ZWQgY2hhciAqKVN0cmluZ1ZhbHVlUHRyKHN0cjIpOworLSAgICBsb25nIGxlbjEgPSBSU1RSSU5H X0xFTihzdHIxKTsKKy0gICAgbG9uZyBsZW4yID0gUlNUUklOR19MRU4oc3RyMik7CisrICAgIGNv bnN0IHVuc2lnbmVkIGNoYXIgKnAxOworKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpwMjsKKysg ICAgbG9uZyBsZW4xOworKyAgICBsb25nIGxlbjI7CisrCisrICAgIFN0cmluZ1ZhbHVlKHN0cjEp OworKyAgICBTdHJpbmdWYWx1ZShzdHIyKTsKKysKKysgICAgcDEgPSAoY29uc3QgdW5zaWduZWQg Y2hhciAqKVJTVFJJTkdfUFRSKHN0cjEpOworKyAgICBwMiA9IChjb25zdCB1bnNpZ25lZCBjaGFy ICopUlNUUklOR19QVFIoc3RyMik7CisrICAgIGxlbjEgPSBSU1RSSU5HX0xFTihzdHIxKTsKKysg ICAgbGVuMiA9IFJTVFJJTkdfTEVOKHN0cjIpOworIAorICAgICBpZiAobGVuMSAhPSBsZW4yKSB7 CisgICAgICAgICBvc3NsX3JhaXNlKHJiX2VBcmdFcnJvciwgImlucHV0cyBtdXN0IGJlIG9mIGVx dWFsIGxlbmd0aCIpOworZGlmZiAtLWdpdCBhL2V4dC9vcGVuc3NsL29zc2xfYXNuMS5jIGIvZXh0 L29wZW5zc2wvb3NzbF9hc24xLmMKK2luZGV4IDcxYTg3ZjA0NjM2Yzk4Li42N2MwM2I3Zjk4YTk1 MiAxMDA2NDQKKy0tLSBhL2V4dC9vcGVuc3NsL29zc2xfYXNuMS5jCisrKysgYi9leHQvb3BlbnNz bC9vc3NsX2FzbjEuYworQEAgLTEzMCwxNSArMTMwLDE3IEBAIGFzbjFpbnRlZ2VyX3RvX251bShj b25zdCBBU04xX0lOVEVHRVIgKmFpKQorICAgICBpZiAoIWFpKSB7CisgICAgICAgICBvc3NsX3Jh aXNlKHJiX2VUeXBlRXJyb3IsICJBU04xX0lOVEVHRVIgaXMgTlVMTCEiKTsKKyAgICAgfQorKwor KyAgICBudW0gPSBvc3NsX2JuX25ldyhCTl92YWx1ZV9vbmUoKSk7CisrICAgIGJuID0gR2V0Qk5Q dHIobnVtKTsKKysKKyAgICAgaWYgKEFTTjFfU1RSSU5HX3R5cGUoYWkpID09IFZfQVNOMV9FTlVN RVJBVEVEKQorLSAgICAgICAgYm4gPSBBU04xX0VOVU1FUkFURURfdG9fQk4oYWksIE5VTEwpOwor KyAgICAgICAgYm4gPSBBU04xX0VOVU1FUkFURURfdG9fQk4oYWksIGJuKTsKKyAgICAgZWxzZQor LSAgICAgICAgYm4gPSBBU04xX0lOVEVHRVJfdG9fQk4oYWksIE5VTEwpOworKyAgICAgICAgYm4g PSBBU04xX0lOVEVHRVJfdG9fQk4oYWksIGJuKTsKKyAKKyAgICAgaWYgKCFibikKKyAgICAgICAg IG9zc2xfcmFpc2UoZU9TU0xFcnJvciwgTlVMTCk7CistICAgIG51bSA9IG9zc2xfYm5fbmV3KGJu KTsKKy0gICAgQk5fZnJlZShibik7CisgCisgICAgIHJldHVybiBudW07CisgfQorQEAgLTIyNiw3 ICsyMjgsNyBAQCBvYmpfdG9fYXNuMWludChWQUxVRSBvYmopCisgfQorIAorIHN0YXRpYyBBU04x X0JJVF9TVFJJTkcqCistb2JqX3RvX2FzbjFic3RyKFZBTFVFIG9iaiwgbG9uZyB1bnVzZWRfYml0 cykKKytvYmpfdG9fYXNuMWJzdHIoVkFMVUUgb2JqLCBpbnQgdW51c2VkX2JpdHMpCisgeworICAg ICBBU04xX0JJVF9TVFJJTkcgKmJzdHI7CisgCitAQCAtMjM0LDExICsyMzYsMTEgQEAgb2JqX3Rv X2FzbjFic3RyKFZBTFVFIG9iaiwgbG9uZyB1bnVzZWRfYml0cykKKyAgICAgICAgIG9zc2xfcmFp c2UoZUFTTjFFcnJvciwgInVudXNlZF9iaXRzIGZvciBhIGJpdHN0cmluZyB2YWx1ZSBtdXN0IGJl IGluICJcCisgICAgICAgICAgICAgICAgICAgICJ0aGUgcmFuZ2UgMCB0byA3Iik7CisgICAgIFN0 cmluZ1ZhbHVlKG9iaik7CistICAgIGlmKCEoYnN0ciA9IEFTTjFfQklUX1NUUklOR19uZXcoKSkp CistICAgICAgICBvc3NsX3JhaXNlKGVBU04xRXJyb3IsIE5VTEwpOworLSAgICBBU04xX0JJVF9T VFJJTkdfc2V0KGJzdHIsICh1bnNpZ25lZCBjaGFyICopUlNUUklOR19QVFIob2JqKSwgUlNUUklO R19MRU5JTlQob2JqKSk7CistICAgIGJzdHItPmZsYWdzICY9IH4oQVNOMV9TVFJJTkdfRkxBR19C SVRTX0xFRlR8MHgwNyk7IC8qIGNsZWFyICovCistICAgIGJzdHItPmZsYWdzIHw9IEFTTjFfU1RS SU5HX0ZMQUdfQklUU19MRUZUIHwgdW51c2VkX2JpdHM7CisrICAgIGlmICghKGJzdHIgPSBBU04x X0JJVF9TVFJJTkdfbmV3KCkpKQorKyAgICAgICAgb3NzbF9yYWlzZShlQVNOMUVycm9yLCAiQVNO MV9CSVRfU1RSSU5HX25ldyIpOworKyAgICBpZiAoIUFTTjFfQklUX1NUUklOR19zZXQxKGJzdHIs ICh1aW50OF90ICopUlNUUklOR19QVFIob2JqKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSU1RSSU5HX0xFTihvYmopLCB1bnVzZWRfYml0cykpCisrICAgICAgICBvc3NsX3JhaXNl KGVBU04xRXJyb3IsICJBU04xX0JJVF9TVFJJTkdfc2V0MSIpOworIAorICAgICByZXR1cm4gYnN0 cjsKKyB9CitAQCAtMzYyLDIyICszNjQsMjUgQEAgZGVjb2RlX2ludCh1bnNpZ25lZCBjaGFyKiBk ZXIsIGxvbmcgbGVuZ3RoKQorIH0KKyAKKyBzdGF0aWMgVkFMVUUKKy1kZWNvZGVfYnN0cih1bnNp Z25lZCBjaGFyKiBkZXIsIGxvbmcgbGVuZ3RoLCBsb25nICp1bnVzZWRfYml0cykKKytkZWNvZGVf YnN0cih1bnNpZ25lZCBjaGFyKiBkZXIsIGxvbmcgbGVuZ3RoLCBpbnQgKnVudXNlZF9iaXRzKQor IHsKKyAgICAgQVNOMV9CSVRfU1RSSU5HICpic3RyOworICAgICBjb25zdCB1bnNpZ25lZCBjaGFy ICpwOworLSAgICBsb25nIGxlbjsKKysgICAgc2l6ZV90IGxlbjsKKyAgICAgVkFMVUUgcmV0Owor KyAgICBpbnQgc3RhdGU7CisgCisgICAgIHAgPSBkZXI7CistICAgIGlmKCEoYnN0ciA9IGQyaV9B U04xX0JJVF9TVFJJTkcoTlVMTCwgJnAsIGxlbmd0aCkpKQorLSAgICAgICAgb3NzbF9yYWlzZShl QVNOMUVycm9yLCBOVUxMKTsKKy0gICAgbGVuID0gYnN0ci0+bGVuZ3RoOworLSAgICAqdW51c2Vk X2JpdHMgPSAwOworLSAgICBpZihic3RyLT5mbGFncyAmIEFTTjFfU1RSSU5HX0ZMQUdfQklUU19M RUZUKQorLSAgICAgICAgKnVudXNlZF9iaXRzID0gYnN0ci0+ZmxhZ3MgJiAweDA3OworLSAgICBy ZXQgPSByYl9zdHJfbmV3KChjb25zdCBjaGFyICopYnN0ci0+ZGF0YSwgbGVuKTsKKysgICAgaWYg KCEoYnN0ciA9IGQyaV9BU04xX0JJVF9TVFJJTkcoTlVMTCwgJnAsIGxlbmd0aCkpKQorKyAgICAg ICAgb3NzbF9yYWlzZShlQVNOMUVycm9yLCAiZDJpX0FTTjFfQklUX1NUUklORyIpOworKyAgICBp ZiAoIUFTTjFfQklUX1NUUklOR19nZXRfbGVuZ3RoKGJzdHIsICZsZW4sIHVudXNlZF9iaXRzKSkg eworKyAgICAgICAgQVNOMV9CSVRfU1RSSU5HX2ZyZWUoYnN0cik7CisrICAgICAgICBvc3NsX3Jh aXNlKGVBU04xRXJyb3IsICJBU04xX0JJVF9TVFJJTkdfZ2V0X2xlbmd0aCIpOworKyAgICB9Cisr ICAgIHJldCA9IG9zc2xfc3RyX25ldygoY29uc3QgY2hhciAqKUFTTjFfU1RSSU5HX2dldDBfZGF0 YShic3RyKSwgbGVuLCAmc3RhdGUpOworICAgICBBU04xX0JJVF9TVFJJTkdfZnJlZShic3RyKTsK KysgICAgaWYgKHN0YXRlKQorKyAgICAgICAgcmJfanVtcF90YWcoc3RhdGUpOworIAorICAgICBy ZXR1cm4gcmV0OworIH0KK0BAIC03NjEsNyArNzY2LDcgQEAgaW50X29zc2xfYXNuMV9kZWNvZGUw X3ByaW0odW5zaWduZWQgY2hhciAqKnBwLCBsb25nIGxlbmd0aCwgbG9uZyBobGVuLCBpbnQgdGFn LAorIHsKKyAgICAgVkFMVUUgdmFsdWUsIGFzbjFkYXRhOworICAgICB1bnNpZ25lZCBjaGFyICpw OworLSAgICBsb25nIGZsYWcgPSAwOworKyAgICBpbnQgZmxhZyA9IDA7CisgCisgICAgIHAgPSAq cHA7CisgCitAQCAtODE4LDcgKzgyMyw3IEBAIGludF9vc3NsX2FzbjFfZGVjb2RlMF9wcmltKHVu c2lnbmVkIGNoYXIgKipwcCwgbG9uZyBsZW5ndGgsIGxvbmcgaGxlbiwgaW50IHRhZywKKyAgICAg ICAgIGFzbjFkYXRhID0gcmJfb2JqX2FsbG9jKGtsYXNzKTsKKyAgICAgICAgIG9zc2xfYXNuMV9p bml0aWFsaXplKDQsIGFyZ3MsIGFzbjFkYXRhKTsKKyAgICAgICAgIGlmKHRhZyA9PSBWX0FTTjFf QklUX1NUUklORyl7CistICAgICAgICAgICAgcmJfaXZhcl9zZXQoYXNuMWRhdGEsIHNpdlVOVVNF RF9CSVRTLCBMT05HMk5VTShmbGFnKSk7CisrICAgICAgICAgICAgcmJfaXZhcl9zZXQoYXNuMWRh dGEsIHNpdlVOVVNFRF9CSVRTLCBJTlQyTlVNKGZsYWcpKTsKKyAgICAgICAgIH0KKyAgICAgfQor ICAgICBlbHNlIHsKK2RpZmYgLS1naXQgYS9leHQvb3BlbnNzbC9vc3NsX2Jpby5jIGIvZXh0L29w ZW5zc2wvb3NzbF9iaW8uYworaW5kZXggNGVkZGU1MDkxZDA5MzMuLmNjMDNjNWQ1ZjcyMGViIDEw MDY0NAorLS0tIGEvZXh0L29wZW5zc2wvb3NzbF9iaW8uYworKysrIGIvZXh0L29wZW5zc2wvb3Nz bF9iaW8uYworQEAgLTMyLDcgKzMyLDExIEBAIG9zc2xfbWVtYmlvMnN0cihCSU8gKmJpbykKKyAg ICAgaW50IHN0YXRlOworICAgICBCVUZfTUVNICpidWY7CisgCistICAgIEJJT19nZXRfbWVtX3B0 cihiaW8sICZidWYpOworKyAgICBpZiAoQklPX2dldF9tZW1fcHRyKGJpbywgJmJ1ZikgPD0gMCkg eworKyAgICAgICAgQklPX2ZyZWUoYmlvKTsKKysgICAgICAgIG9zc2xfcmFpc2UoZU9TU0xFcnJv ciwgIkJJT19nZXRfbWVtX3B0ciIpOworKyAgICB9CisrCisgICAgIHJldCA9IG9zc2xfc3RyX25l dyhidWYtPmRhdGEsIGJ1Zi0+bGVuZ3RoLCAmc3RhdGUpOworICAgICBCSU9fZnJlZShiaW8pOwor ICAgICBpZiAoc3RhdGUpCitkaWZmIC0tZ2l0IGEvZXh0L29wZW5zc2wvb3NzbF9vY3NwLmMgYi9l eHQvb3BlbnNzbC9vc3NsX29jc3AuYworaW5kZXggZGRiNjdmY2YwN2E3Y2UuLjlkZDRiNDY2ZDI4 NDQzIDEwMDY0NAorLS0tIGEvZXh0L29wZW5zc2wvb3NzbF9vY3NwLmMKKysrKyBiL2V4dC9vcGVu c3NsL29zc2xfb2NzcC5jCitAQCAtOTIyLDcgKzkyMiw3IEBAIG9zc2xfb2NzcGJyZXNfZ2V0X3N0 YXR1cyhWQUxVRSBzZWxmKQorICAgICAgICAgVkFMVUUgZXh0ID0gcmJfYXJ5X25ldygpOworICAg ICAgICAgaW50IGV4dF9jb3VudCA9IE9DU1BfU0lOR0xFUkVTUF9nZXRfZXh0X2NvdW50KHNpbmds ZSk7CisgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGV4dF9jb3VudDsgaisrKSB7CistICAg ICAgICAgICAgWDUwOV9FWFRFTlNJT04gKng1MDlleHQgPSBPQ1NQX1NJTkdMRVJFU1BfZ2V0X2V4 dChzaW5nbGUsIGopOworKyAgICAgICAgICAgIGNvbnN0IFg1MDlfRVhURU5TSU9OICp4NTA5ZXh0 ID0gT0NTUF9TSU5HTEVSRVNQX2dldF9leHQoc2luZ2xlLCBqKTsKKyAgICAgICAgICAgICByYl9h cnlfcHVzaChleHQsIG9zc2xfeDUwOWV4dF9uZXcoeDUwOWV4dCkpOworICAgICAgICAgfQorICAg ICAgICAgcmJfYXJ5X3B1c2goYXJ5LCBleHQpOworQEAgLTEzNDEsNyArMTM0MSw2IEBAIHN0YXRp YyBWQUxVRQorIG9zc2xfb2NzcHNyZXNfZ2V0X2V4dGVuc2lvbnMoVkFMVUUgc2VsZikKKyB7Cisg ICAgIE9DU1BfU0lOR0xFUkVTUCAqc3JlczsKKy0gICAgWDUwOV9FWFRFTlNJT04gKmV4dDsKKyAg ICAgaW50IGNvdW50LCBpOworICAgICBWQUxVRSBhcnk7CisgCitAQCAtMTM1MCw3ICsxMzQ5LDcg QEAgb3NzbF9vY3Nwc3Jlc19nZXRfZXh0ZW5zaW9ucyhWQUxVRSBzZWxmKQorICAgICBjb3VudCA9 IE9DU1BfU0lOR0xFUkVTUF9nZXRfZXh0X2NvdW50KHNyZXMpOworICAgICBhcnkgPSByYl9hcnlf bmV3Mihjb3VudCk7CisgICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CistICAgICAg ICBleHQgPSBPQ1NQX1NJTkdMRVJFU1BfZ2V0X2V4dChzcmVzLCBpKTsKKysgICAgICAgIGNvbnN0 IFg1MDlfRVhURU5TSU9OICpleHQgPSBPQ1NQX1NJTkdMRVJFU1BfZ2V0X2V4dChzcmVzLCBpKTsK KyAgICAgICAgIHJiX2FyeV9wdXNoKGFyeSwgb3NzbF94NTA5ZXh0X25ldyhleHQpKTsgLyogd2ls bCBkdXAgKi8KKyAgICAgfQorIAorZGlmZiAtLWdpdCBhL2V4dC9vcGVuc3NsL29zc2xfcGtleS5o IGIvZXh0L29wZW5zc2wvb3NzbF9wa2V5LmgKK2luZGV4IDAyMzM2MWI5MGYyMzA2Li5lZmJhMzNi NzUyOTM3MyAxMDA2NDQKKy0tLSBhL2V4dC9vcGVuc3NsL29zc2xfcGtleS5oCisrKysgYi9leHQv b3BlbnNzbC9vc3NsX3BrZXkuaAorQEAgLTcxLDcgKzcxLDYgQEAgdm9pZCBJbml0X29zc2xfZGgo dm9pZCk7CisgICogRUMKKyAgKi8KKyBleHRlcm4gVkFMVUUgY0VDOworLVZBTFVFIG9zc2xfZWNf bmV3KEVWUF9QS0VZICopOworIHZvaWQgSW5pdF9vc3NsX2VjKHZvaWQpOworIAorICNkZWZpbmUg T1NTTF9QS0VZX0JOX0RFRl9HRVRURVIwKF9rZXl0eXBlLCBfdHlwZSwgX25hbWUsIF9nZXQpICAg ICAgICAgIFwKK2RpZmYgLS1naXQgYS9leHQvb3BlbnNzbC9vc3NsX3RzLmMgYi9leHQvb3BlbnNz bC9vc3NsX3RzLmMKK2luZGV4IGIzMWE4NTRhNjNlOWFjLi4zOTNlMDhhY2ZmMGMxZSAxMDA2NDQK Ky0tLSBhL2V4dC9vcGVuc3NsL29zc2xfdHMuYworKysrIGIvZXh0L29wZW5zc2wvb3NzbF90cy5j CitAQCAtNzA2LDcgKzcwNiw3IEBAIG9zc2xfdHNfcmVzcF9nZXRfdHNhX2NlcnRpZmljYXRlKFZB TFVFIHNlbGYpCisgICAgIFRTX1JFU1AgKnJlc3A7CisgICAgIFBLQ1M3ICpwNzsKKyAgICAgUEtD UzdfU0lHTkVSX0lORk8gKnRzX2luZm87CistICAgIFg1MDkgKmNlcnQ7CisrICAgIGNvbnN0IFg1 MDkgKmNlcnQ7CisgCisgICAgIEdldFRTUmVzcG9uc2Uoc2VsZiwgcmVzcCk7CisgICAgIGlmICgh KHA3ID0gVFNfUkVTUF9nZXRfdG9rZW4ocmVzcCkpKQorZGlmZiAtLWdpdCBhL2V4dC9vcGVuc3Ns L29zc2xfeDUwOS5oIGIvZXh0L29wZW5zc2wvb3NzbF94NTA5LmgKK2luZGV4IGQyNTE2N2VlN2Iw ODY4Li43MTkzMmVmMWE5YTY0NyAxMDA2NDQKKy0tLSBhL2V4dC9vcGVuc3NsL29zc2xfeDUwOS5o CisrKysgYi9leHQvb3BlbnNzbC9vc3NsX3g1MDkuaAorQEAgLTI5LDcgKzI5LDcgQEAgdm9pZCBJ bml0X29zc2xfeDUwOSh2b2lkKTsKKyAgKi8KKyBleHRlcm4gVkFMVUUgY1g1MDlBdHRyOworIAor LVZBTFVFIG9zc2xfeDUwOWF0dHJfbmV3KFg1MDlfQVRUUklCVVRFICopOworK1ZBTFVFIG9zc2xf eDUwOWF0dHJfbmV3KGNvbnN0IFg1MDlfQVRUUklCVVRFICopOworIFg1MDlfQVRUUklCVVRFICpH ZXRYNTA5QXR0clB0cihWQUxVRSk7Cisgdm9pZCBJbml0X29zc2xfeDUwOWF0dHIodm9pZCk7Cisg CitAQCAtMzgsNyArMzgsNyBAQCB2b2lkIEluaXRfb3NzbF94NTA5YXR0cih2b2lkKTsKKyAgKi8K KyBleHRlcm4gVkFMVUUgY1g1MDlDZXJ0OworIAorLVZBTFVFIG9zc2xfeDUwOV9uZXcoWDUwOSAq KTsKKytWQUxVRSBvc3NsX3g1MDlfbmV3KGNvbnN0IFg1MDkgKik7CisgWDUwOSAqR2V0WDUwOUNl cnRQdHIoVkFMVUUpOworIFg1MDkgKkR1cFg1MDlDZXJ0UHRyKFZBTFVFKTsKKyB2b2lkIEluaXRf b3NzbF94NTA5Y2VydCh2b2lkKTsKK0BAIC00Niw3ICs0Niw3IEBAIHZvaWQgSW5pdF9vc3NsX3g1 MDljZXJ0KHZvaWQpOworIC8qCisgICogWDUwOUNSTAorICAqLworLVZBTFVFIG9zc2xfeDUwOWNy bF9uZXcoWDUwOV9DUkwgKik7CisrVkFMVUUgb3NzbF94NTA5Y3JsX25ldyhjb25zdCBYNTA5X0NS TCAqKTsKKyBYNTA5X0NSTCAqR2V0WDUwOUNSTFB0cihWQUxVRSk7Cisgdm9pZCBJbml0X29zc2xf eDUwOWNybCh2b2lkKTsKKyAKK0BAIC01NSwxNCArNTUsMTQgQEAgdm9pZCBJbml0X29zc2xfeDUw OWNybCh2b2lkKTsKKyAgKi8KKyBleHRlcm4gVkFMVUUgY1g1MDlFeHQ7CisgCistVkFMVUUgb3Nz bF94NTA5ZXh0X25ldyhYNTA5X0VYVEVOU0lPTiAqKTsKKytWQUxVRSBvc3NsX3g1MDlleHRfbmV3 KGNvbnN0IFg1MDlfRVhURU5TSU9OICopOworIFg1MDlfRVhURU5TSU9OICpHZXRYNTA5RXh0UHRy KFZBTFVFKTsKKyB2b2lkIEluaXRfb3NzbF94NTA5ZXh0KHZvaWQpOworIAorIC8qCisgICogWDUw OU5hbWUKKyAgKi8KKy1WQUxVRSBvc3NsX3g1MDluYW1lX25ldyhYNTA5X05BTUUgKik7CisrVkFM VUUgb3NzbF94NTA5bmFtZV9uZXcoY29uc3QgWDUwOV9OQU1FICopOworIFg1MDlfTkFNRSAqR2V0 WDUwOU5hbWVQdHIoVkFMVUUpOworIHZvaWQgSW5pdF9vc3NsX3g1MDluYW1lKHZvaWQpOworIAor QEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBJbml0X29zc2xfeDUwOXJlcSh2b2lkKTsKKyAgKi8KKyBl eHRlcm4gVkFMVUUgY1g1MDlSZXY7CisgCistVkFMVUUgb3NzbF94NTA5cmV2b2tlZF9uZXcoWDUw OV9SRVZPS0VEICopOworK1ZBTFVFIG9zc2xfeDUwOXJldm9rZWRfbmV3KGNvbnN0IFg1MDlfUkVW T0tFRCAqKTsKKyBYNTA5X1JFVk9LRUQgKkR1cFg1MDlSZXZva2VkUHRyKFZBTFVFKTsKKyB2b2lk IEluaXRfb3NzbF94NTA5cmV2b2tlZCh2b2lkKTsKKyAKK2RpZmYgLS1naXQgYS9leHQvb3BlbnNz bC9vc3NsX3g1MDlhdHRyLmMgYi9leHQvb3BlbnNzbC9vc3NsX3g1MDlhdHRyLmMKK2luZGV4IDQ3 NjllNTZlMWU4NTAxLi5iMDc3M2U3YTdkY2EyOCAxMDA2NDQKKy0tLSBhL2V4dC9vcGVuc3NsL29z c2xfeDUwOWF0dHIuYworKysrIGIvZXh0L29wZW5zc2wvb3NzbF94NTA5YXR0ci5jCitAQCAtNDgs MTMgKzQ4LDE0IEBAIHN0YXRpYyBjb25zdCByYl9kYXRhX3R5cGVfdCBvc3NsX3g1MDlhdHRyX3R5 cGUgPSB7CisgICogUHVibGljCisgICovCisgVkFMVUUKKy1vc3NsX3g1MDlhdHRyX25ldyhYNTA5 X0FUVFJJQlVURSAqYXR0cikKKytvc3NsX3g1MDlhdHRyX25ldyhjb25zdCBYNTA5X0FUVFJJQlVU RSAqYXR0cikKKyB7CisgICAgIFg1MDlfQVRUUklCVVRFICpuZXc7CisgICAgIFZBTFVFIG9iajsK KyAKKyAgICAgb2JqID0gTmV3WDUwOUF0dHIoY1g1MDlBdHRyKTsKKy0gICAgbmV3ID0gWDUwOV9B VFRSSUJVVEVfZHVwKGF0dHIpOworKyAgICAvKiBPcGVuU1NMIDEuMS4xIHRha2VzIGEgbm9uLWNv bnN0IHBvaW50ZXIgKi8KKysgICAgbmV3ID0gWDUwOV9BVFRSSUJVVEVfZHVwKChYNTA5X0FUVFJJ QlVURSAqKWF0dHIpOworICAgICBpZiAoIW5ldykKKyAgICAgICAgIG9zc2xfcmFpc2UoZVg1MDlB dHRyRXJyb3IsICJYNTA5X0FUVFJJQlVURV9kdXAiKTsKKyAgICAgU2V0WDUwOUF0dHIob2JqLCBu ZXcpOworQEAgLTE5Niw3ICsxOTcsNyBAQCBvc3NsX3g1MDlhdHRyX3NldF92YWx1ZShWQUxVRSBz ZWxmLCBWQUxVRSB2YWx1ZSkKKyAgICAgICAgIG9zc2xfcmFpc2UoZVg1MDlBdHRyRXJyb3IsICJh dHRyaWJ1dGUgdmFsdWUgbXVzdCBiZSBBU04xOjpTZXQiKTsKKyAKKyAgICAgaWYgKFg1MDlfQVRU UklCVVRFX2NvdW50KGF0dHIpKSB7IC8qIHBvcHVsYXRlZCwgcmVzZXQgZmlyc3QgKi8KKy0gICAg ICAgIEFTTjFfT0JKRUNUICpvYmogPSBYNTA5X0FUVFJJQlVURV9nZXQwX29iamVjdChhdHRyKTsK KysgICAgICAgIGNvbnN0IEFTTjFfT0JKRUNUICpvYmogPSBYNTA5X0FUVFJJQlVURV9nZXQwX29i amVjdChhdHRyKTsKKyAgICAgICAgIFg1MDlfQVRUUklCVVRFICpuZXdfYXR0ciA9IFg1MDlfQVRU UklCVVRFX2NyZWF0ZV9ieV9PQkooTlVMTCwgb2JqLCAwLCBOVUxMLCAtMSk7CisgICAgICAgICBp ZiAoIW5ld19hdHRyKSB7CisgICAgICAgICAgICAgc2tfQVNOMV9UWVBFX3BvcF9mcmVlKHNrLCBB U04xX1RZUEVfZnJlZSk7CitAQCAtMjQwLDcgKzI0MSw3IEBAIG9zc2xfeDUwOWF0dHJfZ2V0X3Zh bHVlKFZBTFVFIHNlbGYpCisgCisgICAgIGNvdW50ID0gWDUwOV9BVFRSSUJVVEVfY291bnQoYXR0 cik7CisgICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKQorLSAgICAgICAgc2tfQVNOMV9U WVBFX3B1c2goc2ssIFg1MDlfQVRUUklCVVRFX2dldDBfdHlwZShhdHRyLCBpKSk7CisrICAgICAg ICBza19BU04xX1RZUEVfcHVzaChzaywgKEFTTjFfVFlQRSAqKVg1MDlfQVRUUklCVVRFX2dldDBf dHlwZShhdHRyLCBpKSk7CisgCisgICAgIGlmICgobGVuID0gaTJkX0FTTjFfU0VUX0FOWShzaywg TlVMTCkpIDw9IDApIHsKKyAgICAgICAgIHNrX0FTTjFfVFlQRV9mcmVlKHNrKTsKK2RpZmYgLS1n aXQgYS9leHQvb3BlbnNzbC9vc3NsX3g1MDljZXJ0LmMgYi9leHQvb3BlbnNzbC9vc3NsX3g1MDlj ZXJ0LmMKK2luZGV4IDk1Njc5YzdkMjRlYTcyLi5kZTI0Njc1OWFiN2FmMyAxMDA2NDQKKy0tLSBh L2V4dC9vcGVuc3NsL29zc2xfeDUwOWNlcnQuYworKysrIGIvZXh0L29wZW5zc2wvb3NzbF94NTA5 Y2VydC5jCitAQCAtNDgsMTMgKzQ4LDE0IEBAIHN0YXRpYyBjb25zdCByYl9kYXRhX3R5cGVfdCBv c3NsX3g1MDlfdHlwZSA9IHsKKyAgKiBQdWJsaWMKKyAgKi8KKyBWQUxVRQorLW9zc2xfeDUwOV9u ZXcoWDUwOSAqeDUwOSkKKytvc3NsX3g1MDlfbmV3KGNvbnN0IFg1MDkgKng1MDkpCisgeworICAg ICBYNTA5ICpuZXc7CisgICAgIFZBTFVFIG9iajsKKyAKKyAgICAgb2JqID0gTmV3WDUwOShjWDUw OUNlcnQpOworLSAgICBuZXcgPSBYNTA5X2R1cCh4NTA5KTsKKysgICAgLyogT3BlblNTTCAxLjEu MSB0YWtlcyBhIG5vbi1jb25zdCBwb2ludGVyICovCisrICAgIG5ldyA9IFg1MDlfZHVwKChYNTA5 ICopeDUwOSk7CisgICAgIGlmICghbmV3KQorICAgICAgICAgb3NzbF9yYWlzZShlWDUwOUNlcnRF cnJvciwgIlg1MDlfZHVwIik7CisgICAgIFNldFg1MDkob2JqLCBuZXcpOworQEAgLTM0NSw3ICsz NDYsNyBAQCBzdGF0aWMgVkFMVUUKKyBvc3NsX3g1MDlfZ2V0X3N1YmplY3QoVkFMVUUgc2VsZikK KyB7CisgICAgIFg1MDkgKng1MDk7CistICAgIFg1MDlfTkFNRSAqbmFtZTsKKysgICAgY29uc3Qg WDUwOV9OQU1FICpuYW1lOworIAorICAgICBHZXRYNTA5KHNlbGYsIHg1MDkpOworICAgICBpZiAo IShuYW1lID0gWDUwOV9nZXRfc3ViamVjdF9uYW1lKHg1MDkpKSkgeyAvKiBOTyBEVVAgLSBkb24n dCBmcmVlISAqLworQEAgLTM4MCw3ICszODEsNyBAQCBzdGF0aWMgVkFMVUUKKyBvc3NsX3g1MDlf Z2V0X2lzc3VlcihWQUxVRSBzZWxmKQorIHsKKyAgICAgWDUwOSAqeDUwOTsKKy0gICAgWDUwOV9O QU1FICpuYW1lOworKyAgICBjb25zdCBYNTA5X05BTUUgKm5hbWU7CisgCisgICAgIEdldFg1MDko c2VsZiwgeDUwOSk7CisgICAgIGlmKCEobmFtZSA9IFg1MDlfZ2V0X2lzc3Vlcl9uYW1lKHg1MDkp KSkgeyAvKiBOTyBEVVAgLSBkb24ndCBmcmVlISAqLworQEAgLTYwMywxNCArNjA0LDEzIEBAIG9z c2xfeDUwOV9nZXRfZXh0ZW5zaW9ucyhWQUxVRSBzZWxmKQorIHsKKyAgICAgWDUwOSAqeDUwOTsK KyAgICAgaW50IGNvdW50LCBpOworLSAgICBYNTA5X0VYVEVOU0lPTiAqZXh0OworICAgICBWQUxV RSBhcnk7CisgCisgICAgIEdldFg1MDkoc2VsZiwgeDUwOSk7CisgICAgIGNvdW50ID0gWDUwOV9n ZXRfZXh0X2NvdW50KHg1MDkpOworICAgICBhcnkgPSByYl9hcnlfbmV3X2NhcGEoY291bnQpOwor ICAgICBmb3IgKGk9MDsgaTxjb3VudDsgaSsrKSB7CistICAgICAgICBleHQgPSBYNTA5X2dldF9l eHQoeDUwOSwgaSk7IC8qIE5PIERVUCAtIGRvbid0IGZyZWUhICovCisrICAgICAgICBjb25zdCBY NTA5X0VYVEVOU0lPTiAqZXh0ID0gWDUwOV9nZXRfZXh0KHg1MDksIGkpOworICAgICAgICAgcmJf YXJ5X3B1c2goYXJ5LCBvc3NsX3g1MDlleHRfbmV3KGV4dCkpOworICAgICB9CisgCitkaWZmIC0t Z2l0IGEvZXh0L29wZW5zc2wvb3NzbF94NTA5Y3JsLmMgYi9leHQvb3BlbnNzbC9vc3NsX3g1MDlj cmwuYworaW5kZXggYTIyMTQyOWMzNDdkNWUuLjliNTliZGE5ZTJhOGFkIDEwMDY0NAorLS0tIGEv ZXh0L29wZW5zc2wvb3NzbF94NTA5Y3JsLmMKKysrKyBiL2V4dC9vcGVuc3NsL29zc2xfeDUwOWNy bC5jCitAQCAtNTgsMTMgKzU4LDE0IEBAIEdldFg1MDlDUkxQdHIoVkFMVUUgb2JqKQorIH0KKyAK KyBWQUxVRQorLW9zc2xfeDUwOWNybF9uZXcoWDUwOV9DUkwgKmNybCkKKytvc3NsX3g1MDljcmxf bmV3KGNvbnN0IFg1MDlfQ1JMICpjcmwpCisgeworICAgICBYNTA5X0NSTCAqdG1wOworICAgICBW QUxVRSBvYmo7CisgCisgICAgIG9iaiA9IE5ld1g1MDlDUkwoY1g1MDlDUkwpOworLSAgICB0bXAg PSBYNTA5X0NSTF9kdXAoY3JsKTsKKysgICAgLyogT3BlblNTTCAxLjEuMSB0YWtlcyBhIG5vbi1j b25zdCBwb2ludGVyICovCisrICAgIHRtcCA9IFg1MDlfQ1JMX2R1cCgoWDUwOV9DUkwgKiljcmwp OworICAgICBpZiAoIXRtcCkKKyAgICAgICAgIG9zc2xfcmFpc2UoZVg1MDlDUkxFcnJvciwgIlg1 MDlfQ1JMX2R1cCIpOworICAgICBTZXRYNTA5Q1JMKG9iaiwgdG1wKTsKK0BAIC0yODksNyArMjkw LDcgQEAgb3NzbF94NTA5Y3JsX2dldF9yZXZva2VkKFZBTFVFIHNlbGYpCisgICAgIG51bSA9IHNr X1g1MDlfUkVWT0tFRF9udW0oc2spOworICAgICBhcnkgPSByYl9hcnlfbmV3X2NhcGEobnVtKTsK KyAgICAgZm9yKGk9MDsgaTxudW07IGkrKykgeworLSAgICAgICAgWDUwOV9SRVZPS0VEICpyZXYg PSBza19YNTA5X1JFVk9LRURfdmFsdWUoc2ssIGkpOworKyAgICAgICAgY29uc3QgWDUwOV9SRVZP S0VEICpyZXYgPSBza19YNTA5X1JFVk9LRURfdmFsdWUoc2ssIGkpOworICAgICAgICAgcmJfYXJ5 X3B1c2goYXJ5LCBvc3NsX3g1MDlyZXZva2VkX25ldyhyZXYpKTsKKyAgICAgfQorIAorQEAgLTQ0 MywxNCArNDQ0LDEzIEBAIG9zc2xfeDUwOWNybF9nZXRfZXh0ZW5zaW9ucyhWQUxVRSBzZWxmKQor IHsKKyAgICAgWDUwOV9DUkwgKmNybDsKKyAgICAgaW50IGNvdW50LCBpOworLSAgICBYNTA5X0VY VEVOU0lPTiAqZXh0OworICAgICBWQUxVRSBhcnk7CisgCisgICAgIEdldFg1MDlDUkwoc2VsZiwg Y3JsKTsKKyAgICAgY291bnQgPSBYNTA5X0NSTF9nZXRfZXh0X2NvdW50KGNybCk7CisgICAgIGFy eSA9IHJiX2FyeV9uZXdfY2FwYShjb3VudCk7CisgICAgIGZvciAoaT0wOyBpPGNvdW50OyBpKysp IHsKKy0gICAgICAgIGV4dCA9IFg1MDlfQ1JMX2dldF9leHQoY3JsLCBpKTsgLyogTk8gRFVQIC0g ZG9uJ3QgZnJlZSEgKi8KKysgICAgICAgIGNvbnN0IFg1MDlfRVhURU5TSU9OICpleHQgPSBYNTA5 X0NSTF9nZXRfZXh0KGNybCwgaSk7CisgICAgICAgICByYl9hcnlfcHVzaChhcnksIG9zc2xfeDUw OWV4dF9uZXcoZXh0KSk7CisgICAgIH0KKyAKK2RpZmYgLS1naXQgYS9leHQvb3BlbnNzbC9vc3Ns X3g1MDlleHQuYyBiL2V4dC9vcGVuc3NsL29zc2xfeDUwOWV4dC5jCitpbmRleCBlZjY2ZWNjM2Zl ODM5MC4uMWZlNzI3ZDNmMWQyZWEgMTAwNjQ0CistLS0gYS9leHQvb3BlbnNzbC9vc3NsX3g1MDll eHQuYworKysrIGIvZXh0L29wZW5zc2wvb3NzbF94NTA5ZXh0LmMKK0BAIC02MiwxMyArNjIsMTQg QEAgc3RhdGljIGNvbnN0IHJiX2RhdGFfdHlwZV90IG9zc2xfeDUwOWV4dF90eXBlID0geworICAq IFB1YmxpYworICAqLworIFZBTFVFCistb3NzbF94NTA5ZXh0X25ldyhYNTA5X0VYVEVOU0lPTiAq ZXh0KQorK29zc2xfeDUwOWV4dF9uZXcoY29uc3QgWDUwOV9FWFRFTlNJT04gKmV4dCkKKyB7Cisg ICAgIFg1MDlfRVhURU5TSU9OICpuZXc7CisgICAgIFZBTFVFIG9iajsKKyAKKyAgICAgb2JqID0g TmV3WDUwOUV4dChjWDUwOUV4dCk7CistICAgIG5ldyA9IFg1MDlfRVhURU5TSU9OX2R1cChleHQp OworKyAgICAvKiBPcGVuU1NMIDEuMS4xIHRha2VzIGEgbm9uLWNvbnN0IHBvaW50ZXIgKi8KKysg ICAgbmV3ID0gWDUwOV9FWFRFTlNJT05fZHVwKChYNTA5X0VYVEVOU0lPTiAqKWV4dCk7CisgICAg IGlmICghbmV3KQorICAgICAgICAgb3NzbF9yYWlzZShlWDUwOUV4dEVycm9yLCAiWDUwOV9FWFRF TlNJT05fZHVwIik7CisgICAgIFNldFg1MDlFeHQob2JqLCBuZXcpOworQEAgLTMzOCwxMiArMzM5 LDIwIEBAIG9zc2xfeDUwOWV4dF9zZXRfdmFsdWUoVkFMVUUgc2VsZiwgVkFMVUUgZGF0YSkKKyAg ICAgR2V0WDUwOUV4dChzZWxmLCBleHQpOworICAgICBkYXRhID0gb3NzbF90b19kZXJfaWZfcG9z c2libGUoZGF0YSk7CisgICAgIFN0cmluZ1ZhbHVlKGRhdGEpOworLSAgICBhc24xcyA9IFg1MDlf RVhURU5TSU9OX2dldF9kYXRhKGV4dCk7CisgCisrICAgIGFzbjFzID0gQVNOMV9PQ1RFVF9TVFJJ TkdfbmV3KCk7CisrICAgIGlmICghYXNuMXMpCisrICAgICAgICBvc3NsX3JhaXNlKGVYNTA5RXh0 RXJyb3IsICJBU04xX09DVEVUX1NUUklOR19uZXciKTsKKyAgICAgaWYgKCFBU04xX09DVEVUX1NU UklOR19zZXQoYXNuMXMsICh1bnNpZ25lZCBjaGFyICopUlNUUklOR19QVFIoZGF0YSksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJTVFJJTkdfTEVOSU5UKGRhdGEpKSkgeworKyAg ICAgICAgQVNOMV9PQ1RFVF9TVFJJTkdfZnJlZShhc24xcyk7CisgICAgICAgICBvc3NsX3JhaXNl KGVYNTA5RXh0RXJyb3IsICJBU04xX09DVEVUX1NUUklOR19zZXQiKTsKKyAgICAgfQorKyAgICBp ZiAoIVg1MDlfRVhURU5TSU9OX3NldF9kYXRhKGV4dCwgYXNuMXMpKSB7CisrICAgICAgICBBU04x X09DVEVUX1NUUklOR19mcmVlKGFzbjFzKTsKKysgICAgICAgIG9zc2xfcmFpc2UoZVg1MDlFeHRF cnJvciwgIlg1MDlfRVhURU5TSU9OX3NldF9kYXRhIik7CisrICAgIH0KKysgICAgQVNOMV9PQ1RF VF9TVFJJTkdfZnJlZShhc24xcyk7CisgCisgICAgIHJldHVybiBkYXRhOworIH0KK0BAIC0zODYs NyArMzk1LDcgQEAgb3NzbF94NTA5ZXh0X2dldF92YWx1ZShWQUxVRSBvYmopCisgICAgIGlmICgh KG91dCA9IEJJT19uZXcoQklPX3NfbWVtKCkpKSkKKyAgICAgICAgIG9zc2xfcmFpc2UoZVg1MDlF eHRFcnJvciwgTlVMTCk7CisgICAgIGlmICghWDUwOVYzX0VYVF9wcmludChvdXQsIGV4dCwgMCwg MCkpCistICAgICAgICBBU04xX1NUUklOR19wcmludChvdXQsIChBU04xX1NUUklORyAqKVg1MDlf RVhURU5TSU9OX2dldF9kYXRhKGV4dCkpOworKyAgICAgICAgQVNOMV9TVFJJTkdfcHJpbnQob3V0 LCBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpKTsKKyAgICAgcmV0ID0gb3NzbF9tZW1iaW8y c3RyKG91dCk7CisgCisgICAgIHJldHVybiByZXQ7CitAQCAtMzk2LDcgKzQwNSw3IEBAIHN0YXRp YyBWQUxVRQorIG9zc2xfeDUwOWV4dF9nZXRfdmFsdWVfZGVyKFZBTFVFIG9iaikKKyB7CisgICAg IFg1MDlfRVhURU5TSU9OICpleHQ7CistICAgIEFTTjFfT0NURVRfU1RSSU5HICp2YWx1ZTsKKysg ICAgY29uc3QgQVNOMV9PQ1RFVF9TVFJJTkcgKnZhbHVlOworIAorICAgICBHZXRYNTA5RXh0KG9i aiwgZXh0KTsKKyAgICAgaWYgKCh2YWx1ZSA9IFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCkp ID09IE5VTEwpCitkaWZmIC0tZ2l0IGEvZXh0L29wZW5zc2wvb3NzbF94NTA5bmFtZS5jIGIvZXh0 L29wZW5zc2wvb3NzbF94NTA5bmFtZS5jCitpbmRleCA1YjNjM2Y3MjYxZGMyNi4uMmI2NmE0YTA5 N2MyOWUgMTAwNjQ0CistLS0gYS9leHQvb3BlbnNzbC9vc3NsX3g1MDluYW1lLmMKKysrKyBiL2V4 dC9vcGVuc3NsL29zc2xfeDUwOW5hbWUuYworQEAgLTUzLDEzICs1MywxNCBAQCBzdGF0aWMgY29u c3QgcmJfZGF0YV90eXBlX3Qgb3NzbF94NTA5bmFtZV90eXBlID0geworICAqIFB1YmxpYworICAq LworIFZBTFVFCistb3NzbF94NTA5bmFtZV9uZXcoWDUwOV9OQU1FICpuYW1lKQorK29zc2xfeDUw OW5hbWVfbmV3KGNvbnN0IFg1MDlfTkFNRSAqbmFtZSkKKyB7CisgICAgIFg1MDlfTkFNRSAqbmV3 OworICAgICBWQUxVRSBvYmo7CisgCisgICAgIG9iaiA9IE5ld1g1MDlOYW1lKGNYNTA5TmFtZSk7 CistICAgIG5ldyA9IFg1MDlfTkFNRV9kdXAobmFtZSk7CisrICAgIC8qIE9wZW5TU0wgMS4xLjEg dGFrZXMgYSBub24tY29uc3QgcG9pbnRlciAqLworKyAgICBuZXcgPSBYNTA5X05BTUVfZHVwKChY NTA5X05BTUUgKiluYW1lKTsKKyAgICAgaWYgKCFuZXcpCisgICAgICAgICBvc3NsX3JhaXNlKGVY NTA5TmFtZUVycm9yLCAiWDUwOV9OQU1FX2R1cCIpOworICAgICBTZXRYNTA5TmFtZShvYmosIG5l dyk7CitkaWZmIC0tZ2l0IGEvZXh0L29wZW5zc2wvb3NzbF94NTA5cmVxLmMgYi9leHQvb3BlbnNz bC9vc3NsX3g1MDlyZXEuYworaW5kZXggNDMzY2M0NjFhOTkzM2IuLmFkNWRkMDgwMzMyMDM1IDEw MDY0NAorLS0tIGEvZXh0L29wZW5zc2wvb3NzbF94NTA5cmVxLmMKKysrKyBiL2V4dC9vcGVuc3Ns L29zc2xfeDUwOXJlcS5jCitAQCAtMjMxLDcgKzIzMSw3IEBAIHN0YXRpYyBWQUxVRQorIG9zc2xf eDUwOXJlcV9nZXRfc3ViamVjdChWQUxVRSBzZWxmKQorIHsKKyAgICAgWDUwOV9SRVEgKnJlcTsK Ky0gICAgWDUwOV9OQU1FICpuYW1lOworKyAgICBjb25zdCBYNTA5X05BTUUgKm5hbWU7CisgCisg ICAgIEdldFg1MDlSZXEoc2VsZiwgcmVxKTsKKyAgICAgaWYgKCEobmFtZSA9IFg1MDlfUkVRX2dl dF9zdWJqZWN0X25hbWUocmVxKSkpIHsgLyogTk8gRFVQIC0gZG9uJ3QgZnJlZSAqLworQEAgLTM1 MSw3ICszNTEsNyBAQCBvc3NsX3g1MDlyZXFfZ2V0X2F0dHJpYnV0ZXMoVkFMVUUgc2VsZikKKyB7 CisgICAgIFg1MDlfUkVRICpyZXE7CisgICAgIGludCBjb3VudCwgaTsKKy0gICAgWDUwOV9BVFRS SUJVVEUgKmF0dHI7CisrICAgIGNvbnN0IFg1MDlfQVRUUklCVVRFICphdHRyOworICAgICBWQUxV RSBhcnk7CisgCisgICAgIEdldFg1MDlSZXEoc2VsZiwgcmVxKTsKK2RpZmYgLS1naXQgYS9leHQv b3BlbnNzbC9vc3NsX3g1MDlyZXZva2VkLmMgYi9leHQvb3BlbnNzbC9vc3NsX3g1MDlyZXZva2Vk LmMKK2luZGV4IGI4OGMzOTBjNzI2NDFlLi4wMTUxOTYxZTlmNmI4NSAxMDA2NDQKKy0tLSBhL2V4 dC9vcGVuc3NsL29zc2xfeDUwOXJldm9rZWQuYworKysrIGIvZXh0L29wZW5zc2wvb3NzbF94NTA5 cmV2b2tlZC5jCitAQCAtNDgsMTMgKzQ4LDE0IEBAIHN0YXRpYyBjb25zdCByYl9kYXRhX3R5cGVf dCBvc3NsX3g1MDlyZXZfdHlwZSA9IHsKKyAgKiBQVUJMSUMKKyAgKi8KKyBWQUxVRQorLW9zc2xf eDUwOXJldm9rZWRfbmV3KFg1MDlfUkVWT0tFRCAqcmV2KQorK29zc2xfeDUwOXJldm9rZWRfbmV3 KGNvbnN0IFg1MDlfUkVWT0tFRCAqcmV2KQorIHsKKyAgICAgWDUwOV9SRVZPS0VEICpuZXc7Cisg ICAgIFZBTFVFIG9iajsKKyAKKyAgICAgb2JqID0gTmV3WDUwOVJldihjWDUwOVJldik7CistICAg IG5ldyA9IFg1MDlfUkVWT0tFRF9kdXAocmV2KTsKKysgICAgLyogT3BlblNTTCAxLjEuMSB0YWtl cyBhIG5vbi1jb25zdCBwb2ludGVyICovCisrICAgIG5ldyA9IFg1MDlfUkVWT0tFRF9kdXAoKFg1 MDlfUkVWT0tFRCAqKXJldik7CisgICAgIGlmICghbmV3KQorICAgICAgICAgb3NzbF9yYWlzZShl WDUwOVJldkVycm9yLCAiWDUwOV9SRVZPS0VEX2R1cCIpOworICAgICBTZXRYNTA5UmV2KG9iaiwg bmV3KTsKK0BAIC0xODUsNyArMTg2LDcgQEAgb3NzbF94NTA5cmV2b2tlZF9nZXRfZXh0ZW5zaW9u cyhWQUxVRSBzZWxmKQorIHsKKyAgICAgWDUwOV9SRVZPS0VEICpyZXY7CisgICAgIGludCBjb3Vu dCwgaTsKKy0gICAgWDUwOV9FWFRFTlNJT04gKmV4dDsKKysgICAgY29uc3QgWDUwOV9FWFRFTlNJ T04gKmV4dDsKKyAgICAgVkFMVUUgYXJ5OworIAorICAgICBHZXRYNTA5UmV2KHNlbGYsIHJldik7 CitkaWZmIC0tZ2l0IGEvZXh0L29wZW5zc2wvb3NzbF94NTA5c3RvcmUuYyBiL2V4dC9vcGVuc3Ns L29zc2xfeDUwOXN0b3JlLmMKK2luZGV4IGJlMTQ1OGNlYzVkNzIxLi40MDhlMThjNmM0MThmZiAx MDA2NDQKKy0tLSBhL2V4dC9vcGVuc3NsL29zc2xfeDUwOXN0b3JlLmMKKysrKyBiL2V4dC9vcGVu c3NsL29zc2xfeDUwOXN0b3JlLmMKK0BAIC01MTIsMTAgKzUxMiw4IEBAIHN0YXRpYyB2b2lkCisg b3NzbF94NTA5c3RjdHhfZnJlZSh2b2lkICpwdHIpCisgeworICAgICBYNTA5X1NUT1JFX0NUWCAq Y3R4ID0gcHRyOworLSAgICBpZiAoWDUwOV9TVE9SRV9DVFhfZ2V0MF91bnRydXN0ZWQoY3R4KSkK Ky0gICAgICAgIHNrX1g1MDlfcG9wX2ZyZWUoWDUwOV9TVE9SRV9DVFhfZ2V0MF91bnRydXN0ZWQo Y3R4KSwgWDUwOV9mcmVlKTsKKy0gICAgaWYgKFg1MDlfU1RPUkVfQ1RYX2dldDBfY2VydChjdHgp KQorLSAgICAgICAgWDUwOV9mcmVlKFg1MDlfU1RPUkVfQ1RYX2dldDBfY2VydChjdHgpKTsKKysg ICAgc2tfWDUwOV9wb3BfZnJlZShYNTA5X1NUT1JFX0NUWF9nZXQwX3VudHJ1c3RlZChjdHgpLCBY NTA5X2ZyZWUpOworKyAgICBYNTA5X2ZyZWUoKFg1MDkgKilYNTA5X1NUT1JFX0NUWF9nZXQwX2Nl cnQoY3R4KSk7CisgICAgIFg1MDlfU1RPUkVfQ1RYX2ZyZWUoY3R4KTsKKyB9CisgCitAQCAtNzM2 LDcgKzczNCw3IEBAIHN0YXRpYyBWQUxVRQorIG9zc2xfeDUwOXN0Y3R4X2dldF9jdXJyX2NlcnQo VkFMVUUgc2VsZikKKyB7CisgICAgIFg1MDlfU1RPUkVfQ1RYICpjdHg7CistICAgIFg1MDkgKng1 MDk7CisrICAgIGNvbnN0IFg1MDkgKng1MDk7CisgCisgICAgIEdldFg1MDlTdEN0eChzZWxmLCBj dHgpOworICAgICB4NTA5ID0gWDUwOV9TVE9SRV9DVFhfZ2V0X2N1cnJlbnRfY2VydChjdHgpOwor QEAgLTc1OCw3ICs3NTYsNyBAQCBzdGF0aWMgVkFMVUUKKyBvc3NsX3g1MDlzdGN0eF9nZXRfY3Vy cl9jcmwoVkFMVUUgc2VsZikKKyB7CisgICAgIFg1MDlfU1RPUkVfQ1RYICpjdHg7CistICAgIFg1 MDlfQ1JMICpjcmw7CisrICAgIGNvbnN0IFg1MDlfQ1JMICpjcmw7CisgCisgICAgIEdldFg1MDlT dEN0eChzZWxmLCBjdHgpOworICAgICBjcmwgPSBYNTA5X1NUT1JFX0NUWF9nZXQwX2N1cnJlbnRf Y3JsKGN0eCk7CitkaWZmIC0tZ2l0IGEvdGVzdC9vcGVuc3NsL3Rlc3Rfb3NzbC5yYiBiL3Rlc3Qv b3BlbnNzbC90ZXN0X29zc2wucmIKK2luZGV4IDUxMjYyOTg1ZjU2NTVlLi4xYjliZGU1M2VmNzJk MyAxMDA2NDQKKy0tLSBhL3Rlc3Qvb3BlbnNzbC90ZXN0X29zc2wucmIKKysrKyBiL3Rlc3Qvb3Bl bnNzbC90ZXN0X29zc2wucmIKK0BAIC0yNCw2ICsyNCwxNiBAQCBkZWYgdGVzdF9maXhlZF9sZW5n dGhfc2VjdXJlX2NvbXBhcmUKKyAgICAgYXNzZXJ0X3JhaXNlKEFyZ3VtZW50RXJyb3IpIHsgT3Bl blNTTC5maXhlZF9sZW5ndGhfc2VjdXJlX2NvbXBhcmUoImFhYSIsICJiYmJiIikgfQorICAgZW5k CisgCisrICBkZWYgdGVzdF9maXhlZF9sZW5ndGhfc2VjdXJlX2NvbXBhcmVfdWFmCisrICAgIHN0 cjEgPSAiQSIgKiAxMDAwMDAwCisrICAgIGV2aWxfb2JqID0gT2JqZWN0Lm5ldworKyAgICBldmls X29iai5kZWZpbmVfc2luZ2xldG9uX21ldGhvZCg6dG9fc3RyKSBkbworKyAgICAgIHN0cjEucmVw bGFjZSgiQyIgKiAxMDAwMDAwKQorKyAgICAgICJCIiAqIDEwMDAwMDAKKysgICAgZW5kCisrICAg IGFzc2VydF9mYWxzZShPcGVuU1NMLmZpeGVkX2xlbmd0aF9zZWN1cmVfY29tcGFyZShzdHIxLCBl dmlsX29iaikpCisrICBlbmQKKysKKyAgIGRlZiB0ZXN0X3NlY3VyZV9jb21wYXJlCisgICAgIGFz c2VydF9mYWxzZShPcGVuU1NMLnNlY3VyZV9jb21wYXJlKCJhYWEiLCAiYSIpKQorICAgICBhc3Nl cnRfZmFsc2UoT3BlblNTTC5zZWN1cmVfY29tcGFyZSgiYWFhIiwgImFhIikpCitkaWZmIC0tZ2l0 IGEvdGVzdC9vcGVuc3NsL3Rlc3RfcGtleV9yc2EucmIgYi90ZXN0L29wZW5zc2wvdGVzdF9wa2V5 X3JzYS5yYgoraW5kZXggODZmNTFjZjQzODVhMDEuLjE3MTZhZWYzODA3YWY5IDEwMDY0NAorLS0t IGEvdGVzdC9vcGVuc3NsL3Rlc3RfcGtleV9yc2EucmIKKysrKyBiL3Rlc3Qvb3BlbnNzbC90ZXN0 X3BrZXlfcnNhLnJiCitAQCAtNDYyLDU0ICs0NjIsNTQgQEAgZGVmIHRlc3RfcHJpdmF0ZV9lbmNv ZGluZworIAorICAgZGVmIHRlc3RfcHJpdmF0ZV9lbmNvZGluZ19lbmNyeXB0ZWQKKyAgICAgcnNh ID0gRml4dHVyZXMucGtleSgicnNhMjA0OCIpCistICAgIGVuY29kZWQgPSByc2EucHJpdmF0ZV90 b19kZXIoImFlcy0xMjgtY2JjIiwgImFiY2RlZiIpCisrICAgIGVuY29kZWQgPSByc2EucHJpdmF0 ZV90b19kZXIoImFlcy0xMjgtY2JjIiwgImFiY2RlZmdoIikKKyAgICAgYXNuMSA9IE9wZW5TU0w6 OkFTTjEuZGVjb2RlKGVuY29kZWQpICMgUEtDUyAjOCBFbmNyeXB0ZWRQcml2YXRlS2V5SW5mbwor ICAgICBhc3NlcnRfa2luZF9vZiBPcGVuU1NMOjpBU04xOjpTZXF1ZW5jZSwgYXNuMQorICAgICBh c3NlcnRfZXF1YWwgMiwgYXNuMS52YWx1ZS5zaXplCisgICAgIGFzc2VydF9ub3RfZXF1YWwgcnNh LnByaXZhdGVfdG9fZGVyLCBlbmNvZGVkCistICAgIGFzc2VydF9zYW1lX3JzYSByc2EsIE9wZW5T U0w6OlBLZXkucmVhZChlbmNvZGVkLCAiYWJjZGVmIikKKy0gICAgYXNzZXJ0X3NhbWVfcnNhIHJz YSwgT3BlblNTTDo6UEtleS5yZWFkKGVuY29kZWQpIHsgImFiY2RlZiIgfQorKyAgICBhc3NlcnRf c2FtZV9yc2EgcnNhLCBPcGVuU1NMOjpQS2V5LnJlYWQoZW5jb2RlZCwgImFiY2RlZmdoIikKKysg ICAgYXNzZXJ0X3NhbWVfcnNhIHJzYSwgT3BlblNTTDo6UEtleS5yZWFkKGVuY29kZWQpIHsgImFi Y2RlZmdoIiB9CisgICAgIGFzc2VydF9yYWlzZShPcGVuU1NMOjpQS2V5OjpQS2V5RXJyb3IpIHsg T3BlblNTTDo6UEtleS5yZWFkKGVuY29kZWQsICJhYmN4eXoiKSB9CisgCistICAgIGVuY29kZWQg PSByc2EucHJpdmF0ZV90b19wZW0oImFlcy0xMjgtY2JjIiwgImFiY2RlZiIpCisrICAgIGVuY29k ZWQgPSByc2EucHJpdmF0ZV90b19wZW0oImFlcy0xMjgtY2JjIiwgImFiY2RlZmdoIikKKyAgICAg YXNzZXJ0X21hdGNoICgvQkVHSU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLyksIGVuY29kZWQubGlu ZXNbMF0KKy0gICAgYXNzZXJ0X3NhbWVfcnNhIHJzYSwgT3BlblNTTDo6UEtleS5yZWFkKGVuY29k ZWQsICJhYmNkZWYiKQorKyAgICBhc3NlcnRfc2FtZV9yc2EgcnNhLCBPcGVuU1NMOjpQS2V5LnJl YWQoZW5jb2RlZCwgImFiY2RlZmdoIikKKyAKKyAgICAgIyBVc2Ugb3BlbnNzbCBpbnN0ZWFkIG9m IGNlcnR0b29sIGR1ZSB0byBodHRwczovL2dpdGxhYi5jb20vZ251dGxzL2dudXRscy8tL2lzc3Vl cy8xNjMyCistICAgICMgb3BlbnNzbCBwa2NzOCAtaW4gdGVzdC9vcGVuc3NsL2ZpeHR1cmVzL3Br ZXkvcnNhMjA0OC5wZW0gLXRvcGs4IC12MiBhZXMtMTI4LWNiYyAtcGFzc291dCBwYXNzOmFiY2Rl ZgorKyAgICAjIG9wZW5zc2wgcGtjczggLWluIHRlc3Qvb3BlbnNzbC9maXh0dXJlcy9wa2V5L3Jz YTIwNDgucGVtIC10b3BrOCAtdjIgYWVzLTEyOC1jYmMgLXBhc3NvdXQgcGFzczphYmNkZWZnaAor ICAgICBwZW0gPSA8PH5FT0YKKy0gICAgLS0tLS1CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVkt LS0tLQorLSAgICBNSUlGTFRCWEJna3Foa2lHOXcwQkJRMHdTakFwQmdrcWhraUc5dzBCQlF3d0hB UUlheTVWOENEUWk1b0NBZ2dBCistICAgIE1Bd0dDQ3FHU0liM0RRSUpCUUF3SFFZSllJWklBV1VE QkFFQ0JCQjZleWFnY2JzdmRRbE0xa1BjSDdraUJJSUUKKy0gICAgME5nMWFwSXlvUEFaNEJmQzRr TU5lU21lQXYzWHNweHFZaTN1V3pYaU55VGNvRTYzOTBzd3J3TTZXdmRwWHZMSQorLSAgICAvbi9W MDZrcnhQWjlYNGZCRzJrTFV6WHQ1ZjA5bEV2bVFVMUhXMXdKR1U1U3EzYk5lWEJybEpGNER6SkU0 V1dkCistICAgIHdoVlZ2Tk1tNDRnaGR6Ti9qR1N3M3orNmQ3MTdOK3dhYTd2cnBCRHNIamhzUE53 eHB5elV2Y0ZQRnlzVGF6eHgKKy0gICAga04vZHppSUJGNlNSS2k2dzhWYUpFTVE4Y3pHdTVUM2pP YzJlLzFwMy9BWWhITFBTNE5IaExSNU9VaDBUS3FMSworLSAgICB0QU5BcUk5WXFDQWpocWNZQ21O M21NUVhZNTJWZk9xRzlobFgxeDlaUXlxaUg3bDEwMkVXYlBxb3VrNmJDQkxRCistICAgIHdIZXBQ ZzR1Szk5V3NkaDY1cUVyeU5uWFE1Wm1PNmFHYjZUM1RGRU5DYU5LbWk4TmgrLzVkcjdKN1lmaEl3 cG8KKy0gICAgRnFIdmswaHJaOHIzRVFscjgvdGQwWWIxL0lLemVRMzQ2Mzh1WGY5VXhLN0M2bytp bHNtSkRSNFBISlVmWkwyMworLSAgICBZYjlxV0owR0V6ZDVBTXNJN3g2S3VVeFN1SDluS25pdjVU enl0eTNYbWI0RndYVXlBRFdFMTljVnVhVCtIckZ6CistICAgIEdyYUtuQTNVWGJFZ1dBVTQ4L2w0 SzJIY0FIeUhERDJLYnA4aytvMXpVa0gwZldVZGZFNk9VR3R4MTlGdjQ0SmgKKy0gICAgQjd4RG5n SzhLNDhDNm5yajA2L0RTWWZYbGIyWDdXUWlhcGVHNGp0NlU1N3RMSDJYQWpIQ2t2dTBJQlorLy8r UAorLSAgICB5SVdkdUVIUTN3OEZCUmNJc1ROSm81Q2prR2s1ODBUVlFCL09CTFdmWDQ4QXkzb0Y5 emdub21ESWxWamw5RDBuCistICAgIGxLeHcvS01DTGt2Qjc4clVlR2JyMUt3ajM2RmhHcFRCdzNG Z2NZR2E1b1dGWlRsY09nTVRYTHFsYmI5Sm5EbEEKKy0gICAgWnM3VHUwV1R5T1RWL0RuZTluRW0z OUR6dTZ3Um9qaUlwbXlnVEQ0Rkk3cm1PeTNDWU52TDNYUHY3WFFqMGhueQorLSAgICBFZS9mTHh1 Z1lsUW53UFpTcU9WRVFZMkhzRzdBbUVIUnN2eTRiSVdJR3QreXpBUFppeHQ5TVVkSmg5MXR0UnQ3 CistICAgIFFBLzhKMXBBc0dxRXVRcEY2VVVJTlpvcDNKN3R3ZmhPNHpXWU4vTk5RNTJlV05YMktM ZmpmR1JocnZhdHptWjAKKy0gICAgQnVDc0NJOWh3RWVFNlBUbGhiWDFSczE3N01yRGMzdmxxejJW M1BvME9yRmpYQXlnOURSL09DNGlLNXdPRzJaRAorLSAgICA3U3RWU1A4Ynp3UVhzejNmSjBhcmRL WGduVTJZREFQNlZ5a2pndCtuRkkwOUhWL1MyZmFPYzJnL1VLNFkya2hsCistICAgIEo5M3UvR0hN ei9LcjNiS1dHWTEvNm5QZElkRmhlUWpzaU5oZDVnSTR0V2lrMkIzUXdVOW1FVFRvWjJMU3ZESFUK Ky0gICAgallDeXM1NzZ4SkxrZE1NNm5KZHE3Mno0dENvRVM5SXh5SFZzNHVMakhLSW8vWnRLcis4 eERvOElMNGF4M1U4KworLSAgICBOTWhzL2x3UmVIbVBHYWhtMWZ1OXpMUmJOQ1ZMN2UwenJPcWJq dktjU0VmdE9icFYvTExjUFlYdEVtK2xaY2NrCistICAgIC9QTXc0OUhTRTM2NGFuS0VYQ0gxY3lW V0p3ZFpScEZVSHZScExJcnBIcnU3L2N0aGhpRU1kTGdLMS94OHNMb2IKKy0gICAgRGl5aWVMeEgx RFBlWFQ0WCt6OTRFUjRJdVBWT2NWNUFYYy9vbWdoaXNwRVg2RE5Vbm41akM0ZTNXeWFialVidwor LSAgICBNdU85bFZIOVdpMi95bkV4Q3FWbVFrZGJUWHVMd2puaTFmSjI3UTV6YjBhQ21oTzhlcTZQ ODY5TkNqaEp1aVVqCistICAgIE5JOVh0R0xQNTBZVldFMGtMOEtFSnFueUZ1ZGt5OEtoems0L2R5 aXhRRnFpbjVHZlQ0dmV0ckx1bkdIeTdsUkIKKy0gICAgM0xwbkZycE1PcisweHIxUlcxazl2bG1q UnNKU2lvakpmUmVZTzdnSDNCNXN3aXd3MmF6b2dvTCs0amhGMUp4aAorLSAgICBPWUxXZGtLaFAy alNWR3F0SUR0bnkwTzRsQm0yK2hMcFdqaUkwbUpRN3dkQQorLSAgICAtLS0tLUVORCBFTkNSWVBU RUQgUFJJVkFURSBLRVktLS0tLQorKy0tLS0tQkVHSU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0t LS0KKytNSUlGTlRCZkJna3Foa2lHOXcwQkJRMHdVakF4QmdrcWhraUc5dzBCQlF3d0pBUVErU2c5 MkhneThFZ1ZQZjd0CisrSGVuMXF3SUNDQUF3REFZSUtvWklodmNOQWdrRkFEQWRCZ2xnaGtnQlpR TUVBUUlFRUI1VVgyeGRETzgvQUtBOAorKytZNUNaeVVFZ2dUUWtBcmg0bU1QcG5BZTN4T2NES016 OEtDbjVsckxiLzZEbGE3UnA5TEhLR2tVZnlJMTFFWnQKKyttK09Jcml3eTlvRFFxdUt5VnVMUVZH QXhYS2srM3B5eE1xTEIwaTNoTFlhbVQzdnpvUGN0eVZ3anVSdUtvVTNFCisrQ2JGMFloQ294dldN dmpIc29sd1l6eDAwRGJMWG91RTRCR0t2UGpuaHc1aHd0ZG9aOVB4MFpuQ1hDeFZYaTh6LworK21s dzdhMnB0S0VpSFFWanVQUGJ0dHErZEErZXo3cGJXb25XVm9kNVRNYVB0eUVadTVYZlBEKzBwTWJv Y2VIWmcKKytIOGVoZ1VoVjNtekVKaWlzRkdnMXE5aGorNEJhRmw1bTR0dnFwNDNpbkNDZFNoRTc4 Q05uT1B6SjdXQ2pLSnFpCisrakd2SGplTW9WeDNyWlhIY1pEQXpmSVp2RGlncDl1QWZ6alJKanBS RzhzZzVzRFFWQzd2ZFVoUURlNVRvcktUMgorK1ZiMHRkVll4b0VwTUozZGhVNkRzNUp4TVI2R1RM anNqVHFPa0FsNmRiM0h4dWx3ZkVwcjdZak9wZk9EUit0dEEKKytCZUljVWNNTHNESGF5SWFRYU1M SWZ0SHhPa2ZYN1V4b0ZXOUNNRzVVTVFmL20zZUVnVlV3Z0svRTVzVUpSVVRvCisreWhSeko0TkFQ NGZnYzRZSDl0Ynp2VXJoZmRDWENCRU9uNklsRFFMNjZTWnI4TW0rR2d1NElqNFRuS1dYTHJYTAor K25TVEREYTQya1BPdnRlZEtxeEMvdVhFN3JyZmgrdXl3Nko2T2pTbDZ1ODZUSWVibmRMdURvNURU ZFdLaDhyc2cKKytmdlpaNjMzMmRmTXA4SkM5LzRZbllJSmRJN2FjSW5Tb3lIcDUyT0IrMitkZ1lD cjVPclpGampLUzduRUxWZm83CisrT3hHeTZ1SDNOSEY5cXlVRWYzTU4xN1RSSEk3alAzektiWGNE VFBTeXhMUWtXZS9DVTVCMjUxQ1Rtb1RTaWRTVworK0VoS25QbEdaWWJwVlFKNEtHRUw1VWVZOFc5 UFhRbzREbDdUbVhCR3Z1UHFORjhrTUIzWHJQSXBoN0dtaWhtWDAKKytubEpxTGs5ZWlSRm1VRVRT MElkQXlLSnJtNFI5SGY2cmpZQ2JYbGFBcHlseVZVZFNaMkJ4Z2VvVFk5QkE2S2dmCisrM3hsZ012 MDFNb1VrWE14MitPTEljOU16aEJ1dFFpRHhoM21mUzAxMkNqS3FVRnJKaFJTYThET3BVZlZnbVhw cQorKy9IUDRkcldhbUxXWUpSOEZzbUpTMTFaWWMxRUsvY3RKVFNwcWZld3ZvVUdPU0hvbWhoN3pY bjFBY2I2KzkvM3AKKytiY3JKam9SNUs4Smc2TmxHNGRTTmtwWS94OTJJN2JGTFhGcUVMSUg1dHRl RHJsUWVuNWVBU2phaXlQUEFvT3c4CisrSUdmT21GUzRWVVBoMVZQNmc4SnRuNUhyMnFYQjNEb1Fv STZFdlVaaEo2R0pmaTY3bXg1Vkt1eDZHOU16SmtpeAorK0dVMWNMNFd6V0syRFUwbDM5VXhYalMr NFRtT1licnFMVm5WTWp1c1gwZndiOExrREMvZlZvaGJoTHdoSE53dTYKKytuU1RTRXBTOXpTRHJ2 MUpYRnRBdFB2NlhDU0ZzNnNzUFdKTXdHU2RUaG43RWZWMEdFaEcybUN6VHlWaHd4eFFvCisrNlUv U3VxcTRvTVpvcmFjUFVDWngwRTR1L2JiNEtCb0ZBL2VCTlBKRU5UUjE4SWlWK0Q3d0F4bHhhdU8z TjF0NAorK2lKeHdycnZTZ1FQbU9HdXhyaDVMVkQ0MVVYWVVXTHRuZHphYm5wQnlwcEZuMk1ibXZy cUpnb24wTVNzODRjVEEKKys3c2NuYlB1MVYzUHBLeS90NjdndFZ3OVVlOGhManJza1dCMUpQRlly N3ZSV3ZKellqZmJmbHlyb0YrUUVKM1RBCisrNnJUZlVDOStlUGNpNlQraTlqRjR4Y216cVl6UnRu R3RwNW5SVWl0Skd3MHV3QlREd3pmSTJXRDZsdHZ2dTdsYworK3BIdXp2WTV6RWFwdXUxSmhqSExV ZCtPRThyVlZNOTk5RFVYby9JRExzV3lSQ3BoQ2lZZlZYSk5vZ2Q5ckIwVGEKKys1QWhWZ3BSaHhr YXJCVVJaeUxUWWo3TlJ4Q3NiSHE3WEV4Sk5ySWRSRy9LbEJRZnlFeUl6WjdFPQorKy0tLS0tRU5E IEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCisgICAgIEVPRgorLSAgICBhc3NlcnRfc2FtZV9y c2EgcnNhLCBPcGVuU1NMOjpQS2V5LnJlYWQocGVtLCAiYWJjZGVmIikKKysgICAgYXNzZXJ0X3Nh bWVfcnNhIHJzYSwgT3BlblNTTDo6UEtleS5yZWFkKHBlbSwgImFiY2RlZmdoIikKKyAgIGVuZAor IAorICAgZGVmIHRlc3RfcGFyYW1zCitkaWZmIC0tZ2l0IGEvdGVzdC9vcGVuc3NsL3Rlc3Rfc3Ns LnJiIGIvdGVzdC9vcGVuc3NsL3Rlc3Rfc3NsLnJiCitpbmRleCBjZTFiMmMxZTk2NmZkMC4uZTRm ZDU4MTA3OWM0ZGQgMTAwNjQ0CistLS0gYS90ZXN0L29wZW5zc2wvdGVzdF9zc2wucmIKKysrKyBi L3Rlc3Qvb3BlbnNzbC90ZXN0X3NzbC5yYgorQEAgLTE5MDksNyArMTkwOSw5IEBAIGRlZiB0ZXN0 X3RtcF9kaF9jYWxsYmFjaworICAgICAgIH0KKyAgICAgfQorICAgICBzdGFydF9zZXJ2ZXIoY3R4 X3Byb2M6IGN0eF9wcm9jKSBkbyB8cG9ydHwKKy0gICAgICBzZXJ2ZXJfY29ubmVjdChwb3J0KSB7 IHxzc2x8CisrICAgICAgY3R4ID0gT3BlblNTTDo6U1NMOjpTU0xDb250ZXh0Lm5ldworKyAgICAg IGN0eC5ncm91cHMgPSAiUC0yNTYiICMgRXhjbHVkZSBSRkMgNzkxOSBncm91cHMKKysgICAgICBz ZXJ2ZXJfY29ubmVjdChwb3J0LCBjdHgpIHsgfHNzbHwKKyAgICAgICAgIGFzc2VydCBjYWxsZWQs ICJkaCBjYWxsYmFjayBzaG91bGQgYmUgY2FsbGVkIgorICAgICAgICAgYXNzZXJ0X2VxdWFsIGRo LnRvX2Rlciwgc3NsLnRtcF9rZXkudG9fZGVyCisgICAgICAgfQorQEAgLTIxNzIsNyArMjE3NCw5 IEBAIGRlZiB0ZXN0X3RtcF9kaAorICAgICAgIGN0eC50bXBfZGggPSBkaAorICAgICB9CisgICAg IHN0YXJ0X3NlcnZlcihjdHhfcHJvYzogY3R4X3Byb2MpIGRvIHxwb3J0fAorLSAgICAgIHNlcnZl cl9jb25uZWN0KHBvcnQpIHsgfHNzbHwKKysgICAgICBjdHggPSBPcGVuU1NMOjpTU0w6OlNTTENv bnRleHQubmV3CisrICAgICAgY3R4Lmdyb3VwcyA9ICJQLTI1NiIgIyBFeGNsdWRlIFJGQyA3OTE5 IGdyb3VwcworKyAgICAgIHNlcnZlcl9jb25uZWN0KHBvcnQsIGN0eCkgeyB8c3NsfAorICAgICAg ICAgYXNzZXJ0X2VxdWFsIGRoLnRvX2Rlciwgc3NsLnRtcF9rZXkudG9fZGVyCisgICAgICAgfQor ICAgICBlbmQKCmRpZmYgLS1naXQgYS9ydWJ5LnNwZWMgYi9ydWJ5LnNwZWMKaW5kZXggOGRlY2Qw Mi4uZjZmNzRmMiAxMDA2NDQKLS0tIGEvcnVieS5zcGVjCisrKyBiL3J1Ynkuc3BlYwpAQCAtNzks NyArNzksNyBAQAogJWdsb2JhbCBuZXRfcHJvdG9jb2xfdmVyc2lvbiAwLjIuMgogJWdsb2JhbCBv cGVuX3VyaV92ZXJzaW9uIDAuNS4wCiAlZ2xvYmFsIG9wZW4zX3ZlcnNpb24gMC4yLjEKLSVnbG9i YWwgb3BlbnNzbF92ZXJzaW9uIDQuMC4wCislZ2xvYmFsIG9wZW5zc2xfdmVyc2lvbiA0LjAuMgog JWdsb2JhbCBvcHRwYXJzZV92ZXJzaW9uIDAuOC4xCiAlZ2xvYmFsIHBwX3ZlcnNpb24gMC42LjMK ICVnbG9iYWwgcHJldHR5cHJpbnRfdmVyc2lvbiAwLjIuMApAQCAtMTkwLDcgKzE5MCw3IEBACiBT dW1tYXJ5OiBBbiBpbnRlcnByZXRlciBvZiBvYmplY3Qtb3JpZW50ZWQgc2NyaXB0aW5nIGxhbmd1 YWdlCiBOYW1lOiBydWJ5CiBWZXJzaW9uOiAle3J1YnlfdmVyc2lvbn0lez9kZXZlbG9wbWVudF9y ZWxlYXNlfQotUmVsZWFzZTogMzQlez9kaXN0fQorUmVsZWFzZTogMzUlez9kaXN0fQogIyBMaWNl bnNlcywgd2hpY2ggYXJlIGxpa2VseSBub3QgaW5jbHVkZWQgaW4gYmluYXJ5IFJQTXM6CiAjIEFw YWNoZS0yLjA6CiAjICAgYmVuY2htYXJrL2djL3JlZGJsYWNrLnJiCkBAIC0yOTksNiArMjk5LDEw IEBAIFBhdGNoODogcnVieS00LjAuMS1TdXBwb3J0LWN1c3RvbWl6YWJsZS1ydXN0Y19mbGFncy1m b3ItcnVzdGMtYnVpbGRzLnBhdGNoCiAjIEZpeCBlcnJvciB3aXRoIGBnZW0gaW5zdGFsbCAtLWRv Y3VtZW50PXJkb2MscmlgCiAjIEZpeGVkIGluIHJkb2MgNy4xLjAgYnV0IG5vdCBpbiA3LjAuNAog UGF0Y2g5OiByZG9jLXByMTUzMS1maXgtbXV0aWxwbGUtZG9jdW1lbnQtaW5zdGFsbGF0aW9uLnBh dGNoCisjIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8yMjA2OQorIyBodHRwczov L2dpdGh1Yi5jb20vcnVieS9ydWJ5L3B1bGwvMTY5NDcKKyMgQmFja3BvcnQgcnVieS9vcGVuc3Ns IDQuMC4yIGZyb20gcnVieSA0LjAgYnJhbmNoIHRvIHN1cHBvcnQgb3BlbnNzbCA0LjAKK1BhdGNo MTA6IHJ1YnktcHIxNjk0Ny1vcGVuc3NsLTRfMF8yLWZyb20tcnVieV80XzAucGF0Y2gKIAogUmVx dWlyZXM6ICV7bmFtZX0tbGlicyV7P19pc2F9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CiAlez93 aXRoX3J1YnlwaWNrOlN1Z2dlc3RzOiBydWJ5cGlja30KQEAgLTgxMSw2ICs4MTUsNyBAQCBwb3Bk CiAlcGF0Y2ggNiAtcDEKICVwYXRjaCA3IC1wMQogJXBhdGNoIDggLXAxCislcGF0Y2ggMTAgLXAx CiAKICMgUHJvdmlkZSBhbiBleGFtcGxlIG9mIHVzYWdlIG9mIHRoZSB0YXBzZXQ6CiBjcCAtYSAl e1NPVVJDRTN9IC4KQEAgLTE5NTksNiArMTk2NCw5IEBAIG1ha2UgLUMgJXtfdnBhdGhfYnVpbGRk aXJ9IHJ1bnJ1YnkgVEVTVFJVTl9TQ1JJUFQ9IiBcCiAKIAogJWNoYW5nZWxvZworKiBTdW4gSnVu IDE0IDIwMjYgTWFtb3J1IFRBU0FLQSA8bXRhc2FrYUBmZWRvcmFwcm9qZWN0Lm9yZz4gLSA0LjAu NS0zNQorLSBCYWNrcG9ydCBydWJ5L29wZW5zc2wgNC4wLjIgZnJvbSBydWJ5IDQuMCBicmFuY2gg dG8gc3VwcG9ydCBvcGVuc3NsIDQuMAorCiAqIEZyaSBKdW4gMTIgMjAyNiBZYWFrb3YgU2Vsa293 aXR6IDx5c2Vsa293aUByZWRoYXQuY29tPgogLSBSZWJ1aWx0IGZvciBvcGVuc3NsIDQuMAogCg==