From: Olaf Hering Subject: [PATCH v3] new config option vtsc_tolerance_khz to avoid TSC emulation Date: Tue, 6 Mar 2018 11:41:33 +0100 Message-ID: <20180306104133.22106-1-olaf@aepfle.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Olaf Hering , Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= , Tim Deegan , Julien Grall , Jan Beulich , Daniel De Graaf List-Id: xen-devel@lists.xenproject.org QWRkIGFuIG9wdGlvbiB0byBjb250cm9sIHdoZW4gdlRTQyBlbXVsYXRpb24gd2lsbCBiZSBhY3Rp dmF0ZWQgZm9yIGEKZG9tVSB3aXRoIHRzY19tb2RlPWRlZmF1bHQuIFdpdGhvdXQgc3VjaCBvcHRp b24gZWFjaCBUU0MgYWNjZXNzIGZyb20KZG9tVSB3aWxsIGJlIGVtdWxhdGVkLCB3aGljaCBjYXVz ZXMgYSBzaWduaWZpY2FudCBwZXJmb21hbmNlIGRyb3AgZm9yCndvcmtsb2FkcyB0aGF0IG1ha2Ug dXNlIG9mIHJkdHNjLgoKQWRkIGEgbmV3IGRvbWN0bCBYRU5fRE9NQ1RMX3NldF92dHNjX3RvbGVy YW5jZV9raHogdG8gYWRqdXN0IHRoZQp0b2xlcmFuY2UgdmFsdWUgb2YgYSBydW5uaW5nIGRvbVUg dGhhdCBpcyBzdXBwb3NlZCB0byBiZSBtaWdyYXRlZC4KCk9uZSBvcHRpb24gdG8gYXZvaWQgdGhl IFRTQyBvcHRpb24gaXMgdG8gcnVuIGRvbVVzIHdpdGggdHNjX21vZGU9bmF0aXZlLgpUaGlzIGhh cyB0aGUgZHJhd2JhY2sgdGhhdCBtaWdyYXRpbmcgYSBkb21VIGZyb20gYSAiMi4zR0h6IiBjbGFz cyBob3N0CnRvIGEgIjIuNEdIeiIgY2xhc3MgaG9zdCBtYXkgY2hhbmdlIHRoZSByYXRlIGF0IHdp Y2ggdGhlIFRTQyBjb3VudGVyCmluY3JlYXNlcywgdGhlIGRvbVUgbWF5IG5vdCBiZSBwcmVwYXJl ZCBmb3IgdGhhdC4KCldpdGggdGhpcyBvcHRpb24gdGhlIGhvc3QgYWRtaW4gY2FuIGRlY2lkZSBo b3cgYSBkb21VIHNob3VsZCBiZWhhdmUgd2hlbgppdCBpcyBtaWdyYXRlZCBhY3Jvc3Mgc3lzdGVt cyBvZiB0aGUgc2FtZSBjbGFzcy4gU2luY2UgdGhlcmUgaXMgYWx3YXlzCnNvbWUgaml0dGVyIHdo ZW4gWGVuIGNhbGlicmF0ZXMgdGhlIGNwdV9raHogdmFsdWUsIGFsbCBob3N0cyBvZiB0aGUgc2Ft ZQpjbGFzcyB3aWxsIG1vc3QgbGlrZWx5IGhhdmUgc2xpZ2h0bHkgZGlmZmVyZW50IHZhbHVlcy4g QXMgYSByZXN1bHQgdlRTQwplbXVsYXRpb24gaXMgdW5hdm9pZGFibGUuIERhdGEgY29sbGVjdGVk IGR1cmluZyB0aGUgaW5jaWRlbnQgd2hpY2gKdHJpZ2dlcmVkIHRoaXMgY2hhbmdlIHNob3dlZCBh IGppdHRlciBvZiB1cCB0byAyMDAgS0h6IGFjcm9zcyBzeXN0ZW1zIG9mCnRoZSBzYW1lIGNsYXNz LgoKQSBuZXcgdXRpbGl0eSBpcyBhZGRlZCB3aGljaCBhbGxvd3MgdG8gYWRqdXN0IHRoZSB2dHNj X3RvbGVyYW5jZV9raHoKdmFsdWUgZm9yIHJ1bm5pbmcgZG9tVXMuIFRoaXMgaXMgdXNlZnVsIHRv IGF2b2lkIGVtdWxhdGlvbiBmb3IgZG9tVXMKdGhhdCBhcmUgYWxyZWFkeSBydW5uaW5nIGFuZCB3 aGljaCBjYW4gbm90IGJlIHJlc3RhcnRlZC4KClRoZSBvcmRlcmluZyBvZiByZWNvcmRzIHNlbnQg ZHVyaW5nIG1pZ3JhdGlvbiBpcyBpbXBvcnRhbnQuIFRoZSB2YWx1ZSBvZgp2dHNjX3RvbGVyYW5j ZV9raHogbXVzdCBiZSBrbm93biBieSB0aGUgcmVjZWl2aW5nIGhvc3QgYmVmb3JlCmNvbmZpZ3Vy aW5nIFRTQywgYmVjYXVzZSB0aGlzIGlzIHRoZSBwbGFjZSB3aGVyZSB0aGUgZGVjaXNpb24gb2Yg dlRTQwplbXVsYXRpb24gaXMgbWFkZS4gVGhlcmVmb3JlIHRoZSBleGlzdGluZyB3cml0ZV90c2Nf aW5mbyBmdW5jdGlvbiBpcwptb2RpZmllZCB0byBlbmZvcmNlIHRoYXQgb3JkZXJpbmcuCgp2MzoK IC0gcmVuYW1lIHZ0c2Nfa2h6X3RvbGVyYW5jZSB0byB2dHNjX3RvbGVyYW5jZV9raHoKIC0gc2Vw YXJhdGUgZG9tY3RscyB0byBhZGp1c3QgdmFsdWVzCiAtIG1vcmUgZG9jcwogLSB1cGRhdGUgbGli eGwuaAogLSB1cGRhdGUgcHl0aG9uIHRlc3RzCiAtIGZsYXNrIGNoZWNrIGJvdW5kIHRvIHRzYyBw ZXJtaXNzaW9ucwogLSBub3QgcnVudGltZSB0ZXN0ZWQgZHVlIHRvIGRsc3ltKCkgYnVpbGQgZXJy b3JzIGluIHN0YWdpbmcKClNpZ25lZC1vZmYtYnk6IE9sYWYgSGVyaW5nIDxvbGFmQGFlcGZsZS5k ZT4KLS0tCiAuZ2l0aWdub3JlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsK IGRvY3MvbWFuL3hlbi10c2Ntb2RlLnBvZC43ICAgICAgICAgICAgICAgfCAgMTYgKysrKysKIGRv Y3MvbWFuL3hsLmNmZy5wb2QuNS5pbiAgICAgICAgICAgICAgICAgfCAgMTAgKysrCiBkb2NzL3Nw ZWNzL2xpYnhjLW1pZ3JhdGlvbi1zdHJlYW0ucGFuZG9jIHwgIDI3ICsrKysrKystCiB0b29scy9s aWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCAgICAgICAgICAgIHwgICA4ICsrKwogdG9vbHMvbGlieGMv eGNfZG9tYWluLmMgICAgICAgICAgICAgICAgICB8ICAyNSArKysrKysrCiB0b29scy9saWJ4Yy94 Y19zcl9jb21tb25feDg2LmMgICAgICAgICAgIHwgIDU2ICsrKysrKysrKysrKysrKy0KIHRvb2xz L2xpYnhjL3hjX3NyX2NvbW1vbl94ODYuaCAgICAgICAgICAgfCAgMTEgKysrLQogdG9vbHMvbGli eGMveGNfc3JfcmVzdG9yZV94ODZfaHZtLmMgICAgICB8ICAgMyArCiB0b29scy9saWJ4Yy94Y19z cl9yZXN0b3JlX3g4Nl9wdi5jICAgICAgIHwgICAzICsKIHRvb2xzL2xpYnhjL3hjX3NyX3NhdmVf eDg2X2h2bS5jICAgICAgICAgfCAgIDIgKy0KIHRvb2xzL2xpYnhjL3hjX3NyX3NhdmVfeDg2X3B2 LmMgICAgICAgICAgfCAgIDIgKy0KIHRvb2xzL2xpYnhjL3hjX3NyX3N0cmVhbV9mb3JtYXQuaCAg ICAgICAgfCAgIDkgKysrCiB0b29scy9saWJ4bC9saWJ4bC5oICAgICAgICAgICAgICAgICAgICAg IHwgICA2ICsrCiB0b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwgICAgICAgICAgICAgIHwgICAx ICsKIHRvb2xzL2xpYnhsL2xpYnhsX3g4Ni5jICAgICAgICAgICAgICAgICAgfCAgIDIgKwogdG9v bHMvbWlzYy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArKwogdG9vbHMvbWlz Yy94ZW4tdnRzYy5jICAgICAgICAgICAgICAgICAgICB8IDEwOCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiB0b29scy9weXRob24veGVuL21pZ3JhdGlvbi9saWJ4Yy5weSAgICAgIHwg IDI0ICsrKysrKysKIHRvb2xzL3B5dGhvbi94ZW4vbWlncmF0aW9uL3Rlc3RzLnB5ICAgICAgfCAg IDEgKwogdG9vbHMveGwveGxfcGFyc2UuYyAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiB4 ZW4vYXJjaC94ODYvZG9tY3RsLmMgICAgICAgICAgICAgICAgICAgIHwgICA4ICsrKwogeGVuL2Fy Y2gveDg2L3RpbWUuYyAgICAgICAgICAgICAgICAgICAgICB8ICAyMyArKysrKystCiB4ZW4vaW5j bHVkZS9hc20teDg2L2RvbWFpbi5oICAgICAgICAgICAgIHwgICAxICsKIHhlbi9pbmNsdWRlL3B1 YmxpYy9kb21jdGwuaCAgICAgICAgICAgICAgfCAgMTAgKysrCiB4ZW4veHNtL2ZsYXNrL2hvb2tz LmMgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIDI2IGZpbGVzIGNoYW5nZWQsIDM1NyBpbnNl cnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL21pc2Mv eGVuLXZ0c2MuYwoKZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IGIw MTkxYmY5MWYuLjNjM2NiZWRkZmQgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGln bm9yZQpAQCAtMjIxLDYgKzIyMSw3IEBAIHRvb2xzL21pc2MveGVuLWRldGVjdAogdG9vbHMvbWlz Yy94ZW4tZGlhZwogdG9vbHMvbWlzYy94ZW4tdG1lbS1saXN0LXBhcnNlCiB0b29scy9taXNjL3hl bi1saXZlcGF0Y2gKK3Rvb2xzL21pc2MveGVuLXZ0c2MKIHRvb2xzL21pc2MveGVucGVyZgogdG9v bHMvbWlzYy94ZW5wbQogdG9vbHMvbWlzYy94ZW4taHZtY3R4CmRpZmYgLS1naXQgYS9kb2NzL21h bi94ZW4tdHNjbW9kZS5wb2QuNyBiL2RvY3MvbWFuL3hlbi10c2Ntb2RlLnBvZC43CmluZGV4IDNi YmM5NmYyMDEuLjEyMmFlMzY2NzkgMTAwNjQ0Ci0tLSBhL2RvY3MvbWFuL3hlbi10c2Ntb2RlLnBv ZC43CisrKyBiL2RvY3MvbWFuL3hlbi10c2Ntb2RlLnBvZC43CkBAIC05OSw2ICs5OSw5IEBAIHdo ZXRoZXIgb3Igbm90IHRoZSBWTSBoYXMgYmVlbiBzYXZlZC9yZXN0b3JlZC9taWdyYXRlZAogCiA9 YmFjawogCitJZiB0aGUgdHNjX21vZGUgaXMgc2V0IHRvICJkZWZhdWx0IiB0aGUgZGVjaXNpb24g dG8gZW11bGF0ZSBUU0MgY2FuIGJlCit0d2Vha2VkIGZ1cnRoZXIgd2l0aCB0aGUgInZ0c2NfdG9s ZXJhbmNlX2toeiIgb3B0aW9uLgorCiBUbyB1bmRlcnN0YW5kIHRoaXMgaW4gbW9yZSBkZXRhaWws IHRoZSByZXN0IG9mIHRoaXMgZG9jdW1lbnQgbXVzdAogYmUgcmVhZC4KIApAQCAtMjExLDYgKzIx NCwxOSBAQCBpcyBlbXVsYXRlZC4gIE5vdGUgdGhhdCwgdGhvdWdoIGVtdWxhdGVkLCB0aGUgImFw cGFyZW50IiBUU0MgZnJlcXVlbmN5CiB3aWxsIGJlIHRoZSBUU0MgZnJlcXVlbmN5IG9mIHRoZSBp bml0aWFsIHBoeXNpY2FsIG1hY2hpbmUsIGV2ZW4gYWZ0ZXIKIG1pZ3JhdGlvbi4KIAorU2luY2Ug dGhlIGNhbGlicmF0aW9uIG9mIHRoZSBUU0MgZnJlcXVlbmN5IG1heSBub3QgYmUgMTAwJSBhY2N1 cmF0ZSwgdGhlCitleGFjdCB2YWx1ZSBvZiB0aGUgZnJlcXVlbmN5IGNhbiBjaGFuZ2UgZXZlbiBh Y3Jvc3MgcmVib290cy4gVGhpcyBtZWFucworYWxzbyBzZXZlcmFsIG90aGVyd2lzZSBpZGVudGlj YWwgc3lzdGVtcyBjYW4gaGF2ZSBhIHNsaWdodGx5IGRpZmZlcmVudAorVFNDIGZyZXF1ZW5jeS4g QXMgYSByZXN1bHQgVFNDIGFjY2VzcyB3aWxsIGJlIGVtdWxhdGVkIGlmIGEgZG9tVSBpcworbWln cmF0ZWQgZnJvbSBvbmUgaG9zdCB0byBhbm90aGVyLCBpZGVudGljYWwgaG9zdC4gVG8gYXZvaWQg dGhlCitwZXJmb3JtYW5jZSBpbXBhY3Qgb2YgVFNDIGVtdWxhdGlvbiBhIGNlcnRhaW4gdG9sZXJh bmNlIG9mIHRoZSBtZWFzdXJlZAoraG9zdCBUU0MgZnJlcXVlbmN5IGNhbiBiZSBzcGVjaWZpZWQg d2l0aCAidnRzY190b2xlcmFuY2Vfa2h6Ii4gSWYgdGhlCittZWFzdXJlZCAiY3B1X2toeiIgdmFs dWUgaXMgd2l0aGluIHRoZSB0b2xlcmFuY2UgcmFuZ2UsIFRTQyBhY2Nlc3MKK3JlbWFpbnMgbmF0 aXZlLiBPdGhlcndpc2UgaXQgd2lsbCBiZSBlbXVsYXRlZC4gVGhpcyBhbGxvd3MgdG8gbWlncmF0 ZQorZG9tVXMgYmV0d2VlbiBpZGVudGljYWwgaGFyZHdhcmUuIElmIHRoZSBkb21VIHdpbGwgYmUg bWlncmF0ZWQgdG8gYQorZGlmZmVyZW50IGtpbmQgb2YgaGFyZHdhcmUsIHNheSBmcm9tIGEgIjIu M0dIeiIgdG8gYSAiMi41R0h6IiBzeXN0ZW0sCitUU0Mgd2lsbCBiZSBlbXVhbHRlZCB0byBtYWlu dGFpbiB0aGUgVFNDIGZyZXF1ZW5jeSBleHBlY3RlZCBieSB0aGUgZG9tVS4KKwogRm9yIGVudmly b25tZW50cyB3aGVyZSBib3RoIFRTQy1zYWZlbmVzcyBBTkQgaGlnaGVzdCBwZXJmb3JtYW5jZQog ZXZlbiBhY3Jvc3MgbWlncmF0aW9uIGlzIGEgcmVxdWlyZW1lbnQsIGFwcGxpY2F0aW9uIGNvZGUg Y2FuIGJlIHNwZWNpYWxseQogbW9kaWZpZWQgdG8gdXNlIGFuIGFsZ29yaXRobSBleHBsaWNpdGx5 IGRlc2lnbmVkIGludG8gWGVuIGZvciB0aGlzIHB1cnBvc2UuCmRpZmYgLS1naXQgYS9kb2NzL21h bi94bC5jZmcucG9kLjUuaW4gYi9kb2NzL21hbi94bC5jZmcucG9kLjUuaW4KaW5kZXggYTY5OTM2 Nzc3OS4uNzg0YThhOWQyNiAxMDA2NDQKLS0tIGEvZG9jcy9tYW4veGwuY2ZnLnBvZC41LmluCisr KyBiL2RvY3MvbWFuL3hsLmNmZy5wb2QuNS5pbgpAQCAtMTg5MSw2ICsxODkxLDE2IEBAIGRldGVy bWluZWQgaW4gYSBzaW1pbGFyIHdheSB0byB0aGF0IG9mIEI8ZGVmYXVsdD4gVFNDIG1vZGUuCiAK IFBsZWFzZSBzZWUgQjx4ZW4tdHNjbW9kZSg3KT4gZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhp cyBvcHRpb24uCiAKKz1pdGVtIEI8dnRzY190b2xlcmFuY2Vfa2h6PSJLSFoiPgorCitCPCh4ODYg b25seSwgcmVsZXZhbnQgb25seSBmb3IgdHNjX21vZGU9ZGVmYXVsdCk+CitXaGVuIGEgZG9tVSBp cyBzdGFydGVkLCB0aGUgQ1BVIGZyZXF1ZW5jeSBvZiB0aGUgaG9zdCBpcyB1c2VkIGJ5IHRoZSBk b21VIGZvcgorVFNDIHJlbGF0ZWQgdGltZSBtZWFzdXJlbWVudC4gT25jZSB0aGUgZG9tVSBpcyBl aXRoZXIgbWlncmF0ZWQgb3IKK3NhdmVkL3Jlc3RvcmVkIG9uIGFub3RoZXIgaG9zdCB0aGF0IENQ VSBmcmVxdWVuY3kgaGFzIHRvIGJlIGVtdWxhdGVkIHRvIGF2b2lkCit0aW1lZHJpZnQuIFRvIGF2 b2lkIHRoZSBwZXJmb3JtYW5jZSBwZW5hbHR5IG9mIHRoZSBUU0MgZW11bGF0aW9uLCBhbGxvdyBh CitjZXJ0YWluIGFtb3VudCBvZiBqaXR0ZXIgb2YgdGhlIG1lYXN1cmVkIENQVSBmcmVxdWVuY3kg b24gdGhlIGhvc3RzIHRoZSBkb21VCitpcyBzdXBwb3NlZCB0byBydW4gb24uCisKID1pdGVtIEI8 bG9jYWx0aW1lPUJPT0xFQU4+CiAKIFNldCB0aGUgcmVhbCB0aW1lIGNsb2NrIHRvIGxvY2FsIHRp bWUgb3IgdG8gVVRDLiBGYWxzZSAoMCkgYnkgZGVmYXVsdCwKZGlmZiAtLWdpdCBhL2RvY3Mvc3Bl Y3MvbGlieGMtbWlncmF0aW9uLXN0cmVhbS5wYW5kb2MgYi9kb2NzL3NwZWNzL2xpYnhjLW1pZ3Jh dGlvbi1zdHJlYW0ucGFuZG9jCmluZGV4IDczNDIxZmYzOTMuLjg1NjcyZDlmMDUgMTAwNjQ0Ci0t LSBhL2RvY3Mvc3BlY3MvbGlieGMtbWlncmF0aW9uLXN0cmVhbS5wYW5kb2MKKysrIGIvZG9jcy9z cGVjcy9saWJ4Yy1taWdyYXRpb24tc3RyZWFtLnBhbmRvYwpAQCAtMyw3ICszLDcgQEAKICAgQW5k cmV3IENvb3BlciA8PGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+PgogICBXZW4gQ29uZ3lhbmcg PDx3ZW5jeUBjbi5mdWppdHN1LmNvbT4+CiAgIFlhbmcgSG9uZ3lhbmcgPDxob25neWFuZy55YW5n QGVhc3lzdGFjay5jbj4+Ci0lIFJldmlzaW9uIDIKKyUgUmV2aXNpb24gMwogCiBJbnRyb2R1Y3Rp b24KID09PT09PT09PT09PQpAQCAtMjMxLDcgKzIzMSw5IEBAIHR5cGUgICAgICAgICAweDAwMDAw MDAwOiBFTkQKIAogICAgICAgICAgICAgIDB4MDAwMDAwMEY6IENIRUNLUE9JTlRfRElSVFlfUEZO X0xJU1QgKFNlY29uZGFyeSAtPiBQcmltYXJ5KQogCi0gICAgICAgICAgICAgMHgwMDAwMDAxMCAt IDB4N0ZGRkZGRkY6IFJlc2VydmVkIGZvciBmdXR1cmUgX21hbmRhdG9yeV8KKyAgICAgICAgICAg ICAweDAwMDAwMDEwOiBWVFNDX1RPTEVSQU5DRV9LSFoKKworICAgICAgICAgICAgIDB4MDAwMDAw MTEgLSAweDdGRkZGRkZGOiBSZXNlcnZlZCBmb3IgZnV0dXJlIF9tYW5kYXRvcnlfCiAgICAgICAg ICAgICAgcmVjb3Jkcy4KIAogICAgICAgICAgICAgIDB4ODAwMDAwMDAgLSAweEZGRkZGRkZGOiBS ZXNlcnZlZCBmb3IgZnV0dXJlIF9vcHRpb25hbF8KQEAgLTYyNCw2ICs2MjYsMjMgQEAgVGhlIGNv dW50IG9mIHBmbnMgaXM6IHJlY29yZC0+bGVuZ3RoL3NpemVvZih1aW50NjRfdCkuCiAKIFxjbGVh cnBhZ2UKIAorVlRTQ19UT0xFUkFOQ0VfS0haCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK K0RvbWFpbiBUU0MgaW5mb3JtYXRpb24sIGFzIGFjY2Vzc2VkIGJ5IHRoZQorWEVOXF9ET01DVExc X3tnZXQsc2V0fVxfdnRzY1xfa2h6XF90b2xlcmFuY2UgaHlwZXJjYWxsIHN1Yi1vcHMuCisKKyAg ICAgMCAgICAgMSAgICAgMiAgICAgMyAgICAgNCAgICAgNSAgICAgNiAgICAgNyBvY3RldAorICAg ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAg IHwgdG9sZXJhbmNlICAgICAgICAgICAgICB8IHJlc2VydmVkICAgICAgICAgICAgICAgfAorICAg ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworCitG aWVsZCAgICAgICAgICAgIERlc2NyaXB0aW9uCistLS0tLS0tLS0tLSAgICAgIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQordG9sZXJhbmNlICAgICAg ICBBbW91bnQgb2YgSml0dGVyIHRoZSBkb21VIGNhbiBoYW5kbGUgYWZ0ZXIgbWlncmF0aW9uLgor CitcY2xlYXJwYWdlCisKIExheW91dAogPT09PT09CiAKQEAgLTY3NSwxMCArNjk0LDE0IEBAIEEg dHlwaWNhbCBzYXZlIHJlY29yZCBmb3IgYW4geDg2IEhWTSBndWVzdCBpbWFnZSB3b3VsZCBsb29r IGxpa2U6CiA0LiBUU0NcX0lORk8KIDUuIEhWTVxfUEFSQU1TCiA2LiBIVk1cX0NPTlRFWFQKKzcu IFZUU0NcX1RPTEVSQU5DRVxfS0haCiAKIEhWTVxfUEFSQU1TIG11c3QgcHJlY2VkZSBIVk1cX0NP TlRFWFQsIGFzIGNlcnRhaW4gcGFyYW1ldGVycyBjYW4gYWZmZWN0CiB0aGUgdmFsaWRpdHkgb2Yg YXJjaGl0ZWN0dXJhbCBzdGF0ZSBpbiB0aGUgY29udGV4dC4KIAorVlRTQ1xfVE9MRVJBTkNFXF9L SFogbXVzdCBwcmVjZWRlIFRTQ1xfSU5GTyBiZWNhdXNlIHRoZSBkZWNpc2lvbiB0bworZW11bGF0 ZSBUU0MgZGVwZW5kcyBvbiB0aGUgdG9sZXJhbmNlIHZhbHVlLgorCiAKIExlZ2FjeSBJbWFnZXMg KHg4NiBvbmx5KQogPT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS90b29scy9s aWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCmlu ZGV4IDU0M2FiZmNiMzQuLmQwYzU0NDJmMWQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL2luY2x1 ZGUveGVuY3RybC5oCisrKyBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCkBAIC0xMzU1 LDYgKzEzNTUsMTQgQEAgaW50IHhjX2RvbWFpbl9zZXRfdGltZV9vZmZzZXQoeGNfaW50ZXJmYWNl ICp4Y2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkb21pZCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgdGltZV9vZmZzZXRfc2Vjb25kcyk7 CiAKK2ludCB4Y19kb21haW5fc2V0X3Z0c2NfdG9sZXJhbmNlX2toeih4Y19pbnRlcmZhY2UgKnhj aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkb21pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB2dHNjX3RvbGVy YW5jZV9raHopOworCitpbnQgeGNfZG9tYWluX2dldF92dHNjX3RvbGVyYW5jZV9raHooeGNfaW50 ZXJmYWNlICp4Y2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMy X3QgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg KnZ0c2NfdG9sZXJhbmNlX2toeik7CisKIGludCB4Y19kb21haW5fc2V0X3RzY19pbmZvKHhjX2lu dGVyZmFjZSAqeGNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZG9taWQs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB0c2NfbW9kZSwKZGlmZiAtLWdp dCBhL3Rvb2xzL2xpYnhjL3hjX2RvbWFpbi5jIGIvdG9vbHMvbGlieGMveGNfZG9tYWluLmMKaW5k ZXggZWEzZGYxZWYzMS4uNzc2YTgxZmRjNiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfZG9t YWluLmMKKysrIGIvdG9vbHMvbGlieGMveGNfZG9tYWluLmMKQEAgLTg0Nyw2ICs4NDcsMzEgQEAg aW50IHhjX2RvbWFpbl9kaXNhYmxlX21pZ3JhdGUoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90 IGRvbWlkKQogICAgIHJldHVybiBkb19kb21jdGwoeGNoLCAmZG9tY3RsKTsKIH0KIAoraW50IHhj X2RvbWFpbl9zZXRfdnRzY190b2xlcmFuY2Vfa2h6KHhjX2ludGVyZmFjZSAqeGNoLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRvbWlkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHZ0c2NfdG9sZXJhbmNlX2toeikK K3sKKyAgICBERUNMQVJFX0RPTUNUTDsKKyAgICBkb21jdGwuY21kID0gWEVOX0RPTUNUTF9zZXRf dnRzY190b2xlcmFuY2Vfa2h6OworICAgIGRvbWN0bC5kb21haW4gPSBkb21pZDsKKyAgICBkb21j dGwudS52dHNjX3RvbGVyYW5jZV9raHoudG9sZXJhbmNlID0gdnRzY190b2xlcmFuY2Vfa2h6Owor ICAgIHJldHVybiBkb19kb21jdGwoeGNoLCAmZG9tY3RsKTsKK30KKworaW50IHhjX2RvbWFpbl9n ZXRfdnRzY190b2xlcmFuY2Vfa2h6KHhjX2ludGVyZmFjZSAqeGNoLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRvbWlkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICp2dHNjX3RvbGVyYW5jZV9raHopCit7CisgICAg aW50IHJjOworICAgIERFQ0xBUkVfRE9NQ1RMOworICAgIGRvbWN0bC5jbWQgPSBYRU5fRE9NQ1RM X2dldF92dHNjX3RvbGVyYW5jZV9raHo7CisgICAgZG9tY3RsLmRvbWFpbiA9IGRvbWlkOworICAg IHJjID0gZG9fZG9tY3RsKHhjaCwgJmRvbWN0bCk7CisgICAgaWYgKCByYyA9PSAwICkKKyAgICAg ICAgKnZ0c2NfdG9sZXJhbmNlX2toeiA9IGRvbWN0bC51LnZ0c2NfdG9sZXJhbmNlX2toei50b2xl cmFuY2U7CisgICAgcmV0dXJuIHJjOworfQorCiBpbnQgeGNfZG9tYWluX3NldF90c2NfaW5mbyh4 Y19pbnRlcmZhY2UgKnhjaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRv bWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdHNjX21vZGUsCmRpZmYg LS1naXQgYS90b29scy9saWJ4Yy94Y19zcl9jb21tb25feDg2LmMgYi90b29scy9saWJ4Yy94Y19z cl9jb21tb25feDg2LmMKaW5kZXggOThmMWNlZjMwZi4uYTM5Y2U2OGNhZSAxMDA2NDQKLS0tIGEv dG9vbHMvbGlieGMveGNfc3JfY29tbW9uX3g4Ni5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX3NyX2Nv bW1vbl94ODYuYwpAQCAtMSw2ICsxLDI2IEBACiAjaW5jbHVkZSAieGNfc3JfY29tbW9uX3g4Ni5o IgogCi1pbnQgd3JpdGVfdHNjX2luZm8oc3RydWN0IHhjX3NyX2NvbnRleHQgKmN0eCkKK3N0YXRp YyBpbnQgd3JpdGVfdnRzY190b2xlcmFuY2Vfa2h6KHN0cnVjdCB4Y19zcl9jb250ZXh0ICpjdHgp Cit7CisgICAgeGNfaW50ZXJmYWNlICp4Y2ggPSBjdHgtPnhjaDsKKyAgICBzdHJ1Y3QgeGNfc3Jf cmVjX3Z0c2NfdG9sZXJhbmNlX2toeiB0c2MgPSB7IDAgfTsKKyAgICBzdHJ1Y3QgeGNfc3JfcmVj b3JkIHJlYyA9CisgICAgeworICAgICAgICAudHlwZSA9IFJFQ19UWVBFX1ZUU0NfVE9MRVJBTkNF X0tIWiwKKyAgICAgICAgLmxlbmd0aCA9IHNpemVvZih0c2MpLAorICAgICAgICAuZGF0YSA9ICZ0 c2MKKyAgICB9OworCisgICAgaWYgKCB4Y19kb21haW5fZ2V0X3Z0c2NfdG9sZXJhbmNlX2toeih4 Y2gsIGN0eC0+ZG9taWQsICZ0c2MudG9sZXJhbmNlKSA8IDAgKQorICAgIHsKKyAgICAgICAgUEVS Uk9SKCJVbmFibGUgdG8gb2J0YWluIHZUU0MgaW5mb3JtYXRpb24iKTsKKyAgICAgICAgcmV0dXJu IC0xOworICAgIH0KKworICAgIHJldHVybiB3cml0ZV9yZWNvcmQoY3R4LCAmcmVjKTsKK30KKwor c3RhdGljIGludCB3cml0ZV90c2NfaW5mbyhzdHJ1Y3QgeGNfc3JfY29udGV4dCAqY3R4KQogewog ICAgIHhjX2ludGVyZmFjZSAqeGNoID0gY3R4LT54Y2g7CiAgICAgc3RydWN0IHhjX3NyX3JlY190 c2NfaW5mbyB0c2MgPSB7IDAgfTsKQEAgLTIxLDYgKzQxLDE4IEBAIGludCB3cml0ZV90c2NfaW5m byhzdHJ1Y3QgeGNfc3JfY29udGV4dCAqY3R4KQogICAgIHJldHVybiB3cml0ZV9yZWNvcmQoY3R4 LCAmcmVjKTsKIH0KIAoraW50IHdyaXRlX3RzYyhzdHJ1Y3QgeGNfc3JfY29udGV4dCAqY3R4KQor eworICAgIGludCByYzsKKworICAgIC8qIFNlbmQgdG9sZXJhbmNlIGJlZm9yZSB0c2NfaW5mbyAq LworICAgIHJjID0gd3JpdGVfdnRzY190b2xlcmFuY2Vfa2h6KGN0eCk7CisgICAgaWYgKCByYyAp CisgICAgICAgIHJldHVybiByYzsKKworICAgIHJldHVybiB3cml0ZV90c2NfaW5mbyhjdHgpOwor fQorCiBpbnQgaGFuZGxlX3RzY19pbmZvKHN0cnVjdCB4Y19zcl9jb250ZXh0ICpjdHgsIHN0cnVj dCB4Y19zcl9yZWNvcmQgKnJlYykKIHsKICAgICB4Y19pbnRlcmZhY2UgKnhjaCA9IGN0eC0+eGNo OwpAQCAtNDMsNiArNzUsMjggQEAgaW50IGhhbmRsZV90c2NfaW5mbyhzdHJ1Y3QgeGNfc3JfY29u dGV4dCAqY3R4LCBzdHJ1Y3QgeGNfc3JfcmVjb3JkICpyZWMpCiAgICAgcmV0dXJuIDA7CiB9CiAK K2ludCBoYW5kbGVfdnRzY190b2xlcmFuY2Vfa2h6KHN0cnVjdCB4Y19zcl9jb250ZXh0ICpjdHgs IHN0cnVjdCB4Y19zcl9yZWNvcmQgKnJlYykKK3sKKyAgICB4Y19pbnRlcmZhY2UgKnhjaCA9IGN0 eC0+eGNoOworICAgIHN0cnVjdCB4Y19zcl9yZWNfdnRzY190b2xlcmFuY2Vfa2h6ICp0c2MgPSBy ZWMtPmRhdGE7CisKKyAgICBpZiAoIHJlYy0+bGVuZ3RoICE9IHNpemVvZigqdHNjKSApCisgICAg eworICAgICAgICBFUlJPUigiVlRTQ19UT0xFUkFOQ0VfS0haIHJlY29yZCB3cm9uZyBzaXplOiBs ZW5ndGggJXUsIGV4cGVjdGVkICV6dSIsCisgICAgICAgICAgICAgIHJlYy0+bGVuZ3RoLCBzaXpl b2YoKnRzYykpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgaWYgKCB4Y19kb21h aW5fc2V0X3Z0c2NfdG9sZXJhbmNlX2toeih4Y2gsIGN0eC0+ZG9taWQsIHRzYy0+dG9sZXJhbmNl KSApCisgICAgeworICAgICAgICBQRVJST1IoIlVuYWJsZSB0byBzZXQgdlRTQyBpbmZvcm1hdGlv biIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKKwog LyoKICAqIExvY2FsIHZhcmlhYmxlczoKICAqIG1vZGU6IEMKZGlmZiAtLWdpdCBhL3Rvb2xzL2xp YnhjL3hjX3NyX2NvbW1vbl94ODYuaCBiL3Rvb2xzL2xpYnhjL3hjX3NyX2NvbW1vbl94ODYuaApp bmRleCAxZDQyZGE5YWYyLi5jODVmMzI4ZGRjIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19z cl9jb21tb25feDg2LmgKKysrIGIvdG9vbHMvbGlieGMveGNfc3JfY29tbW9uX3g4Ni5oCkBAIC00 LDEwICs0LDE1IEBACiAjaW5jbHVkZSAieGNfc3JfY29tbW9uLmgiCiAKIC8qCi0gKiBPYnRhaW5z IGEgZG9tYWlucyBUU0MgaW5mb3JtYXRpb24gZnJvbSBYZW4gYW5kIHdyaXRlcyBhIFRTQ19JTkZP IHJlY29yZAotICogaW50byB0aGUgc3RyZWFtLgorICogT2J0YWlucyBhIGRvbWFpbnMgVFNDIGlu Zm9ybWF0aW9uIGZyb20gWGVuIGFuZCB3cml0ZXMgYSBUU0NfSU5GTworICogYW5kIGEgcmVjb3Jk IFZUU0NfVE9MRVJBTkNFX0tIWiBpbnRvIHRoZSBzdHJlYW0uCiAgKi8KLWludCB3cml0ZV90c2Nf aW5mbyhzdHJ1Y3QgeGNfc3JfY29udGV4dCAqY3R4KTsKK2ludCB3cml0ZV90c2Moc3RydWN0IHhj X3NyX2NvbnRleHQgKmN0eCk7CisKKy8qCisgKiBQYXJzZXMgYSBWVFNDX1RPTEVSQU5DRV9LSFog cmVjb3JkIGFuZCBhcHBsaWVzIHRoZSByZXN1bHQgdG8gdGhlIGRvbWFpbi4KKyAqLworaW50IGhh bmRsZV92dHNjX3RvbGVyYW5jZV9raHooc3RydWN0IHhjX3NyX2NvbnRleHQgKmN0eCwgc3RydWN0 IHhjX3NyX3JlY29yZCAqcmVjKTsKIAogLyoKICAqIFBhcnNlcyBhIFRTQ19JTkZPIHJlY29yZCBh bmQgYXBwbGllcyB0aGUgcmVzdWx0IHRvIHRoZSBkb21haW4uCmRpZmYgLS1naXQgYS90b29scy9s aWJ4Yy94Y19zcl9yZXN0b3JlX3g4Nl9odm0uYyBiL3Rvb2xzL2xpYnhjL3hjX3NyX3Jlc3RvcmVf eDg2X2h2bS5jCmluZGV4IDIyN2M0ODU1M2UuLmVhNjExNGQxZGQgMTAwNjQ0Ci0tLSBhL3Rvb2xz L2xpYnhjL3hjX3NyX3Jlc3RvcmVfeDg2X2h2bS5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX3NyX3Jl c3RvcmVfeDg2X2h2bS5jCkBAIC0xNzgsNiArMTc4LDkgQEAgc3RhdGljIGludCB4ODZfaHZtX3By b2Nlc3NfcmVjb3JkKHN0cnVjdCB4Y19zcl9jb250ZXh0ICpjdHgsCiAgICAgY2FzZSBSRUNfVFlQ RV9IVk1fUEFSQU1TOgogICAgICAgICByZXR1cm4gaGFuZGxlX2h2bV9wYXJhbXMoY3R4LCByZWMp OwogCisgICAgY2FzZSBSRUNfVFlQRV9WVFNDX1RPTEVSQU5DRV9LSFo6CisgICAgICAgIHJldHVy biBoYW5kbGVfdnRzY190b2xlcmFuY2Vfa2h6KGN0eCwgcmVjKTsKKwogICAgIGRlZmF1bHQ6CiAg ICAgICAgIHJldHVybiBSRUNPUkRfTk9UX1BST0NFU1NFRDsKICAgICB9CmRpZmYgLS1naXQgYS90 b29scy9saWJ4Yy94Y19zcl9yZXN0b3JlX3g4Nl9wdi5jIGIvdG9vbHMvbGlieGMveGNfc3JfcmVz dG9yZV94ODZfcHYuYwppbmRleCBkODFkZmRjY2E2Li43NjUyMmJhNGZhIDEwMDY0NAotLS0gYS90 b29scy9saWJ4Yy94Y19zcl9yZXN0b3JlX3g4Nl9wdi5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX3Ny X3Jlc3RvcmVfeDg2X3B2LmMKQEAgLTEwNzksNiArMTA3OSw5IEBAIHN0YXRpYyBpbnQgeDg2X3B2 X3Byb2Nlc3NfcmVjb3JkKHN0cnVjdCB4Y19zcl9jb250ZXh0ICpjdHgsCiAgICAgY2FzZSBSRUNf VFlQRV9UU0NfSU5GTzoKICAgICAgICAgcmV0dXJuIGhhbmRsZV90c2NfaW5mbyhjdHgsIHJlYyk7 CiAKKyAgICBjYXNlIFJFQ19UWVBFX1ZUU0NfVE9MRVJBTkNFX0tIWjoKKyAgICAgICAgcmV0dXJu IGhhbmRsZV92dHNjX3RvbGVyYW5jZV9raHooY3R4LCByZWMpOworCiAgICAgZGVmYXVsdDoKICAg ICAgICAgcmV0dXJuIFJFQ09SRF9OT1RfUFJPQ0VTU0VEOwogICAgIH0KZGlmZiAtLWdpdCBhL3Rv b2xzL2xpYnhjL3hjX3NyX3NhdmVfeDg2X2h2bS5jIGIvdG9vbHMvbGlieGMveGNfc3Jfc2F2ZV94 ODZfaHZtLmMKaW5kZXggOTdhOGM0OTgwNy4uZWJlMzkzMzhkNCAxMDA2NDQKLS0tIGEvdG9vbHMv bGlieGMveGNfc3Jfc2F2ZV94ODZfaHZtLmMKKysrIGIvdG9vbHMvbGlieGMveGNfc3Jfc2F2ZV94 ODZfaHZtLmMKQEAgLTE5NSw3ICsxOTUsNyBAQCBzdGF0aWMgaW50IHg4Nl9odm1fZW5kX29mX2No ZWNrcG9pbnQoc3RydWN0IHhjX3NyX2NvbnRleHQgKmN0eCkKICAgICBpbnQgcmM7CiAKICAgICAv KiBXcml0ZSB0aGUgVFNDIHJlY29yZC4gKi8KLSAgICByYyA9IHdyaXRlX3RzY19pbmZvKGN0eCk7 CisgICAgcmMgPSB3cml0ZV90c2MoY3R4KTsKICAgICBpZiAoIHJjICkKICAgICAgICAgcmV0dXJu IHJjOwogCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19zcl9zYXZlX3g4Nl9wdi5jIGIvdG9v bHMvbGlieGMveGNfc3Jfc2F2ZV94ODZfcHYuYwppbmRleCBmZjVlZmU5NTRiLi4zODlkMmZkNzY5 IDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19zcl9zYXZlX3g4Nl9wdi5jCisrKyBiL3Rvb2xz L2xpYnhjL3hjX3NyX3NhdmVfeDg2X3B2LmMKQEAgLTExMDQsNyArMTEwNCw3IEBAIHN0YXRpYyBp bnQgeDg2X3B2X2VuZF9vZl9jaGVja3BvaW50KHN0cnVjdCB4Y19zcl9jb250ZXh0ICpjdHgpCiB7 CiAgICAgaW50IHJjOwogCi0gICAgcmMgPSB3cml0ZV90c2NfaW5mbyhjdHgpOworICAgIHJjID0g d3JpdGVfdHNjKGN0eCk7CiAgICAgaWYgKCByYyApCiAgICAgICAgIHJldHVybiByYzsKIApkaWZm IC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfc3Jfc3RyZWFtX2Zvcm1hdC5oIGIvdG9vbHMvbGlieGMv eGNfc3Jfc3RyZWFtX2Zvcm1hdC5oCmluZGV4IDE1ZmYxYzdlZmIuLmU4MjQ5NTY5ZDEgMTAwNjQ0 Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX3NyX3N0cmVhbV9mb3JtYXQuaAorKysgYi90b29scy9saWJ4 Yy94Y19zcl9zdHJlYW1fZm9ybWF0LmgKQEAgLTc2LDYgKzc2LDcgQEAgc3RydWN0IHhjX3NyX3Jo ZHIKICNkZWZpbmUgUkVDX1RZUEVfVkVSSUZZICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAw ZFUKICNkZWZpbmUgUkVDX1RZUEVfQ0hFQ0tQT0lOVCAgICAgICAgICAgICAgICAgMHgwMDAwMDAw ZVUKICNkZWZpbmUgUkVDX1RZUEVfQ0hFQ0tQT0lOVF9ESVJUWV9QRk5fTElTVCAgMHgwMDAwMDAw ZlUKKyNkZWZpbmUgUkVDX1RZUEVfVlRTQ19UT0xFUkFOQ0VfS0haICAgICAgICAgMHgwMDAwMDAx MFUKIAogI2RlZmluZSBSRUNfVFlQRV9PUFRJT05BTCAgICAgICAgICAgICAweDgwMDAwMDAwVQog CkBAIC0xMzEsNiArMTMyLDE0IEBAIHN0cnVjdCB4Y19zcl9yZWNfaHZtX3BhcmFtc19lbnRyeQog ICAgIHVpbnQ2NF90IHZhbHVlOwogfTsKIAorLyogVlRTQ19UT0xFUkFOQ0VfS0haICovCitzdHJ1 Y3QgeGNfc3JfcmVjX3Z0c2NfdG9sZXJhbmNlX2toegoreworICAgIHVpbnQzMl90IHRvbGVyYW5j ZTsKKyAgICB1aW50MzJfdCBfcmVzMTsKK307CisKKwogc3RydWN0IHhjX3NyX3JlY19odm1fcGFy YW1zCiB7CiAgICAgdWludDMyX3QgY291bnQ7CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4 bC5oIGIvdG9vbHMvbGlieGwvbGlieGwuaAppbmRleCBlY2EwZWEyYzUwLi5lNTUzZjZmZTAzIDEw MDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bC5oCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsLmgK QEAgLTM0Nyw2ICszNDcsMTIgQEAKICNkZWZpbmUgTElCWExfSEFWRV9CVUlMRElORk9fQk9PVExP QURFUiAxCiAjZGVmaW5lIExJQlhMX0hBVkVfQlVJTERJTkZPX0JPT1RMT0FERVJfQVJHUyAxCiAK Ky8qCisgKiBMSUJYTF9IQVZFX1ZUU0NfVE9MRVJBTkNFX0tIWiBpbmRpY2F0ZXMgdGhhdCBsaWJ4 bF9kb21haW5fYnVpbGRfaW5mbworICogaGFzIHRoZSB2dHNjX3RvbGVyYW5jZV9raHogZmllbGQu CisgKi8KKyNkZWZpbmUgTElCWExfSEFWRV9WVFNDX1RPTEVSQU5DRV9LSFogMQorCiAvKgogICog bGlieGwgQUJJIGNvbXBhdGliaWxpdHkKICAqCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4 bF90eXBlcy5pZGwgYi90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKaW5kZXggMzUwMzgxMjBj YS4uZjYwY2ZjNjFkNSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCisr KyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbApAQCAtNDY2LDYgKzQ2Niw3IEBAIGxpYnhs X2RvbWFpbl9idWlsZF9pbmZvID0gU3RydWN0KCJkb21haW5fYnVpbGRfaW5mbyIsWwogICAgICgi dmNwdV9zb2Z0X2FmZmluaXR5IiwgQXJyYXkobGlieGxfYml0bWFwLCAibnVtX3ZjcHVfc29mdF9h ZmZpbml0eSIpKSwKICAgICAoIm51bWFfcGxhY2VtZW50IiwgIGxpYnhsX2RlZmJvb2wpLAogICAg ICgidHNjX21vZGUiLCAgICAgICAgbGlieGxfdHNjX21vZGUpLAorICAgICgidnRzY190b2xlcmFu Y2Vfa2h6IiwgdWludDMyKSwKICAgICAoIm1heF9tZW1rYiIsICAgICAgIE1lbUtCKSwKICAgICAo InRhcmdldF9tZW1rYiIsICAgIE1lbUtCKSwKICAgICAoInZpZGVvX21lbWtiIiwgICAgIE1lbUtC KSwKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3g4Ni5jIGIvdG9vbHMvbGlieGwvbGli eGxfeDg2LmMKaW5kZXggZDgyMDEzZjZlZC4uZmFmODI3MTNmZiAxMDA2NDQKLS0tIGEvdG9vbHMv bGlieGwvbGlieGxfeDg2LmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfeDg2LmMKQEAgLTMxNyw2 ICszMTcsOCBAQCBpbnQgbGlieGxfX2FyY2hfZG9tYWluX2NyZWF0ZShsaWJ4bF9fZ2MgKmdjLCBs aWJ4bF9kb21haW5fY29uZmlnICpkX2NvbmZpZywKICAgICBkZWZhdWx0OgogICAgICAgICBhYm9y dCgpOwogICAgIH0KKyAgICB4Y19kb21haW5fc2V0X3Z0c2NfdG9sZXJhbmNlX2toeihjdHgtPnhj aCwgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZF9jb25maWct PmJfaW5mby52dHNjX3RvbGVyYW5jZV9raHopOwogICAgIHhjX2RvbWFpbl9zZXRfdHNjX2luZm8o Y3R4LT54Y2gsIGRvbWlkLCB0c2NfbW9kZSwgMCwgMCwgMCk7CiAgICAgaWYgKGxpYnhsX2RlZmJv b2xfdmFsKGRfY29uZmlnLT5iX2luZm8uZGlzYWJsZV9taWdyYXRlKSkKICAgICAgICAgeGNfZG9t YWluX2Rpc2FibGVfbWlncmF0ZShjdHgtPnhjaCwgZG9taWQpOwpkaWZmIC0tZ2l0IGEvdG9vbHMv bWlzYy9NYWtlZmlsZSBiL3Rvb2xzL21pc2MvTWFrZWZpbGUKaW5kZXggZWFhMjg3OTNlZi4uMmIw ODZlNTc1OCAxMDA2NDQKLS0tIGEvdG9vbHMvbWlzYy9NYWtlZmlsZQorKysgYi90b29scy9taXNj L01ha2VmaWxlCkBAIC0zNiw2ICszNiw3IEBAIElOU1RBTExfU0JJTiArPSAkKElOU1RBTExfU0JJ Ti15KQogCiAjIEV2ZXJ5dGhpbmcgdG8gYmUgaW5zdGFsbGVkIGluIGEgcHJpdmF0ZSBiaW4vCiBJ TlNUQUxMX1BSSVZCSU4gICAgICAgICAgICAgICAgKz0geGVucHZuZXRib290CitJTlNUQUxMX1BS SVZCSU4gICAgICAgICAgICAgICAgKz0geGVuLXZ0c2MKIAogIyBFdmVyeXRoaW5nIHRvIGJlIGlu c3RhbGxlZAogVEFSR0VUU19BTEwgOj0gJChJTlNUQUxMX0JJTikgJChJTlNUQUxMX1NCSU4pICQo SU5TVEFMTF9QUklWQklOKQpAQCAtMTEyLDYgKzExMyw5IEBAIHhlbi1saXZlcGF0Y2g6IHhlbi1s aXZlcGF0Y2gubwogeGVuLWRpYWc6IHhlbi1kaWFnLm8KIAkkKENDKSAkKExERkxBR1MpIC1vICRA ICQ8ICQoTERMSUJTX2xpYnhlbmN0cmwpICQoQVBQRU5EX0xERkxBR1MpCiAKK3hlbi12dHNjOiB4 ZW4tdnRzYy5vCisJJChDQykgJChMREZMQUdTKSAtbyAkQCAkPCAkKExETElCU19saWJ4ZW5jdHJs KSAkKEFQUEVORF9MREZMQUdTKQorCiB4ZW4tbG93bWVtZDogeGVuLWxvd21lbWQubwogCSQoQ0Mp ICQoTERGTEFHUykgLW8gJEAgJDwgJChMRExJQlNfbGlieGVuZXZ0Y2huKSAkKExETElCU19saWJ4 ZW5jdHJsKSAkKExETElCU19saWJ4ZW5zdG9yZSkgJChBUFBFTkRfTERGTEFHUykKIApkaWZmIC0t Z2l0IGEvdG9vbHMvbWlzYy94ZW4tdnRzYy5jIGIvdG9vbHMvbWlzYy94ZW4tdnRzYy5jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmJlNDllN2M3YjYKLS0tIC9kZXYvbnVs bAorKysgYi90b29scy9taXNjL3hlbi12dHNjLmMKQEAgLTAsMCArMSwxMDggQEAKKy8qIENvdWxk IGJlIG1lcmdlZCBpbnRvIHhlbi1kaWFnLmM/ICovCisKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgor I2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGli Lmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8eGVuY3RybC5oPgorCitzdGF0aWMg dWludDMyX3QgZG9taWQ7CitzdGF0aWMgdWludDMyX3QgdHNjX21vZGU7CitzdGF0aWMgdWludDY0 X3QgZWxhcHNlZF9uc2VjOworc3RhdGljIHVpbnQzMl90IGd0c2Nfa2h6Oworc3RhdGljIHVpbnQz Ml90IHZ0c2NfdG9sZXJhbmNlX2toejsKK3N0YXRpYyB1aW50MzJfdCBpbmNhcm5hdGlvbjsKK3N0 YXRpYyB1aW50MzJfdCBuZXdfdnRzY190b2xlcmFuY2Vfa2h6Oworc3RhdGljIHhjX3BoeXNpbmZv X3QgcGh5c2luZm87CisKK3N0YXRpYyB2b2lkIHNob3dfaGVscCh2b2lkKQoreworICAgIGZwcmlu dGYoc3RkZXJyLCAiVXNhZ2U6IHhlbi12dHNjIDxkb21pZD4gW3Z0c2NfdG9sZXJhbmNlXVxuIik7 Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisgICAgc3RydWN0IHhj X2ludGVyZmFjZV9jb3JlICp4Y2g7CisgICAgaW50IG1vZGVfc2V0ID0gMDsKKyAgICBpbnQgcmM7 CisKKyAgICBpZiAoYXJnYyA8IDIgfHwgYXJnYyA+IDMgfHwgc3RyY21wKCItaCIsIGFyZ3ZbMV0p ID09IDApCisgICAgeworICAgICAgICBzaG93X2hlbHAoKTsKKyAgICAgICAgcmV0dXJuIDA7Cisg ICAgfQorICAgIGRvbWlkID0gYXRvbChhcmd2WzFdKTsKKyAgICBpZiAoYXJnYyA9PSAzKQorICAg IHsKKyAgICAgICAgdW5zaWduZWQgbG9uZyB2YWw7CisKKyAgICAgICAgdmFsID0gYXRvbChhcmd2 WzJdKTsKKyAgICAgICAgaWYgKCB2YWwgPiBVSU5UMzJfTUFYICkKKyAgICAgICAgeworICAgICAg ICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICAgICJFcnJvcjogdmFsdWUg Zm9yIHZ0c2NfdG9sZXJhbmNlIG11c3QgYmV0d2VlbiAwIGFuZCAldVxuIiwgVUlOVDMyX01BWCk7 CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgICAgICBuZXdfdnRzY190b2xl cmFuY2Vfa2h6ID0gdmFsOworICAgICAgICBpZiAoIGRvbWlkICkKKyAgICAgICAgICAgIG1vZGVf c2V0ID0gMTsKKyAgICB9CisKKyAgICB4Y2ggPSB4Y19pbnRlcmZhY2Vfb3BlbigwLDAsMCk7Cisg ICAgaWYgKCAheGNoICkKKyAgICB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZmFpbGVkIHRv IGdldCB4Y2ggaGFuZGxlclxuIik7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworCisKKyAg ICBpZiAobW9kZV9zZXQpCisgICAgeworICAgICAgICByYyA9IHhjX2RvbWFpbl9zZXRfdnRzY190 b2xlcmFuY2Vfa2h6KHhjaCwgZG9taWQsIG5ld192dHNjX3RvbGVyYW5jZV9raHopOworICAgICAg ICBpZiAoIHJjICkKKyAgICAgICAgeworICAgICAgICAgICAgcGVycm9yKCJ4Y19kb21haW5fc2V0 X3Z0c2NfdG9sZXJhbmNlX2toeiIpOworICAgICAgICAgICAgZ290byBlcnI7CisgICAgICAgIH0K KyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgcmMgPSAgeGNfcGh5c2luZm8oeGNoLCAm cGh5c2luZm8pOworICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgeworICAgICAgICAgICAgcGVy cm9yKCJ4Y19waHlzaW5mbyIpOworICAgICAgICAgICAgZ290byBlcnI7CisgICAgICAgIH0KKwor ICAgICAgICByYyA9IHhjX2RvbWFpbl9nZXRfdnRzY190b2xlcmFuY2Vfa2h6KHhjaCwgZG9taWQs ICZ2dHNjX3RvbGVyYW5jZV9raHopOworICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgeworICAg ICAgICAgICAgcGVycm9yKCJ4Y19kb21haW5fZ2V0X3Z0c2NfdG9sZXJhbmNlX2toeiIpOworICAg ICAgICAgICAgZ290byBlcnI7CisgICAgICAgIH0KKyAgICAgICAgcmMgPSB4Y19kb21haW5fZ2V0 X3RzY19pbmZvKHhjaCwgZG9taWQsICZ0c2NfbW9kZSwgJmVsYXBzZWRfbnNlYywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZndHNjX2toeiwgJmluY2FybmF0aW9uKTsKKyAg ICAgICAgaWYgKCByYyApCisgICAgICAgIHsKKyAgICAgICAgICAgIHBlcnJvcigieGNfZG9tYWlu X2dldF90c2NfaW5mbyIpOworICAgICAgICAgICAgZ290byBlcnI7CisgICAgICAgIH0KKworICAg ICAgICBwcmludGYoImRvbWlkOiAlIiBQUkl1MzIgIlxuIgorICAgICAgICAgICAgICAgInRzY19t b2RlOiAlIiBQUkl1MzIgIlxuIgorICAgICAgICAgICAgICAgImVsYXBzZWRfbnNlYzogJSIgUFJJ dTY0ICJcbiIKKyAgICAgICAgICAgICAgICJndHNjX2toejogJSIgUFJJdTMyICJcbiIKKyAgICAg ICAgICAgICAgICJpbmNhcm5hdGlvbjogJSIgUFJJdTMyICJcbiIKKyAgICAgICAgICAgICAgICJ2 dHNjX3RvbGVyYW5jZV9raHo6ICUiIFBSSXUzMiAiXG4iCisgICAgICAgICAgICAgICAiY3B1X2to ejogJSIgUFJJdTMyICJcbiIsCisgICAgICAgICAgICAgICBkb21pZCwgdHNjX21vZGUsIGVsYXBz ZWRfbnNlYywgZ3RzY19raHosIGluY2FybmF0aW9uLAorICAgICAgICAgICAgICAgdnRzY190b2xl cmFuY2Vfa2h6LCBwaHlzaW5mby5jcHVfa2h6KTsKKyAgICB9CisKK2VycjoKKyAgICB4Y19pbnRl cmZhY2VfY2xvc2UoeGNoKTsKKworICAgIHJldHVybiAhIXJjOworfQpkaWZmIC0tZ2l0IGEvdG9v bHMvcHl0aG9uL3hlbi9taWdyYXRpb24vbGlieGMucHkgYi90b29scy9weXRob24veGVuL21pZ3Jh dGlvbi9saWJ4Yy5weQppbmRleCBmMjQ0NDhhOWVmLi40NTk3MzJjMmY3IDEwMDY0NAotLS0gYS90 b29scy9weXRob24veGVuL21pZ3JhdGlvbi9saWJ4Yy5weQorKysgYi90b29scy9weXRob24veGVu L21pZ3JhdGlvbi9saWJ4Yy5weQpAQCAtNjUsNiArNjUsNyBAQCBSRUNfVFlQRV94ODZfcHZfdmNw dV9tc3JzICAgICAgICAgICA9IDB4MDAwMDAwMGMKIFJFQ19UWVBFX3ZlcmlmeSAgICAgICAgICAg ICAgICAgICAgID0gMHgwMDAwMDAwZAogUkVDX1RZUEVfY2hlY2twb2ludCAgICAgICAgICAgICAg ICAgPSAweDAwMDAwMDBlCiBSRUNfVFlQRV9jaGVja3BvaW50X2RpcnR5X3Bmbl9saXN0ICA9IDB4 MDAwMDAwMGYKK1JFQ19UWVBFX3Z0c2NfdG9sZXJhbmNlX2toeiAgICAgICAgID0gMHgwMDAwMDAx MAogCiByZWNfdHlwZV90b19zdHIgPSB7CiAgICAgUkVDX1RZUEVfZW5kICAgICAgICAgICAgICAg ICAgICAgICAgOiAiRW5kIiwKQEAgLTgzLDYgKzg0LDcgQEAgcmVjX3R5cGVfdG9fc3RyID0gewog ICAgIFJFQ19UWVBFX3ZlcmlmeSAgICAgICAgICAgICAgICAgICAgIDogIlZlcmlmeSIsCiAgICAg UkVDX1RZUEVfY2hlY2twb2ludCAgICAgICAgICAgICAgICAgOiAiQ2hlY2twb2ludCIsCiAgICAg UkVDX1RZUEVfY2hlY2twb2ludF9kaXJ0eV9wZm5fbGlzdCAgOiAiQ2hlY2twb2ludCBkaXJ0eSBw Zm4gbGlzdCIKKyAgICBSRUNfVFlQRV92dHNjX3RvbGVyYW5jZV9raHogICAgICAgICA6ICJ2VFND IHRvbGVyYW5jZSIKIH0KIAogIyBwYWdlX2RhdGEKQEAgLTEyMCw2ICsxMjIsOSBAQCBUU0NfSU5G T19GT1JNQVQgICAgICAgICAgID0gIklJUUlJIgogSFZNX1BBUkFNU19FTlRSWV9GT1JNQVQgICA9 ICJRUSIKIEhWTV9QQVJBTVNfRk9STUFUICAgICAgICAgPSAiSUkiCiAKKyMgdnRzY190b2xlcmFu Y2Vfa2h6CitWVFNDX1RPTEVSQU5DRV9LSFpfRk9STUFUID0gIklJIgorCiBjbGFzcyBWZXJpZnlM aWJ4YyhWZXJpZnlCYXNlKToKICAgICAiIiIgVmVyaWZ5IGEgTGlieGMgdjIgc3RyZWFtICIiIgog CkBAIC00MjQsNiArNDI5LDIzIEBAIGNsYXNzIFZlcmlmeUxpYnhjKFZlcmlmeUJhc2UpOgogICAg ICAgICAiIiIgY2hlY2twb2ludCBkaXJ0eSBwZm4gbGlzdCAiIiIKICAgICAgICAgcmFpc2UgUmVj b3JkRXJyb3IoIkZvdW5kIGNoZWNrcG9pbnQgZGlydHkgcGZuIGxpc3QgcmVjb3JkIGluIHN0cmVh bSIpCiAKKyAgICBkZWYgdmVyaWZ5X3JlY29yZF92dHNjX3RvbGVyYW5jZV9raHooc2VsZiwgY29u dGVudCk6CisgICAgICAgICIiIiB0c2MgaW5mbyByZWNvcmQgIiIiCisKKyAgICAgICAgc3ogPSBj YWxjc2l6ZShWVFNDX1RPTEVSQU5DRV9LSFpfRk9STUFUKQorCisgICAgICAgIGlmIGxlbihjb250 ZW50KSAhPSBzejoKKyAgICAgICAgICAgIHJhaXNlIFJlY29yZEVycm9yKCJMZW5ndGggc2hvdWxk IGJlICV1IGJ5dGVzIiAlIChzeiwgKSkKKworICAgICAgICB0b2xlcmFuY2UsIHJlczEgPSB1bnBh Y2soVlRTQ19UT0xFUkFOQ0VfS0haX0ZPUk1BVCwgY29udGVudCkKKworICAgICAgICBpZiByZXMx ICE9IDA6CisgICAgICAgICAgICByYWlzZSBTdHJlYW1FcnJvcigiUmVzZXJ2ZWQgYml0cyBzZXQg aW4gVlRTQ19UT0xFUkFOQ0VfS0haOiAweCUwOHgiCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAlIChyZXMxLCApKQorCisgICAgICAgIHNlbGYuaW5mbygiICBUb2xlcmFuY2UgJXUiICUg KHRvbGVyYW5jZSkpCisKKwogCiByZWNvcmRfdmVyaWZpZXJzID0gewogICAgIFJFQ19UWVBFX2Vu ZDoKQEAgLTQ2Niw0ICs0ODgsNiBAQCByZWNvcmRfdmVyaWZpZXJzID0gewogICAgICAgICBWZXJp ZnlMaWJ4Yy52ZXJpZnlfcmVjb3JkX2NoZWNrcG9pbnQsCiAgICAgUkVDX1RZUEVfY2hlY2twb2lu dF9kaXJ0eV9wZm5fbGlzdDoKICAgICAgICAgVmVyaWZ5TGlieGMudmVyaWZ5X3JlY29yZF9jaGVj a3BvaW50X2RpcnR5X3Bmbl9saXN0LAorICAgIFJFQ19UWVBFX3Z0c2NfdG9sZXJhbmNlX2toejoK KyAgICAgICAgVmVyaWZ5TGlieGMudmVyaWZ5X3JlY29yZF92dHNjX3RvbGVyYW5jZV9raHosCiAg ICAgfQpkaWZmIC0tZ2l0IGEvdG9vbHMvcHl0aG9uL3hlbi9taWdyYXRpb24vdGVzdHMucHkgYi90 b29scy9weXRob24veGVuL21pZ3JhdGlvbi90ZXN0cy5weQppbmRleCAwMjZjZjM4MDEyLi4xZWI3 YzRhYmE1IDEwMDY0NAotLS0gYS90b29scy9weXRob24veGVuL21pZ3JhdGlvbi90ZXN0cy5weQor KysgYi90b29scy9weXRob24veGVuL21pZ3JhdGlvbi90ZXN0cy5weQpAQCAtMjYsNiArMjYsNyBA QCBjbGFzcyBUZXN0TGlieGModW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgICAgICAg ICAgICAgIChsaWJ4Yy5UU0NfSU5GT19GT1JNQVQsIDI0KSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAobGlieGMuSFZNX1BBUkFNU19FTlRSWV9GT1JNQVQsIDE2KSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAobGlieGMuSFZNX1BBUkFNU19GT1JNQVQsIDgpLAorICAgICAgICAgICAgICAg ICAgICAgICAgIChsaWJ4Yy5WVFNDX1RPTEVSQU5DRV9LSFpfRk9STUFULCAyNCksCiAgICAgICAg ICAgICAgICAgICAgICAgICAgKToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FsY3Np emUoZm10KSwgc3opCiAKZGlmZiAtLWdpdCBhL3Rvb2xzL3hsL3hsX3BhcnNlLmMgYi90b29scy94 bC94bF9wYXJzZS5jCmluZGV4IGY2ODQyNTQwY2EuLjYzNzhkZDRiM2UgMTAwNjQ0Ci0tLSBhL3Rv b2xzL3hsL3hsX3BhcnNlLmMKKysrIGIvdG9vbHMveGwveGxfcGFyc2UuYwpAQCAtMTEyNiw2ICsx MTI2LDkgQEAgdm9pZCBwYXJzZV9jb25maWdfZGF0YShjb25zdCBjaGFyICpjb25maWdfc291cmNl LAogICAgICAgICB9CiAgICAgfQogCisgICAgaWYgKCF4bHVfY2ZnX2dldF9sb25nKGNvbmZpZywg InZ0c2NfdG9sZXJhbmNlX2toeiIsICZsLCAwKSkKKyAgICAgICAgYl9pbmZvLT52dHNjX3RvbGVy YW5jZV9raHogPSBsOworCiAgICAgaWYgKCF4bHVfY2ZnX2dldF9sb25nKGNvbmZpZywgInJ0Y190 aW1lb2Zmc2V0IiwgJmwsIDApKQogICAgICAgICBiX2luZm8tPnJ0Y190aW1lb2Zmc2V0ID0gbDsK IApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWN0bC5jIGIveGVuL2FyY2gveDg2L2RvbWN0 bC5jCmluZGV4IDhmYmJmM2FlYjMuLjY0ZjUyN2RiN2EgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9kb21jdGwuYworKysgYi94ZW4vYXJjaC94ODYvZG9tY3RsLmMKQEAgLTk1OSw2ICs5NTksMTQg QEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKICAgICAgICAgfQogICAgICAgICBicmVhazsKIAorICAg IGNhc2UgWEVOX0RPTUNUTF9nZXRfdnRzY190b2xlcmFuY2Vfa2h6OgorICAgICAgICBkb21jdGwt PnUudnRzY190b2xlcmFuY2Vfa2h6LnRvbGVyYW5jZSA9IGQtPmFyY2gudnRzY190b2xlcmFuY2Vf a2h6OworICAgICAgICBicmVhazsKKworICAgIGNhc2UgWEVOX0RPTUNUTF9zZXRfdnRzY190b2xl cmFuY2Vfa2h6OgorICAgICAgICBkLT5hcmNoLnZ0c2NfdG9sZXJhbmNlX2toeiA9IGRvbWN0bC0+ dS52dHNjX3RvbGVyYW5jZV9raHoudG9sZXJhbmNlOworICAgICAgICBicmVhazsKKwogICAgIGNh c2UgWEVOX0RPTUNUTF9zdXBwcmVzc19zcHVyaW91c19wYWdlX2ZhdWx0czoKICAgICAgICAgZC0+ YXJjaC5zdXBwcmVzc19zcHVyaW91c19wYWdlX2ZhdWx0cyA9IDE7CiAgICAgICAgIGJyZWFrOwpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3RpbWUuYyBiL3hlbi9hcmNoL3g4Ni90aW1lLmMKaW5k ZXggMWE2ZmRlNjVkZC4uZjAwODM4OTQ5ZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3RpbWUu YworKysgYi94ZW4vYXJjaC94ODYvdGltZS5jCkBAIC0yMTMyLDYgKzIxMzIsNyBAQCB2b2lkIHRz Y19zZXRfaW5mbyhzdHJ1Y3QgZG9tYWluICpkLAogCiAgICAgc3dpdGNoICggZC0+YXJjaC50c2Nf bW9kZSA9IHRzY19tb2RlICkKICAgICB7CisgICAgICAgIGJvb2wgZGlzYWJsZV92dHNjOwogICAg ICAgICBib29sIGVuYWJsZV90c2Nfc2NhbGluZzsKIAogICAgIGNhc2UgVFNDX01PREVfREVGQVVM VDoKQEAgLTIxNDcsOCArMjE0OCwyNiBAQCB2b2lkIHRzY19zZXRfaW5mbyhzdHJ1Y3QgZG9tYWlu ICpkLAogICAgICAgICAgKiBXaGVuIGEgZ3Vlc3QgaXMgY3JlYXRlZCwgZ3RzY19raHogaXMgcGFz c2VkIGluIGFzIHplcm8sIG1ha2luZwogICAgICAgICAgKiBkLT5hcmNoLnRzY19raHogPT0gY3B1 X2toei4gVGh1cyBubyBuZWVkIHRvIGNoZWNrIGluY2FybmF0aW9uLgogICAgICAgICAgKi8KKyAg ICAgICAgZGlzYWJsZV92dHNjID0gZC0+YXJjaC50c2Nfa2h6ID09IGNwdV9raHo7CisKKyAgICAg ICAgaWYgKCB0c2NfbW9kZSA9PSBUU0NfTU9ERV9ERUZBVUxUICYmIGd0c2Nfa2h6ICYmCisgICAg ICAgICAgICAgZC0+YXJjaC52dHNjX3RvbGVyYW5jZV9raHogKQorICAgICAgICB7CisgICAgICAg ICAgICB1aW50MzJfdCBraHpfZGlmZjsKKworICAgICAgICAgICAga2h6X2RpZmYgPSBjcHVfa2h6 ID4gZ3RzY19raHogPworICAgICAgICAgICAgICAgICAgICAgICBjcHVfa2h6IC0gZ3RzY19raHog OiBndHNjX2toeiAtIGNwdV9raHo7CisgICAgICAgICAgICBkaXNhYmxlX3Z0c2MgPSBraHpfZGlm ZiA8PSBkLT5hcmNoLnZ0c2NfdG9sZXJhbmNlX2toejsKKworICAgICAgICAgICAgcHJpbnRrKFhF TkxPR19HX0lORk8gIiVzOiBkJXU6IGhvc3QgaGFzICVsdSBrSHosIgorICAgICAgICAgICAgICAg ICAgICIgZG9tVSBleHBlY3RzICV1IGtIeiwiCisgICAgICAgICAgICAgICAgICAgIiBkaWZmZXJl bmNlIG9mICV1IGlzICVzIHRvbGVyYW5jZSBvZiAldVxuIiwKKyAgICAgICAgICAgICAgICAgICBf X2Z1bmNfXywgZC0+ZG9tYWluX2lkLCBjcHVfa2h6LCBndHNjX2toeiwga2h6X2RpZmYsCisgICAg ICAgICAgICAgICAgICAgZGlzYWJsZV92dHNjID8gIndpdGhpbiIgOiAib3V0c2lkZSIsCisgICAg ICAgICAgICAgICAgICAgZC0+YXJjaC52dHNjX3RvbGVyYW5jZV9raHopOworICAgICAgICB9CiAg ICAgICAgIGlmICggdHNjX21vZGUgPT0gVFNDX01PREVfREVGQVVMVCAmJiBob3N0X3RzY19pc19z YWZlKCkgJiYKLSAgICAgICAgICAgICAoZC0+YXJjaC50c2Nfa2h6ID09IGNwdV9raHogfHwKKyAg ICAgICAgICAgICAoZGlzYWJsZV92dHNjIHx8CiAgICAgICAgICAgICAgIChpc19odm1fZG9tYWlu KGQpICYmCiAgICAgICAgICAgICAgICBodm1fZ2V0X3RzY19zY2FsaW5nX3JhdGlvKGQtPmFyY2gu dHNjX2toeikpKSApCiAgICAgICAgIHsKQEAgLTIyMzcsNiArMjI1Niw4IEBAIHN0YXRpYyB2b2lk IGR1bXBfc29mdHRzYyh1bnNpZ25lZCBjaGFyIGtleSkKICAgICAgICAgICAgIHByaW50aygiLG9m cz0lIyJQUkl4NjQsIGQtPmFyY2gudnRzY19vZmZzZXQpOwogICAgICAgICBpZiAoIGQtPmFyY2gu dHNjX2toeiApCiAgICAgICAgICAgICBwcmludGsoIixraHo9JSJQUkl1MzIsIGQtPmFyY2gudHNj X2toeik7CisgICAgICAgIGlmICggZC0+YXJjaC52dHNjX3RvbGVyYW5jZV9raHogKQorICAgICAg ICAgICAgcHJpbnRrKCIsdG9sPSUiUFJJdTE2LCBkLT5hcmNoLnZ0c2NfdG9sZXJhbmNlX2toeik7 CiAgICAgICAgIGlmICggZC0+YXJjaC5pbmNhcm5hdGlvbiApCiAgICAgICAgICAgICBwcmludGso IixpbmM9JSJQUkl1MzIsIGQtPmFyY2guaW5jYXJuYXRpb24pOwogI2lmICFkZWZpbmVkKE5ERUJV RykgfHwgZGVmaW5lZChDT05GSUdfUEVSRl9DT1VOVEVSUykKZGlmZiAtLWdpdCBhL3hlbi9pbmNs dWRlL2FzbS14ODYvZG9tYWluLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oCmluZGV4 IDQ3YWFkYzI2MDAuLjg1NGE2ZWNhYmQgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYv ZG9tYWluLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaApAQCAtMzc0LDYgKzM3 NCw3IEBAIHN0cnVjdCBhcmNoX2RvbWFpbgogICAgIHVpbnQ2NF90IHZ0c2Nfb2Zmc2V0OyAgICAv KiBhZGp1c3RtZW50IGZvciBzYXZlL3Jlc3RvcmUvbWlncmF0ZSAqLwogICAgIHVpbnQzMl90IHRz Y19raHo7ICAgICAgICAvKiBjYWNoZWQgZ3Vlc3Qga2h6IGZvciBjZXJ0YWluIGVtdWxhdGVkIG9y CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhcmR3YXJlIFRTQyBzY2FsaW5nIGNh c2VzICovCisgICAgdWludDMyX3QgdnRzY190b2xlcmFuY2Vfa2h6OyAvKiBkb21VIGhhbmRsZXMg dGhhdCBtdWNoIGppdHRlciBpbiBraHogdmFsdWUgKi8KICAgICBzdHJ1Y3QgdGltZV9zY2FsZSB2 dHNjX3RvX25zOyAvKiBzY2FsaW5nIGZvciBjZXJ0YWluIGVtdWxhdGVkIG9yCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFyZHdhcmUgVFNDIHNjYWxpbmcgY2FzZXMgKi8K ICAgICBzdHJ1Y3QgdGltZV9zY2FsZSBuc190b192dHNjOyAvKiBzY2FsaW5nIGZvciBjZXJ0YWlu IGVtdWxhdGVkIG9yCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmggYi94 ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmgKaW5kZXggZWM3YTg2MGFmYy4uZmUzMjVmZmU2NyAx MDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oCisrKyBiL3hlbi9pbmNsdWRl L3B1YmxpYy9kb21jdGwuaApAQCAtNzA2LDYgKzcwNiwxMyBAQCBzdHJ1Y3QgeGVuX2RvbWN0bF90 c2NfaW5mbyB7CiAgICAgdWludDY0X2FsaWduZWRfdCBlbGFwc2VkX25zZWM7CiB9OwogCisvKiBY RU5fRE9NQ1RMX2dldF92dHNjX3RvbGVyYW5jZV9raHogKi8KKy8qIFhFTl9ET01DVExfc2V0X3Z0 c2NfdG9sZXJhbmNlX2toeiAqLworc3RydWN0IHhlbl9kb21jdGxfdnRzY190b2xlcmFuY2Vfa2h6 IHsKKyAgICAvKiBJTi9PVVQgKi8KKyAgICB1aW50MzJfdCB0b2xlcmFuY2U7Cit9OworCiAvKiBY RU5fRE9NQ1RMX2dkYnN4X2d1ZXN0bWVtaW8gICAgICBndWVzdCBtZW0gaW8gKi8KIHN0cnVjdCB4 ZW5fZG9tY3RsX2dkYnN4X21lbWlvIHsKICAgICAvKiBJTiAqLwpAQCAtMTE3Miw2ICsxMTc5LDgg QEAgc3RydWN0IHhlbl9kb21jdGwgewogI2RlZmluZSBYRU5fRE9NQ1RMX3NvZnRfcmVzZXQgICAg ICAgICAgICAgICAgICAgIDc5CiAjZGVmaW5lIFhFTl9ET01DVExfc2V0X2dudHRhYl9saW1pdHMg ICAgICAgICAgICAgODAKICNkZWZpbmUgWEVOX0RPTUNUTF92dWFydF9vcCAgICAgICAgICAgICAg ICAgICAgICA4MQorI2RlZmluZSBYRU5fRE9NQ1RMX2dldF92dHNjX3RvbGVyYW5jZV9raHogICAg ICAgIDgyCisjZGVmaW5lIFhFTl9ET01DVExfc2V0X3Z0c2NfdG9sZXJhbmNlX2toeiAgICAgICAg ODMKICNkZWZpbmUgWEVOX0RPTUNUTF9nZGJzeF9ndWVzdG1lbWlvICAgICAgICAgICAgMTAwMAog I2RlZmluZSBYRU5fRE9NQ1RMX2dkYnN4X3BhdXNldmNwdSAgICAgICAgICAgICAxMDAxCiAjZGVm aW5lIFhFTl9ET01DVExfZ2Ric3hfdW5wYXVzZXZjcHUgICAgICAgICAgIDEwMDIKQEAgLTExOTks NiArMTIwOCw3IEBAIHN0cnVjdCB4ZW5fZG9tY3RsIHsKICAgICAgICAgc3RydWN0IHhlbl9kb21j dGxfc2V0dGltZW9mZnNldCAgICAgc2V0dGltZW9mZnNldDsKICAgICAgICAgc3RydWN0IHhlbl9k b21jdGxfZGlzYWJsZV9taWdyYXRlICAgZGlzYWJsZV9taWdyYXRlOwogICAgICAgICBzdHJ1Y3Qg eGVuX2RvbWN0bF90c2NfaW5mbyAgICAgICAgICB0c2NfaW5mbzsKKyAgICAgICAgc3RydWN0IHhl bl9kb21jdGxfdnRzY190b2xlcmFuY2Vfa2h6IHZ0c2NfdG9sZXJhbmNlX2toejsKICAgICAgICAg c3RydWN0IHhlbl9kb21jdGxfaHZtY29udGV4dCAgICAgICAgaHZtY29udGV4dDsKICAgICAgICAg c3RydWN0IHhlbl9kb21jdGxfaHZtY29udGV4dF9wYXJ0aWFsIGh2bWNvbnRleHRfcGFydGlhbDsK ICAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfYWRkcmVzc19zaXplICAgICAgYWRkcmVzc19zaXpl OwpkaWZmIC0tZ2l0IGEveGVuL3hzbS9mbGFzay9ob29rcy5jIGIveGVuL3hzbS9mbGFzay9ob29r cy5jCmluZGV4IDE4MDJkOGRmZTYuLmYwMWQxY2UzMDcgMTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxh c2svaG9va3MuYworKysgYi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKQEAgLTcxOCw5ICs3MTgsMTEg QEAgc3RhdGljIGludCBmbGFza19kb21jdGwoc3RydWN0IGRvbWFpbiAqZCwgaW50IGNtZCkKICAg ICAgICAgcmV0dXJuIGN1cnJlbnRfaGFzX3Blcm0oZCwgU0VDQ0xBU1NfRE9NQUlOMiwgRE9NQUlO Ml9fU0VUX0NQVUlEKTsKIAogICAgIGNhc2UgWEVOX0RPTUNUTF9nZXR0c2NpbmZvOgorICAgIGNh c2UgWEVOX0RPTUNUTF9nZXRfdnRzY190b2xlcmFuY2Vfa2h6OgogICAgICAgICByZXR1cm4gY3Vy cmVudF9oYXNfcGVybShkLCBTRUNDTEFTU19ET01BSU4yLCBET01BSU4yX19HRVRUU0MpOwogCiAg ICAgY2FzZSBYRU5fRE9NQ1RMX3NldHRzY2luZm86CisgICAgY2FzZSBYRU5fRE9NQ1RMX3NldF92 dHNjX3RvbGVyYW5jZV9raHo6CiAgICAgICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNF Q0NMQVNTX0RPTUFJTjIsIERPTUFJTjJfX1NFVFRTQyk7CiAKICAgICBjYXNlIFhFTl9ET01DVExf YXVkaXRfcDJtOgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcK aHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==