From mboxrd@z Thu Jan 1 00:00:00 1970 From: Swapnil Paratey Subject: [PATCH v3] ns16550-Add-command-line-parsing-adjustments Date: Fri, 31 Mar 2017 10:42:40 -0500 Message-ID: <1490974960-7178-1-git-send-email-swapnil.paratey@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ctyhS-0001z8-Ib for xen-devel@lists.xenproject.org; Fri, 31 Mar 2017 15:42:54 +0000 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: Swapnil Paratey , tim@xen.org, sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, xen-devel@lists.xen.org, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org QWRkIG5hbWU9dmFsdWUgcGFyc2luZyBvcHRpb25zIGZvciBjb20xIGFuZCBjb20yIHRvIGFkZCBm bGV4aWJpbGl0eQppbiBzZXR0aW5nIHJlZ2lzdGVyIHZhbHVlcyBmb3IgTU1JTyBVQVJUIGRldmlj ZXMuCgpNYWludGFpbiBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggcHJldmlvdXMgcG9zaXRp b25hbCBwYXJhbWV0ZXIKc3BlY2ZpY2F0aW9ucy4KCmVnLiBjb20xPTExNTIwMCw4bjEsMHgzZjgs NAplZy4gY29tMT1iYXVkPTExNTIwMCxwYXJpdHk9bixyZWdfd2lkdGg9NCxyZWdfc2hpZnQ9Mixp cnE9NAplZy4gY29tMT0xMTUyMDAsOG4xLDB4M2Y4LDQscmVnX3dpZHRoPTQscmVnX3NoaWZ0PTIK CkluY3JlYXNlIGxlbmd0aCBvZiBvcHRfY29tMSBhbmQgb3B0X2NvbTIgYnVmZmVycy4KClNpZ25l ZC1vZmYtYnk6IFN3YXBuaWwgUGFyYXRleSA8c3dhcG5pbC5wYXJhdGV5QGFtZC5jb20+CgotLS0K Q2hhbmdlZCBzaW5jZSB2MjoKICogQWRkZWQgbmFtZT12YWx1ZSBzcGVjaWZpY2F0aW9uIGZvciBj b20xIGFuZCBjb20yIGNvbW1hbmQgbGluZQogICBwYXJhbWV0ZXIgaW5wdXQgZm9yIFVBUlQgZGV2 aWNlcwogICBTeW50YXg6ICJjb20xPShwb3NpdGlvbmFsIHBhcmFtZXRlcnMpLChuYW1lLXZhbHVl IHBhcmFtZXRlcnMpIgogKiBNYWludGFpbmVkIHByZXZpb3VzIHBvc2l0aW9uYWwgc3BlY2lmaWNh dGlvbiBmb3IgVUFSVCBwYXJhbWV0ZXJzCiAqIEFsbCBwYXJhbWV0ZXJzIHNob3VsZCBiZSBjb21t YS1zZXBhcmF0ZWQKCkNoYW5nZWQgc2luY2UgdjE6CiAqIENoYW5nZWQgb3B0X2NvbTEgYW5kIG9w dF9jb20yIGFycmF5IHNpemUgdG8gNjQgKHBvd2VyIG9mIDIpLgogKiBBZGRlZCBkZXNjcmlwdGlv bnMgZm9yIHJlZ193aWR0aCBhbmQgcmVnX3NoaWZ0IGluCiAgIGRvY3MvbWlzYy94ZW4tY29tbWFu ZC1saW5lLm1hcmtkb3duCiAqIENoYW5nZWQgc3ViamVjdCB0byBuczE2NTUwIGZyb20gMTY1NTAg Zm9yIGJldHRlciB0cmFja2luZy4KLS0tCiBkb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJr ZG93biB8ICAzNyArKysrKysKIHhlbi9jb21tb24va2VybmVsLmMgICAgICAgICAgICAgICAgIHwg ICAyICstCiB4ZW4vZHJpdmVycy9jaGFyL25zMTY1NTAuYyAgICAgICAgICB8IDIyNCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0KIHhlbi9pbmNsdWRlL3hlbi9zZXJpYWwuaCAg ICAgICAgICAgIHwgICAyICsKIDQgZmlsZXMgY2hhbmdlZCwgMjUwIGluc2VydGlvbnMoKyksIDE1 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1h cmtkb3duIGIvZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24KaW5kZXggNGRhZjVi NS4uMGQ5ZmRmMSAxMDA2NDQKLS0tIGEvZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFya2Rv d24KKysrIGIvZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24KQEAgLTMyNCw2ICsz MjQsNDMgQEAgQm90aCBvcHRpb24gYGNvbTFgIGFuZCBgY29tMmAgZm9sbG93IHRoZSBzYW1lIGZv cm1hdC4KIAogQSB0eXBpY2FsIHNldHVwIGZvciBtb3N0IHNpdHVhdGlvbnMgbWlnaHQgYmUgYGNv bTE9MTE1MjAwLDhuMWAKIAorSW4gYWRkaXRpb24gdG8gdGhlIGFib3ZlIHBvc2l0aW9uYWwgc3Bl Y2lmaWNhdGlvbiBmb3IgVUFSVCBwYXJhbWV0ZXJzLAorbmFtZT12YWx1ZSBwYWlyIHNwZWNmaWNh dGlvbnMgYXJlIGFsc28gc3VwcG9ydGVkLiBUaGlzIGlzIHVzZWQgdG8gYWRkCitmbGV4aWJpbGl0 eSBmb3IgVUFSVCBkZXZpY2VzIHdoaWNoIHJlcXVpcmUgYWRkaXRpb25hbCBVQVJUIHBhcmFtZXRl cgorY29uZmlndXJhdGlvbnMuCisKK1RoZSBjb21tYSBzZXBhcmF0aW9uIHN0aWxsIGRlbGluZWF0 ZXMgcG9zaXRpb25hbCBwYXJhbWV0ZXJzLiBIZW5jZSwKK3VubGVzcyB0aGUgcGFyYW1ldGVyIGlz IGV4cGxpY2l0bHkgc3BlY2lmaWVkIHdpdGggbmFtZT12YWx1ZSBvcHRpb24sIGl0Cit3aWxsIGJl IGNvbnNpZGVyZWQgYSBwb3NpdGlvbmFsIHBhcmFtZXRlci4KKworVGhlIHN5bnRheCBjb25zaXN0 cyBvZgorY29tMT0oY29tbWEtc2VwYXJhdGVkIHBvc2l0aW9uYWwgcGFyYW1ldGVycyksKGNvbW1h IHNlcGFyYXRlZCBuYW1lLXZhbHVlIHBhaXJzKQorCitUaGUgYWNjZXB0ZWQgbmFtZSBrZXl3b3Jk cyBmb3IgbmFtZT12YWx1ZSBwYWlycyBhcmUKKyAqIGBiYXVkYCAtIGFjY2VwdHMgaW50ZWdlciBi YXVkIHJhdGUgKGVnLiAxMTUyMDApIG9yIGBhdXRvYAorICogYGJyaWRnZWAtIGFjY2VwdHMgeHg6 eHg6eHguIFNpbWlsYXIgdG8gYnJpZGdlLWJkZiBpbiBwb3NpdGlvbmFsIHBhcmFtZXRlcnMuCisg ICAgICAgICAgICAgbm90YXRpb24gaXMgPGJ1cz46PGRldmljZT46PGZ1bmN0aW9uPgorICogYGNs b2NrX2h6YC0gYWNjZXB0cyBsYXJnZSBpbnRlZ2VycyB0byBzZXR1cCBVQVJUIGNsb2NrIGZyZXF1 ZW5jaWVzLgorICAgICAgICAgICAgICAgRG8gbm90ZSAtIHRoZXNlIHZhbHVlcyBhcmUgbXVsdGlw bGllZCBieSAxNi4KKyAqIGBkYXRhX2JpdHNgIC0gaW50ZWdlciBiZXR3ZWVuIDUgYW5kIDgKKyAq IGBkZXZgIC0gYWNjZXB0ZWQgdmFsdWVzIGFyZSBgcGNpYCBPUiBgYW10YC4gSWYgdGhpcyBvcHRp b24KKyAgICAgICAgICAgaXMgdXNlZCB0byBzcGVjaWZ5IGlmIHRoZSBzZXJpYWwgZGV2aWNlIGlz IHBjaS1iYXNlZC4gVGhlIGlvX2Jhc2UKKyAgICAgICAgICAgY2Fubm90IGJlIHNwZWNpZmllZCB3 aGVuIGBkZXY9cGNpYCBvciBgZGV2PWFtdGAgaXMgdXNlZC4KKyAqIGBpb19iYXNlYCAtIGFjY2Vw dHMgaW50ZWdlciB3aGljaCBzcGVjaWZpZWQgSU8gYmFzZSBwb3J0IGZvciBVQVJUIHJlZ2lzdGVy cworICogYGlycWAgLSBJUlEgbnVtYmVyIHRvIHVzZQorICogYHBhcml0eWAgLSBhY2NlcHRlZCB2 YWx1ZXMgYXJlIHNhbWUgYXMgcG9zaXRpb25hbCBwYXJhbWV0ZXJzCisgKiBgcG9ydGAgLSB1c2Vk IHRvIHNwZWNpZnkgd2hpY2ggcG9ydCB0aGUgUENJIHNlcmlhbCBkZXZpY2UgaXMgbG9jYXRlZCBv bgorICAgICAgICAgICAgbm90YXRpb24gaXMgeHg6eHg6eHggPGJ1cz46PGRldmljZT46PGZ1bmN0 aW9uPgorICogYHJlZ19zaGlmdGAgLSByZWdpc3RlciBzaGlmdHMgcmVxdWlyZWQgdG8gc2V0IFVB UlQgcmVnaXN0ZXJzCisgKiBgcmVnX3dpZHRoYCAtIHJlZ2lzdGVyIHdpZHRoIHJlcXVpcmVkIHRv IHNldCBVQVJUIHJlZ2lzdGVycworICAgICAgICAgICAgICAgICAob25seSBhY2NlcHRzIDEgYW5k IDQpCisgKiBgc3RvcF9iaXRzYCAtIG9ubHkgYWNjZXB0cyAxIG9yIDIgZm9yIHRoZSBudW1iZXIg b2Ygc3RvcCBiaXRzCisKK1RoZSBmb2xsb3dpbmcgYXJlIGV4YW1wbGVzIG9mIGNvcnJlY3Qgc3Bl Y2lmaWNhdGlvbnM6CitgY29tMT0xMTUyMDAsOG4xLDB4M2Y4LDRgCitgY29tMT0xMTUyMDAsOG4x LDB4M2Y4LDQscmVnX3dpZHRoPTQscmVnX3NoaWZ0PTJgCitgY29tMT1iYXVkPTExNTIwMCxwYXJp dHk9bixzdG9wX2JpdHM9MSxpb19iYXNlPTB4M2Y4LHJlZ193aWR0aD00YAorCiAjIyMgY29ucmlu Z1xfc2l6ZQogPiBgPSA8c2l6ZT5gCiAKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24va2VybmVsLmMg Yi94ZW4vY29tbW9uL2tlcm5lbC5jCmluZGV4IDRiODdjNjAuLjBjZWU0M2EgMTAwNjQ0Ci0tLSBh L3hlbi9jb21tb24va2VybmVsLmMKKysrIGIveGVuL2NvbW1vbi9rZXJuZWwuYwpAQCAtNDgsNyAr NDgsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgYXNzaWduX2ludGVnZXJfcGFyYW0oCiAKIHZvaWQg X19pbml0IGNtZGxpbmVfcGFyc2UoY29uc3QgY2hhciAqY21kbGluZSkKIHsKLSAgICBjaGFyIG9w dFsxMDBdLCAqb3B0dmFsLCAqb3B0a2V5LCAqcTsKKyAgICBjaGFyIG9wdFs1MTJdLCAqb3B0dmFs LCAqb3B0a2V5LCAqcTsKICAgICBjb25zdCBjaGFyICpwID0gY21kbGluZTsKICAgICBjb25zdCBz dHJ1Y3Qga2VybmVsX3BhcmFtICpwYXJhbTsKICAgICBpbnQgYm9vbF9hc3NlcnQ7CmRpZmYgLS1n aXQgYS94ZW4vZHJpdmVycy9jaGFyL25zMTY1NTAuYyBiL3hlbi9kcml2ZXJzL2NoYXIvbnMxNjU1 MC5jCmluZGV4IGU0ZGUzYjQuLmNhNWM1MTUgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL2NoYXIv bnMxNjU1MC5jCisrKyBiL3hlbi9kcml2ZXJzL2NoYXIvbnMxNjU1MC5jCkBAIC0zOCwxMSArMzgs MjcgQEAKICAqIGNhbiBiZSBzcGVjaWZpZWQgaW4gcGxhY2Ugb2YgYSBudW1lcmljIGJhdWQgcmF0 ZS4gUG9sbGVkIG1vZGUgaXMgc3BlY2lmaWVkCiAgKiBieSByZXF1ZXN0aW5nIGlycSAwLgogICov Ci1zdGF0aWMgY2hhciBfX2luaXRkYXRhIG9wdF9jb20xWzMwXSA9ICIiOwotc3RhdGljIGNoYXIg X19pbml0ZGF0YSBvcHRfY29tMlszMF0gPSAiIjsKK3N0YXRpYyBjaGFyIF9faW5pdGRhdGEgb3B0 X2NvbTFbTUFYX0NNRExJTkVfTEVOR1RIXSA9ICIiOworc3RhdGljIGNoYXIgX19pbml0ZGF0YSBv cHRfY29tMltNQVhfQ01ETElORV9MRU5HVEhdID0gIiI7CiBzdHJpbmdfcGFyYW0oImNvbTEiLCBv cHRfY29tMSk7CiBzdHJpbmdfcGFyYW0oImNvbTIiLCBvcHRfY29tMik7CiAKK3R5cGVkZWYgZW51 bSBlX3NlcmlhbF9wYXJhbV90eXBlIHsKKyAgICBCQVVEPTAsCisgICAgQlJJREdFQkRGLAorICAg IENMT0NLSFosCisgICAgREFUQUJJVFMsCisgICAgREVWSUNFLAorICAgIElPX0JBU0UsCisgICAg SVJRLAorICAgIFBBUklUWSwKKyAgICBQT1JUQkRGLAorICAgIFJFR19TSElGVCwKKyAgICBSRUdf V0lEVEgsCisgICAgU1RPUEJJVFMsCisgICAgX19NQVhfU0VSSUFMX1BBUkFNIC8qIGludHJvZHVj ZSBtb3JlIHBhcmFtZXRlcnMgYmVmb3JlIHRoaXMgbGluZSAqLworfSBzZXJpYWxfcGFyYW1fdHlw ZTsKKwogc3RhdGljIHN0cnVjdCBuczE2NTUwIHsKICAgICBpbnQgYmF1ZCwgY2xvY2tfaHosIGRh dGFfYml0cywgcGFyaXR5LCBzdG9wX2JpdHMsIGZpZm9fc2l6ZSwgaXJxOwogICAgIHU2NCBpb19i YXNlOyAgIC8qIEkvTyBwb3J0IG9yIG1lbW9yeS1tYXBwZWQgSS9PIGFkZHJlc3MuICovCkBAIC03 Nyw2ICs5MywyOSBAQCBzdGF0aWMgc3RydWN0IG5zMTY1NTAgewogI2VuZGlmCiB9IG5zMTY1NTBf Y29tWzJdID0geyB7IDAgfSB9OwogCitzdHJ1Y3Qgc2VyaWFsX3BhcmFtX3ZhcgoreworICAgIGNo YXIgKnNwX25hbWU7CisgICAgc2VyaWFsX3BhcmFtX3R5cGUgc3BfdHlwZTsKK307CisKKy8qIGVu dW0gc3RydWN0IGtlZXBpbmcgYSB0YWJsZSBvZiBhbGwgYWNjZXB0ZWQgcGFyYW1ldGVyIG5hbWVz CisgKiBmb3IgcGFyc2luZyBjbWRsaW5lIGZvciBzZXJpYWwgcG9ydCBjb20xIGFuZCBjb20yICov CitzdGF0aWMgc3RydWN0IHNlcmlhbF9wYXJhbV92YXIgc3BfdmFyc1tdID0geworICAgIHsiYmF1 ZCIsIEJBVUR9LAorICAgIHsiYnJpZGdlIiwgQlJJREdFQkRGfSwKKyAgICB7ImNsb2NrX2h6Iiwg Q0xPQ0tIWn0sCisgICAgeyJkYXRhX2JpdHMiLCBEQVRBQklUU30sCisgICAgeyJkZXYiLCBERVZJ Q0V9LAorICAgIHsiaW9fYmFzZSIsIElPX0JBU0V9LAorICAgIHsiaXJxIiwgSVJRfSwKKyAgICB7 InBhcml0eSIsIFBBUklUWX0sCisgICAgeyJwb3J0IiwgUE9SVEJERn0sCisgICAgeyJyZWdfc2hp ZnQiLCBSRUdfU0hJRlR9LAorICAgIHsicmVnX3dpZHRoIiwgUkVHX1dJRFRIfSwKKyAgICB7InN0 b3BfYml0cyIsIFNUT1BCSVRTfSwKK307CisKICNpZmRlZiBDT05GSUdfSEFTX1BDSQogc3RydWN0 IG5zMTY1NTBfY29uZmlnIHsKICAgICB1MTYgdmVuZG9yX2lkOwpAQCAtMTA4MywyNiArMTEyMiw3 MCBAQCBwY2lfdWFydF9jb25maWcoc3RydWN0IG5zMTY1NTAgKnVhcnQsIGJvb2xfdCBza2lwX2Ft dCwgdW5zaWduZWQgaW50IGlkeCkKIH0KICNlbmRpZgogCisvKiB1c2VkIHRvIHBhcnNlIG5hbWUg dmFsdWUgcGFpcnMgYW5kIHJldHVybiB3aGljaCB2YWx1ZSBpdCBpcworICogYWxvbmcgd2l0aCBw b2ludGVyIGZvciB0aGUgZXh0cmFjdGVkIHZhbHVlIC0gZXh0X3ZhbHVlICovCitzdGF0aWMgc2Vy aWFsX3BhcmFtX3R5cGUgZ2V0X3Rva2VuX3ZhbHVlKGNoYXIgKnRva2VuLCBjaGFyICpleHRfdmFs dWUpCit7CisgICAgY2hhciAqcGFyYW1fbmFtZTsKKyAgICBpbnQgaTsKKworICAgIHBhcmFtX25h bWUgPSBzdHJzZXAoJnRva2VuLCAiPSIpOworICAgIGlmICggcGFyYW1fbmFtZSA9PSBOVUxMICkK KyAgICAgICAgcmV0dXJuIF9fTUFYX1NFUklBTF9QQVJBTTsKKyAgICAvKiB0b2tlbiBoYXMgdGhl IHBhcmFtIHZhbHVlIGFmdGVyIHRoZSBlcXVhbCB0byBzaWduICovCisgICAgc3RybGNweShleHRf dmFsdWUsIHRva2VuLCBNQVhfUEFSQU1fVkFMVUVfTEVOR1RIKTsKKworICAgIC8qIGxpbmVhciBz ZWFyY2ggZm9yIHRoZSBwYXJhbWV0ZXIgKi8KKyAgICBmb3IgKCBpID0gMDsgaSA8IEFSUkFZX1NJ WkUoc3BfdmFycyk7IGkrKyApCisgICAgeworICAgICAgICBpZiAoIHN0cmNtcChzcF92YXJzW2ld LnNwX25hbWUsIHBhcmFtX25hbWUpID09IDAgKQorICAgICAgICAgICAgcmV0dXJuIHNwX3ZhcnNb aV0uc3BfdHlwZTsKKyAgICB9CisKKyAgICByZXR1cm4gX19NQVhfU0VSSUFMX1BBUkFNOworfQor CiAjZGVmaW5lIFBBUlNFX0VSUihfZiwgX2EuLi4pICAgICAgICAgICAgICAgICBcCiAgICAgZG8g eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIHByaW50aygg IkVSUk9SOiAiIF9mICJcbiIgLCAjIyBfYSApOyBcCiAgICAgICAgIHJldHVybjsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCiAgICAgfSB3aGlsZSAoIDAgKQogCi1zdGF0aWMgdm9pZCBf X2luaXQgbnMxNjU1MF9wYXJzZV9wb3J0X2NvbmZpZygKLSAgICBzdHJ1Y3QgbnMxNjU1MCAqdWFy dCwgY29uc3QgY2hhciAqY29uZikKKyNkZWZpbmUgUEFSU0VfRVJSX1JFVChfZiwgX2EuLi4pICAg ICAgICAgICAgIFwKKyAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICAgICAgcHJpbnRrKCAiRVJST1I6ICIgX2YgIlxuIiAsICMjIF9hICk7IFwKKyAgICAg ICAgcmV0dXJuIDE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9IHdoaWxlICgg MCApCisKKworaW50IHBhcnNlX3Bvc2l0aW9uYWwoc3RydWN0IG5zMTY1NTAgKnVhcnQsIGNoYXIg KipzdHIpCiB7CiAgICAgaW50IGJhdWQ7CisgICAgY29uc3QgY2hhciAqY29uZjsKKyAgICBjaGFy ICpuYW1lX3ZhbF9wb3M7CiAKLSAgICAvKiBObyB1c2VyLXNwZWNpZmllZCBjb25maWd1cmF0aW9u PyAqLwotICAgIGlmICggKGNvbmYgPT0gTlVMTCkgfHwgKCpjb25mID09ICdcMCcpICkKKyAgICBj b25mID0gKGNvbnN0IGNoYXIgKikqc3RyOworICAgIG5hbWVfdmFsX3BvcyA9IHN0cmNocigqc3Ry LCAnPScpOworCisgICAgLyogZmluZGluZyB0aGUgZW5kIG9mIHRoZSBwb3NpdGlvbmFsIHBhcmFt ZXRlcnMgKi8KKyAgICBpZiAobmFtZV92YWxfcG9zKQogICAgIHsKLSAgICAgICAgLyogU29tZSBw bGF0Zm9ybXMgbWF5IGF1dG9tYXRpY2FsbHkgcHJvYmUgdGhlIFVBUlQgY29uZmlndWFydGlvbi4g Ki8KLSAgICAgICAgaWYgKCB1YXJ0LT5iYXVkICE9IDAgKQotICAgICAgICAgICAgZ290byBjb25m aWdfcGFyc2VkOwotICAgICAgICByZXR1cm47CisgICAgICAgIHdoaWxlIChuYW1lX3ZhbF9wb3Mg PiAqc3RyKQorICAgICAgICB7CisgICAgICAgICAgICBuYW1lX3ZhbF9wb3MtLTsgLyogd29ya2lu ZyBiYWNrd2FyZHMgZnJvbSB0aGUgPSBzaWduICovCisgICAgICAgICAgICBpZiAoKm5hbWVfdmFs X3BvcyA9PSAnLCcpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgKm5hbWVfdmFsX3Bv cyA9ICdcMCc7CisgICAgICAgICAgICAgICAgbmFtZV92YWxfcG9zKys7CisgICAgICAgICAgICAg ICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiAKKyAgICAqc3RyID0g bmFtZV92YWxfcG9zOworICAgIGlmIChjb25mID09ICpzdHIpIHJldHVybiAwOyAvKiB3aGVuIHRo ZXJlIGFyZSBubyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgKi8KKworICAgIC8qIHBhcnNlIHBvc2l0 aW9uYWwgcGFyYW1ldGVycyBoZXJlICovCiAgICAgaWYgKCBzdHJuY21wKGNvbmYsICJhdXRvIiwg NCkgPT0gMCApCiAgICAgewogICAgICAgICB1YXJ0LT5iYXVkID0gQkFVRF9BVVRPOwpAQCAtMTEz MiwxMyArMTIxNSwxMyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgbnMxNjU1MF9wYXJzZV9wb3J0X2Nv bmZpZygKICAgICAgICAgaWYgKCBzdHJuY21wKGNvbmYsICJwY2kiLCAzKSA9PSAwICkKICAgICAg ICAgewogICAgICAgICAgICAgaWYgKCBwY2lfdWFydF9jb25maWcodWFydCwgMS8qIHNraXAgQU1U ICovLCB1YXJ0IC0gbnMxNjU1MF9jb20pICkKLSAgICAgICAgICAgICAgICByZXR1cm47CisgICAg ICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICBjb25mICs9IDM7CiAgICAgICAgIH0K ICAgICAgICAgZWxzZSBpZiAoIHN0cm5jbXAoY29uZiwgImFtdCIsIDMpID09IDAgKQogICAgICAg ICB7CiAgICAgICAgICAgICBpZiAoIHBjaV91YXJ0X2NvbmZpZyh1YXJ0LCAwLCB1YXJ0IC0gbnMx NjU1MF9jb20pICkKLSAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgcmV0 dXJuIDA7CiAgICAgICAgICAgICBjb25mICs9IDM7CiAgICAgICAgIH0KICAgICAgICAgZWxzZQpA QCAtMTE1Nyw3ICsxMjQwLDcgQEAgc3RhdGljIHZvaWQgX19pbml0IG5zMTY1NTBfcGFyc2VfcG9y dF9jb25maWcoCiAgICAgICAgIGNvbmYgPSBwYXJzZV9wY2koY29uZiwgTlVMTCwgJnVhcnQtPnBz X2JkZlswXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAmdWFydC0+cHNfYmRmWzFdLCAmdWFy dC0+cHNfYmRmWzJdKTsKICAgICAgICAgaWYgKCAhY29uZiApCi0gICAgICAgICAgICBQQVJTRV9F UlIoIkJhZCBwb3J0IFBDSSBjb29yZGluYXRlcyIpOworICAgICAgICAgICAgUEFSU0VfRVJSX1JF VCgiQmFkIHBvcnQgUENJIGNvb3JkaW5hdGVzIik7CiAgICAgICAgIHVhcnQtPnBzX2JkZl9lbmFi bGUgPSAxOwogICAgIH0KIApAQCAtMTE2NSwxMSArMTI0OCwxMjIgQEAgc3RhdGljIHZvaWQgX19p bml0IG5zMTY1NTBfcGFyc2VfcG9ydF9jb25maWcoCiAgICAgewogICAgICAgICBpZiAoICFwYXJz ZV9wY2koY29uZiwgTlVMTCwgJnVhcnQtPnBiX2JkZlswXSwKICAgICAgICAgICAgICAgICAgICAg ICAgICZ1YXJ0LT5wYl9iZGZbMV0sICZ1YXJ0LT5wYl9iZGZbMl0pICkKLSAgICAgICAgICAgIFBB UlNFX0VSUigiQmFkIGJyaWRnZSBQQ0kgY29vcmRpbmF0ZXMiKTsKKyAgICAgICAgICAgIFBBUlNF X0VSUl9SRVQoIkJhZCBicmlkZ2UgUENJIGNvb3JkaW5hdGVzIik7CiAgICAgICAgIHVhcnQtPnBi X2JkZl9lbmFibGUgPSAxOwogICAgIH0KICNlbmRpZgogCisgICAgcmV0dXJuIDA7Cit9CisKK2lu dCBwYXJzZV9uYW1ldmFsdWVfcGFpcnMoY2hhciAqc3RyLCBzdHJ1Y3QgbnMxNjU1MCAqdWFydCkK K3sKKyAgICBzZXJpYWxfcGFyYW1fdHlwZSBwYXJzZWRfcGFyYW07CisgICAgY2hhciAqdG9rZW4s ICpzdGFydDsKKyAgICBjaGFyIHBhcmFtX3ZhbHVlW01BWF9QQVJBTV9WQUxVRV9MRU5HVEhdOwor ICAgIGJvb2wgZGV2X3NldDsKKworICAgIGRldl9zZXQgPSAwOworICAgIHN0YXJ0ID0gc3RyOwor CisgICAgd2hpbGUgKHN0YXJ0ICE9IE5VTEwpIC8qIHN0cnNlcCBnaXZlcyBOVUxMIHdoZW4gdGhl cmUgYXJlIG5vIHRva2VucyBmb3VuZCAqLworICAgIHsKKyAgICAgICAgLyogd2hlbiBubyB0b2tl bnMgYXJlIGZvdW5kLCBzdGFydCB3aWxsIGJlIE5VTEwgKi8KKyAgICAgICAgdG9rZW4gPSBzdHJz ZXAoJnN0YXJ0LCAiLCIpOworCisgICAgICAgIHBhcnNlZF9wYXJhbSA9IGdldF90b2tlbl92YWx1 ZSh0b2tlbiwgcGFyYW1fdmFsdWUpOworICAgICAgICBzd2l0Y2gocGFyc2VkX3BhcmFtKQorICAg ICAgICB7CisgICAgICAgICAgICBjYXNlIEJBVUQ6CisgICAgICAgICAgICAgICAgdWFydC0+YmF1 ZCA9IHNpbXBsZV9zdHJ0b3VsKHBhcmFtX3ZhbHVlLCBOVUxMLCAwKTsKKyAgICAgICAgICAgICAg ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQlJJREdFQkRGOgorICAgICAgICAgICAgICAgIGlm ICggIXBhcnNlX3BjaShwYXJhbV92YWx1ZSwgTlVMTCwgJnVhcnQtPnBzX2JkZlswXSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICZ1YXJ0LT5wc19iZGZbMV0sICZ1YXJ0LT5wc19iZGZbMl0pKQor ICAgICAgICAgICAgICAgICAgICBQQVJTRV9FUlJfUkVUKCJCYWQgcG9ydCBQQ0kgY29vcmRpbmF0 ZXNcbiIpOworICAgICAgICAgICAgICAgIHVhcnQtPnBzX2JkZl9lbmFibGUgPSAxOworICAgICAg ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDTE9DS0haOgorICAgICAgICAgICAg ICAgIHVhcnQtPmNsb2NrX2h6ID0gKHNpbXBsZV9zdHJ0b3VsKHBhcmFtX3ZhbHVlLCBOVUxMLCAw KSA8PCA0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgREVWSUNF OgorICAgICAgICAgICAgICAgIGlmICgoc3RybmNtcChwYXJhbV92YWx1ZSwgInBjaSIsIDMpID09 IDApKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcGNpX3VhcnRfY29u ZmlnKHVhcnQsIDEvKiBza2lwIEFNVCAqLywgdWFydCAtIG5zMTY1NTBfY29tKTsKKyAgICAgICAg ICAgICAgICAgICAgZGV2X3NldCA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgIGVsc2UgaWYgKHN0cm5jbXAocGFyYW1fdmFsdWUsICJhbXQiLCAzKSA9PSAwKQorICAgICAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcGNpX3VhcnRfY29uZmlnKHVhcnQsIDAs IHVhcnQgLSBuczE2NTUwX2NvbSk7CisgICAgICAgICAgICAgICAgICAgIGRldl9zZXQgPSAxOwor ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh c2UgSU9fQkFTRToKKyAgICAgICAgICAgICAgICBpZiAoZGV2X3NldCA9PSAxKQorICAgICAgICAg ICAgICAgICAgICBQQVJTRV9FUlJfUkVUKCJDYW4ndCB1c2UgaW9fYmFzZSB3aXRoIGRldj1wY2kg b3IgZGV2PWFtdCBvcHRpb25zXG4iKTsKKyAgICAgICAgICAgICAgICB1YXJ0LT5pb19iYXNlID0g c2ltcGxlX3N0cnRvdWwocGFyYW1fdmFsdWUsIE5VTEwsIDApOworICAgICAgICAgICAgICAgIGJy ZWFrOworICAgICAgICAgICAgY2FzZSBJUlE6CisgICAgICAgICAgICAgICAgdWFydC0+aXJxID0g c2ltcGxlX3N0cnRvdWwocGFyYW1fdmFsdWUsIE5VTEwsIDApOworICAgICAgICAgICAgICAgIGJy ZWFrOworICAgICAgICAgICAgY2FzZSBEQVRBQklUUzoKKyAgICAgICAgICAgICAgICB1YXJ0LT5k YXRhX2JpdHMgPSBzaW1wbGVfc3RydG91bChwYXJhbV92YWx1ZSwgTlVMTCwgMCk7CisgICAgICAg ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFBBUklUWToKKyAgICAgICAgICAgICAg ICB1YXJ0LT5wYXJpdHkgPSBwYXJzZV9wYXJpdHlfY2hhcigqcGFyYW1fdmFsdWUpOworICAgICAg ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBQT1JUQkRGOgorICAgICAgICAgICAg ICAgIGlmICggIXBhcnNlX3BjaShwYXJhbV92YWx1ZSwgTlVMTCwgJnVhcnQtPnBiX2JkZlswXSwK KyAgICAgICAgICAgICAgICAgICAgICAgICZ1YXJ0LT5wYl9iZGZbMV0sICZ1YXJ0LT5wYl9iZGZb Ml0pKQorICAgICAgICAgICAgICAgICAgICBQQVJTRV9FUlJfUkVUKCJCYWQgcG9ydCBQQ0kgY29v cmRpbmF0ZXNcbiIpOworICAgICAgICAgICAgICAgIHVhcnQtPnBiX2JkZl9lbmFibGUgPSAxOwor ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBTVE9QQklUUzoKKyAgICAg ICAgICAgICAgICB1YXJ0LT5zdG9wX2JpdHMgPSBzaW1wbGVfc3RydG91bChwYXJhbV92YWx1ZSwg TlVMTCwgMCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJFR19X SURUSDoKKyAgICAgICAgICAgICAgICB1YXJ0LT5yZWdfd2lkdGggPSBzaW1wbGVfc3RydG91bChw YXJhbV92YWx1ZSwgTlVMTCwgMCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg ICBjYXNlIFJFR19TSElGVDoKKyAgICAgICAgICAgICAgICB1YXJ0LT5yZWdfc2hpZnQgPSBzaW1w bGVfc3RydG91bChwYXJhbV92YWx1ZSwgTlVMTCwgMCk7CisgICAgICAgICAgICAgICAgYnJlYWs7 CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHByaW50aygiSW52YWxpZCBw YXJhbWV0ZXI6ICVzXG4iLCB0b2tlbik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg IH0KKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX19pbml0IG5zMTY1 NTBfcGFyc2VfcG9ydF9jb25maWcoCisgICAgc3RydWN0IG5zMTY1NTAgKnVhcnQsIGNvbnN0IGNo YXIgKmNvbmYpCit7CisgICAgY2hhciBjbWRsaW5lW01BWF9DTURMSU5FX0xFTkdUSF07CisgICAg Y2hhciAqc3RyOworCisgICAgLyogTm8gdXNlci1zcGVjaWZpZWQgY29uZmlndXJhdGlvbj8gKi8K KyAgICBpZiAoIChjb25mID09IE5VTEwpIHx8ICgqY29uZiA9PSAnXDAnKSApCisgICAgeworICAg ICAgICAvKiBTb21lIHBsYXRmb3JtcyBtYXkgYXV0b21hdGljYWxseSBwcm9iZSB0aGUgVUFSVCBj b25maWd1YXJ0aW9uLiAqLworICAgICAgICBpZiAoIHVhcnQtPmJhdWQgIT0gMCApCisgICAgICAg ICAgICBnb3RvIGNvbmZpZ19wYXJzZWQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBz dHJsY3B5KGNtZGxpbmUsIGNvbmYsIE1BWF9DTURMSU5FX0xFTkdUSCk7CisgICAgc3RyID0gY21k bGluZTsgLyogZ29vZCBpZGVhIHRvIHVzZSBhbm90aGVyIHBvaW50ZXIgYW5kIGtlZXAgY21kbGlu ZSBhbG9uZSAqLworCisgICAgLyogcGFyc2UgcG9zaXRpb25hbCBwYXJhbWV0ZXJzIGFuZCBnZXQg cG9pbnRlciBmb3IgbmFtZS12YWx1ZSBwYWlycyAqLworICAgIGlmICggcGFyc2VfcG9zaXRpb25h bCh1YXJ0LCAmc3RyKSApCisgICAgICAgIHJldHVybjsKKworICAgIGlmICggKHN0ciA9PSBOVUxM KSB8fCAoKnN0ciA9PSAnXDAnKSApCisgICAgICAgIGdvdG8gY29uZmlnX3BhcnNlZDsKKworICAg IGlmICggcGFyc2VfbmFtZXZhbHVlX3BhaXJzKHN0ciwgdWFydCkgKQorICAgICAgICByZXR1cm47 CisKICBjb25maWdfcGFyc2VkOgogICAgIC8qIFNhbml0eSBjaGVja3MuICovCiAgICAgaWYgKCAo dWFydC0+YmF1ZCAhPSBCQVVEX0FVVE8pICYmCkBAIC0xMTc3LDYgKzEzNzEsOCBAQCBzdGF0aWMg dm9pZCBfX2luaXQgbnMxNjU1MF9wYXJzZV9wb3J0X2NvbmZpZygKICAgICAgICAgUEFSU0VfRVJS KCJCYXVkIHJhdGUgJWQgb3V0c2lkZSBzdXBwb3J0ZWQgcmFuZ2UuIiwgdWFydC0+YmF1ZCk7CiAg ICAgaWYgKCAodWFydC0+ZGF0YV9iaXRzIDwgNSkgfHwgKHVhcnQtPmRhdGFfYml0cyA+IDgpICkK ICAgICAgICAgUEFSU0VfRVJSKCIlZCBkYXRhIGJpdHMgYXJlIHVuc3VwcG9ydGVkLiIsIHVhcnQt PmRhdGFfYml0cyk7CisgICAgaWYgKCAodWFydC0+cmVnX3dpZHRoICE9IDEpICYmICh1YXJ0LT5y ZWdfd2lkdGggIT0gNCkgKQorICAgICAgICBQQVJTRV9FUlIoInJlZF93aWR0aCBhY2NlcHRlZCB2 YWx1ZXM6IDEgb3IgNC4iKTsKICAgICBpZiAoICh1YXJ0LT5zdG9wX2JpdHMgPCAxKSB8fCAodWFy dC0+c3RvcF9iaXRzID4gMikgKQogICAgICAgICBQQVJTRV9FUlIoIiVkIHN0b3AgYml0cyBhcmUg dW5zdXBwb3J0ZWQuIiwgdWFydC0+c3RvcF9iaXRzKTsKICAgICBpZiAoIHVhcnQtPmlvX2Jhc2Ug PT0gMCApCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vc2VyaWFsLmggYi94ZW4vaW5jbHVk ZS94ZW4vc2VyaWFsLmgKaW5kZXggMTIxMmExMi4uMGZkMWQ3NiAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUveGVuL3NlcmlhbC5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9zZXJpYWwuaApAQCAtMjAs NiArMjAsOCBAQCB2b2lkIHNlcmlhbF9zZXRfcnhfaGFuZGxlcihpbnQgaGFuZGxlLCBzZXJpYWxf cnhfZm4gZm4pOwogCiAvKiBOdW1iZXIgb2YgY2hhcmFjdGVycyB3ZSBidWZmZXIgZm9yIGEgcG9s bGluZyByZWNlaXZlci4gKi8KICNkZWZpbmUgc2VyaWFsX3J4YnVmc3ogMzIKKyNkZWZpbmUgTUFY X0NNRExJTkVfTEVOR1RIIDUxMgorI2RlZmluZSBNQVhfUEFSQU1fVkFMVUVfTEVOR1RIIDE2CiAK IC8qIE51bWJlciBvZiBjaGFyYWN0ZXJzIHdlIGJ1ZmZlciBmb3IgYW4gaW50ZXJydXB0LWRyaXZl biB0cmFuc21pdHRlci4gKi8KIGV4dGVybiB1bnNpZ25lZCBpbnQgc2VyaWFsX3R4YnVmc3o7Ci0t IAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9s aXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=