From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [v2 16/16] xen/arm: traps: Merge do_trap_instr_abort_guest and do_trap_data_abort_guest Date: Tue, 12 Dec 2017 19:02:12 +0000 Message-ID: <20171212190212.5535-17-julien.grall@linaro.org> References: <20171212190212.5535-1-julien.grall@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171212190212.5535-1-julien.grall@linaro.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: sstabellini@kernel.org, Julien Grall , andre.przywara@linaro.org List-Id: xen-devel@lists.xenproject.org VGhlIHR3byBoZWxwZXJzIGRvX3RyYXBfaW5zdHJfYWJvcnRfZ3Vlc3QgYW5kIGRvX3RyYXBfZGF0 YV9hYm9ydF9ndWVzdAphcmUgdXNlZCB0cmFwIHN0YWdlLTIgYWJvcnQuIFdoaWxlIHRoZSBmb3Jt ZXIgaXMgb25seSBoYW5kbGluZyBwcmVmZXRjaAphYm9ydCBhbmQgdGhlIGxhdHRlciBkYXRhIGFi b3J0LCB0aGV5IGFyZSB2ZXJ5IHNpbWlsYXJseSBhbmQgZG9lcyBub3QKd2FycmFudCB0byBoYXZl IHNlcGFyYXRlIGhlbHBlcnMuCgpGb3IgaW5zdGFuY2UsIG1lcmdpbmcgdGhlIGJvdGggd2lsbCBt YWtlIGVhc2llciB0byBtYWludGFpbiBzdGFnZS0yIGFib3J0CmhhbmRsaW5nLiBTbyBjb25zb2xp ZGF0ZSB0aGUgdHdvIGhlbHBlcnMgaW4gYSBuZXcgaGVscGVyCmRvX3RyYXBfc3RhZ2UyX2Fib3J0 LgoKU2lnbmVkLW9mZi1ieTogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAbGluYXJvLm9yZz4K Ci0tLQogICAgQ2hhbmdlcyBpbiB2MgogICAgICAgIC0gRml4IHRoZSB3YXkgdG8gY29tcHV0ZSBu cGZlYy53cml0ZV9hY2Nlc3MKLS0tCiB4ZW4vYXJjaC9hcm0vdHJhcHMuYyB8IDEzMyArKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCA0MSBpbnNlcnRpb25zKCspLCA5MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4v YXJjaC9hcm0vdHJhcHMuYyBiL3hlbi9hcmNoL2FybS90cmFwcy5jCmluZGV4IDA4MjM5NmMyNmQu LjAxM2MxNjAwZWMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS90cmFwcy5jCisrKyBiL3hlbi9h cmNoL2FybS90cmFwcy5jCkBAIC0xODYxLDc5ICsxODYxLDYgQEAgc3RhdGljIGlubGluZSBib29s IGhwZmFyX2lzX3ZhbGlkKGJvb2wgczFwdHcsIHVpbnQ4X3QgZnNjKQogICAgIHJldHVybiBzMXB0 dyB8fCAoZnNjID09IEZTQ19GTFRfVFJBTlMgJiYgIWNoZWNrX3dvcmthcm91bmRfODM0MjIwKCkp OwogfQogCi1zdGF0aWMgdm9pZCBkb190cmFwX2luc3RyX2Fib3J0X2d1ZXN0KHN0cnVjdCBjcHVf dXNlcl9yZWdzICpyZWdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCB1bmlvbiBoc3IgaHNyKQotewotICAgIGludCByYzsKLSAgICByZWdpc3Rlcl90IGd2YTsK LSAgICB1aW50OF90IGZzYyA9IGhzci5pYWJ0Lmlmc2MgJiB+RlNDX0xMX01BU0s7Ci0gICAgcGFk ZHJfdCBncGE7Ci0gICAgbWZuX3QgbWZuOwotCi0gICAgZ3ZhID0gZ2V0X2hmYXIoZmFsc2UgLyog aXNfZGF0YSAqLyk7Ci0KLSAgICAvKgotICAgICAqIElmIHRoaXMgYml0IGhhcyBiZWVuIHNldCwg aXQgbWVhbnMgdGhhdCB0aGlzIGluc3RydWN0aW9uIGFib3J0IGlzIGNhdXNlZAotICAgICAqIGJ5 IGEgZ3Vlc3QgZXh0ZXJuYWwgYWJvcnQuIFdlIGNhbiBoYW5kbGUgdGhpcyBpbnN0cnVjdGlvbiBh Ym9ydCBhcyBndWVzdAotICAgICAqIFNFcnJvci4KLSAgICAgKi8KLSAgICBpZiAoIGhzci5pYWJ0 LmVhdCApCi0gICAgICAgIHJldHVybiBfX2RvX3RyYXBfc2Vycm9yKHJlZ3MsIHRydWUpOwotCi0K LSAgICBpZiAoIGhwZmFyX2lzX3ZhbGlkKGhzci5pYWJ0LnMxcHR3LCBmc2MpICkKLSAgICAgICAg Z3BhID0gZ2V0X2ZhdWx0aW5nX2lwYShndmEpOwotICAgIGVsc2UKLSAgICB7Ci0gICAgICAgIC8q Ci0gICAgICAgICAqIEZsdXNoIHRoZSBUTEIgdG8gbWFrZSBzdXJlIHRoZSBEVExCIGlzIGNsZWFy IGJlZm9yZQotICAgICAgICAgKiBkb2luZyBHVkEtPklQQSB0cmFuc2xhdGlvbi4gSWYgd2UgZ290 IGhlcmUgYmVjYXVzZSBvZgotICAgICAgICAgKiBhbiBlbnRyeSBvbmx5IHByZXNlbnQgaW4gdGhl IElUTEIsIHRoaXMgdHJhbnNsYXRpb24gbWF5Ci0gICAgICAgICAqIHN0aWxsIGJlIGluYWNjdXJh dGUuCi0gICAgICAgICAqLwotICAgICAgICBmbHVzaF90bGJfbG9jYWwoKTsKLQotICAgICAgICAv KgotICAgICAgICAgKiBXZSBtYXkgbm90IGJlIGFibGUgdG8gdHJhbnNsYXRlIGJlY2F1c2Ugc29t ZW9uZSBpcwotICAgICAgICAgKiBwbGF5aW5nIHdpdGggdGhlIFN0YWdlLTIgcGFnZSB0YWJsZSBv ZiB0aGUgZG9tYWluLgotICAgICAgICAgKiBSZXR1cm4gdG8gdGhlIGd1ZXN0LgotICAgICAgICAg Ki8KLSAgICAgICAgcmMgPSBndmFfdG9faXBhKGd2YSwgJmdwYSwgR1YyTV9SRUFEKTsKLSAgICAg ICAgaWYgKCByYyA9PSAtRUZBVUxUICkKLSAgICAgICAgICAgIHJldHVybjsgLyogVHJ5IGFnYWlu ICovCi0gICAgfQotCi0gICAgc3dpdGNoICggZnNjICkKLSAgICB7Ci0gICAgY2FzZSBGU0NfRkxU X1BFUk06Ci0gICAgewotICAgICAgICBjb25zdCBzdHJ1Y3QgbnBmZWMgbnBmZWMgPSB7Ci0gICAg ICAgICAgICAuaW5zbl9mZXRjaCA9IDEsCi0gICAgICAgICAgICAuZ2xhX3ZhbGlkID0gMSwKLSAg ICAgICAgICAgIC5raW5kID0gaHNyLmlhYnQuczFwdHcgPyBucGZlY19raW5kX2luX2dwdCA6IG5w ZmVjX2tpbmRfd2l0aF9nbGEKLSAgICAgICAgfTsKLQotICAgICAgICBwMm1fbWVtX2FjY2Vzc19j aGVjayhncGEsIGd2YSwgbnBmZWMpOwotICAgICAgICAvKgotICAgICAgICAgKiBUaGUgb25seSB3 YXkgdG8gZ2V0IGhlcmUgcmlnaHQgbm93IGlzIGJlY2F1c2Ugb2YgbWVtX2FjY2VzcywKLSAgICAg ICAgICogdGh1cyByZWluamVjdGluZyB0aGUgZXhjZXB0aW9uIHRvIHRoZSBndWVzdCBpcyBuZXZl ciByZXF1aXJlZC4KLSAgICAgICAgICovCi0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgY2Fz ZSBGU0NfRkxUX1RSQU5TOgotICAgICAgICAvKgotICAgICAgICAgKiBUaGUgUFQgd2FsayBtYXkg aGF2ZSBmYWlsZWQgYmVjYXVzZSBzb21lb25lIHdhcyBwbGF5aW5nCi0gICAgICAgICAqIHdpdGgg dGhlIFN0YWdlLTIgcGFnZSB0YWJsZS4gV2FsayB0aGUgU3RhZ2UtMiBQVCB0byBjaGVjawotICAg ICAgICAgKiBpZiB0aGUgZW50cnkgZXhpc3RzLiBJZiBpdCdzIHRoZSBjYXNlLCByZXR1cm4gdG8g dGhlIGd1ZXN0Ci0gICAgICAgICAqLwotICAgICAgICBtZm4gPSBnZm5fdG9fbWZuKGN1cnJlbnQt PmRvbWFpbiwgX2dmbihwYWRkcl90b19wZm4oZ3BhKSkpOwotICAgICAgICBpZiAoICFtZm5fZXEo bWZuLCBJTlZBTElEX01GTikgKQotICAgICAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlu amVjdF9pYWJ0X2V4Y2VwdGlvbihyZWdzLCBndmEsIGhzci5sZW4pOwotfQotCiBzdGF0aWMgYm9v bCB0cnlfaGFuZGxlX21taW8oc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgdW5pb24gaHNyIGhzciwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwYWRkcl90IGdwYSkKQEAgLTE5NDUsNiArMTg3Miw4IEBAIHN0YXRpYyBib29s IHRyeV9oYW5kbGVfbW1pbyhzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywKICAgICB9OwogICAg IGludCByYzsKIAorICAgIEFTU0VSVChoc3IuZWMgPT0gSFNSX0VDX0RBVEFfQUJPUlRfTE9XRVJf RUwpOworCiAgICAgLyogc3RhZ2UtMSBwYWdlIHRhYmxlIHNob3VsZCBuZXZlciBsaXZlIGluIGFu IGVtdWxhdGVkIE1NSU8gcmVnaW9uICovCiAgICAgaWYgKCBkYWJ0LnMxcHR3ICkKICAgICAgICAg cmV0dXJuIGZhbHNlOwpAQCAtMjAwMCwyOSArMTkyOSw0MyBAQCBzdGF0aWMgYm9vbCB0cnlfbWFw X21taW8oZ2ZuX3QgZ2ZuKQogICAgIHJldHVybiAhbWFwX3JlZ2lvbnNfcDJtdChkLCBnZm4sIDEs IG1mbiwgcDJtX21taW9fZGlyZWN0X2MpOwogfQogCi1zdGF0aWMgdm9pZCBkb190cmFwX2RhdGFf YWJvcnRfZ3Vlc3Qoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5pb24gaHNyIGhzcikKK3N0YXRpYyB2b2lkIGRv X3RyYXBfc3RhZ2UyX2Fib3J0X2d1ZXN0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5pb24gaHNyIGhzcikK IHsKLSAgICBjb25zdCBzdHJ1Y3QgaHNyX2RhYnQgZGFidCA9IGhzci5kYWJ0OworICAgIC8qCisg ICAgICogVGhlIGVuY29kaW5nIG9mIGhzcl9pYWJ0IGlzIGEgc3Vic2V0IG9mIGhzcl9kYWJ0LiBT byB1c2UKKyAgICAgKiBoc3JfZGFidCB0byByZXByZXNlbnQgYW4gYWJvcnQgZmF1bHQuCisgICAg ICovCisgICAgY29uc3Qgc3RydWN0IGhzcl94YWJ0IHhhYnQgPSBoc3IueGFidDsKICAgICBpbnQg cmM7CiAgICAgdmFkZHJfdCBndmE7CiAgICAgcGFkZHJfdCBncGE7Ci0gICAgdWludDhfdCBmc2Mg PSBoc3IuZGFidC5kZnNjICYgfkZTQ19MTF9NQVNLOworICAgIHVpbnQ4X3QgZnNjID0geGFidC5m c2MgJiB+RlNDX0xMX01BU0s7CiAgICAgbWZuX3QgbWZuOworICAgIGJvb2wgaXNfZGF0YSA9ICho c3IuZWMgPT0gSFNSX0VDX0RBVEFfQUJPUlRfTE9XRVJfRUwpOwogCiAgICAgLyoKLSAgICAgKiBJ ZiB0aGlzIGJpdCBoYXMgYmVlbiBzZXQsIGl0IG1lYW5zIHRoYXQgdGhpcyBkYXRhIGFib3J0IGlz IGNhdXNlZAotICAgICAqIGJ5IGEgZ3Vlc3QgZXh0ZXJuYWwgYWJvcnQuIFdlIHRyZWF0IHRoaXMg ZGF0YSBhYm9ydCBhcyBndWVzdCBTRXJyb3IuCisgICAgICogSWYgdGhpcyBiaXQgaGFzIGJlZW4g c2V0LCBpdCBtZWFucyB0aGF0IHRoaXMgc3RhZ2UtMiBhYm9ydCBpcyBjYXVzZWQKKyAgICAgKiBi eSBhIGd1ZXN0IGV4dGVybmFsIGFib3J0LiBXZSB0cmVhdCB0aGlzIHN0YWdlLTIgYWJvcnQgYXMg Z3Vlc3QgU0Vycm9yLgogICAgICAqLwotICAgIGlmICggZGFidC5lYXQgKQorICAgIGlmICggeGFi dC5lYXQgKQogICAgICAgICByZXR1cm4gX19kb190cmFwX3NlcnJvcihyZWdzLCB0cnVlKTsKIAot ICAgIGd2YSA9IGdldF9oZmFyKHRydWUgLyogaXNfZGF0YSAqLyk7CisgICAgZ3ZhID0gZ2V0X2hm YXIoaXNfZGF0YSk7CiAKLSAgICBpZiAoIGhwZmFyX2lzX3ZhbGlkKGRhYnQuczFwdHcsIGZzYykg KQorICAgIGlmICggaHBmYXJfaXNfdmFsaWQoeGFidC5zMXB0dywgZnNjKSApCiAgICAgICAgIGdw YSA9IGdldF9mYXVsdGluZ19pcGEoZ3ZhKTsKICAgICBlbHNlCiAgICAgeworICAgICAgICAvKgor ICAgICAgICAgKiBGbHVzaCB0aGUgVExCIHRvIG1ha2Ugc3VyZSB0aGUgRFRMQiBpcyBjbGVhciBi ZWZvcmUKKyAgICAgICAgICogZG9pbmcgR1ZBLT5JUEEgdHJhbnNsYXRpb24uIElmIHdlIGdvdCBo ZXJlIGJlY2F1c2Ugb2YKKyAgICAgICAgICogYW4gZW50cnkgb25seSBwcmVzZW50IGluIHRoZSBJ VExCLCB0aGlzIHRyYW5zbGF0aW9uIG1heQorICAgICAgICAgKiBzdGlsbCBiZSBpbmFjY3VyYXRl LgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCAhaXNfZGF0YSApCisgICAgICAgICAgICBmbHVz aF90bGJfbG9jYWwoKTsKKwogICAgICAgICByYyA9IGd2YV90b19pcGEoZ3ZhLCAmZ3BhLCBHVjJN X1JFQUQpOwogICAgICAgICAvKgogICAgICAgICAgKiBXZSBtYXkgbm90IGJlIGFibGUgdG8gdHJh bnNsYXRlIGJlY2F1c2Ugc29tZW9uZSBpcwpAQCAtMjAzOCwxMCArMTk4MSwxMSBAQCBzdGF0aWMg dm9pZCBkb190cmFwX2RhdGFfYWJvcnRfZ3Vlc3Qoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3Ms CiAgICAgY2FzZSBGU0NfRkxUX1BFUk06CiAgICAgewogICAgICAgICBjb25zdCBzdHJ1Y3QgbnBm ZWMgbnBmZWMgPSB7Ci0gICAgICAgICAgICAucmVhZF9hY2Nlc3MgPSAhZGFidC53cml0ZSwKLSAg ICAgICAgICAgIC53cml0ZV9hY2Nlc3MgPSBkYWJ0LndyaXRlLAorICAgICAgICAgICAgLmluc25f ZmV0Y2ggPSAhaXNfZGF0YSwKKyAgICAgICAgICAgIC5yZWFkX2FjY2VzcyA9IGlzX2RhdGEgJiYg IWhzci5kYWJ0LndyaXRlLAorICAgICAgICAgICAgLndyaXRlX2FjY2VzcyA9IGlzX2RhdGEgJiYg aHNyLmRhYnQud3JpdGUsCiAgICAgICAgICAgICAuZ2xhX3ZhbGlkID0gMSwKLSAgICAgICAgICAg IC5raW5kID0gZGFidC5zMXB0dyA/IG5wZmVjX2tpbmRfaW5fZ3B0IDogbnBmZWNfa2luZF93aXRo X2dsYQorICAgICAgICAgICAgLmtpbmQgPSB4YWJ0LnMxcHR3ID8gbnBmZWNfa2luZF9pbl9ncHQg OiBucGZlY19raW5kX3dpdGhfZ2xhCiAgICAgICAgIH07CiAKICAgICAgICAgcDJtX21lbV9hY2Nl c3NfY2hlY2soZ3BhLCBndmEsIG5wZmVjKTsKQEAgLTIwNTUsOCArMTk5OSwxMCBAQCBzdGF0aWMg dm9pZCBkb190cmFwX2RhdGFfYWJvcnRfZ3Vlc3Qoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3Ms CiAgICAgICAgIC8qCiAgICAgICAgICAqIEF0dGVtcHQgZmlyc3QgdG8gZW11bGF0ZSB0aGUgTU1J TyBhcyB0aGUgZGF0YSBhYm9ydCB3aWxsCiAgICAgICAgICAqIGxpa2VseSBoYXBwZW4gaW4gYW4g ZW11bGF0ZWQgcmVnaW9uLgorICAgICAgICAgKgorICAgICAgICAgKiBOb3RlIHRoYXQgZW11bGF0 ZWQgcmVnaW9uIGNhbm5vdCBiZSBleGVjdXRlZAogICAgICAgICAgKi8KLSAgICAgICAgaWYgKCB0 cnlfaGFuZGxlX21taW8ocmVncywgaHNyLCBncGEpICkKKyAgICAgICAgaWYgKCBpc19kYXRhICYm IHRyeV9oYW5kbGVfbW1pbyhyZWdzLCBoc3IsIGdwYSkgKQogICAgICAgICB7CiAgICAgICAgICAg ICBhZHZhbmNlX3BjKHJlZ3MsIGhzcik7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0yMDcxLDE4 ICsyMDE3LDIxIEBAIHN0YXRpYyB2b2lkIGRvX3RyYXBfZGF0YV9hYm9ydF9ndWVzdChzdHJ1Y3Qg Y3B1X3VzZXJfcmVncyAqcmVncywKICAgICAgICAgaWYgKCAhbWZuX2VxKG1mbiwgSU5WQUxJRF9N Rk4pICkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAoIHRyeV9tYXBfbW1pbyhn YWRkcl90b19nZm4oZ3BhKSkgKQorICAgICAgICBpZiAoIGlzX2RhdGEgJiYgdHJ5X21hcF9tbWlv KGdhZGRyX3RvX2dmbihncGEpKSApCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgYnJl YWs7CiAgICAgZGVmYXVsdDoKLSAgICAgICAgZ3ByaW50ayhYRU5MT0dfV0FSTklORywgIlVuc3Vw cG9ydGVkIERGU0M6IEhTUj0lI3ggREZTQz0lI3hcbiIsCi0gICAgICAgICAgICAgICAgaHNyLmJp dHMsIGRhYnQuZGZzYyk7CisgICAgICAgIGdwcmludGsoWEVOTE9HX1dBUk5JTkcsICJVbnN1cHBv cnRlZCBGU0M6IEhTUj0lI3ggREZTQz0lI3hcbiIsCisgICAgICAgICAgICAgICAgaHNyLmJpdHMs IHhhYnQuZnNjKTsKICAgICB9CiAKICAgICBnZHByaW50ayhYRU5MT0dfREVCVUcsICJIU1I9MHgl eCBwYz0lIyJQUklyZWdpc3RlciIgZ3ZhPSUjIlBSSXZhZGRyCiAgICAgICAgICAgICAgIiBncGE9 JSMiUFJJcGFkZHIiXG4iLCBoc3IuYml0cywgcmVncy0+cGMsIGd2YSwgZ3BhKTsKLSAgICBpbmpl Y3RfZGFidF9leGNlcHRpb24ocmVncywgZ3ZhLCBoc3IubGVuKTsKKyAgICBpZiAoIGlzX2RhdGEg KQorICAgICAgICBpbmplY3RfZGFidF9leGNlcHRpb24ocmVncywgZ3ZhLCBoc3IubGVuKTsKKyAg ICBlbHNlCisgICAgICAgIGluamVjdF9pYWJ0X2V4Y2VwdGlvbihyZWdzLCBndmEsIGhzci5sZW4p OwogfQogCiBzdGF0aWMgdm9pZCBlbnRlcl9oeXBlcnZpc29yX2hlYWQoc3RydWN0IGNwdV91c2Vy X3JlZ3MgKnJlZ3MpCkBAIC0yMjE1LDExICsyMTY0LDExIEBAIHZvaWQgZG9fdHJhcF9ndWVzdF9z eW5jKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogCiAgICAgY2FzZSBIU1JfRUNfSU5TVFJf QUJPUlRfTE9XRVJfRUw6CiAgICAgICAgIHBlcmZjX2luY3IodHJhcF9pYWJ0KTsKLSAgICAgICAg ZG9fdHJhcF9pbnN0cl9hYm9ydF9ndWVzdChyZWdzLCBoc3IpOworICAgICAgICBkb190cmFwX3N0 YWdlMl9hYm9ydF9ndWVzdChyZWdzLCBoc3IpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEhT Ul9FQ19EQVRBX0FCT1JUX0xPV0VSX0VMOgogICAgICAgICBwZXJmY19pbmNyKHRyYXBfZGFidCk7 Ci0gICAgICAgIGRvX3RyYXBfZGF0YV9hYm9ydF9ndWVzdChyZWdzLCBoc3IpOworICAgICAgICBk b190cmFwX3N0YWdlMl9hYm9ydF9ndWVzdChyZWdzLCBoc3IpOwogICAgICAgICBicmVhazsKIAog ICAgIGRlZmF1bHQ6Ci0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu Zm8veGVuLWRldmVs