From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: [PATCH 04/16] xen: sched: implement .init_pdata in all schedulers Date: Fri, 18 Mar 2016 20:04:24 +0100 Message-ID: <20160318190424.8117.85820.stgit@Solace.station> References: <20160318185524.8117.74837.stgit@Solace.station> 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 1agzhE-0008Uy-Oc for xen-devel@lists.xenproject.org; Fri, 18 Mar 2016 19:04:28 +0000 Received: by mail-wm0-f65.google.com with SMTP id x188so8145147wmg.0 for ; Fri, 18 Mar 2016 12:04:27 -0700 (PDT) In-Reply-To: <20160318185524.8117.74837.stgit@Solace.station> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: George Dunlap , Juergen Gross , Meng Xu List-Id: xen-devel@lists.xenproject.org YnkgYm9ycm93aW5nIHNvbWUgb2YgdGhlIGNvZGUgb2YgLmFsbG9jX3BkYXRhLCBpLmUuLAp0aGUg Yml0cyB0aGF0IHBlcmZvcm0gaW5pdGlhbGl6YXRpb25zLCBsZWF2aW5nIG9ubHkKYWN0dWFsIGFs bG9jYXRpb25zIGluIHRoZXJlLCB3aGVuIGFueSwgd2hpY2ggaXMgdGhlCmNhc2UgZm9yIENyZWRp dDEgYW5kIFJURFMuCgpPbiB0aGUgb3RoZXIgaGFuZCwgaW4gQ3JlZGl0Miwgc2luY2Ugd2UgZG9u J3QgcmVhbGx5Cm5lZWQgYW55IHBlci1wQ1BVIGRhdGEgYWxsb2NhdGlvbiwgZXZlcnl0aGluZyB0 aGF0IHdhcwpiZWluZyBkb25lIGluIC5hbGxvY19wZGF0YSwgaXMgbm93IGRvbmUgaW4gLmluaXRf cGRhdGEuCkFuZCB0aGUgZmFjdCB0aGF0IG5vdyAuYWxsb2NfcGRhdGEgY2FuIGJlIGxlZnQgdW5k ZWZpbmVkLAphbGxvd3MgdXMgdG8ganVzdCBnZXQgcmlkIG9mIGl0LgoKU3RpbGwgZm9yIENyZWRp dDIsIHRoZSBmYWN0IHRoYXQgLmluaXRfcGRhdGEgaXMgY2FsbGVkCmR1cmluZyBDUFVfU1RBUlRJ TkcgKHJhdGhlciB0aGFuIENQVV9VUF9QUkVQQVJFKSBraWxscwp0aGUgbmVlZCBmb3IgdGhlIHNj aGVkdWxlciB0byBzZXR1cCBhIHNpbWlsYXIgY2FsbGJhY2sKaXRzZWxmLCBzaW1wbGlmeWluZyB0 aGUgY29kZS4KCkFuZCB0aGFua3MgdG8gc3VjaCBzaW1wbGlmaWNhdGlvbiwgaXQgaXMgbm93IGFs c28gb2sgdG8KbW92ZSBzb21lIG9mIHRoZSBsb2dpYyBtZWFudCBhdCBkb3VibGUgY2hlY2tpbmcg dGhhdCBhCmNwdSB3YXMgKG9yIHdhcyBub3QpIGluaXRpYWxpemVkLCBpbnRvIEFTU0VSVFMgKHJh dGhlcgp0aGFuIGFuIGlmKCkgYW5kIGEgQlVHX09OKS4KClNpZ25lZC1vZmYtYnk6IERhcmlvIEZh Z2dpb2xpIDxkYXJpby5mYWdnaW9saUBjaXRyaXguY29tPgotLS0KQ2M6IEdlb3JnZSBEdW5sYXAg PGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4KQ2M6IE1lbmcgWHUgPG1lbmd4dUBjaXMudXBl bm4uZWR1PgpDYzogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgotLS0KIHhlbi9jb21t b24vc2NoZWRfY3JlZGl0LmMgIHwgICAyMCArKysrKysrKystLS0KIHhlbi9jb21tb24vc2NoZWRf Y3JlZGl0Mi5jIHwgICA3MiArKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogeGVuL2NvbW1vbi9zY2hlZF9ydC5jICAgICAgfCAgICA5ICsrKystLQogMyBmaWxlcyBj aGFuZ2VkLCAyNiBpbnNlcnRpb25zKCspLCA3NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94 ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQuYwppbmRl eCAyODg3NDlmLi5kNGEwZjVlIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5j CisrKyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0LmMKQEAgLTUyNiw4ICs1MjYsNiBAQCBzdGF0 aWMgdm9pZCAqCiBjc2NoZWRfYWxsb2NfcGRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3Bz LCBpbnQgY3B1KQogewogICAgIHN0cnVjdCBjc2NoZWRfcGNwdSAqc3BjOwotICAgIHN0cnVjdCBj c2NoZWRfcHJpdmF0ZSAqcHJ2ID0gQ1NDSEVEX1BSSVYob3BzKTsKLSAgICB1bnNpZ25lZCBsb25n IGZsYWdzOwogCiAgICAgLyogQWxsb2NhdGUgcGVyLVBDUFUgaW5mbyAqLwogICAgIHNwYyA9IHh6 YWxsb2Moc3RydWN0IGNzY2hlZF9wY3B1KTsKQEAgLTU0MCw2ICs1MzgsMTkgQEAgY3NjaGVkX2Fs bG9jX3BkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgaW50IGNwdSkKICAgICAgICAg cmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAgICAgfQogCisgICAgcmV0dXJuIHNwYzsKK30KKwor c3RhdGljIHZvaWQKK2NzY2hlZF9pbml0X3BkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9w cywgdm9pZCAqcGRhdGEsIGludCBjcHUpCit7CisgICAgc3RydWN0IGNzY2hlZF9wcml2YXRlICpw cnYgPSBDU0NIRURfUFJJVihvcHMpOworICAgIHN0cnVjdCBjc2NoZWRfcGNwdSAqIGNvbnN0IHNw YyA9IHBkYXRhOworICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKyAgICAvKiBjcHUgZGF0YSBu ZWVkcyB0byBiZSBhbGxvY2F0ZWQsIGJ1dCBTVElMTCB1bmluaXRpYWxpemVkICovCisgICAgQVNT RVJUKHNwYyAmJiBzcGMtPnJ1bnEubmV4dCA9PSBzcGMtPnJ1bnEucHJldiAmJiBzcGMtPnJ1bnEu bmV4dCA9PSBOVUxMKTsKKwogICAgIHNwaW5fbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ssIGZsYWdz KTsKIAogICAgIC8qIEluaXRpYWxpemUvdXBkYXRlIHN5c3RlbS13aWRlIGNvbmZpZyAqLwpAQCAt NTYwLDE2ICs1NzEsMTIgQEAgY3NjaGVkX2FsbG9jX3BkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVs ZXIgKm9wcywgaW50IGNwdSkKICAgICBJTklUX0xJU1RfSEVBRCgmc3BjLT5ydW5xKTsKICAgICBz cGMtPnJ1bnFfc29ydF9sYXN0ID0gcHJ2LT5ydW5xX3NvcnQ7CiAgICAgc3BjLT5pZGxlX2JpYXMg PSBucl9jcHVfaWRzIC0gMTsKLSAgICBpZiAoIHBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgY3B1KS5z Y2hlZF9wcml2ID09IE5VTEwgKQotICAgICAgICBwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSku c2NoZWRfcHJpdiA9IHNwYzsKIAogICAgIC8qIFN0YXJ0IG9mZiBpZGxpbmcuLi4gKi8KICAgICBC VUdfT04oIWlzX2lkbGVfdmNwdShjdXJyX29uX2NwdShjcHUpKSk7CiAgICAgY3B1bWFza19zZXRf Y3B1KGNwdSwgcHJ2LT5pZGxlcnMpOwogCiAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJ2 LT5sb2NrLCBmbGFncyk7Ci0KLSAgICByZXR1cm4gc3BjOwogfQogCiAjaWZuZGVmIE5ERUJVRwpA QCAtMjA1MSw2ICsyMDU4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgc2NoZWRf Y3JlZGl0X2RlZiA9IHsKICAgICAuYWxsb2NfdmRhdGEgICAgPSBjc2NoZWRfYWxsb2NfdmRhdGEs CiAgICAgLmZyZWVfdmRhdGEgICAgID0gY3NjaGVkX2ZyZWVfdmRhdGEsCiAgICAgLmFsbG9jX3Bk YXRhICAgID0gY3NjaGVkX2FsbG9jX3BkYXRhLAorICAgIC5pbml0X3BkYXRhICAgICA9IGNzY2hl ZF9pbml0X3BkYXRhLAogICAgIC5mcmVlX3BkYXRhICAgICA9IGNzY2hlZF9mcmVlX3BkYXRhLAog ICAgIC5hbGxvY19kb21kYXRhICA9IGNzY2hlZF9hbGxvY19kb21kYXRhLAogICAgIC5mcmVlX2Rv bWRhdGEgICA9IGNzY2hlZF9mcmVlX2RvbWRhdGEsCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3Nj aGVkX2NyZWRpdDIuYyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jCmluZGV4IDM2ZGM5ZWUu LmIxNjQyYTggMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jCisrKyBiL3hl bi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jCkBAIC0xOTY4LDcgKzE5NjgsOCBAQCBzdGF0aWMgdm9p ZCBkZWFjdGl2YXRlX3J1bnF1ZXVlKHN0cnVjdCBjc2NoZWQyX3ByaXZhdGUgKnBydiwgaW50IHJx aSkKICAgICBjcHVtYXNrX2NsZWFyX2NwdShycWksICZwcnYtPmFjdGl2ZV9xdWV1ZXMpOwogfQog Ci1zdGF0aWMgdm9pZCBpbml0X3BjcHUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBpbnQg Y3B1KQorc3RhdGljIHZvaWQKK2NzY2hlZDJfaW5pdF9wZGF0YShjb25zdCBzdHJ1Y3Qgc2NoZWR1 bGVyICpvcHMsIHZvaWQgKnBkYXRhLCBpbnQgY3B1KQogewogICAgIHVuc2lnbmVkIHJxaTsKICAg ICB1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtMTk3OCwxMiArMTk3OSw3IEBAIHN0YXRpYyB2b2lk IGluaXRfcGNwdShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIGludCBjcHUpCiAKICAgICBz cGluX2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2NrLCBmbGFncyk7CiAKLSAgICBpZiAoIGNwdW1hc2tf dGVzdF9jcHUoY3B1LCAmcHJ2LT5pbml0aWFsaXplZCkgKQotICAgIHsKLSAgICAgICAgcHJpbnRr KCIlczogU3RyYW5nZSwgY3B1ICVkIGFscmVhZHkgaW5pdGlhbGl6ZWQhXG4iLCBfX2Z1bmNfXywg Y3B1KTsKLSAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJ2LT5sb2NrLCBmbGFncyk7 Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgQVNTRVJUKCFjcHVtYXNrX3Rlc3RfY3B1KGNw dSwgJnBydi0+aW5pdGlhbGl6ZWQpKTsKIAogICAgIC8qIEZpZ3VyZSBvdXQgd2hpY2ggcnVucXVl dWUgdG8gcHV0IGl0IGluICovCiAgICAgcnFpID0gMDsKQEAgLTIwMzMsMjAgKzIwMjksNiBAQCBz dGF0aWMgdm9pZCBpbml0X3BjcHUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBpbnQgY3B1 KQogICAgIHJldHVybjsKIH0KIAotc3RhdGljIHZvaWQgKgotY3NjaGVkMl9hbGxvY19wZGF0YShj b25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIGludCBjcHUpCi17Ci0gICAgLyogQ2hlY2sgdG8g c2VlIGlmIHRoZSBjcHUgaXMgb25saW5lIHlldCAqLwotICAgIC8qIE5vdGU6IGNwdSAwIGRvZXNu J3QgZ2V0IGEgU1RBUlRJTkcgY2FsbGJhY2sgKi8KLSAgICBpZiAoIGNwdSA9PSAwIHx8IGNwdV90 b19zb2NrZXQoY3B1KSAhPSBYRU5fSU5WQUxJRF9TT0NLRVRfSUQgKQotICAgICAgICBpbml0X3Bj cHUob3BzLCBjcHUpOwotICAgIGVsc2UKLSAgICAgICAgcHJpbnRrKCIlczogY3B1ICVkIG5vdCBv bmxpbmUgeWV0LCBkZWZlcnJpbmcgaW5pdGlhbGl6YXRnaW9uXG4iLAotICAgICAgICAgICAgICAg X19mdW5jX18sIGNwdSk7Ci0KLSAgICByZXR1cm4gTlVMTDsKLX0KLQogc3RhdGljIHZvaWQKIGNz Y2hlZDJfZnJlZV9wZGF0YShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHZvaWQgKnBjcHUs IGludCBjcHUpCiB7CkBAIC0yMDU4LDcgKzIwNDAsNyBAQCBjc2NoZWQyX2ZyZWVfcGRhdGEoY29u c3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCB2b2lkICpwY3B1LCBpbnQgY3B1KQogCiAgICAgc3Bp bl9sb2NrX2lycXNhdmUoJnBydi0+bG9jaywgZmxhZ3MpOwogCi0gICAgQlVHX09OKCFjcHVtYXNr X3Rlc3RfY3B1KGNwdSwgJnBydi0+aW5pdGlhbGl6ZWQpKTsKKyAgICBBU1NFUlQoY3B1bWFza190 ZXN0X2NwdShjcHUsICZwcnYtPmluaXRpYWxpemVkKSk7CiAgICAgCiAgICAgLyogRmluZCB0aGUg b2xkIHJ1bnF1ZXVlIGFuZCByZW1vdmUgdGhpcyBjcHUgZnJvbSBpdCAqLwogICAgIHJxaSA9IHBy di0+cnVucV9tYXBbY3B1XTsKQEAgLTIwOTYsNDkgKzIwNzgsNiBAQCBjc2NoZWQyX2ZyZWVfcGRh dGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCB2b2lkICpwY3B1LCBpbnQgY3B1KQogfQog CiBzdGF0aWMgaW50Ci1jc2NoZWQyX2NwdV9zdGFydGluZyhpbnQgY3B1KQotewotICAgIHN0cnVj dCBzY2hlZHVsZXIgKm9wczsKLQotICAgIC8qIEhvcGUgdGhpcyBpcyBzYWZlIGZyb20gY3B1cG9v bHMgc3dpdGNoaW5nIHRoaW5ncyBhcm91bmQuIDotKSAqLwotICAgIG9wcyA9IHBlcl9jcHUoc2No ZWR1bGVyLCBjcHUpOwotCi0gICAgaWYgKCBvcHMtPmFsbG9jX3BkYXRhID09IGNzY2hlZDJfYWxs b2NfcGRhdGEgKQotICAgICAgICBpbml0X3BjcHUob3BzLCBjcHUpOwotCi0gICAgcmV0dXJuIE5P VElGWV9ET05FOwotfQotCi1zdGF0aWMgaW50IGNwdV9jcmVkaXQyX2NhbGxiYWNrKAotICAgIHN0 cnVjdCBub3RpZmllcl9ibG9jayAqbmZiLCB1bnNpZ25lZCBsb25nIGFjdGlvbiwgdm9pZCAqaGNw dSkKLXsKLSAgICB1bnNpZ25lZCBpbnQgY3B1ID0gKHVuc2lnbmVkIGxvbmcpaGNwdTsKLSAgICBp bnQgcmMgPSAwOwotCi0gICAgc3dpdGNoICggYWN0aW9uICkKLSAgICB7Ci0gICAgY2FzZSBDUFVf U1RBUlRJTkc6Ci0gICAgICAgIGNzY2hlZDJfY3B1X3N0YXJ0aW5nKGNwdSk7Ci0gICAgICAgIGJy ZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIHJldHVybiAh cmMgPyBOT1RJRllfRE9ORSA6IG5vdGlmaWVyX2Zyb21fZXJybm8ocmMpOwotfQotCi1zdGF0aWMg c3RydWN0IG5vdGlmaWVyX2Jsb2NrIGNwdV9jcmVkaXQyX25mYiA9IHsKLSAgICAubm90aWZpZXJf Y2FsbCA9IGNwdV9jcmVkaXQyX2NhbGxiYWNrCi19OwotCi1zdGF0aWMgaW50Ci1jc2NoZWQyX2ds b2JhbF9pbml0KHZvaWQpCi17Ci0gICAgcmVnaXN0ZXJfY3B1X25vdGlmaWVyKCZjcHVfY3JlZGl0 Ml9uZmIpOwotICAgIHJldHVybiAwOwotfQotCi1zdGF0aWMgaW50CiBjc2NoZWQyX2luaXQoc3Ry dWN0IHNjaGVkdWxlciAqb3BzKQogewogICAgIGludCBpOwpAQCAtMjIxNiwxMiArMjE1NSwxMSBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IHNjaGVkdWxlciBzY2hlZF9jcmVkaXQyX2RlZiA9IHsKIAog ICAgIC5kdW1wX2NwdV9zdGF0ZSA9IGNzY2hlZDJfZHVtcF9wY3B1LAogICAgIC5kdW1wX3NldHRp bmdzICA9IGNzY2hlZDJfZHVtcCwKLSAgICAuZ2xvYmFsX2luaXQgICAgPSBjc2NoZWQyX2dsb2Jh bF9pbml0LAogICAgIC5pbml0ICAgICAgICAgICA9IGNzY2hlZDJfaW5pdCwKICAgICAuZGVpbml0 ICAgICAgICAgPSBjc2NoZWQyX2RlaW5pdCwKICAgICAuYWxsb2NfdmRhdGEgICAgPSBjc2NoZWQy X2FsbG9jX3ZkYXRhLAogICAgIC5mcmVlX3ZkYXRhICAgICA9IGNzY2hlZDJfZnJlZV92ZGF0YSwK LSAgICAuYWxsb2NfcGRhdGEgICAgPSBjc2NoZWQyX2FsbG9jX3BkYXRhLAorICAgIC5pbml0X3Bk YXRhICAgICA9IGNzY2hlZDJfaW5pdF9wZGF0YSwKICAgICAuZnJlZV9wZGF0YSAgICAgPSBjc2No ZWQyX2ZyZWVfcGRhdGEsCiAgICAgLmFsbG9jX2RvbWRhdGEgID0gY3NjaGVkMl9hbGxvY19kb21k YXRhLAogICAgIC5mcmVlX2RvbWRhdGEgICA9IGNzY2hlZDJfZnJlZV9kb21kYXRhLApkaWZmIC0t Z2l0IGEveGVuL2NvbW1vbi9zY2hlZF9ydC5jIGIveGVuL2NvbW1vbi9zY2hlZF9ydC5jCmluZGV4 IGFjODAxOWYuLmI2YWMzYWQgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc2NoZWRfcnQuYworKysg Yi94ZW4vY29tbW9uL3NjaGVkX3J0LmMKQEAgLTY0OSw4ICs2NDksOCBAQCBydF9kZWluaXQoc3Ry dWN0IHNjaGVkdWxlciAqb3BzKQogICogUG9pbnQgcGVyX2NwdSBzcGlubG9jayB0byB0aGUgZ2xv YmFsIHN5c3RlbSBsb2NrOwogICogQWxsIGNwdSBoYXZlIHNhbWUgZ2xvYmFsIHN5c3RlbSBsb2Nr CiAgKi8KLXN0YXRpYyB2b2lkICoKLXJ0X2FsbG9jX3BkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVs ZXIgKm9wcywgaW50IGNwdSkKK3N0YXRpYyB2b2lkCitydF9pbml0X3BkYXRhKGNvbnN0IHN0cnVj dCBzY2hlZHVsZXIgKm9wcywgdm9pZCAqcGRhdGEsIGludCBjcHUpCiB7CiAgICAgc3RydWN0IHJ0 X3ByaXZhdGUgKnBydiA9IHJ0X3ByaXYob3BzKTsKICAgICBzcGlubG9ja190ICpvbGRfbG9jazsK QEAgLTY2Myw3ICs2NjMsMTEgQEAgcnRfYWxsb2NfcGRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxl ciAqb3BzLCBpbnQgY3B1KQogCiAgICAgLyogX05vdF8gcGNwdV9zY2hlZHVsZV91bmxvY2soKTog cGVyX2NwdSgpLnNjaGVkdWxlX2xvY2sgY2hhbmdlZCEgKi8KICAgICBzcGluX3VubG9ja19pcnFy ZXN0b3JlKG9sZF9sb2NrLCBmbGFncyk7Cit9CiAKK3N0YXRpYyB2b2lkICoKK3J0X2FsbG9jX3Bk YXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgaW50IGNwdSkKK3sKICAgICBpZiAoICFh bGxvY19jcHVtYXNrX3ZhcigmX2NwdW1hc2tfc2NyYXRjaFtjcHVdKSApCiAgICAgICAgIHJldHVy biBFUlJfUFRSKC1FTk9NRU0pOwogCkBAIC0xMzk1LDYgKzEzOTksNyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IHNjaGVkdWxlciBzY2hlZF9ydGRzX2RlZiA9IHsKICAgICAuZGVpbml0ICAgICAgICAg PSBydF9kZWluaXQsCiAgICAgLmFsbG9jX3BkYXRhICAgID0gcnRfYWxsb2NfcGRhdGEsCiAgICAg LmZyZWVfcGRhdGEgICAgID0gcnRfZnJlZV9wZGF0YSwKKyAgICAuaW5pdF9wZGF0YSAgICAgPSBy dF9pbml0X3BkYXRhLAogICAgIC5hbGxvY19kb21kYXRhICA9IHJ0X2FsbG9jX2RvbWRhdGEsCiAg ICAgLmZyZWVfZG9tZGF0YSAgID0gcnRfZnJlZV9kb21kYXRhLAogICAgIC5pbml0X2RvbWFpbiAg ICA9IHJ0X2RvbV9pbml0LAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcK aHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==