From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v9 23/25] tools: L2 CAT: support show cbm for L2 CAT. Date: Thu, 16 Mar 2017 19:08:13 +0800 Message-ID: <1489662495-5375-24-git-send-email-yi.y.sun@linux.intel.com> References: <1489662495-5375-1-git-send-email-yi.y.sun@linux.intel.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 1coTMh-0005Ah-FL for xen-devel@lists.xenproject.org; Thu, 16 Mar 2017 11:14:43 +0000 In-Reply-To: <1489662495-5375-1-git-send-email-yi.y.sun@linux.intel.com> 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: kevin.tian@intel.com, wei.liu2@citrix.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, he.chen@linux.intel.com, ian.jackson@eu.citrix.com, Yi Sun , mengxu@cis.upenn.edu, jbeulich@suse.com, chao.p.peng@linux.intel.com, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpbXBsZW1lbnRzIGNoYW5nZXMgaW4geGwveGMgY2hhbmdlcyB0byBzdXBwb3J0 CnNob3dpbmcgQ0JNIG9mIEwyIENBVC4KClRoZSBuZXcgbGV2ZWwgb3B0aW9uIGlzIGludHJvZHVj ZWQgdG8gb3JpZ2luYWwgQ0FUIHNob3dpbmcKY29tbWFuZCBpbiBvcmRlciB0byBzaG93IENCTSBm b3Igc3BlY2lmaWVkIGxldmVsIENBVC4KLSAneGwgcHNyLWNhdC1zaG93JyBpcyB1cGRhdGVkIHRv IHNob3cgQ0JNIG9mIGEgZG9tYWluCiAgYWNjb3JkaW5nIHRvIGlucHV0IGNhY2hlIGxldmVsLgoK RXhhbXBsZXM6CnJvb3RAOn4kIHhsIHBzci1jYXQtc2hvdyAtbDIgMQpTb2NrZXQgSUQgICAgICAg OiAwCkRlZmF1bHQgQ0JNICAgICA6IDB4ZmYKICAgSUQgICAgICAgICAgICAgICAgICAgICBOQU1F ICAgICAgICAgICAgIENCTQogICAgMSAgICAgICAgICAgICAgICAgdWJ1bnR1MTQgICAgICAgICAg ICAweDdmCgpTaWduZWQtb2ZmLWJ5OiBIZSBDaGVuIDxoZS5jaGVuQGxpbnV4LmludGVsLmNvbT4K U2lnbmVkLW9mZi1ieTogWWkgU3VuIDx5aS55LnN1bkBsaW51eC5pbnRlbC5jb20+CkFja2VkLWJ5 OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0Kdjk6CiAgICAtIG1vdmUgeGxfY21k aW1wbC5jIGNoYW5nZXMgaW50byB4bC94bF9wc3IuYy4KICAgIC0gbW92ZSB4bF9jbWR0YWJsZS5j IGNoYW5nZXMgaW50byB4bC94bF9jbWR0YWJsZS5jLgp2NjoKICAgIC0gY2hlY2sgaWYgaW5wdXQg bGV2ZWwgaXMgY29ycmVjdC4KICAgIC0gYWRqdXN0ICd7JyBwb3N0aW9uIGZvciAnaWYnLgogICAg ICAoc3VnZ2VzdGVkIGJ5IFdlaSBMaXUpCnY1OgogICAgLSByZW1vdmUgJ0wyX0NCTScgaW4gaWRs IGJlY2F1c2UgaXQgaGFzIGJlZW4gbW92ZWQgdG8gcGF0Y2ggMjE6CiAgICAgICJ0b29sczogTDIg Q0FUOiBzdXBwb3J0IGdldCBIVyBpbmZvIGZvciBMMiBDQVQiLgogICAgICAoc3VnZ2VzdGVkIGJ5 IFdlaSBMaXUpCnY0OgogICAgLSBjcmVhdGUgdGhpcyBwYXRjaCBiZWNhdXNlIG9mIGNvZGVzIGFy Y2hpdGVjdHVyZSBjaGFuZ2UuCi0tLQogdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggfCAg MSArCiB0b29scy9saWJ4Yy94Y19wc3IuYyAgICAgICAgICB8ICAzICsrCiB0b29scy94bC94bF9j bWR0YWJsZS5jICAgICAgICB8ICAzICstCiB0b29scy94bC94bF9wc3IuYyAgICAgICAgICAgICB8 IDg1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIDQgZmlsZXMg Y2hhbmdlZCwgNjMgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv dG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0 cmwuaAppbmRleCA5OWM2ZmE1Li4wZmQ5MzI2IDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy9pbmNs dWRlL3hlbmN0cmwuaAorKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaApAQCAtMjQx OCw2ICsyNDE4LDcgQEAgZW51bSB4Y19wc3JfY2F0X3R5cGUgewogICAgIFhDX1BTUl9DQVRfTDNf Q0JNICAgICAgPSAxLAogICAgIFhDX1BTUl9DQVRfTDNfQ0JNX0NPREUgPSAyLAogICAgIFhDX1BT Ul9DQVRfTDNfQ0JNX0RBVEEgPSAzLAorICAgIFhDX1BTUl9DQVRfTDJfQ0JNICAgICAgPSA0LAog fTsKIHR5cGVkZWYgZW51bSB4Y19wc3JfY2F0X3R5cGUgeGNfcHNyX2NhdF90eXBlOwogCmRpZmYg LS1naXQgYS90b29scy9saWJ4Yy94Y19wc3IuYyBiL3Rvb2xzL2xpYnhjL3hjX3Bzci5jCmluZGV4 IDg0YTA4YzQuLjA0ZjU5MjcgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX3Bzci5jCisrKyBi L3Rvb2xzL2xpYnhjL3hjX3Bzci5jCkBAIC0yOTksNiArMjk5LDkgQEAgaW50IHhjX3Bzcl9jYXRf Z2V0X2RvbWFpbl9kYXRhKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBkb21pZCwKICAgICBj YXNlIFhDX1BTUl9DQVRfTDNfQ0JNX0RBVEE6CiAgICAgICAgIGNtZCA9IFhFTl9ET01DVExfUFNS X0NBVF9PUF9HRVRfTDNfREFUQTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBYQ19QU1JfQ0FU X0wyX0NCTToKKyAgICAgICAgY21kID0gWEVOX0RPTUNUTF9QU1JfQ0FUX09QX0dFVF9MMl9DQk07 CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGVycm5vID0gRUlOVkFMOwog ICAgICAgICByZXR1cm4gLTE7CmRpZmYgLS1naXQgYS90b29scy94bC94bF9jbWR0YWJsZS5jIGIv dG9vbHMveGwveGxfY21kdGFibGUuYwppbmRleCAxMjE5YjMzLi5hYjdhZDYwIDEwMDY0NAotLS0g YS90b29scy94bC94bF9jbWR0YWJsZS5jCisrKyBiL3Rvb2xzL3hsL3hsX2NtZHRhYmxlLmMKQEAg LTU1Niw3ICs1NTYsOCBAQCBzdHJ1Y3QgY21kX3NwZWMgY21kX3RhYmxlW10gPSB7CiAgICAgeyAi cHNyLWNhdC1zaG93IiwKICAgICAgICZtYWluX3Bzcl9jYXRfc2hvdywgMCwgMSwKICAgICAgICJT aG93IENhY2hlIEFsbG9jYXRpb24gVGVjaG5vbG9neSBpbmZvcm1hdGlvbiIsCi0gICAgICAiPERv bWFpbj4iLAorICAgICAgIltvcHRpb25zXSA8RG9tYWluPiIsCisgICAgICAiLWwgPGxldmVsPiAg ICAgICAgU3BlY2lmeSB0aGUgY2FjaGUgbGV2ZWwgdG8gcHJvY2Vzcywgb3RoZXJ3aXNlIEwzIGNh Y2hlIGlzIHByb2Nlc3NlZFxuIgogICAgIH0sCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvdG9vbHMv eGwveGxfcHNyLmMgYi90b29scy94bC94bF9wc3IuYwppbmRleCAyNzFiODhmLi41NzVmNGEwIDEw MDY0NAotLS0gYS90b29scy94bC94bF9wc3IuYworKysgYi90b29scy94bC94bF9wc3IuYwpAQCAt MzQyLDcgKzM0Miw3IEBAIHN0YXRpYyB2b2lkIHBzcl9jYXRfcHJpbnRfb25lX2RvbWFpbl9jYm1f dHlwZSh1aW50MzJfdCBkb21pZCwgdWludDMyX3Qgc29ja2V0aWQsCiB9CiAKIHN0YXRpYyB2b2lk IHBzcl9jYXRfcHJpbnRfb25lX2RvbWFpbl9jYm0odWludDMyX3QgZG9taWQsIHVpbnQzMl90IHNv Y2tldGlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGNk cF9lbmFibGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29s IGNkcF9lbmFibGVkLCB1bnNpZ25lZCBpbnQgbHZsKQogewogICAgIGNoYXIgKmRvbWFpbl9uYW1l OwogCkBAIC0zNTAsMjcgKzM1MCwzOCBAQCBzdGF0aWMgdm9pZCBwc3JfY2F0X3ByaW50X29uZV9k b21haW5fY2JtKHVpbnQzMl90IGRvbWlkLCB1aW50MzJfdCBzb2NrZXRpZCwKICAgICBwcmludGYo IiU1ZCUyNXMiLCBkb21pZCwgZG9tYWluX25hbWUpOwogICAgIGZyZWUoZG9tYWluX25hbWUpOwog Ci0gICAgaWYgKCFjZHBfZW5hYmxlZCkgewotICAgICAgICBwc3JfY2F0X3ByaW50X29uZV9kb21h aW5fY2JtX3R5cGUoZG9taWQsIHNvY2tldGlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTElCWExfUFNSX0NCTV9UWVBFX0wzX0NCTSk7Ci0gICAgfSBlbHNlIHsK LSAgICAgICAgcHNyX2NhdF9wcmludF9vbmVfZG9tYWluX2NibV90eXBlKGRvbWlkLCBzb2NrZXRp ZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhMX1BTUl9D Qk1fVFlQRV9MM19DQk1fQ09ERSk7CisgICAgc3dpdGNoIChsdmwpIHsKKyAgICBjYXNlIDM6Cisg ICAgICAgIGlmICghY2RwX2VuYWJsZWQpIHsKKyAgICAgICAgICAgIHBzcl9jYXRfcHJpbnRfb25l X2RvbWFpbl9jYm1fdHlwZShkb21pZCwgc29ja2V0aWQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTElCWExfUFNSX0NCTV9UWVBFX0wzX0NCTSk7CisgICAg ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwc3JfY2F0X3ByaW50X29uZV9kb21haW5fY2JtX3R5 cGUoZG9taWQsIHNvY2tldGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExJQlhMX1BTUl9DQk1fVFlQRV9MM19DQk1fQ09ERSk7CisgICAgICAgICAgICBw c3JfY2F0X3ByaW50X29uZV9kb21haW5fY2JtX3R5cGUoZG9taWQsIHNvY2tldGlkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhMX1BTUl9DQk1fVFlQ RV9MM19DQk1fREFUQSk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAyOgog ICAgICAgICBwc3JfY2F0X3ByaW50X29uZV9kb21haW5fY2JtX3R5cGUoZG9taWQsIHNvY2tldGlk LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWExfUFNSX0NC TV9UWVBFX0wzX0NCTV9EQVRBKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExJQlhMX1BTUl9DQk1fVFlQRV9MMl9DQk0pOworICAgICAgICBicmVhazsKKyAgICBk ZWZhdWx0OgorICAgICAgICBwcmludGYoIklucHV0IGx2bCAlZCBpcyB3cm9uZyEiLCBsdmwpOwor ICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBwcmludGYoIlxuIik7CiB9CiAKIHN0YXRpYyBp bnQgcHNyX2NhdF9wcmludF9kb21haW5fY2JtKHVpbnQzMl90IGRvbWlkLCB1aW50MzJfdCBzb2Nr ZXRpZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2RwX2VuYWJs ZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGNkcF9lbmFibGVk LCB1bnNpZ25lZCBpbnQgbHZsKQogewogICAgIGludCBpLCBucl9kb21haW5zOwogICAgIGxpYnhs X2RvbWluZm8gKmxpc3Q7CiAKICAgICBpZiAoZG9taWQgIT0gSU5WQUxJRF9ET01JRCkgewotICAg ICAgICBwc3JfY2F0X3ByaW50X29uZV9kb21haW5fY2JtKGRvbWlkLCBzb2NrZXRpZCwgY2RwX2Vu YWJsZWQpOworICAgICAgICBwc3JfY2F0X3ByaW50X29uZV9kb21haW5fY2JtKGRvbWlkLCBzb2Nr ZXRpZCwgY2RwX2VuYWJsZWQsIGx2bCk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApAQCAt MzgwLDQ5ICszOTEsNTkgQEAgc3RhdGljIGludCBwc3JfY2F0X3ByaW50X2RvbWFpbl9jYm0odWlu dDMyX3QgZG9taWQsIHVpbnQzMl90IHNvY2tldGlkLAogICAgIH0KIAogICAgIGZvciAoaSA9IDA7 IGkgPCBucl9kb21haW5zOyBpKyspCi0gICAgICAgIHBzcl9jYXRfcHJpbnRfb25lX2RvbWFpbl9j Ym0obGlzdFtpXS5kb21pZCwgc29ja2V0aWQsIGNkcF9lbmFibGVkKTsKKyAgICAgICAgcHNyX2Nh dF9wcmludF9vbmVfZG9tYWluX2NibShsaXN0W2ldLmRvbWlkLCBzb2NrZXRpZCwgY2RwX2VuYWJs ZWQsIGx2bCk7CiAgICAgbGlieGxfZG9taW5mb19saXN0X2ZyZWUobGlzdCwgbnJfZG9tYWlucyk7 CiAKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBwc3JfY2F0X3ByaW50X3NvY2tldCh1 aW50MzJfdCBkb21pZCwgbGlieGxfcHNyX2NhdF9pbmZvICppbmZvKQorc3RhdGljIGludCBwc3Jf Y2F0X3ByaW50X3NvY2tldCh1aW50MzJfdCBkb21pZCwgbGlieGxfcHNyX2NhdF9pbmZvICppbmZv LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbHZsKQogewog ICAgIGludCByYzsKICAgICB1aW50MzJfdCBsM19jYWNoZV9zaXplOwogCi0gICAgcmMgPSBsaWJ4 bF9wc3JfY210X2dldF9sM19jYWNoZV9zaXplKGN0eCwgaW5mby0+aWQsICZsM19jYWNoZV9zaXpl KTsKLSAgICBpZiAocmMpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gZ2V0 IGwzIGNhY2hlIHNpemUgZm9yIHNvY2tldDolZFxuIiwKLSAgICAgICAgICAgICAgICBpbmZvLT5p ZCk7Ci0gICAgICAgIHJldHVybiAtMTsKKyAgICBwcmludGYoIiUtMTZzOiAldVxuIiwgIlNvY2tl dCBJRCIsIGluZm8tPmlkKTsKKworICAgIC8qIFNvIGZhciwgQ01UIG9ubHkgc3VwcG9ydHMgTDMg Y2FjaGUuICovCisgICAgaWYgKGx2bCA9PSAzKSB7CisgICAgICAgIHJjID0gbGlieGxfcHNyX2Nt dF9nZXRfbDNfY2FjaGVfc2l6ZShjdHgsIGluZm8tPmlkLCAmbDNfY2FjaGVfc2l6ZSk7CisgICAg ICAgIGlmIChyYykgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gZ2V0 IGwzIGNhY2hlIHNpemUgZm9yIHNvY2tldDolZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgaW5m by0+aWQpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIHByaW50 ZigiJS0xNnM6ICV1S0JcbiIsICJMMyBDYWNoZSIsIGwzX2NhY2hlX3NpemUpOwogICAgIH0KIAot ICAgIHByaW50ZigiJS0xNnM6ICV1XG4iLCAiU29ja2V0IElEIiwgaW5mby0+aWQpOwotICAgIHBy aW50ZigiJS0xNnM6ICV1S0JcbiIsICJMMyBDYWNoZSIsIGwzX2NhY2hlX3NpemUpOwogICAgIHBy aW50ZigiJS0xNnM6ICUjbGx4XG4iLCAiRGVmYXVsdCBDQk0iLCAoMXVsbCA8PCBpbmZvLT5jYm1f bGVuKSAtIDEpOwogICAgIGlmIChpbmZvLT5jZHBfZW5hYmxlZCkKICAgICAgICAgcHJpbnRmKCIl NXMlMjVzJTE2cyUxNnNcbiIsICJJRCIsICJOQU1FIiwgIkNCTSAoY29kZSkiLCAiQ0JNIChkYXRh KSIpOwogICAgIGVsc2UKICAgICAgICAgcHJpbnRmKCIlNXMlMjVzJTE2c1xuIiwgIklEIiwgIk5B TUUiLCAiQ0JNIik7CiAKLSAgICByZXR1cm4gcHNyX2NhdF9wcmludF9kb21haW5fY2JtKGRvbWlk LCBpbmZvLT5pZCwgaW5mby0+Y2RwX2VuYWJsZWQpOworICAgIHJldHVybiBwc3JfY2F0X3ByaW50 X2RvbWFpbl9jYm0oZG9taWQsIGluZm8tPmlkLCBpbmZvLT5jZHBfZW5hYmxlZCwgbHZsKTsKIH0K IAotc3RhdGljIGludCBwc3JfY2F0X3Nob3codWludDMyX3QgZG9taWQpCitzdGF0aWMgaW50IHBz cl9jYXRfc2hvdyh1aW50MzJfdCBkb21pZCwgdW5zaWduZWQgaW50IGx2bCkKIHsKICAgICBpbnQg aSwgbnI7CiAgICAgaW50IHJjOwogICAgIGxpYnhsX3Bzcl9jYXRfaW5mbyAqaW5mbzsKIAotICAg IHJjID0gbGlieGxfcHNyX2NhdF9nZXRfaW5mbyhjdHgsICZpbmZvLCAmbnIsIDMpOworICAgIGlm IChsdmwgIT0gMiAmJiBsdmwgIT0gMykgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIklucHV0 IGx2bCAlZCBpcyB3cm9uZ1xuIiwgbHZsKTsKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsK KyAgICB9CisKKyAgICByYyA9IGxpYnhsX3Bzcl9jYXRfZ2V0X2luZm8oY3R4LCAmaW5mbywgJm5y LCBsdmwpOwogICAgIGlmIChyYykgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0 byBnZXQgY2F0IGluZm9cbiIpOworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBn ZXQgJXMgY2F0IGluZm9cbiIsIChsdmwgPT0gMyk/IkwzIjoiTDIiKTsKICAgICAgICAgcmV0dXJu IHJjOwogICAgIH0KIAogICAgIGZvciAoaSA9IDA7IGkgPCBucjsgaSsrKSB7Ci0gICAgICAgIHJj ID0gcHNyX2NhdF9wcmludF9zb2NrZXQoZG9taWQsIGluZm8gKyBpKTsKKyAgICAgICAgcmMgPSBw c3JfY2F0X3ByaW50X3NvY2tldChkb21pZCwgaW5mbyArIGksIGx2bCk7CiAgICAgICAgIGlmIChy YykKICAgICAgICAgICAgIGdvdG8gb3V0OwogICAgIH0KQEAgLTUzMywxMSArNTU0LDE5IEBAIGlu dCBtYWluX3Bzcl9jYXRfY2JtX3NldChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAKIGludCBtYWlu X3Bzcl9jYXRfc2hvdyhpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7Ci0gICAgaW50IG9wdDsKKyAg ICBpbnQgb3B0ID0gMDsKICAgICB1aW50MzJfdCBkb21pZDsKKyAgICB1bnNpZ25lZCBpbnQgbHZs ID0gMzsKIAotICAgIFNXSVRDSF9GT1JFQUNIX09QVChvcHQsICIiLCBOVUxMLCAicHNyLWNhdC1z aG93IiwgMCkgewotICAgICAgICAvKiBObyBvcHRpb25zICovCisgICAgc3RhdGljIHN0cnVjdCBv cHRpb24gb3B0c1tdID0geworICAgICAgICB7ImxldmVsIiwgMSwgMCwgJ2wnfSwKKyAgICAgICAg Q09NTU9OX0xPTkdfT1BUUworICAgIH07CisKKyAgICBTV0lUQ0hfRk9SRUFDSF9PUFQob3B0LCAi bDoiLCBvcHRzLCAicHNyLWNhdC1zaG93IiwgMCkgeworICAgIGNhc2UgJ2wnOgorICAgICAgICBs dmwgPSBhdG9pKG9wdGFyZyk7CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIGlmIChvcHRp bmQgPj0gYXJnYykKQEAgLTU0OSw3ICs1NzgsNyBAQCBpbnQgbWFpbl9wc3JfY2F0X3Nob3coaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAgICByZXR1cm4gMjsKICAgICB9CiAKLSAgICByZXR1 cm4gcHNyX2NhdF9zaG93KGRvbWlkKTsKKyAgICByZXR1cm4gcHNyX2NhdF9zaG93KGRvbWlkLCBs dmwpOwogfQogCiBpbnQgbWFpbl9wc3JfaHdpbmZvKGludCBhcmdjLCBjaGFyICoqYXJndikKLS0g CjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xp c3RzLnhlbi5vcmcveGVuLWRldmVsCg==