From mboxrd@z Thu Jan 1 00:00:00 1970 From: Praveen Kumar Subject: [RFC PATCH v3 2/2] xen: credit2: provide custom option to create Date: Fri, 31 Mar 2017 00:58:10 +0530 Message-ID: <20170330192810.6755-3-kpraveen.lkml@gmail.com> References: <20170330192810.6755-1-kpraveen.lkml@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170330192810.6755-1-kpraveen.lkml@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: george.dunlap@eu.citrix.com, dario.faggioli@citrix.com Cc: Praveen Kumar , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org VGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbiAnY3VzdG9tJyB0 aGF0IHdoZW4gdXNlZCB3aWxsCmNyZWF0ZSBydW5xdWV1ZSBiYXNlZCB1cG9uIHRoZSBwQ1BVIHN1 YnNldCBwcm92aWRlIGR1cmluZyBib290dXAuCgpTaWduZWQtb2ZmLWJ5OiBQcmF2ZWVuIEt1bWFy IDxrcHJhdmVlbi5sa21sQGdtYWlsLmNvbT4KLS0tCiBkb2NzL21pc2MveGVuLWNvbW1hbmQtbGlu ZS5tYXJrZG93biB8ICAgOCArLQogeGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMgICAgICAgICAg fCAxNzAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiAyIGZpbGVzIGNoYW5n ZWQsIDE3NiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvY3Mv bWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duIGIvZG9jcy9taXNjL3hlbi1jb21tYW5kLWxp bmUubWFya2Rvd24KaW5kZXggYzI0NWNmYTQ3MS4uZTY1MDU2YjNkMCAxMDA2NDQKLS0tIGEvZG9j cy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24KKysrIGIvZG9jcy9taXNjL3hlbi1jb21t YW5kLWxpbmUubWFya2Rvd24KQEAgLTUyNSw3ICs1MjUsNyBAQCBhbHNvIHNsb3cgaW4gcmVzcG9u ZGluZyB0byBsb2FkIGNoYW5nZXMuCiBUaGUgZGVmYXVsdCB2YWx1ZSBvZiBgMSBzZWNgIGlzIHJh dGhlciBsb25nLgogCiAjIyMgY3JlZGl0MlxfcnVucXVldWUKLT4gYD0gY3B1IHwgY29yZSB8IHNv Y2tldCB8IG5vZGUgfCBhbGxgCis+IGA9IGNwdSB8IGNvcmUgfCBzb2NrZXQgfCBub2RlIHwgYWxs IHwgY3VzdG9tYAogCiA+IERlZmF1bHQ6IGBzb2NrZXRgCiAKQEAgLTU0Myw2ICs1NDMsMTIgQEAg QXZhaWxhYmxlIGFsdGVybmF0aXZlcywgd2l0aCB0aGVpciBtZWFuaW5nLCBhcmU6CiAqIGBub2Rl YDogb25lIHJ1bnF1ZXVlIHBlciBlYWNoIE5VTUEgbm9kZSBvZiB0aGUgaG9zdDsKICogYGFsbGA6 IGp1c3Qgb25lIHJ1bnF1ZXVlIHNoYXJlZCBieSBhbGwgdGhlIGxvZ2ljYWwgcENQVXMgb2YKICAg ICAgICAgIHRoZSBob3N0CisqIGBjdXN0b21gOiBvbmUgcnVucXVldWUgcGVyIHN1YnNldC4gRXhh bXBsZToKKyAgICAgICAgICAgIGNyZWRpdDJfcnVucXVldWU9W1swLDEsNCw1XVsyLDMsNiw3XVs4 LDksMTIsMTNdWzEwLDExLDE0LDE1XV0KKyAgICAgICAgICAgICAgICAtIHBDUFVzIDAsIDEsIDQg YW5kIDUgYmVsb25nIHRvIHJ1bnF1ZXVlIDAKKyAgICAgICAgICAgICAgICAtIHBDUFVzIDIsIDMs IDYgYW5kIDcgYmVsb25nIHRvIHJ1bnF1ZXVlIDEKKyAgICAgICAgICAgICAgICAtIHBDUFVzIDgs IDksIDEyIGFuZCAxMyBiZWxvbmcgdG8gcnVucXVldWUgMgorICAgICAgICAgICAgICAgIC0gcENQ VXMgMTAsIDExLCAxNCBhbmQgMTUgYmVsb25nIHRvIHJ1bnF1ZXVlIDMKIAogIyMjIGRiZ3AKID4g YD0gZWhjaVsgPGludGVnZXI+IHwgQHBjaTxidXM+OjxzbG90Pi48ZnVuYz4gXWAKZGlmZiAtLWdp dCBhL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQy LmMKaW5kZXggZWU3YjQ0M2Y5ZS4uOTIzNGIwMjNjYiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9z Y2hlZF9jcmVkaXQyLmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMKQEAgLTMyMSw2 ICszMjEsMTUgQEAgaW50ZWdlcl9wYXJhbSgiY3JlZGl0Ml9iYWxhbmNlX292ZXIiLCBvcHRfb3Zl cmxvYWRfYmFsYW5jZV90b2xlcmFuY2UpOwogICogICAgICAgICAgIChsb2dpY2FsKSBwcm9jZXNz b3JzIG9mIHRoZSBob3N0IGJlbG9uZy4gVGhpcyB3aWxsIGhhcHBlbiBpZgogICogICAgICAgICAg IHRoZSBvcHRfcnVucXVldWUgcGFyYW1ldGVyIGlzIHNldCB0byAnYWxsJy4KICAqCisgKiAtIGN1 c3RvbTogbWVhbmluZyB0aGF0IHRoZXJlIHdpbGwgYmUgb25lIHJ1bnF1ZXVlIHBlciBzdWJzZXQg YmVpbmcgcGFzc2VkIGFzCisgKiAgICAgICAgICAgcGFyYW1ldGVyIHRvIGNyZWRpdDJfcnVucXVl dWUgYXMgc2hvd24gaW4gYmVsb3cgZXhhbXBsZS4KKyAqICAgICAgICAgICBFeGFtcGxlOgorICog ICAgICAgICAgIGNyZWRpdDJfcnVucXVldWU9W1tjcHUwLGNwdTFdW2NwdTNdW2NwdTQsY3B1NV1d CisgKiAgICAgICAgICAgVGhlIGV4YW1wbGUgbWVudGlvbmVkIHN0YXRlcyA6CisgKiAgICAgICAg ICAgICAgIGNwdTAgYW5kIGNwdTEgYmVsb25ncyB0byBydW5xdWV1ZSAwCisgKiAgICAgICAgICAg ICAgIGNwdTMgYmVsb25ncyB0byBydW5xdWV1ZSAxCisgKiAgICAgICAgICAgICAgIGNwdTQgYW5k IGNwdTUgYmVsb25ncyB0byBydW5xdWV1ZSAyCisgKgogICogRGVwZW5kaW5nIG9uIHRoZSB2YWx1 ZSBvZiBvcHRfcnVucXVldWUsIHRoZXJlZm9yZSwgY3B1cyB0aGF0IGFyZSBwYXJ0IG9mCiAgKiBl aXRoZXIgdGhlIHNhbWUgcGh5c2ljYWwgY29yZSwgdGhlIHNhbWUgcGh5c2ljYWwgc29ja2V0LCB0 aGUgc2FtZSBOVU1BCiAgKiBub2RlLCBvciBqdXN0IGFsbCBvZiB0aGVtLCB3aWxsIGJlIHB1dCB0 b2dldGhlciB0byBmb3JtIHJ1bnF1ZXVlcy4KQEAgLTMzMCwxOCArMzM5LDYwIEBAIGludGVnZXJf cGFyYW0oImNyZWRpdDJfYmFsYW5jZV9vdmVyIiwgb3B0X292ZXJsb2FkX2JhbGFuY2VfdG9sZXJh bmNlKTsKICNkZWZpbmUgT1BUX1JVTlFVRVVFX1NPQ0tFVCAyCiAjZGVmaW5lIE9QVF9SVU5RVUVV RV9OT0RFICAgMwogI2RlZmluZSBPUFRfUlVOUVVFVUVfQUxMICAgIDQKKyNkZWZpbmUgT1BUX1JV TlFVRVVFX0NVU1RPTSA1CiBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgb3B0X3J1bnF1ZXVlX3N0 cltdID0gewogICAgIFtPUFRfUlVOUVVFVUVfQ1BVXSA9ICJjcHUiLAogICAgIFtPUFRfUlVOUVVF VUVfQ09SRV0gPSAiY29yZSIsCiAgICAgW09QVF9SVU5RVUVVRV9TT0NLRVRdID0gInNvY2tldCIs CiAgICAgW09QVF9SVU5RVUVVRV9OT0RFXSA9ICJub2RlIiwKLSAgICBbT1BUX1JVTlFVRVVFX0FM TF0gPSAiYWxsIgorICAgIFtPUFRfUlVOUVVFVUVfQUxMXSA9ICJhbGwiLAorICAgIFtPUFRfUlVO UVVFVUVfQ1VTVE9NXSA9ICJjdXN0b20iCiB9Owogc3RhdGljIGludCBfX3JlYWRfbW9zdGx5IG9w dF9ydW5xdWV1ZSA9IE9QVF9SVU5RVUVVRV9TT0NLRVQ7CiAKK3N0YXRpYyBpbnQgX19yZWFkX21v c3RseSBjdXN0b21fY3B1X3J1bnF1ZXVlW05SX0NQVVNdOworCisjZGVmaW5lIEdFVFRPS0VOKCB0 b2tlbiwgbGVuLCBzdGFydCwgZW5kICkgICAgICAgICAgICAgICBcCit7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgY2hhciBfdG1w W2xlbisxXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaW50IF9p OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgc2Fm ZV9zdHJjcHkoX3RtcCwgc3RhcnQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg X3RtcFtsZW5dID0gJ1wwJzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg ICAgZm9yICggX2kgPSAwOyBfdG1wW19pXSAhPSAnXDAnOyBfaSsrICkgICAgICAgICAgICAgICBc CisgICAgICAgIHRva2VuID0gKCAoIHRva2VuICogMTAgKSArICggX3RtcFtfaV0gLSAnMCcgKSAp OyBcCit9CisKK3N0YXRpYyBpbmxpbmUgaW50IHRyaW0oY29uc3QgY2hhciAqYywgY2hhciAqdCwg Y2hhciBlbGVtKQoreworICAgIGludCBsID0gc3RybGVuKGMpOworICAgIGNvbnN0IGNoYXIgKngg PSBjIDsKKyAgICBpbnQgaSA9IDA7CisgICAgaWYgKCAhYyB8fCAhdCApCisgICAgICAgIHJldHVy biAtMTsKKyAgICB3aGlsZSAoICp4ICE9ICdcMCcgJiYgaSA8IGwgKQorICAgIHsKKyAgICAgICAg aWYgKCAqeCAhPSBlbGVtICkKKyAgICAgICAgICAgIHRbaSsrXSA9ICp4OworICAgICAgICB4Kys7 CisgICAgfQorICAgIHRbaV0gPSAnXDAnOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW5s aW5lIGludCBnZXRsZW4oY2hhciAqc3RhcnQsIGNoYXIgKmVuZCkKK3sKKyAgICBpZiAoICggc3Rh cnQgKSAmJiAoIGVuZCApICYmICggZW5kID4gc3RhcnQgKSApCisgICAgICAgIHJldHVybiBlbmQt c3RhcnQ7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gLTE7Cit9CisKIHN0YXRpYyB2b2lkIHBh cnNlX2NyZWRpdDJfcnVucXVldWUoY29uc3QgY2hhciAqcykKIHsKICAgICB1bnNpZ25lZCBpbnQg aTsKKyAgICBjb25zdCBjaGFyICpzX2VuZCA9IE5VTEw7CisgICAgY2hhciBtW3N0cmxlbihzKV07 CisgICAgY2hhciAqX3MgPSBOVUxMOwogCiAgICAgZm9yICggaSA9IDA7IGkgPCBBUlJBWV9TSVpF KG9wdF9ydW5xdWV1ZV9zdHIpOyBpKysgKQogICAgIHsKQEAgLTM1MSw3ICs0MDIsMTE1IEBAIHN0 YXRpYyB2b2lkIHBhcnNlX2NyZWRpdDJfcnVucXVldWUoY29uc3QgY2hhciAqcykKICAgICAgICAg ICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KKy8qCisgICAgICogQXQgdGhpcyBzdGFnZSB3 ZSBhcmUgZWl0aGVyIHVua25vd24gdmFsdWUgb2YgY3JlZGl0Ml9ydW5xdWV1ZSBvciB3ZSBjYW4K KyAgICAgKiBjb25zaWRlciBpdCB0byBiZSBjdXN0b20gY3B1LiBMZXRzIHRyeSBwYXJzaW5nIHRo ZSBzYW1lLgorICAgICAqIFJlc2V0dGluZyB0aGUgY3VzdG9tX2NwdV9ydW5xdWV1ZSBmb3IgZnV0 dXJlIHVzZS4gT25seSB0aGUgbm9uLW5lZ2F0aXZlCisgICAgICogZW50cmllcyB3aWxsIGJlIHZh bGlkLiBUaGUgaW5kZXggJ2knIGluIGN1c3RvbV9jcHVfcnVucXVldWUgd2lsbCBzdG9yZQorICAg ICAqIHRoZSBzcGVjaWZpYyBydW5xdWV1ZSBpdCBiZWxvbmdzIHRvLgorICAgICAqIEV4YW1wbGU6 CisgICAgICogICAgIElmIGN1c3RvbV9jcHVfcnVucXVldWVbM10gPT0gMgorICAgICAqICAgICBU aGVuLCBpdCBtZWFucyB0aGF0IGNwdSAzIGJlbG9uZyB0byBydW5xdWV1ZSAyLgorICAgICAqICAg ICBJZiBjdXN0b21fY3B1X3J1bnF1ZXVlWzRdID09IC0xCisgICAgICogICAgIFRoZW4sIGl0IG1l YW5zIHRoYXQgY3B1IDQgZG9lc24ndCBiZWxvbmcgdG8gYW55IHJ1bnF1ZXVlLgorICAgICAqLwor ICAgIGZvciAoIGkgPSAwOyBpIDwgbnJfY3B1X2lkczsgaSsrICkKKyAgICAgICAgY3VzdG9tX2Nw dV9ydW5xdWV1ZVtpXSA9IC0xOworCisgICAgLyoKKyAgICAgKiBGb3JtYXQgW1swLDEsNCw1XVsy LDMsNiw3XVs4LDksMTIsMTNdWzEwLDExLDE0LDE1XV0KKyAgICAgKi8KKyAgICBpID0gMDsKKwor ICAgIC8qIEluIGNhc2UgdXNlciBoYXZlIHNwYWNlcyBpbmNsdWRlZCBpbiB0aGUgaW5wdXQgKi8K KyAgICBpZiAoIHRyaW0ocywgbSwgJyAnKSAhPSAwICkKKyAgICB7CisgICAgICAgIHByaW50aygg IldBUk5JTkcgOiAlc1slZF0gdHJpbSBmYWlsZWQuXG4iLCBfX2Z1bmNfXywgX19MSU5FX18gKTsK KyAgICAgICAgZ290byBlcnJSZXR1cm47CisgICAgfQorICAgIC8qIFN0YXJ0aW5nIHRvIHBhcnNl IGFuZCBnZXQgdGhlIGNwdSBpbmZvcm1hdGlvbiBvbiB0cmltbWVkIGRhdGEgKi8KKyAgICBfcyA9 IG07CisgICAgc19lbmQgPSBfcyArIHN0cmxlbihfcyk7CisKKyAgICAvKiBUaGUgc3RhcnQgYW5k IHNob3VsZCBhbHdheXMgYmUgaW4gZm9ybWF0IG9mICdbLi5dJyAqLworICAgIGlmICggKCAnWycg PT0gKl9zICkgJiYgKCAnXScgPT0gKihzX2VuZC0xKSkgKQorICAgIHsKKyAgICAgICAgY2hhciAq c3RhcnQgPSBOVUxMLCAqZW5kID0gTlVMTDsKKyAgICAgICAgaW50IGNwdV9hZGRlZF90b19ydW5x dWV1ZSA9IDA7CisgICAgICAgIF9zKys7CisgICAgICAgIHdoaWxlICggKCBfcyAhPSBOVUxMICkg JiYgKCBfcyA8IHNfZW5kICkgKQorICAgICAgICB7CisgICAgICAgICAgICBjaGFyICp0b2tlbl9z dWJfc3RyID0gTlVMTDsKKyAgICAgICAgICAgIHN0YXJ0ID0gc3Ryc3RyKF9zLCAiWyIpOworICAg ICAgICAgICAgZW5kID0gc3Ryc3RyKF9zLCAiXSIpOworICAgICAgICAgICAgLyogVmFsaWRhdGlv biBjaGVja3MgZm9yICdbJyBhbmQgJ10nIHRvIHByb3Blcmx5IHBhcnNlIHRoZSBlbnRyaWVzCisg ICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKCAoICFzdGFydCAmJiAhZW5kICkgfHwgKCAo IGVuZCA9PSAoIHNfZW5kIC0xICkgKSAmJiBzdGFydCApICkKKyAgICAgICAgICAgICAgICBnb3Rv IGVyclJldHVybjsKKyAgICAgICAgICAgIC8qIENoZWNrIGZvciBsYXN0IGVudHJ5ICovCisgICAg ICAgICAgICBlbHNlIGlmICggIXN0YXJ0ICYmICggZW5kID09ICggc19lbmQgLTEgKSApICkKKyAg ICAgICAgICAgICAgICBnb3RvIG5leHRTZXQ7CisKKyAgICAgICAgICAgIC8qIElmIHdlIGhhdmUg W10gYXMgZW50cnksIG1vdmUgdG8gbmV4dFNldCAqLworICAgICAgICAgICAgaWYgKCBnZXRsZW4g KCBzdGFydCwgZW5kICkgPCAxICkKKyAgICAgICAgICAgICAgICBnb3RvIG5leHRTZXQ7CisgICAg ICAgICAgICAvKiBTdGFydCB0byBwYXJzZSB0aGUgYWN0dWFsIHZhbHVlICovCisgICAgICAgICAg ICBzdGFydCsrOworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIGZpbmQgdG9rZW4gd2l0 aGluIHRoZSBzdWJzZXQKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgZG8KKyAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgdG9rZW4gPSAwOworICAgICAgICAgICAgICAgIGlu dCBsZW4gPSAwOworICAgICAgICAgICAgICAgIC8qIEdldCBjcHUgaWRzIHNlcGFyYXRlZCBieSAn LCcgd2l0aGluIGVhY2ggc2V0ICovCisgICAgICAgICAgICAgICAgdG9rZW5fc3ViX3N0ciA9IHN0 cnBicmsoc3RhcnQsICIsIik7CisgICAgICAgICAgICAgICAgaWYgKCAoICF0b2tlbl9zdWJfc3Ry ICYmIHN0YXJ0IDwgZW5kICkgfHwKKyAgICAgICAgICAgICAgICAgICAgKCB0b2tlbl9zdWJfc3Ry ID4gZW5kICYmIHRva2VuX3N1Yl9zdHIgPiBzdGFydCApICkKKyAgICAgICAgICAgICAgICAgICAg bGVuID0gZ2V0bGVuKHN0YXJ0LCBlbmQpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg ICAgICAgICAgICAgbGVuID0gZ2V0bGVuKHN0YXJ0LCB0b2tlbl9zdWJfc3RyKTsKKworICAgICAg ICAgICAgICAgIGlmICggbGVuIDw9IDAgKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK KyAgICAgICAgICAgICAgICAvKiBHRVRUT0tFTiB3aWxsIGdldCByZXR1cm4gdGhlIHBhcnNlIGFu ZCBwb3B1bGF0ZSB0aGUgY3B1IGluCisgICAgICAgICAgICAgICAgICogdG9rZW4KKyAgICAgICAg ICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBHRVRUT0tFTih0b2tlbiwgbGVuLCBzdGFydCAs IGVuZCApOworCisgICAgICAgICAgICAgICAgaWYgKCB0b2tlbiA+PSBucl9jcHVfaWRzKQorICAg ICAgICAgICAgICAgICAgICBnb3RvIGVyclJldHVybjsKKyAgICAgICAgICAgICAgICAvKiBJZiBu b3Qgc2V0IGFscmVhZHkgKi8KKyAgICAgICAgICAgICAgICBpZiAoIGN1c3RvbV9jcHVfcnVucXVl dWVbdG9rZW5dID09IC0xICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg IGN1c3RvbV9jcHVfcnVucXVldWVbdG9rZW5dID0gaTsKKyAgICAgICAgICAgICAgICAgICAgY3B1 X2FkZGVkX3RvX3J1bnF1ZXVlID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBnb3RvIGVyclJldHVybjsKKworICAgICAgICAg ICAgICAgIGlmICggIXRva2VuX3N1Yl9zdHIgfHwgdG9rZW5fc3ViX3N0ciA+IGVuZCApCisgICAg ICAgICAgICAgICAgICAgIGdvdG8gbmV4dFNldDsKKworICAgICAgICAgICAgICAgIHN0YXJ0ID0g Kyt0b2tlbl9zdWJfc3RyOworICAgICAgICAgICAgfSB3aGlsZSAoIHN0YXJ0IDwgZW5kICk7Citu ZXh0U2V0OgorICAgICAgICAgICAgaWYgKCBjcHVfYWRkZWRfdG9fcnVucXVldWUgKQorICAgICAg ICAgICAgeworICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICBjcHVfYWRkZWRf dG9fcnVucXVldWUgPSAwOworICAgICAgICAgICAgfQogCisgICAgICAgICAgICBfcyA9ICsrZW5k OworICAgICAgICB9CisgICAgICAgIG9wdF9ydW5xdWV1ZSA9IE9QVF9SVU5RVUVVRV9DVVNUT007 CisgICAgICAgIHJldHVybjsKKyAgICB9CitlcnJSZXR1cm46CisgICAgLyogUmVzZXR0aW5nIGlu IGNhc2Ugb2YgZmFpbHVyZSwgc28gdGhhdCB3ZSBkb24ndCBtZXNzLXVwIGR1cmluZyBhbnkgZmFp bHVyZQorICAgICAqIGR1ZSB0byB3cm9uZyBvciBzcHVyaW91cyBwYXR0ZXJuIHBhc3NlZCBieSB1 c2VyLgorICAgICAqLworICAgIG9wdF9ydW5xdWV1ZSA9IE9QVF9SVU5RVUVVRV9TT0NLRVQ7CiAg ICAgcHJpbnRrKCJXQVJOSU5HLCB1bnJlY29nbml6ZWQgdmFsdWUgb2YgY3JlZGl0Ml9ydW5xdWV1 ZSBvcHRpb24hXG4iKTsKIH0KIGN1c3RvbV9wYXJhbSgiY3JlZGl0Ml9ydW5xdWV1ZSIsIHBhcnNl X2NyZWRpdDJfcnVucXVldWUpOwpAQCAtNjYxLDYgKzgyMCwxNSBAQCBjcHVfdG9fcnVucXVldWUo c3RydWN0IGNzY2hlZDJfcHJpdmF0ZSAqcHJ2LCB1bnNpZ25lZCBpbnQgY3B1KQogICAgIHN0cnVj dCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnJxZDsKICAgICB1bnNpZ25lZCBpbnQgcnFpOwogCisg ICAgaWYgKCBvcHRfcnVucXVldWUgPT0gT1BUX1JVTlFVRVVFX0NVU1RPTSApCisgICAgeworICAg ICAgICBpZiAoIGN1c3RvbV9jcHVfcnVucXVldWVbY3B1XSAhPSAtMSApCisgICAgICAgIHsKKyAg ICAgICAgICAgIEJVR19PTihjdXN0b21fY3B1X3J1bnF1ZXVlW2NwdV0gPj0gbnJfY3B1X2lkcyk7 CisgICAgICAgICAgICByZXR1cm4gY3VzdG9tX2NwdV9ydW5xdWV1ZVtjcHVdOworICAgICAgICB9 CisgICAgfQorCiAgICAgZm9yICggcnFpID0gMDsgcnFpIDwgbnJfY3B1X2lkczsgcnFpKysgKQog ICAgIHsKICAgICAgICAgdW5zaWduZWQgaW50IHBlZXJfY3B1OwotLSAKMi4xMi4wCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVu LWRldmVsCg==