From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH v5 02/13] x86: move the compat callback ops next to the non-compat variant Date: Mon, 26 Jun 2017 17:28:31 +0100 Message-ID: <20170626162842.482-3-wei.liu2@citrix.com> References: <20170626162842.482-1-wei.liu2@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dPWsz-00058l-Dg for xen-devel@lists.xenproject.org; Mon, 26 Jun 2017 16:29:13 +0000 In-Reply-To: <20170626162842.482-1-wei.liu2@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: Andrew Cooper , Wei Liu , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGFrZSB0aGUgY2hhbmNlIHRvIGNoYW5nZSB2IHRvIGN1cnIuCgpTaWduZWQtb2ZmLWJ5OiBXZWkg TGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9wdi9jYWxsYmFjay5j ICAgICAgICAgfCAxNDIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4v YXJjaC94ODYveDg2XzY0L2NvbXBhdC90cmFwcy5jIHwgMTQzIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTQyIGluc2VydGlvbnMoKyksIDE0 MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHYvY2FsbGJhY2suYyBi L3hlbi9hcmNoL3g4Ni9wdi9jYWxsYmFjay5jCmluZGV4IGNiY2RlYWMyZGEuLmQ4MTFmNDgxMTAg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9jYWxsYmFjay5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9wdi9jYWxsYmFjay5jCkBAIC0xOSw2ICsxOSw3IEBACiAjaW5jbHVkZSA8eGVuL2d1ZXN0X2Fj Y2Vzcy5oPgogI2luY2x1ZGUgPHhlbi9saWIuaD4KICNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4KKyNp bmNsdWRlIDxjb21wYXQvY2FsbGJhY2suaD4KIAogI2luY2x1ZGUgPGFzbS9jdXJyZW50Lmg+CiAj aW5jbHVkZSA8YXNtL25taS5oPgpAQCAtMTcyLDYgKzE3MywxNDcgQEAgbG9uZyBkb19zZXRfY2Fs bGJhY2tzKHVuc2lnbmVkIGxvbmcgZXZlbnRfYWRkcmVzcywKICAgICByZXR1cm4gMDsKIH0KIAor c3RhdGljIGxvbmcgY29tcGF0X3JlZ2lzdGVyX2d1ZXN0X2NhbGxiYWNrKHN0cnVjdCBjb21wYXRf Y2FsbGJhY2tfcmVnaXN0ZXIgKnJlZykKK3sKKyAgICBsb25nIHJldCA9IDA7CisgICAgc3RydWN0 IHZjcHUgKmN1cnIgPSBjdXJyZW50OworCisgICAgZml4dXBfZ3Vlc3RfY29kZV9zZWxlY3Rvcihj dXJyLT5kb21haW4sIHJlZy0+YWRkcmVzcy5jcyk7CisKKyAgICBzd2l0Y2ggKCByZWctPnR5cGUg KQorICAgIHsKKyAgICBjYXNlIENBTExCQUNLVFlQRV9ldmVudDoKKyAgICAgICAgY3Vyci0+YXJj aC5wdl92Y3B1LmV2ZW50X2NhbGxiYWNrX2NzICAgICA9IHJlZy0+YWRkcmVzcy5jczsKKyAgICAg ICAgY3Vyci0+YXJjaC5wdl92Y3B1LmV2ZW50X2NhbGxiYWNrX2VpcCAgICA9IHJlZy0+YWRkcmVz cy5laXA7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBDQUxMQkFDS1RZUEVfZmFpbHNhZmU6 CisgICAgICAgIGN1cnItPmFyY2gucHZfdmNwdS5mYWlsc2FmZV9jYWxsYmFja19jcyAgPSByZWct PmFkZHJlc3MuY3M7CisgICAgICAgIGN1cnItPmFyY2gucHZfdmNwdS5mYWlsc2FmZV9jYWxsYmFj a19laXAgPSByZWctPmFkZHJlc3MuZWlwOworICAgICAgICBpZiAoIHJlZy0+ZmxhZ3MgJiBDQUxM QkFDS0ZfbWFza19ldmVudHMgKQorICAgICAgICAgICAgc2V0X2JpdChfVkdDRl9mYWlsc2FmZV9k aXNhYmxlc19ldmVudHMsCisgICAgICAgICAgICAgICAgICAgICZjdXJyLT5hcmNoLnZnY19mbGFn cyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNsZWFyX2JpdChfVkdDRl9mYWlsc2FmZV9k aXNhYmxlc19ldmVudHMsCisgICAgICAgICAgICAgICAgICAgICAgJmN1cnItPmFyY2gudmdjX2Zs YWdzKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIENBTExCQUNLVFlQRV9zeXNjYWxsMzI6 CisgICAgICAgIGN1cnItPmFyY2gucHZfdmNwdS5zeXNjYWxsMzJfY2FsbGJhY2tfY3MgICAgID0g cmVnLT5hZGRyZXNzLmNzOworICAgICAgICBjdXJyLT5hcmNoLnB2X3ZjcHUuc3lzY2FsbDMyX2Nh bGxiYWNrX2VpcCAgICA9IHJlZy0+YWRkcmVzcy5laXA7CisgICAgICAgIGN1cnItPmFyY2gucHZf dmNwdS5zeXNjYWxsMzJfZGlzYWJsZXNfZXZlbnRzID0KKyAgICAgICAgICAgIChyZWctPmZsYWdz ICYgQ0FMTEJBQ0tGX21hc2tfZXZlbnRzKSAhPSAwOworICAgICAgICBicmVhazsKKworICAgIGNh c2UgQ0FMTEJBQ0tUWVBFX3N5c2VudGVyOgorICAgICAgICBjdXJyLT5hcmNoLnB2X3ZjcHUuc3lz ZW50ZXJfY2FsbGJhY2tfY3MgICAgID0gcmVnLT5hZGRyZXNzLmNzOworICAgICAgICBjdXJyLT5h cmNoLnB2X3ZjcHUuc3lzZW50ZXJfY2FsbGJhY2tfZWlwICAgID0gcmVnLT5hZGRyZXNzLmVpcDsK KyAgICAgICAgY3Vyci0+YXJjaC5wdl92Y3B1LnN5c2VudGVyX2Rpc2FibGVzX2V2ZW50cyA9Cisg ICAgICAgICAgICAocmVnLT5mbGFncyAmIENBTExCQUNLRl9tYXNrX2V2ZW50cykgIT0gMDsKKyAg ICAgICAgYnJlYWs7CisKKyAgICBjYXNlIENBTExCQUNLVFlQRV9ubWk6CisgICAgICAgIHJldCA9 IHJlZ2lzdGVyX2d1ZXN0X25taV9jYWxsYmFjayhyZWctPmFkZHJlc3MuZWlwKTsKKyAgICAgICAg YnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICByZXQgPSAtRU5PU1lTOworICAgICAgICBi cmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0OworfQorCitzdGF0aWMgbG9uZyBjb21wYXRf dW5yZWdpc3Rlcl9ndWVzdF9jYWxsYmFjaygKKyAgICBzdHJ1Y3QgY29tcGF0X2NhbGxiYWNrX3Vu cmVnaXN0ZXIgKnVucmVnKQoreworICAgIGxvbmcgcmV0OworCisgICAgc3dpdGNoICggdW5yZWct PnR5cGUgKQorICAgIHsKKyAgICBjYXNlIENBTExCQUNLVFlQRV9ldmVudDoKKyAgICBjYXNlIENB TExCQUNLVFlQRV9mYWlsc2FmZToKKyAgICBjYXNlIENBTExCQUNLVFlQRV9zeXNjYWxsMzI6Cisg ICAgY2FzZSBDQUxMQkFDS1RZUEVfc3lzZW50ZXI6CisgICAgICAgIHJldCA9IC1FSU5WQUw7Cisg ICAgICAgIGJyZWFrOworCisgICAgY2FzZSBDQUxMQkFDS1RZUEVfbm1pOgorICAgICAgICByZXQg PSB1bnJlZ2lzdGVyX2d1ZXN0X25taV9jYWxsYmFjaygpOworICAgICAgICBicmVhazsKKworICAg IGRlZmF1bHQ6CisgICAgICAgIHJldCA9IC1FTk9TWVM7CisgICAgICAgIGJyZWFrOworICAgIH0K KworICAgIHJldHVybiByZXQ7Cit9CisKK2xvbmcgY29tcGF0X2NhbGxiYWNrX29wKGludCBjbWQs IFhFTl9HVUVTVF9IQU5ETEUodm9pZCkgYXJnKQoreworICAgIGxvbmcgcmV0OworCisgICAgc3dp dGNoICggY21kICkKKyAgICB7CisgICAgY2FzZSBDQUxMQkFDS09QX3JlZ2lzdGVyOgorICAgIHsK KyAgICAgICAgc3RydWN0IGNvbXBhdF9jYWxsYmFja19yZWdpc3RlciByZWc7CisKKyAgICAgICAg cmV0ID0gLUVGQVVMVDsKKyAgICAgICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJnJlZywgYXJnLCAx KSApCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICByZXQgPSBjb21wYXRfcmVnaXN0ZXJf Z3Vlc3RfY2FsbGJhY2soJnJlZyk7CisgICAgfQorICAgIGJyZWFrOworCisgICAgY2FzZSBDQUxM QkFDS09QX3VucmVnaXN0ZXI6CisgICAgeworICAgICAgICBzdHJ1Y3QgY29tcGF0X2NhbGxiYWNr X3VucmVnaXN0ZXIgdW5yZWc7CisKKyAgICAgICAgcmV0ID0gLUVGQVVMVDsKKyAgICAgICAgaWYg KCBjb3B5X2Zyb21fZ3Vlc3QoJnVucmVnLCBhcmcsIDEpICkKKyAgICAgICAgICAgIGJyZWFrOwor CisgICAgICAgIHJldCA9IGNvbXBhdF91bnJlZ2lzdGVyX2d1ZXN0X2NhbGxiYWNrKCZ1bnJlZyk7 CisgICAgfQorICAgIGJyZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0ID0gLUVJTlZB TDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHJldDsKK30KKworbG9uZyBj b21wYXRfc2V0X2NhbGxiYWNrcyh1bnNpZ25lZCBsb25nIGV2ZW50X3NlbGVjdG9yLAorICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGV2ZW50X2FkZHJlc3MsCisgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmFpbHNhZmVfc2VsZWN0b3IsCisgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmFpbHNhZmVfYWRkcmVzcykKK3sK KyAgICBzdHJ1Y3QgY29tcGF0X2NhbGxiYWNrX3JlZ2lzdGVyIGV2ZW50ID0geworICAgICAgICAu dHlwZSA9IENBTExCQUNLVFlQRV9ldmVudCwKKyAgICAgICAgLmFkZHJlc3MgPSB7CisgICAgICAg ICAgICAuY3MgPSBldmVudF9zZWxlY3RvciwKKyAgICAgICAgICAgIC5laXAgPSBldmVudF9hZGRy ZXNzCisgICAgICAgIH0KKyAgICB9OworICAgIHN0cnVjdCBjb21wYXRfY2FsbGJhY2tfcmVnaXN0 ZXIgZmFpbHNhZmUgPSB7CisgICAgICAgIC50eXBlID0gQ0FMTEJBQ0tUWVBFX2ZhaWxzYWZlLAor ICAgICAgICAuYWRkcmVzcyA9IHsKKyAgICAgICAgICAgIC5jcyA9IGZhaWxzYWZlX3NlbGVjdG9y LAorICAgICAgICAgICAgLmVpcCA9IGZhaWxzYWZlX2FkZHJlc3MKKyAgICAgICAgfQorICAgIH07 CisKKyAgICBjb21wYXRfcmVnaXN0ZXJfZ3Vlc3RfY2FsbGJhY2soJmV2ZW50KTsKKyAgICBjb21w YXRfcmVnaXN0ZXJfZ3Vlc3RfY2FsbGJhY2soJmZhaWxzYWZlKTsKKworICAgIHJldHVybiAwOwor fQorCiAvKgogICogTG9jYWwgdmFyaWFibGVzOgogICogbW9kZTogQwpkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L3g4Nl82NC9jb21wYXQvdHJhcHMuYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvY29t cGF0L3RyYXBzLmMKaW5kZXggNDU5NGEzMjEwMC4uOWUxY2NiYTY0NiAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L3g4Nl82NC9jb21wYXQvdHJhcHMuYworKysgYi94ZW4vYXJjaC94ODYveDg2XzY0 L2NvbXBhdC90cmFwcy5jCkBAIC0zLDE0OSArMyw2IEBACiAjaW5jbHVkZSA8Y29tcGF0L2NhbGxi YWNrLmg+CiAjaW5jbHVkZSA8Y29tcGF0L2FyY2gteDg2XzMyLmg+CiAKLXN0YXRpYyBsb25nIGNv bXBhdF9yZWdpc3Rlcl9ndWVzdF9jYWxsYmFjaygKLSAgICBzdHJ1Y3QgY29tcGF0X2NhbGxiYWNr X3JlZ2lzdGVyICpyZWcpCi17Ci0gICAgbG9uZyByZXQgPSAwOwotICAgIHN0cnVjdCB2Y3B1ICp2 ID0gY3VycmVudDsKLQotICAgIGZpeHVwX2d1ZXN0X2NvZGVfc2VsZWN0b3Iodi0+ZG9tYWluLCBy ZWctPmFkZHJlc3MuY3MpOwotCi0gICAgc3dpdGNoICggcmVnLT50eXBlICkKLSAgICB7Ci0gICAg Y2FzZSBDQUxMQkFDS1RZUEVfZXZlbnQ6Ci0gICAgICAgIHYtPmFyY2gucHZfdmNwdS5ldmVudF9j YWxsYmFja19jcyAgICAgPSByZWctPmFkZHJlc3MuY3M7Ci0gICAgICAgIHYtPmFyY2gucHZfdmNw dS5ldmVudF9jYWxsYmFja19laXAgICAgPSByZWctPmFkZHJlc3MuZWlwOwotICAgICAgICBicmVh azsKLQotICAgIGNhc2UgQ0FMTEJBQ0tUWVBFX2ZhaWxzYWZlOgotICAgICAgICB2LT5hcmNoLnB2 X3ZjcHUuZmFpbHNhZmVfY2FsbGJhY2tfY3MgID0gcmVnLT5hZGRyZXNzLmNzOwotICAgICAgICB2 LT5hcmNoLnB2X3ZjcHUuZmFpbHNhZmVfY2FsbGJhY2tfZWlwID0gcmVnLT5hZGRyZXNzLmVpcDsK LSAgICAgICAgaWYgKCByZWctPmZsYWdzICYgQ0FMTEJBQ0tGX21hc2tfZXZlbnRzICkKLSAgICAg ICAgICAgIHNldF9iaXQoX1ZHQ0ZfZmFpbHNhZmVfZGlzYWJsZXNfZXZlbnRzLAotICAgICAgICAg ICAgICAgICAgICAmdi0+YXJjaC52Z2NfZmxhZ3MpOwotICAgICAgICBlbHNlCi0gICAgICAgICAg ICBjbGVhcl9iaXQoX1ZHQ0ZfZmFpbHNhZmVfZGlzYWJsZXNfZXZlbnRzLAotICAgICAgICAgICAg ICAgICAgICAgICZ2LT5hcmNoLnZnY19mbGFncyk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2Fz ZSBDQUxMQkFDS1RZUEVfc3lzY2FsbDMyOgotICAgICAgICB2LT5hcmNoLnB2X3ZjcHUuc3lzY2Fs bDMyX2NhbGxiYWNrX2NzICAgICA9IHJlZy0+YWRkcmVzcy5jczsKLSAgICAgICAgdi0+YXJjaC5w dl92Y3B1LnN5c2NhbGwzMl9jYWxsYmFja19laXAgICAgPSByZWctPmFkZHJlc3MuZWlwOwotICAg ICAgICB2LT5hcmNoLnB2X3ZjcHUuc3lzY2FsbDMyX2Rpc2FibGVzX2V2ZW50cyA9Ci0gICAgICAg ICAgICAocmVnLT5mbGFncyAmIENBTExCQUNLRl9tYXNrX2V2ZW50cykgIT0gMDsKLSAgICAgICAg YnJlYWs7Ci0KLSAgICBjYXNlIENBTExCQUNLVFlQRV9zeXNlbnRlcjoKLSAgICAgICAgdi0+YXJj aC5wdl92Y3B1LnN5c2VudGVyX2NhbGxiYWNrX2NzICAgICA9IHJlZy0+YWRkcmVzcy5jczsKLSAg ICAgICAgdi0+YXJjaC5wdl92Y3B1LnN5c2VudGVyX2NhbGxiYWNrX2VpcCAgICA9IHJlZy0+YWRk cmVzcy5laXA7Ci0gICAgICAgIHYtPmFyY2gucHZfdmNwdS5zeXNlbnRlcl9kaXNhYmxlc19ldmVu dHMgPQotICAgICAgICAgICAgKHJlZy0+ZmxhZ3MgJiBDQUxMQkFDS0ZfbWFza19ldmVudHMpICE9 IDA7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBDQUxMQkFDS1RZUEVfbm1pOgotICAgICAg ICByZXQgPSByZWdpc3Rlcl9ndWVzdF9ubWlfY2FsbGJhY2socmVnLT5hZGRyZXNzLmVpcCk7Ci0g ICAgICAgIGJyZWFrOwotCi0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0ID0gLUVOT1NZUzsKLSAg ICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGxvbmcg Y29tcGF0X3VucmVnaXN0ZXJfZ3Vlc3RfY2FsbGJhY2soCi0gICAgc3RydWN0IGNvbXBhdF9jYWxs YmFja191bnJlZ2lzdGVyICp1bnJlZykKLXsKLSAgICBsb25nIHJldDsKLQotICAgIHN3aXRjaCAo IHVucmVnLT50eXBlICkKLSAgICB7Ci0gICAgY2FzZSBDQUxMQkFDS1RZUEVfZXZlbnQ6Ci0gICAg Y2FzZSBDQUxMQkFDS1RZUEVfZmFpbHNhZmU6Ci0gICAgY2FzZSBDQUxMQkFDS1RZUEVfc3lzY2Fs bDMyOgotICAgIGNhc2UgQ0FMTEJBQ0tUWVBFX3N5c2VudGVyOgotICAgICAgICByZXQgPSAtRUlO VkFMOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgQ0FMTEJBQ0tUWVBFX25taToKLSAgICAg ICAgcmV0ID0gdW5yZWdpc3Rlcl9ndWVzdF9ubWlfY2FsbGJhY2soKTsKLSAgICAgICAgYnJlYWs7 Ci0KLSAgICBkZWZhdWx0OgotICAgICAgICByZXQgPSAtRU5PU1lTOwotICAgICAgICBicmVhazsK LSAgICB9Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi0KLWxvbmcgY29tcGF0X2NhbGxiYWNrX29w KGludCBjbWQsIFhFTl9HVUVTVF9IQU5ETEUodm9pZCkgYXJnKQotewotICAgIGxvbmcgcmV0Owot Ci0gICAgc3dpdGNoICggY21kICkKLSAgICB7Ci0gICAgY2FzZSBDQUxMQkFDS09QX3JlZ2lzdGVy OgotICAgIHsKLSAgICAgICAgc3RydWN0IGNvbXBhdF9jYWxsYmFja19yZWdpc3RlciByZWc7Ci0K LSAgICAgICAgcmV0ID0gLUVGQVVMVDsKLSAgICAgICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJnJl ZywgYXJnLCAxKSApCi0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICByZXQgPSBjb21wYXRf cmVnaXN0ZXJfZ3Vlc3RfY2FsbGJhY2soJnJlZyk7Ci0gICAgfQotICAgIGJyZWFrOwotCi0gICAg Y2FzZSBDQUxMQkFDS09QX3VucmVnaXN0ZXI6Ci0gICAgewotICAgICAgICBzdHJ1Y3QgY29tcGF0 X2NhbGxiYWNrX3VucmVnaXN0ZXIgdW5yZWc7Ci0KLSAgICAgICAgcmV0ID0gLUVGQVVMVDsKLSAg ICAgICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJnVucmVnLCBhcmcsIDEpICkKLSAgICAgICAgICAg IGJyZWFrOwotCi0gICAgICAgIHJldCA9IGNvbXBhdF91bnJlZ2lzdGVyX2d1ZXN0X2NhbGxiYWNr KCZ1bnJlZyk7Ci0gICAgfQotICAgIGJyZWFrOwotCi0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0 ID0gLUVJTlZBTDsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJldDsKLX0K LQotbG9uZyBjb21wYXRfc2V0X2NhbGxiYWNrcyh1bnNpZ25lZCBsb25nIGV2ZW50X3NlbGVjdG9y LAotICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGV2ZW50X2FkZHJlc3Ms Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmFpbHNhZmVfc2VsZWN0 b3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmFpbHNhZmVfYWRk cmVzcykKLXsKLSAgICBzdHJ1Y3QgY29tcGF0X2NhbGxiYWNrX3JlZ2lzdGVyIGV2ZW50ID0gewot ICAgICAgICAudHlwZSA9IENBTExCQUNLVFlQRV9ldmVudCwKLSAgICAgICAgLmFkZHJlc3MgPSB7 Ci0gICAgICAgICAgICAuY3MgPSBldmVudF9zZWxlY3RvciwKLSAgICAgICAgICAgIC5laXAgPSBl dmVudF9hZGRyZXNzCi0gICAgICAgIH0KLSAgICB9OwotICAgIHN0cnVjdCBjb21wYXRfY2FsbGJh Y2tfcmVnaXN0ZXIgZmFpbHNhZmUgPSB7Ci0gICAgICAgIC50eXBlID0gQ0FMTEJBQ0tUWVBFX2Zh aWxzYWZlLAotICAgICAgICAuYWRkcmVzcyA9IHsKLSAgICAgICAgICAgIC5jcyA9IGZhaWxzYWZl X3NlbGVjdG9yLAotICAgICAgICAgICAgLmVpcCA9IGZhaWxzYWZlX2FkZHJlc3MKLSAgICAgICAg fQotICAgIH07Ci0KLSAgICBjb21wYXRfcmVnaXN0ZXJfZ3Vlc3RfY2FsbGJhY2soJmV2ZW50KTsK LSAgICBjb21wYXRfcmVnaXN0ZXJfZ3Vlc3RfY2FsbGJhY2soJmZhaWxzYWZlKTsKLQotICAgIHJl dHVybiAwOwotfQotCiBpbnQgY29tcGF0X3NldF90cmFwX3RhYmxlKFhFTl9HVUVTVF9IQU5ETEUo dHJhcF9pbmZvX2NvbXBhdF90KSB0cmFwcykKIHsKICAgICBzdHJ1Y3QgY29tcGF0X3RyYXBfaW5m byBjdXI7Ci0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3Jn Cmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK