From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 04/10] tools/insn-fuzz: Avoid making use of static data Date: Mon, 27 Mar 2017 10:56:32 +0100 Message-ID: <1490608598-11197-5-git-send-email-andrew.cooper3@citrix.com> References: <1490608598-11197-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1490608598-11197-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: George Dunlap , Andrew Cooper , Ian Jackson , Wei Liu , Jan Beulich List-Id: xen-devel@lists.xenproject.org QUZMIGhhcyBhIG1lYXN1cmUgb2Ygc3RhYmlsaXR5LCB3aGVyZSBpdCBwYXNzZXMgdGhlIHNhbWUg Y29ycHVzIGludG8gdGhlCmZ1enppbmcgaGFybmVzcyBhbmQgb2JzZXJ2ZXMgd2hldGhlciB0aGUg ZXhlY3V0aW9uIHBhdGggY2hhbmdlcyBmcm9tIGJlZm9yZS4KQW55IGluc3RhYmlsaXR5IGluIHRo ZSBmdXp6aW5nIGhhcm5lc3MgcmVkdWNlcyBpdHMgZWZmZWN0aXZlbmVzcywgYXMgYW4Kb2JzZXJ2 ZWQgY3Jhc2ggbWF5IG5vdCByZWxpYWJseSBiZSBjYXVzZWQgYnkgdGhlIG9yaWdpbmFsIGNvcnB1 cy4KCkluIHByZXBhcmF0aW9uIHRvIGZpeCBhIHN0YWJpbGl0eSBidWcsIGludHJvZHVjZSBzdHJ1 Y3QgZnV6el9zdGF0ZSwgYWxsb2NhdGVkCm9uIHRoZSBzdGFjayBhbmQgcGFzc2VkIGFyb3VuZCB2 aWEgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQncyBkYXRhIHBhcmFtZXRlci4KUHJvcGFnYXRlIGN0 eHQgaW50byB0aGUgaGVscGVycyBzdWNoIGFzIG1heWJlX2ZhaWwoKSwgc28gdGhlIHN0YXRlIGNh biBiZQpyZXRyaWV2ZWQuCgpNb3ZlIHRoZSBwcmV2aW91c2x5LXN0YXRpYyBkYXRhX3tpbmRleCxu dW19IGludG8gc3RydWN0IGZ1enpfc3RhdGUuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVy IDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGlj aEBzdXNlLmNvbT4KQ0M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNv bT4KQ0M6IElhbiBKYWNrc29uIDxJYW4uSmFja3NvbkBldS5jaXRyaXguY29tPgpDQzogV2VpIExp dSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tCiB0b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9l bXVsYXRvci9mdXp6LWVtdWwuYyB8IDE4MyArKysrKysrKysrKysrKystLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCAxMTggaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvdG9vbHMvZnV6ei94ODZfaW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmMgYi90b29s cy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9mdXp6LWVtdWwuYwppbmRleCBjYmRiM2Rk Li45MDcyNzViIDEwMDY0NAotLS0gYS90b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRv ci9mdXp6LWVtdWwuYworKysgYi90b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9m dXp6LWVtdWwuYwpAQCAtMjEsNyArMjEsOSBAQAogCiAjZGVmaW5lIFNFR19OVU0geDg2X3NlZ19u b25lCiAKLXN0cnVjdCBpbnB1dF9zdHJ1Y3QgeworLyogTGF5b3V0IG9mIGRhdGEgZXhwZWN0ZWQg YXMgZnV6emluZyBpbnB1dC4gKi8KK3N0cnVjdCBmdXp6X2NvcnB1cworewogICAgIHVuc2lnbmVk IGxvbmcgY3JbNV07CiAgICAgdWludDY0X3QgbXNyW01TUl9JTkRFWF9NQVhdOwogICAgIHN0cnVj dCBjcHVfdXNlcl9yZWdzIHJlZ3M7CkBAIC0yOSwxOSArMzEsMzYgQEAgc3RydWN0IGlucHV0X3N0 cnVjdCB7CiAgICAgdW5zaWduZWQgbG9uZyBvcHRpb25zOwogICAgIHVuc2lnbmVkIGNoYXIgZGF0 YVs0MDk2XTsKIH0gaW5wdXQ7Ci0jZGVmaW5lIERBVEFfT0ZGU0VUIG9mZnNldG9mKHN0cnVjdCBp bnB1dF9zdHJ1Y3QsIGRhdGEpCi1zdGF0aWMgdW5zaWduZWQgaW50IGRhdGFfaW5kZXg7Ci1zdGF0 aWMgdW5zaWduZWQgaW50IGRhdGFfbnVtOworI2RlZmluZSBEQVRBX09GRlNFVCBvZmZzZXRvZihz dHJ1Y3QgZnV6el9jb3JwdXMsIGRhdGEpCisKKy8qCisgKiBJbnRlcm5hbCBzdGF0ZSBvZiB0aGUg ZnV6emluZyBoYXJuZXNzLiAgQ2FsY3VsYXRlZCBpbml0aWFsbHkgZnJvbSB0aGUgaW5wdXQKKyAq IGNvcnB1cywgYW5kIGxhdGVyIG11dGF0ZXMgYnkgdGhlIGVtdWxhdGlvbiBjYWxsYmFja3MuCisg Ki8KK3N0cnVjdCBmdXp6X3N0YXRlCit7CisgICAgLyogRnV6emVyJ3MgaW5wdXQgZGF0YS4gKi8K KyAgICBzdHJ1Y3QgZnV6el9jb3JwdXMgKmNvcnB1czsKKworICAgIC8qIFJlYWwgYW1vdW50IG9m IGRhdGEgYmFja2luZyBjb3JwdXMtPmRhdGFbXS4gKi8KKyAgICBzaXplX3QgZGF0YV9udW07CisK KyAgICAvKiBBbW91bnQgb2YgY29ycHVzLT5kYXRhW10gY29uc3VtZWQgdGh1cyBmYXIuICovCisg ICAgc2l6ZV90IGRhdGFfaW5kZXg7Cit9OwogCiAvKgogICogUmFuZG9tbHkgcmV0dXJuIHN1Y2Nl c3Mgb3IgZmFpbHVyZSB3aGVuIHByb2Nlc3NpbmcgZGF0YS4gIElmCiAgKiBgZXhjZXB0aW9uYCBp cyBmYWxzZSwgdGhpcyBmdW5jdGlvbiB0dXJucyBfRVhDRVBUSU9OIHRvIF9PS0FZLgogICovCi1z dGF0aWMgaW50IG1heWJlX2ZhaWwoY29uc3QgY2hhciAqd2h5LCBib29sIGV4Y2VwdGlvbikKK3N0 YXRpYyBpbnQgbWF5YmVfZmFpbChzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCwKKyAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICp3aHksIGJvb2wgZXhjZXB0aW9uKQogeworICAg IHN0cnVjdCBmdXp6X3N0YXRlICpzID0gY3R4dC0+ZGF0YTsKKyAgICBjb25zdCBzdHJ1Y3QgZnV6 el9jb3JwdXMgKmMgPSBzLT5jb3JwdXM7CiAgICAgaW50IHJjOwogCi0gICAgaWYgKCBkYXRhX2lu ZGV4ID49IGRhdGFfbnVtICkKKyAgICBpZiAoIHMtPmRhdGFfaW5kZXggPj0gcy0+ZGF0YV9udW0g KQogICAgICAgICByYyA9IFg4NkVNVUxfRVhDRVBUSU9OOwogICAgIGVsc2UKICAgICB7CkBAIC01 MCwxMyArNjksMTMgQEAgc3RhdGljIGludCBtYXliZV9mYWlsKGNvbnN0IGNoYXIgKndoeSwgYm9v bCBleGNlcHRpb24pCiAgICAgICAgICAqIDI1JSB1bmhhbmRsYWJsZQogICAgICAgICAgKiAyNSUg ZXhjZXB0aW9uCiAgICAgICAgICAqLwotICAgICAgICBpZiAoIGlucHV0LmRhdGFbZGF0YV9pbmRl eF0gPiAweGMwICkKKyAgICAgICAgaWYgKCBjLT5kYXRhW3MtPmRhdGFfaW5kZXhdID4gMHhjMCAp CiAgICAgICAgICAgICByYyA9IFg4NkVNVUxfRVhDRVBUSU9OOwotICAgICAgICBlbHNlIGlmICgg aW5wdXQuZGF0YVtkYXRhX2luZGV4XSA+IDB4ODAgKQorICAgICAgICBlbHNlIGlmICggYy0+ZGF0 YVtzLT5kYXRhX2luZGV4XSA+IDB4ODAgKQogICAgICAgICAgICAgcmMgPSBYODZFTVVMX1VOSEFO RExFQUJMRTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmMgPSBYODZFTVVMX09LQVk7Ci0g ICAgICAgIGRhdGFfaW5kZXgrKzsKKyAgICAgICAgcy0+ZGF0YV9pbmRleCsrOwogICAgIH0KIAog ICAgIGlmICggcmMgPT0gWDg2RU1VTF9FWENFUFRJT04gJiYgIWV4Y2VwdGlvbiApCkBAIC02Nywy MCArODYsMjMgQEAgc3RhdGljIGludCBtYXliZV9mYWlsKGNvbnN0IGNoYXIgKndoeSwgYm9vbCBl eGNlcHRpb24pCiAgICAgcmV0dXJuIHJjOwogfQogCi1zdGF0aWMgaW50IGRhdGFfcmVhZChjb25z dCBjaGFyICp3aHksIHZvaWQgKmRzdCwgdW5zaWduZWQgaW50IGJ5dGVzKQorc3RhdGljIGludCBk YXRhX3JlYWQoc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQsCisgICAgICAgICAgICAgICAg ICAgICBjb25zdCBjaGFyICp3aHksIHZvaWQgKmRzdCwgdW5zaWduZWQgaW50IGJ5dGVzKQogewor ICAgIHN0cnVjdCBmdXp6X3N0YXRlICpzID0gY3R4dC0+ZGF0YTsKKyAgICBjb25zdCBzdHJ1Y3Qg ZnV6el9jb3JwdXMgKmMgPSBzLT5jb3JwdXM7CiAgICAgdW5zaWduZWQgaW50IGk7CiAgICAgaW50 IHJjOwogCi0gICAgaWYgKCBkYXRhX2luZGV4ICsgYnl0ZXMgPiBkYXRhX251bSApCisgICAgaWYg KCBzLT5kYXRhX2luZGV4ICsgYnl0ZXMgPiBzLT5kYXRhX251bSApCiAgICAgICAgIHJjID0gWDg2 RU1VTF9FWENFUFRJT047CiAgICAgZWxzZQotICAgICAgICByYyA9IG1heWJlX2ZhaWwod2h5LCB0 cnVlKTsKKyAgICAgICAgcmMgPSBtYXliZV9mYWlsKGN0eHQsIHdoeSwgdHJ1ZSk7CiAKICAgICBp ZiAoIHJjID09IFg4NkVNVUxfT0tBWSAmJiBieXRlcyApCiAgICAgewotICAgICAgICBtZW1jcHko ZHN0LCAgaW5wdXQuZGF0YSArIGRhdGFfaW5kZXgsIGJ5dGVzKTsKLSAgICAgICAgZGF0YV9pbmRl eCArPSBieXRlczsKKyAgICAgICAgbWVtY3B5KGRzdCwgJmMtPmRhdGFbcy0+ZGF0YV9pbmRleF0s IGJ5dGVzKTsKKyAgICAgICAgcy0+ZGF0YV9pbmRleCArPSBieXRlczsKIAogICAgICAgICBwcmlu dGYoIiVzOiAiLCB3aHkpOwogICAgICAgICBmb3IgKCBpID0gMDsgaSA8IGJ5dGVzOyBpKysgKQpA QCAtOTgsNyArMTIwLDcgQEAgc3RhdGljIGludCBmdXp6X3JlYWQoCiAgICAgdW5zaWduZWQgaW50 IGJ5dGVzLAogICAgIHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQogewotICAgIHJldHVy biBkYXRhX3JlYWQoInJlYWQiLCBwX2RhdGEsIGJ5dGVzKTsKKyAgICByZXR1cm4gZGF0YV9yZWFk KGN0eHQsICJyZWFkIiwgcF9kYXRhLCBieXRlcyk7CiB9CiAKIHN0YXRpYyBpbnQgZnV6el9yZWFk X2lvKApAQCAtMTA3LDcgKzEyOSw3IEBAIHN0YXRpYyBpbnQgZnV6el9yZWFkX2lvKAogICAgIHVu c2lnbmVkIGxvbmcgKnZhbCwKICAgICBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkKIHsK LSAgICByZXR1cm4gZGF0YV9yZWFkKCJyZWFkX2lvIiwgdmFsLCBieXRlcyk7CisgICAgcmV0dXJu IGRhdGFfcmVhZChjdHh0LCAicmVhZF9pbyIsIHZhbCwgYnl0ZXMpOwogfQogCiBzdGF0aWMgaW50 IGZ1enpfaW5zbl9mZXRjaCgKQEAgLTExNywxNSArMTM5LDE2IEBAIHN0YXRpYyBpbnQgZnV6el9p bnNuX2ZldGNoKAogICAgIHVuc2lnbmVkIGludCBieXRlcywKICAgICBzdHJ1Y3QgeDg2X2VtdWxh dGVfY3R4dCAqY3R4dCkKIHsKLSAgICByZXR1cm4gZGF0YV9yZWFkKCJpbnNuX2ZldGNoIiwgcF9k YXRhLCBieXRlcyk7CisgICAgcmV0dXJuIGRhdGFfcmVhZChjdHh0LCAiaW5zbl9mZXRjaCIsIHBf ZGF0YSwgYnl0ZXMpOwogfQogCi1zdGF0aWMgaW50IF9mdXp6X3JlcF9yZWFkKGNvbnN0IGNoYXIg KndoeSwgdW5zaWduZWQgbG9uZyAqcmVwcykKK3N0YXRpYyBpbnQgX2Z1enpfcmVwX3JlYWQoc3Ry dWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGNoYXIgKndoeSwgdW5zaWduZWQgbG9uZyAqcmVwcykKIHsKICAgICBpbnQgcmM7CiAgICAg dW5zaWduZWQgbG9uZyBieXRlc19yZWFkID0gMDsKIAotICAgIHJjID0gZGF0YV9yZWFkKHdoeSwg JmJ5dGVzX3JlYWQsIHNpemVvZihieXRlc19yZWFkKSk7CisgICAgcmMgPSBkYXRhX3JlYWQoY3R4 dCwgd2h5LCAmYnl0ZXNfcmVhZCwgc2l6ZW9mKGJ5dGVzX3JlYWQpKTsKIAogICAgIGlmICggYnl0 ZXNfcmVhZCA8PSAqcmVwcyApCiAgICAgICAgICpyZXBzID0gYnl0ZXNfcmVhZDsKQEAgLTE0Niw5 ICsxNjksMTAgQEAgc3RhdGljIGludCBfZnV6el9yZXBfcmVhZChjb25zdCBjaGFyICp3aHksIHVu c2lnbmVkIGxvbmcgKnJlcHMpCiAgICAgcmV0dXJuIHJjOwogfQogCi1zdGF0aWMgaW50IF9mdXp6 X3JlcF93cml0ZShjb25zdCBjaGFyICp3aHksIHVuc2lnbmVkIGxvbmcgKnJlcHMpCitzdGF0aWMg aW50IF9mdXp6X3JlcF93cml0ZShzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKndoeSwgdW5zaWduZWQgbG9uZyAqcmVw cykKIHsKLSAgICBpbnQgcmMgPSBtYXliZV9mYWlsKHdoeSwgdHJ1ZSk7CisgICAgaW50IHJjID0g bWF5YmVfZmFpbChjdHh0LCB3aHksIHRydWUpOwogCiAgICAgc3dpdGNoICggcmMgKQogICAgIHsK QEAgLTE3NCw3ICsxOTgsNyBAQCBzdGF0aWMgaW50IGZ1enpfcmVwX2lucygKICAgICB1bnNpZ25l ZCBsb25nICpyZXBzLAogICAgIHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQogewotICAg IHJldHVybiBfZnV6el9yZXBfcmVhZCgicmVwX2lucyIsIHJlcHMpOworICAgIHJldHVybiBfZnV6 el9yZXBfcmVhZChjdHh0LCAicmVwX2lucyIsIHJlcHMpOwogfQogCiBzdGF0aWMgaW50IGZ1enpf cmVwX21vdnMoCkBAIC0xODYsNyArMjEwLDcgQEAgc3RhdGljIGludCBmdXp6X3JlcF9tb3ZzKAog ICAgIHVuc2lnbmVkIGxvbmcgKnJlcHMsCiAgICAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0 eHQpCiB7Ci0gICAgcmV0dXJuIF9mdXp6X3JlcF9yZWFkKCJyZXBfbW92cyIsIHJlcHMpOworICAg IHJldHVybiBfZnV6el9yZXBfcmVhZChjdHh0LCAicmVwX21vdnMiLCByZXBzKTsKIH0KIAogc3Rh dGljIGludCBmdXp6X3JlcF9vdXRzKApAQCAtMTk3LDcgKzIyMSw3IEBAIHN0YXRpYyBpbnQgZnV6 el9yZXBfb3V0cygKICAgICB1bnNpZ25lZCBsb25nICpyZXBzLAogICAgIHN0cnVjdCB4ODZfZW11 bGF0ZV9jdHh0ICpjdHh0KQogewotICAgIHJldHVybiBfZnV6el9yZXBfd3JpdGUoInJlcF9vdXRz IiwgcmVwcyk7CisgICAgcmV0dXJuIF9mdXp6X3JlcF93cml0ZShjdHh0LCAicmVwX291dHMiLCBy ZXBzKTsKIH0KIAogc3RhdGljIGludCBmdXp6X3JlcF9zdG9zKApAQCAtMjA4LDcgKzIzMiw3IEBA IHN0YXRpYyBpbnQgZnV6el9yZXBfc3RvcygKICAgICB1bnNpZ25lZCBsb25nICpyZXBzLAogICAg IHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQogewotICAgIHJldHVybiBfZnV6el9yZXBf d3JpdGUoInJlcF9zdG9zIiwgcmVwcyk7CisgICAgcmV0dXJuIF9mdXp6X3JlcF93cml0ZShjdHh0 LCAicmVwX3N0b3MiLCByZXBzKTsKIH0KIAogc3RhdGljIGludCBmdXp6X3dyaXRlKApAQCAtMjE4 LDcgKzI0Miw3IEBAIHN0YXRpYyBpbnQgZnV6el93cml0ZSgKICAgICB1bnNpZ25lZCBpbnQgYnl0 ZXMsCiAgICAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpCiB7Ci0gICAgcmV0dXJuIG1h eWJlX2ZhaWwoIndyaXRlIiwgdHJ1ZSk7CisgICAgcmV0dXJuIG1heWJlX2ZhaWwoY3R4dCwgIndy aXRlIiwgdHJ1ZSk7CiB9CiAKIHN0YXRpYyBpbnQgZnV6el9jbXB4Y2hnKApAQCAtMjI5LDcgKzI1 Myw3IEBAIHN0YXRpYyBpbnQgZnV6el9jbXB4Y2hnKAogICAgIHVuc2lnbmVkIGludCBieXRlcywK ICAgICBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkKIHsKLSAgICByZXR1cm4gbWF5YmVf ZmFpbCgiY21weGNoZyIsIHRydWUpOworICAgIHJldHVybiBtYXliZV9mYWlsKGN0eHQsICJjbXB4 Y2hnIiwgdHJ1ZSk7CiB9CiAKIHN0YXRpYyBpbnQgZnV6el9pbnZscGcoCkBAIC0yMzcsMTMgKzI2 MSwxMyBAQCBzdGF0aWMgaW50IGZ1enpfaW52bHBnKAogICAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0 LAogICAgIHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQogewotICAgIHJldHVybiBtYXli ZV9mYWlsKCJpbnZscGciLCBmYWxzZSk7CisgICAgcmV0dXJuIG1heWJlX2ZhaWwoY3R4dCwgImlu dmxwZyIsIGZhbHNlKTsKIH0KIAogc3RhdGljIGludCBmdXp6X3diaW52ZCgKICAgICBzdHJ1Y3Qg eDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkKIHsKLSAgICByZXR1cm4gbWF5YmVfZmFpbCgid2JpbnZk IiwgdHJ1ZSk7CisgICAgcmV0dXJuIG1heWJlX2ZhaWwoY3R4dCwgIndiaW52ZCIsIHRydWUpOwog fQogCiBzdGF0aWMgaW50IGZ1enpfd3JpdGVfaW8oCkBAIC0yNTIsNyArMjc2LDcgQEAgc3RhdGlj IGludCBmdXp6X3dyaXRlX2lvKAogICAgIHVuc2lnbmVkIGxvbmcgdmFsLAogICAgIHN0cnVjdCB4 ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQogewotICAgIHJldHVybiBtYXliZV9mYWlsKCJ3cml0ZV9p byIsIHRydWUpOworICAgIHJldHVybiBtYXliZV9mYWlsKGN0eHQsICJ3cml0ZV9pbyIsIHRydWUp OwogfQogCiBzdGF0aWMgaW50IGZ1enpfcmVhZF9zZWdtZW50KApAQCAtMjYwLDEwICsyODQsMTMg QEAgc3RhdGljIGludCBmdXp6X3JlYWRfc2VnbWVudCgKICAgICBzdHJ1Y3Qgc2VnbWVudF9yZWdp c3RlciAqcmVnLAogICAgIHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQogeworICAgIHN0 cnVjdCBmdXp6X3N0YXRlICpzID0gY3R4dC0+ZGF0YTsKKyAgICBjb25zdCBzdHJ1Y3QgZnV6el9j b3JwdXMgKmMgPSBzLT5jb3JwdXM7CisKICAgICBpZiAoIHNlZyA+PSBTRUdfTlVNICkKICAgICAg ICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwogCi0gICAgKnJlZyA9IGlucHV0LnNlZ21l bnRzW3NlZ107CisgICAgKnJlZyA9IGMtPnNlZ21lbnRzW3NlZ107CiAKICAgICByZXR1cm4gWDg2 RU1VTF9PS0FZOwogfQpAQCAtMjczLDE1ICszMDAsMTcgQEAgc3RhdGljIGludCBmdXp6X3dyaXRl X3NlZ21lbnQoCiAgICAgY29uc3Qgc3RydWN0IHNlZ21lbnRfcmVnaXN0ZXIgKnJlZywKICAgICBz dHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkKIHsKKyAgICBzdHJ1Y3QgZnV6el9zdGF0ZSAq cyA9IGN0eHQtPmRhdGE7CisgICAgc3RydWN0IGZ1enpfY29ycHVzICpjID0gcy0+Y29ycHVzOwog ICAgIGludCByYzsKIAogICAgIGlmICggc2VnID49IFNFR19OVU0gKQogICAgICAgICByZXR1cm4g WDg2RU1VTF9VTkhBTkRMRUFCTEU7CiAKLSAgICByYyA9IG1heWJlX2ZhaWwoIndyaXRlX3NlZ21l bnQiLCB0cnVlKTsKKyAgICByYyA9IG1heWJlX2ZhaWwoY3R4dCwgIndyaXRlX3NlZ21lbnQiLCB0 cnVlKTsKIAogICAgIGlmICggcmMgPT0gWDg2RU1VTF9PS0FZICkKLSAgICAgICAgaW5wdXQuc2Vn bWVudHNbc2VnXSA9ICpyZWc7CisgICAgICAgIGMtPnNlZ21lbnRzW3NlZ10gPSAqcmVnOwogCiAg ICAgcmV0dXJuIHJjOwogfQpAQCAtMjkxLDEwICszMjAsMTMgQEAgc3RhdGljIGludCBmdXp6X3Jl YWRfY3IoCiAgICAgdW5zaWduZWQgbG9uZyAqdmFsLAogICAgIHN0cnVjdCB4ODZfZW11bGF0ZV9j dHh0ICpjdHh0KQogewotICAgIGlmICggcmVnID49IEFSUkFZX1NJWkUoaW5wdXQuY3IpICkKKyAg ICBzdHJ1Y3QgZnV6el9zdGF0ZSAqcyA9IGN0eHQtPmRhdGE7CisgICAgY29uc3Qgc3RydWN0IGZ1 enpfY29ycHVzICpjID0gcy0+Y29ycHVzOworCisgICAgaWYgKCByZWcgPj0gQVJSQVlfU0laRShj LT5jcikgKQogICAgICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFCTEU7CiAKLSAgICAqdmFs ID0gaW5wdXQuY3JbcmVnXTsKKyAgICAqdmFsID0gYy0+Y3JbcmVnXTsKIAogICAgIHJldHVybiBY ODZFTVVMX09LQVk7CiB9CkBAIC0zMDQsMTYgKzMzNiwxOCBAQCBzdGF0aWMgaW50IGZ1enpfd3Jp dGVfY3IoCiAgICAgdW5zaWduZWQgbG9uZyB2YWwsCiAgICAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0 eHQgKmN0eHQpCiB7CisgICAgc3RydWN0IGZ1enpfc3RhdGUgKnMgPSBjdHh0LT5kYXRhOworICAg IHN0cnVjdCBmdXp6X2NvcnB1cyAqYyA9IHMtPmNvcnB1czsKICAgICBpbnQgcmM7CiAKLSAgICBp ZiAoIHJlZyA+PSBBUlJBWV9TSVpFKGlucHV0LmNyKSApCisgICAgaWYgKCByZWcgPj0gQVJSQVlf U0laRShjLT5jcikgKQogICAgICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFCTEU7CiAKLSAg ICByYyA9IG1heWJlX2ZhaWwoIndyaXRlX2NyIiwgdHJ1ZSk7CisgICAgcmMgPSBtYXliZV9mYWls KGN0eHQsICJ3cml0ZV9jciIsIHRydWUpOwogICAgIGlmICggcmMgIT0gWDg2RU1VTF9PS0FZICkK ICAgICAgICAgcmV0dXJuIHJjOwogCi0gICAgaW5wdXQuY3JbcmVnXSA9IHZhbDsKKyAgICBjLT5j cltyZWddID0gdmFsOwogCiAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKIH0KQEAgLTM0NSw2ICsz NzksOCBAQCBzdGF0aWMgaW50IGZ1enpfcmVhZF9tc3IoCiAgICAgdWludDY0X3QgKnZhbCwKICAg ICBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkKIHsKKyAgICBzdHJ1Y3QgZnV6el9zdGF0 ZSAqcyA9IGN0eHQtPmRhdGE7CisgICAgY29uc3Qgc3RydWN0IGZ1enpfY29ycHVzICpjID0gcy0+ Y29ycHVzOwogICAgIHVuc2lnbmVkIGludCBpZHg7CiAKICAgICBzd2l0Y2ggKCByZWcgKQpAQCAt MzU2LDEyICszOTIsMTIgQEAgc3RhdGljIGludCBmdXp6X3JlYWRfbXNyKAogICAgICAgICAgKiBz aG91bGQgcHJlZmVyYWJseSByZXR1cm4gY29uc2lzdGVudCB2YWx1ZXMsIGJ1dCByZXR1cm5pbmcK ICAgICAgICAgICogcmFuZG9tIHZhbHVlcyBpcyBmaW5lIGluIGZ1enplci4KICAgICAgICAgICov Ci0gICAgICAgIHJldHVybiBkYXRhX3JlYWQoInJlYWRfbXNyIiwgdmFsLCBzaXplb2YoKnZhbCkp OworICAgICAgICByZXR1cm4gZGF0YV9yZWFkKGN0eHQsICJyZWFkX21zciIsIHZhbCwgc2l6ZW9m KCp2YWwpKTsKICAgICBjYXNlIE1TUl9FRkVSOgotICAgICAgICAqdmFsID0gaW5wdXQubXNyW01T UklfRUZFUl07CisgICAgICAgICp2YWwgPSBjLT5tc3JbTVNSSV9FRkVSXTsKICAgICAgICAgKnZh bCAmPSB+RUZFUl9MTUE7Ci0gICAgICAgIGlmICggKCp2YWwgJiBFRkVSX0xNRSkgJiYgKGlucHV0 LmNyWzRdICYgWDg2X0NSNF9QQUUpICYmCi0gICAgICAgICAgICAgKGlucHV0LmNyWzBdICYgWDg2 X0NSMF9QRykgKQorICAgICAgICBpZiAoICgqdmFsICYgRUZFUl9MTUUpICYmIChjLT5jcls0XSAm IFg4Nl9DUjRfUEFFKSAmJgorICAgICAgICAgICAgIChjLT5jclswXSAmIFg4Nl9DUjBfUEcpICkK ICAgICAgICAgewogICAgICAgICAgICAgcHJpbnRmKCJTZXR0aW5nIEVGRVJfTE1BXG4iKTsKICAg ICAgICAgICAgICp2YWwgfD0gRUZFUl9MTUE7CkBAIC0zNzMsNyArNDA5LDcgQEAgc3RhdGljIGlu dCBmdXp6X3JlYWRfbXNyKAogICAgIHsKICAgICAgICAgaWYgKCBtc3JfaW5kZXhbaWR4XSA9PSBy ZWcgKQogICAgICAgICB7Ci0gICAgICAgICAgICAqdmFsID0gaW5wdXQubXNyW2lkeF07CisgICAg ICAgICAgICAqdmFsID0gYy0+bXNyW2lkeF07CiAgICAgICAgICAgICByZXR1cm4gWDg2RU1VTF9P S0FZOwogICAgICAgICB9CiAgICAgfQpAQCAtMzg2LDEwICs0MjIsMTIgQEAgc3RhdGljIGludCBm dXp6X3dyaXRlX21zcigKICAgICB1aW50NjRfdCB2YWwsCiAgICAgc3RydWN0IHg4Nl9lbXVsYXRl X2N0eHQgKmN0eHQpCiB7CisgICAgc3RydWN0IGZ1enpfc3RhdGUgKnMgPSBjdHh0LT5kYXRhOwor ICAgIHN0cnVjdCBmdXp6X2NvcnB1cyAqYyA9IHMtPmNvcnB1czsKICAgICB1bnNpZ25lZCBpbnQg aWR4OwogICAgIGludCByYzsKIAotICAgIHJjID0gbWF5YmVfZmFpbCgid3JpdGVfbXNyIiwgdHJ1 ZSk7CisgICAgcmMgPSBtYXliZV9mYWlsKGN0eHQsICJ3cml0ZV9tc3IiLCB0cnVlKTsKICAgICBp ZiAoIHJjICE9IFg4NkVNVUxfT0tBWSApCiAgICAgICAgIHJldHVybiByYzsKIApAQCAtNDA0LDcg KzQ0Miw3IEBAIHN0YXRpYyBpbnQgZnV6el93cml0ZV9tc3IoCiAgICAgewogICAgICAgICBpZiAo IG1zcl9pbmRleFtpZHhdID09IHJlZyApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlucHV0Lm1z cltpZHhdID0gdmFsOworICAgICAgICAgICAgYy0+bXNyW2lkeF0gPSB2YWw7CiAgICAgICAgICAg ICByZXR1cm4gWDg2RU1VTF9PS0FZOwogICAgICAgICB9CiAgICAgfQpAQCAtNDUyLDE0ICs0OTAs MTYgQEAgc3RhdGljIHZvaWQgc2V0dXBfZnB1X2V4Y2VwdGlvbl9oYW5kbGVyKHZvaWQpCiAKIHN0 YXRpYyB2b2lkIGR1bXBfc3RhdGUoc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpCiB7Cisg ICAgc3RydWN0IGZ1enpfc3RhdGUgKnMgPSBjdHh0LT5kYXRhOworICAgIGNvbnN0IHN0cnVjdCBm dXp6X2NvcnB1cyAqYyA9IHMtPmNvcnB1czsKICAgICBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVn cyA9IGN0eHQtPnJlZ3M7CiAgICAgdWludDY0X3QgdmFsID0gMDsKIAogICAgIHByaW50ZigiIC0t IFN0YXRlIC0tIFxuIik7CiAgICAgcHJpbnRmKCJhZGRyIC8gc3Agc2l6ZTogJWQgLyAlZFxuIiwg Y3R4dC0+YWRkcl9zaXplLCBjdHh0LT5zcF9zaXplKTsKLSAgICBwcmludGYoIiBjcjA6ICVseFxu IiwgaW5wdXQuY3JbMF0pOwotICAgIHByaW50ZigiIGNyMzogJWx4XG4iLCBpbnB1dC5jclszXSk7 Ci0gICAgcHJpbnRmKCIgY3I0OiAlbHhcbiIsIGlucHV0LmNyWzRdKTsKKyAgICBwcmludGYoIiBj cjA6ICVseFxuIiwgYy0+Y3JbMF0pOworICAgIHByaW50ZigiIGNyMzogJWx4XG4iLCBjLT5jclsz XSk7CisgICAgcHJpbnRmKCIgY3I0OiAlbHhcbiIsIGMtPmNyWzRdKTsKIAogICAgIHByaW50Zigi IHJpcDogJSJQUkl4NjQiXG4iLCByZWdzLT5yaXApOwogCkBAIC00NzksMTcgKzUxOSwyMyBAQCBz dGF0aWMgYm9vbCBsb25nX21vZGVfYWN0aXZlKHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0 KQogCiBzdGF0aWMgYm9vbCBpbl9sb25nbW9kZShzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4 dCkKIHsKLSAgICByZXR1cm4gbG9uZ19tb2RlX2FjdGl2ZShjdHh0KSAmJiBpbnB1dC5zZWdtZW50 c1t4ODZfc2VnX2NzXS5hdHRyLmZpZWxkcy5sOworICAgIHN0cnVjdCBmdXp6X3N0YXRlICpzID0g Y3R4dC0+ZGF0YTsKKyAgICBjb25zdCBzdHJ1Y3QgZnV6el9jb3JwdXMgKmMgPSBzLT5jb3JwdXM7 CisKKyAgICByZXR1cm4gbG9uZ19tb2RlX2FjdGl2ZShjdHh0KSAmJiBjLT5zZWdtZW50c1t4ODZf c2VnX2NzXS5hdHRyLmZpZWxkcy5sOwogfQogCiBzdGF0aWMgdm9pZCBzZXRfc2l6ZXMoc3RydWN0 IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpCiB7CisgICAgc3RydWN0IGZ1enpfc3RhdGUgKnMgPSBj dHh0LT5kYXRhOworICAgIGNvbnN0IHN0cnVjdCBmdXp6X2NvcnB1cyAqYyA9IHMtPmNvcnB1czsK KwogICAgIGlmICggaW5fbG9uZ21vZGUoY3R4dCkgKQogICAgICAgICBjdHh0LT5hZGRyX3NpemUg PSBjdHh0LT5zcF9zaXplID0gNjQ7CiAgICAgZWxzZQogICAgIHsKLSAgICAgICAgY3R4dC0+YWRk cl9zaXplID0gaW5wdXQuc2VnbWVudHNbeDg2X3NlZ19jc10uYXR0ci5maWVsZHMuZGIgPyAzMiA6 IDE2OwotICAgICAgICBjdHh0LT5zcF9zaXplICAgPSBpbnB1dC5zZWdtZW50c1t4ODZfc2VnX3Nz XS5hdHRyLmZpZWxkcy5kYiA/IDMyIDogMTY7CisgICAgICAgIGN0eHQtPmFkZHJfc2l6ZSA9IGMt PnNlZ21lbnRzW3g4Nl9zZWdfY3NdLmF0dHIuZmllbGRzLmRiID8gMzIgOiAxNjsKKyAgICAgICAg Y3R4dC0+c3Bfc2l6ZSAgID0gYy0+c2VnbWVudHNbeDg2X3NlZ19zc10uYXR0ci5maWVsZHMuZGIg PyAzMiA6IDE2OwogICAgIH0KIH0KIApAQCAtNTUwLDkgKzU5NiwxMSBAQCBlbnVtIHsKICAgICAg ICAgcHJpbnRmKCJEaXNhYmxpbmcgaG9vayAiI2giXG4iKTsgICAgICAgICAgICAgICBcCiAgICAg fQogCi1zdGF0aWMgdm9pZCBkaXNhYmxlX2hvb2tzKHZvaWQpCitzdGF0aWMgdm9pZCBkaXNhYmxl X2hvb2tzKHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQogewotICAgIHVuc2lnbmVkIGxv bmcgYml0bWFwID0gaW5wdXQub3B0aW9uczsKKyAgICBzdHJ1Y3QgZnV6el9zdGF0ZSAqcyA9IGN0 eHQtPmRhdGE7CisgICAgY29uc3Qgc3RydWN0IGZ1enpfY29ycHVzICpjID0gcy0+Y29ycHVzOwor ICAgIHVuc2lnbmVkIGxvbmcgYml0bWFwID0gYy0+b3B0aW9uczsKIAogICAgIC8qIFNlZSBhbHNv IHNhbml0aXplX2lucHV0LCBzb21lIGhvb2tzIGNhbid0IGJlIGRpc2FibGVkLiAqLwogICAgIE1B WUJFX0RJU0FCTEVfSE9PSyhyZWFkKTsKQEAgLTU3OSw3ICs2MjcsOSBAQCBzdGF0aWMgdm9pZCBk aXNhYmxlX2hvb2tzKHZvaWQpCiAKIHN0YXRpYyB2b2lkIHNldF9zd2ludF9zdXBwb3J0KHN0cnVj dCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQogewotICAgIHVuc2lnbmVkIGludCBzd2ludF9vcHQg PSAoaW5wdXQub3B0aW9ucyA+PiBPUFRJT05fc3dpbnRfZW11bGF0aW9uKSAmIDM7CisgICAgc3Ry dWN0IGZ1enpfc3RhdGUgKnMgPSBjdHh0LT5kYXRhOworICAgIHN0cnVjdCBmdXp6X2NvcnB1cyAq YyA9IHMtPmNvcnB1czsKKyAgICB1bnNpZ25lZCBpbnQgc3dpbnRfb3B0ID0gKGMtPm9wdGlvbnMg Pj4gT1BUSU9OX3N3aW50X2VtdWxhdGlvbikgJiAzOwogICAgIHN0YXRpYyBjb25zdCBlbnVtIHg4 Nl9zd2ludF9lbXVsYXRpb24gbWFwWzRdID0gewogICAgICAgICB4ODZfc3dpbnRfZW11bGF0ZV9u b25lLAogICAgICAgICB4ODZfc3dpbnRfZW11bGF0ZV9ub25lLApAQCAtNjE0LDExICs2NjQsMTMg QEAgc3RhdGljIHZvaWQgc2V0X3N3aW50X3N1cHBvcnQoc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQg KmN0eHQpCiAgKi8KIHN0YXRpYyB2b2lkIHNhbml0aXplX2lucHV0KHN0cnVjdCB4ODZfZW11bGF0 ZV9jdHh0ICpjdHh0KQogewotICAgIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzID0gJmlucHV0 LnJlZ3M7Ci0gICAgdW5zaWduZWQgbG9uZyBiaXRtYXAgPSBpbnB1dC5vcHRpb25zOworICAgIHN0 cnVjdCBmdXp6X3N0YXRlICpzID0gY3R4dC0+ZGF0YTsKKyAgICBzdHJ1Y3QgZnV6el9jb3JwdXMg KmMgPSBzLT5jb3JwdXM7CisgICAgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MgPSAmYy0+cmVn czsKKyAgICB1bnNpZ25lZCBsb25nIGJpdG1hcCA9IGMtPm9wdGlvbnM7CiAKICAgICAvKiBTb21l IGhvb2tzIGNhbid0IGJlIGRpc2FibGVkLiAqLwotICAgIGlucHV0Lm9wdGlvbnMgJj0gfigoMTw8 SE9PS19yZWFkKXwoMTw8SE9PS19pbnNuX2ZldGNoKSk7CisgICAgYy0+b3B0aW9ucyAmPSB+KCgx PDxIT09LX3JlYWQpfCgxPDxIT09LX2luc25fZmV0Y2gpKTsKIAogICAgIC8qIFplcm8gJ3ByaXZh dGUnIGVudHJpZXMgKi8KICAgICByZWdzLT5lcnJvcl9jb2RlID0gMDsKQEAgLTYzMiw4ICs2ODQs OCBAQCBzdGF0aWMgdm9pZCBzYW5pdGl6ZV9pbnB1dChzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAq Y3R4dCkKICAgICAgKiBDUjAuUEcgY2FuJ3QgYmUgc2V0IGlmIENSMC5QRSBpc24ndCBzZXQuICBT ZXQgaXMgbW9yZSBpbnRlcmVzdGluZywgc28KICAgICAgKiBzZXQgUEUgaWYgUEcgaXMgc2V0Lgog ICAgICAqLwotICAgIGlmICggaW5wdXQuY3JbMF0gJiBYODZfQ1IwX1BHICkKLSAgICAgICAgaW5w dXQuY3JbMF0gfD0gWDg2X0NSMF9QRTsKKyAgICBpZiAoIGMtPmNyWzBdICYgWDg2X0NSMF9QRyAp CisgICAgICAgIGMtPmNyWzBdIHw9IFg4Nl9DUjBfUEU7CiAKICAgICAvKiBFRkxBR1MuVk0gbm90 IGF2YWlsYWJsZSBpbiBsb25nIG1vZGUgKi8KICAgICBpZiAoIGxvbmdfbW9kZV9hY3RpdmUoY3R4 dCkgKQpAQCAtNjQyLDggKzY5NCw4IEBAIHN0YXRpYyB2b2lkIHNhbml0aXplX2lucHV0KHN0cnVj dCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQogICAgIC8qIEVGTEFHUy5WTSBpbXBsaWVzIDE2LWJp dCBtb2RlICovCiAgICAgaWYgKCByZWdzLT5yZmxhZ3MgJiBYODZfRUZMQUdTX1ZNICkKICAgICB7 Ci0gICAgICAgIGlucHV0LnNlZ21lbnRzW3g4Nl9zZWdfY3NdLmF0dHIuZmllbGRzLmRiID0gMDsK LSAgICAgICAgaW5wdXQuc2VnbWVudHNbeDg2X3NlZ19zc10uYXR0ci5maWVsZHMuZGIgPSAwOwor ICAgICAgICBjLT5zZWdtZW50c1t4ODZfc2VnX2NzXS5hdHRyLmZpZWxkcy5kYiA9IDA7CisgICAg ICAgIGMtPnNlZ21lbnRzW3g4Nl9zZWdfc3NdLmF0dHIuZmllbGRzLmRiID0gMDsKICAgICB9CiB9 CiAKQEAgLTY2MSw3ICs3MTMsOSBAQCBpbnQgTExWTUZ1enplckluaXRpYWxpemUoaW50ICphcmdj LCBjaGFyICoqKmFyZ3YpCiBpbnQgTExWTUZ1enplclRlc3RPbmVJbnB1dChjb25zdCB1aW50OF90 ICpkYXRhX3AsIHNpemVfdCBzaXplKQogewogICAgIHN0cnVjdCBjcHVfdXNlcl9yZWdzIHJlZ3Mg PSB7fTsKKyAgICBzdHJ1Y3QgZnV6el9zdGF0ZSBzdGF0ZSA9IHt9OwogICAgIHN0cnVjdCB4ODZf ZW11bGF0ZV9jdHh0IGN0eHQgPSB7CisgICAgICAgIC5kYXRhID0gJnN0YXRlLAogICAgICAgICAu cmVncyA9ICZyZWdzLAogICAgICAgICAuYWRkcl9zaXplID0gOCAqIHNpemVvZih2b2lkICopLAog ICAgICAgICAuc3Bfc2l6ZSA9IDggKiBzaXplb2Yodm9pZCAqKSwKQEAgLTY3MCw4ICs3MjQsNiBA QCBpbnQgTExWTUZ1enplclRlc3RPbmVJbnB1dChjb25zdCB1aW50OF90ICpkYXRhX3AsIHNpemVf dCBzaXplKQogCiAgICAgLyogUmVzZXQgYWxsIGdsb2JhbCBzdGF0ZSB2YXJpYWJsZXMgKi8KICAg ICBtZW1zZXQoJmlucHV0LCAwLCBzaXplb2YoaW5wdXQpKTsKLSAgICBkYXRhX2luZGV4ID0gMDsK LSAgICBkYXRhX251bSA9IDA7CiAKICAgICBpZiAoIHNpemUgPD0gREFUQV9PRkZTRVQgKQogICAg IHsKQEAgLTY4NywxMSArNzM5LDEyIEBAIGludCBMTFZNRnV6emVyVGVzdE9uZUlucHV0KGNvbnN0 IHVpbnQ4X3QgKmRhdGFfcCwgc2l6ZV90IHNpemUpCiAKICAgICBtZW1jcHkoJmlucHV0LCBkYXRh X3AsIHNpemUpOwogCi0gICAgZGF0YV9udW0gPSBzaXplIC0gREFUQV9PRkZTRVQ7CisgICAgc3Rh dGUuY29ycHVzID0gJmlucHV0OworICAgIHN0YXRlLmRhdGFfbnVtID0gc2l6ZSAtIERBVEFfT0ZG U0VUOwogCiAgICAgc2FuaXRpemVfaW5wdXQoJmN0eHQpOwogCi0gICAgZGlzYWJsZV9ob29rcygp OworICAgIGRpc2FibGVfaG9va3MoJmN0eHQpOwogCiAgICAgc2V0X3N3aW50X3N1cHBvcnQoJmN0 eHQpOwogCi0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcK aHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=