From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Leonard Subject: [PATCH ARM v5 20/20] mini-os: arm: show registers, stack and exception vector on fault Date: Thu, 26 Jun 2014 12:28:37 +0100 Message-ID: <1403782117-15125-21-git-send-email-talex5@gmail.com> References: <1403782117-15125-1-git-send-email-talex5@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta4.messagelabs.com ([85.158.143.247]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1X07rn-0004ks-Cx for xen-devel@lists.xenproject.org; Thu, 26 Jun 2014 11:29:23 +0000 Received: by mail-wi0-f179.google.com with SMTP id cc10so849197wib.0 for ; Thu, 26 Jun 2014 04:29:21 -0700 (PDT) In-Reply-To: <1403782117-15125-1-git-send-email-talex5@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xenproject.org Cc: Thomas Leonard , Dave.Scott@eu.citrix.com, anil@recoil.org, stefano.stabellini@eu.citrix.com, samuel.thibault@ens-lyon.org List-Id: xen-devel@lists.xenproject.org U2lnbmVkLW9mZi1ieTogVGhvbWFzIExlb25hcmQgPHRhbGV4NUBnbWFpbC5jb20+Ci0tLQogZXh0 cmFzL21pbmktb3MvQVJNLVRPRE8udHh0ICAgICB8ICAxIC0KIGV4dHJhcy9taW5pLW9zL2FyY2gv YXJtL2FybTMyLlMgfCA4MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KIGV4dHJh cy9taW5pLW9zL2FyY2gvYXJtL3BhbmljLmMgfCA5OSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogZXh0cmFzL21pbmktb3MvaW5jbHVkZS9hcm0vb3MuaCB8ICAyICst CiA0IGZpbGVzIGNoYW5nZWQsIDE3MyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGV4dHJhcy9taW5pLW9zL2FyY2gvYXJtL3BhbmljLmMKCmRpZmYgLS1n aXQgYS9leHRyYXMvbWluaS1vcy9BUk0tVE9ETy50eHQgYi9leHRyYXMvbWluaS1vcy9BUk0tVE9E Ty50eHQKaW5kZXggYzg1ZWU1Yi4uMjc1MDdjZCAxMDA2NDQKLS0tIGEvZXh0cmFzL21pbmktb3Mv QVJNLVRPRE8udHh0CisrKyBiL2V4dHJhcy9taW5pLW9zL0FSTS1UT0RPLnR4dApAQCAtMSw0ICsx LDMgQEAKLSogc3VwcG9ydCBhYm9ydCBleGNlcHRpb24gaGFuZGxpbmcgKCBhbmQgb3RoZXJzICkK ICogZ2ljIHJlcXVlc3RfaXJxIGltcGxlbWVudGF0aW9uLCBjdXJyZW50bHkgYWxsIElSUXMgYWxs IGhhcmRjb2RlZCBpbiBnaWMgaXJxIGhhbmRsZXIuCiAqIGJpbmRfKgogKiBhZGQgbXVsdGlwbGUg Y3B1IHN1cHBvcnQgKD8pCmRpZmYgLS1naXQgYS9leHRyYXMvbWluaS1vcy9hcmNoL2FybS9hcm0z Mi5TIGIvZXh0cmFzL21pbmktb3MvYXJjaC9hcm0vYXJtMzIuUwppbmRleCBkZTc0ZWQ5Li4xNzMz OTM2IDEwMDY0NAotLS0gYS9leHRyYXMvbWluaS1vcy9hcmNoL2FybS9hcm0zMi5TCisrKyBiL2V4 dHJhcy9taW5pLW9zL2FyY2gvYXJtL2FybTMyLlMKQEAgLTE4NiwxMSArMTg2LDE0IEBAIHNoYXJl ZF9pbmZvX3BhZ2U6CiAKIC5hbGlnbiAzCiAuZ2xvYmwgc3RhY2sKKy5nbG9ibCBzdGFja19lbmQK IHN0YWNrOgogCS5maWxsICg0KjEwMjQpLCA0LCAweDAKIHN0YWNrX2VuZDoKIAogLmFsaWduIDMK Ky5nbG9ibCBpcnFzdGFjaworLmdsb2JsIGlycXN0YWNrX2VuZAogaXJxc3RhY2s6CiAJLmZpbGwg KDEwMjQpLCA0LCAweDAKIGlycXN0YWNrX2VuZDoKQEAgLTE5OSw4ICsyMDIsNzEgQEAgaXJxc3Rh Y2tfZW5kOgogcGh5c2ljYWxfYWRkcmVzc19vZmZzZXQ6CiAJLmxvbmcgCTAKIAorZmF1bHRfZHVt cDoKKwkuZmlsbCAxOCwgNCwgMHgwCQlAIE9uIGZhdWx0LCB3ZSBzYXZlIHRoZSByZWdpc3RlcnMg KyBDUFNSICsgaGFuZGxlciBhZGRyZXNzCisKIC5wb3BzZWN0aW9uCiAKK2ZhdWx0OgorCWNwc2lk CWFpZgkJCUAgRGlzYWJsZSBpbnRlcnJ1cHRzCisKKwlsZHIJcjEzLCA9ZmF1bHRfZHVtcAorCXN0 bWlhCXIxMywge3IwLXIxMn0JCUAgRHVtcCB0aGUgbm9uLWJhbmtlZCByZWdpc3RlcnMgZGlyZWN0 bHkgKHdlbGwsIHVubGVzcyBmcm9tIEZJUSBtb2RlKQorCXN0cglyMTQsIFtyMTMsICMxNSA8PCAy XQlAIE91ciByMTQgaXMgdGhlIGZhdWx0aW5nIHIxNQorCW1vdglyMCwgcjEzCisKKwlAIFNhdmUg dGhlIGNhbGxlcidzIENQU1IgKG91ciBTUFNSKSB0b28uCisJbXJzCXIxLCBTUFNSCisJc3RyCXIx LCBbcjEzLCAjMTYgPDwgMl0KKworCUAgU3dpdGNoIHRvIHRoZSBtb2RlIHdlIGNhbWUgZnJvbSB0 byBnZXQgcjEzIGFuZCByMTQuCisJQCBJZiBjb21pbmcgZnJvbSB1c2VyIG1vZGUsIHVzZSBTeXN0 ZW0gbW9kZSBpbnN0ZWFkIHNvIHdlJ3JlIHN0aWxsCisJQCBwcml2aWxlZ2VkLgorCWFuZAlyMSwg cjEsICMweDFmCQlAIHIxID0gU1BTUiBtb2RlCisJY21wCXIxLCAjMHgxMAkJQCBJZiBmcm9tIFVz ZXIgbW9kZQorCW1vdmVxCXIxLCAjMHgxZgkJQCBUaGVuIHVzZSBTeXN0ZW0gbW9kZSBpbnN0ZWFk CisKKwltcnMJcjMsIENQU1IJCUAgcjMgPSBvdXIgQ1BTUgorCWJpYwlyMiwgcjMsICMweDFmCisJ b3JyCXIyLCByMiwgcjEKKwltc3IJQ1BTUiwgcjIJCUAgQ2hhbmdlIHRvIG1vZGUgcjEKKworCUAg U2F2ZSBvbGQgbW9kZSdzIHIxMywgcjE0CisJc3RyCXIxMywgW3IwLCAjMTMgPDwgMl0KKwlzdHIJ cjE0LCBbcjAsICMxNCA8PCAyXQorCisJbXNyCUNQU1IsIHIzCQlAIEJhY2sgdG8gZmF1bHQgbW9k ZQorCisJbGRyCXIxLCBbcjAsICMxNyA8PCAyXQorCXN1YglyMSwgcjEsICMxMgkJQCBGaXggdG8g cG9pbnQgYXQgc3RhcnQgb2YgaGFuZGxlcgorCXN0cglyMSwgW3IwLCAjMTcgPDwgMl0KKworCUAg Q2FsbCBDIGNvZGUgdG8gZm9ybWF0IHRoZSByZWdpc3RlciBkdW1wLgorCUAgQ2xvYmJlcnMgdGhl IHN0YWNrLCBidXQgd2UncmUgbm90IGdvaW5nIHRvIHJldHVybiBhbnl3YXkuCisJbGRyCXIxMywg PXN0YWNrX2VuZAorCWJsCWR1bXBfcmVnaXN0ZXJzCisxOgorCXdmaQorCWIJMWIKKworQCBXZSB3 YW50IHRvIHN0b3JlIGEgdW5pcXVlIHZhbHVlIHRvIGlkZW50aWZ5IHRoaXMgaGFuZGxlciwgd2l0 aG91dCBjb3JydXB0aW5nCitAIGFueSBvZiB0aGUgcmVnaXN0ZXJzLiBTbywgd2Ugc3RvcmUgcjE1 ICh3aGljaCB3aWxsIHBvaW50IGp1c3QgYWZ0ZXIgdGhlIGJyYW5jaCkuCitAIExhdGVyLCB3ZSBz dWJ0cmFjdCAxMiBzbyB0aGUgdXNlciBnZXRzIHBvaW50ZWQgYXQgdGhlIHN0YXJ0IG9mIHRoZSBl eGNlcHRpb24KK0AgaGFuZGxlci4KKyNkZWZpbmUgRkFVTFQobmFtZSkJCQlcCisuZ2xvYmwgZmF1 bHRfIyNuYW1lOwkJCVwKK2ZhdWx0XyMjbmFtZToJCQkJXAorCWxkcglyMTMsID1mYXVsdF9kdW1w OwlcCisJc3RyCXIxNSwgW3IxMywgIzE3IDw8IDJdOwlcCisJYglmYXVsdAorCitGQVVMVChyZXNl dCkKK0ZBVUxUKHVuZGVmaW5lZF9pbnN0cnVjdGlvbikKK0ZBVUxUKHN2YykKK0ZBVUxUKHByZWZl dGNoX2NhbGwpCitGQVVMVChwcmVmZXRjaF9hYm9ydCkKK0ZBVUxUKGRhdGFfYWJvcnQpCisKIEAg ZXhjZXB0aW9uIGJhc2UgYWRkcmVzcwogLmFsaWduIDUKIC5nbG9ibCBleGNlcHRpb25fdmVjdG9y X3RhYmxlCkBAIC0yMTAsMTMgKzI3NiwxMyBAQCBwaHlzaWNhbF9hZGRyZXNzX29mZnNldDoKIEAg IGluc3RydWN0aW9uIHRvIGNsZWFyIGFuIGV4aXN0aW5nIHRhZyBpcyByZXF1aXJlZCBvbiBjb250 ZXh0IHN3aXRjaGVzLiIKIEAgLS0gQVJNIENvcnRleC1BIFNlcmllcyBQcm9ncmFtbWVy4oCZcyBH dWlkZSAoVmVyc2lvbjogNC4wKQogZXhjZXB0aW9uX3ZlY3Rvcl90YWJsZToKLQliCS4gQCByZXNl dAotCWIJLiBAIHVuZGVmaW5lZCBpbnN0cnVjdGlvbgotCWIJLiBAIHN1cGVydmlzb3IgY2FsbAot CWIJLiBAIHByZWZldGNoIGNhbGwKLQliCS4gQCBwcmVmZXRjaCBhYm9ydAotCWIJLiBAIGRhdGEg YWJvcnQKLQliCWlycV9oYW5kbGVyIEAgaXJxCisJYglmYXVsdF9yZXNldAorCWIJZmF1bHRfdW5k ZWZpbmVkX2luc3RydWN0aW9uCisJYglmYXVsdF9zdmMKKwliCWZhdWx0X3ByZWZldGNoX2NhbGwK KwliCWZhdWx0X3ByZWZldGNoX2Fib3J0CisJYglmYXVsdF9kYXRhX2Fib3J0CisJYglpcnFfaGFu ZGxlciBAIElSUQogCS53b3JkIDB4ZTdmMDAwZjAgICAgQCBhYm9ydCBvbiBGSVEKIAogaXJxX2hh bmRsZXI6CmRpZmYgLS1naXQgYS9leHRyYXMvbWluaS1vcy9hcmNoL2FybS9wYW5pYy5jIGIvZXh0 cmFzL21pbmktb3MvYXJjaC9hcm0vcGFuaWMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi4xMjczNWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvZXh0cmFzL21pbmktb3MvYXJjaC9h cm0vcGFuaWMuYwpAQCAtMCwwICsxLDk5IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBw YW5pYy5jCisgKgorICogRGlzcGxheXMgYSByZWdpc3RlciBkdW1wIGFuZCBzdGFjayB0cmFjZSBm b3IgZGVidWdnaW5nLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAxNCwgVGhvbWFzIExlb25hcmQK KyAqIAorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv IGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNz b2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFs IGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBs aW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVi bGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0 aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBp cworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0 aW9uczoKKyAqIAorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz c2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3Rh bnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICogCisgKiBUSEUgU09GVFdBUkUgSVMg UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP UiAKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJ RVMgT0YgTUVSQ0hBTlRBQklMSVRZLCAKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSAKKyAqIEFVVEhP UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMg T1IgT1RIRVIgCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU LCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyAKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05O RUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgCisgKiBERUFMSU5H UyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2luY2x1ZGUgPG1pbmktb3Mvb3MuaD4KKyNpbmNs dWRlIDxhcmNoX21tLmg+CisKK2V4dGVybiBpbnQgc3RhY2tbXTsKK2V4dGVybiBpbnQgc3RhY2tf ZW5kW107CitleHRlcm4gaW50IGlycXN0YWNrW107CitleHRlcm4gaW50IGlycXN0YWNrX2VuZFtd OworCit0eXBlZGVmIHZvaWQgaGFuZGxlcih2b2lkKTsKKworZXh0ZXJuIGhhbmRsZXIgZmF1bHRf cmVzZXQ7CitleHRlcm4gaGFuZGxlciBmYXVsdF91bmRlZmluZWRfaW5zdHJ1Y3Rpb247CitleHRl cm4gaGFuZGxlciBmYXVsdF9zdmM7CitleHRlcm4gaGFuZGxlciBmYXVsdF9wcmVmZXRjaF9jYWxs OworZXh0ZXJuIGhhbmRsZXIgZmF1bHRfcHJlZmV0Y2hfYWJvcnQ7CitleHRlcm4gaGFuZGxlciBm YXVsdF9kYXRhX2Fib3J0OworCit2b2lkIGR1bXBfcmVnaXN0ZXJzKGludCAqc2F2ZWRfcmVnaXN0 ZXJzKSB7CisgICAgc3RhdGljIGludCBpbl9kdW1wID0gMDsKKyAgICBpbnQgKnNwLCAqc3RhY2tf dG9wLCAqeDsKKyAgICBjaGFyICpmYXVsdF9uYW1lOworICAgIHZvaWQgKmZhdWx0X2hhbmRsZXI7 CisgICAgaW50IGk7CisKKyAgICBpZiAoaW5fZHVtcCkKKyAgICB7CisgICAgICAgIHByaW50aygi Q3Jhc2ggd2hpbGUgaW4gZHVtcF9yZWdpc3RlcnMhIE5vdCBnZW5lcmF0aW5nIGEgc2Vjb25kIHJl cG9ydC5cbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaW5fZHVtcCA9IDE7CisK KyAgICBmYXVsdF9oYW5kbGVyID0gKGhhbmRsZXIgKikgc2F2ZWRfcmVnaXN0ZXJzWzE3XTsKKyAg ICBpZiAoZmF1bHRfaGFuZGxlciA9PSBmYXVsdF9yZXNldCkKKyAgICAgICAgZmF1bHRfbmFtZSA9 ICJyZXNldCI7CisgICAgZWxzZSBpZiAoZmF1bHRfaGFuZGxlciA9PSBmYXVsdF91bmRlZmluZWRf aW5zdHJ1Y3Rpb24pCisgICAgICAgIGZhdWx0X25hbWUgPSAidW5kZWZpbmVkX2luc3RydWN0aW9u IjsKKyAgICBlbHNlIGlmIChmYXVsdF9oYW5kbGVyID09IGZhdWx0X3N2YykKKyAgICAgICAgZmF1 bHRfbmFtZSA9ICJzdmMiOworICAgIGVsc2UgaWYgKGZhdWx0X2hhbmRsZXIgPT0gZmF1bHRfcHJl ZmV0Y2hfY2FsbCkKKyAgICAgICAgZmF1bHRfbmFtZSA9ICJwcmVmZXRjaF9jYWxsIjsKKyAgICBl bHNlIGlmIChmYXVsdF9oYW5kbGVyID09IGZhdWx0X3ByZWZldGNoX2Fib3J0KQorICAgICAgICBm YXVsdF9uYW1lID0gInByZWZldGNoX2Fib3J0IjsKKyAgICBlbHNlIGlmIChmYXVsdF9oYW5kbGVy ID09IGZhdWx0X2RhdGFfYWJvcnQpCisgICAgICAgIGZhdWx0X25hbWUgPSAiZGF0YV9hYm9ydCI7 CisgICAgZWxzZQorICAgICAgICBmYXVsdF9uYW1lID0gInVua25vd24gZmF1bHQgdHlwZSEiOwor CisgICAgcHJpbnRrKCJGYXVsdCBoYW5kbGVyIGF0ICV4IGNhbGxlZCAoJXMpXG4iLCBmYXVsdF9o YW5kbGVyLCBmYXVsdF9uYW1lKTsKKworICAgIGZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7Cisg ICAgICAgIHByaW50aygiciVkID0gJXhcbiIsIGksIHNhdmVkX3JlZ2lzdGVyc1tpXSk7CisgICAg fQorICAgIHByaW50aygiQ1BTUiA9ICV4XG4iLCBzYXZlZF9yZWdpc3RlcnNbMTZdKTsKKworICAg IHByaW50aygiU3RhY2sgZHVtcCAoaW5uZXJtb3N0IGxhc3QpXG4iKTsKKyAgICBzcCA9IChpbnQg Kikgc2F2ZWRfcmVnaXN0ZXJzWzEzXTsKKworICAgIGlmIChzcCA+PSBzdGFjayAmJiBzcCA8PSBz dGFja19lbmQpCisgICAgICAgIHN0YWNrX3RvcCA9IHN0YWNrX2VuZDsgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIFRoZSBzbWFsbCBib290IHN0YWNrICovCisgICAgZWxzZSBpZiAoc3AgPj0g aXJxc3RhY2sgJiYgc3AgPD0gaXJxc3RhY2tfZW5kKQorICAgICAgICBzdGFja190b3AgPSBpcnFz dGFja19lbmQ7ICAgICAgICAgICAgICAgICAgICAgICAvKiBUaGUgc21hbGwgSVJRIHN0YWNrICov CisgICAgZWxzZQorICAgICAgICBzdGFja190b3AgPSAoaW50ICopICgoKCh1bnNpZ25lZCBsb25n KSBzcCkgfCAoX19TVEFDS19TSVpFLTEpKSArIDEpOyAgICAgICAgLyogQSBub3JtYWwgdGhyZWFk IHN0YWNrICovCisKKyAgICBmb3IgKHggPSBzdGFja190b3AgLSAxOyB4ID49IHNwOyB4LS0pCisg ICAgeworICAgICAgICBwcmludGsoIiAgWyU4cF0gJTh4XG4iLCB4LCAqeCk7CisgICAgfQorICAg IHByaW50aygiRW5kIG9mIHN0YWNrXG4iKTsKKworICAgIGluX2R1bXAgPSAwOworfQpkaWZmIC0t Z2l0IGEvZXh0cmFzL21pbmktb3MvaW5jbHVkZS9hcm0vb3MuaCBiL2V4dHJhcy9taW5pLW9zL2lu Y2x1ZGUvYXJtL29zLmgKaW5kZXggYmRlODc5Ni4uZjc1MDIzNiAxMDA2NDQKLS0tIGEvZXh0cmFz L21pbmktb3MvaW5jbHVkZS9hcm0vb3MuaAorKysgYi9leHRyYXMvbWluaS1vcy9pbmNsdWRlL2Fy bS9vcy5oCkBAIC0xMyw3ICsxMyw3IEBAIHZvaWQgdGltZXJfaGFuZGxlcihldnRjaG5fcG9ydF90 IHBvcnQsIHN0cnVjdCBwdF9yZWdzICpyZWdzLCB2b2lkICppZ24pOwogCiBleHRlcm4gdm9pZCAq ZGV2aWNlX3RyZWU7CiAKLSNkZWZpbmUgQlVHKCkgd2hpbGUoMSl7fQorI2RlZmluZSBCVUcoKSB3 aGlsZSgxKXthc20gdm9sYXRpbGUgKCIud29yZCAweGU3ZjAwMGYwXG4iKTt9IC8qIFVuZGVmaW5l ZCBpbnN0cnVjdGlvbjsgd2lsbCBjYWxsIG91ciBmYXVsdCBoYW5kbGVyLiAqLwogCiAjZGVmaW5l IHNtcF9wcm9jZXNzb3JfaWQoKSAwCiAKLS0gCjIuMC4wCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK