From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH RFC 39/49] xen/sched: add code to sync scheduling of all vcpus of a sched item Date: Fri, 29 Mar 2019 16:09:24 +0100 Message-ID: <20190329150934.17694-40-jgross@suse.com> References: <20190329150934.17694-1-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1h9t8n-0003s2-H6 for xen-devel@lists.xenproject.org; Fri, 29 Mar 2019 15:09:57 +0000 In-Reply-To: <20190329150934.17694-1-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Juergen Gross , Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Jan Beulich , Dario Faggioli , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org V2hlbiBzd2l0Y2hpbmcgc2NoZWQgaXRlbXMgc3luY2hyb25pemUgYWxsIHZjcHVzIG9mIHRoZSBu ZXcgaXRlbSB0byBiZQpzY2hlZHVsZWQgYXQgdGhlIHNhbWUgdGltZS4KCkEgdmFyaWFibGUgc2No ZWRfZ3JhbnVsYXJpdHkgaXMgYWRkZWQgd2hpY2ggaG9sZHMgdGhlIG51bWJlciBvZiB2Y3B1cwpw ZXIgc2NoZWR1bGUgaXRlbS4KCkFzIHRhc2tsZXRzIHJlcXVpcmUgdG8gc2NoZWR1bGUgdGhlIGlk bGUgaXRlbSBpdCBpcyByZXF1aXJlZCB0byBzZXQgdGhlCnRhc2tsZXRfd29ya19zY2hlZHVsZWQg cGFyYW1ldGVyIG9mIGRvX3NjaGVkdWxlKCkgdG8gdHJ1ZSBpZiBhbnkgY3B1CmNvdmVyZWQgYnkg dGhlIGN1cnJlbnQgc2NoZWR1bGUoKSBjYWxsIGhhcyBhbnkgcGVuZGluZyB0YXNrbGV0IHdvcmsu CgpGb3Igam9pbmluZyBvdGhlciB2Y3B1cyBvZiB0aGUgc2NoZWR1bGUgaXRlbSB3ZSBuZWVkIHRv IGFkZCBhIG5ldwpzb2Z0aXJxIFNDSEVEX1NMQVZFX1NPRlRJUlEgaW4gb3JkZXIgdG8gaGF2ZSBh IHdheSB0byBpbml0aWF0ZSBhCmNvbnRleHQgc3dpdGNoIHdpdGhvdXQgY2FsbGluZyB0aGUgZ2Vu ZXJpYyBzY2hlZHVsZSgpIGZ1bmN0aW9uCnNlbGVjdGluZyB0aGUgdmNwdSB0byBzd2l0Y2ggdG8s IGFzIHdlIGFscmVhZHkga25vdyB3aGljaCB2Y3B1IHdlCndhbnQgdG8gcnVuLiBUaGlzIGhhcyB0 aGUgb3RoZXIgYWR2YW50YWdlIG5vdCB0byBsb29zZSBhbnkgb3RoZXIKY29uY3VycmVudCBTQ0hF RFVMRV9TT0ZUSVJRIGV2ZW50cy4KClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9z c0BzdXNlLmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvZG9tYWluLmMgICAgICB8ICAzNyArKysrKy0K IHhlbi9jb21tb24vc2NoZWR1bGUuYyAgICAgIHwgMjc1ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLQogeGVuL2NvbW1vbi9zb2Z0aXJxLmMgICAgICAgfCAgIDYg Ky0KIHhlbi9pbmNsdWRlL3hlbi9zY2hlZC1pZi5oIHwgICA3ICsrCiB4ZW4vaW5jbHVkZS94ZW4v c29mdGlycS5oICB8ICAgMSArCiA1IGZpbGVzIGNoYW5nZWQsIDI0NyBpbnNlcnRpb25zKCspLCA3 OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tYWluLmMgYi94ZW4v YXJjaC94ODYvZG9tYWluLmMKaW5kZXggNTNiOGZhMWM5ZC4uN2RhYmE0ZmI5MSAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L2RvbWFpbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9kb21haW4uYwpAQCAt MTcwOSwxMiArMTcwOSw0NSBAQCBzdGF0aWMgdm9pZCBfX2NvbnRleHRfc3dpdGNoKHZvaWQpCiAg ICAgcGVyX2NwdShjdXJyX3ZjcHUsIGNwdSkgPSBuOwogfQogCisvKgorICogUmVuZGV6dm91cyBv biBlbmQgb2YgY29udGV4dCBzd2l0Y2guCisgKiBBcyBubyBsb2NrIGlzIHByb3RlY3RpbmcgdGhp cyByZW5kZXp2b3VzIGZ1bmN0aW9uIHdlIG5lZWQgdG8gdXNlIGF0b21pYworICogYWNjZXNzIGZ1 bmN0aW9ucyBvbiB0aGUgY291bnRlci4KKyAqIFRoZSBjb3VudGVyIHdpbGwgYmUgMCBpbiBjYXNl IG5vIHJlbmRlenZvdXMgaXMgbmVlZGVkLiBGb3IgdGhlIHJlbmRlenZvdXMKKyAqIGNhc2UgaXQg aXMgaW5pdGlhbGlzZWQgdG8gdGhlIG51bWJlciBvZiBjcHVzIHRvIHJlbmRlenZvdXMgcGx1cyAx LiBFYWNoCisgKiBtZW1iZXIgZW50ZXJpbmcgZGVjcmVtZW50cyB0aGUgY291bnRlci4gVGhlIGxh c3Qgb25lIHdpbGwgZGVjcmVtZW50IGl0IHRvCisgKiAxIGFuZCBwZXJmb3JtIHRoZSBmaW5hbCBu ZWVkZWQgYWN0aW9uIGluIHRoYXQgY2FzZSAoY2FsbCBvZiBjb250ZXh0X3NhdmVkKCkKKyAqIGlm IHByZXYgd2FzIHNwZWNpZmllZCwgYW5kIHRoZW4gc2V0IHRoZSBjb3VudGVyIHRvIHplcm8uIFRo ZSBvdGhlciBtZW1iZXJzCisgKiB3aWxsIHdhaXQgdW50aWwgdGhlIGNvdW50ZXIgYmVjb21lcyB6 ZXJvIHVudGlsIHRoZXkgcHJvY2VlZC4KKyAqLworc3RhdGljIHZvaWQgY29udGV4dF93YWl0X3Jl bmRlenZvdXNfb3V0KHN0cnVjdCBzY2hlZF9pdGVtICppdGVtLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2Y3B1ICpwcmV2KQoreworICAgIGlmICggYXRv bWljX3JlYWQoJml0ZW0tPnJlbmRlenZvdXNfb3V0X2NudCkgKQorICAgIHsKKyAgICAgICAgaW50 IGNudCA9IGF0b21pY19kZWNfcmV0dXJuKCZpdGVtLT5yZW5kZXp2b3VzX291dF9jbnQpOworCisg ICAgICAgIC8qIENhbGwgY29udGV4dF9zYXZlZCgpIGJlZm9yZSByZWxlYXNpbmcgb3RoZXIgd2Fp dGVycy4gKi8KKyAgICAgICAgaWYgKCBjbnQgPT0gMSApCisgICAgICAgIHsKKyAgICAgICAgICAg IGlmICggcHJldiApCisgICAgICAgICAgICAgICAgY29udGV4dF9zYXZlZChwcmV2KTsKKyAgICAg ICAgICAgIGF0b21pY19zZXQoJml0ZW0tPnJlbmRlenZvdXNfb3V0X2NudCwgMCk7CisgICAgICAg IH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgd2hpbGUgKCBhdG9taWNfcmVhZCgmaXRlbS0+ cmVuZGV6dm91c19vdXRfY250KSApCisgICAgICAgICAgICAgICAgY3B1X3JlbGF4KCk7CisgICAg fQorICAgIGVsc2UgaWYgKCBwcmV2ICkKKyAgICAgICAgY29udGV4dF9zYXZlZChwcmV2KTsKK30K IAogdm9pZCBjb250ZXh0X3N3aXRjaChzdHJ1Y3QgdmNwdSAqcHJldiwgc3RydWN0IHZjcHUgKm5l eHQpCiB7CiAgICAgdW5zaWduZWQgaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKICAgICBj b25zdCBzdHJ1Y3QgZG9tYWluICpwcmV2ZCA9IHByZXYtPmRvbWFpbiwgKm5leHRkID0gbmV4dC0+ ZG9tYWluOwogICAgIHVuc2lnbmVkIGludCBkaXJ0eV9jcHUgPSBuZXh0LT5kaXJ0eV9jcHU7Cisg ICAgc3RydWN0IHNjaGVkX2l0ZW0gKml0ZW0gPSBuZXh0LT5zY2hlZF9pdGVtOwogCiAgICAgQVNT RVJUKGxvY2FsX2lycV9pc19lbmFibGVkKCkpOwogCkBAIC0xNzg3LDcgKzE4MjAsNyBAQCB2b2lk IGNvbnRleHRfc3dpdGNoKHN0cnVjdCB2Y3B1ICpwcmV2LCBzdHJ1Y3QgdmNwdSAqbmV4dCkKICAg ICAgICAgfQogICAgIH0KIAotICAgIGNvbnRleHRfc2F2ZWQocHJldik7CisgICAgY29udGV4dF93 YWl0X3JlbmRlenZvdXNfb3V0KGl0ZW0sIHByZXYpOwogCiAgICAgaWYgKCBwcmV2ICE9IG5leHQg KQogICAgIHsKQEAgLTE4MTIsNiArMTg0NSw4IEBAIHZvaWQgY29udGV4dF9zd2l0Y2goc3RydWN0 IHZjcHUgKnByZXYsIHN0cnVjdCB2Y3B1ICpuZXh0KQogCiB2b2lkIGNvbnRpbnVlX3J1bm5pbmco c3RydWN0IHZjcHUgKnNhbWUpCiB7CisgICAgY29udGV4dF93YWl0X3JlbmRlenZvdXNfb3V0KHNh bWUtPnNjaGVkX2l0ZW0sIE5VTEwpOworCiAgICAgLyogU2VlIHRoZSBjb21tZW50IGFib3ZlLiAq LwogICAgIHNhbWUtPmRvbWFpbi0+YXJjaC5jdHh0X3N3aXRjaC0+dGFpbChzYW1lKTsKICAgICBC VUcoKTsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc2NoZWR1bGUuYyBiL3hlbi9jb21tb24vc2No ZWR1bGUuYwppbmRleCAwODIyMjVkMTczLi5kMzQ3NGU2NTY1IDEwMDY0NAotLS0gYS94ZW4vY29t bW9uL3NjaGVkdWxlLmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZHVsZS5jCkBAIC01NCw2ICs1NCwx MCBAQCBib29sZWFuX3BhcmFtKCJzY2hlZF9zbXRfcG93ZXJfc2F2aW5ncyIsIHNjaGVkX3NtdF9w b3dlcl9zYXZpbmdzKTsKICAqICovCiBpbnQgc2NoZWRfcmF0ZWxpbWl0X3VzID0gU0NIRURfREVG QVVMVF9SQVRFTElNSVRfVVM7CiBpbnRlZ2VyX3BhcmFtKCJzY2hlZF9yYXRlbGltaXRfdXMiLCBz Y2hlZF9yYXRlbGltaXRfdXMpOworCisvKiBOdW1iZXIgb2YgdmNwdXMgcGVyIHN0cnVjdCBzY2hl ZF9pdGVtLiAqLworc3RhdGljIHVuc2lnbmVkIGludCBzY2hlZF9ncmFudWxhcml0eSA9IDE7CisK IC8qIFZhcmlvdXMgdGltZXIgaGFuZGxlcnMuICovCiBzdGF0aWMgdm9pZCBzX3RpbWVyX2ZuKHZv aWQgKnVudXNlZCk7CiBzdGF0aWMgdm9pZCB2Y3B1X3BlcmlvZGljX3RpbWVyX2ZuKHZvaWQgKmRh dGEpOwpAQCAtMTYwMCwxMTYgKzE2MDQsMjM1IEBAIHN0YXRpYyB2b2lkIHZjcHVfcGVyaW9kaWNf dGltZXJfd29yayhzdHJ1Y3QgdmNwdSAqdikKICAgICBzZXRfdGltZXIoJnYtPnBlcmlvZGljX3Rp bWVyLCBwZXJpb2RpY19uZXh0X2V2ZW50KTsKIH0KIAotLyoKLSAqIFRoZSBtYWluIGZ1bmN0aW9u Ci0gKiAtIGRlc2NoZWR1bGUgdGhlIGN1cnJlbnQgZG9tYWluIChzY2hlZHVsZXIgaW5kZXBlbmRl bnQpLgotICogLSBwaWNrIGEgbmV3IGRvbWFpbiAoc2NoZWR1bGVyIGRlcGVuZGVudCkuCi0gKi8K LXN0YXRpYyB2b2lkIHNjaGVkdWxlKHZvaWQpCitzdGF0aWMgdm9pZCBzY2hlZF9zd2l0Y2hfaXRl bXMoc3RydWN0IHNjaGVkX3Jlc291cmNlICpzZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3Qgc2NoZWRfaXRlbSAqbmV4dCwgc3RydWN0IHNjaGVkX2l0ZW0gKnByZXYsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc190aW1lX3Qgbm93KQogewotICAgIHN0cnVj dCBzY2hlZF9pdGVtICAgICpwcmV2ID0gY3VycmVudC0+c2NoZWRfaXRlbSwgKm5leHQgPSBOVUxM OwotICAgIHNfdGltZV90ICAgICAgICAgICAgICBub3c7Ci0gICAgc3RydWN0IHNjaGVkdWxlciAg ICAgKnNjaGVkOwotICAgIHVuc2lnbmVkIGxvbmcgICAgICAgICp0YXNrbGV0X3dvcmsgPSAmdGhp c19jcHUodGFza2xldF93b3JrX3RvX2RvKTsKLSAgICBib29sICAgICAgICAgICAgICAgICAgdGFz a2xldF93b3JrX3NjaGVkdWxlZCA9IGZhbHNlOwotICAgIHN0cnVjdCBzY2hlZF9yZXNvdXJjZSAq c2Q7Ci0gICAgc3BpbmxvY2tfdCAgICAgICAgICAgKmxvY2s7Ci0gICAgaW50IGNwdSA9IHNtcF9w cm9jZXNzb3JfaWQoKTsKKyAgICBzZC0+Y3VyciA9IG5leHQ7CiAKLSAgICBBU1NFUlRfTk9UX0lO X0FUT01JQygpOworICAgIFRSQUNFXzNEKFRSQ19TQ0hFRF9TV0lUQ0hfSU5GUFJFViwgcHJldi0+ ZG9tYWluLT5kb21haW5faWQsIHByZXYtPml0ZW1faWQsCisgICAgICAgICAgICAgbm93IC0gcHJl di0+c3RhdGVfZW50cnlfdGltZSk7CisgICAgVFJBQ0VfNEQoVFJDX1NDSEVEX1NXSVRDSF9JTkZO RVhULCBuZXh0LT5kb21haW4tPmRvbWFpbl9pZCwgbmV4dC0+aXRlbV9pZCwKKyAgICAgICAgICAg ICAobmV4dC0+dmNwdS0+cnVuc3RhdGUuc3RhdGUgPT0gUlVOU1RBVEVfcnVubmFibGUpID8KKyAg ICAgICAgICAgICAobm93IC0gbmV4dC0+c3RhdGVfZW50cnlfdGltZSkgOiAwLCBwcmV2LT5uZXh0 X3RpbWUpOwogCi0gICAgU0NIRURfU1RBVF9DUkFOSyhzY2hlZF9ydW4pOworICAgIEFTU0VSVChw cmV2LT52Y3B1LT5ydW5zdGF0ZS5zdGF0ZSA9PSBSVU5TVEFURV9ydW5uaW5nKTsKIAotICAgIHNk ID0gdGhpc19jcHUoc2NoZWRfcmVzKTsKKyAgICBUUkFDRV80RChUUkNfU0NIRURfU1dJVENILCBw cmV2LT5kb21haW4tPmRvbWFpbl9pZCwgcHJldi0+aXRlbV9pZCwKKyAgICAgICAgICAgICBuZXh0 LT5kb21haW4tPmRvbWFpbl9pZCwgbmV4dC0+aXRlbV9pZCk7CisKKyAgICBzY2hlZF9pdGVtX3J1 bnN0YXRlX2NoYW5nZShwcmV2LCBmYWxzZSwgbm93KTsKKyAgICBwcmV2LT5sYXN0X3J1bl90aW1l ID0gbm93OworCisgICAgQVNTRVJUKG5leHQtPnZjcHUtPnJ1bnN0YXRlLnN0YXRlICE9IFJVTlNU QVRFX3J1bm5pbmcpOworICAgIHNjaGVkX2l0ZW1fcnVuc3RhdGVfY2hhbmdlKG5leHQsIHRydWUs IG5vdyk7CisKKyAgICAvKgorICAgICAqIE5CLiBEb24ndCBhZGQgYW55IHRyYWNlIHJlY29yZHMg ZnJvbSBoZXJlIHVudGlsIHRoZSBhY3R1YWwgY29udGV4dAorICAgICAqIHN3aXRjaCwgZWxzZSBs b3N0X3JlY29yZHMgcmVzdW1lIHdpbGwgbm90IHdvcmsgcHJvcGVybHkuCisgICAgICovCisKKyAg ICBBU1NFUlQoIW5leHQtPmlzX3J1bm5pbmcpOworICAgIG5leHQtPmlzX3J1bm5pbmcgPSAxOwor fQorCitzdGF0aWMgYm9vbCBzY2hlZF90YXNrbGV0X2NoZWNrKHZvaWQpCit7CisgICAgdW5zaWdu ZWQgbG9uZyAqdGFza2xldF93b3JrOworICAgIGJvb2wgdGFza2xldF93b3JrX3NjaGVkdWxlZCA9 IGZhbHNlOworICAgIGNvbnN0IGNwdW1hc2tfdCAqbWFzayA9IHRoaXNfY3B1KHNjaGVkX3Jlcykt PmNwdXM7CisgICAgaW50IGNwdTsKIAotICAgIC8qIFVwZGF0ZSB0YXNrbGV0IHNjaGVkdWxpbmcg c3RhdHVzLiAqLwotICAgIHN3aXRjaCAoICp0YXNrbGV0X3dvcmsgKQorICAgIGZvcl9lYWNoX2Nw dSAoIGNwdSwgbWFzayApCiAgICAgewotICAgIGNhc2UgVEFTS0xFVF9lbnF1ZXVlZDoKLSAgICAg ICAgc2V0X2JpdChfVEFTS0xFVF9zY2hlZHVsZWQsIHRhc2tsZXRfd29yayk7Ci0gICAgICAgIC8q IGZhbGx0aHJvdWdoICovCi0gICAgY2FzZSBUQVNLTEVUX2VucXVldWVkfFRBU0tMRVRfc2NoZWR1 bGVkOgotICAgICAgICB0YXNrbGV0X3dvcmtfc2NoZWR1bGVkID0gdHJ1ZTsKLSAgICAgICAgYnJl YWs7Ci0gICAgY2FzZSBUQVNLTEVUX3NjaGVkdWxlZDoKLSAgICAgICAgY2xlYXJfYml0KF9UQVNL TEVUX3NjaGVkdWxlZCwgdGFza2xldF93b3JrKTsKLSAgICBjYXNlIDA6Ci0gICAgICAgIC8qdGFz a2xldF93b3JrX3NjaGVkdWxlZCA9IGZhbHNlOyovCi0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1 bHQ6Ci0gICAgICAgIEJVRygpOwotICAgIH0KKyAgICAgICAgdGFza2xldF93b3JrID0gJnBlcl9j cHUodGFza2xldF93b3JrX3RvX2RvLCBjcHUpOwogCi0gICAgbG9jayA9IHBjcHVfc2NoZWR1bGVf bG9ja19pcnEoY3B1KTsKKyAgICAgICAgc3dpdGNoICggKnRhc2tsZXRfd29yayApCisgICAgICAg IHsKKyAgICAgICAgY2FzZSBUQVNLTEVUX2VucXVldWVkOgorICAgICAgICAgICAgc2V0X2JpdChf VEFTS0xFVF9zY2hlZHVsZWQsIHRhc2tsZXRfd29yayk7CisgICAgICAgICAgICAvKiBmYWxsdGhy b3VnaCAqLworICAgICAgICBjYXNlIFRBU0tMRVRfZW5xdWV1ZWR8VEFTS0xFVF9zY2hlZHVsZWQ6 CisgICAgICAgICAgICB0YXNrbGV0X3dvcmtfc2NoZWR1bGVkID0gdHJ1ZTsKKyAgICAgICAgICAg IGJyZWFrOworICAgICAgICBjYXNlIFRBU0tMRVRfc2NoZWR1bGVkOgorICAgICAgICAgICAgY2xl YXJfYml0KF9UQVNLTEVUX3NjaGVkdWxlZCwgdGFza2xldF93b3JrKTsKKyAgICAgICAgY2FzZSAw OgorICAgICAgICAgICAgLyp0YXNrbGV0X3dvcmtfc2NoZWR1bGVkID0gZmFsc2U7Ki8KKyAgICAg ICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQlVHKCk7CisgICAg ICAgIH0KKyAgICB9CiAKLSAgICBub3cgPSBOT1coKTsKKyAgICByZXR1cm4gdGFza2xldF93b3Jr X3NjaGVkdWxlZDsKK30KIAotICAgIHN0b3BfdGltZXIoJnNkLT5zX3RpbWVyKTsKK3N0YXRpYyBz dHJ1Y3Qgc2NoZWRfaXRlbSAqZG9fc2NoZWR1bGUoc3RydWN0IHNjaGVkX2l0ZW0gKnByZXYsIHNf dGltZV90IG5vdykKK3sKKyAgICBzdHJ1Y3Qgc2NoZWR1bGVyICpzY2hlZCA9IHRoaXNfY3B1KHNj aGVkdWxlcik7CisgICAgc3RydWN0IHNjaGVkX3Jlc291cmNlICpzZCA9IHRoaXNfY3B1KHNjaGVk X3Jlcyk7CisgICAgc3RydWN0IHNjaGVkX2l0ZW0gKm5leHQ7CiAKICAgICAvKiBnZXQgcG9saWN5 LXNwZWNpZmljIGRlY2lzaW9uIG9uIHNjaGVkdWxpbmcuLi4gKi8KLSAgICBzY2hlZCA9IHRoaXNf Y3B1KHNjaGVkdWxlcik7Ci0gICAgc2NoZWQtPmRvX3NjaGVkdWxlKHNjaGVkLCBwcmV2LCBub3cs IHRhc2tsZXRfd29ya19zY2hlZHVsZWQpOworICAgIHNjaGVkLT5kb19zY2hlZHVsZShzY2hlZCwg cHJldiwgbm93LCBzY2hlZF90YXNrbGV0X2NoZWNrKCkpOwogCiAgICAgbmV4dCA9IHByZXYtPm5l eHRfdGFzazsKIAotICAgIHNkLT5jdXJyID0gbmV4dDsKLQogICAgIGlmICggcHJldi0+bmV4dF90 aW1lID49IDAgKSAvKiAtdmUgbWVhbnMgbm8gbGltaXQgKi8KICAgICAgICAgc2V0X3RpbWVyKCZz ZC0+c190aW1lciwgbm93ICsgcHJldi0+bmV4dF90aW1lKTsKIAotICAgIGlmICggdW5saWtlbHko cHJldiA9PSBuZXh0KSApCisgICAgaWYgKCBsaWtlbHkocHJldiAhPSBuZXh0KSApCisgICAgICAg IHNjaGVkX3N3aXRjaF9pdGVtcyhzZCwgbmV4dCwgcHJldiwgbm93KTsKKworICAgIHJldHVybiBu ZXh0OworfQorCisvKgorICogUmVuZGV6dm91cyBiZWZvcmUgdGFraW5nIGEgc2NoZWR1bGluZyBk ZWNpc2lvbi4KKyAqIENhbGxlZCB3aXRoIHNjaGVkdWxlIGxvY2sgaGVsZCwgc28gYWxsIGFjY2Vz c2VzIHRvIHRoZSByZW5kZXp2b3VzIGNvdW50ZXIKKyAqIGNhbiBiZSBub3JtYWwgb25lcyAobm8g YXRvbWljIGFjY2Vzc2VzIG5lZWRlZCkuCisgKiBUaGUgY291bnRlciBpcyBpbml0aWFsaXplZCB0 byB0aGUgbnVtYmVyIG9mIGNwdXMgdG8gcmVuZGV6dm91cyBpbml0aWFsbHkuCisgKiBFYWNoIGNw dSBlbnRlcmluZyB3aWxsIGRlY3JlbWVudCB0aGUgY291bnRlci4gSW4gY2FzZSB0aGUgY291bnRl ciBiZWNvbWVzCisgKiB6ZXJvIGRvX3NjaGVkdWxlKCkgaXMgY2FsbGVkIGFuZCB0aGUgcmVuZGV6 dm91cyBjb3VudGVyIGZvciBsZWF2aW5nCisgKiBjb250ZXh0X3N3aXRjaCgpIGlzIHNldC4gQWxs IG90aGVyIG1lbWJlcnMgd2lsbCB3YWl0IHVudGlsIHRoZSBjb3VudGVyIGlzCisgKiBiZWNvbWlu ZyB6ZXJvLCBkcm9wcGluZyB0aGUgc2NoZWR1bGUgbG9jayBpbiBiZXR3ZWVuLgorICovCitzdGF0 aWMgc3RydWN0IHNjaGVkX2l0ZW0gKnNjaGVkX3dhaXRfcmVuZGV6dm91c19pbihzdHJ1Y3Qgc2No ZWRfaXRlbSAqcHJldiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNwaW5sb2NrX3QgKmxvY2ssIGludCBjcHUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzX3RpbWVfdCBub3cpCit7CisgICAgc3Ry dWN0IHNjaGVkX2l0ZW0gKm5leHQ7CisKKyAgICBpZiAoICEtLXByZXYtPnJlbmRlenZvdXNfaW5f Y250ICkKKyAgICB7CisgICAgICAgIG5leHQgPSBkb19zY2hlZHVsZShwcmV2LCBub3cpOworICAg ICAgICBhdG9taWNfc2V0KCZuZXh0LT5yZW5kZXp2b3VzX291dF9jbnQsIHNjaGVkX2dyYW51bGFy aXR5ICsgMSk7CisgICAgICAgIHJldHVybiBuZXh0OworICAgIH0KKworICAgIHdoaWxlICggcHJl di0+cmVuZGV6dm91c19pbl9jbnQgKQogICAgIHsKICAgICAgICAgcGNwdV9zY2hlZHVsZV91bmxv Y2tfaXJxKGxvY2ssIGNwdSk7CisgICAgICAgIGNwdV9yZWxheCgpOworICAgICAgICBwY3B1X3Nj aGVkdWxlX2xvY2tfaXJxKGNwdSk7CisgICAgfQorCisgICAgcmV0dXJuIHByZXYtPm5leHRfdGFz azsKK30KKworc3RhdGljIHZvaWQgc2NoZWRfY29udGV4dF9zd2l0Y2goc3RydWN0IHZjcHUgKnZw cmV2LCBzdHJ1Y3QgdmNwdSAqdm5leHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzX3RpbWVfdCBub3cpCit7CisgICAgaWYgKCB1bmxpa2VseSh2cHJldiA9PSB2bmV4dCkgKQor ICAgIHsKICAgICAgICAgVFJBQ0VfNEQoVFJDX1NDSEVEX1NXSVRDSF9JTkZDT05ULAotICAgICAg ICAgICAgICAgICBuZXh0LT5kb21haW4tPmRvbWFpbl9pZCwgbmV4dC0+aXRlbV9pZCwKLSAgICAg ICAgICAgICAgICAgbm93IC0gcHJldi0+c3RhdGVfZW50cnlfdGltZSwKLSAgICAgICAgICAgICAg ICAgcHJldi0+bmV4dF90aW1lKTsKLSAgICAgICAgdHJhY2VfY29udGludWVfcnVubmluZyhuZXh0 LT52Y3B1KTsKLSAgICAgICAgcmV0dXJuIGNvbnRpbnVlX3J1bm5pbmcocHJldi0+dmNwdSk7Cisg ICAgICAgICAgICAgICAgIHZuZXh0LT5kb21haW4tPmRvbWFpbl9pZCwgdm5leHQtPnNjaGVkX2l0 ZW0tPml0ZW1faWQsCisgICAgICAgICAgICAgICAgIG5vdyAtIHZwcmV2LT5ydW5zdGF0ZS5zdGF0 ZV9lbnRyeV90aW1lLAorICAgICAgICAgICAgICAgICB2cHJldi0+c2NoZWRfaXRlbS0+bmV4dF90 aW1lKTsKKyAgICAgICAgdHJhY2VfY29udGludWVfcnVubmluZyh2bmV4dCk7CisgICAgICAgIHJl dHVybiBjb250aW51ZV9ydW5uaW5nKHZwcmV2KTsKICAgICB9CiAKLSAgICBUUkFDRV8zRChUUkNf U0NIRURfU1dJVENIX0lORlBSRVYsCi0gICAgICAgICAgICAgcHJldi0+ZG9tYWluLT5kb21haW5f aWQsIHByZXYtPml0ZW1faWQsCi0gICAgICAgICAgICAgbm93IC0gcHJldi0+c3RhdGVfZW50cnlf dGltZSk7Ci0gICAgVFJBQ0VfNEQoVFJDX1NDSEVEX1NXSVRDSF9JTkZORVhULAotICAgICAgICAg ICAgIG5leHQtPmRvbWFpbi0+ZG9tYWluX2lkLCBuZXh0LT5pdGVtX2lkLAotICAgICAgICAgICAg IChuZXh0LT52Y3B1LT5ydW5zdGF0ZS5zdGF0ZSA9PSBSVU5TVEFURV9ydW5uYWJsZSkgPwotICAg ICAgICAgICAgIChub3cgLSBuZXh0LT5zdGF0ZV9lbnRyeV90aW1lKSA6IDAsCi0gICAgICAgICAg ICAgcHJldi0+bmV4dF90aW1lKTsKKyAgICBTQ0hFRF9TVEFUX0NSQU5LKHNjaGVkX2N0eCk7CiAK LSAgICBBU1NFUlQocHJldi0+dmNwdS0+cnVuc3RhdGUuc3RhdGUgPT0gUlVOU1RBVEVfcnVubmlu Zyk7CisgICAgc3RvcF90aW1lcigmdnByZXYtPnBlcmlvZGljX3RpbWVyKTsKIAotICAgIFRSQUNF XzREKFRSQ19TQ0hFRF9TV0lUQ0gsCi0gICAgICAgICAgICAgcHJldi0+ZG9tYWluLT5kb21haW5f aWQsIHByZXYtPml0ZW1faWQsCi0gICAgICAgICAgICAgbmV4dC0+ZG9tYWluLT5kb21haW5faWQs IG5leHQtPml0ZW1faWQpOworICAgIGlmICggdm5leHQtPnNjaGVkX2l0ZW0tPm1pZ3JhdGVkICkK KyAgICAgICAgdmNwdV9tb3ZlX2lycXModm5leHQpOwogCi0gICAgc2NoZWRfaXRlbV9ydW5zdGF0 ZV9jaGFuZ2UocHJldiwgZmFsc2UsIG5vdyk7Ci0gICAgcHJldi0+bGFzdF9ydW5fdGltZSA9IG5v dzsKKyAgICB2Y3B1X3BlcmlvZGljX3RpbWVyX3dvcmsodm5leHQpOwogCi0gICAgQVNTRVJUKG5l eHQtPnZjcHUtPnJ1bnN0YXRlLnN0YXRlICE9IFJVTlNUQVRFX3J1bm5pbmcpOwotICAgIHNjaGVk X2l0ZW1fcnVuc3RhdGVfY2hhbmdlKG5leHQsIHRydWUsIG5vdyk7CisgICAgY29udGV4dF9zd2l0 Y2godnByZXYsIHZuZXh0KTsKK30KIAotICAgIC8qCi0gICAgICogTkIuIERvbid0IGFkZCBhbnkg dHJhY2UgcmVjb3JkcyBmcm9tIGhlcmUgdW50aWwgdGhlIGFjdHVhbCBjb250ZXh0Ci0gICAgICog c3dpdGNoLCBlbHNlIGxvc3RfcmVjb3JkcyByZXN1bWUgd2lsbCBub3Qgd29yayBwcm9wZXJseS4K LSAgICAgKi8KK3N0YXRpYyB2b2lkIHNjaGVkX3NsYXZlKHZvaWQpCit7CisgICAgc3RydWN0IHZj cHUgICAgICAgICAgKnZwcmV2ID0gY3VycmVudDsKKyAgICBzdHJ1Y3Qgc2NoZWRfaXRlbSAgICAq cHJldiA9IHZwcmV2LT5zY2hlZF9pdGVtLCAqbmV4dDsKKyAgICBzX3RpbWVfdCAgICAgICAgICAg ICAgbm93OworICAgIHNwaW5sb2NrX3QgICAgICAgICAgICpsb2NrOworICAgIGludCBjcHUgPSBz bXBfcHJvY2Vzc29yX2lkKCk7CiAKLSAgICBBU1NFUlQoIW5leHQtPmlzX3J1bm5pbmcpOwotICAg IG5leHQtPmlzX3J1bm5pbmcgPSAxOwotICAgIG5leHQtPnN0YXRlX2VudHJ5X3RpbWUgPSBub3c7 CisgICAgQVNTRVJUX05PVF9JTl9BVE9NSUMoKTsKKworICAgIGxvY2sgPSBwY3B1X3NjaGVkdWxl X2xvY2tfaXJxKGNwdSk7CisKKyAgICBub3cgPSBOT1coKTsKKworICAgIGlmICggIXByZXYtPnJl bmRlenZvdXNfaW5fY250ICkKKyAgICB7CisgICAgICAgIHBjcHVfc2NoZWR1bGVfdW5sb2NrX2ly cShsb2NrLCBjcHUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RvcF90aW1lcigm dGhpc19jcHUoc2NoZWRfcmVzKS0+c190aW1lcik7CisKKyAgICBuZXh0ID0gc2NoZWRfd2FpdF9y ZW5kZXp2b3VzX2luKHByZXYsIGxvY2ssIGNwdSwgbm93KTsKIAogICAgIHBjcHVfc2NoZWR1bGVf dW5sb2NrX2lycShsb2NrLCBjcHUpOwogCi0gICAgU0NIRURfU1RBVF9DUkFOSyhzY2hlZF9jdHgp OworICAgIHNjaGVkX2NvbnRleHRfc3dpdGNoKHZwcmV2LCBuZXh0LT52Y3B1LCBub3cpOworfQog Ci0gICAgc3RvcF90aW1lcigmcHJldi0+dmNwdS0+cGVyaW9kaWNfdGltZXIpOworLyoKKyAqIFRo ZSBtYWluIGZ1bmN0aW9uCisgKiAtIGRlc2NoZWR1bGUgdGhlIGN1cnJlbnQgZG9tYWluIChzY2hl ZHVsZXIgaW5kZXBlbmRlbnQpLgorICogLSBwaWNrIGEgbmV3IGRvbWFpbiAoc2NoZWR1bGVyIGRl cGVuZGVudCkuCisgKi8KK3N0YXRpYyB2b2lkIHNjaGVkdWxlKHZvaWQpCit7CisgICAgc3RydWN0 IHZjcHUgICAgICAgICAgKnZuZXh0LCAqdnByZXYgPSBjdXJyZW50OworICAgIHN0cnVjdCBzY2hl ZF9pdGVtICAgICpwcmV2ID0gdnByZXYtPnNjaGVkX2l0ZW0sICpuZXh0ID0gTlVMTDsKKyAgICBz X3RpbWVfdCAgICAgICAgICAgICAgbm93OworICAgIHN0cnVjdCBzY2hlZF9yZXNvdXJjZSAqc2Q7 CisgICAgc3BpbmxvY2tfdCAgICAgICAgICAgKmxvY2s7CisgICAgaW50IGNwdSA9IHNtcF9wcm9j ZXNzb3JfaWQoKTsKKworICAgIEFTU0VSVF9OT1RfSU5fQVRPTUlDKCk7CiAKLSAgICBpZiAoIG5l eHQtPm1pZ3JhdGVkICkKLSAgICAgICAgdmNwdV9tb3ZlX2lycXMobmV4dC0+dmNwdSk7CisgICAg U0NIRURfU1RBVF9DUkFOSyhzY2hlZF9ydW4pOwogCi0gICAgdmNwdV9wZXJpb2RpY190aW1lcl93 b3JrKG5leHQtPnZjcHUpOworICAgIHNkID0gdGhpc19jcHUoc2NoZWRfcmVzKTsKKworICAgIGxv Y2sgPSBwY3B1X3NjaGVkdWxlX2xvY2tfaXJxKGNwdSk7CisKKyAgICBpZiAoIHByZXYtPnJlbmRl enZvdXNfaW5fY250ICkKKyAgICB7CisgICAgICAgIC8qCisgICAgICAgICAqIFdlIGhhdmUgYSBy YWNlOiBzY2hlZF9zbGF2ZSgpIHNob3VsZCBiZSBjYWxsZWQsIHNvIHJhaXNlIGEgc29mdGlycQor ICAgICAgICAgKiBpbiBvcmRlciB0byByZS1lbnRlciBzY2hlZHVsZSgpIGxhdGVyIGFuZCBjYWxs IHNjaGVkX3NsYXZlKCkgbm93LgorICAgICAgICAgKi8KKyAgICAgICAgcGNwdV9zY2hlZHVsZV91 bmxvY2tfaXJxKGxvY2ssIGNwdSk7CisKKyAgICAgICAgcmFpc2Vfc29mdGlycShTQ0hFRFVMRV9T T0ZUSVJRKTsKKyAgICAgICAgcmV0dXJuIHNjaGVkX3NsYXZlKCk7CisgICAgfQorCisgICAgbm93 ID0gTk9XKCk7CisKKyAgICBzdG9wX3RpbWVyKCZzZC0+c190aW1lcik7CisKKyAgICBpZiAoIHNj aGVkX2dyYW51bGFyaXR5ID4gMSApCisgICAgeworICAgICAgICBjcHVtYXNrX3QgbWFzazsKKwor ICAgICAgICBwcmV2LT5yZW5kZXp2b3VzX2luX2NudCA9IHNjaGVkX2dyYW51bGFyaXR5OworICAg ICAgICBjcHVtYXNrX2FuZG5vdCgmbWFzaywgc2QtPmNwdXMsIGNwdW1hc2tfb2YoY3B1KSk7Cisg ICAgICAgIGNwdW1hc2tfcmFpc2Vfc29mdGlycSgmbWFzaywgU0NIRURfU0xBVkVfU09GVElSUSk7 CisgICAgICAgIG5leHQgPSBzY2hlZF93YWl0X3JlbmRlenZvdXNfaW4ocHJldiwgbG9jaywgY3B1 LCBub3cpOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBwcmV2LT5yZW5kZXp2b3Vz X2luX2NudCA9IDA7CisgICAgICAgIG5leHQgPSBkb19zY2hlZHVsZShwcmV2LCBub3cpOworICAg ICAgICBhdG9taWNfc2V0KCZuZXh0LT5yZW5kZXp2b3VzX291dF9jbnQsIDApOworICAgIH0KKwor ICAgIHBjcHVfc2NoZWR1bGVfdW5sb2NrX2lycShsb2NrLCBjcHUpOwogCi0gICAgY29udGV4dF9z d2l0Y2gocHJldi0+dmNwdSwgbmV4dC0+dmNwdSk7CisgICAgdm5leHQgPSBuZXh0LT52Y3B1Owor ICAgIHNjaGVkX2NvbnRleHRfc3dpdGNoKHZwcmV2LCB2bmV4dCwgbm93KTsKIH0KIAogdm9pZCBj b250ZXh0X3NhdmVkKHN0cnVjdCB2Y3B1ICpwcmV2KQpAQCAtMTc2Nyw2ICsxODkwLDcgQEAgc3Rh dGljIGludCBjcHVfc2NoZWR1bGVfdXAodW5zaWduZWQgaW50IGNwdSkKICAgICBpZiAoIHNkID09 IE5VTEwgKQogICAgICAgICByZXR1cm4gLUVOT01FTTsKICAgICBzZC0+cHJvY2Vzc29yID0gY3B1 OworICAgIHNkLT5jcHVzID0gY3B1bWFza19vZihjcHUpOwogICAgIHBlcl9jcHUoc2NoZWRfcmVz LCBjcHUpID0gc2Q7CiAKICAgICBwZXJfY3B1KHNjaGVkdWxlciwgY3B1KSA9ICZvcHM7CkBAIC0x OTI2LDYgKzIwNTAsNyBAQCB2b2lkIF9faW5pdCBzY2hlZHVsZXJfaW5pdCh2b2lkKQogICAgIGlu dCBpOwogCiAgICAgb3Blbl9zb2Z0aXJxKFNDSEVEVUxFX1NPRlRJUlEsIHNjaGVkdWxlKTsKKyAg ICBvcGVuX3NvZnRpcnEoU0NIRURfU0xBVkVfU09GVElSUSwgc2NoZWRfc2xhdmUpOwogCiAgICAg Zm9yICggaSA9IDA7IGkgPCBOVU1fU0NIRURVTEVSUzsgaSsrKQogICAgIHsKZGlmZiAtLWdpdCBh L3hlbi9jb21tb24vc29mdGlycS5jIGIveGVuL2NvbW1vbi9zb2Z0aXJxLmMKaW5kZXggODNjM2Mw OWJkNS4uMmQ2NjE5MzIwMyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zb2Z0aXJxLmMKKysrIGIv eGVuL2NvbW1vbi9zb2Z0aXJxLmMKQEAgLTMzLDggKzMzLDggQEAgc3RhdGljIHZvaWQgX19kb19z b2Z0aXJxKHVuc2lnbmVkIGxvbmcgaWdub3JlX21hc2spCiAgICAgZm9yICggOyA7ICkKICAgICB7 CiAgICAgICAgIC8qCi0gICAgICAgICAqIEluaXRpYWxpc2UgQGNwdSBvbiBldmVyeSBpdGVyYXRp b246IFNDSEVEVUxFX1NPRlRJUlEgbWF5IG1vdmUKLSAgICAgICAgICogdXMgdG8gYW5vdGhlciBw cm9jZXNzb3IuCisgICAgICAgICAqIEluaXRpYWxpc2UgQGNwdSBvbiBldmVyeSBpdGVyYXRpb246 IFNDSEVEVUxFX1NPRlRJUlEgb3IKKyAgICAgICAgICogU0NIRURfU0xBVkVfU09GVElSUSBtYXkg bW92ZSB1cyB0byBhbm90aGVyIHByb2Nlc3Nvci4KICAgICAgICAgICovCiAgICAgICAgIGNwdSA9 IHNtcF9wcm9jZXNzb3JfaWQoKTsKIApAQCAtNTUsNyArNTUsNyBAQCB2b2lkIHByb2Nlc3NfcGVu ZGluZ19zb2Z0aXJxcyh2b2lkKQogewogICAgIEFTU0VSVCghaW5faXJxKCkgJiYgbG9jYWxfaXJx X2lzX2VuYWJsZWQoKSk7CiAgICAgLyogRG8gbm90IGVudGVyIHNjaGVkdWxlciBhcyBpdCBjYW4g cHJlZW1wdCB0aGUgY2FsbGluZyBjb250ZXh0LiAqLwotICAgIF9fZG9fc29mdGlycSgxdWw8PFND SEVEVUxFX1NPRlRJUlEpOworICAgIF9fZG9fc29mdGlycSgoMXVsIDw8IFNDSEVEVUxFX1NPRlRJ UlEpIHwgKDF1bCA8PCBTQ0hFRF9TTEFWRV9TT0ZUSVJRKSk7CiB9CiAKIHZvaWQgZG9fc29mdGly cSh2b2lkKQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLWlmLmggYi94ZW4vaW5j bHVkZS94ZW4vc2NoZWQtaWYuaAppbmRleCBlMmJjOGY3Mjg0Li45Njg4ZDE3NGU0IDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQtaWYuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vc2No ZWQtaWYuaApAQCAtNDEsNiArNDEsNyBAQCBzdHJ1Y3Qgc2NoZWRfcmVzb3VyY2UgewogICAgIHN0 cnVjdCB0aW1lciAgICAgICAgc190aW1lcjsgICAgICAgIC8qIHNjaGVkdWxpbmcgdGltZXIgICAg ICAgICAgICAgICAgKi8KICAgICBhdG9taWNfdCAgICAgICAgICAgIHVyZ2VudF9jb3VudDsgICAv KiBob3cgbWFueSB1cmdlbnQgdmNwdXMgICAgICAgICAgICovCiAgICAgdW5zaWduZWQgICAgICAg ICAgICBwcm9jZXNzb3I7CisgICAgY29uc3QgY3B1bWFza190ICAgICpjcHVzOyAgICAgICAgICAg LyogY3B1cyBjb3ZlcmVkIGJ5IHRoaXMgc3RydWN0ICAgICAqLwogfTsKIAogI2RlZmluZSBjdXJy X29uX2NwdShjKSAgICAocGVyX2NwdShzY2hlZF9yZXMsIGMpLT5jdXJyKQpAQCAtODYsNiArODcs MTIgQEAgc3RydWN0IHNjaGVkX2l0ZW0gewogICAgIC8qIE5leHQgaXRlbSB0byBydW4uICovCiAg ICAgc3RydWN0IHNjaGVkX2l0ZW0gICAgICAqbmV4dF90YXNrOwogICAgIHNfdGltZV90ICAgICAg ICAgICAgICAgIG5leHRfdGltZTsKKworICAgIC8qIE51bWJlciBvZiB2Y3B1cyBub3QgeWV0IGpv aW5lZCBmb3IgY29udGV4dCBzd2l0Y2guICovCisgICAgdW5zaWduZWQgaW50ICAgICAgICAgICAg cmVuZGV6dm91c19pbl9jbnQ7CisKKyAgICAvKiBOdW1iZXIgb2YgdmNwdXMgbm90IHlldCBmaW5p c2hlZCB3aXRoIGNvbnRleHQgc3dpdGNoLiAqLworICAgIGF0b21pY190ICAgICAgICAgICAgICAg IHJlbmRlenZvdXNfb3V0X2NudDsKIH07CiAKICNkZWZpbmUgZm9yX2VhY2hfc2NoZWRfaXRlbShk LCBlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUveGVuL3NvZnRpcnEuaCBiL3hlbi9pbmNsdWRlL3hlbi9zb2Z0aXJxLmgK aW5kZXggYzMyN2M5YjZjZC4uZDcyNzNiMzg5YiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVu L3NvZnRpcnEuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vc29mdGlycS5oCkBAIC00LDYgKzQsNyBA QAogLyogTG93LWxhdGVuY3kgc29mdGlycXMgY29tZSBmaXJzdCBpbiB0aGUgZm9sbG93aW5nIGxp c3QuICovCiBlbnVtIHsKICAgICBUSU1FUl9TT0ZUSVJRID0gMCwKKyAgICBTQ0hFRF9TTEFWRV9T T0ZUSVJRLAogICAgIFNDSEVEVUxFX1NPRlRJUlEsCiAgICAgTkVXX1RMQkZMVVNIX0NMT0NLX1BF UklPRF9TT0ZUSVJRLAogICAgIFJDVV9TT0ZUSVJRLAotLSAKMi4xNi40CgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlz dApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0 Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==