From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tianyang Chen Subject: Re: [PATCH v6][RFC]xen: sched: convert RTDS from time to event driven model Date: Fri, 26 Feb 2016 00:15:49 -0500 Message-ID: <56CFDF85.504@seas.upenn.edu> References: <1456430736-4606-1-git-send-email-tiche@seas.upenn.edu> <1456443078.2959.85.camel@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xen.org with esmtp (Exim 4.84) (envelope-from ) id 1aZAmE-0000nw-G3 for xen-devel@lists.xenproject.org; Fri, 26 Feb 2016 05:17:18 +0000 In-Reply-To: <1456443078.2959.85.camel@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Dario Faggioli , xen-devel@lists.xenproject.org Cc: george.dunlap@citrix.com, Dagaen Golomb , Meng Xu List-Id: xen-devel@lists.xenproject.org CgpPbiAyLzI1LzIwMTYgNjozMSBQTSwgRGFyaW8gRmFnZ2lvbGkgd3JvdGU6Cj4gSGV5IGFnYWlu LAo+Cj4gVGhhbmtzIGZvciB0dXJuaW5nIHVwIHNvIHF1aWNrbHkuCj4KPiBXZSBhcmUgZ2V0dGlu ZyBjbG9zZXIgYW5kIGNsb3NlciwgYWx0aG91Z2ggKG9mIGNvdXJzZSA6LSkpIEkgaGF2ZSBzb21l Cj4gbW9yZSBjb21tZW50cy4KPgo+IEhvd2V2ZXIsIGlzIHRoZXJlIGEgcGFydGljdWxhciByZWFz b24gd2h5IHlvdSBhcmUga2VlcGluZyB0aGUgUkZDIHRhZz8KPiBVbnRpbCB5b3UgZG8gdGhhdCwg aXQncyBsaWtlIHNheWluZyB0aGF0IHlvdSBhcmUgY2hhc2luZyBmZWVkYmFjaywgYnV0Cj4geW91 IGRvIG5vdCB0aGluayB5b3Vyc2VsZiB0aGUgcGF0Y2ggc2hvdWxkIGJlIGNvbnNpZGVyZWQgZm9y IGJlaW5nCj4gdXBzdHJlYW1lZC4gQXMgZmFyIGFzIG15IG9waW5pb24gZ29lcywgdGhpcyBwYXRj aCBpcyBub3QgcmVhZHkgdG8gZ28gaW4KPiByaWdodCBub3cgKGFzIEkgc2FpZCwgSSd2ZSBnb3Qg cXVlc3Rpb25zIGFuZCBjb21tZW50cyksIGJ1dCBpdHMgc3RhdHVzCj4gaXMgd2F5IHBhc3QgUkZD Lgo+CgpPaCBPSywgSSBoYWQgdGhlIGltcHJlc3Npb24gdGhhdCBSRkMgbWVhbnMgcmVxdWVzdCBm b3IgY29tbWVudHMgYW5kIGl0IApzaG91bGQgYWx3YXlzIGJlIHVzZWQgYmVjYXVzZSBpbmRlZWQs IEknbSBhc2tpbmcgZm9yIGNvbW1lbnRzLgoKPiBPbiBUaHUsIDIwMTYtMDItMjUgYXQgMTU6MDUg LTA1MDAsIFRpYW55YW5nIENoZW4gd3JvdGU6Cj4+IGNoYW5nZXMgc2luY2UgdjU6Cj4+ICAgICAg cmVtb3ZlZCB1bm5lY2Vzc2FyeSB2Y3B1X29uX3JlcGxxKCkgY2hlY2tzCj4+ICAgICAgZGVhZGxp bmVfcXVldWVfaW5zZXJ0KCkgcmV0dXJucyBhIGZsYWcgdG8gaW5kaWNhdGUgaWYgaXQncwo+PiAg ICAgIG5lZWRlZCB0byByZS1wcm9ncmFtIHRoZSB0aW1lcgo+PiAgICAgIHJlbW92ZWQgdW5uZWNl c3NhcnkgdGltZXIgY2hlY2tzCj4+ICAgICAgYWRkZWQgaGVscGVyIGZ1bmN0aW9ucyB0byByZW1v dmUgdmNwdXMgZnJvbSBxdWV1ZXMKPj4gICAgICBjb2Rpbmcgc3R5bGUKPj4KPj4gQ2hhbmdlcyBz aW5jZSB2NDoKPj4gICAgICByZW1vdmVkIHVubmVjZXNzYXJ5IHJlcGxlbmlzaG1lbnQgcXVldWUg Y2hlY2tzIGluIHZjcHVfd2FrZSgpCj4+ICAgICAgZXh0ZW5kZWQgcmVwbHFfcmVtb3ZlKCkgdG8g YWxsIGNhc2VzIGluIHZjcHVfc2xlZXAoKQo+PiAgICAgIHVzZWQgX2RlYWRsaW5lX3F1ZXVlX2lu c2VydCgpIGhlbHBlciBmdW5jdGlvbiBmb3IgYm90aCBxdWV1ZXMKPj4gICAgICBfcmVwbHFfaW5z ZXJ0KCkgYW5kIF9yZXBscV9yZW1vdmUoKSBwcm9ncmFtIHRpbWVyIGludGVybmFsbHkKPj4KPj4g Q2hhbmdlcyBzaW5jZSB2MzoKPj4gICAgICByZW1vdmVkIHJ1bm5pbmcgcXVldWUuCj4+ICAgICAg YWRkZWQgcmVwbCBxdWV1ZSB0byBrZWVwIHRyYWNrIG9mIHJlcGwgZXZlbnRzLgo+PiAgICAgIHRp bWVyIGlzIG5vdyBwZXIgc2NoZWR1bGVyLgo+PiAgICAgIHRpbWVyIGlzIGluaXQgb24gYSB2YWxp ZCBjcHUgaW4gYSBjcHVwb29sLgo+Pgo+IFNvLCB0aGlzIGRvZXMgbm90IGJlbG9uZyBoZXJlLiBJ dCBpcyBvayB0byBoYXZlIGl0IGluIHRoaXMgcGFydCBvZiB0aGUKPiBlbWFpbCwgYnV0IGl0IHNo b3VsZCBub3QgbGFuZCBpbiB0aGUgYWN0dWFsIGNvbW1pdCBjaGFuZ2Vsb2csIG9uY2UgdGhlCj4g cGF0Y2ggd2lsbCBiZSBjb21taXR0ZWQgaW50byBYZW4ncyBnaXQgdHJlZS4KPgo+IFRoZSB3YXkg dG8gYWNoaWV2ZSB0aGUgYWJvdmUgaXMgdG8gcHV0IHRoaXMgc3VtbWFyeSBvZiBjaGFuZ2VzIGJl bG93Cj4gdGhlIGFjdHVhbCBjaGFuZ2Vsb2csIGFuZCBiZWxvdyB0aGUgU2lnbmVkLW9mLWJ5IGxp bmVzLCBhZnRlciBhIG1hcmtlcgo+IHRoYXQgbG9va3MgbGlrZSB0aGlzICItLS0iLgo+Cj4+IEJ1 ZGdldCByZXBsZW5pc2htZW50IGFuZCBlbmZvcmNlbWVudCBhcmUgc2VwYXJhdGVkIGJ5IGFkZGlu Zwo+PiBhIHJlcGxlbmlzaG1lbnQgdGltZXIsIHdoaWNoIGZpcmVzIGF0IHRoZSBuZXh0IG1vc3Qg aW1taW5lbnQKPj4gcmVsZWFzZSB0aW1lIG9mIGFsbCBydW5uYWJsZSB2Y3B1cy4KPj4KPj4gQSBu ZXcgcnVubmluZ3EgaGFzIGJlZW4gYWRkZWQgdG8ga2VlcCB0cmFjayBvZiBhbGwgdmNwdXMgdGhh dAo+PiBhcmUgb24gcGNwdXMuCj4+Cj4gTW1tLi4gSXMgdGhpcyB0aGUgcHJvcGVyIGNoYW5nZWxv Zz8gcnVubmluZ3EgaXMgc29tZXRoaW5nIHdlIGRpc2N1c3NlZCwKPiBhbmQgdGhhdCBhcHBlYXJl ZCBpbiB2MiwgYnV0IGlzIGNlcnRhaW5seSBubyBsb25nZXIgaGVyZS4uLiA6LU8KPgoKb29wcy4u LgoKPiBXYWl0LCBtYXliZSB5b3UgbWlzdW5kZXJzdG9vZCBhbmQvb3IgSSBkaWQgbm90IG1ha2Ug bXlzZWxmIGNsZWFyIGVub3VnaAo+IChpbiB3aGljaCBjYXNlLCBzb3JyeSkuIEkgbmV2ZXIgbWVh bnQgdG8gc2F5ICJhbHdheXMgc3RvcCB0aGUgdGltZXIiLgo+IEF0dWFsbHksIGluIG9uZSBvZiBt eSBsYXN0IGVtYWlsIEkgc2FpZCB0aGUgb3Bwb3NpdGUsIGFuZCBJIHRoaW5rIHRoYXQKPiB3b3Vs ZCBiZSB0aGUgYmVzdCB0aGluZyB0byBkby4KPgo+IERvIHlvdSB0aGluayB0aGVyZSBpcyBhbnkg c3BlY2lmaWMgcmVhc29uIHdoeSB3ZSBuZWVkIHRvIGFsd2F5cyBzdG9wCj4gYW5kIHJlc3RhcnQg aXQ/IElmIG5vdCwgSSB0aGluayB3ZSBjYW46Cj4gICAtIGhhdmUgZGVhZGxpbmVfcXVldWVfcmVt b3ZlKCkgYWxzbyByZXR1cm4gd2hldGhlciB0aGUgZWxlbWVudAo+ICAgICByZW1vdmVkIHdhcyB0 aGUgZmlyc3Qgb25lIChpLmUuLCB0aGUgb25lIHRoZSB0aW1lciB3YXMgcHJvZ3JhbW1lZAo+ICAg ICBhZnRlcik7Cj4gICAtIGlmIGl0IHdhcywgcmUtcHJvZ3JhbSB0aGUgdGltZXIgYWZ0ZXIgdGhl IG5ldyBmcm9udCBvZiB0aGUgcXVldWU7Cj4gICAtIGlmIGl0IHdhc24ndCwgbm90aGluZyB0byBk by4KPgo+IFRob3VnaHRzPwo+CgpJdCB3YXMgbXkgdGhvdWdodCBvcmlnaW5hbGx5IHRoYXQgdGhl IHRpbWVyIG5lZWRzIHRvIGJlIHJlLXByb2dyYW1tZWQgCm9ubHkgd2hlbiB0aGUgdG9wIHZjcHUg aXMgdGFrZW4gb2ZmLiBTbyBkaWQgeW91IG1lYW4gd2hlbiBJIG1hbmlwdWxhdGVkIApyZXBsX3Rp bWVyLT5leHBpcmVzIG1hbnVhbGx5LCB0aGUgdGltZXIgc2hvdWxkIGJlIHN0b3BwZWQgdXNpbmcg cHJvcGVyIAp0aW1lciBBUEk/IFRoZSBtYW5pcHVsYXRpb24gaXMgZ29uZSBub3cuIEFsc28sIHNl dF90aW1lciBpbnRlcm5hbGx5IApkaXNhYmxlcyB0aGUgdGltZXIgc28gSSBhc3N1bWUgaXQncyBz YWZlIGp1c3QgdG8gY2FsbCBzZXRfdGltZXIoKSAKZGlyZWN0bHksIHJpZ2h0PwoKPj4gQEAgLTQw NSwyMiArNTAwLDM4IEBAIF9fcnVucV9pbnNlcnQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3Bz LAo+PiBzdHJ1Y3QgcnRfdmNwdSAqc3ZjKQo+Pgo+PiAgICAgICAvKiBhZGQgc3ZjIHRvIHJ1bnEg aWYgc3ZjIHN0aWxsIGhhcyBidWRnZXQgKi8KPj4gICAgICAgaWYgKCBzdmMtPmN1cl9idWRnZXQg PiAwICkKPj4gLSAgICB7Cj4+IC0gICAgICAgIGxpc3RfZm9yX2VhY2goaXRlciwgcnVucSkKPj4g LSAgICAgICAgewo+PiAtICAgICAgICAgICAgc3RydWN0IHJ0X3ZjcHUgKiBpdGVyX3N2YyA9IF9f cV9lbGVtKGl0ZXIpOwo+PiAtICAgICAgICAgICAgaWYgKCBzdmMtPmN1cl9kZWFkbGluZSA8PSBp dGVyX3N2Yy0+Y3VyX2RlYWRsaW5lICkKPj4gLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4+ IC0gICAgICAgICB9Cj4+IC0gICAgICAgIGxpc3RfYWRkX3RhaWwoJnN2Yy0+cV9lbGVtLCBpdGVy KTsKPj4gLSAgICB9Cj4+ICsgICAgICAgIGRlYWRsaW5lX3F1ZXVlX2luc2VydCgmX19xX2VsZW0s IHN2YywgJnN2Yy0+cV9lbGVtLCBydW5xKTsKPj4gICAgICAgZWxzZQo+PiAgICAgICB7Cj4+ICAg ICAgICAgICBsaXN0X2FkZCgmc3ZjLT5xX2VsZW0sICZwcnYtPmRlcGxldGVkcSk7Cj4+ICsgICAg ICAgIEFTU0VSVCggX192Y3B1X29uX3JlcGxxKHN2YykgKTsKPj4KPiBTbywgYnkgZG9pbmcgdGhp cywgeW91J3JlIHRlbGxpbmcgbWUgdGhhdCwgaWYgdGhlIHZjcHUgaXMgYWRkZWQgdG8gdGhlCj4g ZGVwbGV0ZWQgcXVldWUsIHRoZXJlIG11c3QgYmUgYSByZXBsZW5pc2htZW50IHBsYW5uZWQgZm9y IGl0IChvciB0aGUKPiBBU1NFUlQoKSB3b3VsZCBmYWlsKS4KPgo+IEJ1dCBpZiB3ZSBhcmUgYWRk aW5nIGl0IHRvIHRoZSBydW5xLCB0aGVyZSBtYXkgb3IgbWF5IG5vdCBiZSBhCj4gcmVwbGVuaXNo bWVudCBwbGFubmVkIGZvciBpdC4KPgo+IElzIHRoaXMgd2hhdCB3ZSB3YW50PyBXaHkgdGhlcmUg bXVzdCBub3QgYmUgYSByZXBsZW5pc2htZW50IHBsYW5uZWQKPiBhbHJlYWR5IGZvciBhIHZjcHUg Z29pbmcgaW50byB0aGUgcnVucSAodG8gaGFwcGVuIGF0IGl0cyBuZXh0Cj4gZGVhZGxpbmUpPwo+ CgpJdCBsb29rcyBsaWtlIHRoZSBjdXJyZW50IGNvZGUgZG9lc24ndCBhZGQgYSB2Y3B1IHRvIHRo ZSByZXBsZW5pc2htZW50IApxdWV1ZSB3aGVuIHZjcHVfaW5zZXJ0KCkgaXMgY2FsbGVkLiBXaGVu IHRoZSBzY2hlZHVsZXIgaXMgaW5pdGlhbGl6ZWQsIAphbGwgdGhlIHZjcHVzIGFyZSBhZGRlZCB0 byB0aGUgcmVwbGVuaXNobWVudCBxdWV1ZSBhZnRlciB3YWtpbmcgdXAgZnJvbSAKc2xlZXAuIFRo aXMgbmVlZHMgdG8gYmUgY2hhbmdlZCAoYWRkIHZjcHUgdG8gcmVwbHEgaW4gdmNwdV9pbnNlcnQo KSkgdG8gCm1ha2UgaXQgY29uc2lzdGVudCBpbiBhIHNlbnNlIHRoYXQgd2hlbiBydF92Y3B1X2lu c2VydCgpIGlzIGNhbGxlZCwgaXQgCm5lZWRzIHRvIGhhdmUgYSBjb3JyZXNwb25kaW5nIHJlcGxl bmlzaG1lbnQgZXZlbnQgcXVldWVkLgoKVGhpcyB3YXkgdGhlIEFTU0VSVCgpIGlzIGZvciBib3Ro IGNhc2VzIGluIF9fcnVucV9pbnNlcnQoKSB0byBlbmZvcmNlIAp0aGUgZmFjdCB0aGF0ICJ3aGVu IGEgdmNwdSBpcyBpbnNlcnRlZCB0byBydW5xL2RlcGxldGVkcSwgYSAKcmVwbGVuaXNobWVudCBl dmVudCBpcyB3YWl0aW5nIGZvciBpdCIuCgo+PiBAQCAtMTA4NywxMCArMTE5Myw2IEBAIHN0YXRp YyB2b2lkCj4+ICAgcnRfY29udGV4dF9zYXZlZChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMs IHN0cnVjdCB2Y3B1ICp2YykKPj4gICB7Cj4+ICAgICAgIHN0cnVjdCBydF92Y3B1ICpzdmMgPSBy dF92Y3B1KHZjKTsKPj4gLSAgICBzdHJ1Y3QgcnRfdmNwdSAqc25leHQgPSBOVUxMOwo+PiAtICAg IHN0cnVjdCBydF9kb20gKnNkb20gPSBOVUxMOwo+PiAtICAgIHN0cnVjdCBydF9wcml2YXRlICpw cnYgPSBydF9wcml2KG9wcyk7Cj4+IC0gICAgY3B1bWFza190ICpvbmxpbmU7Cj4+ICAgICAgIHNw aW5sb2NrX3QgKmxvY2sgPSB2Y3B1X3NjaGVkdWxlX2xvY2tfaXJxKHZjKTsKPj4KPj4gICAgICAg Y2xlYXJfYml0KF9fUlREU19zY2hlZHVsZWQsICZzdmMtPmZsYWdzKTsKPj4gQEAgLTExMDIsMTQg KzEyMDQsNyBAQCBydF9jb250ZXh0X3NhdmVkKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywK Pj4gc3RydWN0IHZjcHUgKnZjKQo+PiAgICAgICAgICAgIGxpa2VseSh2Y3B1X3J1bm5hYmxlKHZj KSkgKQo+PiAgICAgICB7Cj4+ICAgICAgICAgICBfX3J1bnFfaW5zZXJ0KG9wcywgc3ZjKTsKPj4g LSAgICAgICAgX19yZXBsX3VwZGF0ZShvcHMsIE5PVygpKTsKPj4gLQo+PiAtICAgICAgICBBU1NF UlQoIWxpc3RfZW1wdHkoJnBydi0+c2RvbSkpOwo+PiAtICAgICAgICBzZG9tID0gbGlzdF9lbnRy eShwcnYtPnNkb20ubmV4dCwgc3RydWN0IHJ0X2RvbSwgc2RvbV9lbGVtKTsKPj4gLSAgICAgICAg b25saW5lID0gY3B1cG9vbF9kb21haW5fY3B1bWFzayhzZG9tLT5kb20pOwo+PiAtICAgICAgICBz bmV4dCA9IF9fcnVucV9waWNrKG9wcywgb25saW5lKTsgLyogcGljayBzbmV4dCBmcm9tIEFMTAo+ PiBjcHVzICovCj4+IC0KPj4gLSAgICAgICAgcnVucV90aWNrbGUob3BzLCBzbmV4dCk7Cj4+ICsg ICAgICAgIHJ1bnFfdGlja2xlKG9wcywgc3ZjKTsKPj4gICAgICAgfQo+Pgo+IFNvLCBoZXJlIHdl IGFyZS4KPgo+IFdoYXQgSSBtZWFudCB3YXMgdG8gbWFrZSB0aGlzIGZ1bmN0aW9uIGxvb2sgbW9y ZSBvciBsZXNzIGxpa2UgdGhpczoKPgo+IHN0YXRpYyB2b2lkCj4gcnRfY29udGV4dF9zYXZlZChj b25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykKPiB7Cj4gICAgICBz dHJ1Y3QgcnRfdmNwdSAqc3ZjID0gcnRfdmNwdSh2Yyk7Cj4gICAgICBzcGlubG9ja190ICpsb2Nr ID0gdmNwdV9zY2hlZHVsZV9sb2NrX2lycSh2Yyk7Cj4KPiAgICAgIGNsZWFyX2JpdChfX1JURFNf c2NoZWR1bGVkLCAmc3ZjLT5mbGFncyk7Cj4gICAgICAvKiBub3QgaW5zZXJ0IGlkbGUgdmNwdSB0 byBydW5xICovCj4gICAgICBpZiAoIGlzX2lkbGVfdmNwdSh2YykgKQo+ICAgICAgICAgIGdvdG8g b3V0Owo+Cj4gICAgICBpZiAoIHRlc3RfYW5kX2NsZWFyX2JpdChfX1JURFNfZGVsYXllZF9ydW5x X2FkZCwgJnN2Yy0+ZmxhZ3MpICYmCj4gICAgICAgICAgIGxpa2VseSh2Y3B1X3J1bm5hYmxlKHZj KSkgKQo+ICAgICAgewo+ICAgICAgICAgIF9fcnVucV9pbnNlcnQob3BzLCBzdmMpOwo+ICAgICAg ICAgIHJ1bnFfdGlja2xlKG9wcywgc25leHQpOwo+ICAgICAgfQo+ICAgICAgZWxzZQo+ICAgICAg ICAgIF9fcmVwbHFfcmVtb3ZlKG9wcywgc3ZjKTsKPiBvdXQ6Cj4gICAgICB2Y3B1X3NjaGVkdWxl X3VubG9ja19pcnEobG9jaywgdmMpOwo+IH0KPgo+IEFuZCwgYXMgc2FpZCBhYm92ZSwgaWYgeW91 IGRvIHRoaXMsIHRyeSBhbHNvIHJlbW92aW5nIHRoZQo+IF9fcmVwbHFfcmVtb3ZlKCkgY2FsbCBm cm9tIHJ0X3ZjcHVfc2xlZXAoKSwgdGhpcyBvbmUgc2hvdWxkIGNvdmVyIGZvcgo+IHRoYXQgKGFu ZCwgYWN0dWFsbHksIG1vcmUgdGhhbiBqdXN0IHRoYXQhKS4KPgo+IEFmdGVyIGFsbCB0aGlzLCBj aGVjayB3aGV0aGVyIHlvdSBzdGlsbCBoYXZlIHRoZSBhc3NlcnQgaW4KPiBfX3JlcGxxX2luc2Vy dCgpIHRyaWdnZXJpbmcgYW5kIGxldCBtZSBrbm93CgpTbyBhZnRlciBtb3ZpbmcgdGhlIF9fcmVw bHFfcmVtb3ZlKCkgdG8gcnRfY29udGV4dF9zYXZlZCgpLCB0aGUgYXNzZXJ0IAppbiBfX3JlcGxx X2luc2VydCgpIHN0aWxsIGZhaWxzIHdoZW4gZG9tMCBib290cyB1cC4KCihYRU4pIEFzc2VydGlv biAnIXZjcHVfb25fcmVwbHEoc3ZjKScgZmFpbGVkIGF0IHNjaGVkX3J0LmM6NTI0CihYRU4pIC0t LS1bIFhlbi00LjctdW5zdGFibGUgIHg4Nl82NCAgZGVidWc9eSAgVGFpbnRlZDogICAgQyBdLS0t LQooWEVOKSBDUFU6ICAgIDAKKFhFTikgUklQOiAgICBlMDA4Ols8ZmZmZjgyZDA4MDEyOGMwNz5d IHNjaGVkX3J0LmMjX19yZXBscV9pbnNlcnQrMHgyYi8weDY0CihYRU4pIFJGTEFHUzogMDAwMDAw MDAwMDAxMDAwMiAgIENPTlRFWFQ6IGh5cGVydmlzb3IgKGQwdjMpCihYRU4pIHJheDogMDAwMDAw MDAwMDAwMDAwMSAgIHJieDogZmZmZjgzMDIzYjUyMjk0MCAgIHJjeDogMDAwMDAwMDAwMDAwMDAw MQooWEVOKSByZHg6IDAwMDAwMDMxYmIxYjk5ODAgICByc2k6IGZmZmY4MzAyM2I0ODY3NjAgICBy ZGk6IGZmZmY4MzAyM2I0ODY3NjAKKFhFTikgcmJwOiBmZmZmODMwMGJmY2ZmZDQ4ICAgcnNwOiBm ZmZmODMwMGJmY2ZmZDI4ICAgcjg6ICAwMDAwMDAwMDAwMDAwMDA0CihYRU4pIHI5OiAgMDAwMDAw MDBkZWFkYmVlZiAgIHIxMDogZmZmZjgyZDA4MDI1ZjVhMCAgIHIxMTogMDAwMDAwMDAwMDAwMDIw NgooWEVOKSByMTI6IGZmZmY4MzAyM2I0ODY3NjAgICByMTM6IGZmZmY4MzAyM2I1MjJkODAgICBy MTQ6IGZmZmY4MzAyM2I0YjUwMDAKKFhFTikgcjE1OiAwMDAwMDAwMjNhNmU3NzRiICAgY3IwOiAw MDAwMDAwMDgwMDUwMDMzICAgY3I0OiAwMDAwMDAwMDAwMDQwNmEwCihYRU4pIGNyMzogMDAwMDAw MDIzMWMwZDAwMCAgIGNyMjogZmZmZjg4MDIyMDBkODFmOAooWEVOKSBkczogMDAwMCAgIGVzOiAw MDAwICAgZnM6IDAwMDAgICBnczogMDAwMCAgIHNzOiBlMDEwICAgY3M6IGUwMDgKKFhFTikgWGVu IHN0YWNrIHRyYWNlIGZyb20gcnNwPWZmZmY4MzAwYmZjZmZkMjg6CihYRU4pICAgIGZmZmY4MmQw ODAxOTY0MmUgZmZmZjgzMDIzYjQ4Njc2MCBmZmZmODMwMGJmZDQ3MDAwIGZmZmY4MmQwODAyOTli MDAKKFhFTikgICAgZmZmZjgzMDBiZmNmZmQ4OCBmZmZmODJkMDgwMTJhMDcyIGZmZmY4MzAwYmZj ZmZkNzAgZmZmZjgzMDBiZmQ0NzAwMAooWEVOKSAgICAwMDAwMDAwMjNhNmU3NWMwIGZmZmY4MzAy M2I1MjI5NDAgZmZmZjgyZDA4MDMyYmMwMCAwMDAwMDAwMDAwMDAwMjgyCihYRU4pICAgIGZmZmY4 MzAwYmZjZmZkZDggZmZmZjgyZDA4MDEyYmUyYyBmZmZmODMwMjNiNGI1MDAwIGZmZmY4MzAyM2I0 ZjEwMDAKKFhFTikgICAgZmZmZjgzMDBiZmQ0NDAwMCBmZmZmODMwMGJmZDQ3MDAwIDAwMDAwMDAw MDAwMDAwMDEgZmZmZjgzMDIzYjRiNDBjMAooWEVOKSAgICBmZmZmODgwMjMwYzE0NDQwIDAwMDAw MDAwMDAwMDAwMDAgZmZmZjgzMDBiZmNmZmRlOCBmZmZmODJkMDgwMTJjMzQ3CihYRU4pICAgIGZm ZmY4MzAwYmZjZmZlMDggZmZmZjgyZDA4MDE2OWNlYSBmZmZmODMwMjNiNGI1MDAwIDAwMDAwMDAw MDAwMDAwMDMKKFhFTikgICAgZmZmZjgzMDBiZmNmZmUxOCBmZmZmODJkMDgwMTY5ZDY1IGZmZmY4 MzAwYmZjZmZlMzggZmZmZjgyZDA4MDEwNzYyYQooWEVOKSAgICBmZmZmODMwMjNiNGI0MGMwIGZm ZmY4MzAyM2I0YjUwMDAgZmZmZjgzMDBiZmNmZmU2OCBmZmZmODJkMDgwMTA4MjJhCihYRU4pICAg IGZmZmY4MzAwYmZjZmZlNjggZmZmZmZmZmZmZmZmZmZmMiBmZmZmODgwMjIwNjFkY2I0IDAwMDAw MDAwMDAwMDAwMDAKKFhFTikgICAgZmZmZjgzMDBiZmNmZmVmOCBmZmZmODJkMDgwMTA5NmZjIDAw MDAwMDAwMDAwMDAwMDEgZmZmZjgzMDBiZmNmZmYxOAooWEVOKSAgICBmZmZmODMwMGJmY2ZmZWY4 IGZmZmY4MmQwODAyNDBlODUgZmZmZjgzMDBiZmNmODAwMCAwMDAwMDAwMDAwMDAwMDAwCihYRU4p ICAgIDAwMDAwMDAwMDAwMDAyNDYgZmZmZmZmZmY4MTAwMTNhYSAwMDAwMDAwMDAwMDAwMDAzIGZm ZmZmZmZmODEwMDEzYWEKKFhFTikgICAgZmZmZjgzMDBiZmNmZmVlOCBmZmZmODMwMGJmZDQ0MDAw IGZmZmY4ODAyMjA1ZTgwMDAgMDAwMDAwMDAwMDAwMDAwMAooWEVOKSAgICBmZmZmODgwMjMwYzE0 NDQwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDdjZmY0MDMwMDBjNyBmZmZmODJkMDgwMjQzOWUyCihY RU4pICAgIGZmZmZmZmZmODEwMDE0MGEgMDAwMDAwMDAwMDAwMDAyMCAwMDAwMDAwMDAwMDAwMDAz IGZmZmY4ODAyMzBjNzE5MDAKKFhFTikgICAgZmZmZjg4MDIyMDY1ODRkMCBmZmZmODgwMjIwNjU4 MDAwIGZmZmY4ODAyMjA2MWRjYjggMDAwMDAwMDAwMDAwMDAwMAooWEVOKSAgICAwMDAwMDAwMDAw MDAwMjA2IDAwMDAwMDAwMDAwMDAwMDAgZmZmZjg4MDIyMzAwMDE2OCBmZmZmODgwMjIzNDA4ZTAw CihYRU4pICAgIDAwMDAwMDAwMDAwMDAwMjAgZmZmZmZmZmY4MTAwMTQwYSAwMDAwMDAwMDAwMDAw MDAwIGZmZmY4ODAyMjA2MWRjYjQKKFhFTikgICAgMDAwMDAwMDAwMDAwMDAwNCAwMDAxMDEwMDAw MDAwMDAwIGZmZmZmZmZmODEwMDE0MGEgMDAwMDAwMDAwMDAwZTAzMwooWEVOKSBYZW4gY2FsbCB0 cmFjZToKKFhFTikgICAgWzxmZmZmODJkMDgwMTI4YzA3Pl0gc2NoZWRfcnQuYyNfX3JlcGxxX2lu c2VydCsweDJiLzB4NjQKKFhFTikgICAgWzxmZmZmODJkMDgwMTJhMDcyPl0gc2NoZWRfcnQuYyNy dF92Y3B1X3dha2UrMHhmMi8weDEyYwooWEVOKSAgICBbPGZmZmY4MmQwODAxMmJlMmM+XSB2Y3B1 X3dha2UrMHgyMTMvMHgzZDQKKFhFTikgICAgWzxmZmZmODJkMDgwMTJjMzQ3Pl0gdmNwdV91bmJs b2NrKzB4NGIvMHg0ZAooWEVOKSAgICBbPGZmZmY4MmQwODAxNjljZWE+XSB2Y3B1X2tpY2srMHgy MC8weDZmCihYRU4pICAgIFs8ZmZmZjgyZDA4MDE2OWQ2NT5dIHZjcHVfbWFya19ldmVudHNfcGVu ZGluZysweDJjLzB4MmYKKFhFTikgICAgWzxmZmZmODJkMDgwMTA3NjJhPl0gZXZlbnRfMmwuYyNl dnRjaG5fMmxfc2V0X3BlbmRpbmcrMHhhOS8weGI5CihYRU4pICAgIFs8ZmZmZjgyZDA4MDEwODIy YT5dIGV2dGNobl9zZW5kKzB4MTU4LzB4MTgzCihYRU4pICAgIFs8ZmZmZjgyZDA4MDEwOTZmYz5d IGRvX2V2ZW50X2NoYW5uZWxfb3ArMHhlMjEvMHgxNDdkCihYRU4pICAgIFs8ZmZmZjgyZDA4MDI0 MzllMj5dIGxzdGFyX2VudGVyKzB4ZTIvMHgxM2MKKFhFTikKKFhFTikKKFhFTikgKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgooWEVOKSBQYW5pYyBvbiBDUFUgMDoKKFhF TikgQXNzZXJ0aW9uICchdmNwdV9vbl9yZXBscShzdmMpJyBmYWlsZWQgYXQgc2NoZWRfcnQuYzo1 MjQKKFhFTikgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKVGhhbmtz LApUaWFueWFuZwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8v bGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK