From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 27735 invoked from network); 5 Feb 2021 09:27:05 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 5 Feb 2021 09:27:05 -0000 Content-Type: multipart/mixed; boundary="===============8250246022972828486==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_pinephone-uboot=3A_update_crust_to_0=2E3=2E?= To: ml@inbox.vuxu.org From: jjsullivan5196 Reply-to: ml@inbox.vuxu.org Message-ID: Date: Fri, 05 Feb 2021 10:27:03 +0100 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============8250246022972828486== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IGpqc3VsbGl2YW41MTk2IGFnYWluc3QgbWFz dGVyIG9uIHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9q anN1bGxpdmFuNTE5Ni92b2lkLXBhY2thZ2VzIHBpbmVwaG9uZS1jcnVzdC0wLjMKaHR0cHM6Ly9n aXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzI4NTEyCgpwaW5lcGhvbmUt dWJvb3Q6IHVwZGF0ZSBjcnVzdCB0byAwLjMuCiMjIyMgSGF2ZSB0aGUgcmVzdWx0cyBvZiB0aGUg cHJvcG9zZWQgY2hhbmdlcyBiZWVuIHRlc3RlZD8NCi0gW3hdIEkgdXNlIHRoZSBwYWNrYWdlcyBh ZmZlY3RlZCBieSB0aGUgcHJvcG9zZWQgY2hhbmdlcyBvbiBhIHJlZ3VsYXIgYmFzaXMgYW5kIGNv bmZpcm0gdGhpcyBQUiB3b3JrcyBmb3IgbWUNCi0gWyBdIEkgZ2VuZXJhbGx5IGRvbid0IHVzZSB0 aGUgYWZmZWN0ZWQgcGFja2FnZXMgYnV0IGJyaWVmbHkgdGVzdGVkIHRoaXMgUFINCg0KVGhpcyBQ UiBidW1wcyB0aGUgY3J1c3QgcG93ZXIgbWFuYWdlbWVudCBmaXJtd2FyZSBmb3IgdGhlIHBpbmVw aG9uZSB0byBpdHMgbGF0ZXN0IHN0YWJsZSB2ZXJzaW9uLCBhbHNvIHVzZWQgaW4gcG9zdG1hcmtl dG9zLiANCg0KT3ZlcmFsbCB0aGlzIGlzIG1vc3RseSBidWdmaXhlcywgYXMgdGhlcmUgaGFzbid0 IGJlZW4gYSBzdGFibGUgdmVyc2lvbiBvZiB0aGUgZmlybXdhcmUgdW50aWwgbm93LiBJJ3ZlIG1h ZGUgc3VyZSB0aGUgZGV2aWNlIGJvb3RzIGFuZCBjYW4gcG93ZXIgb2ZmL3N1c3BlbmQvd2FrZSBw cm9wZXJseS4gSXQncyBwcmV0dHkgaW1wcmVzc2l2ZSBob3cgd2VsbCBpdCB3b3JrcywganVzdCBh IGZldyBtcyB0byB3YWtlIGJhY2sgdG8gZmlyZWZveC4gV2FrZS1vbi1tb2RlbSBhbHNvIHdvcmtz LCB3YWtlcyB1cCBvbiBmaXJzdCByaW5nIDpeKQ0KDQpBbHNvLCBzaW5jZSBwb3N0bWFya2V0b3Mg aGFzIGRyb3BwZWQgc21hZXVsJ3MgcGF0Y2hlcyB0byBhcm0tdHJ1c3RlZC1maXJtd2FyZSwgSSBm aWd1cmVkIGl0IHdvdWxkIGJlIGEgZ29vZCBpZGVhIHRvIGRvIHNvIGFuZCB1c2UgYSByZWxlYXNl IHZlcnNpb24gb2YgdGhlIGZpcm13YXJlLgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRo dWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzI4NTEyLnBhdGNoIGlzIGF0dGFj aGVk --===============8250246022972828486== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-pinephone-crust-0.3-28512.patch" RnJvbSBkMjcyYTFhNzczNDAxNzI0MjMyNjRjZmVlMGQ0NmU2NjE1ZWJkZDg2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIFN1bGxpdmFuIDxqc3VsbGl2YW5AY3N1bWIuZWR1PgpE YXRlOiBGcmksIDUgRmViIDIwMjEgMDA6MDg6MjIgLTA4MDAKU3ViamVjdDogW1BBVENIXSBwaW5l cGhvbmUtdWJvb3Q6IHVwZGF0ZSBjcnVzdCB0byAwLjMuCgpUaGlzIGNvbW1pdCBhbHNvIGRyb3Bz IHNtYWV1bCdzIHBhdGNoZXMgdG8gYXJtdGYsIHdoaWNoIHdlcmUgZHJvcHBlZCBieQpwb3N0bWFy a2V0b3MgYXMgd2VsbAoKaHR0cHM6Ly9naXRsYWIuY29tL3Bvc3RtYXJrZXRPUy9wbWFwb3J0cy8t L3RyZWUvbWFzdGVyL3RlbXAvYXJtLXRydXN0ZWQtZmlybXdhcmUKLS0tCiAuLi53aW5uZXItYXhw LURvLW5vdC1mb3JjZS1EUklWRVZCVVMtb24ucGF0Y2ggfCAgNDEgLQogLi4uLVdGSS1kdXJpbmct c3lzdGVtLXN0YXRlLXRyYW5zaXRpb25zLnBhdGNoIHwgIDc1IC0tCiAuLi5lbW92ZS1sZWdhY3kt bmF0aXZlLXBvd2VyLW1hbmFnZW1lbnQucGF0Y2ggfCA5MDIgLS0tLS0tLS0tLS0tLS0tLS0tCiAu Li5SR0UtYWxsd2lubmVyLUVuYWJsZS1VQVJULWF0LXJ1bnRpbWUucGF0Y2ggfCAgMjkgLQogLi4u R0UtYWxsd2lubmVyLUluY3JlYXNlLW1zZ2JveC10aW1lb3V0LnBhdGNoIHwgIDI3IC0KIC4uLi8w MDA2LUFURi1zZXQtZm5vLXN0YWNrLXByb3RlY3Rvci5wYXRjaCAgICB8ICAxMCAtCiBzcmNwa2dz L3BpbmVwaG9uZS11Ym9vdC90ZW1wbGF0ZSAgICAgICAgICAgICAgfCAgNDEgKy0KIDcgZmlsZXMg Y2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgMTExMSBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL3BpbmVwaG9uZS11Ym9vdC9wYXRjaGVzL2FybXRmLzAwMDEtZHJpdmVy cy1hbGx3aW5uZXItYXhwLURvLW5vdC1mb3JjZS1EUklWRVZCVVMtb24ucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL3BpbmVwaG9uZS11Ym9vdC9wYXRjaGVzL2FybXRmLzAwMDItYWxs d2lubmVyLVdGSS1kdXJpbmctc3lzdGVtLXN0YXRlLXRyYW5zaXRpb25zLnBhdGNoCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9waW5lcGhvbmUtdWJvb3QvcGF0Y2hlcy9hcm10Zi8wMDAzLWFs bHdpbm5lci1SZW1vdmUtbGVnYWN5LW5hdGl2ZS1wb3dlci1tYW5hZ2VtZW50LnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9waW5lcGhvbmUtdWJvb3QvcGF0Y2hlcy9hcm10Zi8wMDA0 LURPLU5PVC1NRVJHRS1hbGx3aW5uZXItRW5hYmxlLVVBUlQtYXQtcnVudGltZS5wYXRjaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcGluZXBob25lLXVib290L3BhdGNoZXMvYXJtdGYvMDAw NS1ETy1OT1QtTUVSR0UtYWxsd2lubmVyLUluY3JlYXNlLW1zZ2JveC10aW1lb3V0LnBhdGNoCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9waW5lcGhvbmUtdWJvb3QvcGF0Y2hlcy9hcm10Zi8w MDA2LUFURi1zZXQtZm5vLXN0YWNrLXByb3RlY3Rvci5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvcGluZXBob25lLXVib290L3BhdGNoZXMvYXJtdGYvMDAwMS1kcml2ZXJzLWFsbHdpbm5lci1h eHAtRG8tbm90LWZvcmNlLURSSVZFVkJVUy1vbi5wYXRjaCBiL3NyY3BrZ3MvcGluZXBob25lLXVi b290L3BhdGNoZXMvYXJtdGYvMDAwMS1kcml2ZXJzLWFsbHdpbm5lci1heHAtRG8tbm90LWZvcmNl LURSSVZFVkJVUy1vbi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjQyMWU1 OTNiYWYuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcGluZXBob25lLXVib290L3BhdGNoZXMv YXJtdGYvMDAwMS1kcml2ZXJzLWFsbHdpbm5lci1heHAtRG8tbm90LWZvcmNlLURSSVZFVkJVUy1v bi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLUZyb20gZDBmOTk5Yzk0ZTkz NmYwNWE3NjFiZmUyMTk4MzBkMGU4YzMzMWRlOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZy b206IFNhbXVlbCBIb2xsYW5kIDxzYW11ZWxAc2hvbGxhbmQub3JnPgotRGF0ZTogVGh1LCAxOCBK dW4gMjAyMCAxODoyNDozMiAtMDUwMAotU3ViamVjdDogW1BBVENIIDEvNV0gZHJpdmVyczogYWxs d2lubmVyOiBheHA6IERvIG5vdCBmb3JjZSBEUklWRVZCVVMgb24KLQotSXQgaXMgbm90IG5lY2Vz c2FyaWx5IHNhZmUgdG8gZW5hYmxlIERSSVZFVkJVUyBhdCBib290LiBGb3IgZXhhbXBsZSwKLWlu IGEgYmF0dGVyeS1wb3dlcmVkIGRldmljZSB3aGVyZSBWQlVTIGlzIHVzZWQgZm9yIGNoYXJnaW5n LCBlbmFibGluZwotRFJJVkVWQlVTIGF0IGJvb3QgY2F1c2VzIGEgbG9vcCBhbmQgcHJldmVudHMg Y2hhcmdpbmcgZnJvbSBhCi1kZWFkLWJhdHRlcnkgY29uZGl0aW9uLgotCi1GdXJ0aGVybW9yZSwg c2luY2UgYml0IDQgb2YgcmVnaXN0ZXIgMHg4ZiBpcyBjbGVhcmVkIGJ5IGRlZmF1bHQgYW5kIGlz Ci1wZXJzaXN0ZWQgYWNyb3NzIHJlYm9vdHMsIGl0IGlzIG5ldmVyIHVzZWZ1bCB0byBleHBsaWNp dGx5IGNsZWFyIGl0LgotRm9yIHRoaXMgcmVhc29uLCByZW1vdmUgdGhlIHdob2xlIGNvZGUgYmxv Y2suCi0KLVNpZ25lZC1vZmYtYnk6IFNhbXVlbCBIb2xsYW5kIDxzYW11ZWxAc2hvbGxhbmQub3Jn PgotQ2hhbmdlLUlkOiBJMjZkNzViMjI5ZjIzNWU4YzU2MzBlNzVhYWRjZmMwMmRjOWNhMjRiMgot LS0tCi0gZHJpdmVycy9hbGx3aW5uZXIvYXhwL2NvbW1vbi5jIHwgNyAtLS0tLS0tCi0gMSBmaWxl IGNoYW5nZWQsIDcgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9kcml2ZXJzL2FsbHdpbm5l ci9heHAvY29tbW9uLmMgYi9kcml2ZXJzL2FsbHdpbm5lci9heHAvY29tbW9uLmMKLWluZGV4IDEz NDM3ZmVjOC4uY2JkMmU4ODE4IDEwMDY0NAotLS0tIGEvZHJpdmVycy9hbGx3aW5uZXIvYXhwL2Nv bW1vbi5jCi0rKysgYi9kcml2ZXJzL2FsbHdpbm5lci9heHAvY29tbW9uLmMKLUBAIC0xMjAsMTMg KzEyMCw2IEBAIHZvaWQgYXhwX3NldHVwX3JlZ3VsYXRvcnMoY29uc3Qgdm9pZCAqZmR0KQotIAkJ cmV0dXJuOwotIAl9Ci0gCi0tCS8qIFRoaXMgYXBwbGllcyB0byBBWFA4MDMgb25seS4gKi8KLS0J aWYgKGZkdF9nZXRwcm9wKGZkdCwgbm9kZSwgIngtcG93ZXJzLGRyaXZlLXZidXMtZW4iLCBOVUxM KSkgewotLQkJYXhwX2NscmJpdHMoMHg4ZiwgQklUKDQpKTsKLS0JCWF4cF9zZXRiaXRzKDB4MzAs IEJJVCgyKSk7Ci0tCQlJTkZPKCJQTUlDOiBFbmFibGluZyBEUklWRVZCVVNcbiIpOwotLQl9Ci0t Ci0gCS8qIGRlc2NlbmQgaW50byB0aGUgInJlZ3VsYXRvcnMiIHN1Ym5vZGUgKi8KLSAJbm9kZSA9 IGZkdF9zdWJub2RlX29mZnNldChmZHQsIG5vZGUsICJyZWd1bGF0b3JzIik7Ci0gCWlmIChub2Rl IDwgMCkgewotLS0gCi0yLjI4LjAKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9waW5lcGhvbmUtdWJv b3QvcGF0Y2hlcy9hcm10Zi8wMDAyLWFsbHdpbm5lci1XRkktZHVyaW5nLXN5c3RlbS1zdGF0ZS10 cmFuc2l0aW9ucy5wYXRjaCBiL3NyY3BrZ3MvcGluZXBob25lLXVib290L3BhdGNoZXMvYXJtdGYv MDAwMi1hbGx3aW5uZXItV0ZJLWR1cmluZy1zeXN0ZW0tc3RhdGUtdHJhbnNpdGlvbnMucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyMTM4Njg4YzFkLi4wMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL3BpbmVwaG9uZS11Ym9vdC9wYXRjaGVzL2FybXRmLzAwMDItYWxsd2lubmVy LVdGSS1kdXJpbmctc3lzdGVtLXN0YXRlLXRyYW5zaXRpb25zLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsNzUgKzAsMCBAQAotRnJvbSBjNzQ0YjFiNjQwMDhmNGM4Y2Q2MjkyZGYwNThjYmJiYzZi YWY3ODBmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU2FtdWVsIEhvbGxhbmQgPHNh bXVlbEBzaG9sbGFuZC5vcmc+Ci1EYXRlOiBUaHUsIDcgTWF5IDIwMjAgMTk6MDU6NTcgLTA1MDAK LVN1YmplY3Q6IFtQQVRDSCAyLzVdIGFsbHdpbm5lcjogV0ZJIGR1cmluZyBzeXN0ZW0gc3RhdGUg dHJhbnNpdGlvbnMKLQotU2lnbmVkLW9mZi1ieTogU2FtdWVsIEhvbGxhbmQgPHNhbXVlbEBzaG9s bGFuZC5vcmc+Ci1DaGFuZ2UtSWQ6IEkxOWZlYTRkYjAzYTMyMDAwMTRkYTlkNDFlY2ZkYzdlNTQ4 OTNhY2EyCi0tLS0KLSBwbGF0L2FsbHdpbm5lci9jb21tb24vc3VueGlfcG0uYyB8IDIwICsrKysr KysrKystLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEwIGRl bGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvcGxhdC9hbGx3aW5uZXIvY29tbW9uL3N1bnhpX3Bt LmMgYi9wbGF0L2FsbHdpbm5lci9jb21tb24vc3VueGlfcG0uYwotaW5kZXggZTBmYTViM2VjLi4x N2VmN2JmZGEgMTAwNjQ0Ci0tLS0gYS9wbGF0L2FsbHdpbm5lci9jb21tb24vc3VueGlfcG0uYwot KysrIGIvcGxhdC9hbGx3aW5uZXIvY29tbW9uL3N1bnhpX3BtLmMKLUBAIC0xMiw3ICsxMiw2IEBA Ci0gI2luY2x1ZGUgPGNvbW1vbi9kZWJ1Zy5oPgotICNpbmNsdWRlIDxkcml2ZXJzL2FybS9jc3Mv Y3NzX3NjcGkuaD4KLSAjaW5jbHVkZSA8ZHJpdmVycy9hcm0vZ2ljdjIuaD4KLS0jaW5jbHVkZSA8 ZHJpdmVycy9kZWxheV90aW1lci5oPgotICNpbmNsdWRlIDxsaWIvbW1pby5oPgotICNpbmNsdWRl IDxsaWIvcHNjaS9wc2NpLmg+Ci0gI2luY2x1ZGUgPHBsYXQvY29tbW9uL3BsYXRmb3JtLmg+Ci1A QCAtMTM2LDggKzEzNSwxMCBAQCBzdGF0aWMgdm9pZCBfX2RlYWQyIHN1bnhpX3N5c3RlbV9vZmYo dm9pZCkKLSAJCS8qIFNlbmQgdGhlIHBvd2VyIGRvd24gcmVxdWVzdCB0byB0aGUgU0NQICovCi0g CQl1aW50MzJfdCByZXQgPSBzY3BpX3N5c19wb3dlcl9zdGF0ZShzY3BpX3N5c3RlbV9zaHV0ZG93 bik7Ci0gCi0tCQlpZiAocmV0ICE9IFNDUF9PSykKLS0JCQlFUlJPUigiUFNDSTogU0NQSSAlcyBm YWlsZWQ6ICVkXG4iLCAic2h1dGRvd24iLCByZXQpOwotKwkJaWYgKHJldCA9PSBTQ1BfT0spCi0r CQkJd2ZpKCk7Ci0rCi0rCQlFUlJPUigiUFNDSTogU0NQSSAlcyBmYWlsZWQ6ICVkXG4iLCAic2h1 dGRvd24iLCByZXQpOwotIAl9Ci0gCi0gCS8qIFR1cm4gb2ZmIGFsbCBzZWNvbmRhcnkgQ1BVcyAq LwotQEAgLTE0NSw5ICsxNDYsOCBAQCBzdGF0aWMgdm9pZCBfX2RlYWQyIHN1bnhpX3N5c3RlbV9v ZmYodm9pZCkKLSAKLSAJc3VueGlfcG93ZXJfZG93bigpOwotIAotLQl1ZGVsYXkoMTAwMCk7Ci0t CUVSUk9SKCJQU0NJOiBDYW5ub3QgdHVybiBvZmYgc3lzdGVtLCBoYWx0aW5nXG4iKTsKLSAJd2Zp KCk7Ci0rCUVSUk9SKCJQU0NJOiBDYW5ub3QgdHVybiBvZmYgc3lzdGVtLCBoYWx0aW5nXG4iKTsK LSAJcGFuaWMoKTsKLSB9Ci0gCi1AQCAtMTU5LDE5ICsxNTksMTkgQEAgc3RhdGljIHZvaWQgX19k ZWFkMiBzdW54aV9zeXN0ZW1fcmVzZXQodm9pZCkKLSAJCS8qIFNlbmQgdGhlIHN5c3RlbSByZXNl dCByZXF1ZXN0IHRvIHRoZSBTQ1AgKi8KLSAJCXVpbnQzMl90IHJldCA9IHNjcGlfc3lzX3Bvd2Vy X3N0YXRlKHNjcGlfc3lzdGVtX3JlYm9vdCk7Ci0gCi0tCQlpZiAocmV0ICE9IFNDUF9PSykKLS0J CQlFUlJPUigiUFNDSTogU0NQSSAlcyBmYWlsZWQ6ICVkXG4iLCAicmVib290IiwgcmV0KTsKLSsJ CWlmIChyZXQgPT0gU0NQX09LKQotKwkJCXdmaSgpOwotKwotKwkJRVJST1IoIlBTQ0k6IFNDUEkg JXMgZmFpbGVkOiAlZFxuIiwgInJlYm9vdCIsIHJldCk7Ci0gCX0KLSAKLSAJLyogUmVzZXQgdGhl IHdob2xlIHN5c3RlbSB3aGVuIHRoZSB3YXRjaGRvZyB0aW1lcyBvdXQgKi8KLSAJbW1pb193cml0 ZV8zMihTVU5YSV9XRE9HMF9DRkdfUkVHLCAxKTsKLSAJLyogRW5hYmxlIHRoZSB3YXRjaGRvZyB3 aXRoIHRoZSBzaG9ydGVzdCB0aW1lb3V0ICgwLjUgc2Vjb25kcykgKi8KLSAJbW1pb193cml0ZV8z MihTVU5YSV9XRE9HMF9NT0RFX1JFRywgKDAgPDwgNCkgfCAxKTsKLS0JLyogV2FpdCBmb3IgdHdp Y2UgdGhlIHdhdGNoZG9nIHRpbWVvdXQgYmVmb3JlIHBhbmlja2luZyAqLwotLQltZGVsYXkoMTAw MCk7Ci0gCi0tCUVSUk9SKCJQU0NJOiBTeXN0ZW0gcmVzZXQgZmFpbGVkXG4iKTsKLSAJd2ZpKCk7 Ci0rCUVSUk9SKCJQU0NJOiBTeXN0ZW0gcmVzZXQgZmFpbGVkXG4iKTsKLSAJcGFuaWMoKTsKLSB9 Ci0gCi0tLSAKLTIuMjguMAotCmRpZmYgLS1naXQgYS9zcmNwa2dzL3BpbmVwaG9uZS11Ym9vdC9w YXRjaGVzL2FybXRmLzAwMDMtYWxsd2lubmVyLVJlbW92ZS1sZWdhY3ktbmF0aXZlLXBvd2VyLW1h bmFnZW1lbnQucGF0Y2ggYi9zcmNwa2dzL3BpbmVwaG9uZS11Ym9vdC9wYXRjaGVzL2FybXRmLzAw MDMtYWxsd2lubmVyLVJlbW92ZS1sZWdhY3ktbmF0aXZlLXBvd2VyLW1hbmFnZW1lbnQucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxMjM3OGVjNTM5Li4wMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL3BpbmVwaG9uZS11Ym9vdC9wYXRjaGVzL2FybXRmLzAwMDMtYWxsd2lubmVy LVJlbW92ZS1sZWdhY3ktbmF0aXZlLXBvd2VyLW1hbmFnZW1lbnQucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSw5MDIgKzAsMCBAQAotRnJvbSA2Nzc2NzEyM2IzMWNmYmIyMDZlM2ViMmI3Y2E4NDU3 OTRlMDI1ZmZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU2FtdWVsIEhvbGxhbmQg PHNhbXVlbEBzaG9sbGFuZC5vcmc+Ci1EYXRlOiBTdW4sIDE3IE1heSAyMDIwIDE5OjEyOjI3IC0w NTAwCi1TdWJqZWN0OiBbUEFUQ0ggMy81XSBhbGx3aW5uZXI6IFJlbW92ZSBsZWdhY3kgbmF0aXZl IHBvd2VyIG1hbmFnZW1lbnQKLQotU2lnbmVkLW9mZi1ieTogU2FtdWVsIEhvbGxhbmQgPHNhbXVl bEBzaG9sbGFuZC5vcmc+Ci1DaGFuZ2UtSWQ6IElkODU3MzJkYjM1MmY4MTFkZDZkNWU2MDY0NjI0 YmI0NzUyYmRhMGYzCi0tLS0KLSBwbGF0L2FsbHdpbm5lci9jb21tb24vYWxsd2lubmVyLWNvbW1v bi5tayAgICAgfCAgIDEgLQotIHBsYXQvYWxsd2lubmVyL2NvbW1vbi9hcmlzY19vZmYuUyAgICAg ICAgICAgICB8IDExNSAtLS0tLS0tLS0tLS0tCi0gcGxhdC9hbGx3aW5uZXIvY29tbW9uL2luY2x1 ZGUvc3VueGlfcHJpdmF0ZS5oIHwgICA3IC0KLSBwbGF0L2FsbHdpbm5lci9jb21tb24vc3VueGlf YmwzMV9zZXR1cC5jICAgICAgfCAgIDMgLQotIHBsYXQvYWxsd2lubmVyL2NvbW1vbi9zdW54aV9j b21tb24uYyAgICAgICAgICB8ICA3NiAtLS0tLS0tLS0KLSBwbGF0L2FsbHdpbm5lci9jb21tb24v c3VueGlfY3B1X29wcy5jICAgICAgICAgfCAxMjMgLS0tLS0tLS0tLS0tLS0KLSBwbGF0L2FsbHdp bm5lci9jb21tb24vc3VueGlfcG0uYyAgICAgICAgICAgICAgfCAgODAgKysrLS0tLS0tCi0gLi4u L3N1bjUwaV9hNjQvaW5jbHVkZS9jb3JlX29mZl9hcmlzYy5oICAgICAgIHwgIDM5IC0tLS0tCi0g cGxhdC9hbGx3aW5uZXIvc3VuNTBpX2E2NC9zdW54aV9wb3dlci5jICAgICAgIHwgMTU2ICsrLS0t LS0tLS0tLS0tLS0tLQotIC4uLi9zdW41MGlfaDYvaW5jbHVkZS9jb3JlX29mZl9hcmlzYy5oICAg ICAgICB8ICAzOSAtLS0tLQotIHBsYXQvYWxsd2lubmVyL3N1bjUwaV9oNi9zdW54aV9wb3dlci5j ICAgICAgICB8ICAyNSAtLS0KLSAxMSBmaWxlcyBjaGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspLCA2 MjQgZGVsZXRpb25zKC0pCi0gZGVsZXRlIG1vZGUgMTAwNjQ0IHBsYXQvYWxsd2lubmVyL2NvbW1v bi9hcmlzY19vZmYuUwotIGRlbGV0ZSBtb2RlIDEwMDY0NCBwbGF0L2FsbHdpbm5lci9jb21tb24v c3VueGlfY3B1X29wcy5jCi0gZGVsZXRlIG1vZGUgMTAwNjQ0IHBsYXQvYWxsd2lubmVyL3N1bjUw aV9hNjQvaW5jbHVkZS9jb3JlX29mZl9hcmlzYy5oCi0gZGVsZXRlIG1vZGUgMTAwNjQ0IHBsYXQv YWxsd2lubmVyL3N1bjUwaV9oNi9pbmNsdWRlL2NvcmVfb2ZmX2FyaXNjLmgKLQotZGlmZiAtLWdp dCBhL3BsYXQvYWxsd2lubmVyL2NvbW1vbi9hbGx3aW5uZXItY29tbW9uLm1rIGIvcGxhdC9hbGx3 aW5uZXIvY29tbW9uL2FsbHdpbm5lci1jb21tb24ubWsKLWluZGV4IGU2MGViYzZmMi4uNjE3ZWI2 ZGUyIDEwMDY0NAotLS0tIGEvcGxhdC9hbGx3aW5uZXIvY29tbW9uL2FsbHdpbm5lci1jb21tb24u bWsKLSsrKyBiL3BsYXQvYWxsd2lubmVyL2NvbW1vbi9hbGx3aW5uZXItY29tbW9uLm1rCi1AQCAt MzEsNyArMzEsNiBAQCBCTDMxX1NPVVJDRVMJCSs9CWRyaXZlcnMvYWxsd2lubmVyL2F4cC9jb21t b24uYwkJXAotIAkJCQlwbGF0L2NvbW1vbi9wbGF0X2dpY3YyLmMJCVwKLSAJCQkJcGxhdC9jb21t b24vcGxhdF9wc2NpX2NvbW1vbi5jCQlcCi0gCQkJCSR7QVdfUExBVH0vY29tbW9uL3N1bnhpX2Js MzFfc2V0dXAuYwlcCi0tCQkJCSR7QVdfUExBVH0vY29tbW9uL3N1bnhpX2NwdV9vcHMuYwlcCi0g CQkJCSR7QVdfUExBVH0vY29tbW9uL3N1bnhpX3BtLmMJCVwKLSAJCQkJJHtBV19QTEFUfS8ke1BM QVR9L3N1bnhpX3Bvd2VyLmMJXAotIAkJCQkke0FXX1BMQVR9L2NvbW1vbi9zdW54aV9zZWN1cml0 eS5jCVwKLWRpZmYgLS1naXQgYS9wbGF0L2FsbHdpbm5lci9jb21tb24vYXJpc2Nfb2ZmLlMgYi9w bGF0L2FsbHdpbm5lci9jb21tb24vYXJpc2Nfb2ZmLlMKLWRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAotaW5kZXggZWQxMDgzMmM5Li4wMDAwMDAwMDAKLS0tLSBhL3BsYXQvYWxsd2lubmVyL2NvbW1v bi9hcmlzY19vZmYuUwotKysrIC9kZXYvbnVsbAotQEAgLTEsMTE1ICswLDAgQEAKLS0jIHR1cm5f b2ZmX2NvcmUuUwotLSMKLS0jIENvcHlyaWdodCAoYykgMjAxOCwgQW5kcmUgUHJ6eXdhcmEgPG9z cEBhbmRyZXAuZGU+Ci0tIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCi0t IwotLSMgT3BlblJJU0MgYXNzZW1ibHkgdG8gdHVybiBvZmYgYW4gQVJNIGNvcmUgb24gYW4gQWxs d2lubmVyIFNvQyBmcm9tCi0tIyB0aGUgYXJpc2MgbWFuYWdlbWVudCBjb250cm9sbGVyLgotLSMg R2VuZXJhdGUgYSBiaW5hcnkgcmVwcmVzZW50YXRpb24gd2l0aDoKLS0jICQgb3Ixay1lbGYtYXMg LWMgLW8gdHVybl9vZmZfY29yZS5vIHR1cm5fb2ZmX2NvcmUuUwotLSMgJCBvcjFrLWVsZi1vYmpj b3B5IC1PIGJpbmFyeSAtLXJldmVyc2UtYnl0ZXM9NCB0dXJuX29mZl9jb3JlLm8gXAotLSMgICB0 dXJuX29mZl9jb3JlLmJpbgotLSMgVGhlIGVuY29kZWQgaW5zdHJ1Y3Rpb25zIGdvIGludG8gYW4g YXJyYXkgZGVmaW5lZCBpbgotLSMgcGxhdC9hbGx3aW5uZXIvc3VuNTBpXyovaW5jbHVkZS9jb3Jl X29mZl9hcmlzYy5oLCB0byBiZSBoYW5kZWQgb2ZmIHRvCi0tIyB0aGUgYXJpc2MgcHJvY2Vzc29y LgotLSMKLS0jIFRoaXMgcm91dGluZSBpcyBtZWFudCB0byBiZSBjYWxsZWQgZGlyZWN0bHkgZnJv bSBhcmlzYyByZXNldCAocHV0IHRoZQotLSMgc3RhcnQgYWRkcmVzcyBpbiB0aGUgcmVzZXQgdmVj dG9yKSwgdG8gYmUgYWN0dWFsbHkgdHJpZ2dlcmVkIGJ5IHRoYXQKLS0jIHZlcnkgQVJNIGNvcmUg dG8gYmUgdHVybmVkIG9mZi4KLS0jIEl0IGV4cGVjdHMgdGhlIGNvcmUgbnVtYmVyIHByZXNlbnRl ZCBhcyBhIG1hc2sgaW4gdGhlIHVwcGVyIGhhbGYgb2YKLS0jIHIzLCBzbyB0byBiZSBwYXRjaGVk IGluIHRoZSBsb3dlciAxNiBiaXRzIG9mIHRoZSBmaXJzdCBpbnN0cnVjdGlvbiwKLS0jIG92ZXJ3 cml0aW5nIHRoZSAwIGluIHRoaXMgY29kZSBoZXJlLgotLSMgVGhlIGNvZGUgd2lsbCBkbyB0aGUg Zm9sbG93aW5nOgotLSMgLSBSZWFkIHRoZSBDX0NQVV9TVEFUVVMgcmVnaXN0ZXIsIHdoaWNoIGNv bnRhaW5zIHRoZSBzdGF0dXMgb2YgdGhlIFdGSQotLSMgICBsaW5lcyBvZiBlYWNoIG9mIHRoZSBm b3VyIEE1MyBjb3Jlcy4KLS0jIC0gTG9vcCB1bnRpbCB0aGUgY29yZSBpbiBxdWVzdGlvbiByZWFj aGVzIFdGSS4KLS0jIC0gVXNpbmcgdGhhdCBtYXNrLCBhY3RpdmF0ZSB0aGUgY29yZSBvdXRwdXQg Y2xhbXBzIGJ5IHNldHRpbmcgdGhlCi0tIyAgIHJlc3BlY3RpdmUgY29yZSBiaXQgaW4gQ1BVWF9Q V1JPRkZfR0FUSU5HX1JFRyAoMHgxZjAxNTAwKS4KLS0jICAgTm90ZSB0aGF0IHRoZSBjbGFtcCBm b3IgY29yZSAwIGNvdmVycyBtb3JlIHRoYW4ganVzdCB0aGUgY29yZSwgYWN0aXZhdGluZwotLSMg ICBpdCBoYW5ncyB0aGUgd2hvbGUgc3lzdGVtLiBTbyB3ZSBza2lwIHRoaXMgc3RlcCBmb3IgY29y ZSAwLgotLSMgLSBVc2luZyB0aGUgbmVnYXRlZCBtYXNrLCBhc3NlcnQgdGhlIGNvcmUncyByZXNl dCBsaW5lIGJ5IGNsZWFyaW5nIHRoZQotLSMgICByZXNwZWN0aXZlIGJpdCBpbiBDX1JTVF9DVFJM ICgweDFmMDFjMzApLgotLSMgLSBGaW5hbGx5IHR1cm4gb2ZmIHRoZSBjb3JlJ3MgcG93ZXIgc3dp dGNoIGJ5IHdyaXRpbmcgMHhmZiB0byB0aGUKLS0jICAgcmVzcGVjdGl2ZSBDUFV4X1BXUl9TV0lU Q0hfUkVHICgweDFmMDE1NDAgZmYuKQotLSMgLSBBc3NlcnQgdGhlIGFyaXNjJ3Mgb3duIHJlc2V0 IHRvIGVuZCBleGVjdXRpb24uCi0tIyAgIFRoaXMgYWxzbyBzaWduYWxzIG90aGVyIGFyaXNjIHVz ZXJzIHRoYXQgdGhlIGNoaXAgaXMgZnJlZSBhZ2Fpbi4KLS0jIFNvIGluIEMgdGhpcyB3b3VsZCBs b29rIGxpa2U6Ci0tIwl3aGlsZSAoIShyZWFkbCgweDE3MDAwMzApICYgKDFVIDw8IGNvcmVfbnIp KSkKLS0jCQk7Ci0tIwlpZiAoY29yZV9uciAhPSAwKQotLSMJCXdyaXRlbChyZWFkbCgweDFmMDE1 MDApIHwgKDFVIDw8IGNvcmVfbnIpLCAweDFmMDE1MDApOwotLSMJd3JpdGVsKHJlYWRsKDB4MWYw MWMzMCkgJiB+KDFVIDw8IGNvcmVfbnIpLCAweDFmMDFjMzApOwotLSMJd3JpdGVsKDB4ZmYsIDB4 MWYwMTU0MCArIChjb3JlX25yICogNCkpOwotLSMgKHVzaW5nIEE2NC9INSBhZGRyZXNzZXMpCi0t Ci0tLnRleHQKLS1fc3RhcnQ6Ci0tCWwubW92aGkJcjMsIDAJCQkJIyBGSVhVUCEgd2l0aCBjb3Jl IG1hc2sKLS0JbC5tb3ZoaSByMCwgMAkJCQkjIGNsZWFyIHIwCi0tCWwubW92aGkJcjEzLCAweDE3 MAkJCSMgcjEzOiBDUFVfQ0ZHX0JBU0U9MHgwMTcwMDAwMAotLXdhaXRfd2ZpOgotLQlsLmx3egly NSwgMHgzMChyMTMpCQkJIyBsb2FkIENfQ1BVX1NUQVRVUwotLQlsLmFuZAlyNSwgcjUsIHIzCQkJ IyBtYXNrIHJlcXVlc3RlZCBjb3JlCi0tCWwuc2ZlcQlyNSwgcjAJCQkJIyBpcyBpdCBub3QgeWV0 IGluIFdGST8KLS0JbC5iZgl3YWl0X3dmaQkJCSMgdHJ5IGFnYWluCi0tCi0tCWwuc3JsaQlyNiwg cjMsIDE2CQkJIyBtb3ZlIG1hc2sgdG8gbG93ZXIgMTYgYml0cwotLQlsLnNmZXFpCXI2LCAxCQkJ CSMgY29yZSAwIGlzIHNwZWNpYWwKLS0JbC5iZgkxZgkJCQkjIGRvbid0IHRvdWNoIHRoZSBiaXQg Zm9yIGNvcmUgMAotLQlsLm1vdmhpCXIxMywgMHgxZjAJCQkjIGFkZHJlc3Mgb2YgUl9DUFVDRkcg KGRlbGF5KQotLQlsLmx3eglyNSwgMHgxNTAwKHIxMykJCQkjIGNvcmUgb3V0cHV0IGNsYW1wcwot LQlsLm9yCXI1LCByNSwgcjYJCQkjIHNldCBiaXQgdG8gLi4uCi0tCWwuc3cJMHgxNTAwKHIxMyks IHI1CQkJIyAuLi4gYWN0aXZhdGUgZm9yIG91ciBjb3JlCi0tCi0tMToJbC5sd3oJcjUsIDB4MWMz MChyMTMpCQkJIyBDUFUgcG93ZXItb24gcmVzZXQKLS0JbC54b3JpCXI2LCByNiwgLTEJCQkjIG5l Z2F0ZSBjb3JlIG1hc2sKLS0JbC5hbmQJcjUsIHI1LCByNgkJCSMgY2xlYXIgYml0IHRvIC4uLgot LQlsLnN3CTB4MWMzMChyMTMpLCByNQkJCSMgLi4uIGFzc2VydCBmb3Igb3VyIGNvcmUKLS0KLS0J bC5mZjEJcjYsIHIzCQkJCSMgZ2V0IGNvcmUgbnVtYmVyIGZyb20gaGlnaCBtYXNrCi0tCWwuYWRk aQlyNiwgcjYsIC0xNwkJCSMgY29udmVydCB0byAwLTMKLS0JbC5zbGxpCXI2LCByNiwgMgkJCSMg cjU6IGNvcmUgbnVtYmVyKjQgKDAtMTIpCi0tCWwuYWRkCXI2LCByNiwgcjEzCQkJIyBhZGQgdG8g YmFzZSBhZGRyZXNzCi0tCWwub3JpCXI1LCByMCwgMHhmZgkJCSMgMHhmZiBtZWFucyBhbGwgc3dp dGNoZXMgb2ZmCi0tCWwuc3cJMHgxNTQwKHI2KSwgcjUJCQkjIGNvcmUgcG93ZXIgc3dpdGNoIHJl Z2lzdGVycwotLQotLXJlc2V0OglsLnN3CTB4MWMwMChyMTMpLHIwCQkJIyBwdWxsIGRvd24gb3Vy IG93biByZXNldCBsaW5lCi0tCi0tCWwuaglyZXNldAkJCQkjIGp1c3QgaW4gY2FzZSAuLi4uCi0t CWwubm9wCTB4MAkJCQkjIChkZWxheSBzbG90KQotLQotLSMgc2FtZSBhcyBhYm92ZSwgYnV0IHdp dGggdGhlIE1NSU8gYWRkcmVzc2VzIG1hdGNoaW5nIHRoZSBINiBTb0MKLS1fc3RhcnRfaDY6Ci0t CWwubW92aGkJcjMsIDAJCQkJIyBGSVhVUCEgd2l0aCBjb3JlIG1hc2sKLS0JbC5tb3ZoaSByMCwg MAkJCQkjIGNsZWFyIHIwCi0tCWwubW92aGkJcjEzLCAweDkwMQkJCSMgcjEzOiBDUFVfQ0ZHX0JB U0U9MHgwOTAxMDAwMAotLTE6Ci0tCWwubHd6CXI1LCAweDgwKHIxMykJCQkjIGxvYWQgQ19DUFVf U1RBVFVTCi0tCWwuYW5kCXI1LCByNSwgcjMJCQkjIG1hc2sgcmVxdWVzdGVkIGNvcmUKLS0JbC5z ZmVxCXI1LCByMAkJCQkjIGlzIGl0IG5vdCB5ZXQgaW4gV0ZJPwotLQlsLmJmCTFiCQkJCSMgdHJ5 IGFnYWluCi0tCi0tCWwuc3JsaQlyNiwgcjMsIDE2CQkJIyBtb3ZlIG1hc2sgdG8gbG93ZXIgMTYg Yml0cyhkcykKLS0JbC5zZmVxaQlyNiwgMQkJCQkjIGNvcmUgMCBpcyBzcGVjaWFsCi0tCWwuYmYJ MWYJCQkJIyBkb24ndCB0b3VjaCB0aGUgYml0IGZvciBjb3JlIDAKLS0JbC5tb3ZoaQlyMTMsIDB4 NzAwCQkJIyBhZGRyZXNzIG9mIFJfQ1BVQ0ZHIChkcykKLS0JbC5sd3oJcjUsIDB4MDQ0NChyMTMp CQkJIyBjb3JlIG91dHB1dCBjbGFtcHMKLS0JbC5vcglyNSwgcjUsIHI2CQkJIyBzZXQgYml0IHRv IC4uLgotLQlsLnN3CTB4MDQ0NChyMTMpLCByNQkJCSMgLi4uIGFjdGl2YXRlIGZvciBvdXIgY29y ZQotLQotLTE6CWwubHd6CXI1LCAweDA0NDAocjEzKQkJCSMgQ1BVIHBvd2VyLW9uIHJlc2V0Ci0t CWwueG9yaQlyNiwgcjYsIC0xCQkJIyBuZWdhdGUgY29yZSBtYXNrCi0tCWwuYW5kCXI1LCByNSwg cjYJCQkjIGNsZWFyIGJpdCB0byAuLi4KLS0JbC5zdwkweDA0NDAocjEzKSwgcjUJCQkjIC4uLiBh c3NlcnQgZm9yIG91ciBjb3JlCi0tCi0tCWwuZmYxCXI2LCByMwkJCQkjIGdldCBjb3JlIG51bWJl ciBmcm9tIGhpZ2ggbWFzawotLQlsLmFkZGkJcjYsIHI2LCAtMTcJCQkjIGNvbnZlcnQgdG8gMC0z Ci0tCWwuc2xsaQlyNiwgcjYsIDIJCQkjIHI1OiBjb3JlIG51bWJlcio0ICgwLTEyKQotLQlsLmFk ZAlyNiwgcjYsIHIxMwkJCSMgYWRkIHRvIGJhc2UgYWRkcmVzcwotLQlsLm9yaQlyNSwgcjAsIDB4 ZmYJCQkjIDB4ZmYgbWVhbnMgYWxsIHN3aXRjaGVzIG9mZgotLQlsLnN3CTB4MDQ1MChyNiksIHI1 CQkJIyBjb3JlIHBvd2VyIHN3aXRjaCByZWdpc3RlcnMKLS0KLS0xOglsLnN3CTB4MDQwMChyMTMp LHIwCQkJIyBwdWxsIGRvd24gb3VyIG93biByZXNldCBsaW5lCi0tCi0tCWwuagkxYgkJCQkjIGp1 c3QgaW4gY2FzZSAuLi4KLS0JbC5ub3AJMHgwCQkJCSMgKGRlbGF5IHNsb3QpCi1kaWZmIC0tZ2l0 IGEvcGxhdC9hbGx3aW5uZXIvY29tbW9uL2luY2x1ZGUvc3VueGlfcHJpdmF0ZS5oIGIvcGxhdC9h bGx3aW5uZXIvY29tbW9uL2luY2x1ZGUvc3VueGlfcHJpdmF0ZS5oCi1pbmRleCBkY2YzZGM5NjUu LjdiNmNmZjA3YyAxMDA2NDQKLS0tLSBhL3BsYXQvYWxsd2lubmVyL2NvbW1vbi9pbmNsdWRlL3N1 bnhpX3ByaXZhdGUuaAotKysrIGIvcGxhdC9hbGx3aW5uZXIvY29tbW9uL2luY2x1ZGUvc3VueGlf cHJpdmF0ZS5oCi1AQCAtOSwxNyArOSwxMCBAQAotIAotIHZvaWQgc3VueGlfY29uZmlndXJlX21t dV9lbDMoaW50IGZsYWdzKTsKLSAKLS12b2lkIHN1bnhpX2NwdV9vbih1X3JlZ2lzdGVyX3QgbXBp ZHIpOwotLXZvaWQgc3VueGlfY3B1X29mZih1X3JlZ2lzdGVyX3QgbXBpZHIpOwotLXZvaWQgc3Vu eGlfZGlzYWJsZV9zZWNvbmRhcnlfY3B1cyh1X3JlZ2lzdGVyX3QgcHJpbWFyeV9tcGlkcik7Ci0t dm9pZCBzdW54aV9wb3dlcl9kb3duKHZvaWQpOwotLQotIGludCBzdW54aV9wbWljX3NldHVwKHVp bnQxNl90IHNvY2lkLCBjb25zdCB2b2lkICpmZHQpOwotIHZvaWQgc3VueGlfc2VjdXJpdHlfc2V0 dXAodm9pZCk7Ci0gCi0gdWludDE2X3Qgc3VueGlfcmVhZF9zb2NfaWQodm9pZCk7Ci0tdm9pZCBz dW54aV9zZXRfZ3Bpb19vdXQoY2hhciBwb3J0LCBpbnQgcGluLCBib29sIGxldmVsX2hpZ2gpOwot IGludCBzdW54aV9pbml0X3BsYXRmb3JtX3JfdHdpKHVpbnQxNl90IHNvY2lkLCBib29sIHVzZV9y c2IpOwotLXZvaWQgc3VueGlfZXhlY3V0ZV9hcmlzY19jb2RlKHVpbnQzMl90ICpjb2RlLCBzaXpl X3Qgc2l6ZSwgdWludDE2X3QgcGFyYW0pOwotIAotICNlbmRpZiAvKiBTVU5YSV9QUklWQVRFX0gg Ki8KLWRpZmYgLS1naXQgYS9wbGF0L2FsbHdpbm5lci9jb21tb24vc3VueGlfYmwzMV9zZXR1cC5j IGIvcGxhdC9hbGx3aW5uZXIvY29tbW9uL3N1bnhpX2JsMzFfc2V0dXAuYwotaW5kZXggZTgzNmEz NDViLi5mZTUxMWQwMmMgMTAwNjQ0Ci0tLS0gYS9wbGF0L2FsbHdpbm5lci9jb21tb24vc3VueGlf YmwzMV9zZXR1cC5jCi0rKysgYi9wbGF0L2FsbHdpbm5lci9jb21tb24vc3VueGlfYmwzMV9zZXR1 cC5jCi1AQCAtMTAwLDkgKzEwMCw2IEBAIHZvaWQgYmwzMV9lYXJseV9wbGF0Zm9ybV9zZXR1cDIo dV9yZWdpc3Rlcl90IGFyZzAsIHVfcmVnaXN0ZXJfdCBhcmcxLAotIAlibDMzX2ltYWdlX2VwX2lu Zm8uc3BzciA9IFNQU1JfNjQoTU9ERV9FTDIsIE1PREVfU1BfRUxYLAotIAkJCQkJICBESVNBQkxF X0FMTF9FWENFUFRJT05TKTsKLSAJU0VUX1NFQ1VSSVRZX1NUQVRFKGJsMzNfaW1hZ2VfZXBfaW5m by5oLmF0dHIsIE5PTl9TRUNVUkUpOwotLQotLQkvKiBUdXJuIG9mZiBhbGwgc2Vjb25kYXJ5IENQ VXMgKi8KLS0Jc3VueGlfZGlzYWJsZV9zZWNvbmRhcnlfY3B1cyhyZWFkX21waWRyKCkpOwotIH0K LSAKLSB2b2lkIGJsMzFfcGxhdF9hcmNoX3NldHVwKHZvaWQpCi1kaWZmIC0tZ2l0IGEvcGxhdC9h bGx3aW5uZXIvY29tbW9uL3N1bnhpX2NvbW1vbi5jIGIvcGxhdC9hbGx3aW5uZXIvY29tbW9uL3N1 bnhpX2NvbW1vbi5jCi1pbmRleCAwY2ExOGFkYzMuLjYxODI2YzZhZiAxMDA2NDQKLS0tLSBhL3Bs YXQvYWxsd2lubmVyL2NvbW1vbi9zdW54aV9jb21tb24uYwotKysrIGIvcGxhdC9hbGx3aW5uZXIv Y29tbW9uL3N1bnhpX2NvbW1vbi5jCi1AQCAtODIsMzUgKzgyLDYgQEAgdWludDE2X3Qgc3VueGlf cmVhZF9zb2NfaWQodm9pZCkKLSAJcmV0dXJuIHJlZyA+PiAxNjsKLSB9Ci0gCi0tLyoKLS0gKiBD b25maWd1cmUgYSBnaXZlbiBwaW4gdG8gdGhlIEdQSU8tT1VUIGZ1bmN0aW9uIGFuZCBzZXRzIGl0 cyBsZXZlbC4KLS0gKiBUaGUgcG9ydCBpcyBnaXZlbiBhcyBhIGNhcGl0YWwgbGV0dGVyLCB0aGUg cGluIGlzIHRoZSBudW1iZXIgd2l0aGluCi0tICogdGhpcyBwb3J0IGdyb3VwLgotLSAqIFNvIHRv IHNldCBwaW4gUEM3IHRvIGhpZ2gsIHVzZTogc3VueGlfc2V0X2dwaW9fb3V0KCdDJywgNywgdHJ1 ZSk7Ci0tICovCi0tdm9pZCBzdW54aV9zZXRfZ3Bpb19vdXQoY2hhciBwb3J0LCBpbnQgcGluLCBi b29sIGxldmVsX2hpZ2gpCi0tewotLQl1aW50cHRyX3QgcG9ydF9iYXNlOwotLQotLQlpZiAocG9y dCA8ICdBJyB8fCBwb3J0ID4gJ0wnKQotLQkJcmV0dXJuOwotLQlpZiAocG9ydCA9PSAnTCcpCi0t CQlwb3J0X2Jhc2UgPSBTVU5YSV9SX1BJT19CQVNFOwotLQllbHNlCi0tCQlwb3J0X2Jhc2UgPSBT VU5YSV9QSU9fQkFTRSArIChwb3J0IC0gJ0EnKSAqIDB4MjQ7Ci0tCi0tCS8qIFNldCB0aGUgbmV3 IGxldmVsIGZpcnN0IGJlZm9yZSBjb25maWd1cmluZyB0aGUgcGluLiAqLwotLQlpZiAobGV2ZWxf aGlnaCkKLS0JCW1taW9fc2V0Yml0c18zMihwb3J0X2Jhc2UgKyAweDEwLCBCSVQocGluKSk7Ci0t CWVsc2UKLS0JCW1taW9fY2xyYml0c18zMihwb3J0X2Jhc2UgKyAweDEwLCBCSVQocGluKSk7Ci0t Ci0tCS8qIGNvbmZpZ3VyZSBwaW4gYXMgR1BJTyBvdXQgKDQoMykgYml0cyBwZXIgcGluLCAxOiBH UElPIG91dCAqLwotLQltbWlvX2NscnNldGJpdHNfMzIocG9ydF9iYXNlICsgKHBpbiAvIDgpICog NCwKLS0JCQkgICAweDcgPDwgKChwaW4gJSA4KSAqIDQpLAotLQkJCSAgIDB4MSA8PCAoKHBpbiAl IDgpICogNCkpOwotLX0KLS0KLSBpbnQgc3VueGlfaW5pdF9wbGF0Zm9ybV9yX3R3aSh1aW50MTZf dCBzb2NpZCwgYm9vbCB1c2VfcnNiKQotIHsKLSAJdWludDMyX3QgcGluX2Z1bmMgPSAweDc3Owot QEAgLTE2NSw1MCArMTM2LDMgQEAgaW50IHN1bnhpX2luaXRfcGxhdGZvcm1fcl90d2kodWludDE2 X3Qgc29jaWQsIGJvb2wgdXNlX3JzYikKLSAKLSAJcmV0dXJuIDA7Ci0gfQotLQotLS8qIFRoaXMg bG9jayBzeW5jaHJvbmlzZXMgYWNjZXNzIHRvIHRoZSBhcmlzYyBtYW5hZ2VtZW50IHByb2Nlc3Nv ci4gKi8KLS1ERUZJTkVfQkFLRVJZX0xPQ0soYXJpc2NfbG9jayk7Ci0tCi0tLyoKLS0gKiBUZWxs IHRoZSAiYXJpc2MiIFNDUCBjb3JlIChhbiBPcGVuUklTQyBjb3JlKSB0byBleGVjdXRlIHNvbWUg Y29kZS4KLS0gKiBXZSBkb24ndCBoYXZlIGFueSBzZXJ2aWNlIHJ1bm5pbmcgdGhlcmUsIHNvIHdl IHBsYWNlIHNvbWUgT3BlblJJU0MgY29kZQotLSAqIGluIFNSQU0sIHB1dCB0aGUgYWRkcmVzcyBv ZiB0aGF0IGludG8gdGhlIHJlc2V0IHZlY3RvciBhbmQgcmVsZWFzZSB0aGUKLS0gKiBhcmlzYyBy ZXNldCBsaW5lLiBUaGUgU0NQIHdpbGwgZXhlY3V0ZSB0aGF0IGNvZGUgYW5kIHB1bGwgdGhlIGxp bmUgdXAgYWdhaW4uCi0tICovCi0tdm9pZCBzdW54aV9leGVjdXRlX2FyaXNjX2NvZGUodWludDMy X3QgKmNvZGUsIHNpemVfdCBzaXplLCB1aW50MTZfdCBwYXJhbSkKLS17Ci0tCXVpbnRwdHJfdCBh cmlzY19yZXNldF92ZWMgPSBTVU5YSV9TUkFNX0EyX0JBU0UgKyAweDEwMDsKLS0KLS0JZG8gewot LQkJYmFrZXJ5X2xvY2tfZ2V0KCZhcmlzY19sb2NrKTsKLS0JCS8qIFdhaXQgdW50aWwgdGhlIGFy aXNjIGlzIGluIHJlc2V0IHN0YXRlLiAqLwotLQkJaWYgKCEobW1pb19yZWFkXzMyKFNVTlhJX1Jf Q1BVQ0ZHX0JBU0UpICYgQklUKDApKSkKLS0JCQlicmVhazsKLS0KLS0JCWJha2VyeV9sb2NrX3Jl bGVhc2UoJmFyaXNjX2xvY2spOwotLQl9IHdoaWxlICgxKTsKLS0KLS0JLyogUGF0Y2ggdXAgdGhl IGNvZGUgdG8gZmVlZCBpbiBhbiBpbnB1dCBwYXJhbWV0ZXIuICovCi0tCWNvZGVbMF0gPSAoY29k ZVswXSAmIH4weGZmZmYpIHwgcGFyYW07Ci0tCWNsZWFuX2RjYWNoZV9yYW5nZSgodWludHB0cl90 KWNvZGUsIHNpemUpOwotLQotLQkvKgotLQkgKiBUaGUgT3BlblJJU0MgdW5jb25kaXRpb25hbCBi cmFuY2ggaGFzIG9wY29kZSAwLCB0aGUgYnJhbmNoIG9mZnNldAotLQkgKiBpcyBpbiB0aGUgbG93 ZXIgMjYgYml0cywgY29udGFpbmluZyB0aGUgZGlzdGFuY2UgdG8gdGhlIHRhcmdldCwKLS0JICog aW4gaW5zdHJ1Y3Rpb24gZ3JhbnVsYXJpdHkgKDMyIGJpdHMpLgotLQkgKi8KLS0JbW1pb193cml0 ZV8zMihhcmlzY19yZXNldF92ZWMsICgodWludHB0cl90KWNvZGUgLSBhcmlzY19yZXNldF92ZWMp IC8gNCk7Ci0tCWNsZWFuX2RjYWNoZV9yYW5nZShhcmlzY19yZXNldF92ZWMsIDQpOwotLQotLQkv KiBEZS1hc3NlcnQgdGhlIGFyaXNjIHJlc2V0IGxpbmUgdG8gbGV0IGl0IHJ1bi4gKi8KLS0JbW1p b19zZXRiaXRzXzMyKFNVTlhJX1JfQ1BVQ0ZHX0JBU0UsIEJJVCgwKSk7Ci0tCi0tCS8qCi0tCSAq IFdlIHJlbGVhc2UgdGhlIGxvY2sgaGVyZSwgYWx0aG91Z2ggdGhlIGFyaXNjIGlzIHN0aWxsIGJ1 c3kuCi0tCSAqIEJ1dCBhcyBsb25nIGFzIGl0IHJ1bnMsIHRoZSByZXNldCBsaW5lIGlzIGhpZ2gs IHNvIG90aGVyIHVzZXJzCi0tCSAqIHdvbid0IGxlYXZlIHRoZSBsb29wIGFib3ZlLgotLQkgKiBP bmNlIGl0IGhhcyBmaW5pc2hlZCwgdGhlIGNvZGUgaXMgc3VwcG9zZWQgdG8gY2xlYXIgdGhlIHJl c2V0IGxpbmUsCi0tCSAqIHRvIHNpZ25hbCB0aGlzIHRvIG90aGVyIHVzZXJzLgotLQkgKi8KLS0J YmFrZXJ5X2xvY2tfcmVsZWFzZSgmYXJpc2NfbG9jayk7Ci0tfQotZGlmZiAtLWdpdCBhL3BsYXQv YWxsd2lubmVyL2NvbW1vbi9zdW54aV9jcHVfb3BzLmMgYi9wbGF0L2FsbHdpbm5lci9jb21tb24v c3VueGlfY3B1X29wcy5jCi1kZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDZlMjliNjli Zi4uMDAwMDAwMDAwCi0tLS0gYS9wbGF0L2FsbHdpbm5lci9jb21tb24vc3VueGlfY3B1X29wcy5j Ci0rKysgL2Rldi9udWxsCi1AQCAtMSwxMjMgKzAsMCBAQAotLS8qCi0tICogQ29weXJpZ2h0IChj KSAyMDE3LTIwMTksIEFSTSBMaW1pdGVkIGFuZCBDb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuCi0tICoKLS0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCi0t ICovCi0tCi0tI2luY2x1ZGUgPGFzc2VydC5oPgotLQotLSNpbmNsdWRlIDxwbGF0Zm9ybV9kZWYu aD4KLS0KLS0jaW5jbHVkZSA8YXJjaF9oZWxwZXJzLmg+Ci0tI2luY2x1ZGUgPGNvbW1vbi9kZWJ1 Zy5oPgotLSNpbmNsdWRlIDxkcml2ZXJzL2RlbGF5X3RpbWVyLmg+Ci0tI2luY2x1ZGUgPGxpYi9t bWlvLmg+Ci0tI2luY2x1ZGUgPGxpYi91dGlsc19kZWYuaD4KLS0jaW5jbHVkZSA8cGxhdC9jb21t b24vcGxhdGZvcm0uaD4KLS0KLS0jaW5jbHVkZSA8Y29yZV9vZmZfYXJpc2MuaD4KLS0jaW5jbHVk ZSA8c3VueGlfY3B1Y2ZnLmg+Ci0tI2luY2x1ZGUgPHN1bnhpX21tYXAuaD4KLS0jaW5jbHVkZSA8 c3VueGlfcHJpdmF0ZS5oPgotLQotLXN0YXRpYyB2b2lkIHN1bnhpX2NwdV9kaXNhYmxlX3Bvd2Vy KHVuc2lnbmVkIGludCBjbHVzdGVyLCB1bnNpZ25lZCBpbnQgY29yZSkKLS17Ci0tCWlmIChtbWlv X3JlYWRfMzIoU1VOWElfQ1BVX1BPV0VSX0NMQU1QX1JFRyhjbHVzdGVyLCBjb3JlKSkgPT0gMHhm ZikKLS0JCXJldHVybjsKLS0KLS0JVkVSQk9TRSgiUFNDSTogRGlzYWJsaW5nIHBvd2VyIHRvIGNs dXN0ZXIgJWQgY29yZSAlZFxuIiwgY2x1c3RlciwgY29yZSk7Ci0tCi0tCW1taW9fd3JpdGVfMzIo U1VOWElfQ1BVX1BPV0VSX0NMQU1QX1JFRyhjbHVzdGVyLCBjb3JlKSwgMHhmZik7Ci0tfQotLQot LXN0YXRpYyB2b2lkIHN1bnhpX2NwdV9lbmFibGVfcG93ZXIodW5zaWduZWQgaW50IGNsdXN0ZXIs IHVuc2lnbmVkIGludCBjb3JlKQotLXsKLS0JaWYgKG1taW9fcmVhZF8zMihTVU5YSV9DUFVfUE9X RVJfQ0xBTVBfUkVHKGNsdXN0ZXIsIGNvcmUpKSA9PSAwKQotLQkJcmV0dXJuOwotLQotLQlWRVJC T1NFKCJQU0NJOiBFbmFibGluZyBwb3dlciB0byBjbHVzdGVyICVkIGNvcmUgJWRcbiIsIGNsdXN0 ZXIsIGNvcmUpOwotLQotLQkvKiBQb3dlciBlbmFibGUgc2VxdWVuY2UgZnJvbSBvcmlnaW5hbCBB bGx3aW5uZXIgc291cmNlcyAqLwotLQltbWlvX3dyaXRlXzMyKFNVTlhJX0NQVV9QT1dFUl9DTEFN UF9SRUcoY2x1c3RlciwgY29yZSksIDB4ZmUpOwotLQltbWlvX3dyaXRlXzMyKFNVTlhJX0NQVV9Q T1dFUl9DTEFNUF9SRUcoY2x1c3RlciwgY29yZSksIDB4ZjgpOwotLQltbWlvX3dyaXRlXzMyKFNV TlhJX0NQVV9QT1dFUl9DTEFNUF9SRUcoY2x1c3RlciwgY29yZSksIDB4ZTApOwotLQltbWlvX3dy aXRlXzMyKFNVTlhJX0NQVV9QT1dFUl9DTEFNUF9SRUcoY2x1c3RlciwgY29yZSksIDB4ODApOwot LQltbWlvX3dyaXRlXzMyKFNVTlhJX0NQVV9QT1dFUl9DTEFNUF9SRUcoY2x1c3RlciwgY29yZSks IDB4MDApOwotLX0KLS0KLS12b2lkIHN1bnhpX2NwdV9vZmYodV9yZWdpc3Rlcl90IG1waWRyKQot LXsKLS0JdW5zaWduZWQgaW50IGNsdXN0ZXIgPSBNUElEUl9BRkZMVkwxX1ZBTChtcGlkcik7Ci0t CXVuc2lnbmVkIGludCBjb3JlICAgID0gTVBJRFJfQUZGTFZMMF9WQUwobXBpZHIpOwotLQotLQlW RVJCT1NFKCJQU0NJOiBQb3dlcmluZyBvZmYgY2x1c3RlciAlZCBjb3JlICVkXG4iLCBjbHVzdGVy LCBjb3JlKTsKLS0KLS0JLyogRGVhc3NlcnQgREJHUFdSRFVQICovCi0tCW1taW9fY2xyYml0c18z MihTVU5YSV9DUFVDRkdfREJHX1JFRzAsIEJJVChjb3JlKSk7Ci0tCi0tCS8qIFdlIGNhbid0IHR1 cm4gb3Vyc2VsZiBvZmYgbGlrZSB0aGlzLCBidXQgaXQgd29ya3MgZm9yIG90aGVyIGNvcmVzLiAq LwotLQlpZiAocmVhZF9tcGlkcigpICE9IG1waWRyKSB7Ci0tCQkvKiBBY3RpdmF0ZSB0aGUgY29y ZSBvdXRwdXQgY2xhbXBzLCBidXQgbm90IGZvciBjb3JlIDAuICovCi0tCQlpZiAoY29yZSAhPSAw KQotLQkJCW1taW9fc2V0Yml0c18zMihTVU5YSV9QT1dFUk9GRl9HQVRJTkdfUkVHKGNsdXN0ZXIp LAotLQkJCQkJQklUKGNvcmUpKTsKLS0JCS8qIEFzc2VydCBDUFUgcG93ZXItb24gcmVzZXQgKi8K LS0JCW1taW9fY2xyYml0c18zMihTVU5YSV9QT1dFUk9OX1JTVF9SRUcoY2x1c3RlciksIEJJVChj b3JlKSk7Ci0tCQkvKiBSZW1vdmUgcG93ZXIgZnJvbSB0aGUgQ1BVICovCi0tCQlzdW54aV9jcHVf ZGlzYWJsZV9wb3dlcihjbHVzdGVyLCBjb3JlKTsKLS0KLS0JCXJldHVybjsKLS0JfQotLQotLQkv KiBTaW1wbGlmaWVzIGFzc2VtYmx5LCBhbGwgU29DcyBzbyBmYXIgYXJlIHNpbmdsZSBjbHVzdGVy IGFueXdheS4gKi8KLS0JYXNzZXJ0KGNsdXN0ZXIgPT0gMCk7Ci0tCi0tCS8qCi0tCSAqIElmIHdl IGFyZSBzdXBwb3NlZCB0byB0dXJuIG91cnNlbGYgb2ZmLCB0ZWxsIHRoZSBhcmlzYyBTQ1AKLS0J ICogdG8gZG8gdGhhdCB3b3JrIGZvciB1cy4gVGhlIGNvZGUgZXhwZWN0cyB0aGUgY29yZSBtYXNr IHRvIGJlCi0tCSAqIHBhdGNoZWQgaW50byB0aGUgZmlyc3QgaW5zdHJ1Y3Rpb24uCi0tCSAqLwot LQlzdW54aV9leGVjdXRlX2FyaXNjX2NvZGUoYXJpc2NfY29yZV9vZmYsIHNpemVvZihhcmlzY19j b3JlX29mZiksCi0tCQkJCSBCSVRfMzIoY29yZSkpOwotLX0KLS0KLS12b2lkIHN1bnhpX2NwdV9v bih1X3JlZ2lzdGVyX3QgbXBpZHIpCi0tewotLQl1bnNpZ25lZCBpbnQgY2x1c3RlciA9IE1QSURS X0FGRkxWTDFfVkFMKG1waWRyKTsKLS0JdW5zaWduZWQgaW50IGNvcmUgICAgPSBNUElEUl9BRkZM VkwwX1ZBTChtcGlkcik7Ci0tCi0tCVZFUkJPU0UoIlBTQ0k6IFBvd2VyaW5nIG9uIGNsdXN0ZXIg JWQgY29yZSAlZFxuIiwgY2x1c3RlciwgY29yZSk7Ci0tCi0tCS8qIEFzc2VydCBDUFUgY29yZSBy ZXNldCAqLwotLQltbWlvX2NscmJpdHNfMzIoU1VOWElfQ1BVQ0ZHX1JTVF9DVFJMX1JFRyhjbHVz dGVyKSwgQklUKGNvcmUpKTsKLS0JLyogQXNzZXJ0IENQVSBwb3dlci1vbiByZXNldCAqLwotLQlt bWlvX2NscmJpdHNfMzIoU1VOWElfUE9XRVJPTl9SU1RfUkVHKGNsdXN0ZXIpLCBCSVQoY29yZSkp OwotLQkvKiBTZXQgQ1BVIHRvIHN0YXJ0IGluIEFBcmNoNjQgbW9kZSAqLwotLQltbWlvX3NldGJp dHNfMzIoU1VOWElfQ1BVQ0ZHX0NMU19DVFJMX1JFRzAoY2x1c3RlciksIEJJVCgyNCArIGNvcmUp KTsKLS0JLyogQXBwbHkgcG93ZXIgdG8gdGhlIENQVSAqLwotLQlzdW54aV9jcHVfZW5hYmxlX3Bv d2VyKGNsdXN0ZXIsIGNvcmUpOwotLQkvKiBSZWxlYXNlIHRoZSBjb3JlIG91dHB1dCBjbGFtcHMg Ki8KLS0JbW1pb19jbHJiaXRzXzMyKFNVTlhJX1BPV0VST0ZGX0dBVElOR19SRUcoY2x1c3Rlciks IEJJVChjb3JlKSk7Ci0tCS8qIERlYXNzZXJ0IENQVSBwb3dlci1vbiByZXNldCAqLwotLQltbWlv X3NldGJpdHNfMzIoU1VOWElfUE9XRVJPTl9SU1RfUkVHKGNsdXN0ZXIpLCBCSVQoY29yZSkpOwot LQkvKiBEZWFzc2VydCBDUFUgY29yZSByZXNldCAqLwotLQltbWlvX3NldGJpdHNfMzIoU1VOWElf Q1BVQ0ZHX1JTVF9DVFJMX1JFRyhjbHVzdGVyKSwgQklUKGNvcmUpKTsKLS0JLyogQXNzZXJ0IERC R1BXUkRVUCAqLwotLQltbWlvX3NldGJpdHNfMzIoU1VOWElfQ1BVQ0ZHX0RCR19SRUcwLCBCSVQo Y29yZSkpOwotLX0KLS0KLS12b2lkIHN1bnhpX2Rpc2FibGVfc2Vjb25kYXJ5X2NwdXModV9yZWdp c3Rlcl90IHByaW1hcnlfbXBpZHIpCi0tewotLQl1bnNpZ25lZCBpbnQgY2x1c3RlcjsKLS0JdW5z aWduZWQgaW50IGNvcmU7Ci0tCi0tCWZvciAoY2x1c3RlciA9IDA7IGNsdXN0ZXIgPCBQTEFURk9S TV9DTFVTVEVSX0NPVU5UOyArK2NsdXN0ZXIpIHsKLS0JCWZvciAoY29yZSA9IDA7IGNvcmUgPCBQ TEFURk9STV9NQVhfQ1BVU19QRVJfQ0xVU1RFUjsgKytjb3JlKSB7Ci0tCQkJdV9yZWdpc3Rlcl90 IG1waWRyID0gKGNsdXN0ZXIgPDwgTVBJRFJfQUZGMV9TSElGVCkgfAotLQkJCQkJICAgICAoY29y ZSAgICA8PCBNUElEUl9BRkYwX1NISUZUKSB8Ci0tCQkJCQkgICAgIEJJVCgzMSk7Ci0tCQkJaWYg KG1waWRyICE9IHByaW1hcnlfbXBpZHIpCi0tCQkJCXN1bnhpX2NwdV9vZmYobXBpZHIpOwotLQkJ fQotLQl9Ci0tfQotZGlmZiAtLWdpdCBhL3BsYXQvYWxsd2lubmVyL2NvbW1vbi9zdW54aV9wbS5j IGIvcGxhdC9hbGx3aW5uZXIvY29tbW9uL3N1bnhpX3BtLmMKLWluZGV4IDE3ZWY3YmZkYS4uOWNi MzFiZjE1IDEwMDY0NAotLS0tIGEvcGxhdC9hbGx3aW5uZXIvY29tbW9uL3N1bnhpX3BtLmMKLSsr KyBiL3BsYXQvYWxsd2lubmVyL2NvbW1vbi9zdW54aV9wbS5jCi1AQCAtNTMsOCArNTMsNiBAQAot ICAqLwotICNkZWZpbmUgU0NQX0ZJUk1XQVJFX01BR0lDCQkweGI0NDAwMDEyCi0gCi0tc3RhdGlj IGJvb2wgc2NwaV9hdmFpbGFibGU7Ci0tCi0gc3RhdGljIGlubGluZSBzY3BpX3Bvd2VyX3N0YXRl X3Qgc2NwaV9tYXBfc3RhdGUocGxhdF9sb2NhbF9zdGF0ZV90IHBzY2lfc3RhdGUpCi0gewotIAlp ZiAoaXNfbG9jYWxfc3RhdGVfcnVuKHBzY2lfc3RhdGUpKQotQEAgLTgwLDE0ICs3OCwxMCBAQCBz dGF0aWMgaW50IHN1bnhpX3B3cl9kb21haW5fb24odV9yZWdpc3Rlcl90IG1waWRyKQotIAlpZiAo bXBpZHJfaXNfdmFsaWQobXBpZHIpID09IDApCi0gCQlyZXR1cm4gUFNDSV9FX0lOVEVSTl9GQUlM OwotIAotLQlpZiAoc2NwaV9hdmFpbGFibGUpIHsKLS0JCXNjcGlfc2V0X2Nzc19wb3dlcl9zdGF0 ZShtcGlkciwKLS0JCQkJCSBzY3BpX3Bvd2VyX29uLAotLQkJCQkJIHNjcGlfcG93ZXJfb24sCi0t CQkJCQkgc2NwaV9wb3dlcl9vbik7Ci0tCX0gZWxzZSB7Ci0tCQlzdW54aV9jcHVfb24obXBpZHIp OwotLQl9Ci0rCXNjcGlfc2V0X2Nzc19wb3dlcl9zdGF0ZShtcGlkciwKLSsJCQkJIHNjcGlfcG93 ZXJfb24sCi0rCQkJCSBzY3BpX3Bvd2VyX29uLAotKwkJCQkgc2NwaV9wb3dlcl9vbik7Ci0gCi0g CXJldHVybiBQU0NJX0VfU1VDQ0VTUzsKLSB9Ci1AQCAtMTAxLDIwICs5NSwxMCBAQCBzdGF0aWMg dm9pZCBzdW54aV9wd3JfZG9tYWluX29mZihjb25zdCBwc2NpX3Bvd2VyX3N0YXRlX3QgKnRhcmdl dF9zdGF0ZSkKLSAJaWYgKGlzX2xvY2FsX3N0YXRlX29mZihjcHVfcHdyX3N0YXRlKSkKLSAJCWdp Y3YyX2NwdWlmX2Rpc2FibGUoKTsKLSAKLS0JaWYgKHNjcGlfYXZhaWxhYmxlKSB7Ci0tCQlzY3Bp X3NldF9jc3NfcG93ZXJfc3RhdGUocmVhZF9tcGlkcigpLAotLQkJCQkJIHNjcGlfbWFwX3N0YXRl KGNwdV9wd3Jfc3RhdGUpLAotLQkJCQkJIHNjcGlfbWFwX3N0YXRlKGNsdXN0ZXJfcHdyX3N0YXRl KSwKLS0JCQkJCSBzY3BpX21hcF9zdGF0ZShzeXN0ZW1fcHdyX3N0YXRlKSk7Ci0tCX0KLS19Ci0t Ci0tc3RhdGljIHZvaWQgX19kZWFkMiBzdW54aV9wd3JfZG93bl93ZmkoY29uc3QgcHNjaV9wb3dl cl9zdGF0ZV90ICp0YXJnZXRfc3RhdGUpCi0tewotLQlzdW54aV9jcHVfb2ZmKHJlYWRfbXBpZHIo KSk7Ci0tCi0tCXdoaWxlICgxKQotLQkJd2ZpKCk7Ci0rCXNjcGlfc2V0X2Nzc19wb3dlcl9zdGF0 ZShyZWFkX21waWRyKCksCi0rCQkJCSBzY3BpX21hcF9zdGF0ZShjcHVfcHdyX3N0YXRlKSwKLSsJ CQkJIHNjcGlfbWFwX3N0YXRlKGNsdXN0ZXJfcHdyX3N0YXRlKSwKLSsJCQkJIHNjcGlfbWFwX3N0 YXRlKHN5c3RlbV9wd3Jfc3RhdGUpKTsKLSB9Ci0gCi0gc3RhdGljIHZvaWQgc3VueGlfcHdyX2Rv bWFpbl9vbl9maW5pc2goY29uc3QgcHNjaV9wb3dlcl9zdGF0ZV90ICp0YXJnZXRfc3RhdGUpCi1A QCAtMTMxLDIyICsxMTUsMTIgQEAgc3RhdGljIHZvaWQgX19kZWFkMiBzdW54aV9zeXN0ZW1fb2Zm KHZvaWQpCi0gewotIAlnaWN2Ml9jcHVpZl9kaXNhYmxlKCk7Ci0gCi0tCWlmIChzY3BpX2F2YWls YWJsZSkgewotLQkJLyogU2VuZCB0aGUgcG93ZXIgZG93biByZXF1ZXN0IHRvIHRoZSBTQ1AgKi8K LS0JCXVpbnQzMl90IHJldCA9IHNjcGlfc3lzX3Bvd2VyX3N0YXRlKHNjcGlfc3lzdGVtX3NodXRk b3duKTsKLSsJLyogU2VuZCB0aGUgcG93ZXIgZG93biByZXF1ZXN0IHRvIHRoZSBTQ1AgKi8KLSsJ dWludDMyX3QgcmV0ID0gc2NwaV9zeXNfcG93ZXJfc3RhdGUoc2NwaV9zeXN0ZW1fc2h1dGRvd24p OwotIAotLQkJaWYgKHJldCA9PSBTQ1BfT0spCi0tCQkJd2ZpKCk7Ci0tCi0tCQlFUlJPUigiUFND STogU0NQSSAlcyBmYWlsZWQ6ICVkXG4iLCAic2h1dGRvd24iLCByZXQpOwotLQl9Ci0tCi0tCS8q IFR1cm4gb2ZmIGFsbCBzZWNvbmRhcnkgQ1BVcyAqLwotLQlzdW54aV9kaXNhYmxlX3NlY29uZGFy eV9jcHVzKHJlYWRfbXBpZHIoKSk7Ci0tCi0tCXN1bnhpX3Bvd2VyX2Rvd24oKTsKLSsJaWYgKHJl dCA9PSBTQ1BfT0spCi0rCQl3ZmkoKTsKLSAKLS0Jd2ZpKCk7Ci0gCUVSUk9SKCJQU0NJOiBDYW5u b3QgdHVybiBvZmYgc3lzdGVtLCBoYWx0aW5nXG4iKTsKLSAJcGFuaWMoKTsKLSB9Ci1AQCAtMTU1 LDE1ICsxMjksMTEgQEAgc3RhdGljIHZvaWQgX19kZWFkMiBzdW54aV9zeXN0ZW1fcmVzZXQodm9p ZCkKLSB7Ci0gCWdpY3YyX2NwdWlmX2Rpc2FibGUoKTsKLSAKLS0JaWYgKHNjcGlfYXZhaWxhYmxl KSB7Ci0tCQkvKiBTZW5kIHRoZSBzeXN0ZW0gcmVzZXQgcmVxdWVzdCB0byB0aGUgU0NQICovCi0t CQl1aW50MzJfdCByZXQgPSBzY3BpX3N5c19wb3dlcl9zdGF0ZShzY3BpX3N5c3RlbV9yZWJvb3Qp OwotLQotLQkJaWYgKHJldCA9PSBTQ1BfT0spCi0tCQkJd2ZpKCk7Ci0rCS8qIFNlbmQgdGhlIHN5 c3RlbSByZXNldCByZXF1ZXN0IHRvIHRoZSBTQ1AgKi8KLSsJdWludDMyX3QgcmV0ID0gc2NwaV9z eXNfcG93ZXJfc3RhdGUoc2NwaV9zeXN0ZW1fcmVib290KTsKLSAKLS0JCUVSUk9SKCJQU0NJOiBT Q1BJICVzIGZhaWxlZDogJWRcbiIsICJyZWJvb3QiLCByZXQpOwotLQl9Ci0rCWlmIChyZXQgPT0g U0NQX09LKQotKwkJd2ZpKCk7Ci0gCi0gCS8qIFJlc2V0IHRoZSB3aG9sZSBzeXN0ZW0gd2hlbiB0 aGUgd2F0Y2hkb2cgdGltZXMgb3V0ICovCi0gCW1taW9fd3JpdGVfMzIoU1VOWElfV0RPRzBfQ0ZH X1JFRywgMSk7Ci1AQCAtMjQ5LDIwICsyMTksMjYgQEAgc3RhdGljIGludCBzdW54aV9nZXRfbm9k ZV9od19zdGF0ZSh1X3JlZ2lzdGVyX3QgbXBpZHIsCi0gCXJldHVybiAoKGNwdV9zdGF0ZSAmIEJJ VChjcHUpKSAhPSAwKSA/IEhXX09OIDogSFdfT0ZGOwotIH0KLSAKLS1zdGF0aWMgcGxhdF9wc2Np X29wc190IHN1bnhpX3BzY2lfb3BzID0gewotK3N0YXRpYyBjb25zdCBwbGF0X3BzY2lfb3BzX3Qg c3VueGlfcHNjaV9vcHMgPSB7Ci0gCS5jcHVfc3RhbmRieQkJCT0gc3VueGlfY3B1X3N0YW5kYnks Ci0gCS5wd3JfZG9tYWluX29uCQkJPSBzdW54aV9wd3JfZG9tYWluX29uLAotIAkucHdyX2RvbWFp bl9vZmYJCQk9IHN1bnhpX3B3cl9kb21haW5fb2ZmLAotKwkucHdyX2RvbWFpbl9zdXNwZW5kCQk9 IHN1bnhpX3B3cl9kb21haW5fb2ZmLAotIAkucHdyX2RvbWFpbl9vbl9maW5pc2gJCT0gc3VueGlf cHdyX2RvbWFpbl9vbl9maW5pc2gsCi0rCS5wd3JfZG9tYWluX3N1c3BlbmRfZmluaXNoCT0gc3Vu eGlfcHdyX2RvbWFpbl9vbl9maW5pc2gsCi0gCS5zeXN0ZW1fb2ZmCQkJPSBzdW54aV9zeXN0ZW1f b2ZmLAotIAkuc3lzdGVtX3Jlc2V0CQkJPSBzdW54aV9zeXN0ZW1fcmVzZXQsCi0gCS52YWxpZGF0 ZV9wb3dlcl9zdGF0ZQkJPSBzdW54aV92YWxpZGF0ZV9wb3dlcl9zdGF0ZSwKLSAJLnZhbGlkYXRl X25zX2VudHJ5cG9pbnQJCT0gc3VueGlfdmFsaWRhdGVfbnNfZW50cnlwb2ludCwKLSsJLmdldF9z eXNfc3VzcGVuZF9wb3dlcl9zdGF0ZQk9IHN1bnhpX2dldF9zeXNfc3VzcGVuZF9wb3dlcl9zdGF0 ZSwKLSsJLmdldF9ub2RlX2h3X3N0YXRlCQk9IHN1bnhpX2dldF9ub2RlX2h3X3N0YXRlLAotIH07 Ci0gCi0gaW50IHBsYXRfc2V0dXBfcHNjaV9vcHModWludHB0cl90IHNlY19lbnRyeXBvaW50LAot IAkJCWNvbnN0IHBsYXRfcHNjaV9vcHNfdCAqKnBzY2lfb3BzKQotIHsKLSsJYm9vbCBzY3BpX2F2 YWlsYWJsZSA9IGZhbHNlOwotKwotIAlhc3NlcnQocHNjaV9vcHMpOwotIAotIAkvKiBQcm9ncmFt IGFsbCBDUFUgZW50cnkgcG9pbnRzLiAqLwotQEAgLTI5MiwxNiArMjY4LDYgQEAgaW50IHBsYXRf c2V0dXBfcHNjaV9vcHModWludHB0cl90IHNlY19lbnRyeXBvaW50LAotIAotIAlOT1RJQ0UoIlBT Q0k6IFN5c3RlbSBzdXNwZW5kIGlzICVzXG4iLAotIAkgICAgICAgc2NwaV9hdmFpbGFibGUgPyAi YXZhaWxhYmxlIHZpYSBTQ1BJIiA6ICJ1bmF2YWlsYWJsZSIpOwotLQlpZiAoc2NwaV9hdmFpbGFi bGUpIHsKLS0JCS8qIFN1c3BlbmQgaXMgb25seSBhdmFpbGFibGUgdmlhIFNDUEkuICovCi0tCQlz dW54aV9wc2NpX29wcy5wd3JfZG9tYWluX3N1c3BlbmQgPSBzdW54aV9wd3JfZG9tYWluX29mZjsK LS0JCXN1bnhpX3BzY2lfb3BzLnB3cl9kb21haW5fc3VzcGVuZF9maW5pc2ggPSBzdW54aV9wd3Jf ZG9tYWluX29uX2ZpbmlzaDsKLS0JCXN1bnhpX3BzY2lfb3BzLmdldF9zeXNfc3VzcGVuZF9wb3dl cl9zdGF0ZSA9IHN1bnhpX2dldF9zeXNfc3VzcGVuZF9wb3dlcl9zdGF0ZTsKLS0JCXN1bnhpX3Bz Y2lfb3BzLmdldF9ub2RlX2h3X3N0YXRlID0gc3VueGlfZ2V0X25vZGVfaHdfc3RhdGU7Ci0tCX0g ZWxzZSB7Ci0tCQkvKiBUaGlzIGlzIG9ubHkgbmVlZGVkIHdoZW4gU0NQSSBpcyB1bmF2YWlsYWJs ZS4gKi8KLS0JCXN1bnhpX3BzY2lfb3BzLnB3cl9kb21haW5fcHdyX2Rvd25fd2ZpID0gc3VueGlf cHdyX2Rvd25fd2ZpOwotLQl9Ci0gCi0gCSpwc2NpX29wcyA9ICZzdW54aV9wc2NpX29wczsKLSAK LWRpZmYgLS1naXQgYS9wbGF0L2FsbHdpbm5lci9zdW41MGlfYTY0L2luY2x1ZGUvY29yZV9vZmZf YXJpc2MuaCBiL3BsYXQvYWxsd2lubmVyL3N1bjUwaV9hNjQvaW5jbHVkZS9jb3JlX29mZl9hcmlz Yy5oCi1kZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IGFlNDM2Y2ExYi4uMDAwMDAwMDAw Ci0tLS0gYS9wbGF0L2FsbHdpbm5lci9zdW41MGlfYTY0L2luY2x1ZGUvY29yZV9vZmZfYXJpc2Mu aAotKysrIC9kZXYvbnVsbAotQEAgLTEsMzkgKzAsMCBAQAotLS8qCi0tICogQ29weXJpZ2h0IChj KSAyMDE4LCBBUk0gTGltaXRlZCBhbmQgQ29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVk LgotLSAqCi0tICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQotLSAqLwot LQotLXN0YXRpYyB1aW50MzJfdCBhcmlzY19jb3JlX29mZltdID0gewotLQkweDE4NjAwMDAwLCAv KiBsLm1vdmhpCXIzLCA8Y29yZW5yPgkqLwotLQkweDE4MDAwMDAwLCAvKiBsLm1vdmhpCXIwLCAw eDAJCSovCi0tCTB4MTlhMDAxNzAsIC8qIGwubW92aGkJcjEzLCAweDE3MAkqLwotLQkweDg0YWQw MDMwLCAvKiBsLmx3eglyNSwgMHgzMChyMTMpCSovCi0tCTB4ZTBhNTE4MDMsIC8qIGwuYW5kCXI1 LCByNSwgcjMJKi8KLS0JMHhlNDA1MDAwMCwgLyogbC5zZmVxCXI1LCByMAkJKi8KLS0JMHgxM2Zm ZmZmZCwgLyogbC5iZgktMTIJCSovCi0tCi0tCTB4YjhjMzAwNTAsIC8qIGwuc3JsaQlyNiwgcjMs IDE2CSovCi0tCTB4YmMwNjAwMDEsIC8qIGwuc2ZlcWkJcjYsIDEJCSovCi0tCTB4MTAwMDAwMDUs IC8qIGwuYmYJKzIwCQkqLwotLQkweDE5YTAwMWYwLCAvKiBsLm1vdmhpCXIxMywgMHgxZjAJKi8K LS0JMHg4NGFkMTUwMCwgLyogbC5sd3oJcjUsIDB4MTUwMChyMTMpCSovCi0tCTB4ZTBhNTMwMDQs IC8qIGwub3IJcjUsIHI1LCByNgkqLwotLQkweGQ0NGQyZDAwLCAvKiBsLnN3CTB4MTUwMChyMTMp LCByNQkqLwotLQotLQkweDg0YWQxYzMwLCAvKiBsLmx3eglyNSwgMHgxYzMwKHIxMykJKi8KLS0J MHhhY2M2ZmZmZiwgLyogbC54b3JpCXI2LCByNiwgLTEJKi8KLS0JMHhlMGE1MzAwMywgLyogbC5h bmQJcjUsIHI1LCByNgkqLwotLQkweGQ0NmQyYzMwLCAvKiBsLnN3CTB4MWMzMChyMTMpLCByNQkq LwotLQotLQkweGUwYzMwMDBmLCAvKiBsLmZmMQlyNiwgcjMJCSovCi0tCTB4OWNjNmZmZWYsIC8q IGwuYWRkaQlyNiwgcjYsIC0xNwkqLwotLQkweGI4YzYwMDAyLCAvKiBsLnNsbGkJcjYsIHI2LCAy CSovCi0tCTB4ZTBjNjY4MDAsIC8qIGwuYWRkCXI2LCByNiwgcjEzCSovCi0tCTB4YThhMDAwZmYs IC8qIGwub3JpCXI1LCByMCwgMHhmZgkqLwotLQkweGQ0NDYyZDQwLCAvKiBsLnN3CTB4MTU0MChy NiksIHI1CSovCi0tCi0tCTB4ZDQ2ZDA0MDAsIC8qIGwuc3cJMHgxYzAwKHIxMyksIHIwCSovCi0t CTB4MDNmZmZmZmYsIC8qIGwuagktMQkJKi8KLS0JMHgxNTAwMDAwMCwgLyogbC5ub3AJCQkqLwot LX07Ci1kaWZmIC0tZ2l0IGEvcGxhdC9hbGx3aW5uZXIvc3VuNTBpX2E2NC9zdW54aV9wb3dlci5j IGIvcGxhdC9hbGx3aW5uZXIvc3VuNTBpX2E2NC9zdW54aV9wb3dlci5jCi1pbmRleCA1YjdkNzZh ZTkuLmQwYjUzZDRlNCAxMDA2NDQKLS0tLSBhL3BsYXQvYWxsd2lubmVyL3N1bjUwaV9hNjQvc3Vu eGlfcG93ZXIuYwotKysrIGIvcGxhdC9hbGx3aW5uZXIvc3VuNTBpX2E2NC9zdW54aV9wb3dlci5j Ci1AQCAtMTIsNzYgKzEyLDIyIEBACi0gI2luY2x1ZGUgPGNvbW1vbi9kZWJ1Zy5oPgotICNpbmNs dWRlIDxkcml2ZXJzL2FsbHdpbm5lci9heHAuaD4KLSAjaW5jbHVkZSA8ZHJpdmVycy9hbGx3aW5u ZXIvc3VueGlfcnNiLmg+Ci0tI2luY2x1ZGUgPGxpYi9tbWlvLmg+Ci0gCi0gI2luY2x1ZGUgPHN1 bnhpX2RlZi5oPgotICNpbmNsdWRlIDxzdW54aV9tbWFwLmg+Ci0gI2luY2x1ZGUgPHN1bnhpX3By aXZhdGUuaD4KLSAKLS1zdGF0aWMgZW51bSBwbWljX3R5cGUgewotLQlVTktOT1dOLAotLQlHRU5F UklDX0g1LAotLQlHRU5FUklDX0E2NCwKLS0JUkVGX0RFU0lHTl9INSwJLyogcmVndWxhdG9ycyBj b250cm9sbGVkIGJ5IEdQSU8gcGlucyBvbiBwb3J0IEwgKi8KLS0JQVhQODAzX1JTQiwJLyogUE1J QyBjb25uZWN0ZWQgdmlhIFJTQiBvbiBtb3N0IEE2NCBib2FyZHMgKi8KLS19IHBtaWM7Ci0tCi0g I2RlZmluZSBBWFA4MDNfSFdfQUREUgkweDNhMwotICNkZWZpbmUgQVhQODAzX1JUX0FERFIJMHgy ZAotIAotLS8qCi0tICogT24gYm9hcmRzIHdpdGhvdXQgYSBwcm9wZXIgUE1JQyB3ZSBzdHJ1Z2ds ZSB0byB0dXJuIG9mZiB0aGUgc3lzdGVtIHByb3Blcmx5LgotLSAqIFRyeSB0byB0dXJuIG9mZiBh cyBtdWNoIG9mZiB0aGUgc3lzdGVtIGFzIHdlIGNhbiwgdG8gcmVkdWNlIHBvd2VyCi0tICogY29u c3VtcHRpb24uIFRoaXMgc2hvdWxkIGJlIGVudGVyZWQgd2l0aCBvbmx5IG9uZSBjb3JlIHJ1bm5p bmcgYW5kIFNNUAotLSAqIGRpc2FibGVkLgotLSAqIFRoaXMgZnVuY3Rpb24gb25seSBjYXJlcyBh Ym91dCBwZXJpcGhlcmFscy4KLS0gKi8KLS1zdGF0aWMgdm9pZCBzdW54aV90dXJuX29mZl9zb2Mo dWludDE2X3Qgc29jaWQpCi0raW50IGF4cF9yZWFkKHVpbnQ4X3QgcmVnKQotIHsKLS0JaW50IGk7 Ci0tCi0tCS8qKiBUdXJuIG9mZiBtb3N0IHBlcmlwaGVyYWxzLCBtb3N0IGltcG9ydGFudGx5IERS QU0gdXNlcnMuICoqLwotLQkvKiBLZWVwIERSQU0gY29udHJvbGxlciBydW5uaW5nIGZvciBub3cu ICovCi0tCW1taW9fY2xyYml0c18zMihTVU5YSV9DQ1VfQkFTRSArIDB4MmMwLCB+QklUXzMyKDE0 KSk7Ci0tCW1taW9fY2xyYml0c18zMihTVU5YSV9DQ1VfQkFTRSArIDB4NjAsIH5CSVRfMzIoMTQp KTsKLS0JLyogQ29udGFpbnMgbXNnYm94IChiaXQgMjEpIGFuZCBzcGlubG9jayAoYml0IDIyKSAq LwotLQltbWlvX3dyaXRlXzMyKFNVTlhJX0NDVV9CQVNFICsgMHgyYzQsIDApOwotLQltbWlvX3dy aXRlXzMyKFNVTlhJX0NDVV9CQVNFICsgMHg2NCwgMCk7Ci0tCW1taW9fd3JpdGVfMzIoU1VOWElf Q0NVX0JBU0UgKyAweDJjOCwgMCk7Ci0tCS8qIEtlZXAgUElPIGNvbnRyb2xsZXIgcnVubmluZyBm b3Igbm93LiAqLwotLQltbWlvX2NscmJpdHNfMzIoU1VOWElfQ0NVX0JBU0UgKyAweDY4LCB+KEJJ VF8zMig1KSkpOwotLQltbWlvX3dyaXRlXzMyKFNVTlhJX0NDVV9CQVNFICsgMHgyZDAsIDApOwot LQkvKiBDb250YWlucyBVQVJUMCAoYml0IDE2KSAqLwotLQltbWlvX3dyaXRlXzMyKFNVTlhJX0ND VV9CQVNFICsgMHgyZDgsIDApOwotLQltbWlvX3dyaXRlXzMyKFNVTlhJX0NDVV9CQVNFICsgMHg2 YywgMCk7Ci0tCW1taW9fd3JpdGVfMzIoU1VOWElfQ0NVX0JBU0UgKyAweDcwLCAwKTsKLS0KLS0J LyoqIFR1cm4gb2ZmIERSQU0gY29udHJvbGxlci4gKiovCi0tCW1taW9fY2xyYml0c18zMihTVU5Y SV9DQ1VfQkFTRSArIDB4MmMwLCBCSVRfMzIoMTQpKTsKLS0JbW1pb19jbHJiaXRzXzMyKFNVTlhJ X0NDVV9CQVNFICsgMHg2MCwgQklUXzMyKDE0KSk7Ci0tCi0tCS8qKiBNaWdyYXRlIENQVSBhbmQg YnVzIGNsb2NrcyBhd2F5IGZyb20gdGhlIFBMTHMuICoqLwotLQkvKiBBSEIxOiB1c2UgT1NDMjRN LzEsIEFQQjEgPSBBSEIxIC8gMiAqLwotLQltbWlvX3dyaXRlXzMyKFNVTlhJX0NDVV9CQVNFICsg MHg1NCwgMHgxMDAwKTsKLS0JLyogQVBCMjogdXNlIE9TQzI0TSAqLwotLQltbWlvX3dyaXRlXzMy KFNVTlhJX0NDVV9CQVNFICsgMHg1OCwgMHgxMDAwMDAwKTsKLS0JLyogQUhCMjogdXNlIEFIQjEg Y2xvY2sgKi8KLS0JbW1pb193cml0ZV8zMihTVU5YSV9DQ1VfQkFTRSArIDB4NWMsIDApOwotLQkv KiBDUFU6IHVzZSBPU0MyNE0gKi8KLS0JbW1pb193cml0ZV8zMihTVU5YSV9DQ1VfQkFTRSArIDB4 NTAsIDB4MTAwMDApOwotLQotLQkvKiogVHVybiBvZmYgUExMcy4gKiovCi0tCWZvciAoaSA9IDA7 IGkgPCA2OyBpKyspCi0tCQltbWlvX2NscmJpdHNfMzIoU1VOWElfQ0NVX0JBU0UgKyBpICogOCwg QklUKDMxKSk7Ci0tCXN3aXRjaCAoc29jaWQpIHsKLS0JY2FzZSBTVU5YSV9TT0NfSDU6Ci0tCQlt bWlvX2NscmJpdHNfMzIoU1VOWElfQ0NVX0JBU0UgKyAweDQ0LCBCSVQoMzEpKTsKLS0JCWJyZWFr OwotLQljYXNlIFNVTlhJX1NPQ19BNjQ6Ci0tCQltbWlvX2NscmJpdHNfMzIoU1VOWElfQ0NVX0JB U0UgKyAweDJjLCBCSVQoMzEpKTsKLS0JCW1taW9fY2xyYml0c18zMihTVU5YSV9DQ1VfQkFTRSAr IDB4NGMsIEJJVCgzMSkpOwotLQkJYnJlYWs7Ci0tCX0KLSsJcmV0dXJuIHJzYl9yZWFkKEFYUDgw M19SVF9BRERSLCByZWcpOwotK30KLSsKLStpbnQgYXhwX3dyaXRlKHVpbnQ4X3QgcmVnLCB1aW50 OF90IHZhbCkKLSt7Ci0rCXJldHVybiByc2Jfd3JpdGUoQVhQODAzX1JUX0FERFIsIHJlZywgdmFs KTsKLSB9Ci0gCi0gc3RhdGljIGludCByc2JfaW5pdCh2b2lkKQotQEAgLTExOSw5MiArNjUsMjQg QEAgc3RhdGljIGludCByc2JfaW5pdCh2b2lkKQotIAlyZXR1cm4gYXhwX2NoZWNrX2lkKCk7Ci0g fQotIAotLWludCBheHBfcmVhZCh1aW50OF90IHJlZykKLS17Ci0tCXJldHVybiByc2JfcmVhZChB WFA4MDNfUlRfQUREUiwgcmVnKTsKLS19Ci0tCi0taW50IGF4cF93cml0ZSh1aW50OF90IHJlZywg dWludDhfdCB2YWwpCi0tewotLQlyZXR1cm4gcnNiX3dyaXRlKEFYUDgwM19SVF9BRERSLCByZWcs IHZhbCk7Ci0tfQotLQotIGludCBzdW54aV9wbWljX3NldHVwKHVpbnQxNl90IHNvY2lkLCBjb25z dCB2b2lkICpmZHQpCi0gewotIAlpbnQgcmV0OwotIAotLQlzd2l0Y2ggKHNvY2lkKSB7Ci0tCWNh c2UgU1VOWElfU09DX0g1OgotLQkJTk9USUNFKCJQTUlDOiBBc3N1bWluZyBINSByZWZlcmVuY2Ug cmVndWxhdG9yIGRlc2lnblxuIik7Ci0tCi0tCQlwbWljID0gUkVGX0RFU0lHTl9INTsKLSsJaWYg KHNvY2lkICE9IFNVTlhJX1NPQ19BNjQpCi0rCQlyZXR1cm4gMDsKLSAKLS0JCWJyZWFrOwotLQlj YXNlIFNVTlhJX1NPQ19BNjQ6Ci0tCQlwbWljID0gR0VORVJJQ19BNjQ7Ci0rCUlORk8oIlBNSUM6 IFByb2JpbmcgQVhQODAzIG9uIFJTQlxuIik7Ci0gCi0tCQlJTkZPKCJQTUlDOiBQcm9iaW5nIEFY UDgwMyBvbiBSU0JcbiIpOwotLQotLQkJcmV0ID0gc3VueGlfaW5pdF9wbGF0Zm9ybV9yX3R3aShz b2NpZCwgdHJ1ZSk7Ci0tCQlpZiAocmV0KQotLQkJCXJldHVybiByZXQ7Ci0rCXJldCA9IHN1bnhp X2luaXRfcGxhdGZvcm1fcl90d2koc29jaWQsIHRydWUpOwotKwlpZiAocmV0KQotKwkJcmV0dXJu IHJldDsKLSAKLS0JCXJldCA9IHJzYl9pbml0KCk7Ci0tCQlpZiAocmV0KQotLQkJCXJldHVybiBy ZXQ7Ci0rCXJldCA9IHJzYl9pbml0KCk7Ci0rCWlmIChyZXQpCi0rCQlyZXR1cm4gcmV0OwotIAot LQkJcG1pYyA9IEFYUDgwM19SU0I7Ci0tCQlheHBfc2V0dXBfcmVndWxhdG9ycyhmZHQpOwotKwlh eHBfc2V0dXBfcmVndWxhdG9ycyhmZHQpOwotIAotLQkJYnJlYWs7Ci0tCWRlZmF1bHQ6Ci0tCQly ZXR1cm4gLUVOT0RFVjsKLS0JfQotIAlyZXR1cm4gMDsKLSB9Ci0tCi0tdm9pZCBzdW54aV9wb3dl cl9kb3duKHZvaWQpCi0tewotLQlzd2l0Y2ggKHBtaWMpIHsKLS0JY2FzZSBHRU5FUklDX0g1Ogot LQkJLyogVHVybiBvZmYgYXMgbWFueSBwZXJpcGhlcmFscyBhbmQgY2xvY2tzIGFzIHdlIGNhbi4g Ki8KLS0JCXN1bnhpX3R1cm5fb2ZmX3NvYyhTVU5YSV9TT0NfSDUpOwotLQkJLyogVHVybiBvZmYg dGhlIHBpbiBjb250cm9sbGVyIG5vdy4gKi8KLS0JCW1taW9fd3JpdGVfMzIoU1VOWElfQ0NVX0JB U0UgKyAweDY4LCAwKTsKLS0JCWJyZWFrOwotLQljYXNlIEdFTkVSSUNfQTY0OgotLQkJLyogVHVy biBvZmYgYXMgbWFueSBwZXJpcGhlcmFscyBhbmQgY2xvY2tzIGFzIHdlIGNhbi4gKi8KLS0JCXN1 bnhpX3R1cm5fb2ZmX3NvYyhTVU5YSV9TT0NfQTY0KTsKLS0JCS8qIFR1cm4gb2ZmIHRoZSBwaW4g Y29udHJvbGxlciBub3cuICovCi0tCQltbWlvX3dyaXRlXzMyKFNVTlhJX0NDVV9CQVNFICsgMHg2 OCwgMCk7Ci0tCQlicmVhazsKLS0JY2FzZSBSRUZfREVTSUdOX0g1OgotLQkJc3VueGlfdHVybl9v ZmZfc29jKFNVTlhJX1NPQ19INSk7Ci0tCi0tCQkvKgotLQkJICogU3dpdGNoIFBMIHBpbnMgdG8g cG93ZXIgb2ZmIHRoZSBib2FyZDoKLS0JCSAqIC0gUEw1IChWQ0NfSU8pIC0+IGhpZ2gKLS0JCSAq IC0gUEw4IChQV1ItU1RCID0gQ1BVIHBvd2VyIHN1cHBseSkgLT4gbG93Ci0tCQkgKiAtIFBMOSAo UFdSLURSQU0pIC0+bG93Ci0tCQkgKiAtIFBMMTAgKHBvd2VyIExFRCkgLT4gbG93Ci0tCQkgKiBO b3RlOiBDbGVhcmluZyBQTDggd2lsbCByZXNldCB0aGUgYm9hcmQsIHNvIGtlZXAgaXQgdXAuCi0t CQkgKi8KLS0JCXN1bnhpX3NldF9ncGlvX291dCgnTCcsIDUsIDEpOwotLQkJc3VueGlfc2V0X2dw aW9fb3V0KCdMJywgOSwgMCk7Ci0tCQlzdW54aV9zZXRfZ3Bpb19vdXQoJ0wnLCAxMCwgMCk7Ci0t Ci0tCQkvKiBUdXJuIG9mZiBwaW4gY29udHJvbGxlciBub3cuICovCi0tCQltbWlvX3dyaXRlXzMy KFNVTlhJX0NDVV9CQVNFICsgMHg2OCwgMCk7Ci0tCi0tCQlicmVhazsKLS0JY2FzZSBBWFA4MDNf UlNCOgotLQkJLyogKFJlLSlpbml0IFJTQiBpbiBjYXNlIHRoZSByaWNoIE9TIGhhcyBkaXNhYmxl ZCBpdC4gKi8KLS0JCXN1bnhpX2luaXRfcGxhdGZvcm1fcl90d2koU1VOWElfU09DX0E2NCwgdHJ1 ZSk7Ci0tCQlyc2JfaW5pdCgpOwotLQkJYXhwX3Bvd2VyX29mZigpOwotLQkJYnJlYWs7Ci0tCWRl ZmF1bHQ6Ci0tCQlicmVhazsKLS0JfQotLQotLX0KLWRpZmYgLS1naXQgYS9wbGF0L2FsbHdpbm5l ci9zdW41MGlfaDYvaW5jbHVkZS9jb3JlX29mZl9hcmlzYy5oIGIvcGxhdC9hbGx3aW5uZXIvc3Vu NTBpX2g2L2luY2x1ZGUvY29yZV9vZmZfYXJpc2MuaAotZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 Ci1pbmRleCA2M2E1ZDhkOTYuLjAwMDAwMDAwMAotLS0tIGEvcGxhdC9hbGx3aW5uZXIvc3VuNTBp X2g2L2luY2x1ZGUvY29yZV9vZmZfYXJpc2MuaAotKysrIC9kZXYvbnVsbAotQEAgLTEsMzkgKzAs MCBAQAotLS8qCi0tICogQ29weXJpZ2h0IChjKSAyMDE4LCBBUk0gTGltaXRlZCBhbmQgQ29udHJp YnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLSAqCi0tICogU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEJTRC0zLUNsYXVzZQotLSAqLwotLQotLXN0YXRpYyB1aW50MzJfdCBhcmlzY19jb3Jl X29mZltdID0gewotLQkweDE4NjAwMDAwLCAvKiBsLm1vdmhpCXIzLCA8Y29yZW5yPgkqLwotLQkw eDE4MDAwMDAwLCAvKiBsLm1vdmhpCXIwLCAweDAJCSovCi0tCTB4MTlhMDA5MDEsIC8qIGwubW92 aGkJcjEzLCAweDkwMQkqLwotLQkweDg0YWQwMDgwLCAvKiBsLmx3eglyNSwgMHg4MChyMTMpCSov Ci0tCTB4ZTBhNTE4MDMsIC8qIGwuYW5kCXI1LCByNSwgcjMJKi8KLS0JMHhlNDA1MDAwMCwgLyog bC5zZmVxCXI1LCByMAkJKi8KLS0JMHgxM2ZmZmZmZCwgLyogbC5iZgktMTIJCSovCi0tCTB4Yjhj MzAwNTAsIC8qIGwuc3JsaQlyNiwgcjMsIDE2CSovCi0tCi0tCTB4YmMwNjAwMDEsIC8qIGwuc2Zl cWkJcjYsIDEJCSovCi0tCTB4MTAwMDAwMDUsIC8qIGwuYmYJKzIwCQkqLwotLQkweDE5YTAwNzAw LCAvKiBsLm1vdmhpCXIxMywgMHg3MDAJKi8KLS0JMHg4NGFkMDQ0NCwgLyogbC5sd3oJcjUsIDB4 MDQ0NChyMTMpCSovCi0tCTB4ZTBhNTMwMDQsIC8qIGwub3IJcjUsIHI1LCByNgkqLwotLQkweGQ0 MGQyYzQ0LCAvKiBsLnN3CTB4MDQ0NChyMTMpLCByNQkqLwotLQotLQkweDg0YWQwNDQwLCAvKiBs Lmx3eglyNSwgMHgwNDQwKHIxMykJKi8KLS0JMHhhY2M2ZmZmZiwgLyogbC54b3JpCXI2LCByNiwg LTEJKi8KLS0JMHhlMGE1MzAwMywgLyogbC5hbmQJcjUsIHI1LCByNgkqLwotLQkweGQ0MGQyYzQw LCAvKiBsLnN3CTB4MDQ0MChyMTMpLCByNQkqLwotLQotLQkweGUwYzMwMDBmLCAvKiBsLmZmMQly NiwgcjMJCSovCi0tCTB4OWNjNmZmZWYsIC8qIGwuYWRkaQlyNiwgcjYsIC0xNwkqLwotLQkweGI4 YzYwMDAyLCAvKiBsLnNsbGkJcjYsIHI2LCAyCSovCi0tCTB4ZTBjNjY4MDAsIC8qIGwuYWRkCXI2 LCByNiwgcjEzCSovCi0tCTB4YThhMDAwZmYsIC8qIGwub3JpCXI1LCByMCwgMHhmZgkqLwotLQkw eGQ0MDYyYzUwLCAvKiBsLnN3CTB4MDQ1MChyNiksIHI1CSovCi0tCi0tCTB4ZDQwZDA0MDAsIC8q IGwuc3cJMHgwNDAwKHIxMyksIHIwCSovCi0tCTB4MDNmZmZmZmYsIC8qIGwuagktMQkJKi8KLS0J MHgxNTAwMDAwMCwgLyogbC5ub3AJCQkqLwotLX07Ci1kaWZmIC0tZ2l0IGEvcGxhdC9hbGx3aW5u ZXIvc3VuNTBpX2g2L3N1bnhpX3Bvd2VyLmMgYi9wbGF0L2FsbHdpbm5lci9zdW41MGlfaDYvc3Vu eGlfcG93ZXIuYwotaW5kZXggNDQzMDE1YmFjLi5mMWFiODRmYzQgMTAwNjQ0Ci0tLS0gYS9wbGF0 L2FsbHdpbm5lci9zdW41MGlfaDYvc3VueGlfcG93ZXIuYwotKysrIGIvcGxhdC9hbGx3aW5uZXIv c3VuNTBpX2g2L3N1bnhpX3Bvd2VyLmMKLUBAIC02LDE0ICs2LDEwIEBACi0gICovCi0gCi0gI2lu Y2x1ZGUgPGVycm5vLmg+Ci0tI2luY2x1ZGUgPHN0cmluZy5oPgotIAotLSNpbmNsdWRlIDxhcmNo X2hlbHBlcnMuaD4KLSAjaW5jbHVkZSA8Y29tbW9uL2RlYnVnLmg+Ci0gI2luY2x1ZGUgPGRyaXZl cnMvYWxsd2lubmVyL2F4cC5oPgotLSNpbmNsdWRlIDxkcml2ZXJzL2RlbGF5X3RpbWVyLmg+Ci0g I2luY2x1ZGUgPGRyaXZlcnMvbWVudG9yL21pMmN2Lmg+Ci0tI2luY2x1ZGUgPGxpYi9tbWlvLmg+ Ci0gCi0gI2luY2x1ZGUgPHN1bnhpX2RlZi5oPgotICNpbmNsdWRlIDxzdW54aV9tbWFwLmg+Ci1A QCAtMjEsMTEgKzE3LDYgQEAKLSAKLSAjZGVmaW5lIEFYUDgwNV9BRERSCTB4MzYKLSAKLS1zdGF0 aWMgZW51bSBwbWljX3R5cGUgewotLQlVTktOT1dOLAotLQlBWFA4MDUsCi0tfSBwbWljOwotLQot IGludCBheHBfcmVhZCh1aW50OF90IHJlZykKLSB7Ci0gCXVpbnQ4X3QgdmFsOwotQEAgLTg2LDIz ICs3Nyw3IEBAIGludCBzdW54aV9wbWljX3NldHVwKHVpbnQxNl90IHNvY2lkLCBjb25zdCB2b2lk ICpmZHQpCi0gCWlmIChyZXQpCi0gCQlyZXR1cm4gcmV0OwotIAotLQlwbWljID0gQVhQODA1Owot IAlheHBfc2V0dXBfcmVndWxhdG9ycyhmZHQpOwotIAotIAlyZXR1cm4gMDsKLSB9Ci0tCi0tdm9p ZCBzdW54aV9wb3dlcl9kb3duKHZvaWQpCi0tewotLQlzd2l0Y2ggKHBtaWMpIHsKLS0JY2FzZSBB WFA4MDU6Ci0tCQkvKiBSZS1pbml0aWFsaXNlIGFmdGVyIHJpY2ggT1MgbWlnaHQgaGF2ZSB1c2Vk IGl0LiAqLwotLQkJc3VueGlfaW5pdF9wbGF0Zm9ybV9yX3R3aShTVU5YSV9TT0NfSDYsIGZhbHNl KTsKLS0JCS8qIGluaXRpYWxpc2UgbWkyY3YgZHJpdmVyICovCi0tCQlpMmNfaW5pdCgodm9pZCAq KVNVTlhJX1JfSTJDX0JBU0UpOwotLQkJYXhwX3Bvd2VyX29mZigpOwotLQkJYnJlYWs7Ci0tCWRl ZmF1bHQ6Ci0tCQlicmVhazsKLS0JfQotLX0KLS0tIAotMi4yOC4wCi0KZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcGluZXBob25lLXVib290L3BhdGNoZXMvYXJtdGYvMDAwNC1ETy1OT1QtTUVSR0UtYWxs d2lubmVyLUVuYWJsZS1VQVJULWF0LXJ1bnRpbWUucGF0Y2ggYi9zcmNwa2dzL3BpbmVwaG9uZS11 Ym9vdC9wYXRjaGVzL2FybXRmLzAwMDQtRE8tTk9ULU1FUkdFLWFsbHdpbm5lci1FbmFibGUtVUFS VC1hdC1ydW50aW1lLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZDY1YjUy MjAxZi4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9waW5lcGhvbmUtdWJvb3QvcGF0Y2hlcy9h cm10Zi8wMDA0LURPLU5PVC1NRVJHRS1hbGx3aW5uZXItRW5hYmxlLVVBUlQtYXQtcnVudGltZS5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLUZyb20gYzkzMzZiNjg1NTZkMGFm NzliYmNlZWFmMTlhYmIyMWVjNDE3YTBhOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IFNhbXVlbCBIb2xsYW5kIDxzYW11ZWxAc2hvbGxhbmQub3JnPgotRGF0ZTogU3VuLCAyMSBPY3Qg MjAxOCAxMjo0Mzo1OCAtMDUwMAotU3ViamVjdDogW1BBVENIIDQvNV0gW0RPIE5PVCBNRVJHRV0g YWxsd2lubmVyOiBFbmFibGUgVUFSVCBhdCBydW50aW1lCi0KLVNpZ25lZC1vZmYtYnk6IFNhbXVl bCBIb2xsYW5kIDxzYW11ZWxAc2hvbGxhbmQub3JnPgotQ2hhbmdlLUlkOiBJZDE4NmQ2MDAxZmE2 YzE4ODU4OWJkOWU5NTgyYzU0OTAwMGMxYTQyMwotLS0tCi0gcGxhdC9hbGx3aW5uZXIvY29tbW9u L3N1bnhpX2JsMzFfc2V0dXAuYyB8IDQgKysrKwotIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlv bnMoKykKLQotZGlmZiAtLWdpdCBhL3BsYXQvYWxsd2lubmVyL2NvbW1vbi9zdW54aV9ibDMxX3Nl dHVwLmMgYi9wbGF0L2FsbHdpbm5lci9jb21tb24vc3VueGlfYmwzMV9zZXR1cC5jCi1pbmRleCBm ZTUxMWQwMmMuLjQ1MDIzYWQ4MSAxMDA2NDQKLS0tLSBhL3BsYXQvYWxsd2lubmVyL2NvbW1vbi9z dW54aV9ibDMxX3NldHVwLmMKLSsrKyBiL3BsYXQvYWxsd2lubmVyL2NvbW1vbi9zdW54aV9ibDMx X3NldHVwLmMKLUBAIC04Miw2ICs4MiwxMCBAQCB2b2lkIGJsMzFfZWFybHlfcGxhdGZvcm1fc2V0 dXAyKHVfcmVnaXN0ZXJfdCBhcmcwLCB1X3JlZ2lzdGVyX3QgYXJnMSwKLSAJLyogSW5pdGlhbGl6 ZSB0aGUgZGVidWcgY29uc29sZSBhcyBzb29uIGFzIHBvc3NpYmxlICovCi0gCWNvbnNvbGVfMTY1 NTBfcmVnaXN0ZXIoU1VOWElfVUFSVDBfQkFTRSwgU1VOWElfVUFSVDBfQ0xLX0lOX0haLAotIAkJ CSAgICAgICBTVU5YSV9VQVJUMF9CQVVEUkFURSwgJmNvbnNvbGUpOwotKwljb25zb2xlX3NldF9z Y29wZSgmY29uc29sZSwKLSsJCQkgIENPTlNPTEVfRkxBR19CT09UIHwKLSsJCQkgIENPTlNPTEVf RkxBR19SVU5USU1FIHwKLSsJCQkgIENPTlNPTEVfRkxBR19DUkFTSCk7Ci0gCi0gI2lmZGVmIEJM MzJfQkFTRQotIAkvKiBQb3B1bGF0ZSBlbnRyeSBwb2ludCBpbmZvcm1hdGlvbiBmb3IgQkwzMiAq LwotLS0gCi0yLjI4LjAKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9waW5lcGhvbmUtdWJvb3QvcGF0 Y2hlcy9hcm10Zi8wMDA1LURPLU5PVC1NRVJHRS1hbGx3aW5uZXItSW5jcmVhc2UtbXNnYm94LXRp bWVvdXQucGF0Y2ggYi9zcmNwa2dzL3BpbmVwaG9uZS11Ym9vdC9wYXRjaGVzL2FybXRmLzAwMDUt RE8tTk9ULU1FUkdFLWFsbHdpbm5lci1JbmNyZWFzZS1tc2dib3gtdGltZW91dC5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDExOTE4YzU5MDguLjAwMDAwMDAwMDAwCi0tLSBh L3NyY3BrZ3MvcGluZXBob25lLXVib290L3BhdGNoZXMvYXJtdGYvMDAwNS1ETy1OT1QtTUVSR0Ut YWxsd2lubmVyLUluY3JlYXNlLW1zZ2JveC10aW1lb3V0LnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMjcgKzAsMCBAQAotRnJvbSBmYzk5NThkOGU2NjFlYmI1ODQyZTY4ZjIzOGVhZWZiMGZiMDA0 MGM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU2FtdWVsIEhvbGxhbmQgPHNhbXVl bEBzaG9sbGFuZC5vcmc+Ci1EYXRlOiBUaHUsIDcgTWF5IDIwMjAgMTg6NTU6MDYgLTA1MDAKLVN1 YmplY3Q6IFtQQVRDSCA1LzVdIFtETyBOT1QgTUVSR0VdIGFsbHdpbm5lcjogSW5jcmVhc2UgbXNn Ym94IHRpbWVvdXQKLQotU2lnbmVkLW9mZi1ieTogU2FtdWVsIEhvbGxhbmQgPHNhbXVlbEBzaG9s bGFuZC5vcmc+Ci1DaGFuZ2UtSWQ6IEliZjUxNTdlMjNiZmE5MTMyM2MzOTM4N2I2NDNiOTM4NjE0 NTFkMjliCi0tLS0KLSBkcml2ZXJzL2FsbHdpbm5lci9zdW54aV9tc2dib3guYyB8IDIgKy0KLSAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdp dCBhL2RyaXZlcnMvYWxsd2lubmVyL3N1bnhpX21zZ2JveC5jIGIvZHJpdmVycy9hbGx3aW5uZXIv c3VueGlfbXNnYm94LmMKLWluZGV4IGNjNGE2ZmZjYi4uM2JkOTA5MzAwIDEwMDY0NAotLS0tIGEv ZHJpdmVycy9hbGx3aW5uZXIvc3VueGlfbXNnYm94LmMKLSsrKyBiL2RyaXZlcnMvYWxsd2lubmVy L3N1bnhpX21zZ2JveC5jCi1AQCAtMzYsNyArMzYsNyBAQAotICNkZWZpbmUgTUhVX01BWF9TTE9U X0lECQkzMQotIAotICNkZWZpbmUgTUhVX1RJTUVPVVRfREVMQVkJMTAKLS0jZGVmaW5lIE1IVV9U SU1FT1VUX0lURVJTCTEwMDAwCi0rI2RlZmluZSBNSFVfVElNRU9VVF9JVEVSUwkxMDAwMDAKLSAK LSBzdGF0aWMgREVGSU5FX0JBS0VSWV9MT0NLKG1odV9zZWN1cmVfbWVzc2FnZV9sb2NrKTsKLSAK LS0tIAotMi4yOC4wCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcGluZXBob25lLXVib290L3BhdGNo ZXMvYXJtdGYvMDAwNi1BVEYtc2V0LWZuby1zdGFjay1wcm90ZWN0b3IucGF0Y2ggYi9zcmNwa2dz L3BpbmVwaG9uZS11Ym9vdC9wYXRjaGVzL2FybXRmLzAwMDYtQVRGLXNldC1mbm8tc3RhY2stcHJv dGVjdG9yLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjNiYjg5MTYzMC4u MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9waW5lcGhvbmUtdWJvb3QvcGF0Y2hlcy9hcm10Zi8w MDA2LUFURi1zZXQtZm5vLXN0YWNrLXByb3RlY3Rvci5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDEwICswLDAgQEAKLS0tLSBhL01ha2VmaWxlCTIwMjAtMDYtMTYgMTY6NTU6MzYuMDAwMDAwMDAw ICswNzAwCi0rKysgYi9NYWtlZmlsZQkyMDIwLTA2LTE3IDEyOjE4OjI4LjYxMjUyNDAwMCArMDcw MAotQEAgLTM1Myw2ICszNTMsNyBAQAotIAkJCQktZmZyZWVzdGFuZGluZyAtV2EsLS1mYXRhbC13 YXJuaW5ncwotIFRGX0NGTEFHUwkJKz0JJChDUFBGTEFHUykgJChURl9DRkxBR1NfJChBUkNIKSkJ CVwKLSAJCQkJLWZmdW5jdGlvbi1zZWN0aW9ucyAtZmRhdGEtc2VjdGlvbnMJCVwKLSsJCQkJLWZu by1zdGFjay1wcm90ZWN0b3IJCQkJXAotIAkJCQktZmZyZWVzdGFuZGluZyAtZm5vLWJ1aWx0aW4g LWZuby1jb21tb24JCVwKLSAJCQkJLU9zIC1zdGQ9Z251OTkKLSAKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvcGluZXBob25lLXVib290L3RlbXBsYXRlIGIvc3JjcGtncy9waW5lcGhvbmUtdWJvb3QvdGVt cGxhdGUKaW5kZXggMjA3M2M5MTBjYjUuLmFhZWU4NGY5OThiIDEwMDY0NAotLS0gYS9zcmNwa2dz L3BpbmVwaG9uZS11Ym9vdC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3BpbmVwaG9uZS11Ym9vdC90 ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3BpbmVwaG9uZS11 Ym9vdCcKIHBrZ25hbWU9cGluZXBob25lLXVib290CiB2ZXJzaW9uPTAuMC4yMDIwMDkxNwotcmV2 aXNpb249MQorcmV2aXNpb249MgogYXJjaHM9ImFhcmNoNjQqIgogY3JlYXRlX3dya3NyYz15ZXMK IGhvc3RtYWtlZGVwZW5kcz0iZmxleCBjcm9zcy1vcjFrLW5vbmUtZWxmLWdjYyBkdGMgcHl0aG9u MyBweXRob24zLWRldmVsIGJjIHN3aWciCkBAIC0xMywyNiArMTMsMjAgQEAgbGljZW5zZT0iR1BM LTIuMC1vbmx5LCBCU0QtMy1DbGF1c2UiCiBob21lcGFnZT0iaHR0cDovL3d3dy5kZW54LmRlL3dp a2kvVS1Cb290L1dlYkhvbWUiCiAKIF90YWdfdWJvb3Q9Y3J1c3QtMjAyMC0wOS0xNwotX2NvbW1p dF9hcm10Zj0yYmRiNDYxMWFkNmVmZGIzZGEyZmYwZDJkZTdmZWU0YzQzZTk1YWViCi1fY29tbWl0 X2NydXN0PWU2MzEwNmM3MGJjNGRkZmEzNTc1ZTRmMWYzNjY3ZGUwNzk1MjUyYTgKK192ZXJfYXJt dGY9Mi40CitfdmVyX2NydXN0PTAuMwogCiBfdWJvb3Q9dS1ib290LSRfdGFnX3Vib290Ci1fYXJt dGY9YXJtLXRydXN0ZWQtZmlybXdhcmUtJF9jb21taXRfYXJtdGYKLV9jcnVzdD1jcnVzdC0kX2Nv bW1pdF9jcnVzdAorX2FybXRmPWFybS10cnVzdGVkLWZpcm13YXJlLSRfdmVyX2FybXRmCitfY3J1 c3Q9Y3J1c3QtJF92ZXJfY3J1c3QKIAogZGlzdGZpbGVzPSJodHRwczovL2dpdGxhYi5jb20vcGlu ZTY0LW9yZy91LWJvb3QvLS9hcmNoaXZlLyR7X3RhZ191Ym9vdH0vJHtfdWJvb3R9LnRhci5negot IGh0dHBzOi8vZ2l0aHViLmNvbS9BUk0tc29mdHdhcmUvYXJtLXRydXN0ZWQtZmlybXdhcmUvYXJj aGl2ZS8ke19jb21taXRfYXJtdGZ9LnRhci5negotIGh0dHBzOi8vZ2l0aHViLmNvbS9jcnVzdC1m aXJtd2FyZS9jcnVzdC9hcmNoaXZlLyR7X2NvbW1pdF9jcnVzdH0udGFyLmd6IgorIGh0dHBzOi8v Z2l0aHViLmNvbS9BUk0tc29mdHdhcmUvYXJtLXRydXN0ZWQtZmlybXdhcmUvYXJjaGl2ZS92JHtf dmVyX2FybXRmfS50YXIuZ3oKKyBodHRwczovL2dpdGh1Yi5jb20vY3J1c3QtZmlybXdhcmUvY3J1 c3QvYXJjaGl2ZS92JHtfdmVyX2NydXN0fS50YXIuZ3oiCiAKIGNoZWNrc3VtPSIzOTVlNjE3OTBk NDg3N2UxMWM0NzA0NDVkZmVlODM0YTAxN2E0YjVkZjVmN2VlMzRlYmNhYTEyNTcxMzE1MGRjCi0g NDgyOTFiNjIxYTRiYzM4Yzc5NTY5NjQ0MDcxMzBlZGQyZDAyZDhiMzc4OWZjZTQxOTNhYzFiNzQ3 YTViMzdkYgotIDZmYzJkNjg3MjVhNzhiMWNhNmU3YzY2MDIyODZmYzJhYTJkZGNkZWEyOGU4M2E4 NWY2Yjk4OGZjYzVhNTEzYjgiCi0KLWRvX3BhdGNoKCkgewotCWZvciBfcGF0Y2ggaW4gJFBBVENI RVNESVIvYXJtdGYvKi5wYXRjaDsgZG8KLQkJcGF0Y2ggLWQgJF9hcm10ZiAtc2xOcDEgLWkgJF9w YXRjaAotCWRvbmUKLX0KKyA0YmZkYTlmZGJlNTAyMmYyZTg4YWQzMzQ0MTY1ZjdkMzhhOGFlNGEw ZTJkOTFkNDRkOWExNjAzNDI1Y2M2NDJkCisgY2YwMmYyMjdiOTA5ZjQwYmNmYzMzYTk0MDg4ZmNl MTIzNTZkYWI0MWJjNzQ1OWMyMmI3YjMzM2IzMDVkNGM3MiIKIAogIyBOb3RlIGFib3V0IF9jcm9z cy9faG9zdGNjCiAjCkBAIC00NSwxNCArMzksMTMgQEAgZG9fcGF0Y2goKSB7CiAKIF9vcjFrPSJD Uk9TU19DT01QSUxFPW9yMWstbm9uZS1lbGYtIgogCitpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRo ZW4KKwlfY3Jvc3M9IkNST1NTX0NPTVBJTEU9JHtYQlBTX0NST1NTX1RSSVBMRVR9LSIKKwlfaG9z dGNjPSJIT1NUX0NPTVBJTEU9JHtYQlBTX0NST1NTX1RSSVBMRVR9LSIKK2ZpCisKIGRvX2NvbmZp Z3VyZSgpIHsKIAl1bnNldCBDRkxBR1MgQ1hYRkxBR1MgQ1BQRkxBR1MgTERGTEFHUwotCWxvY2Fs IF9jcm9zcyBfaG9zdGNjCi0KLQlpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KLQkJX2Nyb3Nz PSJDUk9TU19DT01QSUxFPSR7WEJQU19DUk9TU19UUklQTEVUfS0iCi0JCV9ob3N0Y2M9IkhPU1Rf Q09NUElMRT0ke1hCUFNfQ1JPU1NfVFJJUExFVH0tIgotCWZpCiAKIAltYWtlIC1DICRfY3J1c3Qg JF9ob3N0Y2MgJF9vcjFrIHBpbmVwaG9uZV9kZWZjb25maWcKIAltYWtlIC1DICRfdWJvb3QgJF9j cm9zcyBwaW5lcGhvbmVfZGVmY29uZmlnCkBAIC02MSwxMiArNTQsNiBAQCBkb19jb25maWd1cmUo KSB7CiAKIGRvX2J1aWxkKCkgewogCXVuc2V0IENGTEFHUyBDWFhGTEFHUyBDUFBGTEFHUyBMREZM QUdTCi0JbG9jYWwgX2Nyb3NzIF9ob3N0Y2MKLQotCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhl bgotCQlfY3Jvc3M9IkNST1NTX0NPTVBJTEU9JHtYQlBTX0NST1NTX1RSSVBMRVR9LSIKLQkJX2hv c3RjYz0iSE9TVF9DT01QSUxFPSR7WEJQU19DUk9TU19UUklQTEVUfS0iCi0JZmkKIAogCW1ha2Ug LUMgJF9hcm10ZiAkX2Nyb3NzIFBMQVQ9c3VuNTBpX2E2NCBERUJVRz0xICRtYWtlam9icyBibDMx CiAJbWFrZSAtQyAkX2NydXN0ICRfaG9zdGNjICRfb3IxayAkbWFrZWpvYnMgc2NwCg== --===============8250246022972828486==--