From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Blake Subject: [PATCH v8 12/16] qapi: Change Netdev into a flat union Date: Sat, 2 Jul 2016 20:58:45 -0600 Message-ID: <1467514729-29366-13-git-send-email-eblake@redhat.com> References: <1467514729-29366-1-git-send-email-eblake@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1467514729-29366-1-git-send-email-eblake@redhat.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: qemu-devel@nongnu.org Cc: Peter Maydell , "Michael S. Tsirkin" , Jason Wang , Vincenzo Maffione , Alexander Graf , Max Filippov , Gerd Hoffmann , Dmitry Fleytman , "Edgar E. Iglesias" , Rob Herring , Stefano Stabellini , armbru@redhat.com, Scott Feldman , Anthony Perard , Samuel Thibault , Jiri Pirko , Alistair Francis , Beniamino Galvani , "open list:Musicpal" , Jan Kiszka , Scott Wood , Giuseppe Lettieri , Luiz Capitulino List-Id: xen-devel@lists.xenproject.org VGhpcyBpcyBhIG1vc3RseS1tZWNoYW5pY2FsIGNvbnZlcnNpb24gdGhhdCBjcmVhdGVzIGEgbmV3 IGZsYXQKdW5pb24gJ05ldGRldicgUUFQSSB0eXBlIHRoYXQgY292ZXJzIGFsbCB0aGUgYnJhbmNo ZXMgb2YgdGhlCmZvcm1lciAnTmV0Q2xpZW50T3B0aW9ucycgc2ltcGxlIHVuaW9uLCB3aGVyZSB0 aGUgYnJhbmNoZXMgYXJlCm5vdyBsaXN0ZWQgaW4gYSBuZXcgJ05ldENsaWVudERyaXZlcicgZW51 bSByYXRoZXIgdGhhbiBnZW5lcmF0ZWQKZnJvbSB0aGUgc2ltcGxlIHVuaW9uLiAgVGhlIGV4aXN0 ZW5jZSBvZiBhIGZsYXQgdW5pb24gaGFzIG5vCmNoYW5nZSB0byB0aGUgY29tbWFuZCBsaW5lIHN5 bnRheCBhY2NlcHRlZCBmb3IgbmV3IGNvZGUsIGFuZAp3aWxsIG1ha2UgaXQgcG9zc2libGUgZm9y IGEgZnV0dXJlIHBhdGNoIHRvIHN3aXRjaCB0aGUgUU1QCmNvbW1hbmQgdG8gcGFyc2UgYSBib3hl ZCB1bmlvbiBmb3Igbm8gY2hhbmdlIHRvIHZhbGlkIFFNUDsgYnV0Cml0IGRvZXMgaGF2ZSBzb21l IHJpcHBsZSBlZmZlY3Qgb24gdGhlIEMgY29kZSB3aGVuIGRlYWxpbmcgd2l0aAp0aGUgbmV3IHR5 cGVzLgoKV2hpbGUgbWFraW5nIHRoZSBjb252ZXJzaW9uLCBub3RlIHRoYXQgdGhlICdOZXRMZWdh Y3knIHR5cGUKcmVtYWlucyB1bmNoYW5nZWQ6IGl0IGFwcGxpZXMgb25seSB0byBsZWdhY3kgY29t bWFuZCBsaW5lIG9wdGlvbnMsCmFuZCB3aWxsIG5vdCBiZSBwb3J0ZWQgdG8gUU1QLCBzbyBpdCBz aG91bGQgcmVtYWluIGEgd3JhcHBlcgphcm91bmQgYSBzaW1wbGUgdW5pb247IHRvIGF2b2lkIGNv bmZ1c2lvbiwgdGhlIHR5cGUgbmFtZWQKJ05ldENsaWVudE9wdGlvbnMnIGlzIG5vdyBnb25lLCBh bmQgd2UgaW50cm9kdWNlICdOZXRMZWdhY3lPcHRpb25zJwppbiBpdHMgcGxhY2UuICBUaGVuLCBp biB0aGUgQyBjb2RlLCB3ZSBjb252ZXJ0IGZyb20gTmV0TGVnYWN5IHRvCk5ldGRldiBhcyBzb29u IGFzIHBvc3NpYmxlLCBzbyB0aGF0IHRoZSBidWxrIG9mIHRoZSBuZXQgc3RhY2sKb25seSBoYXMg dG8gZGVhbCB3aXRoIG9uZSBRQVBJIHR5cGUsIG5vdCB0d28uICBOb3RlIHRoYXQgc2luY2UKdGhl IG9sZCBsZWdhY3kgY29kZSBhbHdheXMgcmVqZWN0ZWQgJ2h1YnBvcnQnLCB3ZSBjYW4ganVzdCBv bWl0CnRoYXQgYnJhbmNoIGZyb20gdGhlIG5ldyAnTmV0TGVnYWN5T3B0aW9ucycgc2ltcGxlIHVu aW9uLgoKQmFzZWQgb24gYW4gaWRlYSBvcmlnaW5hbGx5IGJ5IFpvbHTDoW4gS8WRdsOhZ8OzIDxE aXJ0WS5pQ0UuaHVAZ21haWwuY29tPjoKTWVzc2FnZS1JZDogPDAxYTUyN2ZiZjFhNWRlODgwMDkx Zjk4Y2YwMTE2MTZhNzhhZGVlZWUuMTQ0MTYyNzE3Ni5naXQuRGlydFkuaUNFLmh1QGdtYWlsLmNv bT4KYWx0aG91Z2ggdGhlIHNlZCBzY3JpcHQgaW4gdGhhdCBwYXRjaCBubyBsb25nZXIgYXBwbGll cyBkdWUgdG8Kb3RoZXIgY2hhbmdlcyBpbiB0aGUgdHJlZSBzaW5jZSB0aGVuLCBhbmQgSSBhbHNv IGRpZCBzb21lIG1hbnVhbApjbGVhbnVwcyAoc3VjaCBhcyBmaXhpbmcgd2hpdGVzcGFjZSB0byBr ZWVwIGNoZWNrcGF0Y2ggaGFwcHkpLgoKU2lnbmVkLW9mZi1ieTogRXJpYyBCbGFrZSA8ZWJsYWtl QHJlZGhhdC5jb20+CgotLS0Kdjg6IHJld3JpdGUgY29tbWl0IG1lc3NhZ2UsIGNsYWltIGF1dGhv cnNoaXAsIHJlYmFzZSB0byBsYXRlc3QKdjc6IHJlYmFzZSB0byBsYXRlc3QgbWFzdGVyCnY2OiBy ZWJhc2UgdG8gbGF0ZXN0IG1hc3RlcgotLS0KIHFhcGktc2NoZW1hLmpzb24gICAgICAgICAgICAg ICAgIHwgIDQ5ICsrKysrKysrKystLS0tLQogaW5jbHVkZS9uZXQvbmV0LmggICAgICAgICAgICAg ICAgfCAgIDQgKy0KIGh3L2FybS9tdXNpY3BhbC5jICAgICAgICAgICAgICAgIHwgICAyICstCiBo dy9jb3JlL3FkZXYtcHJvcGVydGllcy1zeXN0ZW0uYyB8ICAgMiArLQogaHcvbmV0L2FsbHdpbm5l cl9lbWFjLmMgICAgICAgICAgfCAgIDIgKy0KIGh3L25ldC9jYWRlbmNlX2dlbS5jICAgICAgICAg ICAgIHwgICAyICstCiBody9uZXQvZHA4MzkzeC5jICAgICAgICAgICAgICAgICB8ICAgMiArLQog aHcvbmV0L2UxMDAwLmMgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGh3L25ldC9lMTAwMGUu YyAgICAgICAgICAgICAgICAgIHwgICAyICstCiBody9uZXQvZWVwcm8xMDAuYyAgICAgICAgICAg ICAgICB8ICAgMiArLQogaHcvbmV0L2V0cmF4ZnNfZXRoLmMgICAgICAgICAgICAgfCAgIDIgKy0K IGh3L25ldC9mc2xfZXRzZWMvZXRzZWMuYyAgICAgICAgIHwgICAyICstCiBody9uZXQvaW14X2Zl Yy5jICAgICAgICAgICAgICAgICB8ICAgMiArLQogaHcvbmV0L2xhbjkxMTguYyAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIGh3L25ldC9sYW5jZS5jICAgICAgICAgICAgICAgICAgIHwgICAyICst CiBody9uZXQvbWNmX2ZlYy5jICAgICAgICAgICAgICAgICB8ICAgMiArLQogaHcvbmV0L21pbGt5 bWlzdC1taW5pbWFjMi5jICAgICAgfCAgIDIgKy0KIGh3L25ldC9taXBzbmV0LmMgICAgICAgICAg ICAgICAgIHwgICAyICstCiBody9uZXQvbmUyMDAwLWlzYS5jICAgICAgICAgICAgICB8ICAgMiAr LQogaHcvbmV0L25lMjAwMC5jICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGh3L25ldC9vcGVu Y29yZXNfZXRoLmMgICAgICAgICAgIHwgICAyICstCiBody9uZXQvcGNuZXQtcGNpLmMgICAgICAg ICAgICAgICB8ICAgMiArLQogaHcvbmV0L3JvY2tlci9yb2NrZXJfZnAuYyAgICAgICAgfCAgIDIg Ky0KIGh3L25ldC9ydGw4MTM5LmMgICAgICAgICAgICAgICAgIHwgICAyICstCiBody9uZXQvc21j OTFjMTExLmMgICAgICAgICAgICAgICB8ICAgMiArLQogaHcvbmV0L3NwYXByX2xsYW4uYyAgICAg ICAgICAgICAgfCAgIDIgKy0KIGh3L25ldC9zdGVsbGFyaXNfZW5ldC5jICAgICAgICAgIHwgICAy ICstCiBody9uZXQvdmhvc3RfbmV0LmMgICAgICAgICAgICAgICB8ICAyMCArKystLS0KIGh3L25l dC92aXJ0aW8tbmV0LmMgICAgICAgICAgICAgIHwgIDEwICstLQogaHcvbmV0L3ZteG5ldDMuYyAg ICAgICAgICAgICAgICAgfCAgIDIgKy0KIGh3L25ldC94ZW5fbmljLmMgICAgICAgICAgICAgICAg IHwgICAyICstCiBody9uZXQveGdtYWMuYyAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogaHcv bmV0L3hpbGlueF9heGllbmV0LmMgICAgICAgICAgfCAgIDIgKy0KIGh3L25ldC94aWxpbnhfZXRo bGl0ZS5jICAgICAgICAgIHwgICAyICstCiBody91c2IvZGV2LW5ldHdvcmsuYyAgICAgICAgICAg ICB8ICAgMiArLQogbW9uaXRvci5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKystLS0K IG5ldC9kdW1wLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBuZXQvZmlsdGVyLmMg ICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbmV0L2h1Yi5jICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMjIgKysrLS0tLQogbmV0L2wydHB2My5jICAgICAgICAgICAgICAgICAgICAgfCAg IDYgKy0KIG5ldC9uZXQuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgMTMzICsrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogbmV0L25ldG1hcC5jICAgICAgICAgICAgICAg ICAgICAgfCAgIDQgKy0KIG5ldC9zbGlycC5jICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICst CiBuZXQvc29ja2V0LmMgICAgICAgICAgICAgICAgICAgICB8ICAgOCArLS0KIG5ldC90YXAtd2lu MzIuYyAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBuZXQvdGFwLmMgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyNCArKystLS0tCiBuZXQvdmRlLmMgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgNiArLQogbmV0L3Zob3N0LXVzZXIuYyAgICAgICAgICAgICAgICAgfCAgMjAgKysrLS0tCiA0 OCBmaWxlcyBjaGFuZ2VkLCAyMzAgaW5zZXJ0aW9ucygrKSwgMTcyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3FhcGktc2NoZW1hLmpzb24gYi9xYXBpLXNjaGVtYS5qc29uCmluZGV4IGJhM2Jm MTQuLmU4YTAxNWYgMTAwNjQ0Ci0tLSBhL3FhcGktc2NoZW1hLmpzb24KKysrIGIvcWFwaS1zY2hl bWEuanNvbgpAQCAtMjgwNSwxNiArMjgwNSwzMiBAQAogICAgICcqcXVldWVzJzogICAgICAgICdp bnQnIH0gfQoKICMjCi0jIEBOZXRDbGllbnRPcHRpb25zCisjIEBOZXRDbGllbnREcml2ZXIKICMK LSMgQSBkaXNjcmltaW5hdGVkIHJlY29yZCBvZiBuZXR3b3JrIGRldmljZSB0cmFpdHMuCisjIEF2 YWlsYWJsZSBuZXRkZXYgZHJpdmVycy4KKyMKKyMgU2luY2UgMi43CisjIworeyAnZW51bSc6ICdO ZXRDbGllbnREcml2ZXInLAorICAnZGF0YSc6IFsgJ25vbmUnLCAnbmljJywgJ3VzZXInLCAndGFw JywgJ2wydHB2MycsICdzb2NrZXQnLCAndmRlJywgJ2R1bXAnLAorICAgICAgICAgICAgJ2JyaWRn ZScsICdodWJwb3J0JywgJ25ldG1hcCcsICd2aG9zdC11c2VyJyBdIH0KKworIyMKKyMgQE5ldGRl dgorIworIyBDYXB0dXJlcyB0aGUgY29uZmlndXJhdGlvbiBvZiBhIG5ldHdvcmsgZGV2aWNlLgor IworIyBAaWQ6IGlkZW50aWZpZXIgZm9yIG1vbml0b3IgY29tbWFuZHMuCisjCisjIEB0eXBlOiBT cGVjaWZ5IHRoZSBkcml2ZXIgdXNlZCBmb3IgaW50ZXJwcmV0aW5nIHJlbWFpbmluZyBhcmd1bWVu dHMuCiAjCiAjIFNpbmNlIDEuMgogIwogIyAnbDJ0cHYzJyAtIHNpbmNlIDIuMQotIwogIyMKLXsg J3VuaW9uJzogJ05ldENsaWVudE9wdGlvbnMnLAoreyAndW5pb24nOiAnTmV0ZGV2JywKKyAgJ2Jh c2UnOiB7ICdpZCc6ICdzdHInLCAndHlwZSc6ICdOZXRDbGllbnREcml2ZXInIH0sCisgICdkaXNj cmltaW5hdG9yJzogJ3R5cGUnLAogICAnZGF0YSc6IHsKICAgICAnbm9uZSc6ICAgICAnTmV0ZGV2 Tm9uZU9wdGlvbnMnLAogICAgICduaWMnOiAgICAgICdOZXRMZWdhY3lOaWNPcHRpb25zJywKQEAg LTI4NDksMjMgKzI4NjUsMjggQEAKICAgICAnKnZsYW4nOiAnaW50MzInLAogICAgICcqaWQnOiAg ICdzdHInLAogICAgICcqbmFtZSc6ICdzdHInLAotICAgICdvcHRzJzogICdOZXRDbGllbnRPcHRp b25zJyB9IH0KKyAgICAnb3B0cyc6ICAnTmV0TGVnYWN5T3B0aW9ucycgfSB9CgogIyMKLSMgQE5l dGRldgorIyBATmV0TGVnYWN5T3B0aW9ucwogIwotIyBDYXB0dXJlcyB0aGUgY29uZmlndXJhdGlv biBvZiBhIG5ldHdvcmsgZGV2aWNlLgotIwotIyBAaWQ6IGlkZW50aWZpZXIgZm9yIG1vbml0b3Ig Y29tbWFuZHMuCi0jCi0jIEBvcHRzOiBkZXZpY2UgdHlwZSBzcGVjaWZpYyBwcm9wZXJ0aWVzCisj IExpa2UgTmV0ZGV2LCBidXQgZm9yIHVzZSBvbmx5IGJ5IHRoZSBsZWdhY3kgY29tbWFuZCBsaW5l IG9wdGlvbnMKICMKICMgU2luY2UgMS4yCiAjIwoteyAnc3RydWN0JzogJ05ldGRldicsCit7ICd1 bmlvbic6ICdOZXRMZWdhY3lPcHRpb25zJywKICAgJ2RhdGEnOiB7Ci0gICAgJ2lkJzogICAnc3Ry JywKLSAgICAnb3B0cyc6ICdOZXRDbGllbnRPcHRpb25zJyB9IH0KKyAgICAnbm9uZSc6ICAgICAn TmV0ZGV2Tm9uZU9wdGlvbnMnLAorICAgICduaWMnOiAgICAgICdOZXRMZWdhY3lOaWNPcHRpb25z JywKKyAgICAndXNlcic6ICAgICAnTmV0ZGV2VXNlck9wdGlvbnMnLAorICAgICd0YXAnOiAgICAg ICdOZXRkZXZUYXBPcHRpb25zJywKKyAgICAnbDJ0cHYzJzogICAnTmV0ZGV2TDJUUHYzT3B0aW9u cycsCisgICAgJ3NvY2tldCc6ICAgJ05ldGRldlNvY2tldE9wdGlvbnMnLAorICAgICd2ZGUnOiAg ICAgICdOZXRkZXZWZGVPcHRpb25zJywKKyAgICAnZHVtcCc6ICAgICAnTmV0ZGV2RHVtcE9wdGlv bnMnLAorICAgICdicmlkZ2UnOiAgICdOZXRkZXZCcmlkZ2VPcHRpb25zJywKKyAgICAnbmV0bWFw JzogICAnTmV0ZGV2TmV0bWFwT3B0aW9ucycsCisgICAgJ3Zob3N0LXVzZXInOiAnTmV0ZGV2Vmhv c3RVc2VyT3B0aW9ucycgfSB9CgogIyMKICMgQE5ldEZpbHRlckRpcmVjdGlvbgpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9uZXQvbmV0LmggYi9pbmNsdWRlL25ldC9uZXQuaAppbmRleCBhNWM1MDk1Li40 ODM4MmMzIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9uZXQuaAorKysgYi9pbmNsdWRlL25ldC9u ZXQuaApAQCAtNjYsNyArNjYsNyBAQCB0eXBlZGVmIHN0cnVjdCBTb2NrZXRSZWFkU3RhdGUgU29j a2V0UmVhZFN0YXRlOwogdHlwZWRlZiB2b2lkIChTb2NrZXRSZWFkU3RhdGVGaW5hbGl6ZSkoU29j a2V0UmVhZFN0YXRlICpycyk7CgogdHlwZWRlZiBzdHJ1Y3QgTmV0Q2xpZW50SW5mbyB7Ci0gICAg TmV0Q2xpZW50T3B0aW9uc0tpbmQgdHlwZTsKKyAgICBOZXRDbGllbnREcml2ZXIgdHlwZTsKICAg ICBzaXplX3Qgc2l6ZTsKICAgICBOZXRSZWNlaXZlICpyZWNlaXZlOwogICAgIE5ldFJlY2VpdmUg KnJlY2VpdmVfcmF3OwpAQCAtMTIyLDcgKzEyMiw3IEBAIGludCBuZXRfZmlsbF9yc3RhdGUoU29j a2V0UmVhZFN0YXRlICpycywgY29uc3QgdWludDhfdCAqYnVmLCBpbnQgc2l6ZSk7CiBjaGFyICpx ZW11X21hY19zdHJkdXBfcHJpbnRmKGNvbnN0IHVpbnQ4X3QgKm1hY2FkZHIpOwogTmV0Q2xpZW50 U3RhdGUgKnFlbXVfZmluZF9uZXRkZXYoY29uc3QgY2hhciAqaWQpOwogaW50IHFlbXVfZmluZF9u ZXRfY2xpZW50c19leGNlcHQoY29uc3QgY2hhciAqaWQsIE5ldENsaWVudFN0YXRlICoqbmNzLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV0Q2xpZW50T3B0aW9uc0tpbmQgdHlw ZSwgaW50IG1heCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOZXRDbGllbnRE cml2ZXIgdHlwZSwgaW50IG1heCk7CiBOZXRDbGllbnRTdGF0ZSAqcWVtdV9uZXdfbmV0X2NsaWVu dChOZXRDbGllbnRJbmZvICppbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTmV0Q2xpZW50U3RhdGUgKnBlZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBjaGFyICptb2RlbCwKZGlmZiAtLWdpdCBhL2h3L2FybS9tdXNpY3BhbC5jIGIv aHcvYXJtL211c2ljcGFsLmMKaW5kZXggN2E0Y2MwNy4uY2M1MGFjZSAxMDA2NDQKLS0tIGEvaHcv YXJtL211c2ljcGFsLmMKKysrIGIvaHcvYXJtL211c2ljcGFsLmMKQEAgLTM3OCw3ICszNzgsNyBA QCBzdGF0aWMgdm9pZCBldGhfY2xlYW51cChOZXRDbGllbnRTdGF0ZSAqbmMpCiB9Cgogc3RhdGlj IE5ldENsaWVudEluZm8gbmV0X212ODh3ODYxOF9pbmZvID0gewotICAgIC50eXBlID0gTkVUX0NM SUVOVF9PUFRJT05TX0tJTkRfTklDLAorICAgIC50eXBlID0gTkVUX0NMSUVOVF9EUklWRVJfTklD LAogICAgIC5zaXplID0gc2l6ZW9mKE5JQ1N0YXRlKSwKICAgICAucmVjZWl2ZSA9IGV0aF9yZWNl aXZlLAogICAgIC5jbGVhbnVwID0gZXRoX2NsZWFudXAsCmRpZmYgLS1naXQgYS9ody9jb3JlL3Fk ZXYtcHJvcGVydGllcy1zeXN0ZW0uYyBiL2h3L2NvcmUvcWRldi1wcm9wZXJ0aWVzLXN5c3RlbS5j CmluZGV4IDg5MTIxOWEuLjU3OWQzMWYgMTAwNjQ0Ci0tLSBhL2h3L2NvcmUvcWRldi1wcm9wZXJ0 aWVzLXN5c3RlbS5jCisrKyBiL2h3L2NvcmUvcWRldi1wcm9wZXJ0aWVzLXN5c3RlbS5jCkBAIC0y MzEsNyArMjMxLDcgQEAgc3RhdGljIHZvaWQgc2V0X25ldGRldihPYmplY3QgKm9iaiwgVmlzaXRv ciAqdiwgY29uc3QgY2hhciAqbmFtZSwKICAgICB9CgogICAgIHF1ZXVlcyA9IHFlbXVfZmluZF9u ZXRfY2xpZW50c19leGNlcHQoc3RyLCBwZWVycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX05JQywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVF9DTElFTlRfRFJJVkVSX05JQywKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BWF9RVUVVRV9OVU0pOwog ICAgIGlmIChxdWV1ZXMgPT0gMCkgewogICAgICAgICBlcnIgPSAtRU5PRU5UOwpkaWZmIC0tZ2l0 IGEvaHcvbmV0L2FsbHdpbm5lcl9lbWFjLmMgYi9ody9uZXQvYWxsd2lubmVyX2VtYWMuYwppbmRl eCBkNTc1MDIzLi41MGU4MzYxIDEwMDY0NAotLS0gYS9ody9uZXQvYWxsd2lubmVyX2VtYWMuYwor KysgYi9ody9uZXQvYWxsd2lubmVyX2VtYWMuYwpAQCAtNDI0LDcgKzQyNCw3IEBAIHN0YXRpYyBj b25zdCBNZW1vcnlSZWdpb25PcHMgYXdfZW1hY19tZW1fb3BzID0gewogfTsKCiBzdGF0aWMgTmV0 Q2xpZW50SW5mbyBuZXRfYXdfZW1hY19pbmZvID0gewotICAgIC50eXBlID0gTkVUX0NMSUVOVF9P UFRJT05TX0tJTkRfTklDLAorICAgIC50eXBlID0gTkVUX0NMSUVOVF9EUklWRVJfTklDLAogICAg IC5zaXplID0gc2l6ZW9mKE5JQ1N0YXRlKSwKICAgICAuY2FuX3JlY2VpdmUgPSBhd19lbWFjX2Nh bl9yZWNlaXZlLAogICAgIC5yZWNlaXZlID0gYXdfZW1hY19yZWNlaXZlLApkaWZmIC0tZ2l0IGEv aHcvbmV0L2NhZGVuY2VfZ2VtLmMgYi9ody9uZXQvY2FkZW5jZV9nZW0uYwppbmRleCA4YTRiZTFl Li5kYjFiMzAxIDEwMDY0NAotLS0gYS9ody9uZXQvY2FkZW5jZV9nZW0uYworKysgYi9ody9uZXQv Y2FkZW5jZV9nZW0uYwpAQCAtMTIwNyw3ICsxMjA3LDcgQEAgc3RhdGljIHZvaWQgZ2VtX3NldF9s aW5rKE5ldENsaWVudFN0YXRlICpuYykKIH0KCiBzdGF0aWMgTmV0Q2xpZW50SW5mbyBuZXRfZ2Vt X2luZm8gPSB7Ci0gICAgLnR5cGUgPSBORVRfQ0xJRU5UX09QVElPTlNfS0lORF9OSUMsCisgICAg LnR5cGUgPSBORVRfQ0xJRU5UX0RSSVZFUl9OSUMsCiAgICAgLnNpemUgPSBzaXplb2YoTklDU3Rh dGUpLAogICAgIC5jYW5fcmVjZWl2ZSA9IGdlbV9jYW5fcmVjZWl2ZSwKICAgICAucmVjZWl2ZSA9 IGdlbV9yZWNlaXZlLApkaWZmIC0tZ2l0IGEvaHcvbmV0L2RwODM5M3guYyBiL2h3L25ldC9kcDgz OTN4LmMKaW5kZXggMGZhNjUyYy4uMTdmMDMzOCAxMDA2NDQKLS0tIGEvaHcvbmV0L2RwODM5M3gu YworKysgYi9ody9uZXQvZHA4MzkzeC5jCkBAIC04MTIsNyArODEyLDcgQEAgc3RhdGljIHZvaWQg ZHA4MzkzeF9yZXNldChEZXZpY2VTdGF0ZSAqZGV2KQogfQoKIHN0YXRpYyBOZXRDbGllbnRJbmZv IG5ldF9kcDgzOTMyX2luZm8gPSB7Ci0gICAgLnR5cGUgPSBORVRfQ0xJRU5UX09QVElPTlNfS0lO RF9OSUMsCisgICAgLnR5cGUgPSBORVRfQ0xJRU5UX0RSSVZFUl9OSUMsCiAgICAgLnNpemUgPSBz aXplb2YoTklDU3RhdGUpLAogICAgIC5jYW5fcmVjZWl2ZSA9IGRwODM5M3hfY2FuX3JlY2VpdmUs CiAgICAgLnJlY2VpdmUgPSBkcDgzOTN4X3JlY2VpdmUsCmRpZmYgLS1naXQgYS9ody9uZXQvZTEw MDAuYyBiL2h3L25ldC9lMTAwMC5jCmluZGV4IDA2Y2E3YjIuLjkzMjQ5NDkgMTAwNjQ0Ci0tLSBh L2h3L25ldC9lMTAwMC5jCisrKyBiL2h3L25ldC9lMTAwMC5jCkBAIC0xNTYzLDcgKzE1NjMsNyBA QCBwY2lfZTEwMDBfdW5pbml0KFBDSURldmljZSAqZGV2KQogfQoKIHN0YXRpYyBOZXRDbGllbnRJ bmZvIG5ldF9lMTAwMF9pbmZvID0gewotICAgIC50eXBlID0gTkVUX0NMSUVOVF9PUFRJT05TX0tJ TkRfTklDLAorICAgIC50eXBlID0gTkVUX0NMSUVOVF9EUklWRVJfTklDLAogICAgIC5zaXplID0g c2l6ZW9mKE5JQ1N0YXRlKSwKICAgICAuY2FuX3JlY2VpdmUgPSBlMTAwMF9jYW5fcmVjZWl2ZSwK ICAgICAucmVjZWl2ZSA9IGUxMDAwX3JlY2VpdmUsCmRpZmYgLS1naXQgYS9ody9uZXQvZTEwMDBl LmMgYi9ody9uZXQvZTEwMDBlLmMKaW5kZXggNjkyMjgzZi4uODI1ZjBiYSAxMDA2NDQKLS0tIGEv aHcvbmV0L2UxMDAwZS5jCisrKyBiL2h3L25ldC9lMTAwMGUuYwpAQCAtMjI2LDcgKzIyNiw3IEBA IGUxMDAwZV9zZXRfbGlua19zdGF0dXMoTmV0Q2xpZW50U3RhdGUgKm5jKQogfQoKIHN0YXRpYyBO ZXRDbGllbnRJbmZvIG5ldF9lMTAwMGVfaW5mbyA9IHsKLSAgICAudHlwZSA9IE5FVF9DTElFTlRf T1BUSU9OU19LSU5EX05JQywKKyAgICAudHlwZSA9IE5FVF9DTElFTlRfRFJJVkVSX05JQywKICAg ICAuc2l6ZSA9IHNpemVvZihOSUNTdGF0ZSksCiAgICAgLmNhbl9yZWNlaXZlID0gZTEwMDBlX25j X2Nhbl9yZWNlaXZlLAogICAgIC5yZWNlaXZlID0gZTEwMDBlX25jX3JlY2VpdmUsCmRpZmYgLS1n aXQgYS9ody9uZXQvZWVwcm8xMDAuYyBiL2h3L25ldC9lZXBybzEwMC5jCmluZGV4IGIxMGM0MTku LmJhYjRkYmYgMTAwNjQ0Ci0tLSBhL2h3L25ldC9lZXBybzEwMC5jCisrKyBiL2h3L25ldC9lZXBy bzEwMC5jCkBAIC0xODQ4LDcgKzE4NDgsNyBAQCBzdGF0aWMgdm9pZCBwY2lfbmljX3VuaW5pdChQ Q0lEZXZpY2UgKnBjaV9kZXYpCiB9Cgogc3RhdGljIE5ldENsaWVudEluZm8gbmV0X2VlcHJvMTAw X2luZm8gPSB7Ci0gICAgLnR5cGUgPSBORVRfQ0xJRU5UX09QVElPTlNfS0lORF9OSUMsCisgICAg LnR5cGUgPSBORVRfQ0xJRU5UX0RSSVZFUl9OSUMsCiAgICAgLnNpemUgPSBzaXplb2YoTklDU3Rh dGUpLAogICAgIC5yZWNlaXZlID0gbmljX3JlY2VpdmUsCiB9OwpkaWZmIC0tZ2l0IGEvaHcvbmV0 L2V0cmF4ZnNfZXRoLmMgYi9ody9uZXQvZXRyYXhmc19ldGguYwppbmRleCAwNTQ5NWVjLi5lZmFh NDlmIDEwMDY0NAotLS0gYS9ody9uZXQvZXRyYXhmc19ldGguYworKysgYi9ody9uZXQvZXRyYXhm c19ldGguYwpAQCAtNTc4LDcgKzU3OCw3IEBAIHN0YXRpYyBjb25zdCBNZW1vcnlSZWdpb25PcHMg ZXRoX29wcyA9IHsKIH07Cgogc3RhdGljIE5ldENsaWVudEluZm8gbmV0X2V0cmF4ZnNfaW5mbyA9 IHsKLSAgICAudHlwZSA9IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX05JQywKKyAgICAudHlwZSA9 IE5FVF9DTElFTlRfRFJJVkVSX05JQywKICAgICAuc2l6ZSA9IHNpemVvZihOSUNTdGF0ZSksCiAg ICAgLnJlY2VpdmUgPSBldGhfcmVjZWl2ZSwKICAgICAubGlua19zdGF0dXNfY2hhbmdlZCA9IGV0 aF9zZXRfbGluaywKZGlmZiAtLWdpdCBhL2h3L25ldC9mc2xfZXRzZWMvZXRzZWMuYyBiL2h3L25l dC9mc2xfZXRzZWMvZXRzZWMuYwppbmRleCA5ODI1MGUwLi5iNWM3NzdmIDEwMDY0NAotLS0gYS9o dy9uZXQvZnNsX2V0c2VjL2V0c2VjLmMKKysrIGIvaHcvbmV0L2ZzbF9ldHNlYy9ldHNlYy5jCkBA IC0zNzEsNyArMzcxLDcgQEAgc3RhdGljIHZvaWQgZXRzZWNfc2V0X2xpbmtfc3RhdHVzKE5ldENs aWVudFN0YXRlICpuYykKIH0KCiBzdGF0aWMgTmV0Q2xpZW50SW5mbyBuZXRfZXRzZWNfaW5mbyA9 IHsKLSAgICAudHlwZSA9IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX05JQywKKyAgICAudHlwZSA9 IE5FVF9DTElFTlRfRFJJVkVSX05JQywKICAgICAuc2l6ZSA9IHNpemVvZihOSUNTdGF0ZSksCiAg ICAgLnJlY2VpdmUgPSBldHNlY19yZWNlaXZlLAogICAgIC5saW5rX3N0YXR1c19jaGFuZ2VkID0g ZXRzZWNfc2V0X2xpbmtfc3RhdHVzLApkaWZmIC0tZ2l0IGEvaHcvbmV0L2lteF9mZWMuYyBiL2h3 L25ldC9pbXhfZmVjLmMKaW5kZXggZDkxZTAyOS4uMWM0MTVhYiAxMDA2NDQKLS0tIGEvaHcvbmV0 L2lteF9mZWMuYworKysgYi9ody9uZXQvaW14X2ZlYy5jCkBAIC0xMTQ3LDcgKzExNDcsNyBAQCBz dGF0aWMgdm9pZCBpbXhfZXRoX2NsZWFudXAoTmV0Q2xpZW50U3RhdGUgKm5jKQogfQoKIHN0YXRp YyBOZXRDbGllbnRJbmZvIGlteF9ldGhfbmV0X2luZm8gPSB7Ci0gICAgLnR5cGUgICAgICAgICAg ICAgICAgPSBORVRfQ0xJRU5UX09QVElPTlNfS0lORF9OSUMsCisgICAgLnR5cGUgICAgICAgICAg ICAgICAgPSBORVRfQ0xJRU5UX0RSSVZFUl9OSUMsCiAgICAgLnNpemUgICAgICAgICAgICAgICAg PSBzaXplb2YoTklDU3RhdGUpLAogICAgIC5jYW5fcmVjZWl2ZSAgICAgICAgID0gaW14X2V0aF9j YW5fcmVjZWl2ZSwKICAgICAucmVjZWl2ZSAgICAgICAgICAgICA9IGlteF9ldGhfcmVjZWl2ZSwK ZGlmZiAtLWdpdCBhL2h3L25ldC9sYW45MTE4LmMgYi9ody9uZXQvbGFuOTExOC5jCmluZGV4IDIw NTIwNzMuLjQ2MTVkODcgMTAwNjQ0Ci0tLSBhL2h3L25ldC9sYW45MTE4LmMKKysrIGIvaHcvbmV0 L2xhbjkxMTguYwpAQCAtMTMxMyw3ICsxMzEzLDcgQEAgc3RhdGljIGNvbnN0IE1lbW9yeVJlZ2lv bk9wcyBsYW45MTE4XzE2Yml0X21lbV9vcHMgPSB7CiB9OwoKIHN0YXRpYyBOZXRDbGllbnRJbmZv IG5ldF9sYW45MTE4X2luZm8gPSB7Ci0gICAgLnR5cGUgPSBORVRfQ0xJRU5UX09QVElPTlNfS0lO RF9OSUMsCisgICAgLnR5cGUgPSBORVRfQ0xJRU5UX0RSSVZFUl9OSUMsCiAgICAgLnNpemUgPSBz aXplb2YoTklDU3RhdGUpLAogICAgIC5yZWNlaXZlID0gbGFuOTExOF9yZWNlaXZlLAogICAgIC5s aW5rX3N0YXR1c19jaGFuZ2VkID0gbGFuOTExOF9zZXRfbGluaywKZGlmZiAtLWdpdCBhL2h3L25l dC9sYW5jZS5jIGIvaHcvbmV0L2xhbmNlLmMKaW5kZXggNjI1M2QyMS4uNTczZDcyNCAxMDA2NDQK LS0tIGEvaHcvbmV0L2xhbmNlLmMKKysrIGIvaHcvbmV0L2xhbmNlLmMKQEAgLTkzLDcgKzkzLDcg QEAgc3RhdGljIGNvbnN0IE1lbW9yeVJlZ2lvbk9wcyBsYW5jZV9tZW1fb3BzID0gewogfTsKCiBz dGF0aWMgTmV0Q2xpZW50SW5mbyBuZXRfbGFuY2VfaW5mbyA9IHsKLSAgICAudHlwZSA9IE5FVF9D TElFTlRfT1BUSU9OU19LSU5EX05JQywKKyAgICAudHlwZSA9IE5FVF9DTElFTlRfRFJJVkVSX05J QywKICAgICAuc2l6ZSA9IHNpemVvZihOSUNTdGF0ZSksCiAgICAgLnJlY2VpdmUgPSBwY25ldF9y ZWNlaXZlLAogICAgIC5saW5rX3N0YXR1c19jaGFuZ2VkID0gcGNuZXRfc2V0X2xpbmtfc3RhdHVz LApkaWZmIC0tZ2l0IGEvaHcvbmV0L21jZl9mZWMuYyBiL2h3L25ldC9tY2ZfZmVjLmMKaW5kZXgg N2MwMzk4ZS4uMGVlOGFkOSAxMDA2NDQKLS0tIGEvaHcvbmV0L21jZl9mZWMuYworKysgYi9ody9u ZXQvbWNmX2ZlYy5jCkBAIC01MDcsNyArNTA3LDcgQEAgc3RhdGljIGNvbnN0IE1lbW9yeVJlZ2lv bk9wcyBtY2ZfZmVjX29wcyA9IHsKIH07Cgogc3RhdGljIE5ldENsaWVudEluZm8gbmV0X21jZl9m ZWNfaW5mbyA9IHsKLSAgICAudHlwZSA9IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX05JQywKKyAg ICAudHlwZSA9IE5FVF9DTElFTlRfRFJJVkVSX05JQywKICAgICAuc2l6ZSA9IHNpemVvZihOSUNT dGF0ZSksCiAgICAgLnJlY2VpdmUgPSBtY2ZfZmVjX3JlY2VpdmUsCiB9OwpkaWZmIC0tZ2l0IGEv aHcvbmV0L21pbGt5bWlzdC1taW5pbWFjMi5jIGIvaHcvbmV0L21pbGt5bWlzdC1taW5pbWFjMi5j CmluZGV4IDFlMTQ3YzMuLmMzYTEyZTEgMTAwNjQ0Ci0tLSBhL2h3L25ldC9taWxreW1pc3QtbWlu aW1hYzIuYworKysgYi9ody9uZXQvbWlsa3ltaXN0LW1pbmltYWMyLmMKQEAgLTQ0Nyw3ICs0NDcs NyBAQCBzdGF0aWMgdm9pZCBtaWxreW1pc3RfbWluaW1hYzJfcmVzZXQoRGV2aWNlU3RhdGUgKmQp CiB9Cgogc3RhdGljIE5ldENsaWVudEluZm8gbmV0X21pbGt5bWlzdF9taW5pbWFjMl9pbmZvID0g ewotICAgIC50eXBlID0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfTklDLAorICAgIC50eXBlID0g TkVUX0NMSUVOVF9EUklWRVJfTklDLAogICAgIC5zaXplID0gc2l6ZW9mKE5JQ1N0YXRlKSwKICAg ICAucmVjZWl2ZSA9IG1pbmltYWMyX3J4LAogfTsKZGlmZiAtLWdpdCBhL2h3L25ldC9taXBzbmV0 LmMgYi9ody9uZXQvbWlwc25ldC5jCmluZGV4IDUxMTVhZGMuLjVhNjNkZjcgMTAwNjQ0Ci0tLSBh L2h3L25ldC9taXBzbmV0LmMKKysrIGIvaHcvbmV0L21pcHNuZXQuYwpAQCAtMjI0LDcgKzIyNCw3 IEBAIHN0YXRpYyBjb25zdCBWTVN0YXRlRGVzY3JpcHRpb24gdm1zdGF0ZV9taXBzbmV0ID0gewog fTsKCiBzdGF0aWMgTmV0Q2xpZW50SW5mbyBuZXRfbWlwc25ldF9pbmZvID0gewotICAgIC50eXBl ID0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfTklDLAorICAgIC50eXBlID0gTkVUX0NMSUVOVF9E UklWRVJfTklDLAogICAgIC5zaXplID0gc2l6ZW9mKE5JQ1N0YXRlKSwKICAgICAucmVjZWl2ZSA9 IG1pcHNuZXRfcmVjZWl2ZSwKIH07CmRpZmYgLS1naXQgYS9ody9uZXQvbmUyMDAwLWlzYS5jIGIv aHcvbmV0L25lMjAwMC1pc2EuYwppbmRleCA4ZmFiN2FlLi5mMzQ1NTMzIDEwMDY0NAotLS0gYS9o dy9uZXQvbmUyMDAwLWlzYS5jCisrKyBiL2h3L25ldC9uZTIwMDAtaXNhLmMKQEAgLTQ0LDcgKzQ0 LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgSVNBTkUyMDAwU3RhdGUgewogfSBJU0FORTIwMDBTdGF0ZTsK CiBzdGF0aWMgTmV0Q2xpZW50SW5mbyBuZXRfbmUyMDAwX2lzYV9pbmZvID0gewotICAgIC50eXBl ID0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfTklDLAorICAgIC50eXBlID0gTkVUX0NMSUVOVF9E UklWRVJfTklDLAogICAgIC5zaXplID0gc2l6ZW9mKE5JQ1N0YXRlKSwKICAgICAucmVjZWl2ZSA9 IG5lMjAwMF9yZWNlaXZlLAogfTsKZGlmZiAtLWdpdCBhL2h3L25ldC9uZTIwMDAuYyBiL2h3L25l dC9uZTIwMDAuYwppbmRleCBmMGZlYWY5Li43OThkNjgxIDEwMDY0NAotLS0gYS9ody9uZXQvbmUy MDAwLmMKKysrIGIvaHcvbmV0L25lMjAwMC5jCkBAIC03MTIsNyArNzEyLDcgQEAgdm9pZCBuZTIw MDBfc2V0dXBfaW8oTkUyMDAwU3RhdGUgKnMsIERldmljZVN0YXRlICpkZXYsIHVuc2lnbmVkIHNp emUpCiB9Cgogc3RhdGljIE5ldENsaWVudEluZm8gbmV0X25lMjAwMF9pbmZvID0gewotICAgIC50 eXBlID0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfTklDLAorICAgIC50eXBlID0gTkVUX0NMSUVO VF9EUklWRVJfTklDLAogICAgIC5zaXplID0gc2l6ZW9mKE5JQ1N0YXRlKSwKICAgICAucmVjZWl2 ZSA9IG5lMjAwMF9yZWNlaXZlLAogfTsKZGlmZiAtLWdpdCBhL2h3L25ldC9vcGVuY29yZXNfZXRo LmMgYi9ody9uZXQvb3BlbmNvcmVzX2V0aC5jCmluZGV4IDQ4NGQxMTMuLjI2OGQ2YTcgMTAwNjQ0 Ci0tLSBhL2h3L25ldC9vcGVuY29yZXNfZXRoLmMKKysrIGIvaHcvbmV0L29wZW5jb3Jlc19ldGgu YwpAQCAtNDczLDcgKzQ3Myw3IEBAIHN0YXRpYyBzc2l6ZV90IG9wZW5fZXRoX3JlY2VpdmUoTmV0 Q2xpZW50U3RhdGUgKm5jLAogfQoKIHN0YXRpYyBOZXRDbGllbnRJbmZvIG5ldF9vcGVuX2V0aF9p bmZvID0gewotICAgIC50eXBlID0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfTklDLAorICAgIC50 eXBlID0gTkVUX0NMSUVOVF9EUklWRVJfTklDLAogICAgIC5zaXplID0gc2l6ZW9mKE5JQ1N0YXRl KSwKICAgICAuY2FuX3JlY2VpdmUgPSBvcGVuX2V0aF9jYW5fcmVjZWl2ZSwKICAgICAucmVjZWl2 ZSA9IG9wZW5fZXRoX3JlY2VpdmUsCmRpZmYgLS1naXQgYS9ody9uZXQvcGNuZXQtcGNpLmMgYi9o dy9uZXQvcGNuZXQtcGNpLmMKaW5kZXggNTk1NDM5YS4uMGFjZjhhNCAxMDA2NDQKLS0tIGEvaHcv bmV0L3BjbmV0LXBjaS5jCisrKyBiL2h3L25ldC9wY25ldC1wY2kuYwpAQCAtMjcyLDcgKzI3Miw3 IEBAIHN0YXRpYyB2b2lkIHBjaV9wY25ldF91bmluaXQoUENJRGV2aWNlICpkZXYpCiB9Cgogc3Rh dGljIE5ldENsaWVudEluZm8gbmV0X3BjaV9wY25ldF9pbmZvID0gewotICAgIC50eXBlID0gTkVU X0NMSUVOVF9PUFRJT05TX0tJTkRfTklDLAorICAgIC50eXBlID0gTkVUX0NMSUVOVF9EUklWRVJf TklDLAogICAgIC5zaXplID0gc2l6ZW9mKE5JQ1N0YXRlKSwKICAgICAucmVjZWl2ZSA9IHBjbmV0 X3JlY2VpdmUsCiAgICAgLmxpbmtfc3RhdHVzX2NoYW5nZWQgPSBwY25ldF9zZXRfbGlua19zdGF0 dXMsCmRpZmYgLS1naXQgYS9ody9uZXQvcm9ja2VyL3JvY2tlcl9mcC5jIGIvaHcvbmV0L3JvY2tl ci9yb2NrZXJfZnAuYwppbmRleCAwMTQ5ODk5Li4xMzA1YWMzIDEwMDY0NAotLS0gYS9ody9uZXQv cm9ja2VyL3JvY2tlcl9mcC5jCisrKyBiL2h3L25ldC9yb2NrZXIvcm9ja2VyX2ZwLmMKQEAgLTE2 Nyw3ICsxNjcsNyBAQCBzdGF0aWMgdm9pZCBmcF9wb3J0X3NldF9saW5rX3N0YXR1cyhOZXRDbGll bnRTdGF0ZSAqbmMpCiB9Cgogc3RhdGljIE5ldENsaWVudEluZm8gZnBfcG9ydF9pbmZvID0gewot ICAgIC50eXBlID0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfTklDLAorICAgIC50eXBlID0gTkVU X0NMSUVOVF9EUklWRVJfTklDLAogICAgIC5zaXplID0gc2l6ZW9mKE5JQ1N0YXRlKSwKICAgICAu cmVjZWl2ZSA9IGZwX3BvcnRfcmVjZWl2ZSwKICAgICAucmVjZWl2ZV9pb3YgPSBmcF9wb3J0X3Jl Y2VpdmVfaW92LApkaWZmIC0tZ2l0IGEvaHcvbmV0L3J0bDgxMzkuYyBiL2h3L25ldC9ydGw4MTM5 LmMKaW5kZXggMDcyOTdjYi4uMzM0NWJjNiAxMDA2NDQKLS0tIGEvaHcvbmV0L3J0bDgxMzkuYwor KysgYi9ody9uZXQvcnRsODEzOS5jCkBAIC0zMzkzLDcgKzMzOTMsNyBAQCBzdGF0aWMgdm9pZCBy dGw4MTM5X3NldF9saW5rX3N0YXR1cyhOZXRDbGllbnRTdGF0ZSAqbmMpCiB9Cgogc3RhdGljIE5l dENsaWVudEluZm8gbmV0X3J0bDgxMzlfaW5mbyA9IHsKLSAgICAudHlwZSA9IE5FVF9DTElFTlRf T1BUSU9OU19LSU5EX05JQywKKyAgICAudHlwZSA9IE5FVF9DTElFTlRfRFJJVkVSX05JQywKICAg ICAuc2l6ZSA9IHNpemVvZihOSUNTdGF0ZSksCiAgICAgLmNhbl9yZWNlaXZlID0gcnRsODEzOV9j YW5fcmVjZWl2ZSwKICAgICAucmVjZWl2ZSA9IHJ0bDgxMzlfcmVjZWl2ZSwKZGlmZiAtLWdpdCBh L2h3L25ldC9zbWM5MWMxMTEuYyBiL2h3L25ldC9zbWM5MWMxMTEuYwppbmRleCAyMWMxYjhmLi4z YjE2ZGNmIDEwMDY0NAotLS0gYS9ody9uZXQvc21jOTFjMTExLmMKKysrIGIvaHcvbmV0L3NtYzkx YzExMS5jCkBAIC03NTUsNyArNzU1LDcgQEAgc3RhdGljIGNvbnN0IE1lbW9yeVJlZ2lvbk9wcyBz bWM5MWMxMTFfbWVtX29wcyA9IHsKIH07Cgogc3RhdGljIE5ldENsaWVudEluZm8gbmV0X3NtYzkx YzExMV9pbmZvID0gewotICAgIC50eXBlID0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfTklDLAor ICAgIC50eXBlID0gTkVUX0NMSUVOVF9EUklWRVJfTklDLAogICAgIC5zaXplID0gc2l6ZW9mKE5J Q1N0YXRlKSwKICAgICAuY2FuX3JlY2VpdmUgPSBzbWM5MWMxMTFfY2FuX3JlY2VpdmVfbmMsCiAg ICAgLnJlY2VpdmUgPSBzbWM5MWMxMTFfcmVjZWl2ZSwKZGlmZiAtLWdpdCBhL2h3L25ldC9zcGFw cl9sbGFuLmMgYi9ody9uZXQvc3BhcHJfbGxhbi5jCmluZGV4IDhiMmVlYmQuLmIyNzNlZGEgMTAw NjQ0Ci0tLSBhL2h3L25ldC9zcGFwcl9sbGFuLmMKKysrIGIvaHcvbmV0L3NwYXByX2xsYW4uYwpA QCAtMjc4LDcgKzI3OCw3IEBAIHN0YXRpYyBzc2l6ZV90IHNwYXByX3ZsYW5fcmVjZWl2ZShOZXRD bGllbnRTdGF0ZSAqbmMsIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwKIH0KCiBzdGF0aWMgTmV0Q2xpZW50 SW5mbyBuZXRfc3BhcHJfdmxhbl9pbmZvID0gewotICAgIC50eXBlID0gTkVUX0NMSUVOVF9PUFRJ T05TX0tJTkRfTklDLAorICAgIC50eXBlID0gTkVUX0NMSUVOVF9EUklWRVJfTklDLAogICAgIC5z aXplID0gc2l6ZW9mKE5JQ1N0YXRlKSwKICAgICAuY2FuX3JlY2VpdmUgPSBzcGFwcl92bGFuX2Nh bl9yZWNlaXZlLAogICAgIC5yZWNlaXZlID0gc3BhcHJfdmxhbl9yZWNlaXZlLApkaWZmIC0tZ2l0 IGEvaHcvbmV0L3N0ZWxsYXJpc19lbmV0LmMgYi9ody9uZXQvc3RlbGxhcmlzX2VuZXQuYwppbmRl eCA2ODgwODk0Li45NTc3MzBlIDEwMDY0NAotLS0gYS9ody9uZXQvc3RlbGxhcmlzX2VuZXQuYwor KysgYi9ody9uZXQvc3RlbGxhcmlzX2VuZXQuYwpAQCAtNDYwLDcgKzQ2MCw3IEBAIHN0YXRpYyB2 b2lkIHN0ZWxsYXJpc19lbmV0X3Jlc2V0KHN0ZWxsYXJpc19lbmV0X3N0YXRlICpzKQogfQoKIHN0 YXRpYyBOZXRDbGllbnRJbmZvIG5ldF9zdGVsbGFyaXNfZW5ldF9pbmZvID0gewotICAgIC50eXBl ID0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfTklDLAorICAgIC50eXBlID0gTkVUX0NMSUVOVF9E UklWRVJfTklDLAogICAgIC5zaXplID0gc2l6ZW9mKE5JQ1N0YXRlKSwKICAgICAucmVjZWl2ZSA9 IHN0ZWxsYXJpc19lbmV0X3JlY2VpdmUsCiB9OwpkaWZmIC0tZ2l0IGEvaHcvbmV0L3Zob3N0X25l dC5jIGIvaHcvbmV0L3Zob3N0X25ldC5jCmluZGV4IDUwZjRkY2QuLmIzMzY5ZWUgMTAwNjQ0Ci0t LSBhL2h3L25ldC92aG9zdF9uZXQuYworKysgYi9ody9uZXQvdmhvc3RfbmV0LmMKQEAgLTg4LDEw ICs4OCwxMCBAQCBzdGF0aWMgY29uc3QgaW50ICp2aG9zdF9uZXRfZ2V0X2ZlYXR1cmVfYml0cyhz dHJ1Y3Qgdmhvc3RfbmV0ICpuZXQpCiAgICAgY29uc3QgaW50ICpmZWF0dXJlX2JpdHMgPSAwOwoK ICAgICBzd2l0Y2ggKG5ldC0+bmMtPmluZm8tPnR5cGUpIHsKLSAgICBjYXNlIE5FVF9DTElFTlRf T1BUSU9OU19LSU5EX1RBUDoKKyAgICBjYXNlIE5FVF9DTElFTlRfRFJJVkVSX1RBUDoKICAgICAg ICAgZmVhdHVyZV9iaXRzID0ga2VybmVsX2ZlYXR1cmVfYml0czsKICAgICAgICAgYnJlYWs7Ci0g ICAgY2FzZSBORVRfQ0xJRU5UX09QVElPTlNfS0lORF9WSE9TVF9VU0VSOgorICAgIGNhc2UgTkVU X0NMSUVOVF9EUklWRVJfVkhPU1RfVVNFUjoKICAgICAgICAgZmVhdHVyZV9iaXRzID0gdXNlcl9m ZWF0dXJlX2JpdHM7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CkBAIC0xMjgsNyArMTI4 LDcgQEAgdWludDY0X3Qgdmhvc3RfbmV0X2dldF9hY2tlZF9mZWF0dXJlcyhWSG9zdE5ldFN0YXRl ICpuZXQpCiBzdGF0aWMgaW50IHZob3N0X25ldF9nZXRfZmQoTmV0Q2xpZW50U3RhdGUgKmJhY2tl bmQpCiB7CiAgICAgc3dpdGNoIChiYWNrZW5kLT5pbmZvLT50eXBlKSB7Ci0gICAgY2FzZSBORVRf Q0xJRU5UX09QVElPTlNfS0lORF9UQVA6CisgICAgY2FzZSBORVRfQ0xJRU5UX0RSSVZFUl9UQVA6 CiAgICAgICAgIHJldHVybiB0YXBfZ2V0X2ZkKGJhY2tlbmQpOwogICAgIGRlZmF1bHQ6CiAgICAg ICAgIGZwcmludGYoc3RkZXJyLCAidmhvc3QtbmV0IHJlcXVpcmVzIHRhcCBiYWNrZW5kXG4iKTsK QEAgLTE5MSw3ICsxOTEsNyBAQCBzdHJ1Y3Qgdmhvc3RfbmV0ICp2aG9zdF9uZXRfaW5pdChWaG9z dE5ldE9wdGlvbnMgKm9wdGlvbnMpCiAgICAgfQoKICAgICAvKiBTZXQgc2FuZSBpbml0IHZhbHVl LiBPdmVycmlkZSB3aGVuIGd1ZXN0IGFja3MuICovCi0gICAgaWYgKG5ldC0+bmMtPmluZm8tPnR5 cGUgPT0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfVkhPU1RfVVNFUikgeworICAgIGlmIChuZXQt Pm5jLT5pbmZvLT50eXBlID09IE5FVF9DTElFTlRfRFJJVkVSX1ZIT1NUX1VTRVIpIHsKICAgICAg ICAgZmVhdHVyZXMgPSB2aG9zdF91c2VyX2dldF9hY2tlZF9mZWF0dXJlcyhuZXQtPm5jKTsKICAg ICAgICAgaWYgKH5uZXQtPmRldi5mZWF0dXJlcyAmIGZlYXR1cmVzKSB7CiAgICAgICAgICAgICBm cHJpbnRmKHN0ZGVyciwgInZob3N0IGxhY2tzIGZlYXR1cmUgbWFzayAlIiBQUkl1NjQKQEAgLTIz OCw3ICsyMzgsNyBAQCBzdGF0aWMgaW50IHZob3N0X25ldF9zdGFydF9vbmUoc3RydWN0IHZob3N0 X25ldCAqbmV0LAogICAgICAgICBuZXQtPm5jLT5pbmZvLT5wb2xsKG5ldC0+bmMsIGZhbHNlKTsK ICAgICB9CgotICAgIGlmIChuZXQtPm5jLT5pbmZvLT50eXBlID09IE5FVF9DTElFTlRfT1BUSU9O U19LSU5EX1RBUCkgeworICAgIGlmIChuZXQtPm5jLT5pbmZvLT50eXBlID09IE5FVF9DTElFTlRf RFJJVkVSX1RBUCkgewogICAgICAgICBxZW11X3NldF9mZF9oYW5kbGVyKG5ldC0+YmFja2VuZCwg TlVMTCwgTlVMTCwgTlVMTCk7CiAgICAgICAgIGZpbGUuZmQgPSBuZXQtPmJhY2tlbmQ7CiAgICAg ICAgIGZvciAoZmlsZS5pbmRleCA9IDA7IGZpbGUuaW5kZXggPCBuZXQtPmRldi5udnFzOyArK2Zp bGUuaW5kZXgpIHsKQEAgLTI1Myw3ICsyNTMsNyBAQCBzdGF0aWMgaW50IHZob3N0X25ldF9zdGFy dF9vbmUoc3RydWN0IHZob3N0X25ldCAqbmV0LAogICAgIHJldHVybiAwOwogZmFpbDoKICAgICBm aWxlLmZkID0gLTE7Ci0gICAgaWYgKG5ldC0+bmMtPmluZm8tPnR5cGUgPT0gTkVUX0NMSUVOVF9P UFRJT05TX0tJTkRfVEFQKSB7CisgICAgaWYgKG5ldC0+bmMtPmluZm8tPnR5cGUgPT0gTkVUX0NM SUVOVF9EUklWRVJfVEFQKSB7CiAgICAgICAgIHdoaWxlIChmaWxlLmluZGV4LS0gPiAwKSB7CiAg ICAgICAgICAgICBjb25zdCBWaG9zdE9wcyAqdmhvc3Rfb3BzID0gbmV0LT5kZXYudmhvc3Rfb3Bz OwogICAgICAgICAgICAgaW50IHIgPSB2aG9zdF9vcHMtPnZob3N0X25ldF9zZXRfYmFja2VuZCgm bmV0LT5kZXYsICZmaWxlKTsKQEAgLTI3NSw3ICsyNzUsNyBAQCBzdGF0aWMgdm9pZCB2aG9zdF9u ZXRfc3RvcF9vbmUoc3RydWN0IHZob3N0X25ldCAqbmV0LAogewogICAgIHN0cnVjdCB2aG9zdF92 cmluZ19maWxlIGZpbGUgPSB7IC5mZCA9IC0xIH07CgotICAgIGlmIChuZXQtPm5jLT5pbmZvLT50 eXBlID09IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX1RBUCkgeworICAgIGlmIChuZXQtPm5jLT5p bmZvLT50eXBlID09IE5FVF9DTElFTlRfRFJJVkVSX1RBUCkgewogICAgICAgICBmb3IgKGZpbGUu aW5kZXggPSAwOyBmaWxlLmluZGV4IDwgbmV0LT5kZXYubnZxczsgKytmaWxlLmluZGV4KSB7CiAg ICAgICAgICAgICBjb25zdCBWaG9zdE9wcyAqdmhvc3Rfb3BzID0gbmV0LT5kZXYudmhvc3Rfb3Bz OwogICAgICAgICAgICAgaW50IHIgPSB2aG9zdF9vcHMtPnZob3N0X25ldF9zZXRfYmFja2VuZCgm bmV0LT5kZXYsICZmaWxlKTsKQEAgLTMxMiw3ICszMTIsNyBAQCBpbnQgdmhvc3RfbmV0X3N0YXJ0 KFZpcnRJT0RldmljZSAqZGV2LCBOZXRDbGllbnRTdGF0ZSAqbmNzLAogICAgICAgICAgKiBiZWNh dXNlIHZob3N0IHVzZXIgZG9lc24ndCBpbnRlcnJ1cHQgbWFza2luZy91bm1hc2tpbmcKICAgICAg ICAgICogcHJvcGVybHkuCiAgICAgICAgICAqLwotICAgICAgICBpZiAobmV0LT5uYy0+aW5mby0+ dHlwZSA9PSBORVRfQ0xJRU5UX09QVElPTlNfS0lORF9WSE9TVF9VU0VSKSB7CisgICAgICAgIGlm IChuZXQtPm5jLT5pbmZvLT50eXBlID09IE5FVF9DTElFTlRfRFJJVkVSX1ZIT1NUX1VTRVIpIHsK ICAgICAgICAgICAgICAgICBkZXYtPnVzZV9ndWVzdF9ub3RpZmllcl9tYXNrID0gZmFsc2U7CiAg ICAgICAgIH0KICAgICAgfQpAQCAtNDEzLDEwICs0MTMsMTAgQEAgVkhvc3ROZXRTdGF0ZSAqZ2V0 X3Zob3N0X25ldChOZXRDbGllbnRTdGF0ZSAqbmMpCiAgICAgfQoKICAgICBzd2l0Y2ggKG5jLT5p bmZvLT50eXBlKSB7Ci0gICAgY2FzZSBORVRfQ0xJRU5UX09QVElPTlNfS0lORF9UQVA6CisgICAg Y2FzZSBORVRfQ0xJRU5UX0RSSVZFUl9UQVA6CiAgICAgICAgIHZob3N0X25ldCA9IHRhcF9nZXRf dmhvc3RfbmV0KG5jKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBORVRfQ0xJRU5UX09QVElP TlNfS0lORF9WSE9TVF9VU0VSOgorICAgIGNhc2UgTkVUX0NMSUVOVF9EUklWRVJfVkhPU1RfVVNF UjoKICAgICAgICAgdmhvc3RfbmV0ID0gdmhvc3RfdXNlcl9nZXRfdmhvc3RfbmV0KG5jKTsKICAg ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL2h3L25ldC92aXJ0aW8tbmV0 LmMgYi9ody9uZXQvdmlydGlvLW5ldC5jCmluZGV4IDdlNmE2MGEuLjUyOGE5MTkgMTAwNjQ0Ci0t LSBhL2h3L25ldC92aXJ0aW8tbmV0LmMKKysrIGIvaHcvbmV0L3ZpcnRpby1uZXQuYwpAQCAtNDY4 LDExICs0NjgsMTEgQEAgc3RhdGljIGludCBwZWVyX2F0dGFjaChWaXJ0SU9OZXQgKm4sIGludCBp bmRleCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQoKLSAgICBpZiAobmMtPnBlZXItPmluZm8t PnR5cGUgPT0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfVkhPU1RfVVNFUikgeworICAgIGlmIChu Yy0+cGVlci0+aW5mby0+dHlwZSA9PSBORVRfQ0xJRU5UX0RSSVZFUl9WSE9TVF9VU0VSKSB7CiAg ICAgICAgIHZob3N0X3NldF92cmluZ19lbmFibGUobmMtPnBlZXIsIDEpOwogICAgIH0KCi0gICAg aWYgKG5jLT5wZWVyLT5pbmZvLT50eXBlICE9IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX1RBUCkg eworICAgIGlmIChuYy0+cGVlci0+aW5mby0+dHlwZSAhPSBORVRfQ0xJRU5UX0RSSVZFUl9UQVAp IHsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQoKQEAgLTQ4NywxMSArNDg3LDExIEBAIHN0YXRp YyBpbnQgcGVlcl9kZXRhY2goVmlydElPTmV0ICpuLCBpbnQgaW5kZXgpCiAgICAgICAgIHJldHVy biAwOwogICAgIH0KCi0gICAgaWYgKG5jLT5wZWVyLT5pbmZvLT50eXBlID09IE5FVF9DTElFTlRf T1BUSU9OU19LSU5EX1ZIT1NUX1VTRVIpIHsKKyAgICBpZiAobmMtPnBlZXItPmluZm8tPnR5cGUg PT0gTkVUX0NMSUVOVF9EUklWRVJfVkhPU1RfVVNFUikgewogICAgICAgICB2aG9zdF9zZXRfdnJp bmdfZW5hYmxlKG5jLT5wZWVyLCAwKTsKICAgICB9CgotICAgIGlmIChuYy0+cGVlci0+aW5mby0+ dHlwZSAhPSAgTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfVEFQKSB7CisgICAgaWYgKG5jLT5wZWVy LT5pbmZvLT50eXBlICE9ICBORVRfQ0xJRU5UX0RSSVZFUl9UQVApIHsKICAgICAgICAgcmV0dXJu IDA7CiAgICAgfQoKQEAgLTE2ODYsNyArMTY4Niw3IEBAIHN0YXRpYyBpbnQgdmlydGlvX25ldF9s b2FkX2RldmljZShWaXJ0SU9EZXZpY2UgKnZkZXYsIFFFTVVGaWxlICpmLAogfQoKIHN0YXRpYyBO ZXRDbGllbnRJbmZvIG5ldF92aXJ0aW9faW5mbyA9IHsKLSAgICAudHlwZSA9IE5FVF9DTElFTlRf T1BUSU9OU19LSU5EX05JQywKKyAgICAudHlwZSA9IE5FVF9DTElFTlRfRFJJVkVSX05JQywKICAg ICAuc2l6ZSA9IHNpemVvZihOSUNTdGF0ZSksCiAgICAgLmNhbl9yZWNlaXZlID0gdmlydGlvX25l dF9jYW5fcmVjZWl2ZSwKICAgICAucmVjZWl2ZSA9IHZpcnRpb19uZXRfcmVjZWl2ZSwKZGlmZiAt LWdpdCBhL2h3L25ldC92bXhuZXQzLmMgYi9ody9uZXQvdm14bmV0My5jCmluZGV4IDkyMjM2ZDMu LmYyYzk1NmIgMTAwNjQ0Ci0tLSBhL2h3L25ldC92bXhuZXQzLmMKKysrIGIvaHcvbmV0L3ZteG5l dDMuYwpAQCAtMjA4OSw3ICsyMDg5LDcgQEAgc3RhdGljIHZvaWQgdm14bmV0M19zZXRfbGlua19z dGF0dXMoTmV0Q2xpZW50U3RhdGUgKm5jKQogfQoKIHN0YXRpYyBOZXRDbGllbnRJbmZvIG5ldF92 bXhuZXQzX2luZm8gPSB7Ci0gICAgICAgIC50eXBlID0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRf TklDLAorICAgICAgICAudHlwZSA9IE5FVF9DTElFTlRfRFJJVkVSX05JQywKICAgICAgICAgLnNp emUgPSBzaXplb2YoTklDU3RhdGUpLAogICAgICAgICAucmVjZWl2ZSA9IHZteG5ldDNfcmVjZWl2 ZSwKICAgICAgICAgLmxpbmtfc3RhdHVzX2NoYW5nZWQgPSB2bXhuZXQzX3NldF9saW5rX3N0YXR1 cywKZGlmZiAtLWdpdCBhL2h3L25ldC94ZW5fbmljLmMgYi9ody9uZXQveGVuX25pYy5jCmluZGV4 IDBiNGRkYWUuLjY4NTZiNTIgMTAwNjQ0Ci0tLSBhL2h3L25ldC94ZW5fbmljLmMKKysrIGIvaHcv bmV0L3hlbl9uaWMuYwpAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBzc2l6ZV90IG5ldF9yeF9w YWNrZXQoTmV0Q2xpZW50U3RhdGUgKm5jLCBjb25zdCB1aW50OF90ICpidWYsIHNpemVfdCBzaXpl CiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tICovCgogc3RhdGljIE5ldENsaWVudEluZm8gbmV0X3hlbl9pbmZvID0gewotICAg IC50eXBlID0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfTklDLAorICAgIC50eXBlID0gTkVUX0NM SUVOVF9EUklWRVJfTklDLAogICAgIC5zaXplID0gc2l6ZW9mKE5JQ1N0YXRlKSwKICAgICAucmVj ZWl2ZSA9IG5ldF9yeF9wYWNrZXQsCiB9OwpkaWZmIC0tZ2l0IGEvaHcvbmV0L3hnbWFjLmMgYi9o dy9uZXQveGdtYWMuYwppbmRleCAwYzVmNzkzLi40NmIxYWExIDEwMDY0NAotLS0gYS9ody9uZXQv eGdtYWMuYworKysgYi9ody9uZXQveGdtYWMuYwpAQCAtMzcxLDcgKzM3MSw3IEBAIG91dDoKIH0K CiBzdGF0aWMgTmV0Q2xpZW50SW5mbyBuZXRfeGdtYWNfZW5ldF9pbmZvID0gewotICAgIC50eXBl ID0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfTklDLAorICAgIC50eXBlID0gTkVUX0NMSUVOVF9E UklWRVJfTklDLAogICAgIC5zaXplID0gc2l6ZW9mKE5JQ1N0YXRlKSwKICAgICAucmVjZWl2ZSA9 IGV0aF9yeCwKIH07CmRpZmYgLS1naXQgYS9ody9uZXQveGlsaW54X2F4aWVuZXQuYyBiL2h3L25l dC94aWxpbnhfYXhpZW5ldC5jCmluZGV4IGRlMjNhYjUuLmI2NzAxODQgMTAwNjQ0Ci0tLSBhL2h3 L25ldC94aWxpbnhfYXhpZW5ldC5jCisrKyBiL2h3L25ldC94aWxpbnhfYXhpZW5ldC5jCkBAIC05 MzUsNyArOTM1LDcgQEAgeGlsaW54X2F4aWVuZXRfZGF0YV9zdHJlYW1fcHVzaChTdHJlYW1TbGF2 ZSAqb2JqLCB1aW50OF90ICpidWYsIHNpemVfdCBzaXplKQogfQoKIHN0YXRpYyBOZXRDbGllbnRJ bmZvIG5ldF94aWxpbnhfZW5ldF9pbmZvID0gewotICAgIC50eXBlID0gTkVUX0NMSUVOVF9PUFRJ T05TX0tJTkRfTklDLAorICAgIC50eXBlID0gTkVUX0NMSUVOVF9EUklWRVJfTklDLAogICAgIC5z aXplID0gc2l6ZW9mKE5JQ1N0YXRlKSwKICAgICAucmVjZWl2ZSA9IGV0aF9yeCwKIH07CmRpZmYg LS1naXQgYS9ody9uZXQveGlsaW54X2V0aGxpdGUuYyBiL2h3L25ldC94aWxpbnhfZXRobGl0ZS5j CmluZGV4IGJjODQ2ZTcuLjU0ZGIyYjggMTAwNjQ0Ci0tLSBhL2h3L25ldC94aWxpbnhfZXRobGl0 ZS5jCisrKyBiL2h3L25ldC94aWxpbnhfZXRobGl0ZS5jCkBAIC0yMTcsNyArMjE3LDcgQEAgc3Rh dGljIHZvaWQgeGlsaW54X2V0aGxpdGVfcmVzZXQoRGV2aWNlU3RhdGUgKmRldikKIH0KCiBzdGF0 aWMgTmV0Q2xpZW50SW5mbyBuZXRfeGlsaW54X2V0aGxpdGVfaW5mbyA9IHsKLSAgICAudHlwZSA9 IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX05JQywKKyAgICAudHlwZSA9IE5FVF9DTElFTlRfRFJJ VkVSX05JQywKICAgICAuc2l6ZSA9IHNpemVvZihOSUNTdGF0ZSksCiAgICAgLmNhbl9yZWNlaXZl ID0gZXRoX2Nhbl9yeCwKICAgICAucmVjZWl2ZSA9IGV0aF9yeCwKZGlmZiAtLWdpdCBhL2h3L3Vz Yi9kZXYtbmV0d29yay5jIGIvaHcvdXNiL2Rldi1uZXR3b3JrLmMKaW5kZXggNWMxODE5OC4uM2Nl ZDRiYSAxMDA2NDQKLS0tIGEvaHcvdXNiL2Rldi1uZXR3b3JrLmMKKysrIGIvaHcvdXNiL2Rldi1u ZXR3b3JrLmMKQEAgLTEzMzQsNyArMTMzNCw3IEBAIHN0YXRpYyB2b2lkIHVzYl9uZXRfaGFuZGxl X2Rlc3Ryb3koVVNCRGV2aWNlICpkZXYpCiB9Cgogc3RhdGljIE5ldENsaWVudEluZm8gbmV0X3Vz Ym5ldF9pbmZvID0gewotICAgIC50eXBlID0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfTklDLAor ICAgIC50eXBlID0gTkVUX0NMSUVOVF9EUklWRVJfTklDLAogICAgIC5zaXplID0gc2l6ZW9mKE5J Q1N0YXRlKSwKICAgICAucmVjZWl2ZSA9IHVzYm5ldF9yZWNlaXZlLAogICAgIC5jbGVhbnVwID0g dXNibmV0X2NsZWFudXAsCmRpZmYgLS1naXQgYS9tb25pdG9yLmMgYi9tb25pdG9yLmMKaW5kZXgg ZWQwOWNkYy4uOTQ5OGFjZCAxMDA2NDQKLS0tIGEvbW9uaXRvci5jCisrKyBiL21vbml0b3IuYwpA QCAtMzA1NSw4ICszMDU1LDggQEAgdm9pZCBuZXRkZXZfYWRkX2NvbXBsZXRpb24oUmVhZExpbmVT dGF0ZSAqcnMsIGludCBuYl9hcmdzLCBjb25zdCBjaGFyICpzdHIpCiAgICAgfQogICAgIGxlbiA9 IHN0cmxlbihzdHIpOwogICAgIHJlYWRsaW5lX3NldF9jb21wbGV0aW9uX2luZGV4KHJzLCBsZW4p OwotICAgIGZvciAoaSA9IDA7IE5ldENsaWVudE9wdGlvbnNLaW5kX2xvb2t1cFtpXTsgaSsrKSB7 Ci0gICAgICAgIGFkZF9jb21wbGV0aW9uX29wdGlvbihycywgc3RyLCBOZXRDbGllbnRPcHRpb25z S2luZF9sb29rdXBbaV0pOworICAgIGZvciAoaSA9IDA7IE5ldENsaWVudERyaXZlcl9sb29rdXBb aV07IGkrKykgeworICAgICAgICBhZGRfY29tcGxldGlvbl9vcHRpb24ocnMsIHN0ciwgTmV0Q2xp ZW50RHJpdmVyX2xvb2t1cFtpXSk7CiAgICAgfQogfQoKQEAgLTMyNTYsNyArMzI1Niw3IEBAIHZv aWQgc2V0X2xpbmtfY29tcGxldGlvbihSZWFkTGluZVN0YXRlICpycywgaW50IG5iX2FyZ3MsIGNv bnN0IGNoYXIgKnN0cikKICAgICAgICAgTmV0Q2xpZW50U3RhdGUgKm5jc1tNQVhfUVVFVUVfTlVN XTsKICAgICAgICAgaW50IGNvdW50LCBpOwogICAgICAgICBjb3VudCA9IHFlbXVfZmluZF9uZXRf Y2xpZW50c19leGNlcHQoTlVMTCwgbmNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfTk9ORSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVF9DTElFTlRfRFJJVkVSX05PTkUs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQVhfUVVFVUVf TlVNKTsKICAgICAgICAgZm9yIChpID0gMDsgaSA8IE1JTihjb3VudCwgTUFYX1FVRVVFX05VTSk7 IGkrKykgewogICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IG5jc1tpXS0+bmFtZTsKQEAg LTMyODEsNyArMzI4MSw3IEBAIHZvaWQgbmV0ZGV2X2RlbF9jb21wbGV0aW9uKFJlYWRMaW5lU3Rh dGUgKnJzLCBpbnQgbmJfYXJncywgY29uc3QgY2hhciAqc3RyKQoKICAgICBsZW4gPSBzdHJsZW4o c3RyKTsKICAgICByZWFkbGluZV9zZXRfY29tcGxldGlvbl9pbmRleChycywgbGVuKTsKLSAgICBj b3VudCA9IHFlbXVfZmluZF9uZXRfY2xpZW50c19leGNlcHQoTlVMTCwgbmNzLCBORVRfQ0xJRU5U X09QVElPTlNfS0lORF9OSUMsCisgICAgY291bnQgPSBxZW11X2ZpbmRfbmV0X2NsaWVudHNfZXhj ZXB0KE5VTEwsIG5jcywgTkVUX0NMSUVOVF9EUklWRVJfTklDLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBNQVhfUVVFVUVfTlVNKTsKICAgICBmb3IgKGkgPSAwOyBp IDwgTUlOKGNvdW50LCBNQVhfUVVFVUVfTlVNKTsgaSsrKSB7CiAgICAgICAgIFFlbXVPcHRzICpv cHRzOwpAQCAtMzM5Myw3ICszMzkzLDcgQEAgdm9pZCBob3N0X25ldF9yZW1vdmVfY29tcGxldGlv bihSZWFkTGluZVN0YXRlICpycywgaW50IG5iX2FyZ3MsIGNvbnN0IGNoYXIgKnN0cikKICAgICBy ZWFkbGluZV9zZXRfY29tcGxldGlvbl9pbmRleChycywgbGVuKTsKICAgICBpZiAobmJfYXJncyA9 PSAyKSB7CiAgICAgICAgIGNvdW50ID0gcWVtdV9maW5kX25ldF9jbGllbnRzX2V4Y2VwdChOVUxM LCBuY3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRf Q0xJRU5UX09QVElPTlNfS0lORF9OT05FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTkVUX0NMSUVOVF9EUklWRVJfTk9ORSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BWF9RVUVVRV9OVU0pOwogICAgICAgICBmb3Ig KGkgPSAwOyBpIDwgTUlOKGNvdW50LCBNQVhfUVVFVUVfTlVNKTsgaSsrKSB7CiAgICAgICAgICAg ICBpbnQgaWQ7CkBAIC0zNDEwLDEzICszNDEwLDEzIEBAIHZvaWQgaG9zdF9uZXRfcmVtb3ZlX2Nv bXBsZXRpb24oUmVhZExpbmVTdGF0ZSAqcnMsIGludCBuYl9hcmdzLCBjb25zdCBjaGFyICpzdHIp CiAgICAgICAgIHJldHVybjsKICAgICB9IGVsc2UgaWYgKG5iX2FyZ3MgPT0gMykgewogICAgICAg ICBjb3VudCA9IHFlbXVfZmluZF9uZXRfY2xpZW50c19leGNlcHQoTlVMTCwgbmNzLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUX0NMSUVOVF9PUFRJT05T X0tJTkRfTklDLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TkVUX0NMSUVOVF9EUklWRVJfTklDLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTUFYX1FVRVVFX05VTSk7CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBNSU4o Y291bnQsIE1BWF9RVUVVRV9OVU0pOyBpKyspIHsKICAgICAgICAgICAgIGludCBpZDsKICAgICAg ICAgICAgIGNvbnN0IGNoYXIgKm5hbWU7CgotICAgICAgICAgICAgaWYgKG5jc1tpXS0+aW5mby0+ dHlwZSA9PSBORVRfQ0xJRU5UX09QVElPTlNfS0lORF9IVUJQT1JUIHx8CisgICAgICAgICAgICBp ZiAobmNzW2ldLT5pbmZvLT50eXBlID09IE5FVF9DTElFTlRfRFJJVkVSX0hVQlBPUlQgfHwKICAg ICAgICAgICAgICAgICBuZXRfaHViX2lkX2Zvcl9jbGllbnQobmNzW2ldLCAmaWQpKSB7CiAgICAg ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9uZXQvZHVt cC5jIGIvbmV0L2R1bXAuYwppbmRleCBmOGE1MDBmLi44OWExNDliIDEwMDY0NAotLS0gYS9uZXQv ZHVtcC5jCisrKyBiL25ldC9kdW1wLmMKQEAgLTE3Miw3ICsxNzIsNyBAQCBzdGF0aWMgdm9pZCBk dW1wY2xpZW50X2NsZWFudXAoTmV0Q2xpZW50U3RhdGUgKm5jKQogfQoKIHN0YXRpYyBOZXRDbGll bnRJbmZvIG5ldF9kdW1wX2luZm8gPSB7Ci0gICAgLnR5cGUgPSBORVRfQ0xJRU5UX09QVElPTlNf S0lORF9EVU1QLAorICAgIC50eXBlID0gTkVUX0NMSUVOVF9EUklWRVJfRFVNUCwKICAgICAuc2l6 ZSA9IHNpemVvZihEdW1wTmV0Q2xpZW50KSwKICAgICAucmVjZWl2ZSA9IGR1bXBjbGllbnRfcmVj ZWl2ZSwKICAgICAucmVjZWl2ZV9pb3YgPSBkdW1wY2xpZW50X3JlY2VpdmVfaW92LApAQCAtMTg5 LDggKzE4OSw4IEBAIGludCBuZXRfaW5pdF9kdW1wKGNvbnN0IE5ldGRldiAqbmV0ZGV2LCBjb25z dCBjaGFyICpuYW1lLAogICAgIE5ldENsaWVudFN0YXRlICpuYzsKICAgICBEdW1wTmV0Q2xpZW50 ICpkbmM7CgotICAgIGFzc2VydChuZXRkZXYtPm9wdHMtPnR5cGUgPT0gTkVUX0NMSUVOVF9PUFRJ T05TX0tJTkRfRFVNUCk7Ci0gICAgZHVtcCA9IG5ldGRldi0+b3B0cy0+dS5kdW1wLmRhdGE7Cisg ICAgYXNzZXJ0KG5ldGRldi0+dHlwZSA9PSBORVRfQ0xJRU5UX0RSSVZFUl9EVU1QKTsKKyAgICBk dW1wID0gJm5ldGRldi0+dS5kdW1wOwoKICAgICBhc3NlcnQocGVlcik7CgpkaWZmIC0tZ2l0IGEv bmV0L2ZpbHRlci5jIGIvbmV0L2ZpbHRlci5jCmluZGV4IDhhYzc5ZjMuLjg4OGZlNmQgMTAwNjQ0 Ci0tLSBhL25ldC9maWx0ZXIuYworKysgYi9uZXQvZmlsdGVyLmMKQEAgLTIwMSw3ICsyMDEsNyBA QCBzdGF0aWMgdm9pZCBuZXRmaWx0ZXJfY29tcGxldGUoVXNlckNyZWF0YWJsZSAqdWMsIEVycm9y ICoqZXJycCkKICAgICB9CgogICAgIHF1ZXVlcyA9IHFlbXVfZmluZF9uZXRfY2xpZW50c19leGNl cHQobmYtPm5ldGRldl9pZCwgbmNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfTklDLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTkVUX0NMSUVOVF9EUklWRVJfTklDLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFYX1FVRVVFX05VTSk7CiAgICAgaWYg KHF1ZXVlcyA8IDEpIHsKICAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCBRRVJSX0lOVkFMSURfUEFS QU1FVEVSX1ZBTFVFLCAibmV0ZGV2IiwKZGlmZiAtLWdpdCBhL25ldC9odWIuYyBiL25ldC9odWIu YwppbmRleCBlYzQ2MjZmLi4zMmQ4Y2Y1IDEwMDY0NAotLS0gYS9uZXQvaHViLmMKKysrIGIvbmV0 L2h1Yi5jCkBAIC0xMzEsNyArMTMxLDcgQEAgc3RhdGljIHZvaWQgbmV0X2h1Yl9wb3J0X2NsZWFu dXAoTmV0Q2xpZW50U3RhdGUgKm5jKQogfQoKIHN0YXRpYyBOZXRDbGllbnRJbmZvIG5ldF9odWJf cG9ydF9pbmZvID0gewotICAgIC50eXBlID0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfSFVCUE9S VCwKKyAgICAudHlwZSA9IE5FVF9DTElFTlRfRFJJVkVSX0hVQlBPUlQsCiAgICAgLnNpemUgPSBz aXplb2YoTmV0SHViUG9ydCksCiAgICAgLmNhbl9yZWNlaXZlID0gbmV0X2h1Yl9wb3J0X2Nhbl9y ZWNlaXZlLAogICAgIC5yZWNlaXZlID0gbmV0X2h1Yl9wb3J0X3JlY2VpdmUsCkBAIC0yNjYsMTAg KzI2NiwxMCBAQCBpbnQgbmV0X2h1Yl9pZF9mb3JfY2xpZW50KE5ldENsaWVudFN0YXRlICpuYywg aW50ICppZCkKIHsKICAgICBOZXRIdWJQb3J0ICpwb3J0OwoKLSAgICBpZiAobmMtPmluZm8tPnR5 cGUgPT0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfSFVCUE9SVCkgeworICAgIGlmIChuYy0+aW5m by0+dHlwZSA9PSBORVRfQ0xJRU5UX0RSSVZFUl9IVUJQT1JUKSB7CiAgICAgICAgIHBvcnQgPSBE T19VUENBU1QoTmV0SHViUG9ydCwgbmMsIG5jKTsKICAgICB9IGVsc2UgaWYgKG5jLT5wZWVyICE9 IE5VTEwgJiYgbmMtPnBlZXItPmluZm8tPnR5cGUgPT0KLSAgICAgICAgICAgIE5FVF9DTElFTlRf T1BUSU9OU19LSU5EX0hVQlBPUlQpIHsKKyAgICAgICAgICAgIE5FVF9DTElFTlRfRFJJVkVSX0hV QlBPUlQpIHsKICAgICAgICAgcG9ydCA9IERPX1VQQ0FTVChOZXRIdWJQb3J0LCBuYywgbmMtPnBl ZXIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHJldHVybiAtRU5PRU5UOwpAQCAtMjg2LDkgKzI4 Niw5IEBAIGludCBuZXRfaW5pdF9odWJwb3J0KGNvbnN0IE5ldGRldiAqbmV0ZGV2LCBjb25zdCBj aGFyICpuYW1lLAogewogICAgIGNvbnN0IE5ldGRldkh1YlBvcnRPcHRpb25zICpodWJwb3J0OwoK LSAgICBhc3NlcnQobmV0ZGV2LT5vcHRzLT50eXBlID09IE5FVF9DTElFTlRfT1BUSU9OU19LSU5E X0hVQlBPUlQpOworICAgIGFzc2VydChuZXRkZXYtPnR5cGUgPT0gTkVUX0NMSUVOVF9EUklWRVJf SFVCUE9SVCk7CiAgICAgYXNzZXJ0KCFwZWVyKTsKLSAgICBodWJwb3J0ID0gbmV0ZGV2LT5vcHRz LT51Lmh1YnBvcnQuZGF0YTsKKyAgICBodWJwb3J0ID0gJm5ldGRldi0+dS5odWJwb3J0OwoKICAg ICBuZXRfaHViX2FkZF9wb3J0KGh1YnBvcnQtPmh1YmlkLCBuYW1lKTsKICAgICByZXR1cm4gMDsK QEAgLTMxNSwxNCArMzE1LDE0IEBAIHZvaWQgbmV0X2h1Yl9jaGVja19jbGllbnRzKHZvaWQpCiAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgc3dpdGNoIChwZWVyLT5pbmZvLT50eXBlKSB7Ci0g ICAgICAgICAgICBjYXNlIE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX05JQzoKKyAgICAgICAgICAg IGNhc2UgTkVUX0NMSUVOVF9EUklWRVJfTklDOgogICAgICAgICAgICAgICAgIGhhc19uaWMgPSAx OwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBORVRfQ0xJRU5UX09Q VElPTlNfS0lORF9VU0VSOgotICAgICAgICAgICAgY2FzZSBORVRfQ0xJRU5UX09QVElPTlNfS0lO RF9UQVA6Ci0gICAgICAgICAgICBjYXNlIE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX1NPQ0tFVDoK LSAgICAgICAgICAgIGNhc2UgTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfVkRFOgotICAgICAgICAg ICAgY2FzZSBORVRfQ0xJRU5UX09QVElPTlNfS0lORF9WSE9TVF9VU0VSOgorICAgICAgICAgICAg Y2FzZSBORVRfQ0xJRU5UX0RSSVZFUl9VU0VSOgorICAgICAgICAgICAgY2FzZSBORVRfQ0xJRU5U X0RSSVZFUl9UQVA6CisgICAgICAgICAgICBjYXNlIE5FVF9DTElFTlRfRFJJVkVSX1NPQ0tFVDoK KyAgICAgICAgICAgIGNhc2UgTkVUX0NMSUVOVF9EUklWRVJfVkRFOgorICAgICAgICAgICAgY2Fz ZSBORVRfQ0xJRU5UX0RSSVZFUl9WSE9TVF9VU0VSOgogICAgICAgICAgICAgICAgIGhhc19ob3N0 X2RldiA9IDE7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0Ogpk aWZmIC0tZ2l0IGEvbmV0L2wydHB2My5jIGIvbmV0L2wydHB2My5jCmluZGV4IGRmMDJmNWIuLjY3 NDViNzggMTAwNjQ0Ci0tLSBhL25ldC9sMnRwdjMuYworKysgYi9uZXQvbDJ0cHYzLmMKQEAgLTUx Niw3ICs1MTYsNyBAQCBzdGF0aWMgdm9pZCBuZXRfbDJ0cHYzX2NsZWFudXAoTmV0Q2xpZW50U3Rh dGUgKm5jKQogfQoKIHN0YXRpYyBOZXRDbGllbnRJbmZvIG5ldF9sMnRwdjNfaW5mbyA9IHsKLSAg ICAudHlwZSA9IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX0wyVFBWMywKKyAgICAudHlwZSA9IE5F VF9DTElFTlRfRFJJVkVSX0wyVFBWMywKICAgICAuc2l6ZSA9IHNpemVvZihOZXRMMlRQVjNTdGF0 ZSksCiAgICAgLnJlY2VpdmUgPSBuZXRfbDJ0cHYzX3JlY2VpdmVfZGdyYW0sCiAgICAgLnJlY2Vp dmVfaW92ID0gbmV0X2wydHB2M19yZWNlaXZlX2RncmFtX2lvdiwKQEAgLTU0NSw4ICs1NDUsOCBA QCBpbnQgbmV0X2luaXRfbDJ0cHYzKGNvbnN0IE5ldGRldiAqbmV0ZGV2LAogICAgIHMtPnF1ZXVl X3RhaWwgPSAwOwogICAgIHMtPmhlYWRlcl9taXNtYXRjaCA9IGZhbHNlOwoKLSAgICBhc3NlcnQo bmV0ZGV2LT5vcHRzLT50eXBlID09IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX0wyVFBWMyk7Ci0g ICAgbDJ0cHYzID0gbmV0ZGV2LT5vcHRzLT51LmwydHB2My5kYXRhOworICAgIGFzc2VydChuZXRk ZXYtPnR5cGUgPT0gTkVUX0NMSUVOVF9EUklWRVJfTDJUUFYzKTsKKyAgICBsMnRwdjMgPSAmbmV0 ZGV2LT51LmwydHB2MzsKCiAgICAgaWYgKGwydHB2My0+aGFzX2lwdjYgJiYgbDJ0cHYzLT5pcHY2 KSB7CiAgICAgICAgIHMtPmlwdjYgPSBsMnRwdjMtPmlwdjY7CmRpZmYgLS1naXQgYS9uZXQvbmV0 LmMgYi9uZXQvbmV0LmMKaW5kZXggZDgwZmQ4Mi4uNGE3ZjM5MiAxMDA2NDQKLS0tIGEvbmV0L25l dC5jCisrKyBiL25ldC9uZXQuYwpAQCAtMjg5LDcgKzI4OSw3IEBAIE5JQ1N0YXRlICpxZW11X25l d19uaWMoTmV0Q2xpZW50SW5mbyAqaW5mbywKICAgICBOSUNTdGF0ZSAqbmljOwogICAgIGludCBp LCBxdWV1ZXMgPSBNQVgoMSwgY29uZi0+cGVlcnMucXVldWVzKTsKCi0gICAgYXNzZXJ0KGluZm8t PnR5cGUgPT0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfTklDKTsKKyAgICBhc3NlcnQoaW5mby0+ dHlwZSA9PSBORVRfQ0xJRU5UX0RSSVZFUl9OSUMpOwogICAgIGFzc2VydChpbmZvLT5zaXplID49 IHNpemVvZihOSUNTdGF0ZSkpOwoKICAgICBuaWMgPSBnX21hbGxvYzAoaW5mby0+c2l6ZSArIHNp emVvZihOZXRDbGllbnRTdGF0ZSkgKiBxdWV1ZXMpOwpAQCAtMzYwLDEzICszNjAsMTMgQEAgdm9p ZCBxZW11X2RlbF9uZXRfY2xpZW50KE5ldENsaWVudFN0YXRlICpuYykKICAgICBpbnQgcXVldWVz LCBpOwogICAgIE5ldEZpbHRlclN0YXRlICpuZiwgKm5leHQ7CgotICAgIGFzc2VydChuYy0+aW5m by0+dHlwZSAhPSBORVRfQ0xJRU5UX09QVElPTlNfS0lORF9OSUMpOworICAgIGFzc2VydChuYy0+ aW5mby0+dHlwZSAhPSBORVRfQ0xJRU5UX0RSSVZFUl9OSUMpOwoKICAgICAvKiBJZiB0aGUgTmV0 Q2xpZW50U3RhdGUgYmVsb25ncyB0byBhIG11bHRpcXVldWUgYmFja2VuZCwgd2Ugd2lsbCBjaGFu Z2UgYWxsCiAgICAgICogb3RoZXIgTmV0Q2xpZW50U3RhdGVzIGFsc28uCiAgICAgICovCiAgICAg cXVldWVzID0gcWVtdV9maW5kX25ldF9jbGllbnRzX2V4Y2VwdChuYy0+bmFtZSwgbmNzLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUX0NMSUVOVF9PUFRJT05T X0tJTkRfTklDLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVU X0NMSUVOVF9EUklWRVJfTklDLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTUFYX1FVRVVFX05VTSk7CiAgICAgYXNzZXJ0KHF1ZXVlcyAhPSAwKTsKCkBAIC0zNzUs NyArMzc1LDcgQEAgdm9pZCBxZW11X2RlbF9uZXRfY2xpZW50KE5ldENsaWVudFN0YXRlICpuYykK ICAgICB9CgogICAgIC8qIElmIHRoZXJlIGlzIGEgcGVlciBOSUMsIGRlbGV0ZSBhbmQgY2xlYW51 cCBjbGllbnQsIGJ1dCBkbyBub3QgZnJlZS4gKi8KLSAgICBpZiAobmMtPnBlZXIgJiYgbmMtPnBl ZXItPmluZm8tPnR5cGUgPT0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfTklDKSB7CisgICAgaWYg KG5jLT5wZWVyICYmIG5jLT5wZWVyLT5pbmZvLT50eXBlID09IE5FVF9DTElFTlRfRFJJVkVSX05J QykgewogICAgICAgICBOSUNTdGF0ZSAqbmljID0gcWVtdV9nZXRfbmljKG5jLT5wZWVyKTsKICAg ICAgICAgaWYgKG5pYy0+cGVlcl9kZWxldGVkKSB7CiAgICAgICAgICAgICByZXR1cm47CkBAIC00 MzEsNyArNDMxLDcgQEAgdm9pZCBxZW11X2ZvcmVhY2hfbmljKHFlbXVfbmljX2ZvcmVhY2ggZnVu Yywgdm9pZCAqb3BhcXVlKQogICAgIE5ldENsaWVudFN0YXRlICpuYzsKCiAgICAgUVRBSUxRX0ZP UkVBQ0gobmMsICZuZXRfY2xpZW50cywgbmV4dCkgewotICAgICAgICBpZiAobmMtPmluZm8tPnR5 cGUgPT0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfTklDKSB7CisgICAgICAgIGlmIChuYy0+aW5m by0+dHlwZSA9PSBORVRfQ0xJRU5UX0RSSVZFUl9OSUMpIHsKICAgICAgICAgICAgIGlmIChuYy0+ cXVldWVfaW5kZXggPT0gMCkgewogICAgICAgICAgICAgICAgIGZ1bmMocWVtdV9nZXRfbmljKG5j KSwgb3BhcXVlKTsKICAgICAgICAgICAgIH0KQEAgLTYwMyw3ICs2MDMsNyBAQCB2b2lkIHFlbXVf Zmx1c2hfb3JfcHVyZ2VfcXVldWVkX3BhY2tldHMoTmV0Q2xpZW50U3RhdGUgKm5jLCBib29sIHB1 cmdlKQogewogICAgIG5jLT5yZWNlaXZlX2Rpc2FibGVkID0gMDsKCi0gICAgaWYgKG5jLT5wZWVy ICYmIG5jLT5wZWVyLT5pbmZvLT50eXBlID09IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX0hVQlBP UlQpIHsKKyAgICBpZiAobmMtPnBlZXIgJiYgbmMtPnBlZXItPmluZm8tPnR5cGUgPT0gTkVUX0NM SUVOVF9EUklWRVJfSFVCUE9SVCkgewogICAgICAgICBpZiAobmV0X2h1Yl9mbHVzaChuYy0+cGVl cikpIHsKICAgICAgICAgICAgIHFlbXVfbm90aWZ5X2V2ZW50KCk7CiAgICAgICAgIH0KQEAgLTc3 Nyw3ICs3NzcsNyBAQCBOZXRDbGllbnRTdGF0ZSAqcWVtdV9maW5kX25ldGRldihjb25zdCBjaGFy ICppZCkKICAgICBOZXRDbGllbnRTdGF0ZSAqbmM7CgogICAgIFFUQUlMUV9GT1JFQUNIKG5jLCAm bmV0X2NsaWVudHMsIG5leHQpIHsKLSAgICAgICAgaWYgKG5jLT5pbmZvLT50eXBlID09IE5FVF9D TElFTlRfT1BUSU9OU19LSU5EX05JQykKKyAgICAgICAgaWYgKG5jLT5pbmZvLT50eXBlID09IE5F VF9DTElFTlRfRFJJVkVSX05JQykKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAo IXN0cmNtcChuYy0+bmFtZSwgaWQpKSB7CiAgICAgICAgICAgICByZXR1cm4gbmM7CkBAIC03ODgs NyArNzg4LDcgQEAgTmV0Q2xpZW50U3RhdGUgKnFlbXVfZmluZF9uZXRkZXYoY29uc3QgY2hhciAq aWQpCiB9CgogaW50IHFlbXVfZmluZF9uZXRfY2xpZW50c19leGNlcHQoY29uc3QgY2hhciAqaWQs IE5ldENsaWVudFN0YXRlICoqbmNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TmV0Q2xpZW50T3B0aW9uc0tpbmQgdHlwZSwgaW50IG1heCkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5ldENsaWVudERyaXZlciB0eXBlLCBpbnQgbWF4KQogewogICAgIE5ldENs aWVudFN0YXRlICpuYzsKICAgICBpbnQgcmV0ID0gMDsKQEAgLTg2OSw4ICs4NjksOCBAQCBzdGF0 aWMgaW50IG5ldF9pbml0X25pYyhjb25zdCBOZXRkZXYgKm5ldGRldiwgY29uc3QgY2hhciAqbmFt ZSwKICAgICBOSUNJbmZvICpuZDsKICAgICBjb25zdCBOZXRMZWdhY3lOaWNPcHRpb25zICpuaWM7 CgotICAgIGFzc2VydChuZXRkZXYtPm9wdHMtPnR5cGUgPT0gTkVUX0NMSUVOVF9PUFRJT05TX0tJ TkRfTklDKTsKLSAgICBuaWMgPSBuZXRkZXYtPm9wdHMtPnUubmljLmRhdGE7CisgICAgYXNzZXJ0 KG5ldGRldi0+dHlwZSA9PSBORVRfQ0xJRU5UX0RSSVZFUl9OSUMpOworICAgIG5pYyA9ICZuZXRk ZXYtPnUubmljOwoKICAgICBpZHggPSBuaWNfZ2V0X2ZyZWVfaWR4KCk7CiAgICAgaWYgKGlkeCA9 PSAtMSB8fCBuYl9uaWNzID49IE1BWF9OSUNTKSB7CkBAIC05MzAsMzkgKzkzMCwzOCBAQCBzdGF0 aWMgaW50IG5ldF9pbml0X25pYyhjb25zdCBOZXRkZXYgKm5ldGRldiwgY29uc3QgY2hhciAqbmFt ZSwKIH0KCgotc3RhdGljIGludCAoKiBjb25zdCBuZXRfY2xpZW50X2luaXRfZnVuW05FVF9DTElF TlRfT1BUSU9OU19LSU5EX19NQVhdKSgKK3N0YXRpYyBpbnQgKCogY29uc3QgbmV0X2NsaWVudF9p bml0X2Z1bltORVRfQ0xJRU5UX0RSSVZFUl9fTUFYXSkoCiAgICAgY29uc3QgTmV0ZGV2ICpuZXRk ZXYsCiAgICAgY29uc3QgY2hhciAqbmFtZSwKICAgICBOZXRDbGllbnRTdGF0ZSAqcGVlciwgRXJy b3IgKiplcnJwKSA9IHsKLSAgICAgICAgW05FVF9DTElFTlRfT1BUSU9OU19LSU5EX05JQ10gICAg ICAgPSBuZXRfaW5pdF9uaWMsCisgICAgICAgIFtORVRfQ0xJRU5UX0RSSVZFUl9OSUNdICAgICAg ID0gbmV0X2luaXRfbmljLAogI2lmZGVmIENPTkZJR19TTElSUAotICAgICAgICBbTkVUX0NMSUVO VF9PUFRJT05TX0tJTkRfVVNFUl0gICAgICA9IG5ldF9pbml0X3NsaXJwLAorICAgICAgICBbTkVU X0NMSUVOVF9EUklWRVJfVVNFUl0gICAgICA9IG5ldF9pbml0X3NsaXJwLAogI2VuZGlmCi0gICAg ICAgIFtORVRfQ0xJRU5UX09QVElPTlNfS0lORF9UQVBdICAgICAgID0gbmV0X2luaXRfdGFwLAot ICAgICAgICBbTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfU09DS0VUXSAgICA9IG5ldF9pbml0X3Nv Y2tldCwKKyAgICAgICAgW05FVF9DTElFTlRfRFJJVkVSX1RBUF0gICAgICAgPSBuZXRfaW5pdF90 YXAsCisgICAgICAgIFtORVRfQ0xJRU5UX0RSSVZFUl9TT0NLRVRdICAgID0gbmV0X2luaXRfc29j a2V0LAogI2lmZGVmIENPTkZJR19WREUKLSAgICAgICAgW05FVF9DTElFTlRfT1BUSU9OU19LSU5E X1ZERV0gICAgICAgPSBuZXRfaW5pdF92ZGUsCisgICAgICAgIFtORVRfQ0xJRU5UX0RSSVZFUl9W REVdICAgICAgID0gbmV0X2luaXRfdmRlLAogI2VuZGlmCiAjaWZkZWYgQ09ORklHX05FVE1BUAot ICAgICAgICBbTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfTkVUTUFQXSAgICA9IG5ldF9pbml0X25l dG1hcCwKKyAgICAgICAgW05FVF9DTElFTlRfRFJJVkVSX05FVE1BUF0gICAgPSBuZXRfaW5pdF9u ZXRtYXAsCiAjZW5kaWYKLSAgICAgICAgW05FVF9DTElFTlRfT1BUSU9OU19LSU5EX0RVTVBdICAg ICAgPSBuZXRfaW5pdF9kdW1wLAorICAgICAgICBbTkVUX0NMSUVOVF9EUklWRVJfRFVNUF0gICAg ICA9IG5ldF9pbml0X2R1bXAsCiAjaWZkZWYgQ09ORklHX05FVF9CUklER0UKLSAgICAgICAgW05F VF9DTElFTlRfT1BUSU9OU19LSU5EX0JSSURHRV0gICAgPSBuZXRfaW5pdF9icmlkZ2UsCisgICAg ICAgIFtORVRfQ0xJRU5UX0RSSVZFUl9CUklER0VdICAgID0gbmV0X2luaXRfYnJpZGdlLAogI2Vu ZGlmCi0gICAgICAgIFtORVRfQ0xJRU5UX09QVElPTlNfS0lORF9IVUJQT1JUXSAgID0gbmV0X2lu aXRfaHVicG9ydCwKKyAgICAgICAgW05FVF9DTElFTlRfRFJJVkVSX0hVQlBPUlRdICAgPSBuZXRf aW5pdF9odWJwb3J0LAogI2lmZGVmIENPTkZJR19WSE9TVF9ORVRfVVNFRAotICAgICAgICBbTkVU X0NMSUVOVF9PUFRJT05TX0tJTkRfVkhPU1RfVVNFUl0gPSBuZXRfaW5pdF92aG9zdF91c2VyLAor ICAgICAgICBbTkVUX0NMSUVOVF9EUklWRVJfVkhPU1RfVVNFUl0gPSBuZXRfaW5pdF92aG9zdF91 c2VyLAogI2VuZGlmCiAjaWZkZWYgQ09ORklHX0wyVFBWMwotICAgICAgICBbTkVUX0NMSUVOVF9P UFRJT05TX0tJTkRfTDJUUFYzXSAgICA9IG5ldF9pbml0X2wydHB2MywKKyAgICAgICAgW05FVF9D TElFTlRfRFJJVkVSX0wyVFBWM10gICAgPSBuZXRfaW5pdF9sMnRwdjMsCiAjZW5kaWYKIH07CgoK IHN0YXRpYyBpbnQgbmV0X2NsaWVudF9pbml0MShjb25zdCB2b2lkICpvYmplY3QsIGludCBpc19u ZXRkZXYsIEVycm9yICoqZXJycCkKIHsKLSAgICBjb25zdCBOZXRDbGllbnRPcHRpb25zICpvcHRz OwogICAgIE5ldGRldiBsZWdhY3kgPSB7MH07CiAgICAgY29uc3QgTmV0ZGV2ICpuZXRkZXY7CiAg ICAgY29uc3QgY2hhciAqbmFtZTsKQEAgLTk3MCwzNCArOTY5LDcyIEBAIHN0YXRpYyBpbnQgbmV0 X2NsaWVudF9pbml0MShjb25zdCB2b2lkICpvYmplY3QsIGludCBpc19uZXRkZXYsIEVycm9yICoq ZXJycCkKCiAgICAgaWYgKGlzX25ldGRldikgewogICAgICAgICBuZXRkZXYgPSBvYmplY3Q7Ci0g ICAgICAgIG9wdHMgPSBuZXRkZXYtPm9wdHM7CiAgICAgICAgIG5hbWUgPSBuZXRkZXYtPmlkOwoK LSAgICAgICAgaWYgKG9wdHMtPnR5cGUgPT0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfRFVNUCB8 fAotICAgICAgICAgICAgb3B0cy0+dHlwZSA9PSBORVRfQ0xJRU5UX09QVElPTlNfS0lORF9OSUMg fHwKLSAgICAgICAgICAgICFuZXRfY2xpZW50X2luaXRfZnVuW29wdHMtPnR5cGVdKSB7CisgICAg ICAgIGlmIChuZXRkZXYtPnR5cGUgPT0gTkVUX0NMSUVOVF9EUklWRVJfRFVNUCB8fAorICAgICAg ICAgICAgbmV0ZGV2LT50eXBlID09IE5FVF9DTElFTlRfRFJJVkVSX05JQyB8fAorICAgICAgICAg ICAgIW5ldF9jbGllbnRfaW5pdF9mdW5bbmV0ZGV2LT50eXBlXSkgewogICAgICAgICAgICAgZXJy b3Jfc2V0ZyhlcnJwLCBRRVJSX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFLCAidHlwZSIsCiAgICAg ICAgICAgICAgICAgICAgICAgICJhIG5ldGRldiBiYWNrZW5kIHR5cGUiKTsKICAgICAgICAgICAg IHJldHVybiAtMTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGNvbnN0IE5ldExl Z2FjeSAqbmV0ID0gb2JqZWN0OworICAgICAgICBjb25zdCBOZXRMZWdhY3lPcHRpb25zICpvcHRz ID0gbmV0LT5vcHRzOwogICAgICAgICBsZWdhY3kuaWQgPSBuZXQtPmlkOwotICAgICAgICBvcHRz ID0gbGVnYWN5Lm9wdHMgPSBuZXQtPm9wdHM7CiAgICAgICAgIG5ldGRldiA9ICZsZWdhY3k7CiAg ICAgICAgIC8qIG1pc3Npbmcgb3B0aW9uYWwgdmFsdWVzIGhhdmUgYmVlbiBpbml0aWFsaXplZCB0 byAiYWxsIGJpdHMgemVybyIgKi8KICAgICAgICAgbmFtZSA9IG5ldC0+aGFzX2lkID8gbmV0LT5p ZCA6IG5ldC0+bmFtZTsKCi0gICAgICAgIGlmIChvcHRzLT50eXBlID09IE5FVF9DTElFTlRfT1BU SU9OU19LSU5EX05PTkUpIHsKKyAgICAgICAgLyogTWFwIHRoZSBvbGQgb3B0aW9ucyB0byB0aGUg bmV3IGZsYXQgdHlwZSAqLworICAgICAgICBzd2l0Y2ggKG9wdHMtPnR5cGUpIHsKKyAgICAgICAg Y2FzZSBORVRfTEVHQUNZX09QVElPTlNfS0lORF9OT05FOgogICAgICAgICAgICAgcmV0dXJuIDA7 IC8qIG5vdGhpbmcgdG8gZG8gKi8KLSAgICAgICAgfQotICAgICAgICBpZiAob3B0cy0+dHlwZSA9 PSBORVRfQ0xJRU5UX09QVElPTlNfS0lORF9IVUJQT1JUKSB7Ci0gICAgICAgICAgICBlcnJvcl9z ZXRnKGVycnAsIFFFUlJfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUsICJ0eXBlIiwKLSAgICAgICAg ICAgICAgICAgICAgICAgImEgbmV0IHR5cGUiKTsKLSAgICAgICAgICAgIHJldHVybiAtMTsKKyAg ICAgICAgY2FzZSBORVRfTEVHQUNZX09QVElPTlNfS0lORF9OSUM6CisgICAgICAgICAgICBsZWdh Y3kudHlwZSA9IE5FVF9DTElFTlRfRFJJVkVSX05JQzsKKyAgICAgICAgICAgIGxlZ2FjeS51Lm5p YyA9ICpvcHRzLT51Lm5pYy5kYXRhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug TkVUX0xFR0FDWV9PUFRJT05TX0tJTkRfVVNFUjoKKyAgICAgICAgICAgIGxlZ2FjeS50eXBlID0g TkVUX0NMSUVOVF9EUklWRVJfVVNFUjsKKyAgICAgICAgICAgIGxlZ2FjeS51LnVzZXIgPSAqb3B0 cy0+dS51c2VyLmRhdGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBORVRfTEVH QUNZX09QVElPTlNfS0lORF9UQVA6CisgICAgICAgICAgICBsZWdhY3kudHlwZSA9IE5FVF9DTElF TlRfRFJJVkVSX1RBUDsKKyAgICAgICAgICAgIGxlZ2FjeS51LnRhcCA9ICpvcHRzLT51LnRhcC5k YXRhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTkVUX0xFR0FDWV9PUFRJT05T X0tJTkRfTDJUUFYzOgorICAgICAgICAgICAgbGVnYWN5LnR5cGUgPSBORVRfQ0xJRU5UX0RSSVZF Ul9MMlRQVjM7CisgICAgICAgICAgICBsZWdhY3kudS5sMnRwdjMgPSAqb3B0cy0+dS5sMnRwdjMu ZGF0YTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5FVF9MRUdBQ1lfT1BUSU9O U19LSU5EX1NPQ0tFVDoKKyAgICAgICAgICAgIGxlZ2FjeS50eXBlID0gTkVUX0NMSUVOVF9EUklW RVJfU09DS0VUOworICAgICAgICAgICAgbGVnYWN5LnUuc29ja2V0ID0gKm9wdHMtPnUuc29ja2V0 LmRhdGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBORVRfTEVHQUNZX09QVElP TlNfS0lORF9WREU6CisgICAgICAgICAgICBsZWdhY3kudHlwZSA9IE5FVF9DTElFTlRfRFJJVkVS X1ZERTsKKyAgICAgICAgICAgIGxlZ2FjeS51LnZkZSA9ICpvcHRzLT51LnZkZS5kYXRhOworICAg ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTkVUX0xFR0FDWV9PUFRJT05TX0tJTkRfRFVN UDoKKyAgICAgICAgICAgIGxlZ2FjeS50eXBlID0gTkVUX0NMSUVOVF9EUklWRVJfRFVNUDsKKyAg ICAgICAgICAgIGxlZ2FjeS51LmR1bXAgPSAqb3B0cy0+dS5kdW1wLmRhdGE7CisgICAgICAgICAg ICBicmVhazsKKyAgICAgICAgY2FzZSBORVRfTEVHQUNZX09QVElPTlNfS0lORF9CUklER0U6Cisg ICAgICAgICAgICBsZWdhY3kudHlwZSA9IE5FVF9DTElFTlRfRFJJVkVSX0JSSURHRTsKKyAgICAg ICAgICAgIGxlZ2FjeS51LmJyaWRnZSA9ICpvcHRzLT51LmJyaWRnZS5kYXRhOworICAgICAgICAg ICAgYnJlYWs7CisgICAgICAgIGNhc2UgTkVUX0xFR0FDWV9PUFRJT05TX0tJTkRfTkVUTUFQOgor ICAgICAgICAgICAgbGVnYWN5LnR5cGUgPSBORVRfQ0xJRU5UX0RSSVZFUl9ORVRNQVA7CisgICAg ICAgICAgICBsZWdhY3kudS5uZXRtYXAgPSAqb3B0cy0+dS5uZXRtYXAuZGF0YTsKKyAgICAgICAg ICAgIGJyZWFrOworICAgICAgICBjYXNlIE5FVF9MRUdBQ1lfT1BUSU9OU19LSU5EX1ZIT1NUX1VT RVI6CisgICAgICAgICAgICBsZWdhY3kudHlwZSA9IE5FVF9DTElFTlRfRFJJVkVSX1ZIT1NUX1VT RVI7CisgICAgICAgICAgICBsZWdhY3kudS52aG9zdF91c2VyID0gKm9wdHMtPnUudmhvc3RfdXNl ci5kYXRhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg ICBhYm9ydCgpOwogICAgICAgICB9CgotICAgICAgICBpZiAoIW5ldF9jbGllbnRfaW5pdF9mdW5b b3B0cy0+dHlwZV0pIHsKKyAgICAgICAgaWYgKCFuZXRfY2xpZW50X2luaXRfZnVuW25ldGRldi0+ dHlwZV0pIHsKICAgICAgICAgICAgIGVycm9yX3NldGcoZXJycCwgUUVSUl9JTlZBTElEX1BBUkFN RVRFUl9WQUxVRSwgInR5cGUiLAogICAgICAgICAgICAgICAgICAgICAgICAiYSBuZXQgYmFja2Vu ZCB0eXBlIChtYXliZSBpdCBpcyBub3QgY29tcGlsZWQgIgogICAgICAgICAgICAgICAgICAgICAg ICAiaW50byB0aGlzIGJpbmFyeSkiKTsKQEAgLTEwMDUsMTcgKzEwNDIsMTcgQEAgc3RhdGljIGlu dCBuZXRfY2xpZW50X2luaXQxKGNvbnN0IHZvaWQgKm9iamVjdCwgaW50IGlzX25ldGRldiwgRXJy b3IgKiplcnJwKQogICAgICAgICB9CgogICAgICAgICAvKiBEbyBub3QgYWRkIHRvIGEgdmxhbiBp ZiBpdCdzIGEgbmljIHdpdGggYSBuZXRkZXY9IHBhcmFtZXRlci4gKi8KLSAgICAgICAgaWYgKG9w dHMtPnR5cGUgIT0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfTklDIHx8CisgICAgICAgIGlmIChu ZXRkZXYtPnR5cGUgIT0gTkVUX0NMSUVOVF9EUklWRVJfTklDIHx8CiAgICAgICAgICAgICAhb3B0 cy0+dS5uaWMuZGF0YS0+aGFzX25ldGRldikgewogICAgICAgICAgICAgcGVlciA9IG5ldF9odWJf YWRkX3BvcnQobmV0LT5oYXNfdmxhbiA/IG5ldC0+dmxhbiA6IDAsIE5VTEwpOwogICAgICAgICB9 CiAgICAgfQoKLSAgICBpZiAobmV0X2NsaWVudF9pbml0X2Z1bltvcHRzLT50eXBlXShuZXRkZXYs IG5hbWUsIHBlZXIsIGVycnApIDwgMCkgeworICAgIGlmIChuZXRfY2xpZW50X2luaXRfZnVuW25l dGRldi0+dHlwZV0obmV0ZGV2LCBuYW1lLCBwZWVyLCBlcnJwKSA8IDApIHsKICAgICAgICAgLyog RklYTUUgZHJvcCB3aGVuIGFsbCBpbml0IGZ1bmN0aW9ucyBzdG9yZSBhbiBFcnJvciAqLwogICAg ICAgICBpZiAoZXJycCAmJiAhKmVycnApIHsKICAgICAgICAgICAgIGVycm9yX3NldGcoZXJycCwg UUVSUl9ERVZJQ0VfSU5JVF9GQUlMRUQsCi0gICAgICAgICAgICAgICAgICAgICAgIE5ldENsaWVu dE9wdGlvbnNLaW5kX2xvb2t1cFtvcHRzLT50eXBlXSk7CisgICAgICAgICAgICAgICAgICAgICAg IE5ldENsaWVudERyaXZlcl9sb29rdXBbbmV0ZGV2LT50eXBlXSk7CiAgICAgICAgIH0KICAgICAg ICAgcmV0dXJuIC0xOwogICAgIH0KQEAgLTExMzUsNyArMTE3Miw3IEBAIHZvaWQgaG1wX2hvc3Rf bmV0X3JlbW92ZShNb25pdG9yICptb24sIGNvbnN0IFFEaWN0ICpxZGljdCkKICAgICAgICAgICAg ICAgICAgICAgIGRldmljZSwgdmxhbl9pZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAg aWYgKG5jLT5pbmZvLT50eXBlID09IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX05JQykgeworICAg IGlmIChuYy0+aW5mby0+dHlwZSA9PSBORVRfQ0xJRU5UX0RSSVZFUl9OSUMpIHsKICAgICAgICAg ZXJyb3JfcmVwb3J0KCJpbnZhbGlkIGhvc3QgbmV0d29yayBkZXZpY2UgJyVzJyIsIGRldmljZSk7 CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMjI2LDcgKzEyNjMsNyBAQCB2b2lkIHByaW50 X25ldF9jbGllbnQoTW9uaXRvciAqbW9uLCBOZXRDbGllbnRTdGF0ZSAqbmMpCgogICAgIG1vbml0 b3JfcHJpbnRmKG1vbiwgIiVzOiBpbmRleD0lZCx0eXBlPSVzLCVzXG4iLCBuYy0+bmFtZSwKICAg ICAgICAgICAgICAgICAgICBuYy0+cXVldWVfaW5kZXgsCi0gICAgICAgICAgICAgICAgICAgTmV0 Q2xpZW50T3B0aW9uc0tpbmRfbG9va3VwW25jLT5pbmZvLT50eXBlXSwKKyAgICAgICAgICAgICAg ICAgICBOZXRDbGllbnREcml2ZXJfbG9va3VwW25jLT5pbmZvLT50eXBlXSwKICAgICAgICAgICAg ICAgICAgICBuYy0+aW5mb19zdHIpOwogICAgIGlmICghUVRBSUxRX0VNUFRZKCZuYy0+ZmlsdGVy cykpIHsKICAgICAgICAgbW9uaXRvcl9wcmludGYobW9uLCAiZmlsdGVyczpcbiIpOwpAQCAtMTI1 Niw3ICsxMjkzLDcgQEAgUnhGaWx0ZXJJbmZvTGlzdCAqcW1wX3F1ZXJ5X3J4X2ZpbHRlcihib29s IGhhc19uYW1lLCBjb25zdCBjaGFyICpuYW1lLAogICAgICAgICB9CgogICAgICAgICAvKiBvbmx5 IHF1ZXJ5IHJ4LWZpbHRlciBpbmZvcm1hdGlvbiBvZiBOSUMgKi8KLSAgICAgICAgaWYgKG5jLT5p bmZvLT50eXBlICE9IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX05JQykgeworICAgICAgICBpZiAo bmMtPmluZm8tPnR5cGUgIT0gTkVUX0NMSUVOVF9EUklWRVJfTklDKSB7CiAgICAgICAgICAgICBp ZiAoaGFzX25hbWUpIHsKICAgICAgICAgICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJuZXQgY2xp ZW50KCVzKSBpc24ndCBhIE5JQyIsIG5hbWUpOwogICAgICAgICAgICAgICAgIHJldHVybiBOVUxM OwpAQCAtMTMwMiw3ICsxMzM5LDcgQEAgUnhGaWx0ZXJJbmZvTGlzdCAqcW1wX3F1ZXJ5X3J4X2Zp bHRlcihib29sIGhhc19uYW1lLCBjb25zdCBjaGFyICpuYW1lLAogdm9pZCBobXBfaW5mb19uZXR3 b3JrKE1vbml0b3IgKm1vbiwgY29uc3QgUURpY3QgKnFkaWN0KQogewogICAgIE5ldENsaWVudFN0 YXRlICpuYywgKnBlZXI7Ci0gICAgTmV0Q2xpZW50T3B0aW9uc0tpbmQgdHlwZTsKKyAgICBOZXRD bGllbnREcml2ZXIgdHlwZTsKCiAgICAgbmV0X2h1Yl9pbmZvKG1vbik7CgpAQCAtMTMxNSwxMCAr MTM1MiwxMCBAQCB2b2lkIGhtcF9pbmZvX25ldHdvcmsoTW9uaXRvciAqbW9uLCBjb25zdCBRRGlj dCAqcWRpY3QpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQoKLSAgICAgICAgaWYg KCFwZWVyIHx8IHR5cGUgPT0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfTklDKSB7CisgICAgICAg IGlmICghcGVlciB8fCB0eXBlID09IE5FVF9DTElFTlRfRFJJVkVSX05JQykgewogICAgICAgICAg ICAgcHJpbnRfbmV0X2NsaWVudChtb24sIG5jKTsKICAgICAgICAgfSAvKiBlbHNlIGl0J3MgYSBu ZXRkZXYgY29ubmVjdGVkIHRvIGEgTklDLCBwcmludGVkIHdpdGggdGhlIE5JQyAqLwotICAgICAg ICBpZiAocGVlciAmJiB0eXBlID09IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX05JQykgeworICAg ICAgICBpZiAocGVlciAmJiB0eXBlID09IE5FVF9DTElFTlRfRFJJVkVSX05JQykgewogICAgICAg ICAgICAgbW9uaXRvcl9wcmludGYobW9uLCAiIFxcICIpOwogICAgICAgICAgICAgcHJpbnRfbmV0 X2NsaWVudChtb24sIHBlZXIpOwogICAgICAgICB9CkBAIC0xMzMyLDcgKzEzNjksNyBAQCB2b2lk IHFtcF9zZXRfbGluayhjb25zdCBjaGFyICpuYW1lLCBib29sIHVwLCBFcnJvciAqKmVycnApCiAg ICAgaW50IHF1ZXVlcywgaTsKCiAgICAgcXVldWVzID0gcWVtdV9maW5kX25ldF9jbGllbnRzX2V4 Y2VwdChuYW1lLCBuY3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBORVRfQ0xJRU5UX09QVElPTlNfS0lORF9fTUFYLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTkVUX0NMSUVOVF9EUklWRVJfX01BWCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BWF9RVUVVRV9OVU0pOwoKICAgICBpZiAocXVl dWVzID09IDApIHsKQEAgLTEzNTksNyArMTM5Niw3IEBAIHZvaWQgcW1wX3NldF9saW5rKGNvbnN0 IGNoYXIgKm5hbWUsIGJvb2wgdXAsIEVycm9yICoqZXJycCkKICAgICAgICAgICogbXVsdGlwbGUg Y2xpZW50cyB0aGF0IGNhbiBzdGlsbCBjb21tdW5pY2F0ZSB3aXRoIGVhY2ggb3RoZXIgaW4KICAg ICAgICAgICogZGlzY29ubmVjdGVkIG1vZGUuIEZvciBub3cgbWFpbnRhaW4gdGhpcyBjb21wYXRp YmlsaXR5LgogICAgICAgICAgKi8KLSAgICAgICAgaWYgKG5jLT5wZWVyLT5pbmZvLT50eXBlID09 IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX05JQykgeworICAgICAgICBpZiAobmMtPnBlZXItPmlu Zm8tPnR5cGUgPT0gTkVUX0NMSUVOVF9EUklWRVJfTklDKSB7CiAgICAgICAgICAgICBmb3IgKGkg PSAwOyBpIDwgcXVldWVzOyBpKyspIHsKICAgICAgICAgICAgICAgICBuY3NbaV0tPnBlZXItPmxp bmtfZG93biA9ICF1cDsKICAgICAgICAgICAgIH0KQEAgLTE0MDAsNyArMTQzNyw3IEBAIHZvaWQg bmV0X2NsZWFudXAodm9pZCkKICAgICAgKi8KICAgICB3aGlsZSAoIVFUQUlMUV9FTVBUWSgmbmV0 X2NsaWVudHMpKSB7CiAgICAgICAgIG5jID0gUVRBSUxRX0ZJUlNUKCZuZXRfY2xpZW50cyk7Ci0g ICAgICAgIGlmIChuYy0+aW5mby0+dHlwZSA9PSBORVRfQ0xJRU5UX09QVElPTlNfS0lORF9OSUMp IHsKKyAgICAgICAgaWYgKG5jLT5pbmZvLT50eXBlID09IE5FVF9DTElFTlRfRFJJVkVSX05JQykg ewogICAgICAgICAgICAgcWVtdV9kZWxfbmljKHFlbXVfZ2V0X25pYyhuYykpOwogICAgICAgICB9 IGVsc2UgewogICAgICAgICAgICAgcWVtdV9kZWxfbmV0X2NsaWVudChuYyk7CkBAIC0xNDIwLDcg KzE0NTcsNyBAQCB2b2lkIG5ldF9jaGVja19jbGllbnRzKHZvaWQpCiAgICAgUVRBSUxRX0ZPUkVB Q0gobmMsICZuZXRfY2xpZW50cywgbmV4dCkgewogICAgICAgICBpZiAoIW5jLT5wZWVyKSB7CiAg ICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIldhcm5pbmc6ICVzICVzIGhhcyBubyBwZWVyXG4i LAotICAgICAgICAgICAgICAgICAgICBuYy0+aW5mby0+dHlwZSA9PSBORVRfQ0xJRU5UX09QVElP TlNfS0lORF9OSUMgPworICAgICAgICAgICAgICAgICAgICBuYy0+aW5mby0+dHlwZSA9PSBORVRf Q0xJRU5UX0RSSVZFUl9OSUMgPwogICAgICAgICAgICAgICAgICAgICAibmljIiA6ICJuZXRkZXYi LCBuYy0+bmFtZSk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9uZXQvbmV0bWFwLmMg Yi9uZXQvbmV0bWFwLmMKaW5kZXggYmViOGQyOC4uMmQxMWE4ZiAxMDA2NDQKLS0tIGEvbmV0L25l dG1hcC5jCisrKyBiL25ldC9uZXRtYXAuYwpAQCAtNDAwLDcgKzQwMCw3IEBAIHN0YXRpYyB2b2lk IG5ldG1hcF9zZXRfb2ZmbG9hZChOZXRDbGllbnRTdGF0ZSAqbmMsIGludCBjc3VtLCBpbnQgdHNv NCwgaW50IHRzbzYsCgogLyogTmV0Q2xpZW50SW5mbyBtZXRob2RzICovCiBzdGF0aWMgTmV0Q2xp ZW50SW5mbyBuZXRfbmV0bWFwX2luZm8gPSB7Ci0gICAgLnR5cGUgPSBORVRfQ0xJRU5UX09QVElP TlNfS0lORF9ORVRNQVAsCisgICAgLnR5cGUgPSBORVRfQ0xJRU5UX0RSSVZFUl9ORVRNQVAsCiAg ICAgLnNpemUgPSBzaXplb2YoTmV0bWFwU3RhdGUpLAogICAgIC5yZWNlaXZlID0gbmV0bWFwX3Jl Y2VpdmUsCiAgICAgLnJlY2VpdmVfaW92ID0gbmV0bWFwX3JlY2VpdmVfaW92LApAQCAtNDIxLDcg KzQyMSw3IEBAIHN0YXRpYyBOZXRDbGllbnRJbmZvIG5ldF9uZXRtYXBfaW5mbyA9IHsKIGludCBu ZXRfaW5pdF9uZXRtYXAoY29uc3QgTmV0ZGV2ICpuZXRkZXYsCiAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGNoYXIgKm5hbWUsIE5ldENsaWVudFN0YXRlICpwZWVyLCBFcnJvciAqKmVycnApCiB7 Ci0gICAgY29uc3QgTmV0ZGV2TmV0bWFwT3B0aW9ucyAqbmV0bWFwX29wdHMgPSBuZXRkZXYtPm9w dHMtPnUubmV0bWFwLmRhdGE7CisgICAgY29uc3QgTmV0ZGV2TmV0bWFwT3B0aW9ucyAqbmV0bWFw X29wdHMgPSAmbmV0ZGV2LT51Lm5ldG1hcDsKICAgICBzdHJ1Y3Qgbm1fZGVzYyAqbm1kOwogICAg IE5ldENsaWVudFN0YXRlICpuYzsKICAgICBFcnJvciAqZXJyID0gTlVMTDsKZGlmZiAtLWdpdCBh L25ldC9zbGlycC5jIGIvbmV0L3NsaXJwLmMKaW5kZXggYmI0OTYyOS4uNWFhZmJmMyAxMDA2NDQK LS0tIGEvbmV0L3NsaXJwLmMKKysrIGIvbmV0L3NsaXJwLmMKQEAgLTEyOCw3ICsxMjgsNyBAQCBz dGF0aWMgdm9pZCBuZXRfc2xpcnBfY2xlYW51cChOZXRDbGllbnRTdGF0ZSAqbmMpCiB9Cgogc3Rh dGljIE5ldENsaWVudEluZm8gbmV0X3NsaXJwX2luZm8gPSB7Ci0gICAgLnR5cGUgPSBORVRfQ0xJ RU5UX09QVElPTlNfS0lORF9VU0VSLAorICAgIC50eXBlID0gTkVUX0NMSUVOVF9EUklWRVJfVVNF UiwKICAgICAuc2l6ZSA9IHNpemVvZihTbGlycFN0YXRlKSwKICAgICAucmVjZWl2ZSA9IG5ldF9z bGlycF9yZWNlaXZlLAogICAgIC5jbGVhbnVwID0gbmV0X3NsaXJwX2NsZWFudXAsCkBAIC04Mjgs OCArODI4LDggQEAgaW50IG5ldF9pbml0X3NsaXJwKGNvbnN0IE5ldGRldiAqbmV0ZGV2LCBjb25z dCBjaGFyICpuYW1lLAogICAgIGNvbnN0IGNoYXIgKipkbnNzZWFyY2g7CiAgICAgYm9vbCBpcHY0 ID0gdHJ1ZSwgaXB2NiA9IHRydWU7CgotICAgIGFzc2VydChuZXRkZXYtPm9wdHMtPnR5cGUgPT0g TkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfVVNFUik7Ci0gICAgdXNlciA9IG5ldGRldi0+b3B0cy0+ dS51c2VyLmRhdGE7CisgICAgYXNzZXJ0KG5ldGRldi0+dHlwZSA9PSBORVRfQ0xJRU5UX0RSSVZF Ul9VU0VSKTsKKyAgICB1c2VyID0gJm5ldGRldi0+dS51c2VyOwoKICAgICBpZiAoKHVzZXItPmhh c19pcHY2ICYmIHVzZXItPmlwdjYgJiYgIXVzZXItPmhhc19pcHY0KSB8fAogICAgICAgICAodXNl ci0+aGFzX2lwdjQgJiYgIXVzZXItPmlwdjQpKSB7CmRpZmYgLS1naXQgYS9uZXQvc29ja2V0LmMg Yi9uZXQvc29ja2V0LmMKaW5kZXggNmU1YzkwMi4uMTdlNjM1ZCAxMDA2NDQKLS0tIGEvbmV0L3Nv Y2tldC5jCisrKyBiL25ldC9zb2NrZXQuYwpAQCAtMzExLDcgKzMxMSw3IEBAIHN0YXRpYyB2b2lk IG5ldF9zb2NrZXRfY2xlYW51cChOZXRDbGllbnRTdGF0ZSAqbmMpCiB9Cgogc3RhdGljIE5ldENs aWVudEluZm8gbmV0X2RncmFtX3NvY2tldF9pbmZvID0gewotICAgIC50eXBlID0gTkVUX0NMSUVO VF9PUFRJT05TX0tJTkRfU09DS0VULAorICAgIC50eXBlID0gTkVUX0NMSUVOVF9EUklWRVJfU09D S0VULAogICAgIC5zaXplID0gc2l6ZW9mKE5ldFNvY2tldFN0YXRlKSwKICAgICAucmVjZWl2ZSA9 IG5ldF9zb2NrZXRfcmVjZWl2ZV9kZ3JhbSwKICAgICAuY2xlYW51cCA9IG5ldF9zb2NrZXRfY2xl YW51cCwKQEAgLTM5NSw3ICszOTUsNyBAQCBzdGF0aWMgdm9pZCBuZXRfc29ja2V0X2Nvbm5lY3Qo dm9pZCAqb3BhcXVlKQogfQoKIHN0YXRpYyBOZXRDbGllbnRJbmZvIG5ldF9zb2NrZXRfaW5mbyA9 IHsKLSAgICAudHlwZSA9IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX1NPQ0tFVCwKKyAgICAudHlw ZSA9IE5FVF9DTElFTlRfRFJJVkVSX1NPQ0tFVCwKICAgICAuc2l6ZSA9IHNpemVvZihOZXRTb2Nr ZXRTdGF0ZSksCiAgICAgLnJlY2VpdmUgPSBuZXRfc29ja2V0X3JlY2VpdmUsCiAgICAgLmNsZWFu dXAgPSBuZXRfc29ja2V0X2NsZWFudXAsCkBAIC02NzAsOCArNjcwLDggQEAgaW50IG5ldF9pbml0 X3NvY2tldChjb25zdCBOZXRkZXYgKm5ldGRldiwgY29uc3QgY2hhciAqbmFtZSwKICAgICBFcnJv ciAqZXJyID0gTlVMTDsKICAgICBjb25zdCBOZXRkZXZTb2NrZXRPcHRpb25zICpzb2NrOwoKLSAg ICBhc3NlcnQobmV0ZGV2LT5vcHRzLT50eXBlID09IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX1NP Q0tFVCk7Ci0gICAgc29jayA9IG5ldGRldi0+b3B0cy0+dS5zb2NrZXQuZGF0YTsKKyAgICBhc3Nl cnQobmV0ZGV2LT50eXBlID09IE5FVF9DTElFTlRfRFJJVkVSX1NPQ0tFVCk7CisgICAgc29jayA9 ICZuZXRkZXYtPnUuc29ja2V0OwoKICAgICBpZiAoc29jay0+aGFzX2ZkICsgc29jay0+aGFzX2xp c3RlbiArIHNvY2stPmhhc19jb25uZWN0ICsgc29jay0+aGFzX21jYXN0ICsKICAgICAgICAgc29j ay0+aGFzX3VkcCAhPSAxKSB7CmRpZmYgLS1naXQgYS9uZXQvdGFwLXdpbjMyLmMgYi9uZXQvdGFw LXdpbjMyLmMKaW5kZXggMGYyM2IxOS4uNzI5MzA5ZCAxMDA2NDQKLS0tIGEvbmV0L3RhcC13aW4z Mi5jCisrKyBiL25ldC90YXAtd2luMzIuYwpAQCAtNzUwLDcgKzc1MCw3IEBAIHN0YXRpYyB2b2lk IHRhcF9zZXRfdm5ldF9oZHJfbGVuKE5ldENsaWVudFN0YXRlICpuYywgaW50IGxlbikKIH0KCiBz dGF0aWMgTmV0Q2xpZW50SW5mbyBuZXRfdGFwX3dpbjMyX2luZm8gPSB7Ci0gICAgLnR5cGUgPSBO RVRfQ0xJRU5UX09QVElPTlNfS0lORF9UQVAsCisgICAgLnR5cGUgPSBORVRfQ0xJRU5UX0RSSVZF Ul9UQVAsCiAgICAgLnNpemUgPSBzaXplb2YoVEFQU3RhdGUpLAogICAgIC5yZWNlaXZlID0gdGFw X3JlY2VpdmUsCiAgICAgLmNsZWFudXAgPSB0YXBfY2xlYW51cCwKQEAgLTc5NCw4ICs3OTQsOCBA QCBpbnQgbmV0X2luaXRfdGFwKGNvbnN0IE5ldGRldiAqbmV0ZGV2LCBjb25zdCBjaGFyICpuYW1l LAogICAgIC8qIEZJWE1FIGVycm9yX3NldGcoZXJycCwgLi4uKSBvbiBmYWlsdXJlICovCiAgICAg Y29uc3QgTmV0ZGV2VGFwT3B0aW9ucyAqdGFwOwoKLSAgICBhc3NlcnQobmV0ZGV2LT5vcHRzLT50 eXBlID09IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX1RBUCk7Ci0gICAgdGFwID0gbmV0ZGV2LT5v cHRzLT51LnRhcC5kYXRhOworICAgIGFzc2VydChuZXRkZXYtPnR5cGUgPT0gTkVUX0NMSUVOVF9E UklWRVJfVEFQKTsKKyAgICB0YXAgPSBuZXRkZXYtPnUudGFwOwoKICAgICBpZiAoIXRhcC0+aGFz X2lmbmFtZSkgewogICAgICAgICBlcnJvcl9yZXBvcnQoInRhcDogbm8gaW50ZXJmYWNlIG5hbWUi KTsKZGlmZiAtLWdpdCBhL25ldC90YXAuYyBiL25ldC90YXAuYwppbmRleCAwOGU4MzUwLi43ZTBi YTQ2IDEwMDY0NAotLS0gYS9uZXQvdGFwLmMKKysrIGIvbmV0L3RhcC5jCkBAIC0yMjIsNyArMjIy LDcgQEAgc3RhdGljIGJvb2wgdGFwX2hhc191Zm8oTmV0Q2xpZW50U3RhdGUgKm5jKQogewogICAg IFRBUFN0YXRlICpzID0gRE9fVVBDQVNUKFRBUFN0YXRlLCBuYywgbmMpOwoKLSAgICBhc3NlcnQo bmMtPmluZm8tPnR5cGUgPT0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfVEFQKTsKKyAgICBhc3Nl cnQobmMtPmluZm8tPnR5cGUgPT0gTkVUX0NMSUVOVF9EUklWRVJfVEFQKTsKCiAgICAgcmV0dXJu IHMtPmhhc191Zm87CiB9CkBAIC0yMzEsNyArMjMxLDcgQEAgc3RhdGljIGJvb2wgdGFwX2hhc192 bmV0X2hkcihOZXRDbGllbnRTdGF0ZSAqbmMpCiB7CiAgICAgVEFQU3RhdGUgKnMgPSBET19VUENB U1QoVEFQU3RhdGUsIG5jLCBuYyk7CgotICAgIGFzc2VydChuYy0+aW5mby0+dHlwZSA9PSBORVRf Q0xJRU5UX09QVElPTlNfS0lORF9UQVApOworICAgIGFzc2VydChuYy0+aW5mby0+dHlwZSA9PSBO RVRfQ0xJRU5UX0RSSVZFUl9UQVApOwoKICAgICByZXR1cm4gISFzLT5ob3N0X3ZuZXRfaGRyX2xl bjsKIH0KQEAgLTI0MCw3ICsyNDAsNyBAQCBzdGF0aWMgYm9vbCB0YXBfaGFzX3ZuZXRfaGRyX2xl bihOZXRDbGllbnRTdGF0ZSAqbmMsIGludCBsZW4pCiB7CiAgICAgVEFQU3RhdGUgKnMgPSBET19V UENBU1QoVEFQU3RhdGUsIG5jLCBuYyk7CgotICAgIGFzc2VydChuYy0+aW5mby0+dHlwZSA9PSBO RVRfQ0xJRU5UX09QVElPTlNfS0lORF9UQVApOworICAgIGFzc2VydChuYy0+aW5mby0+dHlwZSA9 PSBORVRfQ0xJRU5UX0RSSVZFUl9UQVApOwoKICAgICByZXR1cm4gISF0YXBfcHJvYmVfdm5ldF9o ZHJfbGVuKHMtPmZkLCBsZW4pOwogfQpAQCAtMjQ5LDcgKzI0OSw3IEBAIHN0YXRpYyB2b2lkIHRh cF9zZXRfdm5ldF9oZHJfbGVuKE5ldENsaWVudFN0YXRlICpuYywgaW50IGxlbikKIHsKICAgICBU QVBTdGF0ZSAqcyA9IERPX1VQQ0FTVChUQVBTdGF0ZSwgbmMsIG5jKTsKCi0gICAgYXNzZXJ0KG5j LT5pbmZvLT50eXBlID09IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX1RBUCk7CisgICAgYXNzZXJ0 KG5jLT5pbmZvLT50eXBlID09IE5FVF9DTElFTlRfRFJJVkVSX1RBUCk7CiAgICAgYXNzZXJ0KGxl biA9PSBzaXplb2Yoc3RydWN0IHZpcnRpb19uZXRfaGRyX21yZ19yeGJ1ZikgfHwKICAgICAgICAg ICAgbGVuID09IHNpemVvZihzdHJ1Y3QgdmlydGlvX25ldF9oZHIpKTsKCkBAIC0yNjEsNyArMjYx LDcgQEAgc3RhdGljIHZvaWQgdGFwX3VzaW5nX3ZuZXRfaGRyKE5ldENsaWVudFN0YXRlICpuYywg Ym9vbCB1c2luZ192bmV0X2hkcikKIHsKICAgICBUQVBTdGF0ZSAqcyA9IERPX1VQQ0FTVChUQVBT dGF0ZSwgbmMsIG5jKTsKCi0gICAgYXNzZXJ0KG5jLT5pbmZvLT50eXBlID09IE5FVF9DTElFTlRf T1BUSU9OU19LSU5EX1RBUCk7CisgICAgYXNzZXJ0KG5jLT5pbmZvLT50eXBlID09IE5FVF9DTElF TlRfRFJJVkVSX1RBUCk7CiAgICAgYXNzZXJ0KCEhcy0+aG9zdF92bmV0X2hkcl9sZW4gPT0gdXNp bmdfdm5ldF9oZHIpOwoKICAgICBzLT51c2luZ192bmV0X2hkciA9IHVzaW5nX3ZuZXRfaGRyOwpA QCAtMzI3LDE0ICszMjcsMTQgQEAgc3RhdGljIHZvaWQgdGFwX3BvbGwoTmV0Q2xpZW50U3RhdGUg Km5jLCBib29sIGVuYWJsZSkKIGludCB0YXBfZ2V0X2ZkKE5ldENsaWVudFN0YXRlICpuYykKIHsK ICAgICBUQVBTdGF0ZSAqcyA9IERPX1VQQ0FTVChUQVBTdGF0ZSwgbmMsIG5jKTsKLSAgICBhc3Nl cnQobmMtPmluZm8tPnR5cGUgPT0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfVEFQKTsKKyAgICBh c3NlcnQobmMtPmluZm8tPnR5cGUgPT0gTkVUX0NMSUVOVF9EUklWRVJfVEFQKTsKICAgICByZXR1 cm4gcy0+ZmQ7CiB9CgogLyogZmQgc3VwcG9ydCAqLwoKIHN0YXRpYyBOZXRDbGllbnRJbmZvIG5l dF90YXBfaW5mbyA9IHsKLSAgICAudHlwZSA9IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX1RBUCwK KyAgICAudHlwZSA9IE5FVF9DTElFTlRfRFJJVkVSX1RBUCwKICAgICAuc2l6ZSA9IHNpemVvZihU QVBTdGF0ZSksCiAgICAgLnJlY2VpdmUgPSB0YXBfcmVjZWl2ZSwKICAgICAucmVjZWl2ZV9yYXcg PSB0YXBfcmVjZWl2ZV9yYXcsCkBAIC01NjYsOCArNTY2LDggQEAgaW50IG5ldF9pbml0X2JyaWRn ZShjb25zdCBOZXRkZXYgKm5ldGRldiwgY29uc3QgY2hhciAqbmFtZSwKICAgICBUQVBTdGF0ZSAq czsKICAgICBpbnQgZmQsIHZuZXRfaGRyOwoKLSAgICBhc3NlcnQobmV0ZGV2LT5vcHRzLT50eXBl ID09IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX0JSSURHRSk7Ci0gICAgYnJpZGdlID0gbmV0ZGV2 LT5vcHRzLT51LmJyaWRnZS5kYXRhOworICAgIGFzc2VydChuZXRkZXYtPnR5cGUgPT0gTkVUX0NM SUVOVF9EUklWRVJfQlJJREdFKTsKKyAgICBicmlkZ2UgPSAmbmV0ZGV2LT51LmJyaWRnZTsKCiAg ICAgaGVscGVyID0gYnJpZGdlLT5oYXNfaGVscGVyID8gYnJpZGdlLT5oZWxwZXIgOiBERUZBVUxU X0JSSURHRV9IRUxQRVI7CiAgICAgYnIgICAgID0gYnJpZGdlLT5oYXNfYnIgICAgID8gYnJpZGdl LT5iciAgICAgOiBERUZBVUxUX0JSSURHRV9JTlRFUkZBQ0U7CkBAIC03MjksOCArNzI5LDggQEAg aW50IG5ldF9pbml0X3RhcChjb25zdCBOZXRkZXYgKm5ldGRldiwgY29uc3QgY2hhciAqbmFtZSwK ICAgICBjb25zdCBjaGFyICp2aG9zdGZkbmFtZTsKICAgICBjaGFyIGlmbmFtZVsxMjhdOwoKLSAg ICBhc3NlcnQobmV0ZGV2LT5vcHRzLT50eXBlID09IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX1RB UCk7Ci0gICAgdGFwID0gbmV0ZGV2LT5vcHRzLT51LnRhcC5kYXRhOworICAgIGFzc2VydChuZXRk ZXYtPnR5cGUgPT0gTkVUX0NMSUVOVF9EUklWRVJfVEFQKTsKKyAgICB0YXAgPSAmbmV0ZGV2LT51 LnRhcDsKICAgICBxdWV1ZXMgPSB0YXAtPmhhc19xdWV1ZXMgPyB0YXAtPnF1ZXVlcyA6IDE7CiAg ICAgdmhvc3RmZG5hbWUgPSB0YXAtPmhhc192aG9zdGZkID8gdGFwLT52aG9zdGZkIDogTlVMTDsK CkBAIC04OTMsNyArODkzLDcgQEAgaW50IG5ldF9pbml0X3RhcChjb25zdCBOZXRkZXYgKm5ldGRl diwgY29uc3QgY2hhciAqbmFtZSwKIFZIb3N0TmV0U3RhdGUgKnRhcF9nZXRfdmhvc3RfbmV0KE5l dENsaWVudFN0YXRlICpuYykKIHsKICAgICBUQVBTdGF0ZSAqcyA9IERPX1VQQ0FTVChUQVBTdGF0 ZSwgbmMsIG5jKTsKLSAgICBhc3NlcnQobmMtPmluZm8tPnR5cGUgPT0gTkVUX0NMSUVOVF9PUFRJ T05TX0tJTkRfVEFQKTsKKyAgICBhc3NlcnQobmMtPmluZm8tPnR5cGUgPT0gTkVUX0NMSUVOVF9E UklWRVJfVEFQKTsKICAgICByZXR1cm4gcy0+dmhvc3RfbmV0OwogfQoKZGlmZiAtLWdpdCBhL25l dC92ZGUuYyBiL25ldC92ZGUuYwppbmRleCA1M2NkYmJmLi5iODcyNWY4IDEwMDY0NAotLS0gYS9u ZXQvdmRlLmMKKysrIGIvbmV0L3ZkZS5jCkBAIC02OCw3ICs2OCw3IEBAIHN0YXRpYyB2b2lkIHZk ZV9jbGVhbnVwKE5ldENsaWVudFN0YXRlICpuYykKIH0KCiBzdGF0aWMgTmV0Q2xpZW50SW5mbyBu ZXRfdmRlX2luZm8gPSB7Ci0gICAgLnR5cGUgPSBORVRfQ0xJRU5UX09QVElPTlNfS0lORF9WREUs CisgICAgLnR5cGUgPSBORVRfQ0xJRU5UX0RSSVZFUl9WREUsCiAgICAgLnNpemUgPSBzaXplb2Yo VkRFU3RhdGUpLAogICAgIC5yZWNlaXZlID0gdmRlX3JlY2VpdmUsCiAgICAgLmNsZWFudXAgPSB2 ZGVfY2xlYW51cCwKQEAgLTExNSw4ICsxMTUsOCBAQCBpbnQgbmV0X2luaXRfdmRlKGNvbnN0IE5l dGRldiAqbmV0ZGV2LCBjb25zdCBjaGFyICpuYW1lLAogICAgIC8qIEZJWE1FIGVycm9yX3NldGco ZXJycCwgLi4uKSBvbiBmYWlsdXJlICovCiAgICAgY29uc3QgTmV0ZGV2VmRlT3B0aW9ucyAqdmRl OwoKLSAgICBhc3NlcnQobmV0ZGV2LT5vcHRzLT50eXBlID09IE5FVF9DTElFTlRfT1BUSU9OU19L SU5EX1ZERSk7Ci0gICAgdmRlID0gbmV0ZGV2LT5vcHRzLT51LnZkZS5kYXRhOworICAgIGFzc2Vy dChuZXRkZXYtPnR5cGUgPT0gTkVUX0NMSUVOVF9EUklWRVJfVkRFKTsKKyAgICB2ZGUgPSBuZXRk ZXYtPnUudmRlOwoKICAgICAvKiBtaXNzaW5nIG9wdGlvbmFsIHZhbHVlcyBoYXZlIGJlZW4gaW5p dGlhbGl6ZWQgdG8gImFsbCBiaXRzIHplcm8iICovCiAgICAgaWYgKG5ldF92ZGVfaW5pdChwZWVy LCAidmRlIiwgbmFtZSwgdmRlLT5zb2NrLCB2ZGUtPnBvcnQsIHZkZS0+Z3JvdXAsCmRpZmYgLS1n aXQgYS9uZXQvdmhvc3QtdXNlci5jIGIvbmV0L3Zob3N0LXVzZXIuYwppbmRleCBhNjUwMjk2Li43 NjczYTA2IDEwMDY0NAotLS0gYS9uZXQvdmhvc3QtdXNlci5jCisrKyBiL25ldC92aG9zdC11c2Vy LmMKQEAgLTM0LDE0ICszNCwxNCBAQCB0eXBlZGVmIHN0cnVjdCBWaG9zdFVzZXJDaGFyZGV2UHJv cHMgewogVkhvc3ROZXRTdGF0ZSAqdmhvc3RfdXNlcl9nZXRfdmhvc3RfbmV0KE5ldENsaWVudFN0 YXRlICpuYykKIHsKICAgICBWaG9zdFVzZXJTdGF0ZSAqcyA9IERPX1VQQ0FTVChWaG9zdFVzZXJT dGF0ZSwgbmMsIG5jKTsKLSAgICBhc3NlcnQobmMtPmluZm8tPnR5cGUgPT0gTkVUX0NMSUVOVF9P UFRJT05TX0tJTkRfVkhPU1RfVVNFUik7CisgICAgYXNzZXJ0KG5jLT5pbmZvLT50eXBlID09IE5F VF9DTElFTlRfRFJJVkVSX1ZIT1NUX1VTRVIpOwogICAgIHJldHVybiBzLT52aG9zdF9uZXQ7CiB9 CgogdWludDY0X3Qgdmhvc3RfdXNlcl9nZXRfYWNrZWRfZmVhdHVyZXMoTmV0Q2xpZW50U3RhdGUg Km5jKQogewogICAgIFZob3N0VXNlclN0YXRlICpzID0gRE9fVVBDQVNUKFZob3N0VXNlclN0YXRl LCBuYywgbmMpOwotICAgIGFzc2VydChuYy0+aW5mby0+dHlwZSA9PSBORVRfQ0xJRU5UX09QVElP TlNfS0lORF9WSE9TVF9VU0VSKTsKKyAgICBhc3NlcnQobmMtPmluZm8tPnR5cGUgPT0gTkVUX0NM SUVOVF9EUklWRVJfVkhPU1RfVVNFUik7CiAgICAgcmV0dXJuIHMtPmFja2VkX2ZlYXR1cmVzOwog fQoKQEAgLTU2LDcgKzU2LDcgQEAgc3RhdGljIHZvaWQgdmhvc3RfdXNlcl9zdG9wKGludCBxdWV1 ZXMsIE5ldENsaWVudFN0YXRlICpuY3NbXSkKICAgICBpbnQgaTsKCiAgICAgZm9yIChpID0gMDsg aSA8IHF1ZXVlczsgaSsrKSB7Ci0gICAgICAgIGFzc2VydCAobmNzW2ldLT5pbmZvLT50eXBlID09 IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX1ZIT1NUX1VTRVIpOworICAgICAgICBhc3NlcnQobmNz W2ldLT5pbmZvLT50eXBlID09IE5FVF9DTElFTlRfRFJJVkVSX1ZIT1NUX1VTRVIpOwoKICAgICAg ICAgcyA9IERPX1VQQ0FTVChWaG9zdFVzZXJTdGF0ZSwgbmMsIG5jc1tpXSk7CiAgICAgICAgIGlm ICghdmhvc3RfdXNlcl9ydW5uaW5nKHMpKSB7CkBAIC04Miw3ICs4Miw3IEBAIHN0YXRpYyBpbnQg dmhvc3RfdXNlcl9zdGFydChpbnQgcXVldWVzLCBOZXRDbGllbnRTdGF0ZSAqbmNzW10pCiAgICAg b3B0aW9ucy5iYWNrZW5kX3R5cGUgPSBWSE9TVF9CQUNLRU5EX1RZUEVfVVNFUjsKCiAgICAgZm9y IChpID0gMDsgaSA8IHF1ZXVlczsgaSsrKSB7Ci0gICAgICAgIGFzc2VydCAobmNzW2ldLT5pbmZv LT50eXBlID09IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX1ZIT1NUX1VTRVIpOworICAgICAgICBh c3NlcnQobmNzW2ldLT5pbmZvLT50eXBlID09IE5FVF9DTElFTlRfRFJJVkVSX1ZIT1NUX1VTRVIp OwoKICAgICAgICAgcyA9IERPX1VQQ0FTVChWaG9zdFVzZXJTdGF0ZSwgbmMsIG5jc1tpXSk7CiAg ICAgICAgIGlmICh2aG9zdF91c2VyX3J1bm5pbmcocykpIHsKQEAgLTE2MiwyMCArMTYyLDIwIEBA IHN0YXRpYyB2b2lkIHZob3N0X3VzZXJfY2xlYW51cChOZXRDbGllbnRTdGF0ZSAqbmMpCgogc3Rh dGljIGJvb2wgdmhvc3RfdXNlcl9oYXNfdm5ldF9oZHIoTmV0Q2xpZW50U3RhdGUgKm5jKQogewot ICAgIGFzc2VydChuYy0+aW5mby0+dHlwZSA9PSBORVRfQ0xJRU5UX09QVElPTlNfS0lORF9WSE9T VF9VU0VSKTsKKyAgICBhc3NlcnQobmMtPmluZm8tPnR5cGUgPT0gTkVUX0NMSUVOVF9EUklWRVJf VkhPU1RfVVNFUik7CgogICAgIHJldHVybiB0cnVlOwogfQoKIHN0YXRpYyBib29sIHZob3N0X3Vz ZXJfaGFzX3VmbyhOZXRDbGllbnRTdGF0ZSAqbmMpCiB7Ci0gICAgYXNzZXJ0KG5jLT5pbmZvLT50 eXBlID09IE5FVF9DTElFTlRfT1BUSU9OU19LSU5EX1ZIT1NUX1VTRVIpOworICAgIGFzc2VydChu Yy0+aW5mby0+dHlwZSA9PSBORVRfQ0xJRU5UX0RSSVZFUl9WSE9TVF9VU0VSKTsKCiAgICAgcmV0 dXJuIHRydWU7CiB9Cgogc3RhdGljIE5ldENsaWVudEluZm8gbmV0X3Zob3N0X3VzZXJfaW5mbyA9 IHsKLSAgICAgICAgLnR5cGUgPSBORVRfQ0xJRU5UX09QVElPTlNfS0lORF9WSE9TVF9VU0VSLAor ICAgICAgICAudHlwZSA9IE5FVF9DTElFTlRfRFJJVkVSX1ZIT1NUX1VTRVIsCiAgICAgICAgIC5z aXplID0gc2l6ZW9mKFZob3N0VXNlclN0YXRlKSwKICAgICAgICAgLnJlY2VpdmUgPSB2aG9zdF91 c2VyX3JlY2VpdmUsCiAgICAgICAgIC5jbGVhbnVwID0gdmhvc3RfdXNlcl9jbGVhbnVwLApAQCAt MjA2LDcgKzIwNiw3IEBAIHN0YXRpYyB2b2lkIG5ldF92aG9zdF91c2VyX2V2ZW50KHZvaWQgKm9w YXF1ZSwgaW50IGV2ZW50KQogICAgIGludCBxdWV1ZXM7CgogICAgIHF1ZXVlcyA9IHFlbXVfZmlu ZF9uZXRfY2xpZW50c19leGNlcHQobmFtZSwgbmNzLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfTklDLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUX0NMSUVOVF9EUklWRVJfTklDLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFYX1FVRVVFX05VTSk7 CiAgICAgYXNzZXJ0KHF1ZXVlcyA8IE1BWF9RVUVVRV9OVU0pOwoKQEAgLTM0MCw4ICszNDAsOCBA QCBpbnQgbmV0X2luaXRfdmhvc3RfdXNlcihjb25zdCBOZXRkZXYgKm5ldGRldiwgY29uc3QgY2hh ciAqbmFtZSwKICAgICBjb25zdCBOZXRkZXZWaG9zdFVzZXJPcHRpb25zICp2aG9zdF91c2VyX29w dHM7CiAgICAgQ2hhckRyaXZlclN0YXRlICpjaHI7CgotICAgIGFzc2VydChuZXRkZXYtPm9wdHMt PnR5cGUgPT0gTkVUX0NMSUVOVF9PUFRJT05TX0tJTkRfVkhPU1RfVVNFUik7Ci0gICAgdmhvc3Rf dXNlcl9vcHRzID0gbmV0ZGV2LT5vcHRzLT51LnZob3N0X3VzZXIuZGF0YTsKKyAgICBhc3NlcnQo bmV0ZGV2LT50eXBlID09IE5FVF9DTElFTlRfRFJJVkVSX1ZIT1NUX1VTRVIpOworICAgIHZob3N0 X3VzZXJfb3B0cyA9ICZuZXRkZXYtPnUudmhvc3RfdXNlcjsKCiAgICAgY2hyID0gbmV0X3Zob3N0 X3BhcnNlX2NoYXJkZXYodmhvc3RfdXNlcl9vcHRzLCBlcnJwKTsKICAgICBpZiAoIWNocikgewot LSAKMi41LjUKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9s aXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=