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: =?utf-8?b?UGV0ciBQw61zYcWZIDxwcGlzYXJAcmVkaGF0LmNvbT4=?= To: git-commits@fedoraproject.org Subject: [rpms/libmodulemd] f43: 2.15.3 bump Date: Fri, 12 Jun 2026 13:11:06 GMT Message-ID: <178126986664.1.8869538221212003961.rpms-libmodulemd-a7967d787972@fedoraproject.org> List-ID: X-Git-Repo: rpms/libmodulemd X-Git-Branch: f43 X-Git-Rev: a7967d787972957a17b1a2b3d59b1bb9cffa9126 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvbGlibW9kdWxlbWQK QnJhbmNoIDogZjQzCkNvbW1pdCA6IGE3OTY3ZDc4Nzk3Mjk1N2ExN2IxYTJiM2Q1OWIxYmI5Y2Zm YTkxMjYKQXV0aG9yIDogUGV0ciBQw61zYcWZIDxwcGlzYXJAcmVkaGF0LmNvbT4KRGF0ZSAgIDog MjAyNi0wNi0xMlQxNToxMDoyOSswMjowMApTdGF0cyAgOiArOS8tMjI4NiBpbiA1IGZpbGUocykK VVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9saWJtb2R1bGVtZC9j L2E3OTY3ZDc4Nzk3Mjk1N2ExN2IxYTJiM2Q1OWIxYmI5Y2ZmYTkxMjY/YnJhbmNoPWY0MwoKTG9n OgoyLjE1LjMgYnVtcAoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9yZQpp bmRleCA3OGUxNGVhLi4zZjY3OGRjIDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5naXRp Z25vcmUKQEAgLTY4LDMgKzY4LDUgQEAKIC9tb2R1bGVtZC0yLjE1LjEudGFyLnh6LmFzYwogL21v ZHVsZW1kLTIuMTUuMi50YXIueHoKIC9tb2R1bGVtZC0yLjE1LjIudGFyLnh6LmFzYworL21vZHVs ZW1kLTIuMTUuMy50YXIueHoKKy9tb2R1bGVtZC0yLjE1LjMudGFyLnh6LmFzYwoKZGlmZiAtLWdp dCBhL2xpYm1vZHVsZW1kLnNwZWMgYi9saWJtb2R1bGVtZC5zcGVjCmluZGV4IDcyNGQyZjEuLjUz OTljMzcgMTAwNjQ0Ci0tLSBhL2xpYm1vZHVsZW1kLnNwZWMKKysrIGIvbGlibW9kdWxlbWQuc3Bl YwpAQCAtMjMsOCArMjMsOCBAQAogJWVuZGlmCiAKIE5hbWU6ICAgICAgICAgICAle3Vwc3RyZWFt X25hbWV9JXs/djJfc3VmZml4fQotVmVyc2lvbjogICAgICAgIDIuMTUuMgotUmVsZWFzZTogICAg ICAgIDYlez9kaXN0fQorVmVyc2lvbjogICAgICAgIDIuMTUuMworUmVsZWFzZTogICAgICAgIDEl ez9kaXN0fQogU3VtbWFyeTogICAgICAgIE1vZHVsZSBtZXRhZGF0YSBtYW5pcHVsYXRpb24gbGli cmFyeQogCiAjIENPUFlJTkc6ICAgICAgTUlUCkBAIC00MSwxMCArNDEsNiBAQCBTb3VyY2UwOiAg ICAgICAgJXt1cmx9L3JlbGVhc2VzL2Rvd25sb2FkLyV7dmVyc2lvbn0vbW9kdWxlbWQtJXt2ZXJz aW9ufS50YXIueHoKIFNvdXJjZTE6ICAgICAgICAle3VybH0vcmVsZWFzZXMvZG93bmxvYWQvJXt2 ZXJzaW9ufS9tb2R1bGVtZC0le3ZlcnNpb259LnRhci54ei5hc2MKICMgS2V5IGV4cG9ydGVkIGZy b20gUGV0ciBQaXNhcidzIGtleXJpbmcKIFNvdXJjZTI6ICAgICAgICBncGdrZXktRTNGNDJGQ0Ux NTY4MzBBODAzNThFNkU5NEZEMUFFQzMzNjVBRjdCRi5ncGcKLSMgQWRhcHQgdGVzdHMgdG8gZ2xp YjItMi44Ny4wLCBpbiB1cHN0cmVhbSBhZnRlciAyLjE1LjIsIGJ1ZyAjMjQyMzE1MwotUGF0Y2gw OiAgICAgICAgIG1vZHVsZW1kLTIuMTUuMi10ZXN0cy1BZGFwdC10by1nbGliLTIuODcuMC5wYXRj aAotIyBBZGFwdCB0ZXN0cyB0byBweWdvYmplY3QgMy41NS4wLCBpbiB1cHN0cmVhbSBhZnRlciAy LjE1LjIsIGJ1ZyAjMjQ0MDU3MAotUGF0Y2gxOiAgICAgICAgIG1vZHVsZW1kLTIuMTUuMi10ZXN0 cy1BZGFwdC10by1weWdvYmplY3QtMy41NS4wLnBhdGNoCiAKIEJ1aWxkUmVxdWlyZXM6ICBnbnVw ZzIKIEJ1aWxkUmVxdWlyZXM6ICBtZXNvbiA+PSAwLjQ3CkBAIC04Miw3ICs3OCw2IEBAIG1vcmUg ZGV0YWlscy4KIFN1bW1hcnk6ICAgICAgICBQeXRob24gMiBiaW5kaW5ncyBmb3IgJXtuYW1lfQog UmVxdWlyZXM6ICAgICAgICV7bmFtZX0lez9faXNhfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQog UmVxdWlyZXM6ICAgICAgIHB5dGhvbi1nb2JqZWN0LWJhc2UKLVJlcXVpcmVzOiAgICAgICBweXRo b24tc2l4CiAKICVkZXNjcmlwdGlvbiAtbiBweXRob24yLSV7bmFtZX0KIFB5dGhvbiAyIGJpbmRp bmdzIGZvciAle25hbWV9LgpAQCAtOTQsMTIgKzg5LDYgQEAgUHl0aG9uIDIgYmluZGluZ3MgZm9y ICV7bmFtZX0uCiBTdW1tYXJ5OiAgICAgICAgUHl0aG9uIDMgYmluZGluZ3MgZm9yICV7bmFtZX0K IFJlcXVpcmVzOiAgICAgICAle25hbWV9JXs/X2lzYX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0K IFJlcXVpcmVzOiAgICAgICBweXRob24le3B5dGhvbjNfcGtndmVyc2lvbn0tZ29iamVjdC1iYXNl Ci0laWYgKDAlez9yaGVsfSAmJiAwJXs/cmhlbH0gPD0gNykKLSMgVGhlIHB5M19kaXN0IG1hY3Jv IG9uIEVQRUwgNyBkb2Vzbid0IHdvcmsgcmlnaHQgYXQgdGhlIG1vbWVudAotUmVxdWlyZXM6ICAg ICAgIHB5dGhvbjMuNmRpc3Qoc2l4KQotJWVsc2UKLVJlcXVpcmVzOiAgICAgICAle3B5M19kaXN0 IHNpeH0KLSVlbmRpZgogCiAlZGVzY3JpcHRpb24gLW4gcHl0aG9uJXtweXRob24zX3BrZ3ZlcnNp b259LSV7bmFtZX0KIFB5dGhvbiAle3B5dGhvbjNfcGtndmVyc2lvbn0gYmluZGluZ3MgZm9yICV7 bmFtZX0uCkBAIC0xOTMsNiArMTgyLDkgQEAgbXYgJXtidWlsZHJvb3R9JXtfbWFuZGlyfS9tYW4x L21vZHVsZW1kLXZhbGlkYXRvci4xIFwKIAogCiAlY2hhbmdlbG9nCisqIEZyaSBKdW4gMTIgMjAy NiBQZXRyIFBpc2FyIDxwcGlzYXJAcmVkaGF0LmNvbT4gLSAyLjE1LjMtMQorLSAyLjE1LjMgYnVt cAorCiAqIFR1ZSBGZWIgMjQgMjAyNiBQZXRyIFBpc2FyIDxwcGlzYXJAcmVkaGF0LmNvbT4gLSAy LjE1LjItNgogLSBBZGFwdCB0ZXN0cyB0byBweWdvYmplY3QgMy41NS4wIChidWcgIzI0NDA1NzAp CiAKCmRpZmYgLS1naXQgYS9tb2R1bGVtZC0yLjE1LjItdGVzdHMtQWRhcHQtdG8tZ2xpYi0yLjg3 LjAucGF0Y2ggYi9tb2R1bGVtZC0yLjE1LjItdGVzdHMtQWRhcHQtdG8tZ2xpYi0yLjg3LjAucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlODZiNTguLjAwMDAwMDAKLS0tIGEv bW9kdWxlbWQtMi4xNS4yLXRlc3RzLUFkYXB0LXRvLWdsaWItMi44Ny4wLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMjEwNCArMCwwIEBACi1Gcm9tIDg5ZDRhZmIzZDAxODI1MDQyN2Q0ZDg3ODQw YWU1N2FhYjM5MDMzNjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/ UGV0cj0yMFA9QzM9QURzYT1DNT05OT89IDxwcGlzYXJAcmVkaGF0LmNvbT4KLURhdGU6IE1vbiwg OCBEZWMgMjAyNSAxMzozOToyOSArMDEwMAotU3ViamVjdDogW1BBVENIXSB0ZXN0czogQWRhcHQg dG8gZ2xpYiAyLjg3LjAKLQotQWZ0ZXIgdXBncmFkaW5nIGdsaWIgZnJvbSAyLjg2LjEgdG8gMi44 Ny4wLCB0ZXN0cyB3aGljaCBleHBlY3QgY2F0Y2hpbmcKLVNJR1RSQVAgc3RhcnRlZCB0byBmYWls IGxpa2UgdGhpczoKLQotICAgIFsuLi5dL3JlZGhhdC1saW51eC1idWlsZC9tb2R1bGVtZC9jb21w b25lbnRfbW9kdWxlCi0gICAgVEFQIHZlcnNpb24gMTQKLSAgICAjIHJhbmRvbSBzZWVkOiBSMDJT NTAxYjZiZDAyNDEzYTI5ODAxMzNmMTk3ZGFiOTk0MTYKLSAgICAxLi42Ci0gICAgIyBTdGFydCBv ZiBtb2R1bGVtZCB0ZXN0cwotICAgICMgU3RhcnQgb2YgdjIgdGVzdHMKLSAgICAjIFN0YXJ0IG9m IGNvbXBvbmVudCB0ZXN0cwotICAgICMgU3RhcnQgb2YgbW9kdWxlIHRlc3RzCi0gICAgbm90IG9r IC9tb2R1bGVtZC92Mi9jb21wb25lbnQvbW9kdWxlL2NvbnN0cnVjdCAtIGxpYm1vZHVsZW1kLUZB VEFMLUNSSVRJQ0FMOiBtb2R1bGVtZF9jb21wb25lbnRfc2V0X2tleTogYXNzZXJ0aW9uICduYW1l JyBmYWlsZWQKLSAgICBCYWlsIG91dCEKLSAgICBBYm9ydGVkICAgICAgICAgICAgICAgICAgICAo Y29yZSBkdW1wZWQpIExEX0xJQlJBUllfUEFUSD0vaG9tZS90ZXN0L2xpYm1vZHVsZW1kLWRldmVs L3JlZGhhdC1saW51eC1idWlsZC9tb2R1bGVtZCBNRVNPTl9CVUlMRF9ST09UPS9ob21lL3Rlc3Qv bGlibW9kdWxlbWQtZGV2ZWwvcmVkaGF0LWxpbnV4LWJ1aWxkIFRFU1RfREFUQV9QQVRIPS9ob21l L3Rlc3QvbGlibW9kdWxlbWQtZGV2ZWwvbW9kdWxlbWQvdGVzdHMvdGVzdF9kYXRhIFVCU0FOX09Q VElPTlM9aGFsdF9vbl9lcnJvcj0xOmFib3J0X29uX2Vycm9yPTE6cHJpbnRfc3VtbWFyeT0xOnBy aW50X3N0YWNrdHJhY2U9MSBNU0FOX09QVElPTlM9aGFsdF9vbl9lcnJvcj0xOmFib3J0X29uX2Vy cm9yPTE6cHJpbnRfc3VtbWFyeT0xOnByaW50X3N0YWNrdHJhY2U9MSBMQ19BTEw9QyBNRVNPTl9U RVNUX0lURVJBVElPTj0xIE1FU09OX1NPVVJDRV9ST09UPS9ob21lL3Rlc3QvbGlibW9kdWxlbWQt ZGV2ZWwgTUFMTE9DX1BFUlRVUkJfPTExNSBBU0FOX09QVElPTlM9aGFsdF9vbl9lcnJvcj0xOmFi b3J0X29uX2Vycm9yPTE6cHJpbnRfc3VtbWFyeT0xIC9ob21lL3Rlc3QvbGlibW9kdWxlbWQtZGV2 ZWwvcmVkaGF0LWxpbnV4LWJ1aWxkL21vZHVsZW1kL2NvbXBvbmVudF9tb2R1bGUKLQotVGhlIHRl c3RzIHBhc3NlZCBhIE5VTEwgcG9pbnRlciB0byBsaWJtb2R1bGVtZCBvYmplY3QgY29uc3RydWN0 b3JzIGFuZAotY2hlY2tlZCB0aGF0IGdsaWIgcmFpc2VkIGEgU0lHVFJBUCBzaWduYWwuIFRoZSBu ZXcgZ2xpYiBmaXhlZAotPGh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbGliLy0vaXNz dWVzLzM3OTA+IGFuZCBhcyBhIHNpZGUKLWVmZmVjdCBjaGFuZ2VkIGhvdyB0aGUgcHJvY2VzcyBp cyB0ZXJtaW5hdGVkOiBJZiB0aGUgcHJvY2VzcyBydW5zCi11bmRlciBhIGRlYnVnZ2VyLCBhIGJy ZWFrcG9pbnQgdHJhcCBpcyBpbnZva2VkIG9yIFNJR1RSQVAgcmFpc2VkLAotZGVwZW5kaW5nIG9u IHRoZSBhcmNoaXRlY3R1cmUuIElmIHRoZSBwcm9jZXNzIGRvZXMgbm90IHJ1biB1bmRlcgotYSBk ZWJ1Z2dlciwgYWJvcnQoKSBpcyBjYWxsZWQsIHdoaWNoIHJhaXNlcyBTSUdBQlJUIGFuZCB0aGVu IGFmdGVyCi1yZXR1cm5pbmcgdG8gZ2xpYiBTSUdBQlJUIGRpc3Bvc2l0aW9uIGlzIHJlc2V0IGFu ZCBTSUdBQlJUIHJhaXNlZAotYWdhaW4gdG8gZmluYWxseSB0ZXJtaW5hdGUgdGhlIHByb2Nlc3Mu IFRoYXQgbWVhbnMgdGhhdCBjYXRjaGluZwotc2lnbmFscyBpcyBwb2ludGxlc3MgYmVjYXVzZSB0 aGUgcHJvY2VzcyB3aWxsIGJlIHRlcm1pbmF0ZWQKLW5ldmVydGhlbGVzcy4KLQotVGhpcyBwYXRj aCBhZGFwdHMgdGhlIHRlc3RzIGJ5IHVzaW5nIGEgZ2xpYi1zYW5jdGlvbmVkIHdheSBvZiBjaGVj a2luZwotd2hldGhlciBhIHByb2Nlc3MgdGVybWluYXRlZCBhYm5vcm1hbGx5IGluc3RlYWQgb2Yg ZGVwZW5kaW5nIG9uCi1hIHdheSBhIHBhcnRpY3VsYXIgZ2xpYiB2ZXJzaW9uIGltcGxlbWVudHMu Ci0KLVRoaXMgcGF0Y2ggbW92ZXMgdGhlIHRyYXBwaW5nIHN1YnRlc3RzIGludG8gc3RhbmRhbG9u ZSB0ZXN0cyBiZWNhdXNlCi1nX3Rlc3RfdHJhcF9zdWJwcm9jZXNzKCkgY2Fubm90IGhhbmRsZSBt dWx0aXBsZSBzdWJ0ZXN0cyBpbiBhIHNpbmdsZQotdGVzdCBmdW5jdGlvbi4gSXQgYWxzbyByZW1v dmVzIHBvaW50bGVzcyBjaGVja3MgZm9yIGEgcmV0dXJuIHZhbHVlIG9mCi1hIGZ1bmN0aW9uIHdo aWNoIGhhcyBqdXN0IGV4aXRlZCB0aGUgcHJvY2Vzcy4KLQotVGhlIHNhbWUgZ29lcyBmb3IgUHl0 aG9uIHRlc3RzICh3aXRoCi1HX0RFQlVHPWZhdGFsLXdhcm5pbmdzLGZhdGFsLWNyaXRpY2Fscykg d2hpY2ggb3JpZ2luYWxseSB3ZW50IGFzIGZhcgotYXMgY2hlY2tpbmcgd2hldGhlciBhbmQgd2hp Y2ggc2lnbmFsIHdhcyByYWlzZWQuIFRoaXMgcGF0Y2ggbWFrZXMgdGhlCi1QeXRob24gdGVzdHMg cGFzc2luZyByZWdhcmRsZXNzIG9mIEdfREVCVUcgc2V0dGluZy4KLQotSW1wbGVtZW50YXRpb24g bm90ZTogUHl0aG9uIGRvZXMgbm90IHN1cHBvcnQgYW5ub3ltb3VzIGJsb2NrIGFuZAotY29udGV4 dCBtYW5hZ2VycyBhcmUgbm90IGNvbXBhdGlibGUgd2l0aCBmb3JrLCBoZW5jZSB0aGlzIHBhdGNo IG1vdmVzCi10aGUgYmxvY2tzIGludG8gbmFtZWQgY2FsbGFibGVzIHRvIGJlIGV4ZWN0dXRlZCBp biBhIHN1YnByb2Nlc3MuCi0KLUltcGxlbWVudGF0aW9uIG5vdGU6IEdsaWIgcHJvdmlkZXMgR19U RVNUX1NVQlBST0NFU1NfREVGQVVMVCBjb25zdGFudAotc2luY2UgMi43NC4gVGhpcyBwYXRjaCBh ZGRzIGEgZmFsbGJhY2sgZGVmaW5pdGlvbiBpbnN0ZWFkIG9mCi1oYXJkLWNvZGluZyAwIGxpdGVy YWwuCi0KLVJlc29sdmVzOiBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dp P2lkPTI0MjMxNTMKLS0tLQotIG1lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgOCArCi0gbW9kdWxlbWQvaW5jbHVkZS9wcml2YXRlL2dsaWItZXh0ZW5zaW9u cy5oICAgIHwgICA0ICsKLSBtb2R1bGVtZC9pbmNsdWRlL3ByaXZhdGUvdGVzdC11dGlscy5oICAg ICAgICAgfCAgIDEgKwotIG1vZHVsZW1kL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMSArCi0gbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9iYXNlLnB5ICAgICAg ICAgIHwgIDI1ICsrKwotIG1vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvZGVmYXVsdHMucHkg ICAgICB8ICAzMSArKy0KLSBtb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL2RlcGVuZGVuY2ll cy5weSAgfCAgMjYgKystCi0gbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9wcm9maWxlLnB5 ICAgICAgIHwgIDIxICstCi0gbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9zZXJ2aWNlbGV2 ZWwucHkgIHwgIDIxICstCi0gLi4uL3Rlc3RzL01vZHVsZW1kVGVzdHMvdHJhbnNsYXRpb25lbnRy eS5weSAgIHwgIDIxICstCi0gbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1jb21tb24uYyAg ICAgICAgIHwgIDY4ICsrKy0tLQotIC4uLi90ZXN0cy90ZXN0LW1vZHVsZW1kLWNvbXBvbmVudC1t b2R1bGUuYyAgICB8ICA4MiArKysrLS0tCi0gbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1k ZWZhdWx0cy12MS5jICAgIHwgIDg3ICsrKystLS0KLSBtb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVs ZW1kLWRlZmF1bHRzLmMgICAgICAgfCAgNzkgKysrKy0tLQotIG1vZHVsZW1kL3Rlc3RzL3Rlc3Qt bW9kdWxlbWQtZGVwZW5kZW5jaWVzLmMgICB8IDIxMiArKysrKysrKysrKysrKy0tLS0KLSBtb2R1 bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLW1vZHVsZS5jICAgICAgICAgfCAgNzIgKysrKy0tCi0g bW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1vYnNvbGV0ZXMuYyAgICAgIHwgIDc5ICsrKyst LS0KLSBtb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLXByb2ZpbGUuYyAgICAgICAgfCAxMDUg KysrKysrLS0tCi0gbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1zZXJ2aWNlLWxldmVsLmMg IHwgMTE3ICsrKysrKy0tLS0KLSAuLi4vdGVzdHMvdGVzdC1tb2R1bGVtZC10cmFuc2xhdGlvbi1l bnRyeS5jICAgfCAxMTMgKysrKysrLS0tLQotIG1vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQt dHJhbnNsYXRpb24uYyAgICB8IDEwOCArKysrKy0tLS0KLSAyMSBmaWxlcyBjaGFuZ2VkLCA4NzMg aW5zZXJ0aW9ucygrKSwgNDA4IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbWVzb24uYnVp bGQgYi9tZXNvbi5idWlsZAotaW5kZXggZjI4ZTQxMC4uZGY2ZTVhZSAxMDA2NDQKLS0tLSBhL21l c29uLmJ1aWxkCi0rKysgYi9tZXNvbi5idWlsZAotQEAgLTEyOCw2ICsxMjgsMTQgQEAgaGFzX2df c3Bhd25fY2hlY2tfd2FpdF9zdGF0dXMgPSBjYy5oYXNfZnVuY3Rpb24oCi0gICAgICdnX3NwYXdu X2NoZWNrX3dhaXRfc3RhdHVzJywKLSAgICAgZGVwZW5kZW5jaWVzIDogWyBnbGliIF0pCi0gCi0r IyBDaGVjayB3aGV0aGVyIGdsaWIyIGhhcyBHX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUIGVudW0g bWVtYmVyLgotK2hhc19nX3Rlc3Rfc3VicHJvY2Vzc19kZWZhdWx0ID0gY2MuY29tcGlsZXMoCi0r ICAgICcnJyNpbmNsdWRlIDxnbGliLmg+Ci0rICAgIGludCBmb28gPSBHX1RFU1RfU1VCUFJPQ0VT U19ERUZBVUxUOwotKyAgICAnJycsCi0rICAgIGRlcGVuZGVuY2llcyA6IFsgZ2xpYiBdLAotKyAg ICBuYW1lIDogJ0dfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQnKQotKwotIHdpdGhfcHkzID0gZ2V0 X29wdGlvbignd2l0aF9weTMnKQotIGlmIHdpdGhfcHkzCi0gICAgIGlmIGdldF9vcHRpb24oJ3Nr aXBfaW50cm9zcGVjdGlvbicpCi1kaWZmIC0tZ2l0IGEvbW9kdWxlbWQvaW5jbHVkZS9wcml2YXRl L2dsaWItZXh0ZW5zaW9ucy5oIGIvbW9kdWxlbWQvaW5jbHVkZS9wcml2YXRlL2dsaWItZXh0ZW5z aW9ucy5oCi1pbmRleCAyOWU5Yzg0Li4wMDA4MWJlIDEwMDY0NAotLS0tIGEvbW9kdWxlbWQvaW5j bHVkZS9wcml2YXRlL2dsaWItZXh0ZW5zaW9ucy5oCi0rKysgYi9tb2R1bGVtZC9pbmNsdWRlL3By aXZhdGUvZ2xpYi1leHRlbnNpb25zLmgKLUBAIC0yMyw2ICsyMywxMCBAQAotIEdfREVGSU5FX0FV VE9QVFJfQ0xFQU5VUF9GVU5DIChHRGF0ZSwgZ19kYXRlX2ZyZWUpCi0gI2VuZGlmCi0gCi0rLyog R19URVNUX1NVQlBST0NFU1NfREVGQVVMVCB3YXMgYWRkZWQgaW4gR2xpYiAyLjc0LiAqLwotKyNp Zm5kZWYgSEFWRV9HX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUCi0rI2RlZmluZSBHX1RFU1RfU1VC UFJPQ0VTU19ERUZBVUxUIDAKLSsjZW5kaWYKLSAKLSAjaWZuZGVmIEhBVkVfRVhURU5EX0FORF9T VEVBTAotIAotZGlmZiAtLWdpdCBhL21vZHVsZW1kL2luY2x1ZGUvcHJpdmF0ZS90ZXN0LXV0aWxz LmggYi9tb2R1bGVtZC9pbmNsdWRlL3ByaXZhdGUvdGVzdC11dGlscy5oCi1pbmRleCAyNjQzY2Ex Li4zMjBjZjk5IDEwMDY0NAotLS0tIGEvbW9kdWxlbWQvaW5jbHVkZS9wcml2YXRlL3Rlc3QtdXRp bHMuaAotKysrIGIvbW9kdWxlbWQvaW5jbHVkZS9wcml2YXRlL3Rlc3QtdXRpbHMuaAotQEAgLTE2 LDYgKzE2LDcgQEAKLSAjaW5jbHVkZSA8Z2xpYi5oPgotICNpbmNsdWRlIDxsb2NhbGUuaD4KLSAj aW5jbHVkZSA8eWFtbC5oPgotKyNpbmNsdWRlICJnbGliLWV4dGVuc2lvbnMuaCIKLSAKLSBHX0JF R0lOX0RFQ0xTCi0gCi1kaWZmIC0tZ2l0IGEvbW9kdWxlbWQvbWVzb24uYnVpbGQgYi9tb2R1bGVt ZC9tZXNvbi5idWlsZAotaW5kZXggMWM3NTAwMi4uZTQxYmNjNSAxMDA2NDQKLS0tLSBhL21vZHVs ZW1kL21lc29uLmJ1aWxkCi0rKysgYi9tb2R1bGVtZC9tZXNvbi5idWlsZAotQEAgLTE0NSw2ICsx NDUsNyBAQCBjZGF0YS5zZXQoJ0hBVkVfUlBNSU8nLCBycG0uZm91bmQoKSkKLSBjZGF0YS5zZXQo J0hBVkVfR0RBVEVfQVVUT1BUUicsIGhhc19nZGF0ZV9hdXRvcHRyKQotIGNkYXRhLnNldCgnSEFW RV9FWFRFTkRfQU5EX1NURUFMJywgaGFzX2V4dGVuZF9hbmRfc3RlYWwpCi0gY2RhdGEuc2V0KCdI QVZFX0dfU1BBV05fQ0hFQ0tfV0FJVF9TVEFUVVMnLCBoYXNfZ19zcGF3bl9jaGVja193YWl0X3N0 YXR1cykKLStjZGF0YS5zZXQoJ0hBVkVfR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCcsIGhhc19n X3Rlc3Rfc3VicHJvY2Vzc19kZWZhdWx0KQotIGNkYXRhLnNldCgnSEFWRV9PVkVSRkxPV0VEX0JV SUxET1JERVInLCBhY2NlcHRfb3ZlcmZsb3dlZF9idWlsZG9yZGVyKQotIGNvbmZpZ3VyZV9maWxl KAotICAgb3V0cHV0IDogJ2NvbmZpZy5oJywKLWRpZmYgLS1naXQgYS9tb2R1bGVtZC90ZXN0cy9N b2R1bGVtZFRlc3RzL2Jhc2UucHkgYi9tb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL2Jhc2Uu cHkKLWluZGV4IDFiNDY0NzAuLjU1YWM3NDIgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVtZC90ZXN0cy9N b2R1bGVtZFRlc3RzL2Jhc2UucHkKLSsrKyBiL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMv YmFzZS5weQotQEAgLTUyLDYgKzUyLDIxIEBAIGNsYXNzIFRlc3RCYXNlKHVuaXR0ZXN0LlRlc3RD YXNlKToKLSAgICAgICAgIGVsaWYgc2VsZi5fY2F1Z2h0X3NpZ25hbCBhbmQgbm90IGV4cGVjdF9z aWduYWw6Ci0gICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoIlNpZ25hbCBjYXVnaHQg aW4gbm9uLXdhcm5pbmcgc3RhdGUiKQotIAotKyAgICBkZWYgYXNzZXJ0UHJvY2Vzc0ZhaWx1cmUo c2VsZiwgY2FsbGFibGUsICphcmdzKToKLSsgICAgICAgICIiIkNhbGxzIHRoZSBjYWxsYWJsZSBp biBhIHN1YnByb2Nlc3MgYW5kIGNoZWNrcyB3aGV0aGVyIHRoZSBwcm9jZXNzIHdhcwotKyAgICAg ICAga2lsbGVkIHdpdGggYSBzaWduYWwgZGVwZW5kaW5nIG9uIEdsaWIgd2FybmluZyBmYXRhbGl0 eS4iIiIKLSsgICAgICAgIHBpZCA9IG9zLmZvcmsoKQotKyAgICAgICAgaWYgcGlkID09IDA6Ci0r ICAgICAgICAgICAgY2FsbGFibGUoKmFyZ3MpCi0rICAgICAgICAgICAgb3MuX2V4aXQoMCkKLSsg ICAgICAgIF8sIHN0YXR1cyA9IG9zLndhaXRwaWQocGlkLCAwKQotKyAgICAgICAgaWYgc2VsZi53 YXJuaW5nc19mYXRhbDoKLSsgICAgICAgICAgICBpZiBub3Qgb3MuV0lGU0lHTkFMRUQoc3RhdHVz KToKLSsgICAgICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoIkNoaWxkIHByb2Nlc3Mg d2FzIG5vdCBhYm9ydGVkIikKLSsgICAgICAgIGVsc2U6Ci0rICAgICAgICAgICAgaWYgb3MuV0lG U0lHTkFMRUQoc3RhdHVzKToKLSsgICAgICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3Io IkNoaWxkIHByb2Nlc3Mgd2FzIHVuZXhwZWN0ZWRseSBhYm9ydGVkIikKLSsKLSAgICAgQHByb3Bl cnR5Ci0gICAgIGRlZiB3YXJuaW5nc19mYXRhbChzZWxmKToKLSAgICAgICAgIGdkZWJ1ZyA9IG9z LmdldGVudigiR19ERUJVRyIsICIiKS5zcGxpdCgiLCIpCi1AQCAtNjcsMyArODIsMTMgQEAgY2xh c3MgVGVzdEJhc2UodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICAgICAgICAgIHJldHVybiBzdXBl cihUZXN0QmFzZSwgc2VsZikuYXNzZXJ0UmFpc2VzUmVnZXgoKmFyZ3MsICoqa3dhcmdzKQotICAg ICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgIHJldHVybiBzZWxmLmFz c2VydFJhaXNlc1JlZ2V4cCgqYXJncywgKiprd2FyZ3MpCi0rCi0rICAgIGRlZiBhc3NlcnRSYWlz ZXNSZWdleE9yRGllcyhzZWxmLCBjYWxsYWJsZSwgKmFyZ3MsICoqa3dhcmdzKToKLSsgICAgICAg ICIiIkNoZWNrcyB0aGF0IHRoZSBjYWxsYWJsZSB0ZXJtaW5hdGVzIGEgcHJvY2VzcyBpZiBHbGli IHdhcm5pbmdzIGFyZQotKyAgICAgICAgZmF0YWwuIE90aGVyd2lzZSwgdGhhdCB0aGUgY2FsbGFi bGUgcmFpc2VkIGEgZ2l2ZW4gZXhjZXB0aW9uIHR5cGUgd2l0aAotKyAgICAgICAgdGhlIGdpdmVu IHZhbHVlIG1hdGNoaW5nIGEgcmVndWxhciBleHByZXNzaW9uLiIiIgotKyAgICAgICAgaWYgc2Vs Zi53YXJuaW5nc19mYXRhbDoKLSsgICAgICAgICAgICBzZWxmLmFzc2VydFByb2Nlc3NGYWlsdXJl KGNhbGxhYmxlKQotKyAgICAgICAgZWxzZToKLSsgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0 UmFpc2VzUmVnZXgoKmFyZ3MsICoqa3dhcmdzKToKLSsgICAgICAgICAgICAgICAgY2FsbGFibGUo KQotZGlmZiAtLWdpdCBhL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvZGVmYXVsdHMucHkg Yi9tb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL2RlZmF1bHRzLnB5Ci1pbmRleCBjMTYyYmYz Li4zYTFiOWZlIDEwMDY0NAotLS0tIGEvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9kZWZh dWx0cy5weQotKysrIGIvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9kZWZhdWx0cy5weQot QEAgLTI5LDYgKzI5LDIwIEBAIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSBmcm9tIGJhc2UgaW1wb3J0 IFRlc3RCYXNlCi0gCi0gCi0rZGVmIF96ZXJvX21kdmVyc2lvbigpOgotKyAgICBkZWZzID0gTW9k dWxlbWQuRGVmYXVsdHMubmV3KDAsICJmb28iKQotKwotKwotK2RlZiBfdW5rbm93bl9tZHZlcnNp b24oKToKLSsgICAgZGVmcyA9IE1vZHVsZW1kLkRlZmF1bHRzLm5ldygKLSsgICAgICAgIE1vZHVs ZW1kLkRlZmF1bHRzVmVyc2lvbkVudW0uTEFURVNUICsgMSwgImZvbyIKLSsgICAgKQotKwotKwot K2RlZiBfc2V0X21vZHVsZV9uYW1lX3RvX25vbmUoZGVmcyk6Ci0rICAgIGRlZnMucHJvcHMubW9k dWxlX25hbWUgPSBOb25lCi0rCi0rCi0gY2xhc3MgVGVzdERlZmF1bHRzKFRlc3RCYXNlKToKLSAg ICAgZGVmIHRlc3RfY29uc3RydWN0b3JzKHNlbGYpOgotICAgICAgICAgIyBUZXN0IHRoYXQgdGhl IG5ldygpIGZ1bmN0aW9uIHdvcmtzCi1AQCAtNDgsMTYgKzYyLDE0IEBAIGNsYXNzIFRlc3REZWZh dWx0cyhUZXN0QmFzZSk6Ci0gICAgICAgICAgICAgTW9kdWxlbWQuRGVmYXVsdHMoKQotIAotICAg ICAgICAgIyBUZXN0IHdpdGggYSB6ZXJvIG1kdmVyc2lvbgotLSAgICAgICAgd2l0aCBzZWxmLmFz c2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwgImNvbnN0cnVjdG9yIHJldHVybmVkIE5VTEwiKToK LS0gICAgICAgICAgICB3aXRoIHNlbGYuZXhwZWN0X3NpZ25hbCgpOgotLSAgICAgICAgICAgICAg ICBkZWZzID0gTW9kdWxlbWQuRGVmYXVsdHMubmV3KDAsICJmb28iKQotKyAgICAgICAgc2VsZi5h c3NlcnRSYWlzZXNSZWdleE9yRGllcygKLSsgICAgICAgICAgICBfemVyb19tZHZlcnNpb24sIFR5 cGVFcnJvciwgImNvbnN0cnVjdG9yIHJldHVybmVkIE5VTEwiCi0rICAgICAgICApCi0gCi0gICAg ICAgICAjIFRlc3Qgd2l0aCBhbiB1bmtub3duIG1kdmVyc2lvbgotLSAgICAgICAgd2l0aCBzZWxm LmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwgImNvbnN0cnVjdG9yIHJldHVybmVkIE5VTEwi KToKLS0gICAgICAgICAgICB3aXRoIHNlbGYuZXhwZWN0X3NpZ25hbCgpOgotLSAgICAgICAgICAg ICAgICBkZWZzID0gTW9kdWxlbWQuRGVmYXVsdHMubmV3KAotLSAgICAgICAgICAgICAgICAgICAg TW9kdWxlbWQuRGVmYXVsdHNWZXJzaW9uRW51bS5MQVRFU1QgKyAxLCAiZm9vIgotLSAgICAgICAg ICAgICAgICApCi0rICAgICAgICBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4T3JEaWVzKAotKyAgICAg ICAgICAgIF91bmtub3duX21kdmVyc2lvbiwgVHlwZUVycm9yLCAiY29uc3RydWN0b3IgcmV0dXJu ZWQgTlVMTCIKLSsgICAgICAgICkKLSAKLSAgICAgICAgICMgVGVzdCB3aXRoIG5vIG5hbWUKLSAg ICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleCgKLUBAIC05OSw4ICsxMTEsNyBAQCBj bGFzcyBUZXN0RGVmYXVsdHMoVGVzdEJhc2UpOgotICAgICAgICAgYXNzZXJ0IGRlZnMuZ2V0X21v ZHVsZV9uYW1lKCkgPT0gImZvbyIKLSAKLSAgICAgICAgICMgRW5zdXJlIHdlIGNhbm5vdCBzZXQg dGhlIG1vZHVsZV9uYW1lCi0tICAgICAgICB3aXRoIHNlbGYuZXhwZWN0X3NpZ25hbCgpOgotLSAg ICAgICAgICAgIGRlZnMucHJvcHMubW9kdWxlX25hbWUgPSBOb25lCi0rICAgICAgICBzZWxmLmFz c2VydFByb2Nlc3NGYWlsdXJlKF9zZXRfbW9kdWxlX25hbWVfdG9fbm9uZSwgZGVmcykKLSAKLSAg ICAgZGVmIHRlc3RfbW9kaWZpZWQoc2VsZik6Ci0gICAgICAgICBkZWZzID0gTW9kdWxlbWQuRGVm YXVsdHMubmV3KAotZGlmZiAtLWdpdCBhL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvZGVw ZW5kZW5jaWVzLnB5IGIvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9kZXBlbmRlbmNpZXMu cHkKLWluZGV4IGExOTAxMzQuLmM3NzZlMjMgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVtZC90ZXN0cy9N b2R1bGVtZFRlc3RzL2RlcGVuZGVuY2llcy5weQotKysrIGIvbW9kdWxlbWQvdGVzdHMvTW9kdWxl bWRUZXN0cy9kZXBlbmRlbmNpZXMucHkKLUBAIC0yOCwzOCArMjgsNDAgQEAgZXhjZXB0IEltcG9y dEVycm9yOgotIGZyb20gYmFzZSBpbXBvcnQgVGVzdEJhc2UKLSAKLSAKLStkZWYgX2dldF9idWls ZHRpbWVfc3RyZWFtcyhtb2R1bGVtZF9kZXBlbmRlY2llcywgc3RyZWFtX25hbWUpOgotKyAgICBt b2R1bGVtZF9kZXBlbmRlY2llcy5nZXRfYnVpbGR0aW1lX3N0cmVhbXMoc3RyZWFtX25hbWUpCi0r Ci0rCi0rZGVmIF9nZXRfcnVudGltZV9zdHJlYW1zKG1vZHVsZW1kX2RlcGVuZGVjaWVzLCBzdHJl YW1fbmFtZSk6Ci0rICAgIG1vZHVsZW1kX2RlcGVuZGVjaWVzLmdldF9ydW50aW1lX3N0cmVhbXMo c3RyZWFtX25hbWUpCi0rCi0rCi0gY2xhc3MgVGVzdERlcGVuZGVuY2llcyhUZXN0QmFzZSk6Ci0g ICAgIGRlZiB0ZXN0X2NvbnN0cnVjdG9yKHNlbGYpOgotICAgICAgICAgIyBUZXN0IHRoYXQgdGhl IG5ldygpIGZ1bmN0aW9uIHdvcmtzCi0gICAgICAgICBkID0gTW9kdWxlbWQuRGVwZW5kZW5jaWVz Lm5ldygpCi0gICAgICAgICBhc3NlcnQgZAotICAgICAgICAgYXNzZXJ0IGQuZ2V0X2J1aWxkdGlt ZV9tb2R1bGVzKCkgPT0gW10KLS0gICAgICAgIHdpdGggc2VsZi5leHBlY3Rfc2lnbmFsKG9ubHlf b25fZmF0YWxfd2FybmluZ3M9VHJ1ZSk6Ci0tICAgICAgICAgICAgZC5nZXRfYnVpbGR0aW1lX3N0 cmVhbXMoImZvb2JhcjEyMyIpCi0rICAgICAgICBzZWxmLmFzc2VydFByb2Nlc3NGYWlsdXJlKF9n ZXRfYnVpbGR0aW1lX3N0cmVhbXMsIGQsICJmb29iYXIxMjMiKQotICAgICAgICAgYXNzZXJ0IGQu Z2V0X3J1bnRpbWVfbW9kdWxlcygpID09IFtdCi0tICAgICAgICB3aXRoIHNlbGYuZXhwZWN0X3Np Z25hbChvbmx5X29uX2ZhdGFsX3dhcm5pbmdzPVRydWUpOgotLSAgICAgICAgICAgIGQuZ2V0X3J1 bnRpbWVfc3RyZWFtcygiZm9vYmFyMTIzIikKLSsgICAgICAgIHNlbGYuYXNzZXJ0UHJvY2Vzc0Zh aWx1cmUoX2dldF9ydW50aW1lX3N0cmVhbXMsIGQsICJmb29iYXIxMjMiKQotIAotICAgICAgICAg IyBUZXN0IHRoYXQga2V5d29yZCBuYW1lIGlzIGFjY2VwdGVkCi0gICAgICAgICBkID0gTW9kdWxl bWQuRGVwZW5kZW5jaWVzKCkKLSAgICAgICAgIGFzc2VydCBkCi0gICAgICAgICBhc3NlcnQgZC5n ZXRfYnVpbGR0aW1lX21vZHVsZXMoKSA9PSBbXQotLSAgICAgICAgd2l0aCBzZWxmLmV4cGVjdF9z aWduYWwob25seV9vbl9mYXRhbF93YXJuaW5ncz1UcnVlKToKLS0gICAgICAgICAgICBkLmdldF9i dWlsZHRpbWVfc3RyZWFtcygiZm9vYmFyMTIzIikKLSsgICAgICAgIHNlbGYuYXNzZXJ0UHJvY2Vz c0ZhaWx1cmUoX2dldF9idWlsZHRpbWVfc3RyZWFtcywgZCwgImZvb2JhcjEyMyIpCi0gICAgICAg ICBhc3NlcnQgZC5nZXRfcnVudGltZV9tb2R1bGVzKCkgPT0gW10KLS0gICAgICAgIHdpdGggc2Vs Zi5leHBlY3Rfc2lnbmFsKG9ubHlfb25fZmF0YWxfd2FybmluZ3M9VHJ1ZSk6Ci0tICAgICAgICAg ICAgZC5nZXRfcnVudGltZV9zdHJlYW1zKCJmb29iYXIxMjMiKQotKyAgICAgICAgc2VsZi5hc3Nl cnRQcm9jZXNzRmFpbHVyZShfZ2V0X3J1bnRpbWVfc3RyZWFtcywgZCwgImZvb2JhcjEyMyIpCi0g Ci0gICAgIGRlZiB0ZXN0X2NvcHkoc2VsZik6Ci0gICAgICAgICBkX29yaWcgPSBNb2R1bGVtZC5E ZXBlbmRlbmNpZXMoKQotICAgICAgICAgZCA9IGRfb3JpZy5jb3B5KCkKLSAgICAgICAgIGFzc2Vy dCBkCi0gICAgICAgICBhc3NlcnQgZC5nZXRfYnVpbGR0aW1lX21vZHVsZXMoKSA9PSBbXQotLSAg ICAgICAgd2l0aCBzZWxmLmV4cGVjdF9zaWduYWwob25seV9vbl9mYXRhbF93YXJuaW5ncz1UcnVl KToKLS0gICAgICAgICAgICBkLmdldF9idWlsZHRpbWVfc3RyZWFtcygiZm9vYmFyMTIzIikKLSsg ICAgICAgIHNlbGYuYXNzZXJ0UHJvY2Vzc0ZhaWx1cmUoX2dldF9idWlsZHRpbWVfc3RyZWFtcywg ZCwgImZvb2JhcjEyMyIpCi0gICAgICAgICBhc3NlcnQgZC5nZXRfcnVudGltZV9tb2R1bGVzKCkg PT0gW10KLS0gICAgICAgIHdpdGggc2VsZi5leHBlY3Rfc2lnbmFsKG9ubHlfb25fZmF0YWxfd2Fy bmluZ3M9VHJ1ZSk6Ci0tICAgICAgICAgICAgZC5nZXRfcnVudGltZV9zdHJlYW1zKCJmb29iYXIx MjMiKQotKyAgICAgICAgc2VsZi5hc3NlcnRQcm9jZXNzRmFpbHVyZShfZ2V0X3J1bnRpbWVfc3Ry ZWFtcywgZCwgImZvb2JhcjEyMyIpCi0gCi0gICAgICAgICBkX29yaWcuYWRkX2J1aWxkdGltZV9z dHJlYW0oImJ1aWxkbW9kMSIsICJzdHJlYW0yIikKLSAgICAgICAgIGRfb3JpZy5hZGRfYnVpbGR0 aW1lX3N0cmVhbSgiYnVpbGRtb2QxIiwgInN0cmVhbTEiKQotZGlmZiAtLWdpdCBhL21vZHVsZW1k L3Rlc3RzL01vZHVsZW1kVGVzdHMvcHJvZmlsZS5weSBiL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1k VGVzdHMvcHJvZmlsZS5weQotaW5kZXggMWRlNTdjNi4uNzY1YzU3ZCAxMDA2NDQKLS0tLSBhL21v ZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvcHJvZmlsZS5weQotKysrIGIvbW9kdWxlbWQvdGVz dHMvTW9kdWxlbWRUZXN0cy9wcm9maWxlLnB5Ci1AQCAtMjgsNiArMjgsMTggQEAgZXhjZXB0IElt cG9ydEVycm9yOgotIGZyb20gYmFzZSBpbXBvcnQgVGVzdEJhc2UKLSAKLSAKLStkZWYgY29uc3Ry dWN0X3dpdGhvdXRfYXJndW1lbnRzKCk6Ci0rICAgIE1vZHVsZW1kLlByb2ZpbGUoKQotKwotKwot K2RlZiBjb25zdHJ1Y3Rfd2l0aF9ub25lX25hbWUoKToKLSsgICAgTW9kdWxlbWQuUHJvZmlsZShu YW1lPU5vbmUpCi0rCi0rCi0rZGVmIF9zZXRfcHJvcHNfbmFtZShtb2R1bGVtZF9wcm9maWxlLCB2 YWx1ZSk6Ci0rICAgIG1vZHVsZW1kX3Byb2ZpbGUucHJvcHMubmFtZSA9IHZhbHVlCi0rCi0rCi0g Y2xhc3MgVGVzdFByb2ZpbGUoVGVzdEJhc2UpOgotICAgICBkZWYgdGVzdF9jb25zdHJ1Y3Rvcihz ZWxmKToKLSAgICAgICAgICMgVGVzdCB0aGF0IHRoZSBuZXcoKSBmdW5jdGlvbiB3b3JrcwotQEAg LTUxLDExICs2Myw5IEBAIGNsYXNzIFRlc3RQcm9maWxlKFRlc3RCYXNlKToKLSAgICAgICAgICAg ICBNb2R1bGVtZC5Qcm9maWxlLm5ldyhOb25lKQotICAgICAgICAgYXNzZXJ0ICJkb2VzIG5vdCBh bGxvdyBOb25lIGFzIGEgdmFsdWUiIGluIGNtLmV4Y2VwdGlvbi5fX3N0cl9fKCkKLSAKLS0gICAg ICAgIHdpdGggc2VsZi5leHBlY3Rfc2lnbmFsKCk6Ci0tICAgICAgICAgICAgTW9kdWxlbWQuUHJv ZmlsZSgpCi0rICAgICAgICBzZWxmLmFzc2VydFByb2Nlc3NGYWlsdXJlKGNvbnN0cnVjdF93aXRo b3V0X2FyZ3VtZW50cykKLSAKLS0gICAgICAgIHdpdGggc2VsZi5leHBlY3Rfc2lnbmFsKCk6Ci0t ICAgICAgICAgICAgTW9kdWxlbWQuUHJvZmlsZShuYW1lPU5vbmUpCi0rICAgICAgICBzZWxmLmFz c2VydFByb2Nlc3NGYWlsdXJlKGNvbnN0cnVjdF93aXRoX25vbmVfbmFtZSkKLSAKLSAgICAgZGVm IHRlc3RfY29weShzZWxmKToKLSAgICAgICAgIHBfb3JpZyA9IE1vZHVsZW1kLlByb2ZpbGUobmFt ZT0idGVzdHByb2ZpbGUiKQotQEAgLTg0LDggKzk0LDcgQEAgY2xhc3MgVGVzdFByb2ZpbGUoVGVz dEJhc2UpOgotICAgICAgICAgYXNzZXJ0IHAuZ2V0X25hbWUoKSA9PSAidGVzdHByb2ZpbGUiCi0g ICAgICAgICBhc3NlcnQgcC5wcm9wcy5uYW1lID09ICJ0ZXN0cHJvZmlsZSIKLSAKLS0gICAgICAg IHdpdGggc2VsZi5leHBlY3Rfc2lnbmFsKCk6Ci0tICAgICAgICAgICAgcC5wcm9wcy5uYW1lID0g Im5vdGFkcmlsbCIKLSsgICAgICAgIHNlbGYuYXNzZXJ0UHJvY2Vzc0ZhaWx1cmUoX3NldF9wcm9w c19uYW1lLCBwLCAibm90YWRyaWxsIikKLSAKLSAgICAgZGVmIHRlc3RfZ2V0X3NldF9kZXNjcmlw dGlvbihzZWxmKToKLSAgICAgICAgIHAgPSBNb2R1bGVtZC5Qcm9maWxlKG5hbWU9InRlc3Rwcm9m aWxlIikKLWRpZmYgLS1naXQgYS9tb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL3NlcnZpY2Vs ZXZlbC5weSBiL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvc2VydmljZWxldmVsLnB5Ci1p bmRleCBmMjQ0YjAxLi5mYzljNjQ4IDEwMDY0NAotLS0tIGEvbW9kdWxlbWQvdGVzdHMvTW9kdWxl bWRUZXN0cy9zZXJ2aWNlbGV2ZWwucHkKLSsrKyBiL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVz dHMvc2VydmljZWxldmVsLnB5Ci1AQCAtMzAsNiArMzAsMTggQEAgZnJvbSBiYXNlIGltcG9ydCBU ZXN0QmFzZQotIGltcG9ydCBkYXRldGltZQotIAotIAotK2RlZiBfY29uc3RydWN0X3dpdGhvdXRf YXJndW1lbnRzKCk6Ci0rICAgIE1vZHVsZW1kLlNlcnZpY2VMZXZlbCgpCi0rCi0rCi0rZGVmIF9j b25zdHJ1Y3Rfd2l0aF9ub25lX25hbWUoKToKLSsgICAgTW9kdWxlbWQuU2VydmljZUxldmVsKG5h bWU9Tm9uZSkKLSsKLSsKLStkZWYgX3NldF9wcm9wc19uYW1lKG1vZHVsZW1kX3NlcnZpY2VsZXZl bCwgdmFsdWUpOgotKyAgICBtb2R1bGVtZF9zZXJ2aWNlbGV2ZWwucHJvcHMubmFtZSA9IHZhbHVl Ci0rCi0rCi0gY2xhc3MgVGVzdFNlcnZpY2VMZXZlbChUZXN0QmFzZSk6Ci0gICAgIGRlZiB0ZXN0 X2NvbnN0cnVjdG9ycyhzZWxmKToKLSAgICAgICAgICMgVGVzdCB0aGF0IHRoZSBuZXcoKSBmdW5j dGlvbiB3b3JrcwotQEAgLTU2LDEyICs2OCwxMCBAQCBjbGFzcyBUZXN0U2VydmljZUxldmVsKFRl c3RCYXNlKToKLSAgICAgICAgICAgICBhc3NlcnQgImRvZXMgbm90IGFsbG93IE5vbmUgYXMgYSB2 YWx1ZSIgaW4gZS5fX3N0cl9fKCkKLSAKLSAgICAgICAgICMgVGVzdCB0aGF0IHdlIGZhaWwgaWYg b2JqZWN0IGlzIGluc3RhbnRpYXRlZCB3aXRob3V0IGEgbmFtZQotLSAgICAgICAgd2l0aCBzZWxm LmV4cGVjdF9zaWduYWwoKToKLS0gICAgICAgICAgICBzbCA9IE1vZHVsZW1kLlNlcnZpY2VMZXZl bCgpCi0rICAgICAgICBzZWxmLmFzc2VydFByb2Nlc3NGYWlsdXJlKF9jb25zdHJ1Y3Rfd2l0aG91 dF9hcmd1bWVudHMpCi0gCi0gICAgICAgICAjIFRlc3QgdGhhdCB3ZSBmYWlsIGlmIG9iamVjdCBp cyBpbnN0YW50aWF0ZWQgd2l0aCBhIE5vbmUgbmFtZQotLSAgICAgICAgd2l0aCBzZWxmLmV4cGVj dF9zaWduYWwoKToKLS0gICAgICAgICAgICBzbCA9IE1vZHVsZW1kLlNlcnZpY2VMZXZlbChuYW1l PU5vbmUpCi0rICAgICAgICBzZWxmLmFzc2VydFByb2Nlc3NGYWlsdXJlKF9jb25zdHJ1Y3Rfd2l0 aF9ub25lX25hbWUpCi0gCi0gICAgIGRlZiB0ZXN0X2NvcHkoc2VsZik6Ci0gICAgICAgICBzbCA9 IE1vZHVsZW1kLlNlcnZpY2VMZXZlbC5uZXcoImZvbyIpCi1AQCAtOTMsOCArMTAzLDcgQEAgY2xh c3MgVGVzdFNlcnZpY2VMZXZlbChUZXN0QmFzZSk6Ci0gICAgICAgICBhc3NlcnQgc2wucHJvcHMu bmFtZSA9PSAiZm9vIgotIAotICAgICAgICAgIyBUaGlzIHByb3BlcnR5IGlzIG5vdCB3cml0YWJs ZSwgbWFrZSBzdXJlIGl0IGZhaWxzIHRvIGF0dGVtcHQgaXQKLS0gICAgICAgIHdpdGggc2VsZi5l eHBlY3Rfc2lnbmFsKCk6Ci0tICAgICAgICAgICAgc2wucHJvcHMubmFtZSA9ICJiYXIiCi0rICAg ICAgICBzZWxmLmFzc2VydFByb2Nlc3NGYWlsdXJlKF9zZXRfcHJvcHNfbmFtZSwgc2wsICJiYXIi KQotIAotICAgICBkZWYgdGVzdF9nZXRfc2V0X2VvbChzZWxmKToKLSAgICAgICAgIHNsID0gTW9k dWxlbWQuU2VydmljZUxldmVsLm5ldygiZm9vIikKLWRpZmYgLS1naXQgYS9tb2R1bGVtZC90ZXN0 cy9Nb2R1bGVtZFRlc3RzL3RyYW5zbGF0aW9uZW50cnkucHkgYi9tb2R1bGVtZC90ZXN0cy9Nb2R1 bGVtZFRlc3RzL3RyYW5zbGF0aW9uZW50cnkucHkKLWluZGV4IGM1M2U2NGIuLjlmY2U0NDMgMTAw NjQ0Ci0tLS0gYS9tb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL3RyYW5zbGF0aW9uZW50cnku cHkKLSsrKyBiL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvdHJhbnNsYXRpb25lbnRyeS5w eQotQEAgLTI5LDYgKzI5LDE4IEBAIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSBmcm9tIGJhc2UgaW1w b3J0IFRlc3RCYXNlCi0gCi0gCi0rZGVmIF9pbnN0YW50aWF0ZV93aXRob3V0X2xvY2FsZSgpOgot KyAgICBNb2R1bGVtZC5UcmFuc2xhdGlvbkVudHJ5KCkKLSsKLSsKLStkZWYgX2luc3RhbnRpYXRl X3dpdGhfbm9uZV9sb2NhbCgpOgotKyAgICBNb2R1bGVtZC5UcmFuc2xhdGlvbkVudHJ5KGxvY2Fs ZT1Ob25lKQotKwotKwotK2RlZiBfc2V0X2xvY2FsZSh0ZSk6Ci0rICAgIHRlLnByb3BzLmxvY2Fs ZSA9ICJlbl9HQiIKLSsKLSsKLSBjbGFzcyBUZXN0VHJhbnNsYXRpb25FbnRyeShUZXN0QmFzZSk6 Ci0gICAgIGRlZiB0ZXN0X2NvbnN0cnVjdG9ycyhzZWxmKToKLSAgICAgICAgICMgVGVzdCB0aGF0 IHRoZSBuZXcoKSBmdW5jdGlvbiB3b3JrcwotQEAgLTExOCwxMiArMTMwLDEwIEBAIGNsYXNzIFRl c3RUcmFuc2xhdGlvbkVudHJ5KFRlc3RCYXNlKToKLSAgICAgICAgICAgICBhc3NlcnQgImRvZXMg bm90IGFsbG93IE5vbmUgYXMgYSB2YWx1ZSIgaW4gZS5fX3N0cl9fKCkKLSAKLSAgICAgICAgICMg VGVzdCB0aGF0IHdlIGZhaWwgaWYgb2JqZWN0IGlzIGluc3RhbnRpYXRlZCB3aXRob3V0IGEgbG9j YWxlCi0tICAgICAgICB3aXRoIHNlbGYuZXhwZWN0X3NpZ25hbCgpOgotLSAgICAgICAgICAgIE1v ZHVsZW1kLlRyYW5zbGF0aW9uRW50cnkoKQotKyAgICAgICAgc2VsZi5hc3NlcnRQcm9jZXNzRmFp bHVyZShfaW5zdGFudGlhdGVfd2l0aG91dF9sb2NhbGUpCi0gCi0gICAgICAgICAjIFRlc3QgdGhh dCB3ZSBmYWlsIGlmIG9iamVjdCBpcyBpbnN0YW50aWF0ZWQgd2l0aCBhIE5vbmUgbG9jYWxlCi0t ICAgICAgICB3aXRoIHNlbGYuZXhwZWN0X3NpZ25hbCgpOgotLSAgICAgICAgICAgIE1vZHVsZW1k LlRyYW5zbGF0aW9uRW50cnkobG9jYWxlPU5vbmUpCi0rICAgICAgICBzZWxmLmFzc2VydFByb2Nl c3NGYWlsdXJlKF9pbnN0YW50aWF0ZV93aXRoX25vbmVfbG9jYWwpCi0gCi0gICAgIGRlZiB0ZXN0 X2NvcHkoc2VsZik6Ci0gICAgICAgICB0ZV9vcmlnID0gTW9kdWxlbWQuVHJhbnNsYXRpb25FbnRy eShsb2NhbGU9ImVuX1VTIikKLUBAIC0xNjIsOCArMTcyLDcgQEAgY2xhc3MgVGVzdFRyYW5zbGF0 aW9uRW50cnkoVGVzdEJhc2UpOgotICAgICAgICAgYXNzZXJ0IHRlLmdldF9sb2NhbGUoKSA9PSAi ZW5fVVMiCi0gICAgICAgICBhc3NlcnQgdGUucHJvcHMubG9jYWxlID09ICJlbl9VUyIKLSAKLS0g ICAgICAgIHdpdGggc2VsZi5leHBlY3Rfc2lnbmFsKCk6Ci0tICAgICAgICAgICAgdGUucHJvcHMu bG9jYWxlID0gImVuX0dCIgotKyAgICAgICAgc2VsZi5hc3NlcnRQcm9jZXNzRmFpbHVyZShfc2V0 X2xvY2FsZSwgdGUpCi0gCi0gICAgIGRlZiB0ZXN0X2dldF9zZXRfc3VtbWFyeShzZWxmKToKLSAg ICAgICAgIHRlID0gTW9kdWxlbWQuVHJhbnNsYXRpb25FbnRyeShsb2NhbGU9ImVuX1VTIikKLWRp ZmYgLS1naXQgYS9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLWNvbW1vbi5jIGIvbW9kdWxl bWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1jb21tb24uYwotaW5kZXggOTdlNDc3Zi4uNjg5NWUzNCAx MDA2NDQKLS0tLSBhL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtY29tbW9uLmMKLSsrKyBi L21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtY29tbW9uLmMKLUBAIC0xNCw3ICsxNCw2IEBA Ci0gI2luY2x1ZGUgPGdsaWIuaD4KLSAjaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KLSAjaW5jbHVk ZSA8bG9jYWxlLmg+Ci0tI2luY2x1ZGUgPHNpZ25hbC5oPgotIAotICNpbmNsdWRlICJtb2R1bGVt ZC5oIgotIAotQEAgLTgzLDcgKzgyLDcgQEAgdGVzdF9tb2R1bGVtZF9sb2FkX2ZpbGUgKHZvaWQp Ci0gCi0gCi0gc3RhdGljIHZvaWQKLS10ZXN0X21vZHVsZW1kX2xvYWRfc3RyaW5nICh2b2lkKQot K3Rlc3RfbW9kdWxlbWRfbG9hZF9zdHJpbmdfcmVndWxhciAodm9pZCkKLSB7Ci0gICBjb25zdCBn Y2hhciAqeWFtbF9zdHJpbmcgPSBOVUxMOwotICAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0g TlVMTDsKLUBAIC0xMjIsMTYgKzEyMSw2IEBAIHRlc3RfbW9kdWxlbWRfbG9hZF9zdHJpbmcgKHZv aWQpCi0gICBnX2Fzc2VydF9ub25udWxsIChvdXRwdXQpOwotIAotIAotLSAgLyogTlVMTCBzdHJp bmcgc2hvdWxkIHJhaXNlIGFuIGV4Y2VwdGlvbiAqLwotLSAgZ19jbGVhcl9lcnJvciAoJmVycm9y KTsKLS0gIGdfY2xlYXJfb2JqZWN0ICgmaWR4KTsKLS0gIG1vZHVsZW1kX3Rlc3Rfc2lnbmFsID0g MDsKLS0gIHNpZ25hbCAoU0lHVFJBUCwgbW9kdWxlbWRfdGVzdF9zaWduYWxfaGFuZGxlcik7Ci0t ICBpZHggPSBtb2R1bGVtZF9sb2FkX3N0cmluZyAoTlVMTCwgJmVycm9yKTsKLS0gIGdfYXNzZXJ0 X2NtcGludCAobW9kdWxlbWRfdGVzdF9zaWduYWwsID09LCBTSUdUUkFQKTsKLS0gIGdfYXNzZXJ0 X251bGwgKGlkeCk7Ci0tCi0tCi0gICAvKiBBbiBlbXB0eSBzdHJpbmcgaXMgdmFsaWQgWUFNTCwg c28gaXQgcmV0dXJucyBhIG5vbi1OVUxMIGJ1dCBlbXB0eSBpbmRleC4gKi8KLSAgIGdfY2xlYXJf ZXJyb3IgKCZlcnJvcik7Ci0gICBnX2NsZWFyX29iamVjdCAoJmlkeCk7Ci1AQCAtMTUxLDYgKzE0 MCwyMiBAQCB0ZXN0X21vZHVsZW1kX2xvYWRfc3RyaW5nICh2b2lkKQotIH0KLSAKLSAKLSsvKiBO VUxMIHN0cmluZyBzaG91bGQgcmFpc2UgYW4gZXhjZXB0aW9uICovCi0rc3RhdGljIHZvaWQKLSt0 ZXN0X21vZHVsZW1kX2xvYWRfc3RyaW5nX251bGwgKHZvaWQpCi0rewotKyAgaWYgKGdfdGVzdF9z dWJwcm9jZXNzICgpKQotKyAgICB7Ci0rICAgICAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0g TlVMTDsKLSsgICAgICBnX2F1dG9wdHIgKE1vZHVsZW1kTW9kdWxlSW5kZXgpIGlkeCA9IE5VTEw7 Ci0rICAgICAgaWR4ID0gbW9kdWxlbWRfbG9hZF9zdHJpbmcgKE5VTEwsICZlcnJvcik7Ci0rICAg ICAgcmV0dXJuOwotKyAgICB9Ci0rICBnX3Rlc3RfdHJhcF9zdWJwcm9jZXNzIChOVUxMLCAwLCBH X1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKLSsgIGdfdGVzdF90cmFwX2Fzc2VydF9mYWlsZWQg KCk7Ci0rfQotKwotKwotIHN0YXRpYyB2b2lkCi0gdGVzdF9wYWNrYWdlcl9yZWFkX2ZpbGUgKHZv aWQpCi0gewotQEAgLTM1Myw3ICszNTgsNyBAQCB0ZXN0X3BhY2thZ2VyX3JlYWRfZmlsZSAodm9p ZCkKLSAKLSAKLSBzdGF0aWMgdm9pZAotLXRlc3RfcGFja2FnZXJfcmVhZF9zdHJpbmcgKHZvaWQp Ci0rdGVzdF9wYWNrYWdlcl9yZWFkX3N0cmluZ19yZWd1bGFyICh2b2lkKQotIHsKLSAgIGNvbnN0 IGdjaGFyICp5YW1sX3N0cmluZyA9IE5VTEw7Ci0gICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3Ig PSBOVUxMOwotQEAgLTUzMSwxNiArNTM2LDYgQEAgdGVzdF9wYWNrYWdlcl9yZWFkX3N0cmluZyAo dm9pZCkKLSAgICAgPT0sCi0gICAgICJzdHJlYW1uYW1lLW92ZXJyaWRlIik7Ci0gCi0tICAvKiBO VUxMIHN0cmluZyBzaG91bGQgcmFpc2UgYW4gZXhjZXB0aW9uICovCi0tICBnX2NsZWFyX2Vycm9y ICgmZXJyb3IpOwotLSAgZ19jbGVhcl9vYmplY3QgKCZvYmplY3QpOwotLSAgbW9kdWxlbWRfdGVz dF9zaWduYWwgPSAwOwotLSAgc2lnbmFsIChTSUdUUkFQLCBtb2R1bGVtZF90ZXN0X3NpZ25hbF9o YW5kbGVyKTsKLS0gIG90eXBlID0gbW9kdWxlbWRfcmVhZF9wYWNrYWdlcl9zdHJpbmcgKE5VTEws ICZvYmplY3QsICZlcnJvcik7Ci0tICBnX2Fzc2VydF9jbXBpbnQgKG1vZHVsZW1kX3Rlc3Rfc2ln bmFsLCA9PSwgU0lHVFJBUCk7Ci0tICBnX2Fzc2VydF9jbXBpbnQgKG90eXBlLCA9PSwgR19UWVBF X0lOVkFMSUQpOwotLSAgZ19hc3NlcnRfbnVsbCAob2JqZWN0KTsKLS0KLSAgIC8qIEFuIGVtcHR5 IHN0cmluZyBpcyBub3QgYSB2YWxpZCBwYWNrYWdlciBmb3JtYXQgKi8KLSAgIGdfY2xlYXJfZXJy b3IgKCZlcnJvcik7Ci0gICBnX2NsZWFyX29iamVjdCAoJm9iamVjdCk7Ci1AQCAtNTU5LDYgKzU1 NCwyMSBAQCB0ZXN0X3BhY2thZ2VyX3JlYWRfc3RyaW5nICh2b2lkKQotIH0KLSAKLSAKLSsvKiBO VUxMIHN0cmluZyBzaG91bGQgcmFpc2UgYW4gZXhjZXB0aW9uICovCi0rc3RhdGljIHZvaWQKLSt0 ZXN0X3BhY2thZ2VyX3JlYWRfc3RyaW5nX251bGwgKHZvaWQpCi0rewotKyAgaWYgKGdfdGVzdF9z dWJwcm9jZXNzICgpKQotKyAgICB7Ci0rICAgICAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0g TlVMTDsKLSsgICAgICBnX2F1dG9wdHIgKEdPYmplY3QpIG9iamVjdCA9IE5VTEw7Ci0rICAgICAg KHZvaWQpbW9kdWxlbWRfcmVhZF9wYWNrYWdlcl9zdHJpbmcgKE5VTEwsICZvYmplY3QsICZlcnJv cik7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rICBnX3Rlc3RfdHJhcF9zdWJwcm9jZXNzIChO VUxMLCAwLCBHX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKLSsgIGdfdGVzdF90cmFwX2Fzc2Vy dF9mYWlsZWQgKCk7Ci0rfQotKwotIC8qCi0gICogRW1wdHkgcHJvZmlsZXMgYXJlIGxlZ2FsLiBQ YXJzZXIgbWlzaW50ZXJwcmV0ZWQgdGhlbSBhcyBhIGxpc3Qgb2Ygb25lCi0gICogcGFja2FnZSB3 aXRoIGFuIGVtcHR5IHBhY2thZ2UgbmFtZS4KLUBAIC02MTcsMTMgKzYyNywxNyBAQCBtYWluIChp bnQgYXJnYywgY2hhciAqYXJndltdKQotICAgICAgICAgICAgICAgICAgICB0ZXN0X21vZHVsZW1k X2dldF92ZXJzaW9uKTsKLSAKLSAgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9jb21t b24vbG9hZF9maWxlIiwgdGVzdF9tb2R1bGVtZF9sb2FkX2ZpbGUpOwotLSAgZ190ZXN0X2FkZF9m dW5jICgiL21vZHVsZW1kL3YyL2NvbW1vbi9sb2FkX3N0cmluZyIsCi0tICAgICAgICAgICAgICAg ICAgIHRlc3RfbW9kdWxlbWRfbG9hZF9zdHJpbmcpOwotKyAgZ190ZXN0X2FkZF9mdW5jICgiL21v ZHVsZW1kL3YyL2NvbW1vbi9sb2FkX3N0cmluZy9yZWd1bGFyIiwKLSsgICAgICAgICAgICAgICAg ICAgdGVzdF9tb2R1bGVtZF9sb2FkX3N0cmluZ19yZWd1bGFyKTsKLSsgIGdfdGVzdF9hZGRfZnVu YyAoIi9tb2R1bGVtZC92Mi9jb21tb24vbG9hZF9zdHJpbmcvbnVsbCIsCi0rICAgICAgICAgICAg ICAgICAgIHRlc3RfbW9kdWxlbWRfbG9hZF9zdHJpbmdfbnVsbCk7Ci0gCi0gICBnX3Rlc3RfYWRk X2Z1bmMgKCIvbW9kdWxlbWQvdjIvY29tbW9uL3BhY2thZ2VyL3JlYWRfZmlsZSIsCi0gICAgICAg ICAgICAgICAgICAgIHRlc3RfcGFja2FnZXJfcmVhZF9maWxlKTsKLS0gIGdfdGVzdF9hZGRfZnVu YyAoIi9tb2R1bGVtZC92Mi9jb21tb24vcGFja2FnZXIvcmVhZF9zdHJpbmciLAotLSAgICAgICAg ICAgICAgICAgICB0ZXN0X3BhY2thZ2VyX3JlYWRfc3RyaW5nKTsKLSsgIGdfdGVzdF9hZGRfZnVu YyAoIi9tb2R1bGVtZC92Mi9jb21tb24vcGFja2FnZXIvcmVhZF9zdHJpbmcvcmVndWxhciIsCi0r ICAgICAgICAgICAgICAgICAgIHRlc3RfcGFja2FnZXJfcmVhZF9zdHJpbmdfcmVndWxhcik7Ci0r ICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvY29tbW9uL3BhY2thZ2VyL3JlYWRfc3Ry aW5nL251bGwiLAotKyAgICAgICAgICAgICAgICAgICB0ZXN0X3BhY2thZ2VyX3JlYWRfc3RyaW5n X251bGwpOwotIAotICAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL2NvbW1vbi9lbXB0 eV9wcm9maWxlIiwgdGVzdF9lbXB0eV9wcm9maWxlKTsKLSAKLWRpZmYgLS1naXQgYS9tb2R1bGVt ZC90ZXN0cy90ZXN0LW1vZHVsZW1kLWNvbXBvbmVudC1tb2R1bGUuYyBiL21vZHVsZW1kL3Rlc3Rz L3Rlc3QtbW9kdWxlbWQtY29tcG9uZW50LW1vZHVsZS5jCi1pbmRleCAyMGU3ODgxLi42ODNjNzc0 IDEwMDY0NAotLS0tIGEvbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1jb21wb25lbnQtbW9k dWxlLmMKLSsrKyBiL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtY29tcG9uZW50LW1vZHVs ZS5jCi1AQCAtMTQsNyArMTQsNiBAQAotICNpbmNsdWRlIDxnbGliLmg+Ci0gI2luY2x1ZGUgPGds aWIvZ3N0ZGlvLmg+Ci0gI2luY2x1ZGUgPGxvY2FsZS5oPgotLSNpbmNsdWRlIDxzaWduYWwuaD4K LSAKLSAjaW5jbHVkZSAibW9kdWxlbWQtY29tcG9uZW50LW1vZHVsZS5oIgotICNpbmNsdWRlICJt b2R1bGVtZC1jb21wb25lbnQuaCIKLUBAIC0yOCwxNiArMjcsOCBAQCB0eXBlZGVmIHN0cnVjdCBf Q29tcG9uZW50TW9kdWxlRml4dHVyZQotIHsKLSB9IENvbXBvbmVudE1vZHVsZUZpeHR1cmU7Ci0g Ci0tZ2Jvb2xlYW4gc2lnbmFsZWQgPSBGQUxTRTsKLS0KLS1zdGF0aWMgdm9pZAotLXNpZ3RyYXBf aGFuZGxlciAoaW50IFVOVVNFRCAoc2lnX251bSkpCi0tewotLSAgc2lnbmFsZWQgPSBUUlVFOwot LX0KLS0KLSBzdGF0aWMgdm9pZAotLWNvbXBvbmVudF9tb2R1bGVfdGVzdF9jb25zdHJ1Y3QgKHZv aWQpCi0rY29tcG9uZW50X21vZHVsZV90ZXN0X2NvbnN0cnVjdF9yZWd1bGFyICh2b2lkKQotIHsK LSAgIGdfYXV0b3B0ciAoTW9kdWxlbWRDb21wb25lbnRNb2R1bGUpIG0gPSBOVUxMOwotICAgTW9k dWxlbWRDb21wb25lbnQgKm1jID0gTlVMTDsKLUBAIC04NCwyOSArNzUsNDkgQEAgY29tcG9uZW50 X21vZHVsZV90ZXN0X2NvbnN0cnVjdCAodm9pZCkKLSAgICAgbW9kdWxlbWRfY29tcG9uZW50X21v ZHVsZV9nZXRfcmVwb3NpdG9yeSAobSksID09LCAic29tZXJlcG8iKTsKLSAgIG1jID0gTlVMTDsK LSAgIGdfY2xlYXJfb2JqZWN0ICgmbSk7Ci0rfQotIAotLSAgLyogVGVzdCB0aGF0IHdlIGFib3J0 IHdpdGggYSBOVUxMIG5hbWUgdG8gbmV3KCkgKi8KLS0gIHNpZ25hbGVkID0gRkFMU0U7Ci0tICBz aWduYWwgKFNJR1RSQVAsIHNpZ3RyYXBfaGFuZGxlcik7Ci0tICBtID0gbW9kdWxlbWRfY29tcG9u ZW50X21vZHVsZV9uZXcgKE5VTEwpOwotLSAgZ19hc3NlcnRfdHJ1ZSAoc2lnbmFsZWQpOwotLSAg Z19jbGVhcl9vYmplY3QgKCZtKTsKLS0KLS0gIC8qIFRlc3QgdGhhdCBpbml0IGZhaWxzIHdpdGhv dXQgbmFtZSAqLwotLSAgc2lnbmFsZWQgPSBGQUxTRTsKLS0gIHNpZ25hbCAoU0lHVFJBUCwgc2ln dHJhcF9oYW5kbGVyKTsKLS0gIG0gPSBnX29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfQ09NUE9O RU5UX01PRFVMRSwgTlVMTCk7Ci0tICBnX2Fzc2VydF90cnVlIChzaWduYWxlZCk7Ci0tICBnX2Ns ZWFyX29iamVjdCAoJm0pOwotKy8qIFRlc3QgdGhhdCB3ZSBhYm9ydCB3aXRoIGEgTlVMTCBuYW1l IHRvIG5ldygpICovCi0rc3RhdGljIHZvaWQKLStjb21wb25lbnRfbW9kdWxlX3Rlc3RfY29uc3Ry dWN0X25ld19udWxsX25hbWUgKHZvaWQpCi0rewotKyAgaWYgKGdfdGVzdF9zdWJwcm9jZXNzICgp KQotKyAgICB7Ci0rICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZENvbXBvbmVudE1vZHVsZSkgbSA9 IE5VTEw7Ci0rICAgICAgbSA9IG1vZHVsZW1kX2NvbXBvbmVudF9tb2R1bGVfbmV3IChOVUxMKTsK LSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEws IDAsIEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQpOwotKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2Zh aWxlZCAoKTsKLSt9Ci0gCi0tICAvKiBUZXN0IHRoYXQgaW5pdCBmYWlscyB3aXRoIGEgTlVMTCBu YW1lICovCi0tICBzaWduYWxlZCA9IEZBTFNFOwotLSAgc2lnbmFsIChTSUdUUkFQLCBzaWd0cmFw X2hhbmRsZXIpOwotLSAgbSA9IGdfb2JqZWN0X25ldyAoTU9EVUxFTURfVFlQRV9DT01QT05FTlRf TU9EVUxFLCAibmFtZSIsIE5VTEwsIE5VTEwpOwotLSAgZ19hc3NlcnRfdHJ1ZSAoc2lnbmFsZWQp OwotLSAgZ19jbGVhcl9vYmplY3QgKCZtKTsKLSsvKiBUZXN0IHRoYXQgaW5pdCBmYWlscyB3aXRo b3V0IG5hbWUgKi8KLStzdGF0aWMgdm9pZAotK2NvbXBvbmVudF9tb2R1bGVfdGVzdF9jb25zdHJ1 Y3RfaW5pdF93aXRob3V0X25hbWUgKHZvaWQpCi0rewotKyAgaWYgKGdfdGVzdF9zdWJwcm9jZXNz ICgpKQotKyAgICB7Ci0rICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZENvbXBvbmVudE1vZHVsZSkg bSA9IE5VTEw7Ci0rICAgICAgbSA9IGdfb2JqZWN0X25ldyAoTU9EVUxFTURfVFlQRV9DT01QT05F TlRfTU9EVUxFLCBOVUxMKTsKLSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsgIGdfdGVzdF90cmFw X3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQpOwotKyAgZ190 ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKLSB9Ci0gCi0rLyogVGVzdCB0aGF0IGluaXQgZmFp bHMgd2l0aCBhIE5VTEwgbmFtZSAqLwotK3N0YXRpYyB2b2lkCi0rY29tcG9uZW50X21vZHVsZV90 ZXN0X2NvbnN0cnVjdF9pbml0X251bGxfbmFtZSAodm9pZCkKLSt7Ci0rICBpZiAoZ190ZXN0X3N1 YnByb2Nlc3MgKCkpCi0rICAgIHsKLSsgICAgICBnX2F1dG9wdHIgKE1vZHVsZW1kQ29tcG9uZW50 TW9kdWxlKSBtID0gTlVMTDsKLSsgICAgICBtID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9UWVBF X0NPTVBPTkVOVF9NT0RVTEUsICJuYW1lIiwgTlVMTCwgTlVMTCk7Ci0rICAgICAgcmV0dXJuOwot KyAgICB9Ci0rICBnX3Rlc3RfdHJhcF9zdWJwcm9jZXNzIChOVUxMLCAwLCBHX1RFU1RfU1VCUFJP Q0VTU19ERUZBVUxUKTsKLSsgIGdfdGVzdF90cmFwX2Fzc2VydF9mYWlsZWQgKCk7Ci0rfQotIAot IHN0YXRpYyB2b2lkCi0gY29tcG9uZW50X21vZHVsZV90ZXN0X2VxdWFscyAodm9pZCkKLUBAIC00 MjEsOCArNDMyLDE3IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCi0gICBnX3Rlc3Rf YnVnX2Jhc2UgKCJodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPSIp OwotIAotICAgLy8gRGVmaW5lIHRoZSB0ZXN0cy4KLS0gIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1 bGVtZC92Mi9jb21wb25lbnQvbW9kdWxlL2NvbnN0cnVjdCIsCi0tICAgICAgICAgICAgICAgICAg IGNvbXBvbmVudF9tb2R1bGVfdGVzdF9jb25zdHJ1Y3QpOwotKyAgZ190ZXN0X2FkZF9mdW5jICgi L21vZHVsZW1kL3YyL2NvbXBvbmVudC9tb2R1bGUvY29uc3RydWN0L3JlZ3VsYXIiLAotKyAgICAg ICAgICAgICAgICAgICBjb21wb25lbnRfbW9kdWxlX3Rlc3RfY29uc3RydWN0X3JlZ3VsYXIpOwot KwotKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL2NvbXBvbmVudC9tb2R1bGUvY29u c3RydWN0L25ld19udWxsX25hbWUiLAotKyAgICAgICAgICAgICAgICAgICBjb21wb25lbnRfbW9k dWxlX3Rlc3RfY29uc3RydWN0X25ld19udWxsX25hbWUpOwotKwotKyAgZ190ZXN0X2FkZF9mdW5j ICgiL21vZHVsZW1kL3YyL2NvbXBvbmVudC9tb2R1bGUvY29uc3RydWN0L2luaXRfd2l0aG91dF9u YW1lIiwKLSsgICAgICAgICAgICAgICAgICAgY29tcG9uZW50X21vZHVsZV90ZXN0X2NvbnN0cnVj dF9pbml0X3dpdGhvdXRfbmFtZSk7Ci0rCi0rICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQv djIvY29tcG9uZW50L21vZHVsZS9jb25zdHJ1Y3QvaW5pdF9udWxsX25hbWUiLAotKyAgICAgICAg ICAgICAgICAgICBjb21wb25lbnRfbW9kdWxlX3Rlc3RfY29uc3RydWN0X2luaXRfbnVsbF9uYW1l KTsKLSAKLSAgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9jb21wb25lbnQvbW9kdWxl L2VxdWFscyIsCi0gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudF9tb2R1bGVfdGVzdF9lcXVh bHMpOwotZGlmZiAtLWdpdCBhL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtZGVmYXVsdHMt djEuYyBiL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtZGVmYXVsdHMtdjEuYwotaW5kZXgg YzRmZTIzNS4uMmRhYTI5NSAxMDA2NDQKLS0tLSBhL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxl bWQtZGVmYXVsdHMtdjEuYwotKysrIGIvbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1kZWZh dWx0cy12MS5jCi1AQCAtMTQsNyArMTQsNiBAQAotICNpbmNsdWRlIDxnbGliLmg+Ci0gI2luY2x1 ZGUgPGdsaWIvZ3N0ZGlvLmg+Ci0gI2luY2x1ZGUgPGxvY2FsZS5oPgotLSNpbmNsdWRlIDxzaWdu YWwuaD4KLSAKLSAjaW5jbHVkZSAibW9kdWxlbWQtZGVmYXVsdHMtdjEuaCIKLSAjaW5jbHVkZSAi cHJpdmF0ZS9nbGliLWV4dGVuc2lvbnMuaCIKLUBAIC0yNiw3ICsyNSw3IEBACi0gCi0gCi0gc3Rh dGljIHZvaWQKLS1kZWZhdWx0c190ZXN0X2NvbnN0cnVjdCAodm9pZCkKLStkZWZhdWx0c190ZXN0 X2NvbnN0cnVjdF9yZWd1bGFyICh2b2lkKQotIHsKLSAgIGdfYXV0b3B0ciAoTW9kdWxlbWREZWZh dWx0c1YxKSBkZWZhdWx0cyA9IE5VTEw7Ci0gCi1AQCAtMzcsMTMgKzM2LDYgQEAgZGVmYXVsdHNf dGVzdF9jb25zdHJ1Y3QgKHZvaWQpCi0gICBnX2Fzc2VydF90cnVlIChNT0RVTEVNRF9JU19ERUZB VUxUU19WMSAoZGVmYXVsdHMpKTsKLSAgIGdfY2xlYXJfb2JqZWN0ICgmZGVmYXVsdHMpOwotIAot LSAgLyogVGVzdCBuZXcoKSB3aXRoIGEgTlVMTCBtb2R1bGVfbmFtZSAqLwotLSAgbW9kdWxlbWRf dGVzdF9zaWduYWwgPSAwOwotLSAgc2lnbmFsIChTSUdUUkFQLCBtb2R1bGVtZF90ZXN0X3NpZ25h bF9oYW5kbGVyKTsKLS0gIGRlZmF1bHRzID0gbW9kdWxlbWRfZGVmYXVsdHNfdjFfbmV3IChOVUxM KTsKLS0gIGdfYXNzZXJ0X2NtcGludCAobW9kdWxlbWRfdGVzdF9zaWduYWwsID09LCBTSUdUUkFQ KTsKLS0gIGdfY2xlYXJfb2JqZWN0ICgmZGVmYXVsdHMpOwotLQotIAotICAgLyogVGVzdCBvYmpl Y3QgaW5zdGFudGlhdGlvbiB3aXRoIGEgdmFsaWQgbW9kdWxlIG5hbWUgKi8KLSAgIC8vIGNsYW5n LWZvcm1hdCBvZmYKLUBAIC01NSwyNiArNDcsNTcgQEAgZGVmYXVsdHNfdGVzdF9jb25zdHJ1Y3Qg KHZvaWQpCi0gICBnX2Fzc2VydF90cnVlIChNT0RVTEVNRF9JU19ERUZBVUxUUyAoZGVmYXVsdHMp KTsKLSAgIGdfYXNzZXJ0X3RydWUgKE1PRFVMRU1EX0lTX0RFRkFVTFRTX1YxIChkZWZhdWx0cykp OwotICAgZ19jbGVhcl9vYmplY3QgKCZkZWZhdWx0cyk7Ci0rfQotIAotLSAgLyogVGVzdCBvYmpl Y3QgaW5zdGFudGlhdGlvbiB3aXRoIGEgTlVMTCBtb2R1bGUgbmFtZSAqLwotLSAgbW9kdWxlbWRf dGVzdF9zaWduYWwgPSAwOwotLSAgc2lnbmFsIChTSUdUUkFQLCBtb2R1bGVtZF90ZXN0X3NpZ25h bF9oYW5kbGVyKTsKLS0gIC8vIGNsYW5nLWZvcm1hdCBvZmYKLS0gIGRlZmF1bHRzID0gZ19vYmpl Y3RfbmV3IChNT0RVTEVNRF9UWVBFX0RFRkFVTFRTX1YxLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICJtb2R1bGUtbmFtZSIsIE5VTEwsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg TlVMTCk7Ci0tICAvLyBjbGFuZy1mb3JtYXQgb24KLS0gIGdfYXNzZXJ0X2NtcGludCAobW9kdWxl bWRfdGVzdF9zaWduYWwsID09LCBTSUdUUkFQKTsKLS0gIGdfY2xlYXJfb2JqZWN0ICgmZGVmYXVs dHMpOwotIAotLSAgLyogVGVzdCBvYmplY3QgaW5zdGFudGlhdGlvbiB3aXRob3V0IHNwZWNpZnlp bmcgdGhlIG1vZHVsZSBuYW1lICovCi0tICBtb2R1bGVtZF90ZXN0X3NpZ25hbCA9IDA7Ci0tICBz aWduYWwgKFNJR1RSQVAsIG1vZHVsZW1kX3Rlc3Rfc2lnbmFsX2hhbmRsZXIpOwotLSAgLy8gY2xh bmctZm9ybWF0IG9mZgotLSAgZGVmYXVsdHMgPSBnX29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVf REVGQVVMVFNfVjEsIE5VTEwpOwotLSAgLy8gY2xhbmctZm9ybWF0IG9uCi0tICBnX2Fzc2VydF9j bXBpbnQgKG1vZHVsZW1kX3Rlc3Rfc2lnbmFsLCA9PSwgU0lHVFJBUCk7Ci0tICBnX2NsZWFyX29i amVjdCAoJmRlZmF1bHRzKTsKLSsvKiBUZXN0IG5ldygpIHdpdGggYSBOVUxMIG1vZHVsZV9uYW1l ICovCi0rc3RhdGljIHZvaWQKLStkZWZhdWx0c190ZXN0X2NvbnN0cnVjdF9uZXdfbnVsbF9tb2R1 bGVfbmFtZSAodm9pZCkKLSt7Ci0rICBpZiAoZ190ZXN0X3N1YnByb2Nlc3MgKCkpCi0rICAgIHsK LSsgICAgICBnX2F1dG9wdHIgKE1vZHVsZW1kRGVmYXVsdHNWMSkgZGVmYXVsdHMgPSBOVUxMOwot KyAgICAgIGRlZmF1bHRzID0gbW9kdWxlbWRfZGVmYXVsdHNfdjFfbmV3IChOVUxMKTsKLSsgICAg ICByZXR1cm47Ci0rICAgIH0KLSsgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdf VEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQpOwotKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAo KTsKLSt9Ci0rCi0rCi0rLyogVGVzdCBvYmplY3QgaW5zdGFudGlhdGlvbiB3aXRob3V0IHNwZWNp ZnlpbmcgdGhlIG1vZHVsZSBuYW1lICovCi0rc3RhdGljIHZvaWQKLStkZWZhdWx0c190ZXN0X2Nv bnN0cnVjdF9pbml0X25vX21vZHVsZV9uYW1lICh2b2lkKQotK3sKLSsgIGlmIChnX3Rlc3Rfc3Vi cHJvY2VzcyAoKSkKLSsgICAgewotKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWREZWZhdWx0c1Yx KSBkZWZhdWx0cyA9IE5VTEw7Ci0rICAgICAgLy8gY2xhbmctZm9ybWF0IG9mZgotKyAgICAgIGRl ZmF1bHRzID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9UWVBFX0RFRkFVTFRTX1YxLCBOVUxMKTsK LSsgICAgICAvLyBjbGFuZy1mb3JtYXQgb24KLSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsgIGdf dGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQp OwotKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKLSt9Ci0rCi0rCi0rLyogVGVzdCBv YmplY3QgaW5zdGFudGlhdGlvbiB3aXRoIGEgTlVMTCBtb2R1bGUgbmFtZSAqLwotK3N0YXRpYyB2 b2lkCi0rZGVmYXVsdHNfdGVzdF9jb25zdHJ1Y3RfaW5pdF9udWxsX21vZHVsZV9uYW1lICh2b2lk KQotK3sKLSsgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKLSsgICAgewotKyAgICAgIGdfYXV0 b3B0ciAoTW9kdWxlbWREZWZhdWx0c1YxKSBkZWZhdWx0cyA9IE5VTEw7Ci0rICAgICAgLy8gY2xh bmctZm9ybWF0IG9mZgotKyAgICAgIGRlZmF1bHRzID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9U WVBFX0RFRkFVTFRTX1YxLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW9kdWxl LW5hbWUiLCBOVUxMLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKLSsg ICAgICAvLyBjbGFuZy1mb3JtYXQgb24KLSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsgIGdfdGVz dF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQpOwot KyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKLSB9Ci0gCi0gCi1AQCAtODIwLDggKzg0 MywxNCBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQotICAgLy8gRGVmaW5lIHRoZSB0 ZXN0cy4KLSAgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9kZWZhdWx0cy92MS9lcXVh bHMiLCBkZWZhdWx0c190ZXN0X2VxdWFscyk7Ci0gCi0tICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9k dWxlbWQvdjIvZGVmYXVsdHMvdjEvY29uc3RydWN0IiwKLS0gICAgICAgICAgICAgICAgICAgZGVm YXVsdHNfdGVzdF9jb25zdHJ1Y3QpOwotKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3Yy L2RlZmF1bHRzL3YxL2NvbnN0cnVjdC9yZWd1bGFyIiwKLSsgICAgICAgICAgICAgICAgICAgZGVm YXVsdHNfdGVzdF9jb25zdHJ1Y3RfcmVndWxhcik7Ci0rICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9k dWxlbWQvdjIvZGVmYXVsdHMvdjEvY29uc3RydWN0L25ld19udWxsX21vZHVsZV9uYW1lIiwKLSsg ICAgICAgICAgICAgICAgICAgZGVmYXVsdHNfdGVzdF9jb25zdHJ1Y3RfbmV3X251bGxfbW9kdWxl X25hbWUpOwotKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL2RlZmF1bHRzL3YxL2Nv bnN0cnVjdC9pbml0X25vX21vZHVsZV9uYW1lIiwKLSsgICAgICAgICAgICAgICAgICAgZGVmYXVs dHNfdGVzdF9jb25zdHJ1Y3RfaW5pdF9ub19tb2R1bGVfbmFtZSk7Ci0rICBnX3Rlc3RfYWRkX2Z1 bmMgKCIvbW9kdWxlbWQvdjIvZGVmYXVsdHMvdjEvY29uc3RydWN0L2luaXRfbnVsbF9tb2R1bGVf bmFtZSIsCi0rICAgICAgICAgICAgICAgICAgIGRlZmF1bHRzX3Rlc3RfY29uc3RydWN0X2luaXRf bnVsbF9tb2R1bGVfbmFtZSk7Ci0gCi0gICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIv ZGVmYXVsdHMvdjEvY29weSIsIGRlZmF1bHRzX3Rlc3RfY29weSk7Ci0gCi1kaWZmIC0tZ2l0IGEv bW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1kZWZhdWx0cy5jIGIvbW9kdWxlbWQvdGVzdHMv dGVzdC1tb2R1bGVtZC1kZWZhdWx0cy5jCi1pbmRleCAyYTQ2Nzc0Li41NjJlNGZlIDEwMDY0NAot LS0tIGEvbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1kZWZhdWx0cy5jCi0rKysgYi9tb2R1 bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLWRlZmF1bHRzLmMKLUBAIC0xNCw3ICsxNCw2IEBACi0g I2luY2x1ZGUgPGdsaWIuaD4KLSAjaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KLSAjaW5jbHVkZSA8 bG9jYWxlLmg+Ci0tI2luY2x1ZGUgPHNpZ25hbC5oPgotIAotICNpbmNsdWRlICJtb2R1bGVtZC1k ZWZhdWx0cy12MS5oIgotICNpbmNsdWRlICJtb2R1bGVtZC1kZWZhdWx0cy5oIgotQEAgLTI0LDcg KzIzLDcgQEAKLSAjaW5jbHVkZSAicHJpdmF0ZS90ZXN0LXV0aWxzLmgiCi0gCi0gc3RhdGljIHZv aWQKLS1kZWZhdWx0c190ZXN0X2NvbnN0cnVjdCAodm9pZCkKLStkZWZhdWx0c190ZXN0X2NvbnN0 cnVjdF9yZWd1bGFyICh2b2lkKQotIHsKLSAgIGdfYXV0b3B0ciAoTW9kdWxlbWREZWZhdWx0cykg ZGVmYXVsdHMgPSBOVUxMOwotIAotQEAgLTM0LDMwICszMyw1MSBAQCBkZWZhdWx0c190ZXN0X2Nv bnN0cnVjdCAodm9pZCkKLSAgIGdfYXNzZXJ0X3RydWUgKE1PRFVMRU1EX0lTX0RFRkFVTFRTIChk ZWZhdWx0cykpOwotICAgZ19hc3NlcnRfdHJ1ZSAoTU9EVUxFTURfSVNfREVGQVVMVFNfVjEgKGRl ZmF1bHRzKSk7Ci0gICBnX2NsZWFyX29iamVjdCAoJmRlZmF1bHRzKTsKLSt9Ci0gCi0tICAvKiBU ZXN0IG5ldygpIHdpdGggYSB6ZXJvIG1kdmVyc2lvbiAqLwotLSAgbW9kdWxlbWRfdGVzdF9zaWdu YWwgPSAwOwotLSAgc2lnbmFsIChTSUdUUkFQLCBtb2R1bGVtZF90ZXN0X3NpZ25hbF9oYW5kbGVy KTsKLS0gIGRlZmF1bHRzID0gbW9kdWxlbWRfZGVmYXVsdHNfbmV3ICgwLCAiZm9vIik7Ci0tICBn X2Fzc2VydF9jbXBpbnQgKG1vZHVsZW1kX3Rlc3Rfc2lnbmFsLCA9PSwgU0lHVFJBUCk7Ci0tICBn X2Fzc2VydF9udWxsIChkZWZhdWx0cyk7Ci0tCi0tICAvKiBUZXN0IG5ldygpIHdpdGggYSB0b28t aGlnaCBtZHZlcnNpb24gKi8KLS0gIG1vZHVsZW1kX3Rlc3Rfc2lnbmFsID0gMDsKLS0gIHNpZ25h bCAoU0lHVFJBUCwgbW9kdWxlbWRfdGVzdF9zaWduYWxfaGFuZGxlcik7Ci0tICBkZWZhdWx0cyA9 IG1vZHVsZW1kX2RlZmF1bHRzX25ldyAoTURfREVGQVVMVFNfVkVSU0lPTl9MQVRFU1QgKyAxLCAi Zm9vIik7Ci0tICBnX2Fzc2VydF9jbXBpbnQgKG1vZHVsZW1kX3Rlc3Rfc2lnbmFsLCA9PSwgU0lH VFJBUCk7Ci0tICBnX2Fzc2VydF9udWxsIChkZWZhdWx0cyk7Ci0tCi0tICAvKiBUZXN0IG5ldygp IHdpdGggYSBOVUxMIG1vZHVsZV9uYW1lICovCi0tICBtb2R1bGVtZF90ZXN0X3NpZ25hbCA9IDA7 Ci0tICBzaWduYWwgKFNJR1RSQVAsIG1vZHVsZW1kX3Rlc3Rfc2lnbmFsX2hhbmRsZXIpOwotLSAg ZGVmYXVsdHMgPSBtb2R1bGVtZF9kZWZhdWx0c19uZXcgKE1EX0RFRkFVTFRTX1ZFUlNJT05fT05F LCBOVUxMKTsKLS0gIGdfYXNzZXJ0X2NtcGludCAobW9kdWxlbWRfdGVzdF9zaWduYWwsID09LCBT SUdUUkFQKTsKLS0gIC8qIElmIHdlIHRyYXAgdGhlIGVycm9yLCBkZWZhdWx0cyBhY3R1YWxseSBy ZXR1cm5zIGEgdmFsdWUgaGVyZSwgc28gZnJlZQotLSAgICogaXQKLS0gICAqLwotLSAgZ19jbGVh cl9vYmplY3QgKCZkZWZhdWx0cyk7Ci0rCi0rLyogVGVzdCBuZXcoKSB3aXRoIGEgemVybyBtZHZl cnNpb24gKi8KLStzdGF0aWMgdm9pZAotK2RlZmF1bHRzX3Rlc3RfY29uc3RydWN0X3plcm9fbWR2 ZXJzaW9uICh2b2lkKQotK3sKLSsgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKLSsgICAgewot KyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWREZWZhdWx0cykgZGVmYXVsdHMgPSBOVUxMOwotKyAg ICAgIGRlZmF1bHRzID0gbW9kdWxlbWRfZGVmYXVsdHNfbmV3ICgwLCAiZm9vIik7Ci0rICAgICAg cmV0dXJuOwotKyAgICB9Ci0rICBnX3Rlc3RfdHJhcF9zdWJwcm9jZXNzIChOVUxMLCAwLCBHX1RF U1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKLSsgIGdfdGVzdF90cmFwX2Fzc2VydF9mYWlsZWQgKCk7 Ci0rfQotKwotKwotKy8qIFRlc3QgbmV3KCkgd2l0aCBhIHRvby1oaWdoIG1kdmVyc2lvbiAqLwot K3N0YXRpYyB2b2lkCi0rZGVmYXVsdHNfdGVzdF9jb25zdHJ1Y3RfdG9vX2hpZ2hfbWR2ZXJzaW9u ICh2b2lkKQotK3sKLSsgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKLSsgICAgewotKyAgICAg IGdfYXV0b3B0ciAoTW9kdWxlbWREZWZhdWx0cykgZGVmYXVsdHMgPSBOVUxMOwotKyAgICAgIGRl ZmF1bHRzID0gbW9kdWxlbWRfZGVmYXVsdHNfbmV3IChNRF9ERUZBVUxUU19WRVJTSU9OX0xBVEVT VCArIDEsICJmb28iKTsKLSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsgIGdfdGVzdF90cmFwX3N1 YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQpOwotKyAgZ190ZXN0 X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKLSt9Ci0rCi0rCi0rLyogVGVzdCBuZXcoKSB3aXRoIGEg TlVMTCBtb2R1bGVfbmFtZSAqLwotK3N0YXRpYyB2b2lkCi0rZGVmYXVsdHNfdGVzdF9uZXdfd2l0 aF9udWxsX21vZHVsZV9uYW1lICh2b2lkKQotK3sKLSsgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAo KSkKLSsgICAgewotKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWREZWZhdWx0cykgZGVmYXVsdHMg PSBOVUxMOwotKyAgICAgIGRlZmF1bHRzID0gbW9kdWxlbWRfZGVmYXVsdHNfbmV3IChNRF9ERUZB VUxUU19WRVJTSU9OX09ORSwgTlVMTCk7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rICBnX3Rl c3RfdHJhcF9zdWJwcm9jZXNzIChOVUxMLCAwLCBHX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsK LSsgIGdfdGVzdF90cmFwX2Fzc2VydF9mYWlsZWQgKCk7Ci0gfQotIAotIAotQEAgLTIwMyw3ICsy MjMsMTQgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAgIGdfdGVzdF9idWdfYmFz ZSAoImh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9Iik7Ci0gCi0g ICAvLyBEZWZpbmUgdGhlIHRlc3RzLgotLSAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3Yy L2RlZmF1bHRzL2NvbnN0cnVjdCIsIGRlZmF1bHRzX3Rlc3RfY29uc3RydWN0KTsKLSsgIGdfdGVz dF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9kZWZhdWx0cy9jb25zdHJ1Y3QvcmVndWxhciIsCi0r ICAgICAgICAgICAgICAgICAgIGRlZmF1bHRzX3Rlc3RfY29uc3RydWN0X3JlZ3VsYXIpOwotKyAg Z190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL2RlZmF1bHRzL2NvbnN0cnVjdC96ZXJvX21k dmVyc2lvbiIsCi0rICAgICAgICAgICAgICAgICAgIGRlZmF1bHRzX3Rlc3RfY29uc3RydWN0X3pl cm9fbWR2ZXJzaW9uKTsKLSsgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9kZWZhdWx0 cy9jb25zdHJ1Y3QvdG9vX2hpZ2hfbWR2ZXJzaW9uIiwKLSsgICAgICAgICAgICAgICAgICAgZGVm YXVsdHNfdGVzdF9jb25zdHJ1Y3RfdG9vX2hpZ2hfbWR2ZXJzaW9uKTsKLSsgIGdfdGVzdF9hZGRf ZnVuYyAoIi9tb2R1bGVtZC92Mi9kZWZhdWx0cy9uZXcvd2l0aF9udWxsX21vZHVsZV9uYW1lIiwK LSsgICAgICAgICAgICAgICAgICAgZGVmYXVsdHNfdGVzdF9uZXdfd2l0aF9udWxsX21vZHVsZV9u YW1lKTsKLSAKLSAgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9kZWZhdWx0cy9jb3B5 IiwgZGVmYXVsdHNfdGVzdF9jb3B5KTsKLSAKLWRpZmYgLS1naXQgYS9tb2R1bGVtZC90ZXN0cy90 ZXN0LW1vZHVsZW1kLWRlcGVuZGVuY2llcy5jIGIvbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVt ZC1kZXBlbmRlbmNpZXMuYwotaW5kZXggYmFlMGY0Ni4uZDEyNmRiYSAxMDA2NDQKLS0tLSBhL21v ZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtZGVwZW5kZW5jaWVzLmMKLSsrKyBiL21vZHVsZW1k L3Rlc3RzL3Rlc3QtbW9kdWxlbWQtZGVwZW5kZW5jaWVzLmMKLUBAIC0xNCw3ICsxNCw2IEBACi0g I2luY2x1ZGUgPGdsaWIuaD4KLSAjaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KLSAjaW5jbHVkZSA8 bG9jYWxlLmg+Ci0tI2luY2x1ZGUgPHNpZ25hbC5oPgotIAotICNpbmNsdWRlICJtb2R1bGVtZC1k ZXBlbmRlbmNpZXMuaCIKLSAjaW5jbHVkZSAicHJpdmF0ZS9nbGliLWV4dGVuc2lvbnMuaCIKLUBA IC0yNywxNCArMjYsNiBAQCB0eXBlZGVmIHN0cnVjdCBfRGVwZW5kZW5jaWVzRml4dHVyZQotIHsK LSB9IERlcGVuZGVuY2llc0ZpeHR1cmU7Ci0gCi0tZ2Jvb2xlYW4gc2lnbmFsZWQgPSBGQUxTRTsK LS0KLS1zdGF0aWMgdm9pZAotLXNpZ3RyYXBfaGFuZGxlciAoaW50IFVOVVNFRCAoc2lnX251bSkp Ci0tewotLSAgc2lnbmFsZWQgPSBUUlVFOwotLX0KLS0KLSBzdGF0aWMgdm9pZAotIGRlcGVuZGVu Y2llc190ZXN0X2NvbnN0cnVjdCAodm9pZCkKLSB7Ci1AQCAtNjAsNyArNTEsNyBAQCBkZXBlbmRl bmNpZXNfdGVzdF9jb25zdHJ1Y3QgKHZvaWQpCi0gCi0gCi0gc3RhdGljIHZvaWQKLS1kZXBlbmRl bmNpZXNfdGVzdF9kZXBlbmRlbmNpZXMgKHZvaWQpCi0rZGVwZW5kZW5jaWVzX3Rlc3RfZGVwZW5k ZW5jaWVzX3JlZ3VsYXIgKHZvaWQpCi0gewotICAgZ19hdXRvcHRyIChNb2R1bGVtZERlcGVuZGVu Y2llcykgZCA9IE5VTEw7Ci0gICBnX2F1dG8gKEdTdHJ2KSBsaXN0ID0gTlVMTDsKLUBAIC03Mywx MCArNjQsNiBAQCBkZXBlbmRlbmNpZXNfdGVzdF9kZXBlbmRlbmNpZXMgKHZvaWQpCi0gICBnX2Fz c2VydF9ub25udWxsIChsaXN0KTsKLSAgIGdfYXNzZXJ0X2NtcGludCAoZ19zdHJ2X2xlbmd0aCAo bGlzdCksID09LCAwKTsKLSAgIGdfY2xlYXJfcG9pbnRlciAoJmxpc3QsIGdfc3RyZnJlZXYpOwot LSAgc2lnbmFsIChTSUdUUkFQLCBzaWd0cmFwX2hhbmRsZXIpOwotLSAgbGlzdCA9IG1vZHVsZW1k X2RlcGVuZGVuY2llc19nZXRfYnVpbGR0aW1lX3N0cmVhbXNfYXNfc3RydiAoZCwgImJ1aWxkbW9k MSIpOwotLSAgZ19hc3NlcnRfbnVsbCAobGlzdCk7Ci0tICBnX2NsZWFyX3BvaW50ZXIgKCZsaXN0 LCBnX3N0cmZyZWV2KTsKLSAKLSAgIC8qIEFkZCBzb21lIGRlcHMgKi8KLSAgIG1vZHVsZW1kX2Rl cGVuZGVuY2llc19hZGRfYnVpbGR0aW1lX3N0cmVhbSAoZCwgImJ1aWxkbW9kMSIsICJzdHJlYW0x Iik7Ci1AQCAtMTAyLDEwICs4OSw2IEBAIGRlcGVuZGVuY2llc190ZXN0X2RlcGVuZGVuY2llcyAo dm9pZCkKLSAgIGdfYXNzZXJ0X25vbm51bGwgKGxpc3QpOwotICAgZ19hc3NlcnRfY21waW50IChn X3N0cnZfbGVuZ3RoIChsaXN0KSwgPT0sIDApOwotICAgZ19jbGVhcl9wb2ludGVyICgmbGlzdCwg Z19zdHJmcmVldik7Ci0tICBzaWduYWwgKFNJR1RSQVAsIHNpZ3RyYXBfaGFuZGxlcik7Ci0tICBs aXN0ID0gbW9kdWxlbWRfZGVwZW5kZW5jaWVzX2dldF9ydW50aW1lX3N0cmVhbXNfYXNfc3RydiAo ZCwgImJ1aWxkbW9kMSIpOwotLSAgZ19hc3NlcnRfbnVsbCAobGlzdCk7Ci0tICBnX2NsZWFyX3Bv aW50ZXIgKCZsaXN0LCBnX3N0cmZyZWV2KTsKLSAKLSAgIGxpc3QgPSBtb2R1bGVtZF9kZXBlbmRl bmNpZXNfZ2V0X3J1bnRpbWVfbW9kdWxlc19hc19zdHJ2IChkKTsKLSAgIGdfYXNzZXJ0X25vbm51 bGwgKGxpc3QpOwotQEAgLTExNywxMCArMTAwLDYgQEAgZGVwZW5kZW5jaWVzX3Rlc3RfZGVwZW5k ZW5jaWVzICh2b2lkKQotICAgZ19hc3NlcnRfbm9ubnVsbCAobGlzdCk7Ci0gICBnX2Fzc2VydF9j bXBpbnQgKGdfc3Rydl9sZW5ndGggKGxpc3QpLCA9PSwgMCk7Ci0gICBnX2NsZWFyX3BvaW50ZXIg KCZsaXN0LCBnX3N0cmZyZWV2KTsKLS0gIHNpZ25hbCAoU0lHVFJBUCwgc2lndHJhcF9oYW5kbGVy KTsKLS0gIGxpc3QgPSBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfZ2V0X3J1bnRpbWVfc3RyZWFtc19h c19zdHJ2IChkLCAiYnVpbGRtb2QxIik7Ci0tICBnX2Fzc2VydF9udWxsIChsaXN0KTsKLS0gIGdf Y2xlYXJfcG9pbnRlciAoJmxpc3QsIGdfc3RyZnJlZXYpOwotICAgbGlzdCA9IG1vZHVsZW1kX2Rl cGVuZGVuY2llc19nZXRfcnVudGltZV9zdHJlYW1zX2FzX3N0cnYgKGQsICJydW5tb2QxIik7Ci0g ICBnX2Fzc2VydF9ub25udWxsIChsaXN0KTsKLSAgIGdfYXNzZXJ0X2NtcGludCAoZ19zdHJ2X2xl bmd0aCAobGlzdCksID09LCAyKTsKLUBAIC0xMzAsNiArMTA5LDU3IEBAIGRlcGVuZGVuY2llc190 ZXN0X2RlcGVuZGVuY2llcyAodm9pZCkKLSB9Ci0gCi0gCi0rc3RhdGljIHZvaWQKLStkZXBlbmRl bmNpZXNfdGVzdF9kZXBlbmRlbmNpZXNfbm9uZXhpc3RlbnRfYnVpbGR0aW1lX3N0cmVhbSAodm9p ZCkKLSt7Ci0rICBpZiAoZ190ZXN0X3N1YnByb2Nlc3MgKCkpCi0rICAgIHsKLSsgICAgICBnX2F1 dG9wdHIgKE1vZHVsZW1kRGVwZW5kZW5jaWVzKSBkID0gTlVMTDsKLSsgICAgICBnX2F1dG8gKEdT dHJ2KSBsaXN0ID0gTlVMTDsKLSsKLSsgICAgICBkID0gbW9kdWxlbWRfZGVwZW5kZW5jaWVzX25l dyAoKTsKLSsgICAgICBnX2Fzc2VydF9ub25udWxsIChkKTsKLSsgICAgICBnX2Fzc2VydF90cnVl IChNT0RVTEVNRF9JU19ERVBFTkRFTkNJRVMgKGQpKTsKLSsKLSsgICAgICBsaXN0ID0KLSsgICAg ICAgIG1vZHVsZW1kX2RlcGVuZGVuY2llc19nZXRfYnVpbGR0aW1lX3N0cmVhbXNfYXNfc3RydiAo ZCwgImJ1aWxkbW9kMSIpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKyAgZ190ZXN0X3RyYXBf c3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7Ci0rICBnX3Rl c3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOwotK30KLSsKLSsKLStzdGF0aWMgdm9pZAotK2RlcGVu ZGVuY2llc190ZXN0X2RlcGVuZGVuY2llc19ub25leGlzdGVudF9ydW50aW1lX3N0cmVhbSAodm9p ZCkKLSt7Ci0rICBpZiAoZ190ZXN0X3N1YnByb2Nlc3MgKCkpCi0rICAgIHsKLSsgICAgICBnX2F1 dG9wdHIgKE1vZHVsZW1kRGVwZW5kZW5jaWVzKSBkID0gTlVMTDsKLSsgICAgICBnX2F1dG8gKEdT dHJ2KSBsaXN0ID0gTlVMTDsKLSsKLSsgICAgICBkID0gbW9kdWxlbWRfZGVwZW5kZW5jaWVzX25l dyAoKTsKLSsgICAgICBnX2Fzc2VydF9ub25udWxsIChkKTsKLSsgICAgICBnX2Fzc2VydF90cnVl IChNT0RVTEVNRF9JU19ERVBFTkRFTkNJRVMgKGQpKTsKLSsKLSsgICAgICAvKiBBZGQgc29tZSBk ZXBzICovCi0rICAgICAgbW9kdWxlbWRfZGVwZW5kZW5jaWVzX2FkZF9idWlsZHRpbWVfc3RyZWFt IChkLCAiYnVpbGRtb2QxIiwgInN0cmVhbTEiKTsKLSsgICAgICBtb2R1bGVtZF9kZXBlbmRlbmNp ZXNfYWRkX3J1bnRpbWVfc3RyZWFtIChkLCAicnVubW9kMSIsICJzdHJlYW0yIik7Ci0rICAgICAg bW9kdWxlbWRfZGVwZW5kZW5jaWVzX2FkZF9ydW50aW1lX3N0cmVhbSAoZCwgInJ1bm1vZDEiLCAi c3RyZWFtMSIpOwotKyAgICAgIG1vZHVsZW1kX2RlcGVuZGVuY2llc19zZXRfZW1wdHlfYnVpbGR0 aW1lX2RlcGVuZGVuY2llc19mb3JfbW9kdWxlICgKLSsgICAgICAgIGQsICJkZWZidWlsZCIpOwot KyAgICAgIG1vZHVsZW1kX2RlcGVuZGVuY2llc19zZXRfZW1wdHlfcnVudGltZV9kZXBlbmRlbmNp ZXNfZm9yX21vZHVsZSAoCi0rICAgICAgICBkLCAiZGVmcnVuIik7Ci0rCi0rICAgICAgbGlzdCA9 Ci0rICAgICAgICBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfZ2V0X3J1bnRpbWVfc3RyZWFtc19hc19z dHJ2IChkLCAiYnVpbGRtb2QxIik7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rICBnX3Rlc3Rf dHJhcF9zdWJwcm9jZXNzIChOVUxMLCAwLCBHX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKLSsg IGdfdGVzdF90cmFwX2Fzc2VydF9mYWlsZWQgKCk7Ci0rfQotKwotKwotIHN0YXRpYyB2b2lkCi0g ZGVwZW5kZW5jaWVzX3Rlc3RfZXF1YWxzICh2b2lkKQotIHsKLUBAIC0yOTgsNyArMzI4LDcgQEAg ZGVwZW5kZW5jaWVzX3Rlc3RfZXF1YWxzICh2b2lkKQotIAotIAotIHN0YXRpYyB2b2lkCi0tZGVw ZW5kZW5jaWVzX3Rlc3RfY29weSAodm9pZCkKLStkZXBlbmRlbmNpZXNfdGVzdF9jb3B5X3JlZ3Vs YXIgKHZvaWQpCi0gewotICAgZ19hdXRvcHRyIChNb2R1bGVtZERlcGVuZGVuY2llcykgZCA9IE5V TEw7Ci0gICBnX2F1dG9wdHIgKE1vZHVsZW1kRGVwZW5kZW5jaWVzKSBkX2NvcHkgPSBOVUxMOwot QEAgLTMxMSwxMCArMzQxLDYgQEAgZGVwZW5kZW5jaWVzX3Rlc3RfY29weSAodm9pZCkKLSAgIGdf YXNzZXJ0X25vbm51bGwgKGxpc3QpOwotICAgZ19hc3NlcnRfY21waW50IChnX3N0cnZfbGVuZ3Ro IChsaXN0KSwgPT0sIDApOwotICAgZ19jbGVhcl9wb2ludGVyICgmbGlzdCwgZ19zdHJmcmVldik7 Ci0tICBzaWduYWwgKFNJR1RSQVAsIHNpZ3RyYXBfaGFuZGxlcik7Ci0tICBsaXN0ID0gbW9kdWxl bWRfZGVwZW5kZW5jaWVzX2dldF9idWlsZHRpbWVfc3RyZWFtc19hc19zdHJ2IChkLCAibW9kdWxl MSIpOwotLSAgZ19hc3NlcnRfbnVsbCAobGlzdCk7Ci0tICBnX2NsZWFyX3BvaW50ZXIgKCZsaXN0 LCBnX3N0cmZyZWV2KTsKLSAKLSAgIGRfY29weSA9IG1vZHVsZW1kX2RlcGVuZGVuY2llc19jb3B5 IChkKTsKLSAgIGdfYXNzZXJ0X25vbm51bGwgKGRfY29weSk7Ci1AQCAtMzIzLDEwICszNDksNiBA QCBkZXBlbmRlbmNpZXNfdGVzdF9jb3B5ICh2b2lkKQotICAgZ19hc3NlcnRfbm9ubnVsbCAobGlz dCk7Ci0gICBnX2Fzc2VydF9jbXBpbnQgKGdfc3Rydl9sZW5ndGggKGxpc3QpLCA9PSwgMCk7Ci0g ICBnX2NsZWFyX3BvaW50ZXIgKCZsaXN0LCBnX3N0cmZyZWV2KTsKLS0gIHNpZ25hbCAoU0lHVFJB UCwgc2lndHJhcF9oYW5kbGVyKTsKLS0gIGxpc3QgPSBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfZ2V0 X2J1aWxkdGltZV9zdHJlYW1zX2FzX3N0cnYgKGQsICJtb2R1bGUxIik7Ci0tICBnX2Fzc2VydF9u dWxsIChsaXN0KTsKLS0gIGdfY2xlYXJfcG9pbnRlciAoJmxpc3QsIGdfc3RyZnJlZXYpOwotICAg Z19jbGVhcl9vYmplY3QgKCZkX2NvcHkpOwotIAotICAgbW9kdWxlbWRfZGVwZW5kZW5jaWVzX2Fk ZF9idWlsZHRpbWVfc3RyZWFtIChkLCAiYnVpbGRtb2QxIiwgInN0cmVhbTIiKTsKLUBAIC0zNDcs MTEgKzM2OSw3IEBAIGRlcGVuZGVuY2llc190ZXN0X2NvcHkgKHZvaWQpCi0gICBnX2Fzc2VydF9j bXBzdHIgKGxpc3RbMF0sID09LCAiYnVpbGRkZWYiKTsKLSAgIGdfYXNzZXJ0X2NtcHN0ciAobGlz dFsxXSwgPT0sICJidWlsZG1vZDEiKTsKLSAgIGdfY2xlYXJfcG9pbnRlciAoJmxpc3QsIGdfc3Ry ZnJlZXYpOwotLSAgc2lnbmFsIChTSUdUUkFQLCBzaWd0cmFwX2hhbmRsZXIpOwotLSAgbGlzdCA9 IG1vZHVsZW1kX2RlcGVuZGVuY2llc19nZXRfYnVpbGR0aW1lX3N0cmVhbXNfYXNfc3RydiAoZF9j b3B5LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIm5vc3VjaG1vZHVsZSIpOwotLSAgZ19hc3NlcnRfbnVsbCAobGlzdCk7Ci0t ICBnX2NsZWFyX3BvaW50ZXIgKCZsaXN0LCBnX3N0cmZyZWV2KTsKLSsKLSAgIGxpc3QgPQotICAg ICBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfZ2V0X2J1aWxkdGltZV9zdHJlYW1zX2FzX3N0cnYgKGRf Y29weSwgImJ1aWxkbW9kMSIpOwotICAgZ19hc3NlcnRfbm9ubnVsbCAobGlzdCk7Ci1AQCAtMzcx LDExICszODksNiBAQCBkZXBlbmRlbmNpZXNfdGVzdF9jb3B5ICh2b2lkKQotICAgZ19hc3NlcnRf Y21wc3RyIChsaXN0WzBdLCA9PSwgInJ1bmRlZiIpOwotICAgZ19hc3NlcnRfY21wc3RyIChsaXN0 WzFdLCA9PSwgInJ1bm1vZDEiKTsKLSAgIGdfY2xlYXJfcG9pbnRlciAoJmxpc3QsIGdfc3RyZnJl ZXYpOwotLSAgc2lnbmFsIChTSUdUUkFQLCBzaWd0cmFwX2hhbmRsZXIpOwotLSAgbGlzdCA9Ci0t ICAgIG1vZHVsZW1kX2RlcGVuZGVuY2llc19nZXRfcnVudGltZV9zdHJlYW1zX2FzX3N0cnYgKGRf Y29weSwgIm5vc3VjaG1vZHVsZSIpOwotLSAgZ19hc3NlcnRfbnVsbCAobGlzdCk7Ci0tICBnX2Ns ZWFyX3BvaW50ZXIgKCZsaXN0LCBnX3N0cmZyZWV2KTsKLSAgIGxpc3QgPSBtb2R1bGVtZF9kZXBl bmRlbmNpZXNfZ2V0X3J1bnRpbWVfc3RyZWFtc19hc19zdHJ2IChkX2NvcHksICJydW5tb2QxIik7 Ci0gICBnX2Fzc2VydF9ub25udWxsIChsaXN0KTsKLSAgIGdfYXNzZXJ0X2NtcGludCAoZ19zdHJ2 X2xlbmd0aCAobGlzdCksID09LCAyKTsKLUBAIC0zODgsNiArNDAxLDEwMSBAQCBkZXBlbmRlbmNp ZXNfdGVzdF9jb3B5ICh2b2lkKQotICAgZ19jbGVhcl9wb2ludGVyICgmbGlzdCwgZ19zdHJmcmVl dik7Ci0gfQotIAotKwotK3N0YXRpYyB2b2lkCi0rZGVwZW5kZW5jaWVzX3Rlc3RfY29weV9lbXB0 eV9ub25leHNpdGVudF9idWlsZHRpbWVfc3RyZWFtICh2b2lkKQotK3sKLSsgIGlmIChnX3Rlc3Rf c3VicHJvY2VzcyAoKSkKLSsgICAgewotKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWREZXBlbmRl bmNpZXMpIGQgPSBOVUxMOwotKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWREZXBlbmRlbmNpZXMp IGRfY29weSA9IE5VTEw7Ci0rICAgICAgZ19hdXRvIChHU3RydikgbGlzdCA9IE5VTEw7Ci0rCi0r ICAgICAgZCA9IG1vZHVsZW1kX2RlcGVuZGVuY2llc19uZXcgKCk7Ci0rICAgICAgZ19hc3NlcnRf bm9ubnVsbCAoZCk7Ci0rICAgICAgZ19hc3NlcnRfdHJ1ZSAoTU9EVUxFTURfSVNfREVQRU5ERU5D SUVTIChkKSk7Ci0rCi0rICAgICAgZF9jb3B5ID0gbW9kdWxlbWRfZGVwZW5kZW5jaWVzX2NvcHkg KGQpOwotKyAgICAgIGdfYXNzZXJ0X25vbm51bGwgKGRfY29weSk7Ci0rICAgICAgZ19hc3NlcnRf dHJ1ZSAoTU9EVUxFTURfSVNfREVQRU5ERU5DSUVTIChkX2NvcHkpKTsKLSsKLSsgICAgICBsaXN0 ID0KLSsgICAgICAgIG1vZHVsZW1kX2RlcGVuZGVuY2llc19nZXRfYnVpbGR0aW1lX3N0cmVhbXNf YXNfc3RydiAoZCwgIm1vZHVsZTEiKTsKLSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsgIGdfdGVz dF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQpOwot KyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKLSt9Ci0rCi0rCi0rc3RhdGljIHZvaWQK LStkZXBlbmRlbmNpZXNfdGVzdF9jb3B5X2Z1bGxfbm9uZXhzaXRlbnRfYnVpbGR0aW1lX3N0cmVh bSAodm9pZCkKLSt7Ci0rICBpZiAoZ190ZXN0X3N1YnByb2Nlc3MgKCkpCi0rICAgIHsKLSsgICAg ICBnX2F1dG9wdHIgKE1vZHVsZW1kRGVwZW5kZW5jaWVzKSBkID0gTlVMTDsKLSsgICAgICBnX2F1 dG9wdHIgKE1vZHVsZW1kRGVwZW5kZW5jaWVzKSBkX2NvcHkgPSBOVUxMOwotKyAgICAgIGdfYXV0 byAoR1N0cnYpIGxpc3QgPSBOVUxMOwotKwotKyAgICAgIGQgPSBtb2R1bGVtZF9kZXBlbmRlbmNp ZXNfbmV3ICgpOwotKyAgICAgIGdfYXNzZXJ0X25vbm51bGwgKGQpOwotKyAgICAgIGdfYXNzZXJ0 X3RydWUgKE1PRFVMRU1EX0lTX0RFUEVOREVOQ0lFUyAoZCkpOwotKwotKyAgICAgIG1vZHVsZW1k X2RlcGVuZGVuY2llc19hZGRfYnVpbGR0aW1lX3N0cmVhbSAoZCwgImJ1aWxkbW9kMSIsICJzdHJl YW0yIik7Ci0rICAgICAgbW9kdWxlbWRfZGVwZW5kZW5jaWVzX2FkZF9idWlsZHRpbWVfc3RyZWFt IChkLCAiYnVpbGRtb2QxIiwgInN0cmVhbTEiKTsKLSsgICAgICBtb2R1bGVtZF9kZXBlbmRlbmNp ZXNfc2V0X2VtcHR5X2J1aWxkdGltZV9kZXBlbmRlbmNpZXNfZm9yX21vZHVsZSAoCi0rICAgICAg ICBkLCAiYnVpbGRkZWYiKTsKLSsgICAgICBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfYWRkX3J1bnRp bWVfc3RyZWFtIChkLCAicnVubW9kMSIsICJzdHJlYW0zIik7Ci0rICAgICAgbW9kdWxlbWRfZGVw ZW5kZW5jaWVzX2FkZF9ydW50aW1lX3N0cmVhbSAoZCwgInJ1bm1vZDEiLCAic3RyZWFtNCIpOwot KyAgICAgIG1vZHVsZW1kX2RlcGVuZGVuY2llc19zZXRfZW1wdHlfcnVudGltZV9kZXBlbmRlbmNp ZXNfZm9yX21vZHVsZSAoCi0rICAgICAgICBkLCAicnVuZGVmIik7Ci0rCi0rICAgICAgZF9jb3B5 ID0gbW9kdWxlbWRfZGVwZW5kZW5jaWVzX2NvcHkgKGQpOwotKyAgICAgIGdfYXNzZXJ0X25vbm51 bGwgKGRfY29weSk7Ci0rICAgICAgZ19hc3NlcnRfdHJ1ZSAoTU9EVUxFTURfSVNfREVQRU5ERU5D SUVTIChkX2NvcHkpKTsKLSsgICAgICBsaXN0ID0gbW9kdWxlbWRfZGVwZW5kZW5jaWVzX2dldF9i dWlsZHRpbWVfc3RyZWFtc19hc19zdHJ2ICgKLSsgICAgICAgIGRfY29weSwgIm5vc3VjaG1vZHVs ZSIpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKyAgZ190ZXN0X3RyYXBfc3VicHJvY2VzcyAo TlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7Ci0rICBnX3Rlc3RfdHJhcF9hc3Nl cnRfZmFpbGVkICgpOwotK30KLSsKLSsKLStzdGF0aWMgdm9pZAotK2RlcGVuZGVuY2llc190ZXN0 X2NvcHlfZnVsbF9ub25leHNpdGVudF9ydW50aW1lX3N0cmVhbSAodm9pZCkKLSt7Ci0rICBpZiAo Z190ZXN0X3N1YnByb2Nlc3MgKCkpCi0rICAgIHsKLSsgICAgICBnX2F1dG9wdHIgKE1vZHVsZW1k RGVwZW5kZW5jaWVzKSBkID0gTlVMTDsKLSsgICAgICBnX2F1dG9wdHIgKE1vZHVsZW1kRGVwZW5k ZW5jaWVzKSBkX2NvcHkgPSBOVUxMOwotKyAgICAgIGdfYXV0byAoR1N0cnYpIGxpc3QgPSBOVUxM OwotKwotKyAgICAgIGQgPSBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfbmV3ICgpOwotKyAgICAgIGdf YXNzZXJ0X25vbm51bGwgKGQpOwotKyAgICAgIGdfYXNzZXJ0X3RydWUgKE1PRFVMRU1EX0lTX0RF UEVOREVOQ0lFUyAoZCkpOwotKwotKyAgICAgIG1vZHVsZW1kX2RlcGVuZGVuY2llc19hZGRfYnVp bGR0aW1lX3N0cmVhbSAoZCwgImJ1aWxkbW9kMSIsICJzdHJlYW0yIik7Ci0rICAgICAgbW9kdWxl bWRfZGVwZW5kZW5jaWVzX2FkZF9idWlsZHRpbWVfc3RyZWFtIChkLCAiYnVpbGRtb2QxIiwgInN0 cmVhbTEiKTsKLSsgICAgICBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfc2V0X2VtcHR5X2J1aWxkdGlt ZV9kZXBlbmRlbmNpZXNfZm9yX21vZHVsZSAoCi0rICAgICAgICBkLCAiYnVpbGRkZWYiKTsKLSsg ICAgICBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfYWRkX3J1bnRpbWVfc3RyZWFtIChkLCAicnVubW9k MSIsICJzdHJlYW0zIik7Ci0rICAgICAgbW9kdWxlbWRfZGVwZW5kZW5jaWVzX2FkZF9ydW50aW1l X3N0cmVhbSAoZCwgInJ1bm1vZDEiLCAic3RyZWFtNCIpOwotKyAgICAgIG1vZHVsZW1kX2RlcGVu ZGVuY2llc19zZXRfZW1wdHlfcnVudGltZV9kZXBlbmRlbmNpZXNfZm9yX21vZHVsZSAoCi0rICAg ICAgICBkLCAicnVuZGVmIik7Ci0rCi0rICAgICAgZF9jb3B5ID0gbW9kdWxlbWRfZGVwZW5kZW5j aWVzX2NvcHkgKGQpOwotKyAgICAgIGdfYXNzZXJ0X25vbm51bGwgKGRfY29weSk7Ci0rICAgICAg Z19hc3NlcnRfdHJ1ZSAoTU9EVUxFTURfSVNfREVQRU5ERU5DSUVTIChkX2NvcHkpKTsKLSsgICAg ICBsaXN0ID0gbW9kdWxlbWRfZGVwZW5kZW5jaWVzX2dldF9ydW50aW1lX3N0cmVhbXNfYXNfc3Ry diAoCi0rICAgICAgICBkX2NvcHksICJub3N1Y2htb2R1bGUiKTsKLSsgICAgICByZXR1cm47Ci0r ICAgIH0KLSsgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQUk9D RVNTX0RFRkFVTFQpOwotKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKLSt9Ci0rCi0r Ci0gc3RhdGljIHZvaWQKLSBkZXBlbmRlbmNpZXNfdGVzdF9wYXJzZV95YW1sICh2b2lkKQotIHsK LUBAIC02MzEsMTMgKzczOSwyOSBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQotICAg Z190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL2RlcGVuZGVuY2llcy9jb25zdHJ1Y3QiLAot ICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXNfdGVzdF9jb25zdHJ1Y3QpOwotIAotLSAg Z190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL2RlcGVuZGVuY2llcy9kZXBlbmRlbmNpZXMi LAotLSAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXNfdGVzdF9kZXBlbmRlbmNpZXMpOwot KyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL2RlcGVuZGVuY2llcy9kZXBlbmRlbmNp ZXMvcmVndWxhciIsCi0rICAgICAgICAgICAgICAgICAgIGRlcGVuZGVuY2llc190ZXN0X2RlcGVu ZGVuY2llc19yZWd1bGFyKTsKLSsgIGdfdGVzdF9hZGRfZnVuYyAoCi0rICAgICIvbW9kdWxlbWQv djIvZGVwZW5kZW5jaWVzL2RlcGVuZGVuY2llcy9ub25leGlzdGVudF9idWlsZHRpbWVfc3RyZWFt IiwKLSsgICAgZGVwZW5kZW5jaWVzX3Rlc3RfZGVwZW5kZW5jaWVzX25vbmV4aXN0ZW50X2J1aWxk dGltZV9zdHJlYW0pOwotKyAgZ190ZXN0X2FkZF9mdW5jICgKLSsgICAgIi9tb2R1bGVtZC92Mi9k ZXBlbmRlbmNpZXMvZGVwZW5kZW5jaWVzL25vbmV4aXN0ZW50X3J1bnRpbWVfc3RyZWFtIiwKLSsg ICAgZGVwZW5kZW5jaWVzX3Rlc3RfZGVwZW5kZW5jaWVzX25vbmV4aXN0ZW50X3J1bnRpbWVfc3Ry ZWFtKTsKLSAKLSAgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9kZXBlbmRlbmNpZXMv ZXF1YWxzIiwKLSAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5jaWVzX3Rlc3RfZXF1YWxzKTsK LSAKLS0gIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9kZXBlbmRlbmNpZXMvY29weSIs IGRlcGVuZGVuY2llc190ZXN0X2NvcHkpOwotKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1k L3YyL2RlcGVuZGVuY2llcy9jb3B5L3JlZ3VsYXIiLAotKyAgICAgICAgICAgICAgICAgICBkZXBl bmRlbmNpZXNfdGVzdF9jb3B5X3JlZ3VsYXIpOwotKyAgZ190ZXN0X2FkZF9mdW5jICgKLSsgICAg Ii9tb2R1bGVtZC92Mi9kZXBlbmRlbmNpZXMvY29weS9lbXB0eV9ub25leHNpdGVudF9idWlsZHRp bWVfc3RyZWFtIiwKLSsgICAgZGVwZW5kZW5jaWVzX3Rlc3RfY29weV9lbXB0eV9ub25leHNpdGVu dF9idWlsZHRpbWVfc3RyZWFtKTsKLSsgIGdfdGVzdF9hZGRfZnVuYyAoCi0rICAgICIvbW9kdWxl bWQvdjIvZGVwZW5kZW5jaWVzL2NvcHkvZnVsbF9ub25leHNpdGVudF9idWlsZHRpbWVfc3RyZWFt IiwKLSsgICAgZGVwZW5kZW5jaWVzX3Rlc3RfY29weV9mdWxsX25vbmV4c2l0ZW50X2J1aWxkdGlt ZV9zdHJlYW0pOwotKyAgZ190ZXN0X2FkZF9mdW5jICgKLSsgICAgIi9tb2R1bGVtZC92Mi9kZXBl bmRlbmNpZXMvY29weS9mdWxsX25vbmV4c2l0ZW50X3J1bmR0aW1lX3N0cmVhbSIsCi0rICAgIGRl cGVuZGVuY2llc190ZXN0X2NvcHlfZnVsbF9ub25leHNpdGVudF9ydW50aW1lX3N0cmVhbSk7Ci0g Ci0gICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvZGVwZW5kZW5jaWVzL3lhbWwvcGFy c2UiLAotICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXNfdGVzdF9wYXJzZV95YW1sKTsK LWRpZmYgLS1naXQgYS9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLW1vZHVsZS5jIGIvbW9k dWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1tb2R1bGUuYwotaW5kZXggYzA4M2M5Ni4uNzc1OWIz NyAxMDA2NDQKLS0tLSBhL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtbW9kdWxlLmMKLSsr KyBiL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtbW9kdWxlLmMKLUBAIC0xNCw3ICsxNCw2 IEBACi0gI2luY2x1ZGUgPGdsaWIuaD4KLSAjaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KLSAjaW5j bHVkZSA8bG9jYWxlLmg+Ci0tI2luY2x1ZGUgPHNpZ25hbC5oPgotIAotICNpbmNsdWRlICJtb2R1 bGVtZC1kZWZhdWx0cy5oIgotICNpbmNsdWRlICJtb2R1bGVtZC1tb2R1bGUtaW5kZXgtbWVyZ2Vy LmgiCi1AQCAtMzgsNyArMzcsNyBAQCB0eXBlZGVmIHN0cnVjdCBfTW9kdWxlRml4dHVyZQotIAot IAotIHN0YXRpYyB2b2lkCi0tbW9kdWxlX3Rlc3RfY29uc3RydWN0ICh2b2lkKQotK21vZHVsZV90 ZXN0X2NvbnN0cnVjdF9yZWd1bGFyICh2b2lkKQotIHsKLSAgIGdfYXV0b3B0ciAoTW9kdWxlbWRN b2R1bGUpIG0gPSBOVUxMOwotICAgZ19hdXRvcHRyIChHUHRyQXJyYXkpIGxpc3QgPSBOVUxMOwot QEAgLTY2LDI3ICs2NSw1MSBAQCBtb2R1bGVfdGVzdF9jb25zdHJ1Y3QgKHZvaWQpCi0gICBnX2Fz c2VydF90cnVlIChNT0RVTEVNRF9JU19NT0RVTEUgKG0pKTsKLSAgIGdfYXNzZXJ0X2NtcHN0ciAo bW9kdWxlbWRfbW9kdWxlX2dldF9tb2R1bGVfbmFtZSAobSksID09LCAidGVzdG1vZHVsZSIpOwot ICAgZ19jbGVhcl9vYmplY3QgKCZtKTsKLSt9Ci0gCi0tICAvKiBUZXN0IHRoYXQgd2UgYWJvcnQg d2l0aCBhIE5VTEwgbmFtZSB0byBuZXcoKSAqLwotLSAgbW9kdWxlbWRfdGVzdF9zaWduYWwgPSAw OwotLSAgc2lnbmFsIChTSUdUUkFQLCBtb2R1bGVtZF90ZXN0X3NpZ25hbF9oYW5kbGVyKTsKLS0g IG0gPSBtb2R1bGVtZF9tb2R1bGVfbmV3IChOVUxMKTsKLS0gIGdfYXNzZXJ0X2NtcGludCAobW9k dWxlbWRfdGVzdF9zaWduYWwsID09LCBTSUdUUkFQKTsKLS0gIGdfY2xlYXJfb2JqZWN0ICgmbSk7 Ci0gCi0tICAvKiBUZXN0IHRoYXQgd2UgYWJvcnQgaWYgd2UgaW5zdGFudGlhdGUgd2l0aG91dCBh IG5hbWUgKi8KLS0gIG1vZHVsZW1kX3Rlc3Rfc2lnbmFsID0gMDsKLS0gIHNpZ25hbCAoU0lHVFJB UCwgbW9kdWxlbWRfdGVzdF9zaWduYWxfaGFuZGxlcik7Ci0tICBtID0gZ19vYmplY3RfbmV3IChN T0RVTEVNRF9UWVBFX01PRFVMRSwgTlVMTCk7Ci0tICBnX2Fzc2VydF9jbXBpbnQgKG1vZHVsZW1k X3Rlc3Rfc2lnbmFsLCA9PSwgU0lHVFJBUCk7Ci0tICBnX2NsZWFyX29iamVjdCAoJm0pOwotKy8q IFRlc3QgdGhhdCB3ZSBhYm9ydCB3aXRoIGEgTlVMTCBuYW1lIHRvIG5ldygpICovCi0rc3RhdGlj IHZvaWQKLSttb2R1bGVfdGVzdF9jb25zdHJ1Y3RfbmV3X251bGxfbmFtZSAodm9pZCkKLSt7Ci0r ICBpZiAoZ190ZXN0X3N1YnByb2Nlc3MgKCkpCi0rICAgIHsKLSsgICAgICBnX2F1dG9wdHIgKE1v ZHVsZW1kTW9kdWxlKSBtID0gTlVMTDsKLSsgICAgICBtID0gbW9kdWxlbWRfbW9kdWxlX25ldyAo TlVMTCk7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rICBnX3Rlc3RfdHJhcF9zdWJwcm9jZXNz IChOVUxMLCAwLCBHX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKLSsgIGdfdGVzdF90cmFwX2Fz c2VydF9mYWlsZWQgKCk7Ci0rfQotIAotLSAgLyogdGVzdCB0aGF0IHdlIGFib3J0IGlmIHdlIGlu c3RhbnRpYXRlIHdpdGggYSBOVUxMIG5hbWUgKi8KLS0gIG1vZHVsZW1kX3Rlc3Rfc2lnbmFsID0g MDsKLS0gIHNpZ25hbCAoU0lHVFJBUCwgbW9kdWxlbWRfdGVzdF9zaWduYWxfaGFuZGxlcik7Ci0t ICBtID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9UWVBFX01PRFVMRSwgIm1vZHVsZS1uYW1lIiwg TlVMTCwgTlVMTCk7Ci0tICBnX2Fzc2VydF9jbXBpbnQgKG1vZHVsZW1kX3Rlc3Rfc2lnbmFsLCA9 PSwgU0lHVFJBUCk7Ci0tICBnX2NsZWFyX29iamVjdCAoJm0pOwotKwotKy8qIFRlc3QgdGhhdCB3 ZSBhYm9ydCBpZiB3ZSBpbnN0YW50aWF0ZSB3aXRob3V0IGEgbmFtZSAqLwotK3N0YXRpYyB2b2lk Ci0rbW9kdWxlX3Rlc3RfY29uc3RydWN0X2luaXRfbm9fbmFtZSAodm9pZCkKLSt7Ci0rICBpZiAo Z190ZXN0X3N1YnByb2Nlc3MgKCkpCi0rICAgIHsKLSsgICAgICBnX2F1dG9wdHIgKE1vZHVsZW1k TW9kdWxlKSBtID0gTlVMTDsKLSsgICAgICBtID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9UWVBF X01PRFVMRSwgTlVMTCk7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rICBnX3Rlc3RfdHJhcF9z dWJwcm9jZXNzIChOVUxMLCAwLCBHX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKLSsgIGdfdGVz dF90cmFwX2Fzc2VydF9mYWlsZWQgKCk7Ci0rfQotKwotKwotKy8qIHRlc3QgdGhhdCB3ZSBhYm9y dCBpZiB3ZSBpbnN0YW50aWF0ZSB3aXRoIGEgTlVMTCBuYW1lICovCi0rc3RhdGljIHZvaWQKLStt b2R1bGVfdGVzdF9jb25zdHJ1Y3RfaW5pdF9udWxsX25hbWUgKHZvaWQpCi0rewotKyAgaWYgKGdf dGVzdF9zdWJwcm9jZXNzICgpKQotKyAgICB7Ci0rICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZE1v ZHVsZSkgbSA9IE5VTEw7Ci0rICAgICAgbSA9IGdfb2JqZWN0X25ldyAoTU9EVUxFTURfVFlQRV9N T0RVTEUsICJtb2R1bGUtbmFtZSIsIE5VTEwsIE5VTEwpOwotKyAgICAgIHJldHVybjsKLSsgICAg fQotKyAgZ190ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1Nf REVGQVVMVCk7Ci0rICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOwotIH0KLSAKLSAKLUBA IC04MDEsNyArODI0LDE0IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCi0gCi0gICAv LyBEZWZpbmUgdGhlIHRlc3RzLgotIAotLSAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3Yy L21vZHVsZS9jb25zdHJ1Y3QiLCBtb2R1bGVfdGVzdF9jb25zdHJ1Y3QpOwotKyAgZ190ZXN0X2Fk ZF9mdW5jICgiL21vZHVsZW1kL3YyL21vZHVsZS9jb25zdHJ1Y3QvcmVndWxhciIsCi0rICAgICAg ICAgICAgICAgICAgIG1vZHVsZV90ZXN0X2NvbnN0cnVjdF9yZWd1bGFyKTsKLSsgIGdfdGVzdF9h ZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9tb2R1bGUvY29uc3RydWN0L25ld19udWxsX25hbWUiLAot KyAgICAgICAgICAgICAgICAgICBtb2R1bGVfdGVzdF9jb25zdHJ1Y3RfbmV3X251bGxfbmFtZSk7 Ci0rICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvbW9kdWxlL2NvbnN0cnVjdC9pbml0 X25vX25hbWUiLAotKyAgICAgICAgICAgICAgICAgICBtb2R1bGVfdGVzdF9jb25zdHJ1Y3RfaW5p dF9ub19uYW1lKTsKLSsgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9tb2R1bGUvY29u c3RydWN0L2luaXRfbnVsbF9uYW1lIiwKLSsgICAgICAgICAgICAgICAgICAgbW9kdWxlX3Rlc3Rf Y29uc3RydWN0X2luaXRfbnVsbF9uYW1lKTsKLSAKLSAgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1 bGVtZC92Mi9tb2R1bGUvZGVmYXVsdHMiLCBtb2R1bGVfdGVzdF9kZWZhdWx0cyk7Ci0gCi1kaWZm IC0tZ2l0IGEvbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1vYnNvbGV0ZXMuYyBiL21vZHVs ZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtb2Jzb2xldGVzLmMKLWluZGV4IGYzZTkwZDMuLmQ0Y2Vk M2MgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLW9ic29sZXRlcy5j Ci0rKysgYi9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLW9ic29sZXRlcy5jCi1AQCAtMTQs NyArMTQsNiBAQAotICNpbmNsdWRlIDxnbGliLmg+Ci0gI2luY2x1ZGUgPGdsaWIvZ3N0ZGlvLmg+ Ci0gI2luY2x1ZGUgPGxvY2FsZS5oPgotLSNpbmNsdWRlIDxzaWduYWwuaD4KLSAKLSAjaW5jbHVk ZSAibW9kdWxlbWQtc3ViZG9jdW1lbnQtaW5mby5oIgotICNpbmNsdWRlICJtb2R1bGVtZC1vYnNv bGV0ZXMuaCIKLUBAIC0yNiw3ICsyNSw3IEBACi0gI2luY2x1ZGUgInByaXZhdGUvdGVzdC11dGls cy5oIgotIAotIHN0YXRpYyB2b2lkCi0tb2Jzb2xldGVzX3Rlc3RfY29uc3RydWN0ICh2b2lkKQot K29ic29sZXRlc190ZXN0X2NvbnN0cnVjdF9yZWd1bGFyICh2b2lkKQotIHsKLSAgIGdfYXV0b3B0 ciAoTW9kdWxlbWRPYnNvbGV0ZXMpIGUgPSBOVUxMOwotIAotQEAgLTM5LDMzICszOCw1MSBAQCBv YnNvbGV0ZXNfdGVzdF9jb25zdHJ1Y3QgKHZvaWQpCi0gICBnX2Fzc2VydF9jbXBzdHIgKG1vZHVs ZW1kX29ic29sZXRlc19nZXRfbW9kdWxlX3N0cmVhbSAoZSksID09LCAidGVzdHN0cmVhbSIpOwot ICAgZ19hc3NlcnRfY21wc3RyIChtb2R1bGVtZF9vYnNvbGV0ZXNfZ2V0X21lc3NhZ2UgKGUpLCA9 PSwgInRlc3RtZXNzYWdlIik7Ci0gICBnX2NsZWFyX29iamVjdCAoJmUpOwotK30KLSAKLS0gIC8q IFRlc3QgbmV3KCkgd2l0aCBhIE5VTEwgbW9kdWxlX25hbWUgKi8KLS0gIG1vZHVsZW1kX3Rlc3Rf c2lnbmFsID0gMDsKLS0gIHNpZ25hbCAoU0lHVFJBUCwgbW9kdWxlbWRfdGVzdF9zaWduYWxfaGFu ZGxlcik7Ci0tICBlID0gbW9kdWxlbWRfb2Jzb2xldGVzX25ldyAoCi0tICAgIE1EX09CU09MRVRF U19WRVJTSU9OX09ORSwgMiwgTlVMTCwgInRlc3RzdHJlYW0iLCAidGVzdG1lc3NhZ2UiKTsKLS0g IGdfYXNzZXJ0X2NtcGludCAobW9kdWxlbWRfdGVzdF9zaWduYWwsID09LCBTSUdUUkFQKTsKLS0g IC8qIElmIHdlIHRyYXAgdGhlIGVycm9yLCBvYnNvbGV0ZXMgYWN0dWFsbHkgcmV0dXJucyBhIHZh bHVlIGhlcmUsIHNvIGZyZWUgaXQgKi8KLS0gIGdfY2xlYXJfb2JqZWN0ICgmZSk7Ci0rLyogVGVz dCBuZXcoKSB3aXRoIGEgTlVMTCBtb2R1bGVfbmFtZSAqLwotK3N0YXRpYyB2b2lkCi0rb2Jzb2xl dGVzX3Rlc3RfY29uc3RydWN0X251bGxfbW9kdWxlX25hbWUgKHZvaWQpCi0rewotKyAgaWYgKGdf dGVzdF9zdWJwcm9jZXNzICgpKQotKyAgICB7Ci0rICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZE9i c29sZXRlcykgZSA9IE5VTEw7Ci0rICAgICAgZSA9IG1vZHVsZW1kX29ic29sZXRlc19uZXcgKAot KyAgICAgICAgTURfT0JTT0xFVEVTX1ZFUlNJT05fT05FLCAyLCBOVUxMLCAidGVzdHN0cmVhbSIs ICJ0ZXN0bWVzc2FnZSIpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKyAgZ190ZXN0X3RyYXBf c3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7Ci0rICBnX3Rl c3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOwotK30KLSAKLS0gIC8qIFRlc3QgbmV3KCkgd2l0aCBh IE5VTEwgbW9kdWxlX2NvbnRleHQgKi8KLS0gIG1vZHVsZW1kX3Rlc3Rfc2lnbmFsID0gMDsKLS0g IHNpZ25hbCAoU0lHVFJBUCwgbW9kdWxlbWRfdGVzdF9zaWduYWxfaGFuZGxlcik7Ci0tICBlID0g bW9kdWxlbWRfb2Jzb2xldGVzX25ldyAoCi0tICAgIE1EX09CU09MRVRFU19WRVJTSU9OX09ORSwg MiwgInRlc3Rtb2R1bGUiLCBOVUxMLCAidGVzdG1lc3NhZ2UiKTsKLS0gIGdfYXNzZXJ0X2NtcGlu dCAobW9kdWxlbWRfdGVzdF9zaWduYWwsID09LCBTSUdUUkFQKTsKLS0gIC8qIElmIHdlIHRyYXAg dGhlIGVycm9yLCBvYnNvbGV0ZXMgYWN0dWFsbHkgcmV0dXJucyBhIHZhbHVlIGhlcmUsIHNvIGZy ZWUgaXQgKi8KLS0gIGdfY2xlYXJfb2JqZWN0ICgmZSk7Ci0rLyogVGVzdCBuZXcoKSB3aXRoIGEg TlVMTCBtb2R1bGVfY29udGV4dCAqLwotK3N0YXRpYyB2b2lkCi0rb2Jzb2xldGVzX3Rlc3RfY29u c3RydWN0X251bGxfbW9kdWxlX2NvbnRleHQgKHZvaWQpCi0rewotKyAgaWYgKGdfdGVzdF9zdWJw cm9jZXNzICgpKQotKyAgICB7Ci0rICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZE9ic29sZXRlcykg ZSA9IE5VTEw7Ci0rICAgICAgZSA9IG1vZHVsZW1kX29ic29sZXRlc19uZXcgKAotKyAgICAgICAg TURfT0JTT0xFVEVTX1ZFUlNJT05fT05FLCAyLCAidGVzdG1vZHVsZSIsIE5VTEwsICJ0ZXN0bWVz c2FnZSIpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKyAgZ190ZXN0X3RyYXBfc3VicHJvY2Vz cyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7Ci0rICBnX3Rlc3RfdHJhcF9h c3NlcnRfZmFpbGVkICgpOwotK30KLSAKLS0gIC8qIFRlc3QgbmV3KCkgd2l0aCBhIE5VTEwgbWVz c2FnZSAqLwotLSAgbW9kdWxlbWRfdGVzdF9zaWduYWwgPSAwOwotLSAgc2lnbmFsIChTSUdUUkFQ LCBtb2R1bGVtZF90ZXN0X3NpZ25hbF9oYW5kbGVyKTsKLS0gIGUgPSBtb2R1bGVtZF9vYnNvbGV0 ZXNfbmV3ICgKLS0gICAgTURfT0JTT0xFVEVTX1ZFUlNJT05fT05FLCAyLCAidGVzdG1vZHVsZSIs ICJ0ZXN0c3RyZWFtIiwgTlVMTCk7Ci0tICBnX2Fzc2VydF9jbXBpbnQgKG1vZHVsZW1kX3Rlc3Rf c2lnbmFsLCA9PSwgU0lHVFJBUCk7Ci0tICAvKiBJZiB3ZSB0cmFwIHRoZSBlcnJvciwgb2Jzb2xl dGVzIGFjdHVhbGx5IHJldHVybnMgYSB2YWx1ZSBoZXJlLCBzbyBmcmVlIGl0ICovCi0tICBnX2Ns ZWFyX29iamVjdCAoJmUpOwotKy8qIFRlc3QgbmV3KCkgd2l0aCBhIE5VTEwgbWVzc2FnZSAqLwot K3N0YXRpYyB2b2lkCi0rb2Jzb2xldGVzX3Rlc3RfY29uc3RydWN0X251bGxfbWVzc2FnZSAodm9p ZCkKLSt7Ci0rICBpZiAoZ190ZXN0X3N1YnByb2Nlc3MgKCkpCi0rICAgIHsKLSsgICAgICBnX2F1 dG9wdHIgKE1vZHVsZW1kT2Jzb2xldGVzKSBlID0gTlVMTDsKLSsgICAgICBlID0gbW9kdWxlbWRf b2Jzb2xldGVzX25ldyAoCi0rICAgICAgICBNRF9PQlNPTEVURVNfVkVSU0lPTl9PTkUsIDIsICJ0 ZXN0bW9kdWxlIiwgInRlc3RzdHJlYW0iLCBOVUxMKTsKLSsgICAgICByZXR1cm47Ci0rICAgIH0K LSsgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQUk9DRVNTX0RF RkFVTFQpOwotKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKLSB9Ci0gCi0gc3RhdGlj IHZvaWQKLUBAIC00OTYsOCArNTEzLDE0IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10p Ci0gCi0gICAvLyBEZWZpbmUgdGhlIHRlc3RzLgotIAotLSAgZ190ZXN0X2FkZF9mdW5jICgiL21v ZHVsZW1kL3YyL29ic29sZXRlcy9jb25zdHJ1Y3QiLAotLSAgICAgICAgICAgICAgICAgICBvYnNv bGV0ZXNfdGVzdF9jb25zdHJ1Y3QpOwotKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3Yy L29ic29sZXRlcy9jb25zdHJ1Y3QvcmVndWxhciIsCi0rICAgICAgICAgICAgICAgICAgIG9ic29s ZXRlc190ZXN0X2NvbnN0cnVjdF9yZWd1bGFyKTsKLSsgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1 bGVtZC92Mi9vYnNvbGV0ZXMvY29uc3RydWN0L251bGxfbW9kdWxlX25hbWUiLAotKyAgICAgICAg ICAgICAgICAgICBvYnNvbGV0ZXNfdGVzdF9jb25zdHJ1Y3RfbnVsbF9tb2R1bGVfbmFtZSk7Ci0r ICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvb2Jzb2xldGVzL2NvbnN0cnVjdC9udWxs X21vZHVsZV9jb250ZXh0IiwKLSsgICAgICAgICAgICAgICAgICAgb2Jzb2xldGVzX3Rlc3RfY29u c3RydWN0X251bGxfbW9kdWxlX2NvbnRleHQpOwotKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVs ZW1kL3YyL29ic29sZXRlcy9jb25zdHJ1Y3QvbnVsbF9tZXNzYWdlIiwKLSsgICAgICAgICAgICAg ICAgICAgb2Jzb2xldGVzX3Rlc3RfY29uc3RydWN0X251bGxfbWVzc2FnZSk7Ci0gCi0gICBnX3Rl c3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvb2Jzb2xldGVzL2NvcHkiLCBvYnNvbGV0ZXNfdGVz dF9jb3B5KTsKLSAKLWRpZmYgLS1naXQgYS9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLXBy b2ZpbGUuYyBiL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtcHJvZmlsZS5jCi1pbmRleCAz YTczMGMxLi5iNGJkODhmIDEwMDY0NAotLS0tIGEvbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVt ZC1wcm9maWxlLmMKLSsrKyBiL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtcHJvZmlsZS5j Ci1AQCAtMTQsNyArMTQsNiBAQAotICNpbmNsdWRlIDxnbGliLmg+Ci0gI2luY2x1ZGUgPGdsaWIv Z3N0ZGlvLmg+Ci0gI2luY2x1ZGUgPGxvY2FsZS5oPgotLSNpbmNsdWRlIDxzaWduYWwuaD4KLSAK LSAjaW5jbHVkZSAibW9kdWxlbWQtcHJvZmlsZS5oIgotICNpbmNsdWRlICJwcml2YXRlL2dsaWIt ZXh0ZW5zaW9ucy5oIgotQEAgLTI2LDE2ICsyNSw4IEBAIHR5cGVkZWYgc3RydWN0IF9Qcm9maWxl Rml4dHVyZQotIHsKLSB9IFByb2ZpbGVGaXh0dXJlOwotIAotLWdib29sZWFuIHNpZ25hbGVkID0g RkFMU0U7Ci0tCi0gc3RhdGljIHZvaWQKLS1zaWd0cmFwX2hhbmRsZXIgKGludCBVTlVTRUQgKHNp Z19udW0pKQotLXsKLS0gIHNpZ25hbGVkID0gVFJVRTsKLS19Ci0tCi0tc3RhdGljIHZvaWQKLS1w cm9maWxlX3Rlc3RfY29uc3RydWN0ICh2b2lkKQotK3Byb2ZpbGVfdGVzdF9jb25zdHJ1Y3RfcmVn dWxhciAodm9pZCkKLSB7Ci0gICBnX2F1dG9wdHIgKE1vZHVsZW1kUHJvZmlsZSkgcCA9IE5VTEw7 Ci0gICBnX2F1dG8gKEdTdHJ2KSBycG1zID0gTlVMTDsKLUBAIC01NiwyNyArNDcsNTIgQEAgcHJv ZmlsZV90ZXN0X2NvbnN0cnVjdCAodm9pZCkKLSAgIGdfYXNzZXJ0X3RydWUgKE1PRFVMRU1EX0lT X1BST0ZJTEUgKHApKTsKLSAgIGdfYXNzZXJ0X2NtcHN0ciAobW9kdWxlbWRfcHJvZmlsZV9nZXRf bmFtZSAocCksID09LCAidGVzdHByb2ZpbGUiKTsKLSAgIGdfY2xlYXJfb2JqZWN0ICgmcCk7Ci0r fQotIAotLSAgLyogVGVzdCB0aGF0IHdlIGFib3J0IHdpdGggYSBOVUxMIG5hbWUgdG8gbmV3KCkg Ki8KLS0gIHNpZ25hbGVkID0gRkFMU0U7Ci0tICBzaWduYWwgKFNJR1RSQVAsIHNpZ3RyYXBfaGFu ZGxlcik7Ci0tICBwID0gbW9kdWxlbWRfcHJvZmlsZV9uZXcgKE5VTEwpOwotLSAgZ19hc3NlcnRf dHJ1ZSAoc2lnbmFsZWQpOwotLSAgZ19jbGVhcl9vYmplY3QgKCZwKTsKLSAKLS0gIC8qIFRlc3Qg dGhhdCB3ZSBhYm9ydCBpZiB3ZSBpbnN0YW50aWF0ZSB3aXRob3V0IGEgbmFtZSAqLwotLSAgc2ln bmFsZWQgPSBGQUxTRTsKLS0gIHNpZ25hbCAoU0lHVFJBUCwgc2lndHJhcF9oYW5kbGVyKTsKLS0g IHAgPSBnX29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfUFJPRklMRSwgTlVMTCk7Ci0tICBnX2Fz c2VydF90cnVlIChzaWduYWxlZCk7Ci0tICBnX2NsZWFyX29iamVjdCAoJnApOwotKy8qIFRlc3Qg dGhhdCB3ZSBhYm9ydCB3aXRoIGEgTlVMTCBuYW1lIHRvIG5ldygpICovCi0rc3RhdGljIHZvaWQK LStwcm9maWxlX3Rlc3RfY29uc3RydWN0X25ld19udWxsICh2b2lkKQotK3sKLSsgIGlmIChnX3Rl c3Rfc3VicHJvY2VzcyAoKSkKLSsgICAgewotKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWRQcm9m aWxlKSBwID0gTlVMTDsKLSsgICAgICBwID0gbW9kdWxlbWRfcHJvZmlsZV9uZXcgKE5VTEwpOwot KyAgICAgIHJldHVybjsKLSsgICAgfQotKyAgZ190ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwg MCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7Ci0rICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFp bGVkICgpOwotK30KLSAKLS0gIC8qIHRlc3QgdGhhdCB3ZSBhYm9ydCBpZiB3ZSBpbnN0YW50aWF0 ZSB3aXRoIGEgTlVMTCBuYW1lICovCi0tICBzaWduYWxlZCA9IEZBTFNFOwotLSAgc2lnbmFsIChT SUdUUkFQLCBzaWd0cmFwX2hhbmRsZXIpOwotLSAgcCA9IGdfb2JqZWN0X25ldyAoTU9EVUxFTURf VFlQRV9QUk9GSUxFLCAibmFtZSIsIE5VTEwsIE5VTEwpOwotLSAgZ19hc3NlcnRfdHJ1ZSAoc2ln bmFsZWQpOwotLSAgZ19jbGVhcl9vYmplY3QgKCZwKTsKLSsKLSsvKiBUZXN0IHRoYXQgd2UgYWJv cnQgaWYgd2UgaW5zdGFudGlhdGUgd2l0aG91dCBhIG5hbWUgKi8KLStzdGF0aWMgdm9pZAotK3By b2ZpbGVfdGVzdF9jb25zdHJ1Y3RfaW5pdF9ub19uYW1lICh2b2lkKQotK3sKLSsgIGlmIChnX3Rl c3Rfc3VicHJvY2VzcyAoKSkKLSsgICAgewotKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWRQcm9m aWxlKSBwID0gTlVMTDsKLSsgICAgICBwID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9UWVBFX1BS T0ZJTEUsIE5VTEwpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKyAgZ190ZXN0X3RyYXBfc3Vi cHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7Ci0rICBnX3Rlc3Rf dHJhcF9hc3NlcnRfZmFpbGVkICgpOwotK30KLSsKLSsKLSsvKiBUZXN0IHRoYXQgd2UgYWJvcnQg aWYgd2UgaW5zdGFudGlhdGUgd2l0aCBhIE5VTEwgbmFtZSAqLwotK3N0YXRpYyB2b2lkCi0rcHJv ZmlsZV90ZXN0X2NvbnN0cnVjdF9pbml0X251bGxfbmFtZSAodm9pZCkKLSt7Ci0rICBpZiAoZ190 ZXN0X3N1YnByb2Nlc3MgKCkpCi0rICAgIHsKLSsgICAgICBnX2F1dG9wdHIgKE1vZHVsZW1kUHJv ZmlsZSkgcCA9IE5VTEw7Ci0rCi0rICAgICAgcCA9IGdfb2JqZWN0X25ldyAoTU9EVUxFTURfVFlQ RV9QUk9GSUxFLCAibmFtZSIsIE5VTEwsIE5VTEwpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQot KyAgZ190ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVG QVVMVCk7Ci0rICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOwotIH0KLSAKLSAKLUBAIC0z NTMsMTIgKzM2OSwyMyBAQCBwcm9maWxlX3Rlc3RfZ2V0X25hbWUgKHZvaWQpCi0gCi0gICBnX29i amVjdF9nZXQgKHAsICJuYW1lIiwgJm5hbWUsIE5VTEwpOwotICAgZ19hc3NlcnRfY21wc3RyIChu YW1lLCA9PSwgInRlc3Rwcm9maWxlIik7Ci0rfQotKwotIAotLSAgLyogVGVzdCB0aGF0IG5hbWUg aXMgaW1tdXRhYmxlICovCi0tICBzaWduYWxlZCA9IEZBTFNFOwotLSAgc2lnbmFsIChTSUdUUkFQ LCBzaWd0cmFwX2hhbmRsZXIpOwotLSAgZ19vYmplY3Rfc2V0IChwLCAibmFtZSIsICJub3RhdGVz dCIsIE5VTEwpOwotLSAgZ19hc3NlcnRfdHJ1ZSAoc2lnbmFsZWQpOwotKy8qIFRlc3QgdGhhdCBu YW1lIGlzIGltbXV0YWJsZSAqLwotK3N0YXRpYyB2b2lkCi0rcHJvZmlsZV90ZXN0X25hbWVfaXNf aW1tdXRhYmxlICh2b2lkKQotK3sKLSsgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKLSsgICAg ewotKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWRQcm9maWxlKSBwID0gTlVMTDsKLSsgICAgICBw ID0gbW9kdWxlbWRfcHJvZmlsZV9uZXcgKCJ0ZXN0cHJvZmlsZSIpOwotKwotKyAgICAgIGdfb2Jq ZWN0X3NldCAocCwgIm5hbWUiLCAibm90YXRlc3QiLCBOVUxMKTsKLSsgICAgICByZXR1cm47Ci0r ICAgIH0KLSsgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQUk9D RVNTX0RFRkFVTFQpOwotKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKLSB9Ci0gCi0g Ci1AQCAtNTc2LDcgKzYwMywxNCBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQotIAot ICAgLy8gRGVmaW5lIHRoZSB0ZXN0cy4KLSAKLS0gIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVt ZC92Mi9wcm9maWxlL2NvbnN0cnVjdCIsIHByb2ZpbGVfdGVzdF9jb25zdHJ1Y3QpOwotKyAgZ190 ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3Byb2ZpbGUvY29uc3RydWN0L3JlZ3VsYXIiLAot KyAgICAgICAgICAgICAgICAgICBwcm9maWxlX3Rlc3RfY29uc3RydWN0X3JlZ3VsYXIpOwotKyAg Z190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3Byb2ZpbGUvY29uc3RydWN0L25ld19udWxs IiwKLSsgICAgICAgICAgICAgICAgICAgcHJvZmlsZV90ZXN0X2NvbnN0cnVjdF9uZXdfbnVsbCk7 Ci0rICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvcHJvZmlsZS9jb25zdHJ1Y3QvaW5p dF9ub19uYW1lIiwKLSsgICAgICAgICAgICAgICAgICAgcHJvZmlsZV90ZXN0X2NvbnN0cnVjdF9p bml0X25vX25hbWUpOwotKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3Byb2ZpbGUv Y29uc3RydWN0L2luaXRfbnVsbF9uYW1lIiwKLSsgICAgICAgICAgICAgICAgICAgcHJvZmlsZV90 ZXN0X2NvbnN0cnVjdF9pbml0X251bGxfbmFtZSk7Ci0gCi0gICBnX3Rlc3RfYWRkX2Z1bmMgKCIv bW9kdWxlbWQvdjIvcHJvZmlsZS9lcXVhbHMiLCBwcm9maWxlX3Rlc3RfZXF1YWxzKTsKLSAKLUBA IC01ODQsNiArNjE4LDkgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAKLSAgIGdf dGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9wcm9maWxlL2dldF9uYW1lIiwgcHJvZmlsZV90 ZXN0X2dldF9uYW1lKTsKLSAKLSsgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9wcm9m aWxlL25hbWVfaXNfaW1tdXRhYmxlIiwKLSsgICAgICAgICAgICAgICAgICAgcHJvZmlsZV90ZXN0 X25hbWVfaXNfaW1tdXRhYmxlKTsKLSsKLSAgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92 Mi9wcm9maWxlL2dldF9zZXRfZGVzY3JpcHRpb24iLAotICAgICAgICAgICAgICAgICAgICBwcm9m aWxlX3Rlc3RfZ2V0X3NldF9kZXNjcmlwdGlvbik7Ci0gCi1kaWZmIC0tZ2l0IGEvbW9kdWxlbWQv dGVzdHMvdGVzdC1tb2R1bGVtZC1zZXJ2aWNlLWxldmVsLmMgYi9tb2R1bGVtZC90ZXN0cy90ZXN0 LW1vZHVsZW1kLXNlcnZpY2UtbGV2ZWwuYwotaW5kZXggZDhlZTk4MS4uOTYxOTU2ZCAxMDA2NDQK LS0tLSBhL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtc2VydmljZS1sZXZlbC5jCi0rKysg Yi9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLXNlcnZpY2UtbGV2ZWwuYwotQEAgLTE0LDcg KzE0LDYgQEAKLSAjaW5jbHVkZSA8Z2xpYi5oPgotICNpbmNsdWRlIDxnbGliL2dzdGRpby5oPgot ICNpbmNsdWRlIDxsb2NhbGUuaD4KLS0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0gCi0gI2luY2x1ZGUg Im1vZHVsZW1kLXNlcnZpY2UtbGV2ZWwuaCIKLSAjaW5jbHVkZSAicHJpdmF0ZS9nbGliLWV4dGVu c2lvbnMuaCIKLUBAIC0yNiwxNiArMjUsOCBAQCB0eXBlZGVmIHN0cnVjdCBfU2VydmljZUxldmVs Rml4dHVyZQotIHsKLSB9IFNlcnZpY2VMZXZlbEZpeHR1cmU7Ci0gCi0tZ2Jvb2xlYW4gc2lnbmFs ZWQgPSBGQUxTRTsKLS0KLS1zdGF0aWMgdm9pZAotLXNpZ3RyYXBfaGFuZGxlciAoaW50IFVOVVNF RCAoc2lnX251bSkpCi0tewotLSAgc2lnbmFsZWQgPSBUUlVFOwotLX0KLS0KLSBzdGF0aWMgdm9p ZAotLXNlcnZpY2VfbGV2ZWxfdGVzdF9jb25zdHJ1Y3QgKHZvaWQpCi0rc2VydmljZV9sZXZlbF90 ZXN0X2NvbnN0cnVjdF9yZWd1bGFyICh2b2lkKQotIHsKLSAgIGdfYXV0b3B0ciAoTW9kdWxlbWRT ZXJ2aWNlTGV2ZWwpIHNsID0gTlVMTDsKLSAKLUBAIC01OSwzNCArNTAsNTUgQEAgc2VydmljZV9s ZXZlbF90ZXN0X2NvbnN0cnVjdCAodm9pZCkKLSAgIGdfYXNzZXJ0X2NtcHN0ciAobW9kdWxlbWRf c2VydmljZV9sZXZlbF9nZXRfbmFtZSAoc2wpLCA9PSwgImJhciIpOwotICAgZ19hc3NlcnRfbnVs bCAobW9kdWxlbWRfc2VydmljZV9sZXZlbF9nZXRfZW9sIChzbCkpOwotICAgZ19jbGVhcl9vYmpl Y3QgKCZzbCk7Ci0rfQotIAotIAotLSAgLyogVGVzdCB0aGF0IHdlIGFib3J0IGlmIHdlIGNhbGwg bmV3KCkgd2l0aCBhIE5VTEwgbmFtZSAqLwotLSAgc2lnbmFsZWQgPSBGQUxTRTsKLS0gIHNpZ25h bCAoU0lHVFJBUCwgc2lndHJhcF9oYW5kbGVyKTsKLS0gIHNsID0gbW9kdWxlbWRfc2VydmljZV9s ZXZlbF9uZXcgKE5VTEwpOwotLSAgZ19hc3NlcnRfdHJ1ZSAoc2lnbmFsZWQpOwotLSAgZ19jbGVh cl9vYmplY3QgKCZzbCk7Ci0rLyogVGVzdCB0aGF0IHdlIGFib3J0IGlmIHdlIGNhbGwgbmV3KCkg d2l0aCBhIE5VTEwgbmFtZSAqLwotK3N0YXRpYyB2b2lkCi0rc2VydmljZV9sZXZlbF90ZXN0X2Nv bnN0cnVjdF9uZXdfbnVsbCAodm9pZCkKLSt7Ci0rICBpZiAoZ190ZXN0X3N1YnByb2Nlc3MgKCkp Ci0rICAgIHsKLSsgICAgICBnX2F1dG9wdHIgKE1vZHVsZW1kU2VydmljZUxldmVsKSBzbCA9IE5V TEw7Ci0rICAgICAgc2wgPSBtb2R1bGVtZF9zZXJ2aWNlX2xldmVsX25ldyAoTlVMTCk7Ci0rICAg ICAgcmV0dXJuOwotKyAgICB9Ci0rICBnX3Rlc3RfdHJhcF9zdWJwcm9jZXNzIChOVUxMLCAwLCBH X1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKLSsgIGdfdGVzdF90cmFwX2Fzc2VydF9mYWlsZWQg KCk7Ci0rfQotIAotIAotLSAgLyogVGVzdCB0aGF0IHdlIGFib3J0IGlmIHdlIGluc3RhdGlhdGUg d2l0aG91dCBhIG5hbWUgKi8KLS0gIHNpZ25hbGVkID0gRkFMU0U7Ci0tICBzaWduYWwgKFNJR1RS QVAsIHNpZ3RyYXBfaGFuZGxlcik7Ci0tICBzbCA9IGdfb2JqZWN0X25ldyAoTU9EVUxFTURfVFlQ RV9TRVJWSUNFX0xFVkVMLCBOVUxMKTsKLS0gIGdfYXNzZXJ0X3RydWUgKHNpZ25hbGVkKTsKLS0g IGdfY2xlYXJfb2JqZWN0ICgmc2wpOwotKy8qIFRlc3QgdGhhdCB3ZSBhYm9ydCBpZiB3ZSBpbnN0 YXRpYXRlIHdpdGhvdXQgYSBuYW1lICovCi0rc3RhdGljIHZvaWQKLStzZXJ2aWNlX2xldmVsX3Rl c3RfY29uc3RydWN0X2luaXRfbm9fbmFtZSAodm9pZCkKLSt7Ci0rICBpZiAoZ190ZXN0X3N1YnBy b2Nlc3MgKCkpCi0rICAgIHsKLSsgICAgICBnX2F1dG9wdHIgKE1vZHVsZW1kU2VydmljZUxldmVs KSBzbCA9IE5VTEw7Ci0rICAgICAgc2wgPSBnX29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfU0VS VklDRV9MRVZFTCwgTlVMTCk7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rICBnX3Rlc3RfdHJh cF9zdWJwcm9jZXNzIChOVUxMLCAwLCBHX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKLSsgIGdf dGVzdF90cmFwX2Fzc2VydF9mYWlsZWQgKCk7Ci0rfQotIAotIAotLSAgLyogVGVzdCB0aGF0IHdl IGFib3J0IGlmIHdlIGluc3RhdGlhdGUgd2l0aCBhIE5VTEwgbmFtZSAqLwotLSAgc2lnbmFsZWQg PSBGQUxTRTsKLS0gIHNpZ25hbCAoU0lHVFJBUCwgc2lndHJhcF9oYW5kbGVyKTsKLS0gIC8vIGNs YW5nLWZvcm1hdCBvZmYKLS0gIHNsID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9UWVBFX1NFUlZJ Q0VfTEVWRUwsCi0tICAgICAgICAgICAgICAgICAgICAgIm5hbWUiLCBOVUxMLAotLSAgICAgICAg ICAgICAgICAgICAgIE5VTEwpOwotLSAgLy8gY2xhbmctZm9ybWF0IG9uCi0tICBnX2Fzc2VydF90 cnVlIChzaWduYWxlZCk7Ci0tICBnX2NsZWFyX29iamVjdCAoJnNsKTsKLSsvKiBUZXN0IHRoYXQg d2UgYWJvcnQgaWYgd2UgaW5zdGF0aWF0ZSB3aXRoIGEgTlVMTCBuYW1lICovCi0rc3RhdGljIHZv aWQKLStzZXJ2aWNlX2xldmVsX3Rlc3RfY29uc3RydWN0X2luaXRfbnVsbF9uYW1lICh2b2lkKQot K3sKLSsgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKLSsgICAgewotKyAgICAgIGdfYXV0b3B0 ciAoTW9kdWxlbWRTZXJ2aWNlTGV2ZWwpIHNsID0gTlVMTDsKLSsgICAgICAvLyBjbGFuZy1mb3Jt YXQgb2ZmCi0rICAgICAgc2wgPSBnX29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfU0VSVklDRV9M RVZFTCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiLCBOVUxMLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICBOVUxMKTsKLSsgICAgICAvLyBjbGFuZy1mb3JtYXQgb24KLSsgICAg ICByZXR1cm47Ci0rICAgIH0KLSsgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdf VEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQpOwotKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAo KTsKLSB9Ci0gCi0gCi1AQCAtMjQ5LDE5ICsyNjEsMjUgQEAgc2VydmljZV9sZXZlbF90ZXN0X2dl dF9uYW1lICh2b2lkKQotICAgICAgICAgICAgICAgICBOVUxMKTsKLSAgIC8vIGNsYW5nLWZvcm1h dCBvbgotICAgZ19hc3NlcnRfY21wc3RyIChuYW1lLCA9PSwgImZvbyIpOwotK30KLSAKLSAKLS0g IC8qIFRlc3QgdGhhdCB0cnlpbmcgdG8gc2V0IHRoZSBuYW1lIGJ5IG9iamVjdCBwcm9wZXJ0aWVz IGZhaWxzLgotLSAgICogVGhlIG5hbWUgbXVzdCBiZSBpbW11dGFibGUgZm9yIHRoZSBsaWZlIG9m IHRoZSBvYmplY3QuCi0tICAgKi8KLS0gIHNpZ25hbGVkID0gRkFMU0U7Ci0tICBzaWduYWwgKFNJ R1RSQVAsIHNpZ3RyYXBfaGFuZGxlcik7Ci0tICAvLyBjbGFuZy1mb3JtYXQgb2ZmCi0tICBnX29i amVjdF9zZXQgKHNsLAotLSAgICAgICAgICAgICAgICAibmFtZSIsICJiYXIiLAotLSAgICAgICAg ICAgICAgICBOVUxMKTsKLS0gIC8vIGNsYW5nLWZvcm1hdCBvbgotLSAgZ19hc3NlcnRfdHJ1ZSAo c2lnbmFsZWQpOwotKy8qCi0rICogVGVzdCB0aGF0IHRyeWluZyB0byBzZXQgdGhlIG5hbWUgYnkg b2JqZWN0IHByb3BlcnRpZXMgZmFpbHMuCi0rICogVGhlIG5hbWUgbXVzdCBiZSBpbW11dGFibGUg Zm9yIHRoZSBsaWZlIG9mIHRoZSBvYmplY3QuCi0rICovCi0rc3RhdGljIHZvaWQKLStzZXJ2aWNl X2xldmVsX3Rlc3RfbmFtZV9pc19pbW11dGFibGUgKHZvaWQpCi0rewotKyAgaWYgKGdfdGVzdF9z dWJwcm9jZXNzICgpKQotKyAgICB7Ci0rICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZFNlcnZpY2VM ZXZlbCkgc2wgPSBOVUxMOwotKyAgICAgIHNsID0gbW9kdWxlbWRfc2VydmljZV9sZXZlbF9uZXcg KCJmb28iKTsKLSsgICAgICBnX29iamVjdF9zZXQgKHNsLCAibmFtZSIsICJiYXIiLCBOVUxMKTsK LSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEws IDAsIEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQpOwotKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2Zh aWxlZCAoKTsKLSB9Ci0gCi0gCi1AQCAtNDc2LDEyICs0OTQsMjEgQEAgbWFpbiAoaW50IGFyZ2Ms IGNoYXIgKmFyZ3ZbXSkKLSAKLSAgIC8vIERlZmluZSB0aGUgdGVzdHMuCi0gCi0tICBnX3Rlc3Rf YWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvc2VydmljZWxldmVsL2NvbnN0cnVjdCIsCi0tICAgICAg ICAgICAgICAgICAgIHNlcnZpY2VfbGV2ZWxfdGVzdF9jb25zdHJ1Y3QpOwotKyAgZ190ZXN0X2Fk ZF9mdW5jICgiL21vZHVsZW1kL3YyL3NlcnZpY2VsZXZlbC9jb25zdHJ1Y3QvcmVndWxhciIsCi0r ICAgICAgICAgICAgICAgICAgIHNlcnZpY2VfbGV2ZWxfdGVzdF9jb25zdHJ1Y3RfcmVndWxhcik7 Ci0rICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvc2VydmljZWxldmVsL2NvbnN0cnVj dC9uZXdfbnVsbCIsCi0rICAgICAgICAgICAgICAgICAgIHNlcnZpY2VfbGV2ZWxfdGVzdF9jb25z dHJ1Y3RfbmV3X251bGwpOwotKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3NlcnZp Y2VsZXZlbC9jb25zdHJ1Y3QvaW5pdF9ub19uYW1lIiwKLSsgICAgICAgICAgICAgICAgICAgc2Vy dmljZV9sZXZlbF90ZXN0X2NvbnN0cnVjdF9pbml0X25vX25hbWUpOwotKyAgZ190ZXN0X2FkZF9m dW5jICgiL21vZHVsZW1kL3YyL3NlcnZpY2VsZXZlbC9jb25zdHJ1Y3QvaW5pdF9udWxsX25hbWUi LAotKyAgICAgICAgICAgICAgICAgICBzZXJ2aWNlX2xldmVsX3Rlc3RfY29uc3RydWN0X2luaXRf bnVsbF9uYW1lKTsKLSAKLSAgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9zZXJ2aWNl bGV2ZWwvZ2V0X3NldF9uYW1lIiwKLSAgICAgICAgICAgICAgICAgICAgc2VydmljZV9sZXZlbF90 ZXN0X2dldF9uYW1lKTsKLSAKLSsgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9zZXJ2 aWNlbGV2ZWwvbmFtZV9pc19pbW11dGFibGUiLAotKyAgICAgICAgICAgICAgICAgICBzZXJ2aWNl X2xldmVsX3Rlc3RfbmFtZV9pc19pbW11dGFibGUpOwotKwotICAgZ190ZXN0X2FkZF9mdW5jICgi L21vZHVsZW1kL3YyL3NlcnZpY2VsZXZlbC9lcXVhbHMiLAotICAgICAgICAgICAgICAgICAgICBz ZXJ2aWNlX2xldmVsX3Rlc3RfZXF1YWxzKTsKLSAKLWRpZmYgLS1naXQgYS9tb2R1bGVtZC90ZXN0 cy90ZXN0LW1vZHVsZW1kLXRyYW5zbGF0aW9uLWVudHJ5LmMgYi9tb2R1bGVtZC90ZXN0cy90ZXN0 LW1vZHVsZW1kLXRyYW5zbGF0aW9uLWVudHJ5LmMKLWluZGV4IDg1OGJkZmEuLmVlMTc5NDAgMTAw NjQ0Ci0tLS0gYS9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLXRyYW5zbGF0aW9uLWVudHJ5 LmMKLSsrKyBiL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtdHJhbnNsYXRpb24tZW50cnku YwotQEAgLTE0LDcgKzE0LDYgQEAKLSAjaW5jbHVkZSA8Z2xpYi5oPgotICNpbmNsdWRlIDxnbGli L2dzdGRpby5oPgotICNpbmNsdWRlIDxsb2NhbGUuaD4KLS0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0g Ci0gI2luY2x1ZGUgIm1vZHVsZW1kLXRyYW5zbGF0aW9uLWVudHJ5LmgiCi0gI2luY2x1ZGUgInBy aXZhdGUvZ2xpYi1leHRlbnNpb25zLmgiCi1AQCAtMjYsMTYgKzI1LDggQEAgdHlwZWRlZiBzdHJ1 Y3QgX1RyYW5zbGF0aW9uRW50cnlGaXh0dXJlCi0gewotIH0gVHJhbnNsYXRpb25FbnRyeUZpeHR1 cmU7Ci0gCi0tZ2Jvb2xlYW4gc2lnbmFsZWQgPSBGQUxTRTsKLS0KLSBzdGF0aWMgdm9pZAotLXNp Z3RyYXBfaGFuZGxlciAoaW50IFVOVVNFRCAoc2lnX251bSkpCi0tewotLSAgc2lnbmFsZWQgPSBU UlVFOwotLX0KLS0KLS1zdGF0aWMgdm9pZAotLXRyYW5zbGF0aW9uX2VudHJ5X3Rlc3RfY29uc3Ry dWN0ICh2b2lkKQotK3RyYW5zbGF0aW9uX2VudHJ5X3Rlc3RfY29uc3RydWN0X3JlZ3VsYXIgKHZv aWQpCi0gewotICAgZ19hdXRvcHRyIChNb2R1bGVtZFRyYW5zbGF0aW9uRW50cnkpIHRlID0gTlVM TDsKLSAgIGdfYXV0byAoR1N0cnYpIHByb2ZpbGVfbmFtZXMgPSBOVUxMOwotQEAgLTExMCwzNCAr MTAxLDU1IEBAIHRyYW5zbGF0aW9uX2VudHJ5X3Rlc3RfY29uc3RydWN0ICh2b2lkKQotICAgZ19h c3NlcnRfY21wc3RyICgKLSAgICAgbW9kdWxlbWRfdHJhbnNsYXRpb25fZW50cnlfZ2V0X2Rlc2Ny aXB0aW9uICh0ZSksID09LCAianVtcGVkIik7Ci0gICBnX2NsZWFyX29iamVjdCAoJnRlKTsKLSt9 Ci0gCi0gCi0tICAvKiBUZXN0IHRoYXQgd2UgYWJvcnQgaWYgd2UgY2FsbCBuZXcoKSB3aXRoIGEg TlVMTCBsb2NhbGUgKi8KLS0gIHNpZ25hbGVkID0gRkFMU0U7Ci0tICBzaWduYWwgKFNJR1RSQVAs IHNpZ3RyYXBfaGFuZGxlcik7Ci0tICB0ZSA9IG1vZHVsZW1kX3RyYW5zbGF0aW9uX2VudHJ5X25l dyAoTlVMTCk7Ci0tICBnX2Fzc2VydF90cnVlIChzaWduYWxlZCk7Ci0tICBnX2NsZWFyX29iamVj dCAoJnRlKTsKLSsvKiBUZXN0IHRoYXQgd2UgYWJvcnQgaWYgd2UgY2FsbCBuZXcoKSB3aXRoIGEg TlVMTCBsb2NhbGUgKi8KLStzdGF0aWMgdm9pZAotK3RyYW5zbGF0aW9uX2VudHJ5X3Rlc3RfY29u c3RydWN0X25ld19udWxsICh2b2lkKQotK3sKLSsgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkK LSsgICAgewotKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWRUcmFuc2xhdGlvbkVudHJ5KSB0ZSA9 IE5VTEw7Ci0rICAgICAgdGUgPSBtb2R1bGVtZF90cmFuc2xhdGlvbl9lbnRyeV9uZXcgKE5VTEwp OwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKyAgZ190ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVM TCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7Ci0rICBnX3Rlc3RfdHJhcF9hc3NlcnRf ZmFpbGVkICgpOwotK30KLSAKLSAKLS0gIC8qIFRlc3QgdGhhdCB3ZSBhYm9ydCBpZiB3ZSBpbnN0 YXRpYXRlIHdpdGhvdXQgYSBsb2NhbGUgKi8KLS0gIHNpZ25hbGVkID0gRkFMU0U7Ci0tICBzaWdu YWwgKFNJR1RSQVAsIHNpZ3RyYXBfaGFuZGxlcik7Ci0tICB0ZSA9IGdfb2JqZWN0X25ldyAoTU9E VUxFTURfVFlQRV9UUkFOU0xBVElPTl9FTlRSWSwgTlVMTCk7Ci0tICBnX2Fzc2VydF90cnVlIChz aWduYWxlZCk7Ci0tICBnX2NsZWFyX29iamVjdCAoJnRlKTsKLSsvKiBUZXN0IHRoYXQgd2UgYWJv cnQgaWYgd2UgaW5zdGF0aWF0ZSB3aXRob3V0IGEgbG9jYWxlICovCi0rc3RhdGljIHZvaWQKLSt0 cmFuc2xhdGlvbl9lbnRyeV90ZXN0X2NvbnN0cnVjdF9pbml0X25vX2xvY2FsZSAodm9pZCkKLSt7 Ci0rICBpZiAoZ190ZXN0X3N1YnByb2Nlc3MgKCkpCi0rICAgIHsKLSsgICAgICBnX2F1dG9wdHIg KE1vZHVsZW1kVHJhbnNsYXRpb25FbnRyeSkgdGUgPSBOVUxMOwotKyAgICAgIHRlID0gZ19vYmpl Y3RfbmV3IChNT0RVTEVNRF9UWVBFX1RSQU5TTEFUSU9OX0VOVFJZLCBOVUxMKTsKLSsgICAgICBy ZXR1cm47Ci0rICAgIH0KLSsgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVT VF9TVUJQUk9DRVNTX0RFRkFVTFQpOwotKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsK LSt9Ci0gCi0gCi0tICAvKiBUZXN0IHRoYXQgd2UgYWJvcnQgaWYgd2UgaW5zdGF0aWF0ZSB3aXRo IGEgTlVMTCBsb2NhbGUgKi8KLS0gIHNpZ25hbGVkID0gRkFMU0U7Ci0tICBzaWduYWwgKFNJR1RS QVAsIHNpZ3RyYXBfaGFuZGxlcik7Ci0tICAvLyBjbGFuZy1mb3JtYXQgb2ZmCi0tICB0ZSA9IGdf b2JqZWN0X25ldyAoTU9EVUxFTURfVFlQRV9UUkFOU0xBVElPTl9FTlRSWSwKLS0gICAgICAgICAg ICAgICAgICAgICAibG9jYWxlIiwgTlVMTCwKLS0gICAgICAgICAgICAgICAgICAgICBOVUxMKTsK LS0gIC8vIGNsYW5nLWZvcm1hdCBvbgotLSAgZ19hc3NlcnRfdHJ1ZSAoc2lnbmFsZWQpOwotLSAg Z19jbGVhcl9vYmplY3QgKCZ0ZSk7Ci0rLyogVGVzdCB0aGF0IHdlIGFib3J0IGlmIHdlIGluc3Rh dGlhdGUgd2l0aCBhIE5VTEwgbG9jYWxlICovCi0rc3RhdGljIHZvaWQKLSt0cmFuc2xhdGlvbl9l bnRyeV90ZXN0X2NvbnN0cnVjdF9pbml0X251bGxfbG9jYWxlICh2b2lkKQotK3sKLSsgIGlmIChn X3Rlc3Rfc3VicHJvY2VzcyAoKSkKLSsgICAgewotKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWRU cmFuc2xhdGlvbkVudHJ5KSB0ZSA9IE5VTEw7Ci0rICAgICAgLy8gY2xhbmctZm9ybWF0IG9mZgot KyAgICAgIHRlID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9UWVBFX1RSQU5TTEFUSU9OX0VOVFJZ LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAibG9jYWxlIiwgTlVMTCwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgTlVMTCk7Ci0rICAgICAgLy8gY2xhbmctZm9ybWF0IG9uCi0rICAgICAg cmV0dXJuOwotKyAgICB9Ci0rICBnX3Rlc3RfdHJhcF9zdWJwcm9jZXNzIChOVUxMLCAwLCBHX1RF U1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKLSsgIGdfdGVzdF90cmFwX2Fzc2VydF9mYWlsZWQgKCk7 Ci0gfQotIAotIAotQEAgLTMzNCwxMiArMzQ2LDI2IEBAIHRyYW5zbGF0aW9uX2VudHJ5X3Rlc3Rf Z2V0X2xvY2FsZSAodm9pZCkKLSAKLSAgIGdfb2JqZWN0X2dldCAodGUsICJsb2NhbGUiLCAmbG9j YWxlLCBOVUxMKTsKLSAgIGdfYXNzZXJ0X2NtcHN0ciAobG9jYWxlLCA9PSwgImVuX1VTIik7Ci0r fQotKwotIAotLSAgLyogVGVzdCB0aGF0IGxvY2FsZSBpcyBpbW11dGFibGUgKi8KLS0gIHNpZ25h bGVkID0gRkFMU0U7Ci0tICBzaWduYWwgKFNJR1RSQVAsIHNpZ3RyYXBfaGFuZGxlcik7Ci0tICBn X29iamVjdF9zZXQgKHRlLCAibG9jYWxlIiwgImVuX0dCIiwgTlVMTCk7Ci0tICBnX2Fzc2VydF90 cnVlIChzaWduYWxlZCk7Ci0rLyogVGVzdCB0aGF0IGxvY2FsZSBpcyBpbW11dGFibGUgKi8KLStz dGF0aWMgdm9pZAotK3RyYW5zbGF0aW9uX2VudHJ5X3Rlc3RfbG9jYWxlX2lzX2ltbXV0YWJsZSAo dm9pZCkKLSt7Ci0rICBpZiAoZ190ZXN0X3N1YnByb2Nlc3MgKCkpCi0rICAgIHsKLSsgICAgICBn X2F1dG9wdHIgKE1vZHVsZW1kVHJhbnNsYXRpb25FbnRyeSkgdGUgPSBOVUxMOwotKwotKyAgICAg IHRlID0gbW9kdWxlbWRfdHJhbnNsYXRpb25fZW50cnlfbmV3ICgiZW5fVVMiKTsKLSsgICAgICBn X2Fzc2VydF9ub25udWxsICh0ZSk7Ci0rICAgICAgZ19hc3NlcnRfdHJ1ZSAoTU9EVUxFTURfSVNf VFJBTlNMQVRJT05fRU5UUlkgKHRlKSk7Ci0rCi0rICAgICAgZ19vYmplY3Rfc2V0ICh0ZSwgImxv Y2FsZSIsICJlbl9HQiIsIE5VTEwpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKyAgZ190ZXN0 X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7Ci0r ICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOwotIH0KLSAKLSAKLUBAIC02MDksOCArNjM1 LDE0IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCi0gCi0gICAvLyBEZWZpbmUgdGhl IHRlc3RzLgotIAotLSAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3RyYW5zbGF0aW9u ZW50cnkvY29uc3RydWN0IiwKLS0gICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25fZW50cnlf dGVzdF9jb25zdHJ1Y3QpOwotKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3RyYW5z bGF0aW9uZW50cnkvY29uc3RydWN0L3JlZ3VsYXIiLAotKyAgICAgICAgICAgICAgICAgICB0cmFu c2xhdGlvbl9lbnRyeV90ZXN0X2NvbnN0cnVjdF9yZWd1bGFyKTsKLSsgIGdfdGVzdF9hZGRfZnVu YyAoIi9tb2R1bGVtZC92Mi90cmFuc2xhdGlvbmVudHJ5L2NvbnN0cnVjdC9uZXdfbnVsbCIsCi0r ICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uX2VudHJ5X3Rlc3RfY29uc3RydWN0X25ld19u dWxsKTsKLSsgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi90cmFuc2xhdGlvbmVudHJ5 L2NvbnN0cnVjdC9pbml0X25vX2xvY2FsZSIsCi0rICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0 aW9uX2VudHJ5X3Rlc3RfY29uc3RydWN0X2luaXRfbm9fbG9jYWxlKTsKLSsgIGdfdGVzdF9hZGRf ZnVuYyAoIi9tb2R1bGVtZC92Mi90cmFuc2xhdGlvbmVudHJ5L2NvbnN0cnVjdC9pbml0X251bGxf bG9jYWxlIiwKLSsgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25fZW50cnlfdGVzdF9jb25z dHJ1Y3RfaW5pdF9udWxsX2xvY2FsZSk7Ci0gCi0gICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxl bWQvdjIvdHJhbnNsYXRpb25lbnRyeS9jb3B5IiwKLSAgICAgICAgICAgICAgICAgICAgdHJhbnNs YXRpb25fZW50cnlfdGVzdF9jb3B5KTsKLUBAIC02MTgsNiArNjUwLDkgQEAgbWFpbiAoaW50IGFy Z2MsIGNoYXIgKmFyZ3ZbXSkKLSAgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi90cmFu c2xhdGlvbmVudHJ5L2dldF9sb2NhbGUiLAotICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlv bl9lbnRyeV90ZXN0X2dldF9sb2NhbGUpOwotIAotKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVs ZW1kL3YyL3RyYW5zbGF0aW9uZW50cnkvbG9jYWxlX2lzX2ltbXV0YWJsZSIsCi0rICAgICAgICAg ICAgICAgICAgIHRyYW5zbGF0aW9uX2VudHJ5X3Rlc3RfbG9jYWxlX2lzX2ltbXV0YWJsZSk7Ci0r Ci0gICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvdHJhbnNsYXRpb25lbnRyeS9nZXRf c2V0X3N1bW1hcnkiLAotICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbl9lbnRyeV90ZXN0 X2dldF9zZXRfc3VtbWFyeSk7Ci0gCi1kaWZmIC0tZ2l0IGEvbW9kdWxlbWQvdGVzdHMvdGVzdC1t b2R1bGVtZC10cmFuc2xhdGlvbi5jIGIvbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC10cmFu c2xhdGlvbi5jCi1pbmRleCA2NTUyMDBmLi5hNjdiNzg3IDEwMDY0NAotLS0tIGEvbW9kdWxlbWQv dGVzdHMvdGVzdC1tb2R1bGVtZC10cmFuc2xhdGlvbi5jCi0rKysgYi9tb2R1bGVtZC90ZXN0cy90 ZXN0LW1vZHVsZW1kLXRyYW5zbGF0aW9uLmMKLUBAIC0xNCw3ICsxNCw2IEBACi0gI2luY2x1ZGUg PGdsaWIuaD4KLSAjaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KLSAjaW5jbHVkZSA8bG9jYWxlLmg+ Ci0tI2luY2x1ZGUgPHNpZ25hbC5oPgotIAotICNpbmNsdWRlICJtb2R1bGVtZC1zdWJkb2N1bWVu dC1pbmZvLmgiCi0gI2luY2x1ZGUgIm1vZHVsZW1kLXRyYW5zbGF0aW9uLWVudHJ5LmgiCi1AQCAt MzAsMTcgKzI5LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgX1RyYW5zbGF0aW9uRml4dHVyZQotIHsKLSB9 IFRyYW5zbGF0aW9uRml4dHVyZTsKLSAKLS1nYm9vbGVhbiBzaWduYWxlZCA9IEZBTFNFOwotIAot IHN0YXRpYyB2b2lkCi0tc2lndHJhcF9oYW5kbGVyIChpbnQgVU5VU0VEIChzaWdfbnVtKSkKLS17 Ci0tICBzaWduYWxlZCA9IFRSVUU7Ci0tfQotLQotLQotLXN0YXRpYyB2b2lkCi0tdHJhbnNsYXRp b25fdGVzdF9jb25zdHJ1Y3QgKHZvaWQpCi0rdHJhbnNsYXRpb25fdGVzdF9jb25zdHJ1Y3RfcmVn dWxhciAodm9pZCkKLSB7Ci0gICBnX2F1dG9wdHIgKE1vZHVsZW1kVHJhbnNsYXRpb24pIHQgPSBO VUxMOwotICAgZ19hdXRvIChHU3RydikgbG9jYWxlcyA9IE5VTEw7Ci1AQCAtOTQsNDEgKzg1LDY0 IEBAIHRyYW5zbGF0aW9uX3Rlc3RfY29uc3RydWN0ICh2b2lkKQotICAgZ19hc3NlcnRfY21wc3Ry IChtb2R1bGVtZF90cmFuc2xhdGlvbl9nZXRfbW9kdWxlX3N0cmVhbSAodCksID09LCAidGVzdHN0 ciIpOwotICAgZ19hc3NlcnRfY21waW50IChtb2R1bGVtZF90cmFuc2xhdGlvbl9nZXRfbW9kaWZp ZWQgKHQpLCA9PSwgbW9kaWZpZWQpOwotICAgZ19jbGVhcl9vYmplY3QgKCZ0KTsKLSt9Ci0gCi0t ICAvKiBUZXN0IHRoYXQgb2JqZWN0X25ldyBkb2VzIG5vdCB3b3JrIHdpdGhvdXQgYSB2ZXJzaW9u ICovCi0tICBzaWduYWxlZCA9IEZBTFNFOwotLSAgc2lnbmFsIChTSUdUUkFQLCBzaWd0cmFwX2hh bmRsZXIpOwotLSAgLy8gY2xhbmctZm9ybWF0IG9mZgotLSAgdCA9IGdfb2JqZWN0X25ldyAoTU9E VUxFTURfVFlQRV9UUkFOU0xBVElPTiwKLS0gICAgICAgICAgICAgICAgICAgICJtb2R1bGVfbmFt ZSIsICJ0ZXN0bW9kIiwKLS0gICAgICAgICAgICAgICAgICAgICJtb2R1bGVfc3RyZWFtIiwgInRl c3RzdHIiLAotLSAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0tICAvLyBjbGFuZy1mb3JtYXQg b24KLS0gIGdfYXNzZXJ0X3RydWUgKHNpZ25hbGVkKTsKLS0gIGdfY2xlYXJfb2JqZWN0ICgmdCk7 Ci0rLyogVGVzdCB0aGF0IG9iamVjdF9uZXcgZG9lcyBub3Qgd29yayB3aXRob3V0IGEgdmVyc2lv biAqLwotK3N0YXRpYyB2b2lkCi0rdHJhbnNsYXRpb25fdGVzdF9jb25zdHJ1Y3Rfbm9fdmVyc2lv biAodm9pZCkKLSt7Ci0rICBpZiAoZ190ZXN0X3N1YnByb2Nlc3MgKCkpCi0rICAgIHsKLSsgICAg ICBnX2F1dG9wdHIgKE1vZHVsZW1kVHJhbnNsYXRpb24pIHQgPSBOVUxMOwotKyAgICAgIC8vIGNs YW5nLWZvcm1hdCBvZmYKLSsgICAgICB0ID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9UWVBFX1RS QU5TTEFUSU9OLAotKyAgICAgICAgICAgICAgICAgICAgICAgICJtb2R1bGVfbmFtZSIsICJ0ZXN0 bW9kIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAibW9kdWxlX3N0cmVhbSIsICJ0ZXN0c3Ry IiwKLSsgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKLSsgICAgICAvLyBjbGFuZy1mb3Jt YXQgb24KLSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3Mg KE5VTEwsIDAsIEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQpOwotKyAgZ190ZXN0X3RyYXBfYXNz ZXJ0X2ZhaWxlZCAoKTsKLSt9Ci0gCi0tICAvKiBUZXN0IHRoYXQgb2JqZWN0X25ldyBkb2VzIG5v dCB3b3JrIHdpdGhvdXQgYSBuYW1lICovCi0tICBzaWduYWxlZCA9IEZBTFNFOwotLSAgc2lnbmFs IChTSUdUUkFQLCBzaWd0cmFwX2hhbmRsZXIpOwotLSAgLy8gY2xhbmctZm9ybWF0IG9mZgotLSAg dCA9IGdfb2JqZWN0X25ldyAoTU9EVUxFTURfVFlQRV9UUkFOU0xBVElPTiwKLS0gICAgICAgICAg ICAgICAgICAgICJ2ZXJzaW9uIiwgdHJhbnNsYXRpb25fdmVyc2lvbiwKLS0gICAgICAgICAgICAg ICAgICAgICJtb2R1bGVfc3RyZWFtIiwgInRlc3RzdHIiLCBOVUxMKTsKLS0gIC8vIGNsYW5nLWZv cm1hdCBvbgotLSAgZ19hc3NlcnRfdHJ1ZSAoc2lnbmFsZWQpOwotLSAgZ19jbGVhcl9vYmplY3Qg KCZ0KTsKLSsvKiBUZXN0IHRoYXQgb2JqZWN0X25ldyBkb2VzIG5vdCB3b3JrIHdpdGhvdXQgYSBu YW1lICovCi0rc3RhdGljIHZvaWQKLSt0cmFuc2xhdGlvbl90ZXN0X2NvbnN0cnVjdF9ub19uYW1l ICh2b2lkKQotK3sKLSsgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKLSsgICAgewotKyAgICAg IGd1aW50NjQgdHJhbnNsYXRpb25fdmVyc2lvbiA9IDE7Ci0rICAgICAgZ19hdXRvcHRyIChNb2R1 bGVtZFRyYW5zbGF0aW9uKSB0ID0gTlVMTDsKLSsgICAgICAvLyBjbGFuZy1mb3JtYXQgb2ZmCi0r ICAgICAgdCA9IGdfb2JqZWN0X25ldyAoTU9EVUxFTURfVFlQRV9UUkFOU0xBVElPTiwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAidmVyc2lvbiIsIHRyYW5zbGF0aW9uX3ZlcnNpb24sCi0rICAg ICAgICAgICAgICAgICAgICAgICAgIm1vZHVsZV9zdHJlYW0iLCAidGVzdHN0ciIsIE5VTEwpOwot KyAgICAgIC8vIGNsYW5nLWZvcm1hdCBvbgotKyAgICAgIHJldHVybjsKLSsgICAgfQotKyAgZ190 ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7 Ci0rICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOwotK30KLSAKLS0gIC8qIFRlc3QgdGhh dCBvYmplY3RfbmV3IGRvZXMgbm90IHdvcmsgd2l0aG91dCBhIHN0cmVhbSAqLwotLSAgc2lnbmFs ZWQgPSBGQUxTRTsKLS0gIHNpZ25hbCAoU0lHVFJBUCwgc2lndHJhcF9oYW5kbGVyKTsKLS0gIC8v IGNsYW5nLWZvcm1hdCBvZmYKLS0gIHQgPSBnX29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfVFJB TlNMQVRJT04sCi0tICAgICAgICAgICAgICAgICAgICAidmVyc2lvbiIsIHRyYW5zbGF0aW9uX3Zl cnNpb24sCi0tICAgICAgICAgICAgICAgICAgICAibW9kdWxlX25hbWUiLCAidGVzdG1vZCIsCi0t ICAgICAgICAgICAgICAgICAgICBOVUxMKTsKLS0gIC8vIGNsYW5nLWZvcm1hdCBvbgotLSAgZ19h c3NlcnRfdHJ1ZSAoc2lnbmFsZWQpOwotLSAgZ19jbGVhcl9vYmplY3QgKCZ0KTsKLSsvKiBUZXN0 IHRoYXQgb2JqZWN0X25ldyBkb2VzIG5vdCB3b3JrIHdpdGhvdXQgYSBzdHJlYW0gKi8KLStzdGF0 aWMgdm9pZAotK3RyYW5zbGF0aW9uX3Rlc3RfY29uc3RydWN0X25vX3N0cmVhbSAodm9pZCkKLSt7 Ci0rICBpZiAoZ190ZXN0X3N1YnByb2Nlc3MgKCkpCi0rICAgIHsKLSsgICAgICBndWludDY0IHRy YW5zbGF0aW9uX3ZlcnNpb24gPSAxOwotKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWRUcmFuc2xh dGlvbikgdCA9IE5VTEw7Ci0rICAgICAgLy8gY2xhbmctZm9ybWF0IG9mZgotKyAgICAgIHQgPSBn X29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfVFJBTlNMQVRJT04sCi0rICAgICAgICAgICAgICAg ICAgICAgICAgInZlcnNpb24iLCB0cmFuc2xhdGlvbl92ZXJzaW9uLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICJtb2R1bGVfbmFtZSIsICJ0ZXN0bW9kIiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICBOVUxMKTsKLSsgICAgICAvLyBjbGFuZy1mb3JtYXQgb24KLSsgICAgICByZXR1cm47Ci0r ICAgIH0KLSsgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQUk9D RVNTX0RFRkFVTFQpOwotKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKLSB9Ci0gCi0g c3RhdGljIHZvaWQKLUBAIC00MTYsOCArNDMwLDE0IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICph cmd2W10pCi0gCi0gICAvLyBEZWZpbmUgdGhlIHRlc3RzLgotIAotLSAgZ190ZXN0X2FkZF9mdW5j ICgiL21vZHVsZW1kL3YyL3RyYW5zbGF0aW9uL2NvbnN0cnVjdCIsCi0tICAgICAgICAgICAgICAg ICAgIHRyYW5zbGF0aW9uX3Rlc3RfY29uc3RydWN0KTsKLSsgIGdfdGVzdF9hZGRfZnVuYyAoIi9t b2R1bGVtZC92Mi90cmFuc2xhdGlvbi9jb25zdHJ1Y3QvcmVndWxhciIsCi0rICAgICAgICAgICAg ICAgICAgIHRyYW5zbGF0aW9uX3Rlc3RfY29uc3RydWN0X3JlZ3VsYXIpOwotKyAgZ190ZXN0X2Fk ZF9mdW5jICgiL21vZHVsZW1kL3YyL3RyYW5zbGF0aW9uL2NvbnN0cnVjdC9ub192ZXJzaW9uIiwK LSsgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25fdGVzdF9jb25zdHJ1Y3Rfbm9fdmVyc2lv bik7Ci0rICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvdHJhbnNsYXRpb24vY29uc3Ry dWN0L25vX25hbWUiLAotKyAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbl90ZXN0X2NvbnN0 cnVjdF9ub19uYW1lKTsKLSsgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi90cmFuc2xh dGlvbi9jb25zdHJ1Y3Qvbm9fc3RyZWFtIiwKLSsgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRp b25fdGVzdF9jb25zdHJ1Y3Rfbm9fc3RyZWFtKTsKLSAKLSAgIGdfdGVzdF9hZGRfZnVuYyAoIi9t b2R1bGVtZC92Mi90cmFuc2xhdGlvbi9jb3B5IiwgdHJhbnNsYXRpb25fdGVzdF9jb3B5KTsKLSAK LS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQgYS9tb2R1bGVtZC0yLjE1LjItdGVzdHMtQWRhcHQt dG8tcHlnb2JqZWN0LTMuNTUuMC5wYXRjaCBiL21vZHVsZW1kLTIuMTUuMi10ZXN0cy1BZGFwdC10 by1weWdvYmplY3QtMy41NS4wLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2 YzRjNTE3Li4wMDAwMDAwCi0tLSBhL21vZHVsZW1kLTIuMTUuMi10ZXN0cy1BZGFwdC10by1weWdv YmplY3QtMy41NS4wLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTY3ICswLDAgQEAKLUZyb20g ZTMzZWNmMWNjMTUzODNiOTU2M2JjNGNkOWE2OTA4Mjc3YmY4MDM5ZCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9QZXRyPTIwUD1DMz1BRHNhPUM1PTk5Pz0gPHBwaXNh ckByZWRoYXQuY29tPgotRGF0ZTogVHVlLCAyNCBGZWIgMjAyNiAxMzozNToxNyArMDEwMAotU3Vi amVjdDogW1BBVENIXSB0ZXN0czogQWRhcHQgdG8gcHlnb2JqZWN0IDMuNTUuMAotCi1BZnRlciB1 cGdyYWRpbmcgcHlnb2JqZWN0IGZyb20gMy41NC41IHRvIDMuNTUuMiwgUHl0aG9uIHRlc3RzCi1l eHBlY3RpbmcgYSBwcm9jZXNzIGZhaWx1cmUgb24gc2V0dGluZyBhbiBpbW11dGFibGUKLShHX1BB UkFNX0NPTlNUUlVDVF9PTkxZKSBwcm9wZXJ0eSBzdGFydGVkIHRvIGZhaWwgbGlrZSB0aGlzOgot Ci0gICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgotICAgICAgRmlsZSAiL2hv bWUvdGVzdC9saWJtb2R1bGVtZC1kZXZlbC9yZWRoYXQtbGludXgtYnVpbGQvLi4vbW9kdWxlbWQv dGVzdHMvTW9kdWxlbWRUZXN0cy9kZWZhdWx0cy5weSIsIGxpbmUgMTE0LCBpbiB0ZXN0X21vZHVs ZV9uYW1lCi0Jc2VsZi5hc3NlcnRQcm9jZXNzRmFpbHVyZShfc2V0X21vZHVsZV9uYW1lX3RvX25v bmUsIGRlZnMpCi0Jfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eCi0gICAgICBGaWxlICIvaG9tZS90ZXN0L2xpYm1vZHVsZW1kLWRldmVsL21v ZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvYmFzZS5weSIsIGxpbmUgNjAsIGluIGFzc2VydFBy b2Nlc3NGYWlsdXJlCi0JY2FsbGFibGUoKmFyZ3MpCi0Jfn5+fn5+fn5eXl5eXl5eCi0gICAgICBG aWxlICIvaG9tZS90ZXN0L2xpYm1vZHVsZW1kLWRldmVsL3JlZGhhdC1saW51eC1idWlsZC8uLi9t b2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL2RlZmF1bHRzLnB5IiwgbGluZSA0MywgaW4gX3Nl dF9tb2R1bGVfbmFtZV90b19ub25lCi0JZGVmcy5wcm9wcy5tb2R1bGVfbmFtZSA9IE5vbmUKLQle Xl5eXl5eXl5eXl5eXl5eXl5eXl5eCi0gICAgVHlwZUVycm9yOiBwcm9wZXJ0eSAnbW9kdWxlLW5h bWUnIGNhbiBvbmx5IGJlIHNldCBpbiBjb25zdHJ1Y3RvcgotCi1UaGUgY2F1c2Ugd2FzIHRoYXQg cHlnb2JqZWN0LTMuNTUuMCBzdGFydGVkIHRvIHJhaXNlIGEgUHl0aG9uCi1UeXBlRXJyb3IgZXhj ZXB0aW9uIGluc3RlYWQgb2YgY2FsbGluZyBHbGliIGZ1bmN0aW9ucyB3aGljaCB3b3VsZCBmYWls Ci1vbiBpdHMgb3duIGRlcGVuZGluZyBvbiBHbGliIHdhcm5pbmcgZmF0YWxpdHkgYW5kIEdsaWIg dmVyc2lvbi4gQW4gZXhhbXBsZToKLQotICAgIGNhdCAvdG1wL3Rlc3QucHkKLSAgICAjIS91c3Iv YmluL3B5dGhvbjMKLQotICAgIGltcG9ydCBnaQotICAgIGdpLnJlcXVpcmVfdmVyc2lvbigiTW9k dWxlbWQiLCAiMi4wIikKLSAgICBmcm9tIGdpLnJlcG9zaXRvcnkgaW1wb3J0IE1vZHVsZW1kCi0K LSAgICBvYmplY3QgPSBNb2R1bGVtZC5EZWZhdWx0cy5uZXcoTW9kdWxlbWQuRGVmYXVsdHNWZXJz aW9uRW51bS5MQVRFU1QsICJmb28iKQotICAgIG9iamVjdC5wcm9wcy5tb2R1bGVfbmFtZSA9ICJi YXIiCi0KLUJlZm9yZToKLQotICAgICQgL3RtcC90ZXN0LnB5Ci0gICAgL3RtcC90ZXN0LnB5Ojg6 IFdhcm5pbmc6IGdfb2JqZWN0X3NldF9pc192YWxpZF9wcm9wZXJ0eTogY29uc3RydWN0IHByb3Bl cnR5ICJtb2R1bGUtbmFtZSIgZm9yIG9iamVjdCAnTW9kdWxlbWREZWZhdWx0c1YxJyBjYW4ndCBi ZSBzZXQgYWZ0ZXIgY29uc3RydWN0aW9uCi0gICAgICBvYmplY3QucHJvcHMubW9kdWxlX25hbWUg PSAiYmFyIgotCi1BZnRlcjoKLQotICAgICQgL3RtcC90ZXN0LnB5Ci0gICAgVHJhY2ViYWNrICht b3N0IHJlY2VudCBjYWxsIGxhc3QpOgotICAgICAgRmlsZSAiL3RtcC90ZXN0LnB5IiwgbGluZSA4 LCBpbiA8bW9kdWxlPgotCW9iamVjdC5wcm9wcy5tb2R1bGVfbmFtZSA9ICJiYXIiCi0JXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eCi0gICAgVHlwZUVycm9yOiBwcm9wZXJ0eSAnbW9kdWxlLW5hbWUn IGNhbiBvbmx5IGJlIHNldCBpbiBjb25zdHJ1Y3RvcgotCi1UaGF0IHdhcyBhbiBpbnRlbnRpb25h bCBjaGFuZ2UgaW4gcHlnb2JqZWN0Ci0zYjZlNDgwNGRlNGYyNmNmYjk0NzI2NjZmMThmNDRhYzcz MWQ4NzRjIGNvbW1pdCAoZ2k6IEZhY3RvciBvdXQKLXB5Z2lfc2V0X3Byb3BlcnR5X2d2YWx1ZV9m cm9tX3Byb3BlcnR5X2luZm8pLiBQcm9iYWJseSBhbgotb3B0aW1pemF0aW9uLgotCi1UaGlzIHBh dGNoIGFkanVzdHMgdGhlIHRlc3RzIHRvIHBhc3MgaWYgVHlwZUVycm9yIGV4Y2VwdGlvbiBpcyBy YWlzZWQKLXJlZ2FyZGxlc3Mgb2YgR2xpYiB3YXJuaW5nIGZhdGFsaXR5LgotCi1SZXNvbHZlczog aHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD0yNDQwNTcwCi0tLS0K LSBtb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL2Jhc2UucHkgICAgICAgICAgfCAzMCArKysr KysrKysrKysrKysrKysrCi0gbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9kZWZhdWx0cy5w eSAgICAgIHwgIDQgKystCi0gbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9wcm9maWxlLnB5 ICAgICAgIHwgIDQgKystCi0gbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9zZXJ2aWNlbGV2 ZWwucHkgIHwgIDIgKy0KLSAuLi4vdGVzdHMvTW9kdWxlbWRUZXN0cy90cmFuc2xhdGlvbmVudHJ5 LnB5ICAgfCAgMiArLQotIDUgZmlsZXMgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvYmFz ZS5weSBiL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvYmFzZS5weQotaW5kZXggNTVhYzc0 Mi4uMTZiOTBlMCAxMDA2NDQKLS0tLSBhL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvYmFz ZS5weQotKysrIGIvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9iYXNlLnB5Ci1AQCAtNjcs NiArNjcsMzYgQEAgY2xhc3MgVGVzdEJhc2UodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICAgICAg ICAgIGlmIG9zLldJRlNJR05BTEVEKHN0YXR1cyk6Ci0gICAgICAgICAgICAgICAgIHJhaXNlIEFz c2VydGlvbkVycm9yKCJDaGlsZCBwcm9jZXNzIHdhcyB1bmV4cGVjdGVkbHkgYWJvcnRlZCIpCi0g Ci0rICAgIGRlZiBhc3NlcnRUeXBlRXhjZXB0aW9uT3JQcm9jZXNzRmFpbHVyZShzZWxmLCBjYWxs YWJsZSwgKmFyZ3MpOgotKyAgICAgICAgIiIiQ2FsbHMgdGhlIGNhbGxhYmxlIGluIGEgc3VicHJv Y2VzcyBhbmQgY2hlY2tzIHRoYXQgdGhlIHByb2Nlc3MKLSsgICAgICAgIHJhaXNlZCBhIFR5cGVF cnJvciBleGNlcHRpb24sIG9yIHdhcyBraWxsZWQgZGVwZW5kaW5nIG9uIEdsaWIgd2FybmluZwot KyAgICAgICAgZmF0YWxpdHkuCi0rCi0rICAgICAgICBTaW5jZSBweWdvYmplY3QtMy41NS4wIHNl dHRpbmcgYSBHX1BBUkFNX0NPTlNUUlVDVF9PTkxZIHByb3BlcnR5Ci0rICAgICAgICByYWlzZXMg YSBQeXRob24gZXhjZXB0aW9uLiBPbGQgcHlnb2JqZWN0IGNvbnRpbnVlcyBkb3duIHRvIEdsaWIK LSsgICAgICAgIHdoaWNoIGtpbGxzIHRoZSBwcm9jZXNzIGlmIEdsaWIgd2FybmluZ3MgYSBmYXRh bCwgb3RoZXJ3aXNlIEdsaWIKLSsgICAgICAgIHdhcm5pbmcgaXMgcHJpbnRlZCBhbmQgdGhlIGNv ZGUgY29udGludWVzLgotKyAgICAgICAgIiIiCi0rICAgICAgICBwaWQgPSBvcy5mb3JrKCkKLSsg ICAgICAgIGlmIHBpZCA9PSAwOgotKyAgICAgICAgICAgIHRyeToKLSsgICAgICAgICAgICAgICAg Y2FsbGFibGUoKmFyZ3MpCi0rICAgICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKLSsgICAgICAg ICAgICAgICAgb3MuX2V4aXQoMSkKLSsgICAgICAgICAgICBvcy5fZXhpdCgwKQotKyAgICAgICAg Xywgc3RhdHVzID0gb3Mud2FpdHBpZChwaWQsIDApCi0rICAgICAgICBpZiBvcy5XSUZFWElURUQo c3RhdHVzKSBhbmQgb3MuV0VYSVRTVEFUVVMoc3RhdHVzKSA9PSAxOgotKyAgICAgICAgICAgIHJl dHVybgotKyAgICAgICAgaWYgc2VsZi53YXJuaW5nc19mYXRhbDoKLSsgICAgICAgICAgICBpZiBu b3Qgb3MuV0lGU0lHTkFMRUQoc3RhdHVzKToKLSsgICAgICAgICAgICAgICAgcmFpc2UgQXNzZXJ0 aW9uRXJyb3IoCi0rICAgICAgICAgICAgICAgICAgICAiQ2hpbGQgcHJvY2VzcyBkaWQgbm90IHJh aXNlIFR5cGVFcnJvciAiCi0rICAgICAgICAgICAgICAgICAgICAiZXhjZXB0aW9uIG9yIHdhcyBu b3QgYWJvcnRlZCIKLSsgICAgICAgICAgICAgICAgKQotKyAgICAgICAgZWxzZToKLSsgICAgICAg ICAgICBpZiBvcy5XSUZTSUdOQUxFRChzdGF0dXMpOgotKyAgICAgICAgICAgICAgICByYWlzZSBB c3NlcnRpb25FcnJvcigiQ2hpbGQgcHJvY2VzcyB3YXMgdW5leHBlY3RlZGx5IGFib3J0ZWQiKQot KwotICAgICBAcHJvcGVydHkKLSAgICAgZGVmIHdhcm5pbmdzX2ZhdGFsKHNlbGYpOgotICAgICAg ICAgZ2RlYnVnID0gb3MuZ2V0ZW52KCJHX0RFQlVHIiwgIiIpLnNwbGl0KCIsIikKLWRpZmYgLS1n aXQgYS9tb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL2RlZmF1bHRzLnB5IGIvbW9kdWxlbWQv dGVzdHMvTW9kdWxlbWRUZXN0cy9kZWZhdWx0cy5weQotaW5kZXggM2ExYjlmZS4uMmYyZWMwMiAx MDA2NDQKLS0tLSBhL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvZGVmYXVsdHMucHkKLSsr KyBiL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvZGVmYXVsdHMucHkKLUBAIC0xMTEsNyAr MTExLDkgQEAgY2xhc3MgVGVzdERlZmF1bHRzKFRlc3RCYXNlKToKLSAgICAgICAgIGFzc2VydCBk ZWZzLmdldF9tb2R1bGVfbmFtZSgpID09ICJmb28iCi0gCi0gICAgICAgICAjIEVuc3VyZSB3ZSBj YW5ub3Qgc2V0IHRoZSBtb2R1bGVfbmFtZQotLSAgICAgICAgc2VsZi5hc3NlcnRQcm9jZXNzRmFp bHVyZShfc2V0X21vZHVsZV9uYW1lX3RvX25vbmUsIGRlZnMpCi0rICAgICAgICBzZWxmLmFzc2Vy dFR5cGVFeGNlcHRpb25PclByb2Nlc3NGYWlsdXJlKAotKyAgICAgICAgICAgIF9zZXRfbW9kdWxl X25hbWVfdG9fbm9uZSwgZGVmcwotKyAgICAgICAgKQotIAotICAgICBkZWYgdGVzdF9tb2RpZmll ZChzZWxmKToKLSAgICAgICAgIGRlZnMgPSBNb2R1bGVtZC5EZWZhdWx0cy5uZXcoCi1kaWZmIC0t Z2l0IGEvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9wcm9maWxlLnB5IGIvbW9kdWxlbWQv dGVzdHMvTW9kdWxlbWRUZXN0cy9wcm9maWxlLnB5Ci1pbmRleCA3NjVjNTdkLi5mOGM3YjkzIDEw MDY0NAotLS0tIGEvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9wcm9maWxlLnB5Ci0rKysg Yi9tb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL3Byb2ZpbGUucHkKLUBAIC05NCw3ICs5NCw5 IEBAIGNsYXNzIFRlc3RQcm9maWxlKFRlc3RCYXNlKToKLSAgICAgICAgIGFzc2VydCBwLmdldF9u YW1lKCkgPT0gInRlc3Rwcm9maWxlIgotICAgICAgICAgYXNzZXJ0IHAucHJvcHMubmFtZSA9PSAi dGVzdHByb2ZpbGUiCi0gCi0tICAgICAgICBzZWxmLmFzc2VydFByb2Nlc3NGYWlsdXJlKF9zZXRf cHJvcHNfbmFtZSwgcCwgIm5vdGFkcmlsbCIpCi0rICAgICAgICBzZWxmLmFzc2VydFR5cGVFeGNl cHRpb25PclByb2Nlc3NGYWlsdXJlKAotKyAgICAgICAgICAgIF9zZXRfcHJvcHNfbmFtZSwgcCwg Im5vdGFkcmlsbCIKLSsgICAgICAgICkKLSAKLSAgICAgZGVmIHRlc3RfZ2V0X3NldF9kZXNjcmlw dGlvbihzZWxmKToKLSAgICAgICAgIHAgPSBNb2R1bGVtZC5Qcm9maWxlKG5hbWU9InRlc3Rwcm9m aWxlIikKLWRpZmYgLS1naXQgYS9tb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL3NlcnZpY2Vs ZXZlbC5weSBiL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvc2VydmljZWxldmVsLnB5Ci1p bmRleCBmYzljNjQ4Li43MTI4OWViIDEwMDY0NAotLS0tIGEvbW9kdWxlbWQvdGVzdHMvTW9kdWxl bWRUZXN0cy9zZXJ2aWNlbGV2ZWwucHkKLSsrKyBiL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVz dHMvc2VydmljZWxldmVsLnB5Ci1AQCAtMTAzLDcgKzEwMyw3IEBAIGNsYXNzIFRlc3RTZXJ2aWNl TGV2ZWwoVGVzdEJhc2UpOgotICAgICAgICAgYXNzZXJ0IHNsLnByb3BzLm5hbWUgPT0gImZvbyIK LSAKLSAgICAgICAgICMgVGhpcyBwcm9wZXJ0eSBpcyBub3Qgd3JpdGFibGUsIG1ha2Ugc3VyZSBp dCBmYWlscyB0byBhdHRlbXB0IGl0Ci0tICAgICAgICBzZWxmLmFzc2VydFByb2Nlc3NGYWlsdXJl KF9zZXRfcHJvcHNfbmFtZSwgc2wsICJiYXIiKQotKyAgICAgICAgc2VsZi5hc3NlcnRUeXBlRXhj ZXB0aW9uT3JQcm9jZXNzRmFpbHVyZShfc2V0X3Byb3BzX25hbWUsIHNsLCAiYmFyIikKLSAKLSAg ICAgZGVmIHRlc3RfZ2V0X3NldF9lb2woc2VsZik6Ci0gICAgICAgICBzbCA9IE1vZHVsZW1kLlNl cnZpY2VMZXZlbC5uZXcoImZvbyIpCi1kaWZmIC0tZ2l0IGEvbW9kdWxlbWQvdGVzdHMvTW9kdWxl bWRUZXN0cy90cmFuc2xhdGlvbmVudHJ5LnB5IGIvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0 cy90cmFuc2xhdGlvbmVudHJ5LnB5Ci1pbmRleCA5ZmNlNDQzLi42ODUzNDllIDEwMDY0NAotLS0t IGEvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy90cmFuc2xhdGlvbmVudHJ5LnB5Ci0rKysg Yi9tb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL3RyYW5zbGF0aW9uZW50cnkucHkKLUBAIC0x NzIsNyArMTcyLDcgQEAgY2xhc3MgVGVzdFRyYW5zbGF0aW9uRW50cnkoVGVzdEJhc2UpOgotICAg ICAgICAgYXNzZXJ0IHRlLmdldF9sb2NhbGUoKSA9PSAiZW5fVVMiCi0gICAgICAgICBhc3NlcnQg dGUucHJvcHMubG9jYWxlID09ICJlbl9VUyIKLSAKLS0gICAgICAgIHNlbGYuYXNzZXJ0UHJvY2Vz c0ZhaWx1cmUoX3NldF9sb2NhbGUsIHRlKQotKyAgICAgICAgc2VsZi5hc3NlcnRUeXBlRXhjZXB0 aW9uT3JQcm9jZXNzRmFpbHVyZShfc2V0X2xvY2FsZSwgdGUpCi0gCi0gICAgIGRlZiB0ZXN0X2dl dF9zZXRfc3VtbWFyeShzZWxmKToKLSAgICAgICAgIHRlID0gTW9kdWxlbWQuVHJhbnNsYXRpb25F bnRyeShsb2NhbGU9ImVuX1VTIikKLS0tIAotMi41My4wCi0KCmRpZmYgLS1naXQgYS9zb3VyY2Vz IGIvc291cmNlcwppbmRleCBhOTEyNTM4Li5jYjEwM2VkIDEwMDY0NAotLS0gYS9zb3VyY2VzCisr KyBiL3NvdXJjZXMKQEAgLTEsMiArMSwyIEBACi1TSEE1MTIgKG1vZHVsZW1kLTIuMTUuMi50YXIu eHopID0gZDE3ODVmNjk4MmVkMTkyOTIxMDNkNzQxZTNlOTQ1ODFlOTc4OTczN2JlNmY4ZTkwZDE5 MjE4Mjk2ZjNhZWI4N2Q2NTg5ZjMyNDc3NDRmOGVhYjRmNzE0ZDI5OGQxNTA4MzEyYjExOTYyNGE4 YzMyMDg2YzcyMGJlY2ZhNGNkYzUKLVNIQTUxMiAobW9kdWxlbWQtMi4xNS4yLnRhci54ei5hc2Mp ID0gMjgyZmYzNWYxNTQxOGU5NWFhZTA5ZDliZmY4MDg0YWEwYjZmMjczMmNlYTM5MzRhODRhMWJk NGRkZDhlNTBjODM3NTQ2NmFjYjZhMzlhNmU2MzJmNGJiYmVmZDQ5NzM1YjdmNTZlOTMwNGQ1MjUy MTc4NmUyNDVmNTJmZWFlMjQKK1NIQTUxMiAobW9kdWxlbWQtMi4xNS4zLnRhci54eikgPSBiOGMy ZjgwNTUzYjY2NzA0ZTgxMTdhNjYwOGNiZmMxYjFhNDdjYjhmMjYwNTAzMTkzYzU4YWZmNzAyYzJl MTFjZDc5Yjc5NTQ4MmQwYzlhOTUzYWI3M2U1M2VjYjgxMzM2ODJmZTJlOGEwNzU1ZWNhMWQ5OWI3 MThiYmNjZmRlMgorU0hBNTEyIChtb2R1bGVtZC0yLjE1LjMudGFyLnh6LmFzYykgPSBhYzA4Yzc5 YWQ2YWU1YmUyZTgwODViMmE1OTg4NDhjNDEyMWQyMWZlMjVhNWJkNjRjMDViMzZhNzU1OGQwN2Iy ZTU1ZmI0NjhhZTI2MzNhOGQ4ODAyMTJiM2M3MTExNjMyOTEwNzAzODFkMDQwODI3MDdkMDIzNmU1 OGUyMWU5Ygo=