From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shannon Zhao Subject: Re: [PATCH v2 11/17] libxl/arm: Construct ACPI DSDT table Date: Mon, 27 Jun 2016 14:01:18 +0800 Message-ID: <5770C12E.6030706@huawei.com> References: <1466651824-6964-1-git-send-email-zhaoshenglong@huawei.com> <1466651824-6964-12-git-send-email-zhaoshenglong@huawei.com> <576C167F.8000903@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <576C167F.8000903@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Julien Grall , xen-devel@lists.xen.org Cc: sstabellini@kernel.org, wei.liu2@citrix.com, ian.jackson@eu.citrix.com, peter.huangpeng@huawei.com, shannon.zhao@linaro.org, boris.ostrovsky@oracle.com List-Id: xen-devel@lists.xenproject.org CgpPbiAyMDE2LzYvMjQgMTowMywgSnVsaWVuIEdyYWxsIHdyb3RlOgo+IEhpIFNoYW5ub24sCj4g Cj4gT24gMjMvMDYvMTYgMDQ6MTYsIFNoYW5ub24gWmhhbyB3cm90ZToKPiAKPiBbLi4uXQo+IAo+ PiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvTWFrZWZpbGUgYi90b29scy9saWJ4bC9NYWtlZmls ZQo+PiBpbmRleCAyNjRiNmVmLi41MzQ3NDgwIDEwMDY0NAo+PiAtLS0gYS90b29scy9saWJ4bC9N YWtlZmlsZQo+PiArKysgYi90b29scy9saWJ4bC9NYWtlZmlsZQo+PiBAQCAtNzcsNyArNzcsMjkg QEAgZW5kaWYKPj4KPj4gICBMSUJYTF9PQkpTLSQoQ09ORklHX1g4NikgKz0gbGlieGxfY3B1aWQu byBsaWJ4bF94ODYubyBsaWJ4bF9wc3Iubwo+PiAgIExJQlhMX09CSlMtJChDT05GSUdfQVJNKSAr PSBsaWJ4bF9ub2NwdWlkLm8gbGlieGxfYXJtLm8KPj4gbGlieGxfbGliZmR0X2NvbXBhdC5vCj4+ IC1MSUJYTF9PQkpTLSQoQ09ORklHX0FSTSkgKz0gbGlieGxfYXJtX2FjcGkubwo+PiArTElCWExf T0JKUy0kKENPTkZJR19BUk0pICs9IGxpYnhsX2FybV9hY3BpLm8gbGlieGxfZHNkdF9hbnljcHVf YXJtLm8KPj4gKwo+PiArdnBhdGggaWFzbCAkKFBBVEgpCj4+ICtsaWJ4bF9ta19kc2R0X2FybTog bGlieGxfbWtfZHNkdF9hcm0uYwo+PiArICAgICQoQ0MpICQoQ0ZMQUdTKSAtbyAkQCBsaWJ4bF9t a19kc2R0X2FybS5jCj4+ICsKPj4gK2xpYnhsX2RzZHRfYW55Y3B1X2FybS5hc2w6IGxpYnhsX2Vt cHR5X2RzZHRfYXJtLmFzbCBsaWJ4bF9ta19kc2R0X2FybQo+PiArICAgIGF3ayAnTlIgPiAxIHtw cmludCBzfSB7cz0kJDB9JyAkPCA+ICRACj4+ICsgICAgLi9saWJ4bF9ta19kc2R0X2FybSA+PiAk QAo+PiArCj4+ICtsaWJ4bF9kc2R0X2FueWNwdV9hcm0uYzogJS5jOiBpYXNsICUuYXNsCj4+ICsg ICAgaWFzbCAtdnMgLXAgJCogLXRjICQqLmFzbAo+PiArICAgIHNlZCAtZSAncy9BbWxDb2RlLyQq L2cnICQqLmhleCA+JEAKPj4gKyAgICBlY2hvICJpbnQgJCpfbGVuPXNpemVvZigkKik7IiA+PiRA Cj4+ICsgICAgcm0gLWYgJCouYW1sICQqLmhleAo+PiArCj4gCj4gSSBkb24ndCBsaWtlIHRoZSBp ZGVhIHRvIGFkZCBpYXNsIGFzIGEgZGVwZW5kZW5jeSBmb3IgYWxsIEFSTSBwbGF0Zm9ybXMuCj4g Rm9yIGluc3RhbmNlIEFSTXY3IHBsYXRmb3JtIHdpbGwgbm90IHVzZSBBQ1BJLCBidXQgd2Ugc3Rp bGwgYXNrIHVzZXJzIHRvCj4gaW5zdGFsbCBpYXNsLiBTbyBJIHRoaW5rIHdlIHNob3VsZCBhbGxv dyB0aGUgdXNlciB0byBvcHQtaW4vb3B0LW91dCBmb3IKPiBBQ1BJLgo+IAo+IEFueSBvcGluaW9u cz8KPiAKSSBhZ3JlZS4gQnV0IGhvdyB0byBleGNsdWRlIGZvciBBUk12Ny4gSSBub3RpY2UgaXQg b25seSBoYXMgdGhlIG9wdGlvbgpDT05GSUdfQVJNIHdoaWNoIGRvZXNuJ3QgZGlzdGluZ3Vpc2gg QVJNMzIgYW5kIEFSTTY0LgoKPj4gK2lhc2w6Cj4+ICsgICAgQGVjaG8KPj4gKyAgICBAZWNobyAi QUNQSSBBU0wgY29tcGlsZXIgKGlhc2wpIGlzIG5lZWRlZCIKPj4gKyAgICBAZWNobyAiRG93bmxv YWQgYW5kIGluc3RhbGwgSW50ZWwgQUNQSSBDQSBmcm9tIgo+PiArICAgIEBlY2hvICJodHRwOi8v YWNwaWNhLm9yZy9kb3dubG9hZHMvIgo+PiArICAgIEBlY2hvCj4+ICsgICAgQGV4aXQgMQo+IAo+ IEl0IGlzIHJlYWxseSBhIHBhaW4gdG8gZGlzY292ZXIgdGhlIGRlcGVuZGVuY3kgaW4gdGhlIG1p ZGRsZSBvZiBhIGJ1aWxkLgo+IFRoZSBwcmVzZW5jZSBvZiBpYXNsIHNob3VsZCBiZSBkb25lIGJ5 IHRoZSBjb25maWd1cmUuCj4gCj4+Cj4+ICAgbGlieGxfYXJtX2FjcGkubzogbGlieGxfYXJtX2Fj cGkuYwo+PiAgICAgICAkKENDKSAtYyAkKENGTEFHUykgLUkuLi8uLi94ZW4vaW5jbHVkZS8gLW8g JEAgbGlieGxfYXJtX2FjcGkuYwo+PiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfYXJt X2FjcGkuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2FybV9hY3BpLmMKPj4gaW5kZXggMzUzZDc3NC4u NDVmYzM1NCAxMDA2NDQKPj4gLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfYXJtX2FjcGkuYwo+PiAr KysgYi90b29scy9saWJ4bC9saWJ4bF9hcm1fYWNwaS5jCj4+IEBAIC01NCw2ICs1NCw5IEBAIGVu dW0gewo+PiAgICAgICBOVU1TLAo+PiAgIH07Cj4+Cj4+ICtleHRlcm4gdW5zaWduZWQgY2hhciBs aWJ4bF9kc2R0X2FueWNwdV9hcm1bXTsKPj4gK2V4dGVybiBpbnQgbGlieGxfZHNkdF9hbnljcHVf YXJtX2xlbjsKPiAKPiBOb3Qgc3VyZSB0aGlzIGlzIHRoZSByaWdodCBwbGFjZSB0byBtZW50aW9u IGl0LCBidXQgSSBkb24ndCBmaW5kIHRoZQo+IGFjdHVhbCBkZWNsYXJhdGlvbi4KPiAKVGhlIGRl Y2xhcmF0aW9ucyBhcmUgaW4gbGlieGxfZHNkdF9hbnljcHVfYXJtLmMgd2hpY2ggaXMgZ2VuZXJh dGVkIGJ5Cmlhc2wuIFlvdSBjYW4gc2VlIHRoYXQgaW4gdGhlIE1ha2VmaWxlIGFib3ZlLgoKPiBC b3RoIHZhcmlhYmxlcyBzaG91bGQgYmUgY29uc3QgYW5kIF9oaWRkZW4uIEFsc28sIHRoZSAqX2xl biBzaG91bGQgYmUgYXQKPiBsZWFzdCBjb25zdCBpbnQuCj4gCj4+ICsKPj4gICBzdHJ1Y3QgYWNw aXRhYmxlIHsKPj4gICAgICAgdm9pZCAqdGFibGU7Cj4+ICAgICAgIHNpemVfdCBzaXplOwo+PiBA QCAtMjU2LDYgKzI1OSwxNyBAQCBzdGF0aWMgdm9pZCBtYWtlX2FjcGlfZmFkdChsaWJ4bF9fZ2Mg KmdjLCBzdHJ1Y3QKPj4geGNfZG9tX2ltYWdlICpkb20pCj4+ICAgICAgIGRvbS0+YWNwaXRhYmxl X3NpemUgKz0gUk9VTkRVUChhY3BpdGFibGVzW0ZBRFRdLnNpemUsIDMpOwo+PiAgIH0KPj4KPj4g K3N0YXRpYyB2b2lkIG1ha2VfYWNwaV9kc2R0KGxpYnhsX19nYyAqZ2MsIHN0cnVjdCB4Y19kb21f aW1hZ2UgKmRvbSkKPj4gK3sKPj4gKyAgICBhY3BpdGFibGVzW0RTRFRdLnRhYmxlID0gbGlieGxf X3phbGxvYyhnYywKPj4gbGlieGxfZHNkdF9hbnljcHVfYXJtX2xlbik7Cj4+ICsgICAgbWVtY3B5 KGFjcGl0YWJsZXNbRFNEVF0udGFibGUsIGxpYnhsX2RzZHRfYW55Y3B1X2FybSwKPj4gKyAgICAg ICAgICAgbGlieGxfZHNkdF9hbnljcHVfYXJtX2xlbik7Cj4+ICsKPj4gKyAgICBhY3BpdGFibGVz W0RTRFRdLnNpemUgPSBsaWJ4bF9kc2R0X2FueWNwdV9hcm1fbGVuOwo+PiArICAgIC8qIEFsaWdu IHRvIDY0Yml0LiAqLwo+PiArICAgIGRvbS0+YWNwaXRhYmxlX3NpemUgKz0gUk9VTkRVUChhY3Bp dGFibGVzW0RTRFRdLnNpemUsIDMpOwo+PiArfQo+PiArCj4+ICAgaW50IGxpYnhsX19wcmVwYXJl X2FjcGkobGlieGxfX2djICpnYywgbGlieGxfZG9tYWluX2J1aWxkX2luZm8gKmluZm8sCj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2RvbWFpbl9idWlsZF9zdGF0ZSAqc3RhdGUs Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKQo+ PiBAQCAtMjg0LDYgKzI5OCw3IEBAIGludCBsaWJ4bF9fcHJlcGFyZV9hY3BpKGxpYnhsX19nYyAq Z2MsCj4+IGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvICppbmZvLAo+PiAgICAgICByZXR1cm4gcmM7 Cj4+Cj4+ICAgICAgIG1ha2VfYWNwaV9mYWR0KGdjLCBkb20pOwo+PiArICAgIG1ha2VfYWNwaV9k c2R0KGdjLCBkb20pOwo+Pgo+PiAgICAgICByZXR1cm4gMDsKPj4gICB9Cj4+IGRpZmYgLS1naXQg YS90b29scy9saWJ4bC9saWJ4bF9hcm1fYWNwaS5oIGIvdG9vbHMvbGlieGwvbGlieGxfYXJtX2Fj cGkuaAo+PiBpbmRleCA5YjU4ZGU2Li5iMGZkOWNlIDEwMDY0NAo+PiAtLS0gYS90b29scy9saWJ4 bC9saWJ4bF9hcm1fYWNwaS5oCj4+ICsrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2FybV9hY3BpLmgK Pj4gQEAgLTE5LDYgKzE5LDggQEAKPj4KPj4gICAjaW5jbHVkZSA8eGNfZG9tLmg+Cj4+Cj4+ICsj ZGVmaW5lIERPTVVfTUFYX1ZDUFVTIDEyOAo+PiArCj4gCj4gSSB3b3VsZCByYXRoZXIgZGVmaW5l IHRoZSBtYXhpbXVtIG51bWJlciBvZiBWQ1BVUyBpbiBwdWJsaWMvYXJjaF9hcm0uaAo+IHRvIGF2 b2lkIGRlZmluaW5nIHRoZSBjdXJyZW50IG51bWJlciBvZiB2Q1BVcyBzdXBwb3J0ZWQgaW4gbXVs dGlwbGUgcGxhY2VzLgo+IAo+PiAgIGludCBsaWJ4bF9fcHJlcGFyZV9hY3BpKGxpYnhsX19nYyAq Z2MsIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvICppbmZvLAo+PiAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpYnhsX19kb21haW5fYnVpbGRfc3RhdGUgKnN0YXRlLAo+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSk7Cj4+IGRpZmYgLS1naXQgYS90 b29scy9saWJ4bC9saWJ4bF9lbXB0eV9kc2R0X2FybS5hc2wKPj4gYi90b29scy9saWJ4bC9saWJ4 bF9lbXB0eV9kc2R0X2FybS5hc2wKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAw MDAwMC4uMDA1ZmE2YQo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL3Rvb2xzL2xpYnhsL2xpYnhs X2VtcHR5X2RzZHRfYXJtLmFzbAo+PiBAQCAtMCwwICsxLDIyIEBACj4+ICsvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCj4+Cj4+ICsgKiBEU0RUIGZvciBYZW4gQVJNIERvbVUKPj4gKyAqCj4+ICsgKiBD b3B5cmlnaHQgKGMpIDIwMDQsIEludGVsIENvcnBvcmF0aW9uLgo+PiArICoKPj4gKyAqIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK Pj4gbW9kaWZ5IGl0Cj4+ICsgKiB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAo+PiArICogdmVyc2lvbiAyLCBhcyBwdWJsaXNo ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KPj4gKyAqCj4+ICsgKiBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAo+ PiBXSVRIT1VUCj4+ICsgKiBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IKPj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKPj4gTGljZW5zZSBmb3IK Pj4gKyAqIG1vcmUgZGV0YWlscy4KPj4gKyAqCj4+ICsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQo+PiBhbG9uZyB3aXRo Cj4+ICsgKiB0aGlzIHByb2dyYW07IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4KPj4gKyAqLwo+PiArCj4+ICtEZWZpbml0aW9uQmxvY2sgKCJEU0RULmFtbCIsICJE U0RUIiwgMywgIlhlbkFSTSIsICJYZW4gRFNEVCIsIDEpCj4+ICt7Cj4+ICsKPj4gK30KPj4gZGlm ZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX21rX2RzZHRfYXJtLmMKPj4gYi90b29scy9saWJ4 bC9saWJ4bF9ta19kc2R0X2FybS5jCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAw MDAwMDAuLjk2ZmFkYmQKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi90b29scy9saWJ4bC9saWJ4 bF9ta19kc2R0X2FybS5jCj4gCj4gQ2FuIHdlIHNoYXJlIHRoZSBjb2RlIGZyb20gdG9vbHMvZmly bXdhcmUvYWNwaS9ta19kc2R0LmM/Cj4KWWVhaCwgd2UgY2FuIHNoYXJlIHB1c2hfYmxvY2soKSwg cG9wX2Jsb2NrKCkgc3RtdCgpIGFuZCBpbmRlbnQoKSBidXQgdGhlCm1haW4oKSBmdW5jdGlvbiBp cyB0b3RhbGx5IGRpZmZlcmVudCBzaW5jZSB0aGVyZSBhcmUgb25seSB0aGUgcHJvY2Vzc29yCmRl dmljZSBvYmplY3RzIGZvciBBUk0gRFNEVCBidXQgdGhlcmUgYXJlIG1hbnkgb3RoZXIgdGhpbmdz IGluIHg4Ni4KCkkgdGhpbmsgdGhhdCBzaW5jZSBCb3JpcyB3aWxsIG1vdmUgdGhlIGNvZGVzIHVu ZGVyCnRvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9hY3BpIHRvIG90aGVyIHBsYWNlLCBhZnRlciB0 aGF0IHdlIGNvdWxkIHNlZQpob3cgdG8gc2hhcmUgY29kZXMgdGhlbi4KCj4+IEBAIC0wLDAgKzEs OTQgQEAKPj4gKyNpbmNsdWRlIDxzdGRpby5oPgo+PiArI2luY2x1ZGUgPHN0ZGFyZy5oPgo+PiAr I2luY2x1ZGUgPHN0ZGludC5oPgo+PiArI2luY2x1ZGUgPHN0cmluZy5oPgo+PiArI2luY2x1ZGUg PHN0ZGxpYi5oPgo+PiArI2luY2x1ZGUgImxpYnhsX2FybV9hY3BpLmgiCj4+ICsKPj4gK3N0YXRp YyB1bnNpZ25lZCBpbnQgaW5kZW50X2xldmVsOwo+PiArCj4+ICtzdGF0aWMgdm9pZCBpbmRlbnQo dm9pZCkKPj4gK3sKPj4gKyAgICB1bnNpZ25lZCBpbnQgaTsKPj4gKyAgICBmb3IgKCBpID0gMDsg aSA8IGluZGVudF9sZXZlbDsgaSsrICkKPj4gKyAgICAgICAgcHJpbnRmKCIgICAgIik7Cj4+ICt9 Cj4+ICsKPj4gK3N0YXRpYyBfX2F0dHJpYnV0ZV9fKChmb3JtYXQocHJpbnRmLCAyLCAzKSkpCj4+ ICt2b2lkIF9zdG10KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQo+PiAr ewo+PiArICAgIHZhX2xpc3QgYXJnczsKPj4gKwo+PiArICAgIGluZGVudCgpOwo+PiArICAgIHBy aW50ZigiJXMiLCBuYW1lKTsKPj4gKwo+PiArICAgIGlmICggIWZtdCApCj4+ICsgICAgICAgIHJl dHVybjsKPj4gKwo+PiArICAgIHByaW50ZigiICggIik7Cj4+ICsgICAgdmFfc3RhcnQoYXJncywg Zm10KTsKPj4gKyAgICB2cHJpbnRmKGZtdCwgYXJncyk7Cj4+ICsgICAgdmFfZW5kKGFyZ3MpOwo+ PiArICAgIHByaW50ZigiICkiKTsKPj4gK30KPj4gKwo+PiArI2RlZmluZSBzdG10KG4sIGYsIGEu Li4pICAgICAgICAgICAgICAgICAgICAgICAgXAo+PiArICAgIGRvIHsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAo+PiArICAgICAgICBfc3RtdChuLCBmICwgIyMgYSAp OyAgICAgICAgICAgICAgICAgICAgXAo+PiArICAgICAgICBwcmludGYoIlxuIik7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAo+PiArICAgIH0gd2hpbGUgKDApCj4+ICsKPj4gKyNkZWZpbmUg cHVzaF9ibG9jayhuLCBmLCBhLi4uKSAgICAgICAgICAgICAgICAgIFwKPj4gKyAgICBkbyB7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPj4gKyAgICAgICAgX3N0bXQo biwgZiAsICMjIGEgKTsgICAgICAgICAgICAgICAgICAgIFwKPj4gKyAgICAgICAgcHJpbnRmKCIg e1xuIik7ICAgICAgICAgICAgICAgICAgICAgICAgIFwKPj4gKyAgICAgICAgaW5kZW50X2xldmVs Kys7ICAgICAgICAgICAgICAgICAgICAgICAgIFwKPj4gKyAgICB9IHdoaWxlICgwKQo+PiArCj4+ ICtzdGF0aWMgdm9pZCBwb3BfYmxvY2sodm9pZCkKPj4gK3sKPj4gKyAgICBpbmRlbnRfbGV2ZWwt LTsKPj4gKyAgICBpbmRlbnQoKTsKPj4gKyAgICBwcmludGYoIn1cbiIpOwo+PiArfQo+PiArCj4+ ICtpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCj4+ICt7Cj4+ICsgICAgdW5zaWduZWQg aW50IGNwdSwgbWF4X2NwdXMgPSBET01VX01BWF9WQ1BVUzsKPj4gKwo+PiArICAgIC8qKioqIERT RFQgRGVmaW5pdGlvbkJsb2NrIHN0YXJ0ICoqKiovCj4+ICsgICAgLyogKHdlIGFwcGVuZCB0byBl eGlzdGluZyBEU0RUIGRlZmluaXRpb24gYmxvY2spICovCj4+ICsgICAgaW5kZW50X2xldmVsKys7 Cj4+ICsKPj4gKyAgICAvKioqKiBQcm9jZXNzb3Igc3RhcnQgKioqKi8KPj4gKyAgICBwdXNoX2Js b2NrKCJTY29wZSIsICJcXF9TQiIpOwo+PiArCj4+ICsgICAgLyogRGVmaW5lIHByb2Nlc3NvciBv YmplY3RzIGFuZCBjb250cm9sIG1ldGhvZHMuICovCj4+ICsgICAgZm9yICggY3B1ID0gMDsgY3B1 IDwgbWF4X2NwdXM7IGNwdSsrKQo+PiArICAgIHsKPj4gKyAgICAgICAgcHVzaF9ibG9jaygiUHJv Y2Vzc29yIiwgIlBSJTAyWCwgJWQsIDB4MDAwMGIwMTAsIDB4MDYiLCBjcHUsCj4+IGNwdSk7Cj4+ ICsKPj4gKyAgICAgICAgc3RtdCgiTmFtZSIsICJfSElELCBcIkFDUEkwMDA3XCIiKTsKPj4gKyAg ICAgICAgc3RtdCgiTmFtZSIsICJfVUlELCAlZCIsIGNwdSk7Cj4+ICsKPj4gKyAgICAgICAgcG9w X2Jsb2NrKCk7Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgcG9wX2Jsb2NrKCk7Cj4+ICsgICAgLyoq KiogUHJvY2Vzc29yIGVuZCAqKioqLwo+PiArCj4+ICsgICAgcG9wX2Jsb2NrKCk7Cj4+ICsgICAg LyoqKiogRFNEVCBEZWZpbml0aW9uQmxvY2sgZW5kICoqKiovCj4+ICsKPj4gKyAgICByZXR1cm4g MDsKPj4gK30KPj4gKwo+PiArLyoKPj4gKyAqIExvY2FsIHZhcmlhYmxlczoKPj4gKyAqIG1vZGU6 IEMKPj4gKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKPj4gKyAqIGMtYmFzaWMtb2Zmc2V0OiA0Cj4+ ICsgKiB0YWItd2lkdGg6IDQKPj4gKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAo+PiArICogRW5k Ogo+PiArICovCj4+Cj4gCj4gUmVnYXJkcywKPiAKCi0tIApTaGFubm9uCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlz dApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK