From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 6289 invoked from network); 29 Aug 2020 02:06:33 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 29 Aug 2020 02:06:33 -0000 Content-Type: multipart/mixed; boundary="===============1631062684777593520==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_freecad=3A_fix_build_for_vtk9_and_musl=2E?= To: ml@inbox.vuxu.org From: ericonr Reply-to: ml@inbox.vuxu.org Message-ID: Date: Sat, 29 Aug 2020 04:06:30 +0200 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============1631062684777593520== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IGVyaWNvbnIgYWdhaW5zdCBtYXN0ZXIgb24g dGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL2VyaWNvbnIv dm9pZC1wYWNrYWdlcyBjYWQKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNr YWdlcy9wdWxsLzI0NTMwCgpmcmVlY2FkOiBmaXggYnVpbGQgZm9yIHZ0azkgYW5kIG11c2wuCk5l dyBwYXRjaCBhbmQgYWRkIGxpYmV4ZWNpbmZvIHRvIG1ha2VkZXBlbmRzLg0KDQpbY2kgc2tpcF0K CkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFj a2FnZXMvcHVsbC8yNDUzMC5wYXRjaCBpcyBhdHRhY2hlZA== --===============1631062684777593520== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-cad-24530.patch" RnJvbSA4N2Q4OTAxMzQ4MTY5ZDFmYzE1OWZjNTk1ZWZlN2M1NWNmMWNhYmFkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUMzPTg5cmljbz0yMFJvbGltPz0gPGVyaWNv LmVyY0BnbWFpbC5jb20+CkRhdGU6IEZyaSwgMjggQXVnIDIwMjAgMjM6MDQ6NTcgLTAzMDAKU3Vi amVjdDogW1BBVENIXSBmcmVlY2FkOiBmaXggYnVpbGQgZm9yIHZ0azkgYW5kIG11c2wuCgpOZXcg cGF0Y2ggYW5kIGFkZCBsaWJleGVjaW5mbyB0byBtYWtlZGVwZW5kcy4KCltjaSBza2lwXQotLS0K IHNyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzE1MC12dGs5LnBhdGNoIHwgNzYwICsrKysrKysrKysr KysrKysrKysrKysrKysKIHNyY3BrZ3MvZnJlZWNhZC90ZW1wbGF0ZSAgICAgICAgICAgICAgIHwg ICA5ICstCiAyIGZpbGVzIGNoYW5nZWQsIDc2NCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygt KQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzE1MC12dGs5LnBh dGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTUwLXZ0azkucGF0Y2gg Yi9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTAtdnRrOS5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZThmYjVlYzE0YjcKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTAtdnRrOS5wYXRjaApAQCAtMCwwICsxLDc2MCBAQAor VGFrZW4gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vd3dtYXllci9GcmVlQ0FEL2NvbW1pdC81MjU5 OWY3NzFmYTkzNGNlZWIxMWE5NzBjMzYzOWJmYThmOTA0MTFlCisKK2RpZmYgLS1naXQgc3JjLzNy ZFBhcnR5L3NhbG9tZXNtZXNoL2luYy9TTURTX01lc2hFbGVtZW50Lmh4eCBiL3NyYy8zcmRQYXJ0 eS9zYWxvbWVzbWVzaC9pbmMvU01EU19NZXNoRWxlbWVudC5oeHgKK2luZGV4IDE0YTZkOWE3Ni4u N2I5ZDg4ZGIxIDEwMDY0NAorLS0tIHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9pbmMvU01EU19N ZXNoRWxlbWVudC5oeHgKKysrKyBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvaW5jL1NNRFNfTWVz aEVsZW1lbnQuaHh4CitAQCAtNDAsMTAgKzQwLDE2IEBACisgCisgI2luY2x1ZGUgPHZ0a1R5cGUu aD4KKyAjaW5jbHVkZSA8dnRrQ2VsbFR5cGUuaD4KKysjaW5jbHVkZSA8dnRrQ2VsbEFycmF5Lmg+ CisgCisgLy90eXBlZGVmIHVuc2lnbmVkIHNob3J0IFVTaG9ydFR5cGU7CisgdHlwZWRlZiBzaG9y dCBTaG9ydFR5cGU7CisgdHlwZWRlZiBpbnQgICBMb25nVHlwZTsKKysjaWZkZWYgVlRLX0NFTExf QVJSQVlfVjIKKyt0eXBlZGVmIGNvbnN0IHZ0a0lkVHlwZSogdnRrSWRUeXBlUHRyOworKyNlbHNl CisrdHlwZWRlZiB2dGtJZFR5cGUqIHZ0a0lkVHlwZVB0cjsKKysjZW5kaWYKKyAKKyBjbGFzcyBT TURTX01lc2hOb2RlOworIGNsYXNzIFNNRFNfTWVzaEVkZ2U7CitAQCAtMTkyLDcgKzE5OCw3IEBA IHByb3RlY3RlZDoKKyAgIC8vISBFbGVtZW50IGluZGV4IGluIHZlY3RvciBTTURTX01lc2g6Om15 Tm9kZXMgb3IgU01EU19NZXNoOjpteUNlbGxzCisgICBpbnQgbXlJRDsKKyAgIC8vISBpbmRleCBp biB2dGtVbnN0cnVjdHVyZWRHcmlkCistICBpbnQgbXlWdGtJRDsKKysgIHZ0a0lkVHlwZSBteVZ0 a0lEOworICAgLy8hIFNNRFNfTWVzaCBpZGVudGlmaWNhdGlvbiBpbiBTTUVTSAorICAgU2hvcnRU eXBlIG15TWVzaElkOworICAgLy8hIFN1YlNoYXBlIGFuZCBTdWJNZXNoIGlkZW50aWZpY2F0aW9u IGluIFNNRVNIRFMKK2RpZmYgLS1naXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL2luYy9TTURT X1Vuc3RydWN0dXJlZEdyaWQuaHh4IGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL2luYy9TTURT X1Vuc3RydWN0dXJlZEdyaWQuaHh4CitpbmRleCA5ZTRhMjNlZGQuLjc3NDY1ODE0NSAxMDA2NDQK Ky0tLSBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvaW5jL1NNRFNfVW5zdHJ1Y3R1cmVkR3JpZC5o eHgKKysrKyBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvaW5jL1NNRFNfVW5zdHJ1Y3R1cmVkR3Jp ZC5oeHgKK0BAIC05NSw3ICs5NSwxMSBAQCBwdWJsaWM6CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RkOjptYXA8aW50LCBzdGQ6Om1hcDxsb25nLGludD4gPiYgbm9k ZVF1YWREb21haW5zKTsKKyAgIHZ0a0NlbGxMaW5rcyogR2V0TGlua3MoKQorICAgeworKyNpZmRl ZiBWVEtfQ0VMTF9BUlJBWV9WMgorKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dnRrQ2VsbExpbmtz Kj4oR2V0Q2VsbExpbmtzKCkpOworKyNlbHNlCisgICAgIHJldHVybiBMaW5rczsKKysjZW5kaWYK KyAgIH0KKyAgIFNNRFNfRG93bndhcmQqIGdldERvd25BcnJheSh1bnNpZ25lZCBjaGFyIHZ0a1R5 cGUpCisgICB7CitkaWZmIC0tZ2l0IHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9T TURTX0JhbGxFbGVtZW50LmNwcCBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9T TURTX0JhbGxFbGVtZW50LmNwcAoraW5kZXggMjk5MDkzYzk0Li45OTBlMmI2NDEgMTAwNjQ0Cist LS0gc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfQmFsbEVsZW1lbnQuY3Bw CisrKysgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfQmFsbEVsZW1lbnQu Y3BwCitAQCAtNjgsOSArNjgsMTMgQEAgYm9vbCBTTURTX0JhbGxFbGVtZW50OjpDaGFuZ2VOb2Rl IChjb25zdCBTTURTX01lc2hOb2RlICogbm9kZSkKKyB7CisgICB2dGtVbnN0cnVjdHVyZWRHcmlk KiBncmlkID0gU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCk7CisgICB2 dGtJZFR5cGUgbnB0cyA9IDA7CistICB2dGtJZFR5cGUqIHB0cyA9IDA7CisrICB2dGtJZFR5cGVQ dHIgcHRzID0gMDsKKyAgIGdyaWQtPkdldENlbGxQb2ludHMobXlWdGtJRCwgbnB0cywgcHRzKTsK KysjaWZkZWYgVlRLX0NFTExfQVJSQVlfVjIKKysvL0ZJWE1FOiB2dGs5CisrI2Vsc2UKKyAgIHB0 c1swXSA9IG5vZGUtPmdldFZ0a0lkKCk7CisrI2VuZGlmCisgICBTTURTX01lc2g6Ol9tZXNoTGlz dFtteU1lc2hJZF0tPnNldE15TW9kaWZpZWQoKTsKKyAgIHJldHVybiB0cnVlOworIH0KK0BAIC04 Myw3ICs4Nyw4IEBAIHZvaWQgU01EU19CYWxsRWxlbWVudDo6UHJpbnQgKHN0ZDo6b3N0cmVhbSAm IE9TKSBjb25zdAorIGNvbnN0IFNNRFNfTWVzaE5vZGUqIFNNRFNfQmFsbEVsZW1lbnQ6OkdldE5v ZGUgKGNvbnN0IGludCBpbmQpIGNvbnN0CisgeworICAgdnRrVW5zdHJ1Y3R1cmVkR3JpZCogZ3Jp ZCA9IFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+Z2V0R3JpZCgpOworLSAgdnRrSWRU eXBlIG5wdHMsICpwdHM7CisrICB2dGtJZFR5cGUgbnB0czsKKysgIHZ0a0lkVHlwZVB0ciBwdHM7 CisgICBncmlkLT5HZXRDZWxsUG9pbnRzKCBteVZ0a0lELCBucHRzLCBwdHMgKTsKKyAgIHJldHVy biBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPkZpbmROb2RlVnRrKCBwdHNbIDAgXSk7 CisgfQorZGlmZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19E b3dud2FyZC5jcHAgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19Eb3du d2FyZC5jcHAKK2luZGV4IGQ2MDQ5YzBiZC4uNzc1NTVkNWJjIDEwMDY0NAorLS0tIHNyYy8zcmRQ YXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX0Rvd253YXJkLmNwcAorKysrIHNyYy8zcmRQ YXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX0Rvd253YXJkLmNwcAorQEAgLTMwMyw3ICsz MDMsNyBAQCBpbnQgU01EU19Eb3duMUQ6OmdldE5vZGVTZXQoaW50IGNlbGxJZCwgaW50KiBub2Rl U2V0KQorIHZvaWQgU01EU19Eb3duMUQ6OnNldE5vZGVzKGludCBjZWxsSWQsIGludCB2dGtJZCkK KyB7CisgICB2dGtJZFR5cGUgbnB0cyA9IDA7CistICB2dGtJZFR5cGUgKnB0czsgLy8gd2lsbCBy ZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgZmFjZQorKyAgdnRrSWRUeXBlUHRyIHB0czsg Ly8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgZmFjZQorICAgX2dyaWQtPkdl dENlbGxQb2ludHModnRrSWQsIG5wdHMsIHB0cyk7CisgICAvLyBNRVNTQUdFKHZ0a0lkIDw8ICIg IiA8PCBucHRzIDw8ICIgICIgPDwgX25iRG93bkNlbGxzKTsKKyAgIC8vQVNTRVJUKG5wdHMgPT0g X25iRG93bkNlbGxzKTsKK0BAIC01MzIsNyArNTMyLDcgQEAgaW50IFNNRFNfRG93bjJEOjpjb21w dXRlVm9sdW1lSWRzKGludCBjZWxsSWQsIGludCogaWRzKQorICAgLy8gLS0tIGZpbmQgcG9pbnQg aWQncyBvZiB0aGUgZmFjZQorIAorICAgdnRrSWRUeXBlIG5wdHMgPSAwOworLSAgdnRrSWRUeXBl ICpwdHM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIGZhY2UKKysgIHZ0 a0lkVHlwZVB0ciBwdHM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIGZh Y2UKKyAgIF9ncmlkLT5HZXRDZWxsUG9pbnRzKGNlbGxJZCwgbnB0cywgcHRzKTsKKyAgIHZlY3Rv cjxpbnQ+IG5vZGVzOworICAgZm9yIChpbnQgaSA9IDA7IGkgPCBucHRzOyBpKyspCitAQCAtNjI3 LDcgKzYyNyw3IEBAIGludCBTTURTX0Rvd24yRDo6Y29tcHV0ZVZvbHVtZUlkc0Zyb21Ob2Rlc0Zh Y2UoaW50KiBwdHMsIGludCBucHRzLCBpbnQqIGlkcykKKyB2b2lkIFNNRFNfRG93bjJEOjpzZXRU ZW1wTm9kZXMoaW50IGNlbGxJZCwgaW50IHZ0a0lkKQorIHsKKyAgIHZ0a0lkVHlwZSBucHRzID0g MDsKKy0gIHZ0a0lkVHlwZSAqcHRzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9m IHRoZSBmYWNlCisrICB2dGtJZFR5cGVQdHIgcHRzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2lu dCBpZCdzIG9mIHRoZSBmYWNlCisgICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyh2dGtJZCwgbnB0cywg cHRzKTsKKyAgIC8vIE1FU1NBR0UodnRrSWQgPDwgIiAiIDw8IG5wdHMgPDwgIiAgIiA8PCBfbmJO b2Rlcyk7CisgICAvL0FTU0VSVChucHRzID09IF9uYk5vZGVzKTsKK0BAIC03OTUsNyArNzk1LDcg QEAgdm9pZCBTTURTX0Rvd24zRDo6Z2V0Tm9kZUlkcyhpbnQgY2VsbElkLCBzdGQ6OnNldDxpbnQ+ JiBub2RlU2V0KQorIHsKKyAgIGludCB2dGtJZCA9IHRoaXMtPl92dGtDZWxsSWRzW2NlbGxJZF07 CisgICB2dGtJZFR5cGUgbnB0cyA9IDA7CistICB2dGtJZFR5cGUgKm5vZGVzOyAvLyB3aWxsIHJl ZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKKysgIHZ0a0lkVHlwZVB0ciBub2Rl czsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCisgICBfZ3Jp ZC0+R2V0Q2VsbFBvaW50cyh2dGtJZCwgbnB0cywgbm9kZXMpOworICAgZm9yIChpbnQgaSA9IDA7 IGkgPCBucHRzOyBpKyspCisgICAgIG5vZGVTZXQuaW5zZXJ0KG5vZGVzW2ldKTsKK0BAIC0xMTI2 LDcgKzExMjYsNyBAQCB2b2lkIFNNRFNfRG93blRldHJhOjpnZXRPcmRlcmVkTm9kZXNPZkZhY2Uo aW50IGNlbGxJZCwgc3RkOjp2ZWN0b3I8dnRrSWRUeXBlPiYgbworICAgLy9NRVNTQUdFKCJjZWxs SWQgPSAiIDw8IGNlbGxJZCk7CisgCisgICB2dGtJZFR5cGUgbnB0cyA9IDA7CistICB2dGtJZFR5 cGUgKm5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUK KysgIHZ0a0lkVHlwZVB0ciBub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBv ZiB0aGUgdm9sdW1lCisgICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyh0aGlzLT5fdnRrQ2VsbElkc1tj ZWxsSWRdLCBucHRzLCBub2Rlcyk7CisgCisgICBzZXQ8aW50PiB0b2ZpbmQ7CitAQCAtMTE3OCw3 ICsxMTc4LDcgQEAgdm9pZCBTTURTX0Rvd25UZXRyYTo6Y29tcHV0ZUZhY2VzV2l0aE5vZGVzKGlu dCBjZWxsSWQsIExpc3RFbGVtQnlOb2Rlc1R5cGUmIGZhY2UKKyAgIC8vIC0tLSBmaW5kIHBvaW50 IGlkJ3Mgb2YgdGhlIHZvbHVtZQorIAorICAgdnRrSWRUeXBlIG5wdHMgPSAwOworLSAgdnRrSWRU eXBlICpub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1l CisrICB2dGtJZFR5cGVQdHIgbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mg b2YgdGhlIHZvbHVtZQorICAgX2dyaWQtPkdldENlbGxQb2ludHMoY2VsbElkLCBucHRzLCBub2Rl cyk7CisgCisgICAvLyAtLS0gY3JlYXRlIGFsbCB0aGUgb3JkZXJlZCBsaXN0IG9mIG5vZGUgaWQn cyBmb3IgZWFjaCBmYWNlCitAQCAtMTIzNCw3ICsxMjM0LDcgQEAgdm9pZCBTTURTX0Rvd25RdWFk VGV0cmE6OmdldE9yZGVyZWROb2Rlc09mRmFjZShpbnQgY2VsbElkLCBzdGQ6OnZlY3Rvcjx2dGtJ ZFR5cGUKKyAgIC8vTUVTU0FHRSgiY2VsbElkID0gIiA8PCBjZWxsSWQpOworIAorICAgdnRrSWRU eXBlIG5wdHMgPSAwOworLSAgdnRrSWRUeXBlICpub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUg cG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCisrICB2dGtJZFR5cGVQdHIgbm9kZXM7IC8vIHdpbGwg cmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQorICAgX2dyaWQtPkdldENlbGxQ b2ludHModGhpcy0+X3Z0a0NlbGxJZHNbY2VsbElkXSwgbnB0cywgbm9kZXMpOworIAorICAgc2V0 PGludD4gdG9maW5kOworQEAgLTEyODgsNyArMTI4OCw3IEBAIHZvaWQgU01EU19Eb3duUXVhZFRl dHJhOjpjb21wdXRlRmFjZXNXaXRoTm9kZXMoaW50IGNlbGxJZCwgTGlzdEVsZW1CeU5vZGVzVHlw ZSYKKyAgIC8vIC0tLSBmaW5kIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQorIAorICAgdnRrSWRU eXBlIG5wdHMgPSAwOworLSAgdnRrSWRUeXBlICpub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUg cG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCisrICB2dGtJZFR5cGVQdHIgbm9kZXM7IC8vIHdpbGwg cmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQorICAgX2dyaWQtPkdldENlbGxQ b2ludHMoY2VsbElkLCBucHRzLCBub2Rlcyk7CisgCisgICAvLyAtLS0gY3JlYXRlIGFsbCB0aGUg b3JkZXJlZCBsaXN0IG9mIG5vZGUgaWQncyBmb3IgZWFjaCBmYWNlCitAQCAtMTM1Nyw3ICsxMzU3 LDcgQEAgdm9pZCBTTURTX0Rvd25QeXJhbWlkOjpnZXRPcmRlcmVkTm9kZXNPZkZhY2UoaW50IGNl bGxJZCwgc3RkOjp2ZWN0b3I8dnRrSWRUeXBlPiYKKyAgIC8vTUVTU0FHRSgiY2VsbElkID0gIiA8 PCBjZWxsSWQpOworIAorICAgdnRrSWRUeXBlIG5wdHMgPSAwOworLSAgdnRrSWRUeXBlICpub2Rl czsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCisrICB2dGtJ ZFR5cGVQdHIgbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZv bHVtZQorICAgX2dyaWQtPkdldENlbGxQb2ludHModGhpcy0+X3Z0a0NlbGxJZHNbY2VsbElkXSwg bnB0cywgbm9kZXMpOworIAorICAgc2V0PGludD4gdG9maW5kOworQEAgLTE0MzUsNyArMTQzNSw3 IEBAIHZvaWQgU01EU19Eb3duUHlyYW1pZDo6Y29tcHV0ZUZhY2VzV2l0aE5vZGVzKGludCBjZWxs SWQsIExpc3RFbGVtQnlOb2Rlc1R5cGUmIGZhCisgICAvLyAtLS0gZmluZCBwb2ludCBpZCdzIG9m IHRoZSB2b2x1bWUKKyAKKyAgIHZ0a0lkVHlwZSBucHRzID0gMDsKKy0gIHZ0a0lkVHlwZSAqbm9k ZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQorKyAgdnRr SWRUeXBlUHRyIG5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2 b2x1bWUKKyAgIF9ncmlkLT5HZXRDZWxsUG9pbnRzKGNlbGxJZCwgbnB0cywgbm9kZXMpOworIAor ICAgLy8gLS0tIGNyZWF0ZSBhbGwgdGhlIG9yZGVyZWQgbGlzdCBvZiBub2RlIGlkJ3MgZm9yIGVh Y2ggZmFjZQorQEAgLTE1MDAsNyArMTUwMCw3IEBAIHZvaWQgU01EU19Eb3duUXVhZFB5cmFtaWQ6 OmdldE9yZGVyZWROb2Rlc09mRmFjZShpbnQgY2VsbElkLCBzdGQ6OnZlY3Rvcjx2dGtJZFR5Cisg ICAvL01FU1NBR0UoImNlbGxJZCA9ICIgPDwgY2VsbElkKTsKKyAKKyAgIHZ0a0lkVHlwZSBucHRz ID0gMDsKKy0gIHZ0a0lkVHlwZSAqbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlk J3Mgb2YgdGhlIHZvbHVtZQorKyAgdnRrSWRUeXBlUHRyIG5vZGVzOyAvLyB3aWxsIHJlZmVyIHRv IHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKKyAgIF9ncmlkLT5HZXRDZWxsUG9pbnRzKHRo aXMtPl92dGtDZWxsSWRzW2NlbGxJZF0sIG5wdHMsIG5vZGVzKTsKKyAKKyAgIHNldDxpbnQ+IHRv ZmluZDsKK0BAIC0xNTgwLDcgKzE1ODAsNyBAQCB2b2lkIFNNRFNfRG93blF1YWRQeXJhbWlkOjpj b21wdXRlRmFjZXNXaXRoTm9kZXMoaW50IGNlbGxJZCwgTGlzdEVsZW1CeU5vZGVzVHlwZQorICAg Ly8gLS0tIGZpbmQgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCisgCisgICB2dGtJZFR5cGUgbnB0 cyA9IDA7CistICB2dGtJZFR5cGUgKm5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBp ZCdzIG9mIHRoZSB2b2x1bWUKKysgIHZ0a0lkVHlwZVB0ciBub2RlczsgLy8gd2lsbCByZWZlciB0 byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCisgICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyhj ZWxsSWQsIG5wdHMsIG5vZGVzKTsKKyAKKyAgIC8vIC0tLSBjcmVhdGUgYWxsIHRoZSBvcmRlcmVk IGxpc3Qgb2Ygbm9kZSBpZCdzIGZvciBlYWNoIGZhY2UKK0BAIC0xNjYwLDcgKzE2NjAsNyBAQCB2 b2lkIFNNRFNfRG93blBlbnRhOjpnZXRPcmRlcmVkTm9kZXNPZkZhY2UoaW50IGNlbGxJZCwgc3Rk Ojp2ZWN0b3I8dnRrSWRUeXBlPiYgbworICAgLy9NRVNTQUdFKCJjZWxsSWQgPSAiIDw8IGNlbGxJ ZCk7CisgCisgICB2dGtJZFR5cGUgbnB0cyA9IDA7CistICB2dGtJZFR5cGUgKm5vZGVzOyAvLyB3 aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKKysgIHZ0a0lkVHlwZVB0 ciBub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCisg ICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyh0aGlzLT5fdnRrQ2VsbElkc1tjZWxsSWRdLCBucHRzLCBu b2Rlcyk7CisgCisgICBzZXQ8aW50PiB0b2ZpbmQ7CitAQCAtMTc0NCw3ICsxNzQ0LDcgQEAgdm9p ZCBTTURTX0Rvd25QZW50YTo6Y29tcHV0ZUZhY2VzV2l0aE5vZGVzKGludCBjZWxsSWQsIExpc3RF bGVtQnlOb2Rlc1R5cGUmIGZhY2UKKyAgIC8vIC0tLSBmaW5kIHBvaW50IGlkJ3Mgb2YgdGhlIHZv bHVtZQorIAorICAgdnRrSWRUeXBlIG5wdHMgPSAwOworLSAgdnRrSWRUeXBlICpub2RlczsgLy8g d2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCisrICB2dGtJZFR5cGVQ dHIgbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQor ICAgX2dyaWQtPkdldENlbGxQb2ludHMoY2VsbElkLCBucHRzLCBub2Rlcyk7CisgCisgICAvLyAt LS0gY3JlYXRlIGFsbCB0aGUgb3JkZXJlZCBsaXN0IG9mIG5vZGUgaWQncyBmb3IgZWFjaCBmYWNl CitAQCAtMTgxMCw3ICsxODEwLDcgQEAgdm9pZCBTTURTX0Rvd25RdWFkUGVudGE6OmdldE9yZGVy ZWROb2Rlc09mRmFjZShpbnQgY2VsbElkLCBzdGQ6OnZlY3Rvcjx2dGtJZFR5cGUKKyAgIC8vTUVT U0FHRSgiY2VsbElkID0gIiA8PCBjZWxsSWQpOworIAorICAgdnRrSWRUeXBlIG5wdHMgPSAwOwor LSAgdnRrSWRUeXBlICpub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0 aGUgdm9sdW1lCisrICB2dGtJZFR5cGVQdHIgbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBv aW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQorICAgX2dyaWQtPkdldENlbGxQb2ludHModGhpcy0+X3Z0 a0NlbGxJZHNbY2VsbElkXSwgbnB0cywgbm9kZXMpOworIAorICAgc2V0PGludD4gdG9maW5kOwor QEAgLTE4OTYsNyArMTg5Niw3IEBAIHZvaWQgU01EU19Eb3duUXVhZFBlbnRhOjpjb21wdXRlRmFj ZXNXaXRoTm9kZXMoaW50IGNlbGxJZCwgTGlzdEVsZW1CeU5vZGVzVHlwZSYKKyAgIC8vIC0tLSBm aW5kIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQorIAorICAgdnRrSWRUeXBlIG5wdHMgPSAwOwor LSAgdnRrSWRUeXBlICpub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0 aGUgdm9sdW1lCisrICB2dGtJZFR5cGVQdHIgbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBv aW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQorICAgX2dyaWQtPkdldENlbGxQb2ludHMoY2VsbElkLCBu cHRzLCBub2Rlcyk7CisgCisgICAvLyAtLS0gY3JlYXRlIGFsbCB0aGUgb3JkZXJlZCBsaXN0IG9m IG5vZGUgaWQncyBmb3IgZWFjaCBmYWNlCitAQCAtMTk4MSw3ICsxOTgxLDcgQEAgdm9pZCBTTURT X0Rvd25IZXhhOjpnZXRPcmRlcmVkTm9kZXNPZkZhY2UoaW50IGNlbGxJZCwgc3RkOjp2ZWN0b3I8 dnRrSWRUeXBlPiYgb3IKKyAgIC8vTUVTU0FHRSgiY2VsbElkID0gIiA8PCBjZWxsSWQpOworIAor ICAgdnRrSWRUeXBlIG5wdHMgPSAwOworLSAgdnRrSWRUeXBlICpub2RlczsgLy8gd2lsbCByZWZl ciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCisrICB2dGtJZFR5cGVQdHIgbm9kZXM7 IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQorICAgX2dyaWQt PkdldENlbGxQb2ludHModGhpcy0+X3Z0a0NlbGxJZHNbY2VsbElkXSwgbnB0cywgbm9kZXMpOwor IAorICAgc2V0PGludD4gdG9maW5kOworQEAgLTIwMzYsNyArMjAzNiw3IEBAIHZvaWQgU01EU19E b3duSGV4YTo6Y29tcHV0ZUZhY2VzV2l0aE5vZGVzKGludCBjZWxsSWQsIExpc3RFbGVtQnlOb2Rl c1R5cGUmIGZhY2VzCisgICAvLyAtLS0gZmluZCBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKKyAK KyAgIHZ0a0lkVHlwZSBucHRzID0gMDsKKy0gIHZ0a0lkVHlwZSAqbm9kZXM7IC8vIHdpbGwgcmVm ZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQorKyAgdnRrSWRUeXBlUHRyIG5vZGVz OyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKKyAgIF9ncmlk LT5HZXRDZWxsUG9pbnRzKGNlbGxJZCwgbnB0cywgbm9kZXMpOworIAorICAgLy8gLS0tIGNyZWF0 ZSBhbGwgdGhlIG9yZGVyZWQgbGlzdCBvZiBub2RlIGlkJ3MgZm9yIGVhY2ggZmFjZQorQEAgLTIx MTIsNyArMjExMiw3IEBAIHZvaWQgU01EU19Eb3duUXVhZEhleGE6OmdldE9yZGVyZWROb2Rlc09m RmFjZShpbnQgY2VsbElkLCBzdGQ6OnZlY3Rvcjx2dGtJZFR5cGU+CisgICAvL01FU1NBR0UoImNl bGxJZCA9ICIgPDwgY2VsbElkKTsKKyAKKyAgIHZ0a0lkVHlwZSBucHRzID0gMDsKKy0gIHZ0a0lk VHlwZSAqbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVt ZQorKyAgdnRrSWRUeXBlUHRyIG5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdz IG9mIHRoZSB2b2x1bWUKKyAgIF9ncmlkLT5HZXRDZWxsUG9pbnRzKHRoaXMtPl92dGtDZWxsSWRz W2NlbGxJZF0sIG5wdHMsIG5vZGVzKTsKKyAKKyAgIHNldDxpbnQ+IHRvZmluZDsKK0BAIC0yMTY3 LDcgKzIxNjcsNyBAQCB2b2lkIFNNRFNfRG93blF1YWRIZXhhOjpjb21wdXRlRmFjZXNXaXRoTm9k ZXMoaW50IGNlbGxJZCwgTGlzdEVsZW1CeU5vZGVzVHlwZSYgZgorICAgLy8gLS0tIGZpbmQgcG9p bnQgaWQncyBvZiB0aGUgdm9sdW1lCisgCisgICB2dGtJZFR5cGUgbnB0cyA9IDA7CistICB2dGtJ ZFR5cGUgKm5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1 bWUKKysgIHZ0a0lkVHlwZVB0ciBub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQn cyBvZiB0aGUgdm9sdW1lCisgICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyhjZWxsSWQsIG5wdHMsIG5v ZGVzKTsKKyAKKyAgIC8vIC0tLSBjcmVhdGUgYWxsIHRoZSBvcmRlcmVkIGxpc3Qgb2Ygbm9kZSBp ZCdzIGZvciBlYWNoIGZhY2UKK2RpZmYgLS1naXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3Ny Yy9TTURTL1NNRFNfTWVzaC5jcHAgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMv U01EU19NZXNoLmNwcAoraW5kZXggNGFjNmZkNzY4Li41MWIyODE2OTkgMTAwNjQ0CistLS0gc3Jj LzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfTWVzaC5jcHAKKysrKyBzcmMvM3Jk UGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19NZXNoLmNwcAorQEAgLTQ3NjMsNyArNDc2 MywxMSBAQCB2b2lkIFNNRFNfTWVzaDo6ZHVtcEdyaWQoc3RyaW5nIGZpY2R1bXApCisgICAgICAg ICBmaWNjb24gPDwgZW5kbDsKKyAgIH0KKyAgIGZpY2NvbiA8PCAiLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0gY29ubmVjdGl2aXR5ICIgPDwgIG5iUG9pbnRzIDw8IGVuZGw7CistICAg ICAgICB2dGtDZWxsTGlua3MgKmxpbmtzID0gbXlHcmlkLT5HZXRDZWxsTGlua3MoKTsKKysjaWZk ZWYgVlRLX0NFTExfQVJSQVlfVjIKKysgIHZ0a0NlbGxMaW5rcyAqbGlua3MgPSBzdGF0aWNfY2Fz dDx2dGtDZWxsTGlua3MqPihteUdyaWQtPkdldENlbGxMaW5rcygpKTsKKysjZWxzZQorKyAgdnRr Q2VsbExpbmtzICpsaW5rcyA9IG15R3JpZC0+R2V0Q2VsbExpbmtzKCk7CisrI2VuZGlmCisgICBm b3IgKGludCBpPTA7IGk8bmJQb2ludHM7IGkrKykKKyAgIHsKKyAgICAgICAgIGludCBuY2VsbHMg PSBsaW5rcy0+R2V0TmNlbGxzKGkpOworZGlmZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fsb21lc21l c2gvc3JjL1NNRFMvU01EU19NZXNoMERFbGVtZW50LmNwcCBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVz bWVzaC9zcmMvU01EUy9TTURTX01lc2gwREVsZW1lbnQuY3BwCitpbmRleCA5NTQzOGVhYjAuLmE3 ZjgwNTllMCAxMDA2NDQKKy0tLSBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01E U19NZXNoMERFbGVtZW50LmNwcAorKysrIHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01E Uy9TTURTX01lc2gwREVsZW1lbnQuY3BwCitAQCAtMTQ3LDcgKzE0Nyw3IEBAIGJvb2wgU01EU19N ZXNoMERFbGVtZW50OjpDaGFuZ2VOb2Rlcyhjb25zdCBTTURTX01lc2hOb2RlKiBub2Rlc1tdLCBj b25zdCBpbnQgbmJOCisgICB7CisgICAgIHZ0a1Vuc3RydWN0dXJlZEdyaWQqIGdyaWQgPSBTTURT X01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKTsKKyAgICAgdnRrSWRUeXBlIG5w dHMgPSAwOworLSAgICB2dGtJZFR5cGUqIHB0cyA9IDA7CisrICAgIHZ0a0lkVHlwZVB0ciBwdHMg PSAwOworICAgICBncmlkLT5HZXRDZWxsUG9pbnRzKG15VnRrSUQsIG5wdHMsIHB0cyk7CisgICAg IGlmIChuYk5vZGVzICE9IG5wdHMpCisgICAgIHsKK0BAIC0xNTUsNyArMTU1LDExIEBAIGJvb2wg U01EU19NZXNoMERFbGVtZW50OjpDaGFuZ2VOb2Rlcyhjb25zdCBTTURTX01lc2hOb2RlKiBub2Rl c1tdLCBjb25zdCBpbnQgbmJOCisgICAgICAgcmV0dXJuIGZhbHNlOworICAgICB9CisgICAgIG15 Tm9kZSA9IG5vZGVzWzBdOworKyNpZmRlZiBWVEtfQ0VMTF9BUlJBWV9WMgorKy8vRklYTUU6IHZ0 azkKKysjZWxzZQorICAgICBwdHNbMF0gPSBteU5vZGUtPmdldFZ0a0lkKCk7CisrI2VuZGlmCisg CisgICAgIFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+c2V0TXlNb2RpZmllZCgpOwor ICAgICByZXR1cm4gdHJ1ZTsKK2RpZmYgLS1naXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3Ny Yy9TTURTL1NNRFNfTWVzaE5vZGUuY3BwIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9T TURTL1NNRFNfTWVzaE5vZGUuY3BwCitpbmRleCBmNjQ3YTVmMWIuLjViOTAzYzhmYiAxMDA2NDQK Ky0tLSBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19NZXNoTm9kZS5jcHAK KysrKyBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19NZXNoTm9kZS5jcHAK K0BAIC0xOTEsNyArMTkxLDcgQEAgcHVibGljOgorIFNNRFNfRWxlbUl0ZXJhdG9yUHRyIFNNRFNf TWVzaE5vZGU6OgorIEdldEludmVyc2VFbGVtZW50SXRlcmF0b3IoU01EU0Fic19FbGVtZW50VHlw ZSB0eXBlKSBjb25zdAorIHsKKy0gIHZ0a0NlbGxMaW5rczo6TGluayBsID0gU01EU19NZXNoOjpf bWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCktPkdldENlbGxMaW5rcygpLT5HZXRMaW5rKG15 VnRrSUQpOworKyAgdnRrQ2VsbExpbmtzOjpMaW5rIGwgPSBzdGF0aWNfY2FzdDx2dGtDZWxsTGlu a3MqPihTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKS0+R2V0Q2VsbExp bmtzKCkpLT5HZXRMaW5rKG15VnRrSUQpOworICAgLy9NRVNTQUdFKCJteUlEICIgPDwgbXlJRCA8 PCAiIG5jZWxscyAiIDw8IGwubmNlbGxzKTsKKyAgIHJldHVybiBTTURTX0VsZW1JdGVyYXRvclB0 cihuZXcgU01EU19NZXNoTm9kZV9NeUludkl0ZXJhdG9yKFNNRFNfTWVzaDo6X21lc2hMaXN0W215 TWVzaElkXSwgbC5jZWxscywgbC5uY2VsbHMsIHR5cGUpKTsKKyB9CitAQCAtMjUxLDcgKzI1MSw3 IEBAIGVsZW1lbnRzSXRlcmF0b3IoU01EU0Fic19FbGVtZW50VHlwZSB0eXBlKSBjb25zdAorICAg ICByZXR1cm4gU01EU19NZXNoRWxlbWVudDo6ZWxlbWVudHNJdGVyYXRvcihTTURTQWJzX05vZGUp OworICAgZWxzZQorICAgeworLSAgICB2dGtDZWxsTGlua3M6OkxpbmsgbCA9IFNNRFNfTWVzaDo6 X21lc2hMaXN0W215TWVzaElkXS0+Z2V0R3JpZCgpLT5HZXRDZWxsTGlua3MoKS0+R2V0TGluayht eVZ0a0lEKTsKKysgICAgdnRrQ2VsbExpbmtzOjpMaW5rIGwgPSBzdGF0aWNfY2FzdDx2dGtDZWxs TGlua3MqPihTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKS0+R2V0Q2Vs bExpbmtzKCkpLT5HZXRMaW5rKG15VnRrSUQpOworICAgICByZXR1cm4gU01EU19FbGVtSXRlcmF0 b3JQdHIobmV3IFNNRFNfTWVzaE5vZGVfTXlJdGVyYXRvcihTTURTX01lc2g6Ol9tZXNoTGlzdFtt eU1lc2hJZF0sIGwuY2VsbHMsIGwubmNlbGxzLCB0eXBlKSk7CisgICB9CisgfQorQEAgLTM1MCw3 ICszNTAsNyBAQCB2b2lkIFNNRFNfTWVzaE5vZGU6OkFkZEludmVyc2VFbGVtZW50KGNvbnN0IFNN RFNfTWVzaEVsZW1lbnQqIE1FKQorICAgY29uc3QgU01EU19NZXNoQ2VsbCAqY2VsbCA9IGR5bmFt aWNfY2FzdDxjb25zdCBTTURTX01lc2hDZWxsKj4gKE1FKTsKKyAgIGFzc2VydChjZWxsKTsKKyAg IFNNRFNfVW5zdHJ1Y3R1cmVkR3JpZCogZ3JpZCA9IFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVz aElkXS0+Z2V0R3JpZCgpOworLSAgdnRrQ2VsbExpbmtzICpMaW5rcyA9IGdyaWQtPkdldENlbGxM aW5rcygpOworKyAgdnRrQ2VsbExpbmtzICpMaW5rcyA9IHN0YXRpY19jYXN0PHZ0a0NlbGxMaW5r cyo+KGdyaWQtPkdldENlbGxMaW5rcygpKTsKKyAgIExpbmtzLT5SZXNpemVDZWxsTGlzdChteVZ0 a0lELCAxKTsKKyAgIExpbmtzLT5BZGRDZWxsUmVmZXJlbmNlKGNlbGwtPmdldFZ0a0lkKCksIG15 VnRrSUQpOworIH0KK0BAIC0zNjYsNyArMzY2LDcgQEAgdm9pZCBTTURTX01lc2hOb2RlOjpDbGVh ckludmVyc2VFbGVtZW50cygpCisgCisgYm9vbCBTTURTX01lc2hOb2RlOjplbXB0eUludmVyc2VF bGVtZW50cygpCisgeworLSAgdnRrQ2VsbExpbmtzOjpMaW5rIGwgPSBTTURTX01lc2g6Ol9tZXNo TGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKS0+R2V0Q2VsbExpbmtzKCktPkdldExpbmsobXlWdGtJ RCk7CisrICB2dGtDZWxsTGlua3M6OkxpbmsgbCA9IHN0YXRpY19jYXN0PHZ0a0NlbGxMaW5rcyo+ KFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+Z2V0R3JpZCgpLT5HZXRDZWxsTGlua3Mo KSktPkdldExpbmsobXlWdGtJRCk7CisgICByZXR1cm4gKGwubmNlbGxzID09IDApOworIH0KKyAK K0BAIC0zNzgsNyArMzc4LDcgQEAgYm9vbCBTTURTX01lc2hOb2RlOjplbXB0eUludmVyc2VFbGVt ZW50cygpCisgCisgaW50IFNNRFNfTWVzaE5vZGU6Ok5iSW52ZXJzZUVsZW1lbnRzKFNNRFNBYnNf RWxlbWVudFR5cGUgdHlwZSkgY29uc3QKKyB7CistICB2dGtDZWxsTGlua3M6OkxpbmsgbCA9IFNN RFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+Z2V0R3JpZCgpLT5HZXRDZWxsTGlua3MoKS0+ R2V0TGluayhteVZ0a0lEKTsKKysgIHZ0a0NlbGxMaW5rczo6TGluayBsID0gc3RhdGljX2Nhc3Q8 dnRrQ2VsbExpbmtzKj4oU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCkt PkdldENlbGxMaW5rcygpKS0+R2V0TGluayhteVZ0a0lEKTsKKyAKKyAgIGlmICggdHlwZSA9PSBT TURTQWJzX0FsbCApCisgICAgIHJldHVybiBsLm5jZWxsczsKK2RpZmYgLS1naXQgc3JjLzNyZFBh cnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVW5zdHJ1Y3R1cmVkR3JpZC5jcHAgYi9zcmMv M3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19VbnN0cnVjdHVyZWRHcmlkLmNwcAor aW5kZXggZmJkOTAzYjFlLi4xOWNjZWJjYWIgMTAwNjQ0CistLS0gc3JjLzNyZFBhcnR5L3NhbG9t ZXNtZXNoL3NyYy9TTURTL1NNRFNfVW5zdHJ1Y3R1cmVkR3JpZC5jcHAKKysrKyBzcmMvM3JkUGFy dHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19VbnN0cnVjdHVyZWRHcmlkLmNwcAorQEAgLTEz OSw4ICsxMzksOCBAQCBpbnQgU01EU19VbnN0cnVjdHVyZWRHcmlkOjpJbnNlcnROZXh0TGlua2Vk Q2VsbChpbnQgdHlwZSwgaW50IG5wdHMsIHZ0a0lkVHlwZSAqcAorICAgZm9yICg7IGl0ICE9IHNl dE9mTm9kZXMuZW5kKCk7ICsraXQpCisgICAgIHsKKyAgICAgICAvL01FU1NBR0UoInJldmVyc2Ug bGluayBmb3Igbm9kZSAiIDw8ICppdCA8PCAiIGNlbGwgIiA8PCBjZWxsaWQpOworLSAgICAgIHRo aXMtPkxpbmtzLT5SZXNpemVDZWxsTGlzdCgqaXQsIDEpOworLSAgICAgIHRoaXMtPkxpbmtzLT5B ZGRDZWxsUmVmZXJlbmNlKGNlbGxpZCwgKml0KTsKKysgICAgICB0aGlzLT5HZXRMaW5rcygpLT5S ZXNpemVDZWxsTGlzdCgqaXQsIDEpOworKyAgICAgIHRoaXMtPkdldExpbmtzKCktPkFkZENlbGxS ZWZlcmVuY2UoY2VsbGlkLCAqaXQpOworICAgICB9CisgCisgICByZXR1cm4gY2VsbGlkOworQEAg LTMzMiw5ICszMzIsMTMgQEAgdm9pZCBTTURTX1Vuc3RydWN0dXJlZEdyaWQ6OmNvcHlCbG9jKHZ0 a1Vuc2lnbmVkQ2hhckFycmF5ICpuZXdUeXBlcywKKyAgICAgeworICAgICAgIG5ld1R5cGVzLT5T ZXRWYWx1ZShhbHJlYWR5Q29waWVkLCB0aGlzLT5UeXBlcy0+R2V0VmFsdWUoaikpOworICAgICAg IGlkQ2VsbHNPbGRUb05ld1tqXSA9IGFscmVhZHlDb3BpZWQ7IC8vIG9sZCB2dGtJZCAtLT4gbmV3 IHZ0a0lkCisrI2lmZGVmIFZUS19DRUxMX0FSUkFZX1YyCisrICAgICAgdnRrSWRUeXBlIG9sZExv YzsgLy9GSVhNRTogdnRrOQorKyNlbHNlCisgICAgICAgdnRrSWRUeXBlIG9sZExvYyA9IHRoaXMt PkxvY2F0aW9ucy0+R2V0VmFsdWUoaik7CisrI2VuZGlmCisgICAgICAgdnRrSWRUeXBlIG5icHRz OworLSAgICAgIHZ0a0lkVHlwZSAqb2xkUHRzQ2VsbCA9IDA7CisrICAgICAgdnRrSWRUeXBlUHRy IG9sZFB0c0NlbGwgPSAwOworICAgICAgIHRoaXMtPkNvbm5lY3Rpdml0eS0+R2V0Q2VsbChvbGRM b2MsIG5icHRzLCBvbGRQdHNDZWxsKTsKKyAgICAgICBhc3NlcnQobmJwdHMgPCBOQk1BWE5PREVT SU5DRUxMKTsKKyAgICAgICAvL01FU1NBR0UoaiA8PCAiICIgPDwgYWxyZWFkeUNvcGllZCA8PCAi ICIgPDwgKGludCl0aGlzLT5UeXBlcy0+R2V0VmFsdWUoaikgPDwgIiAiIDw8IG9sZExvYyA8PCAi ICIgPDwgbmJwdHMgKTsKK0BAIC05NTMsMTQgKzk1NywxOCBAQCB2b2lkIFNNRFNfVW5zdHJ1Y3R1 cmVkR3JpZDo6R2V0Tm9kZUlkcyhzdGQ6OnNldDxpbnQ+JiBub2RlU2V0LCBpbnQgZG93bklkLCB1 bnNpZworIHZvaWQgU01EU19VbnN0cnVjdHVyZWRHcmlkOjpNb2RpZnlDZWxsTm9kZXMoaW50IHZ0 a1ZvbElkLCBzdGQ6Om1hcDxpbnQsIGludD4gbG9jYWxDbG9uZWROb2RlSWRzKQorIHsKKyAgIHZ0 a0lkVHlwZSBucHRzID0gMDsKKy0gIHZ0a0lkVHlwZSAqcHRzOyAvLyB3aWxsIHJlZmVyIHRvIHRo ZSBwb2ludCBpZCdzIG9mIHRoZSBmYWNlCisrICB2dGtJZFR5cGVQdHIgcHRzOyAvLyB3aWxsIHJl ZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSBmYWNlCisgICB0aGlzLT5HZXRDZWxsUG9pbnRz KHZ0a1ZvbElkLCBucHRzLCBwdHMpOworICAgZm9yIChpbnQgaSA9IDA7IGkgPCBucHRzOyBpKysp CisgICAgIHsKKyAgICAgICBpZiAobG9jYWxDbG9uZWROb2RlSWRzLmNvdW50KHB0c1tpXSkpCisg ICAgICAgICB7CisgICAgICAgICAgIHZ0a0lkVHlwZSBvbGRwdCA9IHB0c1tpXTsKKysjaWZkZWYg VlRLX0NFTExfQVJSQVlfVjIKKysvL0ZJWE1FOiB2dGs5CisrI2Vsc2UKKyAgICAgICAgICAgcHRz W2ldID0gbG9jYWxDbG9uZWROb2RlSWRzW29sZHB0XTsKKysjZW5kaWYKKyAgICAgICAgICAgLy9N RVNTQUdFKG9sZHB0IDw8ICIgLS0+ICIgPDwgcHRzW2ldKTsKKyAgICAgICAgICAgLy90aGlzLT5S ZW1vdmVSZWZlcmVuY2VUb0NlbGwob2xkcHQsIHZ0a1ZvbElkKTsKKyAgICAgICAgICAgLy90aGlz LT5BZGRSZWZlcmVuY2VUb0NlbGwocHRzW2ldLCB2dGtWb2xJZCk7CitAQCAtOTk1LDExICsxMDAz LDIwIEBAIHZvaWQgU01EU19VbnN0cnVjdHVyZWRHcmlkOjpCdWlsZExpbmtzKCkKKyAgICAgdGhp cy0+TGlua3MtPlVuUmVnaXN0ZXIodGhpcyk7CisgICAgIH0KKyAKKysjaWZkZWYgVlRLX0NFTExf QVJSQVlfVjIKKysvL0ZJWE1FOiB2dGs5CisrICB0aGlzLT5MaW5rcyA9IFNNRFNfQ2VsbExpbmtz OjpOZXcoKTsKKysgIC8vdGhpcy0+TGlua3MtPkFsbG9jYXRlKHRoaXMtPkdldE51bWJlck9mUG9p bnRzKCkpOworKyAgdGhpcy0+TGlua3MtPlJlZ2lzdGVyKHRoaXMpOworKyAgLy90aGlzLT5MaW5r cy0+QnVpbGRMaW5rcyh0aGlzLCB0aGlzLT5Db25uZWN0aXZpdHkpOworKyAgdGhpcy0+TGlua3Mt PkRlbGV0ZSgpOworKyNlbHNlCisgICB0aGlzLT5MaW5rcyA9IFNNRFNfQ2VsbExpbmtzOjpOZXco KTsKKyAgIHRoaXMtPkxpbmtzLT5BbGxvY2F0ZSh0aGlzLT5HZXROdW1iZXJPZlBvaW50cygpKTsK KyAgIHRoaXMtPkxpbmtzLT5SZWdpc3Rlcih0aGlzKTsKKyAgIHRoaXMtPkxpbmtzLT5CdWlsZExp bmtzKHRoaXMsIHRoaXMtPkNvbm5lY3Rpdml0eSk7CisgICB0aGlzLT5MaW5rcy0+RGVsZXRlKCk7 CisrI2VuZGlmCisgfQorIAorIC8qISBDcmVhdGUgYSB2b2x1bWUgKHByaXNtIG9yIGhleGFoZWRy b24pIGJ5IGR1cGxpY2F0aW9uIG9mIGEgZmFjZS4KK2RpZmYgLS1naXQgc3JjLzNyZFBhcnR5L3Nh bG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVnRrQ2VsbEl0ZXJhdG9yLmNwcCBiL3NyYy8zcmRQYXJ0 eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a0NlbGxJdGVyYXRvci5jcHAKK2luZGV4IGRl YjA1OTg1Zi4uNjNiNmVhYmI3IDEwMDY0NAorLS0tIHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9z cmMvU01EUy9TTURTX1Z0a0NlbGxJdGVyYXRvci5jcHAKKysrKyBzcmMvM3JkUGFydHkvc2Fsb21l c21lc2gvc3JjL1NNRFMvU01EU19WdGtDZWxsSXRlcmF0b3IuY3BwCitAQCAtMzMsNyArMzMsOCBA QCBTTURTX1Z0a0NlbGxJdGVyYXRvcjo6U01EU19WdGtDZWxsSXRlcmF0b3IoU01EU19NZXNoKiBt ZXNoLCBpbnQgdnRrQ2VsbElkLCBTTURTQQorICAgfQorICAgZWxzZQorICAgeworLSAgICB2dGtJ ZFR5cGUgbnB0cywgKnB0czsKKysgICAgdnRrSWRUeXBlIG5wdHM7CisrICAgIHZ0a0lkVHlwZVB0 ciBwdHM7CisgICAgIGdyaWQtPkdldENlbGxQb2ludHMoIF9jZWxsSWQsIG5wdHMsIHB0cyApOwor ICAgICBfdnRrSWRMaXN0LT5TZXROdW1iZXJPZklkcyggX25iTm9kZXMgPSBucHRzICk7CisgICAg IGZvciAoaW50IGkgPSAwOyBpIDwgX25iTm9kZXM7IGkrKykKK0BAIC02Nyw3ICs2OCw3IEBAIFNN RFNfVnRrQ2VsbEl0ZXJhdG9yVG9VTlY6OlNNRFNfVnRrQ2VsbEl0ZXJhdG9yVG9VTlYoU01EU19N ZXNoKiBtZXNoLCBpbnQgdnRrQ2VsCisgICAvL01FU1NBR0UoIlNNRFNfVnRrQ2VsbEludGVybGFj ZWRJdGVyYXRvciAoVU5WKSIgPDwgX3R5cGUpOworIAorICAgX3Z0a0lkTGlzdCA9IHZ0a0lkTGlz dDo6TmV3KCk7CistICB2dGtJZFR5cGUqIHB0czsKKysgIHZ0a0lkVHlwZVB0ciBwdHM7CisgICB2 dGtJZFR5cGUgbnB0czsKKyAgIHZ0a1Vuc3RydWN0dXJlZEdyaWQqIGdyaWQgPSBfbWVzaC0+Z2V0 R3JpZCgpOworICAgZ3JpZC0+R2V0Q2VsbFBvaW50cygodnRrSWRUeXBlKV9jZWxsSWQsIG5wdHMs IHB0cyk7CitAQCAtMTgyLDcgKzE4Myw3IEBAIFNNRFNfVnRrQ2VsbEl0ZXJhdG9yUG9seUg6OlNN RFNfVnRrQ2VsbEl0ZXJhdG9yUG9seUgoU01EU19NZXNoKiBtZXNoLCBpbnQgdnRrQ2VsCisgICB7 CisgICAgIC8vTUVTU0FHRSgiU01EU19WdGtDZWxsSXRlcmF0b3IgUG9seWhlZHJhIik7CisgICAg IHZ0a0lkVHlwZSBuRmFjZXMgPSAwOworLSAgICB2dGtJZFR5cGUqIHB0SWRzID0gMDsKKysgICAg dnRrSWRUeXBlUHRyIHB0SWRzID0gMDsKKyAgICAgZ3JpZC0+R2V0RmFjZVN0cmVhbShfY2VsbElk LCBuRmFjZXMsIHB0SWRzKTsKKyAgICAgaW50IGlkID0gMDsKKyAgICAgX25iTm9kZXNJbkZhY2Vz ID0gMDsKK2RpZmYgLS1naXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNf VnRrRWRnZS5jcHAgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtF ZGdlLmNwcAoraW5kZXggOTc4NmFiZjlhLi41OGQyZGYzY2YgMTAwNjQ0CistLS0gc3JjLzNyZFBh cnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVnRrRWRnZS5jcHAKKysrKyBzcmMvM3JkUGFy dHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtFZGdlLmNwcAorQEAgLTY4LDcgKzY4LDcg QEAgYm9vbCBTTURTX1Z0a0VkZ2U6OkNoYW5nZU5vZGVzKGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5v ZGVzW10sIGNvbnN0IGludCBuYk5vZGVzKQorIHsKKyAgIHZ0a1Vuc3RydWN0dXJlZEdyaWQqIGdy aWQgPSBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKTsKKyAgIHZ0a0lk VHlwZSBucHRzID0gMDsKKy0gIHZ0a0lkVHlwZSogcHRzID0gMDsKKysgIHZ0a0lkVHlwZVB0ciBw dHMgPSAwOworICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyhteVZ0a0lELCBucHRzLCBwdHMpOworICAg aWYgKG5iTm9kZXMgIT0gbnB0cykKKyAgICAgeworQEAgLTc3LDcgKzc3LDExIEBAIGJvb2wgU01E U19WdGtFZGdlOjpDaGFuZ2VOb2Rlcyhjb25zdCBTTURTX01lc2hOb2RlKiBub2Rlc1tdLCBjb25z dCBpbnQgbmJOb2RlcykKKyAgICAgfQorICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYk5vZGVzOyBp KyspCisgICAgIHsKKysjaWZkZWYgVlRLX0NFTExfQVJSQVlfVjIKKysvL0ZJWE1FOiB2dGs5Cisr I2Vsc2UKKyAgICAgICBwdHNbaV0gPSBub2Rlc1tpXS0+Z2V0VnRrSWQoKTsKKysjZW5kaWYKKyAg ICAgfQorICAgU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5zZXRNeU1vZGlmaWVkKCk7 CisgICByZXR1cm4gdHJ1ZTsKK0BAIC04Nyw3ICs5MSw3IEBAIGJvb2wgU01EU19WdGtFZGdlOjpJ c01lZGl1bU5vZGUoY29uc3QgU01EU19NZXNoTm9kZSogbm9kZSkgY29uc3QKKyB7CisgICB2dGtV bnN0cnVjdHVyZWRHcmlkKiBncmlkID0gU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5n ZXRHcmlkKCk7CisgICB2dGtJZFR5cGUgbnB0cyA9IDA7CistICB2dGtJZFR5cGUqIHB0cyA9IDA7 CisrICB2dGtJZFR5cGVQdHIgcHRzID0gMDsKKyAgIGdyaWQtPkdldENlbGxQb2ludHMobXlWdGtJ RCwgbnB0cywgcHRzKTsKKyAgIC8vTUVTU0FHRSgiSXNNZWRpdW1Ob2RlICIgPDwgbnB0cyAgPDwg IiAiIDw8IChub2RlLT5nZXRWdGtJZCgpID09IHB0c1tucHRzLTFdKSk7CisgICByZXR1cm4gKChu cHRzID09IDMpICYmIChub2RlLT5nZXRWdGtJZCgpID09IHB0c1syXSkpOworQEAgLTEzNyw3ICsx NDEsOCBAQCBjb25zdCBTTURTX01lc2hOb2RlKgorIFNNRFNfVnRrRWRnZTo6R2V0Tm9kZShjb25z dCBpbnQgaW5kKSBjb25zdAorIHsKKyAgIHZ0a1Vuc3RydWN0dXJlZEdyaWQqIGdyaWQgPSBTTURT X01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKTsKKy0gIHZ0a0lkVHlwZSBucHRz LCAqcHRzOworKyAgdnRrSWRUeXBlIG5wdHM7CisrICB2dGtJZFR5cGVQdHIgcHRzOworICAgZ3Jp ZC0+R2V0Q2VsbFBvaW50cyggdGhpcy0+bXlWdGtJRCwgbnB0cywgcHRzICk7CisgICByZXR1cm4g U01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5GaW5kTm9kZVZ0ayggcHRzWyBpbmQgXSk7 CisgfQorZGlmZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19W dGtGYWNlLmNwcCBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a0Zh Y2UuY3BwCitpbmRleCAxMzg5ZTBkMzUuLmE5MjYwMWYxZSAxMDA2NDQKKy0tLSBzcmMvM3JkUGFy dHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtGYWNlLmNwcAorKysrIHNyYy8zcmRQYXJ0 eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a0ZhY2UuY3BwCitAQCAtMTAyLDcgKzEwMiw3 IEBAIGJvb2wgU01EU19WdGtGYWNlOjpDaGFuZ2VOb2Rlcyhjb25zdCBTTURTX01lc2hOb2RlKiBu b2Rlc1tdLCBjb25zdCBpbnQgbmJOb2RlcykKKyB7CisgICB2dGtVbnN0cnVjdHVyZWRHcmlkKiBn cmlkID0gU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCk7CisgICB2dGtJ ZFR5cGUgbnB0cyA9IDA7CistICB2dGtJZFR5cGUqIHB0cyA9IDA7CisrICB2dGtJZFR5cGVQdHIg cHRzID0gMDsKKyAgIGdyaWQtPkdldENlbGxQb2ludHMobXlWdGtJRCwgbnB0cywgcHRzKTsKKyAg IGlmIChuYk5vZGVzICE9IG5wdHMpCisgICAgIHsKK0BAIC0xMTEsNyArMTExLDExIEBAIGJvb2wg U01EU19WdGtGYWNlOjpDaGFuZ2VOb2Rlcyhjb25zdCBTTURTX01lc2hOb2RlKiBub2Rlc1tdLCBj b25zdCBpbnQgbmJOb2RlcykKKyAgICAgfQorICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYk5vZGVz OyBpKyspCisgICAgIHsKKysjaWZkZWYgVlRLX0NFTExfQVJSQVlfVjIKKysvL0ZJWE1FOiB2dGs5 CisrI2Vsc2UKKyAgICAgICBwdHNbaV0gPSBub2Rlc1tpXS0+Z2V0VnRrSWQoKTsKKysjZW5kaWYK KyAgICAgfQorICAgU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5zZXRNeU1vZGlmaWVk KCk7CisgICByZXR1cm4gdHJ1ZTsKK0BAIC0xNzMsNyArMTc3LDggQEAgY29uc3QgU01EU19NZXNo Tm9kZSoKKyBTTURTX1Z0a0ZhY2U6OkdldE5vZGUoY29uc3QgaW50IGluZCkgY29uc3QKKyB7Cisg ICB2dGtVbnN0cnVjdHVyZWRHcmlkKiBncmlkID0gU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNo SWRdLT5nZXRHcmlkKCk7CistICB2dGtJZFR5cGUgbnB0cywgKnB0czsKKysgIHZ0a0lkVHlwZSBu cHRzOworKyAgdnRrSWRUeXBlUHRyIHB0czsKKyAgIGdyaWQtPkdldENlbGxQb2ludHMoIHRoaXMt Pm15VnRrSUQsIG5wdHMsIHB0cyApOworICAgcmV0dXJuIFNNRFNfTWVzaDo6X21lc2hMaXN0W215 TWVzaElkXS0+RmluZE5vZGVWdGsoIHB0c1sgaW5kIF0pOworIH0KK0BAIC0xODYsNyArMTkxLDgg QEAgU01EU19WdGtGYWNlOjpHZXROb2RlKGNvbnN0IGludCBpbmQpIGNvbnN0CisgaW50IFNNRFNf VnRrRmFjZTo6R2V0Tm9kZUluZGV4KCBjb25zdCBTTURTX01lc2hOb2RlKiBub2RlICkgY29uc3QK KyB7CisgICB2dGtVbnN0cnVjdHVyZWRHcmlkKiBncmlkID0gU01EU19NZXNoOjpfbWVzaExpc3Rb bXlNZXNoSWRdLT5nZXRHcmlkKCk7CistICB2dGtJZFR5cGUgbnB0cywgKnB0czsKKysgIHZ0a0lk VHlwZSBucHRzOworKyAgdnRrSWRUeXBlUHRyIHB0czsKKyAgIGdyaWQtPkdldENlbGxQb2ludHMo IHRoaXMtPm15VnRrSUQsIG5wdHMsIHB0cyApOworICAgZm9yICggdnRrSWRUeXBlIGkgPSAwOyBp IDwgbnB0czsgKytpICkKKyAgICAgaWYgKCBwdHNbaV0gPT0gbm9kZS0+Z2V0VnRrSWQoKSApCitA QCAtMjUxLDcgKzI1Nyw3IEBAIGJvb2wgU01EU19WdGtGYWNlOjpJc01lZGl1bU5vZGUoY29uc3Qg U01EU19NZXNoTm9kZSogbm9kZSkgY29uc3QKKyAgICAgcmV0dXJuIGZhbHNlOworICAgfQorICAg dnRrSWRUeXBlIG5wdHMgPSAwOworLSAgdnRrSWRUeXBlKiBwdHMgPSAwOworKyAgdnRrSWRUeXBl UHRyIHB0cyA9IDA7CisgICBncmlkLT5HZXRDZWxsUG9pbnRzKG15VnRrSUQsIG5wdHMsIHB0cyk7 CisgICB2dGtJZFR5cGUgbm9kZUlkID0gbm9kZS0+Z2V0VnRrSWQoKTsKKyAgIGZvciAoaW50IHJh bmsgPSAwOyByYW5rIDwgbnB0czsgcmFuaysrKQorQEAgLTM1NywxMCArMzYzLDE0IEBAIHZvaWQg U01EU19WdGtGYWNlOjpDaGFuZ2VBcGV4KFNNRFNfTWVzaE5vZGUqIG5vZGUpCisgeworICAgdnRr VW5zdHJ1Y3R1cmVkR3JpZCogZ3JpZCA9IFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+ Z2V0R3JpZCgpOworICAgdnRrSWRUeXBlIG5wdHMgPSAwOworLSAgdnRrSWRUeXBlKiBwdHMgPSAw OworKyAgdnRrSWRUeXBlUHRyIHB0cyA9IDA7CisgICBncmlkLT5HZXRDZWxsUG9pbnRzKG15VnRr SUQsIG5wdHMsIHB0cyk7CisgICBncmlkLT5SZW1vdmVSZWZlcmVuY2VUb0NlbGwocHRzWzBdLCBt eVZ0a0lEKTsKKysjaWZkZWYgVlRLX0NFTExfQVJSQVlfVjIKKysvL0ZJWE1FOiB2dGs5CisrI2Vs c2UKKyAgIHB0c1swXSA9IG5vZGUtPmdldFZ0a0lkKCk7CisrI2VuZGlmCisgICBub2RlLT5BZGRJ bnZlcnNlRWxlbWVudCh0aGlzKSwKKyAgIFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+ c2V0TXlNb2RpZmllZCgpOworIH0KK2RpZmYgLS1naXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNo L3NyYy9TTURTL1NNRFNfVnRrVm9sdW1lLmNwcCBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9z cmMvU01EUy9TTURTX1Z0a1ZvbHVtZS5jcHAKK2luZGV4IDAxNWVkZjc1Zi4uZGEyZjczZmZiIDEw MDY0NAorLS0tIHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a1ZvbHVt ZS5jcHAKKysrKyBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtWb2x1 bWUuY3BwCitAQCAtMTM0LDcgKzEzNCw3IEBAIGJvb2wgU01EU19WdGtWb2x1bWU6OkNoYW5nZU5v ZGVzKGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGVzW10sIGNvbnN0IGludCBuYk5vZGVzCisgewor ICAgdnRrVW5zdHJ1Y3R1cmVkR3JpZCogZ3JpZCA9IFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVz aElkXS0+Z2V0R3JpZCgpOworICAgdnRrSWRUeXBlIG5wdHMgPSAwOworLSAgdnRrSWRUeXBlKiBw dHMgPSAwOworKyAgdnRrSWRUeXBlUHRyIHB0cyA9IDA7CisgICBncmlkLT5HZXRDZWxsUG9pbnRz KG15VnRrSUQsIG5wdHMsIHB0cyk7CisgICBpZiAobmJOb2RlcyAhPSBucHRzKQorICAgICB7CitA QCAtMTQzLDcgKzE0MywxMSBAQCBib29sIFNNRFNfVnRrVm9sdW1lOjpDaGFuZ2VOb2Rlcyhjb25z dCBTTURTX01lc2hOb2RlKiBub2Rlc1tdLCBjb25zdCBpbnQgbmJOb2RlcworICAgICB9CisgICBm b3IgKGludCBpID0gMDsgaSA8IG5iTm9kZXM7IGkrKykKKyAgICAgeworKyNpZmRlZiBWVEtfQ0VM TF9BUlJBWV9WMgorKy8vRklYTUU6IHZ0azkKKysjZWxzZQorICAgICAgIHB0c1tpXSA9IG5vZGVz W2ldLT5nZXRWdGtJZCgpOworKyNlbmRpZgorICAgICB9CisgICBTTURTX01lc2g6Ol9tZXNoTGlz dFtteU1lc2hJZF0tPnNldE15TW9kaWZpZWQoKTsKKyAgIHJldHVybiB0cnVlOworQEAgLTIwNyw3 ICsyMTEsNyBAQCBpbnQgU01EU19WdGtWb2x1bWU6Ok5iRmFjZXMoKSBjb25zdAorICAgICBjYXNl IFZUS19QT0xZSEVEUk9OOgorICAgICAgIHsKKyAgICAgICAgIHZ0a0lkVHlwZSBuRmFjZXMgPSAw OworLSAgICAgICAgdnRrSWRUeXBlKiBwdElkcyA9IDA7CisrICAgICAgICB2dGtJZFR5cGVQdHIg cHRJZHMgPSAwOworICAgICAgICAgZ3JpZC0+R2V0RmFjZVN0cmVhbSh0aGlzLT5teVZ0a0lELCBu RmFjZXMsIHB0SWRzKTsKKyAgICAgICAgIG5iRmFjZXMgPSBuRmFjZXM7CisgICAgICAgICBicmVh azsKK0BAIC0yMzYsNyArMjQwLDcgQEAgaW50IFNNRFNfVnRrVm9sdW1lOjpOYk5vZGVzKCkgY29u c3QKKyAgIGVsc2UKKyAgICAgeworICAgICAgIHZ0a0lkVHlwZSBuRmFjZXMgPSAwOworLSAgICAg IHZ0a0lkVHlwZSogcHRJZHMgPSAwOworKyAgICAgIHZ0a0lkVHlwZVB0ciBwdElkcyA9IDA7Cisg ICAgICAgZ3JpZC0+R2V0RmFjZVN0cmVhbSh0aGlzLT5teVZ0a0lELCBuRmFjZXMsIHB0SWRzKTsK KyAgICAgICBpbnQgaWQgPSAwOworICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbkZhY2VzOyBp KyspCitAQCAtMjc2LDcgKzI4MCw3IEBAIGludCBTTURTX1Z0a1ZvbHVtZTo6TmJFZGdlcygpIGNv bnN0CisgICAgIGNhc2UgVlRLX1BPTFlIRURST046CisgICAgICAgeworICAgICAgICAgdnRrSWRU eXBlIG5GYWNlcyA9IDA7CistICAgICAgICB2dGtJZFR5cGUqIHB0SWRzID0gMDsKKysgICAgICAg IHZ0a0lkVHlwZVB0ciBwdElkcyA9IDA7CisgICAgICAgICBncmlkLT5HZXRGYWNlU3RyZWFtKHRo aXMtPm15VnRrSUQsIG5GYWNlcywgcHRJZHMpOworICAgICAgICAgbmJFZGdlcyA9IDA7CisgICAg ICAgICBpbnQgaWQgPSAwOworQEAgLTMxMiw3ICszMTYsNyBAQCBpbnQgU01EU19WdGtWb2x1bWU6 Ok5iRmFjZU5vZGVzKGNvbnN0IGludCBmYWNlX2luZCkgY29uc3QKKyAgIGlmIChhVnRrVHlwZSA9 PSBWVEtfUE9MWUhFRFJPTikKKyAgICAgeworICAgICAgIHZ0a0lkVHlwZSBuRmFjZXMgPSAwOwor LSAgICAgIHZ0a0lkVHlwZSogcHRJZHMgPSAwOworKyAgICAgIHZ0a0lkVHlwZVB0ciBwdElkcyA9 IDA7CisgICAgICAgZ3JpZC0+R2V0RmFjZVN0cmVhbSh0aGlzLT5teVZ0a0lELCBuRmFjZXMsIHB0 SWRzKTsKKyAgICAgICBpbnQgaWQgPSAwOworICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbkZh Y2VzOyBpKyspCitAQCAtMzQyLDcgKzM0Niw3IEBAIGNvbnN0IFNNRFNfTWVzaE5vZGUqIFNNRFNf VnRrVm9sdW1lOjpHZXRGYWNlTm9kZShjb25zdCBpbnQgZmFjZV9pbmQsIGNvbnN0IGludCBuCisg ICBpZiAoYVZ0a1R5cGUgPT0gVlRLX1BPTFlIRURST04pCisgICAgIHsKKyAgICAgICB2dGtJZFR5 cGUgbkZhY2VzID0gMDsKKy0gICAgICB2dGtJZFR5cGUqIHB0SWRzID0gMDsKKysgICAgICB2dGtJ ZFR5cGVQdHIgcHRJZHMgPSAwOworICAgICAgIGdyaWQtPkdldEZhY2VTdHJlYW0odGhpcy0+bXlW dGtJRCwgbkZhY2VzLCBwdElkcyk7CisgICAgICAgaW50IGlkID0gMDsKKyAgICAgICBmb3IgKGlu dCBpID0gMDsgaSA8IG5GYWNlczsgaSsrKQorQEAgLTM3Miw3ICszNzYsNyBAQCBzdGQ6OnZlY3Rv cjxpbnQ+IFNNRFNfVnRrVm9sdW1lOjpHZXRRdWFudGl0aWVzKCkgY29uc3QKKyAgIGlmIChhVnRr VHlwZSA9PSBWVEtfUE9MWUhFRFJPTikKKyAgICAgeworICAgICAgIHZ0a0lkVHlwZSBuRmFjZXMg PSAwOworLSAgICAgIHZ0a0lkVHlwZSogcHRJZHMgPSAwOworKyAgICAgIHZ0a0lkVHlwZVB0ciBw dElkcyA9IDA7CisgICAgICAgZ3JpZC0+R2V0RmFjZVN0cmVhbSh0aGlzLT5teVZ0a0lELCBuRmFj ZXMsIHB0SWRzKTsKKyAgICAgICBpbnQgaWQgPSAwOworICAgICAgIGZvciAoaW50IGkgPSAwOyBp IDwgbkZhY2VzOyBpKyspCitAQCAtNDMwLDcgKzQzNCw3IEBAIGNvbnN0IFNNRFNfTWVzaE5vZGUq IFNNRFNfVnRrVm9sdW1lOjpHZXROb2RlKGNvbnN0IGludCBpbmQpIGNvbnN0CisgICBpZiAoIGFW dGtUeXBlID09IFZUS19QT0xZSEVEUk9OKQorICAgeworICAgICB2dGtJZFR5cGUgbkZhY2VzID0g MDsKKy0gICAgdnRrSWRUeXBlKiBwdElkcyA9IDA7CisrICAgIHZ0a0lkVHlwZVB0ciBwdElkcyA9 IDA7CisgICAgIGdyaWQtPkdldEZhY2VTdHJlYW0odGhpcy0+bXlWdGtJRCwgbkZhY2VzLCBwdElk cyk7CisgICAgIGludCBpZCA9IDAsIG5iUG9pbnRzID0gMDsKKyAgICAgZm9yIChpbnQgaSA9IDA7 IGkgPCBuRmFjZXM7IGkrKykKK0BAIC00NDMsNyArNDQ3LDggQEAgY29uc3QgU01EU19NZXNoTm9k ZSogU01EU19WdGtWb2x1bWU6OkdldE5vZGUoY29uc3QgaW50IGluZCkgY29uc3QKKyAgICAgfQor ICAgICByZXR1cm4gMDsKKyAgIH0KKy0gIHZ0a0lkVHlwZSBucHRzLCAqcHRzOworKyAgdnRrSWRU eXBlIG5wdHM7CisrICB2dGtJZFR5cGVQdHIgcHRzOworICAgZ3JpZC0+R2V0Q2VsbFBvaW50cygg dGhpcy0+bXlWdGtJRCwgbnB0cywgcHRzICk7CisgICBjb25zdCBzdGQ6OnZlY3RvcjxpbnQ+JiBp bnRlcmxhY2UgPSBTTURTX01lc2hDZWxsOjpmcm9tVnRrT3JkZXIoIFZUS0NlbGxUeXBlKCBhVnRr VHlwZSApKTsKKyAgIHJldHVybiBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPkZpbmRO b2RlVnRrKCBwdHNbIGludGVybGFjZS5lbXB0eSgpID8gaW5kIDogaW50ZXJsYWNlW2luZF1dICk7 CitAQCAtNDYwLDcgKzQ2NSw3IEBAIGludCBTTURTX1Z0a1ZvbHVtZTo6R2V0Tm9kZUluZGV4KCBj b25zdCBTTURTX01lc2hOb2RlKiBub2RlICkgY29uc3QKKyAgIGlmICggYVZ0a1R5cGUgPT0gVlRL X1BPTFlIRURST04pCisgICB7CisgICAgIHZ0a0lkVHlwZSBuRmFjZXMgPSAwOworLSAgICB2dGtJ ZFR5cGUqIHB0SWRzID0gMDsKKysgICAgdnRrSWRUeXBlUHRyIHB0SWRzID0gMDsKKyAgICAgZ3Jp ZC0+R2V0RmFjZVN0cmVhbSh0aGlzLT5teVZ0a0lELCBuRmFjZXMsIHB0SWRzKTsKKyAgICAgaW50 IGlkID0gMDsKKyAgICAgZm9yIChpbnQgaUYgPSAwOyBpRiA8IG5GYWNlczsgaUYrKykKK0BAIC00 NzMsNyArNDc4LDggQEAgaW50IFNNRFNfVnRrVm9sdW1lOjpHZXROb2RlSW5kZXgoIGNvbnN0IFNN RFNfTWVzaE5vZGUqIG5vZGUgKSBjb25zdAorICAgICB9CisgICAgIHJldHVybiAtMTsKKyAgIH0K Ky0gIHZ0a0lkVHlwZSBucHRzLCAqcHRzOworKyAgdnRrSWRUeXBlIG5wdHM7CisrICB2dGtJZFR5 cGVQdHIgcHRzOworICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyggdGhpcy0+bXlWdGtJRCwgbnB0cywg cHRzICk7CisgICBmb3IgKCB2dGtJZFR5cGUgaSA9IDA7IGkgPCBucHRzOyArK2kgKQorICAgICBp ZiAoIHB0c1tpXSA9PSBub2RlLT5nZXRWdGtJZCgpICkKK0BAIC01MzQsNyArNTQwLDcgQEAgYm9v bCBTTURTX1Z0a1ZvbHVtZTo6SXNNZWRpdW1Ob2RlKGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGUp IGNvbnN0CisgICAgICAgcmV0dXJuIGZhbHNlOworICAgfQorICAgdnRrSWRUeXBlIG5wdHMgPSAw OworLSAgdnRrSWRUeXBlKiBwdHMgPSAwOworKyAgdnRrSWRUeXBlUHRyIHB0cyA9IDA7CisgICBn cmlkLT5HZXRDZWxsUG9pbnRzKG15VnRrSUQsIG5wdHMsIHB0cyk7CisgICB2dGtJZFR5cGUgbm9k ZUlkID0gbm9kZS0+Z2V0VnRrSWQoKTsKKyAgIGZvciAoaW50IHJhbmsgPSAwOyByYW5rIDwgbnB0 czsgcmFuaysrKQorZGlmZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRVNI L1NNRVNIX01lc2hFZGl0b3IuY3BwIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTUVT SC9TTUVTSF9NZXNoRWRpdG9yLmNwcAoraW5kZXggYTc0MjcwMmZmLi4xZmY0ZDVlZWYgMTAwNjQ0 CistLS0gc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTUVTSC9TTUVTSF9NZXNoRWRpdG9y LmNwcAorKysrIHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01FU0gvU01FU0hfTWVzaEVk aXRvci5jcHAKK0BAIC0xMTM0Myw3ICsxMTM0Myw3IEBAIGJvb2wgU01FU0hfTWVzaEVkaXRvcjo6 RG91YmxlTm9kZXNPbkdyb3VwQm91bmRhcmllcyggY29uc3Qgc3RkOjp2ZWN0b3I8VElEU29ydGVk CisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgaW50IG9sZElkID0gKml0bjsKKyAgICAg ICAgICAgICAgIC8vTUVTU0FHRSgiICAgICBub2RlICIgPDwgb2xkSWQpOworLSAgICAgICAgICAg ICAgdnRrQ2VsbExpbmtzOjpMaW5rIGwgPSBncmlkLT5HZXRDZWxsTGlua3MoKS0+R2V0TGluayhv bGRJZCk7CisrICAgICAgICAgICAgICB2dGtDZWxsTGlua3M6OkxpbmsgbCA9IHN0YXRpY19jYXN0 PHZ0a0NlbGxMaW5rcyo+KGdyaWQtPkdldENlbGxMaW5rcygpKS0+R2V0TGluayhvbGRJZCk7Cisg ICAgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8bC5uY2VsbHM7IGkrKykKKyAgICAgICAgICAg ICAgICAgeworICAgICAgICAgICAgICAgICAgIGludCB2dGtJZCA9IGwuY2VsbHNbaV07CitAQCAt MTE1MjIsNyArMTE1MjIsNyBAQCBib29sIFNNRVNIX01lc2hFZGl0b3I6OkRvdWJsZU5vZGVzT25H cm91cEJvdW5kYXJpZXMoIGNvbnN0IHN0ZDo6dmVjdG9yPFRJRFNvcnRlZAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vTUVTU0FHRSgiICBkb21haW4gIiA8PCBp ZG9tIDw8ICIgdm9sdW1lICIgPDwgZWxlbS0+R2V0SUQoKSk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHZhbHVlc1szXTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2dGtJZFR5cGUgbnB0cyA9IDA7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnRrSWRUeXBlKiBwdHMgPSAwOwor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZ0a0lkVHlwZVB0ciBw dHMgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQt PkdldENlbGxQb2ludHModnRrVm9sSWRzW2l2b2xdLCBucHRzLCBwdHMpOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNNRFNfVnRrVm9sdW1lOjpncmF2aXR5Q2Vu dGVyKGdyaWQsIHB0cywgbnB0cywgdmFsdWVzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiAoaWQgPT0wKQorQEAgLTExNzAzLDcgKzExNzAzLDcgQEAgYm9v bCBTTUVTSF9NZXNoRWRpdG9yOjpEb3VibGVOb2Rlc09uR3JvdXBCb3VuZGFyaWVzKCBjb25zdCBz dGQ6OnZlY3RvcjxUSURTb3J0ZWQKKyAgICAgICAgIHsKKyAgICAgICAgICAgaW50IG9sZElkID0g aXRub2QtPmZpcnN0OworICAgICAgICAgICAvL01FU1NBR0UoIiAgICAgbm9kZSAiIDw8IG9sZElk KTsKKy0gICAgICAgICAgdnRrQ2VsbExpbmtzOjpMaW5rIGwgPSBncmlkLT5HZXRDZWxsTGlua3Mo KS0+R2V0TGluayhvbGRJZCk7CisrICAgICAgICAgIHZ0a0NlbGxMaW5rczo6TGluayBsID0gc3Rh dGljX2Nhc3Q8dnRrQ2VsbExpbmtzKj4oZ3JpZC0+R2V0Q2VsbExpbmtzKCkpLT5HZXRMaW5rKG9s ZElkKTsKKyAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsLm5jZWxsczsgaSsrKQorICAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgIGludCB2dGtJZCA9IGwuY2VsbHNbaV07CitAQCAt MTIxNjAsNyArMTIxNjAsNyBAQCB2b2lkIFNNRVNIX01lc2hFZGl0b3I6OkNyZWF0ZUhvbGVTa2lu KGRvdWJsZSByYWRpdXMsCisgICAgICAgICAgIE1FU1NBR0UoInZvbHVtZSB0byBjaGVjaywgIHZ0 a0lkICIgPDwgdnRrSWQgPDwgIiBzbWRzSWQgIiA8PCBtZXNoRFMtPmZyb21WdGtUb1NtZHModnRr SWQpKTsKKyAgICAgICAgICAgYm9vbCB2b2xJbnNpZGUgPSBmYWxzZTsKKyAgICAgICAgICAgdnRr SWRUeXBlIG5wdHMgPSAwOworLSAgICAgICAgICB2dGtJZFR5cGUqIHB0cyA9IDA7CisrICAgICAg ICAgIHZ0a0lkVHlwZVB0ciBwdHMgPSAwOworICAgICAgICAgICBncmlkLT5HZXRDZWxsUG9pbnRz KHZ0a0lkLCBucHRzLCBwdHMpOworICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8bnB0czsgaSsr KQorICAgICAgICAgICAgIHsKK2RpZmYgLS1naXQgc3JjL01vZC9GZW0vR3VpL1ZpZXdQcm92aWRl ckZlbVBvc3RPYmplY3QuY3BwIGIvc3JjL01vZC9GZW0vR3VpL1ZpZXdQcm92aWRlckZlbVBvc3RP YmplY3QuY3BwCitpbmRleCBkZGUyYmQ4MjQuLjNhY2ZlYWQ2NSAxMDA2NDQKKy0tLSBzcmMvTW9k L0ZlbS9HdWkvVmlld1Byb3ZpZGVyRmVtUG9zdE9iamVjdC5jcHAKKysrKyBzcmMvTW9kL0ZlbS9H dWkvVmlld1Byb3ZpZGVyRmVtUG9zdE9iamVjdC5jcHAKK0BAIC01Niw2ICs1NiwxMSBAQAorIA0K KyB1c2luZyBuYW1lc3BhY2UgRmVtR3VpOw0KKyANCisrI2lmZGVmIFZUS19DRUxMX0FSUkFZX1Yy DQorK3R5cGVkZWYgY29uc3QgdnRrSWRUeXBlKiB2dGtJZFR5cGVQdHI7DQorKyNlbHNlDQorK3R5 cGVkZWYgdnRrSWRUeXBlKiB2dGtJZFR5cGVQdHI7DQorKyNlbmRpZg0KKyANCisgUFJPUEVSVFlf U09VUkNFKEZlbUd1aTo6Vmlld1Byb3ZpZGVyRmVtUG9zdE9iamVjdCwgR3VpOjpWaWV3UHJvdmlk ZXJEb2N1bWVudE9iamVjdCkNCisgDQorQEAgLTMxNiw3ICszMjEsNyBAQCB2b2lkIFZpZXdQcm92 aWRlckZlbVBvc3RPYmplY3Q6OnVwZGF0ZTNEKCkgeworICAgICB2dGtEYXRhQXJyYXkgKnRjb29y ZHMgPSBOVUxMOw0KKyAgICAgdnRrQ2VsbEFycmF5ICpjZWxsczsNCisgICAgIHZ0a0lkVHlwZSBu cHRzID0gMDsNCistICAgIHZ0a0lkVHlwZSAqaW5keCA9IDA7DQorKyAgICB2dGtJZFR5cGVQdHIg aW5keCA9IDA7DQorIA0KKyAgICAgcG9pbnRzID0gcGQtPkdldFBvaW50cygpOw0KKyAgICAgcG50 RGF0YSA9IHBkLT5HZXRQb2ludERhdGEoKTsNCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZyZWVjYWQv dGVtcGxhdGUgYi9zcmNwa2dzL2ZyZWVjYWQvdGVtcGxhdGUKaW5kZXggYjU2ZDgyMjdkNjAuLjhh NDkyZWMxZTViIDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZyZWVjYWQvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9mcmVlY2FkL3RlbXBsYXRlCkBAIC0zNiwxMSArMzYsMTAgQEAgaG9tZXBhZ2U9Imh0dHBz Oi8vZnJlZWNhZHdlYi5vcmcvIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vRnJlZUNB RC9GcmVlQ0FEL2FyY2hpdmUvJHt2ZXJzaW9ufS50YXIuZ3oiCiBjaGVja3N1bT00ZTBjY2U0NDdi MzFiODk4OWEwMGNmNjhjNDlhZTAxMmNlOGU1NTQ2YTU2YzZlMDg3NGZiZDhmN2RkZWRmZmQyCiAK LWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCSotbXVzbCkgIyBTSUdTRUdWIHdpdGgg bXVzbCwgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNz dWVzLzEyNTk1Ci0JCW1ha2VkZXBlbmRzPSR7bWFrZWRlcGVuZHMvcXQ1LXdlYmtpdC1kZXZlbC99 Ci0JCTs7Ci1lc2FjCitpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSBtdXNsIF07IHRoZW4KKwkj IFNJR1NFR1Ygd2l0aCBtdXNsLCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9p ZC1wYWNrYWdlcy9pc3N1ZXMvMTI1OTUKKwltYWtlZGVwZW5kcz0iJHttYWtlZGVwZW5kcy9xdDUt d2Via2l0LWRldmVsL30gbGliZXhlY2luZm8tZGV2ZWwiCitmaQogCiBwb3N0X2V4dHJhY3QoKSB7 CiAJIyBSZXBvcnQgZXhhY3QgbWlub3IgdmVyc2lvbgo= --===============1631062684777593520==--