From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Gwyn Ciesla To: git-commits@fedoraproject.org Subject: [rpms/transmission] epel10: 4.0.1 Date: Mon, 20 Jul 2026 20:37:48 GMT Message-ID: <178457986829.1.17872637911015846748.rpms-transmission-fd2294bdc875@fedoraproject.org> List-ID: X-Git-Repo: rpms/transmission X-Git-Branch: epel10 X-Git-Rev: fd2294bdc8759b753ad4eff7d233a4b0e2b0ab63 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvdHJhbnNtaXNzaW9u CkJyYW5jaCA6IGVwZWwxMApDb21taXQgOiBmZDIyOTRiZGM4NzU5Yjc1M2FkNGVmZjdkMjMzYTRi MGUyYjBhYjYzCkF1dGhvciA6IEd3eW4gQ2llc2xhIDxnd3luY0Bwcm90b25tYWlsLmNvbT4KRGF0 ZSAgIDogMjAyMy0wMi0yM1QxMDoxOTozMS0wNjowMApTdGF0cyAgOiArOC8tODY5IGluIDUgZmls ZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL3RyYW5zbWlz c2lvbi9jL2ZkMjI5NGJkYzg3NTliNzUzYWQ0ZWZmN2QyMzNhNGIwZTJiMGFiNjM/YnJhbmNoPWVw ZWwxMAoKTG9nOgo0LjAuMQoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9y ZQppbmRleCA3NWE2ZjM5Li4wMzI3YmQwIDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5n aXRpZ25vcmUKQEAgLTI3LDMgKzI3LDQgQEAgdHJhbnNtaXNzaW9uLTIuMDQudGFyLnh6CiAvdHJh bnNtaXNzaW9uLTIuOTQudGFyLnh6CiAvdHJhbnNtaXNzaW9uLTMuMDAudGFyLnh6CiAvdHJhbnNt aXNzaW9uLTQuMC4wLnRhci54egorL3RyYW5zbWlzc2lvbi00LjAuMS50YXIueHoKCmRpZmYgLS1n aXQgYS80ODkwLnBhdGNoIGIvNDg5MC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMjk0MWY0Mi4uMDAwMDAwMAotLS0gYS80ODkwLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MzYzICswLDAgQEAKLUZyb20gYmE5N2ZiNzkyYzI0ODMyMGVkZDYzNTM1OTNmZWFmZjkxYjExNTVl ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IENoYXJsZXMgS2VyciA8Y2hhcmxlc0Bj aGFybGVza2Vyci5jb20+Ci1EYXRlOiBUdWUsIDE0IEZlYiAyMDIzIDEwOjMwOjU0IC0wNjAwCi1T dWJqZWN0OiBbUEFUQ0ggMS8zXSBmaXg6IHByb2Nlc3Npbmcgb2YgYmxvY2sgZnJhZ21lbnRzIHRo YXQgYXJyaXZlCi0gb3V0LW9mLW9yZGVyIGZyb20gcmVxdWVzdAotCi1GaXhlcyA0LjAuMCByZWdy ZXNzaW9uIG9uIHRvcnJlbnRzIHdob3NlIHBpZWNlcyBkaWQgbm90IGFsaWduIG9uIGJsb2NrIGJv dW5kYXJpZXMuCi0tLS0KLSBsaWJ0cmFuc21pc3Npb24vY2FjaGUuY2MgICAgIHwgIDIgKy0KLSBs aWJ0cmFuc21pc3Npb24vY2FjaGUuaCAgICAgIHwgIDIgKy0KLSBsaWJ0cmFuc21pc3Npb24vcGVl ci1tc2dzLmNjIHwgOTYgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCi0gbGli dHJhbnNtaXNzaW9uL3RvcnJlbnQuY2MgICB8IDExICsrKystCi0gbGlidHJhbnNtaXNzaW9uL3dl YnNlZWQuY2MgICB8ICAyICstCi0gNSBmaWxlcyBjaGFuZ2VkLCA2MCBpbnNlcnRpb25zKCspLCA1 MyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xpYnRyYW5zbWlzc2lvbi9jYWNoZS5jYyBi L2xpYnRyYW5zbWlzc2lvbi9jYWNoZS5jYwotaW5kZXggZWY0NDZiMjQ0Yy4uZjdhZTAzZGNjMSAx MDA2NDQKLS0tLSBhL2xpYnRyYW5zbWlzc2lvbi9jYWNoZS5jYwotKysrIGIvbGlidHJhbnNtaXNz aW9uL2NhY2hlLmNjCi1AQCAtMTQwLDcgKzE0MCw3IEBAIENhY2hlOjpDYWNoZSh0cl90b3JyZW50 cyYgdG9ycmVudHMsIGludDY0X3QgbWF4X2J5dGVzKQotIAotIC8vIC0tLQotIAotLWludCBDYWNo ZTo6d3JpdGVCbG9jayh0cl90b3JyZW50X2lkX3QgdG9yX2lkLCB0cl9ibG9ja19pbmRleF90IGJs b2NrLCBzdGQ6OnVuaXF1ZV9wdHI8c3RkOjp2ZWN0b3I8dWludDhfdD4+JiB3cml0ZW1lKQotK2lu dCBDYWNoZTo6d3JpdGVCbG9jayh0cl90b3JyZW50X2lkX3QgdG9yX2lkLCB0cl9ibG9ja19pbmRl eF90IGJsb2NrLCBzdGQ6OnVuaXF1ZV9wdHI8c3RkOjp2ZWN0b3I8dWludDhfdD4+IHdyaXRlbWUp Ci0gewotICAgICBhdXRvIGNvbnN0IGtleSA9IEtleXsgdG9yX2lkLCBibG9jayB9OwotICAgICBh dXRvIGl0ZXIgPSBzdGQ6Omxvd2VyX2JvdW5kKHN0ZDo6YmVnaW4oYmxvY2tzXyksIHN0ZDo6ZW5k KGJsb2Nrc18pLCBrZXksIENvbXBhcmVDYWNoZUJsb2NrQnlLZXl7fSk7Ci1kaWZmIC0tZ2l0IGEv bGlidHJhbnNtaXNzaW9uL2NhY2hlLmggYi9saWJ0cmFuc21pc3Npb24vY2FjaGUuaAotaW5kZXgg ZTI1ZGViMjMyOC4uOWQ2NDU1NjEwYiAxMDA2NDQKLS0tLSBhL2xpYnRyYW5zbWlzc2lvbi9jYWNo ZS5oCi0rKysgYi9saWJ0cmFuc21pc3Npb24vY2FjaGUuaAotQEAgLTM2LDcgKzM2LDcgQEAgY2xh c3MgQ2FjaGUKLSAgICAgfQotIAotICAgICAvLyBAcmV0dXJuIGFueSBlcnJvciBjb2RlIGZyb20g Y2FjaGVUcmltKCkKLS0gICAgaW50IHdyaXRlQmxvY2sodHJfdG9ycmVudF9pZF90IHRvciwgdHJf YmxvY2tfaW5kZXhfdCBibG9jaywgc3RkOjp1bmlxdWVfcHRyPHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+ PiYgd3JpdGVtZSk7Ci0rICAgIGludCB3cml0ZUJsb2NrKHRyX3RvcnJlbnRfaWRfdCB0b3IsIHRy X2Jsb2NrX2luZGV4X3QgYmxvY2ssIHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnZlY3Rvcjx1aW50OF90 Pj4gd3JpdGVtZSk7Ci0gCi0gICAgIGludCByZWFkQmxvY2sodHJfdG9ycmVudCogdG9ycmVudCwg dHJfYmxvY2tfaW5mbzo6TG9jYXRpb24gbG9jLCB1aW50MzJfdCBsZW4sIHVpbnQ4X3QqIHNldG1l KTsKLSAgICAgaW50IHByZWZldGNoQmxvY2sodHJfdG9ycmVudCogdG9ycmVudCwgdHJfYmxvY2tf aW5mbzo6TG9jYXRpb24gbG9jLCB1aW50MzJfdCBsZW4pOwotZGlmZiAtLWdpdCBhL2xpYnRyYW5z bWlzc2lvbi9wZWVyLW1zZ3MuY2MgYi9saWJ0cmFuc21pc3Npb24vcGVlci1tc2dzLmNjCi1pbmRl eCA4MzdkYmI0Yjc2Li4wNTg2NGZlYTIwIDEwMDY0NAotLS0tIGEvbGlidHJhbnNtaXNzaW9uL3Bl ZXItbXNncy5jYwotKysrIGIvbGlidHJhbnNtaXNzaW9uL3BlZXItbXNncy5jYwotQEAgLTE4OCw3 ICsxODgsMjAgQEAgc3RydWN0IHRyX2luY29taW5nCi0gICAgIHVpbnQ4X3QgaWQgPSAwOyAvLyB0 aGUgcHJvdG9jb2wgbWVzc2FnZSwgZS5nLiBCdFBlZXJNc2dzOjpQaWVjZQotICAgICB1aW50MzJf dCBsZW5ndGggPSAwOyAvLyB0aGUgZnVsbCBtZXNzYWdlIHBheWxvYWQgbGVuZ3RoLiBJbmNsdWRl cyB0aGUgKzEgZm9yIGlkIGxlbmd0aAotICAgICBzdGQ6Om9wdGlvbmFsPHBlZXJfcmVxdWVzdD4g YmxvY2tfcmVxOyAvLyBtZXRhZGF0YSBmb3IgaW5jb21pbmcgYmxvY2tzCi0tICAgIHN0ZDo6bWFw PHRyX2Jsb2NrX2luZGV4X3QsIHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnZlY3Rvcjx1aW50OF90Pj4+ IGJsb2NrX2J1ZjsgLy8gcGllY2UgZGF0YSBmb3IgaW5jb21pbmcgYmxvY2tzCi0rCi0rICAgIHN0 cnVjdCBpbmNvbWluZ19waWVjZV9kYXRhCi0rICAgIHsKLSsgICAgICAgIGV4cGxpY2l0IGluY29t aW5nX3BpZWNlX2RhdGEodWludDMyX3QgYmxvY2tfc2l6ZSkKLSsgICAgICAgICAgICA6IGJ1Znsg c3RkOjptYWtlX3VuaXF1ZTxzdGQ6OnZlY3Rvcjx1aW50OF90Pj4oYmxvY2tfc2l6ZSkgfQotKyAg ICAgICAgewotKyAgICAgICAgfQotKwotKyAgICAgICAgdWludDMyX3Qgbl9ieXRlc19yZWNlaXZl ZCA9IDA7Ci0rCi0rICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8c3RkOjp2ZWN0b3I8dWludDhfdD4+ IGJ1ZjsKLSsgICAgfTsKLSsKLSsgICAgc3RkOjptYXA8dHJfYmxvY2tfaW5kZXhfdCwgaW5jb21p bmdfcGllY2VfZGF0YT4gYmxvY2tzOwotIH07Ci0gCi0gY2xhc3MgdHJfcGVlck1zZ3NJbXBsOwot QEAgLTEzOTcsNyArMTQxMCw3IEBAIGJvb2wgbWVzc2FnZUxlbmd0aElzQ29ycmVjdCh0cl9wZWVy TXNnc0ltcGwgY29uc3QqIG1zZywgdWludDhfdCBpZCwgdWludDMyX3QgbGVuCi0gICAgIH0KLSB9 Ci0gCi0taW50IGNsaWVudEdvdEJsb2NrKHRyX3BlZXJNc2dzSW1wbCogbXNncywgc3RkOjp1bmlx dWVfcHRyPHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+PiYgYmxvY2tfZGF0YSwgdHJfYmxvY2tfaW5kZXhf dCBibG9jayk7Ci0raW50IGNsaWVudEdvdEJsb2NrKHRyX3BlZXJNc2dzSW1wbCogbXNncywgc3Rk Ojp1bmlxdWVfcHRyPHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+PiBibG9ja19kYXRhLCB0cl9ibG9ja19p bmRleF90IGJsb2NrKTsKLSAKLSBSZWFkU3RhdGUgcmVhZEJ0UGllY2UodHJfcGVlck1zZ3NJbXBs KiBtc2dzLCBzaXplX3QgaW5sZW4sIHNpemVfdCogc2V0bWVfcGllY2VfYnl0ZXNfcmVhZCkKLSB7 Ci1AQCAtMTQwNiw3ICsxNDE5LDggQEAgUmVhZFN0YXRlIHJlYWRCdFBpZWNlKHRyX3BlZXJNc2dz SW1wbCogbXNncywgc2l6ZV90IGlubGVuLCBzaXplX3QqIHNldG1lX3BpZWNlX2IKLSAgICAgbG9n dHJhY2UobXNncywgIkluIHJlYWRCdFBpZWNlIik7Ci0gCi0gICAgIC8vIElmIHRoaXMgaXMgdGhl IGZpcnN0IHdlJ3ZlIHNlZW4gb2YgdGhlIHBpZWNlIGRhdGEsIHBhcnNlIG91dCB0aGUgaGVhZGVy Ci0tICAgIGlmICghbXNncy0+aW5jb21pbmcuYmxvY2tfcmVxKQotKyAgICBhdXRvJiBpbmNvbWlu ZyA9IG1zZ3MtPmluY29taW5nOwotKyAgICBpZiAoIWluY29taW5nLmJsb2NrX3JlcSkKLSAgICAg ewotICAgICAgICAgaWYgKGlubGVuIDwgOCkKLSAgICAgICAgIHsKLUBAIC0xNDE2LDY3ICsxNDMw LDU1IEBAIFJlYWRTdGF0ZSByZWFkQnRQaWVjZSh0cl9wZWVyTXNnc0ltcGwqIG1zZ3MsIHNpemVf dCBpbmxlbiwgc2l6ZV90KiBzZXRtZV9waWVjZV9iCi0gICAgICAgICBhdXRvIHJlcSA9IHBlZXJf cmVxdWVzdHt9OwotICAgICAgICAgbXNncy0+aW8tPnJlYWRfdWludDMyKCZyZXEuaW5kZXgpOwot ICAgICAgICAgbXNncy0+aW8tPnJlYWRfdWludDMyKCZyZXEub2Zmc2V0KTsKLS0gICAgICAgIHJl cS5sZW5ndGggPSBtc2dzLT5pbmNvbWluZy5sZW5ndGggLSA5OwotKyAgICAgICAgcmVxLmxlbmd0 aCA9IGluY29taW5nLmxlbmd0aCAtIDk7Ci0gICAgICAgICBsb2d0cmFjZShtc2dzLCBmbXQ6OmZv cm1hdChGTVRfU1RSSU5HKCJnb3QgaW5jb21pbmcgYmxvY2sgaGVhZGVyIHs6ZH06ezpkfS0+ezpk fSIpLCByZXEuaW5kZXgsIHJlcS5vZmZzZXQsIHJlcS5sZW5ndGgpKTsKLS0gICAgICAgIG1zZ3Mt PmluY29taW5nLmJsb2NrX3JlcSA9IHJlcTsKLSsgICAgICAgIGluY29taW5nLmJsb2NrX3JlcSA9 IHJlcTsKLSAgICAgICAgIHJldHVybiBSRUFEX05PVzsKLSAgICAgfQotIAotLSAgICBhdXRvJiBy ZXEgPSBtc2dzLT5pbmNvbWluZy5ibG9ja19yZXE7Ci0rICAgIGF1dG8mIHJlcSA9IGluY29taW5n LmJsb2NrX3JlcTsKLSAgICAgYXV0byBjb25zdCBsb2MgPSBtc2dzLT50b3JyZW50LT5waWVjZUxv YyhyZXEtPmluZGV4LCByZXEtPm9mZnNldCk7Ci0gICAgIGF1dG8gY29uc3QgYmxvY2sgPSBsb2Mu YmxvY2s7Ci0gICAgIGF1dG8gY29uc3QgYmxvY2tfc2l6ZSA9IG1zZ3MtPnRvcnJlbnQtPmJsb2Nr U2l6ZShibG9jayk7Ci0tICAgIGF1dG8mIGJsb2NrX2J1ZiA9IG1zZ3MtPmluY29taW5nLmJsb2Nr X2J1ZltibG9ja107Ci0tICAgIGlmICghYmxvY2tfYnVmKQotLSAgICB7Ci0tICAgICAgICBibG9j a19idWYgPSBzdGQ6Om1ha2VfdW5pcXVlPHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+PigpOwotLSAgICAg ICAgYmxvY2tfYnVmLT5yZXNlcnZlKGJsb2NrX3NpemUpOwotLSAgICB9Ci0gCi0tICAgIC8vIHJl YWQgaW4gYW5vdGhlciBjaHVuayBvZiBkYXRhCi0tICAgIGF1dG8gY29uc3Qgbl9sZWZ0X2luX2Js b2NrID0gYmxvY2tfc2l6ZSAtIHN0ZDo6c2l6ZSgqYmxvY2tfYnVmKTsKLS0gICAgYXV0byBjb25z dCBuX2xlZnRfaW5fcmVxID0gc2l6ZV90eyByZXEtPmxlbmd0aCB9OwotLSAgICBhdXRvIGNvbnN0 IG5fdG9fcmVhZCA9IHN0ZDo6bWluKHsgbl9sZWZ0X2luX2Jsb2NrLCBuX2xlZnRfaW5fcmVxLCBp bmxlbiB9KTsKLS0gICAgYXV0byBjb25zdCBvbGRfbGVuZ3RoID0gc3RkOjpzaXplKCpibG9ja19i dWYpOwotLSAgICBibG9ja19idWYtPnJlc2l6ZShvbGRfbGVuZ3RoICsgbl90b19yZWFkKTsKLS0g ICAgbXNncy0+aW8tPnJlYWRfYnl0ZXMoJigoKmJsb2NrX2J1Zilbb2xkX2xlbmd0aF0pLCBuX3Rv X3JlYWQpOwotKyAgICBhdXRvIGNvbnN0IG5fdGhpc19wYXNzID0gc3RkOjptaW4oc2l6ZV90eyBy ZXEtPmxlbmd0aCB9LCBpbmxlbik7Ci0rICAgIFRSX0FTU0VSVChsb2MuYmxvY2tfb2Zmc2V0ICsg bl90aGlzX3Bhc3MgPD0gYmxvY2tfc2l6ZSk7Ci0gCi0tICAgIG1zZ3MtPnB1Ymxpc2godHJfcGVl cl9ldmVudDo6R290UGllY2VEYXRhKG5fdG9fcmVhZCkpOwotLSAgICAqc2V0bWVfcGllY2VfYnl0 ZXNfcmVhZCArPSBuX3RvX3JlYWQ7Ci0tICAgIGxvZ3RyYWNlKAotLSAgICAgICAgbXNncywKLS0g ICAgICAgIGZtdDo6Zm9ybWF0KAotLSAgICAgICAgICAgIEZNVF9TVFJJTkcoImdvdCB7OmR9IGJ5 dGVzIGZvciBibG9jayB7OmR9Ons6ZH0tPns6ZH0gLi4uIHs6ZH0gcmVtYWluIGluIHJlcSwgezpk fSByZW1haW4gaW4gYmxvY2siKSwKLS0gICAgICAgICAgICBuX3RvX3JlYWQsCi0tICAgICAgICAg ICAgcmVxLT5pbmRleCwKLS0gICAgICAgICAgICByZXEtPm9mZnNldCwKLS0gICAgICAgICAgICBy ZXEtPmxlbmd0aCwKLS0gICAgICAgICAgICByZXEtPmxlbmd0aCwKLS0gICAgICAgICAgICBibG9j a19zaXplIC0gc3RkOjpzaXplKCpibG9ja19idWYpKSk7Ci0tCi0tICAgIC8vIGlmIHdlIGRpZG4n dCByZWFkIGVub3VnaCB0byBmaW5pc2ggb2ZmIHRoZSByZXF1ZXN0LAotLSAgICAvLyB1cGRhdGUg dGhlIHRhYmxlIGFuZCB3YWl0IGZvciBtb3JlCi0tICAgIGlmIChuX3RvX3JlYWQgPCBuX2xlZnRf aW5fcmVxKQotLSAgICB7Ci0tICAgICAgICBhdXRvIG5ld19sb2MgPSBtc2dzLT50b3JyZW50LT5i eXRlTG9jKGxvYy5ieXRlICsgbl90b19yZWFkKTsKLSsgICAgYXV0byYgaW5jb21pbmdfYmxvY2sg PSBpbmNvbWluZy5ibG9ja3MudHJ5X2VtcGxhY2UoYmxvY2ssIGJsb2NrX3NpemUpLmZpcnN0LT5z ZWNvbmQ7Ci0rICAgIG1zZ3MtPmlvLT5yZWFkX2J5dGVzKHN0ZDo6ZGF0YSgqaW5jb21pbmdfYmxv Y2suYnVmKSArIGxvYy5ibG9ja19vZmZzZXQsIG5fdGhpc19wYXNzKTsKLSsKLSsgICAgbXNncy0+ cHVibGlzaCh0cl9wZWVyX2V2ZW50OjpHb3RQaWVjZURhdGEobl90aGlzX3Bhc3MpKTsKLSsgICAg KnNldG1lX3BpZWNlX2J5dGVzX3JlYWQgKz0gbl90aGlzX3Bhc3M7Ci0rICAgIGluY29taW5nX2Js b2NrLm5fYnl0ZXNfcmVjZWl2ZWQgKz0gbl90aGlzX3Bhc3M7Ci0rICAgIFRSX0FTU0VSVChpbmNv bWluZ19ibG9jay5uX2J5dGVzX3JlY2VpdmVkIDw9IGJsb2NrX3NpemUpOwotKyAgICBsb2d0cmFj ZShtc2dzLCBmbXQ6OmZvcm1hdCgiZ290IHs6ZH0gYnl0ZXMgZm9yIHJlcSB7OmR9Ons6ZH0tPns6 ZH0iLCBuX3RoaXNfcGFzcywgcmVxLT5pbmRleCwgcmVxLT5vZmZzZXQsIHJlcS0+bGVuZ3RoKSk7 Ci0rCi0rICAgIC8vIGlmIHdlIGhhdmVuJ3QgZ290dGVuIHRoZSBmdWxsIHJlc3BvbnNlIHlldCwK LSsgICAgLy8gdXBkYXRlIHdoYXQgcGFydCBvZiBgcmVxYCBpcyB1bmZ1bGZpbGxlZCBhbmQgd2Fp dCBmb3IgbW9yZQotKyAgICBpZiAobl90aGlzX3Bhc3MgPCByZXEtPmxlbmd0aCkKLSsgICAgewot KyAgICAgICAgcmVxLT5sZW5ndGggLT0gbl90aGlzX3Bhc3M7Ci0rICAgICAgICBhdXRvIGNvbnN0 IG5ld19sb2MgPSBtc2dzLT50b3JyZW50LT5ieXRlTG9jKGxvYy5ieXRlICsgbl90aGlzX3Bhc3Mp OwotICAgICAgICAgcmVxLT5pbmRleCA9IG5ld19sb2MucGllY2U7Ci0gICAgICAgICByZXEtPm9m ZnNldCA9IG5ld19sb2MucGllY2Vfb2Zmc2V0OwotLSAgICAgICAgcmVxLT5sZW5ndGggLT0gbl90 b19yZWFkOwotICAgICAgICAgcmV0dXJuIFJFQURfTEFURVI7Ci0gICAgIH0KLSAKLS0gICAgLy8g d2UndmUgZnVsbHkgcmVhZCB0aGlzIG1lc3NhZ2UKLSsgICAgLy8gd2UndmUgZ290IHRoZSBlbnRp cmUgcmVzcG9uc2UgbWVzc2FnZQotICAgICByZXEucmVzZXQoKTsKLSAgICAgbXNncy0+c3RhdGUg PSBBd2FpdGluZ0J0OjpMZW5ndGg7Ci0gCi0tICAgIC8vIGlmIHdlIGRpZG4ndCByZWFkIGVub3Vn aCB0byBmaW5pc2ggb2ZmIHRoZSBibG9jaywKLS0gICAgLy8gdXBkYXRlIHRoZSB0YWJsZSBhbmQg d2FpdCBmb3IgbW9yZQotLSAgICBpZiAoc3RkOjpzaXplKCpibG9ja19idWYpIDwgYmxvY2tfc2l6 ZSkKLSsgICAgLy8gaWYgd2UgaGF2ZW4ndCBnb3R0ZW4gdGhlIGVudGlyZSBibG9jayB5ZXQsIHdh aXQgZm9yIG1vcmUKLSsgICAgaWYgKGluY29taW5nX2Jsb2NrLm5fYnl0ZXNfcmVjZWl2ZWQgPCBi bG9ja19zaXplKQotICAgICB7Ci0gICAgICAgICByZXR1cm4gUkVBRF9MQVRFUjsKLSAgICAgfQot IAotLSAgICByZXR1cm4gY2xpZW50R290QmxvY2sobXNncywgYmxvY2tfYnVmLCBibG9jaykgIT0g MCA/IFJFQURfRVJSIDogUkVBRF9OT1c7Ci0rICAgIC8vIHdlJ3ZlIGdvdCB0aGUgZW50aXJlIGJs b2NrLCBzbyBzZW5kIGl0IGFsb25nLgotKyAgICBhdXRvIGJsb2NrX2J1ZiA9IHN0ZDo6bW92ZShp bmNvbWluZ19ibG9jay5idWYpOwotKyAgICBpbmNvbWluZy5ibG9ja3MuZXJhc2UoYmxvY2spOyAv LyBub3RlOiBpbnZhbGlkYXRlcyBgaW5jb21pbmdfYmxvY2tgIGxvY2FsCi0rICAgIGF1dG8gY29u c3Qgb2sgPSBjbGllbnRHb3RCbG9jayhtc2dzLCBzdGQ6Om1vdmUoYmxvY2tfYnVmKSwgYmxvY2sp ID09IDA7Ci0rICAgIHJldHVybiBvayA/IFJFQURfTk9XIDogUkVBRF9FUlI7Ci0gfQotIAotIFJl YWRTdGF0ZSByZWFkQnRNZXNzYWdlKHRyX3BlZXJNc2dzSW1wbCogbXNncywgc2l6ZV90IGlubGVu KQotQEAgLTE3NDQsNyArMTc0Niw3IEBAIFJlYWRTdGF0ZSByZWFkQnRNZXNzYWdlKHRyX3BlZXJN c2dzSW1wbCogbXNncywgc2l6ZV90IGlubGVuKQotIH0KLSAKLSAvKiByZXR1cm5zIDAgb24gc3Vj Y2Vzcywgb3IgYW4gZXJybm8gb24gZmFpbHVyZSAqLwotLWludCBjbGllbnRHb3RCbG9jayh0cl9w ZWVyTXNnc0ltcGwqIG1zZ3MsIHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnZlY3Rvcjx1aW50OF90Pj4m IGJsb2NrX2RhdGEsIHRyX2Jsb2NrX2luZGV4X3QgY29uc3QgYmxvY2spCi0raW50IGNsaWVudEdv dEJsb2NrKHRyX3BlZXJNc2dzSW1wbCogbXNncywgc3RkOjp1bmlxdWVfcHRyPHN0ZDo6dmVjdG9y PHVpbnQ4X3Q+PiBibG9ja19kYXRhLCB0cl9ibG9ja19pbmRleF90IGNvbnN0IGJsb2NrKQotIHsK LSAgICAgVFJfQVNTRVJUKG1zZ3MgIT0gbnVsbHB0cik7Ci0gCi1AQCAtMTc2MCw3ICsxNzYyLDYg QEAgaW50IGNsaWVudEdvdEJsb2NrKHRyX3BlZXJNc2dzSW1wbCogbXNncywgc3RkOjp1bmlxdWVf cHRyPHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+PiYKLSAgICAgaWYgKHN0ZDo6c2l6ZSgqYmxvY2tfZGF0 YSkgIT0gbXNncy0+dG9ycmVudC0+YmxvY2tTaXplKGJsb2NrKSkKLSAgICAgewotICAgICAgICAg bG9nZGJnKG1zZ3MsIGZtdDo6Zm9ybWF0KCJ3cm9uZyBibG9jayBzaXplOiBleHBlY3RlZCB7OmR9 LCBnb3QgezpkfSIsIG5fZXhwZWN0ZWQsIHN0ZDo6c2l6ZSgqYmxvY2tfZGF0YSkpKTsKLS0gICAg ICAgIGJsb2NrX2RhdGEtPmNsZWFyKCk7Ci0gICAgICAgICByZXR1cm4gRU1TR1NJWkU7Ci0gICAg IH0KLSAKLUBAIC0xNzY5LDcgKzE3NzAsNiBAQCBpbnQgY2xpZW50R290QmxvY2sodHJfcGVlck1z Z3NJbXBsKiBtc2dzLCBzdGQ6OnVuaXF1ZV9wdHI8c3RkOjp2ZWN0b3I8dWludDhfdD4+JgotICAg ICBpZiAoIXRyX3BlZXJNZ3JEaWRQZWVyUmVxdWVzdChtc2dzLT50b3JyZW50LCBtc2dzLCBibG9j aykpCi0gICAgIHsKLSAgICAgICAgIGxvZ2RiZyhtc2dzLCAid2UgZGlkbid0IGFzayBmb3IgdGhp cyBtZXNzYWdlLi4uIik7Ci0tICAgICAgICBibG9ja19kYXRhLT5jbGVhcigpOwotICAgICAgICAg cmV0dXJuIDA7Ci0gICAgIH0KLSAKLUBAIC0xNzc3LDE5ICsxNzc3LDE3IEBAIGludCBjbGllbnRH b3RCbG9jayh0cl9wZWVyTXNnc0ltcGwqIG1zZ3MsIHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnZlY3Rv cjx1aW50OF90Pj4mCi0gICAgIGlmIChtc2dzLT50b3JyZW50LT5oYXNQaWVjZShsb2MucGllY2Up KQotICAgICB7Ci0gICAgICAgICBsb2d0cmFjZShtc2dzLCAid2UgZGlkIGFzayBmb3IgdGhpcyBt ZXNzYWdlLCBidXQgdGhlIHBpZWNlIGlzIGFscmVhZHkgY29tcGxldGUuLi4iKTsKLS0gICAgICAg IGJsb2NrX2RhdGEtPmNsZWFyKCk7Ci0gICAgICAgICByZXR1cm4gMDsKLSAgICAgfQotIAotICAg ICAvLyBOQjogaWYgd3JpdGVCbG9jaygpIGZhaWxzIHRoZSB0b3JyZW50IG1heSBiZSBwYXVzZWQu Ci0gICAgIC8vIElmIHRoaXMgaGFwcGVucywgYG1zZ3NgIHdpbGwgYmUgYSBkYW5nbGluZyBwb2lu dGVyIGFuZCBtdXN0IG5vIGxvbmdlciBiZSB1c2VkLgotLSAgICBpZiAoYXV0byBjb25zdCBlcnIg PSBtc2dzLT5zZXNzaW9uLT5jYWNoZS0+d3JpdGVCbG9jayh0b3ItPmlkKCksIGJsb2NrLCBibG9j a19kYXRhKTsgZXJyICE9IDApCi0rICAgIGlmIChhdXRvIGNvbnN0IGVyciA9IG1zZ3MtPnNlc3Np b24tPmNhY2hlLT53cml0ZUJsb2NrKHRvci0+aWQoKSwgYmxvY2ssIHN0ZDo6bW92ZShibG9ja19k YXRhKSk7IGVyciAhPSAwKQotICAgICB7Ci0gICAgICAgICByZXR1cm4gZXJyOwotICAgICB9Ci0g Ci0gICAgIG1zZ3MtPmJsYW1lLnNldChsb2MucGllY2UpOwotLSAgICBtc2dzLT5pbmNvbWluZy5i bG9ja19idWYuZXJhc2UoYmxvY2spOwotICAgICBtc2dzLT5wdWJsaXNoKHRyX3BlZXJfZXZlbnQ6 OkdvdEJsb2NrKHRvci0+YmxvY2tJbmZvKCksIGJsb2NrKSk7Ci0gCi0gICAgIHJldHVybiAwOwot ZGlmZiAtLWdpdCBhL2xpYnRyYW5zbWlzc2lvbi90b3JyZW50LmNjIGIvbGlidHJhbnNtaXNzaW9u L3RvcnJlbnQuY2MKLWluZGV4IDRiNWEwYjFkZWEuLmNkOTZiYWMyYzMgMTAwNjQ0Ci0tLS0gYS9s aWJ0cmFuc21pc3Npb24vdG9ycmVudC5jYwotKysrIGIvbGlidHJhbnNtaXNzaW9uL3RvcnJlbnQu Y2MKLUBAIC0yNDAwLDggKzI0MDAsMTcgQEAgdm9pZCB0cl90b3JyZW50R290QmxvY2sodHJfdG9y cmVudCogdG9yLCB0cl9ibG9ja19pbmRleF90IGJsb2NrKQotICAgICB0b3ItPnNldERpcnR5KCk7 Ci0gCi0gICAgIHRvci0+Y29tcGxldGlvbi5hZGRCbG9jayhibG9jayk7Ci0tICAgIGlmIChhdXRv IGNvbnN0IHBpZWNlID0gdG9yLT5ibG9ja0xvYyhibG9jaykucGllY2U7IHRvci0+aGFzUGllY2Uo cGllY2UpKQotKwotKyAgICBhdXRvIGNvbnN0IGJsb2NrX2xvYyA9IHRvci0+YmxvY2tMb2MoYmxv Y2spOwotKyAgICBhdXRvIGNvbnN0IGZpcnN0X3BpZWNlID0gYmxvY2tfbG9jLnBpZWNlOwotKyAg ICBhdXRvIGNvbnN0IGxhc3RfcGllY2UgPSB0b3ItPmJ5dGVMb2MoYmxvY2tfbG9jLmJ5dGUgKyB0 b3ItPmJsb2NrU2l6ZShibG9jaykgLSAxKS5waWVjZTsKLSsgICAgZm9yIChhdXRvIHBpZWNlID0g Zmlyc3RfcGllY2U7IHBpZWNlIDw9IGxhc3RfcGllY2U7ICsrcGllY2UpCi0gICAgIHsKLSsgICAg ICAgIGlmICghdG9yLT5oYXNQaWVjZShwaWVjZSkpCi0rICAgICAgICB7Ci0rICAgICAgICAgICAg Y29udGludWU7Ci0rICAgICAgICB9Ci0rCi0gICAgICAgICBpZiAodG9yLT5jaGVja1BpZWNlKHBp ZWNlKSkKLSAgICAgICAgIHsKLSAgICAgICAgICAgICBvblBpZWNlQ29tcGxldGVkKHRvciwgcGll Y2UpOwotZGlmZiAtLWdpdCBhL2xpYnRyYW5zbWlzc2lvbi93ZWJzZWVkLmNjIGIvbGlidHJhbnNt aXNzaW9uL3dlYnNlZWQuY2MKLWluZGV4IDdmMDdkZDE0OWUuLjgxMzYxMzlkODcgMTAwNjQ0Ci0t LS0gYS9saWJ0cmFuc21pc3Npb24vd2Vic2VlZC5jYwotKysrIGIvbGlidHJhbnNtaXNzaW9uL3dl YnNlZWQuY2MKLUBAIC0zNTIsNyArMzUyLDcgQEAgc3RydWN0IHdyaXRlX2Jsb2NrX2RhdGEKLSAg ICAgewotICAgICAgICAgaWYgKGF1dG8gY29uc3QqIGNvbnN0IHRvciA9IHRyX3RvcnJlbnRGaW5k RnJvbUlkKHNlc3Npb25fLCB0b3JfaWRfKTsgdG9yICE9IG51bGxwdHIpCi0gICAgICAgICB7Ci0t ICAgICAgICAgICAgc2Vzc2lvbl8tPmNhY2hlLT53cml0ZUJsb2NrKHRvcl9pZF8sIGJsb2NrXywg ZGF0YV8pOwotKyAgICAgICAgICAgIHNlc3Npb25fLT5jYWNoZS0+d3JpdGVCbG9jayh0b3JfaWRf LCBibG9ja18sIHN0ZDo6bW92ZShkYXRhXykpOwotICAgICAgICAgICAgIHdlYnNlZWRfLT5wdWJs aXNoKHRyX3BlZXJfZXZlbnQ6OkdvdEJsb2NrKHRvci0+YmxvY2tJbmZvKCksIGJsb2NrXykpOwot ICAgICAgICAgfQotIAotCi1Gcm9tIDhhMzQxOGFhZTIzZTM3ZDQ0NmE4NmIxMWEzNDY3OWRiMGJm YTk5ZjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBDaGFybGVzIEtlcnIgPGNoYXJs ZXNAY2hhcmxlc2tlcnIuY29tPgotRGF0ZTogVHVlLCAxNCBGZWIgMjAyMyAxMDo1OToxNiAtMDYw MAotU3ViamVjdDogW1BBVENIIDIvM10gZml4dXAhIGZpeDogcHJvY2Vzc2luZyBvZiBibG9jayBm cmFnbWVudHMgdGhhdCBhcnJpdmUKLSBvdXQtb2Ytb3JkZXIgZnJvbSByZXF1ZXN0Ci0KLXJlZmFj dG9yOiBiZSBtb3JlIHBhcmFub2lkIGFib3V0IGR1cGxpY2F0ZSByZXF1ZXN0cyBhdCBlbmRnYW1l LgotLS0tCi0gbGlidHJhbnNtaXNzaW9uL3BlZXItbXNncy5jYyB8IDE2ICsrKysrKysrKystLS0t LS0KLSAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKLQot ZGlmZiAtLWdpdCBhL2xpYnRyYW5zbWlzc2lvbi9wZWVyLW1zZ3MuY2MgYi9saWJ0cmFuc21pc3Np b24vcGVlci1tc2dzLmNjCi1pbmRleCAwNTg2NGZlYTIwLi4yNGUzMzU5ZDY1IDEwMDY0NAotLS0t IGEvbGlidHJhbnNtaXNzaW9uL3BlZXItbXNncy5jYwotKysrIGIvbGlidHJhbnNtaXNzaW9uL3Bl ZXItbXNncy5jYwotQEAgLTIyLDYgKzIyLDcgQEAKLSAKLSAjaW5jbHVkZSAidHJhbnNtaXNzaW9u LmgiCi0gCi0rI2luY2x1ZGUgImJpdGZpZWxkLmgiCi0gI2luY2x1ZGUgImNhY2hlLmgiCi0gI2lu Y2x1ZGUgImNvbXBsZXRpb24uaCIKLSAjaW5jbHVkZSAiY3J5cHRvLXV0aWxzLmgiCi1AQCAtMTkz LDEyICsxOTQsMTIgQEAgc3RydWN0IHRyX2luY29taW5nCi0gICAgIHsKLSAgICAgICAgIGV4cGxp Y2l0IGluY29taW5nX3BpZWNlX2RhdGEodWludDMyX3QgYmxvY2tfc2l6ZSkKLSAgICAgICAgICAg ICA6IGJ1Znsgc3RkOjptYWtlX3VuaXF1ZTxzdGQ6OnZlY3Rvcjx1aW50OF90Pj4oYmxvY2tfc2l6 ZSkgfQotKyAgICAgICAgICAgICwgaGF2ZXsgYmxvY2tfc2l6ZSB9Ci0gICAgICAgICB7Ci0gICAg ICAgICB9Ci0gCi0tICAgICAgICB1aW50MzJfdCBuX2J5dGVzX3JlY2VpdmVkID0gMDsKLS0KLSAg ICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnZlY3Rvcjx1aW50OF90Pj4gYnVmOwotKyAgICAg ICAgdHJfYml0ZmllbGQgaGF2ZTsKLSAgICAgfTsKLSAKLSAgICAgc3RkOjptYXA8dHJfYmxvY2tf aW5kZXhfdCwgaW5jb21pbmdfcGllY2VfZGF0YT4gYmxvY2tzOwotQEAgLTE0NDMsMTkgKzE0NDQs MjIgQEAgUmVhZFN0YXRlIHJlYWRCdFBpZWNlKHRyX3BlZXJNc2dzSW1wbCogbXNncywgc2l6ZV90 IGlubGVuLCBzaXplX3QqIHNldG1lX3BpZWNlX2IKLSAKLSAgICAgYXV0byBjb25zdCBuX3RoaXNf cGFzcyA9IHN0ZDo6bWluKHNpemVfdHsgcmVxLT5sZW5ndGggfSwgaW5sZW4pOwotICAgICBUUl9B U1NFUlQobG9jLmJsb2NrX29mZnNldCArIG5fdGhpc19wYXNzIDw9IGJsb2NrX3NpemUpOwotKyAg ICBpZiAobl90aGlzX3Bhc3MgPT0gMCkKLSsgICAgewotKyAgICAgICAgcmV0dXJuIFJFQURfTEFU RVI7Ci0rICAgIH0KLSAKLSAgICAgYXV0byYgaW5jb21pbmdfYmxvY2sgPSBpbmNvbWluZy5ibG9j a3MudHJ5X2VtcGxhY2UoYmxvY2ssIGJsb2NrX3NpemUpLmZpcnN0LT5zZWNvbmQ7Ci0gICAgIG1z Z3MtPmlvLT5yZWFkX2J5dGVzKHN0ZDo6ZGF0YSgqaW5jb21pbmdfYmxvY2suYnVmKSArIGxvYy5i bG9ja19vZmZzZXQsIG5fdGhpc19wYXNzKTsKLSAKLSAgICAgbXNncy0+cHVibGlzaCh0cl9wZWVy X2V2ZW50OjpHb3RQaWVjZURhdGEobl90aGlzX3Bhc3MpKTsKLSAgICAgKnNldG1lX3BpZWNlX2J5 dGVzX3JlYWQgKz0gbl90aGlzX3Bhc3M7Ci0tICAgIGluY29taW5nX2Jsb2NrLm5fYnl0ZXNfcmVj ZWl2ZWQgKz0gbl90aGlzX3Bhc3M7Ci0tICAgIFRSX0FTU0VSVChpbmNvbWluZ19ibG9jay5uX2J5 dGVzX3JlY2VpdmVkIDw9IGJsb2NrX3NpemUpOwotKyAgICBpbmNvbWluZ19ibG9jay5oYXZlLnNl dFNwYW4obG9jLmJsb2NrX29mZnNldCwgbG9jLmJsb2NrX29mZnNldCArIG5fdGhpc19wYXNzKTsK LSAgICAgbG9ndHJhY2UobXNncywgZm10Ojpmb3JtYXQoImdvdCB7OmR9IGJ5dGVzIGZvciByZXEg ezpkfTp7OmR9LT57OmR9Iiwgbl90aGlzX3Bhc3MsIHJlcS0+aW5kZXgsIHJlcS0+b2Zmc2V0LCBy ZXEtPmxlbmd0aCkpOwotIAotICAgICAvLyBpZiB3ZSBoYXZlbid0IGdvdHRlbiB0aGUgZnVsbCBy ZXNwb25zZSB5ZXQsCi0gICAgIC8vIHVwZGF0ZSB3aGF0IHBhcnQgb2YgYHJlcWAgaXMgdW5mdWxm aWxsZWQgYW5kIHdhaXQgZm9yIG1vcmUKLS0gICAgaWYgKG5fdGhpc19wYXNzIDwgcmVxLT5sZW5n dGgpCi0rICAgIGlmIChyZXEtPmxlbmd0aCA+IG5fdGhpc19wYXNzKQotICAgICB7Ci0gICAgICAg ICByZXEtPmxlbmd0aCAtPSBuX3RoaXNfcGFzczsKLSAgICAgICAgIGF1dG8gY29uc3QgbmV3X2xv YyA9IG1zZ3MtPnRvcnJlbnQtPmJ5dGVMb2MobG9jLmJ5dGUgKyBuX3RoaXNfcGFzcyk7Ci1AQCAt MTQ2OSw3ICsxNDczLDcgQEAgUmVhZFN0YXRlIHJlYWRCdFBpZWNlKHRyX3BlZXJNc2dzSW1wbCog bXNncywgc2l6ZV90IGlubGVuLCBzaXplX3QqIHNldG1lX3BpZWNlX2IKLSAgICAgbXNncy0+c3Rh dGUgPSBBd2FpdGluZ0J0OjpMZW5ndGg7Ci0gCi0gICAgIC8vIGlmIHdlIGhhdmVuJ3QgZ290dGVu IHRoZSBlbnRpcmUgYmxvY2sgeWV0LCB3YWl0IGZvciBtb3JlCi0tICAgIGlmIChpbmNvbWluZ19i bG9jay5uX2J5dGVzX3JlY2VpdmVkIDwgYmxvY2tfc2l6ZSkKLSsgICAgaWYgKCFpbmNvbWluZ19i bG9jay5oYXZlLmhhc0FsbCgpKQotICAgICB7Ci0gICAgICAgICByZXR1cm4gUkVBRF9MQVRFUjsK LSAgICAgfQotCi1Gcm9tIGQ3NTQ0NTc1OGMzZTdkYzY2NmFiYTc4MTExMTI3NWQ2MmFjYmYzYjgg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBDaGFybGVzIEtlcnIgPGNoYXJsZXNAY2hh cmxlc2tlcnIuY29tPgotRGF0ZTogVHVlLCAxNCBGZWIgMjAyMyAxMTo1NzozNSAtMDYwMAotU3Vi amVjdDogW1BBVENIIDMvM10gZml4dXAhIGZpeDogcHJvY2Vzc2luZyBvZiBibG9jayBmcmFnbWVu dHMgdGhhdCBhcnJpdmUKLSBvdXQtb2Ytb3JkZXIgZnJvbSByZXF1ZXN0Ci0KLWNob3JlOiBzeW5j IHRlc3RzCi0tLS0KLSB0ZXN0cy9saWJ0cmFuc21pc3Npb24vbW92ZS10ZXN0LmNjIHwgMiArLQot IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0t Z2l0IGEvdGVzdHMvbGlidHJhbnNtaXNzaW9uL21vdmUtdGVzdC5jYyBiL3Rlc3RzL2xpYnRyYW5z bWlzc2lvbi9tb3ZlLXRlc3QuY2MKLWluZGV4IGNjNWRjMDVjZTYuLmUwNmQxZGFlZmQgMTAwNjQ0 Ci0tLS0gYS90ZXN0cy9saWJ0cmFuc21pc3Npb24vbW92ZS10ZXN0LmNjCi0rKysgYi90ZXN0cy9s aWJ0cmFuc21pc3Npb24vbW92ZS10ZXN0LmNjCi1AQCAtODQsNyArODQsNyBAQCBURVNUX1AoSW5j b21wbGV0ZURpclRlc3QsIGluY29tcGxldGVEaXIpCi0gCi0gICAgIGF1dG8gY29uc3QgdGVzdF9p bmNvbXBsZXRlX2Rpcl90aHJlYWRmdW5jID0gW10oVGVzdEluY29tcGxldGVEaXJEYXRhKiBkYXRh KSBub2V4Y2VwdAotICAgICB7Ci0tICAgICAgICBkYXRhLT5zZXNzaW9uLT5jYWNoZS0+d3JpdGVC bG9jayhkYXRhLT50b3ItPmlkKCksIGRhdGEtPmJsb2NrLCBkYXRhLT5idWYpOwotKyAgICAgICAg ZGF0YS0+c2Vzc2lvbi0+Y2FjaGUtPndyaXRlQmxvY2soZGF0YS0+dG9yLT5pZCgpLCBkYXRhLT5i bG9jaywgc3RkOjptb3ZlKGRhdGEtPmJ1ZikpOwotICAgICAgICAgdHJfdG9ycmVudEdvdEJsb2Nr KGRhdGEtPnRvciwgZGF0YS0+YmxvY2spOwotICAgICAgICAgZGF0YS0+ZG9uZSA9IHRydWU7Ci0g ICAgIH07CgpkaWZmIC0tZ2l0IGEvZjU1MWI0YWRiZmYwZDU5NTU3ZDYxODY3ZDBiNjUxOGM1MGY1 YTczZi5wYXRjaCBiL2Y1NTFiNGFkYmZmMGQ1OTU1N2Q2MTg2N2QwYjY1MThjNTBmNWE3M2YucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjYzY4ZTIuLjAwMDAwMDAKLS0tIGEv ZjU1MWI0YWRiZmYwZDU5NTU3ZDYxODY3ZDBiNjUxOGM1MGY1YTczZi5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDUwMCArMCwwIEBACi1Gcm9tIGY1NTFiNGFkYmZmMGQ1OTU1N2Q2MTg2N2QwYjY1 MThjNTBmNWE3M2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBDaGFybGVzIEtlcnIg PGNoYXJsZXNAY2hhcmxlc2tlcnIuY29tPgotRGF0ZTogTW9uLCAxMyBGZWIgMjAyMyAxMjozMzoz MyAtMDYwMAotU3ViamVjdDogW1BBVENIXSBmaXg6IG1hZ25ldCBsaW5rcyBhcmUgYWx3YXlzIHBh dXNlZCB3aGVuIGFkZGVkICgjNDg1NikKLQotLS0tCi0gbGlidHJhbnNtaXNzaW9uL3BlZXItbWdy LmNjICAgICAgIHwgICA4ICstCi0gbGlidHJhbnNtaXNzaW9uL3Jlc3VtZS5jYyAgICAgICAgIHwg ICA2ICstCi0gbGlidHJhbnNtaXNzaW9uL3RvcnJlbnQtbWFnbmV0LmNjIHwgIDM0ICsrKy0tLS0K LSBsaWJ0cmFuc21pc3Npb24vdG9ycmVudC1tYWduZXQuaCAgfCAgIDIgKwotIGxpYnRyYW5zbWlz c2lvbi90b3JyZW50LmNjICAgICAgICB8IDE0OCArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0KLSBsaWJ0cmFuc21pc3Npb24vdG9ycmVudC5oICAgICAgICAgfCAgIDkgKy0KLSBsaWJ0cmFu c21pc3Npb24vdHJhbnNtaXNzaW9uLmggICAgfCAgIDIgKy0KLSBtYWNvc3gvVG9ycmVudC5tbSAg ICAgICAgICAgICAgICAgfCAgIDIgKy0KLSA4IGZpbGVzIGNoYW5nZWQsIDEwMSBpbnNlcnRpb25z KCspLCAxMTAgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWJ0cmFuc21pc3Npb24vcGVl ci1tZ3IuY2MgYi9saWJ0cmFuc21pc3Npb24vcGVlci1tZ3IuY2MKLWluZGV4IDRjZjFkMzMyYzgu LjhlODI2ZGMzZmEgMTAwNjQ0Ci0tLS0gYS9saWJ0cmFuc21pc3Npb24vcGVlci1tZ3IuY2MKLSsr KyBiL2xpYnRyYW5zbWlzc2lvbi9wZWVyLW1nci5jYwotQEAgLTQzLDYgKzQzLDcgQEAKLSAjaW5j bHVkZSAic2Vzc2lvbi5oIgotICNpbmNsdWRlICJ0aW1lci5oIgotICNpbmNsdWRlICJ0b3JyZW50 LmgiCi0rI2luY2x1ZGUgInRvcnJlbnQtbWFnbmV0LmgiCi0gI2luY2x1ZGUgInRyLWFzc2VydC5o IgotICNpbmNsdWRlICJ0ci11dHAuaCIKLSAjaW5jbHVkZSAidXRpbHMuaCIKLUBAIC0yMzkxLDgg KzIzOTIsMTEgQEAgdm9pZCB0cl9wZWVyTWdyOjpiYW5kd2lkdGhQdWxzZSgpCi0gICAgIHNlc3Np b24tPnRvcF9iYW5kd2lkdGhfLmFsbG9jYXRlKE1zZWMpOwotIAotICAgICAvLyB0b3JyZW50IHVw a2VlcAotLSAgICBhdXRvJiB0b3JyZW50cyA9IHNlc3Npb24tPnRvcnJlbnRzKCk7Ci0tICAgIHN0 ZDo6Zm9yX2VhY2goc3RkOjpiZWdpbih0b3JyZW50cyksIHN0ZDo6ZW5kKHRvcnJlbnRzKSwgW10o YXV0byogdG9yKSB7IHRvci0+ZG9faWRsZV93b3JrKCk7IH0pOwotKyAgICBmb3IgKGF1dG8qIGNv bnN0IHRvciA6IHNlc3Npb24tPnRvcnJlbnRzKCkpCi0rICAgIHsKLSsgICAgICAgIHRvci0+ZG9f aWRsZV93b3JrKCk7Ci0rICAgICAgICB0cl90b3JyZW50TWFnbmV0RG9JZGxlV29yayh0b3IpOwot KyAgICB9Ci0gCi0gICAgIC8qIHB1bXAgdGhlIHF1ZXVlcyAqLwotICAgICBxdWV1ZVB1bHNlKHNl c3Npb24sIFRSX1VQKTsKLWRpZmYgLS1naXQgYS9saWJ0cmFuc21pc3Npb24vcmVzdW1lLmNjIGIv bGlidHJhbnNtaXNzaW9uL3Jlc3VtZS5jYwotaW5kZXggODBjMDBkYmQyOC4uOTcxNmFlODc2YyAx MDA2NDQKLS0tLSBhL2xpYnRyYW5zbWlzc2lvbi9yZXN1bWUuY2MKLSsrKyBiL2xpYnRyYW5zbWlz c2lvbi9yZXN1bWUuY2MKLUBAIC03MTIsNyArNzEyLDcgQEAgYXV0byBsb2FkRnJvbUZpbGUodHJf dG9ycmVudCogdG9yLCB0cl9yZXN1bWU6OmZpZWxkc190IGZpZWxkc190b19sb2FkLCBib29sKiBk aWQKLSAKLSAgICAgaWYgKGF1dG8gdmFsID0gYm9vbHt9OyAoZmllbGRzX3RvX2xvYWQgJiB0cl9y ZXN1bWU6OlJ1bikgIT0gMCAmJiB0cl92YXJpYW50RGljdEZpbmRCb29sKCZ0b3AsIFRSX0tFWV9w YXVzZWQsICZ2YWwpKQotICAgICB7Ci0tICAgICAgICB0b3ItPmlzUnVubmluZyA9ICF2YWw7Ci0r ICAgICAgICB0b3ItPnN0YXJ0X3doZW5fc3RhYmxlID0gIXZhbDsKLSAgICAgICAgIGZpZWxkc19s b2FkZWQgfD0gdHJfcmVzdW1lOjpSdW47Ci0gICAgIH0KLSAKLUBAIC04MzEsNyArODMxLDcgQEAg YXV0byBzZXRGcm9tQ3Rvcih0cl90b3JyZW50KiB0b3IsIHRyX3Jlc3VtZTo6ZmllbGRzX3QgZmll bGRzLCB0cl9jdG9yIGNvbnN0KiBjdG8KLSAgICAgewotICAgICAgICAgaWYgKGF1dG8gaXNfcGF1 c2VkID0gYm9vbHt9OyB0cl9jdG9yR2V0UGF1c2VkKGN0b3IsIG1vZGUsICZpc19wYXVzZWQpKQot ICAgICAgICAgewotLSAgICAgICAgICAgIHRvci0+aXNSdW5uaW5nID0gIWlzX3BhdXNlZDsKLSsg ICAgICAgICAgICB0b3ItPnN0YXJ0X3doZW5fc3RhYmxlID0gIWlzX3BhdXNlZDsKLSAgICAgICAg ICAgICByZXQgfD0gdHJfcmVzdW1lOjpSdW47Ci0gICAgICAgICB9Ci0gICAgIH0KLUBAIC05MDcs NyArOTA3LDcgQEAgdm9pZCBzYXZlKHRyX3RvcnJlbnQqIHRvcikKLSAgICAgdHJfdmFyaWFudERp Y3RBZGRJbnQoJnRvcCwgVFJfS0VZX3VwbG9hZGVkLCB0b3ItPnVwbG9hZGVkUHJldiArIHRvci0+ dXBsb2FkZWRDdXIpOwotICAgICB0cl92YXJpYW50RGljdEFkZEludCgmdG9wLCBUUl9LRVlfbWF4 X3BlZXJzLCB0b3ItPnBlZXJMaW1pdCgpKTsKLSAgICAgdHJfdmFyaWFudERpY3RBZGRJbnQoJnRv cCwgVFJfS0VZX2JhbmR3aWR0aF9wcmlvcml0eSwgdG9yLT5nZXRQcmlvcml0eSgpKTsKLS0gICAg dHJfdmFyaWFudERpY3RBZGRCb29sKCZ0b3AsIFRSX0tFWV9wYXVzZWQsICF0b3ItPmlzUnVubmlu ZyAmJiAhdG9yLT5pc1F1ZXVlZCgpKTsKLSsgICAgdHJfdmFyaWFudERpY3RBZGRCb29sKCZ0b3As IFRSX0tFWV9wYXVzZWQsICF0b3ItPnN0YXJ0X3doZW5fc3RhYmxlKTsKLSAgICAgc2F2ZVBlZXJz KCZ0b3AsIHRvcik7Ci0gCi0gICAgIGlmICh0b3ItPmhhc01ldGFpbmZvKCkpCi1kaWZmIC0tZ2l0 IGEvbGlidHJhbnNtaXNzaW9uL3RvcnJlbnQtbWFnbmV0LmNjIGIvbGlidHJhbnNtaXNzaW9uL3Rv cnJlbnQtbWFnbmV0LmNjCi1pbmRleCAxZDkxY2JmZWYxLi5jMzJkZWZiNDMzIDEwMDY0NAotLS0t IGEvbGlidHJhbnNtaXNzaW9uL3RvcnJlbnQtbWFnbmV0LmNjCi0rKysgYi9saWJ0cmFuc21pc3Np b24vdG9ycmVudC1tYWduZXQuY2MKLUBAIC0xNzYsMTMgKzE3Niw2IEBAIGJvb2wgdHJfdG9ycmVu dFVzZU1ldGFpbmZvRnJvbUZpbGUoCi0gICAgICAgICBkZWxldGUgdG9yLT5pbmNvbXBsZXRlTWV0 YWRhdGE7Ci0gICAgICAgICB0b3ItPmluY29tcGxldGVNZXRhZGF0YSA9IG51bGxwdHI7Ci0gICAg IH0KLS0gICAgdG9yLT5pc1N0b3BwaW5nID0gdHJ1ZTsKLS0gICAgdG9yLT5tYWduZXRWZXJpZnkg PSB0cnVlOwotLSAgICBpZiAodG9yLT5zZXNzaW9uLT5zaG91bGRQYXVzZUFkZGVkVG9ycmVudHMo KSkKLS0gICAgewotLSAgICAgICAgdG9yLT5zdGFydEFmdGVyVmVyaWZ5ID0gZmFsc2U7Ci0tICAg IH0KLS0gICAgdG9yLT5tYXJrRWRpdGVkKCk7Ci0gCi0gICAgIHJldHVybiB0cnVlOwotIH0KLUBA IC0zMTAsMTMgKzMwMyw2IEBAIHZvaWQgb25faGF2ZV9hbGxfbWV0YWluZm8odHJfdG9ycmVudCog dG9yLCB0cl9pbmNvbXBsZXRlX21ldGFkYXRhKiBtKQotICAgICB7Ci0gICAgICAgICBkZWxldGUg dG9yLT5pbmNvbXBsZXRlTWV0YWRhdGE7Ci0gICAgICAgICB0b3ItPmluY29tcGxldGVNZXRhZGF0 YSA9IG51bGxwdHI7Ci0tICAgICAgICB0b3ItPmlzU3RvcHBpbmcgPSB0cnVlOwotLSAgICAgICAg dG9yLT5tYWduZXRWZXJpZnkgPSB0cnVlOwotLSAgICAgICAgaWYgKHRvci0+c2Vzc2lvbi0+c2hv dWxkUGF1c2VBZGRlZFRvcnJlbnRzKCkgJiYgIXRvci0+bWFnbmV0U3RhcnRBZnRlclZlcmlmeSkK LS0gICAgICAgIHsKLS0gICAgICAgICAgICB0b3ItPnN0YXJ0QWZ0ZXJWZXJpZnkgPSBmYWxzZTsK LS0gICAgICAgIH0KLS0gICAgICAgIHRvci0+bWFya0VkaXRlZCgpOwotICAgICB9Ci0gICAgIGVs c2UgLyogZHJhdC4gKi8KLSAgICAgewotQEAgLTM0MCw2ICszMjYsMTkgQEAgdm9pZCBvbl9oYXZl X2FsbF9tZXRhaW5mbyh0cl90b3JyZW50KiB0b3IsIHRyX2luY29tcGxldGVfbWV0YWRhdGEqIG0p Ci0gfSAvLyBuYW1lc3BhY2Ugc2V0X21ldGFkYXRhX3BpZWNlX2hlbHBlcnMKLSB9IC8vIG5hbWVz cGFjZQotIAotK3ZvaWQgdHJfdG9ycmVudE1hZ25ldERvSWRsZVdvcmsodHJfdG9ycmVudCogY29u c3QgdG9yKQotK3sKLSsgICAgdXNpbmcgbmFtZXNwYWNlIHNldF9tZXRhZGF0YV9waWVjZV9oZWxw ZXJzOwotKwotKyAgICBUUl9BU1NFUlQodHJfaXNUb3JyZW50KHRvcikpOwotKwotKyAgICBpZiAo YXV0byogY29uc3QgbSA9IHRvci0+aW5jb21wbGV0ZU1ldGFkYXRhOyBtICE9IG51bGxwdHIgJiYg c3RkOjplbXB0eShtLT5waWVjZXNfbmVlZGVkKSkKLSsgICAgewotKyAgICAgICAgdHJfbG9nQWRk RGVidWdUb3IodG9yLCBmbXQ6OmZvcm1hdCgid2Ugbm93IGhhdmUgYWxsIHRoZSBtZXRhaW5mbyEi KSk7Ci0rICAgICAgICBvbl9oYXZlX2FsbF9tZXRhaW5mbyh0b3IsIG0pOwotKyAgICB9Ci0rfQot KwotIHZvaWQgdHJfdG9ycmVudFNldE1ldGFkYXRhUGllY2UodHJfdG9ycmVudCogdG9yLCBpbnQg cGllY2UsIHZvaWQgY29uc3QqIGRhdGEsIHNpemVfdCBsZW4pCi0gewotICAgICB1c2luZyBuYW1l c3BhY2Ugc2V0X21ldGFkYXRhX3BpZWNlX2hlbHBlcnM7Ci1AQCAtMzg0LDEzICszODMsNiBAQCB2 b2lkIHRyX3RvcnJlbnRTZXRNZXRhZGF0YVBpZWNlKHRyX3RvcnJlbnQqIHRvciwgaW50IHBpZWNl LCB2b2lkIGNvbnN0KiBkYXRhLCBzaQotIAotICAgICBuZWVkZWQuZXJhc2UoaXRlcik7Ci0gICAg IHRyX2xvZ0FkZERlYnVnVG9yKHRvciwgZm10Ojpmb3JtYXQoInNhdmluZyBtZXRhaW5mbyBwaWVj ZSB7fS4uLiB7fSByZW1haW4iLCBwaWVjZSwgc3RkOjpzaXplKG5lZWRlZCkpKTsKLS0KLS0gICAg Ly8gYXJlIHdlIGRvbmU/Ci0tICAgIGlmIChzdGQ6OmVtcHR5KG5lZWRlZCkpCi0tICAgIHsKLS0g ICAgICAgIHRyX2xvZ0FkZERlYnVnVG9yKHRvciwgZm10Ojpmb3JtYXQoIm1ldGFpbmZvIHBpZWNl IHt9IHdhcyB0aGUgbGFzdCBvbmUiLCBwaWVjZSkpOwotLSAgICAgICAgb25faGF2ZV9hbGxfbWV0 YWluZm8odG9yLCBtKTsKLS0gICAgfQotIH0KLSAKLSAvLyAtLS0KLWRpZmYgLS1naXQgYS9saWJ0 cmFuc21pc3Npb24vdG9ycmVudC1tYWduZXQuaCBiL2xpYnRyYW5zbWlzc2lvbi90b3JyZW50LW1h Z25ldC5oCi1pbmRleCA4YWY5NTNiZWM5Li5jYjVkN2UxZmNiIDEwMDY0NAotLS0tIGEvbGlidHJh bnNtaXNzaW9uL3RvcnJlbnQtbWFnbmV0LmgKLSsrKyBiL2xpYnRyYW5zbWlzc2lvbi90b3JyZW50 LW1hZ25ldC5oCi1AQCAtMzMsNiArMzMsOCBAQCBib29sIHRyX3RvcnJlbnRTZXRNZXRhZGF0YVNp emVIaW50KHRyX3RvcnJlbnQqIHRvciwgaW50NjRfdCBtZXRhZGF0YV9zaXplKTsKLSAKLSBkb3Vi bGUgdHJfdG9ycmVudEdldE1ldGFkYXRhUGVyY2VudCh0cl90b3JyZW50IGNvbnN0KiB0b3IpOwot IAotK3ZvaWQgdHJfdG9ycmVudE1hZ25ldERvSWRsZVdvcmsodHJfdG9ycmVudCogdG9yKTsKLSsK LSBib29sIHRyX3RvcnJlbnRVc2VNZXRhaW5mb0Zyb21GaWxlKAotICAgICB0cl90b3JyZW50KiB0 b3IsCi0gICAgIHRyX3RvcnJlbnRfbWV0YWluZm8gY29uc3QqIG1ldGFpbmZvLAotZGlmZiAtLWdp dCBhL2xpYnRyYW5zbWlzc2lvbi90b3JyZW50LmNjIGIvbGlidHJhbnNtaXNzaW9uL3RvcnJlbnQu Y2MKLWluZGV4IDFlNzRmODE1MmIuLjRiNWEwYjFkZWEgMTAwNjQ0Ci0tLS0gYS9saWJ0cmFuc21p c3Npb24vdG9ycmVudC5jYwotKysrIGIvbGlidHJhbnNtaXNzaW9uL3RvcnJlbnQuY2MKLUBAIC04 MzAsNiArODMwLDggQEAgdm9pZCB0b3JyZW50U3RhcnQodHJfdG9ycmVudCogdG9yLCB0b3JyZW50 X3N0YXJ0X29wdHMgb3B0cykKLSB7Ci0gICAgIHVzaW5nIG5hbWVzcGFjZSBzdGFydF9zdG9wX2hl bHBlcnM7Ci0gCi0rICAgIGF1dG8gY29uc3QgbG9jayA9IHRvci0+dW5pcXVlX2xvY2soKTsKLSsK LSAgICAgc3dpdGNoICh0b3ItPmFjdGl2aXR5KCkpCi0gICAgIHsKLSAgICAgY2FzZSBUUl9TVEFU VVNfU0VFRDoKLUBAIC04NDksNyArODUxLDYgQEAgdm9pZCB0b3JyZW50U3RhcnQodHJfdG9ycmVu dCogdG9yLCB0b3JyZW50X3N0YXJ0X29wdHMgb3B0cykKLSAgICAgY2FzZSBUUl9TVEFUVVNfQ0hF Q0tfV0FJVDoKLSAgICAgICAgIC8qIHZlcmlmeWluZyByaWdodCBub3cuLi4gd2FpdCB1bnRpbCB0 aGF0J3MgZG9uZSBzbwotICAgICAgICAgICogd2UnbGwga25vdyB3aGF0IGNvbXBsZXRlbmVzcyB0 byB1c2UvYW5ub3VuY2UgKi8KLS0gICAgICAgIHRvci0+c3RhcnRBZnRlclZlcmlmeSA9IHRydWU7 Ci0gICAgICAgICByZXR1cm47Ci0gCi0gICAgIGNhc2UgVFJfU1RBVFVTX1NUT1BQRUQ6Ci1AQCAt ODY4LDkgKzg2OSw2IEBAIHZvaWQgdG9ycmVudFN0YXJ0KHRyX3RvcnJlbnQqIHRvciwgdG9ycmVu dF9zdGFydF9vcHRzIG9wdHMpCi0gICAgICAgICByZXR1cm47Ci0gICAgIH0KLSAKLS0gICAgLyog b3RoZXJ3aXNlLCBzdGFydCBpdCBub3cuLi4gKi8KLS0gICAgYXV0byBjb25zdCBsb2NrID0gdG9y LT51bmlxdWVfbG9jaygpOwotLQotICAgICAvKiBhbGxvdyBmaW5pc2hlZCB0b3JyZW50cyB0byBi ZSByZXN1bWVkICovCi0gICAgIGlmICh0cl90b3JyZW50SXNTZWVkUmF0aW9Eb25lKHRvcikpCi0g ICAgIHsKLUBAIC04OTUsNiArODkzLDkgQEAgdm9pZCB0b3JyZW50U3RvcCh0cl90b3JyZW50KiBj b25zdCB0b3IpCi0gICAgIFRSX0FTU0VSVCh0b3ItPnNlc3Npb24tPmFtSW5TZXNzaW9uVGhyZWFk KCkpOwotICAgICBhdXRvIGNvbnN0IGxvY2sgPSB0b3ItPnVuaXF1ZV9sb2NrKCk7Ci0gCi0rICAg IHRvci0+aXNSdW5uaW5nID0gZmFsc2U7Ci0rICAgIHRvci0+aXNTdG9wcGluZyA9IGZhbHNlOwot KwotICAgICBpZiAoIXRvci0+c2Vzc2lvbi0+aXNDbG9zaW5nKCkpCi0gICAgIHsKLSAgICAgICAg IHRyX2xvZ0FkZEluZm9Ub3IodG9yLCBfKCJQYXVzaW5nIHRvcnJlbnQiKSk7Ci1AQCAtOTEzLDE2 ICs5MTQsNiBAQCB2b2lkIHRvcnJlbnRTdG9wKHRyX3RvcnJlbnQqIGNvbnN0IHRvcikKLSAgICAg fQotIAotICAgICB0b3JyZW50U2V0UXVldWVkKHRvciwgZmFsc2UpOwotLQotLSAgICBpZiAodG9y LT5tYWduZXRWZXJpZnkpCi0tICAgIHsKLS0gICAgICAgIHRvci0+bWFnbmV0VmVyaWZ5ID0gZmFs c2U7Ci0tICAgICAgICB0cl9sb2dBZGRUcmFjZVRvcih0b3IsICJNYWduZXQgVmVyaWZ5Iik7Ci0t ICAgICAgICB0b3ItPnJlZnJlc2hDdXJyZW50RGlyKCk7Ci0tICAgICAgICB0cl90b3JyZW50VmVy aWZ5KHRvcik7Ci0tCi0tICAgICAgICBjYWxsU2NyaXB0SWZFbmFibGVkKHRvciwgVFJfU0NSSVBU X09OX1RPUlJFTlRfQURERUQpOwotLSAgICB9Ci0gfQotIH0gLy8gbmFtZXNwYWNlCi0gCi1AQCAt OTM1LDggKzkyNiw3IEBAIHZvaWQgdHJfdG9ycmVudFN0b3AodHJfdG9ycmVudCogdG9yKQotIAot ICAgICBhdXRvIGNvbnN0IGxvY2sgPSB0b3ItPnVuaXF1ZV9sb2NrKCk7Ci0gCi0tICAgIHRvci0+ aXNSdW5uaW5nID0gZmFsc2U7Ci0tICAgIHRvci0+aXNTdG9wcGluZyA9IGZhbHNlOwotKyAgICB0 b3ItPnN0YXJ0X3doZW5fc3RhYmxlID0gZmFsc2U7Ci0gICAgIHRvci0+c2V0RGlydHkoKTsKLSAg ICAgdG9yLT5zZXNzaW9uLT5ydW5JblNlc3Npb25UaHJlYWQodG9ycmVudFN0b3AsIHRvcik7Ci0g fQotQEAgLTk2NSw3ICs5NTUsNiBAQCB2b2lkIHRyX3RvcnJlbnRGcmVlSW5TZXNzaW9uVGhyZWFk KHRyX3RvcnJlbnQqIHRvcikKLSAgICAgICAgIHRyX2xvZ0FkZEluZm9Ub3IodG9yLCBfKCJSZW1v dmluZyB0b3JyZW50IikpOwotICAgICB9Ci0gCi0tICAgIHRvci0+bWFnbmV0VmVyaWZ5ID0gZmFs c2U7Ci0gICAgIHRvcnJlbnRTdG9wKHRvcik7Ci0gCi0gICAgIGlmICh0b3ItPmlzRGVsZXRpbmcp Ci1AQCAtOTc1LDcgKzk2NCw2IEBAIHZvaWQgdHJfdG9ycmVudEZyZWVJblNlc3Npb25UaHJlYWQo dHJfdG9ycmVudCogdG9yKQotICAgICAgICAgdHJfdG9ycmVudF9tZXRhaW5mbzo6cmVtb3ZlRmls ZSh0b3ItPnNlc3Npb24tPnJlc3VtZURpcigpLCB0b3ItPm5hbWUoKSwgdG9yLT5pbmZvSGFzaFN0 cmluZygpLCAiLnJlc3VtZSJzdik7Ci0gICAgIH0KLSAKLS0gICAgdG9yLT5pc1J1bm5pbmcgPSBm YWxzZTsKLSAgICAgZnJlZVRvcnJlbnQodG9yKTsKLSB9Ci0gCi1AQCAtMTAzNiw2ICsxMDI0LDM0 IEBAIHZvaWQgdG9ycmVudEluaXRGcm9tSW5mb0RpY3QodHJfdG9ycmVudCogdG9yKQotICAgICB0 b3ItPmNoZWNrZWRfcGllY2VzXyA9IHRyX2JpdGZpZWxkeyBzaXplX3QodG9yLT5waWVjZUNvdW50 KCkpIH07Ci0gfQotIAotK3ZvaWQgb25fbWV0YWluZm9fY29tcGxldGVkKHRyX3RvcnJlbnQqIHRv cikKLSt7Ci0rICAgIC8vIHdlIGNhbiBsb29rIGZvciBmaWxlcyBub3cgdGhhdCB3ZSBrbm93IHdo YXQgZmlsZXMgYXJlIGluIHRoZSB0b3JyZW50Ci0rICAgIHRvci0+cmVmcmVzaEN1cnJlbnREaXIo KTsKLSsKLSsgICAgY2FsbFNjcmlwdElmRW5hYmxlZCh0b3IsIFRSX1NDUklQVF9PTl9UT1JSRU5U X0FEREVEKTsKLSsKLSsgICAgaWYgKHRvci0+c2Vzc2lvbi0+c2hvdWxkRnVsbHlWZXJpZnlBZGRl ZFRvcnJlbnRzKCkgfHwgIWlzTmV3VG9ycmVudEFTZWVkKHRvcikpCi0rICAgIHsKLSsgICAgICAg IHRyX3RvcnJlbnRWZXJpZnkodG9yKTsKLSsgICAgfQotKyAgICBlbHNlCi0rICAgIHsKLSsgICAg ICAgIHRvci0+Y29tcGxldGlvbi5zZXRIYXNBbGwoKTsKLSsgICAgICAgIHRvci0+ZG9uZURhdGUg PSB0b3ItPmFkZGVkRGF0ZTsKLSsgICAgICAgIHRvci0+cmVjaGVja0NvbXBsZXRlbmVzcygpOwot KwotKyAgICAgICAgaWYgKHRvci0+c3RhcnRfd2hlbl9zdGFibGUpCi0rICAgICAgICB7Ci0rICAg ICAgICAgICAgdG9ycmVudFN0YXJ0KHRvciwge30pOwotKyAgICAgICAgfQotKyAgICAgICAgZWxz ZSBpZiAodG9yLT5pc1J1bm5pbmcpCi0rICAgICAgICB7Ci0rICAgICAgICAgICAgdHJfdG9ycmVu dFN0b3AodG9yKTsKLSsgICAgICAgIH0KLSsgICAgfQotK30KLSsKLSB2b2lkIHRvcnJlbnRJbml0 KHRyX3RvcnJlbnQqIHRvciwgdHJfY3RvciBjb25zdCogY3RvcikKLSB7Ci0gICAgIHRyX3Nlc3Np b24qIHNlc3Npb24gPSB0cl9jdG9yR2V0U2Vzc2lvbihjdG9yKTsKLUBAIC0xMDgxLDcgKzEwOTcs NyBAQCB2b2lkIHRvcnJlbnRJbml0KHRyX3RvcnJlbnQqIHRvciwgdHJfY3RvciBjb25zdCogY3Rv cikKLSAgICAgdG9yLT5hbnlEYXRlID0gbm93OwotIAotICAgICB0cl9yZXN1bWU6OmZpZWxkc190 IGxvYWRlZCA9IHt9OwotLSAgICBpZiAodG9yLT5oYXNNZXRhaW5mbygpKQotKwotICAgICB7Ci0g ICAgICAgICAvLyB0cl9yZXN1bWU6OmxvYWQoKSBjYWxscyBhIGxvdCBvZiB0cl90b3JyZW50U2V0 Rm9vKCkgbWV0aG9kcwotICAgICAgICAgLy8gdGhhdCBzZXQgdGhpbmdzIGFzIGRpcnR5LCBidXQu Li4gdGhlc2Ugc2V0dGluZ3MgYmVpbmcgbG9hZGVkIGFyZQotQEAgLTExMDYsOSArMTEyMiw2IEBA IHZvaWQgdG9ycmVudEluaXQodHJfdG9ycmVudCogdG9yLCB0cl9jdG9yIGNvbnN0KiBjdG9yKQot IAotICAgICB0b3ItPnJlZnJlc2hDdXJyZW50RGlyKCk7Ci0gCi0tICAgIGJvb2wgY29uc3QgZG9f c3RhcnQgPSB0b3ItPmlzUnVubmluZzsKLS0gICAgdG9yLT5pc1J1bm5pbmcgPSBmYWxzZTsKLS0K LSAgICAgaWYgKChsb2FkZWQgJiB0cl9yZXN1bWU6OlNwZWVkbGltaXQpID09IDApCi0gICAgIHsK LSAgICAgICAgIHRvci0+dXNlU3BlZWRMaW1pdChUUl9VUCwgZmFsc2UpOwotQEAgLTExNzQsMzcg KzExODcsMTQgQEAgdm9pZCB0b3JyZW50SW5pdCh0cl90b3JyZW50KiB0b3IsIHRyX2N0b3IgY29u c3QqIGN0b3IpCi0gCi0gICAgIHRvci0+dG9ycmVudF9hbm5vdW5jZXIgPSBzZXNzaW9uLT5hbm5v dW5jZXJfLT5hZGRUb3JyZW50KHRvciwgJnRyX3RvcnJlbnQ6Om9uVHJhY2tlclJlc3BvbnNlKTsK LSAKLS0gICAgaWYgKGlzX25ld190b3JyZW50KQotKyAgICBpZiAoYXV0byBjb25zdCBoYXNfbWV0 YWluZm8gPSB0b3ItPmhhc01ldGFpbmZvKCk7IGlzX25ld190b3JyZW50ICYmIGhhc19tZXRhaW5m bykKLSAgICAgewotLSAgICAgICAgaWYgKHRvci0+aGFzTWV0YWluZm8oKSkKLS0gICAgICAgIHsK LS0gICAgICAgICAgICBjYWxsU2NyaXB0SWZFbmFibGVkKHRvciwgVFJfU0NSSVBUX09OX1RPUlJF TlRfQURERUQpOwotLSAgICAgICAgfQotLQotLSAgICAgICAgaWYgKCF0b3ItPmhhc01ldGFpbmZv KCkgJiYgIWRvX3N0YXJ0KQotLSAgICAgICAgewotLSAgICAgICAgICAgIGF1dG8gb3B0cyA9IHRv cnJlbnRfc3RhcnRfb3B0c3t9OwotLSAgICAgICAgICAgIG9wdHMuYnlwYXNzX3F1ZXVlID0gdHJ1 ZTsKLS0gICAgICAgICAgICBvcHRzLmhhc19sb2NhbF9kYXRhID0gaGFzX2xvY2FsX2RhdGE7Ci0t ICAgICAgICAgICAgdG9ycmVudFN0YXJ0KHRvciwgb3B0cyk7Ci0tICAgICAgICB9Ci0tICAgICAg ICBlbHNlIGlmICghc2Vzc2lvbi0+c2hvdWxkRnVsbHlWZXJpZnlBZGRlZFRvcnJlbnRzKCkgJiYg aXNOZXdUb3JyZW50QVNlZWQodG9yKSkKLS0gICAgICAgIHsKLS0gICAgICAgICAgICB0b3ItPmNv bXBsZXRpb24uc2V0SGFzQWxsKCk7Ci0tICAgICAgICAgICAgdG9yLT5kb25lRGF0ZSA9IHRvci0+ YWRkZWREYXRlOwotLSAgICAgICAgICAgIHRvci0+cmVjaGVja0NvbXBsZXRlbmVzcygpOwotLSAg ICAgICAgfQotLSAgICAgICAgZWxzZQotLSAgICAgICAgewotLSAgICAgICAgICAgIHRvci0+c3Rh cnRBZnRlclZlcmlmeSA9IGRvX3N0YXJ0OwotLSAgICAgICAgICAgIHRyX3RvcnJlbnRWZXJpZnko dG9yKTsKLS0gICAgICAgIH0KLSsgICAgICAgIG9uX21ldGFpbmZvX2NvbXBsZXRlZCh0b3IpOwot ICAgICB9Ci0tICAgIGVsc2UgaWYgKGRvX3N0YXJ0KQotKyAgICBlbHNlIGlmICh0b3ItPnN0YXJ0 X3doZW5fc3RhYmxlIHx8ICFoYXNfbWV0YWluZm8pCi0gICAgIHsKLS0gICAgICAgIC8vIGlmIGNo ZWNrZWRfcGllY2VzXyBnb3QgcG9wdWxhdGVkIGZyb20gdGhlIGxvYWRpbmcgdGhlIHJlc3VtZQot LSAgICAgICAgLy8gZmlsZSBhYm92ZSwgdGhlbiB0b3JyZW50U3RhcnQgZG9lc24ndCBuZWVkIHRv IGNoZWNrIGFnYWluCi0gICAgICAgICBhdXRvIG9wdHMgPSB0b3JyZW50X3N0YXJ0X29wdHN7fTsK LSsgICAgICAgIG9wdHMuYnlwYXNzX3F1ZXVlID0gIWhhc19tZXRhaW5mbzsgLy8gdG8gZmV0Y2gg bWV0YWluZm8gZnJvbSBwZWVycwotICAgICAgICAgb3B0cy5oYXNfbG9jYWxfZGF0YSA9IGhhc19s b2NhbF9kYXRhOwotICAgICAgICAgdG9ycmVudFN0YXJ0KHRvciwgb3B0cyk7Ci0gICAgIH0KLUBA IC0xMjE2LDE2ICsxMjA2LDIwIEBAIHZvaWQgdG9ycmVudEluaXQodHJfdG9ycmVudCogdG9yLCB0 cl9jdG9yIGNvbnN0KiBjdG9yKQotIH0gLy8gbmFtZXNwYWNlIHRvcnJlbnRfaW5pdF9oZWxwZXJz Ci0gfSAvLyBuYW1lc3BhY2UKLSAKLS12b2lkIHRyX3RvcnJlbnQ6OnNldE1ldGFpbmZvKHRyX3Rv cnJlbnRfbWV0YWluZm8gY29uc3QmIHRtKQotK3ZvaWQgdHJfdG9ycmVudDo6c2V0TWV0YWluZm8o dHJfdG9ycmVudF9tZXRhaW5mbyB0bSkKLSB7Ci0gICAgIHVzaW5nIG5hbWVzcGFjZSB0b3JyZW50 X2luaXRfaGVscGVyczsKLSAKLS0gICAgbWV0YWluZm9fID0gdG07Ci0rICAgIFRSX0FTU0VSVCgh aGFzTWV0YWluZm8oKSk7Ci0rICAgIG1ldGFpbmZvXyA9IHN0ZDo6bW92ZSh0bSk7Ci0gCi0gICAg IHRvcnJlbnRJbml0RnJvbUluZm9EaWN0KHRoaXMpOwotICAgICB0cl9wZWVyTWdyT25Ub3JyZW50 R290TWV0YWluZm8odGhpcyk7Ci0gICAgIHNlc3Npb24tPm9uTWV0YWRhdGFDb21wbGV0ZWQodGhp cyk7Ci0gICAgIHRoaXMtPnNldERpcnR5KCk7Ci0rICAgIHRoaXMtPm1hcmtFZGl0ZWQoKTsKLSsK LSsgICAgb25fbWV0YWluZm9fY29tcGxldGVkKHRoaXMpOwotIH0KLSAKLSB0cl90b3JyZW50KiB0 cl90b3JyZW50TmV3KHRyX2N0b3IqIGN0b3IsIHRyX3RvcnJlbnQqKiBzZXRtZV9kdXBsaWNhdGVf b2YpCi1AQCAtMTc2MywzMyArMTc1NywzNSBAQCB2b2lkIHRyX3RvcnJlbnRBbW91bnRGaW5pc2hl ZCh0cl90b3JyZW50IGNvbnN0KiB0b3IsIGZsb2F0KiB0YWJzLCBpbnQgbl90YWJzKQotIAotIC8v IC0tLSBTdGFydC9TdG9wIENhbGxiYWNrCi0gCi0tdm9pZCB0cl90b3JyZW50U3RhcnQodHJfdG9y cmVudCogdG9yKQotK25hbWVzcGFjZQotK3sKLSt2b2lkIHRyX3RvcnJlbnRTdGFydEltcGwodHJf dG9ycmVudCogdG9yLCBib29sIGJ5cGFzc19xdWV1ZSkKLSB7Ci0tICAgIGlmICh0cl9pc1RvcnJl bnQodG9yKSkKLSsgICAgaWYgKCF0cl9pc1RvcnJlbnQodG9yKSkKLSAgICAgewotLSAgICAgICAg dG9yLT5zdGFydEFmdGVyVmVyaWZ5ID0gdHJ1ZTsKLS0gICAgICAgIHRvcnJlbnRTdGFydCh0b3Is IHt9KTsKLSsgICAgICAgIHJldHVybjsKLSAgICAgfQotKwotKyAgICB0b3ItPnN0YXJ0X3doZW5f c3RhYmxlID0gdHJ1ZTsKLSsgICAgYXV0byBvcHRzID0gdG9ycmVudF9zdGFydF9vcHRze307Ci0r ICAgIG9wdHMuYnlwYXNzX3F1ZXVlID0gYnlwYXNzX3F1ZXVlOwotKyAgICB0b3JyZW50U3RhcnQo dG9yLCBvcHRzKTsKLSt9Ci0rfSAvLyBuYW1lc3BhY2UKLSsKLSt2b2lkIHRyX3RvcnJlbnRTdGFy dCh0cl90b3JyZW50KiB0b3IpCi0rewotKyAgICB0cl90b3JyZW50U3RhcnRJbXBsKHRvciwgZmFs c2UpOwotIH0KLSAKLSB2b2lkIHRyX3RvcnJlbnRTdGFydE5vdyh0cl90b3JyZW50KiB0b3IpCi0g ewotLSAgICBpZiAodHJfaXNUb3JyZW50KHRvcikpCi0tICAgIHsKLS0gICAgICAgIGF1dG8gb3B0 cyA9IHRvcnJlbnRfc3RhcnRfb3B0c3t9OwotLSAgICAgICAgb3B0cy5ieXBhc3NfcXVldWUgPSB0 cnVlOwotLSAgICAgICAgdG9ycmVudFN0YXJ0KHRvciwgb3B0cyk7Ci0tICAgIH0KLSsgICAgdHJf dG9ycmVudFN0YXJ0SW1wbCh0b3IsIHRydWUpOwotIH0KLSAKLSB2b2lkIHRyX3RvcnJlbnRTdGFy dE1hZ25ldCh0cl90b3JyZW50KiB0b3IpCi0gewotLSAgICBpZiAodHJfaXNUb3JyZW50KHRvcikp Ci0tICAgIHsKLS0gICAgICAgIHRvci0+bWFnbmV0U3RhcnRBZnRlclZlcmlmeSA9IHRydWU7Ci0t ICAgICAgICB0b3ItPnN0YXJ0QWZ0ZXJWZXJpZnkgPSB0cnVlOwotLSAgICAgICAgdG9ycmVudFN0 YXJ0KHRvciwge30pOwotLSAgICB9Ci0rICAgIHRyX3RvcnJlbnRTdGFydCh0b3IpOwotIH0KLSAK LSAvLyAtLS0KLUBAIC0xODA5LDEwICsxODA1LDggQEAgdm9pZCBvblZlcmlmeURvbmVUaHJlYWRG dW5jKHRyX3RvcnJlbnQqIGNvbnN0IHRvcikKLSAKLSAgICAgdG9yLT5yZWNoZWNrQ29tcGxldGVu ZXNzKCk7Ci0gCi0tICAgIGlmICh0b3ItPnN0YXJ0QWZ0ZXJWZXJpZnkpCi0rICAgIGlmICh0b3It PnN0YXJ0X3doZW5fc3RhYmxlKQotICAgICB7Ci0tICAgICAgICB0b3ItPnN0YXJ0QWZ0ZXJWZXJp ZnkgPSBmYWxzZTsKLS0KLSAgICAgICAgIGF1dG8gb3B0cyA9IHRvcnJlbnRfc3RhcnRfb3B0c3t9 OwotICAgICAgICAgb3B0cy5oYXNfbG9jYWxfZGF0YSA9ICF0b3ItPmNoZWNrZWRfcGllY2VzXy5o YXNOb25lKCk7Ci0gICAgICAgICB0b3JyZW50U3RhcnQodG9yLCBvcHRzKTsKLUBAIC0xODMyLDIw ICsxODI2LDE4IEBAIHZvaWQgdmVyaWZ5VG9ycmVudCh0cl90b3JyZW50KiBjb25zdCB0b3IpCi0g ICAgIC8qIGlmIHRoZSB0b3JyZW50J3MgYWxyZWFkeSBiZWluZyB2ZXJpZmllZCwgc3RvcCBpdCAq LwotICAgICB0b3ItPnNlc3Npb24tPnZlcmlmeVJlbW92ZSh0b3IpOwotIAotLSAgICBib29sIGNv bnN0IHN0YXJ0X2FmdGVyID0gKHRvci0+aXNSdW5uaW5nIHx8IHRvci0+c3RhcnRBZnRlclZlcmlm eSkgJiYgIXRvci0+aXNTdG9wcGluZzsKLS0KLS0gICAgaWYgKHRvci0+aXNSdW5uaW5nKQotKyAg ICBpZiAoIXRvci0+aGFzTWV0YWluZm8oKSkKLSAgICAgewotLSAgICAgICAgdHJfdG9ycmVudFN0 b3AodG9yKTsKLSsgICAgICAgIHJldHVybjsKLSAgICAgfQotIAotLSAgICBpZiAoc2V0TG9jYWxF cnJvcklmRmlsZXNEaXNhcHBlYXJlZCh0b3IpKQotKyAgICBpZiAodG9yLT5pc1J1bm5pbmcpCi0g ICAgIHsKLS0gICAgICAgIHRvci0+c3RhcnRBZnRlclZlcmlmeSA9IGZhbHNlOwotKyAgICAgICAg dG9ycmVudFN0b3AodG9yKTsKLSAgICAgfQotLSAgICBlbHNlCi0rCi0rICAgIGlmICghc2V0TG9j YWxFcnJvcklmRmlsZXNEaXNhcHBlYXJlZCh0b3IpKQotICAgICB7Ci0tICAgICAgICB0b3ItPnN0 YXJ0QWZ0ZXJWZXJpZnkgPSBzdGFydF9hZnRlcjsKLSAgICAgICAgIHRvci0+c2Vzc2lvbi0+dmVy aWZ5QWRkKHRvcik7Ci0gICAgIH0KLSB9Ci1kaWZmIC0tZ2l0IGEvbGlidHJhbnNtaXNzaW9uL3Rv cnJlbnQuaCBiL2xpYnRyYW5zbWlzc2lvbi90b3JyZW50LmgKLWluZGV4IGRlZWJiNzczMzcuLmEx YTMwMzFhYTggMTAwNjQ0Ci0tLS0gYS9saWJ0cmFuc21pc3Npb24vdG9ycmVudC5oCi0rKysgYi9s aWJ0cmFuc21pc3Npb24vdG9ycmVudC5oCi1AQCAtMTA5LDcgKzEwOSw4IEBAIHN0cnVjdCB0cl90 b3JyZW50IGZpbmFsIDogcHVibGljIHRyX2NvbXBsZXRpb246OnRvcnJlbnRfdmlldwotICAgICAv LyBidXQgbW9yZSByZWZhY3RvcmluZyBpcyBuZWVkZWQgYmVmb3JlIHRoYXQgY2FuIGhhcHBlbgot ICAgICAvLyBiZWNhdXNlIG11Y2ggb2YgdHJfdG9ycmVudCdzIGltcGwgaXMgaW4gdGhlIG5vbi1t ZW1iZXIgQyBiaW5kaW5ncwotIAotLSAgICB2b2lkIHNldE1ldGFpbmZvKHRyX3RvcnJlbnRfbWV0 YWluZm8gY29uc3QmIHRtKTsKLSsgICAgLy8gVXNlZCB0byBhZGQgbWV0YWluZm8gdG8gYSBtYWdu ZXQgdG9ycmVudC4KLSsgICAgdm9pZCBzZXRNZXRhaW5mbyh0cl90b3JyZW50X21ldGFpbmZvIHRt KTsKLSAKLSAgICAgW1tub2Rpc2NhcmRdXSBhdXRvIHVuaXF1ZV9sb2NrKCkgY29uc3QKLSAgICAg ewotQEAgLTkwMywxMCArOTA0LDEwIEBAIHN0cnVjdCB0cl90b3JyZW50IGZpbmFsIDogcHVibGlj IHRyX2NvbXBsZXRpb246OnRvcnJlbnRfdmlldwotICAgICBib29sIGlzX3F1ZXVlZCA9IGZhbHNl OwotICAgICBib29sIGlzUnVubmluZyA9IGZhbHNlOwotICAgICBib29sIGlzU3RvcHBpbmcgPSBm YWxzZTsKLS0gICAgYm9vbCBzdGFydEFmdGVyVmVyaWZ5ID0gZmFsc2U7Ci0tICAgIGJvb2wgbWFn bmV0U3RhcnRBZnRlclZlcmlmeSA9IGZhbHNlOwotIAotLSAgICBib29sIG1hZ25ldFZlcmlmeSA9 IGZhbHNlOwotKyAgICAvLyBzdGFydCB0aGUgdG9ycmVudCBhZnRlciBhbGwgdGhlIHN0YXJ0dXAg c2NhZmZvbGRpbmcgaXMgZG9uZSwKLSsgICAgLy8gZS5nLiBmZXRjaGluZyBtZXRhZGF0YSBmcm9t IHBlZXJzIGFuZC9vciB2ZXJpZnlpbmcgdGhlIHRvcnJlbnQKLSsgICAgYm9vbCBzdGFydF93aGVu X3N0YWJsZSA9IGZhbHNlOwotIAotIHByaXZhdGU6Ci0gICAgIFtbbm9kaXNjYXJkXV0gY29uc3Rl eHByIGJvb2wgaXNQaWVjZVRyYW5zZmVyQWxsb3dlZCh0cl9kaXJlY3Rpb24gZGlyZWN0aW9uKSBj b25zdCBub2V4Y2VwdAotZGlmZiAtLWdpdCBhL2xpYnRyYW5zbWlzc2lvbi90cmFuc21pc3Npb24u aCBiL2xpYnRyYW5zbWlzc2lvbi90cmFuc21pc3Npb24uaAotaW5kZXggMTFiYjg3NDNkZC4uODJi ZjFkNWU1NCAxMDA2NDQKLS0tLSBhL2xpYnRyYW5zbWlzc2lvbi90cmFuc21pc3Npb24uaAotKysr IGIvbGlidHJhbnNtaXNzaW9uL3RyYW5zbWlzc2lvbi5oCi1AQCAtNjAxLDcgKzYwMSw3IEBAIHZv aWQgdHJfc2Vzc2lvblNldEFudGlCcnV0ZUZvcmNlRW5hYmxlZCh0cl9zZXNzaW9uKiBzZXNzaW9u LCBib29sIGVuYWJsZWQpOwotIC8qKiBAYnJpZWYgTGlrZSBgdHJfdG9ycmVudFN0YXJ0KClgLCBi dXQgcmVzdW1lcyByaWdodCBhd2F5IHJlZ2FyZGxlc3Mgb2YgdGhlIHF1ZXVlcy4gKi8KLSB2b2lk IHRyX3RvcnJlbnRTdGFydE5vdyh0cl90b3JyZW50KiB0b3IpOwotIAotLS8qKiBAYnJpZWYgTGlr ZSB0cl90b3JyZW50U3RhcnQoKSwgYnV0IHNldHMgbWFnbmV0U3RhcnRBZnRlclZlcmlmeSB0byB0 cnVlLiAqLwotKy8qKiBAYnJpZWYgREVQUkVDQVRFRC4gRXF1aXZhbGVudCB0byB0cl90b3JyZW50 U3RhcnQoKS4gVXNlIHRoYXQgaW5zdGVhZC4gKi8KLSB2b2lkIHRyX3RvcnJlbnRTdGFydE1hZ25l dCh0cl90b3JyZW50Kik7Ci0gCi0gLyoqIEBicmllZiBSZXR1cm4gdGhlIHF1ZXVlZCB0b3JyZW50 J3MgcG9zaXRpb24gaW4gdGhlIHF1ZXVlIGl0J3MgaW4uIFswLi4ubikgKi8KLWRpZmYgLS1naXQg YS9tYWNvc3gvVG9ycmVudC5tbSBiL21hY29zeC9Ub3JyZW50Lm1tCi1pbmRleCBiZDVhZDc5NzJm Li45OGU2OTg4MmQzIDEwMDY0NAotLS0tIGEvbWFjb3N4L1RvcnJlbnQubW0KLSsrKyBiL21hY29z eC9Ub3JyZW50Lm1tCi1AQCAtMjgwLDcgKzI4MCw3IEBAIC0gKHZvaWQpc3RhcnRNYWduZXRUcmFu c2ZlckFmdGVyTWV0YURvd25sb2FkCi0gewotICAgICBpZiAoW3NlbGYgYWxlcnRGb3JSZW1haW5p bmdEaXNrU3BhY2VdKQotICAgICB7Ci0tICAgICAgICB0cl90b3JyZW50U3RhcnRNYWduZXQoc2Vs Zi5mSGFuZGxlKTsKLSsgICAgICAgIHRyX3RvcnJlbnRTdGFydChzZWxmLmZIYW5kbGUpOwotICAg ICAgICAgW3NlbGYgdXBkYXRlXTsKLSAKLSAgICAgICAgIC8vY2FwdHVyZSwgc3BlY2lmaWNhbGx5 LCBzdG9wLXNlZWRpbmcgc2V0dGluZ3MgY2hhbmdpbmcgdG8gdW5saW1pdGVkCgpkaWZmIC0tZ2l0 IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggODNiNTlmNC4uODA1M2NiNSAxMDA2NDQKLS0tIGEv c291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xICsxIEBACi1TSEE1MTIgKHRyYW5zbWlzc2lvbi00 LjAuMC50YXIueHopID0gNzk5NDVhZjczZmU3MjI2ZGRkYWRiYTdjYzAzOTUxNmYyZjg3OGUwNWE5 Y2Y2YzZkNzk5YjYzNmI4Mjk4ZTJiMmZhMjVjNDQyNjc4OWJkNDFlZjRkMmIwMGQ3NWEzYzFjMTE1 YzE2NzZiNGQyYTlmMDlhMTUyNjQ1NmRjZWIzZjgKK1NIQTUxMiAodHJhbnNtaXNzaW9uLTQuMC4x LnRhci54eikgPSBhMDIyNmM5NmIwOGZkN2JlN2NiOTc2MzEzMmUzNmU1OWE0Zjg0ZDY3Mjc3YzM0 NTg2MGFjNWEyZTY4NWVjMGQ1ZjJlOGIzZmUxZTJkMDkwZTExODA0OTk1MTgwODRkZTk5Mzg3Yjgy MmJiNmRiZGMxYjdjYjA3NmQ5YTk5Y2UwNQoKZGlmZiAtLWdpdCBhL3RyYW5zbWlzc2lvbi5zcGVj IGIvdHJhbnNtaXNzaW9uLnNwZWMKaW5kZXggNGYzZTBmNC4uNDIzOGZmZiAxMDA2NDQKLS0tIGEv dHJhbnNtaXNzaW9uLnNwZWMKKysrIGIvdHJhbnNtaXNzaW9uLnNwZWMKQEAgLTEsOCArMSw4IEBA CiAlZ2xvYmFsIF9oYXJkZW5lZF9idWlsZCAxCiAKIE5hbWU6ICAgICAgICAgICB0cmFuc21pc3Np b24KLVZlcnNpb246ICAgICAgICA0LjAuMAotUmVsZWFzZTogICAgICAgIDMlez9kaXN0fQorVmVy c2lvbjogICAgICAgIDQuMC4xCitSZWxlYXNlOiAgICAgICAgMSV7P2Rpc3R9CiBTdW1tYXJ5OiAg ICAgICAgQSBsaWdodHdlaWdodCBHVEsrIEJpdFRvcnJlbnQgY2xpZW50CiAjIFNlZSBDT1BZSU5H LiBUaGlzIGxpY2Vuc2luZyBzaXR1YXRpb24gaXMuLi4gc3BlY2lhbC4KIExpY2Vuc2U6ICAgICAg ICBNSVQgYW5kIEdQTHYyCkBAIC0xMSwxMSArMTEsOSBAQCBVUkw6ICAgICAgICAgICAgaHR0cDov L3d3dy50cmFuc21pc3Npb25idC5jb20KIFNvdXJjZTA6ICAgICAgICBodHRwczovL2dpdGh1Yi5j b20vdHJhbnNtaXNzaW9uL3RyYW5zbWlzc2lvbi9yZWxlYXNlcy9kb3dubG9hZC8le3ZlcnNpb259 L3RyYW5zbWlzc2lvbi0le3ZlcnNpb259LnRhci54egogIyBodHRwczovL2J1Z3ppbGxhLnJlZGhh dC5jb20vc2hvd19idWcuY2dpP2lkPTEyMjEyOTIKIFNvdXJjZTE6ICAgICAgICBodHRwczovL3Jh dy5naXRodWJ1c2VyY29udGVudC5jb20vZ25vbWUtZGVzaWduLXRlYW0vZ25vbWUtaWNvbnMvbWFz dGVyL2FwcHMtc3ltYm9saWMvQWR3YWl0YS9zY2FsYWJsZS9hcHBzL3RyYW5zbWlzc2lvbi1zeW1i b2xpYy5zdmcKLVBhdGNoMDogICAgICAgICBmNTUxYjRhZGJmZjBkNTk1NTdkNjE4NjdkMGI2NTE4 YzUwZjVhNzNmLnBhdGNoCi1QYXRjaDE6ICAgICAgICAgNDg5MC5wYXRjaAogIyBGaXggdGhlIERC dXMgbmFtZSB0byBtYXRjaCB0aGUgYXBwIG5hbWUgZm9yIGZsYXRwYWsgYnVpbGRzCiAjIGh0dHBz Oi8vZ2l0aHViLmNvbS90cmFuc21pc3Npb24vdHJhbnNtaXNzaW9uL3B1bGwvODQ3Ci1QYXRjaDI6 ICAgICAgICAgMDAwMS1ndGstdXNlLWNvbS50cmFuc21pc3Npb25idC5UcmFuc21pc3Npb24uLUQt QnVzLW5hbWVzLnBhdGNoCitQYXRjaDA6ICAgICAgICAgMDAwMS1ndGstdXNlLWNvbS50cmFuc21p c3Npb25idC5UcmFuc21pc3Npb24uLUQtQnVzLW5hbWVzLnBhdGNoCiAKIAogQnVpbGRSZXF1aXJl czogIG1ha2UKQEAgLTE4Miw2ICsxODAsOSBAQCBkZXNrdG9wLWZpbGUtaW5zdGFsbCBcCiAlZG9j ICV7X21hbmRpcn0vbWFuMS90cmFuc21pc3Npb24tcXQuKgogCiAlY2hhbmdlbG9nCisqIFRodSBG ZWIgMjMgMjAyMyBHd3luIENpZXNsYSA8Z3d5bmNAcHJvdG9ubWFpbC5jb20+IC0gNC4wLjEtMQor LSA0LjAuMQorCiAqIFdlZCBGZWIgMTUgMjAyMyBLYWxldiBMZW1iZXIgPGtsZW1iZXJAcmVkaGF0 LmNvbT4gLSA0LjAuMC0zCiAtIEF2b2lkIGhhcmRjb2RpbmcgL3VzciBwcmVmaXgKIC0gUmVzdG9y ZSBmbGF0cGFrIERCdXMgbmFtZSBwYXRjaAo=